diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..bfd93ef3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,7 @@ +playground/go.sum linguist-generated +playground/internal/cmd/precompile/go.sum linguist-generated + +**/*.a.js linguist-generated +playground/playground.js linguist-generated + +playground/internal/imports/zstdlib.go linguist-generated diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 00000000..db639126 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,96 @@ +name: CI + +on: + push: + branches: [ "*" ] + pull_request: + branches: [ "*" ] + +permissions: + contents: read + pull-requests: read + +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true + +env: + GO_VERSION: 1.19.13 + NODE_VERSION: 18 + GOLANGCI_VERSION: v1.53.3 + SOURCE_MAP_SUPPORT: true + GOPATH: ${{ github.workspace }}/go + GOPHERJS_PATH: ${{ github.workspace }}/go/src/github.com/${{ github.repository }} + +jobs: + lint: + name: Lint Checks + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + path: ${{ env.GOPHERJS_PATH }} + - uses: actions/setup-go@v5 + with: + go-version: ${{ env.GO_VERSION }} + - name: Install golangci-lint + uses: golangci/golangci-lint-action@v3 + with: + working-directory: ${{ env.GOPHERJS_PATH }} + version: ${{ env.GOLANGCI_VERSION }} + only-new-issues: true + - name: Check go.mod + working-directory: ${{ env.GOPHERJS_PATH }} + run: go mod tidy && git diff --exit-code + - name: Check natives build tags + working-directory: ${{ env.GOPHERJS_PATH }} + run: | + echo "Any following packages have at least one file that is missing //go:build js" + diff -u <(echo -n) <(go list ./compiler/natives/src/...) + + go_tests: + name: Go Tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + path: ${{ env.GOPHERJS_PATH }} + - name: Copy Actions + run: cp -r ${{ env.GOPHERJS_PATH }}/.github . + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GO_VERSION }} + - name: Setup Go Environment + working-directory: ${{ env.GOPHERJS_PATH }} + shell: bash + run: echo "GOROOT=$(go env GOROOT)" >> $GITHUB_ENV + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + - name: Install Node.js for Linux + working-directory: ${{ env.GOPHERJS_PATH }} + shell: bash + # Install required Node.js packages including optional (node-syscall). + run: | + npm install --include=optional --no-package-lock + - name: Setup Node.js Environment + working-directory: ${{ env.GOPHERJS_PATH }} + shell: bash + # Make nodejs able to require installed modules from any working path. + run: echo "NODE_PATH=$(npm root)" >> $GITHUB_ENV + - name: Install GopherJS + working-directory: ${{ env.GOPHERJS_PATH }} + shell: bash + run: go install -v + - name: Setup information + shell: bash + run: | + echo ::notice::go version: $(go version) + echo ::notice::node version: $(node -v) + echo ::notice::npm version: $(npm -v) + echo ::notice::gopherjs version: $(gopherjs version) + - name: Run Tests + working-directory: ${{ env.GOPHERJS_PATH }} + run: go test -v -race ./... diff --git a/go.work b/go.work new file mode 100644 index 00000000..20d11ff7 --- /dev/null +++ b/go.work @@ -0,0 +1,6 @@ +go 1.19 + +use ( + ./playground + ./playground/internal/cmd/precompile +) diff --git a/go.work.sum b/go.work.sum new file mode 100644 index 00000000..38eee44c --- /dev/null +++ b/go.work.sum @@ -0,0 +1,610 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/evanw/esbuild v0.18.0/go.mod h1:iINY06rn799hi48UqEnaQvVfZWe6W9bET78LbvN8VWk= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= +github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= +github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20220411215600-e5f449aeb171 h1:EH1Deb8WZJ0xc0WK//leUHXcX9aLE5SymusoTmMZye8= +golang.org/x/term v0.0.0-20220411215600-e5f449aeb171/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/playground/favicon-gopherjs.png b/playground/favicon-gopherjs.png new file mode 100644 index 00000000..bcb336c1 Binary files /dev/null and b/playground/favicon-gopherjs.png differ diff --git a/playground/gen.go b/playground/gen.go index 8bd7f137..8e8fe6a7 100644 --- a/playground/gen.go +++ b/playground/gen.go @@ -1,5 +1,5 @@ -//go:generate go run ./internal/cmd/precompile -//go:generate go install github.com/gopherjs/gopherjs -//go:generate gopherjs build -m . +//go:generate go1.19.13 run ./internal/cmd/precompile +//go:generate go1.19.13 install github.com/gopherjs/gopherjs +//go:generate env GOOS=js GOARCH=ecmascript gopherjs build -m . package main diff --git a/playground/go.mod b/playground/go.mod index 87eeca96..7f63be4d 100644 --- a/playground/go.mod +++ b/playground/go.mod @@ -1,22 +1,19 @@ module github.com/gopherjs/gopherjs.github.io/playground -go 1.17 +go 1.19 require ( - github.com/gopherjs/gopherjs v1.18.0-beta1 - github.com/neelance/go-angularjs v0.0.0-20170205214111-8c6312cca6e2 - github.com/sirupsen/logrus v1.8.3 - golang.org/x/tools v0.1.12 - honnef.co/go/js/dom v0.0.0-20210725211120-f030747120f2 + github.com/google/go-cmp v0.5.8 + github.com/gopherjs/gopherjs v1.19.0-beta2.0.20251008200541-113c92b42b18 + golang.org/x/tools v0.16.0 honnef.co/go/js/xhr v0.0.0-20150307031022-00e3346113ae ) require ( - github.com/fsnotify/fsnotify v1.5.1 // indirect + github.com/evanw/esbuild v0.25.4 // indirect github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86 // indirect - github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c // indirect - github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect - golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect + github.com/sirupsen/logrus v1.8.3 // indirect + github.com/stretchr/testify v1.11.1 // indirect + golang.org/x/sys v0.10.0 // indirect honnef.co/go/js/util v0.0.0-20150216223935-96b8dd9d1621 // indirect ) diff --git a/playground/go.sum b/playground/go.sum index a8642a44..500e4aa8 100644 --- a/playground/go.sum +++ b/playground/go.sum @@ -1,624 +1,32 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= -github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gopherjs/gopherjs v1.18.0-beta1 h1:IbykhVEq4SAjwyBRuNHl0aOO6w6IqgL3RUdMhoBo4mY= -github.com/gopherjs/gopherjs v1.18.0-beta1/go.mod h1:6UY8PXRnu51MqjYCCY4toG0S5GeH5uVJ3qDxIsa+kqo= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/evanw/esbuild v0.25.4 h1:k1bTSim+usBG27w7BfOCorhgx3tO+6bAfMj5pR+6SKg= +github.com/evanw/esbuild v0.25.4/go.mod h1:D2vIQZqV/vIf/VRHtViaUtViZmG7o+kKmlBfVQuRi48= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/gopherjs/gopherjs v1.19.0-beta2.0.20251008200541-113c92b42b18 h1:3Q35VrUrSR3uWTi4B+bw/Tafhivi9oOeiIGdJsD5vKs= +github.com/gopherjs/gopherjs v1.19.0-beta2.0.20251008200541-113c92b42b18/go.mod h1:2WavbyDw5YmfMgwzeuZQ+rK6sxrzCy5vJ/vLriB+Mpw= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86 h1:D6paGObi5Wud7xg83MaEFyjxQB1W5bz5d0IFppr+ymk= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= -github.com/neelance/go-angularjs v0.0.0-20170205214111-8c6312cca6e2 h1:BjjdRhf8xbuU4aYCpJUyNxZqSc4Pfdy8PFUKHEz+eaY= -github.com/neelance/go-angularjs v0.0.0-20170205214111-8c6312cca6e2/go.mod h1:LverhO5Aaa+/jkOEMBe5N1yN51wJyTJSSxbtoN7l60I= -github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c h1:bY6ktFuJkt+ZXkX0RChQch2FtHpWQLVS8Qo1YasiIVk= -github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636 h1:aSISeOcal5irEhJd1M+IrApc0PdcN7e7Aj4yuEnOrfQ= -github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= -github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 h1:bUGsEnyNbVPw06Bs80sCeARAlK8lhwqGyi6UT8ymuGk= -github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.8.3 h1:DBBfY8eMYazKEJHb3JKpSPfpgd2mBCoNFlQx6C5fftU= github.com/sirupsen/logrus v1.8.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220411215600-e5f449aeb171/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f h1:GGU+dLjvlC3qDwqYgL6UgRmHXhOOgns0bZu2Ty5mm6U= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= +golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/js/dom v0.0.0-20210725211120-f030747120f2 h1:oomkgU6VaQDsV6qZby2uz1Lap0eXmku8+2em3A/l700= -honnef.co/go/js/dom v0.0.0-20210725211120-f030747120f2/go.mod h1:sUMDUKNB2ZcVjt92UnLy3cdGs+wDAcrPdV3JP6sVgA4= honnef.co/go/js/util v0.0.0-20150216223935-96b8dd9d1621 h1:QBApQyt1KyR3SvDWU8sHcIXeWTSCUamO7xQopvwuLWI= honnef.co/go/js/util v0.0.0-20150216223935-96b8dd9d1621/go.mod h1:WrAIh8rWfzvMdLVgQ7vpu7aYbDAZ3rHLxydzv2VkL/w= honnef.co/go/js/xhr v0.0.0-20150307031022-00e3346113ae h1:2dIKMawnBWvHzZrS8STyu/KdhYIOpnKQpp1WZm+K7TE= honnef.co/go/js/xhr v0.0.0-20150307031022-00e3346113ae/go.mod h1:QwoYXdHZpuR080H32s5jqyk7zh/k/U9bDFg2g8OMmOM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/playground/index.html b/playground/index.html index 3963a364..821a3756 100644 --- a/playground/index.html +++ b/playground/index.html @@ -1,32 +1,18 @@ - - + + + GopherJS Playground - - + + - - - -
-
- -
-
-
-
{{line.content}} 
-
+ +
diff --git a/playground/internal/.DS_Store b/playground/internal/.DS_Store new file mode 100644 index 00000000..0ef2384f Binary files /dev/null and b/playground/internal/.DS_Store differ diff --git a/playground/internal/cmd/precompile/go.mod b/playground/internal/cmd/precompile/go.mod new file mode 100644 index 00000000..e3c1d637 --- /dev/null +++ b/playground/internal/cmd/precompile/go.mod @@ -0,0 +1,21 @@ +module github.com/grantnelson-wf/gopherjs.github.io/playground/internal/cmd/precompile + +go 1.19 + +require ( + github.com/gopherjs/gopherjs v1.19.0-beta2.0.20251008200541-113c92b42b18 + github.com/sirupsen/logrus v1.8.1 +) + +require ( + github.com/evanw/esbuild v0.25.4 // indirect + github.com/fsnotify/fsnotify v1.5.1 // indirect + github.com/msvitok77/goembed v0.3.5 // indirect + github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86 // indirect + github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c // indirect + github.com/stretchr/testify v1.11.1 // indirect + golang.org/x/sys v0.10.0 // indirect + golang.org/x/tools v0.16.0 // indirect +) + +replace github.com/gopherjs/gopherjs => /Users/grantnelson/go/src/github.com/Workiva/gopherjs // TODO(grantnelson-wf): REMOVE diff --git a/playground/internal/cmd/precompile/go.sum b/playground/internal/cmd/precompile/go.sum new file mode 100644 index 00000000..4cdaac4f --- /dev/null +++ b/playground/internal/cmd/precompile/go.sum @@ -0,0 +1,29 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/evanw/esbuild v0.25.4 h1:k1bTSim+usBG27w7BfOCorhgx3tO+6bAfMj5pR+6SKg= +github.com/evanw/esbuild v0.25.4/go.mod h1:D2vIQZqV/vIf/VRHtViaUtViZmG7o+kKmlBfVQuRi48= +github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= +github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/msvitok77/goembed v0.3.5 h1:SNdkLLipv4YGNVWCVCn+/N01aSp7Ga6/YOcB+kYxnhk= +github.com/msvitok77/goembed v0.3.5/go.mod h1:ycBNmh+53HrsZPQfWOJHYXbu7vLwb1QYdJISOyKlnnc= +github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86 h1:D6paGObi5Wud7xg83MaEFyjxQB1W5bz5d0IFppr+ymk= +github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= +github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c h1:bY6ktFuJkt+ZXkX0RChQch2FtHpWQLVS8Qo1YasiIVk= +github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636 h1:aSISeOcal5irEhJd1M+IrApc0PdcN7e7Aj4yuEnOrfQ= +github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= +golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/playground/internal/cmd/precompile/precompile.go b/playground/internal/cmd/precompile/precompile.go index 3b2e5af7..e83af9d0 100644 --- a/playground/internal/cmd/precompile/precompile.go +++ b/playground/internal/cmd/precompile/precompile.go @@ -1,12 +1,12 @@ -// Program precompile updates pre-built standard library packages for the +// Program precompile updates prepackaged standard library packages for the // playground. // // This script performs the following sequence of steps: // -// - Enumerate all standard packages that should be available in the playground. -// - Precompile them, including transitive dependencies. -// - Delete all old precompiled archive. -// - Write all new precompiled archive in their place. +// - Enumerate all standard packages that should be available in the playground. +// - Parses and augments them, including transitive dependencies. +// - Delete all old prepackaged packages. +// - Write all new prepackaged packages in their place. // // This will use the same GopherJS version as specified in the playground gm.mod // to ensure consistency. The script uses GopherJS compiler API directly, so @@ -14,6 +14,8 @@ package main import ( + "compress/gzip" + "encoding/gob" "flag" "fmt" gobuild "go/build" @@ -22,7 +24,7 @@ import ( "strings" "github.com/gopherjs/gopherjs/build" - "github.com/gopherjs/gopherjs/compiler" + "github.com/gopherjs/gopherjs/compiler/sources" log "github.com/sirupsen/logrus" ) @@ -55,39 +57,64 @@ func run() error { packages = importable(packages) packages = append(packages, "github.com/gopherjs/gopherjs/js", "github.com/gopherjs/gopherjs/nosync") - for _, pkg := range packages { - _, err := s.BuildImportPath(pkg) + for _, path := range packages { + pkg, err := s.XContext().Import(path, ``, 0) if err != nil { - return fmt.Errorf("failed to precompile package %q: %w", pkg, err) + return fmt.Errorf("failed to get build package for %s: %w", path, err) + } + + var srcs *sources.Sources + if srcs, err = s.LoadPackages(pkg); err != nil { + return fmt.Errorf("failed to prepackaged package %q: %w", pkg, err) + } + + if _, err := s.PrepareAndCompilePackages(srcs); err != nil { + return fmt.Errorf("failed to compile package %q: %w", pkg, err) } } target, err := targetDir(s) + if err != nil { + return fmt.Errorf("failed to determine target directory: %w", err) + } if err := os.RemoveAll(target); err != nil { - return fmt.Errorf("failed to clean out old precompiled archives: %w", err) + return fmt.Errorf("failed to clean out old packages: %w", err) } - for _, archive := range s.UpToDateArchives { - if err := writeArchive(target, archive); err != nil { - return fmt.Errorf("failed to write package %q archive: %w", archive.ImportPath, err) + for _, srcs := range s.GetSortedSources() { + if err := writePackage(target, srcs); err != nil { + return fmt.Errorf("failed to write package %q: %w", srcs.ImportPath, err) } } return nil } -func writeArchive(target string, archive *compiler.Archive) error { - path := filepath.Join(target, filepath.FromSlash(archive.ImportPath)+".a.js") +func writePackage(target string, srcs *sources.Sources) (err error) { + path := filepath.Join(target, filepath.FromSlash(srcs.ImportPath)+".a.js") if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil { return fmt.Errorf("failed to create precompiled package directory %q: %w", filepath.Dir(path), err) } + f, err := os.Create(path) if err != nil { return fmt.Errorf("failed to create precompiled archive %q: %w", path, err) } - defer f.Close() + defer func() { + if closeErr := f.Close(); err == nil { + err = closeErr + } + }() + + zw := gzip.NewWriter(f) + defer func() { + // This close flushes the gzip but does not close the file. + if closeErr := zw.Close(); err == nil { + err = closeErr + } + }() - return compiler.WriteArchive(archive, f) + return srcs.Write(gob.NewEncoder(zw).Encode) } // targetDir returns path to the directory where precompiled packages must be diff --git a/playground/internal/common/fetcher.go b/playground/internal/common/fetcher.go new file mode 100644 index 00000000..6ce60b89 --- /dev/null +++ b/playground/internal/common/fetcher.go @@ -0,0 +1,19 @@ +package common + +import "github.com/gopherjs/gopherjs/compiler/sources" + +// Fetcher represents a package fetcher for retrieving prepackaged packages. +// +// This interface allows the network access to be replaced +// with a mock implementation for testing. +type Fetcher interface { + + // FetchPackage fetches the package from the website's package folder. + // + // The importPath is the path to the package, e.g. "fmt" or "crypto/md5". + // This will block while waiting for the network request to complete. + // + // The prepaackaged packages only contain Standard Library packages + // that were prepaired with the `precompile` command. + FetchPackage(importPath string) (*sources.Sources, error) +} diff --git a/playground/internal/common/output.go b/playground/internal/common/output.go new file mode 100644 index 00000000..5ba7ea57 --- /dev/null +++ b/playground/internal/common/output.go @@ -0,0 +1,22 @@ +package common + +// Output is the interface describing the functions for GUI output box. +// This interface is to separate the playground logic from the actual GUI implementation. +type Output interface { + + // Clear clears all output. + Clear() + + // AddError adds an error message to the output. + // + // All text including new lines will be escaped for HTML. + AddError(err error) + + // AddOutput adds output text to the output. + // This will also scroll the output box to the bottom. + // + // If a form feed ("\0c") is encountered in the output, + // the output box is cleared before adding the remaining output. + // All text including new lines will be escaped for HTML. + AddOutput(out string) +} diff --git a/playground/internal/common/runner.go b/playground/internal/common/runner.go new file mode 100644 index 00000000..6881b4ac --- /dev/null +++ b/playground/internal/common/runner.go @@ -0,0 +1,16 @@ +package common + +// Runner is the interface describing the functions to compile and run Go code +// via GopherJS in the playground. +type Runner interface { + + // Preload asynchronously starts loading standard library packages needed + // to run the given code. A running preload will be cancelled when Run, + // Stop, or another Preload is called. + Preload(code string) + + // Run asynchronously compiles and runs the given code. + // If this is called again while a previous Run is still in progress, + // the previous Run is cancelled. + Run(code string) +} diff --git a/playground/internal/common/snippetStore.go b/playground/internal/common/snippetStore.go new file mode 100644 index 00000000..49f68550 --- /dev/null +++ b/playground/internal/common/snippetStore.go @@ -0,0 +1,24 @@ +package common + +// SnippetStore represents a code snippet store for persisting and retrieving +// customer defined code snippets. +// +// This interfaces allows the network access to be replaced +// with a mock implementation for testing. +type SnippetStore interface { + + // TODO(grantnelson-wf): Update to work better with predefined snippets. + // + // Read fetches the code snippet with the given hash (including the `#/`) + // from the snippet store. + // If the has is `#` without the `/`, the remainder is checked to see + // if it matches any pre-defined snippets, i.e. `#Hello`. + // If the hash is empty or invalid, it returns the default code. + // This will block while waiting for the network request to complete. + Read(hash string) (string, error) + + // Write sends the given code snippet to the snippet store and returns + // the snippet hash (including the `#/`) on success. + // This will block while waiting for the network request to complete. + Write(code string) (string, error) +} diff --git a/playground/internal/editor/editor.go b/playground/internal/editor/editor.go new file mode 100644 index 00000000..982e8fa6 --- /dev/null +++ b/playground/internal/editor/editor.go @@ -0,0 +1,709 @@ +// Package editor provides code editing helper functions that can be used +// by code editor components. This is separated out from the React components so +// that it can be more easily tested and used in non-React contexts if needed. +package editor + +import ( + "strings" + "unicode" +) + +const ( + // TabWidth is the number of spaces per tab. + TabWidth = 4 + + EscapeEvent = `escape` + SaveEvent = `save` + UndoEvent = `undo` + RedoEvent = `redo` + + commentPrefix = `// ` + commentPrefixLen = len(commentPrefix) +) + +type CodeBoxWrapper interface { + Code() string + GetSelection() Selection + SetCode(sel Selection, code string) + EmitEvent(event string) +} + +type Selection struct { + Start int + End int +} + +// IsCaret returns true if the selection represents a caret position +// (i.e. start and end are the same). +// See https://en.wikipedia.org/wiki/Caret_navigation +func (sel Selection) IsCaret() bool { + return sel.Start == sel.End +} + +// MeasureLineLength returns the length of the line. +// This counts tabs as multiple spaces so that the visual horizontal offset +// is correct, assuming a monospace font. +func MeasureLineLength(line string) int { + length := len(line) + tabAdjust := 0 + for i := 0; i < length; i++ { + if line[i] == '\t' { + // since tabs can vary in lenght depending on position to aling + // with multiples of the tab width, calculate the adjustment needed + // to allign current index to the next tab stop. + // Subtract 1 since the tab itself is already counted in length. + tabAdjust += TabWidth - (i+tabAdjust)%TabWidth - 1 + } + } + return length + tabAdjust +} + +// LongestMeasuredLineLength returns the length of the longest measured line +// in the given code. +// This counts tabs as multiple spaces so that the visual horizontal offset +// is correct, assuming a monospace font. +func LongestMeasuredLineLength(code string) int { + longest := 0 + process := func(line string) { + if len(line)*TabWidth > longest { + if length := MeasureLineLength(line); length > longest { + longest = length + } + } + } + + for { + index := strings.IndexByte(code, '\n') + if index < 0 { + process(code) + break + } + process(code[:index]) + code = code[index+1:] + } + return longest +} + +func ProcessKeyDown(wrapper CodeBoxWrapper, key string, shift, ctrl bool) bool { + ce := &codeEditor{CodeBoxWrapper: wrapper} + return ce.handleKeyDown(key, shift, ctrl) +} + +type codeEditor struct{ CodeBoxWrapper } + +func (ce *codeEditor) handleKeyDown(key string, shift, ctrl bool) bool { + switch key { + case ` `: + return ce.handleSpace(shift, ctrl) + case `Tab`: + return ce.handleTab(shift, ctrl) + case `Enter`: + return ce.handleNewline(shift, ctrl) + case `s`: + return ce.handleSave(shift, ctrl) + case `*`: + return ce.handleMultilineComment(shift, ctrl) + case `/`: + return ce.handleCommentToggle(shift, ctrl) + case `"`: + return ce.insertPair(ctrl, `"`, `"`) + case `'`: + return ce.insertPair(ctrl, `'`, `'`) + case "`": + return ce.insertPair(ctrl, "`", "`") + case `(`: + return ce.insertPair(ctrl, `(`, `)`) + case `{`: + return ce.insertPair(ctrl, `{`, `}`) + case `[`: + return ce.insertPair(ctrl, `[`, `]`) + case `Escape`: + return ce.handleEscape() + case `z`: + return ce.handleUndo(shift, ctrl) + case `y`: + return ce.handleRedo(shift, ctrl) + default: + return false + } +} + +// handleSpace handles if there are several preceding spaces and a new space +// being added, replacing them with tabs. +func (ce *codeEditor) handleSpace(shift, ctrl bool) bool { + if ctrl || shift { + // Allow default behavior for Ctrl+Space or Shift+Space. + return false + } + + sel := ce.GetSelection() + if !sel.IsCaret() { + // If a selection, just perform default behavior. + return false + } + caret := sel.Start + + code := ce.Code() + if !inRange(caret, 1, len(code)) { + // Out of bounds, allow default behavior. + return false + } + + // Find all consecutive preceding whitespace characters upto + // the start of the line. + // This will not work correctly for a multiline string where the text + // in that string is at the front of it's own line, but that is an edge + // case that is unlikely to be an issue in practice. + i := caret - 1 + for i >= 0 { + c := code[i] + if c == '\n' { + break + } + if c != ' ' && c != '\t' { + // If a non-whitespace character, stop and allow default behavior. + return false + } + i-- + } + lineStart := i + 1 + + // When replacing spaces with tabs, we want to maintain the same + // visual character offset so use the length measurement adjusted for tabs. + length := MeasureLineLength(code[lineStart:caret]) + length++ // for the new space being inserted + tabs := length / TabWidth + spaces := length % TabWidth + + newCode := &strings.Builder{} + newCode.Grow(len(code) + tabs + spaces - (caret - lineStart)) + + write(newCode, code[:lineStart]) + write(newCode, strings.Repeat("\t", tabs)) + write(newCode, strings.Repeat(" ", spaces)) + write(newCode, code[caret:]) + + caret = lineStart + tabs + spaces + newSel := Selection{Start: caret, End: caret} + ce.SetCode(newSel, newCode.String()) + return true +} + +// handleTab handles inserting a tab character and indenting or un-indenting +// the current selected line(s). +func (ce *codeEditor) handleTab(shift, ctrl bool) bool { + if ctrl { + // Allow default behavior for Ctrl+Tab (focus change). + return false + } + + if shift { + // With a selection or just a caret, remove indents for Shift+Tab. + return ce.removeIndents() + } + + sel := ce.GetSelection() + if sel.IsCaret() { + // No selection, just insert tab character at caret. + ce.insertAtSelection("\t", ``, false) + return true + } + return ce.addIndents() +} + +// addIndents adds indents to the non-blank lines in the selection. +func (ce *codeEditor) addIndents() bool { + lineSel := ce.getSelectedLines() + nonBlankLines := 0 + ce.foreachLine(lineSel, func(line string, _ Selection) bool { + if !isBlankLine(line) { + nonBlankLines++ + } + return true + }) + if nonBlankLines == 0 { + // Nothing to indent, prevent default behavior but do nothing. + return true + } + + code := ce.Code() + sel := ce.GetSelection() + newSel := sel + newCode := &strings.Builder{} + newCode.Grow(len(code) + nonBlankLines) + + write(newCode, code[:lineSel.Start]) + ce.foreachLine(lineSel, func(line string, curLineSel Selection) bool { + if isBlankLine(line) { + write(newCode, line) // Empty line, just add as-is. + return true + } + adjustSel(&newSel, sel, curLineSel.Start, 1) + write(newCode, "\t") + write(newCode, line) + return true + }) + write(newCode, code[lineSel.End:]) + + ce.SetCode(newSel, newCode.String()) + return true +} + +// removeIndents handles un-indenting the non-blank lines in the selection. +func (ce *codeEditor) removeIndents() bool { + lineSel := ce.getSelectedLines() + indentedLines := 0 + ce.foreachLine(lineSel, func(line string, _ Selection) bool { + if line[0] == '\t' || line[0] == ' ' { + indentedLines++ + } + return true + }) + if indentedLines == 0 { + // Nothing to un-indent, prevent default behavior but do nothing. + return true + } + + code := ce.Code() + sel := ce.GetSelection() + newSel := sel + newCode := &strings.Builder{} + newCode.Grow(len(code) - indentedLines) // assumes tabs are being removed + + write(newCode, code[:lineSel.Start]) + ce.foreachLine(lineSel, func(line string, curLineSel Selection) bool { + // Trim up to one tab or equivalent spaces. + removeChars := 0 + for i := 0; i < len(line); i++ { + if line[i] == '\t' { + removeChars++ + break + } else if line[i] == ' ' { + removeChars++ + if removeChars >= TabWidth { + break + } + } else { + break + } + } + if removeChars == 0 { + // Nothing to remove, just add line as-is. + write(newCode, line) + return true + } + + adjustSel(&newSel, sel, curLineSel.Start+removeChars, -removeChars) + write(newCode, line[removeChars:]) + return true + }) + write(newCode, code[lineSel.End:]) + + ce.SetCode(newSel, newCode.String()) + return true +} + +func (ce *codeEditor) handleMultilineComment(shift, ctrl bool) bool { + if !shift || ctrl { + // Allow default behavior for 8 or Ctrl+* (which is usually Shift+Ctrl+8). + return false + } + + code := ce.Code() + sel := ce.GetSelection() + if !sel.IsCaret() { + // If a selection, just prerform default behavior. + return false + } + caret := sel.Start + + if caret <= 0 || code[caret-1] != '/' { + // Not preceded by '/', allow default behavior. + return false + } + + // Insert '*/' after caret to complete the multi-line comment. + ce.insertAtSelection(`*`, `*/`, false) + return true +} + +// handleNewline handles inserting a new line with auto-indent. +func (ce *codeEditor) handleNewline(shift, ctrl bool) bool { + if shift || ctrl { + // Allow default behavior for Shift+Enter or Ctrl+Enter (new line without indent). + return false + } + + code := ce.Code() + sel := ce.GetSelection() + before := "\n" + ce.indentAt(sel.Start) + after := `` + + // add extra indent if the character before the selection is an opening brace. + if inRange(sel.Start, 1, len(code)) { + switch code[sel.Start-1] { + case '{', '(', '[': + before += "\t" + } + } + + // add extra after if the character after the selection is a closing brace. + if inRange(sel.End, 0, len(code)-1) { + switch code[sel.End] { + case '}', ')', ']': + if opening := findMatchingOpeningBrace(code, sel.End); opening >= 0 { + after = "\n" + ce.indentAt(opening) + } + } + } + + ce.insertAtSelection(before, after, false) + return true +} + +func (ce *codeEditor) handleSave(shift, ctrl bool) bool { + if !ctrl || shift { + // Allow default behavior for 's' without a Ctrl or Shift+Ctrl+S. + return false + } + + ce.EmitEvent(SaveEvent) + return true +} + +func (ce *codeEditor) handleEscape() bool { + ce.EmitEvent(EscapeEvent) + return true +} + +func (ce *codeEditor) handleUndo(shift, ctrl bool) bool { + if !ctrl { + // Allow default behavior for 'z' without a Ctrl. + return false + } + + if shift { + ce.EmitEvent(RedoEvent) + return true + } + + ce.EmitEvent(UndoEvent) + return true +} + +func (ce *codeEditor) handleRedo(shift, ctrl bool) bool { + if !ctrl || shift { + // Allow default behavior for 'y' without a Ctrl or Shift+Ctrl+Y. + return false + } + + ce.EmitEvent(RedoEvent) + return true +} + +// handleCommentToggle handles toggling comments on the current line or selection. +func (ce *codeEditor) handleCommentToggle(shift, ctrl bool) bool { + if !ctrl || shift { + // Allow default behavior for '/' without a Ctrl or Shift+/. + return false + } + + lineSel := ce.getSelectedLines() + containsOnlyBlankLines := true + containsUncommentedLine := false + ce.foreachLine(lineSel, func(line string, _ Selection) bool { + if trimmed := trimLeftSpace(line); trimmed != `` { + containsOnlyBlankLines = false + if !strings.HasPrefix(trimmed, commentPrefix) { + containsUncommentedLine = true + return false + } + } + return true + }) + + if containsOnlyBlankLines { + // Nothing to comment or uncomment. + return true + } + + if containsUncommentedLine { + ce.addCommenting(lineSel) + return true + } + + ce.removeCommenting(lineSel) + return true +} + +// addCommenting will add the comment prefix to each non-blank line in +// the given range including any lines that already are commented. +func (ce *codeEditor) addCommenting(lineSel Selection) { + leastIndent := -1 + nonBlankLines := 0 + ce.foreachLine(lineSel, func(line string, _ Selection) bool { + if trimmed := trimLeftSpace(line); trimmed != `` { + if indent := len(line) - len(trimmed); leastIndent < 0 || indent < leastIndent { + leastIndent = indent + } + nonBlankLines++ + } + return true + }) + + if nonBlankLines == 0 { + // All lines were blank so there is nothing to do. + // This should not happen since we already check for blank lines + // before calling this method, but might as well save some cycles. + return + } + + code := ce.Code() + sel := ce.GetSelection() + newSel := sel + newCode := &strings.Builder{} + newCode.Grow(len(code) + nonBlankLines*commentPrefixLen) + + write(newCode, code[:lineSel.Start]) + ce.foreachLine(lineSel, func(line string, curLineSel Selection) bool { + if isBlankLine(line) { + write(newCode, line) // Empty line, just add as-is. + return true + } + adjustSel(&newSel, sel, curLineSel.Start+leastIndent, commentPrefixLen) + write(newCode, line[:leastIndent]) + write(newCode, commentPrefix) + write(newCode, line[leastIndent:]) + return true + }) + write(newCode, code[lineSel.End:]) + + ce.SetCode(newSel, newCode.String()) +} + +// removeCommenting will uncomment any line that starts with the comment prefix +// (and preceding whitespace). +func (ce *codeEditor) removeCommenting(lineSel Selection) { + code := ce.Code() + sel := ce.GetSelection() + newSel := sel + newCode := &strings.Builder{} + newCode.Grow(len(code)) + + write(newCode, code[:lineSel.Start]) + ce.foreachLine(lineSel, func(line string, curLineSel Selection) bool { + if trimmed := trimLeftSpace(line); trimmed != `` { + if index := strings.Index(line, commentPrefix); index >= 0 { + write(newCode, line[:index]) + write(newCode, line[index+commentPrefixLen:]) + adjustSel(&newSel, sel, curLineSel.Start+index, -commentPrefixLen) + return true + } + } + write(newCode, line) // Leave line as is + return true + }) + write(newCode, code[lineSel.End:]) + + ce.SetCode(newSel, newCode.String()) +} + +// getSelectedLines returns the start and end character indices of that +// include the start of the selection and the end of the user selection. +// The returned start should be at the beginning of the line after the "\n" +// or at the front of all the code. +// The returned end should be after the "\n" after the selection +// or at the end of all the code. +func (ce *codeEditor) getSelectedLines() Selection { + code := ce.Code() + codeLen := len(code) + sel := ce.GetSelection() + lineSel := Selection{Start: 0, End: codeLen} + if inRange(sel.Start, 0, codeLen) { + lineSel.Start = findStartOfLastLine(code[:sel.Start]) + } + if inRange(sel.End, 0, codeLen) { + lineSel.End = findEndOfLineAfter(sel.End, code) + } + return lineSel +} + +// foreachLine calls the given yield function for each line in the +// code between the given start and end character indices. +// +// The yield function will be given the line string starting after a "\n" +// and including a trailing "\n" if present, along with the start and end +// character indices of that line within the code. +// +// A blank line will be given as "\n", meaning that the yeilded lines will not +// be empty. If the code ends with a "\n", then technically the last line is +// empty with the start and end indices both at the end of the code, +// but that case is skipped. +// +// If the yield function returns false, iteration stops and +// foreachLine returns false. Otherwise, it returns true. +func (ce *codeEditor) foreachLine(sel Selection, yield func(line string, curLineSel Selection) bool) bool { + code := ce.Code() + for i := sel.Start; i < sel.End; { + lineEnd := findEndOfLineAfter(i, code[:sel.End]) + line := code[i:lineEnd] + if !yield(line, Selection{i, lineEnd}) { + return false + } + i = lineEnd + } + return true +} + +func (ce *codeEditor) insertPair(ctrl bool, before, after string) bool { + if ctrl { + // Allow default behavior for Ctrl+key. + return false + } + + ce.insertAtSelection(before, after, true) + return true +} + +func (ce *codeEditor) insertAtSelection(before, after string, keepSelection bool) { + code := ce.Code() + sel := ce.GetSelection() + newSel := Selection{Start: sel.Start, End: sel.Start} // set both to start initially + + beforeLen := len(before) + afterLen := len(after) + selectionLen := 0 + if keepSelection { + selectionLen = sel.End - sel.Start + } + + newCode := &strings.Builder{} + newCode.Grow(len(code) + beforeLen + afterLen + selectionLen) + + if sel.Start > 0 { + write(newCode, code[:sel.Start]) + } + + if beforeLen > 0 { + write(newCode, before) + newSel.Start += beforeLen + newSel.End += beforeLen + } + + if selectionLen > 0 { + selected := code[sel.Start:sel.End] + write(newCode, selected) + newSel.End += selectionLen + } + + if afterLen > 0 { + write(newCode, after) + } + + if sel.End < len(code) { + write(newCode, code[sel.End:]) + } + + ce.SetCode(newSel, newCode.String()) +} + +func (ce *codeEditor) indentAt(start int) string { + code := ce.Code() + if !inRange(start, 1, len(code)) { + return `` + } + par := findStartOfLastLine(code[:start]) + i := par + for i < start { + if c := code[i]; c != ' ' && c != '\t' { + break + } + i++ + } + return code[par:i] +} + +// findMatchingOpeningBrace finds the position of the matching opening brace +// for the closing brace at the given caret position. +// Currently this does not account for braces inside strings or comments. +// It returns -1 if no matching opening brace is found. +func findMatchingOpeningBrace(code string, caret int) int { + if caret <= 0 || caret > len(code) { + return -1 + } + pairs := map[byte]byte{ + '}': '{', + ')': '(', + ']': '[', + } + openingBrace, ok := pairs[code[caret]] + if !ok { + return -1 // Caret not at a closing brace + } + stack := []byte{openingBrace} + for i := caret - 1; i >= 0; i-- { + c := code[i] + switch c { + case '}', ')', ']': + stack = append(stack, pairs[c]) + case '{', '(', '[': + if top := len(stack) - 1; stack[top] == c { + stack = stack[:top] + } else { + return -1 // Mismatched brace + } + } + if len(stack) == 0 { + // stack is empty, found the matching opening brace. + return i + } + } + return -1 +} + +// inRange returns true if value is between start and end, inclusively. +func inRange(value, start, end int) bool { + return value >= start && value <= end +} + +// adjustSel adjusts the given newSel selection by the adjustment amount +// if the current selection is after the given limit. +// This moves the selection based on where new text is being inserted at or +// removed from the limit position. +func adjustSel(newSel *Selection, curSel Selection, limit, adjustment int) { + if curSel.Start > limit { + newSel.Start += adjustment + } + if curSel.End > limit { + newSel.End += adjustment + } +} + +func write(sb *strings.Builder, s string) { + // Ignore error since strings.Builder.WriteString never returns an error. + _, _ = sb.WriteString(s) +} + +func findEndOfLineAfter(start int, code string) int { + index := strings.IndexByte(code[start:], '\n') + if index < 0 { + return len(code) + } + return index + start + 1 +} + +func findStartOfLastLine(code string) int { + index := strings.LastIndexByte(code, '\n') + if index < 0 { + return 0 + } + return index + 1 +} + +func trimLeftSpace(s string) string { + return strings.TrimLeftFunc(s, unicode.IsSpace) +} + +func isBlankLine(s string) bool { + return trimLeftSpace(s) == `` +} diff --git a/playground/internal/editor/editor_test.go b/playground/internal/editor/editor_test.go new file mode 100644 index 00000000..b3fe2a80 --- /dev/null +++ b/playground/internal/editor/editor_test.go @@ -0,0 +1,1399 @@ +package editor + +import ( + "errors" + "reflect" + "strings" + "testing" + + "github.com/google/go-cmp/cmp" +) + +func Test_Editor_LongestMeasuredLineLength(t *testing.T) { + tests := []struct { + name string + code string + expLength int + }{ + { + name: `empty`, + code: ``, + expLength: 0, + }, + { + name: `one line`, + code: `hello world`, + expLength: 11, + }, + { + name: `multiple lines no tabs`, + code: lines( + `hello world`, + `goodbye moon`, + `hi sun`), + expLength: 12, + }, + { + name: `one tab`, + code: ` `, + expLength: TabWidth, + }, + { + name: `space with a tab`, + code: ` `, + expLength: TabWidth, + }, + { + name: `multiple lines with tabs`, + code: lines( + `hello world`, + ` `, // 4 tabs + ` hi sun`), + expLength: 16, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := LongestMeasuredLineLength(tt.code) + check(t, "length", got, tt.expLength) + }) + } +} + +func Test_Editor_ProcessKeyDown_Default(t *testing.T) { + runKeyDownTest(t, testKeyDown{ + name: `Unhandled character does default`, + code: `fmt.Println()`, + key: `a`, + selectionStart: 12, + selectionEnd: 12, + wantPrefentDefault: false, + }) +} + +func Test_Editor_ProcessKeyDown_Space(t *testing.T) { + runKeyDownTest(t, testKeyDown{ + name: `with ctrl does default`, + code: `func main() {}`, + key: ` `, + ctrl: true, + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `with shift does default`, + code: `func main() {}`, + key: ` `, + shift: true, + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `do default with selection`, + code: `func main(){}`, + key: ` `, + selectionStart: 9, // before '(' + selectionEnd: 11, // after ')' + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `do default with invalid caret position`, + code: `func main(){}`, + key: ` `, + selectionStart: 100, + selectionEnd: 100, + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `do default when not enough spaces and not at front of line`, + code: `func main(){}`, + key: ` `, + selectionStart: 10, // between the parentheses + selectionEnd: 10, + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `do default for enough spaces but not at front of line`, + code: `func main( ){}`, + key: ` `, + selectionStart: 15, // before ')' + selectionEnd: 15, + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `insert a spece when not enough spaces`, + code: ` func main(){}`, + key: ` `, + selectionStart: 2, // before 'f' + selectionEnd: 2, + wantCode: ` func main(){}`, + wantSelectionStart: 3, // before 'f' + wantSelectionEnd: 3, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `adjust tabs even if not enough spaces`, + code: ` func main(){}`, + key: ` `, + selectionStart: 5, // before 'f' + selectionEnd: 5, + wantCode: ` func main(){}`, + wantSelectionStart: 5, // before 'f' + wantSelectionEnd: 5, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `replace tabs for enough spaces on first line`, + code: ` func main(){}`, + key: ` `, + selectionStart: 3, // before 'f' + selectionEnd: 3, + wantCode: ` func main(){}`, + wantSelectionStart: 1, // after new tab and before 'f' + wantSelectionEnd: 1, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `replace tabs for enough spaces not on first line`, + code: lines( + `func main(){`, + ` fmt.Println("Hello")`, + `}`), + key: ` `, + selectionStart: 16, // before `fmt` on line 2 + selectionEnd: 16, + wantCode: lines( + `func main(){`, + ` fmt.Println("Hello")`, + `}`), + wantSelectionStart: 14, // after new tab on line 2 + wantSelectionEnd: 14, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `normalizing tab space mixture`, + code: ` func main(){}`, + key: ` `, + selectionStart: 11, // before 'f' + selectionEnd: 11, + wantCode: ` func main(){}`, + wantSelectionStart: 6, // before 'f' + wantSelectionEnd: 6, + wantPrefentDefault: true, + }) +} + +func Test_Editor_ProcessKeyDown_Tab(t *testing.T) { + runKeyDownTest(t, testKeyDown{ + name: `caret on blank line`, + code: lines( + `func main() {`, + ``, + `}`), + key: `Tab`, + selectionStart: 14, + selectionEnd: 14, + wantCode: lines( + `func main() {`, + ` `, + `}`), + wantSelectionStart: 15, + wantSelectionEnd: 15, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `with ctrl`, + code: `func main() {}`, + key: `Tab`, + ctrl: true, + wantPrefentDefault: false, // allow default behavior to change focus + }) + + runKeyDownTest(t, testKeyDown{ + name: `indent with selected front`, + code: `func main() {}`, + key: `Tab`, + selectionStart: 0, // select `func` + selectionEnd: 4, + wantCode: ` func main() {}`, + wantSelectionStart: 0, // before added tab + wantSelectionEnd: 5, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `indent with not selected front`, + code: `func main() {}`, + key: `Tab`, + selectionStart: 1, // select `unc` + selectionEnd: 4, + wantCode: ` func main() {}`, + wantSelectionStart: 2, // select `unc` + wantSelectionEnd: 5, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `indent multiple lines`, + code: lines( + `func main() {`, + ` // The following is always true`, + ` if true {`, + ` // I have a dragon!`, + ` fmt.Println("Hello")`, + ` }`, + `}`), + key: `Tab`, + selectionStart: 18, // before the 'T' on line 2 + selectionEnd: 104, // before the '}' on line 6 + wantCode: lines( + `func main() {`, + ` // The following is always true`, + ` if true {`, + ` // I have a dragon!`, + ` fmt.Println("Hello")`, + ` }`, + `}`), + wantSelectionStart: 19, + wantSelectionEnd: 109, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `indent with blank lines`, + code: lines( + `func main() {`, + ` `, + ` fmt.Println("Hello")`, + ``, + `}`), + key: `Tab`, + selectionStart: 15, // after first tab on line 2 + selectionEnd: 40, // at front of line 4 + wantCode: lines( + `func main() {`, + ` `, + ` fmt.Println("Hello")`, + ``, + `}`), + wantSelectionStart: 15, + wantSelectionEnd: 41, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `un-indent with selection`, + code: ` func main() {}`, + key: `Tab`, + shift: true, + selectionStart: 2, // select `unc` + selectionEnd: 5, + wantCode: `func main() {}`, + wantSelectionStart: 1, // select `unc` + wantSelectionEnd: 4, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `un-indent multiple lines`, + code: lines( + `func main() {`, + ` // The following is always true`, + ` if true {`, + ` // I have a dragon!`, + ` fmt.Println("Hello")`, + ` }`, + `}`), + key: `Tab`, + shift: true, + selectionStart: 19, // before the 'T' on line 2 + selectionEnd: 109, // before the '}' on line 6 + wantCode: lines( + `func main() {`, + ` // The following is always true`, + ` if true {`, + ` // I have a dragon!`, + ` fmt.Println("Hello")`, + ` }`, + `}`), + wantSelectionStart: 18, + wantSelectionEnd: 104, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `un-indent with blank lines`, + code: lines( + `func main() {`, + ` `, + ` fmt.Println("Hello")`, + ``, + `}`), + key: `Tab`, + shift: true, + selectionStart: 15, // after first tab on line 2 + selectionEnd: 41, // at front of line 4 + wantCode: lines( + `func main() {`, + ` `, + ` fmt.Println("Hello")`, + ``, + `}`), + wantSelectionStart: 15, + wantSelectionEnd: 38, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `un-indent with spaces`, + code: lines( + `func main() {`, + ` // The following is always true`, + ` if true {`, + ` // I have a dragon!`, + ` fmt.Println("Hello")`, + ` }`, + `}`), + key: `Tab`, + shift: true, + selectionStart: 21, // before the 'T' on line 2 + selectionEnd: 130, // before the '}' on line 6 + wantCode: lines( + `func main() {`, + `// The following is always true`, + `if true {`, + ` // I have a dragon!`, + ` fmt.Println("Hello")`, + `}`, + `}`), + wantSelectionStart: 17, + wantSelectionEnd: 110, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `indent nothing`, + code: "\n\n\n", + key: `Tab`, + selectionStart: 0, + selectionEnd: 3, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `un-indent nothing`, + code: "\n\n\n", + key: `Tab`, + shift: true, + selectionStart: 0, + selectionEnd: 3, + wantPrefentDefault: true, + }) +} + +func Test_Editor_findMatchingOpeningBrace(t *testing.T) { + tests := []struct { + name string + code string + caret int + exp int + }{ + { + name: `empty code`, + code: ``, + caret: 0, + exp: -1, + }, + { + name: `no braces`, + code: `fmt.Println("Hello")`, + caret: 4, // after `fmt.` + exp: -1, + }, + { + name: `adjacent parenthesis`, + code: `func main()`, + caret: 10, // before `)` + exp: 9, // before `(` + }, + { + name: `simple parenthesis`, + code: `fmt.Println("Hello")`, + caret: 19, // before `)` + exp: 11, // before `(` + }, + { + name: `nested braces`, + code: lines( + `func main() {`, + ` if true {`, + ` fmt.Println("Hello")`, + ` }`, + `}`), + caret: 51, // before last `}` on line 5 + exp: 12, // before `{` on line 1 + }, + { + name: `too many`, + code: `{[()]})`, + caret: 6, // before last `)` + exp: -1, // no matching opening parenthesis + }, + { + name: `just right outter`, + code: `({[()]})`, + caret: 7, // before last `)` + exp: 0, // before first `(` + }, + { + name: `just right inner`, + code: `({[()]})`, + caret: 5, // before `]` + exp: 2, // before `[` + }, + { + name: `mismatched at end`, + code: `[{[()]})`, + caret: 7, // before last `)` + exp: -1, // no matching opening parenthesis + }, + { + name: `mismatched in middle`, + code: `({[{)]})`, + caret: 7, // before last `)` + exp: -1, // no matching opening parenthesis + }, + { + // This is a known limitation since we don't parse strings. + // Since the brace matching is to help with indents, + // this is acceptable for now. It won't be hit too often in + // practice without unmatched braces in multiple strings. + name: `quotes do not work yet`, + code: `fmt.Println("(")`, + caret: 15, // before `)` + exp: 13, // incorrectly before `(` in quotes + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := findMatchingOpeningBrace(tt.code, tt.caret) + check(t, `position`, got, tt.exp) + }) + } +} + +func Test_Editor_ProcessKeyDown_Newline(t *testing.T) { + runKeyDownTest(t, testKeyDown{ + name: `with ctrl does default`, + code: `func main() {}`, + key: `Enter`, + ctrl: true, + wantPrefentDefault: false, // allow default behavior to change focus + }) + + runKeyDownTest(t, testKeyDown{ + name: `with shift does default`, + code: `func main() {}`, + key: `Enter`, + shift: true, + wantPrefentDefault: false, // allow default behavior to change focus + }) + + runKeyDownTest(t, testKeyDown{ + name: `deletes selection`, + code: `func main()catdog`, + key: `Enter`, + selectionStart: 11, // select `cat` + selectionEnd: 14, + wantCode: lines( + `func main()`, + `dog`), + wantSelectionStart: 12, // before `dog` + wantSelectionEnd: 12, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `no selection and no indents`, + code: `func main()catdog`, + key: `Enter`, + selectionStart: 14, // after `cat` + selectionEnd: 14, + wantCode: lines( + `func main()cat`, + `dog`), + wantSelectionStart: 15, // before `dog` + wantSelectionEnd: 15, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `with indents and no selection`, + code: lines( + ` x`, + ``, + ` func main()catdog`, + ` `), + key: `Enter`, + selectionStart: 24, // after `cat` + selectionEnd: 24, + wantCode: lines( + ` x`, + ``, + ` func main()cat`, + ` dog`, + ` `), + wantSelectionStart: 30, // before `dog` + wantSelectionEnd: 30, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `with selection and indents`, + code: lines( + ` cat`, + ``, + ` dog`), + key: `Enter`, + selectionStart: 5, // selecting from `t` to `d` + selectionEnd: 15, + wantCode: lines( + ` ca`, + ` og`), + wantSelectionStart: 9, // before `og` + wantSelectionEnd: 9, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `after opening curly brace`, + code: lines( + `func main() {`, + ` foo{cat`, + `}`), + key: `Enter`, + selectionStart: 19, // after `foo{` + selectionEnd: 19, + wantCode: lines( + `func main() {`, + ` foo{`, + ` cat`, + `}`), + wantSelectionStart: 22, // before `cat` + wantSelectionEnd: 22, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `before closing curly brace`, + code: lines( + `func main() {`, + ` foo{`, + ``, + ` [({})]`, + ` dog`, + ` cat}`, + `}`), + key: `Enter`, + selectionStart: 46, // after `cat` and before `}` + selectionEnd: 46, + wantCode: lines( + `func main() {`, + ` foo{`, + ``, + ` [({})]`, + ` dog`, + ` cat`, + ` `, + ` }`, // matches indent of `foo{` with paired opening brace + `}`), + wantSelectionStart: 49, // after tabs on line 7 + wantSelectionEnd: 49, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `between curly braces`, + code: lines( + `func main() {`, + ` foo{}`, + `}`), + key: `Enter`, + selectionStart: 19, // before `}` on line 2 + selectionEnd: 19, + wantCode: lines( + `func main() {`, + ` foo{`, + ` `, + ` }`, + `}`), + wantSelectionStart: 22, // after tabs on line 3 + wantSelectionEnd: 22, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `between square braces`, + code: lines( + `func main() {`, + ` foo[]`, + `}`), + key: `Enter`, + selectionStart: 19, // before `]` + selectionEnd: 19, + wantCode: lines( + `func main() {`, + ` foo[`, + ` `, + ` ]`, + `}`), + wantSelectionStart: 22, // after tabs on line 3 + wantSelectionEnd: 22, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `between parentheses`, + code: lines( + `func main() {`, + ` foo()`, + `}`), + key: `Enter`, + selectionStart: 19, // before `)` on line 2 + selectionEnd: 19, + wantCode: lines( + `func main() {`, + ` foo(`, + ` `, + ` )`, + `}`), + wantSelectionStart: 22, // after tabs on line 3 + wantSelectionEnd: 22, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `between angle brackets`, + code: lines( + `func main() {`, + ` foo<>`, + `}`), + key: `Enter`, + selectionStart: 19, // before `>` + selectionEnd: 19, + wantCode: lines( + `func main() {`, + ` foo<`, // no extra indent for angle brackets + ` >`, + `}`), + wantSelectionStart: 21, // before `>` + wantSelectionEnd: 21, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `at front of code`, + code: `func main() {}`, + key: `Enter`, + selectionStart: 0, // before `func` + selectionEnd: 0, + wantCode: lines( + ``, + `func main() {}`), + wantSelectionStart: 1, // before `func` + wantSelectionEnd: 1, + wantPrefentDefault: true, + }) +} + +func Test_Editor_ProcessKeyDown_SelectedLines(t *testing.T) { + tests := []struct { + name string + code string + selectionStart int + selectionEnd int + wantStartLine int + wantEndLine int + wantSelectedLines []string + }{ + { + name: `caret at front of first`, + code: "dog\ncat\ncow", + selectionStart: 0, // before `d` + selectionEnd: 0, + wantStartLine: 0, + wantEndLine: 4, + wantSelectedLines: []string{"dog\n"}, + }, + { + name: `caret at end of first line`, + code: "dog\ncat\ncow", + selectionStart: 3, // after `g` + selectionEnd: 3, + wantStartLine: 0, + wantEndLine: 4, + wantSelectedLines: []string{"dog\n"}, + }, + { + name: `caret at front of seond line`, + code: "dog\ncat\ncow", + selectionStart: 4, // before `c` + selectionEnd: 4, + wantStartLine: 4, + wantEndLine: 8, + wantSelectedLines: []string{"cat\n"}, + }, + { + name: `caret at end of third line`, + code: "dog\ncat\ncow", + selectionStart: 11, // after `w` + selectionEnd: 11, + wantStartLine: 8, + wantEndLine: 11, + wantSelectedLines: []string{`cow`}, + }, + { + name: `selecting first two lines`, + code: "dog\ncat\ncow", + selectionStart: 2, // after `o` in `dog` + selectionEnd: 6, // before `t` + wantStartLine: 0, + wantEndLine: 8, + wantSelectedLines: []string{"dog\n", "cat\n"}, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + cb := &fakeCodeBox{ + initCode: tt.code, + initSelectionStart: tt.selectionStart, + initSelectionEnd: tt.selectionEnd, + } + ce := &codeEditor{CodeBoxWrapper: cb} + lineSel := ce.getSelectedLines() + check(t, `startLine`, lineSel.Start, tt.wantStartLine) + check(t, `endLine`, lineSel.End, tt.wantEndLine) + + gotSelectedLines := []string{} + ce.foreachLine(lineSel, func(line string, _ Selection) bool { + gotSelectedLines = append(gotSelectedLines, line) + return true + }) + check(t, `selectedLines`, gotSelectedLines, tt.wantSelectedLines) + }) + } +} + +func Test_Editor_ProcessKeyDown_CommentToggle(t *testing.T) { + runKeyDownTest(t, testKeyDown{ + name: `with shift does default`, + code: `func main() {}`, + key: `/`, // with the shift should be `?` but check it anyway + shift: true, + ctrl: true, + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `without ctrl does default`, + code: `func main() {}`, + key: `/`, + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `comment without comments`, + code: lines( + `func main() {`, + ` if true {`, + ` fmt.Println("Hello")`, + ` }`, + `}`), + key: `/`, + ctrl: true, + selectionStart: 18, // before `true` + selectionEnd: 30, // after `fmt` + wantCode: lines( + `func main() {`, + ` // if true {`, + ` // fmt.Println("Hello")`, + ` }`, + `}`), + wantSelectionStart: 21, // selection adjusted for added `// `s + wantSelectionEnd: 36, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `comment with some comments`, + code: lines( + `func main() {`, + ` // The following is always true`, + ` if true {`, + ` // I have a dragon!`, + ` fmt.Println("Hello")`, + ` }`, + `}`), + key: `/`, + ctrl: true, + selectionStart: 22, // before `following` + selectionEnd: 86, // after `fmt` + wantCode: lines( + `func main() {`, + ` // // The following is always true`, + ` // if true {`, + ` // // I have a dragon!`, + ` // fmt.Println("Hello")`, + ` }`, + `}`), + wantSelectionStart: 25, // selection adjusted for added `// `s + wantSelectionEnd: 98, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `comment with blank line`, + code: lines( + `func main() {`, + ` if true {`, + ` `, + ` fmt.Println("Hello")`, + ` }`, + `}`), + key: `/`, + ctrl: true, + selectionStart: 18, // before `true` + selectionEnd: 33, // after `fmt` + wantCode: lines( + `func main() {`, + ` // if true {`, + ` `, + ` // fmt.Println("Hello")`, + ` }`, + `}`), + wantSelectionStart: 21, // selection adjusted for added `// `s + wantSelectionEnd: 39, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `only blank lines`, + code: lines( + `func main() {`, + ` `, + ``, + ` `, + `}`), + key: `/`, + ctrl: true, + selectionStart: 15, // end of line 2 + selectionEnd: 19, // middle of line 4 + wantCode: ``, // no code change set. + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `uncomment lines`, + code: lines( + `func main() {`, + ` // // The following is always true`, + ` // if true {`, + ` // // I have a dragon!`, + ` // fmt.Println("Hello")`, + ` }`, + `}`), + key: `/`, + ctrl: true, + selectionStart: 25, // before `following` + selectionEnd: 98, // after `fmt` + wantCode: lines( + `func main() {`, + ` // The following is always true`, + ` if true {`, + ` // I have a dragon!`, + ` fmt.Println("Hello")`, + ` }`, + `}`), + wantSelectionStart: 22, // selection adjusted for removed `// `s + wantSelectionEnd: 86, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `uncomment with blank line`, + code: lines( + `func main() {`, + ` // if true {`, + ` `, + ` // fmt.Println("Hello")`, + ` }`, + `}`), + key: `/`, + ctrl: true, + selectionStart: 21, // before `true` + selectionEnd: 39, // after `fmt` + wantCode: lines( + `func main() {`, + ` if true {`, + ` `, + ` fmt.Println("Hello")`, + ` }`, + `}`), + wantSelectionStart: 18, // selection adjusted for removed `// `s + wantSelectionEnd: 33, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `comment caret`, + code: lines( + `func main() {`, + ` fmt.Println("Hello")`, + `}`), + key: `/`, + ctrl: true, + selectionStart: 18, // after `fmt` + selectionEnd: 18, + wantCode: lines( + `func main() {`, + ` // fmt.Println("Hello")`, + `}`), + wantSelectionStart: 21, // selection adjusted for added `// `s + wantSelectionEnd: 21, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `uncomment caret`, + code: lines( + `func main() {`, + ` // fmt.Println("Hello")`, + `}`), + key: `/`, + ctrl: true, + selectionStart: 21, // after `fmt` + selectionEnd: 21, + wantCode: lines( + `func main() {`, + ` fmt.Println("Hello")`, + `}`), + wantSelectionStart: 18, // selection adjusted for removed `// `s + wantSelectionEnd: 18, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `comment only moves selection if after changes`, + code: lines( + `func main() {`, + ` if true {`, + ` fmt.Println("Hello")`, + ` }`, + `}`), + key: `/`, + ctrl: true, + selectionStart: 14, // at front of line 2 + selectionEnd: 48, // at front of line 4 + wantCode: lines( + `func main() {`, + ` // if true {`, + ` // fmt.Println("Hello")`, + ` // }`, + `}`), + wantSelectionStart: 14, // before added `// `s + wantSelectionEnd: 54, // before last added `// `s + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `uncomment only moves selection if after changes`, + code: lines( + `func main() {`, + ` // if true {`, + ` // fmt.Println("Hello")`, + ` // }`, + `}`), + key: `/`, + ctrl: true, + selectionStart: 14, // at front of line 2 + selectionEnd: 54, // at front of line 4 + wantCode: lines( + `func main() {`, + ` if true {`, + ` fmt.Println("Hello")`, + ` }`, + `}`), + wantSelectionStart: 14, // before added `// `s + wantSelectionEnd: 48, // before last added `// `s + wantPrefentDefault: true, + }) +} + +func Test_Editor_ProcessKeyDown_Callback(t *testing.T) { + runKeyDownTest(t, testKeyDown{ + name: `Save`, + code: "func main() {}", + key: `s`, + ctrl: true, + wantPrefentDefault: true, + wantEventCalls: map[string]int{ + SaveEvent: 1, + }, + }) + + runKeyDownTest(t, testKeyDown{ + name: `s without ctrl does default`, + code: "func main() {}", + key: `s`, + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `Escape`, + code: "func main() {}", + key: `Escape`, + wantPrefentDefault: true, + wantEventCalls: map[string]int{ + EscapeEvent: 1, + }, + }) + + runKeyDownTest(t, testKeyDown{ + name: `Undo with ctrl z`, + code: "func main() {}", + key: `z`, + ctrl: true, + wantPrefentDefault: true, + wantEventCalls: map[string]int{ + UndoEvent: 1, + }, + }) + + runKeyDownTest(t, testKeyDown{ + name: `Redo with shift ctrl z`, + code: "func main() {}", + key: `z`, + ctrl: true, + shift: true, + wantPrefentDefault: true, + wantEventCalls: map[string]int{ + RedoEvent: 1, + }, + }) + + runKeyDownTest(t, testKeyDown{ + name: `z without ctrl does default`, + code: "func main() {}", + key: `z`, + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `Redo with ctrl y`, + code: "func main() {}", + key: `y`, + ctrl: true, + wantPrefentDefault: true, + wantEventCalls: map[string]int{ + RedoEvent: 1, + }, + }) + + runKeyDownTest(t, testKeyDown{ + name: `y without ctrl does default`, + code: "func main() {}", + key: `y`, + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `ctrl y with shift does default`, + code: "func main() {}", + key: `y`, + ctrl: true, + shift: true, + wantPrefentDefault: false, + }) + +} + +func Test_Editor_ProcessKeyDown_InsertPair(t *testing.T) { + runKeyDownTest(t, testKeyDown{ + name: `Insert double quotes`, + code: `fmt.Println()`, + key: `"`, + selectionStart: 12, + selectionEnd: 12, + wantCode: `fmt.Println("")`, + wantSelectionStart: 13, // caret between the quotes + wantSelectionEnd: 13, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `Insert with selection`, + code: `fmt.Println(cat)`, + key: `"`, + selectionStart: 12, // select `cat`` + selectionEnd: 15, + wantCode: `fmt.Println("cat")`, + wantSelectionStart: 13, + wantSelectionEnd: 16, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `Insert with ctrl`, + code: `fmt.Println(cat)`, + key: `"`, + ctrl: true, + selectionStart: 12, // select `cat`` + selectionEnd: 15, + wantPrefentDefault: false, // allow default behavior + }) + + runKeyDownTest(t, testKeyDown{ + name: `Insert single quotes`, + code: `fmt.Println()`, + key: `'`, + selectionStart: 12, + selectionEnd: 12, + wantCode: `fmt.Println('')`, + wantSelectionStart: 13, // caret between the quotes + wantSelectionEnd: 13, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `Insert backticks`, + code: `fmt.Println()`, + key: "`", + selectionStart: 12, + selectionEnd: 12, + wantCode: "fmt.Println(``)", + wantSelectionStart: 13, // caret between the ticks + wantSelectionEnd: 13, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `Insert parentheses`, + code: `fmt.Println()`, + key: `(`, + selectionStart: 12, + selectionEnd: 12, + wantCode: `fmt.Println(())`, + wantSelectionStart: 13, // caret between the parentheses + wantSelectionEnd: 13, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `Insert square brackets`, + code: `fmt.Println()`, + key: `[`, + selectionStart: 12, + selectionEnd: 12, + wantCode: `fmt.Println([])`, + wantSelectionStart: 13, // caret between the brackets + wantSelectionEnd: 13, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `Insert curly brackets`, + code: `fmt.Println()`, + key: `{`, + selectionStart: 12, + selectionEnd: 12, + wantCode: `fmt.Println({})`, + wantSelectionStart: 13, // caret between the brackets + wantSelectionEnd: 13, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `Angle brackets do not pair`, + code: `fmt.Println()`, + key: `<`, + selectionStart: 12, + selectionEnd: 12, + wantPrefentDefault: false, + }) +} + +func Test_Editor_ProcessKeyDown_MultilineComment(t *testing.T) { + runKeyDownTest(t, testKeyDown{ + name: `Insert comment`, + code: `fmt.Println(/)`, + key: `*`, + shift: true, + selectionStart: 13, + selectionEnd: 13, + wantCode: `fmt.Println(/**/)`, + wantSelectionStart: 14, // caret between the asterisks + wantSelectionEnd: 14, + wantPrefentDefault: true, + }) + + runKeyDownTest(t, testKeyDown{ + name: `with ctrl does default`, + code: `fmt.Println(/)`, + key: `*`, + shift: true, + ctrl: true, + selectionStart: 13, + selectionEnd: 13, + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `without shift does default`, + code: `fmt.Println(/)`, + key: `*`, // shouln't be possible because this would be an `8`.` + selectionStart: 13, + selectionEnd: 13, + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `with selection does default`, + code: `fmt.Println(/cat)`, + key: `*`, + shift: true, + selectionStart: 13, + selectionEnd: 16, + wantPrefentDefault: false, + }) + + runKeyDownTest(t, testKeyDown{ + name: `without preceding / does default`, + code: `fmt.Println()`, + key: `*`, + shift: true, + selectionStart: 12, + selectionEnd: 12, + wantPrefentDefault: false, + }) +} + +type testKeyDown struct { + name string + code string + key string + shift bool + ctrl bool + selectionStart int + selectionEnd int + + wantCode string + wantSelectionStart int + wantSelectionEnd int + wantPrefentDefault bool + wantEventCalls map[string]int +} + +func runKeyDownTest(t *testing.T, tt testKeyDown) { + t.Helper() + t.Run(tt.name, func(t *testing.T) { + cb := &fakeCodeBox{ + initCode: tt.code, + initSelectionStart: tt.selectionStart, + initSelectionEnd: tt.selectionEnd, + } + gotPreventDefault := ProcessKeyDown(cb, tt.key, tt.shift, tt.ctrl) + check(t, `code`, cb.gotCode, tt.wantCode) + check(t, `selectedStart`, cb.gotSelectionStart, tt.wantSelectionStart) + check(t, `selectedEnd`, cb.gotSelectionEnd, tt.wantSelectionEnd) + check(t, `preventDefault`, gotPreventDefault, tt.wantPrefentDefault) + check(t, `eventCalls`, cb.gotEventCalls, tt.wantEventCalls) + }) +} + +type fakeCodeBox struct { + initCode string + initSelectionStart int + initSelectionEnd int + + gotCode string + gotSelectionStart int + gotSelectionEnd int + gotEventCalls map[string]int +} + +var _ CodeBoxWrapper = (*fakeCodeBox)(nil) + +func (cb *fakeCodeBox) Code() string { return cb.initCode } + +func (cb *fakeCodeBox) EmitEvent(event string) { + if cb.gotEventCalls == nil { + cb.gotEventCalls = map[string]int{} + } + cb.gotEventCalls[event]++ +} + +func (cb *fakeCodeBox) GetSelection() Selection { + return Selection{Start: cb.initSelectionStart, End: cb.initSelectionEnd} +} + +func (cb *fakeCodeBox) SetCode(sel Selection, code string) { + if cb.gotCode != "" { + panic(errors.New(`SetCode called multiple times`)) + } + cb.gotCode = code + cb.gotSelectionStart = sel.Start + cb.gotSelectionEnd = sel.End +} + +func lines(lines ...string) string { + return strings.Join(lines, "\n") +} + +func check[T any](t *testing.T, name string, got, want T) { + t.Helper() + + switch any(want).(type) { + case string: + wantStr, gotStr := any(want).(string), any(got).(string) + wantLines := strings.Split(wantStr, "\n") + gotLines := strings.Split(gotStr, "\n") + if diff := cmp.Diff(wantLines, gotLines); len(diff) > 0 { + diff = strings.ReplaceAll(diff, "\n", "\n ") + t.Errorf("%s was not as expected:\n"+ + " want: %q\n"+ + " got: %q\n"+ + " diff:\n%s", name, wantStr, gotStr, diff) + } + return + } + + kind := reflect.TypeOf(want).Kind() + if kind == reflect.Slice || kind == reflect.Map || kind == reflect.Struct { + if diff := cmp.Diff(want, got); len(diff) > 0 { + diff = strings.ReplaceAll(diff, "\n", "\n ") + t.Errorf("%s was not as expected:\n"+ + " want: %v\n"+ + " got: %v\n"+ + " diff:\n%s", name, want, got, diff) + } + return + } + + if !reflect.DeepEqual(got, want) { + t.Errorf("%s was not as expected:\n"+ + " want: %v\n"+ + " got: %v", name, want, got) + } +} diff --git a/playground/internal/editor/undo.go b/playground/internal/editor/undo.go new file mode 100644 index 00000000..9f0c2a5c --- /dev/null +++ b/playground/internal/editor/undo.go @@ -0,0 +1,111 @@ +package editor + +import "time" + +const undoRedoJoinDuration = time.Second + +type undoRedoState struct { + prefix int + suffix int + oldCode string + newCode string + oldSel Selection + newSel Selection +} + +type UndoRedoStack struct { + undos []*undoRedoState + redos []*undoRedoState + getTime func() time.Time + + lastChange time.Time + lastSel Selection +} + +func NewUndoRedoStack() *UndoRedoStack { + return &UndoRedoStack{getTime: time.Now} +} + +func (s *UndoRedoStack) PerformUndo(cb CodeBoxWrapper) { + // TODO(grantnelson-wf): Finish implmementing +} + +func (s *UndoRedoStack) PerformRedo(cb CodeBoxWrapper) { + // TODO(grantnelson-wf): Finish implmementing +} + +func (s *UndoRedoStack) RecordSelectionChange(cb CodeBoxWrapper) { + // TODO(grantnelson-wf): Finish implmementing + +} + +func (s *UndoRedoStack) RecordCodeChange(cb CodeBoxWrapper, priorCode string) { + //now := s.getTime() + + // TODO(grantnelson-wf): Finish implmementing + + s.redos = nil // clear redo stack on new code change +} + +/* +func (s *UndoRedoStack) joinStates(older, newer *undoRedoState) bool { + if newer.start.Sub(older.start) > undoRedoJoinDuration { + return false // changes happened too far apart in time to join + } + + if older.prefix > newer.prefix+len(newer.newCode) || + older.suffix > newer.suffix+len(newer.newCode) { + return false // changes don't overlap so are too far apart in code to join + } + + // TODO(grantnelson-wf): Finish implmementing + + return true +} + +func newState(priorCode, newCode string, priorSel, afterSel Selection, start time.Time) *undoRedoState { + prefixLen, suffixLen := diffTrim(priorCode, newCode) + return &undoRedoState{ + prefix: prefixLen, + suffix: suffixLen, + newCode: newCode[prefixLen : len(newCode)-suffixLen], + prior: priorSel, + after: afterSel, + start: start, + } +} +*/ + +// diffTrim returns the lengths of the common prefix and suffix between +// prior and after strings. +func diffTrim(prior, after string) (int, int) { + priorLen, afterLen := len(prior), len(after) + minLen := min(priorLen, afterLen) + + prefixLen := 0 + for prefixLen < minLen && prior[prefixLen] == after[prefixLen] { + prefixLen++ + } + if prefixLen >= minLen { + return prefixLen, 0 + } + + suffixLen := 0 + minLen -= prefixLen + priorMax, afterMax := priorLen-1, afterLen-1 + for suffixLen < minLen && prior[priorMax] == after[afterMax] { + suffixLen++ + priorMax-- + afterMax-- + } + return prefixLen, suffixLen +} + +// TODO(grantnelson-wf): Remove when `min` is available in go1.21. +// See https://pkg.go.dev/builtin#min +func min(a, b int) int { + if a < b { + return a + } + return b +} diff --git a/playground/internal/imports/gen.go b/playground/internal/imports/gen.go index 39b237e3..c6738cc2 100644 --- a/playground/internal/imports/gen.go +++ b/playground/internal/imports/gen.go @@ -1,6 +1,6 @@ -//go:generate go run mkapi.go -output=syscalljs.txt -contexts js-wasm syscall/js -//go:generate go run mkapi.go -output=gopherjs.txt -gopath github.com/gopherjs/gopherjs/js -//go:generate go run mkstdlib.go -output=zstdlib +//go:generate go1.19.13 run mkapi.go -output=syscalljs.txt -contexts js-wasm syscall/js +//go:generate go1.19.13 run mkapi.go -output=gopherjs.txt -gopath github.com/gopherjs/gopherjs/js +//go:generate go1.19.13 run mkstdlib.go -output=zstdlib //go:generate rm syscalljs.txt gopherjs.txt package imports diff --git a/playground/internal/imports/mkapi.go b/playground/internal/imports/mkapi.go index 75174161..4fce4df9 100644 --- a/playground/internal/imports/mkapi.go +++ b/playground/internal/imports/mkapi.go @@ -1,3 +1,4 @@ +//go:build generate // +build generate // Copyright 2011 The Go Authors. All rights reserved. diff --git a/playground/internal/imports/sortimports.go b/playground/internal/imports/sortimports.go index 68b3dc4e..b70e2345 100644 --- a/playground/internal/imports/sortimports.go +++ b/playground/internal/imports/sortimports.go @@ -1,3 +1,4 @@ +//go:build go1.2 // +build go1.2 // Copyright 2013 The Go Authors. All rights reserved. diff --git a/playground/internal/imports/zstdlib.go b/playground/internal/imports/zstdlib.go index 4dcb554d..05368c34 100644 --- a/playground/internal/imports/zstdlib.go +++ b/playground/internal/imports/zstdlib.go @@ -37,6 +37,7 @@ var stdlib = map[string]string{ "ast.FilterImportDuplicates": "go/ast", "ast.FilterUnassociatedComments": "go/ast", "ast.Fun": "go/ast", + "ast.IndexListExpr": "go/ast", "ast.Lbl": "go/ast", "ast.NewCommentMap": "go/ast", "ast.Pkg": "go/ast", @@ -44,12 +45,19 @@ var stdlib = map[string]string{ "ast.SEND": "go/ast", "ast.Typ": "go/ast", "ast.Var": "go/ast", + "atomic.Bool": "sync/atomic", + "atomic.Int32": "sync/atomic", + "atomic.Int64": "sync/atomic", + "atomic.Pointer": "sync/atomic", "atomic.SwapInt32": "sync/atomic", "atomic.SwapInt64": "sync/atomic", "atomic.SwapPointer": "sync/atomic", "atomic.SwapUint32": "sync/atomic", "atomic.SwapUint64": "sync/atomic", "atomic.SwapUintptr": "sync/atomic", + "atomic.Uint32": "sync/atomic", + "atomic.Uint64": "sync/atomic", + "atomic.Uintptr": "sync/atomic", "atomic.Value": "sync/atomic", "base32.NoPadding": "encoding/base32", "base32.StdPadding": "encoding/base32", @@ -78,6 +86,9 @@ var stdlib = map[string]string{ "big.ToPositiveInf": "math/big", "big.ToZero": "math/big", "big.Word": "math/big", + "binary.AppendByteOrder": "encoding/binary", + "binary.AppendUvarint": "encoding/binary", + "binary.AppendVarint": "encoding/binary", "binary.MaxVarintLen16": "encoding/binary", "binary.MaxVarintLen32": "encoding/binary", "binary.MaxVarintLen64": "encoding/binary", @@ -149,8 +160,12 @@ var stdlib = map[string]string{ "build.IgnoreVendor": "go/build", "build.ImportComment": "go/build", "build.MultiplePackageError": "go/build", + "buildinfo.BuildInfo": "debug/buildinfo", + "buildinfo.Read": "debug/buildinfo", + "buildinfo.ReadFile": "debug/buildinfo", "bytes.ContainsAny": "bytes", "bytes.ContainsRune": "bytes", + "bytes.Cut": "bytes", "bytes.LastIndexByte": "bytes", "bytes.MinRead": "bytes", "bytes.ReplaceAll": "bytes", @@ -169,6 +184,20 @@ var stdlib = map[string]string{ "color.NYCbCrA": "image/color", "color.NYCbCrAModel": "image/color", "color.RGBToCMYK": "image/color", + "comment.Code": "go/doc/comment", + "comment.DefaultLookupPackage": "go/doc/comment", + "comment.Doc": "go/doc/comment", + "comment.DocLink": "go/doc/comment", + "comment.Heading": "go/doc/comment", + "comment.Italic": "go/doc/comment", + "comment.Link": "go/doc/comment", + "comment.LinkDef": "go/doc/comment", + "comment.List": "go/doc/comment", + "comment.ListItem": "go/doc/comment", + "comment.Paragraph": "go/doc/comment", + "comment.Parser": "go/doc/comment", + "comment.Plain": "go/doc/comment", + "comment.Printer": "go/doc/comment", "constant.BinaryOp": "go/constant", "constant.BitLen": "go/constant", "constant.Bool": "go/constant", @@ -262,14 +291,17 @@ var stdlib = map[string]string{ "crypto.Signer": "crypto", "crypto.SignerOpts": "crypto", "debug.BuildInfo": "runtime/debug", + "debug.BuildSetting": "runtime/debug", "debug.FreeOSMemory": "runtime/debug", "debug.GCStats": "runtime/debug", "debug.Module": "runtime/debug", + "debug.ParseBuildInfo": "runtime/debug", "debug.ReadBuildInfo": "runtime/debug", "debug.ReadGCStats": "runtime/debug", "debug.SetGCPercent": "runtime/debug", "debug.SetMaxStack": "runtime/debug", "debug.SetMaxThreads": "runtime/debug", + "debug.SetMemoryLimit": "runtime/debug", "debug.SetPanicOnFault": "runtime/debug", "debug.SetTraceback": "runtime/debug", "debug.WriteHeapDump": "runtime/debug", @@ -807,6 +839,7 @@ var stdlib = map[string]string{ "elf.EM_L10M": "debug/elf", "elf.EM_LANAI": "debug/elf", "elf.EM_LATTICEMICO32": "debug/elf", + "elf.EM_LOONGARCH": "debug/elf", "elf.EM_M16C": "debug/elf", "elf.EM_M32": "debug/elf", "elf.EM_M32C": "debug/elf", @@ -1367,6 +1400,57 @@ var stdlib = map[string]string{ "elf.R_ARM_TLS_TPOFF32": "debug/elf", "elf.R_ARM_V4BX": "debug/elf", "elf.R_ARM_XPC25": "debug/elf", + "elf.R_LARCH": "debug/elf", + "elf.R_LARCH_32": "debug/elf", + "elf.R_LARCH_64": "debug/elf", + "elf.R_LARCH_ADD16": "debug/elf", + "elf.R_LARCH_ADD24": "debug/elf", + "elf.R_LARCH_ADD32": "debug/elf", + "elf.R_LARCH_ADD64": "debug/elf", + "elf.R_LARCH_ADD8": "debug/elf", + "elf.R_LARCH_COPY": "debug/elf", + "elf.R_LARCH_IRELATIVE": "debug/elf", + "elf.R_LARCH_JUMP_SLOT": "debug/elf", + "elf.R_LARCH_MARK_LA": "debug/elf", + "elf.R_LARCH_MARK_PCREL": "debug/elf", + "elf.R_LARCH_NONE": "debug/elf", + "elf.R_LARCH_RELATIVE": "debug/elf", + "elf.R_LARCH_SOP_ADD": "debug/elf", + "elf.R_LARCH_SOP_AND": "debug/elf", + "elf.R_LARCH_SOP_ASSERT": "debug/elf", + "elf.R_LARCH_SOP_IF_ELSE": "debug/elf", + "elf.R_LARCH_SOP_NOT": "debug/elf", + "elf.R_LARCH_SOP_POP_32_S_0_10_10_16_S2": "debug/elf", + "elf.R_LARCH_SOP_POP_32_S_0_5_10_16_S2": "debug/elf", + "elf.R_LARCH_SOP_POP_32_S_10_12": "debug/elf", + "elf.R_LARCH_SOP_POP_32_S_10_16": "debug/elf", + "elf.R_LARCH_SOP_POP_32_S_10_16_S2": "debug/elf", + "elf.R_LARCH_SOP_POP_32_S_10_5": "debug/elf", + "elf.R_LARCH_SOP_POP_32_S_5_20": "debug/elf", + "elf.R_LARCH_SOP_POP_32_U": "debug/elf", + "elf.R_LARCH_SOP_POP_32_U_10_12": "debug/elf", + "elf.R_LARCH_SOP_PUSH_ABSOLUTE": "debug/elf", + "elf.R_LARCH_SOP_PUSH_DUP": "debug/elf", + "elf.R_LARCH_SOP_PUSH_GPREL": "debug/elf", + "elf.R_LARCH_SOP_PUSH_PCREL": "debug/elf", + "elf.R_LARCH_SOP_PUSH_PLT_PCREL": "debug/elf", + "elf.R_LARCH_SOP_PUSH_TLS_GD": "debug/elf", + "elf.R_LARCH_SOP_PUSH_TLS_GOT": "debug/elf", + "elf.R_LARCH_SOP_PUSH_TLS_TPREL": "debug/elf", + "elf.R_LARCH_SOP_SL": "debug/elf", + "elf.R_LARCH_SOP_SR": "debug/elf", + "elf.R_LARCH_SOP_SUB": "debug/elf", + "elf.R_LARCH_SUB16": "debug/elf", + "elf.R_LARCH_SUB24": "debug/elf", + "elf.R_LARCH_SUB32": "debug/elf", + "elf.R_LARCH_SUB64": "debug/elf", + "elf.R_LARCH_SUB8": "debug/elf", + "elf.R_LARCH_TLS_DTPMOD32": "debug/elf", + "elf.R_LARCH_TLS_DTPMOD64": "debug/elf", + "elf.R_LARCH_TLS_DTPREL32": "debug/elf", + "elf.R_LARCH_TLS_DTPREL64": "debug/elf", + "elf.R_LARCH_TLS_TPREL32": "debug/elf", + "elf.R_LARCH_TLS_TPREL64": "debug/elf", "elf.R_MIPS": "debug/elf", "elf.R_MIPS_16": "debug/elf", "elf.R_MIPS_26": "debug/elf", @@ -1496,6 +1580,7 @@ var stdlib = map[string]string{ "elf.R_PPC64_REL24_NOTOC": "debug/elf", "elf.R_PPC64_REL32": "debug/elf", "elf.R_PPC64_REL64": "debug/elf", + "elf.R_PPC64_RELATIVE": "debug/elf", "elf.R_PPC64_SECTOFF_DS": "debug/elf", "elf.R_PPC64_SECTOFF_LO_DS": "debug/elf", "elf.R_PPC64_TLS": "debug/elf", @@ -1841,6 +1926,7 @@ var stdlib = map[string]string{ "errors.Is": "errors", "errors.Unwrap": "errors", "exec.CommandContext": "os/exec", + "exec.ErrDot": "os/exec", "expvar.Handler": "expvar", "fcgi.ErrConnClosed": "net/http/fcgi", "fcgi.ErrRequestAborted": "net/http/fcgi", @@ -1854,6 +1940,7 @@ var stdlib = map[string]string{ "flag.Func": "flag", "flag.Getter": "flag", "flag.PanicOnError": "flag", + "flag.TextVar": "flag", "flag.UnquoteUsage": "flag", "flate.BestCompression": "compress/flate", "flate.BestSpeed": "compress/flate", @@ -1861,6 +1948,9 @@ var stdlib = map[string]string{ "flate.HuffmanOnly": "compress/flate", "flate.NoCompression": "compress/flate", "flate.Resetter": "compress/flate", + "fmt.Append": "fmt", + "fmt.Appendf": "fmt", + "fmt.Appendln": "fmt", "fnv.New128": "hash/fnv", "fnv.New128a": "hash/fnv", "format.Node": "go/format", @@ -1936,6 +2026,8 @@ var stdlib = map[string]string{ "http.ErrUseLastResponse": "net/http", "http.FS": "net/http", "http.LocalAddrContextKey": "net/http", + "http.MaxBytesError": "net/http", + "http.MaxBytesHandler": "net/http", "http.MethodConnect": "net/http", "http.MethodDelete": "net/http", "http.MethodGet": "net/http", @@ -2072,349 +2164,381 @@ var stdlib = map[string]string{ "js.Func": "syscall/js", "js.FuncOf": "syscall/js", // "js.Global" is ambiguous - "js.InternalObject": "github.com/gopherjs/gopherjs/js", - "js.Keys": "github.com/gopherjs/gopherjs/js", - "js.M": "github.com/gopherjs/gopherjs/js", - "js.MakeFunc": "github.com/gopherjs/gopherjs/js", - "js.MakeWrapper": "github.com/gopherjs/gopherjs/js", - "js.Module": "github.com/gopherjs/gopherjs/js", - "js.NewArrayBuffer": "github.com/gopherjs/gopherjs/js", - "js.Null": "syscall/js", - "js.Object": "github.com/gopherjs/gopherjs/js", - "js.S": "github.com/gopherjs/gopherjs/js", - "js.Type": "syscall/js", - "js.TypeBoolean": "syscall/js", - "js.TypeFunction": "syscall/js", - "js.TypeNull": "syscall/js", - "js.TypeNumber": "syscall/js", - "js.TypeObject": "syscall/js", - "js.TypeString": "syscall/js", - "js.TypeSymbol": "syscall/js", - "js.TypeUndefined": "syscall/js", + "js.InternalObject": "github.com/gopherjs/gopherjs/js", + "js.Keys": "github.com/gopherjs/gopherjs/js", + "js.M": "github.com/gopherjs/gopherjs/js", + "js.MakeFullWrapper": "github.com/gopherjs/gopherjs/js", + "js.MakeFunc": "github.com/gopherjs/gopherjs/js", + "js.MakeWrapper": "github.com/gopherjs/gopherjs/js", + "js.Module": "github.com/gopherjs/gopherjs/js", + "js.NewArrayBuffer": "github.com/gopherjs/gopherjs/js", + "js.Null": "syscall/js", + "js.Object": "github.com/gopherjs/gopherjs/js", + "js.S": "github.com/gopherjs/gopherjs/js", + "js.Type": "syscall/js", + "js.TypeBoolean": "syscall/js", + "js.TypeFunction": "syscall/js", + "js.TypeNull": "syscall/js", + "js.TypeNumber": "syscall/js", + "js.TypeObject": "syscall/js", + "js.TypeString": "syscall/js", + "js.TypeSymbol": "syscall/js", + "js.TypeUndefined": "syscall/js", // "js.Undefined" is ambiguous - "js.Value": "syscall/js", - "js.ValueError": "syscall/js", - "js.ValueOf": "syscall/js", - "js.Wrapper": "syscall/js", - "json.Delim": "encoding/json", - "json.Number": "encoding/json", - "json.Token": "encoding/json", - "json.Valid": "encoding/json", - "log.Default": "log", - "log.LUTC": "log", - "log.Ldate": "log", - "log.Llongfile": "log", - "log.Lmicroseconds": "log", - "log.Lmsgprefix": "log", - "log.Lshortfile": "log", - "log.LstdFlags": "log", - "log.Ltime": "log", - "log.Output": "log", - "log.Writer": "log", - "lzw.LSB": "compress/lzw", - "lzw.MSB": "compress/lzw", - "lzw.Reader": "compress/lzw", - "lzw.Writer": "compress/lzw", - "macho.ARM64_RELOC_ADDEND": "debug/macho", - "macho.ARM64_RELOC_BRANCH26": "debug/macho", - "macho.ARM64_RELOC_GOT_LOAD_PAGE21": "debug/macho", - "macho.ARM64_RELOC_GOT_LOAD_PAGEOFF12": "debug/macho", - "macho.ARM64_RELOC_PAGE21": "debug/macho", - "macho.ARM64_RELOC_PAGEOFF12": "debug/macho", - "macho.ARM64_RELOC_POINTER_TO_GOT": "debug/macho", - "macho.ARM64_RELOC_SUBTRACTOR": "debug/macho", - "macho.ARM64_RELOC_TLVP_LOAD_PAGE21": "debug/macho", - "macho.ARM64_RELOC_TLVP_LOAD_PAGEOFF12": "debug/macho", - "macho.ARM64_RELOC_UNSIGNED": "debug/macho", - "macho.ARM_RELOC_BR24": "debug/macho", - "macho.ARM_RELOC_HALF": "debug/macho", - "macho.ARM_RELOC_HALF_SECTDIFF": "debug/macho", - "macho.ARM_RELOC_LOCAL_SECTDIFF": "debug/macho", - "macho.ARM_RELOC_PAIR": "debug/macho", - "macho.ARM_RELOC_PB_LA_PTR": "debug/macho", - "macho.ARM_RELOC_SECTDIFF": "debug/macho", - "macho.ARM_RELOC_VANILLA": "debug/macho", - "macho.ARM_THUMB_32BIT_BRANCH": "debug/macho", - "macho.ARM_THUMB_RELOC_BR22": "debug/macho", - "macho.Cpu386": "debug/macho", - "macho.CpuAmd64": "debug/macho", - "macho.CpuArm": "debug/macho", - "macho.CpuArm64": "debug/macho", - "macho.CpuPpc": "debug/macho", - "macho.CpuPpc64": "debug/macho", - "macho.ErrNotFat": "debug/macho", - "macho.FatArch": "debug/macho", - "macho.FatArchHeader": "debug/macho", - "macho.FatFile": "debug/macho", - "macho.FlagAllModsBound": "debug/macho", - "macho.FlagAllowStackExecution": "debug/macho", - "macho.FlagAppExtensionSafe": "debug/macho", - "macho.FlagBindAtLoad": "debug/macho", - "macho.FlagBindsToWeak": "debug/macho", - "macho.FlagCanonical": "debug/macho", - "macho.FlagDeadStrippableDylib": "debug/macho", - "macho.FlagDyldLink": "debug/macho", - "macho.FlagForceFlat": "debug/macho", - "macho.FlagHasTLVDescriptors": "debug/macho", - "macho.FlagIncrLink": "debug/macho", - "macho.FlagLazyInit": "debug/macho", - "macho.FlagNoFixPrebinding": "debug/macho", - "macho.FlagNoHeapExecution": "debug/macho", - "macho.FlagNoMultiDefs": "debug/macho", - "macho.FlagNoReexportedDylibs": "debug/macho", - "macho.FlagNoUndefs": "debug/macho", - "macho.FlagPIE": "debug/macho", - "macho.FlagPrebindable": "debug/macho", - "macho.FlagPrebound": "debug/macho", - "macho.FlagRootSafe": "debug/macho", - "macho.FlagSetuidSafe": "debug/macho", - "macho.FlagSplitSegs": "debug/macho", - "macho.FlagSubsectionsViaSymbols": "debug/macho", - "macho.FlagTwoLevel": "debug/macho", - "macho.FlagWeakDefines": "debug/macho", - "macho.GENERIC_RELOC_LOCAL_SECTDIFF": "debug/macho", - "macho.GENERIC_RELOC_PAIR": "debug/macho", - "macho.GENERIC_RELOC_PB_LA_PTR": "debug/macho", - "macho.GENERIC_RELOC_SECTDIFF": "debug/macho", - "macho.GENERIC_RELOC_TLV": "debug/macho", - "macho.GENERIC_RELOC_VANILLA": "debug/macho", - "macho.LoadCmdDylib": "debug/macho", - "macho.LoadCmdDylinker": "debug/macho", - "macho.LoadCmdDysymtab": "debug/macho", - "macho.LoadCmdRpath": "debug/macho", - "macho.LoadCmdSegment": "debug/macho", - "macho.LoadCmdSegment64": "debug/macho", - "macho.LoadCmdSymtab": "debug/macho", - "macho.LoadCmdThread": "debug/macho", - "macho.LoadCmdUnixThread": "debug/macho", - "macho.Magic32": "debug/macho", - "macho.Magic64": "debug/macho", - "macho.MagicFat": "debug/macho", - "macho.NewFatFile": "debug/macho", - "macho.OpenFat": "debug/macho", - "macho.Reloc": "debug/macho", - "macho.RelocTypeARM": "debug/macho", - "macho.RelocTypeARM64": "debug/macho", - "macho.RelocTypeGeneric": "debug/macho", - "macho.RelocTypeX86_64": "debug/macho", - "macho.Rpath": "debug/macho", - "macho.RpathCmd": "debug/macho", - "macho.TypeBundle": "debug/macho", - "macho.TypeDylib": "debug/macho", - "macho.TypeExec": "debug/macho", - "macho.TypeObj": "debug/macho", - "macho.X86_64_RELOC_BRANCH": "debug/macho", - "macho.X86_64_RELOC_GOT": "debug/macho", - "macho.X86_64_RELOC_GOT_LOAD": "debug/macho", - "macho.X86_64_RELOC_SIGNED": "debug/macho", - "macho.X86_64_RELOC_SIGNED_1": "debug/macho", - "macho.X86_64_RELOC_SIGNED_2": "debug/macho", - "macho.X86_64_RELOC_SIGNED_4": "debug/macho", - "macho.X86_64_RELOC_SUBTRACTOR": "debug/macho", - "macho.X86_64_RELOC_TLV": "debug/macho", - "macho.X86_64_RELOC_UNSIGNED": "debug/macho", - "mail.AddressParser": "net/mail", - "mail.ParseAddress": "net/mail", - "mail.ParseAddressList": "net/mail", - "mail.ParseDate": "net/mail", - "maphash.Hash": "hash/maphash", - "maphash.MakeSeed": "hash/maphash", - "maphash.Seed": "hash/maphash", - "math.E": "math", - "math.Erfcinv": "math", - "math.Erfinv": "math", - "math.FMA": "math", - "math.Ln10": "math", - "math.Ln2": "math", - "math.Log10E": "math", - "math.Log2E": "math", - "math.MaxFloat32": "math", - "math.MaxFloat64": "math", - "math.MaxInt": "math", - "math.MaxInt16": "math", - "math.MaxInt32": "math", - "math.MaxInt64": "math", - "math.MaxInt8": "math", - "math.MaxUint": "math", - "math.MaxUint16": "math", - "math.MaxUint32": "math", - "math.MaxUint64": "math", - "math.MaxUint8": "math", - "math.MinInt": "math", - "math.MinInt16": "math", - "math.MinInt32": "math", - "math.MinInt64": "math", - "math.MinInt8": "math", - "math.Nextafter32": "math", - "math.Phi": "math", - "math.Pi": "math", - "math.Round": "math", - "math.RoundToEven": "math", - "math.SmallestNonzeroFloat32": "math", - "math.SmallestNonzeroFloat64": "math", - "math.Sqrt2": "math", - "math.SqrtE": "math", - "math.SqrtPhi": "math", - "math.SqrtPi": "math", - "md5.BlockSize": "crypto/md5", - "md5.Size": "crypto/md5", - "md5.Sum": "crypto/md5", - "metrics.All": "runtime/metrics", - "metrics.Description": "runtime/metrics", - "metrics.Float64Histogram": "runtime/metrics", - "metrics.KindBad": "runtime/metrics", - "metrics.KindFloat64": "runtime/metrics", - "metrics.KindFloat64Histogram": "runtime/metrics", - "metrics.KindUint64": "runtime/metrics", - "metrics.Read": "runtime/metrics", - "metrics.Sample": "runtime/metrics", - "metrics.Value": "runtime/metrics", - "metrics.ValueKind": "runtime/metrics", - "mime.BEncoding": "mime", - "mime.ErrInvalidMediaParameter": "mime", - "mime.ExtensionsByType": "mime", - "mime.QEncoding": "mime", - "mime.WordDecoder": "mime", - "mime.WordEncoder": "mime", - "multipart.ErrMessageTooLarge": "mime/multipart", - "net.Buffers": "net", - "net.DefaultResolver": "net", - "net.Dialer": "net", - "net.ErrClosed": "net", - "net.FlagBroadcast": "net", - "net.FlagLoopback": "net", - "net.FlagMulticast": "net", - "net.FlagPointToPoint": "net", - "net.FlagUp": "net", - "net.IPv4len": "net", - "net.IPv6len": "net", - "net.ListenConfig": "net", - "net.ListenUnixgram": "net", - "net.LookupNS": "net", - "net.NS": "net", - "net.Resolver": "net", - "os.Chmod": "os", - "os.CreateTemp": "os", - "os.DevNull": "os", - "os.DirEntry": "os", - "os.DirFS": "os", - "os.ErrClosed": "os", - "os.ErrDeadlineExceeded": "os", - "os.ErrNoDeadline": "os", - "os.ErrProcessDone": "os", - "os.Executable": "os", - "os.FileInfo": "os", - "os.FileMode": "os", - "os.IsTimeout": "os", - "os.LookupEnv": "os", - "os.Lstat": "os", - "os.Mkdir": "os", - "os.MkdirAll": "os", - "os.MkdirTemp": "os", - "os.ModeAppend": "os", - "os.ModeCharDevice": "os", - "os.ModeDevice": "os", - "os.ModeDir": "os", - "os.ModeExclusive": "os", - "os.ModeIrregular": "os", - "os.ModeNamedPipe": "os", - "os.ModePerm": "os", - "os.ModeSetgid": "os", - "os.ModeSetuid": "os", - "os.ModeSocket": "os", - "os.ModeSticky": "os", - "os.ModeSymlink": "os", - "os.ModeTemporary": "os", - "os.ModeType": "os", - "os.O_APPEND": "os", - "os.O_CREATE": "os", - "os.O_EXCL": "os", - "os.O_RDONLY": "os", - "os.O_RDWR": "os", - "os.O_SYNC": "os", - "os.O_TRUNC": "os", - "os.O_WRONLY": "os", - "os.OpenFile": "os", - "os.PathError": "os", - "os.PathListSeparator": "os", - "os.PathSeparator": "os", - "os.ReadDir": "os", - "os.ReadFile": "os", - "os.SEEK_CUR": "os", - "os.SEEK_END": "os", - "os.SEEK_SET": "os", - "os.SameFile": "os", - "os.Stat": "os", - "os.Unsetenv": "os", - "os.UserCacheDir": "os", - "os.UserConfigDir": "os", - "os.UserHomeDir": "os", - "os.WriteFile": "os", - "palette.Plan9": "image/color/palette", - "palette.WebSafe": "image/color/palette", - "parse.ChainNode": "text/template/parse", - "parse.CommentNode": "text/template/parse", - "parse.DotNode": "text/template/parse", - "parse.Mode": "text/template/parse", - "parse.NilNode": "text/template/parse", - "parse.NodeAction": "text/template/parse", - "parse.NodeBool": "text/template/parse", - "parse.NodeChain": "text/template/parse", - "parse.NodeCommand": "text/template/parse", - "parse.NodeComment": "text/template/parse", - "parse.NodeDot": "text/template/parse", - "parse.NodeField": "text/template/parse", - "parse.NodeIdentifier": "text/template/parse", - "parse.NodeIf": "text/template/parse", - "parse.NodeList": "text/template/parse", - "parse.NodeNil": "text/template/parse", - "parse.NodeNumber": "text/template/parse", - "parse.NodePipe": "text/template/parse", - "parse.NodeRange": "text/template/parse", - "parse.NodeString": "text/template/parse", - "parse.NodeTemplate": "text/template/parse", - "parse.NodeText": "text/template/parse", - "parse.NodeVariable": "text/template/parse", - "parse.NodeWith": "text/template/parse", - "parse.ParseComments": "text/template/parse", - "parse.Pos": "text/template/parse", - "parse.SkipFuncCheck": "text/template/parse", - "parser.AllErrors": "go/parser", - "parser.DeclarationErrors": "go/parser", - "parser.ImportsOnly": "go/parser", - "parser.PackageClauseOnly": "go/parser", - "parser.ParseComments": "go/parser", - "parser.ParseExprFrom": "go/parser", - "parser.SkipObjectResolution": "go/parser", - "parser.SpuriousErrors": "go/parser", - "parser.Trace": "go/parser", - "pe.COFFSymbol": "debug/pe", - "pe.COFFSymbolSize": "debug/pe", - "pe.DataDirectory": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_ARCHITECTURE": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_BASERELOC": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_DEBUG": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_EXCEPTION": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_EXPORT": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_GLOBALPTR": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_IAT": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_IMPORT": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_RESOURCE": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_SECURITY": "debug/pe", - "pe.IMAGE_DIRECTORY_ENTRY_TLS": "debug/pe", - "pe.IMAGE_DLLCHARACTERISTICS_APPCONTAINER": "debug/pe", - "pe.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE": "debug/pe", - "pe.IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY": "debug/pe", - "pe.IMAGE_DLLCHARACTERISTICS_GUARD_CF": "debug/pe", - "pe.IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA": "debug/pe", - "pe.IMAGE_DLLCHARACTERISTICS_NO_BIND": "debug/pe", - "pe.IMAGE_DLLCHARACTERISTICS_NO_ISOLATION": "debug/pe", - "pe.IMAGE_DLLCHARACTERISTICS_NO_SEH": "debug/pe", - "pe.IMAGE_DLLCHARACTERISTICS_NX_COMPAT": "debug/pe", + "js.Value": "syscall/js", + "js.ValueError": "syscall/js", + "js.ValueOf": "syscall/js", + "json.Delim": "encoding/json", + "json.Number": "encoding/json", + "json.Token": "encoding/json", + "json.Valid": "encoding/json", + "log.Default": "log", + "log.LUTC": "log", + "log.Ldate": "log", + "log.Llongfile": "log", + "log.Lmicroseconds": "log", + "log.Lmsgprefix": "log", + "log.Lshortfile": "log", + "log.LstdFlags": "log", + "log.Ltime": "log", + "log.Output": "log", + "log.Writer": "log", + "lzw.LSB": "compress/lzw", + "lzw.MSB": "compress/lzw", + "lzw.Reader": "compress/lzw", + "lzw.Writer": "compress/lzw", + "macho.ARM64_RELOC_ADDEND": "debug/macho", + "macho.ARM64_RELOC_BRANCH26": "debug/macho", + "macho.ARM64_RELOC_GOT_LOAD_PAGE21": "debug/macho", + "macho.ARM64_RELOC_GOT_LOAD_PAGEOFF12": "debug/macho", + "macho.ARM64_RELOC_PAGE21": "debug/macho", + "macho.ARM64_RELOC_PAGEOFF12": "debug/macho", + "macho.ARM64_RELOC_POINTER_TO_GOT": "debug/macho", + "macho.ARM64_RELOC_SUBTRACTOR": "debug/macho", + "macho.ARM64_RELOC_TLVP_LOAD_PAGE21": "debug/macho", + "macho.ARM64_RELOC_TLVP_LOAD_PAGEOFF12": "debug/macho", + "macho.ARM64_RELOC_UNSIGNED": "debug/macho", + "macho.ARM_RELOC_BR24": "debug/macho", + "macho.ARM_RELOC_HALF": "debug/macho", + "macho.ARM_RELOC_HALF_SECTDIFF": "debug/macho", + "macho.ARM_RELOC_LOCAL_SECTDIFF": "debug/macho", + "macho.ARM_RELOC_PAIR": "debug/macho", + "macho.ARM_RELOC_PB_LA_PTR": "debug/macho", + "macho.ARM_RELOC_SECTDIFF": "debug/macho", + "macho.ARM_RELOC_VANILLA": "debug/macho", + "macho.ARM_THUMB_32BIT_BRANCH": "debug/macho", + "macho.ARM_THUMB_RELOC_BR22": "debug/macho", + "macho.Cpu386": "debug/macho", + "macho.CpuAmd64": "debug/macho", + "macho.CpuArm": "debug/macho", + "macho.CpuArm64": "debug/macho", + "macho.CpuPpc": "debug/macho", + "macho.CpuPpc64": "debug/macho", + "macho.ErrNotFat": "debug/macho", + "macho.FatArch": "debug/macho", + "macho.FatArchHeader": "debug/macho", + "macho.FatFile": "debug/macho", + "macho.FlagAllModsBound": "debug/macho", + "macho.FlagAllowStackExecution": "debug/macho", + "macho.FlagAppExtensionSafe": "debug/macho", + "macho.FlagBindAtLoad": "debug/macho", + "macho.FlagBindsToWeak": "debug/macho", + "macho.FlagCanonical": "debug/macho", + "macho.FlagDeadStrippableDylib": "debug/macho", + "macho.FlagDyldLink": "debug/macho", + "macho.FlagForceFlat": "debug/macho", + "macho.FlagHasTLVDescriptors": "debug/macho", + "macho.FlagIncrLink": "debug/macho", + "macho.FlagLazyInit": "debug/macho", + "macho.FlagNoFixPrebinding": "debug/macho", + "macho.FlagNoHeapExecution": "debug/macho", + "macho.FlagNoMultiDefs": "debug/macho", + "macho.FlagNoReexportedDylibs": "debug/macho", + "macho.FlagNoUndefs": "debug/macho", + "macho.FlagPIE": "debug/macho", + "macho.FlagPrebindable": "debug/macho", + "macho.FlagPrebound": "debug/macho", + "macho.FlagRootSafe": "debug/macho", + "macho.FlagSetuidSafe": "debug/macho", + "macho.FlagSplitSegs": "debug/macho", + "macho.FlagSubsectionsViaSymbols": "debug/macho", + "macho.FlagTwoLevel": "debug/macho", + "macho.FlagWeakDefines": "debug/macho", + "macho.GENERIC_RELOC_LOCAL_SECTDIFF": "debug/macho", + "macho.GENERIC_RELOC_PAIR": "debug/macho", + "macho.GENERIC_RELOC_PB_LA_PTR": "debug/macho", + "macho.GENERIC_RELOC_SECTDIFF": "debug/macho", + "macho.GENERIC_RELOC_TLV": "debug/macho", + "macho.GENERIC_RELOC_VANILLA": "debug/macho", + "macho.LoadCmdDylib": "debug/macho", + "macho.LoadCmdDylinker": "debug/macho", + "macho.LoadCmdDysymtab": "debug/macho", + "macho.LoadCmdRpath": "debug/macho", + "macho.LoadCmdSegment": "debug/macho", + "macho.LoadCmdSegment64": "debug/macho", + "macho.LoadCmdSymtab": "debug/macho", + "macho.LoadCmdThread": "debug/macho", + "macho.LoadCmdUnixThread": "debug/macho", + "macho.Magic32": "debug/macho", + "macho.Magic64": "debug/macho", + "macho.MagicFat": "debug/macho", + "macho.NewFatFile": "debug/macho", + "macho.OpenFat": "debug/macho", + "macho.Reloc": "debug/macho", + "macho.RelocTypeARM": "debug/macho", + "macho.RelocTypeARM64": "debug/macho", + "macho.RelocTypeGeneric": "debug/macho", + "macho.RelocTypeX86_64": "debug/macho", + "macho.Rpath": "debug/macho", + "macho.RpathCmd": "debug/macho", + "macho.TypeBundle": "debug/macho", + "macho.TypeDylib": "debug/macho", + "macho.TypeExec": "debug/macho", + "macho.TypeObj": "debug/macho", + "macho.X86_64_RELOC_BRANCH": "debug/macho", + "macho.X86_64_RELOC_GOT": "debug/macho", + "macho.X86_64_RELOC_GOT_LOAD": "debug/macho", + "macho.X86_64_RELOC_SIGNED": "debug/macho", + "macho.X86_64_RELOC_SIGNED_1": "debug/macho", + "macho.X86_64_RELOC_SIGNED_2": "debug/macho", + "macho.X86_64_RELOC_SIGNED_4": "debug/macho", + "macho.X86_64_RELOC_SUBTRACTOR": "debug/macho", + "macho.X86_64_RELOC_TLV": "debug/macho", + "macho.X86_64_RELOC_UNSIGNED": "debug/macho", + "mail.AddressParser": "net/mail", + "mail.ParseAddress": "net/mail", + "mail.ParseAddressList": "net/mail", + "mail.ParseDate": "net/mail", + "maphash.Bytes": "hash/maphash", + "maphash.Hash": "hash/maphash", + "maphash.MakeSeed": "hash/maphash", + "maphash.Seed": "hash/maphash", + "maphash.String": "hash/maphash", + "math.E": "math", + "math.Erfcinv": "math", + "math.Erfinv": "math", + "math.FMA": "math", + "math.Ln10": "math", + "math.Ln2": "math", + "math.Log10E": "math", + "math.Log2E": "math", + "math.MaxFloat32": "math", + "math.MaxFloat64": "math", + "math.MaxInt": "math", + "math.MaxInt16": "math", + "math.MaxInt32": "math", + "math.MaxInt64": "math", + "math.MaxInt8": "math", + "math.MaxUint": "math", + "math.MaxUint16": "math", + "math.MaxUint32": "math", + "math.MaxUint64": "math", + "math.MaxUint8": "math", + "math.MinInt": "math", + "math.MinInt16": "math", + "math.MinInt32": "math", + "math.MinInt64": "math", + "math.MinInt8": "math", + "math.Nextafter32": "math", + "math.Phi": "math", + "math.Pi": "math", + "math.Round": "math", + "math.RoundToEven": "math", + "math.SmallestNonzeroFloat32": "math", + "math.SmallestNonzeroFloat64": "math", + "math.Sqrt2": "math", + "math.SqrtE": "math", + "math.SqrtPhi": "math", + "math.SqrtPi": "math", + "md5.BlockSize": "crypto/md5", + "md5.Size": "crypto/md5", + "md5.Sum": "crypto/md5", + "metrics.All": "runtime/metrics", + "metrics.Description": "runtime/metrics", + "metrics.Float64Histogram": "runtime/metrics", + "metrics.KindBad": "runtime/metrics", + "metrics.KindFloat64": "runtime/metrics", + "metrics.KindFloat64Histogram": "runtime/metrics", + "metrics.KindUint64": "runtime/metrics", + "metrics.Read": "runtime/metrics", + "metrics.Sample": "runtime/metrics", + "metrics.Value": "runtime/metrics", + "metrics.ValueKind": "runtime/metrics", + "mime.BEncoding": "mime", + "mime.ErrInvalidMediaParameter": "mime", + "mime.ExtensionsByType": "mime", + "mime.QEncoding": "mime", + "mime.WordDecoder": "mime", + "mime.WordEncoder": "mime", + "multipart.ErrMessageTooLarge": "mime/multipart", + "net.Buffers": "net", + "net.DefaultResolver": "net", + "net.Dialer": "net", + "net.ErrClosed": "net", + "net.FlagBroadcast": "net", + "net.FlagLoopback": "net", + "net.FlagMulticast": "net", + "net.FlagPointToPoint": "net", + "net.FlagUp": "net", + "net.IPv4len": "net", + "net.IPv6len": "net", + "net.ListenConfig": "net", + "net.ListenUnixgram": "net", + "net.LookupNS": "net", + "net.NS": "net", + "net.Resolver": "net", + "net.TCPAddrFromAddrPort": "net", + "net.UDPAddrFromAddrPort": "net", + "netip.Addr": "net/netip", + "netip.AddrFrom16": "net/netip", + "netip.AddrFrom4": "net/netip", + "netip.AddrFromSlice": "net/netip", + "netip.AddrPort": "net/netip", + "netip.AddrPortFrom": "net/netip", + "netip.IPv4Unspecified": "net/netip", + "netip.IPv6LinkLocalAllNodes": "net/netip", + "netip.IPv6Unspecified": "net/netip", + "netip.MustParseAddr": "net/netip", + "netip.MustParseAddrPort": "net/netip", + "netip.MustParsePrefix": "net/netip", + "netip.ParseAddr": "net/netip", + "netip.ParseAddrPort": "net/netip", + "netip.ParsePrefix": "net/netip", + "netip.Prefix": "net/netip", + "netip.PrefixFrom": "net/netip", + "os.Chmod": "os", + "os.CreateTemp": "os", + "os.DevNull": "os", + "os.DirEntry": "os", + "os.DirFS": "os", + "os.ErrClosed": "os", + "os.ErrDeadlineExceeded": "os", + "os.ErrNoDeadline": "os", + "os.ErrProcessDone": "os", + "os.Executable": "os", + "os.FileInfo": "os", + "os.FileMode": "os", + "os.IsTimeout": "os", + "os.LookupEnv": "os", + "os.Lstat": "os", + "os.Mkdir": "os", + "os.MkdirAll": "os", + "os.MkdirTemp": "os", + "os.ModeAppend": "os", + "os.ModeCharDevice": "os", + "os.ModeDevice": "os", + "os.ModeDir": "os", + "os.ModeExclusive": "os", + "os.ModeIrregular": "os", + "os.ModeNamedPipe": "os", + "os.ModePerm": "os", + "os.ModeSetgid": "os", + "os.ModeSetuid": "os", + "os.ModeSocket": "os", + "os.ModeSticky": "os", + "os.ModeSymlink": "os", + "os.ModeTemporary": "os", + "os.ModeType": "os", + "os.O_APPEND": "os", + "os.O_CREATE": "os", + "os.O_EXCL": "os", + "os.O_RDONLY": "os", + "os.O_RDWR": "os", + "os.O_SYNC": "os", + "os.O_TRUNC": "os", + "os.O_WRONLY": "os", + "os.OpenFile": "os", + "os.PathError": "os", + "os.PathListSeparator": "os", + "os.PathSeparator": "os", + "os.ReadDir": "os", + "os.ReadFile": "os", + "os.SEEK_CUR": "os", + "os.SEEK_END": "os", + "os.SEEK_SET": "os", + "os.SameFile": "os", + "os.Stat": "os", + "os.Unsetenv": "os", + "os.UserCacheDir": "os", + "os.UserConfigDir": "os", + "os.UserHomeDir": "os", + "os.WriteFile": "os", + "palette.Plan9": "image/color/palette", + "palette.WebSafe": "image/color/palette", + "parse.BreakNode": "text/template/parse", + "parse.ChainNode": "text/template/parse", + "parse.CommentNode": "text/template/parse", + "parse.ContinueNode": "text/template/parse", + "parse.DotNode": "text/template/parse", + "parse.Mode": "text/template/parse", + "parse.NilNode": "text/template/parse", + "parse.NodeAction": "text/template/parse", + "parse.NodeBool": "text/template/parse", + "parse.NodeBreak": "text/template/parse", + "parse.NodeChain": "text/template/parse", + "parse.NodeCommand": "text/template/parse", + "parse.NodeComment": "text/template/parse", + "parse.NodeContinue": "text/template/parse", + "parse.NodeDot": "text/template/parse", + "parse.NodeField": "text/template/parse", + "parse.NodeIdentifier": "text/template/parse", + "parse.NodeIf": "text/template/parse", + "parse.NodeList": "text/template/parse", + "parse.NodeNil": "text/template/parse", + "parse.NodeNumber": "text/template/parse", + "parse.NodePipe": "text/template/parse", + "parse.NodeRange": "text/template/parse", + "parse.NodeString": "text/template/parse", + "parse.NodeTemplate": "text/template/parse", + "parse.NodeText": "text/template/parse", + "parse.NodeVariable": "text/template/parse", + "parse.NodeWith": "text/template/parse", + "parse.ParseComments": "text/template/parse", + "parse.Pos": "text/template/parse", + "parse.SkipFuncCheck": "text/template/parse", + "parser.AllErrors": "go/parser", + "parser.DeclarationErrors": "go/parser", + "parser.ImportsOnly": "go/parser", + "parser.PackageClauseOnly": "go/parser", + "parser.ParseComments": "go/parser", + "parser.ParseExprFrom": "go/parser", + "parser.SkipObjectResolution": "go/parser", + "parser.SpuriousErrors": "go/parser", + "parser.Trace": "go/parser", + "pe.COFFSymbol": "debug/pe", + "pe.COFFSymbolAuxFormat5": "debug/pe", + "pe.COFFSymbolSize": "debug/pe", + "pe.DataDirectory": "debug/pe", + "pe.IMAGE_COMDAT_SELECT_ANY": "debug/pe", + "pe.IMAGE_COMDAT_SELECT_ASSOCIATIVE": "debug/pe", + "pe.IMAGE_COMDAT_SELECT_EXACT_MATCH": "debug/pe", + "pe.IMAGE_COMDAT_SELECT_LARGEST": "debug/pe", + "pe.IMAGE_COMDAT_SELECT_NODUPLICATES": "debug/pe", + "pe.IMAGE_COMDAT_SELECT_SAME_SIZE": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_ARCHITECTURE": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_BASERELOC": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_DEBUG": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_EXCEPTION": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_EXPORT": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_GLOBALPTR": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_IAT": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_IMPORT": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_RESOURCE": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_SECURITY": "debug/pe", + "pe.IMAGE_DIRECTORY_ENTRY_TLS": "debug/pe", + "pe.IMAGE_DLLCHARACTERISTICS_APPCONTAINER": "debug/pe", + "pe.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE": "debug/pe", + "pe.IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY": "debug/pe", + "pe.IMAGE_DLLCHARACTERISTICS_GUARD_CF": "debug/pe", + "pe.IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA": "debug/pe", + "pe.IMAGE_DLLCHARACTERISTICS_NO_BIND": "debug/pe", + "pe.IMAGE_DLLCHARACTERISTICS_NO_ISOLATION": "debug/pe", + "pe.IMAGE_DLLCHARACTERISTICS_NO_SEH": "debug/pe", + "pe.IMAGE_DLLCHARACTERISTICS_NX_COMPAT": "debug/pe", "pe.IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE": "debug/pe", "pe.IMAGE_DLLCHARACTERISTICS_WDM_DRIVER": "debug/pe", "pe.IMAGE_FILE_32BIT_MACHINE": "debug/pe", @@ -2435,6 +2559,8 @@ var stdlib = map[string]string{ "pe.IMAGE_FILE_MACHINE_EBC": "debug/pe", "pe.IMAGE_FILE_MACHINE_I386": "debug/pe", "pe.IMAGE_FILE_MACHINE_IA64": "debug/pe", + "pe.IMAGE_FILE_MACHINE_LOONGARCH32": "debug/pe", + "pe.IMAGE_FILE_MACHINE_LOONGARCH64": "debug/pe", "pe.IMAGE_FILE_MACHINE_M32R": "debug/pe", "pe.IMAGE_FILE_MACHINE_MIPS16": "debug/pe", "pe.IMAGE_FILE_MACHINE_MIPSFPU": "debug/pe", @@ -2454,6 +2580,14 @@ var stdlib = map[string]string{ "pe.IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP": "debug/pe", "pe.IMAGE_FILE_SYSTEM": "debug/pe", "pe.IMAGE_FILE_UP_SYSTEM_ONLY": "debug/pe", + "pe.IMAGE_SCN_CNT_CODE": "debug/pe", + "pe.IMAGE_SCN_CNT_INITIALIZED_DATA": "debug/pe", + "pe.IMAGE_SCN_CNT_UNINITIALIZED_DATA": "debug/pe", + "pe.IMAGE_SCN_LNK_COMDAT": "debug/pe", + "pe.IMAGE_SCN_MEM_DISCARDABLE": "debug/pe", + "pe.IMAGE_SCN_MEM_EXECUTE": "debug/pe", + "pe.IMAGE_SCN_MEM_READ": "debug/pe", + "pe.IMAGE_SCN_MEM_WRITE": "debug/pe", "pe.IMAGE_SUBSYSTEM_EFI_APPLICATION": "debug/pe", "pe.IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER": "debug/pe", "pe.IMAGE_SUBSYSTEM_EFI_ROM": "debug/pe", @@ -2474,6 +2608,7 @@ var stdlib = map[string]string{ "pe.StringTable": "debug/pe", "pe.Symbol": "debug/pe", "pkix.AttributeTypeAndValueSET": "crypto/x509/pkix", + "plan9obj.ErrNoSymbols": "debug/plan9obj", "plan9obj.File": "debug/plan9obj", "plan9obj.FileHeader": "debug/plan9obj", "plan9obj.Magic386": "debug/plan9obj", @@ -2540,6 +2675,8 @@ var stdlib = map[string]string{ "reflect.Map": "reflect", "reflect.MapIter": "reflect", "reflect.MapOf": "reflect", + "reflect.Pointer": "reflect", + "reflect.PointerTo": "reflect", "reflect.Ptr": "reflect", "reflect.RecvDir": "reflect", "reflect.Select": "reflect", @@ -2630,6 +2767,7 @@ var stdlib = map[string]string{ "signal.NotifyContext": "os/signal", "signal.Reset": "os/signal", "signal.Stop": "os/signal", + "sort.Find": "sort", "sort.Reverse": "sort", "sort.Slice": "sort", "sort.SliceIsSorted": "sort", @@ -2668,7 +2806,9 @@ var stdlib = map[string]string{ "strconv.QuoteToGraphic": "strconv", "strconv.QuotedPrefix": "strconv", "strings.Builder": "strings", + "strings.Clone": "strings", "strings.Compare": "strings", + "strings.Cut": "strings", "strings.IndexByte": "strings", "strings.LastIndexByte": "strings", "strings.ReplaceAll": "strings", @@ -2698,6 +2838,7 @@ var stdlib = map[string]string{ "syntax.ErrMissingBracket": "regexp/syntax", "syntax.ErrMissingParen": "regexp/syntax", "syntax.ErrMissingRepeatArgument": "regexp/syntax", + "syntax.ErrNestingDepth": "regexp/syntax", "syntax.ErrTrailingBackslash": "regexp/syntax", "syntax.ErrUnexpectedParen": "regexp/syntax", "syntax.FoldCase": "regexp/syntax", @@ -2813,6 +2954,7 @@ var stdlib = map[string]string{ "template.ErrRangeLoopReentry": "html/template", "template.ErrSlashAmbig": "html/template", "template.ExecError": "text/template", + "template.FuncMap": "html/template", // "template.IsTrue" is ambiguous "template.OK": "html/template", // "template.ParseFS" is ambiguous @@ -2822,7 +2964,9 @@ var stdlib = map[string]string{ "testing.CoverBlock": "testing", "testing.CoverMode": "testing", "testing.Coverage": "testing", + "testing.F": "testing", "testing.Init": "testing", + "testing.InternalFuzzTarget": "testing", "testing.M": "testing", "testing.MainStart": "testing", "testing.PB": "testing", @@ -3031,6 +3175,7 @@ var stdlib = map[string]string{ "token.SUB": "go/token", "token.SUB_ASSIGN": "go/token", "token.SWITCH": "go/token", + "token.TILDE": "go/token", "token.TYPE": "go/token", "token.UnaryPrec": "go/token", "token.VAR": "go/token", @@ -3046,6 +3191,7 @@ var stdlib = map[string]string{ "trace.Stop": "runtime/trace", "trace.Task": "runtime/trace", "trace.WithRegion": "runtime/trace", + "types.ArgumentError": "go/types", "types.Array": "go/types", "types.AssertableTo": "go/types", "types.AssignableTo": "go/types", @@ -3064,6 +3210,7 @@ var stdlib = map[string]string{ "types.Complex64": "go/types", "types.Config": "go/types", "types.Const": "go/types", + "types.Context": "go/types", "types.ConvertibleTo": "go/types", "types.DefPredeclaredTestFuncs": "go/types", "types.Default": "go/types", @@ -3083,6 +3230,8 @@ var stdlib = map[string]string{ "types.ImporterFrom": "go/types", "types.Info": "go/types", "types.Initializer": "go/types", + "types.Instance": "go/types", + "types.Instantiate": "go/types", "types.Int": "go/types", "types.Int16": "go/types", "types.Int32": "go/types", @@ -3113,6 +3262,7 @@ var stdlib = map[string]string{ "types.NewChan": "go/types", "types.NewChecker": "go/types", "types.NewConst": "go/types", + "types.NewContext": "go/types", "types.NewField": "go/types", "types.NewFunc": "go/types", "types.NewInterface": "go/types", @@ -3127,10 +3277,14 @@ var stdlib = map[string]string{ "types.NewPointer": "go/types", "types.NewScope": "go/types", "types.NewSignature": "go/types", + "types.NewSignatureType": "go/types", "types.NewSlice": "go/types", "types.NewStruct": "go/types", + "types.NewTerm": "go/types", "types.NewTuple": "go/types", "types.NewTypeName": "go/types", + "types.NewTypeParam": "go/types", + "types.NewUnion": "go/types", "types.NewVar": "go/types", "types.Nil": "go/types", "types.ObjectString": "go/types", @@ -3154,11 +3308,15 @@ var stdlib = map[string]string{ "types.StdSizes": "go/types", "types.String": "go/types", "types.Struct": "go/types", + "types.Term": "go/types", "types.Tuple": "go/types", "types.Typ": "go/types", "types.Type": "go/types", "types.TypeAndValue": "go/types", + "types.TypeList": "go/types", "types.TypeName": "go/types", + "types.TypeParam": "go/types", + "types.TypeParamList": "go/types", "types.TypeString": "go/types", "types.Uint": "go/types", "types.Uint16": "go/types", @@ -3166,6 +3324,7 @@ var stdlib = map[string]string{ "types.Uint64": "go/types", "types.Uint8": "go/types", "types.Uintptr": "go/types", + "types.Union": "go/types", "types.Universe": "go/types", "types.Unsafe": "go/types", "types.UnsafePointer": "go/types", @@ -3256,6 +3415,7 @@ var stdlib = map[string]string{ "unicode.Yezidi": "unicode", "unicode.Zanabazar_Square": "unicode", "url.InvalidHostError": "net/url", + "url.JoinPath": "net/url", "url.PathEscape": "net/url", "url.PathUnescape": "net/url", "user.Group": "os/user", @@ -3263,6 +3423,7 @@ var stdlib = map[string]string{ "user.LookupGroupId": "os/user", "user.UnknownGroupError": "os/user", "user.UnknownGroupIdError": "os/user", + "utf8.AppendRune": "unicode/utf8", "utf8.MaxRune": "unicode/utf8", "utf8.RuneError": "unicode/utf8", "utf8.RuneSelf": "unicode/utf8", @@ -3329,6 +3490,7 @@ var stdlib = map[string]string{ "x509.ParseCertificateRequest": "crypto/x509", "x509.ParseECPrivateKey": "crypto/x509", "x509.ParsePKCS1PublicKey": "crypto/x509", + "x509.ParseRevocationList": "crypto/x509", "x509.PureEd25519": "crypto/x509", "x509.RSA": "crypto/x509", "x509.RevocationList": "crypto/x509", diff --git a/playground/internal/react/bannerTitle.go b/playground/internal/react/bannerTitle.go new file mode 100644 index 00000000..d4840f28 --- /dev/null +++ b/playground/internal/react/bannerTitle.go @@ -0,0 +1,30 @@ +package react + +func BannerTitle(version string) *Element { + return CreateElement(bannerTitleComponent, Props{ + `version`: version, + }) +} + +func bannerTitleComponent(props Props) *Element { + version := As[string](props, `version`) + return Span(Props{ + `id`: `banner-title`, + }, + `playground `, + Span(Props{ + `id`: `banner-title-sub`, + }, + // TODO(grantnelson-wf): Make this a link to the gopherjs repo + // https://github.com/gopherjs/gopherjs + `GopherJS `, + ), + Span(Props{ + `id`: `banner-title-version`, + }, + // TODO(grantnelson-wf): Make this version a link to release notes + // https://github.com/gopherjs/gopherjs/releases/tag/v1.19.0-beta2 + `(`+version+`)`, + ), + ) +} diff --git a/playground/internal/react/bindings.go b/playground/internal/react/bindings.go new file mode 100644 index 00000000..ee7c445e --- /dev/null +++ b/playground/internal/react/bindings.go @@ -0,0 +1,253 @@ +package react + +import ( + "errors" + + "github.com/gopherjs/gopherjs/js" +) + +type ( + // Node is a React node that can be displayed. + // This will usually be a react element constructed with CreateElement(), + // a string, a number, null, or undefined. + // Node may be a slice of Nodes as well. + Node any + + // Root is a React root created with CreateRoot(). + // It is used to render React nodes into the DOM. + // See: https://react.dev/reference/react-dom/client/createRoot + Root struct{ *js.Object } + + // Element is a React element created with CreateElement(). + // It represents a UI component and can be rendered into the DOM. + // See: https://react.dev/reference/react/createElement + Element struct{ *js.Object } + + // Props represents the properties (props) passed to a React element, + // e.g. { `className`: `greeting` }. + // + // The props may carry any value or function that is needed by the component + // to render itself and to callback to the parent. + // See: https://react.dev/reference/react/createElement + Props map[string]any + + // Ref is a React ref created with UseRef(). + // It is a mutable object with a `current` property that can hold any value. + // Modifying the `current` property does not trigger re-renders. + // See: https://react.dev/reference/react/useRef + Ref struct{ holder *js.Object } + + // Func is the type of function that is passed back when a function + // is passed as a prop to a React element. + // This is because of how functions are represented in GopherJS. + // See: https://github.com/gopherjs/gopherjs/blob/master/js/js.go + Func func(...any) *js.Object +) + +var ( + ErrReactDOMClientNotLoaded = errors.New(`react: ReactDOMClient is not loaded`) + ErrReactNotLoaded = errors.New(`react: React is not loaded`) + ErrUndefinedPropKey = errors.New(`react: undefined prop key`) + ErrRefNotInitialized = errors.New(`react: Ref not initialized`) +) + +var ReactDOMClient *js.Object +var React *js.Object + +func reactDom() *js.Object { + if ReactDOMClient == nil { + ReactDOMClient = js.Global.Get(`ReactDOMClient`) + } + if ReactDOMClient == nil { + panic(ErrReactDOMClientNotLoaded) + } + return ReactDOMClient +} + +func react() *js.Object { + if React == nil { + React = js.Global.Get(`React`) + } + if React == nil { + panic(ErrReactNotLoaded) + } + return React +} + +func CreateRoot(id string) *Root { + rootElem := js.Global.Get(`document`).Call(`getElementById`, id) + return &Root{Object: reactDom().Call(`createRoot`, rootElem)} +} + +func (r *Root) Render(n Node) { + r.Call(`render`, n) +} + +// Affirm ensures that the given Props is non-nil. +// If the recevier is nil, a new empty Props is returned, +// otherwise the recevier is returned unchanged. +func (p Props) Affirm() Props { + if p == nil { + return Props{} + } + return p +} + +// As retrieves the property with the given name from the Props +// and converts it to the specified type T. +func As[T any](props Props, name string) T { + if prop, ok := props[name]; ok { + return prop.(T) + } + panic(ErrUndefinedPropKey) +} + +// AsFunc retrieves the property with the given name from the Props +// and converts it to a function of type Func. +func AsFunc(props Props, name string) Func { + if prop, ok := props[name]; ok { + return Func(prop.(func(...any) *js.Object)) + } + panic(ErrUndefinedPropKey) +} + +// AsSetter retrieves the property with the given name from the Props +// and converts it to a setter function of type func(any). +func AsSetter(props Props, name string) func(any) { + fn := AsFunc(props, name) + return func(v any) { fn(v) } +} + +// CreateElement creates a React element of the given type with the given props and children. +// +// The type can be a string for HTML elements (e.g. `div`, `span`, etc.), +// or a React component (function or class). +// The props can be nil if there are no properties to set, a Props map, +// or a struct for typed props. +// Children can be zero or more React nodes to be nested inside the element. +// See: https://react.dev/reference/react/createElement +func CreateElement(typ any, props any, children ...Node) *Element { + args := []any{typ, props} + for _, c := range children { + args = append(args, c) + } + return &Element{Object: react().Call(`createElement`, args...)} +} + +func StrictMode(children ...Node) *Element { + return CreateElement(react().Get(`StrictMode`), nil, children...) +} + +// Fragments groups items without a wrapping element. +// The Fragments "disappears" from the DOM such that only its children are +// rendered as siblings to the Fragment's sibling elements. +// See: https://react.dev/reference/react/Fragment +func Fragment(children ...Node) *Element { + return CreateElement(react().Get(`Fragment`), nil, children...) +} + +func Div(props Props, children ...Node) *Element { + return CreateElement(`div`, props, children...) +} + +func Pre(props Props, children ...Node) *Element { + return CreateElement(`pre`, props, children...) +} + +func TextArea(props Props, children ...Node) *Element { + return CreateElement(`textarea`, props, children...) +} + +func Span(props Props, children ...Node) *Element { + return CreateElement(`span`, props, children...) +} + +// Button creates a button input element with the given value, properties, +// and onClick handler. The onClick handler is added to the props as the `onClick` +// property and is called when the button is clicked. +func Button(id, value string, props Props, onClick func()) *Element { + props = props.Affirm() + props[`id`] = id + props[`value`] = value + props[`type`] = `button` + props[`onClick`] = onClick + return CreateElement(`input`, props) +} + +// UseState creates a state for the current component render. +// Returns the current state value and a setter function to update the state. +// The setter accepts any value, which will be the new state at the next render, +// or a function that takes the current state and returns the new state. +// +// It must be called unconditionally at the top level of the component function. +// See: https://react.dev/reference/react/useState +// +// NOTE: Some types like `State[int]` might be `State[float64]`, +// and instead of `State[[]*foo]` it might be `State[[]any]`, +// because of how the underlying React hook and GopherJS works. +func UseState[T any](initial T) (T, func(any)) { + r := react().Call(`useState`, initial) + current := r.Index(0).Interface().(T) + setFn := r.Index(1) + setter := func(v any) { setFn.Invoke(v) } + return current, setter +} + +// UseRef creates a mutable ref object that persists for the lifetime of the component. +// The ref object has a `current` property that can hold any value. +// See: https://react.dev/reference/react/useRef +func UseRef() *Ref { + return &Ref{holder: react().Call(`useRef`, nil)} +} + +func (r *Ref) Current() *js.Object { + if r != nil && r.holder != nil { + return r.holder.Get(`current`) + } + panic(ErrRefNotInitialized) +} + +func (r *Ref) Get(key string) *js.Object { + return r.Current().Get(key) +} + +func (r *Ref) Set(key string, value any) { + r.Current().Set(key, value) +} + +func (r *Ref) Call(name string, args ...any) { + r.Current().Call(name, args...) +} + +// UseEffect registers an effect function that is called after rendering. +// The effect is re-run whenever any of the dependencies change. +// +// If nil is given for the dependencies, the effect is re-run after every render. +// If an empty `[]any{}` is given for the dependencies, the effect is only run once after the initial render. +// +// See: https://react.dev/reference/react/useEffect +func UseEffect(effect func(), deps []any) { + react().Call(`useEffect`, effect, deps) +} + +// UseEffectWithCleanup registers an effect function that is called after rendering. +// The effect is re-run whenever any of the dependencies change. +// +// If nil is given for the dependencies, the effect is re-run after every render. +// If an empty `[]any{}` is given for the dependencies, the effect is only run once after the initial render. +// +// The effect function returns a cleanup function that is called before the effect +// is re-run or when the component is unmounted. +// See: https://react.dev/reference/react/useEffect +func UseEffectWithCleanup(effect func() func(), deps ...any) { + react().Call(`useEffect`, effect, deps) +} + +// UseMemo memoizes the result of a computation function. +// The computation is only re-run when any of the dependencies change. +// +// See: https://react.dev/reference/react/useMemo +func UseMemo[T any](compute func() T, deps []any) T { + r := react().Call(`useMemo`, compute, deps) + return r.Interface().(T) +} diff --git a/playground/internal/react/codeBox.go b/playground/internal/react/codeBox.go new file mode 100644 index 00000000..5498afe0 --- /dev/null +++ b/playground/internal/react/codeBox.go @@ -0,0 +1,203 @@ +package react + +import ( + "strconv" + "strings" + + "github.com/gopherjs/gopherjs/js" + + "github.com/gopherjs/gopherjs.github.io/playground/internal/editor" +) + +// CodeBox creates a code editor box React element for editing +// the given code state. +func CodeBox(code string, setCode func(any), onSave func(), onEscape func()) *Element { + return CreateElement(codeBoxComponent, Props{ + `curCode`: code, + `setCode`: setCode, + `onSave`: onSave, + `onEscape`: onEscape, + }) +} + +func codeBoxComponent(props Props) *Element { + cba := &codeBoxAssistant{ + curCode: As[string](props, `curCode`), + setCode: AsSetter(props, `setCode`), + onSave: AsFunc(props, `onSave`), + onEscape: AsFunc(props, `onEscape`), + textAreaRef: UseRef(), + lineNumsRef: UseRef(), + } + + UseEffect(func() { + // On first render, focus the code textarea. + cba.textAreaRef.Call(`focus`) + cba.textAreaRef.Set(`selectionStart`, 0) + cba.textAreaRef.Set(`selectionEnd`, 0) + }, []any{}) + + lineCount := strings.Count(cba.curCode, "\n") + 1 + lineNumbers := UseMemo(func() string { + return getLineNumbers(lineCount) + }, []any{lineCount}) + + return Div(Props{ + `id`: `code-box`, + }, + TextArea(Props{ + `id`: `line-nums`, + `ref`: cba.lineNumsRef, + `value`: lineNumbers, + `readOnly`: true, + `disable`: `true`, + }), + TextArea(Props{ + `id`: `code`, + `ref`: cba.textAreaRef, + `value`: cba.curCode, + `onInput`: cba.onInput, + `onKeyDown`: cba.onKeyDown, + `onScroll`: cba.onScroll, + `autoFocus`: true, + `autoCorrect`: `off`, + `autoComplete`: `off`, + `autoCapitalize`: `off`, + `spellCheck`: false, + }), + ) +} + +type codeBoxAssistant struct { + curCode string + setCode func(any) + onSave Func + onEscape Func + textAreaRef *Ref + lineNumsRef *Ref +} + +var _ editor.CodeBoxWrapper = (*codeBoxAssistant)(nil) + +func (cba *codeBoxAssistant) Code() string { return cba.curCode } + +func (cba *codeBoxAssistant) EmitEvent(event string) { + switch event { + case editor.SaveEvent: + cba.onSave() + case editor.EscapeEvent: + cba.onEscape() + + case editor.UndoEvent, editor.RedoEvent: + println("Not implemented yet: Undo/Redo requested from CodeBox:", event) + // TODO(grantnelson-wf): Implement undo/redo stack since textarea + // only handles undo/redo itself for non-programmatic changes but + // doesn't handle undo/redo for when setCode is called. + + // TODO(grantnelson-wf): If it is possible to detect a paste event, + // then indent the pasted code automatically. + + default: + println("Unknown event was requested to be emitted from CodeBox:", event) + } +} + +func (cba *codeBoxAssistant) onInput(e *js.Object) { + cba.setCode(e.Get(`target`).Get(`value`).String()) +} + +func (cba *codeBoxAssistant) onKeyDown(e *js.Object) { + key := e.Get(`key`).String() + shift := e.Get(`shiftKey`).Bool() + ctrl := e.Get(`metaKey`).Bool() || e.Get(`ctrlKey`).Bool() + if editor.ProcessKeyDown(cba, key, shift, ctrl) { + e.Call(`preventDefault`) + e.Call(`stopPropagation`) + } +} + +func (cba *codeBoxAssistant) onScroll(e *js.Object) { + scrollTop := e.Get(`target`).Get(`scrollTop`).Int() + cba.lineNumsRef.Set(`scrollTop`, scrollTop) +} + +func (cba *codeBoxAssistant) GetSelection() editor.Selection { + start := cba.textAreaRef.Get(`selectionStart`).Int() + end := cba.textAreaRef.Get(`selectionEnd`).Int() + if start > end { + // Reverse selection so start is always <= end. + return editor.Selection{Start: end, End: start} + } + return editor.Selection{Start: start, End: end} +} + +func (cba *codeBoxAssistant) SetCode(sel editor.Selection, code string) { + // Update the code state for react. + cba.setCode(code) + + // Pre-update the textarea value so that the caret and scroll can be set + // correctly before the next render so that the next render doesn't reset them. + cba.textAreaRef.Set(`value`, code) + + // Match the diretionallity of the prior selection. + oldStart := cba.textAreaRef.Get(`selectionStart`).Int() + oldEnd := cba.textAreaRef.Get(`selectionEnd`).Int() + if oldStart > oldEnd { + sel.Start, sel.End = sel.End, sel.Start + } + + // Set selections + cba.textAreaRef.Set(`selectionStart`, sel.Start) + cba.textAreaRef.Set(`selectionEnd`, sel.End) + + // Auto-scroll to keep caret in view. + cba.verticallyAutoScroll(sel.End, code) + cba.horizontallyAutoScroll(sel.End, code) +} + +func (cba *codeBoxAssistant) verticallyAutoScroll(caret int, code string) { + totalHeight := cba.textAreaRef.Get(`scrollHeight`).Int() + visibleHeight := cba.textAreaRef.Get(`clientHeight`).Int() + if totalHeight <= visibleHeight { + return // No vertical scrolling needed. + } + + lineCount := strings.Count(code, "\n") + 1 + curLine := strings.Count(code[:caret], "\n") + 1 + scrollTop := int(float64(curLine) * float64(totalHeight) / float64(lineCount)) + + curTop := cba.textAreaRef.Get(`scrollTop`).Int() + if scrollTop < curTop { + cba.textAreaRef.Set(`scrollTop`, scrollTop) + } else if scrollTop -= visibleHeight; scrollTop > curTop { + cba.textAreaRef.Set(`scrollTop`, scrollTop) + } +} + +func (cba *codeBoxAssistant) horizontallyAutoScroll(caret int, code string) { + totalWidth := cba.textAreaRef.Get(`scrollWidth`).Int() + visibleWidth := cba.textAreaRef.Get(`clientWidth`).Int() + if totalWidth <= visibleWidth { + return // No horizontal scrolling needed. + } + + longestLine := editor.LongestMeasuredLineLength(code) + par := strings.LastIndexByte(code[:caret], '\n') + 1 + curLine := editor.MeasureLineLength(code[par:caret]) + scrollLeft := int(float64(curLine) * float64(totalWidth) / float64(longestLine)) + + curLeft := cba.textAreaRef.Get(`scrollLeft`).Int() + if scrollLeft < curLeft { + cba.textAreaRef.Set(`scrollLeft`, scrollLeft) + } else if scrollLeft -= visibleWidth; scrollLeft > curLeft { + cba.textAreaRef.Set(`scrollLeft`, scrollLeft) + } +} + +func getLineNumbers(lineCount int) string { + lines := make([]string, lineCount) + for i := 0; i < lineCount; i++ { + lines[i] = strconv.Itoa(i + 1) + } + return strings.Join(lines, "\n") +} diff --git a/playground/internal/react/outputBox.go b/playground/internal/react/outputBox.go new file mode 100644 index 00000000..4f92910b --- /dev/null +++ b/playground/internal/react/outputBox.go @@ -0,0 +1,126 @@ +package react + +import ( + "fmt" + "go/scanner" + + "github.com/gopherjs/gopherjs.github.io/playground/internal/common" +) + +const ( + errType = `err` + textType = `text` + typeKey = `type` + contextKey = `context` +) + +func Output(setOutput func(any)) common.Output { + return &outputImpl{setOutput: setOutput} +} + +type outputImpl struct{ setOutput func(any) } + +func (o *outputImpl) Clear() { + o.setOutput([]any{}) +} + +func (o *outputImpl) AddError(err error) { + o.setOutput(func(items []any) []any { + if list, ok := err.(scanner.ErrorList); ok { + for _, entry := range list { + items = append(items, map[string]any{typeKey: errType, contextKey: entry.Error()}) + } + return items + } + return append(items, map[string]any{typeKey: errType, contextKey: err.Error()}) + }) +} + +func (o *outputImpl) AddOutput(out string) { + o.setOutput(func(items []any) []any { + if maxItem := len(items) - 1; maxItem >= 0 { + lastItem := items[maxItem].(map[string]any) + if lastItem[typeKey] == textType { + lastItem[contextKey] = lastItem[contextKey].(string) + out + return items + } + } + return append(items, map[string]any{typeKey: textType, contextKey: out}) + }) +} + +// OutputBox creates a box React element for displaying output strings and errors. +func OutputBox(output []any) *Element { + return CreateElement(outputBoxComponent, Props{ + `output`: output, + }) +} + +func outputBoxComponent(props Props) *Element { + output := As[[]any](props, `output`) + outputBoxRef := UseRef() + + UseEffect(func() { + // If there are only errors, scroll to the top, + // otherwise scroll to the bottom. + outputBox := outputBoxRef.Current() + scrollTop := 0 + if hasNonErrors(output) { + scrollTop = outputBox.Get(`scrollHeight`).Int() + } + outputBox.Set(`scrollTop`, scrollTop) + }, []any{output}) + + children := make([]Node, 0, len(output)) + for i, item := range output { + itemMap := item.(map[string]any) + children = append(children, outputLine( + i, itemMap[typeKey] == errType, + itemMap[contextKey].(string), + )) + } + + return Div(Props{ + `id`: `output-box`, + `ref`: outputBoxRef, + }, children...) +} + +// hasNonErrors determines if any output is not an error, +// otherwise the list is empty or only contains errors. +func hasNonErrors(output []any) bool { + for _, item := range output { + if item.(map[string]any)[typeKey] != errType { + return true + } + } + return false +} + +// outputLine creates a React element for a single output line. +// The index is used to create a unique ID for the line so it should +// be the line's position in the output list. +func outputLine(index int, isError bool, content string) *Element { + return CreateElement(outputLineComponent, Props{ + `index`: index, + `isError`: isError, + `content`: content, + }) +} + +func outputLineComponent(props Props) *Element { + index := int(As[float64](props, `index`)) + isError := As[bool](props, `isError`) + content := As[string](props, `content`) + + classType := `output-text` + if isError { + classType = `output-err` + } + id := fmt.Sprintf(`output-item-%d`, index) + + return Pre(Props{ + `className`: classType, + `id`: id, + }, content) +} diff --git a/playground/internal/react/playground.go b/playground/internal/react/playground.go new file mode 100644 index 00000000..8649db7c --- /dev/null +++ b/playground/internal/react/playground.go @@ -0,0 +1,136 @@ +package react + +import ( + "github.com/gopherjs/gopherjs/js" + + "github.com/gopherjs/gopherjs.github.io/playground/internal/common" + "github.com/gopherjs/gopherjs.github.io/playground/internal/snippets" +) + +func Playground() *Element { + version := "vx.x.x" // TODO(grantnelson-wf): compiler.Version() + preferslightTheme := getPrefersLightTheme() + snippetsStore := snippets.NewStore() + + return CreateElement(func() *Element { + code, setCode := UseState(``) + shareUrl, setShareUrl := UseState(``) + output, setOutput := UseState([]any{}) + fmtImports, setFmtImports := UseState(true) + lightTheme, setLightTheme := UseState(preferslightTheme) + + pa := &playgroundAssistant{ + snippetStore: snippetsStore, + code: code, + setCode: setCode, + setShareUrl: setShareUrl, + setOutput: setOutput, + fmtImports: fmtImports, + } + + UseEffect(func() { + setDataTheme(lightTheme) + }, []any{lightTheme}) + + UseEffect(func() { + // code changed so clear share URL + setShareUrl(``) + getLocation().Set(`hash`, ``) + }, []any{code}) + + UseEffect(pa.initCode, []any{}) + + /* TODO(grantnelson-wf): Implement hashchange loading + dom.GetWindow().Top().AddEventListener("hashchange", false, func(event dom.Event) { + event.PreventDefault() + callback() + }) + */ + + return Fragment( + Div(Props{ + `id`: `banner`, + }, + BannerTitle(version), + Span(Props{ + `id`: `controls`, + }, + Button(`run-button`, `Run`, nil, pa.onRunClick), + Button(`format-button`, `Format`, nil, pa.onFormatClick), + ToggleBox(`format-imports`, `Rewrite imports on Format`, `Imports`, fmtImports, setFmtImports), + ShareUrlControl(shareUrl, pa.onShareClick), + // TODO(grantnelson-wf): Snippet selection control. + ToggleBox(`color-theme`, `Change color-theme`, ``, lightTheme, setLightTheme), + ), + ), + Div(Props{ + `id`: `code-output-box`, + }, + Div(Props{ + `id`: `code-box-container`, + }, + CodeBox(code, setCode, pa.onSaveKeyPress, pa.onEscapeCode), + ), + OutputBox(output), + ), + ) + }, nil) +} + +func getPrefersLightTheme() bool { + return js.Global.Get(`window`).Call(`matchMedia`, `(prefers-color-scheme: light)`).Get(`matches`).Bool() +} + +func setDataTheme(lightTheme bool) { + theme := `dark` + if lightTheme { + theme = `light` + } + js.Global.Get(`document`).Get(`documentElement`).Call(`setAttribute`, `data-theme`, theme) +} + +func getLocation() *js.Object { + return js.Global.Get(`window`).Get(`top`).Get(`location`) +} + +type playgroundAssistant struct { + snippetStore common.SnippetStore + code string + setCode func(any) + setShareUrl func(any) + setOutput func(any) + fmtImports bool +} + +func (pa *playgroundAssistant) initCode() { + // TODO(grantnelson-wf): Update + hash := getLocation().Get(`hash`).String() + code, err := pa.snippetStore.Read(hash) + if err != nil { + o := Output(pa.setOutput) + o.Clear() + o.AddError(err) + } + // even on error, set the code so the default code is shown. + pa.setCode(code) +} + +func (pa *playgroundAssistant) onSaveKeyPress() { + println("Save key pressed") // TODO(grantnelson-wf): Implement +} + +func (pa *playgroundAssistant) onEscapeCode() { + println("Escape code pressed") // TODO(grantnelson-wf): Implement to change focus to the run button or something +} + +func (pa *playgroundAssistant) onRunClick() { + println("Run clicked") // TODO(grantnelson-wf): Implement +} + +func (pa *playgroundAssistant) onFormatClick() { + println("Format clicked", pa.fmtImports) // TODO(grantnelson-wf): Implement +} + +func (pa *playgroundAssistant) onShareClick() { + println("Share URL Clicked") // TODO(grantnelson-wf): Implement +} diff --git a/playground/internal/react/shareUrlControl.go b/playground/internal/react/shareUrlControl.go new file mode 100644 index 00000000..db582491 --- /dev/null +++ b/playground/internal/react/shareUrlControl.go @@ -0,0 +1,48 @@ +package react + +import "github.com/gopherjs/gopherjs/js" + +func ShareUrlControl(shareUrl string, onShare func()) *Element { + return CreateElement(shareUrlComponent, Props{ + `shareUrl`: shareUrl, + `onShare`: onShare, + }) +} + +func shareUrlComponent(props Props) *Element { + shareUrl := As[string](props, `shareUrl`) + onShare := AsFunc(props, `onShare`) + shareUrlRef := UseRef() + + UseEffect(func() { + if len(shareUrl) > 0 { + shareUrlRef.Call(`focus`) + } + }, []any{shareUrl, shareUrlRef}) + + onShareUrlFocus := func(e *js.Object) { + e.Get(`target`).Call(`select`) + } + + onShareClick := func() { + onShare() + } + + className := `share-url-hidden` + if len(shareUrl) > 0 { + className = `share-url-show` + } + + return Fragment( + Button(`share-button`, `Share`, nil, onShareClick), + CreateElement(`input`, Props{ + `id`: `share-url`, + `type`: `text`, + `className`: className, + `ref`: shareUrlRef, + `value`: shareUrl, + `readOnly`: true, + `onFocus`: onShareUrlFocus, + }), + ) +} diff --git a/playground/internal/react/toggleBox.go b/playground/internal/react/toggleBox.go new file mode 100644 index 00000000..f7f2faca --- /dev/null +++ b/playground/internal/react/toggleBox.go @@ -0,0 +1,45 @@ +package react + +import "github.com/gopherjs/gopherjs/js" + +func ToggleBox(id, title, label string, checked bool, setChecked func(any)) *Element { + return CreateElement(toggleBoxComponent, Props{ + `id`: id, + `title`: title, + `label`: label, + `checked`: checked, + `setChecked`: setChecked, + }) +} + +func toggleBoxComponent(props Props) *Element { + id := As[string](props, `id`) + title := As[string](props, `title`) + label := As[string](props, `label`) + checked := As[bool](props, `checked`) + setChecked := AsSetter(props, `setChecked`) + + onChange := func(e *js.Object) { + setChecked(e.Get(`target`).Get(`checked`).Bool()) + } + + return Div(Props{ + `id`: id, + `className`: `toggle-box-wrapper`, + `title`: title, + }, + CreateElement(`input`, Props{ + `id`: id + `-checkbox`, + `className`: `toggle-box-checkbox`, + `type`: `checkbox`, + `checked`: checked, + `onChange`: onChange, + }), + CreateElement(`label`, Props{ + `id`: id + `-toggle`, + `className`: `toggle-box-toggle`, + `htmlFor`: id + `-checkbox`, + }), + label, + ) +} diff --git a/playground/internal/runner/fetcher.go b/playground/internal/runner/fetcher.go new file mode 100644 index 00000000..a4b089bb --- /dev/null +++ b/playground/internal/runner/fetcher.go @@ -0,0 +1,62 @@ +package runner + +import ( + "bytes" + "compress/gzip" + "encoding/gob" + "fmt" + + "github.com/gopherjs/gopherjs/compiler/sources" + "github.com/gopherjs/gopherjs/js" + "honnef.co/go/js/xhr" + + "github.com/gopherjs/gopherjs.github.io/playground/internal/common" +) + +type fetcher struct{} + +func NewFetcher() common.Fetcher { + return &fetcher{} +} + +func (f *fetcher) FetchPackage(importPath string) (srcs *sources.Sources, err error) { + data, err := f.fetchFile(importPath) + if err != nil { + return nil, err + } + + zr, err := gzip.NewReader(bytes.NewReader(data)) + if err != nil { + return nil, fmt.Errorf(`failed to create gzip reader for package %q: %v`, importPath, err) + } + defer func() { + if closeErr := zr.Close(); err == nil && closeErr != nil { + err = fmt.Errorf(`failed to close gzip reader for package %q: %w`, importPath, closeErr) + } + }() + + srcs = &sources.Sources{} + if err := srcs.Read(gob.NewDecoder(zr).Decode); err != nil { + return nil, fmt.Errorf(`failed to decode package %q: %v`, importPath, err) + } + + return srcs, nil +} + +func (f *fetcher) fetchFile(importPath string) ([]byte, error) { + const ( + pkgBaseURL = `pkg/` + pkgExt = `.a.js` + ) + + req := xhr.NewRequest(`GET`, pkgBaseURL+importPath+pkgExt) + req.ResponseType = xhr.ArrayBuffer + + err := req.Send(nil) + if err != nil || req.Status != 200 { + return nil, fmt.Errorf(`failed to fetch prepackaged package for %q: [%d]%w`, importPath, req.Status, err) + } + + data := js.Global.Get(`Uint8Array`).New(req.Response).Interface().([]byte) + return data, nil +} diff --git a/playground/internal/runner/packageCache.go b/playground/internal/runner/packageCache.go new file mode 100644 index 00000000..26656f05 --- /dev/null +++ b/playground/internal/runner/packageCache.go @@ -0,0 +1,92 @@ +package runner + +import ( + "sync" + + "github.com/gopherjs/gopherjs.github.io/playground/internal/common" + "github.com/gopherjs/gopherjs/compiler/sources" +) + +type loadResult string + +const ( + loadCached loadResult = "cached" + loadFetched loadResult = "fetched" + loadFailed loadResult = "failed" +) + +type packageCache struct { + output common.Output + fetcher common.Fetcher + cached map[string]*sources.Sources + inprogress map[string]chan struct{} + lock sync.Mutex +} + +func newPackageCache(output common.Output, fetcher common.Fetcher) *packageCache { + return &packageCache{ + output: output, + fetcher: fetcher, + cached: make(map[string]*sources.Sources), + inprogress: make(map[string]chan struct{}), + } +} + +func (pc *packageCache) Load(importPath string) (*sources.Sources, loadResult) { + srcs := &sources.Sources{} + result := pc.syncLoad(importPath)(srcs) + return srcs, result +} + +// syncLoad returns a function to complete loading the package. +// +// The returned function may either return the cached package immediately, +// wait for an in-progress load to complete, or perform the load itself. +// syncLoad will not block, but the returned function may block. +func (pc *packageCache) syncLoad(importPath string) func(srcs *sources.Sources) loadResult { + pc.lock.Lock() + defer pc.lock.Unlock() + + if cached, found := pc.cached[importPath]; found { + return func(srcs *sources.Sources) loadResult { + *srcs = *cached // Copy the cached sources. + return loadCached + } + } + + // Load is already in progress, wait for it to complete. + if ch, loading := pc.inprogress[importPath]; loading { + return func(srcs *sources.Sources) loadResult { + <-ch // Wait for the in-progress load to complete. + + pc.lock.Lock() + defer pc.lock.Unlock() + + if cached, found := pc.cached[importPath]; found { + *srcs = *cached // Copy the cached sources. + return loadCached + } + return loadFailed + } + } + + // Load is not in progress, start it now. + ch := make(chan struct{}) + pc.inprogress[importPath] = ch + return func(srcs *sources.Sources) loadResult { + fetched, err := pc.fetcher.FetchPackage(importPath) + if err != nil { + pc.output.AddError(err) + return loadFailed + } + + pc.lock.Lock() + defer pc.lock.Unlock() + + pc.cached[importPath] = fetched + *srcs = *fetched // Copy the fetched sources. + delete(pc.inprogress, importPath) + close(ch) + return loadFetched + } +} diff --git a/playground/internal/runner/runner.go b/playground/internal/runner/runner.go new file mode 100644 index 00000000..a2c3a234 --- /dev/null +++ b/playground/internal/runner/runner.go @@ -0,0 +1,169 @@ +package runner + +import ( + "bytes" + "fmt" + "go/ast" + "go/parser" + "go/token" + "go/types" + "runtime" + _ "unsafe" + + "github.com/gopherjs/gopherjs/compiler" + "github.com/gopherjs/gopherjs/compiler/sources" + "github.com/gopherjs/gopherjs/js" + + "github.com/gopherjs/gopherjs.github.io/playground/internal/common" +) + +const pseudoFileName = `prog.go` + +type runner struct { + cache *packageCache + + output common.Output +} + +func New(output common.Output, fetcher common.Fetcher) common.Runner { + return &runner{ + cache: newPackageCache(output, fetcher), + output: output, + } +} + +// Preload asynchronously starts loading standard library packages needed +// to run the given code. +func (r *runner) Preload(code string) { + fileSet := token.NewFileSet() + file, err := parser.ParseFile(fileSet, pseudoFileName, code, parser.ImportsOnly) + if err != nil { + // Ignore errors here. They will be reported during actual compilation. + return + } + r.preloadImports(&sources.Sources{Files: []*ast.File{file}}) +} + +func (r *runner) preloadImports(srcs *sources.Sources) { + imports := srcs.UnresolvedImports() + for _, imp := range imports { + go func(path string) { + srcs, result := r.cache.Load(path) + if result == loadFetched { + // If this is the first time this package was fetched, + // start preloading its imports too. + r.preloadImports(srcs) + } + }(imp) + } +} + +// Run compiles and runs the given code. +// If this is called again while a previous Run is still in progress, +// the previous Run is cancelled. +func (r *runner) Run(code string) { + fileSet := token.NewFileSet() + file, err := parser.ParseFile(fileSet, pseudoFileName, code, parser.ParseComments) + if err != nil { + r.output.AddError(err) + return + } + + root := &sources.Sources{ + ImportPath: `main`, + Dir: ``, + Files: []*ast.File{file}, + FileSet: fileSet, + } + + // start preloading imports so that they are fetched asynchronously, + // and we can synchronously wait for them later during actual compilation. + r.preloadImports(root) + + allSources, ok := r.collectAllSources(root) + if !ok { + return // Errors have already been reported. + } + archives, err := r.prepareAndCompilePackages(allSources) + if err != nil { + r.output.AddError(err) + return + } + + jsCode := r.write(archives) + r.eval(jsCode) +} + +func (r *runner) collectAllSources(root *sources.Sources) ([]*sources.Sources, bool) { + allSrcs := map[string]*sources.Sources{} + var collect func(srcs *sources.Sources) bool + collect = func(srcs *sources.Sources) bool { + allSrcs[srcs.ImportPath] = srcs + for _, path := range srcs.UnresolvedImports() { + if _, has := allSrcs[path]; has { + continue // Already collected. + } + srcs, result := r.cache.Load(path) + if result == loadFailed { + // Failed to load an import. + r.output.AddError(fmt.Errorf(`failed to load package %q`, path)) + return false + } + if !collect(srcs) { + return false + } + } + return true + } + if !collect(root) { + return nil, false + } + + sourcesSlice := make([]*sources.Sources, 0, len(allSrcs)) + for _, srcs := range allSrcs { + sourcesSlice = append(sourcesSlice, srcs) + } + return sourcesSlice, true +} + +func (r *runner) sourcesForImport(path, _ string) (*sources.Sources, error) { + srcs, result := r.cache.Load(path) + if result == loadFailed { + return nil, fmt.Errorf(`failed to load package %q`, path) + } + return srcs, nil +} + +func (r *runner) prepareAndCompilePackages(allSources []*sources.Sources) ([]*compiler.Archive, error) { + tContext := types.NewContext() + err := compiler.PrepareAllSources(allSources, r.sourcesForImport, tContext) + if err != nil { + return nil, err + } + + archives := make([]*compiler.Archive, 0, len(allSources)) + for _, srcs := range allSources { + arch, err := compiler.Compile(srcs, tContext, true) + if err != nil { + return nil, err + } + archives = append(archives, arch) + } + + return archives, nil +} + +func (r *runner) write(allPkgs []*compiler.Archive) string { + jsCode := bytes.NewBuffer(nil) + jsCode.WriteString("try{\n") + compiler.WriteProgramCode(allPkgs, compiler.DefaultFilter(jsCode), runtime.Version()) + jsCode.WriteString("} catch (err) {\n") + jsCode.WriteString("\tgoPanicHandler(err.message);\n") + jsCode.WriteString("}\n") + return jsCode.String() +} + +func (r *runner) eval(jsCode string) { + js.Global.Set("$checkForDeadlock", true) + js.Global.Call("eval", js.InternalObject(jsCode)) +} diff --git a/playground/internal/snippets/default.go.txt b/playground/internal/snippets/default.go.txt new file mode 100644 index 00000000..bc0ccc5b --- /dev/null +++ b/playground/internal/snippets/default.go.txt @@ -0,0 +1,14 @@ +// You can edit this code! +// Click here and start typing. +package main + +import ( + "fmt" + "syscall/js" +) + +func main() { + fmt.Println("Hello, playground") + js.Global().Call("alert", "Hello, JavaScript") + println("Hello, JS console") +} diff --git a/playground/internal/snippets/snippets.go b/playground/internal/snippets/snippets.go new file mode 100644 index 00000000..ececa9b4 --- /dev/null +++ b/playground/internal/snippets/snippets.go @@ -0,0 +1,17 @@ +package snippets + +import _ "embed" + +// DefaultCode is the default code that is shown in the playground +// when no other snippet is loaded. +// +//go:embed default.go.txt +var DefaultCode string + +// predefined contains the pre-defined code snippets that are available +// in the playground, keyed by the display name. +// +// TODO(grantnelson-wf): Add more pre-defined snippets. +var predefined = map[string]string{ + `Hello`: DefaultCode, +} diff --git a/playground/internal/snippets/store.go b/playground/internal/snippets/store.go new file mode 100644 index 00000000..e3a2b2b5 --- /dev/null +++ b/playground/internal/snippets/store.go @@ -0,0 +1,61 @@ +package snippets + +import ( + "fmt" + "strings" + + "github.com/gopherjs/gopherjs/js" + "honnef.co/go/js/xhr" + + "github.com/gopherjs/gopherjs.github.io/playground/internal/common" +) + +const snippetStoreHost = `https://snippets.gopherjs.org` + +// storeImp provides access to a remote snippet store. +type storeImp struct{} + +// NewStore creates a new Store instance. +func NewStore() common.SnippetStore { + return storeImp{} +} + +func (s storeImp) Read(hash string) (string, error) { + if strings.HasPrefix(hash, `#/`) { + return s.fetchStoredCode(hash[2:]) + } + + if strings.HasPrefix(hash, `#`) { + if predef, ok := predefined[hash[1:]]; ok { + return predef, nil + } + } + + return DefaultCode, nil +} + +func (s storeImp) fetchStoredCode(id string) (string, error) { + req := xhr.NewRequest(`GET`, snippetStoreHost+`/p/`+id) + req.ResponseType = xhr.ArrayBuffer + + err := req.Send(nil) + if err != nil || req.Status != 200 { + return DefaultCode, fmt.Errorf(`failed to load snippet %q: [%d]%w`, id, req.Status, err) + } + + data := js.Global.Get(`Uint8Array`).New(req.Response).Interface().([]byte) + return string(data), nil +} + +func (s storeImp) Write(code string) (string, error) { + req := xhr.NewRequest(`POST`, snippetStoreHost+`/share`) + req.ResponseType = xhr.ArrayBuffer + + err := req.Send([]byte(code)) // Send as binary. + if err != nil || req.Status != 200 { + return ``, fmt.Errorf(`failed to share snippet: [%d]%w`, req.Status, err) + } + + id := js.Global.Get(`Uint8Array`).New(req.Response).Interface().([]byte) + return `#/` + string(id), nil +} diff --git a/playground/pkg/archive/tar.a.js b/playground/pkg/archive/tar.a.js index c57451d0..03fd0db3 100644 Binary files a/playground/pkg/archive/tar.a.js and b/playground/pkg/archive/tar.a.js differ diff --git a/playground/pkg/archive/zip.a.js b/playground/pkg/archive/zip.a.js index 4ae40972..6e3e10da 100644 Binary files a/playground/pkg/archive/zip.a.js and b/playground/pkg/archive/zip.a.js differ diff --git a/playground/pkg/bufio.a.js b/playground/pkg/bufio.a.js index 51ec2530..78747cac 100644 Binary files a/playground/pkg/bufio.a.js and b/playground/pkg/bufio.a.js differ diff --git a/playground/pkg/bytes.a.js b/playground/pkg/bytes.a.js index d879db0c..3438c5dd 100644 Binary files a/playground/pkg/bytes.a.js and b/playground/pkg/bytes.a.js differ diff --git a/playground/pkg/compress/bzip2.a.js b/playground/pkg/compress/bzip2.a.js index 33d5add1..dc716444 100644 Binary files a/playground/pkg/compress/bzip2.a.js and b/playground/pkg/compress/bzip2.a.js differ diff --git a/playground/pkg/compress/flate.a.js b/playground/pkg/compress/flate.a.js index 54d0e788..6139db8e 100644 Binary files a/playground/pkg/compress/flate.a.js and b/playground/pkg/compress/flate.a.js differ diff --git a/playground/pkg/compress/gzip.a.js b/playground/pkg/compress/gzip.a.js index aad382a6..95fb24f6 100644 Binary files a/playground/pkg/compress/gzip.a.js and b/playground/pkg/compress/gzip.a.js differ diff --git a/playground/pkg/compress/lzw.a.js b/playground/pkg/compress/lzw.a.js index 68ff6922..29fa6bc4 100644 Binary files a/playground/pkg/compress/lzw.a.js and b/playground/pkg/compress/lzw.a.js differ diff --git a/playground/pkg/compress/zlib.a.js b/playground/pkg/compress/zlib.a.js index 5e63248d..112a3cbc 100644 Binary files a/playground/pkg/compress/zlib.a.js and b/playground/pkg/compress/zlib.a.js differ diff --git a/playground/pkg/container/heap.a.js b/playground/pkg/container/heap.a.js index fd453b81..450cc4c8 100644 Binary files a/playground/pkg/container/heap.a.js and b/playground/pkg/container/heap.a.js differ diff --git a/playground/pkg/container/list.a.js b/playground/pkg/container/list.a.js index d748fd21..876093f5 100644 Binary files a/playground/pkg/container/list.a.js and b/playground/pkg/container/list.a.js differ diff --git a/playground/pkg/container/ring.a.js b/playground/pkg/container/ring.a.js index c61ae3f6..d82d9964 100644 Binary files a/playground/pkg/container/ring.a.js and b/playground/pkg/container/ring.a.js differ diff --git a/playground/pkg/context.a.js b/playground/pkg/context.a.js index 72a2ff2f..c94aaced 100644 Binary files a/playground/pkg/context.a.js and b/playground/pkg/context.a.js differ diff --git a/playground/pkg/crypto.a.js b/playground/pkg/crypto.a.js index 3dc0bcf7..4ef97a16 100644 Binary files a/playground/pkg/crypto.a.js and b/playground/pkg/crypto.a.js differ diff --git a/playground/pkg/crypto/aes.a.js b/playground/pkg/crypto/aes.a.js index 4b419d34..b45a790d 100644 Binary files a/playground/pkg/crypto/aes.a.js and b/playground/pkg/crypto/aes.a.js differ diff --git a/playground/pkg/crypto/cipher.a.js b/playground/pkg/crypto/cipher.a.js index 52d6e407..fcc96b02 100644 Binary files a/playground/pkg/crypto/cipher.a.js and b/playground/pkg/crypto/cipher.a.js differ diff --git a/playground/pkg/crypto/des.a.js b/playground/pkg/crypto/des.a.js index 21c6b5b0..8a3faf18 100644 Binary files a/playground/pkg/crypto/des.a.js and b/playground/pkg/crypto/des.a.js differ diff --git a/playground/pkg/crypto/dsa.a.js b/playground/pkg/crypto/dsa.a.js index a0ac0440..5653d4c4 100644 Binary files a/playground/pkg/crypto/dsa.a.js and b/playground/pkg/crypto/dsa.a.js differ diff --git a/playground/pkg/crypto/ecdsa.a.js b/playground/pkg/crypto/ecdsa.a.js index 90287af8..0110748b 100644 Binary files a/playground/pkg/crypto/ecdsa.a.js and b/playground/pkg/crypto/ecdsa.a.js differ diff --git a/playground/pkg/crypto/ed25519.a.js b/playground/pkg/crypto/ed25519.a.js index f3323dfa..71284966 100644 Binary files a/playground/pkg/crypto/ed25519.a.js and b/playground/pkg/crypto/ed25519.a.js differ diff --git a/playground/pkg/crypto/ed25519/internal/edwards25519.a.js b/playground/pkg/crypto/ed25519/internal/edwards25519.a.js deleted file mode 100644 index 45162e20..00000000 Binary files a/playground/pkg/crypto/ed25519/internal/edwards25519.a.js and /dev/null differ diff --git a/playground/pkg/crypto/ed25519/internal/edwards25519/field.a.js b/playground/pkg/crypto/ed25519/internal/edwards25519/field.a.js deleted file mode 100644 index 1aac82f1..00000000 Binary files a/playground/pkg/crypto/ed25519/internal/edwards25519/field.a.js and /dev/null differ diff --git a/playground/pkg/crypto/elliptic.a.js b/playground/pkg/crypto/elliptic.a.js index 151206f2..8cf6521f 100644 Binary files a/playground/pkg/crypto/elliptic.a.js and b/playground/pkg/crypto/elliptic.a.js differ diff --git a/playground/pkg/crypto/elliptic/internal/fiat.a.js b/playground/pkg/crypto/elliptic/internal/fiat.a.js deleted file mode 100644 index bd919834..00000000 Binary files a/playground/pkg/crypto/elliptic/internal/fiat.a.js and /dev/null differ diff --git a/playground/pkg/crypto/elliptic/internal/nistec.a.js b/playground/pkg/crypto/elliptic/internal/nistec.a.js deleted file mode 100644 index e9590007..00000000 Binary files a/playground/pkg/crypto/elliptic/internal/nistec.a.js and /dev/null differ diff --git a/playground/pkg/crypto/hmac.a.js b/playground/pkg/crypto/hmac.a.js index ba25fbf0..d51342f8 100644 Binary files a/playground/pkg/crypto/hmac.a.js and b/playground/pkg/crypto/hmac.a.js differ diff --git a/playground/pkg/crypto/internal/boring.a.js b/playground/pkg/crypto/internal/boring.a.js new file mode 100644 index 00000000..9d779b68 Binary files /dev/null and b/playground/pkg/crypto/internal/boring.a.js differ diff --git a/playground/pkg/crypto/internal/boring/bbig.a.js b/playground/pkg/crypto/internal/boring/bbig.a.js new file mode 100644 index 00000000..2b37e3e2 Binary files /dev/null and b/playground/pkg/crypto/internal/boring/bbig.a.js differ diff --git a/playground/pkg/crypto/internal/boring/sig.a.js b/playground/pkg/crypto/internal/boring/sig.a.js new file mode 100644 index 00000000..4a1b99b0 Binary files /dev/null and b/playground/pkg/crypto/internal/boring/sig.a.js differ diff --git a/playground/pkg/crypto/internal/edwards25519.a.js b/playground/pkg/crypto/internal/edwards25519.a.js new file mode 100644 index 00000000..2d99f758 Binary files /dev/null and b/playground/pkg/crypto/internal/edwards25519.a.js differ diff --git a/playground/pkg/crypto/internal/edwards25519/field.a.js b/playground/pkg/crypto/internal/edwards25519/field.a.js new file mode 100644 index 00000000..e4dd41ba Binary files /dev/null and b/playground/pkg/crypto/internal/edwards25519/field.a.js differ diff --git a/playground/pkg/crypto/internal/nistec.a.js b/playground/pkg/crypto/internal/nistec.a.js new file mode 100644 index 00000000..52bbe01b Binary files /dev/null and b/playground/pkg/crypto/internal/nistec.a.js differ diff --git a/playground/pkg/crypto/internal/nistec/fiat.a.js b/playground/pkg/crypto/internal/nistec/fiat.a.js new file mode 100644 index 00000000..0656f4c4 Binary files /dev/null and b/playground/pkg/crypto/internal/nistec/fiat.a.js differ diff --git a/playground/pkg/crypto/internal/randutil.a.js b/playground/pkg/crypto/internal/randutil.a.js index f58c5628..8f37ab55 100644 Binary files a/playground/pkg/crypto/internal/randutil.a.js and b/playground/pkg/crypto/internal/randutil.a.js differ diff --git a/playground/pkg/crypto/internal/subtle.a.js b/playground/pkg/crypto/internal/subtle.a.js index 8dbdf17f..0fafb599 100644 Binary files a/playground/pkg/crypto/internal/subtle.a.js and b/playground/pkg/crypto/internal/subtle.a.js differ diff --git a/playground/pkg/crypto/md5.a.js b/playground/pkg/crypto/md5.a.js index edf9ee10..894ff269 100644 Binary files a/playground/pkg/crypto/md5.a.js and b/playground/pkg/crypto/md5.a.js differ diff --git a/playground/pkg/crypto/rand.a.js b/playground/pkg/crypto/rand.a.js index bf072eef..68f47640 100644 Binary files a/playground/pkg/crypto/rand.a.js and b/playground/pkg/crypto/rand.a.js differ diff --git a/playground/pkg/crypto/rc4.a.js b/playground/pkg/crypto/rc4.a.js index a9fe0086..fa6c6505 100644 Binary files a/playground/pkg/crypto/rc4.a.js and b/playground/pkg/crypto/rc4.a.js differ diff --git a/playground/pkg/crypto/rsa.a.js b/playground/pkg/crypto/rsa.a.js index 26f899e0..e8cbf3dd 100644 Binary files a/playground/pkg/crypto/rsa.a.js and b/playground/pkg/crypto/rsa.a.js differ diff --git a/playground/pkg/crypto/sha1.a.js b/playground/pkg/crypto/sha1.a.js index 7e80023a..8ac7b1ad 100644 Binary files a/playground/pkg/crypto/sha1.a.js and b/playground/pkg/crypto/sha1.a.js differ diff --git a/playground/pkg/crypto/sha256.a.js b/playground/pkg/crypto/sha256.a.js index 12069bdd..f8884ad2 100644 Binary files a/playground/pkg/crypto/sha256.a.js and b/playground/pkg/crypto/sha256.a.js differ diff --git a/playground/pkg/crypto/sha512.a.js b/playground/pkg/crypto/sha512.a.js index 84b7fd53..9e11758f 100644 Binary files a/playground/pkg/crypto/sha512.a.js and b/playground/pkg/crypto/sha512.a.js differ diff --git a/playground/pkg/crypto/subtle.a.js b/playground/pkg/crypto/subtle.a.js index 2a7ea46d..49fc9a76 100644 Binary files a/playground/pkg/crypto/subtle.a.js and b/playground/pkg/crypto/subtle.a.js differ diff --git a/playground/pkg/crypto/tls.a.js b/playground/pkg/crypto/tls.a.js index a860d2a5..8f4056ce 100644 Binary files a/playground/pkg/crypto/tls.a.js and b/playground/pkg/crypto/tls.a.js differ diff --git a/playground/pkg/crypto/x509.a.js b/playground/pkg/crypto/x509.a.js index 7b55ae70..091c1ad6 100644 Binary files a/playground/pkg/crypto/x509.a.js and b/playground/pkg/crypto/x509.a.js differ diff --git a/playground/pkg/crypto/x509/pkix.a.js b/playground/pkg/crypto/x509/pkix.a.js index cc32211a..6d8d958a 100644 Binary files a/playground/pkg/crypto/x509/pkix.a.js and b/playground/pkg/crypto/x509/pkix.a.js differ diff --git a/playground/pkg/database/sql.a.js b/playground/pkg/database/sql.a.js index 6cc67fc4..12b562f9 100644 Binary files a/playground/pkg/database/sql.a.js and b/playground/pkg/database/sql.a.js differ diff --git a/playground/pkg/database/sql/driver.a.js b/playground/pkg/database/sql/driver.a.js index ff4ff13b..1826b133 100644 Binary files a/playground/pkg/database/sql/driver.a.js and b/playground/pkg/database/sql/driver.a.js differ diff --git a/playground/pkg/debug/buildinfo.a.js b/playground/pkg/debug/buildinfo.a.js index eebdc9ec..3bd83221 100644 Binary files a/playground/pkg/debug/buildinfo.a.js and b/playground/pkg/debug/buildinfo.a.js differ diff --git a/playground/pkg/debug/dwarf.a.js b/playground/pkg/debug/dwarf.a.js index e10b1c7b..9efd7f31 100644 Binary files a/playground/pkg/debug/dwarf.a.js and b/playground/pkg/debug/dwarf.a.js differ diff --git a/playground/pkg/debug/elf.a.js b/playground/pkg/debug/elf.a.js index 466cbbb1..51238f07 100644 Binary files a/playground/pkg/debug/elf.a.js and b/playground/pkg/debug/elf.a.js differ diff --git a/playground/pkg/debug/gosym.a.js b/playground/pkg/debug/gosym.a.js index 21400a92..5844979b 100644 Binary files a/playground/pkg/debug/gosym.a.js and b/playground/pkg/debug/gosym.a.js differ diff --git a/playground/pkg/debug/macho.a.js b/playground/pkg/debug/macho.a.js index b1b2df7b..2b61008d 100644 Binary files a/playground/pkg/debug/macho.a.js and b/playground/pkg/debug/macho.a.js differ diff --git a/playground/pkg/debug/pe.a.js b/playground/pkg/debug/pe.a.js index ee818bec..2c656e0a 100644 Binary files a/playground/pkg/debug/pe.a.js and b/playground/pkg/debug/pe.a.js differ diff --git a/playground/pkg/debug/plan9obj.a.js b/playground/pkg/debug/plan9obj.a.js index 6a145012..536b1822 100644 Binary files a/playground/pkg/debug/plan9obj.a.js and b/playground/pkg/debug/plan9obj.a.js differ diff --git a/playground/pkg/embed.a.js b/playground/pkg/embed.a.js index fea89b8f..6622f93a 100644 Binary files a/playground/pkg/embed.a.js and b/playground/pkg/embed.a.js differ diff --git a/playground/pkg/encoding.a.js b/playground/pkg/encoding.a.js index 78880181..eb3294ef 100644 Binary files a/playground/pkg/encoding.a.js and b/playground/pkg/encoding.a.js differ diff --git a/playground/pkg/encoding/ascii85.a.js b/playground/pkg/encoding/ascii85.a.js index f4dd9d81..5f1eb9f3 100644 Binary files a/playground/pkg/encoding/ascii85.a.js and b/playground/pkg/encoding/ascii85.a.js differ diff --git a/playground/pkg/encoding/asn1.a.js b/playground/pkg/encoding/asn1.a.js index fe6e928f..e140ddfe 100644 Binary files a/playground/pkg/encoding/asn1.a.js and b/playground/pkg/encoding/asn1.a.js differ diff --git a/playground/pkg/encoding/base32.a.js b/playground/pkg/encoding/base32.a.js index c8d3bd0a..e75102e8 100644 Binary files a/playground/pkg/encoding/base32.a.js and b/playground/pkg/encoding/base32.a.js differ diff --git a/playground/pkg/encoding/base64.a.js b/playground/pkg/encoding/base64.a.js index 07a01525..efc943ee 100644 Binary files a/playground/pkg/encoding/base64.a.js and b/playground/pkg/encoding/base64.a.js differ diff --git a/playground/pkg/encoding/binary.a.js b/playground/pkg/encoding/binary.a.js index c9936a50..33b4c826 100644 Binary files a/playground/pkg/encoding/binary.a.js and b/playground/pkg/encoding/binary.a.js differ diff --git a/playground/pkg/encoding/csv.a.js b/playground/pkg/encoding/csv.a.js index 59da578e..1c6de02c 100644 Binary files a/playground/pkg/encoding/csv.a.js and b/playground/pkg/encoding/csv.a.js differ diff --git a/playground/pkg/encoding/gob.a.js b/playground/pkg/encoding/gob.a.js index e0c37179..ff9f153b 100644 Binary files a/playground/pkg/encoding/gob.a.js and b/playground/pkg/encoding/gob.a.js differ diff --git a/playground/pkg/encoding/hex.a.js b/playground/pkg/encoding/hex.a.js index fe46897a..db625c11 100644 Binary files a/playground/pkg/encoding/hex.a.js and b/playground/pkg/encoding/hex.a.js differ diff --git a/playground/pkg/encoding/json.a.js b/playground/pkg/encoding/json.a.js index 18c8d646..57caf921 100644 Binary files a/playground/pkg/encoding/json.a.js and b/playground/pkg/encoding/json.a.js differ diff --git a/playground/pkg/encoding/pem.a.js b/playground/pkg/encoding/pem.a.js index 0e7aa0f2..fcb7d587 100644 Binary files a/playground/pkg/encoding/pem.a.js and b/playground/pkg/encoding/pem.a.js differ diff --git a/playground/pkg/encoding/xml.a.js b/playground/pkg/encoding/xml.a.js index 674396ef..d3f0c363 100644 Binary files a/playground/pkg/encoding/xml.a.js and b/playground/pkg/encoding/xml.a.js differ diff --git a/playground/pkg/errors.a.js b/playground/pkg/errors.a.js index 023cd6ed..ac736fad 100644 Binary files a/playground/pkg/errors.a.js and b/playground/pkg/errors.a.js differ diff --git a/playground/pkg/expvar.a.js b/playground/pkg/expvar.a.js index 1a6c48f7..12c240ee 100644 Binary files a/playground/pkg/expvar.a.js and b/playground/pkg/expvar.a.js differ diff --git a/playground/pkg/flag.a.js b/playground/pkg/flag.a.js index 201d0cb0..c2606835 100644 Binary files a/playground/pkg/flag.a.js and b/playground/pkg/flag.a.js differ diff --git a/playground/pkg/fmt.a.js b/playground/pkg/fmt.a.js index 7fadada8..7b5561c7 100644 Binary files a/playground/pkg/fmt.a.js and b/playground/pkg/fmt.a.js differ diff --git a/playground/pkg/github.com/gopherjs/gopherjs/js.a.js b/playground/pkg/github.com/gopherjs/gopherjs/js.a.js index 33c7c5f5..768511f2 100644 Binary files a/playground/pkg/github.com/gopherjs/gopherjs/js.a.js and b/playground/pkg/github.com/gopherjs/gopherjs/js.a.js differ diff --git a/playground/pkg/github.com/gopherjs/gopherjs/nosync.a.js b/playground/pkg/github.com/gopherjs/gopherjs/nosync.a.js index c8313c1c..c1672baf 100644 Binary files a/playground/pkg/github.com/gopherjs/gopherjs/nosync.a.js and b/playground/pkg/github.com/gopherjs/gopherjs/nosync.a.js differ diff --git a/playground/pkg/go/ast.a.js b/playground/pkg/go/ast.a.js index baae404f..4926a6d7 100644 Binary files a/playground/pkg/go/ast.a.js and b/playground/pkg/go/ast.a.js differ diff --git a/playground/pkg/go/build.a.js b/playground/pkg/go/build.a.js index 45d0cd8a..66483bd0 100644 Binary files a/playground/pkg/go/build.a.js and b/playground/pkg/go/build.a.js differ diff --git a/playground/pkg/go/build/constraint.a.js b/playground/pkg/go/build/constraint.a.js index a1c27384..6b87ee02 100644 Binary files a/playground/pkg/go/build/constraint.a.js and b/playground/pkg/go/build/constraint.a.js differ diff --git a/playground/pkg/go/constant.a.js b/playground/pkg/go/constant.a.js index c66e7379..1c86531d 100644 Binary files a/playground/pkg/go/constant.a.js and b/playground/pkg/go/constant.a.js differ diff --git a/playground/pkg/go/doc.a.js b/playground/pkg/go/doc.a.js index 9415ea31..e0858b37 100644 Binary files a/playground/pkg/go/doc.a.js and b/playground/pkg/go/doc.a.js differ diff --git a/playground/pkg/go/doc/comment.a.js b/playground/pkg/go/doc/comment.a.js new file mode 100644 index 00000000..255fb4e9 Binary files /dev/null and b/playground/pkg/go/doc/comment.a.js differ diff --git a/playground/pkg/go/format.a.js b/playground/pkg/go/format.a.js index d9273b0f..587a74d4 100644 Binary files a/playground/pkg/go/format.a.js and b/playground/pkg/go/format.a.js differ diff --git a/playground/pkg/go/importer.a.js b/playground/pkg/go/importer.a.js index 3f5247db..58152154 100644 Binary files a/playground/pkg/go/importer.a.js and b/playground/pkg/go/importer.a.js differ diff --git a/playground/pkg/go/internal/gccgoimporter.a.js b/playground/pkg/go/internal/gccgoimporter.a.js index 44efd40b..1e7d1845 100644 Binary files a/playground/pkg/go/internal/gccgoimporter.a.js and b/playground/pkg/go/internal/gccgoimporter.a.js differ diff --git a/playground/pkg/go/internal/gcimporter.a.js b/playground/pkg/go/internal/gcimporter.a.js index cc944e22..d698a61d 100644 Binary files a/playground/pkg/go/internal/gcimporter.a.js and b/playground/pkg/go/internal/gcimporter.a.js differ diff --git a/playground/pkg/go/internal/srcimporter.a.js b/playground/pkg/go/internal/srcimporter.a.js index 9ca60a6e..66c4c23e 100644 Binary files a/playground/pkg/go/internal/srcimporter.a.js and b/playground/pkg/go/internal/srcimporter.a.js differ diff --git a/playground/pkg/go/internal/typeparams.a.js b/playground/pkg/go/internal/typeparams.a.js index b13f4584..edbc26b3 100644 Binary files a/playground/pkg/go/internal/typeparams.a.js and b/playground/pkg/go/internal/typeparams.a.js differ diff --git a/playground/pkg/go/parser.a.js b/playground/pkg/go/parser.a.js index 01a3b7b7..9e974a5d 100644 Binary files a/playground/pkg/go/parser.a.js and b/playground/pkg/go/parser.a.js differ diff --git a/playground/pkg/go/printer.a.js b/playground/pkg/go/printer.a.js index 04694384..916c233f 100644 Binary files a/playground/pkg/go/printer.a.js and b/playground/pkg/go/printer.a.js differ diff --git a/playground/pkg/go/scanner.a.js b/playground/pkg/go/scanner.a.js index fbc22856..d9047e92 100644 Binary files a/playground/pkg/go/scanner.a.js and b/playground/pkg/go/scanner.a.js differ diff --git a/playground/pkg/go/token.a.js b/playground/pkg/go/token.a.js index 00317e28..aaefa6e0 100644 Binary files a/playground/pkg/go/token.a.js and b/playground/pkg/go/token.a.js differ diff --git a/playground/pkg/go/types.a.js b/playground/pkg/go/types.a.js index f6096688..9d68d71e 100644 Binary files a/playground/pkg/go/types.a.js and b/playground/pkg/go/types.a.js differ diff --git a/playground/pkg/hash.a.js b/playground/pkg/hash.a.js index f18e8808..901e4a62 100644 Binary files a/playground/pkg/hash.a.js and b/playground/pkg/hash.a.js differ diff --git a/playground/pkg/hash/adler32.a.js b/playground/pkg/hash/adler32.a.js index 547e7ace..58c7f3d9 100644 Binary files a/playground/pkg/hash/adler32.a.js and b/playground/pkg/hash/adler32.a.js differ diff --git a/playground/pkg/hash/crc32.a.js b/playground/pkg/hash/crc32.a.js index 14a444cd..34767606 100644 Binary files a/playground/pkg/hash/crc32.a.js and b/playground/pkg/hash/crc32.a.js differ diff --git a/playground/pkg/hash/crc64.a.js b/playground/pkg/hash/crc64.a.js index d449281b..ab4c5635 100644 Binary files a/playground/pkg/hash/crc64.a.js and b/playground/pkg/hash/crc64.a.js differ diff --git a/playground/pkg/hash/fnv.a.js b/playground/pkg/hash/fnv.a.js index 497a7327..8a67258e 100644 Binary files a/playground/pkg/hash/fnv.a.js and b/playground/pkg/hash/fnv.a.js differ diff --git a/playground/pkg/hash/maphash.a.js b/playground/pkg/hash/maphash.a.js index b6f4008b..915e692e 100644 Binary files a/playground/pkg/hash/maphash.a.js and b/playground/pkg/hash/maphash.a.js differ diff --git a/playground/pkg/html.a.js b/playground/pkg/html.a.js index 6949fd0c..28f0530f 100644 Binary files a/playground/pkg/html.a.js and b/playground/pkg/html.a.js differ diff --git a/playground/pkg/html/template.a.js b/playground/pkg/html/template.a.js index 63aa2ff0..fa8db6d2 100644 Binary files a/playground/pkg/html/template.a.js and b/playground/pkg/html/template.a.js differ diff --git a/playground/pkg/image.a.js b/playground/pkg/image.a.js index 5ff35059..4eb798fd 100644 Binary files a/playground/pkg/image.a.js and b/playground/pkg/image.a.js differ diff --git a/playground/pkg/image/color.a.js b/playground/pkg/image/color.a.js index b68c069e..f6eccd05 100644 Binary files a/playground/pkg/image/color.a.js and b/playground/pkg/image/color.a.js differ diff --git a/playground/pkg/image/color/palette.a.js b/playground/pkg/image/color/palette.a.js index a8f34e1e..ed8fc0d7 100644 Binary files a/playground/pkg/image/color/palette.a.js and b/playground/pkg/image/color/palette.a.js differ diff --git a/playground/pkg/image/draw.a.js b/playground/pkg/image/draw.a.js index 62d69fbc..92cc91f3 100644 Binary files a/playground/pkg/image/draw.a.js and b/playground/pkg/image/draw.a.js differ diff --git a/playground/pkg/image/gif.a.js b/playground/pkg/image/gif.a.js index 279ea592..1c5d48e0 100644 Binary files a/playground/pkg/image/gif.a.js and b/playground/pkg/image/gif.a.js differ diff --git a/playground/pkg/image/internal/imageutil.a.js b/playground/pkg/image/internal/imageutil.a.js index 1b00aee6..059c2cba 100644 Binary files a/playground/pkg/image/internal/imageutil.a.js and b/playground/pkg/image/internal/imageutil.a.js differ diff --git a/playground/pkg/image/jpeg.a.js b/playground/pkg/image/jpeg.a.js index 2734829c..12f6de77 100644 Binary files a/playground/pkg/image/jpeg.a.js and b/playground/pkg/image/jpeg.a.js differ diff --git a/playground/pkg/image/png.a.js b/playground/pkg/image/png.a.js index c0d54a2c..751ee282 100644 Binary files a/playground/pkg/image/png.a.js and b/playground/pkg/image/png.a.js differ diff --git a/playground/pkg/index/suffixarray.a.js b/playground/pkg/index/suffixarray.a.js index 8dd9373d..903dff86 100644 Binary files a/playground/pkg/index/suffixarray.a.js and b/playground/pkg/index/suffixarray.a.js differ diff --git a/playground/pkg/internal/abi.a.js b/playground/pkg/internal/abi.a.js index 594cda62..baeaccb2 100644 Binary files a/playground/pkg/internal/abi.a.js and b/playground/pkg/internal/abi.a.js differ diff --git a/playground/pkg/internal/buildcfg.a.js b/playground/pkg/internal/buildcfg.a.js index 06efa923..8db8b439 100644 Binary files a/playground/pkg/internal/buildcfg.a.js and b/playground/pkg/internal/buildcfg.a.js differ diff --git a/playground/pkg/internal/bytealg.a.js b/playground/pkg/internal/bytealg.a.js index 8ada3c23..9d30eeea 100644 Binary files a/playground/pkg/internal/bytealg.a.js and b/playground/pkg/internal/bytealg.a.js differ diff --git a/playground/pkg/internal/cpu.a.js b/playground/pkg/internal/cpu.a.js index aa5cffcf..9010ecbe 100644 Binary files a/playground/pkg/internal/cpu.a.js and b/playground/pkg/internal/cpu.a.js differ diff --git a/playground/pkg/internal/execabs.a.js b/playground/pkg/internal/execabs.a.js deleted file mode 100644 index 9d52c7b4..00000000 Binary files a/playground/pkg/internal/execabs.a.js and /dev/null differ diff --git a/playground/pkg/internal/fmtsort.a.js b/playground/pkg/internal/fmtsort.a.js index c914510d..0aa155e8 100644 Binary files a/playground/pkg/internal/fmtsort.a.js and b/playground/pkg/internal/fmtsort.a.js differ diff --git a/playground/pkg/internal/goarch.a.js b/playground/pkg/internal/goarch.a.js index 1c4cf65f..f837d3c9 100644 Binary files a/playground/pkg/internal/goarch.a.js and b/playground/pkg/internal/goarch.a.js differ diff --git a/playground/pkg/internal/godebug.a.js b/playground/pkg/internal/godebug.a.js index b90cba0b..fd06f250 100644 Binary files a/playground/pkg/internal/godebug.a.js and b/playground/pkg/internal/godebug.a.js differ diff --git a/playground/pkg/internal/goexperiment.a.js b/playground/pkg/internal/goexperiment.a.js index eca29d3c..35513ef3 100644 Binary files a/playground/pkg/internal/goexperiment.a.js and b/playground/pkg/internal/goexperiment.a.js differ diff --git a/playground/pkg/internal/goroot.a.js b/playground/pkg/internal/goroot.a.js index 5d99dbf6..93e8e471 100644 Binary files a/playground/pkg/internal/goroot.a.js and b/playground/pkg/internal/goroot.a.js differ diff --git a/playground/pkg/internal/goversion.a.js b/playground/pkg/internal/goversion.a.js index 1099d919..4d06a467 100644 Binary files a/playground/pkg/internal/goversion.a.js and b/playground/pkg/internal/goversion.a.js differ diff --git a/playground/pkg/internal/intern.a.js b/playground/pkg/internal/intern.a.js index 52b17fb0..3f6f8c9b 100644 Binary files a/playground/pkg/internal/intern.a.js and b/playground/pkg/internal/intern.a.js differ diff --git a/playground/pkg/internal/itoa.a.js b/playground/pkg/internal/itoa.a.js index 8e5595a7..fa607c1a 100644 Binary files a/playground/pkg/internal/itoa.a.js and b/playground/pkg/internal/itoa.a.js differ diff --git a/playground/pkg/internal/lazyregexp.a.js b/playground/pkg/internal/lazyregexp.a.js index 7fabbce3..478b20ca 100644 Binary files a/playground/pkg/internal/lazyregexp.a.js and b/playground/pkg/internal/lazyregexp.a.js differ diff --git a/playground/pkg/internal/nettrace.a.js b/playground/pkg/internal/nettrace.a.js index b30b2952..e90de1c2 100644 Binary files a/playground/pkg/internal/nettrace.a.js and b/playground/pkg/internal/nettrace.a.js differ diff --git a/playground/pkg/internal/oserror.a.js b/playground/pkg/internal/oserror.a.js index e5830f4b..e99f857f 100644 Binary files a/playground/pkg/internal/oserror.a.js and b/playground/pkg/internal/oserror.a.js differ diff --git a/playground/pkg/internal/pkgbits.a.js b/playground/pkg/internal/pkgbits.a.js new file mode 100644 index 00000000..f736b36a Binary files /dev/null and b/playground/pkg/internal/pkgbits.a.js differ diff --git a/playground/pkg/internal/poll.a.js b/playground/pkg/internal/poll.a.js index dc639759..3a7e149d 100644 Binary files a/playground/pkg/internal/poll.a.js and b/playground/pkg/internal/poll.a.js differ diff --git a/playground/pkg/internal/race.a.js b/playground/pkg/internal/race.a.js index d9c9a459..6adc080d 100644 Binary files a/playground/pkg/internal/race.a.js and b/playground/pkg/internal/race.a.js differ diff --git a/playground/pkg/internal/reflectlite.a.js b/playground/pkg/internal/reflectlite.a.js index 4168b8bb..4779502e 100644 Binary files a/playground/pkg/internal/reflectlite.a.js and b/playground/pkg/internal/reflectlite.a.js differ diff --git a/playground/pkg/internal/safefilepath.a.js b/playground/pkg/internal/safefilepath.a.js new file mode 100644 index 00000000..11e47b51 Binary files /dev/null and b/playground/pkg/internal/safefilepath.a.js differ diff --git a/playground/pkg/internal/singleflight.a.js b/playground/pkg/internal/singleflight.a.js index e3e20d22..fd627124 100644 Binary files a/playground/pkg/internal/singleflight.a.js and b/playground/pkg/internal/singleflight.a.js differ diff --git a/playground/pkg/internal/syscall/execenv.a.js b/playground/pkg/internal/syscall/execenv.a.js index a7b65e1b..bafec2bc 100644 Binary files a/playground/pkg/internal/syscall/execenv.a.js and b/playground/pkg/internal/syscall/execenv.a.js differ diff --git a/playground/pkg/internal/syscall/unix.a.js b/playground/pkg/internal/syscall/unix.a.js index 7ee1929a..f093478e 100644 Binary files a/playground/pkg/internal/syscall/unix.a.js and b/playground/pkg/internal/syscall/unix.a.js differ diff --git a/playground/pkg/internal/sysinfo.a.js b/playground/pkg/internal/sysinfo.a.js index 240ba689..b07255a3 100644 Binary files a/playground/pkg/internal/sysinfo.a.js and b/playground/pkg/internal/sysinfo.a.js differ diff --git a/playground/pkg/internal/testlog.a.js b/playground/pkg/internal/testlog.a.js index f2720461..4919ff73 100644 Binary files a/playground/pkg/internal/testlog.a.js and b/playground/pkg/internal/testlog.a.js differ diff --git a/playground/pkg/internal/unsafeheader.a.js b/playground/pkg/internal/unsafeheader.a.js index 06877009..794abbfa 100644 Binary files a/playground/pkg/internal/unsafeheader.a.js and b/playground/pkg/internal/unsafeheader.a.js differ diff --git a/playground/pkg/internal/xcoff.a.js b/playground/pkg/internal/xcoff.a.js index 04ac0e3b..d765855a 100644 Binary files a/playground/pkg/internal/xcoff.a.js and b/playground/pkg/internal/xcoff.a.js differ diff --git a/playground/pkg/io.a.js b/playground/pkg/io.a.js index 3a8cbbc9..dc899d16 100644 Binary files a/playground/pkg/io.a.js and b/playground/pkg/io.a.js differ diff --git a/playground/pkg/io/fs.a.js b/playground/pkg/io/fs.a.js index c4157228..ed37897b 100644 Binary files a/playground/pkg/io/fs.a.js and b/playground/pkg/io/fs.a.js differ diff --git a/playground/pkg/io/ioutil.a.js b/playground/pkg/io/ioutil.a.js index e288a49c..1e912be4 100644 Binary files a/playground/pkg/io/ioutil.a.js and b/playground/pkg/io/ioutil.a.js differ diff --git a/playground/pkg/log.a.js b/playground/pkg/log.a.js index df706bd7..471e808f 100644 Binary files a/playground/pkg/log.a.js and b/playground/pkg/log.a.js differ diff --git a/playground/pkg/log/syslog.a.js b/playground/pkg/log/syslog.a.js index 850aafdc..c3bb80e1 100644 Binary files a/playground/pkg/log/syslog.a.js and b/playground/pkg/log/syslog.a.js differ diff --git a/playground/pkg/math.a.js b/playground/pkg/math.a.js index 989153ff..b1d332db 100644 Binary files a/playground/pkg/math.a.js and b/playground/pkg/math.a.js differ diff --git a/playground/pkg/math/big.a.js b/playground/pkg/math/big.a.js index 75b2afeb..3a25e7d1 100644 Binary files a/playground/pkg/math/big.a.js and b/playground/pkg/math/big.a.js differ diff --git a/playground/pkg/math/bits.a.js b/playground/pkg/math/bits.a.js index bdbf19b0..2fb13483 100644 Binary files a/playground/pkg/math/bits.a.js and b/playground/pkg/math/bits.a.js differ diff --git a/playground/pkg/math/cmplx.a.js b/playground/pkg/math/cmplx.a.js index 3a2dce52..29105e80 100644 Binary files a/playground/pkg/math/cmplx.a.js and b/playground/pkg/math/cmplx.a.js differ diff --git a/playground/pkg/math/rand.a.js b/playground/pkg/math/rand.a.js index c2ffdab8..8d7186ed 100644 Binary files a/playground/pkg/math/rand.a.js and b/playground/pkg/math/rand.a.js differ diff --git a/playground/pkg/mime.a.js b/playground/pkg/mime.a.js index 03dac9eb..e0809c4a 100644 Binary files a/playground/pkg/mime.a.js and b/playground/pkg/mime.a.js differ diff --git a/playground/pkg/mime/multipart.a.js b/playground/pkg/mime/multipart.a.js index df9c73eb..e08a9eb3 100644 Binary files a/playground/pkg/mime/multipart.a.js and b/playground/pkg/mime/multipart.a.js differ diff --git a/playground/pkg/mime/quotedprintable.a.js b/playground/pkg/mime/quotedprintable.a.js index 1e77a560..1e39e539 100644 Binary files a/playground/pkg/mime/quotedprintable.a.js and b/playground/pkg/mime/quotedprintable.a.js differ diff --git a/playground/pkg/net.a.js b/playground/pkg/net.a.js index acea2d50..acfb971e 100644 Binary files a/playground/pkg/net.a.js and b/playground/pkg/net.a.js differ diff --git a/playground/pkg/net/http.a.js b/playground/pkg/net/http.a.js index 8b9787ba..7cdc10bf 100644 Binary files a/playground/pkg/net/http.a.js and b/playground/pkg/net/http.a.js differ diff --git a/playground/pkg/net/http/cgi.a.js b/playground/pkg/net/http/cgi.a.js index 7d4d6270..755f526b 100644 Binary files a/playground/pkg/net/http/cgi.a.js and b/playground/pkg/net/http/cgi.a.js differ diff --git a/playground/pkg/net/http/cookiejar.a.js b/playground/pkg/net/http/cookiejar.a.js index 7564ccfe..3ea43557 100644 Binary files a/playground/pkg/net/http/cookiejar.a.js and b/playground/pkg/net/http/cookiejar.a.js differ diff --git a/playground/pkg/net/http/fcgi.a.js b/playground/pkg/net/http/fcgi.a.js index fa7f0a46..4db7c100 100644 Binary files a/playground/pkg/net/http/fcgi.a.js and b/playground/pkg/net/http/fcgi.a.js differ diff --git a/playground/pkg/net/http/httptest.a.js b/playground/pkg/net/http/httptest.a.js index f18885c9..7acbdbaa 100644 Binary files a/playground/pkg/net/http/httptest.a.js and b/playground/pkg/net/http/httptest.a.js differ diff --git a/playground/pkg/net/http/httptrace.a.js b/playground/pkg/net/http/httptrace.a.js index f4b586de..4cb69dbd 100644 Binary files a/playground/pkg/net/http/httptrace.a.js and b/playground/pkg/net/http/httptrace.a.js differ diff --git a/playground/pkg/net/http/httputil.a.js b/playground/pkg/net/http/httputil.a.js index 63d50b37..0a08fe1a 100644 Binary files a/playground/pkg/net/http/httputil.a.js and b/playground/pkg/net/http/httputil.a.js differ diff --git a/playground/pkg/net/http/internal.a.js b/playground/pkg/net/http/internal.a.js index 09400cbd..4c1fbfc3 100644 Binary files a/playground/pkg/net/http/internal.a.js and b/playground/pkg/net/http/internal.a.js differ diff --git a/playground/pkg/net/http/internal/ascii.a.js b/playground/pkg/net/http/internal/ascii.a.js index 8481ec2c..f5314dbf 100644 Binary files a/playground/pkg/net/http/internal/ascii.a.js and b/playground/pkg/net/http/internal/ascii.a.js differ diff --git a/playground/pkg/net/http/internal/testcert.a.js b/playground/pkg/net/http/internal/testcert.a.js index 729eb04a..bc654b1a 100644 Binary files a/playground/pkg/net/http/internal/testcert.a.js and b/playground/pkg/net/http/internal/testcert.a.js differ diff --git a/playground/pkg/net/mail.a.js b/playground/pkg/net/mail.a.js index a9ab07e5..0c6d665f 100644 Binary files a/playground/pkg/net/mail.a.js and b/playground/pkg/net/mail.a.js differ diff --git a/playground/pkg/net/netip.a.js b/playground/pkg/net/netip.a.js index 484808de..f97c312b 100644 Binary files a/playground/pkg/net/netip.a.js and b/playground/pkg/net/netip.a.js differ diff --git a/playground/pkg/net/rpc.a.js b/playground/pkg/net/rpc.a.js index a7abeb6d..c73e4606 100644 Binary files a/playground/pkg/net/rpc.a.js and b/playground/pkg/net/rpc.a.js differ diff --git a/playground/pkg/net/rpc/jsonrpc.a.js b/playground/pkg/net/rpc/jsonrpc.a.js index f193e6c2..bbd16f18 100644 Binary files a/playground/pkg/net/rpc/jsonrpc.a.js and b/playground/pkg/net/rpc/jsonrpc.a.js differ diff --git a/playground/pkg/net/smtp.a.js b/playground/pkg/net/smtp.a.js index f11cfcfd..3ece7f9e 100644 Binary files a/playground/pkg/net/smtp.a.js and b/playground/pkg/net/smtp.a.js differ diff --git a/playground/pkg/net/textproto.a.js b/playground/pkg/net/textproto.a.js index ae947f30..03db0651 100644 Binary files a/playground/pkg/net/textproto.a.js and b/playground/pkg/net/textproto.a.js differ diff --git a/playground/pkg/net/url.a.js b/playground/pkg/net/url.a.js index b5645d73..f9ab652b 100644 Binary files a/playground/pkg/net/url.a.js and b/playground/pkg/net/url.a.js differ diff --git a/playground/pkg/os.a.js b/playground/pkg/os.a.js index c8871b17..89ee65c3 100644 Binary files a/playground/pkg/os.a.js and b/playground/pkg/os.a.js differ diff --git a/playground/pkg/os/exec.a.js b/playground/pkg/os/exec.a.js index 61177872..adc65c52 100644 Binary files a/playground/pkg/os/exec.a.js and b/playground/pkg/os/exec.a.js differ diff --git a/playground/pkg/os/signal.a.js b/playground/pkg/os/signal.a.js index 8ebfbdb7..551052df 100644 Binary files a/playground/pkg/os/signal.a.js and b/playground/pkg/os/signal.a.js differ diff --git a/playground/pkg/os/user.a.js b/playground/pkg/os/user.a.js index 7bab1115..f99d7b75 100644 Binary files a/playground/pkg/os/user.a.js and b/playground/pkg/os/user.a.js differ diff --git a/playground/pkg/path.a.js b/playground/pkg/path.a.js index f8d9e879..0a2d487e 100644 Binary files a/playground/pkg/path.a.js and b/playground/pkg/path.a.js differ diff --git a/playground/pkg/path/filepath.a.js b/playground/pkg/path/filepath.a.js index 37c1a887..0e36581d 100644 Binary files a/playground/pkg/path/filepath.a.js and b/playground/pkg/path/filepath.a.js differ diff --git a/playground/pkg/reflect.a.js b/playground/pkg/reflect.a.js index 191cd1a5..73501462 100644 Binary files a/playground/pkg/reflect.a.js and b/playground/pkg/reflect.a.js differ diff --git a/playground/pkg/regexp.a.js b/playground/pkg/regexp.a.js index bf82a93f..191ccb83 100644 Binary files a/playground/pkg/regexp.a.js and b/playground/pkg/regexp.a.js differ diff --git a/playground/pkg/regexp/syntax.a.js b/playground/pkg/regexp/syntax.a.js index 69ba022b..35c90966 100644 Binary files a/playground/pkg/regexp/syntax.a.js and b/playground/pkg/regexp/syntax.a.js differ diff --git a/playground/pkg/runtime.a.js b/playground/pkg/runtime.a.js index cdecab6f..f7db6306 100644 Binary files a/playground/pkg/runtime.a.js and b/playground/pkg/runtime.a.js differ diff --git a/playground/pkg/runtime/debug.a.js b/playground/pkg/runtime/debug.a.js index e1bf139a..ab1eba37 100644 Binary files a/playground/pkg/runtime/debug.a.js and b/playground/pkg/runtime/debug.a.js differ diff --git a/playground/pkg/runtime/metrics.a.js b/playground/pkg/runtime/metrics.a.js index 865d22ea..a0138058 100644 Binary files a/playground/pkg/runtime/metrics.a.js and b/playground/pkg/runtime/metrics.a.js differ diff --git a/playground/pkg/runtime/race.a.js b/playground/pkg/runtime/race.a.js index 20553017..4c741d34 100644 Binary files a/playground/pkg/runtime/race.a.js and b/playground/pkg/runtime/race.a.js differ diff --git a/playground/pkg/runtime/trace.a.js b/playground/pkg/runtime/trace.a.js index 21068894..41632034 100644 Binary files a/playground/pkg/runtime/trace.a.js and b/playground/pkg/runtime/trace.a.js differ diff --git a/playground/pkg/sort.a.js b/playground/pkg/sort.a.js index c96472e2..b1131ec2 100644 Binary files a/playground/pkg/sort.a.js and b/playground/pkg/sort.a.js differ diff --git a/playground/pkg/strconv.a.js b/playground/pkg/strconv.a.js index 5ef88557..ac3ddf99 100644 Binary files a/playground/pkg/strconv.a.js and b/playground/pkg/strconv.a.js differ diff --git a/playground/pkg/strings.a.js b/playground/pkg/strings.a.js index 0573f51a..54175a7b 100644 Binary files a/playground/pkg/strings.a.js and b/playground/pkg/strings.a.js differ diff --git a/playground/pkg/sync.a.js b/playground/pkg/sync.a.js index b5f11d51..bd30f368 100644 Binary files a/playground/pkg/sync.a.js and b/playground/pkg/sync.a.js differ diff --git a/playground/pkg/sync/atomic.a.js b/playground/pkg/sync/atomic.a.js index 9a825a9f..5f97b6eb 100644 Binary files a/playground/pkg/sync/atomic.a.js and b/playground/pkg/sync/atomic.a.js differ diff --git a/playground/pkg/syscall.a.js b/playground/pkg/syscall.a.js index 41211b20..ec67756c 100644 Binary files a/playground/pkg/syscall.a.js and b/playground/pkg/syscall.a.js differ diff --git a/playground/pkg/syscall/js.a.js b/playground/pkg/syscall/js.a.js index 3af1bd9e..1b216873 100644 Binary files a/playground/pkg/syscall/js.a.js and b/playground/pkg/syscall/js.a.js differ diff --git a/playground/pkg/testing.a.js b/playground/pkg/testing.a.js index 4c549141..6e9ea41b 100644 Binary files a/playground/pkg/testing.a.js and b/playground/pkg/testing.a.js differ diff --git a/playground/pkg/testing/fstest.a.js b/playground/pkg/testing/fstest.a.js index 5525f277..8a1fa707 100644 Binary files a/playground/pkg/testing/fstest.a.js and b/playground/pkg/testing/fstest.a.js differ diff --git a/playground/pkg/testing/iotest.a.js b/playground/pkg/testing/iotest.a.js index 8f3d4e5c..d96e5a7c 100644 Binary files a/playground/pkg/testing/iotest.a.js and b/playground/pkg/testing/iotest.a.js differ diff --git a/playground/pkg/testing/quick.a.js b/playground/pkg/testing/quick.a.js index 42de0fce..36953955 100644 Binary files a/playground/pkg/testing/quick.a.js and b/playground/pkg/testing/quick.a.js differ diff --git a/playground/pkg/text/scanner.a.js b/playground/pkg/text/scanner.a.js index b0058914..5e9342eb 100644 Binary files a/playground/pkg/text/scanner.a.js and b/playground/pkg/text/scanner.a.js differ diff --git a/playground/pkg/text/tabwriter.a.js b/playground/pkg/text/tabwriter.a.js index 4421e7a6..07dd3ac1 100644 Binary files a/playground/pkg/text/tabwriter.a.js and b/playground/pkg/text/tabwriter.a.js differ diff --git a/playground/pkg/text/template.a.js b/playground/pkg/text/template.a.js index 721d35db..7980233a 100644 Binary files a/playground/pkg/text/template.a.js and b/playground/pkg/text/template.a.js differ diff --git a/playground/pkg/text/template/parse.a.js b/playground/pkg/text/template/parse.a.js index b0f43ffb..b4bad67b 100644 Binary files a/playground/pkg/text/template/parse.a.js and b/playground/pkg/text/template/parse.a.js differ diff --git a/playground/pkg/time.a.js b/playground/pkg/time.a.js index a1a61946..25012c03 100644 Binary files a/playground/pkg/time.a.js and b/playground/pkg/time.a.js differ diff --git a/playground/pkg/time/tzdata.a.js b/playground/pkg/time/tzdata.a.js index f96b2d11..de736fe4 100644 Binary files a/playground/pkg/time/tzdata.a.js and b/playground/pkg/time/tzdata.a.js differ diff --git a/playground/pkg/unicode.a.js b/playground/pkg/unicode.a.js index 2a5fa4d6..efecf54e 100644 Binary files a/playground/pkg/unicode.a.js and b/playground/pkg/unicode.a.js differ diff --git a/playground/pkg/unicode/utf16.a.js b/playground/pkg/unicode/utf16.a.js index 874473fb..2b3dc457 100644 Binary files a/playground/pkg/unicode/utf16.a.js and b/playground/pkg/unicode/utf16.a.js differ diff --git a/playground/pkg/unicode/utf8.a.js b/playground/pkg/unicode/utf8.a.js index d30b8937..01dc3fee 100644 Binary files a/playground/pkg/unicode/utf8.a.js and b/playground/pkg/unicode/utf8.a.js differ diff --git a/playground/pkg/unsafe.a.js b/playground/pkg/unsafe.a.js index d77f65c4..1044dcd4 100644 Binary files a/playground/pkg/unsafe.a.js and b/playground/pkg/unsafe.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/chacha20.a.js b/playground/pkg/vendor/golang.org/x/crypto/chacha20.a.js index 25593ae6..b1725a0f 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/chacha20.a.js and b/playground/pkg/vendor/golang.org/x/crypto/chacha20.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/chacha20poly1305.a.js b/playground/pkg/vendor/golang.org/x/crypto/chacha20poly1305.a.js index 3068478a..e75b9d51 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/chacha20poly1305.a.js and b/playground/pkg/vendor/golang.org/x/crypto/chacha20poly1305.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/cryptobyte.a.js b/playground/pkg/vendor/golang.org/x/crypto/cryptobyte.a.js index 4f41fc12..18dbbf52 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/cryptobyte.a.js and b/playground/pkg/vendor/golang.org/x/crypto/cryptobyte.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/cryptobyte/asn1.a.js b/playground/pkg/vendor/golang.org/x/crypto/cryptobyte/asn1.a.js index c5a3ca42..9800e0cc 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/cryptobyte/asn1.a.js and b/playground/pkg/vendor/golang.org/x/crypto/cryptobyte/asn1.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/curve25519.a.js b/playground/pkg/vendor/golang.org/x/crypto/curve25519.a.js index 6d2ac32c..f25385e8 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/curve25519.a.js and b/playground/pkg/vendor/golang.org/x/crypto/curve25519.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/curve25519/internal/field.a.js b/playground/pkg/vendor/golang.org/x/crypto/curve25519/internal/field.a.js index f6cfc281..0f2040f4 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/curve25519/internal/field.a.js and b/playground/pkg/vendor/golang.org/x/crypto/curve25519/internal/field.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/hkdf.a.js b/playground/pkg/vendor/golang.org/x/crypto/hkdf.a.js index 7daa3e0f..3c74aaf6 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/hkdf.a.js and b/playground/pkg/vendor/golang.org/x/crypto/hkdf.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/internal/poly1305.a.js b/playground/pkg/vendor/golang.org/x/crypto/internal/poly1305.a.js index 2b641fb3..63c6c6d6 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/internal/poly1305.a.js and b/playground/pkg/vendor/golang.org/x/crypto/internal/poly1305.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/internal/subtle.a.js b/playground/pkg/vendor/golang.org/x/crypto/internal/subtle.a.js index 6c332b98..5896aefc 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/internal/subtle.a.js and b/playground/pkg/vendor/golang.org/x/crypto/internal/subtle.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/net/dns/dnsmessage.a.js b/playground/pkg/vendor/golang.org/x/net/dns/dnsmessage.a.js index c57cc382..a0c4aea9 100644 Binary files a/playground/pkg/vendor/golang.org/x/net/dns/dnsmessage.a.js and b/playground/pkg/vendor/golang.org/x/net/dns/dnsmessage.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/net/http/httpguts.a.js b/playground/pkg/vendor/golang.org/x/net/http/httpguts.a.js index 6f39213d..1d8796b8 100644 Binary files a/playground/pkg/vendor/golang.org/x/net/http/httpguts.a.js and b/playground/pkg/vendor/golang.org/x/net/http/httpguts.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/net/http/httpproxy.a.js b/playground/pkg/vendor/golang.org/x/net/http/httpproxy.a.js index 3d396249..8e46bc2a 100644 Binary files a/playground/pkg/vendor/golang.org/x/net/http/httpproxy.a.js and b/playground/pkg/vendor/golang.org/x/net/http/httpproxy.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/net/http2/hpack.a.js b/playground/pkg/vendor/golang.org/x/net/http2/hpack.a.js index a4583a97..67fa3434 100644 Binary files a/playground/pkg/vendor/golang.org/x/net/http2/hpack.a.js and b/playground/pkg/vendor/golang.org/x/net/http2/hpack.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/net/idna.a.js b/playground/pkg/vendor/golang.org/x/net/idna.a.js index 87c76940..4b959944 100644 Binary files a/playground/pkg/vendor/golang.org/x/net/idna.a.js and b/playground/pkg/vendor/golang.org/x/net/idna.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/text/secure/bidirule.a.js b/playground/pkg/vendor/golang.org/x/text/secure/bidirule.a.js index f45b3f41..d0261fe6 100644 Binary files a/playground/pkg/vendor/golang.org/x/text/secure/bidirule.a.js and b/playground/pkg/vendor/golang.org/x/text/secure/bidirule.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/text/transform.a.js b/playground/pkg/vendor/golang.org/x/text/transform.a.js index ed7719a1..30b167a9 100644 Binary files a/playground/pkg/vendor/golang.org/x/text/transform.a.js and b/playground/pkg/vendor/golang.org/x/text/transform.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/text/unicode/bidi.a.js b/playground/pkg/vendor/golang.org/x/text/unicode/bidi.a.js index de22c165..57e593a3 100644 Binary files a/playground/pkg/vendor/golang.org/x/text/unicode/bidi.a.js and b/playground/pkg/vendor/golang.org/x/text/unicode/bidi.a.js differ diff --git a/playground/pkg/vendor/golang.org/x/text/unicode/norm.a.js b/playground/pkg/vendor/golang.org/x/text/unicode/norm.a.js index 68e91e7c..b6b2aa25 100644 Binary files a/playground/pkg/vendor/golang.org/x/text/unicode/norm.a.js and b/playground/pkg/vendor/golang.org/x/text/unicode/norm.a.js differ diff --git a/playground/playground.css b/playground/playground.css index c13c1163..a3637e74 100644 --- a/playground/playground.css +++ b/playground/playground.css @@ -1,150 +1,379 @@ -html { - height: 100%; +:root { + --color-scheme: light; + --color-banner-title-text: black; + --color-banner-background: #e5fafa; + + --color-run-button-background: #FFF5D5; + --color-run-button-boarder: #0E6A8A; + --color-run-button-text: #black; + --color-run-button-hover-background: #0E6A8A; + --color-run-button-hover-boarder: #0E6A8A; + --color-run-button-hover-text: #FFF5D5; + + --color-buttons-background: #EED; + --color-buttons-boarder: #CCC; + --color-buttons-text: #0E6A8A; + --color-buttons-hover-background: #0E6A8A; + --color-buttons-hover-boarder: #0E6A8A; + --color-buttons-hover-text: #FFF5D5; + + --color-format-imports-text: #0E6A8A; + --color-toggle-background: #CCC; + --color-toggle-background-checked: #0E6A8A; + --color-toggle-foreground: #0E6A8A; + --color-toggle-foreground-checked: #FFF5D5; + + --color-share-url-background: #EED; + --color-share-url-boarder: #CCC; + --color-share-url-text: black; + + --color-code-text: black; + --color-code-background: #F5ECE3; + --color-code-box-borders: black; + --color-line-nums-text: #888; + --color-line-nums-background: #EBDAC7; + --color-code-line-nums-border: black; + + --color-output-normal-text: black; + --color-output-normal-background: #DDD; + --color-output-error-text: #800; + --color-output-error-background: #FCC; + + --color-buttons-shadow: rgba(0, 0, 0, 0.2) 2px 2px 4px; + --font-family-banner-title: Arial, sans; + --font-size-banner-title: 32px; + --font-size-banner-title-sub: 24px; + --font-size-banner-title-version: 24px; + --font-family-controls: sans-serif; + --font-size-controls: 16px; + --size-toggle-box: 30px; + --font-family-mono: Menlo, Courier\ New, monospace; + --font-size-mono: 11pt; + --padding-mono: 5px; + --gap-banner-controls: 5px; + --tab-size-code-text: 4; +} + +[data-theme='dark'] { + --color-scheme: dark; + --color-banner-title-text: white; + --color-banner-background: #007D9C; + + --color-run-button-background: #253443; + --color-run-button-boarder: #00ADD8; + --color-run-button-text: #00ADD8; + --color-run-button-hover-background: #00ADD8; + --color-run-button-hover-boarder: black; + --color-run-button-hover-text: black; + + --color-buttons-background: #003647; + --color-buttons-boarder: #50B7E0; + --color-buttons-text: #50B7E0; + --color-buttons-hover-background: #50B7E0; + --color-buttons-hover-boarder: #333; + --color-buttons-hover-text: #333; + + --color-format-imports-text: #7CF; + --color-toggle-background: #333; + --color-toggle-background-checked: #7CF; + --color-toggle-foreground: #00ADD8; + --color-toggle-foreground-checked: #003647; + + --color-share-url-background: #333; + --color-share-url-boarder: #50B7E0; + --color-share-url-text: #7CF; + + --color-code-text: #F0F1F2; + --color-code-background: #253443; + --color-code-box-borders: #50B7E0; + --color-line-nums-text: #7CF; + --color-line-nums-background: #253443; + --color-code-line-nums-border: #50B7E0; + + --color-output-normal-text: #F0F1F2; + --color-output-normal-background: #2B2D2F; + --color-output-error-text: #E67193; + --color-output-error-background: #411; } -body { - color: #222; +html, body { + width: 100%; height: 100%; margin: 0; padding: 0; + box-sizing: border-box; + color-scheme: var(--color-scheme); +} + +#playground { + display: flex; + flex-direction: column; width: 100%; + height: 100%; } -a { - color: #009; +#banner { + display: flex; + flex-wrap: wrap; + flex-direction: row; + flex-shrink: 0; + align-items: stretch; + padding: 4px; + background: var(--color-banner-background); } -.box { - position: absolute; - left: 0px; - top: 0px; - right: 0px; - bottom: 0px; - border: 300px; +/* The title to show on the banner */ +#banner-title { + font-variant: small-caps; + white-space: nowrap; + font-family: var(--font-family-banner-title); + font-size: var(--font-size-banner-title); + color: var(--color-banner-title-text); } -#content { - top: 50px; - bottom: 25%; +#banner-title-sub { + font-size: var(--font-size-banner-title-sub); } -.yellow { - background: #ebdac7; - margin: 0px; - padding: 10px; +#banner-title-version { + font-size: var(--font-size-banner-title-version); } -#share-url { - width: 320px; - font-size: 16px; - border: 1px solid #ccc; - background: #eee; +/* The part of the banner containing the buttons and controls */ +#controls { + display: flex; + flex-wrap: wrap; + flex-direction: row; + justify-content: center; + align-items: center; + margin-left: auto; + gap: var(--gap-banner-controls); } -#share-url.show-share-url-false { - display: none; + +#controls input[type=button] { + padding: 5px 8px 5px 8px; + border-radius: 5px; + font-family: var(--font-family-controls); + font-size: var(--font-size-controls); + box-shadow: var(--color-buttons-shadow); } -#code, -#output, -pre, -.lines { - font-family: Menlo, Courier\ New, monospace; - font-size: 11pt; - margin: 0px; +/* The run code button */ +#run-button { + background: var(--color-run-button-background); + border: 1px solid var(--color-run-button-boarder); + color: var(--color-run-button-text); } -#code { - width: 100%; - height: 100%; - background: inherit; - border: none; - float: right; - margin: 0; - outline: none; - padding: 0; - resize: none; - wrap: off; +#run-button:hover { + background: var(--color-run-button-hover-background); + border-color: var(--color-run-button-hover-boarder); + color: var(--color-run-button-hover-text); } -#output { - position: absolute; - overflow: scroll; - background: #ddd; - margin-top: 10px; - padding: 10px; - top: 75%; +/* The format code button */ +#format-button { + background: var(--color-buttons-background); + border: 1px solid var(--color-buttons-boarder); + color: var(--color-buttons-text); } -#output .system, -#output .loading { - color: #999; +#format-button:hover { + background: var(--color-buttons-hover-background); + border-color: var(--color-buttons-hover-boarder); + color: var(--color-buttons-hover-text); } -#output .err { - color: #900; +/* The checkbox and label for indicating if imports should be formatted */ +#format-imports { + font-family: var(--font-family-controls); + font-size: var(--font-size-controls); + color: var(--color-format-imports-text); } -#output pre { - margin: 0; +.toggle-box-wrapper { + display: flex; + align-items: center; + gap: 2px; } -#banner { - left: 0; - position: absolute; - right: 0; +.toggle-box-wrapper .toggle-box-checkbox { + display: none; +} + +.toggle-box-wrapper .toggle-box-checkbox+.toggle-box-toggle { + outline: 0; + display: block; + box-sizing: border-box; + width: calc(var(--size-toggle-box)/2); + height: var(--size-toggle-box); + position: relative; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border-radius: calc(var(--size-toggle-box)/2); + padding: 2px; + background: var(--color-toggle-background); + transition: all 0.4s ease; +} + +.toggle-box-wrapper .toggle-box-checkbox+.toggle-box-toggle:after { + position: relative; + top: calc(50% + 2px); + display: block; + content: ""; + width: 100%; + height: calc(50% - 2px); + border-radius: 50%; + background: var(--color-toggle-foreground); + transition: all 0.2s ease; +} + +.toggle-box-wrapper .toggle-box-checkbox:checked+.toggle-box-toggle { + background: var(--color-toggle-background-checked); +} + +.toggle-box-wrapper .toggle-box-checkbox:checked+.toggle-box-toggle:after { + background: var(--color-toggle-foreground-checked); top: 0; - white-space: nowrap; - padding: 4px; } -#head { - font-family: Arial, sans; - font-size: 32px; - font-variant: small-caps; +/* The share code button */ +#share-button { + background: var(--color-buttons-background); + border: 1px solid var(--color-buttons-boarder); + color: var(--color-buttons-text); } -#controls { - padding-left: 20px; +#share-button:hover { + background: var(--color-buttons-hover-background); + border-color: var(--color-buttons-hover-boarder); + color: var(--color-buttons-hover-text); } -input[type="button"] { - background: #eee; - border: 1px solid #ccc; - color: #222; - font-size: 20px; - height: 30px; +/* The text box containing the url for sharing code. */ +#share-url { + margin: 0px 5px 0px 5px; + flex-grow: 3; + font-family: var(--font-family-controls); + font-size: var(--font-size-controls); + border: 1px solid var(--color-share-url-boarder); + background: var(--color-share-url-background); + color: var(--color-share-url-text); } -input[type="button"]:hover { - background: #666; - color: #fff; +.share-url-hidden { + display: none; } -label { - font-family: sans-serif; - font-size: 16px; +/* The panel that contains everything below the banner */ +#code-output-box{ + display: flex; + flex-direction: column; + flex-grow: 1; + box-sizing: border-box; + overflow: none; } -input[type="checkbox"] { - height: 14px; +/* A panel containing the code-box used for resizable layout */ +#code-box-container { + display: flex; + resize: vertical; + overflow: auto; + width: 100%; + min-height: 50px; + max-height: 80%; + height: 75%; + flex-shrink: 0; + background: var(--color-code-background); } -.lines { - float: left; - overflow: hidden; +/* The panel that contains the code text area and the lines numbers */ +#code-box { + display: flex; + flex-direction: row; + flex-grow: 1; + box-sizing: border-box; + overflow: none; + resize: none; + width: 100%; + align-items: stretch; + background: var(--color-code-background); + border-top: 1px solid var(--color-code-box-borders); + border-bottom: 1px solid var(--color-code-box-borders); +} + +/* The interactable text area for the code */ +#code { + flex: 1; + resize: none; + box-sizing: border-box; + overflow-x: none; + overflow-y: scroll; + white-space: nowrap; + outline: none; + border: none; + border-left: 1px solid var(--color-code-line-nums-border); + padding: var(--padding-mono); + tab-size: var(--tab-size-code-text); + font-family: var(--font-family-mono); + font-size: var(--font-size-mono); + color: var(--color-code-text); + background: var(--color-code-background); +} + +/* The readonly line numbers next to the code */ +#line-nums { text-align: right; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: hidden; + text-overflow: clip; + resize: none; + max-width: 4ch; + white-space: pre-line; + border: none; + outline: none; + padding: var(--padding-mono); + font-family: var(--font-family-mono); + font-size: var(--font-size-mono); + color: var(--color-line-nums-text); + background: var(--color-line-nums-background); } -.lines div { - color: #d3d3d3; - padding-right: 5px; +/* The readonly box that contains all the output */ +#output-box { + width: 100%; + min-height: 50px; + flex-grow: 1; + resize: none; + box-sizing: border-box; + overflow: auto; + padding: var(--padding-mono); + background: var(--color-output-normal-background); } -.lineerror { - background: #fdd; - color: red; +/* The output pr for showing an error */ +.output-err { + width: 100%; + margin: 0; + margin-block: 0; + font-family: var(--font-family-mono); + font-size: var(--font-size-mono); + color: var(--color-output-error-text); + background: var(--color-output-error-background); } -.exit { - color: #d3d3d3; +/* The output pre for showing normal text */ +.output-text { + width: 100%; + margin: 0; + margin-block: 0; + font-family: var(--font-family-mono); + font-size: var(--font-size-mono); + color: var(--color-output-normal-text); } diff --git a/playground/playground.go b/playground/playground.go index a473e12b..55f7ed2a 100644 --- a/playground/playground.go +++ b/playground/playground.go @@ -1,314 +1,19 @@ package main import ( - "bytes" - "go/ast" - "go/format" - "go/parser" - "go/scanner" - "go/token" - "go/types" - "runtime" - "strings" - "time" + "github.com/gopherjs/gopherjs.github.io/playground/internal/react" - "github.com/gopherjs/gopherjs.github.io/playground/internal/imports" - "github.com/gopherjs/gopherjs/compiler" "github.com/gopherjs/gopherjs/js" - "github.com/neelance/go-angularjs" - "honnef.co/go/js/dom" - "honnef.co/go/js/xhr" ) -type Line map[string]string - -var output []Line - -const snippetStoreHost = "https://snippets.gopherjs.org" - func main() { - var location = dom.GetWindow().Top().Location() // We might be inside an iframe, but want to use the location of topmost window. - - codeReady := make(chan struct{}) // Used to synchronize when "code" value is ready. - - app := angularjs.NewModule("playground", nil, nil) - - app.NewController("PlaygroundCtrl", func(scope *angularjs.Scope) { - if strings.HasPrefix(location.Hash, "#/") { - id := location.Hash[2:] - - req := xhr.NewRequest("GET", snippetStoreHost+"/p/"+id) - req.ResponseType = xhr.ArrayBuffer - go func() { - err := req.Send(nil) - if err != nil || req.Status != 200 { - scope.Apply(func() { - scope.Set("output", []Line{Line{"type": "err", "content": `failed to load snippet "` + id + `"`}}) - }) - return - } - - data := js.Global.Get("Uint8Array").New(req.Response).Interface().([]byte) - scope.Apply(func() { - scope.Set("code", string(data)) - close(codeReady) - }) - }() - } else { - scope.Set("code", "package main\n\nimport (\n\t\"fmt\"\n\t\"syscall/js\"\n)\n\nfunc main() {\n\tfmt.Println(\"Hello, playground\")\n\tjs.Global().Call(\"alert\", \"Hello, JavaScript\")\n\tprintln(\"Hello, JS console\")\n}\n") - close(codeReady) - } - scope.Set("imports", true) - scope.Set("shareUrl", "") - scope.Set("showShareUrl", false) - scope.Set("version", compiler.Version) - - packages := make(map[string]*compiler.Archive) - var pkgsToLoad map[string]struct{} - importContext := &compiler.ImportContext{ - Packages: make(map[string]*types.Package), - Import: func(path string) (*compiler.Archive, error) { - if pkg, found := packages[path]; found { - return pkg, nil - } - pkgsToLoad[path] = struct{}{} - return &compiler.Archive{}, nil - }, - } - fileSet := token.NewFileSet() - pkgsReceived := 0 - - setupEnvironment(scope) - - codeArea := angularjs.ElementById("code") - codeArea.On("input", func(e *angularjs.Event) { - scope.Set("showShareUrl", false) - location.Hash = "" - }) - codeArea.On("keydown", func(e *angularjs.Event) { - toInsert := "" - switch e.KeyCode { - case '\t': - toInsert = "\t" - case '\r': - toInsert = "\n" - start := codeArea.Prop("selectionStart").Int() - code := scope.Get("code").String() - i := strings.LastIndex(code[:start], "\n") + 1 - for i < start { - c := code[i] - if c != ' ' && c != '\t' { - break - } - toInsert += string(c) - i++ - } - } - if toInsert != "" { - scope.Set("showShareUrl", false) - location.Hash = "" - - start := codeArea.Prop("selectionStart").Int() - end := codeArea.Prop("selectionEnd").Int() - code := scope.Get("code").String() - scope.Apply(func() { - scope.Set("code", code[:start]+toInsert+code[end:]) - }) - codeArea.SetProp("selectionStart", start+len(toInsert)) - codeArea.SetProp("selectionEnd", start+len(toInsert)) - e.PreventDefault() - } - }) - - var run func(bool) - run = func(loadOnly bool) { - output = nil - scope.Set("output", output) - pkgsToLoad = make(map[string]struct{}) - - file, err := parser.ParseFile(fileSet, "prog.go", []byte(scope.Get("code").String()), parser.ParseComments) - if err != nil { - if list, ok := err.(scanner.ErrorList); ok { - for _, entry := range list { - output = append(output, Line{"type": "err", "content": entry.Error()}) - } - scope.Set("output", output) - return - } - scope.Set("output", []Line{Line{"type": "err", "content": err.Error()}}) - return - } - - mainPkg, err := compiler.Compile("main", []*ast.File{file}, fileSet, importContext, false) - packages["main"] = mainPkg - if err != nil && len(pkgsToLoad) == 0 { - if list, ok := err.(compiler.ErrorList); ok { - var output []Line - for _, entry := range list { - output = append(output, Line{"type": "err", "content": entry.Error()}) - } - scope.Set("output", output) - return - } - scope.Set("output", []Line{Line{"type": "err", "content": err.Error()}}) - return - } - - var allPkgs []*compiler.Archive - if len(pkgsToLoad) == 0 { - allPkgs, _ = compiler.ImportDependencies(mainPkg, importContext.Import) - } - - if len(pkgsToLoad) != 0 { - pkgsReceived = 0 - for path := range pkgsToLoad { - req := xhr.NewRequest("GET", "pkg/"+path+".a.js") - req.ResponseType = xhr.ArrayBuffer - go func(path string) { - err := req.Send(nil) - if err != nil || req.Status != 200 { - scope.Apply(func() { - scope.Set("output", []Line{Line{"type": "err", "content": `failed to load package "` + path + `"`}}) - }) - return - } - - data := js.Global.Get("Uint8Array").New(req.Response).Interface().([]byte) - packages[path], err = compiler.ReadArchive(path+".a", bytes.NewReader(data)) - if err != nil { - scope.Apply(func() { - scope.Set("output", []Line{Line{"type": "err", "content": err.Error()}}) - }) - return - } - if err := packages[path].RegisterTypes(importContext.Packages); err != nil { - scope.Apply(func() { - scope.Set("output", []Line{Line{"type": "err", "content": err.Error()}}) - }) - return - } - pkgsReceived++ - if pkgsReceived == len(pkgsToLoad) { - run(loadOnly) - } - }(path) - } - return - } - - if loadOnly { - return - } - - jsCode := bytes.NewBuffer(nil) - jsCode.WriteString("try{\n") - compiler.WriteProgramCode(allPkgs, &compiler.SourceMapFilter{Writer: jsCode}, runtime.Version()) - jsCode.WriteString("} catch (err) {\ngoPanicHandler(err.message);\n}\n") - js.Global.Set("$checkForDeadlock", true) - js.Global.Call("eval", js.InternalObject(jsCode.String())) - } - scope.Set("run", run) - go func() { - <-codeReady // Wait for "code" value to be ready. - run(true) - }() - - scope.Set("format", func() { - code := []byte(scope.Get("code").String()) - var out []byte - var err error - switch scope.Get("imports").Bool() { - case true: - out, err = imports.Process("prog.go", code, nil) - case false: - out, err = format.Source(code) - } - if err != nil { - scope.Set("output", []Line{Line{"type": "err", "content": err.Error()}}) - return - } - scope.Set("code", string(out)) - scope.Set("output", []Line{}) - }) - - scope.Set("share", func() { - req := xhr.NewRequest("POST", snippetStoreHost+"/share") - req.ResponseType = xhr.ArrayBuffer - go func() { - err := req.Send([]byte(scope.Get("code").String())) // Send as binary. - if err != nil || req.Status != 200 { - scope.Apply(func() { - scope.Set("output", []Line{Line{"type": "err", "content": `failed to share snippet`}}) - }) - return - } - - data := js.Global.Get("Uint8Array").New(req.Response).Interface().([]byte) - scope.Apply(func() { - id := string(data) - - location.Hash = "#/" + id - - scope.Set("shareUrl", location.String()) - scope.Set("showShareUrl", true) - // TODO: Do this better using AngularJS. - // Perhaps using http://stackoverflow.com/questions/14833326/how-to-set-focus-on-input-field/18295416. - go func() { - time.Sleep(time.Millisecond) - dom.GetWindow().Document().GetElementByID("share-url").(*dom.HTMLInputElement).Select() - }() - }) - }() - }) - - // Start watching for hashchange events, and reload snippet if it happens. - dom.GetWindow().Top().AddEventListener("hashchange", false, func(event dom.Event) { - event.PreventDefault() - - if strings.HasPrefix(location.Hash, "#/") { - id := location.Hash[2:] - - req := xhr.NewRequest("GET", snippetStoreHost+"/p/"+id) - req.ResponseType = xhr.ArrayBuffer - go func() { - err := req.Send(nil) - if err != nil || req.Status != 200 { - scope.Apply(func() { - scope.Set("output", []Line{Line{"type": "err", "content": `failed to load snippet "` + id + `"`}}) - }) - return - } - - data := js.Global.Get("Uint8Array").New(req.Response).Interface().([]byte) - scope.Apply(func() { - scope.Set("code", string(data)) - }) - }() - } - }) + js.Global.Set(`RunPlayground`, func(r, rdc *js.Object) { + react.React = r + react.ReactDOMClient = rdc + + root := react.CreateRoot(`playground`) + root.Render(react.StrictMode( + react.Playground(), + )) }) } - -func setupEnvironment(scope *angularjs.Scope) { - js.Global.Set("goPrintToConsole", js.InternalObject(func(b []byte) { - lines := strings.Split(string(b), "\n") - if len(output) == 0 || output[len(output)-1]["type"] != "out" { - output = append(output, Line{"type": "out", "content": ""}) - } - output[len(output)-1]["content"] += lines[0] - for i := 1; i < len(lines); i++ { - output = append(output, Line{"type": "out", "content": lines[i]}) - } - scope.Set("output", output) - scope.EvalAsync(func() { - time.AfterFunc(0, func() { - box := angularjs.ElementById("output") - box.SetProp("scrollTop", box.Prop("scrollHeight")) - }) - }) - })) - js.Global.Set("goPanicHandler", js.InternalObject(func(msg string) { - output = append(output, Line{"type": "err", "content": "panic: " + msg}) - scope.Set("output", output) - })) -} diff --git a/playground/playground.js b/playground/playground.js index f69fde61..f22a5fb2 100644 --- a/playground/playground.js +++ b/playground/playground.js @@ -1,113 +1,105779 @@ "use strict"; (function() { -var $goVersion = "go1.18.6"; -Error.stackTraceLimit=1/0;var $global,$module,$NaN=NaN;if("undefined"!=typeof window?$global=window:"undefined"!=typeof self?$global=self:"undefined"!=typeof global?($global=global).require=require:$global=this,void 0===$global||void 0===$global.Array)throw new Error("no global object found");if("undefined"!=typeof module&&($module=module),!$global.fs&&$global.require)try{var fs=$global.require("fs");"object"==typeof fs&&null!==fs&&0!==Object.keys(fs).length&&($global.fs=fs)}catch(e){}if(!$global.fs){var outputBuf="",decoder=new TextDecoder("utf-8");$global.fs={constants:{O_WRONLY:-1,O_RDWR:-1,O_CREAT:-1,O_TRUNC:-1,O_APPEND:-1,O_EXCL:-1},writeSync:function(e,n){var r=(outputBuf+=decoder.decode(n)).lastIndexOf("\n");return-1!=r&&(console.log(outputBuf.substr(0,r)),outputBuf=outputBuf.substr(r+1)),n.length},write:function(e,n,r,t,i,a){0===r&&t===n.length&&null===i?a(null,this.writeSync(e,n)):a(enosys())}}}var $throwRuntimeError,$linknames={},$packages={},$idCounter=0,$keys=function(e){return e?Object.keys(e):[]},$flushConsole=function(){},$throwNilPointerError=function(){$throwRuntimeError("invalid memory address or nil pointer dereference")},$call=function(e,n,r){return e.apply(n,r)},$makeFunc=function(e){return function(){return $externalize(e(this,new($sliceType($jsObjectPtr))($global.Array.prototype.slice.call(arguments,[]))),$emptyInterface)}},$unused=function(e){},$print=console.log;if(void 0!==$global.process&&$global.require)try{var util=$global.require("util");$print=function(){$global.process.stderr.write(util.format.apply(this,arguments))}}catch(e){}var $println=console.log,$initAllLinknames=function(){for(var e=$keys($packages),n=0;ne.$capacity||t>e.$capacity)&&$throwRuntimeError("slice bounds out of range"),e===e.constructor.nil)return e;var i=new e.constructor(e.$array);return i.$offset=e.$offset+n,i.$length=r-n,i.$capacity=t-n,i},$substring=function(e,n,r){return(n<0||re.length)&&$throwRuntimeError("slice bounds out of range"),e.substring(n,r)},$sliceToNativeArray=function(e){return e.$array.constructor!==Array?e.$array.subarray(e.$offset,e.$offset+e.$length):e.$array.slice(e.$offset,e.$offset+e.$length)},$sliceToGoArray=function(e,n){var r=n.elem;return void 0!==r&&e.$length1114111||55296<=e&&e<=57343)&&(e=65533),e<=127?String.fromCharCode(e):e<=2047?String.fromCharCode(192|e>>6,128|63&e):e<=65535?String.fromCharCode(224|e>>12,128|e>>6&63,128|63&e):String.fromCharCode(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)},$stringToBytes=function(e){for(var n=new Uint8Array(e.length),r=0;rt){for(var o=i-1;o>=0;o--)a.copy(e[r+o],n[t+o]);return}for(o=0;ot)for(o=i-1;o>=0;o--)e[r+o]=n[t+o];else for(o=0;oc)if(a=0,c=Math.max(o,e.$capacity<1024?2*e.$capacity:Math.floor(5*e.$capacity/4)),e.$array.constructor===Array){(i=e.$array.slice(e.$offset,e.$offset+e.$length)).length=c;for(var $=e.constructor.elem.zero,u=e.$length;u>>16&65535)*t+r*(n>>>16&65535)<<16>>>0)>>0},$floatKey=function(e){return e!=e?"NaN$"+ ++$idCounter:String(e)},$flatten64=function(e){return 4294967296*e.$high+e.$low},$shiftLeft64=function(e,n){return 0===n?e:n<32?new e.constructor(e.$high<>>32-n,e.$low<>>0):n<64?new e.constructor(e.$low<>n,(e.$low>>>n|e.$high<<32-n)>>>0):n<64?new e.constructor(e.$high>>31,e.$high>>n-32>>>0):e.$high<0?new e.constructor(-1,4294967295):new e.constructor(0,0)},$shiftRightUint64=function(e,n){return 0===n?e:n<32?new e.constructor(e.$high>>>n,(e.$low>>>n|e.$high<<32-n)>>>0):n<64?new e.constructor(0,e.$high>>>n-32):new e.constructor(0,0)},$mul64=function(e,n){var r=e.$high>>>16,t=65535&e.$high,i=e.$low>>>16,a=65535&e.$low,o=n.$high>>>16,c=65535&n.$high,$=n.$low>>>16,u=65535&n.$low,l=0,s=0,f=0,d=0;f+=(d+=a*u)>>>16,s+=(f+=i*u)>>>16,f&=65535,s+=(f+=a*$)>>>16,l+=(s+=t*u)>>>16,s&=65535,l+=(s+=i*$)>>>16,s&=65535,l+=(s+=a*c)>>>16,l+=r*u+t*$+i*c+a*o;var p=((l&=65535)<<16|(s&=65535))>>>0,h=((f&=65535)<<16|(d&=65535))>>>0;return new e.constructor(p,h)},$div64=function(e,n,r){0===n.$high&&0===n.$low&&$throwRuntimeError("integer divide by zero");var t=1,i=1,a=e.$high,o=e.$low;a<0&&(t=-1,i=-1,a=-a,0!==o&&(a--,o=4294967296-o));var c=n.$high,$=n.$low;n.$high<0&&(t*=-1,c=-c,0!==$&&(c--,$=4294967296-$));for(var u=0,l=0,s=0;c<2147483648&&(a>c||a===c&&o>$);)c=(c<<1|$>>>31)>>>0,$=$<<1>>>0,s++;for(var f=0;f<=s;f++)u=u<<1|l>>>31,l=l<<1>>>0,(a>c||a===c&&o>=$)&&(a-=c,(o-=$)<0&&(a--,o+=4294967296),4294967296===++l&&(u++,l=0)),$=($>>>1|c<<31)>>>0,c>>>=1;return r?new e.constructor(a*i,o*i):new e.constructor(u*t,l*t)},$divComplex=function(e,n){var r=e.$real===1/0||e.$real===-1/0||e.$imag===1/0||e.$imag===-1/0,t=n.$real===1/0||n.$real===-1/0||n.$imag===1/0||n.$imag===-1/0,i=!r&&(e.$real!=e.$real||e.$imag!=e.$imag),a=!t&&(n.$real!=n.$real||n.$imag!=n.$imag);if(i||a)return new e.constructor(NaN,NaN);if(r&&!t)return new e.constructor(1/0,1/0);if(!r&&t)return new e.constructor(0,0);if(0===n.$real&&0===n.$imag)return 0===e.$real&&0===e.$imag?new e.constructor(NaN,NaN):new e.constructor(1/0,1/0);if(Math.abs(n.$real)<=Math.abs(n.$imag)){var o=n.$real/n.$imag,c=n.$real*o+n.$imag;return new e.constructor((e.$real*o+e.$imag)/c,(e.$imag*o-e.$real)/c)}o=n.$imag/n.$real,c=n.$imag*o+n.$real;return new e.constructor((e.$imag*o+e.$real)/c,(e.$imag-e.$real*o)/c)},$kindBool=1,$kindInt=2,$kindInt8=3,$kindInt16=4,$kindInt32=5,$kindInt64=6,$kindUint=7,$kindUint8=8,$kindUint16=9,$kindUint32=10,$kindUint64=11,$kindUintptr=12,$kindFloat32=13,$kindFloat64=14,$kindComplex64=15,$kindComplex128=16,$kindArray=17,$kindChan=18,$kindFunc=19,$kindInterface=20,$kindMap=21,$kindPtr=22,$kindSlice=23,$kindString=24,$kindStruct=25,$kindUnsafePointer=26,$methodSynthesizers=[],$addMethodSynthesizer=function(e){null!==$methodSynthesizers?$methodSynthesizers.push(e):e()},$synthesizeMethods=function(){$methodSynthesizers.forEach(function(e){e()}),$methodSynthesizers=null},$ifaceKeyFor=function(e){if(e===$ifaceNil)return"nil";var n=e.constructor;return n.string+"$"+n.keyFor(e.$val)},$identity=function(e){return e},$typeIDCounter=0,$idKey=function(e){return void 0===e.$id&&($idCounter++,e.$id=$idCounter),String(e.$id)},$arrayPtrCtor=function(){return function(e){this.$get=function(){return e},this.$set=function(e){typ.copy(this,e)},this.$val=e}},$newType=function(e,n,r,t,i,a,o){var c;switch(n){case $kindBool:case $kindInt:case $kindInt8:case $kindInt16:case $kindInt32:case $kindUint:case $kindUint8:case $kindUint16:case $kindUint32:case $kindUintptr:case $kindUnsafePointer:(c=function(e){this.$val=e}).wrapped=!0,c.keyFor=$identity;break;case $kindString:(c=function(e){this.$val=e}).wrapped=!0,c.keyFor=function(e){return"$"+e};break;case $kindFloat32:case $kindFloat64:(c=function(e){this.$val=e}).wrapped=!0,c.keyFor=function(e){return $floatKey(e)};break;case $kindInt64:(c=function(e,n){this.$high=e+Math.floor(Math.ceil(n)/4294967296)>>0,this.$low=n>>>0,this.$val=this}).keyFor=function(e){return e.$high+"$"+e.$low};break;case $kindUint64:(c=function(e,n){this.$high=e+Math.floor(Math.ceil(n)/4294967296)>>>0,this.$low=n>>>0,this.$val=this}).keyFor=function(e){return e.$high+"$"+e.$low};break;case $kindComplex64:(c=function(e,n){this.$real=$fround(e),this.$imag=$fround(n),this.$val=this}).keyFor=function(e){return e.$real+"$"+e.$imag};break;case $kindComplex128:(c=function(e,n){this.$real=e,this.$imag=n,this.$val=this}).keyFor=function(e){return e.$real+"$"+e.$imag};break;case $kindArray:(c=function(e){this.$val=e}).wrapped=!0,c.ptr=$newType(4,$kindPtr,"*"+r,!1,"",!1,$arrayPtrCtor()),c.init=function(e,n){c.elem=e,c.len=n,c.comparable=e.comparable,c.keyFor=function(n){return Array.prototype.join.call($mapArray(n,function(n){return String(e.keyFor(n)).replace(/\\/g,"\\\\").replace(/\$/g,"\\$")}),"$")},c.copy=function(n,r){$copyArray(n,r,0,0,r.length,e)},c.ptr.init(c),Object.defineProperty(c.ptr.nil,"nilCheck",{get:$throwNilPointerError})};break;case $kindChan:(c=function(e){this.$val=e}).wrapped=!0,c.keyFor=$idKey,c.init=function(e,n,r){c.elem=e,c.sendOnly=n,c.recvOnly=r};break;case $kindFunc:(c=function(e){this.$val=e}).wrapped=!0,c.init=function(e,n,r){c.params=e,c.results=n,c.variadic=r,c.comparable=!1};break;case $kindInterface:(c={implementedBy:{},missingMethodFor:{}}).keyFor=$ifaceKeyFor,c.init=function(e){c.methods=e,e.forEach(function(e){$ifaceNil[e.prop]=$throwNilPointerError})};break;case $kindMap:(c=function(e){this.$val=e}).wrapped=!0,c.init=function(e,n){c.key=e,c.elem=n,c.comparable=!1};break;case $kindPtr:(c=o||function(e,n,r){this.$get=e,this.$set=n,this.$target=r,this.$val=this}).keyFor=$idKey,c.init=function(e){c.elem=e,c.wrapped=e.kind===$kindArray,c.nil=new c($throwNilPointerError,$throwNilPointerError)};break;case $kindSlice:(c=function(e){e.constructor!==c.nativeArray&&(e=new c.nativeArray(e)),this.$array=e,this.$offset=0,this.$length=e.length,this.$capacity=e.length,this.$val=this}).init=function(e){c.elem=e,c.comparable=!1,c.nativeArray=$nativeArray(e.kind),c.nil=new c([])};break;case $kindStruct:(c=function(e){this.$val=e}).wrapped=!0,c.ptr=$newType(4,$kindPtr,"*"+r,!1,i,a,o),c.ptr.elem=c,c.ptr.prototype.$get=function(){return this},c.ptr.prototype.$set=function(e){c.copy(this,e)},c.init=function(e,n){c.pkgPath=e,c.fields=n,n.forEach(function(e){e.typ.comparable||(c.comparable=!1)}),c.keyFor=function(e){var r=e.$val;return $mapArray(n,function(e){return String(e.typ.keyFor(r[e.prop])).replace(/\\/g,"\\\\").replace(/\$/g,"\\$")}).join("$")},c.copy=function(e,r){for(var t=0;t0;){var a=[],o=[];t.forEach(function(e){if(!i[e.typ.string])switch(i[e.typ.string]=!0,e.typ.named&&(o=o.concat(e.typ.methods),e.indirect&&(o=o.concat($ptrType(e.typ).methods))),e.typ.kind){case $kindStruct:e.typ.fields.forEach(function(n){if(n.embedded){var r=n.typ,t=r.kind===$kindPtr;a.push({typ:t?r.elem:r,indirect:e.indirect||t})}});break;case $kindInterface:o=o.concat(e.typ.methods)}}),o.forEach(function(e){void 0===n[e.name]&&(n[e.name]=e)}),t=a}return e.methodSetCache=[],Object.keys(n).sort().forEach(function(r){e.methodSetCache.push(n[r])}),e.methodSetCache},$Bool=$newType(1,$kindBool,"bool",!0,"",!1,null),$Int=$newType(4,$kindInt,"int",!0,"",!1,null),$Int8=$newType(1,$kindInt8,"int8",!0,"",!1,null),$Int16=$newType(2,$kindInt16,"int16",!0,"",!1,null),$Int32=$newType(4,$kindInt32,"int32",!0,"",!1,null),$Int64=$newType(8,$kindInt64,"int64",!0,"",!1,null),$Uint=$newType(4,$kindUint,"uint",!0,"",!1,null),$Uint8=$newType(1,$kindUint8,"uint8",!0,"",!1,null),$Uint16=$newType(2,$kindUint16,"uint16",!0,"",!1,null),$Uint32=$newType(4,$kindUint32,"uint32",!0,"",!1,null),$Uint64=$newType(8,$kindUint64,"uint64",!0,"",!1,null),$Uintptr=$newType(4,$kindUintptr,"uintptr",!0,"",!1,null),$Float32=$newType(4,$kindFloat32,"float32",!0,"",!1,null),$Float64=$newType(8,$kindFloat64,"float64",!0,"",!1,null),$Complex64=$newType(8,$kindComplex64,"complex64",!0,"",!1,null),$Complex128=$newType(16,$kindComplex128,"complex128",!0,"",!1,null),$String=$newType(8,$kindString,"string",!0,"",!1,null),$UnsafePointer=$newType(4,$kindUnsafePointer,"unsafe.Pointer",!0,"unsafe",!1,null),$nativeArray=function(e){switch(e){case $kindInt:return Int32Array;case $kindInt8:return Int8Array;case $kindInt16:return Int16Array;case $kindInt32:return Int32Array;case $kindUint:return Uint32Array;case $kindUint8:return Uint8Array;case $kindUint16:return Uint16Array;case $kindUint32:case $kindUintptr:return Uint32Array;case $kindFloat32:return Float32Array;case $kindFloat64:return Float64Array;default:return Array}},$toNativeArray=function(e,n){var r=$nativeArray(e);return r===Array?n:new r(n)},$arrayTypes={},$arrayType=function(e,n){var r=e.id+"$"+n,t=$arrayTypes[r];return void 0===t&&(t=$newType(12,$kindArray,"["+n+"]"+e.string,!1,"",!1,null),$arrayTypes[r]=t,t.init(e,n)),t},$chanType=function(e,n,r){var t=(r?"<-":"")+"chan"+(n?"<- ":" ");n||r||"<"!=e.string[0]?t+=e.string:t+="("+e.string+")";var i=n?"SendChan":r?"RecvChan":"Chan",a=e[i];return void 0===a&&(a=$newType(4,$kindChan,t,!1,"",!1,null),e[i]=a,a.init(e,n,r)),a},$Chan=function(e,n){(n<0||n>2147483647)&&$throwRuntimeError("makechan: size out of range"),this.$elem=e,this.$capacity=n,this.$buffer=[],this.$sendQueue=[],this.$recvQueue=[],this.$closed=!1},$chanNil=new $Chan(null,0);$chanNil.$sendQueue=$chanNil.$recvQueue={length:0,push:function(){},shift:function(){},indexOf:function(){return-1}};var $funcTypes={},$funcType=function(e,n,r){var t=$mapArray(e,function(e){return e.id}).join(",")+"$"+$mapArray(n,function(e){return e.id}).join(",")+"$"+r,i=$funcTypes[t];if(void 0===i){var a=$mapArray(e,function(e){return e.string});r&&(a[a.length-1]="..."+a[a.length-1].substr(2));var o="func("+a.join(", ")+")";1===n.length?o+=" "+n[0].string:n.length>1&&(o+=" ("+$mapArray(n,function(e){return e.string}).join(", ")+")"),i=$newType(4,$kindFunc,o,!1,"",!1,null),$funcTypes[t]=i,i.init(e,n,r)}return i},$interfaceTypes={},$interfaceType=function(e){var n=$mapArray(e,function(e){return e.pkg+","+e.name+","+e.typ.id}).join("$"),r=$interfaceTypes[n];if(void 0===r){var t="interface {}";0!==e.length&&(t="interface { "+$mapArray(e,function(e){return(""!==e.pkg?e.pkg+".":"")+e.name+e.typ.string.substr(4)}).join("; ")+" }"),r=$newType(8,$kindInterface,t,!1,"",!1,null),$interfaceTypes[n]=r,r.init(e)}return r},$emptyInterface=$interfaceType([]),$ifaceNil={},$error=$newType(8,$kindInterface,"error",!0,"",!1,null);$error.init([{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],!1)}]);var $panicValue,$jsObjectPtr,$jsErrorPtr,$mapTypes={},$mapType=function(e,n){var r=e.id+"$"+n.id,t=$mapTypes[r];return void 0===t&&(t=$newType(4,$kindMap,"map["+e.string+"]"+n.string,!1,"",!1,null),$mapTypes[r]=t,t.init(e,n)),t},$makeMap=function(e,n){for(var r=new Map,t=0;t2147483647)&&$throwRuntimeError("makeslice: len out of range"),(r<0||r2147483647)&&$throwRuntimeError("makeslice: cap out of range");var t=new e.nativeArray(r);if(e.nativeArray===Array)for(var i=0;i4||t<0)break}}finally{0==$scheduled.length&&clearTimeout(e)}},$schedule=function(e){e.asleep&&(e.asleep=!1,$awakeGoroutines++),$scheduled.push(e),$curGoroutine===$noGoroutine&&$runScheduled()},$setTimeout=function(e,n){return $awakeGoroutines++,setTimeout(function(){$awakeGoroutines--,e()},n)},$block=function(){$curGoroutine===$noGoroutine&&$throwRuntimeError("cannot block in JavaScript callback, fix by wrapping code in goroutine"),$curGoroutine.asleep=!0},$restore=function(e,n){return void 0!==e&&void 0!==e.$blk?e:n},$send=function(e,n){e.$closed&&$throwRuntimeError("send on closed channel");var r=e.$recvQueue.shift();if(void 0===r){if(!(e.$buffer.length65535){var l=Math.floor((u-65536)/1024)+55296,s=(u-65536)%1024+56320;$+=String.fromCharCode(l,s)}else $+=String.fromCharCode(u)}return $;case $kindStruct:var f=$packages.time;if(void 0!==f&&e.constructor===f.Time.ptr){var d=$div64(e.UnixNano(),new $Int64(0,1e6));return new Date($flatten64(d))}var p={},h=function(e,n){if(n===$jsObjectPtr)return e;switch(n.kind){case $kindPtr:return e===n.nil?p:h(e.$get(),n.elem);case $kindStruct:var r=n.fields[0];return h(e[r.prop],r.typ);case $kindInterface:return h(e.$val,e.constructor);default:return p}},k=h(e,n);if(k!==p)return k;if(void 0!==r)return r(e);k={};for(a=0;a>24;case $kindInt16:return parseInt(e)<<16>>16;case $kindInt32:return parseInt(e)>>0;case $kindUint:return parseInt(e);case $kindUint8:return parseInt(e)<<24>>>24;case $kindUint16:return parseInt(e)<<16>>>16;case $kindUint32:case $kindUintptr:return parseInt(e)>>>0;case $kindInt64:case $kindUint64:return new n(0,e);case $kindFloat32:case $kindFloat64:return parseFloat(e);case $kindArray:return e.length!==n.len&&$throwRuntimeError("got array with wrong size from JavaScript native"),$mapArray(e,function(e){return $internalize(e,n.elem,i)});case $kindFunc:return function(){for(var t=[],a=0;a=128)return!1;return!0}; +var $goVersion = "go1.19.13"; +Error.stackTraceLimit = Infinity; +var $NaN = NaN; +var $global, $module; +if (typeof window !== "undefined") { + $global = window; +} else if (typeof self !== "undefined") { + $global = self; +} else if (typeof global !== "undefined") { + $global = global; + $global.require = require; +} else { + $global = this; +} +if ($global === void 0 || $global.Array === void 0) { + throw new Error("no global object found"); +} +if (typeof module !== "undefined") { + $module = module; +} +if (!$global.fs && $global.require) { + try { + var fs = $global.require("fs"); + if (typeof fs === "object" && fs !== null && Object.keys(fs).length !== 0) { + $global.fs = fs; + } + } catch (e) { + } +} +if (!$global.fs) { + var outputBuf = ""; + var decoder = new TextDecoder("utf-8"); + $global.fs = { + constants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1 }, + // unused + writeSync: function writeSync(fd, buf) { + outputBuf += decoder.decode(buf); + var nl = outputBuf.lastIndexOf("\n"); + if (nl != -1) { + console.log(outputBuf.substring(0, nl)); + outputBuf = outputBuf.substring(nl + 1); + } + return buf.length; + }, + write: function write(fd, buf, offset, length, position, callback) { + if (offset !== 0 || length !== buf.length || position !== null) { + callback(enosys()); + return; + } + var n = this.writeSync(fd, buf); + callback(null, n); + } + }; +} +var $linknames = {}; +var $packages = {}, $idCounter = 0; +var $keys = (m) => { + return m ? Object.keys(m) : []; +}; +var $flushConsole = () => { +}; +var $throwRuntimeError; +var $throwNilPointerError = () => { + $throwRuntimeError("invalid memory address or nil pointer dereference"); +}; +var $call = (fn, rcvr, args) => { + return fn.apply(rcvr, args); +}; +var $makeFunc = (fn) => { + return function(...args) { + return $externalize(fn(this, new ($sliceType($jsObjectPtr))($global.Array.prototype.slice.call(args, []))), $emptyInterface); + }; +}; +var $unused = (v) => { +}; +var $print = console.log; +if ($global.process !== void 0 && $global.require) { + try { + var util = $global.require("util"); + $print = function(...args) { + $global.process.stderr.write(util.format.apply(this, args)); + }; + } catch (e) { + } +} +var $println = console.log; +var $callForAllPackages = (methodName) => { + var names = $keys($packages); + for (var i = 0; i < names.length; i++) { + var f = $packages[names[i]][methodName]; + if (typeof f == "function") { + f(); + } + } +}; +var $mapArray = (array, f) => { + var newArray = new array.constructor(array.length); + for (var i = 0; i < array.length; i++) { + newArray[i] = f(array[i]); + } + return newArray; +}; +var $mapIndex = (m, key) => { + return typeof m.get === "function" ? m.get(key) : void 0; +}; +var $mapDelete = (m, key) => { + typeof m.delete === "function" && m.delete(key); +}; +var $methodVal = (recv, name) => { + var vals = recv.$methodVals || {}; + recv.$methodVals = vals; + var f = vals[name]; + if (f !== void 0) { + return f; + } + var method = recv[name]; + f = method.bind(recv); + vals[name] = f; + return f; +}; +var $methodExpr = (typ, name) => { + var method = typ.prototype[name]; + if (method.$expr === void 0) { + method.$expr = (...args) => { + $stackDepthOffset--; + try { + if (typ.wrapped) { + args[0] = new typ(args[0]); + } + return Function.call.apply(method, args); + } finally { + $stackDepthOffset++; + } + }; + } + return method.$expr; +}; +var $ifaceMethodExprs = {}; +var $ifaceMethodExpr = (name) => { + var expr = $ifaceMethodExprs["$" + name]; + if (expr === void 0) { + expr = $ifaceMethodExprs["$" + name] = (...args) => { + $stackDepthOffset--; + try { + return Function.call.apply(args[0][name], args); + } finally { + $stackDepthOffset++; + } + }; + } + return expr; +}; +var $subslice = (slice, low, high, max) => { + if (high === void 0) { + high = slice.$length; + } + if (max === void 0) { + max = slice.$capacity; + } + if (low < 0 || high < low || max < high || high > slice.$capacity || max > slice.$capacity) { + $throwRuntimeError("slice bounds out of range"); + } + if (slice === slice.constructor.nil) { + return slice; + } + var s = new slice.constructor(slice.$array); + s.$offset = slice.$offset + low; + s.$length = high - low; + s.$capacity = max - low; + return s; +}; +var $substring = (str, low, high) => { + if (low < 0 || high < low || high > str.length) { + $throwRuntimeError("slice bounds out of range"); + } + return str.substring(low, high); +}; +var $sliceToNativeArray = (slice) => { + if (slice.$array.constructor !== Array) { + return slice.$array.subarray(slice.$offset, slice.$offset + slice.$length); + } + return slice.$array.slice(slice.$offset, slice.$offset + slice.$length); +}; +var $sliceToGoArray = (slice, arrayPtrType) => { + var arrayType = arrayPtrType.elem; + if (arrayType !== void 0 && slice.$length < arrayType.len) { + $throwRuntimeError("cannot convert slice with length " + slice.$length + " to pointer to array with length " + arrayType.len); + } + if (slice == slice.constructor.nil) { + return arrayPtrType.nil; + } + if (slice.$array.constructor !== Array) { + return slice.$array.subarray(slice.$offset, slice.$offset + arrayType.len); + } + if (slice.$offset == 0 && slice.$length == slice.$capacity && slice.$length == arrayType.len) { + return slice.$array; + } + if (arrayType.len == 0) { + return new arrayType([]); + } + $throwRuntimeError("gopherjs: non-numeric slice to underlying array conversion is not supported for subslices"); +}; +var $convertSliceType = (slice, desiredType) => { + if (slice == slice.constructor.nil) { + return desiredType.nil; + } + return $subslice(new desiredType(slice.$array), slice.$offset, slice.$offset + slice.$length); +}; +var $decodeRune = (str, pos) => { + var c0 = str.charCodeAt(pos); + if (c0 < 128) { + return [c0, 1]; + } + if (c0 !== c0 || c0 < 192) { + return [65533, 1]; + } + var c1 = str.charCodeAt(pos + 1); + if (c1 !== c1 || c1 < 128 || 192 <= c1) { + return [65533, 1]; + } + if (c0 < 224) { + var r = (c0 & 31) << 6 | c1 & 63; + if (r <= 127) { + return [65533, 1]; + } + return [r, 2]; + } + var c2 = str.charCodeAt(pos + 2); + if (c2 !== c2 || c2 < 128 || 192 <= c2) { + return [65533, 1]; + } + if (c0 < 240) { + var r = (c0 & 15) << 12 | (c1 & 63) << 6 | c2 & 63; + if (r <= 2047) { + return [65533, 1]; + } + if (55296 <= r && r <= 57343) { + return [65533, 1]; + } + return [r, 3]; + } + var c3 = str.charCodeAt(pos + 3); + if (c3 !== c3 || c3 < 128 || 192 <= c3) { + return [65533, 1]; + } + if (c0 < 248) { + var r = (c0 & 7) << 18 | (c1 & 63) << 12 | (c2 & 63) << 6 | c3 & 63; + if (r <= 65535 || 1114111 < r) { + return [65533, 1]; + } + return [r, 4]; + } + return [65533, 1]; +}; +var $encodeRune = (r) => { + if (r < 0 || r > 1114111 || 55296 <= r && r <= 57343) { + r = 65533; + } + if (r <= 127) { + return String.fromCharCode(r); + } + if (r <= 2047) { + return String.fromCharCode(192 | r >> 6, 128 | r & 63); + } + if (r <= 65535) { + return String.fromCharCode(224 | r >> 12, 128 | r >> 6 & 63, 128 | r & 63); + } + return String.fromCharCode(240 | r >> 18, 128 | r >> 12 & 63, 128 | r >> 6 & 63, 128 | r & 63); +}; +var $stringToBytes = (str) => { + var array = new Uint8Array(str.length); + for (var i = 0; i < str.length; i++) { + array[i] = str.charCodeAt(i); + } + return array; +}; +var $bytesToString = (slice) => { + if (slice.$length === 0) { + return ""; + } + var str = ""; + for (var i = 0; i < slice.$length; i += 1e4) { + str += String.fromCharCode.apply(void 0, slice.$array.subarray(slice.$offset + i, slice.$offset + Math.min(slice.$length, i + 1e4))); + } + return str; +}; +var $stringToRunes = (str) => { + var array = new Int32Array(str.length); + var rune, j = 0; + for (var i = 0; i < str.length; i += rune[1], j++) { + rune = $decodeRune(str, i); + array[j] = rune[0]; + } + return array.subarray(0, j); +}; +var $runesToString = (slice) => { + if (slice.$length === 0) { + return ""; + } + var str = ""; + for (var i = 0; i < slice.$length; i++) { + str += $encodeRune(slice.$array[slice.$offset + i]); + } + return str; +}; +var $copyString = (dst, src) => { + var n = Math.min(src.length, dst.$length); + for (var i = 0; i < n; i++) { + dst.$array[dst.$offset + i] = src.charCodeAt(i); + } + return n; +}; +var $copySlice = (dst, src) => { + var n = Math.min(src.$length, dst.$length); + $copyArray(dst.$array, src.$array, dst.$offset, src.$offset, n, dst.constructor.elem); + return n; +}; +var $copyArray = (dst, src, dstOffset, srcOffset, n, elem) => { + if (n === 0 || dst === src && dstOffset === srcOffset) { + return; + } + if (src.subarray) { + dst.set(src.subarray(srcOffset, srcOffset + n), dstOffset); + return; + } + switch (elem.kind) { + case $kindArray: + case $kindStruct: + if (dst === src && dstOffset > srcOffset) { + for (var i = n - 1; i >= 0; i--) { + elem.copy(dst[dstOffset + i], src[srcOffset + i]); + } + return; + } + for (var i = 0; i < n; i++) { + elem.copy(dst[dstOffset + i], src[srcOffset + i]); + } + return; + } + if (dst === src && dstOffset > srcOffset) { + for (var i = n - 1; i >= 0; i--) { + dst[dstOffset + i] = src[srcOffset + i]; + } + return; + } + for (var i = 0; i < n; i++) { + dst[dstOffset + i] = src[srcOffset + i]; + } +}; +var $clone = (src, type) => { + var clone = type.zero(); + type.copy(clone, src); + return clone; +}; +var $pointerOfStructConversion = (obj, type) => { + if (obj.$proxies === void 0) { + obj.$proxies = {}; + obj.$proxies[obj.constructor.string] = obj; + } + var proxy = obj.$proxies[type.string]; + if (proxy === void 0) { + var properties = {}; + for (var i = 0; i < type.elem.fields.length; i++) { + ((fieldProp) => { + properties[fieldProp] = { + get() { + return obj[fieldProp]; + }, + set(value) { + obj[fieldProp] = value; + } + }; + })(type.elem.fields[i].prop); + } + proxy = Object.create(type.prototype, properties); + proxy.$val = proxy; + obj.$proxies[type.string] = proxy; + proxy.$proxies = obj.$proxies; + } + return proxy; +}; +var $append = function(slice) { + return $internalAppend(slice, arguments, 1, arguments.length - 1); +}; +var $appendSlice = (slice, toAppend) => { + if (toAppend.constructor === String) { + var bytes = $stringToBytes(toAppend); + return $internalAppend(slice, bytes, 0, bytes.length); + } + return $internalAppend(slice, toAppend.$array, toAppend.$offset, toAppend.$length); +}; +var $internalAppend = (slice, array, offset, length) => { + if (length === 0) { + return slice; + } + var newArray = slice.$array; + var newOffset = slice.$offset; + var newLength = slice.$length + length; + var newCapacity = slice.$capacity; + if (newLength > newCapacity) { + newOffset = 0; + newCapacity = Math.max(newLength, slice.$capacity < 1024 ? slice.$capacity * 2 : Math.floor(slice.$capacity * 5 / 4)); + if (slice.$array.constructor === Array) { + newArray = slice.$array.slice(slice.$offset, slice.$offset + slice.$length); + newArray.length = newCapacity; + var zero = slice.constructor.elem.zero; + for (var i = slice.$length; i < newCapacity; i++) { + newArray[i] = zero(); + } + } else { + newArray = new slice.$array.constructor(newCapacity); + newArray.set(slice.$array.subarray(slice.$offset, slice.$offset + slice.$length)); + } + } + $copyArray(newArray, array, newOffset + slice.$length, offset, length, slice.constructor.elem); + var newSlice = new slice.constructor(newArray); + newSlice.$offset = newOffset; + newSlice.$length = newLength; + newSlice.$capacity = newCapacity; + return newSlice; +}; +var $equal = (a, b, type) => { + if (type === $jsObjectPtr) { + return a === b; + } + switch (type.kind) { + case $kindComplex64: + case $kindComplex128: + return a.$real === b.$real && a.$imag === b.$imag; + case $kindInt64: + case $kindUint64: + return a.$high === b.$high && a.$low === b.$low; + case $kindArray: + if (a.length !== b.length) { + return false; + } + for (var i = 0; i < a.length; i++) { + if (!$equal(a[i], b[i], type.elem)) { + return false; + } + } + return true; + case $kindStruct: + for (var i = 0; i < type.fields.length; i++) { + var f = type.fields[i]; + if (!$equal(a[f.prop], b[f.prop], f.typ)) { + return false; + } + } + return true; + case $kindInterface: + return $interfaceIsEqual(a, b); + default: + return a === b; + } +}; +var $interfaceIsEqual = (a, b) => { + if (a === $ifaceNil || b === $ifaceNil) { + return a === b; + } + if (a.constructor !== b.constructor) { + return false; + } + if (a.constructor === $jsObjectPtr) { + return a.object === b.object; + } + if (!a.constructor.comparable) { + $throwRuntimeError("comparing uncomparable type " + a.constructor.string); + } + return $equal(a.$val, b.$val, a.constructor); +}; +var $unsafeMethodToFunction = (typ, name, isPtr) => { + if (isPtr) { + return (r, ...args) => { + var ptrType = $ptrType(typ); + if (r.constructor != ptrType) { + switch (typ.kind) { + case $kindStruct: + r = $pointerOfStructConversion(r, ptrType); + break; + case $kindArray: + r = new ptrType(r); + break; + default: + r = new ptrType(r.$get, r.$set, r.$target); + } + } + return r[name](...args); + }; + } else { + return (r, ...args) => { + var ptrType = $ptrType(typ); + if (r.constructor != ptrType) { + switch (typ.kind) { + case $kindStruct: + r = $clone(r, typ); + break; + case $kindSlice: + r = $convertSliceType(r, typ); + break; + case $kindComplex64: + case $kindComplex128: + r = new typ(r.$real, r.$imag); + break; + default: + r = new typ(r); + } + } + return r[name](...args); + }; + } +}; +var $id = (x) => { + return x; +}; +var $instanceOf = (x, y) => { + return x instanceof y; +}; +var $typeOf = (x) => { + return typeof x; +}; +var $min = Math.min; +var $mod = (x, y) => { + return x % y; +}; +var $parseInt = parseInt; +var $parseFloat = (f) => { + if (f !== void 0 && f !== null && f.constructor === Number) { + return f; + } + return parseFloat(f); +}; +var $froundBuf = new Float32Array(1); +var $fround = Math.fround || ((f) => { + $froundBuf[0] = f; + return $froundBuf[0]; +}); +var $imul = Math.imul || ((a, b) => { + var ah = a >>> 16 & 65535; + var al = a & 65535; + var bh = b >>> 16 & 65535; + var bl = b & 65535; + return al * bl + (ah * bl + al * bh << 16 >>> 0) >> 0; +}); +var $floatKey = (f) => { + if (f !== f) { + $idCounter++; + return "NaN$" + $idCounter; + } + return String(f); +}; +var $flatten64 = (x) => { + return x.$high * 4294967296 + x.$low; +}; +var $shiftLeft64 = (x, y) => { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high << y | x.$low >>> 32 - y, x.$low << y >>> 0); + } + if (y < 64) { + return new x.constructor(x.$low << y - 32, 0); + } + return new x.constructor(0, 0); +}; +var $shiftRightInt64 = (x, y) => { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high >> y, (x.$low >>> y | x.$high << 32 - y) >>> 0); + } + if (y < 64) { + return new x.constructor(x.$high >> 31, x.$high >> y - 32 >>> 0); + } + if (x.$high < 0) { + return new x.constructor(-1, 4294967295); + } + return new x.constructor(0, 0); +}; +var $shiftRightUint64 = (x, y) => { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high >>> y, (x.$low >>> y | x.$high << 32 - y) >>> 0); + } + if (y < 64) { + return new x.constructor(0, x.$high >>> y - 32); + } + return new x.constructor(0, 0); +}; +var $mul64 = (x, y) => { + var x48 = x.$high >>> 16; + var x32 = x.$high & 65535; + var x16 = x.$low >>> 16; + var x00 = x.$low & 65535; + var y48 = y.$high >>> 16; + var y32 = y.$high & 65535; + var y16 = y.$low >>> 16; + var y00 = y.$low & 65535; + var z48 = 0, z32 = 0, z16 = 0, z00 = 0; + z00 += x00 * y00; + z16 += z00 >>> 16; + z00 &= 65535; + z16 += x16 * y00; + z32 += z16 >>> 16; + z16 &= 65535; + z16 += x00 * y16; + z32 += z16 >>> 16; + z16 &= 65535; + z32 += x32 * y00; + z48 += z32 >>> 16; + z32 &= 65535; + z32 += x16 * y16; + z48 += z32 >>> 16; + z32 &= 65535; + z32 += x00 * y32; + z48 += z32 >>> 16; + z32 &= 65535; + z48 += x48 * y00 + x32 * y16 + x16 * y32 + x00 * y48; + z48 &= 65535; + var hi = (z48 << 16 | z32) >>> 0; + var lo = (z16 << 16 | z00) >>> 0; + var r = new x.constructor(hi, lo); + return r; +}; +var $div64 = (x, y, returnRemainder) => { + if (y.$high === 0 && y.$low === 0) { + $throwRuntimeError("integer divide by zero"); + } + var s = 1; + var rs = 1; + var xHigh = x.$high; + var xLow = x.$low; + if (xHigh < 0) { + s = -1; + rs = -1; + xHigh = -xHigh; + if (xLow !== 0) { + xHigh--; + xLow = 4294967296 - xLow; + } + } + var yHigh = y.$high; + var yLow = y.$low; + if (y.$high < 0) { + s *= -1; + yHigh = -yHigh; + if (yLow !== 0) { + yHigh--; + yLow = 4294967296 - yLow; + } + } + var high = 0, low = 0, n = 0; + while (yHigh < 2147483648 && (xHigh > yHigh || xHigh === yHigh && xLow > yLow)) { + yHigh = (yHigh << 1 | yLow >>> 31) >>> 0; + yLow = yLow << 1 >>> 0; + n++; + } + for (var i = 0; i <= n; i++) { + high = high << 1 | low >>> 31; + low = low << 1 >>> 0; + if (xHigh > yHigh || xHigh === yHigh && xLow >= yLow) { + xHigh = xHigh - yHigh; + xLow = xLow - yLow; + if (xLow < 0) { + xHigh--; + xLow += 4294967296; + } + low++; + if (low === 4294967296) { + high++; + low = 0; + } + } + yLow = (yLow >>> 1 | yHigh << 32 - 1) >>> 0; + yHigh = yHigh >>> 1; + } + if (returnRemainder) { + return new x.constructor(xHigh * rs, xLow * rs); + } + return new x.constructor(high * s, low * s); +}; +var $divComplex = (n, d) => { + var ninf = n.$real === Infinity || n.$real === -Infinity || n.$imag === Infinity || n.$imag === -Infinity; + var dinf = d.$real === Infinity || d.$real === -Infinity || d.$imag === Infinity || d.$imag === -Infinity; + var nnan = !ninf && (n.$real !== n.$real || n.$imag !== n.$imag); + var dnan = !dinf && (d.$real !== d.$real || d.$imag !== d.$imag); + if (nnan || dnan) { + return new n.constructor(NaN, NaN); + } + if (ninf && !dinf) { + return new n.constructor(Infinity, Infinity); + } + if (!ninf && dinf) { + return new n.constructor(0, 0); + } + if (d.$real === 0 && d.$imag === 0) { + if (n.$real === 0 && n.$imag === 0) { + return new n.constructor(NaN, NaN); + } + return new n.constructor(Infinity, Infinity); + } + var a = Math.abs(d.$real); + var b = Math.abs(d.$imag); + if (a <= b) { + var ratio = d.$real / d.$imag; + var denom = d.$real * ratio + d.$imag; + return new n.constructor((n.$real * ratio + n.$imag) / denom, (n.$imag * ratio - n.$real) / denom); + } + var ratio = d.$imag / d.$real; + var denom = d.$imag * ratio + d.$real; + return new n.constructor((n.$imag * ratio + n.$real) / denom, (n.$imag - n.$real * ratio) / denom); +}; +var $kindBool = 1; +var $kindInt = 2; +var $kindInt8 = 3; +var $kindInt16 = 4; +var $kindInt32 = 5; +var $kindInt64 = 6; +var $kindUint = 7; +var $kindUint8 = 8; +var $kindUint16 = 9; +var $kindUint32 = 10; +var $kindUint64 = 11; +var $kindUintptr = 12; +var $kindFloat32 = 13; +var $kindFloat64 = 14; +var $kindComplex64 = 15; +var $kindComplex128 = 16; +var $kindArray = 17; +var $kindChan = 18; +var $kindFunc = 19; +var $kindInterface = 20; +var $kindMap = 21; +var $kindPtr = 22; +var $kindSlice = 23; +var $kindString = 24; +var $kindStruct = 25; +var $kindUnsafePointer = 26; +var $methodSynthesizers = []; +var $addMethodSynthesizer = (f) => { + if ($methodSynthesizers === null) { + f(); + return; + } + $methodSynthesizers.push(f); +}; +var $synthesizeMethods = () => { + $methodSynthesizers.forEach((f) => { + f(); + }); + $methodSynthesizers = null; +}; +var $ifaceKeyFor = (x) => { + if (x === $ifaceNil) { + return "nil"; + } + var c = x.constructor; + return c.string + "$" + c.keyFor(x.$val); +}; +var $identity = (x) => { + return x; +}; +var $typeIDCounter = 0; +var $idKey = (x) => { + if (x.$id === void 0) { + $idCounter++; + x.$id = $idCounter; + } + return String(x.$id); +}; +var $arrayPtrCtor = () => { + return function(array) { + this.$get = () => { + return array; + }; + this.$set = function(v) { + typ.copy(this, v); + }; + this.$val = array; + }; +}; +var $newType = (size, kind, string, named, pkg, exported, constructor) => { + var typ2; + switch (kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindUnsafePointer: + typ2 = function(v) { + this.$val = v; + }; + typ2.wrapped = true; + typ2.keyFor = $identity; + break; + case $kindString: + typ2 = function(v) { + this.$val = v; + }; + typ2.wrapped = true; + typ2.keyFor = (x) => { + return "$" + x; + }; + break; + case $kindFloat32: + case $kindFloat64: + typ2 = function(v) { + this.$val = v; + }; + typ2.wrapped = true; + typ2.keyFor = (x) => { + return $floatKey(x); + }; + break; + case $kindInt64: + typ2 = function(high, low) { + this.$high = high + Math.floor(Math.ceil(low) / 4294967296) >> 0; + this.$low = low >>> 0; + this.$val = this; + }; + typ2.keyFor = (x) => { + return x.$high + "$" + x.$low; + }; + break; + case $kindUint64: + typ2 = function(high, low) { + this.$high = high + Math.floor(Math.ceil(low) / 4294967296) >>> 0; + this.$low = low >>> 0; + this.$val = this; + }; + typ2.keyFor = (x) => { + return x.$high + "$" + x.$low; + }; + break; + case $kindComplex64: + typ2 = function(real, imag) { + this.$real = $fround(real); + this.$imag = $fround(imag); + this.$val = this; + }; + typ2.keyFor = (x) => { + return x.$real + "$" + x.$imag; + }; + break; + case $kindComplex128: + typ2 = function(real, imag) { + this.$real = real; + this.$imag = imag; + this.$val = this; + }; + typ2.keyFor = (x) => { + return x.$real + "$" + x.$imag; + }; + break; + case $kindArray: + typ2 = function(v) { + this.$val = v; + }; + typ2.wrapped = true; + typ2.ptr = $newType(4, $kindPtr, "*" + string, false, "", false, $arrayPtrCtor()); + typ2.init = (elem, len) => { + typ2.elem = elem; + typ2.len = len; + typ2.comparable = elem.comparable; + typ2.keyFor = (x) => { + return Array.prototype.join.call($mapArray(x, (e) => { + return String(elem.keyFor(e)).replace(/\\/g, "\\\\").replace(/\$/g, "\\$"); + }), "$"); + }; + typ2.copy = (dst, src) => { + $copyArray(dst, src, 0, 0, src.length, elem); + }; + typ2.ptr.init(typ2); + Object.defineProperty(typ2.ptr.nil, "nilCheck", { get: $throwNilPointerError }); + }; + break; + case $kindChan: + typ2 = function(v) { + this.$val = v; + }; + typ2.wrapped = true; + typ2.keyFor = $idKey; + typ2.init = (elem, sendOnly, recvOnly) => { + typ2.elem = elem; + typ2.sendOnly = sendOnly; + typ2.recvOnly = recvOnly; + }; + break; + case $kindFunc: + typ2 = function(v) { + this.$val = v; + }; + typ2.wrapped = true; + typ2.init = (params, results, variadic) => { + typ2.params = params; + typ2.results = results; + typ2.variadic = variadic; + typ2.comparable = false; + }; + break; + case $kindInterface: + typ2 = { implementedBy: {}, missingMethodFor: {} }; + typ2.keyFor = $ifaceKeyFor; + typ2.init = (methods) => { + typ2.methods = methods; + methods.forEach((m) => { + $ifaceNil[m.prop] = $throwNilPointerError; + }); + }; + break; + case $kindMap: + typ2 = function(v) { + this.$val = v; + }; + typ2.wrapped = true; + typ2.init = (key, elem) => { + typ2.key = key; + typ2.elem = elem; + typ2.comparable = false; + }; + break; + case $kindPtr: + typ2 = constructor || function(getter, setter, target) { + this.$get = getter; + this.$set = setter; + this.$target = target; + this.$val = this; + }; + typ2.keyFor = $idKey; + typ2.init = (elem) => { + typ2.elem = elem; + typ2.wrapped = elem.kind === $kindArray; + typ2.nil = new typ2($throwNilPointerError, $throwNilPointerError); + }; + break; + case $kindSlice: + typ2 = function(array) { + if (array.constructor !== typ2.nativeArray) { + array = new typ2.nativeArray(array); + } + this.$array = array; + this.$offset = 0; + this.$length = array.length; + this.$capacity = array.length; + this.$val = this; + }; + typ2.init = (elem) => { + typ2.elem = elem; + typ2.comparable = false; + typ2.nativeArray = $nativeArray(elem.kind); + typ2.nil = new typ2([]); + }; + break; + case $kindStruct: + typ2 = function(v) { + this.$val = v; + }; + typ2.wrapped = true; + typ2.ptr = $newType(4, $kindPtr, "*" + string, false, pkg, exported, constructor); + typ2.ptr.elem = typ2; + typ2.ptr.prototype.$get = function() { + return this; + }; + typ2.ptr.prototype.$set = function(v) { + typ2.copy(this, v); + }; + typ2.init = (pkgPath, fields) => { + typ2.pkgPath = pkgPath; + typ2.fields = fields; + fields.forEach((f) => { + if (!f.typ.comparable) { + typ2.comparable = false; + } + }); + typ2.keyFor = (x) => { + var val = x.$val; + return $mapArray(fields, (f) => { + return String(f.typ.keyFor(val[f.prop])).replace(/\\/g, "\\\\").replace(/\$/g, "\\$"); + }).join("$"); + }; + typ2.copy = (dst, src) => { + for (var i = 0; i < fields.length; i++) { + var f = fields[i]; + switch (f.typ.kind) { + case $kindArray: + case $kindStruct: + f.typ.copy(dst[f.prop], src[f.prop]); + continue; + default: + dst[f.prop] = src[f.prop]; + continue; + } + } + }; + var properties = {}; + fields.forEach((f) => { + properties[f.prop] = { get: $throwNilPointerError, set: $throwNilPointerError }; + }); + typ2.ptr.nil = Object.create(constructor.prototype, properties); + typ2.ptr.nil.$val = typ2.ptr.nil; + $addMethodSynthesizer(() => { + var synthesizeMethod = (target, m, f) => { + if (target.prototype[m.prop] !== void 0) { + return; + } + target.prototype[m.prop] = function(...args) { + var v = this.$val[f.prop]; + if (f.typ === $jsObjectPtr) { + v = new $jsObjectPtr(v); + } + if (v.$val === void 0) { + v = new f.typ(v); + } + return v[m.prop](...args); + }; + }; + fields.forEach((f) => { + if (f.embedded) { + $methodSet(f.typ).forEach((m) => { + synthesizeMethod(typ2, m, f); + synthesizeMethod(typ2.ptr, m, f); + }); + $methodSet($ptrType(f.typ)).forEach((m) => { + synthesizeMethod(typ2.ptr, m, f); + }); + } + }); + }); + }; + break; + default: + $panic(new $String("invalid kind: " + kind)); + } + switch (kind) { + case $kindBool: + case $kindMap: + typ2.zero = () => { + return false; + }; + break; + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindUnsafePointer: + case $kindFloat32: + case $kindFloat64: + typ2.zero = () => { + return 0; + }; + break; + case $kindString: + typ2.zero = () => { + return ""; + }; + break; + case $kindInt64: + case $kindUint64: + case $kindComplex64: + case $kindComplex128: + var zero = new typ2(0, 0); + typ2.zero = () => { + return zero; + }; + break; + case $kindPtr: + case $kindSlice: + typ2.zero = () => { + return typ2.nil; + }; + break; + case $kindChan: + typ2.zero = () => { + return $chanNil; + }; + break; + case $kindFunc: + typ2.zero = () => { + return $throwNilPointerError; + }; + break; + case $kindInterface: + typ2.zero = () => { + return $ifaceNil; + }; + break; + case $kindArray: + typ2.zero = () => { + var arrayClass = $nativeArray(typ2.elem.kind); + if (arrayClass !== Array) { + return new arrayClass(typ2.len); + } + var array = new Array(typ2.len); + for (var i = 0; i < typ2.len; i++) { + array[i] = typ2.elem.zero(); + } + return array; + }; + break; + case $kindStruct: + typ2.zero = () => { + return new typ2.ptr(); + }; + break; + default: + $panic(new $String("invalid kind: " + kind)); + } + typ2.id = $typeIDCounter; + $typeIDCounter++; + typ2.size = size; + typ2.kind = kind; + typ2.string = string; + typ2.named = named; + typ2.pkg = pkg; + typ2.exported = exported; + typ2.methods = []; + typ2.methodSetCache = null; + typ2.comparable = true; + return typ2; +}; +var $methodSet = (typ2) => { + if (typ2.methodSetCache !== null) { + return typ2.methodSetCache; + } + var base = {}; + var isPtr = typ2.kind === $kindPtr; + if (isPtr && typ2.elem.kind === $kindInterface) { + typ2.methodSetCache = []; + return []; + } + var current = [{ typ: isPtr ? typ2.elem : typ2, indirect: isPtr }]; + var seen = {}; + while (current.length > 0) { + var next = []; + var mset = []; + current.forEach((e) => { + if (seen[e.typ.string]) { + return; + } + seen[e.typ.string] = true; + if (e.typ.named) { + mset = mset.concat(e.typ.methods); + if (e.indirect) { + mset = mset.concat($ptrType(e.typ).methods); + } + } + switch (e.typ.kind) { + case $kindStruct: + e.typ.fields.forEach((f) => { + if (f.embedded) { + var fTyp = f.typ; + var fIsPtr = fTyp.kind === $kindPtr; + next.push({ typ: fIsPtr ? fTyp.elem : fTyp, indirect: e.indirect || fIsPtr }); + } + }); + break; + case $kindInterface: + mset = mset.concat(e.typ.methods); + break; + } + }); + mset.forEach((m) => { + if (base[m.name] === void 0) { + base[m.name] = m; + } + }); + current = next; + } + typ2.methodSetCache = []; + Object.keys(base).sort().forEach((name) => { + typ2.methodSetCache.push(base[name]); + }); + return typ2.methodSetCache; +}; +var $Bool = $newType(1, $kindBool, "bool", true, "", false, null); +var $Int = $newType(4, $kindInt, "int", true, "", false, null); +var $Int8 = $newType(1, $kindInt8, "int8", true, "", false, null); +var $Int16 = $newType(2, $kindInt16, "int16", true, "", false, null); +var $Int32 = $newType(4, $kindInt32, "int32", true, "", false, null); +var $Int64 = $newType(8, $kindInt64, "int64", true, "", false, null); +var $Uint = $newType(4, $kindUint, "uint", true, "", false, null); +var $Uint8 = $newType(1, $kindUint8, "uint8", true, "", false, null); +var $Uint16 = $newType(2, $kindUint16, "uint16", true, "", false, null); +var $Uint32 = $newType(4, $kindUint32, "uint32", true, "", false, null); +var $Uint64 = $newType(8, $kindUint64, "uint64", true, "", false, null); +var $Uintptr = $newType(4, $kindUintptr, "uintptr", true, "", false, null); +var $Float32 = $newType(4, $kindFloat32, "float32", true, "", false, null); +var $Float64 = $newType(8, $kindFloat64, "float64", true, "", false, null); +var $Complex64 = $newType(8, $kindComplex64, "complex64", true, "", false, null); +var $Complex128 = $newType(16, $kindComplex128, "complex128", true, "", false, null); +var $String = $newType(8, $kindString, "string", true, "", false, null); +var $UnsafePointer = $newType(4, $kindUnsafePointer, "unsafe.Pointer", true, "unsafe", false, null); +var $nativeArray = (elemKind) => { + switch (elemKind) { + case $kindInt: + return Int32Array; + case $kindInt8: + return Int8Array; + case $kindInt16: + return Int16Array; + case $kindInt32: + return Int32Array; + case $kindUint: + return Uint32Array; + case $kindUint8: + return Uint8Array; + case $kindUint16: + return Uint16Array; + case $kindUint32: + return Uint32Array; + case $kindUintptr: + return Uint32Array; + case $kindFloat32: + return Float32Array; + case $kindFloat64: + return Float64Array; + default: + return Array; + } +}; +var $toNativeArray = (elemKind, array) => { + var nativeArray = $nativeArray(elemKind); + if (nativeArray === Array) { + return array; + } + return new nativeArray(array); +}; +var $arrayTypes = {}; +var $arrayType = (elem, len) => { + var typeKey = elem.id + "$" + len; + var typ2 = $arrayTypes[typeKey]; + if (typ2 === void 0) { + typ2 = $newType(elem.size * len, $kindArray, "[" + len + "]" + elem.string, false, "", false, null); + $arrayTypes[typeKey] = typ2; + typ2.init(elem, len); + } + return typ2; +}; +var $chanType = (elem, sendOnly, recvOnly) => { + var string = (recvOnly ? "<-" : "") + "chan" + (sendOnly ? "<- " : " "); + if (!sendOnly && !recvOnly && elem.string[0] == "<") { + string += "(" + elem.string + ")"; + } else { + string += elem.string; + } + var field = sendOnly ? "SendChan" : recvOnly ? "RecvChan" : "Chan"; + var typ2 = elem[field]; + if (typ2 === void 0) { + typ2 = $newType(4, $kindChan, string, false, "", false, null); + elem[field] = typ2; + typ2.init(elem, sendOnly, recvOnly); + } + return typ2; +}; +var $Chan = function(elem, capacity) { + if (capacity < 0 || capacity > 2147483647) { + $throwRuntimeError("makechan: size out of range"); + } + this.$elem = elem; + this.$capacity = capacity; + this.$buffer = []; + this.$sendQueue = []; + this.$recvQueue = []; + this.$closed = false; +}; +var $chanNil = new $Chan(null, 0); +$chanNil.$sendQueue = $chanNil.$recvQueue = { length: 0, push() { +}, shift() { + return void 0; +}, indexOf() { + return -1; +} }; +var $funcTypes = {}; +var $funcType = (params, results, variadic) => { + var typeKey = $mapArray(params, (p) => { + return p.id; + }).join(",") + "$" + $mapArray(results, (r) => { + return r.id; + }).join(",") + "$" + variadic; + var typ2 = $funcTypes[typeKey]; + if (typ2 === void 0) { + var paramTypes = $mapArray(params, (p) => { + return p.string; + }); + if (variadic) { + paramTypes[paramTypes.length - 1] = "..." + paramTypes[paramTypes.length - 1].substring(2); + } + var string = "func(" + paramTypes.join(", ") + ")"; + if (results.length === 1) { + string += " " + results[0].string; + } else if (results.length > 1) { + string += " (" + $mapArray(results, (r) => { + return r.string; + }).join(", ") + ")"; + } + typ2 = $newType(4, $kindFunc, string, false, "", false, null); + $funcTypes[typeKey] = typ2; + typ2.init(params, results, variadic); + } + return typ2; +}; +var $interfaceTypes = {}; +var $interfaceType = (methods) => { + var typeKey = $mapArray(methods, (m) => { + return m.pkg + "," + m.name + "," + m.typ.id; + }).join("$"); + var typ2 = $interfaceTypes[typeKey]; + if (typ2 === void 0) { + var string = "interface {}"; + if (methods.length !== 0) { + string = "interface { " + $mapArray(methods, (m) => { + return (m.pkg !== "" ? m.pkg + "." : "") + m.name + m.typ.string.substring(4); + }).join("; ") + " }"; + } + typ2 = $newType(8, $kindInterface, string, false, "", false, null); + $interfaceTypes[typeKey] = typ2; + typ2.init(methods); + } + return typ2; +}; +var $emptyInterface = $interfaceType([]); +var $ifaceNil = {}; +var $error = $newType(8, $kindInterface, "error", true, "", false, null); +$error.init([{ prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }]); +var $mapTypes = {}; +var $mapType = (key, elem) => { + var typeKey = key.id + "$" + elem.id; + var typ2 = $mapTypes[typeKey]; + if (typ2 === void 0) { + typ2 = $newType(4, $kindMap, "map[" + key.string + "]" + elem.string, false, "", false, null); + $mapTypes[typeKey] = typ2; + typ2.init(key, elem); + } + return typ2; +}; +var $makeMap = (keyForFunc, entries) => { + var m = /* @__PURE__ */ new Map(); + for (var i = 0; i < entries.length; i++) { + var e = entries[i]; + m.set(keyForFunc(e.k), e); + } + return m; +}; +var $ptrType = (elem) => { + var typ2 = elem.ptr; + if (typ2 === void 0) { + typ2 = $newType(4, $kindPtr, "*" + elem.string, false, "", elem.exported, null); + elem.ptr = typ2; + typ2.init(elem); + } + return typ2; +}; +var $newDataPointer = (data, constructor) => { + if (constructor.elem.kind === $kindStruct) { + return data; + } + return new constructor(() => { + return data; + }, (v) => { + data = v; + }); +}; +var $indexPtr = (array, index, constructor) => { + if (array.buffer) { + var cache = array.buffer.$ptr = array.buffer.$ptr || {}; + var typeCache = cache[array.name] = cache[array.name] || {}; + var cacheIdx = array.BYTES_PER_ELEMENT * index + array.byteOffset; + return typeCache[cacheIdx] || (typeCache[cacheIdx] = new constructor(() => { + return array[index]; + }, (v) => { + array[index] = v; + })); + } else { + array.$ptr = array.$ptr || {}; + return array.$ptr[index] || (array.$ptr[index] = new constructor(() => { + return array[index]; + }, (v) => { + array[index] = v; + })); + } +}; +var $sliceType = (elem) => { + var typ2 = elem.slice; + if (typ2 === void 0) { + typ2 = $newType(12, $kindSlice, "[]" + elem.string, false, "", false, null); + elem.slice = typ2; + typ2.init(elem); + } + return typ2; +}; +var $makeSlice = (typ2, length, capacity = length) => { + if (length < 0 || length > 2147483647) { + $throwRuntimeError("makeslice: len out of range"); + } + if (capacity < 0 || capacity < length || capacity > 2147483647) { + $throwRuntimeError("makeslice: cap out of range"); + } + var array = new typ2.nativeArray(capacity); + if (typ2.nativeArray === Array) { + for (var i = 0; i < capacity; i++) { + array[i] = typ2.elem.zero(); + } + } + var slice = new typ2(array); + slice.$length = length; + return slice; +}; +var $structTypes = {}; +var $structType = (pkgPath, fields) => { + var typeKey = $mapArray(fields, (f) => { + return f.name + "," + f.typ.id + "," + f.tag; + }).join("$"); + var typ2 = $structTypes[typeKey]; + if (typ2 === void 0) { + var string = "struct { " + $mapArray(fields, (f) => { + var str = f.typ.string + (f.tag !== "" ? ' "' + f.tag.replace(/\\/g, "\\\\").replace(/"/g, '\\"') + '"' : ""); + if (f.embedded) { + return str; + } + return f.name + " " + str; + }).join("; ") + " }"; + if (fields.length === 0) { + string = "struct {}"; + } + typ2 = $newType(0, $kindStruct, string, false, "", false, function(...args) { + this.$val = this; + for (var i = 0; i < fields.length; i++) { + var f = fields[i]; + if (f.name == "_") { + continue; + } + var arg = args[i]; + this[f.prop] = arg !== void 0 ? arg : f.typ.zero(); + } + }); + $structTypes[typeKey] = typ2; + typ2.init(pkgPath, fields); + } + return typ2; +}; +var $assertType = (value, type, returnTuple) => { + var isInterface = type.kind === $kindInterface, ok, missingMethod = ""; + if (value === $ifaceNil) { + ok = false; + } else if (!isInterface) { + ok = value.constructor === type; + } else { + var valueTypeString = value.constructor.string; + ok = type.implementedBy[valueTypeString]; + if (ok === void 0) { + ok = true; + var valueMethodSet = $methodSet(value.constructor); + var interfaceMethods = type.methods; + for (var i = 0; i < interfaceMethods.length; i++) { + var tm = interfaceMethods[i]; + var found = false; + for (var j = 0; j < valueMethodSet.length; j++) { + var vm = valueMethodSet[j]; + if (vm.name === tm.name && vm.pkg === tm.pkg && vm.typ === tm.typ) { + found = true; + break; + } + } + if (!found) { + ok = false; + type.missingMethodFor[valueTypeString] = tm.name; + break; + } + } + type.implementedBy[valueTypeString] = ok; + } + if (!ok) { + missingMethod = type.missingMethodFor[valueTypeString]; + } + } + if (!ok) { + if (returnTuple) { + return [type.zero(), false]; + } + $panic(new $packages["runtime"].TypeAssertionError.ptr( + $packages["runtime"]._type.ptr.nil, + value === $ifaceNil ? $packages["runtime"]._type.ptr.nil : new $packages["runtime"]._type.ptr(value.constructor.string), + new $packages["runtime"]._type.ptr(type.string), + missingMethod + )); + } + if (!isInterface) { + value = value.$val; + } + if (type === $jsObjectPtr) { + value = value.object; + } + return returnTuple ? [value, true] : value; +}; +var $stackDepthOffset = 0; +var $getStackDepth = () => { + var err = new Error(); + if (err.stack === void 0) { + return void 0; + } + return $stackDepthOffset + err.stack.split("\n").length; +}; +var $panicStackDepth = null, $panicValue; +var $callDeferred = (deferred, jsErr, fromPanic) => { + if (!fromPanic && deferred !== null && $curGoroutine.deferStack.indexOf(deferred) == -1) { + throw jsErr; + } + if (jsErr !== null) { + var newErr = null; + try { + $panic(new $jsErrorPtr(jsErr)); + } catch (err) { + newErr = err; + } + $callDeferred(deferred, newErr); + return; + } + if ($curGoroutine.asleep) { + return; + } + $stackDepthOffset--; + var outerPanicStackDepth = $panicStackDepth; + var outerPanicValue = $panicValue; + var localPanicValue = $curGoroutine.panicStack.pop(); + if (localPanicValue !== void 0) { + $panicStackDepth = $getStackDepth(); + $panicValue = localPanicValue; + } + try { + while (true) { + if (deferred === null) { + deferred = $curGoroutine.deferStack[$curGoroutine.deferStack.length - 1]; + if (deferred === void 0) { + $panicStackDepth = null; + if (localPanicValue.Object instanceof Error) { + throw localPanicValue.Object; + } + var msg; + if (localPanicValue.constructor === $String) { + msg = localPanicValue.$val; + } else if (localPanicValue.Error !== void 0) { + msg = localPanicValue.Error(); + } else if (localPanicValue.String !== void 0) { + msg = localPanicValue.String(); + } else { + msg = localPanicValue; + } + throw new Error(msg); + } + } + var call = deferred.pop(); + if (call === void 0) { + $curGoroutine.deferStack.pop(); + if (localPanicValue !== void 0) { + deferred = null; + continue; + } + return; + } + var r = call[0].apply(call[2], call[1]); + if (r && r.$blk !== void 0) { + deferred.push([r.$blk, [], r]); + if (fromPanic) { + throw null; + } + return; + } + if (localPanicValue !== void 0 && $panicStackDepth === null) { + if (fromPanic) { + throw null; + } + return; + } + } + } catch (e) { + if (fromPanic) { + throw e; + } + $callDeferred(deferred, e, fromPanic); + } finally { + if (localPanicValue !== void 0) { + if ($panicStackDepth !== null) { + $curGoroutine.panicStack.push(localPanicValue); + } + $panicStackDepth = outerPanicStackDepth; + $panicValue = outerPanicValue; + } + $stackDepthOffset++; + } +}; +var $panic = (value) => { + $curGoroutine.panicStack.push(value); + $callDeferred(null, null, true); +}; +var $recover = () => { + if ($panicStackDepth === null || $panicStackDepth !== void 0 && $panicStackDepth !== $getStackDepth() - 2) { + return $ifaceNil; + } + $panicStackDepth = null; + return $panicValue; +}; +var $throw = (err) => { + throw err; +}; +var $noGoroutine = { asleep: false, exit: false, deferStack: [], panicStack: [] }; +var $curGoroutine = $noGoroutine, $totalGoroutines = 0, $awakeGoroutines = 0, $checkForDeadlock = true, $exportedFunctions = 0; +var $mainFinished = false; +var $go = (fun, args) => { + $totalGoroutines++; + $awakeGoroutines++; + var $goroutine = () => { + try { + $curGoroutine = $goroutine; + var r = fun(...args); + if (r && r.$blk !== void 0) { + fun = () => { + return r.$blk(); + }; + args = []; + return; + } + $goroutine.exit = true; + } catch (err) { + if (!$goroutine.exit) { + throw err; + } + } finally { + $curGoroutine = $noGoroutine; + if ($goroutine.exit) { + $totalGoroutines--; + $goroutine.asleep = true; + } + if ($goroutine.asleep) { + $awakeGoroutines--; + if (!$mainFinished && $awakeGoroutines === 0 && $checkForDeadlock && $exportedFunctions === 0) { + console.error("fatal error: all goroutines are asleep - deadlock!"); + if ($global.process !== void 0) { + $global.process.exit(2); + } + } + } + } + }; + $goroutine.asleep = false; + $goroutine.exit = false; + $goroutine.deferStack = []; + $goroutine.panicStack = []; + $schedule($goroutine); +}; +var $scheduled = []; +var $runScheduled = () => { + var nextRun = setTimeout($runScheduled); + try { + var start = Date.now(); + var r; + while ((r = $scheduled.shift()) !== void 0) { + r(); + var elapsed = Date.now() - start; + if (elapsed > 4 || elapsed < 0) { + break; + } + } + } finally { + if ($scheduled.length == 0) { + clearTimeout(nextRun); + } + } +}; +var $schedule = (goroutine) => { + if (goroutine.asleep) { + goroutine.asleep = false; + $awakeGoroutines++; + } + $scheduled.push(goroutine); + if ($curGoroutine === $noGoroutine) { + $runScheduled(); + } +}; +var $setTimeout = (f, t) => { + $awakeGoroutines++; + return setTimeout(() => { + $awakeGoroutines--; + f(); + }, t); +}; +var $block = () => { + if ($curGoroutine === $noGoroutine) { + $throwRuntimeError("cannot block in JavaScript callback, fix by wrapping code in goroutine"); + } + $curGoroutine.asleep = true; +}; +var $restore = (context, params) => { + if (context !== void 0 && context.$blk !== void 0) { + return context; + } + return params; +}; +var $send = (chan, value) => { + if (chan.$closed) { + $throwRuntimeError("send on closed channel"); + } + var queuedRecv = chan.$recvQueue.shift(); + if (queuedRecv !== void 0) { + queuedRecv([value, true]); + return; + } + if (chan.$buffer.length < chan.$capacity) { + chan.$buffer.push(value); + return; + } + var thisGoroutine = $curGoroutine; + var closedDuringSend; + chan.$sendQueue.push((closed) => { + closedDuringSend = closed; + $schedule(thisGoroutine); + return value; + }); + $block(); + return { + $blk() { + if (closedDuringSend) { + $throwRuntimeError("send on closed channel"); + } + } + }; +}; +var $recv = (chan) => { + var queuedSend = chan.$sendQueue.shift(); + if (queuedSend !== void 0) { + chan.$buffer.push(queuedSend(false)); + } + var bufferedValue = chan.$buffer.shift(); + if (bufferedValue !== void 0) { + return [bufferedValue, true]; + } + if (chan.$closed) { + return [chan.$elem.zero(), false]; + } + var thisGoroutine = $curGoroutine; + var f = { $blk() { + return this.value; + } }; + var queueEntry = (v) => { + f.value = v; + $schedule(thisGoroutine); + }; + chan.$recvQueue.push(queueEntry); + $block(); + return f; +}; +var $close = (chan) => { + if (chan.$closed) { + $throwRuntimeError("close of closed channel"); + } + chan.$closed = true; + while (true) { + var queuedSend = chan.$sendQueue.shift(); + if (queuedSend === void 0) { + break; + } + queuedSend(true); + } + while (true) { + var queuedRecv = chan.$recvQueue.shift(); + if (queuedRecv === void 0) { + break; + } + queuedRecv([chan.$elem.zero(), false]); + } +}; +var $select = (comms) => { + var ready = []; + var selection = -1; + for (var i = 0; i < comms.length; i++) { + var comm = comms[i]; + var chan = comm[0]; + switch (comm.length) { + case 0: + selection = i; + break; + case 1: + if (chan.$sendQueue.length !== 0 || chan.$buffer.length !== 0 || chan.$closed) { + ready.push(i); + } + break; + case 2: + if (chan.$closed) { + $throwRuntimeError("send on closed channel"); + } + if (chan.$recvQueue.length !== 0 || chan.$buffer.length < chan.$capacity) { + ready.push(i); + } + break; + } + } + if (ready.length !== 0) { + selection = ready[Math.floor(Math.random() * ready.length)]; + } + if (selection !== -1) { + var comm = comms[selection]; + switch (comm.length) { + case 0: + return [selection]; + case 1: + return [selection, $recv(comm[0])]; + case 2: + $send(comm[0], comm[1]); + return [selection]; + } + } + var entries = []; + var thisGoroutine = $curGoroutine; + var f = { $blk() { + return this.selection; + } }; + var removeFromQueues = () => { + for (var i2 = 0; i2 < entries.length; i2++) { + var entry = entries[i2]; + var queue = entry[0]; + var index = queue.indexOf(entry[1]); + if (index !== -1) { + queue.splice(index, 1); + } + } + }; + for (var i = 0; i < comms.length; i++) { + ((i2) => { + var comm2 = comms[i2]; + switch (comm2.length) { + case 1: + var queueEntry = (value) => { + f.selection = [i2, value]; + removeFromQueues(); + $schedule(thisGoroutine); + }; + entries.push([comm2[0].$recvQueue, queueEntry]); + comm2[0].$recvQueue.push(queueEntry); + break; + case 2: + var queueEntry = () => { + if (comm2[0].$closed) { + $throwRuntimeError("send on closed channel"); + } + f.selection = [i2]; + removeFromQueues(); + $schedule(thisGoroutine); + return comm2[1]; + }; + entries.push([comm2[0].$sendQueue, queueEntry]); + comm2[0].$sendQueue.push(queueEntry); + break; + } + })(i); + } + $block(); + return f; +}; +var $jsObjectPtr, $jsErrorPtr; +var $needsExternalization = (t) => { + switch (t.kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindFloat32: + case $kindFloat64: + return false; + default: + return t !== $jsObjectPtr; + } +}; +var $externalize = (v, t, makeWrapper) => { + if (t === $jsObjectPtr) { + return v; + } + switch (t.kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindFloat32: + case $kindFloat64: + return v; + case $kindInt64: + case $kindUint64: + return $flatten64(v); + case $kindArray: + if ($needsExternalization(t.elem)) { + return $mapArray(v, (e) => { + return $externalize(e, t.elem, makeWrapper); + }); + } + return v; + case $kindFunc: + return $externalizeFunction(v, t, false, makeWrapper); + case $kindInterface: + if (v === $ifaceNil) { + return null; + } + if (v.constructor === $jsObjectPtr) { + return v.$val.object; + } + return $externalize(v.$val, v.constructor, makeWrapper); + case $kindMap: + if (v.keys === void 0) { + return null; + } + var m = {}; + var keys = Array.from(v.keys()); + for (var i = 0; i < keys.length; i++) { + var entry = v.get(keys[i]); + m[$externalize(entry.k, t.key, makeWrapper)] = $externalize(entry.v, t.elem, makeWrapper); + } + return m; + case $kindPtr: + if (v === t.nil) { + return null; + } + return $externalize(v.$get(), t.elem, makeWrapper); + case $kindSlice: + if (v === v.constructor.nil) { + return null; + } + if ($needsExternalization(t.elem)) { + return $mapArray($sliceToNativeArray(v), (e) => { + return $externalize(e, t.elem, makeWrapper); + }); + } + return $sliceToNativeArray(v); + case $kindString: + if ($isASCII(v)) { + return v; + } + var s = "", r; + for (var i = 0; i < v.length; i += r[1]) { + r = $decodeRune(v, i); + var c = r[0]; + if (c > 65535) { + var h = Math.floor((c - 65536) / 1024) + 55296; + var l = (c - 65536) % 1024 + 56320; + s += String.fromCharCode(h, l); + continue; + } + s += String.fromCharCode(c); + } + return s; + case $kindStruct: + var timePkg = $packages["time"]; + if (timePkg !== void 0 && v.constructor === timePkg.Time.ptr) { + var milli = $div64(v.UnixNano(), new $Int64(0, 1e6)); + return new Date($flatten64(milli)); + } + var noJsObject = {}; + var searchJsObject = (v2, t2) => { + if (t2 === $jsObjectPtr) { + return v2; + } + switch (t2.kind) { + case $kindPtr: + if (v2 === t2.nil) { + return noJsObject; + } + return searchJsObject(v2.$get(), t2.elem); + case $kindStruct: + if (t2.fields.length === 0) { + return noJsObject; + } + var f2 = t2.fields[0]; + return searchJsObject(v2[f2.prop], f2.typ); + case $kindInterface: + return searchJsObject(v2.$val, v2.constructor); + default: + return noJsObject; + } + }; + var o = searchJsObject(v, t); + if (o !== noJsObject) { + return o; + } + if (makeWrapper !== void 0) { + return makeWrapper(v); + } + o = {}; + for (var i = 0; i < t.fields.length; i++) { + var f = t.fields[i]; + if (!f.exported) { + continue; + } + o[f.name] = $externalize(v[f.prop], f.typ, makeWrapper); + } + return o; + } + $throwRuntimeError("cannot externalize " + t.string); +}; +var $externalizeFunction = (v, t, passThis, makeWrapper) => { + if (v === $throwNilPointerError) { + return null; + } + if (v.$externalizeWrapper === void 0) { + $checkForDeadlock = false; + v.$externalizeWrapper = function() { + var args = []; + for (var i = 0; i < t.params.length; i++) { + if (t.variadic && i === t.params.length - 1) { + var vt = t.params[i].elem, varargs = []; + for (var j = i; j < arguments.length; j++) { + varargs.push($internalize(arguments[j], vt, makeWrapper)); + } + args.push(new t.params[i](varargs)); + break; + } + args.push($internalize(arguments[i], t.params[i], makeWrapper)); + } + var result = v.apply(passThis ? this : void 0, args); + switch (t.results.length) { + case 0: + return; + case 1: + return $externalize($copyIfRequired(result, t.results[0]), t.results[0], makeWrapper); + default: + for (var i = 0; i < t.results.length; i++) { + result[i] = $externalize($copyIfRequired(result[i], t.results[i]), t.results[i], makeWrapper); + } + return result; + } + }; + } + return v.$externalizeWrapper; +}; +var $internalize = (v, t, recv, seen, makeWrapper) => { + if (t === $jsObjectPtr) { + return v; + } + if (t === $jsObjectPtr.elem) { + $throwRuntimeError("cannot internalize js.Object, use *js.Object instead"); + } + if (v && v.__internal_object__ !== void 0) { + return $assertType(v.__internal_object__, t, false); + } + var timePkg = $packages["time"]; + if (timePkg !== void 0 && t === timePkg.Time) { + if (!(v !== null && v !== void 0 && v.constructor === Date)) { + $throwRuntimeError("cannot internalize time.Time from " + typeof v + ", must be Date"); + } + return timePkg.Unix(new $Int64(0, 0), new $Int64(0, v.getTime() * 1e6)); + } + if (seen === void 0) { + seen = /* @__PURE__ */ new Map(); + } + if (!seen.has(t)) { + seen.set(t, /* @__PURE__ */ new Map()); + } + if (seen.get(t).has(v)) { + return seen.get(t).get(v); + } + switch (t.kind) { + case $kindBool: + return !!v; + case $kindInt: + return parseInt(v); + case $kindInt8: + return parseInt(v) << 24 >> 24; + case $kindInt16: + return parseInt(v) << 16 >> 16; + case $kindInt32: + return parseInt(v) >> 0; + case $kindUint: + return parseInt(v); + case $kindUint8: + return parseInt(v) << 24 >>> 24; + case $kindUint16: + return parseInt(v) << 16 >>> 16; + case $kindUint32: + case $kindUintptr: + return parseInt(v) >>> 0; + case $kindInt64: + case $kindUint64: + return new t(0, v); + case $kindFloat32: + case $kindFloat64: + return parseFloat(v); + case $kindArray: + if (v === null || v === void 0) { + $throwRuntimeError("cannot internalize " + v + " as a " + t.string); + } + if (v.length !== t.len) { + $throwRuntimeError("got array with wrong size from JavaScript native"); + } + return $mapArray(v, (e) => { + return $internalize(e, t.elem, makeWrapper); + }); + case $kindFunc: + return function() { + var args = []; + for (var i2 = 0; i2 < t.params.length; i2++) { + if (t.variadic && i2 === t.params.length - 1) { + var vt = t.params[i2].elem, varargs = arguments[i2]; + for (var j = 0; j < varargs.$length; j++) { + args.push($externalize(varargs.$array[varargs.$offset + j], vt, makeWrapper)); + } + break; + } + args.push($externalize(arguments[i2], t.params[i2], makeWrapper)); + } + var result = v.apply(recv, args); + switch (t.results.length) { + case 0: + return; + case 1: + return $internalize(result, t.results[0], makeWrapper); + default: + for (var i2 = 0; i2 < t.results.length; i2++) { + result[i2] = $internalize(result[i2], t.results[i2], makeWrapper); + } + return result; + } + }; + case $kindInterface: + if (t.methods.length !== 0) { + $throwRuntimeError("cannot internalize " + t.string); + } + if (v === null) { + return $ifaceNil; + } + if (v === void 0) { + return new $jsObjectPtr(void 0); + } + switch (v.constructor) { + case Int8Array: + return new ($sliceType($Int8))(v); + case Int16Array: + return new ($sliceType($Int16))(v); + case Int32Array: + return new ($sliceType($Int))(v); + case Uint8Array: + return new ($sliceType($Uint8))(v); + case Uint16Array: + return new ($sliceType($Uint16))(v); + case Uint32Array: + return new ($sliceType($Uint))(v); + case Float32Array: + return new ($sliceType($Float32))(v); + case Float64Array: + return new ($sliceType($Float64))(v); + case Array: + return $internalize(v, $sliceType($emptyInterface), makeWrapper); + case Boolean: + return new $Bool(!!v); + case Date: + if (timePkg === void 0) { + return new $jsObjectPtr(v); + } + return new timePkg.Time($internalize(v, timePkg.Time, makeWrapper)); + case (() => { + }).constructor: + var funcType = $funcType([$sliceType($emptyInterface)], [$jsObjectPtr], true); + return new funcType($internalize(v, funcType, makeWrapper)); + case Number: + return new $Float64(parseFloat(v)); + case String: + return new $String($internalize(v, $String, makeWrapper)); + default: + if ($global.Node && v instanceof $global.Node) { + return new $jsObjectPtr(v); + } + var mapType = $mapType($String, $emptyInterface); + return new mapType($internalize(v, mapType, recv, seen, makeWrapper)); + } + case $kindMap: + var m = /* @__PURE__ */ new Map(); + seen.get(t).set(v, m); + var keys = $keys(v); + for (var i = 0; i < keys.length; i++) { + var k = $internalize(keys[i], t.key, recv, seen, makeWrapper); + m.set(t.key.keyFor(k), { k, v: $internalize(v[keys[i]], t.elem, recv, seen, makeWrapper) }); + } + return m; + case $kindPtr: + if (t.elem.kind === $kindStruct) { + return $internalize(v, t.elem, makeWrapper); + } + case $kindSlice: + if (v == null) { + return t.zero(); + } + return new t($mapArray(v, (e) => { + return $internalize(e, t.elem, makeWrapper); + })); + case $kindString: + v = String(v); + if ($isASCII(v)) { + return v; + } + var s = ""; + var i = 0; + while (i < v.length) { + var h = v.charCodeAt(i); + if (55296 <= h && h <= 56319) { + var l = v.charCodeAt(i + 1); + var c = (h - 55296) * 1024 + l - 56320 + 65536; + s += $encodeRune(c); + i += 2; + continue; + } + s += $encodeRune(h); + i++; + } + return s; + case $kindStruct: + var noJsObject = {}; + var searchJsObject = (t2) => { + if (t2 === $jsObjectPtr) { + return v; + } + if (t2 === $jsObjectPtr.elem) { + $throwRuntimeError("cannot internalize js.Object, use *js.Object instead"); + } + switch (t2.kind) { + case $kindPtr: + return searchJsObject(t2.elem); + case $kindStruct: + if (t2.fields.length === 0) { + return noJsObject; + } + var f2 = t2.fields[0]; + var o2 = searchJsObject(f2.typ); + if (o2 !== noJsObject) { + var n2 = new t2.ptr(); + n2[f2.prop] = o2; + return n2; + } + return noJsObject; + default: + return noJsObject; + } + }; + var o = searchJsObject(t); + if (o !== noJsObject) { + return o; + } + var n = new t.ptr(); + for (var i = 0; i < t.fields.length; i++) { + var f = t.fields[i]; + if (!f.exported) { + continue; + } + var jsProp = v[f.name]; + n[f.prop] = $internalize(jsProp, f.typ, recv, seen, makeWrapper); + } + return n; + } + $throwRuntimeError("cannot internalize " + t.string); +}; +var $copyIfRequired = (v, typ) => { + if (v && v.constructor && v.constructor.copy) { + return new v.constructor($clone(v.$val, v.constructor)); + } + if (typ.copy) { + var clone = typ.zero(); + typ.copy(clone, v); + return clone; + } + return v; +}; +var $isASCII = (s) => { + for (var i = 0; i < s.length; i++) { + if (s.charCodeAt(i) >= 128) { + return false; + } + } + return true; +}; -$packages["github.com/gopherjs/gopherjs/js"]=(function(){var $pkg={},$init,A,B,J,K,M,N,O,S,T,E,F,L;A=$pkg.Object=$newType(0,$kindStruct,"js.Object",true,"github.com/gopherjs/gopherjs/js",true,function(object_){this.$val=this;if(arguments.length===0){this.object=null;return;}this.object=object_;});B=$pkg.Error=$newType(0,$kindStruct,"js.Error",true,"github.com/gopherjs/gopherjs/js",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});J=$pkg.M=$newType(4,$kindMap,"js.M",true,"github.com/gopherjs/gopherjs/js",true,null);K=$pkg.S=$newType(12,$kindSlice,"js.S",true,"github.com/gopherjs/gopherjs/js",true,null);M=$sliceType($emptyInterface);N=$sliceType($String);O=$ptrType(A);S=$funcType([O],[],false);T=$ptrType(B);A.ptr.prototype.Get=function(a){var a,b;b=this;return b.object[$externalize(a,$String)];};A.prototype.Get=function(a){return this.$val.Get(a);};A.ptr.prototype.Set=function(a,b){var a,b,c;c=this;c.object[$externalize(a,$String)]=$externalize(b,$emptyInterface);};A.prototype.Set=function(a,b){return this.$val.Set(a,b);};A.ptr.prototype.Delete=function(a){var a,b;b=this;delete b.object[$externalize(a,$String)];};A.prototype.Delete=function(a){return this.$val.Delete(a);};A.ptr.prototype.Length=function(){var a;a=this;return $parseInt(a.object.length);};A.prototype.Length=function(){return this.$val.Length();};A.ptr.prototype.Index=function(a){var a,b;b=this;return b.object[a];};A.prototype.Index=function(a){return this.$val.Index(a);};A.ptr.prototype.SetIndex=function(a,b){var a,b,c;c=this;c.object[a]=$externalize(b,$emptyInterface);};A.prototype.SetIndex=function(a,b){return this.$val.SetIndex(a,b);};A.ptr.prototype.Call=function(a,b){var a,b,c,d;c=this;return(d=c.object,d[$externalize(a,$String)].apply(d,$externalize(b,M)));};A.prototype.Call=function(a,b){return this.$val.Call(a,b);};A.ptr.prototype.Invoke=function(a){var a,b;b=this;return b.object.apply(undefined,$externalize(a,M));};A.prototype.Invoke=function(a){return this.$val.Invoke(a);};A.ptr.prototype.New=function(a){var a,b;b=this;return new($global.Function.prototype.bind.apply(b.object,[undefined].concat($externalize(a,M))));};A.prototype.New=function(a){return this.$val.New(a);};A.ptr.prototype.Bool=function(){var a;a=this;return!!(a.object);};A.prototype.Bool=function(){return this.$val.Bool();};A.ptr.prototype.String=function(){var a;a=this;return $internalize(a.object,$String);};A.prototype.String=function(){return this.$val.String();};A.ptr.prototype.Int=function(){var a;a=this;return $parseInt(a.object)>>0;};A.prototype.Int=function(){return this.$val.Int();};A.ptr.prototype.Int64=function(){var a;a=this;return $internalize(a.object,$Int64);};A.prototype.Int64=function(){return this.$val.Int64();};A.ptr.prototype.Uint64=function(){var a;a=this;return $internalize(a.object,$Uint64);};A.prototype.Uint64=function(){return this.$val.Uint64();};A.ptr.prototype.Float=function(){var a;a=this;return $parseFloat(a.object);};A.prototype.Float=function(){return this.$val.Float();};A.ptr.prototype.Interface=function(){var a;a=this;return $internalize(a.object,$emptyInterface);};A.prototype.Interface=function(){return this.$val.Interface();};A.ptr.prototype.Unsafe=function(){var a;a=this;return a.object;};A.prototype.Unsafe=function(){return this.$val.Unsafe();};B.ptr.prototype.Error=function(){var a;a=this;return"JavaScript error: "+$internalize(a.Object.message,$String);};B.prototype.Error=function(){return this.$val.Error();};B.ptr.prototype.Stack=function(){var a;a=this;return $internalize(a.Object.stack,$String);};B.prototype.Stack=function(){return this.$val.Stack();};E=function(a){var a;return $makeFunc(a);};$pkg.MakeFunc=E;F=function(a){var a,b,c,d;if(a===null||a===undefined){return N.nil;}b=$global.Object.keys(a);c=$makeSlice(N,$parseInt(b.length));d=0;while(true){if(!(d<$parseInt(b.length))){break;}((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=$internalize(b[d],$String));d=d+(1)>>0;}return c;};$pkg.Keys=F;L=function(){var a;a=new B.ptr(null);$unused(a);};O.methods=[{prop:"Get",name:"Get",pkg:"",typ:$funcType([$String],[O],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([$String,$emptyInterface],[],false)},{prop:"Delete",name:"Delete",pkg:"",typ:$funcType([$String],[],false)},{prop:"Length",name:"Length",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Index",name:"Index",pkg:"",typ:$funcType([$Int],[O],false)},{prop:"SetIndex",name:"SetIndex",pkg:"",typ:$funcType([$Int,$emptyInterface],[],false)},{prop:"Call",name:"Call",pkg:"",typ:$funcType([$String,M],[O],true)},{prop:"Invoke",name:"Invoke",pkg:"",typ:$funcType([M],[O],true)},{prop:"New",name:"New",pkg:"",typ:$funcType([M],[O],true)},{prop:"Bool",name:"Bool",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Int",name:"Int",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Int64",name:"Int64",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Uint64",name:"Uint64",pkg:"",typ:$funcType([],[$Uint64],false)},{prop:"Float",name:"Float",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Interface",name:"Interface",pkg:"",typ:$funcType([],[$emptyInterface],false)},{prop:"Unsafe",name:"Unsafe",pkg:"",typ:$funcType([],[$Uintptr],false)}];T.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Stack",name:"Stack",pkg:"",typ:$funcType([],[$String],false)}];A.init("github.com/gopherjs/gopherjs/js",[{prop:"object",name:"object",embedded:false,exported:false,typ:O,tag:""}]);B.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:O,tag:""}]);J.init($String,$emptyInterface);K.init($emptyInterface);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:L();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["runtime"]=(function(){var $pkg={},$init,A,C,D,L,U,V,AF,AT,AX,AY,AZ,BA,BB,BC,BD,BE,H,I,N,O,AM,E,F,J,K,M,P,Q,R,S,T,AE,AG,AJ,AN,AS,AU,AV,AW;A=$packages["github.com/gopherjs/gopherjs/js"];C=$pkg._type=$newType(0,$kindStruct,"runtime._type",true,"runtime",false,function(str_){this.$val=this;if(arguments.length===0){this.str="";return;}this.str=str_;});D=$pkg.TypeAssertionError=$newType(0,$kindStruct,"runtime.TypeAssertionError",true,"runtime",true,function(_interface_,concrete_,asserted_,missingMethod_){this.$val=this;if(arguments.length===0){this._interface=AZ.nil;this.concrete=AZ.nil;this.asserted=AZ.nil;this.missingMethod="";return;}this._interface=_interface_;this.concrete=concrete_;this.asserted=asserted_;this.missingMethod=missingMethod_;});L=$pkg.basicFrame=$newType(0,$kindStruct,"runtime.basicFrame",true,"runtime",false,function(FuncName_,File_,Line_,Col_){this.$val=this;if(arguments.length===0){this.FuncName="";this.File="";this.Line=0;this.Col=0;return;}this.FuncName=FuncName_;this.File=File_;this.Line=Line_;this.Col=Col_;});U=$pkg.Frames=$newType(0,$kindStruct,"runtime.Frames",true,"runtime",true,function(frames_,current_){this.$val=this;if(arguments.length===0){this.frames=BC.nil;this.current=0;return;}this.frames=frames_;this.current=current_;});V=$pkg.Frame=$newType(0,$kindStruct,"runtime.Frame",true,"runtime",true,function(PC_,Func_,Function_,File_,Line_,Entry_){this.$val=this;if(arguments.length===0){this.PC=0;this.Func=AX.nil;this.Function="";this.File="";this.Line=0;this.Entry=0;return;}this.PC=PC_;this.Func=Func_;this.Function=Function_;this.File=File_;this.Line=Line_;this.Entry=Entry_;});AF=$pkg.Func=$newType(0,$kindStruct,"runtime.Func",true,"runtime",true,function(name_,file_,line_,opaque_){this.$val=this;if(arguments.length===0){this.name="";this.file="";this.line=0;this.opaque=new BA.ptr();return;}this.name=name_;this.file=file_;this.line=line_;this.opaque=opaque_;});AT=$pkg.errorString=$newType(8,$kindString,"runtime.errorString",true,"runtime",false,null);AX=$ptrType(AF);AY=$sliceType(AX);AZ=$ptrType(C);BA=$structType("",[]);BB=$sliceType(L);BC=$sliceType(V);BD=$ptrType(D);BE=$ptrType(U);C.ptr.prototype.string=function(){var a;a=this;return a.str;};C.prototype.string=function(){return this.$val.string();};C.ptr.prototype.pkgpath=function(){var a;a=this;return"";};C.prototype.pkgpath=function(){return this.$val.pkgpath();};D.ptr.prototype.RuntimeError=function(){};D.prototype.RuntimeError=function(){return this.$val.RuntimeError();};D.ptr.prototype.Error=function(){var a,b,c,d,e;a=this;b="interface";if(!(a._interface===AZ.nil)){b=a._interface.string();}c=a.asserted.string();if(a.concrete===AZ.nil){return"interface conversion: "+b+" is nil, not "+c;}d=a.concrete.string();if(a.missingMethod===""){e="interface conversion: "+b+" is "+d+", not "+c;if(d===c){if(!(a.concrete.pkgpath()===a.asserted.pkgpath())){e=e+(" (types from different packages)");}else{e=e+(" (types from different scopes)");}}return e;}return"interface conversion: "+d+" is not "+c+": missing method "+a.missingMethod;};D.prototype.Error=function(){return this.$val.Error();};E=function(){var a,b;a=$packages[$externalize("github.com/gopherjs/gopherjs/js",$String)];$jsObjectPtr=a.Object.ptr;$jsErrorPtr=a.Error.ptr;$throwRuntimeError=AU;AM=$internalize($goVersion,$String);b=$ifaceNil;b=new D.ptr(AZ.nil,AZ.nil,AZ.nil,"");$unused(b);};F=function(){var a,b,c;a=$global.process;if(a===undefined){return"/";}b=a.env.GOPHERJS_GOROOT;if(!(b===undefined)&&!($internalize(b,$String)==="")){return $internalize(b,$String);}else{c=a.env.GOROOT;if(!(c===undefined)&&!($internalize(c,$String)==="")){return $internalize(c,$String);}}return"/usr/local/go";};$pkg.GOROOT=F;J=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,k,l;e=b+":"+K(c)+":"+K(d);f=(g=$mapIndex(H,$String.keyFor(e)),g!==undefined?[g.v,true]:[0,false]);h=f[0];i=f[1];if(i){return h;}j=new AF.ptr(a,b,c,new BA.ptr());k=((I.$length>>>0));I=$append(I,j);l=e;(H||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(l),{k:l,v:k});return k;};K=function(a){var a;return $internalize(new($global.String)(a),$String);};M=function(a,b){var a,b,c;a=(a+1>>0)+1>>0;c=new($global.Error)().stack.split($externalize("\n",$String)).slice(a,a+b>>0);return P(c);};P=function(a){var a,b,c,d,e,f,g,h,i,j;b=new BB([]);c=$parseInt(a.length);d=0;while(true){if(!(d>0;continue;}g=(h=$mapIndex(O,$String.keyFor(e.FuncName)),h!==undefined?[h.v,true]:["",false]);i=g[0];j=g[1];if(j){e.FuncName=i;}b=$append(b,e);if(e.FuncName==="runtime.goexit"){break;}d=d+(1)>>0;}return b;};Q=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(($parseInt(a.indexOf($externalize("@",$String)))>>0)>=0){b=new($global.RegExp)($externalize("[@:]",$String));c=a.split(b);return new L.ptr($internalize(c[0],$String),$internalize(c.slice(1,$parseInt(c.length)-2>>0).join($externalize(":",$String)),$String),$parseInt(c[($parseInt(c.length)-2>>0)])>>0,$parseInt(c[($parseInt(c.length)-1>>0)])>>0);}d=$parseInt(a.lastIndexOf($externalize("(",$String)))>>0;if(d===-1){e=a.split($externalize(":",$String));return new L.ptr("",$internalize(e.slice(0,$parseInt(e.length)-2>>0).join($externalize(":",$String)).replace(new($global.RegExp)($externalize("^\\s*at ",$String)),$externalize("",$String)),$String),$parseInt(e[($parseInt(e.length)-2>>0)])>>0,$parseInt(e[($parseInt(e.length)-1>>0)])>>0);}f="";g="";h=f;i=g;j=0;k=0;l=j;m=k;n=a.substring(d+1>>0,$parseInt(a.indexOf($externalize(")",$String)))>>0);o=n.split($externalize(":",$String));if($internalize(n,$String)===""){h="";}else{h=$internalize(o.slice(0,$parseInt(o.length)-2>>0).join($externalize(":",$String)),$String);l=$parseInt(o[($parseInt(o.length)-2>>0)])>>0;m=$parseInt(o[($parseInt(o.length)-1>>0)])>>0;}p=a.substring(($parseInt(a.indexOf($externalize("at ",$String)))>>0)+3>>0,$parseInt(a.indexOf($externalize(" (",$String)))>>0);q=$parseInt(p.indexOf($externalize("[as ",$String)))>>0;if(q>0){p=p.substring(q+4>>0,p.indexOf($externalize("]",$String)));}i=$internalize(p,$String);return new L.ptr(i,h,l,m);};$pkg.ParseCallFrame=Q;R=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;b=0;c="";d=0;e=false;a=a+1>>0;f=M(a,1);if(!((f.$length===1))){g=0;h="";i=0;j=false;b=g;c=h;d=i;e=j;return[b,c,d,e];}b=J((0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).FuncName,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).File,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).Line,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).Col);k=b;l=(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).File;m=(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).Line;n=true;b=k;c=l;d=m;e=n;return[b,c,d,e];};$pkg.Caller=R;S=function(a,b){var a,b,c,d,e,f,g;c=M(a,b.$length);d=c;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]),L);((f<0||f>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]=J(g.FuncName,g.File,g.Line,g.Col));e++;}return c.$length;};$pkg.Callers=S;T=function(a){var a,b,c,d,e,f;b=new U.ptr(BC.nil,0);c=a;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=AG(e);b.frames=$append(b.frames,new V.ptr(e,f,f.name,f.file,f.line,f.Entry()));d++;}return b;};$pkg.CallersFrames=T;U.ptr.prototype.Next=function(){var a,b,c,d,e,f,g,h,i,j;a=new V.ptr(0,AX.nil,"","",0,0);b=false;c=this;if(c.current>=c.frames.$length){d=new V.ptr(0,AX.nil,"","",0,0);e=false;V.copy(a,d);b=e;return[a,b];}h=$clone((f=c.frames,g=c.current,((g<0||g>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g])),V);c.current=c.current+(1)>>0;i=$clone(h,V);j=c.current";}return a.name;};AF.prototype.Name=function(){return this.$val.Name();};AG=function(a){var a,b;b=((a>>0));if(b>=I.$length){$panic(new $String("GopherJS: pc="+K(b)+" is out of range of known position counters"));}return((b<0||b>=I.$length)?($throwRuntimeError("index out of range"),undefined):I.$array[I.$offset+b]);};$pkg.FuncForPC=AG;AJ=function(a,b){var a,b,c;c=new($global.Error)().stack;if(c===undefined){return 0;}return $copyString(a,$internalize(c.substr(($parseInt(c.indexOf($externalize("\n",$String)))>>0)+1>>0),$String));};$pkg.Stack=AJ;AN=function(){return AM;};$pkg.Version=AN;AS=function(a){var a;};$pkg.KeepAlive=AS;AT.prototype.RuntimeError=function(){var a;a=this.$val;};$ptrType(AT).prototype.RuntimeError=function(){return new AT(this.$get()).RuntimeError();};AT.prototype.Error=function(){var a;a=this.$val;return"runtime error: "+(a);};$ptrType(AT).prototype.Error=function(){return new AT(this.$get()).Error();};AU=function(a){var a;$panic(new AT((a)));};AV=function(){return $mul64($internalize(new($global.Date)().getTime(),$Int64),new $Int64(0,1000000));};$linknames["runtime.nanotime"]=AV;AW=function(){return(($parseFloat($global.Math.random())*4.294967295e+09>>0));};$linknames["runtime.fastrand"]=AW;AZ.methods=[{prop:"string",name:"string",pkg:"runtime",typ:$funcType([],[$String],false)},{prop:"pkgpath",name:"pkgpath",pkg:"runtime",typ:$funcType([],[$String],false)}];BD.methods=[{prop:"RuntimeError",name:"RuntimeError",pkg:"",typ:$funcType([],[],false)},{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];BE.methods=[{prop:"Next",name:"Next",pkg:"",typ:$funcType([],[V,$Bool],false)}];AX.methods=[{prop:"Entry",name:"Entry",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"FileLine",name:"FileLine",pkg:"",typ:$funcType([$Uintptr],[$String,$Int],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)}];AT.methods=[{prop:"RuntimeError",name:"RuntimeError",pkg:"",typ:$funcType([],[],false)},{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];C.init("runtime",[{prop:"str",name:"str",embedded:false,exported:false,typ:$String,tag:""}]);D.init("runtime",[{prop:"_interface",name:"_interface",embedded:false,exported:false,typ:AZ,tag:""},{prop:"concrete",name:"concrete",embedded:false,exported:false,typ:AZ,tag:""},{prop:"asserted",name:"asserted",embedded:false,exported:false,typ:AZ,tag:""},{prop:"missingMethod",name:"missingMethod",embedded:false,exported:false,typ:$String,tag:""}]);L.init("",[{prop:"FuncName",name:"FuncName",embedded:false,exported:true,typ:$String,tag:""},{prop:"File",name:"File",embedded:false,exported:true,typ:$String,tag:""},{prop:"Line",name:"Line",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Col",name:"Col",embedded:false,exported:true,typ:$Int,tag:""}]);U.init("runtime",[{prop:"frames",name:"frames",embedded:false,exported:false,typ:BC,tag:""},{prop:"current",name:"current",embedded:false,exported:false,typ:$Int,tag:""}]);V.init("",[{prop:"PC",name:"PC",embedded:false,exported:true,typ:$Uintptr,tag:""},{prop:"Func",name:"Func",embedded:false,exported:true,typ:AX,tag:""},{prop:"Function",name:"Function",embedded:false,exported:true,typ:$String,tag:""},{prop:"File",name:"File",embedded:false,exported:true,typ:$String,tag:""},{prop:"Line",name:"Line",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Entry",name:"Entry",embedded:false,exported:true,typ:$Uintptr,tag:""}]);AF.init("runtime",[{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"file",name:"file",embedded:false,exported:false,typ:$String,tag:""},{prop:"line",name:"line",embedded:false,exported:false,typ:$Int,tag:""},{prop:"opaque",name:"opaque",embedded:false,exported:false,typ:BA,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}AM="";H=$makeMap($String.keyFor,[]);I=new AY([]);N=$makeMap($String.keyFor,[{k:"$callDeferred",v:true}]);O=$makeMap($String.keyFor,[{k:"$panic",v:"runtime.gopanic"},{k:"$goroutine",v:"runtime.goexit"}]);E();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/goarch"]=(function(){var $pkg={},$init;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/unsafeheader"]=(function(){var $pkg={},$init,A;A=$pkg.Slice=$newType(0,$kindStruct,"unsafeheader.Slice",true,"internal/unsafeheader",true,function(Data_,Len_,Cap_){this.$val=this;if(arguments.length===0){this.Data=0;this.Len=0;this.Cap=0;return;}this.Data=Data_;this.Len=Len_;this.Cap=Cap_;});A.init("",[{prop:"Data",name:"Data",embedded:false,exported:true,typ:$UnsafePointer,tag:""},{prop:"Len",name:"Len",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Cap",name:"Cap",embedded:false,exported:true,typ:$Int,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/reflectlite"]=(function(){var $pkg={},$init,D,A,B,C,E,F,I,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AG,AH,AI,AT,AV,BL,BN,BO,BP,CU,CW,DU,DV,DW,DX,DY,DZ,EA,EC,ED,EE,EF,EG,EH,EI,EJ,EK,EL,EM,EN,EO,ES,ET,EU,EV,EW,EX,EY,EZ,AD,AR,BB,BD,BE,BF,BG,BH,BM,BQ,BS,BU,DH,DN,AK,AL,AM,AN,AP,AQ,AU,BA,BC,BI,BJ,BK,BR,BT,BV,BW,BX,BY,BZ,CB,CC,CF,CH,CJ,CM,CQ,CR,CV,CX,CY,CZ,DC,DD,DE,DF,DG,DI,DJ,DK,DL,DM;D=$packages["github.com/gopherjs/gopherjs/js"];A=$packages["internal/goarch"];B=$packages["internal/unsafeheader"];C=$packages["runtime"];E=$pkg.Value=$newType(0,$kindStruct,"reflectlite.Value",true,"internal/reflectlite",true,function(typ_,ptr_,flag_){this.$val=this;if(arguments.length===0){this.typ=DU.nil;this.ptr=0;this.flag=0;return;}this.typ=typ_;this.ptr=ptr_;this.flag=flag_;});F=$pkg.flag=$newType(4,$kindUintptr,"reflectlite.flag",true,"internal/reflectlite",false,null);I=$pkg.ValueError=$newType(0,$kindStruct,"reflectlite.ValueError",true,"internal/reflectlite",true,function(Method_,Kind_){this.$val=this;if(arguments.length===0){this.Method="";this.Kind=0;return;}this.Method=Method_;this.Kind=Kind_;});O=$pkg.Type=$newType(8,$kindInterface,"reflectlite.Type",true,"internal/reflectlite",true,null);P=$pkg.Kind=$newType(4,$kindUint,"reflectlite.Kind",true,"internal/reflectlite",true,null);Q=$pkg.tflag=$newType(1,$kindUint8,"reflectlite.tflag",true,"internal/reflectlite",false,null);R=$pkg.rtype=$newType(0,$kindStruct,"reflectlite.rtype",true,"internal/reflectlite",false,function(size_,ptrdata_,hash_,tflag_,align_,fieldAlign_,kind_,equal_,gcdata_,str_,ptrToThis_){this.$val=this;if(arguments.length===0){this.size=0;this.ptrdata=0;this.hash=0;this.tflag=0;this.align=0;this.fieldAlign=0;this.kind=0;this.equal=$throwNilPointerError;this.gcdata=EG.nil;this.str=0;this.ptrToThis=0;return;}this.size=size_;this.ptrdata=ptrdata_;this.hash=hash_;this.tflag=tflag_;this.align=align_;this.fieldAlign=fieldAlign_;this.kind=kind_;this.equal=equal_;this.gcdata=gcdata_;this.str=str_;this.ptrToThis=ptrToThis_;});S=$pkg.method=$newType(0,$kindStruct,"reflectlite.method",true,"internal/reflectlite",false,function(name_,mtyp_,ifn_,tfn_){this.$val=this;if(arguments.length===0){this.name=0;this.mtyp=0;this.ifn=0;this.tfn=0;return;}this.name=name_;this.mtyp=mtyp_;this.ifn=ifn_;this.tfn=tfn_;});T=$pkg.chanDir=$newType(4,$kindInt,"reflectlite.chanDir",true,"internal/reflectlite",false,null);U=$pkg.arrayType=$newType(0,$kindStruct,"reflectlite.arrayType",true,"internal/reflectlite",false,function(rtype_,elem_,slice_,len_){this.$val=this;if(arguments.length===0){this.rtype=new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0);this.elem=DU.nil;this.slice=DU.nil;this.len=0;return;}this.rtype=rtype_;this.elem=elem_;this.slice=slice_;this.len=len_;});V=$pkg.chanType=$newType(0,$kindStruct,"reflectlite.chanType",true,"internal/reflectlite",false,function(rtype_,elem_,dir_){this.$val=this;if(arguments.length===0){this.rtype=new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0);this.elem=DU.nil;this.dir=0;return;}this.rtype=rtype_;this.elem=elem_;this.dir=dir_;});W=$pkg.imethod=$newType(0,$kindStruct,"reflectlite.imethod",true,"internal/reflectlite",false,function(name_,typ_){this.$val=this;if(arguments.length===0){this.name=0;this.typ=0;return;}this.name=name_;this.typ=typ_;});X=$pkg.interfaceType=$newType(0,$kindStruct,"reflectlite.interfaceType",true,"internal/reflectlite",false,function(rtype_,pkgPath_,methods_){this.$val=this;if(arguments.length===0){this.rtype=new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0);this.pkgPath=new BO.ptr(EG.nil);this.methods=EK.nil;return;}this.rtype=rtype_;this.pkgPath=pkgPath_;this.methods=methods_;});Y=$pkg.mapType=$newType(0,$kindStruct,"reflectlite.mapType",true,"internal/reflectlite",false,function(rtype_,key_,elem_,bucket_,hasher_,keysize_,valuesize_,bucketsize_,flags_){this.$val=this;if(arguments.length===0){this.rtype=new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0);this.key=DU.nil;this.elem=DU.nil;this.bucket=DU.nil;this.hasher=$throwNilPointerError;this.keysize=0;this.valuesize=0;this.bucketsize=0;this.flags=0;return;}this.rtype=rtype_;this.key=key_;this.elem=elem_;this.bucket=bucket_;this.hasher=hasher_;this.keysize=keysize_;this.valuesize=valuesize_;this.bucketsize=bucketsize_;this.flags=flags_;});Z=$pkg.ptrType=$newType(0,$kindStruct,"reflectlite.ptrType",true,"internal/reflectlite",false,function(rtype_,elem_){this.$val=this;if(arguments.length===0){this.rtype=new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0);this.elem=DU.nil;return;}this.rtype=rtype_;this.elem=elem_;});AA=$pkg.sliceType=$newType(0,$kindStruct,"reflectlite.sliceType",true,"internal/reflectlite",false,function(rtype_,elem_){this.$val=this;if(arguments.length===0){this.rtype=new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0);this.elem=DU.nil;return;}this.rtype=rtype_;this.elem=elem_;});AB=$pkg.structField=$newType(0,$kindStruct,"reflectlite.structField",true,"internal/reflectlite",false,function(name_,typ_,offsetEmbed_){this.$val=this;if(arguments.length===0){this.name=new BO.ptr(EG.nil);this.typ=DU.nil;this.offsetEmbed=0;return;}this.name=name_;this.typ=typ_;this.offsetEmbed=offsetEmbed_;});AC=$pkg.structType=$newType(0,$kindStruct,"reflectlite.structType",true,"internal/reflectlite",false,function(rtype_,pkgPath_,fields_){this.$val=this;if(arguments.length===0){this.rtype=new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0);this.pkgPath=new BO.ptr(EG.nil);this.fields=EL.nil;return;}this.rtype=rtype_;this.pkgPath=pkgPath_;this.fields=fields_;});AG=$pkg.nameOff=$newType(4,$kindInt32,"reflectlite.nameOff",true,"internal/reflectlite",false,null);AH=$pkg.typeOff=$newType(4,$kindInt32,"reflectlite.typeOff",true,"internal/reflectlite",false,null);AI=$pkg.textOff=$newType(4,$kindInt32,"reflectlite.textOff",true,"internal/reflectlite",false,null);AT=$pkg.errorString=$newType(0,$kindStruct,"reflectlite.errorString",true,"internal/reflectlite",false,function(s_){this.$val=this;if(arguments.length===0){this.s="";return;}this.s=s_;});AV=$pkg.Method=$newType(0,$kindStruct,"reflectlite.Method",true,"internal/reflectlite",true,function(Name_,PkgPath_,Type_,Func_,Index_){this.$val=this;if(arguments.length===0){this.Name="";this.PkgPath="";this.Type=$ifaceNil;this.Func=new E.ptr(DU.nil,0,0);this.Index=0;return;}this.Name=Name_;this.PkgPath=PkgPath_;this.Type=Type_;this.Func=Func_;this.Index=Index_;});BL=$pkg.uncommonType=$newType(0,$kindStruct,"reflectlite.uncommonType",true,"internal/reflectlite",false,function(pkgPath_,mcount_,xcount_,moff_,_methods_){this.$val=this;if(arguments.length===0){this.pkgPath=0;this.mcount=0;this.xcount=0;this.moff=0;this._methods=ED.nil;return;}this.pkgPath=pkgPath_;this.mcount=mcount_;this.xcount=xcount_;this.moff=moff_;this._methods=_methods_;});BN=$pkg.funcType=$newType(0,$kindStruct,"reflectlite.funcType",true,"internal/reflectlite",false,function(rtype_,inCount_,outCount_,_in_,_out_){this.$val=this;if(arguments.length===0){this.rtype=new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0);this.inCount=0;this.outCount=0;this._in=DW.nil;this._out=DW.nil;return;}this.rtype=rtype_;this.inCount=inCount_;this.outCount=outCount_;this._in=_in_;this._out=_out_;});BO=$pkg.name=$newType(0,$kindStruct,"reflectlite.name",true,"internal/reflectlite",false,function(bytes_){this.$val=this;if(arguments.length===0){this.bytes=EG.nil;return;}this.bytes=bytes_;});BP=$pkg.nameData=$newType(0,$kindStruct,"reflectlite.nameData",true,"internal/reflectlite",false,function(name_,tag_,exported_){this.$val=this;if(arguments.length===0){this.name="";this.tag="";this.exported=false;return;}this.name=name_;this.tag=tag_;this.exported=exported_;});CU=$pkg.mapIter=$newType(0,$kindStruct,"reflectlite.mapIter",true,"internal/reflectlite",false,function(t_,m_,keys_,i_,last_){this.$val=this;if(arguments.length===0){this.t=$ifaceNil;this.m=null;this.keys=null;this.i=0;this.last=null;return;}this.t=t_;this.m=m_;this.keys=keys_;this.i=i_;this.last=last_;});CW=$pkg.TypeEx=$newType(8,$kindInterface,"reflectlite.TypeEx",true,"internal/reflectlite",true,null);DU=$ptrType(R);DV=$sliceType(BO);DW=$sliceType(DU);DX=$sliceType($String);DY=$sliceType($emptyInterface);DZ=$ptrType(D.Object);EA=$funcType([DY],[DZ],true);EC=$ptrType(BL);ED=$sliceType(S);EE=$ptrType(BN);EF=$sliceType(E);EG=$ptrType($Uint8);EH=$ptrType($UnsafePointer);EI=$sliceType(O);EJ=$sliceType(DZ);EK=$sliceType(W);EL=$sliceType(AB);EM=$ptrType(BP);EN=$structType("internal/reflectlite",[{prop:"str",name:"str",embedded:false,exported:false,typ:$String,tag:""}]);EO=$ptrType(CU);ES=$arrayType($Uintptr,2);ET=$sliceType($Uint8);EU=$ptrType(I);EV=$funcType([$UnsafePointer,$UnsafePointer],[$Bool],false);EW=$ptrType(X);EX=$funcType([$UnsafePointer,$Uintptr],[$Uintptr],false);EY=$ptrType(AB);EZ=$ptrType(AT);F.prototype.kind=function(){var m;m=this.$val;return((((m&31)>>>0)>>>0));};$ptrType(F).prototype.kind=function(){return new F(this.$get()).kind();};F.prototype.ro=function(){var m;m=this.$val;if(!((((m&96)>>>0)===0))){return 32;}return 0;};$ptrType(F).prototype.ro=function(){return new F(this.$get()).ro();};E.ptr.prototype.pointer=function(){var m;m=this;if(!((m.typ.size===4))||!m.typ.pointers()){$panic(new $String("can't call pointer on a non-pointer Value"));}if(!((((m.flag&128)>>>0)===0))){return(m.ptr).$get();}return m.ptr;};E.prototype.pointer=function(){return this.$val.pointer();};I.ptr.prototype.Error=function(){var m;m=this;if(m.Kind===0){return"reflect: call of "+m.Method+" on zero Value";}return"reflect: call of "+m.Method+" on "+new P(m.Kind).String()+" Value";};I.prototype.Error=function(){return this.$val.Error();};F.prototype.mustBeExported=function(){var m;m=this.$val;if(m===0){$panic(new I.ptr(DF(),0));}if(!((((m&96)>>>0)===0))){$panic(new $String("reflect: "+DF()+" using value obtained using unexported field"));}};$ptrType(F).prototype.mustBeExported=function(){return new F(this.$get()).mustBeExported();};F.prototype.mustBeAssignable=function(){var m;m=this.$val;if(m===0){$panic(new I.ptr(DF(),0));}if(!((((m&96)>>>0)===0))){$panic(new $String("reflect: "+DF()+" using value obtained using unexported field"));}if(((m&256)>>>0)===0){$panic(new $String("reflect: "+DF()+" using unaddressable value"));}};$ptrType(F).prototype.mustBeAssignable=function(){return new F(this.$get()).mustBeAssignable();};E.ptr.prototype.CanSet=function(){var m;m=this;return((m.flag&352)>>>0)===256;};E.prototype.CanSet=function(){return this.$val.CanSet();};E.ptr.prototype.IsValid=function(){var m;m=this;return!((m.flag===0));};E.prototype.IsValid=function(){return this.$val.IsValid();};E.ptr.prototype.Kind=function(){var m;m=this;return new F(m.flag).kind();};E.prototype.Kind=function(){return this.$val.Kind();};E.ptr.prototype.Type=function(){var m,n;m=this;n=m.flag;if(n===0){$panic(new I.ptr("reflectlite.Value.Type",0));}return m.typ;};E.prototype.Type=function(){return this.$val.Type();};AB.ptr.prototype.embedded=function(){var m;m=this;return!((((m.offsetEmbed&1)>>>0)===0));};AB.prototype.embedded=function(){return this.$val.embedded();};P.prototype.String=function(){var m;m=this.$val;if(((m>>0))=AD.$length)?($throwRuntimeError("index out of range"),undefined):AD.$array[AD.$offset+m]);}return(0>=AD.$length?($throwRuntimeError("index out of range"),undefined):AD.$array[AD.$offset+0]);};$ptrType(P).prototype.String=function(){return new P(this.$get()).String();};R.ptr.prototype.String=function(){var m,n;m=this;n=$clone(m.nameOff(m.str),BO).name();if(!((((m.tflag&2)>>>0)===0))){return $substring(n,1);}return n;};R.prototype.String=function(){return this.$val.String();};R.ptr.prototype.Size=function(){var m;m=this;return m.size;};R.prototype.Size=function(){return this.$val.Size();};R.ptr.prototype.Kind=function(){var m;m=this;return((((m.kind&31)>>>0)>>>0));};R.prototype.Kind=function(){return this.$val.Kind();};R.ptr.prototype.pointers=function(){var m;m=this;return!((m.ptrdata===0));};R.prototype.pointers=function(){return this.$val.pointers();};R.ptr.prototype.common=function(){var m;m=this;return m;};R.prototype.common=function(){return this.$val.common();};R.ptr.prototype.exportedMethods=function(){var m,n;m=this;n=m.uncommon();if(n===EC.nil){return ED.nil;}return n.exportedMethods();};R.prototype.exportedMethods=function(){return this.$val.exportedMethods();};R.ptr.prototype.NumMethod=function(){var m,n;m=this;if(m.Kind()===20){n=(m.kindType);return n.NumMethod();}return m.exportedMethods().$length;};R.prototype.NumMethod=function(){return this.$val.NumMethod();};R.ptr.prototype.PkgPath=function(){var m,n;m=this;if(((m.tflag&4)>>>0)===0){return"";}n=m.uncommon();if(n===EC.nil){return"";}return $clone(m.nameOff(n.pkgPath),BO).name();};R.prototype.PkgPath=function(){return this.$val.PkgPath();};R.ptr.prototype.hasName=function(){var m;m=this;return!((((m.tflag&4)>>>0)===0));};R.prototype.hasName=function(){return this.$val.hasName();};R.ptr.prototype.Name=function(){var m,n,o;m=this;if(!m.hasName()){return"";}n=m.String();o=n.length-1>>0;while(true){if(!(o>=0&&!((n.charCodeAt(o)===46)))){break;}o=o-(1)>>0;}return $substring(n,(o+1>>0));};R.prototype.Name=function(){return this.$val.Name();};R.ptr.prototype.chanDir=function(){var m,n;m=this;if(!((m.Kind()===18))){$panic(new $String("reflect: chanDir of non-chan type"));}n=(m.kindType);return((n.dir>>0));};R.prototype.chanDir=function(){return this.$val.chanDir();};R.ptr.prototype.Elem=function(){var m,n,o,p,q,r,s;m=this;n=m.Kind();if(n===(17)){o=(m.kindType);return AP(o.elem);}else if(n===(18)){p=(m.kindType);return AP(p.elem);}else if(n===(21)){q=(m.kindType);return AP(q.elem);}else if(n===(22)){r=(m.kindType);return AP(r.elem);}else if(n===(23)){s=(m.kindType);return AP(s.elem);}$panic(new $String("reflect: Elem of invalid type"));};R.prototype.Elem=function(){return this.$val.Elem();};R.ptr.prototype.In=function(m){var m,n,o,p;n=this;if(!((n.Kind()===19))){$panic(new $String("reflect: In of non-func type"));}o=(n.kindType);return AP((p=o.in$(),((m<0||m>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+m])));};R.prototype.In=function(m){return this.$val.In(m);};R.ptr.prototype.Len=function(){var m,n;m=this;if(!((m.Kind()===17))){$panic(new $String("reflect: Len of non-array type"));}n=(m.kindType);return((n.len>>0));};R.prototype.Len=function(){return this.$val.Len();};R.ptr.prototype.NumIn=function(){var m,n;m=this;if(!((m.Kind()===19))){$panic(new $String("reflect: NumIn of non-func type"));}n=(m.kindType);return((n.inCount>>0));};R.prototype.NumIn=function(){return this.$val.NumIn();};R.ptr.prototype.NumOut=function(){var m,n;m=this;if(!((m.Kind()===19))){$panic(new $String("reflect: NumOut of non-func type"));}n=(m.kindType);return n.out().$length;};R.prototype.NumOut=function(){return this.$val.NumOut();};R.ptr.prototype.Out=function(m){var m,n,o,p;n=this;if(!((n.Kind()===19))){$panic(new $String("reflect: Out of non-func type"));}o=(n.kindType);return AP((p=o.out(),((m<0||m>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+m])));};R.prototype.Out=function(m){return this.$val.Out(m);};X.ptr.prototype.NumMethod=function(){var m;m=this;return m.methods.$length;};X.prototype.NumMethod=function(){return this.$val.NumMethod();};R.ptr.prototype.Implements=function(m){var{m,n,o,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:n=this;if($interfaceIsEqual(m,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.Implements"));}o=m.Kind();$s=3;case 3:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(!((o===20))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect: non-interface type passed to Type.Implements"));case 2:$s=-1;return AK($assertType(m,DU),n);}return;}var $f={$blk:R.ptr.prototype.Implements,$c:true,$r,m,n,o,$s};return $f;};R.prototype.Implements=function(m){return this.$val.Implements(m);};R.ptr.prototype.AssignableTo=function(m){var{m,n,o,p,q,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:n=this;if($interfaceIsEqual(m,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.AssignableTo"));}o=$assertType(m,DU);p=AL(o,n);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p||AK(o,n);$s=2;case 2:return q;}return;}var $f={$blk:R.ptr.prototype.AssignableTo,$c:true,$r,m,n,o,p,q,$s};return $f;};R.prototype.AssignableTo=function(m){return this.$val.AssignableTo(m);};AK=function(m,n){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,m,n,o,p,q,r,s,t,u,v,w,x,y,z;if(!((m.Kind()===20))){return false;}o=(m.kindType);if(o.methods.$length===0){return true;}if(n.Kind()===20){p=(n.kindType);q=0;r=0;while(true){if(!(r=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+q]));u=$clone(o.rtype.nameOff(t.name),BO);w=(v=p.methods,((r<0||r>=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+r]));x=$clone(n.nameOff(w.name),BO);if($clone(x,BO).name()===$clone(u,BO).name()&&n.typeOff(w.typ)===o.rtype.typeOff(t.typ)){if(!$clone(u,BO).isExported()){y=$clone(u,BO).pkgPath();if(y===""){y=$clone(o.pkgPath,BO).name();}z=$clone(x,BO).pkgPath();if(z===""){z=$clone(p.pkgPath,BO).name();}if(!(y===z)){r=r+(1)>>0;continue;}}q=q+(1)>>0;if(q>=o.methods.$length){return true;}}r=r+(1)>>0;}return false;}aa=n.uncommon();if(aa===EC.nil){return false;}ab=0;ac=aa.methods();ad=0;while(true){if(!(ad<((aa.mcount>>0)))){break;}af=(ae=o.methods,((ab<0||ab>=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ab]));ag=$clone(o.rtype.nameOff(af.name),BO);ah=$clone(((ad<0||ad>=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+ad]),S);ai=$clone(n.nameOff(ah.name),BO);if($clone(ai,BO).name()===$clone(ag,BO).name()&&n.typeOff(ah.mtyp)===o.rtype.typeOff(af.typ)){if(!$clone(ag,BO).isExported()){aj=$clone(ag,BO).pkgPath();if(aj===""){aj=$clone(o.pkgPath,BO).name();}ak=$clone(ai,BO).pkgPath();if(ak===""){ak=$clone(n.nameOff(aa.pkgPath),BO).name();}if(!(aj===ak)){ad=ad+(1)>>0;continue;}}ab=ab+(1)>>0;if(ab>=o.methods.$length){return true;}}ad=ad+(1)>>0;}return false;};AL=function(m,n){var{m,n,o,p,$s,$r,$c}=$restore(this,{m,n});$s=$s||0;s:while(true){switch($s){case 0:if(m===n){$s=-1;return true;}if(m.hasName()&&n.hasName()||!((m.Kind()===n.Kind()))){$s=-1;return false;}o=AN(m,n,true);$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;$s=2;case 2:return p;}return;}var $f={$blk:AL,$c:true,$r,m,n,o,p,$s};return $f;};AM=function(m,n,o){var{m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{m,n,o});$s=$s||0;s:while(true){switch($s){case 0:if(o){$s=-1;return $interfaceIsEqual(m,n);}q=m.Name();$s=4;case 4:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=n.Name();$s=5;case 5:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}if(!(q===r)){p=true;$s=3;continue s;}s=m.Kind();$s=6;case 6:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=n.Kind();$s=7;case 7:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}p=!((s===t));case 3:if(p){$s=1;continue;}$s=2;continue;case 1:$s=-1;return false;case 2:u=m.common();$s=8;case 8:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;w=n.common();$s=9;case 9:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;y=AN(v,x,false);$s=10;case 10:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;$s=11;case 11:return z;}return;}var $f={$blk:AM,$c:true,$r,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AN=function(m,n,o){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{m,n,o});$s=$s||0;s:while(true){switch($s){case 0:if(m===n){$s=-1;return true;}p=m.Kind();if(!((p===n.Kind()))){$s=-1;return false;}if(1<=p&&p<=16||(p===24)||(p===26)){$s=-1;return true;}q=p;if(q===(17)){$s=2;continue;}if(q===(18)){$s=3;continue;}if(q===(19)){$s=4;continue;}if(q===(20)){$s=5;continue;}if(q===(21)){$s=6;continue;}if((q===(22))||(q===(23))){$s=7;continue;}if(q===(25)){$s=8;continue;}$s=9;continue;case 2:if(!(m.Len()===n.Len())){r=false;$s=10;continue s;}s=AM(m.Elem(),n.Elem(),o);$s=11;case 11:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;case 10:t=r;$s=12;case 12:return t;case 3:if(!(n.chanDir()===3)){u=false;$s=15;continue s;}v=AM(m.Elem(),n.Elem(),o);$s=16;case 16:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=v;case 15:if(u){$s=13;continue;}$s=14;continue;case 13:$s=-1;return true;case 14:if(!(n.chanDir()===m.chanDir())){w=false;$s=17;continue s;}x=AM(m.Elem(),n.Elem(),o);$s=18;case 18:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;case 17:y=w;$s=19;case 19:return y;case 4:z=(m.kindType);aa=(n.kindType);if(!((z.outCount===aa.outCount))||!((z.inCount===aa.inCount))){$s=-1;return false;}ab=0;case 20:if(!(ab>0;$s=20;continue;case 21:ad=0;case 25:if(!(ad>0;$s=25;continue;case 26:$s=-1;return true;case 5:af=(m.kindType);ag=(n.kindType);if((af.methods.$length===0)&&(ag.methods.$length===0)){$s=-1;return true;}$s=-1;return false;case 6:ai=AM(m.Key(),n.Key(),o);$s=31;case 31:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}if(!(ai)){ah=false;$s=30;continue s;}aj=AM(m.Elem(),n.Elem(),o);$s=32;case 32:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ah=aj;case 30:ak=ah;$s=33;case 33:return ak;case 7:al=AM(m.Elem(),n.Elem(),o);$s=34;case 34:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al;$s=35;case 35:return am;case 8:an=(m.kindType);ao=(n.kindType);if(!((an.fields.$length===ao.fields.$length))){$s=-1;return false;}if(!($clone(an.pkgPath,BO).name()===$clone(ao.pkgPath,BO).name())){$s=-1;return false;}ap=an.fields;aq=0;case 36:if(!(aq=as.$length)?($throwRuntimeError("index out of range"),undefined):as.$array[as.$offset+ar]));av=(au=ao.fields,((ar<0||ar>=au.$length)?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+ar]));if(!($clone(at.name,BO).name()===$clone(av.name,BO).name())){$s=-1;return false;}aw=AM(at.typ,av.typ,o);$s=40;case 40:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}if(!aw){$s=38;continue;}$s=39;continue;case 38:$s=-1;return false;case 39:if(o&&!($clone(at.name,BO).tag()===$clone(av.name,BO).tag())){$s=-1;return false;}if(!((at.offsetEmbed===av.offsetEmbed))){$s=-1;return false;}aq++;$s=36;continue;case 37:$s=-1;return true;case 9:case 1:$s=-1;return false;}return;}var $f={$blk:AN,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AP=function(m){var m;if(m===DU.nil){return $ifaceNil;}return m;};AQ=function(m){var m;return((m.kind&32)>>>0)===0;};E.ptr.prototype.object=function(){var m,n,o,p;m=this;if((m.typ.Kind()===17)||(m.typ.Kind()===25)){return m.ptr;}if(!((((m.flag&128)>>>0)===0))){n=m.ptr.$get();if(!(n===$ifaceNil)&&!(n.constructor===BI(m.typ))){switch(0){default:o=m.typ.Kind();if((o===(11))||(o===(6))){n=new(BI(m.typ))(n.$high,n.$low);}else if((o===(15))||(o===(16))){n=new(BI(m.typ))(n.$real,n.$imag);}else if(o===(23)){if(n===n.constructor.nil){n=BI(m.typ).nil;break;}p=new(BI(m.typ))(n.$array);p.$offset=n.$offset;p.$length=n.$length;p.$capacity=n.$capacity;n=p;}}}return n;}return m.ptr;};E.prototype.object=function(){return this.$val.object();};E.ptr.prototype.assignTo=function(m,n,o){var{m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{m,n,o});$s=$s||0;s:while(true){switch($s){case 0:p=this;if(!((((p.flag&512)>>>0)===0))){$s=1;continue;}$s=2;continue;case 1:q=DG(m,$clone(p,E));$s=3;case 3:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}E.copy(p,q);case 2:r=AL(n,p.typ);$s=8;case 8:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}if(r){$s=5;continue;}if(AK(n,p.typ)){$s=6;continue;}$s=7;continue;case 5:s=(((p.flag&384)>>>0)|new F(p.flag).ro())>>>0;s=(s|(((n.Kind()>>>0))))>>>0;$s=-1;return new E.ptr(n,p.ptr,s);case 6:if(o===0){o=CJ(n);}t=DD($clone(p,E));$s=9;case 9:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;if(n.NumMethod()===0){(o).$set(u);}else{DE(n,u,o);}$s=-1;return new E.ptr(n,o,148);case 7:case 4:$panic(new $String(m+": value of type "+p.typ.String()+" is not assignable to type "+n.String()));$s=-1;return new E.ptr(DU.nil,0,0);}return;}var $f={$blk:E.ptr.prototype.assignTo,$c:true,$r,m,n,o,p,q,r,s,t,u,$s};return $f;};E.prototype.assignTo=function(m,n,o){return this.$val.assignTo(m,n,o);};E.ptr.prototype.Cap=function(){var m,n,o;m=this;n=new F(m.flag).kind();o=n;if(o===(17)){return m.typ.Len();}else if((o===(18))||(o===(23))){return $parseInt($clone(m,E).object().$capacity)>>0;}$panic(new I.ptr("reflect.Value.Cap",n));};E.prototype.Cap=function(){return this.$val.Cap();};E.ptr.prototype.Index=function(m){var{aa,ab,ac,ad,ae,af,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:m=[m];n=[n];o=[o];p=[p];q=[q];r=[r];s=this;t=new F(s.flag).kind();u=t;if(u===(17)){$s=2;continue;}if(u===(23)){$s=3;continue;}if(u===(24)){$s=4;continue;}$s=5;continue;case 2:v=(s.typ.kindType);if(m[0]<0||m[0]>((v.len>>0))){$panic(new $String("reflect: array index out of range"));}q[0]=v.elem;w=(((((s.flag&384)>>>0)|new F(s.flag).ro())>>>0)|((q[0].Kind()>>>0)))>>>0;n[0]=s.ptr;if(!((((w&128)>>>0)===0))&&!((q[0].Kind()===17))&&!((q[0].Kind()===25))){$s=7;continue;}$s=8;continue;case 7:$s=-1;return new E.ptr(q[0],(new(BI(DL(q[0])))((function(m,n,o,p,q,r){return function(){return DI(q[0],n[0][m[0]]);};})(m,n,o,p,q,r),(function(m,n,o,p,q,r){return function(x){var x;n[0][m[0]]=DJ(q[0],x);};})(m,n,o,p,q,r))),w);case 8:x=BZ(q[0],DI(q[0],n[0][m[0]]),w);$s=9;case 9:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;$s=10;case 10:return y;case 3:z=$clone(s,E).object();if(m[0]<0||m[0]>=($parseInt(z.$length)>>0)){$panic(new $String("reflect: slice index out of range"));}aa=(s.typ.kindType);r[0]=aa.elem;ab=(((384|new F(s.flag).ro())>>>0)|((r[0].Kind()>>>0)))>>>0;m[0]=m[0]+(($parseInt(z.$offset)>>0))>>0;o[0]=z.$array;if(!((((ab&128)>>>0)===0))&&!((r[0].Kind()===17))&&!((r[0].Kind()===25))){$s=11;continue;}$s=12;continue;case 11:$s=-1;return new E.ptr(r[0],(new(BI(DL(r[0])))((function(m,n,o,p,q,r){return function(){return DI(r[0],o[0][m[0]]);};})(m,n,o,p,q,r),(function(m,n,o,p,q,r){return function(ac){var ac;o[0][m[0]]=DJ(r[0],ac);};})(m,n,o,p,q,r))),ab);case 12:ac=BZ(r[0],DI(r[0],o[0][m[0]]),ab);$s=13;case 13:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;$s=14;case 14:return ad;case 4:ae=(s.ptr).$get();if(m[0]<0||m[0]>=ae.length){$panic(new $String("reflect: string index out of range"));}af=(((new F(s.flag).ro()|8)>>>0)|128)>>>0;p[0]=ae.charCodeAt(m[0]);$s=-1;return new E.ptr(BD,((p.$ptr||(p.$ptr=new EG(function(){return this.$target[0];},function($v){this.$target[0]=$v;},p)))),af);case 5:$panic(new I.ptr("reflect.Value.Index",t));case 6:case 1:$s=-1;return new E.ptr(DU.nil,0,0);}return;}var $f={$blk:E.ptr.prototype.Index,$c:true,$r,aa,ab,ac,ad,ae,af,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};E.prototype.Index=function(m){return this.$val.Index(m);};E.ptr.prototype.InterfaceData=function(){var m;m=this;$panic(new $String("InterfaceData is not supported by GopherJS"));};E.prototype.InterfaceData=function(){return this.$val.InterfaceData();};E.ptr.prototype.IsNil=function(){var m,n,o;m=this;n=new F(m.flag).kind();o=n;if((o===(22))||(o===(23))){return $clone(m,E).object()===BI(m.typ).nil;}else if(o===(18)){return $clone(m,E).object()===$chanNil;}else if(o===(19)){return $clone(m,E).object()===$throwNilPointerError;}else if(o===(21)){return $clone(m,E).object()===false;}else if(o===(20)){return $clone(m,E).object()===$ifaceNil;}else if(o===(26)){return $clone(m,E).object()===0;}else{$panic(new I.ptr("reflect.Value.IsNil",n));}};E.prototype.IsNil=function(){return this.$val.IsNil();};E.ptr.prototype.Len=function(){var m,n,o;m=this;n=new F(m.flag).kind();o=n;if((o===(17))||(o===(24))){return $parseInt($clone(m,E).object().length);}else if(o===(23)){return $parseInt($clone(m,E).object().$length)>>0;}else if(o===(18)){return $parseInt($clone(m,E).object().$buffer.length)>>0;}else if(o===(21)){return $parseInt($clone(m,E).object().size)>>0;}else{$panic(new I.ptr("reflect.Value.Len",n));}};E.prototype.Len=function(){return this.$val.Len();};E.ptr.prototype.Pointer=function(){var m,n,o;m=this;n=new F(m.flag).kind();o=n;if((o===(18))||(o===(21))||(o===(22))||(o===(26))){if($clone(m,E).IsNil()){return 0;}return $clone(m,E).object();}else if(o===(19)){if($clone(m,E).IsNil()){return 0;}return 1;}else if(o===(23)){if($clone(m,E).IsNil()){return 0;}return $clone(m,E).object().$array;}else{$panic(new I.ptr("reflect.Value.Pointer",n));}};E.prototype.Pointer=function(){return this.$val.Pointer();};E.ptr.prototype.Set=function(m){var{m,n,o,p,q,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:n=this;new F(n.flag).mustBeAssignable();new F(m.flag).mustBeExported();o=$clone(m,E).assignTo("reflect.Set",n.typ,0);$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}E.copy(m,o);if(!((((n.flag&128)>>>0)===0))){$s=2;continue;}$s=3;continue;case 2:p=n.typ.Kind();if(p===(17)){$s=5;continue;}if(p===(20)){$s=6;continue;}if(p===(25)){$s=7;continue;}$s=8;continue;case 5:BI(n.typ).copy(n.ptr,m.ptr);$s=9;continue;case 6:q=DD($clone(m,E));$s=10;case 10:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}n.ptr.$set(q);$s=9;continue;case 7:BY(n.ptr,m.ptr,n.typ);$s=9;continue;case 8:n.ptr.$set($clone(m,E).object());case 9:case 4:$s=-1;return;case 3:n.ptr=m.ptr;$s=-1;return;}return;}var $f={$blk:E.ptr.prototype.Set,$c:true,$r,m,n,o,p,q,$s};return $f;};E.prototype.Set=function(m){return this.$val.Set(m);};E.ptr.prototype.SetBytes=function(m){var{m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:n=this;new F(n.flag).mustBeAssignable();new F(n.flag).mustBe(23);o=n.typ.Elem().Kind();$s=3;case 3:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(!((o===8))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.Value.SetBytes of non-byte slice"));case 2:p=m;if(!(n.typ.Name()==="")){q=true;$s=6;continue s;}r=n.typ.Elem().Name();$s=7;case 7:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=!(r==="");case 6:if(q){$s=4;continue;}$s=5;continue;case 4:s=new(BI(n.typ))(p.$array);s.$offset=p.$offset;s.$length=p.$length;s.$capacity=p.$capacity;p=s;case 5:n.ptr.$set(p);$s=-1;return;}return;}var $f={$blk:E.ptr.prototype.SetBytes,$c:true,$r,m,n,o,p,q,r,s,$s};return $f;};E.prototype.SetBytes=function(m){return this.$val.SetBytes(m);};E.ptr.prototype.SetCap=function(m){var m,n,o,p;n=this;new F(n.flag).mustBeAssignable();new F(n.flag).mustBe(23);o=n.ptr.$get();if(m<($parseInt(o.$length)>>0)||m>($parseInt(o.$capacity)>>0)){$panic(new $String("reflect: slice capacity out of range in SetCap"));}p=new(BI(n.typ))(o.$array);p.$offset=o.$offset;p.$length=o.$length;p.$capacity=m;n.ptr.$set(p);};E.prototype.SetCap=function(m){return this.$val.SetCap(m);};E.ptr.prototype.SetLen=function(m){var m,n,o,p;n=this;new F(n.flag).mustBeAssignable();new F(n.flag).mustBe(23);o=n.ptr.$get();if(m<0||m>($parseInt(o.$capacity)>>0)){$panic(new $String("reflect: slice length out of range in SetLen"));}p=new(BI(n.typ))(o.$array);p.$offset=o.$offset;p.$length=m;p.$capacity=o.$capacity;n.ptr.$set(p);};E.prototype.SetLen=function(m){return this.$val.SetLen(m);};E.ptr.prototype.Slice=function(m,n){var{m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{m,n});$s=$s||0;s:while(true){switch($s){case 0:o=this;p=0;q=$ifaceNil;r=null;s=new F(o.flag).kind();t=s;if(t===(17)){$s=2;continue;}if(t===(23)){$s=3;continue;}if(t===(24)){$s=4;continue;}$s=5;continue;case 2:if(((o.flag&256)>>>0)===0){$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));}u=(o.typ.kindType);p=((u.len>>0));q=CH(u.elem);r=new(BI(q))($clone(o,E).object());$s=6;continue;case 3:q=o.typ;r=$clone(o,E).object();p=$parseInt(r.$capacity)>>0;$s=6;continue;case 4:v=(o.ptr).$get();if(m<0||nv.length){$panic(new $String("reflect.Value.Slice: string slice index out of bounds"));}w=CC(new $String($substring(v,m,n)));$s=7;case 7:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;$s=8;case 8:return x;case 5:$panic(new I.ptr("reflect.Value.Slice",s));case 6:case 1:if(m<0||np){$panic(new $String("reflect.Value.Slice: slice index out of bounds"));}y=BZ(q,$subslice(r,m,n),new F(o.flag).ro());$s=9;case 9:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;$s=10;case 10:return z;}return;}var $f={$blk:E.ptr.prototype.Slice,$c:true,$r,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};E.prototype.Slice=function(m,n){return this.$val.Slice(m,n);};E.ptr.prototype.Slice3=function(m,n,o){var{m,n,o,p,q,r,s,t,u,v,w,x,$s,$r,$c}=$restore(this,{m,n,o});$s=$s||0;s:while(true){switch($s){case 0:p=this;q=0;r=$ifaceNil;s=null;t=new F(p.flag).kind();u=t;if(u===(17)){if(((p.flag&256)>>>0)===0){$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));}v=(p.typ.kindType);q=((v.len>>0));r=CH(v.elem);s=new(BI(r))($clone(p,E).object());}else if(u===(23)){r=p.typ;s=$clone(p,E).object();q=$parseInt(s.$capacity)>>0;}else{$panic(new I.ptr("reflect.Value.Slice3",t));}if(m<0||nq){$panic(new $String("reflect.Value.Slice3: slice index out of bounds"));}w=BZ(r,$subslice(s,m,n,o),new F(p.flag).ro());$s=1;case 1:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;$s=2;case 2:return x;}return;}var $f={$blk:E.ptr.prototype.Slice3,$c:true,$r,m,n,o,p,q,r,s,t,u,v,w,x,$s};return $f;};E.prototype.Slice3=function(m,n,o){return this.$val.Slice3(m,n,o);};E.ptr.prototype.Close=function(){var m;m=this;new F(m.flag).mustBe(18);new F(m.flag).mustBeExported();$close($clone(m,E).object());};E.prototype.Close=function(){return this.$val.Close();};E.ptr.prototype.Elem=function(){var{m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:m=this;n=new F(m.flag).kind();o=n;if(o===(20)){$s=2;continue;}if(o===(22)){$s=3;continue;}$s=4;continue;case 2:p=$clone(m,E).object();if(p===$ifaceNil){$s=-1;return new E.ptr(DU.nil,0,0);}q=BJ(p.constructor);r=BZ(q,p.$val,new F(m.flag).ro());$s=6;case 6:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;$s=7;case 7:return s;case 3:if($clone(m,E).IsNil()){$s=-1;return new E.ptr(DU.nil,0,0);}t=$clone(m,E).object();u=(m.typ.kindType);v=(((((m.flag&96)>>>0)|128)>>>0)|256)>>>0;v=(v|(((u.elem.Kind()>>>0))))>>>0;$s=-1;return new E.ptr(u.elem,(DI(u.elem,t)),v);case 4:$panic(new I.ptr("reflect.Value.Elem",n));case 5:case 1:$s=-1;return new E.ptr(DU.nil,0,0);}return;}var $f={$blk:E.ptr.prototype.Elem,$c:true,$r,m,n,o,p,q,r,s,t,u,v,$s};return $f;};E.prototype.Elem=function(){return this.$val.Elem();};E.ptr.prototype.NumField=function(){var m,n;m=this;new F(m.flag).mustBe(25);n=(m.typ.kindType);return n.fields.$length;};E.prototype.NumField=function(){return this.$val.NumField();};E.ptr.prototype.MapKeys=function(){var{m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:m=this;new F(m.flag).mustBe(21);n=(m.typ.kindType);o=n.key;p=(new F(m.flag).ro()|((o.Kind()>>>0)))>>>0;q=$clone(m,E).pointer();r=0;if(!(q===0)){r=CZ(q);}s=CV(m.typ,q);t=$makeSlice(EF,r);u=0;u=0;case 1:if(!(u=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]),DM(o,p,w));CY(s);u=u+(1)>>0;$s=1;continue;case 2:$s=-1;return $subslice(t,0,u);}return;}var $f={$blk:E.ptr.prototype.MapKeys,$c:true,$r,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};E.prototype.MapKeys=function(){return this.$val.MapKeys();};E.ptr.prototype.MapIndex=function(m){var{m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:n=this;new F(n.flag).mustBe(21);o=(n.typ.kindType);p=$clone(m,E).assignTo("reflect.Value.MapIndex",o.key,0);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}E.copy(m,p);q=0;if(!((((m.flag&128)>>>0)===0))){q=m.ptr;}else{q=((m.$ptr_ptr||(m.$ptr_ptr=new EH(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},m))));}r=CR(n.typ,$clone(n,E).pointer(),q);if(r===0){$s=-1;return new E.ptr(DU.nil,0,0);}s=o.elem;t=new F((((n.flag|m.flag)>>>0))).ro();t=(t|(((s.Kind()>>>0))))>>>0;$s=-1;return DM(s,t,r);}return;}var $f={$blk:E.ptr.prototype.MapIndex,$c:true,$r,m,n,o,p,q,r,s,t,$s};return $f;};E.prototype.MapIndex=function(m){return this.$val.MapIndex(m);};E.ptr.prototype.Field=function(m){var{aa,ab,ac,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:n=[n];o=[o];p=[p];q=[q];r=this;if(!((new F(r.flag).kind()===25))){$panic(new I.ptr("reflect.Value.Field",new F(r.flag).kind()));}s=(r.typ.kindType);if(((m>>>0))>=((s.fields.$length>>>0))){$panic(new $String("reflect: Field index out of range"));}o[0]=$internalize(BI(r.typ).fields[m].prop,$String);u=(t=s.fields,((m<0||m>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+m]));q[0]=u.typ;v=(((r.flag&416)>>>0)|((q[0].Kind()>>>0)))>>>0;if(!$clone(u.name,BO).isExported()){if(u.embedded()){v=(v|(64))>>>0;}else{v=(v|(32))>>>0;}}x=$clone((w=s.fields,((m<0||m>=w.$length)?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+m])).name,BO).tag();if(!(x==="")&&!((m===0))){$s=1;continue;}$s=2;continue;case 1:n[0]=DK(x);if(!(n[0]==="")){$s=3;continue;}$s=4;continue;case 3:case 5:y=[y];z=$clone(r,E).Field(0);$s=7;case 7:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}E.copy(r,z);if(r.typ===DH){$s=8;continue;}$s=9;continue;case 8:y[0]=$clone(r,E).object().object;$s=-1;return new E.ptr(q[0],(new(BI(DL(q[0])))((function(n,o,p,q,y){return function(){return $internalize(y[0][$externalize(n[0],$String)],BI(q[0]));};})(n,o,p,q,y),(function(n,o,p,q,y){return function(aa){var aa;y[0][$externalize(n[0],$String)]=$externalize(aa,BI(q[0]));};})(n,o,p,q,y))),v);case 9:if(r.typ.Kind()===22){$s=10;continue;}$s=11;continue;case 10:aa=$clone(r,E).Elem();$s=12;case 12:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}E.copy(r,aa);case 11:$s=5;continue;case 6:case 4:case 2:p[0]=r.ptr;if(!((((v&128)>>>0)===0))&&!((q[0].Kind()===17))&&!((q[0].Kind()===25))){$s=13;continue;}$s=14;continue;case 13:$s=-1;return new E.ptr(q[0],(new(BI(DL(q[0])))((function(n,o,p,q){return function(){return DI(q[0],p[0][$externalize(o[0],$String)]);};})(n,o,p,q),(function(n,o,p,q){return function(ab){var ab;p[0][$externalize(o[0],$String)]=DJ(q[0],ab);};})(n,o,p,q))),v);case 14:ab=BZ(q[0],DI(q[0],p[0][$externalize(o[0],$String)]),v);$s=15;case 15:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;$s=16;case 16:return ac;}return;}var $f={$blk:E.ptr.prototype.Field,$c:true,$r,aa,ab,ac,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};E.prototype.Field=function(m){return this.$val.Field(m);};AT.ptr.prototype.Error=function(){var m;m=this;return m.s;};AT.prototype.Error=function(){return this.$val.Error();};AU=function(m){var m;if(m.length<2){return[m,$ifaceNil];}if((m.charCodeAt(0)===39)||(m.charCodeAt(0)===34)){if(m.charCodeAt((m.length-1>>0))===m.charCodeAt(0)){return[$substring(m,1,(m.length-1>>0)),$ifaceNil];}return["",$pkg.ErrSyntax];}return[m,$ifaceNil];};F.prototype.mustBe=function(m){var m,n;n=this.$val;if(!((((((n&31)>>>0)>>>0))===m))){$panic(new I.ptr(DF(),new F(n).kind()));}};$ptrType(F).prototype.mustBe=function(m){return new F(this.$get()).mustBe(m);};R.ptr.prototype.Comparable=function(){var{m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:m=this;n=m.Kind();if((n===(19))||(n===(23))||(n===(21))){$s=2;continue;}if(n===(17)){$s=3;continue;}if(n===(25)){$s=4;continue;}$s=5;continue;case 2:$s=-1;return false;case 3:o=m.Elem().Comparable();$s=6;case 6:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;$s=7;case 7:return p;case 4:q=0;case 8:if(!(q>0;$s=8;continue;case 9:case 5:case 1:$s=-1;return true;}return;}var $f={$blk:R.ptr.prototype.Comparable,$c:true,$r,m,n,o,p,q,r,s,$s};return $f;};R.prototype.Comparable=function(){return this.$val.Comparable();};R.ptr.prototype.IsVariadic=function(){var m,n;m=this;if(!((m.Kind()===19))){$panic(new $String("reflect: IsVariadic of non-func type"));}n=(m.kindType);return!((((n.outCount&32768)>>>0)===0));};R.prototype.IsVariadic=function(){return this.$val.IsVariadic();};R.ptr.prototype.Field=function(m){var m,n,o,p;n=this;if(!((n.Kind()===25))){$panic(new $String("reflect: Field of non-struct type"));}o=(n.kindType);if(m<0||m>=o.fields.$length){$panic(new $String("reflect: Field index out of bounds"));}return(p=o.fields,((m<0||m>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+m]));};R.prototype.Field=function(m){return this.$val.Field(m);};R.ptr.prototype.Key=function(){var m,n;m=this;if(!((m.Kind()===21))){$panic(new $String("reflect: Key of non-map type"));}n=(m.kindType);return AP(n.key);};R.prototype.Key=function(){return this.$val.Key();};R.ptr.prototype.NumField=function(){var m,n;m=this;if(!((m.Kind()===25))){$panic(new $String("reflect: NumField of non-struct type"));}n=(m.kindType);return n.fields.$length;};R.prototype.NumField=function(){return this.$val.NumField();};R.ptr.prototype.Method=function(m){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:n=[n];o=new AV.ptr("","",$ifaceNil,new E.ptr(DU.nil,0,0),0);p=this;if(p.Kind()===20){$s=1;continue;}$s=2;continue;case 1:q=(p.kindType);r=q.rtype.Method(m);$s=3;case 3:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}AV.copy(o,r);s=o;$s=4;case 4:return s;case 2:t=p.exportedMethods();if(m<0||m>=t.$length){$panic(new $String("reflect: Method index out of range"));}u=$clone(((m<0||m>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+m]),S);v=$clone(p.nameOff(u.name),BO);o.Name=$clone(v,BO).name();w=19;x=p.typeOff(u.mtyp);y=(x.kindType);z=$makeSlice(EI,0,(1+y.in$().$length>>0));z=$append(z,p);aa=y.in$();ab=0;while(true){if(!(ab=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+ab]);z=$append(z,ac);ab++;}ad=$makeSlice(EI,0,y.out().$length);ae=y.out();af=0;while(true){if(!(af=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+af]);ad=$append(ad,ag);af++;}ah=CF(z,ad,y.rtype.IsVariadic());$s=5;case 5:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;o.Type=ai;n[0]=$internalize($methodSet(p[$externalize(BE,$String)])[m].prop,$String);aj=D.MakeFunc((function(n){return function(aj,ak){var aj,ak,al;al=(0>=ak.$length?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+0]);return new $jsObjectPtr(al[$externalize(n[0],$String)].apply(al,$externalize($subslice(ak,1),EJ)));};})(n));E.copy(o.Func,new E.ptr($assertType(ai,DU),(aj),w));o.Index=m;AV.copy(o,o);$s=-1;return o;}return;}var $f={$blk:R.ptr.prototype.Method,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};R.prototype.Method=function(m){return this.$val.Method(m);};BA=function(m){var{m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:n=[n];o=[o];p=[p];q=CC(m);$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=$clone(q,E);if(!(($clone(r,E).Kind()===23))){$panic(new I.ptr("Swapper",$clone(r,E).Kind()));}p[0]=(($clone(r,E).Len()>>>0));s=p[0];if(s===(0)){$s=-1;return(function(n,o,p){return function(t,u){var t,u;$panic(new $String("reflect: slice index out of range"));};})(n,o,p);}else if(s===(1)){$s=-1;return(function(n,o,p){return function(t,u){var t,u;if(!((t===0))||!((u===0))){$panic(new $String("reflect: slice index out of range"));}};})(n,o,p);}n[0]=m.$array;o[0]=$parseInt(m.$offset)>>0;$s=-1;return(function(n,o,p){return function(t,u){var t,u,v;if(((t>>>0))>=p[0]||((u>>>0))>=p[0]){$panic(new $String("reflect: slice index out of range"));}t=t+(o[0])>>0;u=u+(o[0])>>0;v=n[0][t];n[0][t]=n[0][u];n[0][u]=v;};})(n,o,p);}return;}var $f={$blk:BA,$c:true,$r,m,n,o,p,q,r,s,$s};return $f;};$pkg.Swapper=BA;BC=function(){var{m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:m=(function(m){var m;});$r=m((n=new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),new n.constructor.elem(n)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=m((o=new BL.ptr(0,0,0,0,ED.nil),new o.constructor.elem(o)));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=m((p=new S.ptr(0,0,0,0),new p.constructor.elem(p)));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=m((q=new U.ptr(new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),DU.nil,DU.nil,0),new q.constructor.elem(q)));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=m((r=new V.ptr(new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),DU.nil,0),new r.constructor.elem(r)));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=m((s=new BN.ptr(new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),0,0,DW.nil,DW.nil),new s.constructor.elem(s)));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=m((t=new X.ptr(new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),new BO.ptr(EG.nil),EK.nil),new t.constructor.elem(t)));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=m((u=new Y.ptr(new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),DU.nil,DU.nil,DU.nil,$throwNilPointerError,0,0,0,0),new u.constructor.elem(u)));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=m((v=new Z.ptr(new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),DU.nil),new v.constructor.elem(v)));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=m((w=new AA.ptr(new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),DU.nil),new w.constructor.elem(w)));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=m((x=new AC.ptr(new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),new BO.ptr(EG.nil),EL.nil),new x.constructor.elem(x)));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=m((y=new W.ptr(0,0),new y.constructor.elem(y)));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=m((z=new AB.ptr(new BO.ptr(EG.nil),DU.nil,0),new z.constructor.elem(z)));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}BB=true;BD=$assertType(CB(new $Uint8(0)),DU);$s=-1;return;}return;}var $f={$blk:BC,$c:true,$r,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BI=function(m){var m;return m[$externalize(BE,$String)];};BJ=function(m){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,m,n,o,p,q,r,s,t,u,v,w,x,y,z;if(m[$externalize(BF,$String)]===undefined){n=new R.ptr(((($parseInt(m.size)>>0)>>>0)),0,0,0,0,0,((($parseInt(m.kind)>>0)<<24>>>24)),$throwNilPointerError,EG.nil,BT($clone(BR(BW(m.string),"",!!(m.exported)),BO)),0);n[$externalize(BE,$String)]=m;m[$externalize(BF,$String)]=n;o=$methodSet(m);if(!(($parseInt(o.length)===0))||!!(m.named)){n.tflag=(n.tflag|(1))>>>0;if(!!(m.named)){n.tflag=(n.tflag|(4))>>>0;}p=ED.nil;q=0;while(true){if(!(q<$parseInt(o.length))){break;}r=o[q];s=BW(r.pkg)==="";if(!s){q=q+(1)>>0;continue;}p=$append(p,new S.ptr(BT($clone(BR(BW(r.name),"",s),BO)),BV(BJ(r.typ)),0,0));q=q+(1)>>0;}t=((p.$length<<16>>>16));u=0;while(true){if(!(u<$parseInt(o.length))){break;}v=o[u];w=BW(v.pkg)==="";if(w){u=u+(1)>>0;continue;}p=$append(p,new S.ptr(BT($clone(BR(BW(v.name),"",w),BO)),BV(BJ(v.typ)),0,0));u=u+(1)>>0;}x=new BL.ptr(BT($clone(BR(BW(m.pkg),"",false),BO)),(($parseInt(o.length)<<16>>>16)),t,0,p);y=n;(BM||$throwRuntimeError("assignment to entry in nil map")).set(DU.keyFor(y),{k:y,v:x});x[$externalize(BE,$String)]=m;}z=n.Kind();if(z===(17)){BK(n,new U.ptr(new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),BJ(m.elem),DU.nil,((($parseInt(m.len)>>0)>>>0))));}else if(z===(18)){aa=3;if(!!(m.sendOnly)){aa=2;}if(!!(m.recvOnly)){aa=1;}BK(n,new V.ptr(new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),BJ(m.elem),((aa>>>0))));}else if(z===(19)){ab=m.params;ac=$makeSlice(DW,$parseInt(ab.length));ad=ac;ae=0;while(true){if(!(ae=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+af]=BJ(ab[af]));ae++;}ag=m.results;ah=$makeSlice(DW,$parseInt(ag.length));ai=ah;aj=0;while(true){if(!(aj=ah.$length)?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+ak]=BJ(ag[ak]));aj++;}al=(($parseInt(ag.length)<<16>>>16));if(!!(m.variadic)){al=(al|(32768))>>>0;}BK(n,new BN.ptr($clone(n,R),(($parseInt(ab.length)<<16>>>16)),al,ac,ah));}else if(z===(20)){am=m.methods;an=$makeSlice(EK,$parseInt(am.length));ao=an;ap=0;while(true){if(!(ap=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+aq]),new W.ptr(BT($clone(BR(BW(ar.name),"",BW(ar.pkg)===""),BO)),BV(BJ(ar.typ))));ap++;}BK(n,new X.ptr($clone(n,R),$clone(BR(BW(m.pkg),"",false),BO),an));}else if(z===(21)){BK(n,new Y.ptr(new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),BJ(m.key),BJ(m.elem),DU.nil,$throwNilPointerError,0,0,0,0));}else if(z===(22)){BK(n,new Z.ptr(new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),BJ(m.elem)));}else if(z===(23)){BK(n,new AA.ptr(new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0),BJ(m.elem)));}else if(z===(25)){as=m.fields;at=$makeSlice(EL,$parseInt(as.length));au=at;av=0;while(true){if(!(av>>0))<<1>>>0;if(!!(ax.embedded)){ay=(ay|(1))>>>0;}AB.copy(((aw<0||aw>=at.$length)?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+aw]),new AB.ptr($clone(BR(BW(ax.name),BW(ax.tag),!!(ax.exported)),BO),BJ(ax.typ),ay));av++;}BK(n,new AC.ptr($clone(n,R),$clone(BR(BW(m.pkgPath),"",false),BO),at));}}return((m[$externalize(BF,$String)]));};BK=function(m,n){var m,n;m[$externalize(BG,$String)]=n;n[$externalize(BH,$String)]=m;};BL.ptr.prototype.methods=function(){var m;m=this;return m._methods;};BL.prototype.methods=function(){return this.$val.methods();};BL.ptr.prototype.exportedMethods=function(){var m;m=this;return $subslice(m._methods,0,m.xcount,m.xcount);};BL.prototype.exportedMethods=function(){return this.$val.exportedMethods();};R.ptr.prototype.uncommon=function(){var m,n;m=this;return(n=$mapIndex(BM,DU.keyFor(m)),n!==undefined?n.v:EC.nil);};R.prototype.uncommon=function(){return this.$val.uncommon();};BN.ptr.prototype.in$=function(){var m;m=this;return m._in;};BN.prototype.in$=function(){return this.$val.in$();};BN.ptr.prototype.out=function(){var m;m=this;return m._out;};BN.prototype.out=function(){return this.$val.out();};BO.ptr.prototype.name=function(){var m,n,o;m="";n=this;m=(o=$mapIndex(BQ,EG.keyFor(n.bytes)),o!==undefined?o.v:EM.nil).name;return m;};BO.prototype.name=function(){return this.$val.name();};BO.ptr.prototype.tag=function(){var m,n,o;m="";n=this;m=(o=$mapIndex(BQ,EG.keyFor(n.bytes)),o!==undefined?o.v:EM.nil).tag;return m;};BO.prototype.tag=function(){return this.$val.tag();};BO.ptr.prototype.pkgPath=function(){var m;m=this;return"";};BO.prototype.pkgPath=function(){return this.$val.pkgPath();};BO.ptr.prototype.isExported=function(){var m,n;m=this;return(n=$mapIndex(BQ,EG.keyFor(m.bytes)),n!==undefined?n.v:EM.nil).exported;};BO.prototype.isExported=function(){return this.$val.isExported();};BR=function(m,n,o){var m,n,o,p,q;p=$newDataPointer(0,EG);q=p;(BQ||$throwRuntimeError("assignment to entry in nil map")).set(EG.keyFor(q),{k:q,v:new BP.ptr(m,n,o)});return new BO.ptr(p);};R.ptr.prototype.nameOff=function(m){var m,n,o;n=this;return(o=((m>>0)),((o<0||o>=BS.$length)?($throwRuntimeError("index out of range"),undefined):BS.$array[BS.$offset+o]));};R.prototype.nameOff=function(m){return this.$val.nameOff(m);};BT=function(m){var m,n;n=BS.$length;BS=$append(BS,m);return((n>>0));};R.ptr.prototype.typeOff=function(m){var m,n,o;n=this;return(o=((m>>0)),((o<0||o>=BU.$length)?($throwRuntimeError("index out of range"),undefined):BU.$array[BU.$offset+o]));};R.prototype.typeOff=function(m){return this.$val.typeOff(m);};BV=function(m){var m,n;n=BU.$length;BU=$append(BU,m);return((n>>0));};BW=function(m){var m,n;n=new EN.ptr("");n.str=m;return n.str;};BX=function(m){var m;return!!(BI(m).wrapped);};BY=function(m,n,o){var m,n,o,p,q,r;p=BI(o).fields;q=0;while(true){if(!(q<$parseInt(p.length))){break;}r=$internalize(p[q].prop,$String);m[$externalize(r,$String)]=n[$externalize(r,$String)];q=q+(1)>>0;}};BZ=function(m,n,o){var{m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{m,n,o});$s=$s||0;s:while(true){switch($s){case 0:p=m.common();$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;t=m.Kind();$s=6;case 6:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}if(t===17){s=true;$s=5;continue s;}u=m.Kind();$s=7;case 7:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}s=u===25;case 5:if(s){r=true;$s=4;continue s;}v=m.Kind();$s=8;case 8:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}r=v===22;case 4:if(r){$s=2;continue;}$s=3;continue;case 2:w=m.Kind();$s=9;case 9:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=new E.ptr(q,(n),(o|((w>>>0)))>>>0);$s=10;case 10:return x;case 3:y=m.Kind();$s=11;case 11:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=new E.ptr(q,($newDataPointer(n,BI(q.ptrTo()))),(((o|((y>>>0)))>>>0)|128)>>>0);$s=12;case 12:return z;}return;}var $f={$blk:BZ,$c:true,$r,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};CB=function(m){var m;if(!BB){return new R.ptr(0,0,0,0,0,0,0,$throwNilPointerError,EG.nil,0,0);}if($interfaceIsEqual(m,$ifaceNil)){return $ifaceNil;}return BJ(m.constructor);};$pkg.TypeOf=CB;CC=function(m){var{m,n,o,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:if($interfaceIsEqual(m,$ifaceNil)){$s=-1;return new E.ptr(DU.nil,0,0);}n=BZ(BJ(m.constructor),m.$val,0);$s=1;case 1:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;$s=2;case 2:return o;}return;}var $f={$blk:CC,$c:true,$r,m,n,o,$s};return $f;};$pkg.ValueOf=CC;CF=function(m,n,o){var{aa,ab,ac,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{m,n,o});$s=$s||0;s:while(true){switch($s){case 0:if(!(o)){p=false;$s=3;continue s;}if(m.$length===0){q=true;$s=4;continue s;}s=(r=m.$length-1>>0,((r<0||r>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+r])).Kind();$s=5;case 5:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}q=!((s===23));case 4:p=q;case 3:if(p){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.FuncOf: last arg of variadic func must be slice"));case 2:t=$makeSlice(EJ,m.$length);u=m;v=0;while(true){if(!(v=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v]);((w<0||w>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+w]=BI(x));v++;}y=$makeSlice(EJ,n.$length);z=n;aa=0;while(true){if(!(aa=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+aa]);((ab<0||ab>=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+ab]=BI(ac));aa++;}$s=-1;return BJ($funcType($externalize(t,EJ),$externalize(y,EJ),$externalize(o,$Bool)));}return;}var $f={$blk:CF,$c:true,$r,aa,ab,ac,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.FuncOf=CF;R.ptr.prototype.ptrTo=function(){var m;m=this;return BJ($ptrType(BI(m)));};R.prototype.ptrTo=function(){return this.$val.ptrTo();};CH=function(m){var m;return BJ($sliceType(BI(m)));};$pkg.SliceOf=CH;CJ=function(m){var m,n;n=m.Kind();if(n===(25)){return(new(BI(m).ptr)());}else if(n===(17)){return(BI(m).zero());}else{return($newDataPointer(BI(m).zero(),BI(m.ptrTo())));}};CM=function(m,n,o){var m,n,o;n.$set(o.$get());};CQ=function(m,n){var m,n,o,p;o=n;if(!(o.$get===undefined)){o=o.$get();}p=$internalize(BI(m.Key()).keyFor(o),$String);return[o,p];};CR=function(m,n,o){var m,n,o,p,q,r;p=CQ(m,o);q=p[1];r=n.get($externalize(q,$String));if(r===undefined){return 0;}return($newDataPointer(r.v,BI(DL(m.Elem()))));};CU.ptr.prototype.skipUntilValidKey=function(){var m,n;m=this;while(true){if(!(m.i<$parseInt(m.keys.length))){break;}n=m.keys[m.i];if(!(m.m.get(n)===undefined)){break;}m.i=m.i+(1)>>0;}};CU.prototype.skipUntilValidKey=function(){return this.$val.skipUntilValidKey();};CV=function(m,n){var m,n;return(new CU.ptr(m,n,$global.Array.from(n.keys()),0,null));};CX=function(m){var{m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:n=($pointerOfStructConversion(m,EO));o=null;if(!(n.last===null)){o=n.last;}else{n.skipUntilValidKey();if(n.i===$parseInt(n.keys.length)){$s=-1;return 0;}p=n.keys[n.i];o=n.m.get(p);n.last=o;}q=$assertType(n.t,CW).Key();$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=DL(q);$s=2;case 2:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=BI(r);$s=3;case 3:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=($newDataPointer(o.k,s));$s=4;case 4:return t;}return;}var $f={$blk:CX,$c:true,$r,m,n,o,p,q,r,s,t,$s};return $f;};CY=function(m){var m,n;n=($pointerOfStructConversion(m,EO));n.last=null;n.i=n.i+(1)>>0;};CZ=function(m){var m;return $parseInt(m.size)>>0;};DC=function(m,n,o){var m,n,o,p,q,r,s,t,u,v,w,x,y;p=DU.nil;q=EE.nil;r=0;s="";if(n.typ.Kind()===20){t=(n.typ.kindType);if(o<0||o>=t.methods.$length){$panic(new $String("reflect: internal error: invalid method index"));}v=(u=t.methods,((o<0||o>=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+o]));if(!$clone(t.rtype.nameOff(v.name),BO).isExported()){$panic(new $String("reflect: "+m+" of unexported method"));}q=(t.rtype.typeOff(v.typ).kindType);s=$clone(t.rtype.nameOff(v.name),BO).name();}else{w=n.typ.exportedMethods();if(((o>>>0))>=((w.$length>>>0))){$panic(new $String("reflect: internal error: invalid method index"));}x=$clone(((o<0||o>=w.$length)?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+o]),S);if(!$clone(n.typ.nameOff(x.name),BO).isExported()){$panic(new $String("reflect: "+m+" of unexported method"));}q=(n.typ.typeOff(x.mtyp).kindType);s=$internalize($methodSet(BI(n.typ))[o].prop,$String);}y=$clone(n,E).object();if(BX(n.typ)){y=new(BI(n.typ))(y);}r=(y[$externalize(s,$String)]);return[p,q,r];};DD=function(m){var{m,n,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:if(m.flag===0){$panic(new I.ptr("reflect.Value.Interface",0));}if(!((((m.flag&512)>>>0)===0))){$s=1;continue;}$s=2;continue;case 1:n=DG("Interface",$clone(m,E));$s=3;case 3:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}E.copy(m,n);case 2:if(BX(m.typ)){$s=-1;return((new(BI(m.typ))($clone(m,E).object())));}$s=-1;return(($clone(m,E).object()));}return;}var $f={$blk:DD,$c:true,$r,m,n,$s};return $f;};DE=function(m,n,o){var m,n,o;o.$set(n);};DF=function(){return"?FIXME?";};DG=function(m,n){var{m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{m,n});$s=$s||0;s:while(true){switch($s){case 0:o=[o];p=[p];if(((n.flag&512)>>>0)===0){$panic(new $String("reflect: internal error: invalid use of makePartialFunc"));}q=DC(m,$clone(n,E),((n.flag>>0))>>10>>0);o[0]=q[2];p[0]=$clone(n,E).object();if(BX(n.typ)){p[0]=new(BI(n.typ))(p[0]);}r=D.MakeFunc((function(o,p){return function(r,s){var r,s;return new $jsObjectPtr(o[0].apply(p[0],$externalize(s,EJ)));};})(o,p));s=$clone(n,E).Type().common();$s=1;case 1:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=new E.ptr(s,(r),(new F(n.flag).ro()|19)>>>0);$s=2;case 2:return t;}return;}var $f={$blk:DG,$c:true,$r,m,n,o,p,q,r,s,t,$s};return $f;};DI=function(m,n){var m,n;if($interfaceIsEqual(m,DH)){return new(BI(DH))(n);}return n;};DJ=function(m,n){var m,n;if($interfaceIsEqual(m,DH)){return n.object;}return n;};DK=function(m){var m,n,o,p,q,r;while(true){if(!(!(m===""))){break;}n=0;while(true){if(!(n>0;}m=$substring(m,n);if(m===""){break;}n=0;while(true){if(!(n>0;}if((n+1>>0)>=m.length||!((m.charCodeAt(n)===58))||!((m.charCodeAt((n+1>>0))===34))){break;}o=($substring(m,0,n));m=$substring(m,(n+1>>0));n=1;while(true){if(!(n>0;}n=n+(1)>>0;}if(n>=m.length){break;}p=($substring(m,0,(n+1>>0)));m=$substring(m,(n+1>>0));if(o==="js"){q=AU(p);r=q[0];return r;}}return"";};DL=function(m){var m;return $assertType(m,DU).ptrTo();};$pkg.PtrTo=DL;DM=function(m,n,o){var m,n,o,p;if(AQ(m)){p=CJ(m);CM(m,p,o);return new E.ptr(m,p,(n|128)>>>0);}return new E.ptr(m,(o).$get(),n);};E.methods=[{prop:"pointer",name:"pointer",pkg:"internal/reflectlite",typ:$funcType([],[$UnsafePointer],false)},{prop:"CanSet",name:"CanSet",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsValid",name:"IsValid",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[P],false)},{prop:"numMethod",name:"numMethod",pkg:"internal/reflectlite",typ:$funcType([],[$Int],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[O],false)},{prop:"object",name:"object",pkg:"internal/reflectlite",typ:$funcType([],[DZ],false)},{prop:"assignTo",name:"assignTo",pkg:"internal/reflectlite",typ:$funcType([$String,DU,$UnsafePointer],[E],false)},{prop:"call",name:"call",pkg:"internal/reflectlite",typ:$funcType([$String,EF],[EF],false)},{prop:"Cap",name:"Cap",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Index",name:"Index",pkg:"",typ:$funcType([$Int],[E],false)},{prop:"InterfaceData",name:"InterfaceData",pkg:"",typ:$funcType([],[ES],false)},{prop:"IsNil",name:"IsNil",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Pointer",name:"Pointer",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([E],[],false)},{prop:"SetBytes",name:"SetBytes",pkg:"",typ:$funcType([ET],[],false)},{prop:"SetCap",name:"SetCap",pkg:"",typ:$funcType([$Int],[],false)},{prop:"SetLen",name:"SetLen",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Slice",name:"Slice",pkg:"",typ:$funcType([$Int,$Int],[E],false)},{prop:"Slice3",name:"Slice3",pkg:"",typ:$funcType([$Int,$Int,$Int],[E],false)},{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[],false)},{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[E],false)},{prop:"NumField",name:"NumField",pkg:"",typ:$funcType([],[$Int],false)},{prop:"MapKeys",name:"MapKeys",pkg:"",typ:$funcType([],[EF],false)},{prop:"MapIndex",name:"MapIndex",pkg:"",typ:$funcType([E],[E],false)},{prop:"Field",name:"Field",pkg:"",typ:$funcType([$Int],[E],false)}];F.methods=[{prop:"kind",name:"kind",pkg:"internal/reflectlite",typ:$funcType([],[P],false)},{prop:"ro",name:"ro",pkg:"internal/reflectlite",typ:$funcType([],[F],false)},{prop:"mustBeExported",name:"mustBeExported",pkg:"internal/reflectlite",typ:$funcType([],[],false)},{prop:"mustBeAssignable",name:"mustBeAssignable",pkg:"internal/reflectlite",typ:$funcType([],[],false)},{prop:"mustBe",name:"mustBe",pkg:"internal/reflectlite",typ:$funcType([P],[],false)}];EU.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];P.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];DU.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[P],false)},{prop:"pointers",name:"pointers",pkg:"internal/reflectlite",typ:$funcType([],[$Bool],false)},{prop:"common",name:"common",pkg:"internal/reflectlite",typ:$funcType([],[DU],false)},{prop:"exportedMethods",name:"exportedMethods",pkg:"internal/reflectlite",typ:$funcType([],[ED],false)},{prop:"NumMethod",name:"NumMethod",pkg:"",typ:$funcType([],[$Int],false)},{prop:"PkgPath",name:"PkgPath",pkg:"",typ:$funcType([],[$String],false)},{prop:"hasName",name:"hasName",pkg:"internal/reflectlite",typ:$funcType([],[$Bool],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"chanDir",name:"chanDir",pkg:"internal/reflectlite",typ:$funcType([],[T],false)},{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[O],false)},{prop:"In",name:"In",pkg:"",typ:$funcType([$Int],[O],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumIn",name:"NumIn",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumOut",name:"NumOut",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Out",name:"Out",pkg:"",typ:$funcType([$Int],[O],false)},{prop:"Implements",name:"Implements",pkg:"",typ:$funcType([O],[$Bool],false)},{prop:"AssignableTo",name:"AssignableTo",pkg:"",typ:$funcType([O],[$Bool],false)},{prop:"Comparable",name:"Comparable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsVariadic",name:"IsVariadic",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"kindType",name:"kindType",pkg:"internal/reflectlite",typ:$funcType([],[DU],false)},{prop:"Field",name:"Field",pkg:"",typ:$funcType([$Int],[AB],false)},{prop:"Key",name:"Key",pkg:"",typ:$funcType([],[O],false)},{prop:"NumField",name:"NumField",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Method",name:"Method",pkg:"",typ:$funcType([$Int],[AV],false)},{prop:"uncommon",name:"uncommon",pkg:"internal/reflectlite",typ:$funcType([],[EC],false)},{prop:"nameOff",name:"nameOff",pkg:"internal/reflectlite",typ:$funcType([AG],[BO],false)},{prop:"typeOff",name:"typeOff",pkg:"internal/reflectlite",typ:$funcType([AH],[DU],false)},{prop:"ptrTo",name:"ptrTo",pkg:"internal/reflectlite",typ:$funcType([],[DU],false)}];EW.methods=[{prop:"NumMethod",name:"NumMethod",pkg:"",typ:$funcType([],[$Int],false)}];EY.methods=[{prop:"offset",name:"offset",pkg:"internal/reflectlite",typ:$funcType([],[$Uintptr],false)},{prop:"embedded",name:"embedded",pkg:"internal/reflectlite",typ:$funcType([],[$Bool],false)}];EZ.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];EC.methods=[{prop:"methods",name:"methods",pkg:"internal/reflectlite",typ:$funcType([],[ED],false)},{prop:"exportedMethods",name:"exportedMethods",pkg:"internal/reflectlite",typ:$funcType([],[ED],false)}];EE.methods=[{prop:"in$",name:"in",pkg:"internal/reflectlite",typ:$funcType([],[DW],false)},{prop:"out",name:"out",pkg:"internal/reflectlite",typ:$funcType([],[DW],false)}];BO.methods=[{prop:"data",name:"data",pkg:"internal/reflectlite",typ:$funcType([$Int,$String],[EG],false)},{prop:"hasTag",name:"hasTag",pkg:"internal/reflectlite",typ:$funcType([],[$Bool],false)},{prop:"readVarint",name:"readVarint",pkg:"internal/reflectlite",typ:$funcType([$Int],[$Int,$Int],false)},{prop:"name",name:"name",pkg:"internal/reflectlite",typ:$funcType([],[$String],false)},{prop:"tag",name:"tag",pkg:"internal/reflectlite",typ:$funcType([],[$String],false)},{prop:"pkgPath",name:"pkgPath",pkg:"internal/reflectlite",typ:$funcType([],[$String],false)},{prop:"isExported",name:"isExported",pkg:"internal/reflectlite",typ:$funcType([],[$Bool],false)}];EO.methods=[{prop:"skipUntilValidKey",name:"skipUntilValidKey",pkg:"internal/reflectlite",typ:$funcType([],[],false)}];E.init("internal/reflectlite",[{prop:"typ",name:"typ",embedded:false,exported:false,typ:DU,tag:""},{prop:"ptr",name:"ptr",embedded:false,exported:false,typ:$UnsafePointer,tag:""},{prop:"flag",name:"flag",embedded:true,exported:false,typ:F,tag:""}]);I.init("",[{prop:"Method",name:"Method",embedded:false,exported:true,typ:$String,tag:""},{prop:"Kind",name:"Kind",embedded:false,exported:true,typ:P,tag:""}]);O.init([{prop:"AssignableTo",name:"AssignableTo",pkg:"",typ:$funcType([O],[$Bool],false)},{prop:"Comparable",name:"Comparable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[O],false)},{prop:"Implements",name:"Implements",pkg:"",typ:$funcType([O],[$Bool],false)},{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[P],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"PkgPath",name:"PkgPath",pkg:"",typ:$funcType([],[$String],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"common",name:"common",pkg:"internal/reflectlite",typ:$funcType([],[DU],false)},{prop:"uncommon",name:"uncommon",pkg:"internal/reflectlite",typ:$funcType([],[EC],false)}]);R.init("internal/reflectlite",[{prop:"size",name:"size",embedded:false,exported:false,typ:$Uintptr,tag:""},{prop:"ptrdata",name:"ptrdata",embedded:false,exported:false,typ:$Uintptr,tag:""},{prop:"hash",name:"hash",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"tflag",name:"tflag",embedded:false,exported:false,typ:Q,tag:""},{prop:"align",name:"align",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"fieldAlign",name:"fieldAlign",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"kind",name:"kind",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"equal",name:"equal",embedded:false,exported:false,typ:EV,tag:""},{prop:"gcdata",name:"gcdata",embedded:false,exported:false,typ:EG,tag:""},{prop:"str",name:"str",embedded:false,exported:false,typ:AG,tag:""},{prop:"ptrToThis",name:"ptrToThis",embedded:false,exported:false,typ:AH,tag:""}]);S.init("internal/reflectlite",[{prop:"name",name:"name",embedded:false,exported:false,typ:AG,tag:""},{prop:"mtyp",name:"mtyp",embedded:false,exported:false,typ:AH,tag:""},{prop:"ifn",name:"ifn",embedded:false,exported:false,typ:AI,tag:""},{prop:"tfn",name:"tfn",embedded:false,exported:false,typ:AI,tag:""}]);U.init("internal/reflectlite",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:R,tag:""},{prop:"elem",name:"elem",embedded:false,exported:false,typ:DU,tag:""},{prop:"slice",name:"slice",embedded:false,exported:false,typ:DU,tag:""},{prop:"len",name:"len",embedded:false,exported:false,typ:$Uintptr,tag:""}]);V.init("internal/reflectlite",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:R,tag:""},{prop:"elem",name:"elem",embedded:false,exported:false,typ:DU,tag:""},{prop:"dir",name:"dir",embedded:false,exported:false,typ:$Uintptr,tag:""}]);W.init("internal/reflectlite",[{prop:"name",name:"name",embedded:false,exported:false,typ:AG,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:AH,tag:""}]);X.init("internal/reflectlite",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:R,tag:""},{prop:"pkgPath",name:"pkgPath",embedded:false,exported:false,typ:BO,tag:""},{prop:"methods",name:"methods",embedded:false,exported:false,typ:EK,tag:""}]);Y.init("internal/reflectlite",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:R,tag:""},{prop:"key",name:"key",embedded:false,exported:false,typ:DU,tag:""},{prop:"elem",name:"elem",embedded:false,exported:false,typ:DU,tag:""},{prop:"bucket",name:"bucket",embedded:false,exported:false,typ:DU,tag:""},{prop:"hasher",name:"hasher",embedded:false,exported:false,typ:EX,tag:""},{prop:"keysize",name:"keysize",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"valuesize",name:"valuesize",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"bucketsize",name:"bucketsize",embedded:false,exported:false,typ:$Uint16,tag:""},{prop:"flags",name:"flags",embedded:false,exported:false,typ:$Uint32,tag:""}]);Z.init("internal/reflectlite",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:R,tag:""},{prop:"elem",name:"elem",embedded:false,exported:false,typ:DU,tag:""}]);AA.init("internal/reflectlite",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:R,tag:""},{prop:"elem",name:"elem",embedded:false,exported:false,typ:DU,tag:""}]);AB.init("internal/reflectlite",[{prop:"name",name:"name",embedded:false,exported:false,typ:BO,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:DU,tag:""},{prop:"offsetEmbed",name:"offsetEmbed",embedded:false,exported:false,typ:$Uintptr,tag:""}]);AC.init("internal/reflectlite",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:R,tag:""},{prop:"pkgPath",name:"pkgPath",embedded:false,exported:false,typ:BO,tag:""},{prop:"fields",name:"fields",embedded:false,exported:false,typ:EL,tag:""}]);AT.init("internal/reflectlite",[{prop:"s",name:"s",embedded:false,exported:false,typ:$String,tag:""}]);AV.init("",[{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""},{prop:"PkgPath",name:"PkgPath",embedded:false,exported:true,typ:$String,tag:""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:O,tag:""},{prop:"Func",name:"Func",embedded:false,exported:true,typ:E,tag:""},{prop:"Index",name:"Index",embedded:false,exported:true,typ:$Int,tag:""}]);BL.init("internal/reflectlite",[{prop:"pkgPath",name:"pkgPath",embedded:false,exported:false,typ:AG,tag:""},{prop:"mcount",name:"mcount",embedded:false,exported:false,typ:$Uint16,tag:""},{prop:"xcount",name:"xcount",embedded:false,exported:false,typ:$Uint16,tag:""},{prop:"moff",name:"moff",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"_methods",name:"_methods",embedded:false,exported:false,typ:ED,tag:""}]);BN.init("internal/reflectlite",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:R,tag:"reflect:\"func\""},{prop:"inCount",name:"inCount",embedded:false,exported:false,typ:$Uint16,tag:""},{prop:"outCount",name:"outCount",embedded:false,exported:false,typ:$Uint16,tag:""},{prop:"_in",name:"_in",embedded:false,exported:false,typ:DW,tag:""},{prop:"_out",name:"_out",embedded:false,exported:false,typ:DW,tag:""}]);BO.init("internal/reflectlite",[{prop:"bytes",name:"bytes",embedded:false,exported:false,typ:EG,tag:""}]);BP.init("internal/reflectlite",[{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"tag",name:"tag",embedded:false,exported:false,typ:$String,tag:""},{prop:"exported",name:"exported",embedded:false,exported:false,typ:$Bool,tag:""}]);CU.init("internal/reflectlite",[{prop:"t",name:"t",embedded:false,exported:false,typ:O,tag:""},{prop:"m",name:"m",embedded:false,exported:false,typ:DZ,tag:""},{prop:"keys",name:"keys",embedded:false,exported:false,typ:DZ,tag:""},{prop:"i",name:"i",embedded:false,exported:false,typ:$Int,tag:""},{prop:"last",name:"last",embedded:false,exported:false,typ:DZ,tag:""}]);CW.init([{prop:"AssignableTo",name:"AssignableTo",pkg:"",typ:$funcType([O],[$Bool],false)},{prop:"Comparable",name:"Comparable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[O],false)},{prop:"Implements",name:"Implements",pkg:"",typ:$funcType([O],[$Bool],false)},{prop:"Key",name:"Key",pkg:"",typ:$funcType([],[O],false)},{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[P],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"PkgPath",name:"PkgPath",pkg:"",typ:$funcType([],[$String],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"common",name:"common",pkg:"internal/reflectlite",typ:$funcType([],[DU],false)},{prop:"uncommon",name:"uncommon",pkg:"internal/reflectlite",typ:$funcType([],[EC],false)}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=D.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}BD=DU.nil;BS=DV.nil;BU=DW.nil;AD=new DX(["invalid","bool","int","int8","int16","int32","int64","uint","uint8","uint16","uint32","uint64","uintptr","float32","float64","complex64","complex128","array","chan","func","interface","map","ptr","slice","string","struct","unsafe.Pointer"]);AR=$assertType($internalize($call,$emptyInterface),EA);$pkg.ErrSyntax=new AT.ptr("invalid syntax");BB=false;BE="_jsType";BF="_reflectType";BG="kindType";BH="_rtype";BM=new $global.Map();BQ=new $global.Map();DH=BJ($jsObjectPtr);DN=$assertType($internalize($select,$emptyInterface),EA);$r=BC();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["errors"]=(function(){var $pkg={},$init,A,G,H,I,K,L,E,a,B,D,F;A=$packages["internal/reflectlite"];G=$pkg.errorString=$newType(0,$kindStruct,"errors.errorString",true,"errors",false,function(s_){this.$val=this;if(arguments.length===0){this.s="";return;}this.s=s_;});H=$ptrType($error);I=$interfaceType([{prop:"Unwrap",name:"Unwrap",pkg:"",typ:$funcType([],[$error],false)}]);K=$interfaceType([{prop:"As",name:"As",pkg:"",typ:$funcType([$emptyInterface],[$Bool],false)}]);L=$ptrType(G);B=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=$assertType(b,I,true);d=c[0];e=c[1];if(!e){$s=-1;return $ifaceNil;}f=d.Unwrap();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=2;case 2:return g;}return;}var $f={$blk:B,$c:true,$r,b,c,d,e,f,g,$s};return $f;};$pkg.Unwrap=B;D=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:if($interfaceIsEqual(c,$ifaceNil)){$panic(new $String("errors: target cannot be nil"));}d=A.ValueOf(c);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=$clone(d,A.Value);f=$clone(e,A.Value).Type();g=f.Kind();$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(!((g===22))||$clone(e,A.Value).IsNil()){$s=2;continue;}$s=3;continue;case 2:$panic(new $String("errors: target must be a non-nil pointer"));case 3:h=f.Elem();$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;k=i.Kind();$s=9;case 9:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(!(!((k===20)))){j=false;$s=8;continue s;}l=i.Implements(E);$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}j=!l;case 8:if(j){$s=6;continue;}$s=7;continue;case 6:$panic(new $String("errors: *target must be interface or implement error"));case 7:case 11:if(!(!($interfaceIsEqual(b,$ifaceNil)))){$s=12;continue;}m=A.TypeOf(b).AssignableTo(i);$s=15;case 15:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if(m){$s=13;continue;}$s=14;continue;case 13:n=$clone(e,A.Value).Elem();$s=16;case 16:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=A.ValueOf(b);$s=17;case 17:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}$r=$clone(n,A.Value).Set($clone(o,A.Value));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return true;case 14:p=$assertType(b,K,true);q=p[0];r=p[1];if(!(r)){s=false;$s=21;continue s;}t=q.As(c);$s=22;case 22:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;case 21:if(s){$s=19;continue;}$s=20;continue;case 19:$s=-1;return true;case 20:u=B(b);$s=23;case 23:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}b=u;$s=11;continue;case 12:$s=-1;return false;}return;}var $f={$blk:D,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};$pkg.As=D;F=function(b){var b;return new G.ptr(b);};$pkg.New=F;G.ptr.prototype.Error=function(){var b;b=this;return b.s;};G.prototype.Error=function(){return this.$val.Error();};L.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];G.init("errors",[{prop:"s",name:"s",embedded:false,exported:false,typ:$String,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}a=A.TypeOf((H.nil)).Elem();$s=2;case 2:if($c){$c=false;a=a.$blk();}if(a&&a.$blk!==undefined){break s;}E=a;}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/cpu"]=(function(){var $pkg={},$init;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/bytealg"]=(function(){var $pkg={},$init,A,B,C,D,E,G,J,N,P,R;A=$packages["internal/cpu"];B=function(d,e){var d,e;$panic(new $String("unimplemented"));};$pkg.Index=B;C=function(d,e){var d,e;$panic(new $String("unimplemented"));};$pkg.IndexString=C;D=function(d){var d;$panic(new $String("unimplemented"));};$pkg.Cutover=D;E=function(d,e){var d,e,f,g,h,i;if(!((d.$length===e.$length))){return false;}f=d;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(!((i===((h<0||h>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h])))){return false;}g++;}return true;};$pkg.Equal=E;G=function(d,e){var d,e,f;f=0;while(true){if(!(f>0;}return-1;};$pkg.IndexByteString=G;J=function(d,e){var d,e,f,g,h,i;f=0;g=d;h=0;while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if(i===e){f=f+(1)>>0;}h++;}return f;};$pkg.Count=J;N=function(d){var d,e,f,g,h,i,j,k;e=0;f=0;while(true){if(!(f>>0)+((((f<0||f>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f])>>>0))>>>0;f=f+(1)>>0;}g=1;h=16777619;i=g;j=h;k=d.$length;while(true){if(!(k>0)){break;}if(!(((k&1)===0))){i=$imul(i,(j))>>>0;}j=$imul(j,(j))>>>0;k=(k>>$min((1),31))>>0;}return[e,i];};$pkg.HashStrBytes=N;P=function(d){var d,e,f,g,h,i,j,k;e=0;f=d.$length-1>>0;while(true){if(!(f>=0)){break;}e=($imul(e,16777619)>>>0)+((((f<0||f>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f])>>>0))>>>0;f=f-(1)>>0;}g=1;h=16777619;i=g;j=h;k=d.$length;while(true){if(!(k>0)){break;}if(!(((k&1)===0))){i=$imul(i,(j))>>>0;}j=$imul(j,(j))>>>0;k=(k>>$min((1),31))>>0;}return[e,i];};$pkg.HashStrRevBytes=P;R=function(d,e){var d,e,f,g,h,i,j,k,l,m;f=N(e);g=f[0];h=f[1];i=e.$length;j=0;k=0;while(true){if(!(k>>0)+((((k<0||k>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+k])>>>0))>>>0;k=k+(1)>>0;}if((j===g)&&E($subslice(d,0,i),e)){return 0;}l=i;while(true){if(!(l>>0;j=j+(((((l<0||l>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+l])>>>0)))>>>0;j=j-(($imul(h,(((m=l-i>>0,((m<0||m>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+m]))>>>0)))>>>0))>>>0;l=l+(1)>>0;if((j===g)&&E($subslice(d,(l-i>>0),l),e)){return l-i>>0;}}return-1;};$pkg.IndexRabinKarpBytes=R;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.MaxLen=0;}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/race"]=(function(){var $pkg={},$init,A,B,C,D,E;A=function(a){var a;};$pkg.Acquire=A;B=function(a){var a;};$pkg.Release=B;C=function(a){var a;};$pkg.ReleaseMerge=C;D=function(){};$pkg.Disable=D;E=function(){};$pkg.Enable=E;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["sync/atomic"]=(function(){var $pkg={},$init,A,B,AL,M,P,R,S,T,X,Z,AA,AC,AD,AF,AI,AJ;A=$packages["github.com/gopherjs/gopherjs/js"];B=$pkg.Value=$newType(0,$kindStruct,"atomic.Value",true,"sync/atomic",true,function(v_){this.$val=this;if(arguments.length===0){this.v=$ifaceNil;return;}this.v=v_;});AL=$ptrType(B);M=function(ad,ae,af){var ad,ae,af;if(ad.$get()===ae){ad.$set(af);return true;}return false;};$pkg.CompareAndSwapInt32=M;P=function(ad,ae,af){var ad,ae,af,ag;if((ag=ad.$get(),(ag.$high===ae.$high&&ag.$low===ae.$low))){ad.$set(af);return true;}return false;};$pkg.CompareAndSwapUint64=P;R=function(ad,ae,af){var ad,ae,af;if(ad.$get()===ae){ad.$set(af);return true;}return false;};$pkg.CompareAndSwapPointer=R;S=function(ad,ae){var ad,ae,af;af=ad.$get()+ae>>0;ad.$set(af);return af;};$pkg.AddInt32=S;T=function(ad,ae){var ad,ae,af;af=ad.$get()+ae>>>0;ad.$set(af);return af;};$pkg.AddUint32=T;X=function(ad){var ad;return ad.$get();};$pkg.LoadInt32=X;Z=function(ad){var ad;return ad.$get();};$pkg.LoadUint32=Z;AA=function(ad){var ad;return ad.$get();};$pkg.LoadUint64=AA;AC=function(ad){var ad;return ad.$get();};$pkg.LoadPointer=AC;AD=function(ad,ae){var ad,ae;ad.$set(ae);};$pkg.StoreInt32=AD;AF=function(ad,ae){var ad,ae;ad.$set(ae);};$pkg.StoreUint32=AF;AI=function(ad,ae){var ad,ae;ad.$set(ae);};$pkg.StorePointer=AI;B.ptr.prototype.Load=function(){var ad,ae;ad=$ifaceNil;ae=this;ad=ae.v;return ad;};B.prototype.Load=function(){return this.$val.Load();};B.ptr.prototype.Store=function(ad){var ad,ae;ae=this;ae.checkNew("store",ad);ae.v=ad;};B.prototype.Store=function(ad){return this.$val.Store(ad);};B.ptr.prototype.Swap=function(ad){var ad,ae,af,ag,ah;ae=$ifaceNil;af=this;af.checkNew("swap",ad);ag=af.v;ah=ad;ae=ag;af.v=ah;ae=ae;return ae;};B.prototype.Swap=function(ad){return this.$val.Swap(ad);};B.ptr.prototype.CompareAndSwap=function(ad,ae){var ad,ae,af,ag;af=false;ag=this;ag.checkNew("compare and swap",ae);if(!($interfaceIsEqual(ag.v,$ifaceNil)&&$interfaceIsEqual(ad,$ifaceNil))&&!AJ(ad,ae)){$panic(new $String("sync/atomic: compare and swap of inconsistently typed values into Value"));}if(!($interfaceIsEqual(ag.v,ad))){af=false;return af;}ag.v=ae;af=true;return af;};B.prototype.CompareAndSwap=function(ad,ae){return this.$val.CompareAndSwap(ad,ae);};B.ptr.prototype.checkNew=function(ad,ae){var ad,ae,af;af=this;if($interfaceIsEqual(ae,$ifaceNil)){$panic(new $String("sync/atomic: "+ad+" of nil value into Value"));}if(!($interfaceIsEqual(af.v,$ifaceNil))&&!AJ(ae,af.v)){$panic(new $String("sync/atomic: "+ad+" of inconsistently typed value into Value"));}};B.prototype.checkNew=function(ad,ae){return this.$val.checkNew(ad,ae);};AJ=function(ad,ae){var ad,ae;return ad.constructor===ae.constructor;};AL.methods=[{prop:"Load",name:"Load",pkg:"",typ:$funcType([],[$emptyInterface],false)},{prop:"Store",name:"Store",pkg:"",typ:$funcType([$emptyInterface],[],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$emptyInterface],[$emptyInterface],false)},{prop:"CompareAndSwap",name:"CompareAndSwap",pkg:"",typ:$funcType([$emptyInterface,$emptyInterface],[$Bool],false)},{prop:"checkNew",name:"checkNew",pkg:"sync/atomic",typ:$funcType([$String,$emptyInterface],[],false)}];B.init("sync/atomic",[{prop:"v",name:"v",embedded:false,exported:false,typ:$emptyInterface,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["sync"]=(function(){var $pkg={},$init,C,A,B,D,E,F,T,U,V,W,X,Z,AL,AT,AV,AW,AX,AY,BD,BE,BG,BH,BL,BM,BN,BO,BP,BQ,BT,BU,BV,Y,AC,AD,K,L,AA,AE,AF,AG,AH,AI,AJ,AK;C=$packages["github.com/gopherjs/gopherjs/js"];A=$packages["internal/race"];B=$packages["sync/atomic"];D=$pkg.RWMutex=$newType(0,$kindStruct,"sync.RWMutex",true,"sync",true,function(w_,writerSem_,readerSem_,readerCount_,readerWait_){this.$val=this;if(arguments.length===0){this.w=new U.ptr(0,0);this.writerSem=0;this.readerSem=0;this.readerCount=0;this.readerWait=0;return;}this.w=w_;this.writerSem=writerSem_;this.readerSem=readerSem_;this.readerCount=readerCount_;this.readerWait=readerWait_;});E=$pkg.rlocker=$newType(0,$kindStruct,"sync.rlocker",true,"sync",false,function(w_,writerSem_,readerSem_,readerCount_,readerWait_){this.$val=this;if(arguments.length===0){this.w=new U.ptr(0,0);this.writerSem=0;this.readerSem=0;this.readerCount=0;this.readerWait=0;return;}this.w=w_;this.writerSem=writerSem_;this.readerSem=readerSem_;this.readerCount=readerCount_;this.readerWait=readerWait_;});F=$pkg.notifyList=$newType(0,$kindStruct,"sync.notifyList",true,"sync",false,function(wait_,notify_,lock_,head_,tail_){this.$val=this;if(arguments.length===0){this.wait=0;this.notify=0;this.lock=0;this.head=0;this.tail=0;return;}this.wait=wait_;this.notify=notify_;this.lock=lock_;this.head=head_;this.tail=tail_;});T=$pkg.Once=$newType(0,$kindStruct,"sync.Once",true,"sync",true,function(done_,m_){this.$val=this;if(arguments.length===0){this.done=0;this.m=new U.ptr(0,0);return;}this.done=done_;this.m=m_;});U=$pkg.Mutex=$newType(0,$kindStruct,"sync.Mutex",true,"sync",true,function(state_,sema_){this.$val=this;if(arguments.length===0){this.state=0;this.sema=0;return;}this.state=state_;this.sema=sema_;});V=$pkg.Locker=$newType(8,$kindInterface,"sync.Locker",true,"sync",true,null);W=$pkg.Map=$newType(0,$kindStruct,"sync.Map",true,"sync",true,function(mu_,read_,dirty_,misses_){this.$val=this;if(arguments.length===0){this.mu=new U.ptr(0,0);this.read=new B.Value.ptr($ifaceNil);this.dirty=false;this.misses=0;return;}this.mu=mu_;this.read=read_;this.dirty=dirty_;this.misses=misses_;});X=$pkg.readOnly=$newType(0,$kindStruct,"sync.readOnly",true,"sync",false,function(m_,amended_){this.$val=this;if(arguments.length===0){this.m=false;this.amended=false;return;}this.m=m_;this.amended=amended_;});Z=$pkg.entry=$newType(0,$kindStruct,"sync.entry",true,"sync",false,function(p_){this.$val=this;if(arguments.length===0){this.p=0;return;}this.p=p_;});AL=$pkg.Pool=$newType(0,$kindStruct,"sync.Pool",true,"sync",true,function(store_,New_){this.$val=this;if(arguments.length===0){this.store=BT.nil;this.New=$throwNilPointerError;return;}this.store=store_;this.New=New_;});AT=$ptrType($Uint32);AV=$ptrType($Int32);AW=$ptrType(E);AX=$ptrType(D);AY=$ptrType($UnsafePointer);BD=$ptrType($emptyInterface);BE=$ptrType(Z);BG=$chanType($Bool,false,false);BH=$sliceType(BG);BL=$funcType([],[],false);BM=$ptrType(T);BN=$ptrType(U);BO=$funcType([$emptyInterface,$emptyInterface],[$Bool],false);BP=$ptrType(W);BQ=$mapType($emptyInterface,BE);BT=$sliceType($emptyInterface);BU=$ptrType(AL);BV=$funcType([],[$emptyInterface],false);D.ptr.prototype.RLock=function(){var{j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=this;if(false){$unused(j.w.state);A.Disable();}if(B.AddInt32((j.$ptr_readerCount||(j.$ptr_readerCount=new AV(function(){return this.$target.readerCount;},function($v){this.$target.readerCount=$v;},j))),1)<0){$s=1;continue;}$s=2;continue;case 1:$r=AF((j.$ptr_readerSem||(j.$ptr_readerSem=new AT(function(){return this.$target.readerSem;},function($v){this.$target.readerSem=$v;},j))),false,0);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(false){A.Enable();A.Acquire(((j.$ptr_readerSem||(j.$ptr_readerSem=new AT(function(){return this.$target.readerSem;},function($v){this.$target.readerSem=$v;},j)))));}$s=-1;return;}return;}var $f={$blk:D.ptr.prototype.RLock,$c:true,$r,j,$s};return $f;};D.prototype.RLock=function(){return this.$val.RLock();};D.ptr.prototype.TryRLock=function(){var j,k;j=this;if(false){$unused(j.w.state);A.Disable();}while(true){k=B.LoadInt32((j.$ptr_readerCount||(j.$ptr_readerCount=new AV(function(){return this.$target.readerCount;},function($v){this.$target.readerCount=$v;},j))));if(k<0){if(false){A.Enable();}return false;}if(B.CompareAndSwapInt32((j.$ptr_readerCount||(j.$ptr_readerCount=new AV(function(){return this.$target.readerCount;},function($v){this.$target.readerCount=$v;},j))),k,k+1>>0)){if(false){A.Enable();A.Acquire(((j.$ptr_readerSem||(j.$ptr_readerSem=new AT(function(){return this.$target.readerSem;},function($v){this.$target.readerSem=$v;},j)))));}return true;}}};D.prototype.TryRLock=function(){return this.$val.TryRLock();};D.ptr.prototype.RUnlock=function(){var{j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=this;if(false){$unused(j.w.state);A.ReleaseMerge(((j.$ptr_writerSem||(j.$ptr_writerSem=new AT(function(){return this.$target.writerSem;},function($v){this.$target.writerSem=$v;},j)))));A.Disable();}k=B.AddInt32((j.$ptr_readerCount||(j.$ptr_readerCount=new AV(function(){return this.$target.readerCount;},function($v){this.$target.readerCount=$v;},j))),-1);if(k<0){$s=1;continue;}$s=2;continue;case 1:$r=j.rUnlockSlow(k);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(false){A.Enable();}$s=-1;return;}return;}var $f={$blk:D.ptr.prototype.RUnlock,$c:true,$r,j,k,$s};return $f;};D.prototype.RUnlock=function(){return this.$val.RUnlock();};D.ptr.prototype.rUnlockSlow=function(j){var{j,k,$s,$r,$c}=$restore(this,{j});$s=$s||0;s:while(true){switch($s){case 0:k=this;if(((j+1>>0)===0)||((j+1>>0)===-1073741824)){A.Enable();AK("sync: RUnlock of unlocked RWMutex");}if(B.AddInt32((k.$ptr_readerWait||(k.$ptr_readerWait=new AV(function(){return this.$target.readerWait;},function($v){this.$target.readerWait=$v;},k))),-1)===0){$s=1;continue;}$s=2;continue;case 1:$r=AG((k.$ptr_writerSem||(k.$ptr_writerSem=new AT(function(){return this.$target.writerSem;},function($v){this.$target.writerSem=$v;},k))),false,1);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:D.ptr.prototype.rUnlockSlow,$c:true,$r,j,k,$s};return $f;};D.prototype.rUnlockSlow=function(j){return this.$val.rUnlockSlow(j);};D.ptr.prototype.Lock=function(){var{j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=this;if(false){$unused(j.w.state);A.Disable();}$r=j.w.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=B.AddInt32((j.$ptr_readerCount||(j.$ptr_readerCount=new AV(function(){return this.$target.readerCount;},function($v){this.$target.readerCount=$v;},j))),-1073741824)+1073741824>>0;if(!((k===0))&&!((B.AddInt32((j.$ptr_readerWait||(j.$ptr_readerWait=new AV(function(){return this.$target.readerWait;},function($v){this.$target.readerWait=$v;},j))),k)===0))){$s=2;continue;}$s=3;continue;case 2:$r=AF((j.$ptr_writerSem||(j.$ptr_writerSem=new AT(function(){return this.$target.writerSem;},function($v){this.$target.writerSem=$v;},j))),false,0);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:if(false){A.Enable();A.Acquire(((j.$ptr_readerSem||(j.$ptr_readerSem=new AT(function(){return this.$target.readerSem;},function($v){this.$target.readerSem=$v;},j)))));A.Acquire(((j.$ptr_writerSem||(j.$ptr_writerSem=new AT(function(){return this.$target.writerSem;},function($v){this.$target.writerSem=$v;},j)))));}$s=-1;return;}return;}var $f={$blk:D.ptr.prototype.Lock,$c:true,$r,j,k,$s};return $f;};D.prototype.Lock=function(){return this.$val.Lock();};D.ptr.prototype.TryLock=function(){var{j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=this;if(false){$unused(j.w.state);A.Disable();}if(!j.w.TryLock()){if(false){A.Enable();}$s=-1;return false;}if(!B.CompareAndSwapInt32((j.$ptr_readerCount||(j.$ptr_readerCount=new AV(function(){return this.$target.readerCount;},function($v){this.$target.readerCount=$v;},j))),0,-1073741824)){$s=1;continue;}$s=2;continue;case 1:$r=j.w.Unlock();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(false){A.Enable();}$s=-1;return false;case 2:if(false){A.Enable();A.Acquire(((j.$ptr_readerSem||(j.$ptr_readerSem=new AT(function(){return this.$target.readerSem;},function($v){this.$target.readerSem=$v;},j)))));A.Acquire(((j.$ptr_writerSem||(j.$ptr_writerSem=new AT(function(){return this.$target.writerSem;},function($v){this.$target.writerSem=$v;},j)))));}$s=-1;return true;}return;}var $f={$blk:D.ptr.prototype.TryLock,$c:true,$r,j,$s};return $f;};D.prototype.TryLock=function(){return this.$val.TryLock();};D.ptr.prototype.Unlock=function(){var{j,k,l,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=this;if(false){$unused(j.w.state);A.Release(((j.$ptr_readerSem||(j.$ptr_readerSem=new AT(function(){return this.$target.readerSem;},function($v){this.$target.readerSem=$v;},j)))));A.Disable();}k=B.AddInt32((j.$ptr_readerCount||(j.$ptr_readerCount=new AV(function(){return this.$target.readerCount;},function($v){this.$target.readerCount=$v;},j))),1073741824);if(k>=1073741824){A.Enable();AK("sync: Unlock of unlocked RWMutex");}l=0;case 1:if(!(l<((k>>0)))){$s=2;continue;}$r=AG((j.$ptr_readerSem||(j.$ptr_readerSem=new AT(function(){return this.$target.readerSem;},function($v){this.$target.readerSem=$v;},j))),false,0);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=l+(1)>>0;$s=1;continue;case 2:$r=j.w.Unlock();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(false){A.Enable();}$s=-1;return;}return;}var $f={$blk:D.ptr.prototype.Unlock,$c:true,$r,j,k,l,$s};return $f;};D.prototype.Unlock=function(){return this.$val.Unlock();};D.ptr.prototype.RLocker=function(){var j;j=this;return($pointerOfStructConversion(j,AW));};D.prototype.RLocker=function(){return this.$val.RLocker();};E.ptr.prototype.Lock=function(){var{j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=this;$r=($pointerOfStructConversion(j,AX)).RLock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:E.ptr.prototype.Lock,$c:true,$r,j,$s};return $f;};E.prototype.Lock=function(){return this.$val.Lock();};E.ptr.prototype.Unlock=function(){var{j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=this;$r=($pointerOfStructConversion(j,AX)).RUnlock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:E.ptr.prototype.Unlock,$c:true,$r,j,$s};return $f;};E.prototype.Unlock=function(){return this.$val.Unlock();};K=function(){var j;j=new F.ptr(0,0,0,0,0);AH(20);};L=function(){$throwRuntimeError("native function not implemented: sync.runtime_doSpin");};T.ptr.prototype.Do=function(j){var{j,k,$s,$r,$c}=$restore(this,{j});$s=$s||0;s:while(true){switch($s){case 0:k=this;if(B.LoadUint32((k.$ptr_done||(k.$ptr_done=new AT(function(){return this.$target.done;},function($v){this.$target.done=$v;},k))))===0){$s=1;continue;}$s=2;continue;case 1:$r=k.doSlow(j);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:T.ptr.prototype.Do,$c:true,$r,j,k,$s};return $f;};T.prototype.Do=function(j){return this.$val.Do(j);};T.ptr.prototype.doSlow=function(j){var{j,k,$s,$deferred,$r,$c}=$restore(this,{j});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);k=this;$r=k.m.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(k.m,"Unlock"),[]]);if(k.done===0){$s=2;continue;}$s=3;continue;case 2:$deferred.push([B.StoreUint32,[(k.$ptr_done||(k.$ptr_done=new AT(function(){return this.$target.done;},function($v){this.$target.done=$v;},k))),1]]);$r=j();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:T.ptr.prototype.doSlow,$c:true,$r,j,k,$s,$deferred};return $f;}}};T.prototype.doSlow=function(j){return this.$val.doSlow(j);};U.ptr.prototype.Lock=function(){var{j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=this;if(B.CompareAndSwapInt32((j.$ptr_state||(j.$ptr_state=new AV(function(){return this.$target.state;},function($v){this.$target.state=$v;},j))),0,1)){if(false){A.Acquire((j));}$s=-1;return;}$r=j.lockSlow();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:U.ptr.prototype.Lock,$c:true,$r,j,$s};return $f;};U.prototype.Lock=function(){return this.$val.Lock();};U.ptr.prototype.TryLock=function(){var j,k;j=this;k=j.state;if(!(((k&5)===0))){return false;}if(!B.CompareAndSwapInt32((j.$ptr_state||(j.$ptr_state=new AV(function(){return this.$target.state;},function($v){this.$target.state=$v;},j))),k,k|1)){return false;}if(false){A.Acquire((j));}return true;};U.prototype.TryLock=function(){return this.$val.TryLock();};U.ptr.prototype.lockSlow=function(){var{j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=this;k=new $Int64(0,0);l=false;m=false;n=0;o=j.state;case 1:if(((o&5)===1)&&AI(n)){$s=3;continue;}$s=4;continue;case 3:if(!m&&((o&2)===0)&&!(((o>>3>>0)===0))&&B.CompareAndSwapInt32((j.$ptr_state||(j.$ptr_state=new AV(function(){return this.$target.state;},function($v){this.$target.state=$v;},j))),o,o|2)){m=true;}$r=L();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n=n+(1)>>0;o=j.state;$s=1;continue;case 4:p=o;if((o&4)===0){p=p|(1);}if(!(((o&5)===0))){p=p+(8)>>0;}if(l&&!(((o&1)===0))){p=p|(4);}if(m){if((p&2)===0){AK("sync: inconsistent mutex state");}p=(p&~(2))>>0;}if(B.CompareAndSwapInt32((j.$ptr_state||(j.$ptr_state=new AV(function(){return this.$target.state;},function($v){this.$target.state=$v;},j))),o,p)){$s=6;continue;}$s=7;continue;case 6:if((o&5)===0){$s=2;continue;}q=!((k.$high===0&&k.$low===0));if((k.$high===0&&k.$low===0)){k=AJ();}$r=AF((j.$ptr_sema||(j.$ptr_sema=new AT(function(){return this.$target.sema;},function($v){this.$target.sema=$v;},j))),q,1);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=l||(r=(s=AJ(),new $Int64(s.$high-k.$high,s.$low-k.$low)),(r.$high>0||(r.$high===0&&r.$low>1000000)));o=j.state;if(!(((o&4)===0))){if(!(((o&3)===0))||((o>>3>>0)===0)){AK("sync: inconsistent mutex state");}t=-7;if(!l||((o>>3>>0)===1)){t=t-(4)>>0;}B.AddInt32((j.$ptr_state||(j.$ptr_state=new AV(function(){return this.$target.state;},function($v){this.$target.state=$v;},j))),t);$s=2;continue;}m=true;n=0;$s=8;continue;case 7:o=j.state;case 8:$s=1;continue;case 2:if(false){A.Acquire((j));}$s=-1;return;}return;}var $f={$blk:U.ptr.prototype.lockSlow,$c:true,$r,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};U.prototype.lockSlow=function(){return this.$val.lockSlow();};U.ptr.prototype.Unlock=function(){var{j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=this;if(false){$unused(j.state);A.Release((j));}k=B.AddInt32((j.$ptr_state||(j.$ptr_state=new AV(function(){return this.$target.state;},function($v){this.$target.state=$v;},j))),-1);if(!((k===0))){$s=1;continue;}$s=2;continue;case 1:$r=j.unlockSlow(k);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:U.ptr.prototype.Unlock,$c:true,$r,j,k,$s};return $f;};U.prototype.Unlock=function(){return this.$val.Unlock();};U.ptr.prototype.unlockSlow=function(j){var{j,k,l,$s,$r,$c}=$restore(this,{j});$s=$s||0;s:while(true){switch($s){case 0:k=this;if((((j+1>>0))&1)===0){AK("sync: unlock of unlocked mutex");}if((j&4)===0){$s=1;continue;}$s=2;continue;case 1:l=j;case 4:if(((l>>3>>0)===0)||!(((l&7)===0))){$s=-1;return;}j=((l-8>>0))|2;if(B.CompareAndSwapInt32((k.$ptr_state||(k.$ptr_state=new AV(function(){return this.$target.state;},function($v){this.$target.state=$v;},k))),l,j)){$s=6;continue;}$s=7;continue;case 6:$r=AG((k.$ptr_sema||(k.$ptr_sema=new AT(function(){return this.$target.sema;},function($v){this.$target.sema=$v;},k))),false,1);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 7:l=k.state;$s=4;continue;case 5:$s=3;continue;case 2:$r=AG((k.$ptr_sema||(k.$ptr_sema=new AT(function(){return this.$target.sema;},function($v){this.$target.sema=$v;},k))),true,1);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return;}return;}var $f={$blk:U.ptr.prototype.unlockSlow,$c:true,$r,j,k,l,$s};return $f;};U.prototype.unlockSlow=function(j){return this.$val.unlockSlow(j);};AA=function(j){var j,k;return new Z.ptr(((k||(k=new BD(function(){return j;},function($v){j=$v;})))));};W.ptr.prototype.Load=function(j){var{j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{j});$s=$s||0;s:while(true){switch($s){case 0:k=$ifaceNil;l=false;m=this;n=$assertType(m.read.Load(),X,true);o=$clone(n[0],X);p=(q=$mapIndex(o.m,$emptyInterface.keyFor(j)),q!==undefined?[q.v,true]:[BE.nil,false]);r=p[0];l=p[1];if(!l&&o.amended){$s=1;continue;}$s=2;continue;case 1:$r=m.mu.Lock();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s=$assertType(m.read.Load(),X,true);X.copy(o,s[0]);t=(u=$mapIndex(o.m,$emptyInterface.keyFor(j)),u!==undefined?[u.v,true]:[BE.nil,false]);r=t[0];l=t[1];if(!l&&o.amended){v=(w=$mapIndex(m.dirty,$emptyInterface.keyFor(j)),w!==undefined?[w.v,true]:[BE.nil,false]);r=v[0];l=v[1];m.missLocked();}$r=m.mu.Unlock();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(!l){x=$ifaceNil;y=false;k=x;l=y;$s=-1;return[k,l];}z=r.load();k=z[0];l=z[1];$s=-1;return[k,l];}return;}var $f={$blk:W.ptr.prototype.Load,$c:true,$r,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};W.prototype.Load=function(j){return this.$val.Load(j);};Z.ptr.prototype.load=function(){var j,k,l,m,n,o,p,q;j=$ifaceNil;k=false;l=this;m=B.LoadPointer((l.$ptr_p||(l.$ptr_p=new AY(function(){return this.$target.p;},function($v){this.$target.p=$v;},l))));if(m===0||m===Y){n=$ifaceNil;o=false;j=n;k=o;return[j,k];}p=(m).$get();q=true;j=p;k=q;return[j,k];};Z.prototype.load=function(){return this.$val.load();};W.ptr.prototype.Store=function(j,k){var{aa,ab,ac,ad,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{j,k});$s=$s||0;s:while(true){switch($s){case 0:k=[k];l=this;m=$assertType(l.read.Load(),X,true);n=$clone(m[0],X);o=(p=$mapIndex(n.m,$emptyInterface.keyFor(j)),p!==undefined?[p.v,true]:[BE.nil,false]);q=o[0];r=o[1];if(r&&q.tryStore((k.$ptr||(k.$ptr=new BD(function(){return this.$target[0];},function($v){this.$target[0]=$v;},k))))){$s=-1;return;}$r=l.mu.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s=$assertType(l.read.Load(),X,true);X.copy(n,s[0]);t=(u=$mapIndex(n.m,$emptyInterface.keyFor(j)),u!==undefined?[u.v,true]:[BE.nil,false]);v=t[0];w=t[1];if(w){if(v.unexpungeLocked()){x=j;(l.dirty||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(x),{k:x,v:v});}v.storeLocked((k.$ptr||(k.$ptr=new BD(function(){return this.$target[0];},function($v){this.$target[0]=$v;},k))));}else{y=(z=$mapIndex(l.dirty,$emptyInterface.keyFor(j)),z!==undefined?[z.v,true]:[BE.nil,false]);aa=y[0];ab=y[1];if(ab){aa.storeLocked((k.$ptr||(k.$ptr=new BD(function(){return this.$target[0];},function($v){this.$target[0]=$v;},k))));}else{if(!n.amended){l.dirtyLocked();l.read.Store((ac=new X.ptr(n.m,true),new ac.constructor.elem(ac)));}ad=j;(l.dirty||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(ad),{k:ad,v:AA(k[0])});}}$r=l.mu.Unlock();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:W.ptr.prototype.Store,$c:true,$r,aa,ab,ac,ad,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};W.prototype.Store=function(j,k){return this.$val.Store(j,k);};Z.ptr.prototype.tryStore=function(j){var j,k,l;k=this;while(true){l=B.LoadPointer((k.$ptr_p||(k.$ptr_p=new AY(function(){return this.$target.p;},function($v){this.$target.p=$v;},k))));if(l===Y){return false;}if(B.CompareAndSwapPointer((k.$ptr_p||(k.$ptr_p=new AY(function(){return this.$target.p;},function($v){this.$target.p=$v;},k))),l,(j))){return true;}}};Z.prototype.tryStore=function(j){return this.$val.tryStore(j);};Z.ptr.prototype.unexpungeLocked=function(){var j,k;j=false;k=this;j=B.CompareAndSwapPointer((k.$ptr_p||(k.$ptr_p=new AY(function(){return this.$target.p;},function($v){this.$target.p=$v;},k))),Y,0);return j;};Z.prototype.unexpungeLocked=function(){return this.$val.unexpungeLocked();};Z.ptr.prototype.storeLocked=function(j){var j,k;k=this;B.StorePointer((k.$ptr_p||(k.$ptr_p=new AY(function(){return this.$target.p;},function($v){this.$target.p=$v;},k))),(j));};Z.prototype.storeLocked=function(j){return this.$val.storeLocked(j);};W.ptr.prototype.LoadOrStore=function(j,k){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{j,k});$s=$s||0;s:while(true){switch($s){case 0:l=$ifaceNil;m=false;n=this;o=$assertType(n.read.Load(),X,true);p=$clone(o[0],X);q=(r=$mapIndex(p.m,$emptyInterface.keyFor(j)),r!==undefined?[r.v,true]:[BE.nil,false]);s=q[0];t=q[1];if(t){u=s.tryLoadOrStore(k);v=u[0];w=u[1];x=u[2];if(x){y=v;z=w;l=y;m=z;$s=-1;return[l,m];}}$r=n.mu.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aa=$assertType(n.read.Load(),X,true);X.copy(p,aa[0]);ab=(ac=$mapIndex(p.m,$emptyInterface.keyFor(j)),ac!==undefined?[ac.v,true]:[BE.nil,false]);ad=ab[0];ae=ab[1];if(ae){if(ad.unexpungeLocked()){af=j;(n.dirty||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(af),{k:af,v:ad});}ag=ad.tryLoadOrStore(k);l=ag[0];m=ag[1];}else{ah=(ai=$mapIndex(n.dirty,$emptyInterface.keyFor(j)),ai!==undefined?[ai.v,true]:[BE.nil,false]);aj=ah[0];ak=ah[1];if(ak){al=aj.tryLoadOrStore(k);l=al[0];m=al[1];n.missLocked();}else{if(!p.amended){n.dirtyLocked();n.read.Store((am=new X.ptr(p.m,true),new am.constructor.elem(am)));}an=j;(n.dirty||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(an),{k:an,v:AA(k)});ao=k;ap=false;l=ao;m=ap;}}$r=n.mu.Unlock();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aq=l;ar=m;l=aq;m=ar;$s=-1;return[l,m];}return;}var $f={$blk:W.ptr.prototype.LoadOrStore,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};W.prototype.LoadOrStore=function(j,k){return this.$val.LoadOrStore(j,k);};Z.ptr.prototype.tryLoadOrStore=function(j){var aa,ab,ac,ad,ae,af,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;k=$ifaceNil;l=false;m=false;n=this;o=B.LoadPointer((n.$ptr_p||(n.$ptr_p=new AY(function(){return this.$target.p;},function($v){this.$target.p=$v;},n))));if(o===Y){p=$ifaceNil;q=false;r=false;k=p;l=q;m=r;return[k,l,m];}if(!(o===0)){s=(o).$get();t=true;u=true;k=s;l=t;m=u;return[k,l,m];}v=j;while(true){if(B.CompareAndSwapPointer((n.$ptr_p||(n.$ptr_p=new AY(function(){return this.$target.p;},function($v){this.$target.p=$v;},n))),0,((w||(w=new BD(function(){return v;},function($v){v=$v;})))))){x=j;y=false;z=true;k=x;l=y;m=z;return[k,l,m];}o=B.LoadPointer((n.$ptr_p||(n.$ptr_p=new AY(function(){return this.$target.p;},function($v){this.$target.p=$v;},n))));if(o===Y){aa=$ifaceNil;ab=false;ac=false;k=aa;l=ab;m=ac;return[k,l,m];}if(!(o===0)){ad=(o).$get();ae=true;af=true;k=ad;l=ae;m=af;return[k,l,m];}}};Z.prototype.tryLoadOrStore=function(j){return this.$val.tryLoadOrStore(j);};W.ptr.prototype.LoadAndDelete=function(j){var{aa,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{j});$s=$s||0;s:while(true){switch($s){case 0:k=$ifaceNil;l=false;m=this;n=$assertType(m.read.Load(),X,true);o=$clone(n[0],X);p=(q=$mapIndex(o.m,$emptyInterface.keyFor(j)),q!==undefined?[q.v,true]:[BE.nil,false]);r=p[0];s=p[1];if(!s&&o.amended){$s=1;continue;}$s=2;continue;case 1:$r=m.mu.Lock();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}t=$assertType(m.read.Load(),X,true);X.copy(o,t[0]);u=(v=$mapIndex(o.m,$emptyInterface.keyFor(j)),v!==undefined?[v.v,true]:[BE.nil,false]);r=u[0];s=u[1];if(!s&&o.amended){w=(x=$mapIndex(m.dirty,$emptyInterface.keyFor(j)),x!==undefined?[x.v,true]:[BE.nil,false]);r=w[0];s=w[1];$mapDelete(m.dirty,$emptyInterface.keyFor(j));m.missLocked();}$r=m.mu.Unlock();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(s){y=r.delete$();k=y[0];l=y[1];$s=-1;return[k,l];}z=$ifaceNil;aa=false;k=z;l=aa;$s=-1;return[k,l];}return;}var $f={$blk:W.ptr.prototype.LoadAndDelete,$c:true,$r,aa,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};W.prototype.LoadAndDelete=function(j){return this.$val.LoadAndDelete(j);};W.ptr.prototype.Delete=function(j){var{j,k,l,$s,$r,$c}=$restore(this,{j});$s=$s||0;s:while(true){switch($s){case 0:k=this;l=k.LoadAndDelete(j);$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;$s=-1;return;}return;}var $f={$blk:W.ptr.prototype.Delete,$c:true,$r,j,k,l,$s};return $f;};W.prototype.Delete=function(j){return this.$val.Delete(j);};Z.ptr.prototype.delete$=function(){var j,k,l,m,n,o,p,q;j=$ifaceNil;k=false;l=this;while(true){m=B.LoadPointer((l.$ptr_p||(l.$ptr_p=new AY(function(){return this.$target.p;},function($v){this.$target.p=$v;},l))));if(m===0||m===Y){n=$ifaceNil;o=false;j=n;k=o;return[j,k];}if(B.CompareAndSwapPointer((l.$ptr_p||(l.$ptr_p=new AY(function(){return this.$target.p;},function($v){this.$target.p=$v;},l))),m,0)){p=(m).$get();q=true;j=p;k=q;return[j,k];}}};Z.prototype.delete$=function(){return this.$val.delete$();};W.ptr.prototype.Range=function(j){var{j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{j});$s=$s||0;s:while(true){switch($s){case 0:k=this;l=$assertType(k.read.Load(),X,true);m=$clone(l[0],X);if(m.amended){$s=1;continue;}$s=2;continue;case 1:$r=k.mu.Lock();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n=$assertType(k.read.Load(),X,true);X.copy(m,n[0]);if(m.amended){X.copy(m,new X.ptr(k.dirty,false));k.read.Store(new m.constructor.elem(m));k.dirty=false;k.misses=0;}$r=k.mu.Unlock();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:o=m.m;p=0;q=o?o.keys():undefined;r=o?o.size:0;case 5:if(!(p>0;if(j.misses<(j.dirty?j.dirty.size:0)){return;}j.read.Store((k=new X.ptr(j.dirty,false),new k.constructor.elem(k)));j.dirty=false;j.misses=0;};W.prototype.missLocked=function(){return this.$val.missLocked();};W.ptr.prototype.dirtyLocked=function(){var j,k,l,m,n,o,p,q,r,s,t,u,v;j=this;if(!(j.dirty===false)){return;}k=$assertType(j.read.Load(),X,true);l=$clone(k[0],X);j.dirty=(m=(l.m?l.m.size:0),((m<0||m>2147483647)?$throwRuntimeError("makemap: size out of range"):new $global.Map()));n=l.m;o=0;p=n?n.keys():undefined;q=n?n.size:0;while(true){if(!(o>>0))===0){$s=1;continue;}$s=2;continue;case 1:n=new $Chan($Bool,0);if(k){o=j;(AC||$throwRuntimeError("assignment to entry in nil map")).set(AT.keyFor(o),{k:o,v:$appendSlice(new BH([n]),(p=$mapIndex(AC,AT.keyFor(j)),p!==undefined?p.v:BH.nil))});}else{q=j;(AC||$throwRuntimeError("assignment to entry in nil map")).set(AT.keyFor(q),{k:q,v:$append((r=$mapIndex(AC,AT.keyFor(j)),r!==undefined?r.v:BH.nil),n)});}s=$recv(n);$s=3;case 3:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s[0];t=j;(AD||$throwRuntimeError("assignment to entry in nil map")).set(AT.keyFor(t),{k:t,v:(u=$mapIndex(AD,AT.keyFor(j)),u!==undefined?u.v:0)-(1)>>>0});if((v=$mapIndex(AD,AT.keyFor(j)),v!==undefined?v.v:0)===0){$mapDelete(AD,AT.keyFor(j));}case 2:j.$set(j.$get()-(1)>>>0);$s=-1;return;}return;}var $f={$blk:AF,$c:true,$r,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};AG=function(j,k,l){var{j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{j,k,l});$s=$s||0;s:while(true){switch($s){case 0:j.$set(j.$get()+(1)>>>0);n=(m=$mapIndex(AC,AT.keyFor(j)),m!==undefined?m.v:BH.nil);if(n.$length===0){$s=-1;return;}o=(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0]);n=$subslice(n,1);p=j;(AC||$throwRuntimeError("assignment to entry in nil map")).set(AT.keyFor(p),{k:p,v:n});if(n.$length===0){$mapDelete(AC,AT.keyFor(j));}q=j;(AD||$throwRuntimeError("assignment to entry in nil map")).set(AT.keyFor(q),{k:q,v:(r=$mapIndex(AD,AT.keyFor(j)),r!==undefined?r.v:0)+(1)>>>0});$r=$send(o,true);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AG,$c:true,$r,j,k,l,m,n,o,p,q,r,$s};return $f;};$linknames["sync.runtime_Semrelease"]=AG;AH=function(j){var j;};AI=function(j){var j;return false;};AJ=function(){return $mul64($internalize(new($global.Date)().getTime(),$Int64),new $Int64(0,1000000));};AK=function(j){var j;$throwRuntimeError($externalize(j,$String));};AL.ptr.prototype.Get=function(){var{j,k,l,m,n,o,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=this;if(j.store.$length===0){$s=1;continue;}$s=2;continue;case 1:if(!(j.New===$throwNilPointerError)){$s=3;continue;}$s=4;continue;case 3:k=j.New();$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=6;case 6:return l;case 4:$s=-1;return $ifaceNil;case 2:o=(m=j.store,n=j.store.$length-1>>0,((n<0||n>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]));j.store=$subslice(j.store,0,(j.store.$length-1>>0));$s=-1;return o;}return;}var $f={$blk:AL.ptr.prototype.Get,$c:true,$r,j,k,l,m,n,o,$s};return $f;};AL.prototype.Get=function(){return this.$val.Get();};AL.ptr.prototype.Put=function(j){var j,k;k=this;if($interfaceIsEqual(j,$ifaceNil)){return;}k.store=$append(k.store,j);};AL.prototype.Put=function(j){return this.$val.Put(j);};AX.methods=[{prop:"RLock",name:"RLock",pkg:"",typ:$funcType([],[],false)},{prop:"TryRLock",name:"TryRLock",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"RUnlock",name:"RUnlock",pkg:"",typ:$funcType([],[],false)},{prop:"rUnlockSlow",name:"rUnlockSlow",pkg:"sync",typ:$funcType([$Int32],[],false)},{prop:"Lock",name:"Lock",pkg:"",typ:$funcType([],[],false)},{prop:"TryLock",name:"TryLock",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Unlock",name:"Unlock",pkg:"",typ:$funcType([],[],false)},{prop:"RLocker",name:"RLocker",pkg:"",typ:$funcType([],[V],false)}];AW.methods=[{prop:"Lock",name:"Lock",pkg:"",typ:$funcType([],[],false)},{prop:"Unlock",name:"Unlock",pkg:"",typ:$funcType([],[],false)}];BM.methods=[{prop:"Do",name:"Do",pkg:"",typ:$funcType([BL],[],false)},{prop:"doSlow",name:"doSlow",pkg:"sync",typ:$funcType([BL],[],false)}];BN.methods=[{prop:"Lock",name:"Lock",pkg:"",typ:$funcType([],[],false)},{prop:"TryLock",name:"TryLock",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"lockSlow",name:"lockSlow",pkg:"sync",typ:$funcType([],[],false)},{prop:"Unlock",name:"Unlock",pkg:"",typ:$funcType([],[],false)},{prop:"unlockSlow",name:"unlockSlow",pkg:"sync",typ:$funcType([$Int32],[],false)}];BP.methods=[{prop:"Load",name:"Load",pkg:"",typ:$funcType([$emptyInterface],[$emptyInterface,$Bool],false)},{prop:"Store",name:"Store",pkg:"",typ:$funcType([$emptyInterface,$emptyInterface],[],false)},{prop:"LoadOrStore",name:"LoadOrStore",pkg:"",typ:$funcType([$emptyInterface,$emptyInterface],[$emptyInterface,$Bool],false)},{prop:"LoadAndDelete",name:"LoadAndDelete",pkg:"",typ:$funcType([$emptyInterface],[$emptyInterface,$Bool],false)},{prop:"Delete",name:"Delete",pkg:"",typ:$funcType([$emptyInterface],[],false)},{prop:"Range",name:"Range",pkg:"",typ:$funcType([BO],[],false)},{prop:"missLocked",name:"missLocked",pkg:"sync",typ:$funcType([],[],false)},{prop:"dirtyLocked",name:"dirtyLocked",pkg:"sync",typ:$funcType([],[],false)}];BE.methods=[{prop:"load",name:"load",pkg:"sync",typ:$funcType([],[$emptyInterface,$Bool],false)},{prop:"tryStore",name:"tryStore",pkg:"sync",typ:$funcType([BD],[$Bool],false)},{prop:"unexpungeLocked",name:"unexpungeLocked",pkg:"sync",typ:$funcType([],[$Bool],false)},{prop:"storeLocked",name:"storeLocked",pkg:"sync",typ:$funcType([BD],[],false)},{prop:"tryLoadOrStore",name:"tryLoadOrStore",pkg:"sync",typ:$funcType([$emptyInterface],[$emptyInterface,$Bool,$Bool],false)},{prop:"delete$",name:"delete",pkg:"sync",typ:$funcType([],[$emptyInterface,$Bool],false)},{prop:"tryExpungeLocked",name:"tryExpungeLocked",pkg:"sync",typ:$funcType([],[$Bool],false)}];BU.methods=[{prop:"Get",name:"Get",pkg:"",typ:$funcType([],[$emptyInterface],false)},{prop:"Put",name:"Put",pkg:"",typ:$funcType([$emptyInterface],[],false)}];D.init("sync",[{prop:"w",name:"w",embedded:false,exported:false,typ:U,tag:""},{prop:"writerSem",name:"writerSem",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"readerSem",name:"readerSem",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"readerCount",name:"readerCount",embedded:false,exported:false,typ:$Int32,tag:""},{prop:"readerWait",name:"readerWait",embedded:false,exported:false,typ:$Int32,tag:""}]);E.init("sync",[{prop:"w",name:"w",embedded:false,exported:false,typ:U,tag:""},{prop:"writerSem",name:"writerSem",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"readerSem",name:"readerSem",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"readerCount",name:"readerCount",embedded:false,exported:false,typ:$Int32,tag:""},{prop:"readerWait",name:"readerWait",embedded:false,exported:false,typ:$Int32,tag:""}]);F.init("sync",[{prop:"wait",name:"wait",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"notify",name:"notify",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"lock",name:"lock",embedded:false,exported:false,typ:$Uintptr,tag:""},{prop:"head",name:"head",embedded:false,exported:false,typ:$UnsafePointer,tag:""},{prop:"tail",name:"tail",embedded:false,exported:false,typ:$UnsafePointer,tag:""}]);T.init("sync",[{prop:"done",name:"done",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"m",name:"m",embedded:false,exported:false,typ:U,tag:""}]);U.init("sync",[{prop:"state",name:"state",embedded:false,exported:false,typ:$Int32,tag:""},{prop:"sema",name:"sema",embedded:false,exported:false,typ:$Uint32,tag:""}]);V.init([{prop:"Lock",name:"Lock",pkg:"",typ:$funcType([],[],false)},{prop:"Unlock",name:"Unlock",pkg:"",typ:$funcType([],[],false)}]);W.init("sync",[{prop:"mu",name:"mu",embedded:false,exported:false,typ:U,tag:""},{prop:"read",name:"read",embedded:false,exported:false,typ:B.Value,tag:""},{prop:"dirty",name:"dirty",embedded:false,exported:false,typ:BQ,tag:""},{prop:"misses",name:"misses",embedded:false,exported:false,typ:$Int,tag:""}]);X.init("sync",[{prop:"m",name:"m",embedded:false,exported:false,typ:BQ,tag:""},{prop:"amended",name:"amended",embedded:false,exported:false,typ:$Bool,tag:""}]);Z.init("sync",[{prop:"p",name:"p",embedded:false,exported:false,typ:$UnsafePointer,tag:""}]);AL.init("sync",[{prop:"store",name:"store",embedded:false,exported:false,typ:BT,tag:""},{prop:"New",name:"New",embedded:false,exported:true,typ:BV,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=C.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}Y=(new Uint8Array(8));AC=new $global.Map();AD=new $global.Map();K();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["io"]=(function(){var $pkg={},$init,A,B,N,O,P,S,T,Z,AA,AD,AE,AG,AH,AI,AR,BE,BF,BG,BL,M,AU,AV,AZ,AJ,AK,AL,AN,AP,BC;A=$packages["errors"];B=$packages["sync"];N=$pkg.Reader=$newType(8,$kindInterface,"io.Reader",true,"io",true,null);O=$pkg.Writer=$newType(8,$kindInterface,"io.Writer",true,"io",true,null);P=$pkg.Closer=$newType(8,$kindInterface,"io.Closer",true,"io",true,null);S=$pkg.ReadCloser=$newType(8,$kindInterface,"io.ReadCloser",true,"io",true,null);T=$pkg.WriteCloser=$newType(8,$kindInterface,"io.WriteCloser",true,"io",true,null);Z=$pkg.ReaderFrom=$newType(8,$kindInterface,"io.ReaderFrom",true,"io",true,null);AA=$pkg.WriterTo=$newType(8,$kindInterface,"io.WriterTo",true,"io",true,null);AD=$pkg.ByteReader=$newType(8,$kindInterface,"io.ByteReader",true,"io",true,null);AE=$pkg.ByteScanner=$newType(8,$kindInterface,"io.ByteScanner",true,"io",true,null);AG=$pkg.RuneReader=$newType(8,$kindInterface,"io.RuneReader",true,"io",true,null);AH=$pkg.RuneScanner=$newType(8,$kindInterface,"io.RuneScanner",true,"io",true,null);AI=$pkg.StringWriter=$newType(8,$kindInterface,"io.StringWriter",true,"io",true,null);AR=$pkg.LimitedReader=$newType(0,$kindStruct,"io.LimitedReader",true,"io",true,function(R_,N_){this.$val=this;if(arguments.length===0){this.R=$ifaceNil;this.N=new $Int64(0,0);return;}this.R=R_;this.N=N_;});BE=$sliceType($emptyInterface);BF=$sliceType($Uint8);BG=$ptrType(BF);BL=$ptrType(AR);AJ=function(c,d){var{c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{c,d});$s=$s||0;s:while(true){switch($s){case 0:e=0;f=$ifaceNil;g=$assertType(c,AI,true);h=g[0];i=g[1];if(i){$s=1;continue;}$s=2;continue;case 1:k=h.WriteString(d);$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;e=j[0];f=j[1];l=[e,f];$s=4;case 4:return l;case 2:n=c.Write((new BF($stringToBytes(d))));$s=5;case 5:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;e=m[0];f=m[1];o=[e,f];$s=6;case 6:return o;}return;}var $f={$blk:AJ,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};$pkg.WriteString=AJ;AK=function(c,d,e){var{c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=0;g=$ifaceNil;if(d.$length>0;$s=1;continue;case 2:if(f>=e){g=$ifaceNil;}else if(f>0&&$interfaceIsEqual(g,$pkg.EOF)){g=$pkg.ErrUnexpectedEOF;}$s=-1;return[f,g];}return;}var $f={$blk:AK,$c:true,$r,c,d,e,f,g,h,i,j,k,l,$s};return $f;};$pkg.ReadAtLeast=AK;AL=function(c,d){var{c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{c,d});$s=$s||0;s:while(true){switch($s){case 0:e=0;f=$ifaceNil;h=AK(c,d,d.$length);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;e=g[0];f=g[1];i=[e,f];$s=2;case 2:return i;}return;}var $f={$blk:AL,$c:true,$r,c,d,e,f,g,h,i,$s};return $f;};$pkg.ReadFull=AL;AN=function(c,d){var{c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{c,d});$s=$s||0;s:while(true){switch($s){case 0:e=new $Int64(0,0);f=$ifaceNil;h=AP(c,d,BF.nil);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;e=g[0];f=g[1];i=[e,f];$s=2;case 2:return i;}return;}var $f={$blk:AN,$c:true,$r,c,d,e,f,g,h,i,$s};return $f;};$pkg.Copy=AN;AP=function(c,d,e){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=new $Int64(0,0);g=$ifaceNil;h=$assertType(d,AA,true);i=h[0];j=h[1];if(j){$s=1;continue;}$s=2;continue;case 1:l=i.WriteTo(c);$s=3;case 3:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;f=k[0];g=k[1];m=[f,g];$s=4;case 4:return m;case 2:n=$assertType(c,Z,true);o=n[0];p=n[1];if(p){$s=5;continue;}$s=6;continue;case 5:r=o.ReadFrom(d);$s=7;case 7:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;f=q[0];g=q[1];s=[f,g];$s=8;case 8:return s;case 6:if(e===BF.nil){t=32768;u=$assertType(d,BL,true);v=u[0];w=u[1];if(w&&(x=(new $Int64(0,t)),y=v.N,(x.$high>y.$high||(x.$high===y.$high&&x.$low>y.$low)))){if((z=v.N,(z.$high<0||(z.$high===0&&z.$low<1)))){t=1;}else{t=(((aa=v.N,aa.$low+((aa.$high>>31)*4294967296))>>0));}}e=$makeSlice(BF,t);}case 9:ac=d.Read(e);$s=11;case 11:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ab=ac;ad=ab[0];ae=ab[1];if(ad>0){$s=12;continue;}$s=13;continue;case 12:ag=c.Write($subslice(e,0,ad));$s=14;case 14:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;ah=af[0];ai=af[1];if(ah<0||adk.$high||(j.$high===k.$high&&j.$low>k.$low)))){c=$subslice(c,0,$flatten64(f.N));}m=f.R.Read(c);$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;d=l[0];e=l[1];f.N=(n=f.N,o=(new $Int64(0,d)),new $Int64(n.$high-o.$high,n.$low-o.$low));$s=-1;return[d,e];}return;}var $f={$blk:AR.ptr.prototype.Read,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};AR.prototype.Read=function(c){return this.$val.Read(c);};BC=function(c){var{c,d,e,f,g,h,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=$makeSlice(BF,0,512);case 1:if(d.$length===d.$capacity){d=$subslice($append(d,0),0,d.$length);}f=c.Read($subslice(d,d.$length,d.$capacity));$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];d=$subslice(d,0,(d.$length+g>>0));if(!($interfaceIsEqual(h,$ifaceNil))){if($interfaceIsEqual(h,$pkg.EOF)){h=$ifaceNil;}$s=-1;return[d,h];}$s=1;continue;case 2:$s=-1;return[BF.nil,$ifaceNil];}return;}var $f={$blk:BC,$c:true,$r,c,d,e,f,g,h,$s};return $f;};$pkg.ReadAll=BC;BL.methods=[{prop:"Read",name:"Read",pkg:"",typ:$funcType([BF],[$Int,$error],false)}];N.init([{prop:"Read",name:"Read",pkg:"",typ:$funcType([BF],[$Int,$error],false)}]);O.init([{prop:"Write",name:"Write",pkg:"",typ:$funcType([BF],[$Int,$error],false)}]);P.init([{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[$error],false)}]);S.init([{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[$error],false)},{prop:"Read",name:"Read",pkg:"",typ:$funcType([BF],[$Int,$error],false)}]);T.init([{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[$error],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([BF],[$Int,$error],false)}]);Z.init([{prop:"ReadFrom",name:"ReadFrom",pkg:"",typ:$funcType([N],[$Int64,$error],false)}]);AA.init([{prop:"WriteTo",name:"WriteTo",pkg:"",typ:$funcType([O],[$Int64,$error],false)}]);AD.init([{prop:"ReadByte",name:"ReadByte",pkg:"",typ:$funcType([],[$Uint8,$error],false)}]);AE.init([{prop:"ReadByte",name:"ReadByte",pkg:"",typ:$funcType([],[$Uint8,$error],false)},{prop:"UnreadByte",name:"UnreadByte",pkg:"",typ:$funcType([],[$error],false)}]);AG.init([{prop:"ReadRune",name:"ReadRune",pkg:"",typ:$funcType([],[$Int32,$Int,$error],false)}]);AH.init([{prop:"ReadRune",name:"ReadRune",pkg:"",typ:$funcType([],[$Int32,$Int,$error],false)},{prop:"UnreadRune",name:"UnreadRune",pkg:"",typ:$funcType([],[$error],false)}]);AI.init([{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([$String],[$Int,$error],false)}]);AR.init("",[{prop:"R",name:"R",embedded:false,exported:true,typ:N,tag:""},{prop:"N",name:"N",embedded:false,exported:true,typ:$Int64,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.ErrClosedPipe=A.New("io: read/write on closed pipe");$pkg.ErrShortWrite=A.New("short write");M=A.New("invalid write result");$pkg.ErrShortBuffer=A.New("short buffer");$pkg.EOF=A.New("EOF");$pkg.ErrUnexpectedEOF=A.New("unexpected EOF");$pkg.ErrNoProgress=A.New("multiple Read calls return no data or error");AU=A.New("Seek: invalid whence");AV=A.New("Seek: invalid offset");AZ=new B.Pool.ptr(BE.nil,(function(){var c,d;c=$makeSlice(BF,8192);return(d||(d=new BG(function(){return c;},function($v){c=$convertSliceType($v,BF);})));}));}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["unicode"]=(function(){var $pkg={},$init,IF,IG,IH,II,IK,IW,JM,JN,JO,JP,JQ,JR,JS,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,CY,CZ,DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DO,DP,DQ,DR,DS,DT,DU,DV,DW,DX,DY,DZ,EA,EB,EC,ED,EE,EF,EG,EH,EI,EJ,EK,EL,EM,EN,EO,EP,EQ,ER,ES,ET,EU,EV,EW,EX,EY,EZ,FA,FB,FC,FD,FE,FF,FG,FH,FI,FJ,FK,FL,FM,FN,FO,FP,FQ,FR,FS,FT,FU,FV,FW,FX,FY,FZ,GA,GB,GC,GD,GE,GF,GG,GH,GI,GJ,HR,HS,HT,HU,HV,HW,HX,HY,HZ,IA,IB,IC,ID,IE,IL,IM,IN,IO,IP,IS,IT,IU,IX,IY,IZ,JB,JD,JF,JH,JJ,JK;IF=$pkg.RangeTable=$newType(0,$kindStruct,"unicode.RangeTable",true,"unicode",true,function(R16_,R32_,LatinOffset_){this.$val=this;if(arguments.length===0){this.R16=JM.nil;this.R32=JN.nil;this.LatinOffset=0;return;}this.R16=R16_;this.R32=R32_;this.LatinOffset=LatinOffset_;});IG=$pkg.Range16=$newType(0,$kindStruct,"unicode.Range16",true,"unicode",true,function(Lo_,Hi_,Stride_){this.$val=this;if(arguments.length===0){this.Lo=0;this.Hi=0;this.Stride=0;return;}this.Lo=Lo_;this.Hi=Hi_;this.Stride=Stride_;});IH=$pkg.Range32=$newType(0,$kindStruct,"unicode.Range32",true,"unicode",true,function(Lo_,Hi_,Stride_){this.$val=this;if(arguments.length===0){this.Lo=0;this.Hi=0;this.Stride=0;return;}this.Lo=Lo_;this.Hi=Hi_;this.Stride=Stride_;});II=$pkg.CaseRange=$newType(0,$kindStruct,"unicode.CaseRange",true,"unicode",true,function(Lo_,Hi_,Delta_){this.$val=this;if(arguments.length===0){this.Lo=0;this.Hi=0;this.Delta=JQ.zero();return;}this.Lo=Lo_;this.Hi=Hi_;this.Delta=Delta_;});IK=$pkg.d=$newType(12,$kindArray,"unicode.d",true,"unicode",false,null);IW=$pkg.foldPair=$newType(0,$kindStruct,"unicode.foldPair",true,"unicode",false,function(From_,To_){this.$val=this;if(arguments.length===0){this.From=0;this.To=0;return;}this.From=From_;this.To=To_;});JM=$sliceType(IG);JN=$sliceType(IH);JO=$sliceType(IW);JP=$sliceType(II);JQ=$arrayType($Int32,3);JR=$ptrType(IF);JS=$sliceType(JR);IL=function(b,c){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(b.$length<=18||c<=255){d=b;e=0;while(true){if(!(e=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]);if(c>>16))%g.Stride,h===h?h:$throwRuntimeError("integer divide by zero"))===0);}e++;}return false;}i=0;j=b.$length;while(true){if(!(i>0))/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero"))>>0;m=((l<0||l>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+l]);if(m.Lo<=c&&c<=m.Hi){return(m.Stride===1)||((n=((c-m.Lo<<16>>>16))%m.Stride,n===n?n:$throwRuntimeError("integer divide by zero"))===0);}if(c>0;}}return false;};IM=function(b,c){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(b.$length<=18){d=b;e=0;while(true){if(!(e=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]);if(c>>0))%g.Stride,h===h?h:$throwRuntimeError("integer divide by zero"))===0);}e++;}return false;}i=0;j=b.$length;while(true){if(!(i>0))/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero"))>>0;m=$clone(((l<0||l>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+l]),IH);if(m.Lo<=c&&c<=m.Hi){return(m.Stride===1)||((n=((c-m.Lo>>>0))%m.Stride,n===n?n:$throwRuntimeError("integer divide by zero"))===0);}if(c>0;}}return false;};IN=function(b,c){var b,c,d,e,f;d=b.R16;if(d.$length>0&&((c>>>0))<=(((e=d.$length-1>>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e])).Hi>>>0))){return IL(d,((c<<16>>>16)));}f=b.R32;if(f.$length>0&&c>=(((0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).Lo>>0))){return IM(f,((c>>>0)));}return false;};$pkg.Is=IN;IO=function(b,c){var b,c,d,e,f,g;d=b.R16;e=b.LatinOffset;if(d.$length>e&&((c>>>0))<=(((f=d.$length-1>>0,((f<0||f>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f])).Hi>>>0))){return IL($subslice(d,e),((c<<16>>>16)));}g=b.R32;if(g.$length>0&&c>=(((0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]).Lo>>0))){return IM(g,((c>>>0)));}return false;};IP=function(b){var b,c;if(((b>>>0))<=255){return(((c=((b<<24>>>24)),((c<0||c>=HT.length)?($throwRuntimeError("index out of range"),undefined):HT[c]))&96)>>>0)===32;}return IO($pkg.Upper,b);};$pkg.IsUpper=IP;IS=function(b,c){var b,c,d;d=JJ(b,c,$pkg.CaseRanges);c=d[0];return c;};$pkg.To=IS;IT=function(b){var b;if(b<=127){if(97<=b&&b<=122){b=b-(32)>>0;}return b;}return IS(0,b);};$pkg.ToUpper=IT;IU=function(b){var b;if(b<=127){if(65<=b&&b<=90){b=b+(32)>>0;}return b;}return IS(1,b);};$pkg.ToLower=IU;IX=function(b){var b,c,d,e,f,g;if(b<0||b>1114111){return b;}if(((b>>0))<128){return((((b<0||b>=HU.length)?($throwRuntimeError("index out of range"),undefined):HU[b])>>0));}c=0;d=HV.$length;while(true){if(!(c>0))/2,(e===e&&e!==1/0&&e!==-1/0)?e>>0:$throwRuntimeError("integer divide by zero"))>>0;if(((((f<0||f>=HV.$length)?($throwRuntimeError("index out of range"),undefined):HV.$array[HV.$offset+f]).From>>0))>0;}else{d=f;}}if(c=HV.$length)?($throwRuntimeError("index out of range"),undefined):HV.$array[HV.$offset+c]).From>>0))===b)){return((((c<0||c>=HV.$length)?($throwRuntimeError("index out of range"),undefined):HV.$array[HV.$offset+c]).To>>0));}g=IU(b);if(!((g===b))){return g;}return IT(b);};$pkg.SimpleFold=IX;IY=function(b){var b,c;if(((b>>>0))<=255){return!(((((c=((b<<24>>>24)),((c<0||c>=HT.length)?($throwRuntimeError("index out of range"),undefined):HT[c]))&144)>>>0)===0));}return JB(b,$pkg.GraphicRanges);};$pkg.IsGraphic=IY;IZ=function(b){var b,c;if(((b>>>0))<=255){return!(((((c=((b<<24>>>24)),((c<0||c>=HT.length)?($throwRuntimeError("index out of range"),undefined):HT[c]))&128)>>>0)===0));}return JB(b,$pkg.PrintRanges);};$pkg.IsPrint=IZ;JB=function(b,c){var b,c,d,e,f;d=c;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(IN(f,b)){return true;}e++;}return false;};$pkg.In=JB;JD=function(b){var b,c;if(((b>>>0))<=255){return!(((((c=((b<<24>>>24)),((c<0||c>=HT.length)?($throwRuntimeError("index out of range"),undefined):HT[c]))&96)>>>0)===0));}return IO($pkg.Letter,b);};$pkg.IsLetter=JD;JF=function(b){var b,c;if(((b>>>0))<=255){return!(((((c=((b<<24>>>24)),((c<0||c>=HT.length)?($throwRuntimeError("index out of range"),undefined):HT[c]))&4)>>>0)===0));}return IO($pkg.Number,b);};$pkg.IsNumber=JF;JH=function(b){var b,c;if(((b>>>0))<=255){c=b;if((c===(9))||(c===(10))||(c===(11))||(c===(12))||(c===(13))||(c===(32))||(c===(133))||(c===(160))){return true;}return false;}return IO($pkg.White_Space,b);};$pkg.IsSpace=JH;JJ=function(b,c,d){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=0;f=false;if(b<0||3<=b){g=65533;h=false;e=g;f=h;return[e,f];}i=0;j=d.$length;while(true){if(!(i>0))/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero"))>>0;m=((l<0||l>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+l]);if(((m.Lo>>0))<=c&&c<=((m.Hi>>0))){o=((n=m.Delta,((b<0||b>=n.length)?($throwRuntimeError("index out of range"),undefined):n[b])));if(o>1114111){p=((m.Lo>>0))+((((((c-((m.Lo>>0))>>0))&~1)>>0)|(((b&1)>>0))))>>0;q=true;e=p;f=q;return[e,f];}r=c+o>>0;s=true;e=r;f=s;return[e,f];}if(c<((m.Lo>>0))){j=l;}else{i=l+1>>0;}}t=c;u=false;e=t;f=u;return[e,f];};JK=function(b){var b;if(b<=255){return 48<=b&&b<=57;}return IO($pkg.Digit,b);};$pkg.IsDigit=JK;IF.init("",[{prop:"R16",name:"R16",embedded:false,exported:true,typ:JM,tag:""},{prop:"R32",name:"R32",embedded:false,exported:true,typ:JN,tag:""},{prop:"LatinOffset",name:"LatinOffset",embedded:false,exported:true,typ:$Int,tag:""}]);IG.init("",[{prop:"Lo",name:"Lo",embedded:false,exported:true,typ:$Uint16,tag:""},{prop:"Hi",name:"Hi",embedded:false,exported:true,typ:$Uint16,tag:""},{prop:"Stride",name:"Stride",embedded:false,exported:true,typ:$Uint16,tag:""}]);IH.init("",[{prop:"Lo",name:"Lo",embedded:false,exported:true,typ:$Uint32,tag:""},{prop:"Hi",name:"Hi",embedded:false,exported:true,typ:$Uint32,tag:""},{prop:"Stride",name:"Stride",embedded:false,exported:true,typ:$Uint32,tag:""}]);II.init("",[{prop:"Lo",name:"Lo",embedded:false,exported:true,typ:$Uint32,tag:""},{prop:"Hi",name:"Hi",embedded:false,exported:true,typ:$Uint32,tag:""},{prop:"Delta",name:"Delta",embedded:false,exported:true,typ:IK,tag:""}]);IK.init($Int32,3);IW.init("",[{prop:"From",name:"From",embedded:false,exported:true,typ:$Uint16,tag:""},{prop:"To",name:"To",embedded:false,exported:true,typ:$Uint16,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:A=new IF.ptr(new JM([new IG.ptr(0,31,1),new IG.ptr(127,159,1),new IG.ptr(173,1536,1363),new IG.ptr(1537,1541,1),new IG.ptr(1564,1757,193),new IG.ptr(1807,2274,467),new IG.ptr(6158,8203,2045),new IG.ptr(8204,8207,1),new IG.ptr(8234,8238,1),new IG.ptr(8288,8292,1),new IG.ptr(8294,8303,1),new IG.ptr(55296,63743,1),new IG.ptr(65279,65529,250),new IG.ptr(65530,65531,1)]),new JN([new IH.ptr(69821,69837,16),new IH.ptr(78896,78904,1),new IH.ptr(113824,113827,1),new IH.ptr(119155,119162,1),new IH.ptr(917505,917536,31),new IH.ptr(917537,917631,1),new IH.ptr(983040,1048573,1),new IH.ptr(1048576,1114109,1)]),2);B=new IF.ptr(new JM([new IG.ptr(0,31,1),new IG.ptr(127,159,1)]),JN.nil,2);C=new IF.ptr(new JM([new IG.ptr(173,1536,1363),new IG.ptr(1537,1541,1),new IG.ptr(1564,1757,193),new IG.ptr(1807,2274,467),new IG.ptr(6158,8203,2045),new IG.ptr(8204,8207,1),new IG.ptr(8234,8238,1),new IG.ptr(8288,8292,1),new IG.ptr(8294,8303,1),new IG.ptr(65279,65529,250),new IG.ptr(65530,65531,1)]),new JN([new IH.ptr(69821,69837,16),new IH.ptr(78896,78904,1),new IH.ptr(113824,113827,1),new IH.ptr(119155,119162,1),new IH.ptr(917505,917536,31),new IH.ptr(917537,917631,1)]),0);D=new IF.ptr(new JM([new IG.ptr(57344,63743,1)]),new JN([new IH.ptr(983040,1048573,1),new IH.ptr(1048576,1114109,1)]),0);E=new IF.ptr(new JM([new IG.ptr(55296,57343,1)]),JN.nil,0);F=new IF.ptr(new JM([new IG.ptr(65,90,1),new IG.ptr(97,122,1),new IG.ptr(170,181,11),new IG.ptr(186,192,6),new IG.ptr(193,214,1),new IG.ptr(216,246,1),new IG.ptr(248,705,1),new IG.ptr(710,721,1),new IG.ptr(736,740,1),new IG.ptr(748,750,2),new IG.ptr(880,884,1),new IG.ptr(886,887,1),new IG.ptr(890,893,1),new IG.ptr(895,902,7),new IG.ptr(904,906,1),new IG.ptr(908,910,2),new IG.ptr(911,929,1),new IG.ptr(931,1013,1),new IG.ptr(1015,1153,1),new IG.ptr(1162,1327,1),new IG.ptr(1329,1366,1),new IG.ptr(1369,1376,7),new IG.ptr(1377,1416,1),new IG.ptr(1488,1514,1),new IG.ptr(1519,1522,1),new IG.ptr(1568,1610,1),new IG.ptr(1646,1647,1),new IG.ptr(1649,1747,1),new IG.ptr(1749,1765,16),new IG.ptr(1766,1774,8),new IG.ptr(1775,1786,11),new IG.ptr(1787,1788,1),new IG.ptr(1791,1808,17),new IG.ptr(1810,1839,1),new IG.ptr(1869,1957,1),new IG.ptr(1969,1994,25),new IG.ptr(1995,2026,1),new IG.ptr(2036,2037,1),new IG.ptr(2042,2048,6),new IG.ptr(2049,2069,1),new IG.ptr(2074,2084,10),new IG.ptr(2088,2112,24),new IG.ptr(2113,2136,1),new IG.ptr(2144,2154,1),new IG.ptr(2208,2228,1),new IG.ptr(2230,2247,1),new IG.ptr(2308,2361,1),new IG.ptr(2365,2384,19),new IG.ptr(2392,2401,1),new IG.ptr(2417,2432,1),new IG.ptr(2437,2444,1),new IG.ptr(2447,2448,1),new IG.ptr(2451,2472,1),new IG.ptr(2474,2480,1),new IG.ptr(2482,2486,4),new IG.ptr(2487,2489,1),new IG.ptr(2493,2510,17),new IG.ptr(2524,2525,1),new IG.ptr(2527,2529,1),new IG.ptr(2544,2545,1),new IG.ptr(2556,2565,9),new IG.ptr(2566,2570,1),new IG.ptr(2575,2576,1),new IG.ptr(2579,2600,1),new IG.ptr(2602,2608,1),new IG.ptr(2610,2611,1),new IG.ptr(2613,2614,1),new IG.ptr(2616,2617,1),new IG.ptr(2649,2652,1),new IG.ptr(2654,2674,20),new IG.ptr(2675,2676,1),new IG.ptr(2693,2701,1),new IG.ptr(2703,2705,1),new IG.ptr(2707,2728,1),new IG.ptr(2730,2736,1),new IG.ptr(2738,2739,1),new IG.ptr(2741,2745,1),new IG.ptr(2749,2768,19),new IG.ptr(2784,2785,1),new IG.ptr(2809,2821,12),new IG.ptr(2822,2828,1),new IG.ptr(2831,2832,1),new IG.ptr(2835,2856,1),new IG.ptr(2858,2864,1),new IG.ptr(2866,2867,1),new IG.ptr(2869,2873,1),new IG.ptr(2877,2908,31),new IG.ptr(2909,2911,2),new IG.ptr(2912,2913,1),new IG.ptr(2929,2947,18),new IG.ptr(2949,2954,1),new IG.ptr(2958,2960,1),new IG.ptr(2962,2965,1),new IG.ptr(2969,2970,1),new IG.ptr(2972,2974,2),new IG.ptr(2975,2979,4),new IG.ptr(2980,2984,4),new IG.ptr(2985,2986,1),new IG.ptr(2990,3001,1),new IG.ptr(3024,3077,53),new IG.ptr(3078,3084,1),new IG.ptr(3086,3088,1),new IG.ptr(3090,3112,1),new IG.ptr(3114,3129,1),new IG.ptr(3133,3160,27),new IG.ptr(3161,3162,1),new IG.ptr(3168,3169,1),new IG.ptr(3200,3205,5),new IG.ptr(3206,3212,1),new IG.ptr(3214,3216,1),new IG.ptr(3218,3240,1),new IG.ptr(3242,3251,1),new IG.ptr(3253,3257,1),new IG.ptr(3261,3294,33),new IG.ptr(3296,3297,1),new IG.ptr(3313,3314,1),new IG.ptr(3332,3340,1),new IG.ptr(3342,3344,1),new IG.ptr(3346,3386,1),new IG.ptr(3389,3406,17),new IG.ptr(3412,3414,1),new IG.ptr(3423,3425,1),new IG.ptr(3450,3455,1),new IG.ptr(3461,3478,1),new IG.ptr(3482,3505,1),new IG.ptr(3507,3515,1),new IG.ptr(3517,3520,3),new IG.ptr(3521,3526,1),new IG.ptr(3585,3632,1),new IG.ptr(3634,3635,1),new IG.ptr(3648,3654,1),new IG.ptr(3713,3714,1),new IG.ptr(3716,3718,2),new IG.ptr(3719,3722,1),new IG.ptr(3724,3747,1),new IG.ptr(3749,3751,2),new IG.ptr(3752,3760,1),new IG.ptr(3762,3763,1),new IG.ptr(3773,3776,3),new IG.ptr(3777,3780,1),new IG.ptr(3782,3804,22),new IG.ptr(3805,3807,1),new IG.ptr(3840,3904,64),new IG.ptr(3905,3911,1),new IG.ptr(3913,3948,1),new IG.ptr(3976,3980,1),new IG.ptr(4096,4138,1),new IG.ptr(4159,4176,17),new IG.ptr(4177,4181,1),new IG.ptr(4186,4189,1),new IG.ptr(4193,4197,4),new IG.ptr(4198,4206,8),new IG.ptr(4207,4208,1),new IG.ptr(4213,4225,1),new IG.ptr(4238,4256,18),new IG.ptr(4257,4293,1),new IG.ptr(4295,4301,6),new IG.ptr(4304,4346,1),new IG.ptr(4348,4680,1),new IG.ptr(4682,4685,1),new IG.ptr(4688,4694,1),new IG.ptr(4696,4698,2),new IG.ptr(4699,4701,1),new IG.ptr(4704,4744,1),new IG.ptr(4746,4749,1),new IG.ptr(4752,4784,1),new IG.ptr(4786,4789,1),new IG.ptr(4792,4798,1),new IG.ptr(4800,4802,2),new IG.ptr(4803,4805,1),new IG.ptr(4808,4822,1),new IG.ptr(4824,4880,1),new IG.ptr(4882,4885,1),new IG.ptr(4888,4954,1),new IG.ptr(4992,5007,1),new IG.ptr(5024,5109,1),new IG.ptr(5112,5117,1),new IG.ptr(5121,5740,1),new IG.ptr(5743,5759,1),new IG.ptr(5761,5786,1),new IG.ptr(5792,5866,1),new IG.ptr(5873,5880,1),new IG.ptr(5888,5900,1),new IG.ptr(5902,5905,1),new IG.ptr(5920,5937,1),new IG.ptr(5952,5969,1),new IG.ptr(5984,5996,1),new IG.ptr(5998,6000,1),new IG.ptr(6016,6067,1),new IG.ptr(6103,6108,5),new IG.ptr(6176,6264,1),new IG.ptr(6272,6276,1),new IG.ptr(6279,6312,1),new IG.ptr(6314,6320,6),new IG.ptr(6321,6389,1),new IG.ptr(6400,6430,1),new IG.ptr(6480,6509,1),new IG.ptr(6512,6516,1),new IG.ptr(6528,6571,1),new IG.ptr(6576,6601,1),new IG.ptr(6656,6678,1),new IG.ptr(6688,6740,1),new IG.ptr(6823,6917,94),new IG.ptr(6918,6963,1),new IG.ptr(6981,6987,1),new IG.ptr(7043,7072,1),new IG.ptr(7086,7087,1),new IG.ptr(7098,7141,1),new IG.ptr(7168,7203,1),new IG.ptr(7245,7247,1),new IG.ptr(7258,7293,1),new IG.ptr(7296,7304,1),new IG.ptr(7312,7354,1),new IG.ptr(7357,7359,1),new IG.ptr(7401,7404,1),new IG.ptr(7406,7411,1),new IG.ptr(7413,7414,1),new IG.ptr(7418,7424,6),new IG.ptr(7425,7615,1),new IG.ptr(7680,7957,1),new IG.ptr(7960,7965,1),new IG.ptr(7968,8005,1),new IG.ptr(8008,8013,1),new IG.ptr(8016,8023,1),new IG.ptr(8025,8031,2),new IG.ptr(8032,8061,1),new IG.ptr(8064,8116,1),new IG.ptr(8118,8124,1),new IG.ptr(8126,8130,4),new IG.ptr(8131,8132,1),new IG.ptr(8134,8140,1),new IG.ptr(8144,8147,1),new IG.ptr(8150,8155,1),new IG.ptr(8160,8172,1),new IG.ptr(8178,8180,1),new IG.ptr(8182,8188,1),new IG.ptr(8305,8319,14),new IG.ptr(8336,8348,1),new IG.ptr(8450,8455,5),new IG.ptr(8458,8467,1),new IG.ptr(8469,8473,4),new IG.ptr(8474,8477,1),new IG.ptr(8484,8490,2),new IG.ptr(8491,8493,1),new IG.ptr(8495,8505,1),new IG.ptr(8508,8511,1),new IG.ptr(8517,8521,1),new IG.ptr(8526,8579,53),new IG.ptr(8580,11264,2684),new IG.ptr(11265,11310,1),new IG.ptr(11312,11358,1),new IG.ptr(11360,11492,1),new IG.ptr(11499,11502,1),new IG.ptr(11506,11507,1),new IG.ptr(11520,11557,1),new IG.ptr(11559,11565,6),new IG.ptr(11568,11623,1),new IG.ptr(11631,11648,17),new IG.ptr(11649,11670,1),new IG.ptr(11680,11686,1),new IG.ptr(11688,11694,1),new IG.ptr(11696,11702,1),new IG.ptr(11704,11710,1),new IG.ptr(11712,11718,1),new IG.ptr(11720,11726,1),new IG.ptr(11728,11734,1),new IG.ptr(11736,11742,1),new IG.ptr(11823,12293,470),new IG.ptr(12294,12337,43),new IG.ptr(12338,12341,1),new IG.ptr(12347,12348,1),new IG.ptr(12353,12438,1),new IG.ptr(12445,12447,1),new IG.ptr(12449,12538,1),new IG.ptr(12540,12543,1),new IG.ptr(12549,12591,1),new IG.ptr(12593,12686,1),new IG.ptr(12704,12735,1),new IG.ptr(12784,12799,1),new IG.ptr(13312,19903,1),new IG.ptr(19968,40956,1),new IG.ptr(40960,42124,1),new IG.ptr(42192,42237,1),new IG.ptr(42240,42508,1),new IG.ptr(42512,42527,1),new IG.ptr(42538,42539,1),new IG.ptr(42560,42606,1),new IG.ptr(42623,42653,1),new IG.ptr(42656,42725,1),new IG.ptr(42775,42783,1),new IG.ptr(42786,42888,1),new IG.ptr(42891,42943,1),new IG.ptr(42946,42954,1),new IG.ptr(42997,43009,1),new IG.ptr(43011,43013,1),new IG.ptr(43015,43018,1),new IG.ptr(43020,43042,1),new IG.ptr(43072,43123,1),new IG.ptr(43138,43187,1),new IG.ptr(43250,43255,1),new IG.ptr(43259,43261,2),new IG.ptr(43262,43274,12),new IG.ptr(43275,43301,1),new IG.ptr(43312,43334,1),new IG.ptr(43360,43388,1),new IG.ptr(43396,43442,1),new IG.ptr(43471,43488,17),new IG.ptr(43489,43492,1),new IG.ptr(43494,43503,1),new IG.ptr(43514,43518,1),new IG.ptr(43520,43560,1),new IG.ptr(43584,43586,1),new IG.ptr(43588,43595,1),new IG.ptr(43616,43638,1),new IG.ptr(43642,43646,4),new IG.ptr(43647,43695,1),new IG.ptr(43697,43701,4),new IG.ptr(43702,43705,3),new IG.ptr(43706,43709,1),new IG.ptr(43712,43714,2),new IG.ptr(43739,43741,1),new IG.ptr(43744,43754,1),new IG.ptr(43762,43764,1),new IG.ptr(43777,43782,1),new IG.ptr(43785,43790,1),new IG.ptr(43793,43798,1),new IG.ptr(43808,43814,1),new IG.ptr(43816,43822,1),new IG.ptr(43824,43866,1),new IG.ptr(43868,43881,1),new IG.ptr(43888,44002,1),new IG.ptr(44032,55203,1),new IG.ptr(55216,55238,1),new IG.ptr(55243,55291,1),new IG.ptr(63744,64109,1),new IG.ptr(64112,64217,1),new IG.ptr(64256,64262,1),new IG.ptr(64275,64279,1),new IG.ptr(64285,64287,2),new IG.ptr(64288,64296,1),new IG.ptr(64298,64310,1),new IG.ptr(64312,64316,1),new IG.ptr(64318,64320,2),new IG.ptr(64321,64323,2),new IG.ptr(64324,64326,2),new IG.ptr(64327,64433,1),new IG.ptr(64467,64829,1),new IG.ptr(64848,64911,1),new IG.ptr(64914,64967,1),new IG.ptr(65008,65019,1),new IG.ptr(65136,65140,1),new IG.ptr(65142,65276,1),new IG.ptr(65313,65338,1),new IG.ptr(65345,65370,1),new IG.ptr(65382,65470,1),new IG.ptr(65474,65479,1),new IG.ptr(65482,65487,1),new IG.ptr(65490,65495,1),new IG.ptr(65498,65500,1)]),new JN([new IH.ptr(65536,65547,1),new IH.ptr(65549,65574,1),new IH.ptr(65576,65594,1),new IH.ptr(65596,65597,1),new IH.ptr(65599,65613,1),new IH.ptr(65616,65629,1),new IH.ptr(65664,65786,1),new IH.ptr(66176,66204,1),new IH.ptr(66208,66256,1),new IH.ptr(66304,66335,1),new IH.ptr(66349,66368,1),new IH.ptr(66370,66377,1),new IH.ptr(66384,66421,1),new IH.ptr(66432,66461,1),new IH.ptr(66464,66499,1),new IH.ptr(66504,66511,1),new IH.ptr(66560,66717,1),new IH.ptr(66736,66771,1),new IH.ptr(66776,66811,1),new IH.ptr(66816,66855,1),new IH.ptr(66864,66915,1),new IH.ptr(67072,67382,1),new IH.ptr(67392,67413,1),new IH.ptr(67424,67431,1),new IH.ptr(67584,67589,1),new IH.ptr(67592,67594,2),new IH.ptr(67595,67637,1),new IH.ptr(67639,67640,1),new IH.ptr(67644,67647,3),new IH.ptr(67648,67669,1),new IH.ptr(67680,67702,1),new IH.ptr(67712,67742,1),new IH.ptr(67808,67826,1),new IH.ptr(67828,67829,1),new IH.ptr(67840,67861,1),new IH.ptr(67872,67897,1),new IH.ptr(67968,68023,1),new IH.ptr(68030,68031,1),new IH.ptr(68096,68112,16),new IH.ptr(68113,68115,1),new IH.ptr(68117,68119,1),new IH.ptr(68121,68149,1),new IH.ptr(68192,68220,1),new IH.ptr(68224,68252,1),new IH.ptr(68288,68295,1),new IH.ptr(68297,68324,1),new IH.ptr(68352,68405,1),new IH.ptr(68416,68437,1),new IH.ptr(68448,68466,1),new IH.ptr(68480,68497,1),new IH.ptr(68608,68680,1),new IH.ptr(68736,68786,1),new IH.ptr(68800,68850,1),new IH.ptr(68864,68899,1),new IH.ptr(69248,69289,1),new IH.ptr(69296,69297,1),new IH.ptr(69376,69404,1),new IH.ptr(69415,69424,9),new IH.ptr(69425,69445,1),new IH.ptr(69552,69572,1),new IH.ptr(69600,69622,1),new IH.ptr(69635,69687,1),new IH.ptr(69763,69807,1),new IH.ptr(69840,69864,1),new IH.ptr(69891,69926,1),new IH.ptr(69956,69959,3),new IH.ptr(69968,70002,1),new IH.ptr(70006,70019,13),new IH.ptr(70020,70066,1),new IH.ptr(70081,70084,1),new IH.ptr(70106,70108,2),new IH.ptr(70144,70161,1),new IH.ptr(70163,70187,1),new IH.ptr(70272,70278,1),new IH.ptr(70280,70282,2),new IH.ptr(70283,70285,1),new IH.ptr(70287,70301,1),new IH.ptr(70303,70312,1),new IH.ptr(70320,70366,1),new IH.ptr(70405,70412,1),new IH.ptr(70415,70416,1),new IH.ptr(70419,70440,1),new IH.ptr(70442,70448,1),new IH.ptr(70450,70451,1),new IH.ptr(70453,70457,1),new IH.ptr(70461,70480,19),new IH.ptr(70493,70497,1),new IH.ptr(70656,70708,1),new IH.ptr(70727,70730,1),new IH.ptr(70751,70753,1),new IH.ptr(70784,70831,1),new IH.ptr(70852,70853,1),new IH.ptr(70855,71040,185),new IH.ptr(71041,71086,1),new IH.ptr(71128,71131,1),new IH.ptr(71168,71215,1),new IH.ptr(71236,71296,60),new IH.ptr(71297,71338,1),new IH.ptr(71352,71424,72),new IH.ptr(71425,71450,1),new IH.ptr(71680,71723,1),new IH.ptr(71840,71903,1),new IH.ptr(71935,71942,1),new IH.ptr(71945,71948,3),new IH.ptr(71949,71955,1),new IH.ptr(71957,71958,1),new IH.ptr(71960,71983,1),new IH.ptr(71999,72001,2),new IH.ptr(72096,72103,1),new IH.ptr(72106,72144,1),new IH.ptr(72161,72163,2),new IH.ptr(72192,72203,11),new IH.ptr(72204,72242,1),new IH.ptr(72250,72272,22),new IH.ptr(72284,72329,1),new IH.ptr(72349,72384,35),new IH.ptr(72385,72440,1),new IH.ptr(72704,72712,1),new IH.ptr(72714,72750,1),new IH.ptr(72768,72818,50),new IH.ptr(72819,72847,1),new IH.ptr(72960,72966,1),new IH.ptr(72968,72969,1),new IH.ptr(72971,73008,1),new IH.ptr(73030,73056,26),new IH.ptr(73057,73061,1),new IH.ptr(73063,73064,1),new IH.ptr(73066,73097,1),new IH.ptr(73112,73440,328),new IH.ptr(73441,73458,1),new IH.ptr(73648,73728,80),new IH.ptr(73729,74649,1),new IH.ptr(74880,75075,1),new IH.ptr(77824,78894,1),new IH.ptr(82944,83526,1),new IH.ptr(92160,92728,1),new IH.ptr(92736,92766,1),new IH.ptr(92880,92909,1),new IH.ptr(92928,92975,1),new IH.ptr(92992,92995,1),new IH.ptr(93027,93047,1),new IH.ptr(93053,93071,1),new IH.ptr(93760,93823,1),new IH.ptr(93952,94026,1),new IH.ptr(94032,94099,67),new IH.ptr(94100,94111,1),new IH.ptr(94176,94177,1),new IH.ptr(94179,94208,29),new IH.ptr(94209,100343,1),new IH.ptr(100352,101589,1),new IH.ptr(101632,101640,1),new IH.ptr(110592,110878,1),new IH.ptr(110928,110930,1),new IH.ptr(110948,110951,1),new IH.ptr(110960,111355,1),new IH.ptr(113664,113770,1),new IH.ptr(113776,113788,1),new IH.ptr(113792,113800,1),new IH.ptr(113808,113817,1),new IH.ptr(119808,119892,1),new IH.ptr(119894,119964,1),new IH.ptr(119966,119967,1),new IH.ptr(119970,119973,3),new IH.ptr(119974,119977,3),new IH.ptr(119978,119980,1),new IH.ptr(119982,119993,1),new IH.ptr(119995,119997,2),new IH.ptr(119998,120003,1),new IH.ptr(120005,120069,1),new IH.ptr(120071,120074,1),new IH.ptr(120077,120084,1),new IH.ptr(120086,120092,1),new IH.ptr(120094,120121,1),new IH.ptr(120123,120126,1),new IH.ptr(120128,120132,1),new IH.ptr(120134,120138,4),new IH.ptr(120139,120144,1),new IH.ptr(120146,120485,1),new IH.ptr(120488,120512,1),new IH.ptr(120514,120538,1),new IH.ptr(120540,120570,1),new IH.ptr(120572,120596,1),new IH.ptr(120598,120628,1),new IH.ptr(120630,120654,1),new IH.ptr(120656,120686,1),new IH.ptr(120688,120712,1),new IH.ptr(120714,120744,1),new IH.ptr(120746,120770,1),new IH.ptr(120772,120779,1),new IH.ptr(123136,123180,1),new IH.ptr(123191,123197,1),new IH.ptr(123214,123584,370),new IH.ptr(123585,123627,1),new IH.ptr(124928,125124,1),new IH.ptr(125184,125251,1),new IH.ptr(125259,126464,1205),new IH.ptr(126465,126467,1),new IH.ptr(126469,126495,1),new IH.ptr(126497,126498,1),new IH.ptr(126500,126503,3),new IH.ptr(126505,126514,1),new IH.ptr(126516,126519,1),new IH.ptr(126521,126523,2),new IH.ptr(126530,126535,5),new IH.ptr(126537,126541,2),new IH.ptr(126542,126543,1),new IH.ptr(126545,126546,1),new IH.ptr(126548,126551,3),new IH.ptr(126553,126561,2),new IH.ptr(126562,126564,2),new IH.ptr(126567,126570,1),new IH.ptr(126572,126578,1),new IH.ptr(126580,126583,1),new IH.ptr(126585,126588,1),new IH.ptr(126590,126592,2),new IH.ptr(126593,126601,1),new IH.ptr(126603,126619,1),new IH.ptr(126625,126627,1),new IH.ptr(126629,126633,1),new IH.ptr(126635,126651,1),new IH.ptr(131072,173789,1),new IH.ptr(173824,177972,1),new IH.ptr(177984,178205,1),new IH.ptr(178208,183969,1),new IH.ptr(183984,191456,1),new IH.ptr(194560,195101,1),new IH.ptr(196608,201546,1)]),6);G=new IF.ptr(new JM([new IG.ptr(97,122,1),new IG.ptr(181,223,42),new IG.ptr(224,246,1),new IG.ptr(248,255,1),new IG.ptr(257,311,2),new IG.ptr(312,328,2),new IG.ptr(329,375,2),new IG.ptr(378,382,2),new IG.ptr(383,384,1),new IG.ptr(387,389,2),new IG.ptr(392,396,4),new IG.ptr(397,402,5),new IG.ptr(405,409,4),new IG.ptr(410,411,1),new IG.ptr(414,417,3),new IG.ptr(419,421,2),new IG.ptr(424,426,2),new IG.ptr(427,429,2),new IG.ptr(432,436,4),new IG.ptr(438,441,3),new IG.ptr(442,445,3),new IG.ptr(446,447,1),new IG.ptr(454,460,3),new IG.ptr(462,476,2),new IG.ptr(477,495,2),new IG.ptr(496,499,3),new IG.ptr(501,505,4),new IG.ptr(507,563,2),new IG.ptr(564,569,1),new IG.ptr(572,575,3),new IG.ptr(576,578,2),new IG.ptr(583,591,2),new IG.ptr(592,659,1),new IG.ptr(661,687,1),new IG.ptr(881,883,2),new IG.ptr(887,891,4),new IG.ptr(892,893,1),new IG.ptr(912,940,28),new IG.ptr(941,974,1),new IG.ptr(976,977,1),new IG.ptr(981,983,1),new IG.ptr(985,1007,2),new IG.ptr(1008,1011,1),new IG.ptr(1013,1019,3),new IG.ptr(1020,1072,52),new IG.ptr(1073,1119,1),new IG.ptr(1121,1153,2),new IG.ptr(1163,1215,2),new IG.ptr(1218,1230,2),new IG.ptr(1231,1327,2),new IG.ptr(1376,1416,1),new IG.ptr(4304,4346,1),new IG.ptr(4349,4351,1),new IG.ptr(5112,5117,1),new IG.ptr(7296,7304,1),new IG.ptr(7424,7467,1),new IG.ptr(7531,7543,1),new IG.ptr(7545,7578,1),new IG.ptr(7681,7829,2),new IG.ptr(7830,7837,1),new IG.ptr(7839,7935,2),new IG.ptr(7936,7943,1),new IG.ptr(7952,7957,1),new IG.ptr(7968,7975,1),new IG.ptr(7984,7991,1),new IG.ptr(8000,8005,1),new IG.ptr(8016,8023,1),new IG.ptr(8032,8039,1),new IG.ptr(8048,8061,1),new IG.ptr(8064,8071,1),new IG.ptr(8080,8087,1),new IG.ptr(8096,8103,1),new IG.ptr(8112,8116,1),new IG.ptr(8118,8119,1),new IG.ptr(8126,8130,4),new IG.ptr(8131,8132,1),new IG.ptr(8134,8135,1),new IG.ptr(8144,8147,1),new IG.ptr(8150,8151,1),new IG.ptr(8160,8167,1),new IG.ptr(8178,8180,1),new IG.ptr(8182,8183,1),new IG.ptr(8458,8462,4),new IG.ptr(8463,8467,4),new IG.ptr(8495,8505,5),new IG.ptr(8508,8509,1),new IG.ptr(8518,8521,1),new IG.ptr(8526,8580,54),new IG.ptr(11312,11358,1),new IG.ptr(11361,11365,4),new IG.ptr(11366,11372,2),new IG.ptr(11377,11379,2),new IG.ptr(11380,11382,2),new IG.ptr(11383,11387,1),new IG.ptr(11393,11491,2),new IG.ptr(11492,11500,8),new IG.ptr(11502,11507,5),new IG.ptr(11520,11557,1),new IG.ptr(11559,11565,6),new IG.ptr(42561,42605,2),new IG.ptr(42625,42651,2),new IG.ptr(42787,42799,2),new IG.ptr(42800,42801,1),new IG.ptr(42803,42865,2),new IG.ptr(42866,42872,1),new IG.ptr(42874,42876,2),new IG.ptr(42879,42887,2),new IG.ptr(42892,42894,2),new IG.ptr(42897,42899,2),new IG.ptr(42900,42901,1),new IG.ptr(42903,42921,2),new IG.ptr(42927,42933,6),new IG.ptr(42935,42943,2),new IG.ptr(42947,42952,5),new IG.ptr(42954,42998,44),new IG.ptr(43002,43824,822),new IG.ptr(43825,43866,1),new IG.ptr(43872,43880,1),new IG.ptr(43888,43967,1),new IG.ptr(64256,64262,1),new IG.ptr(64275,64279,1),new IG.ptr(65345,65370,1)]),new JN([new IH.ptr(66600,66639,1),new IH.ptr(66776,66811,1),new IH.ptr(68800,68850,1),new IH.ptr(71872,71903,1),new IH.ptr(93792,93823,1),new IH.ptr(119834,119859,1),new IH.ptr(119886,119892,1),new IH.ptr(119894,119911,1),new IH.ptr(119938,119963,1),new IH.ptr(119990,119993,1),new IH.ptr(119995,119997,2),new IH.ptr(119998,120003,1),new IH.ptr(120005,120015,1),new IH.ptr(120042,120067,1),new IH.ptr(120094,120119,1),new IH.ptr(120146,120171,1),new IH.ptr(120198,120223,1),new IH.ptr(120250,120275,1),new IH.ptr(120302,120327,1),new IH.ptr(120354,120379,1),new IH.ptr(120406,120431,1),new IH.ptr(120458,120485,1),new IH.ptr(120514,120538,1),new IH.ptr(120540,120545,1),new IH.ptr(120572,120596,1),new IH.ptr(120598,120603,1),new IH.ptr(120630,120654,1),new IH.ptr(120656,120661,1),new IH.ptr(120688,120712,1),new IH.ptr(120714,120719,1),new IH.ptr(120746,120770,1),new IH.ptr(120772,120777,1),new IH.ptr(120779,125218,4439),new IH.ptr(125219,125251,1)]),4);H=new IF.ptr(new JM([new IG.ptr(688,705,1),new IG.ptr(710,721,1),new IG.ptr(736,740,1),new IG.ptr(748,750,2),new IG.ptr(884,890,6),new IG.ptr(1369,1600,231),new IG.ptr(1765,1766,1),new IG.ptr(2036,2037,1),new IG.ptr(2042,2074,32),new IG.ptr(2084,2088,4),new IG.ptr(2417,3654,1237),new IG.ptr(3782,4348,566),new IG.ptr(6103,6211,108),new IG.ptr(6823,7288,465),new IG.ptr(7289,7293,1),new IG.ptr(7468,7530,1),new IG.ptr(7544,7579,35),new IG.ptr(7580,7615,1),new IG.ptr(8305,8319,14),new IG.ptr(8336,8348,1),new IG.ptr(11388,11389,1),new IG.ptr(11631,11823,192),new IG.ptr(12293,12337,44),new IG.ptr(12338,12341,1),new IG.ptr(12347,12445,98),new IG.ptr(12446,12540,94),new IG.ptr(12541,12542,1),new IG.ptr(40981,42232,1251),new IG.ptr(42233,42237,1),new IG.ptr(42508,42623,115),new IG.ptr(42652,42653,1),new IG.ptr(42775,42783,1),new IG.ptr(42864,42888,24),new IG.ptr(43000,43001,1),new IG.ptr(43471,43494,23),new IG.ptr(43632,43741,109),new IG.ptr(43763,43764,1),new IG.ptr(43868,43871,1),new IG.ptr(43881,65392,21511),new IG.ptr(65438,65439,1)]),new JN([new IH.ptr(92992,92995,1),new IH.ptr(94099,94111,1),new IH.ptr(94176,94177,1),new IH.ptr(94179,123191,29012),new IH.ptr(123192,123197,1),new IH.ptr(125259,125259,1)]),0);I=new IF.ptr(new JM([new IG.ptr(170,186,16),new IG.ptr(443,448,5),new IG.ptr(449,451,1),new IG.ptr(660,1488,828),new IG.ptr(1489,1514,1),new IG.ptr(1519,1522,1),new IG.ptr(1568,1599,1),new IG.ptr(1601,1610,1),new IG.ptr(1646,1647,1),new IG.ptr(1649,1747,1),new IG.ptr(1749,1774,25),new IG.ptr(1775,1786,11),new IG.ptr(1787,1788,1),new IG.ptr(1791,1808,17),new IG.ptr(1810,1839,1),new IG.ptr(1869,1957,1),new IG.ptr(1969,1994,25),new IG.ptr(1995,2026,1),new IG.ptr(2048,2069,1),new IG.ptr(2112,2136,1),new IG.ptr(2144,2154,1),new IG.ptr(2208,2228,1),new IG.ptr(2230,2247,1),new IG.ptr(2308,2361,1),new IG.ptr(2365,2384,19),new IG.ptr(2392,2401,1),new IG.ptr(2418,2432,1),new IG.ptr(2437,2444,1),new IG.ptr(2447,2448,1),new IG.ptr(2451,2472,1),new IG.ptr(2474,2480,1),new IG.ptr(2482,2486,4),new IG.ptr(2487,2489,1),new IG.ptr(2493,2510,17),new IG.ptr(2524,2525,1),new IG.ptr(2527,2529,1),new IG.ptr(2544,2545,1),new IG.ptr(2556,2565,9),new IG.ptr(2566,2570,1),new IG.ptr(2575,2576,1),new IG.ptr(2579,2600,1),new IG.ptr(2602,2608,1),new IG.ptr(2610,2611,1),new IG.ptr(2613,2614,1),new IG.ptr(2616,2617,1),new IG.ptr(2649,2652,1),new IG.ptr(2654,2674,20),new IG.ptr(2675,2676,1),new IG.ptr(2693,2701,1),new IG.ptr(2703,2705,1),new IG.ptr(2707,2728,1),new IG.ptr(2730,2736,1),new IG.ptr(2738,2739,1),new IG.ptr(2741,2745,1),new IG.ptr(2749,2768,19),new IG.ptr(2784,2785,1),new IG.ptr(2809,2821,12),new IG.ptr(2822,2828,1),new IG.ptr(2831,2832,1),new IG.ptr(2835,2856,1),new IG.ptr(2858,2864,1),new IG.ptr(2866,2867,1),new IG.ptr(2869,2873,1),new IG.ptr(2877,2908,31),new IG.ptr(2909,2911,2),new IG.ptr(2912,2913,1),new IG.ptr(2929,2947,18),new IG.ptr(2949,2954,1),new IG.ptr(2958,2960,1),new IG.ptr(2962,2965,1),new IG.ptr(2969,2970,1),new IG.ptr(2972,2974,2),new IG.ptr(2975,2979,4),new IG.ptr(2980,2984,4),new IG.ptr(2985,2986,1),new IG.ptr(2990,3001,1),new IG.ptr(3024,3077,53),new IG.ptr(3078,3084,1),new IG.ptr(3086,3088,1),new IG.ptr(3090,3112,1),new IG.ptr(3114,3129,1),new IG.ptr(3133,3160,27),new IG.ptr(3161,3162,1),new IG.ptr(3168,3169,1),new IG.ptr(3200,3205,5),new IG.ptr(3206,3212,1),new IG.ptr(3214,3216,1),new IG.ptr(3218,3240,1),new IG.ptr(3242,3251,1),new IG.ptr(3253,3257,1),new IG.ptr(3261,3294,33),new IG.ptr(3296,3297,1),new IG.ptr(3313,3314,1),new IG.ptr(3332,3340,1),new IG.ptr(3342,3344,1),new IG.ptr(3346,3386,1),new IG.ptr(3389,3406,17),new IG.ptr(3412,3414,1),new IG.ptr(3423,3425,1),new IG.ptr(3450,3455,1),new IG.ptr(3461,3478,1),new IG.ptr(3482,3505,1),new IG.ptr(3507,3515,1),new IG.ptr(3517,3520,3),new IG.ptr(3521,3526,1),new IG.ptr(3585,3632,1),new IG.ptr(3634,3635,1),new IG.ptr(3648,3653,1),new IG.ptr(3713,3714,1),new IG.ptr(3716,3718,2),new IG.ptr(3719,3722,1),new IG.ptr(3724,3747,1),new IG.ptr(3749,3751,2),new IG.ptr(3752,3760,1),new IG.ptr(3762,3763,1),new IG.ptr(3773,3776,3),new IG.ptr(3777,3780,1),new IG.ptr(3804,3807,1),new IG.ptr(3840,3904,64),new IG.ptr(3905,3911,1),new IG.ptr(3913,3948,1),new IG.ptr(3976,3980,1),new IG.ptr(4096,4138,1),new IG.ptr(4159,4176,17),new IG.ptr(4177,4181,1),new IG.ptr(4186,4189,1),new IG.ptr(4193,4197,4),new IG.ptr(4198,4206,8),new IG.ptr(4207,4208,1),new IG.ptr(4213,4225,1),new IG.ptr(4238,4352,114),new IG.ptr(4353,4680,1),new IG.ptr(4682,4685,1),new IG.ptr(4688,4694,1),new IG.ptr(4696,4698,2),new IG.ptr(4699,4701,1),new IG.ptr(4704,4744,1),new IG.ptr(4746,4749,1),new IG.ptr(4752,4784,1),new IG.ptr(4786,4789,1),new IG.ptr(4792,4798,1),new IG.ptr(4800,4802,2),new IG.ptr(4803,4805,1),new IG.ptr(4808,4822,1),new IG.ptr(4824,4880,1),new IG.ptr(4882,4885,1),new IG.ptr(4888,4954,1),new IG.ptr(4992,5007,1),new IG.ptr(5121,5740,1),new IG.ptr(5743,5759,1),new IG.ptr(5761,5786,1),new IG.ptr(5792,5866,1),new IG.ptr(5873,5880,1),new IG.ptr(5888,5900,1),new IG.ptr(5902,5905,1),new IG.ptr(5920,5937,1),new IG.ptr(5952,5969,1),new IG.ptr(5984,5996,1),new IG.ptr(5998,6000,1),new IG.ptr(6016,6067,1),new IG.ptr(6108,6176,68),new IG.ptr(6177,6210,1),new IG.ptr(6212,6264,1),new IG.ptr(6272,6276,1),new IG.ptr(6279,6312,1),new IG.ptr(6314,6320,6),new IG.ptr(6321,6389,1),new IG.ptr(6400,6430,1),new IG.ptr(6480,6509,1),new IG.ptr(6512,6516,1),new IG.ptr(6528,6571,1),new IG.ptr(6576,6601,1),new IG.ptr(6656,6678,1),new IG.ptr(6688,6740,1),new IG.ptr(6917,6963,1),new IG.ptr(6981,6987,1),new IG.ptr(7043,7072,1),new IG.ptr(7086,7087,1),new IG.ptr(7098,7141,1),new IG.ptr(7168,7203,1),new IG.ptr(7245,7247,1),new IG.ptr(7258,7287,1),new IG.ptr(7401,7404,1),new IG.ptr(7406,7411,1),new IG.ptr(7413,7414,1),new IG.ptr(7418,8501,1083),new IG.ptr(8502,8504,1),new IG.ptr(11568,11623,1),new IG.ptr(11648,11670,1),new IG.ptr(11680,11686,1),new IG.ptr(11688,11694,1),new IG.ptr(11696,11702,1),new IG.ptr(11704,11710,1),new IG.ptr(11712,11718,1),new IG.ptr(11720,11726,1),new IG.ptr(11728,11734,1),new IG.ptr(11736,11742,1),new IG.ptr(12294,12348,54),new IG.ptr(12353,12438,1),new IG.ptr(12447,12449,2),new IG.ptr(12450,12538,1),new IG.ptr(12543,12549,6),new IG.ptr(12550,12591,1),new IG.ptr(12593,12686,1),new IG.ptr(12704,12735,1),new IG.ptr(12784,12799,1),new IG.ptr(13312,19903,1),new IG.ptr(19968,40956,1),new IG.ptr(40960,40980,1),new IG.ptr(40982,42124,1),new IG.ptr(42192,42231,1),new IG.ptr(42240,42507,1),new IG.ptr(42512,42527,1),new IG.ptr(42538,42539,1),new IG.ptr(42606,42656,50),new IG.ptr(42657,42725,1),new IG.ptr(42895,42999,104),new IG.ptr(43003,43009,1),new IG.ptr(43011,43013,1),new IG.ptr(43015,43018,1),new IG.ptr(43020,43042,1),new IG.ptr(43072,43123,1),new IG.ptr(43138,43187,1),new IG.ptr(43250,43255,1),new IG.ptr(43259,43261,2),new IG.ptr(43262,43274,12),new IG.ptr(43275,43301,1),new IG.ptr(43312,43334,1),new IG.ptr(43360,43388,1),new IG.ptr(43396,43442,1),new IG.ptr(43488,43492,1),new IG.ptr(43495,43503,1),new IG.ptr(43514,43518,1),new IG.ptr(43520,43560,1),new IG.ptr(43584,43586,1),new IG.ptr(43588,43595,1),new IG.ptr(43616,43631,1),new IG.ptr(43633,43638,1),new IG.ptr(43642,43646,4),new IG.ptr(43647,43695,1),new IG.ptr(43697,43701,4),new IG.ptr(43702,43705,3),new IG.ptr(43706,43709,1),new IG.ptr(43712,43714,2),new IG.ptr(43739,43740,1),new IG.ptr(43744,43754,1),new IG.ptr(43762,43777,15),new IG.ptr(43778,43782,1),new IG.ptr(43785,43790,1),new IG.ptr(43793,43798,1),new IG.ptr(43808,43814,1),new IG.ptr(43816,43822,1),new IG.ptr(43968,44002,1),new IG.ptr(44032,55203,1),new IG.ptr(55216,55238,1),new IG.ptr(55243,55291,1),new IG.ptr(63744,64109,1),new IG.ptr(64112,64217,1),new IG.ptr(64285,64287,2),new IG.ptr(64288,64296,1),new IG.ptr(64298,64310,1),new IG.ptr(64312,64316,1),new IG.ptr(64318,64320,2),new IG.ptr(64321,64323,2),new IG.ptr(64324,64326,2),new IG.ptr(64327,64433,1),new IG.ptr(64467,64829,1),new IG.ptr(64848,64911,1),new IG.ptr(64914,64967,1),new IG.ptr(65008,65019,1),new IG.ptr(65136,65140,1),new IG.ptr(65142,65276,1),new IG.ptr(65382,65391,1),new IG.ptr(65393,65437,1),new IG.ptr(65440,65470,1),new IG.ptr(65474,65479,1),new IG.ptr(65482,65487,1),new IG.ptr(65490,65495,1),new IG.ptr(65498,65500,1)]),new JN([new IH.ptr(65536,65547,1),new IH.ptr(65549,65574,1),new IH.ptr(65576,65594,1),new IH.ptr(65596,65597,1),new IH.ptr(65599,65613,1),new IH.ptr(65616,65629,1),new IH.ptr(65664,65786,1),new IH.ptr(66176,66204,1),new IH.ptr(66208,66256,1),new IH.ptr(66304,66335,1),new IH.ptr(66349,66368,1),new IH.ptr(66370,66377,1),new IH.ptr(66384,66421,1),new IH.ptr(66432,66461,1),new IH.ptr(66464,66499,1),new IH.ptr(66504,66511,1),new IH.ptr(66640,66717,1),new IH.ptr(66816,66855,1),new IH.ptr(66864,66915,1),new IH.ptr(67072,67382,1),new IH.ptr(67392,67413,1),new IH.ptr(67424,67431,1),new IH.ptr(67584,67589,1),new IH.ptr(67592,67594,2),new IH.ptr(67595,67637,1),new IH.ptr(67639,67640,1),new IH.ptr(67644,67647,3),new IH.ptr(67648,67669,1),new IH.ptr(67680,67702,1),new IH.ptr(67712,67742,1),new IH.ptr(67808,67826,1),new IH.ptr(67828,67829,1),new IH.ptr(67840,67861,1),new IH.ptr(67872,67897,1),new IH.ptr(67968,68023,1),new IH.ptr(68030,68031,1),new IH.ptr(68096,68112,16),new IH.ptr(68113,68115,1),new IH.ptr(68117,68119,1),new IH.ptr(68121,68149,1),new IH.ptr(68192,68220,1),new IH.ptr(68224,68252,1),new IH.ptr(68288,68295,1),new IH.ptr(68297,68324,1),new IH.ptr(68352,68405,1),new IH.ptr(68416,68437,1),new IH.ptr(68448,68466,1),new IH.ptr(68480,68497,1),new IH.ptr(68608,68680,1),new IH.ptr(68864,68899,1),new IH.ptr(69248,69289,1),new IH.ptr(69296,69297,1),new IH.ptr(69376,69404,1),new IH.ptr(69415,69424,9),new IH.ptr(69425,69445,1),new IH.ptr(69552,69572,1),new IH.ptr(69600,69622,1),new IH.ptr(69635,69687,1),new IH.ptr(69763,69807,1),new IH.ptr(69840,69864,1),new IH.ptr(69891,69926,1),new IH.ptr(69956,69959,3),new IH.ptr(69968,70002,1),new IH.ptr(70006,70019,13),new IH.ptr(70020,70066,1),new IH.ptr(70081,70084,1),new IH.ptr(70106,70108,2),new IH.ptr(70144,70161,1),new IH.ptr(70163,70187,1),new IH.ptr(70272,70278,1),new IH.ptr(70280,70282,2),new IH.ptr(70283,70285,1),new IH.ptr(70287,70301,1),new IH.ptr(70303,70312,1),new IH.ptr(70320,70366,1),new IH.ptr(70405,70412,1),new IH.ptr(70415,70416,1),new IH.ptr(70419,70440,1),new IH.ptr(70442,70448,1),new IH.ptr(70450,70451,1),new IH.ptr(70453,70457,1),new IH.ptr(70461,70480,19),new IH.ptr(70493,70497,1),new IH.ptr(70656,70708,1),new IH.ptr(70727,70730,1),new IH.ptr(70751,70753,1),new IH.ptr(70784,70831,1),new IH.ptr(70852,70853,1),new IH.ptr(70855,71040,185),new IH.ptr(71041,71086,1),new IH.ptr(71128,71131,1),new IH.ptr(71168,71215,1),new IH.ptr(71236,71296,60),new IH.ptr(71297,71338,1),new IH.ptr(71352,71424,72),new IH.ptr(71425,71450,1),new IH.ptr(71680,71723,1),new IH.ptr(71935,71942,1),new IH.ptr(71945,71948,3),new IH.ptr(71949,71955,1),new IH.ptr(71957,71958,1),new IH.ptr(71960,71983,1),new IH.ptr(71999,72001,2),new IH.ptr(72096,72103,1),new IH.ptr(72106,72144,1),new IH.ptr(72161,72163,2),new IH.ptr(72192,72203,11),new IH.ptr(72204,72242,1),new IH.ptr(72250,72272,22),new IH.ptr(72284,72329,1),new IH.ptr(72349,72384,35),new IH.ptr(72385,72440,1),new IH.ptr(72704,72712,1),new IH.ptr(72714,72750,1),new IH.ptr(72768,72818,50),new IH.ptr(72819,72847,1),new IH.ptr(72960,72966,1),new IH.ptr(72968,72969,1),new IH.ptr(72971,73008,1),new IH.ptr(73030,73056,26),new IH.ptr(73057,73061,1),new IH.ptr(73063,73064,1),new IH.ptr(73066,73097,1),new IH.ptr(73112,73440,328),new IH.ptr(73441,73458,1),new IH.ptr(73648,73728,80),new IH.ptr(73729,74649,1),new IH.ptr(74880,75075,1),new IH.ptr(77824,78894,1),new IH.ptr(82944,83526,1),new IH.ptr(92160,92728,1),new IH.ptr(92736,92766,1),new IH.ptr(92880,92909,1),new IH.ptr(92928,92975,1),new IH.ptr(93027,93047,1),new IH.ptr(93053,93071,1),new IH.ptr(93952,94026,1),new IH.ptr(94032,94208,176),new IH.ptr(94209,100343,1),new IH.ptr(100352,101589,1),new IH.ptr(101632,101640,1),new IH.ptr(110592,110878,1),new IH.ptr(110928,110930,1),new IH.ptr(110948,110951,1),new IH.ptr(110960,111355,1),new IH.ptr(113664,113770,1),new IH.ptr(113776,113788,1),new IH.ptr(113792,113800,1),new IH.ptr(113808,113817,1),new IH.ptr(123136,123180,1),new IH.ptr(123214,123584,370),new IH.ptr(123585,123627,1),new IH.ptr(124928,125124,1),new IH.ptr(126464,126467,1),new IH.ptr(126469,126495,1),new IH.ptr(126497,126498,1),new IH.ptr(126500,126503,3),new IH.ptr(126505,126514,1),new IH.ptr(126516,126519,1),new IH.ptr(126521,126523,2),new IH.ptr(126530,126535,5),new IH.ptr(126537,126541,2),new IH.ptr(126542,126543,1),new IH.ptr(126545,126546,1),new IH.ptr(126548,126551,3),new IH.ptr(126553,126561,2),new IH.ptr(126562,126564,2),new IH.ptr(126567,126570,1),new IH.ptr(126572,126578,1),new IH.ptr(126580,126583,1),new IH.ptr(126585,126588,1),new IH.ptr(126590,126592,2),new IH.ptr(126593,126601,1),new IH.ptr(126603,126619,1),new IH.ptr(126625,126627,1),new IH.ptr(126629,126633,1),new IH.ptr(126635,126651,1),new IH.ptr(131072,173789,1),new IH.ptr(173824,177972,1),new IH.ptr(177984,178205,1),new IH.ptr(178208,183969,1),new IH.ptr(183984,191456,1),new IH.ptr(194560,195101,1),new IH.ptr(196608,201546,1)]),1);J=new IF.ptr(new JM([new IG.ptr(453,459,3),new IG.ptr(498,8072,7574),new IG.ptr(8073,8079,1),new IG.ptr(8088,8095,1),new IG.ptr(8104,8111,1),new IG.ptr(8124,8140,16),new IG.ptr(8188,8188,1)]),JN.nil,0);K=new IF.ptr(new JM([new IG.ptr(65,90,1),new IG.ptr(192,214,1),new IG.ptr(216,222,1),new IG.ptr(256,310,2),new IG.ptr(313,327,2),new IG.ptr(330,376,2),new IG.ptr(377,381,2),new IG.ptr(385,386,1),new IG.ptr(388,390,2),new IG.ptr(391,393,2),new IG.ptr(394,395,1),new IG.ptr(398,401,1),new IG.ptr(403,404,1),new IG.ptr(406,408,1),new IG.ptr(412,413,1),new IG.ptr(415,416,1),new IG.ptr(418,422,2),new IG.ptr(423,425,2),new IG.ptr(428,430,2),new IG.ptr(431,433,2),new IG.ptr(434,435,1),new IG.ptr(437,439,2),new IG.ptr(440,444,4),new IG.ptr(452,461,3),new IG.ptr(463,475,2),new IG.ptr(478,494,2),new IG.ptr(497,500,3),new IG.ptr(502,504,1),new IG.ptr(506,562,2),new IG.ptr(570,571,1),new IG.ptr(573,574,1),new IG.ptr(577,579,2),new IG.ptr(580,582,1),new IG.ptr(584,590,2),new IG.ptr(880,882,2),new IG.ptr(886,895,9),new IG.ptr(902,904,2),new IG.ptr(905,906,1),new IG.ptr(908,910,2),new IG.ptr(911,913,2),new IG.ptr(914,929,1),new IG.ptr(931,939,1),new IG.ptr(975,978,3),new IG.ptr(979,980,1),new IG.ptr(984,1006,2),new IG.ptr(1012,1015,3),new IG.ptr(1017,1018,1),new IG.ptr(1021,1071,1),new IG.ptr(1120,1152,2),new IG.ptr(1162,1216,2),new IG.ptr(1217,1229,2),new IG.ptr(1232,1326,2),new IG.ptr(1329,1366,1),new IG.ptr(4256,4293,1),new IG.ptr(4295,4301,6),new IG.ptr(5024,5109,1),new IG.ptr(7312,7354,1),new IG.ptr(7357,7359,1),new IG.ptr(7680,7828,2),new IG.ptr(7838,7934,2),new IG.ptr(7944,7951,1),new IG.ptr(7960,7965,1),new IG.ptr(7976,7983,1),new IG.ptr(7992,7999,1),new IG.ptr(8008,8013,1),new IG.ptr(8025,8031,2),new IG.ptr(8040,8047,1),new IG.ptr(8120,8123,1),new IG.ptr(8136,8139,1),new IG.ptr(8152,8155,1),new IG.ptr(8168,8172,1),new IG.ptr(8184,8187,1),new IG.ptr(8450,8455,5),new IG.ptr(8459,8461,1),new IG.ptr(8464,8466,1),new IG.ptr(8469,8473,4),new IG.ptr(8474,8477,1),new IG.ptr(8484,8490,2),new IG.ptr(8491,8493,1),new IG.ptr(8496,8499,1),new IG.ptr(8510,8511,1),new IG.ptr(8517,8579,62),new IG.ptr(11264,11310,1),new IG.ptr(11360,11362,2),new IG.ptr(11363,11364,1),new IG.ptr(11367,11373,2),new IG.ptr(11374,11376,1),new IG.ptr(11378,11381,3),new IG.ptr(11390,11392,1),new IG.ptr(11394,11490,2),new IG.ptr(11499,11501,2),new IG.ptr(11506,42560,31054),new IG.ptr(42562,42604,2),new IG.ptr(42624,42650,2),new IG.ptr(42786,42798,2),new IG.ptr(42802,42862,2),new IG.ptr(42873,42877,2),new IG.ptr(42878,42886,2),new IG.ptr(42891,42893,2),new IG.ptr(42896,42898,2),new IG.ptr(42902,42922,2),new IG.ptr(42923,42926,1),new IG.ptr(42928,42932,1),new IG.ptr(42934,42942,2),new IG.ptr(42946,42948,2),new IG.ptr(42949,42951,1),new IG.ptr(42953,42997,44),new IG.ptr(65313,65338,1)]),new JN([new IH.ptr(66560,66599,1),new IH.ptr(66736,66771,1),new IH.ptr(68736,68786,1),new IH.ptr(71840,71871,1),new IH.ptr(93760,93791,1),new IH.ptr(119808,119833,1),new IH.ptr(119860,119885,1),new IH.ptr(119912,119937,1),new IH.ptr(119964,119966,2),new IH.ptr(119967,119973,3),new IH.ptr(119974,119977,3),new IH.ptr(119978,119980,1),new IH.ptr(119982,119989,1),new IH.ptr(120016,120041,1),new IH.ptr(120068,120069,1),new IH.ptr(120071,120074,1),new IH.ptr(120077,120084,1),new IH.ptr(120086,120092,1),new IH.ptr(120120,120121,1),new IH.ptr(120123,120126,1),new IH.ptr(120128,120132,1),new IH.ptr(120134,120138,4),new IH.ptr(120139,120144,1),new IH.ptr(120172,120197,1),new IH.ptr(120224,120249,1),new IH.ptr(120276,120301,1),new IH.ptr(120328,120353,1),new IH.ptr(120380,120405,1),new IH.ptr(120432,120457,1),new IH.ptr(120488,120512,1),new IH.ptr(120546,120570,1),new IH.ptr(120604,120628,1),new IH.ptr(120662,120686,1),new IH.ptr(120720,120744,1),new IH.ptr(120778,125184,4406),new IH.ptr(125185,125217,1)]),3);L=new IF.ptr(new JM([new IG.ptr(768,879,1),new IG.ptr(1155,1161,1),new IG.ptr(1425,1469,1),new IG.ptr(1471,1473,2),new IG.ptr(1474,1476,2),new IG.ptr(1477,1479,2),new IG.ptr(1552,1562,1),new IG.ptr(1611,1631,1),new IG.ptr(1648,1750,102),new IG.ptr(1751,1756,1),new IG.ptr(1759,1764,1),new IG.ptr(1767,1768,1),new IG.ptr(1770,1773,1),new IG.ptr(1809,1840,31),new IG.ptr(1841,1866,1),new IG.ptr(1958,1968,1),new IG.ptr(2027,2035,1),new IG.ptr(2045,2070,25),new IG.ptr(2071,2073,1),new IG.ptr(2075,2083,1),new IG.ptr(2085,2087,1),new IG.ptr(2089,2093,1),new IG.ptr(2137,2139,1),new IG.ptr(2259,2273,1),new IG.ptr(2275,2307,1),new IG.ptr(2362,2364,1),new IG.ptr(2366,2383,1),new IG.ptr(2385,2391,1),new IG.ptr(2402,2403,1),new IG.ptr(2433,2435,1),new IG.ptr(2492,2494,2),new IG.ptr(2495,2500,1),new IG.ptr(2503,2504,1),new IG.ptr(2507,2509,1),new IG.ptr(2519,2530,11),new IG.ptr(2531,2558,27),new IG.ptr(2561,2563,1),new IG.ptr(2620,2622,2),new IG.ptr(2623,2626,1),new IG.ptr(2631,2632,1),new IG.ptr(2635,2637,1),new IG.ptr(2641,2672,31),new IG.ptr(2673,2677,4),new IG.ptr(2689,2691,1),new IG.ptr(2748,2750,2),new IG.ptr(2751,2757,1),new IG.ptr(2759,2761,1),new IG.ptr(2763,2765,1),new IG.ptr(2786,2787,1),new IG.ptr(2810,2815,1),new IG.ptr(2817,2819,1),new IG.ptr(2876,2878,2),new IG.ptr(2879,2884,1),new IG.ptr(2887,2888,1),new IG.ptr(2891,2893,1),new IG.ptr(2901,2903,1),new IG.ptr(2914,2915,1),new IG.ptr(2946,3006,60),new IG.ptr(3007,3010,1),new IG.ptr(3014,3016,1),new IG.ptr(3018,3021,1),new IG.ptr(3031,3072,41),new IG.ptr(3073,3076,1),new IG.ptr(3134,3140,1),new IG.ptr(3142,3144,1),new IG.ptr(3146,3149,1),new IG.ptr(3157,3158,1),new IG.ptr(3170,3171,1),new IG.ptr(3201,3203,1),new IG.ptr(3260,3262,2),new IG.ptr(3263,3268,1),new IG.ptr(3270,3272,1),new IG.ptr(3274,3277,1),new IG.ptr(3285,3286,1),new IG.ptr(3298,3299,1),new IG.ptr(3328,3331,1),new IG.ptr(3387,3388,1),new IG.ptr(3390,3396,1),new IG.ptr(3398,3400,1),new IG.ptr(3402,3405,1),new IG.ptr(3415,3426,11),new IG.ptr(3427,3457,30),new IG.ptr(3458,3459,1),new IG.ptr(3530,3535,5),new IG.ptr(3536,3540,1),new IG.ptr(3542,3544,2),new IG.ptr(3545,3551,1),new IG.ptr(3570,3571,1),new IG.ptr(3633,3636,3),new IG.ptr(3637,3642,1),new IG.ptr(3655,3662,1),new IG.ptr(3761,3764,3),new IG.ptr(3765,3772,1),new IG.ptr(3784,3789,1),new IG.ptr(3864,3865,1),new IG.ptr(3893,3897,2),new IG.ptr(3902,3903,1),new IG.ptr(3953,3972,1),new IG.ptr(3974,3975,1),new IG.ptr(3981,3991,1),new IG.ptr(3993,4028,1),new IG.ptr(4038,4139,101),new IG.ptr(4140,4158,1),new IG.ptr(4182,4185,1),new IG.ptr(4190,4192,1),new IG.ptr(4194,4196,1),new IG.ptr(4199,4205,1),new IG.ptr(4209,4212,1),new IG.ptr(4226,4237,1),new IG.ptr(4239,4250,11),new IG.ptr(4251,4253,1),new IG.ptr(4957,4959,1),new IG.ptr(5906,5908,1),new IG.ptr(5938,5940,1),new IG.ptr(5970,5971,1),new IG.ptr(6002,6003,1),new IG.ptr(6068,6099,1),new IG.ptr(6109,6155,46),new IG.ptr(6156,6157,1),new IG.ptr(6277,6278,1),new IG.ptr(6313,6432,119),new IG.ptr(6433,6443,1),new IG.ptr(6448,6459,1),new IG.ptr(6679,6683,1),new IG.ptr(6741,6750,1),new IG.ptr(6752,6780,1),new IG.ptr(6783,6832,49),new IG.ptr(6833,6848,1),new IG.ptr(6912,6916,1),new IG.ptr(6964,6980,1),new IG.ptr(7019,7027,1),new IG.ptr(7040,7042,1),new IG.ptr(7073,7085,1),new IG.ptr(7142,7155,1),new IG.ptr(7204,7223,1),new IG.ptr(7376,7378,1),new IG.ptr(7380,7400,1),new IG.ptr(7405,7412,7),new IG.ptr(7415,7417,1),new IG.ptr(7616,7673,1),new IG.ptr(7675,7679,1),new IG.ptr(8400,8432,1),new IG.ptr(11503,11505,1),new IG.ptr(11647,11744,97),new IG.ptr(11745,11775,1),new IG.ptr(12330,12335,1),new IG.ptr(12441,12442,1),new IG.ptr(42607,42610,1),new IG.ptr(42612,42621,1),new IG.ptr(42654,42655,1),new IG.ptr(42736,42737,1),new IG.ptr(43010,43014,4),new IG.ptr(43019,43043,24),new IG.ptr(43044,43047,1),new IG.ptr(43052,43136,84),new IG.ptr(43137,43188,51),new IG.ptr(43189,43205,1),new IG.ptr(43232,43249,1),new IG.ptr(43263,43302,39),new IG.ptr(43303,43309,1),new IG.ptr(43335,43347,1),new IG.ptr(43392,43395,1),new IG.ptr(43443,43456,1),new IG.ptr(43493,43561,68),new IG.ptr(43562,43574,1),new IG.ptr(43587,43596,9),new IG.ptr(43597,43643,46),new IG.ptr(43644,43645,1),new IG.ptr(43696,43698,2),new IG.ptr(43699,43700,1),new IG.ptr(43703,43704,1),new IG.ptr(43710,43711,1),new IG.ptr(43713,43755,42),new IG.ptr(43756,43759,1),new IG.ptr(43765,43766,1),new IG.ptr(44003,44010,1),new IG.ptr(44012,44013,1),new IG.ptr(64286,65024,738),new IG.ptr(65025,65039,1),new IG.ptr(65056,65071,1)]),new JN([new IH.ptr(66045,66272,227),new IH.ptr(66422,66426,1),new IH.ptr(68097,68099,1),new IH.ptr(68101,68102,1),new IH.ptr(68108,68111,1),new IH.ptr(68152,68154,1),new IH.ptr(68159,68325,166),new IH.ptr(68326,68900,574),new IH.ptr(68901,68903,1),new IH.ptr(69291,69292,1),new IH.ptr(69446,69456,1),new IH.ptr(69632,69634,1),new IH.ptr(69688,69702,1),new IH.ptr(69759,69762,1),new IH.ptr(69808,69818,1),new IH.ptr(69888,69890,1),new IH.ptr(69927,69940,1),new IH.ptr(69957,69958,1),new IH.ptr(70003,70016,13),new IH.ptr(70017,70018,1),new IH.ptr(70067,70080,1),new IH.ptr(70089,70092,1),new IH.ptr(70094,70095,1),new IH.ptr(70188,70199,1),new IH.ptr(70206,70367,161),new IH.ptr(70368,70378,1),new IH.ptr(70400,70403,1),new IH.ptr(70459,70460,1),new IH.ptr(70462,70468,1),new IH.ptr(70471,70472,1),new IH.ptr(70475,70477,1),new IH.ptr(70487,70498,11),new IH.ptr(70499,70502,3),new IH.ptr(70503,70508,1),new IH.ptr(70512,70516,1),new IH.ptr(70709,70726,1),new IH.ptr(70750,70832,82),new IH.ptr(70833,70851,1),new IH.ptr(71087,71093,1),new IH.ptr(71096,71104,1),new IH.ptr(71132,71133,1),new IH.ptr(71216,71232,1),new IH.ptr(71339,71351,1),new IH.ptr(71453,71467,1),new IH.ptr(71724,71738,1),new IH.ptr(71984,71989,1),new IH.ptr(71991,71992,1),new IH.ptr(71995,71998,1),new IH.ptr(72000,72002,2),new IH.ptr(72003,72145,142),new IH.ptr(72146,72151,1),new IH.ptr(72154,72160,1),new IH.ptr(72164,72193,29),new IH.ptr(72194,72202,1),new IH.ptr(72243,72249,1),new IH.ptr(72251,72254,1),new IH.ptr(72263,72273,10),new IH.ptr(72274,72283,1),new IH.ptr(72330,72345,1),new IH.ptr(72751,72758,1),new IH.ptr(72760,72767,1),new IH.ptr(72850,72871,1),new IH.ptr(72873,72886,1),new IH.ptr(73009,73014,1),new IH.ptr(73018,73020,2),new IH.ptr(73021,73023,2),new IH.ptr(73024,73029,1),new IH.ptr(73031,73098,67),new IH.ptr(73099,73102,1),new IH.ptr(73104,73105,1),new IH.ptr(73107,73111,1),new IH.ptr(73459,73462,1),new IH.ptr(92912,92916,1),new IH.ptr(92976,92982,1),new IH.ptr(94031,94033,2),new IH.ptr(94034,94087,1),new IH.ptr(94095,94098,1),new IH.ptr(94180,94192,12),new IH.ptr(94193,113821,19628),new IH.ptr(113822,119141,5319),new IH.ptr(119142,119145,1),new IH.ptr(119149,119154,1),new IH.ptr(119163,119170,1),new IH.ptr(119173,119179,1),new IH.ptr(119210,119213,1),new IH.ptr(119362,119364,1),new IH.ptr(121344,121398,1),new IH.ptr(121403,121452,1),new IH.ptr(121461,121476,15),new IH.ptr(121499,121503,1),new IH.ptr(121505,121519,1),new IH.ptr(122880,122886,1),new IH.ptr(122888,122904,1),new IH.ptr(122907,122913,1),new IH.ptr(122915,122916,1),new IH.ptr(122918,122922,1),new IH.ptr(123184,123190,1),new IH.ptr(123628,123631,1),new IH.ptr(125136,125142,1),new IH.ptr(125252,125258,1),new IH.ptr(917760,917999,1)]),0);M=new IF.ptr(new JM([new IG.ptr(2307,2363,56),new IG.ptr(2366,2368,1),new IG.ptr(2377,2380,1),new IG.ptr(2382,2383,1),new IG.ptr(2434,2435,1),new IG.ptr(2494,2496,1),new IG.ptr(2503,2504,1),new IG.ptr(2507,2508,1),new IG.ptr(2519,2563,44),new IG.ptr(2622,2624,1),new IG.ptr(2691,2750,59),new IG.ptr(2751,2752,1),new IG.ptr(2761,2763,2),new IG.ptr(2764,2818,54),new IG.ptr(2819,2878,59),new IG.ptr(2880,2887,7),new IG.ptr(2888,2891,3),new IG.ptr(2892,2903,11),new IG.ptr(3006,3007,1),new IG.ptr(3009,3010,1),new IG.ptr(3014,3016,1),new IG.ptr(3018,3020,1),new IG.ptr(3031,3073,42),new IG.ptr(3074,3075,1),new IG.ptr(3137,3140,1),new IG.ptr(3202,3203,1),new IG.ptr(3262,3264,2),new IG.ptr(3265,3268,1),new IG.ptr(3271,3272,1),new IG.ptr(3274,3275,1),new IG.ptr(3285,3286,1),new IG.ptr(3330,3331,1),new IG.ptr(3390,3392,1),new IG.ptr(3398,3400,1),new IG.ptr(3402,3404,1),new IG.ptr(3415,3458,43),new IG.ptr(3459,3535,76),new IG.ptr(3536,3537,1),new IG.ptr(3544,3551,1),new IG.ptr(3570,3571,1),new IG.ptr(3902,3903,1),new IG.ptr(3967,4139,172),new IG.ptr(4140,4145,5),new IG.ptr(4152,4155,3),new IG.ptr(4156,4182,26),new IG.ptr(4183,4194,11),new IG.ptr(4195,4196,1),new IG.ptr(4199,4205,1),new IG.ptr(4227,4228,1),new IG.ptr(4231,4236,1),new IG.ptr(4239,4250,11),new IG.ptr(4251,4252,1),new IG.ptr(6070,6078,8),new IG.ptr(6079,6085,1),new IG.ptr(6087,6088,1),new IG.ptr(6435,6438,1),new IG.ptr(6441,6443,1),new IG.ptr(6448,6449,1),new IG.ptr(6451,6456,1),new IG.ptr(6681,6682,1),new IG.ptr(6741,6743,2),new IG.ptr(6753,6755,2),new IG.ptr(6756,6765,9),new IG.ptr(6766,6770,1),new IG.ptr(6916,6965,49),new IG.ptr(6971,6973,2),new IG.ptr(6974,6977,1),new IG.ptr(6979,6980,1),new IG.ptr(7042,7073,31),new IG.ptr(7078,7079,1),new IG.ptr(7082,7143,61),new IG.ptr(7146,7148,1),new IG.ptr(7150,7154,4),new IG.ptr(7155,7204,49),new IG.ptr(7205,7211,1),new IG.ptr(7220,7221,1),new IG.ptr(7393,7415,22),new IG.ptr(12334,12335,1),new IG.ptr(43043,43044,1),new IG.ptr(43047,43136,89),new IG.ptr(43137,43188,51),new IG.ptr(43189,43203,1),new IG.ptr(43346,43347,1),new IG.ptr(43395,43444,49),new IG.ptr(43445,43450,5),new IG.ptr(43451,43454,3),new IG.ptr(43455,43456,1),new IG.ptr(43567,43568,1),new IG.ptr(43571,43572,1),new IG.ptr(43597,43643,46),new IG.ptr(43645,43755,110),new IG.ptr(43758,43759,1),new IG.ptr(43765,44003,238),new IG.ptr(44004,44006,2),new IG.ptr(44007,44009,2),new IG.ptr(44010,44012,2)]),new JN([new IH.ptr(69632,69634,2),new IH.ptr(69762,69808,46),new IH.ptr(69809,69810,1),new IH.ptr(69815,69816,1),new IH.ptr(69932,69957,25),new IH.ptr(69958,70018,60),new IH.ptr(70067,70069,1),new IH.ptr(70079,70080,1),new IH.ptr(70094,70188,94),new IH.ptr(70189,70190,1),new IH.ptr(70194,70195,1),new IH.ptr(70197,70368,171),new IH.ptr(70369,70370,1),new IH.ptr(70402,70403,1),new IH.ptr(70462,70463,1),new IH.ptr(70465,70468,1),new IH.ptr(70471,70472,1),new IH.ptr(70475,70477,1),new IH.ptr(70487,70498,11),new IH.ptr(70499,70709,210),new IH.ptr(70710,70711,1),new IH.ptr(70720,70721,1),new IH.ptr(70725,70832,107),new IH.ptr(70833,70834,1),new IH.ptr(70841,70843,2),new IH.ptr(70844,70846,1),new IH.ptr(70849,71087,238),new IH.ptr(71088,71089,1),new IH.ptr(71096,71099,1),new IH.ptr(71102,71216,114),new IH.ptr(71217,71218,1),new IH.ptr(71227,71228,1),new IH.ptr(71230,71340,110),new IH.ptr(71342,71343,1),new IH.ptr(71350,71456,106),new IH.ptr(71457,71462,5),new IH.ptr(71724,71726,1),new IH.ptr(71736,71984,248),new IH.ptr(71985,71989,1),new IH.ptr(71991,71992,1),new IH.ptr(71997,72000,3),new IH.ptr(72002,72145,143),new IH.ptr(72146,72147,1),new IH.ptr(72156,72159,1),new IH.ptr(72164,72249,85),new IH.ptr(72279,72280,1),new IH.ptr(72343,72751,408),new IH.ptr(72766,72873,107),new IH.ptr(72881,72884,3),new IH.ptr(73098,73102,1),new IH.ptr(73107,73108,1),new IH.ptr(73110,73461,351),new IH.ptr(73462,94033,20571),new IH.ptr(94034,94087,1),new IH.ptr(94192,94193,1),new IH.ptr(119141,119142,1),new IH.ptr(119149,119154,1)]),0);N=new IF.ptr(new JM([new IG.ptr(1160,1161,1),new IG.ptr(6846,8413,1567),new IG.ptr(8414,8416,1),new IG.ptr(8418,8420,1),new IG.ptr(42608,42610,1)]),JN.nil,0);O=new IF.ptr(new JM([new IG.ptr(768,879,1),new IG.ptr(1155,1159,1),new IG.ptr(1425,1469,1),new IG.ptr(1471,1473,2),new IG.ptr(1474,1476,2),new IG.ptr(1477,1479,2),new IG.ptr(1552,1562,1),new IG.ptr(1611,1631,1),new IG.ptr(1648,1750,102),new IG.ptr(1751,1756,1),new IG.ptr(1759,1764,1),new IG.ptr(1767,1768,1),new IG.ptr(1770,1773,1),new IG.ptr(1809,1840,31),new IG.ptr(1841,1866,1),new IG.ptr(1958,1968,1),new IG.ptr(2027,2035,1),new IG.ptr(2045,2070,25),new IG.ptr(2071,2073,1),new IG.ptr(2075,2083,1),new IG.ptr(2085,2087,1),new IG.ptr(2089,2093,1),new IG.ptr(2137,2139,1),new IG.ptr(2259,2273,1),new IG.ptr(2275,2306,1),new IG.ptr(2362,2364,2),new IG.ptr(2369,2376,1),new IG.ptr(2381,2385,4),new IG.ptr(2386,2391,1),new IG.ptr(2402,2403,1),new IG.ptr(2433,2492,59),new IG.ptr(2497,2500,1),new IG.ptr(2509,2530,21),new IG.ptr(2531,2558,27),new IG.ptr(2561,2562,1),new IG.ptr(2620,2625,5),new IG.ptr(2626,2631,5),new IG.ptr(2632,2635,3),new IG.ptr(2636,2637,1),new IG.ptr(2641,2672,31),new IG.ptr(2673,2677,4),new IG.ptr(2689,2690,1),new IG.ptr(2748,2753,5),new IG.ptr(2754,2757,1),new IG.ptr(2759,2760,1),new IG.ptr(2765,2786,21),new IG.ptr(2787,2810,23),new IG.ptr(2811,2815,1),new IG.ptr(2817,2876,59),new IG.ptr(2879,2881,2),new IG.ptr(2882,2884,1),new IG.ptr(2893,2901,8),new IG.ptr(2902,2914,12),new IG.ptr(2915,2946,31),new IG.ptr(3008,3021,13),new IG.ptr(3072,3076,4),new IG.ptr(3134,3136,1),new IG.ptr(3142,3144,1),new IG.ptr(3146,3149,1),new IG.ptr(3157,3158,1),new IG.ptr(3170,3171,1),new IG.ptr(3201,3260,59),new IG.ptr(3263,3270,7),new IG.ptr(3276,3277,1),new IG.ptr(3298,3299,1),new IG.ptr(3328,3329,1),new IG.ptr(3387,3388,1),new IG.ptr(3393,3396,1),new IG.ptr(3405,3426,21),new IG.ptr(3427,3457,30),new IG.ptr(3530,3538,8),new IG.ptr(3539,3540,1),new IG.ptr(3542,3633,91),new IG.ptr(3636,3642,1),new IG.ptr(3655,3662,1),new IG.ptr(3761,3764,3),new IG.ptr(3765,3772,1),new IG.ptr(3784,3789,1),new IG.ptr(3864,3865,1),new IG.ptr(3893,3897,2),new IG.ptr(3953,3966,1),new IG.ptr(3968,3972,1),new IG.ptr(3974,3975,1),new IG.ptr(3981,3991,1),new IG.ptr(3993,4028,1),new IG.ptr(4038,4141,103),new IG.ptr(4142,4144,1),new IG.ptr(4146,4151,1),new IG.ptr(4153,4154,1),new IG.ptr(4157,4158,1),new IG.ptr(4184,4185,1),new IG.ptr(4190,4192,1),new IG.ptr(4209,4212,1),new IG.ptr(4226,4229,3),new IG.ptr(4230,4237,7),new IG.ptr(4253,4957,704),new IG.ptr(4958,4959,1),new IG.ptr(5906,5908,1),new IG.ptr(5938,5940,1),new IG.ptr(5970,5971,1),new IG.ptr(6002,6003,1),new IG.ptr(6068,6069,1),new IG.ptr(6071,6077,1),new IG.ptr(6086,6089,3),new IG.ptr(6090,6099,1),new IG.ptr(6109,6155,46),new IG.ptr(6156,6157,1),new IG.ptr(6277,6278,1),new IG.ptr(6313,6432,119),new IG.ptr(6433,6434,1),new IG.ptr(6439,6440,1),new IG.ptr(6450,6457,7),new IG.ptr(6458,6459,1),new IG.ptr(6679,6680,1),new IG.ptr(6683,6742,59),new IG.ptr(6744,6750,1),new IG.ptr(6752,6754,2),new IG.ptr(6757,6764,1),new IG.ptr(6771,6780,1),new IG.ptr(6783,6832,49),new IG.ptr(6833,6845,1),new IG.ptr(6847,6848,1),new IG.ptr(6912,6915,1),new IG.ptr(6964,6966,2),new IG.ptr(6967,6970,1),new IG.ptr(6972,6978,6),new IG.ptr(7019,7027,1),new IG.ptr(7040,7041,1),new IG.ptr(7074,7077,1),new IG.ptr(7080,7081,1),new IG.ptr(7083,7085,1),new IG.ptr(7142,7144,2),new IG.ptr(7145,7149,4),new IG.ptr(7151,7153,1),new IG.ptr(7212,7219,1),new IG.ptr(7222,7223,1),new IG.ptr(7376,7378,1),new IG.ptr(7380,7392,1),new IG.ptr(7394,7400,1),new IG.ptr(7405,7412,7),new IG.ptr(7416,7417,1),new IG.ptr(7616,7673,1),new IG.ptr(7675,7679,1),new IG.ptr(8400,8412,1),new IG.ptr(8417,8421,4),new IG.ptr(8422,8432,1),new IG.ptr(11503,11505,1),new IG.ptr(11647,11744,97),new IG.ptr(11745,11775,1),new IG.ptr(12330,12333,1),new IG.ptr(12441,12442,1),new IG.ptr(42607,42612,5),new IG.ptr(42613,42621,1),new IG.ptr(42654,42655,1),new IG.ptr(42736,42737,1),new IG.ptr(43010,43014,4),new IG.ptr(43019,43045,26),new IG.ptr(43046,43052,6),new IG.ptr(43204,43205,1),new IG.ptr(43232,43249,1),new IG.ptr(43263,43302,39),new IG.ptr(43303,43309,1),new IG.ptr(43335,43345,1),new IG.ptr(43392,43394,1),new IG.ptr(43443,43446,3),new IG.ptr(43447,43449,1),new IG.ptr(43452,43453,1),new IG.ptr(43493,43561,68),new IG.ptr(43562,43566,1),new IG.ptr(43569,43570,1),new IG.ptr(43573,43574,1),new IG.ptr(43587,43596,9),new IG.ptr(43644,43696,52),new IG.ptr(43698,43700,1),new IG.ptr(43703,43704,1),new IG.ptr(43710,43711,1),new IG.ptr(43713,43756,43),new IG.ptr(43757,43766,9),new IG.ptr(44005,44008,3),new IG.ptr(44013,64286,20273),new IG.ptr(65024,65039,1),new IG.ptr(65056,65071,1)]),new JN([new IH.ptr(66045,66272,227),new IH.ptr(66422,66426,1),new IH.ptr(68097,68099,1),new IH.ptr(68101,68102,1),new IH.ptr(68108,68111,1),new IH.ptr(68152,68154,1),new IH.ptr(68159,68325,166),new IH.ptr(68326,68900,574),new IH.ptr(68901,68903,1),new IH.ptr(69291,69292,1),new IH.ptr(69446,69456,1),new IH.ptr(69633,69688,55),new IH.ptr(69689,69702,1),new IH.ptr(69759,69761,1),new IH.ptr(69811,69814,1),new IH.ptr(69817,69818,1),new IH.ptr(69888,69890,1),new IH.ptr(69927,69931,1),new IH.ptr(69933,69940,1),new IH.ptr(70003,70016,13),new IH.ptr(70017,70070,53),new IH.ptr(70071,70078,1),new IH.ptr(70089,70092,1),new IH.ptr(70095,70191,96),new IH.ptr(70192,70193,1),new IH.ptr(70196,70198,2),new IH.ptr(70199,70206,7),new IH.ptr(70367,70371,4),new IH.ptr(70372,70378,1),new IH.ptr(70400,70401,1),new IH.ptr(70459,70460,1),new IH.ptr(70464,70502,38),new IH.ptr(70503,70508,1),new IH.ptr(70512,70516,1),new IH.ptr(70712,70719,1),new IH.ptr(70722,70724,1),new IH.ptr(70726,70750,24),new IH.ptr(70835,70840,1),new IH.ptr(70842,70847,5),new IH.ptr(70848,70850,2),new IH.ptr(70851,71090,239),new IH.ptr(71091,71093,1),new IH.ptr(71100,71101,1),new IH.ptr(71103,71104,1),new IH.ptr(71132,71133,1),new IH.ptr(71219,71226,1),new IH.ptr(71229,71231,2),new IH.ptr(71232,71339,107),new IH.ptr(71341,71344,3),new IH.ptr(71345,71349,1),new IH.ptr(71351,71453,102),new IH.ptr(71454,71455,1),new IH.ptr(71458,71461,1),new IH.ptr(71463,71467,1),new IH.ptr(71727,71735,1),new IH.ptr(71737,71738,1),new IH.ptr(71995,71996,1),new IH.ptr(71998,72003,5),new IH.ptr(72148,72151,1),new IH.ptr(72154,72155,1),new IH.ptr(72160,72193,33),new IH.ptr(72194,72202,1),new IH.ptr(72243,72248,1),new IH.ptr(72251,72254,1),new IH.ptr(72263,72273,10),new IH.ptr(72274,72278,1),new IH.ptr(72281,72283,1),new IH.ptr(72330,72342,1),new IH.ptr(72344,72345,1),new IH.ptr(72752,72758,1),new IH.ptr(72760,72765,1),new IH.ptr(72767,72850,83),new IH.ptr(72851,72871,1),new IH.ptr(72874,72880,1),new IH.ptr(72882,72883,1),new IH.ptr(72885,72886,1),new IH.ptr(73009,73014,1),new IH.ptr(73018,73020,2),new IH.ptr(73021,73023,2),new IH.ptr(73024,73029,1),new IH.ptr(73031,73104,73),new IH.ptr(73105,73109,4),new IH.ptr(73111,73459,348),new IH.ptr(73460,92912,19452),new IH.ptr(92913,92916,1),new IH.ptr(92976,92982,1),new IH.ptr(94031,94095,64),new IH.ptr(94096,94098,1),new IH.ptr(94180,113821,19641),new IH.ptr(113822,119143,5321),new IH.ptr(119144,119145,1),new IH.ptr(119163,119170,1),new IH.ptr(119173,119179,1),new IH.ptr(119210,119213,1),new IH.ptr(119362,119364,1),new IH.ptr(121344,121398,1),new IH.ptr(121403,121452,1),new IH.ptr(121461,121476,15),new IH.ptr(121499,121503,1),new IH.ptr(121505,121519,1),new IH.ptr(122880,122886,1),new IH.ptr(122888,122904,1),new IH.ptr(122907,122913,1),new IH.ptr(122915,122916,1),new IH.ptr(122918,122922,1),new IH.ptr(123184,123190,1),new IH.ptr(123628,123631,1),new IH.ptr(125136,125142,1),new IH.ptr(125252,125258,1),new IH.ptr(917760,917999,1)]),0);P=new IF.ptr(new JM([new IG.ptr(48,57,1),new IG.ptr(178,179,1),new IG.ptr(185,188,3),new IG.ptr(189,190,1),new IG.ptr(1632,1641,1),new IG.ptr(1776,1785,1),new IG.ptr(1984,1993,1),new IG.ptr(2406,2415,1),new IG.ptr(2534,2543,1),new IG.ptr(2548,2553,1),new IG.ptr(2662,2671,1),new IG.ptr(2790,2799,1),new IG.ptr(2918,2927,1),new IG.ptr(2930,2935,1),new IG.ptr(3046,3058,1),new IG.ptr(3174,3183,1),new IG.ptr(3192,3198,1),new IG.ptr(3302,3311,1),new IG.ptr(3416,3422,1),new IG.ptr(3430,3448,1),new IG.ptr(3558,3567,1),new IG.ptr(3664,3673,1),new IG.ptr(3792,3801,1),new IG.ptr(3872,3891,1),new IG.ptr(4160,4169,1),new IG.ptr(4240,4249,1),new IG.ptr(4969,4988,1),new IG.ptr(5870,5872,1),new IG.ptr(6112,6121,1),new IG.ptr(6128,6137,1),new IG.ptr(6160,6169,1),new IG.ptr(6470,6479,1),new IG.ptr(6608,6618,1),new IG.ptr(6784,6793,1),new IG.ptr(6800,6809,1),new IG.ptr(6992,7001,1),new IG.ptr(7088,7097,1),new IG.ptr(7232,7241,1),new IG.ptr(7248,7257,1),new IG.ptr(8304,8308,4),new IG.ptr(8309,8313,1),new IG.ptr(8320,8329,1),new IG.ptr(8528,8578,1),new IG.ptr(8581,8585,1),new IG.ptr(9312,9371,1),new IG.ptr(9450,9471,1),new IG.ptr(10102,10131,1),new IG.ptr(11517,12295,778),new IG.ptr(12321,12329,1),new IG.ptr(12344,12346,1),new IG.ptr(12690,12693,1),new IG.ptr(12832,12841,1),new IG.ptr(12872,12879,1),new IG.ptr(12881,12895,1),new IG.ptr(12928,12937,1),new IG.ptr(12977,12991,1),new IG.ptr(42528,42537,1),new IG.ptr(42726,42735,1),new IG.ptr(43056,43061,1),new IG.ptr(43216,43225,1),new IG.ptr(43264,43273,1),new IG.ptr(43472,43481,1),new IG.ptr(43504,43513,1),new IG.ptr(43600,43609,1),new IG.ptr(44016,44025,1),new IG.ptr(65296,65305,1)]),new JN([new IH.ptr(65799,65843,1),new IH.ptr(65856,65912,1),new IH.ptr(65930,65931,1),new IH.ptr(66273,66299,1),new IH.ptr(66336,66339,1),new IH.ptr(66369,66378,9),new IH.ptr(66513,66517,1),new IH.ptr(66720,66729,1),new IH.ptr(67672,67679,1),new IH.ptr(67705,67711,1),new IH.ptr(67751,67759,1),new IH.ptr(67835,67839,1),new IH.ptr(67862,67867,1),new IH.ptr(68028,68029,1),new IH.ptr(68032,68047,1),new IH.ptr(68050,68095,1),new IH.ptr(68160,68168,1),new IH.ptr(68221,68222,1),new IH.ptr(68253,68255,1),new IH.ptr(68331,68335,1),new IH.ptr(68440,68447,1),new IH.ptr(68472,68479,1),new IH.ptr(68521,68527,1),new IH.ptr(68858,68863,1),new IH.ptr(68912,68921,1),new IH.ptr(69216,69246,1),new IH.ptr(69405,69414,1),new IH.ptr(69457,69460,1),new IH.ptr(69573,69579,1),new IH.ptr(69714,69743,1),new IH.ptr(69872,69881,1),new IH.ptr(69942,69951,1),new IH.ptr(70096,70105,1),new IH.ptr(70113,70132,1),new IH.ptr(70384,70393,1),new IH.ptr(70736,70745,1),new IH.ptr(70864,70873,1),new IH.ptr(71248,71257,1),new IH.ptr(71360,71369,1),new IH.ptr(71472,71483,1),new IH.ptr(71904,71922,1),new IH.ptr(72016,72025,1),new IH.ptr(72784,72812,1),new IH.ptr(73040,73049,1),new IH.ptr(73120,73129,1),new IH.ptr(73664,73684,1),new IH.ptr(74752,74862,1),new IH.ptr(92768,92777,1),new IH.ptr(93008,93017,1),new IH.ptr(93019,93025,1),new IH.ptr(93824,93846,1),new IH.ptr(119520,119539,1),new IH.ptr(119648,119672,1),new IH.ptr(120782,120831,1),new IH.ptr(123200,123209,1),new IH.ptr(123632,123641,1),new IH.ptr(125127,125135,1),new IH.ptr(125264,125273,1),new IH.ptr(126065,126123,1),new IH.ptr(126125,126127,1),new IH.ptr(126129,126132,1),new IH.ptr(126209,126253,1),new IH.ptr(126255,126269,1),new IH.ptr(127232,127244,1),new IH.ptr(130032,130041,1)]),4);Q=new IF.ptr(new JM([new IG.ptr(48,57,1),new IG.ptr(1632,1641,1),new IG.ptr(1776,1785,1),new IG.ptr(1984,1993,1),new IG.ptr(2406,2415,1),new IG.ptr(2534,2543,1),new IG.ptr(2662,2671,1),new IG.ptr(2790,2799,1),new IG.ptr(2918,2927,1),new IG.ptr(3046,3055,1),new IG.ptr(3174,3183,1),new IG.ptr(3302,3311,1),new IG.ptr(3430,3439,1),new IG.ptr(3558,3567,1),new IG.ptr(3664,3673,1),new IG.ptr(3792,3801,1),new IG.ptr(3872,3881,1),new IG.ptr(4160,4169,1),new IG.ptr(4240,4249,1),new IG.ptr(6112,6121,1),new IG.ptr(6160,6169,1),new IG.ptr(6470,6479,1),new IG.ptr(6608,6617,1),new IG.ptr(6784,6793,1),new IG.ptr(6800,6809,1),new IG.ptr(6992,7001,1),new IG.ptr(7088,7097,1),new IG.ptr(7232,7241,1),new IG.ptr(7248,7257,1),new IG.ptr(42528,42537,1),new IG.ptr(43216,43225,1),new IG.ptr(43264,43273,1),new IG.ptr(43472,43481,1),new IG.ptr(43504,43513,1),new IG.ptr(43600,43609,1),new IG.ptr(44016,44025,1),new IG.ptr(65296,65305,1)]),new JN([new IH.ptr(66720,66729,1),new IH.ptr(68912,68921,1),new IH.ptr(69734,69743,1),new IH.ptr(69872,69881,1),new IH.ptr(69942,69951,1),new IH.ptr(70096,70105,1),new IH.ptr(70384,70393,1),new IH.ptr(70736,70745,1),new IH.ptr(70864,70873,1),new IH.ptr(71248,71257,1),new IH.ptr(71360,71369,1),new IH.ptr(71472,71481,1),new IH.ptr(71904,71913,1),new IH.ptr(72016,72025,1),new IH.ptr(72784,72793,1),new IH.ptr(73040,73049,1),new IH.ptr(73120,73129,1),new IH.ptr(92768,92777,1),new IH.ptr(93008,93017,1),new IH.ptr(120782,120831,1),new IH.ptr(123200,123209,1),new IH.ptr(123632,123641,1),new IH.ptr(125264,125273,1),new IH.ptr(130032,130041,1)]),1);R=new IF.ptr(new JM([new IG.ptr(5870,5872,1),new IG.ptr(8544,8578,1),new IG.ptr(8581,8584,1),new IG.ptr(12295,12321,26),new IG.ptr(12322,12329,1),new IG.ptr(12344,12346,1),new IG.ptr(42726,42735,1)]),new JN([new IH.ptr(65856,65908,1),new IH.ptr(66369,66378,9),new IH.ptr(66513,66517,1),new IH.ptr(74752,74862,1)]),0);S=new IF.ptr(new JM([new IG.ptr(178,179,1),new IG.ptr(185,188,3),new IG.ptr(189,190,1),new IG.ptr(2548,2553,1),new IG.ptr(2930,2935,1),new IG.ptr(3056,3058,1),new IG.ptr(3192,3198,1),new IG.ptr(3416,3422,1),new IG.ptr(3440,3448,1),new IG.ptr(3882,3891,1),new IG.ptr(4969,4988,1),new IG.ptr(6128,6137,1),new IG.ptr(6618,8304,1686),new IG.ptr(8308,8313,1),new IG.ptr(8320,8329,1),new IG.ptr(8528,8543,1),new IG.ptr(8585,9312,727),new IG.ptr(9313,9371,1),new IG.ptr(9450,9471,1),new IG.ptr(10102,10131,1),new IG.ptr(11517,12690,1173),new IG.ptr(12691,12693,1),new IG.ptr(12832,12841,1),new IG.ptr(12872,12879,1),new IG.ptr(12881,12895,1),new IG.ptr(12928,12937,1),new IG.ptr(12977,12991,1),new IG.ptr(43056,43061,1)]),new JN([new IH.ptr(65799,65843,1),new IH.ptr(65909,65912,1),new IH.ptr(65930,65931,1),new IH.ptr(66273,66299,1),new IH.ptr(66336,66339,1),new IH.ptr(67672,67679,1),new IH.ptr(67705,67711,1),new IH.ptr(67751,67759,1),new IH.ptr(67835,67839,1),new IH.ptr(67862,67867,1),new IH.ptr(68028,68029,1),new IH.ptr(68032,68047,1),new IH.ptr(68050,68095,1),new IH.ptr(68160,68168,1),new IH.ptr(68221,68222,1),new IH.ptr(68253,68255,1),new IH.ptr(68331,68335,1),new IH.ptr(68440,68447,1),new IH.ptr(68472,68479,1),new IH.ptr(68521,68527,1),new IH.ptr(68858,68863,1),new IH.ptr(69216,69246,1),new IH.ptr(69405,69414,1),new IH.ptr(69457,69460,1),new IH.ptr(69573,69579,1),new IH.ptr(69714,69733,1),new IH.ptr(70113,70132,1),new IH.ptr(71482,71483,1),new IH.ptr(71914,71922,1),new IH.ptr(72794,72812,1),new IH.ptr(73664,73684,1),new IH.ptr(93019,93025,1),new IH.ptr(93824,93846,1),new IH.ptr(119520,119539,1),new IH.ptr(119648,119672,1),new IH.ptr(125127,125135,1),new IH.ptr(126065,126123,1),new IH.ptr(126125,126127,1),new IH.ptr(126129,126132,1),new IH.ptr(126209,126253,1),new IH.ptr(126255,126269,1),new IH.ptr(127232,127244,1)]),3);T=new IF.ptr(new JM([new IG.ptr(33,35,1),new IG.ptr(37,42,1),new IG.ptr(44,47,1),new IG.ptr(58,59,1),new IG.ptr(63,64,1),new IG.ptr(91,93,1),new IG.ptr(95,123,28),new IG.ptr(125,161,36),new IG.ptr(167,171,4),new IG.ptr(182,183,1),new IG.ptr(187,191,4),new IG.ptr(894,903,9),new IG.ptr(1370,1375,1),new IG.ptr(1417,1418,1),new IG.ptr(1470,1472,2),new IG.ptr(1475,1478,3),new IG.ptr(1523,1524,1),new IG.ptr(1545,1546,1),new IG.ptr(1548,1549,1),new IG.ptr(1563,1566,3),new IG.ptr(1567,1642,75),new IG.ptr(1643,1645,1),new IG.ptr(1748,1792,44),new IG.ptr(1793,1805,1),new IG.ptr(2039,2041,1),new IG.ptr(2096,2110,1),new IG.ptr(2142,2404,262),new IG.ptr(2405,2416,11),new IG.ptr(2557,2678,121),new IG.ptr(2800,3191,391),new IG.ptr(3204,3572,368),new IG.ptr(3663,3674,11),new IG.ptr(3675,3844,169),new IG.ptr(3845,3858,1),new IG.ptr(3860,3898,38),new IG.ptr(3899,3901,1),new IG.ptr(3973,4048,75),new IG.ptr(4049,4052,1),new IG.ptr(4057,4058,1),new IG.ptr(4170,4175,1),new IG.ptr(4347,4960,613),new IG.ptr(4961,4968,1),new IG.ptr(5120,5742,622),new IG.ptr(5787,5788,1),new IG.ptr(5867,5869,1),new IG.ptr(5941,5942,1),new IG.ptr(6100,6102,1),new IG.ptr(6104,6106,1),new IG.ptr(6144,6154,1),new IG.ptr(6468,6469,1),new IG.ptr(6686,6687,1),new IG.ptr(6816,6822,1),new IG.ptr(6824,6829,1),new IG.ptr(7002,7008,1),new IG.ptr(7164,7167,1),new IG.ptr(7227,7231,1),new IG.ptr(7294,7295,1),new IG.ptr(7360,7367,1),new IG.ptr(7379,8208,829),new IG.ptr(8209,8231,1),new IG.ptr(8240,8259,1),new IG.ptr(8261,8273,1),new IG.ptr(8275,8286,1),new IG.ptr(8317,8318,1),new IG.ptr(8333,8334,1),new IG.ptr(8968,8971,1),new IG.ptr(9001,9002,1),new IG.ptr(10088,10101,1),new IG.ptr(10181,10182,1),new IG.ptr(10214,10223,1),new IG.ptr(10627,10648,1),new IG.ptr(10712,10715,1),new IG.ptr(10748,10749,1),new IG.ptr(11513,11516,1),new IG.ptr(11518,11519,1),new IG.ptr(11632,11776,144),new IG.ptr(11777,11822,1),new IG.ptr(11824,11855,1),new IG.ptr(11858,12289,431),new IG.ptr(12290,12291,1),new IG.ptr(12296,12305,1),new IG.ptr(12308,12319,1),new IG.ptr(12336,12349,13),new IG.ptr(12448,12539,91),new IG.ptr(42238,42239,1),new IG.ptr(42509,42511,1),new IG.ptr(42611,42622,11),new IG.ptr(42738,42743,1),new IG.ptr(43124,43127,1),new IG.ptr(43214,43215,1),new IG.ptr(43256,43258,1),new IG.ptr(43260,43310,50),new IG.ptr(43311,43359,48),new IG.ptr(43457,43469,1),new IG.ptr(43486,43487,1),new IG.ptr(43612,43615,1),new IG.ptr(43742,43743,1),new IG.ptr(43760,43761,1),new IG.ptr(44011,64830,20819),new IG.ptr(64831,65040,209),new IG.ptr(65041,65049,1),new IG.ptr(65072,65106,1),new IG.ptr(65108,65121,1),new IG.ptr(65123,65128,5),new IG.ptr(65130,65131,1),new IG.ptr(65281,65283,1),new IG.ptr(65285,65290,1),new IG.ptr(65292,65295,1),new IG.ptr(65306,65307,1),new IG.ptr(65311,65312,1),new IG.ptr(65339,65341,1),new IG.ptr(65343,65371,28),new IG.ptr(65373,65375,2),new IG.ptr(65376,65381,1)]),new JN([new IH.ptr(65792,65794,1),new IH.ptr(66463,66512,49),new IH.ptr(66927,67671,744),new IH.ptr(67871,67903,32),new IH.ptr(68176,68184,1),new IH.ptr(68223,68336,113),new IH.ptr(68337,68342,1),new IH.ptr(68409,68415,1),new IH.ptr(68505,68508,1),new IH.ptr(69293,69461,168),new IH.ptr(69462,69465,1),new IH.ptr(69703,69709,1),new IH.ptr(69819,69820,1),new IH.ptr(69822,69825,1),new IH.ptr(69952,69955,1),new IH.ptr(70004,70005,1),new IH.ptr(70085,70088,1),new IH.ptr(70093,70107,14),new IH.ptr(70109,70111,1),new IH.ptr(70200,70205,1),new IH.ptr(70313,70731,418),new IH.ptr(70732,70735,1),new IH.ptr(70746,70747,1),new IH.ptr(70749,70854,105),new IH.ptr(71105,71127,1),new IH.ptr(71233,71235,1),new IH.ptr(71264,71276,1),new IH.ptr(71484,71486,1),new IH.ptr(71739,72004,265),new IH.ptr(72005,72006,1),new IH.ptr(72162,72255,93),new IH.ptr(72256,72262,1),new IH.ptr(72346,72348,1),new IH.ptr(72350,72354,1),new IH.ptr(72769,72773,1),new IH.ptr(72816,72817,1),new IH.ptr(73463,73464,1),new IH.ptr(73727,74864,1137),new IH.ptr(74865,74868,1),new IH.ptr(92782,92783,1),new IH.ptr(92917,92983,66),new IH.ptr(92984,92987,1),new IH.ptr(92996,93847,851),new IH.ptr(93848,93850,1),new IH.ptr(94178,113823,19645),new IH.ptr(121479,121483,1),new IH.ptr(125278,125279,1)]),11);U=new IF.ptr(new JM([new IG.ptr(95,8255,8160),new IG.ptr(8256,8276,20),new IG.ptr(65075,65076,1),new IG.ptr(65101,65103,1),new IG.ptr(65343,65343,1)]),JN.nil,0);V=new IF.ptr(new JM([new IG.ptr(45,1418,1373),new IG.ptr(1470,5120,3650),new IG.ptr(6150,8208,2058),new IG.ptr(8209,8213,1),new IG.ptr(11799,11802,3),new IG.ptr(11834,11835,1),new IG.ptr(11840,12316,476),new IG.ptr(12336,12448,112),new IG.ptr(65073,65074,1),new IG.ptr(65112,65123,11),new IG.ptr(65293,65293,1)]),new JN([new IH.ptr(69293,69293,1)]),0);W=new IF.ptr(new JM([new IG.ptr(41,93,52),new IG.ptr(125,3899,3774),new IG.ptr(3901,5788,1887),new IG.ptr(8262,8318,56),new IG.ptr(8334,8969,635),new IG.ptr(8971,9002,31),new IG.ptr(10089,10101,2),new IG.ptr(10182,10215,33),new IG.ptr(10217,10223,2),new IG.ptr(10628,10648,2),new IG.ptr(10713,10715,2),new IG.ptr(10749,11811,1062),new IG.ptr(11813,11817,2),new IG.ptr(12297,12305,2),new IG.ptr(12309,12315,2),new IG.ptr(12318,12319,1),new IG.ptr(64830,65048,218),new IG.ptr(65078,65092,2),new IG.ptr(65096,65114,18),new IG.ptr(65116,65118,2),new IG.ptr(65289,65341,52),new IG.ptr(65373,65379,3)]),JN.nil,1);X=new IF.ptr(new JM([new IG.ptr(187,8217,8030),new IG.ptr(8221,8250,29),new IG.ptr(11779,11781,2),new IG.ptr(11786,11789,3),new IG.ptr(11805,11809,4)]),JN.nil,0);Y=new IF.ptr(new JM([new IG.ptr(171,8216,8045),new IG.ptr(8219,8220,1),new IG.ptr(8223,8249,26),new IG.ptr(11778,11780,2),new IG.ptr(11785,11788,3),new IG.ptr(11804,11808,4)]),JN.nil,0);Z=new IF.ptr(new JM([new IG.ptr(33,35,1),new IG.ptr(37,39,1),new IG.ptr(42,46,2),new IG.ptr(47,58,11),new IG.ptr(59,63,4),new IG.ptr(64,92,28),new IG.ptr(161,167,6),new IG.ptr(182,183,1),new IG.ptr(191,894,703),new IG.ptr(903,1370,467),new IG.ptr(1371,1375,1),new IG.ptr(1417,1472,55),new IG.ptr(1475,1478,3),new IG.ptr(1523,1524,1),new IG.ptr(1545,1546,1),new IG.ptr(1548,1549,1),new IG.ptr(1563,1566,3),new IG.ptr(1567,1642,75),new IG.ptr(1643,1645,1),new IG.ptr(1748,1792,44),new IG.ptr(1793,1805,1),new IG.ptr(2039,2041,1),new IG.ptr(2096,2110,1),new IG.ptr(2142,2404,262),new IG.ptr(2405,2416,11),new IG.ptr(2557,2678,121),new IG.ptr(2800,3191,391),new IG.ptr(3204,3572,368),new IG.ptr(3663,3674,11),new IG.ptr(3675,3844,169),new IG.ptr(3845,3858,1),new IG.ptr(3860,3973,113),new IG.ptr(4048,4052,1),new IG.ptr(4057,4058,1),new IG.ptr(4170,4175,1),new IG.ptr(4347,4960,613),new IG.ptr(4961,4968,1),new IG.ptr(5742,5867,125),new IG.ptr(5868,5869,1),new IG.ptr(5941,5942,1),new IG.ptr(6100,6102,1),new IG.ptr(6104,6106,1),new IG.ptr(6144,6149,1),new IG.ptr(6151,6154,1),new IG.ptr(6468,6469,1),new IG.ptr(6686,6687,1),new IG.ptr(6816,6822,1),new IG.ptr(6824,6829,1),new IG.ptr(7002,7008,1),new IG.ptr(7164,7167,1),new IG.ptr(7227,7231,1),new IG.ptr(7294,7295,1),new IG.ptr(7360,7367,1),new IG.ptr(7379,8214,835),new IG.ptr(8215,8224,9),new IG.ptr(8225,8231,1),new IG.ptr(8240,8248,1),new IG.ptr(8251,8254,1),new IG.ptr(8257,8259,1),new IG.ptr(8263,8273,1),new IG.ptr(8275,8277,2),new IG.ptr(8278,8286,1),new IG.ptr(11513,11516,1),new IG.ptr(11518,11519,1),new IG.ptr(11632,11776,144),new IG.ptr(11777,11782,5),new IG.ptr(11783,11784,1),new IG.ptr(11787,11790,3),new IG.ptr(11791,11798,1),new IG.ptr(11800,11801,1),new IG.ptr(11803,11806,3),new IG.ptr(11807,11818,11),new IG.ptr(11819,11822,1),new IG.ptr(11824,11833,1),new IG.ptr(11836,11839,1),new IG.ptr(11841,11843,2),new IG.ptr(11844,11855,1),new IG.ptr(11858,12289,431),new IG.ptr(12290,12291,1),new IG.ptr(12349,12539,190),new IG.ptr(42238,42239,1),new IG.ptr(42509,42511,1),new IG.ptr(42611,42622,11),new IG.ptr(42738,42743,1),new IG.ptr(43124,43127,1),new IG.ptr(43214,43215,1),new IG.ptr(43256,43258,1),new IG.ptr(43260,43310,50),new IG.ptr(43311,43359,48),new IG.ptr(43457,43469,1),new IG.ptr(43486,43487,1),new IG.ptr(43612,43615,1),new IG.ptr(43742,43743,1),new IG.ptr(43760,43761,1),new IG.ptr(44011,65040,21029),new IG.ptr(65041,65046,1),new IG.ptr(65049,65072,23),new IG.ptr(65093,65094,1),new IG.ptr(65097,65100,1),new IG.ptr(65104,65106,1),new IG.ptr(65108,65111,1),new IG.ptr(65119,65121,1),new IG.ptr(65128,65130,2),new IG.ptr(65131,65281,150),new IG.ptr(65282,65283,1),new IG.ptr(65285,65287,1),new IG.ptr(65290,65294,2),new IG.ptr(65295,65306,11),new IG.ptr(65307,65311,4),new IG.ptr(65312,65340,28),new IG.ptr(65377,65380,3),new IG.ptr(65381,65381,1)]),new JN([new IH.ptr(65792,65794,1),new IH.ptr(66463,66512,49),new IH.ptr(66927,67671,744),new IH.ptr(67871,67903,32),new IH.ptr(68176,68184,1),new IH.ptr(68223,68336,113),new IH.ptr(68337,68342,1),new IH.ptr(68409,68415,1),new IH.ptr(68505,68508,1),new IH.ptr(69461,69465,1),new IH.ptr(69703,69709,1),new IH.ptr(69819,69820,1),new IH.ptr(69822,69825,1),new IH.ptr(69952,69955,1),new IH.ptr(70004,70005,1),new IH.ptr(70085,70088,1),new IH.ptr(70093,70107,14),new IH.ptr(70109,70111,1),new IH.ptr(70200,70205,1),new IH.ptr(70313,70731,418),new IH.ptr(70732,70735,1),new IH.ptr(70746,70747,1),new IH.ptr(70749,70854,105),new IH.ptr(71105,71127,1),new IH.ptr(71233,71235,1),new IH.ptr(71264,71276,1),new IH.ptr(71484,71486,1),new IH.ptr(71739,72004,265),new IH.ptr(72005,72006,1),new IH.ptr(72162,72255,93),new IH.ptr(72256,72262,1),new IH.ptr(72346,72348,1),new IH.ptr(72350,72354,1),new IH.ptr(72769,72773,1),new IH.ptr(72816,72817,1),new IH.ptr(73463,73464,1),new IH.ptr(73727,74864,1137),new IH.ptr(74865,74868,1),new IH.ptr(92782,92783,1),new IH.ptr(92917,92983,66),new IH.ptr(92984,92987,1),new IH.ptr(92996,93847,851),new IH.ptr(93848,93850,1),new IH.ptr(94178,113823,19645),new IH.ptr(121479,121483,1),new IH.ptr(125278,125279,1)]),8);AA=new IF.ptr(new JM([new IG.ptr(40,91,51),new IG.ptr(123,3898,3775),new IG.ptr(3900,5787,1887),new IG.ptr(8218,8222,4),new IG.ptr(8261,8317,56),new IG.ptr(8333,8968,635),new IG.ptr(8970,9001,31),new IG.ptr(10088,10100,2),new IG.ptr(10181,10214,33),new IG.ptr(10216,10222,2),new IG.ptr(10627,10647,2),new IG.ptr(10712,10714,2),new IG.ptr(10748,11810,1062),new IG.ptr(11812,11816,2),new IG.ptr(11842,12296,454),new IG.ptr(12298,12304,2),new IG.ptr(12308,12314,2),new IG.ptr(12317,64831,52514),new IG.ptr(65047,65077,30),new IG.ptr(65079,65091,2),new IG.ptr(65095,65113,18),new IG.ptr(65115,65117,2),new IG.ptr(65288,65339,51),new IG.ptr(65371,65375,4),new IG.ptr(65378,65378,1)]),JN.nil,1);AB=new IF.ptr(new JM([new IG.ptr(36,43,7),new IG.ptr(60,62,1),new IG.ptr(94,96,2),new IG.ptr(124,126,2),new IG.ptr(162,166,1),new IG.ptr(168,169,1),new IG.ptr(172,174,2),new IG.ptr(175,177,1),new IG.ptr(180,184,4),new IG.ptr(215,247,32),new IG.ptr(706,709,1),new IG.ptr(722,735,1),new IG.ptr(741,747,1),new IG.ptr(749,751,2),new IG.ptr(752,767,1),new IG.ptr(885,900,15),new IG.ptr(901,1014,113),new IG.ptr(1154,1421,267),new IG.ptr(1422,1423,1),new IG.ptr(1542,1544,1),new IG.ptr(1547,1550,3),new IG.ptr(1551,1758,207),new IG.ptr(1769,1789,20),new IG.ptr(1790,2038,248),new IG.ptr(2046,2047,1),new IG.ptr(2546,2547,1),new IG.ptr(2554,2555,1),new IG.ptr(2801,2928,127),new IG.ptr(3059,3066,1),new IG.ptr(3199,3407,208),new IG.ptr(3449,3647,198),new IG.ptr(3841,3843,1),new IG.ptr(3859,3861,2),new IG.ptr(3862,3863,1),new IG.ptr(3866,3871,1),new IG.ptr(3892,3896,2),new IG.ptr(4030,4037,1),new IG.ptr(4039,4044,1),new IG.ptr(4046,4047,1),new IG.ptr(4053,4056,1),new IG.ptr(4254,4255,1),new IG.ptr(5008,5017,1),new IG.ptr(5741,6107,366),new IG.ptr(6464,6622,158),new IG.ptr(6623,6655,1),new IG.ptr(7009,7018,1),new IG.ptr(7028,7036,1),new IG.ptr(8125,8127,2),new IG.ptr(8128,8129,1),new IG.ptr(8141,8143,1),new IG.ptr(8157,8159,1),new IG.ptr(8173,8175,1),new IG.ptr(8189,8190,1),new IG.ptr(8260,8274,14),new IG.ptr(8314,8316,1),new IG.ptr(8330,8332,1),new IG.ptr(8352,8383,1),new IG.ptr(8448,8449,1),new IG.ptr(8451,8454,1),new IG.ptr(8456,8457,1),new IG.ptr(8468,8470,2),new IG.ptr(8471,8472,1),new IG.ptr(8478,8483,1),new IG.ptr(8485,8489,2),new IG.ptr(8494,8506,12),new IG.ptr(8507,8512,5),new IG.ptr(8513,8516,1),new IG.ptr(8522,8525,1),new IG.ptr(8527,8586,59),new IG.ptr(8587,8592,5),new IG.ptr(8593,8967,1),new IG.ptr(8972,9000,1),new IG.ptr(9003,9254,1),new IG.ptr(9280,9290,1),new IG.ptr(9372,9449,1),new IG.ptr(9472,10087,1),new IG.ptr(10132,10180,1),new IG.ptr(10183,10213,1),new IG.ptr(10224,10626,1),new IG.ptr(10649,10711,1),new IG.ptr(10716,10747,1),new IG.ptr(10750,11123,1),new IG.ptr(11126,11157,1),new IG.ptr(11159,11263,1),new IG.ptr(11493,11498,1),new IG.ptr(11856,11857,1),new IG.ptr(11904,11929,1),new IG.ptr(11931,12019,1),new IG.ptr(12032,12245,1),new IG.ptr(12272,12283,1),new IG.ptr(12292,12306,14),new IG.ptr(12307,12320,13),new IG.ptr(12342,12343,1),new IG.ptr(12350,12351,1),new IG.ptr(12443,12444,1),new IG.ptr(12688,12689,1),new IG.ptr(12694,12703,1),new IG.ptr(12736,12771,1),new IG.ptr(12800,12830,1),new IG.ptr(12842,12871,1),new IG.ptr(12880,12896,16),new IG.ptr(12897,12927,1),new IG.ptr(12938,12976,1),new IG.ptr(12992,13311,1),new IG.ptr(19904,19967,1),new IG.ptr(42128,42182,1),new IG.ptr(42752,42774,1),new IG.ptr(42784,42785,1),new IG.ptr(42889,42890,1),new IG.ptr(43048,43051,1),new IG.ptr(43062,43065,1),new IG.ptr(43639,43641,1),new IG.ptr(43867,43882,15),new IG.ptr(43883,64297,20414),new IG.ptr(64434,64449,1),new IG.ptr(65020,65021,1),new IG.ptr(65122,65124,2),new IG.ptr(65125,65126,1),new IG.ptr(65129,65284,155),new IG.ptr(65291,65308,17),new IG.ptr(65309,65310,1),new IG.ptr(65342,65344,2),new IG.ptr(65372,65374,2),new IG.ptr(65504,65510,1),new IG.ptr(65512,65518,1),new IG.ptr(65532,65533,1)]),new JN([new IH.ptr(65847,65855,1),new IH.ptr(65913,65929,1),new IH.ptr(65932,65934,1),new IH.ptr(65936,65948,1),new IH.ptr(65952,66000,48),new IH.ptr(66001,66044,1),new IH.ptr(67703,67704,1),new IH.ptr(68296,71487,3191),new IH.ptr(73685,73713,1),new IH.ptr(92988,92991,1),new IH.ptr(92997,113820,20823),new IH.ptr(118784,119029,1),new IH.ptr(119040,119078,1),new IH.ptr(119081,119140,1),new IH.ptr(119146,119148,1),new IH.ptr(119171,119172,1),new IH.ptr(119180,119209,1),new IH.ptr(119214,119272,1),new IH.ptr(119296,119361,1),new IH.ptr(119365,119552,187),new IH.ptr(119553,119638,1),new IH.ptr(120513,120539,26),new IH.ptr(120571,120597,26),new IH.ptr(120629,120655,26),new IH.ptr(120687,120713,26),new IH.ptr(120745,120771,26),new IH.ptr(120832,121343,1),new IH.ptr(121399,121402,1),new IH.ptr(121453,121460,1),new IH.ptr(121462,121475,1),new IH.ptr(121477,121478,1),new IH.ptr(123215,123647,432),new IH.ptr(126124,126128,4),new IH.ptr(126254,126704,450),new IH.ptr(126705,126976,271),new IH.ptr(126977,127019,1),new IH.ptr(127024,127123,1),new IH.ptr(127136,127150,1),new IH.ptr(127153,127167,1),new IH.ptr(127169,127183,1),new IH.ptr(127185,127221,1),new IH.ptr(127245,127405,1),new IH.ptr(127462,127490,1),new IH.ptr(127504,127547,1),new IH.ptr(127552,127560,1),new IH.ptr(127568,127569,1),new IH.ptr(127584,127589,1),new IH.ptr(127744,128727,1),new IH.ptr(128736,128748,1),new IH.ptr(128752,128764,1),new IH.ptr(128768,128883,1),new IH.ptr(128896,128984,1),new IH.ptr(128992,129003,1),new IH.ptr(129024,129035,1),new IH.ptr(129040,129095,1),new IH.ptr(129104,129113,1),new IH.ptr(129120,129159,1),new IH.ptr(129168,129197,1),new IH.ptr(129200,129201,1),new IH.ptr(129280,129400,1),new IH.ptr(129402,129483,1),new IH.ptr(129485,129619,1),new IH.ptr(129632,129645,1),new IH.ptr(129648,129652,1),new IH.ptr(129656,129658,1),new IH.ptr(129664,129670,1),new IH.ptr(129680,129704,1),new IH.ptr(129712,129718,1),new IH.ptr(129728,129730,1),new IH.ptr(129744,129750,1),new IH.ptr(129792,129938,1),new IH.ptr(129940,129994,1)]),10);AC=new IF.ptr(new JM([new IG.ptr(36,162,126),new IG.ptr(163,165,1),new IG.ptr(1423,1547,124),new IG.ptr(2046,2047,1),new IG.ptr(2546,2547,1),new IG.ptr(2555,2801,246),new IG.ptr(3065,3647,582),new IG.ptr(6107,8352,2245),new IG.ptr(8353,8383,1),new IG.ptr(43064,65020,21956),new IG.ptr(65129,65284,155),new IG.ptr(65504,65505,1),new IG.ptr(65509,65510,1)]),new JN([new IH.ptr(73693,73696,1),new IH.ptr(123647,126128,2481)]),2);AD=new IF.ptr(new JM([new IG.ptr(94,96,2),new IG.ptr(168,175,7),new IG.ptr(180,184,4),new IG.ptr(706,709,1),new IG.ptr(722,735,1),new IG.ptr(741,747,1),new IG.ptr(749,751,2),new IG.ptr(752,767,1),new IG.ptr(885,900,15),new IG.ptr(901,8125,7224),new IG.ptr(8127,8129,1),new IG.ptr(8141,8143,1),new IG.ptr(8157,8159,1),new IG.ptr(8173,8175,1),new IG.ptr(8189,8190,1),new IG.ptr(12443,12444,1),new IG.ptr(42752,42774,1),new IG.ptr(42784,42785,1),new IG.ptr(42889,42890,1),new IG.ptr(43867,43882,15),new IG.ptr(43883,64434,20551),new IG.ptr(64435,64449,1),new IG.ptr(65342,65344,2),new IG.ptr(65507,65507,1)]),new JN([new IH.ptr(127995,127999,1)]),3);AE=new IF.ptr(new JM([new IG.ptr(43,60,17),new IG.ptr(61,62,1),new IG.ptr(124,126,2),new IG.ptr(172,177,5),new IG.ptr(215,247,32),new IG.ptr(1014,1542,528),new IG.ptr(1543,1544,1),new IG.ptr(8260,8274,14),new IG.ptr(8314,8316,1),new IG.ptr(8330,8332,1),new IG.ptr(8472,8512,40),new IG.ptr(8513,8516,1),new IG.ptr(8523,8592,69),new IG.ptr(8593,8596,1),new IG.ptr(8602,8603,1),new IG.ptr(8608,8614,3),new IG.ptr(8622,8654,32),new IG.ptr(8655,8658,3),new IG.ptr(8660,8692,32),new IG.ptr(8693,8959,1),new IG.ptr(8992,8993,1),new IG.ptr(9084,9115,31),new IG.ptr(9116,9139,1),new IG.ptr(9180,9185,1),new IG.ptr(9655,9665,10),new IG.ptr(9720,9727,1),new IG.ptr(9839,10176,337),new IG.ptr(10177,10180,1),new IG.ptr(10183,10213,1),new IG.ptr(10224,10239,1),new IG.ptr(10496,10626,1),new IG.ptr(10649,10711,1),new IG.ptr(10716,10747,1),new IG.ptr(10750,11007,1),new IG.ptr(11056,11076,1),new IG.ptr(11079,11084,1),new IG.ptr(64297,65122,825),new IG.ptr(65124,65126,1),new IG.ptr(65291,65308,17),new IG.ptr(65309,65310,1),new IG.ptr(65372,65374,2),new IG.ptr(65506,65513,7),new IG.ptr(65514,65516,1)]),new JN([new IH.ptr(120513,120539,26),new IH.ptr(120571,120597,26),new IH.ptr(120629,120655,26),new IH.ptr(120687,120713,26),new IH.ptr(120745,120771,26),new IH.ptr(126704,126705,1)]),5);AF=new IF.ptr(new JM([new IG.ptr(166,169,3),new IG.ptr(174,176,2),new IG.ptr(1154,1421,267),new IG.ptr(1422,1550,128),new IG.ptr(1551,1758,207),new IG.ptr(1769,1789,20),new IG.ptr(1790,2038,248),new IG.ptr(2554,2928,374),new IG.ptr(3059,3064,1),new IG.ptr(3066,3199,133),new IG.ptr(3407,3449,42),new IG.ptr(3841,3843,1),new IG.ptr(3859,3861,2),new IG.ptr(3862,3863,1),new IG.ptr(3866,3871,1),new IG.ptr(3892,3896,2),new IG.ptr(4030,4037,1),new IG.ptr(4039,4044,1),new IG.ptr(4046,4047,1),new IG.ptr(4053,4056,1),new IG.ptr(4254,4255,1),new IG.ptr(5008,5017,1),new IG.ptr(5741,6464,723),new IG.ptr(6622,6655,1),new IG.ptr(7009,7018,1),new IG.ptr(7028,7036,1),new IG.ptr(8448,8449,1),new IG.ptr(8451,8454,1),new IG.ptr(8456,8457,1),new IG.ptr(8468,8470,2),new IG.ptr(8471,8478,7),new IG.ptr(8479,8483,1),new IG.ptr(8485,8489,2),new IG.ptr(8494,8506,12),new IG.ptr(8507,8522,15),new IG.ptr(8524,8525,1),new IG.ptr(8527,8586,59),new IG.ptr(8587,8597,10),new IG.ptr(8598,8601,1),new IG.ptr(8604,8607,1),new IG.ptr(8609,8610,1),new IG.ptr(8612,8613,1),new IG.ptr(8615,8621,1),new IG.ptr(8623,8653,1),new IG.ptr(8656,8657,1),new IG.ptr(8659,8661,2),new IG.ptr(8662,8691,1),new IG.ptr(8960,8967,1),new IG.ptr(8972,8991,1),new IG.ptr(8994,9000,1),new IG.ptr(9003,9083,1),new IG.ptr(9085,9114,1),new IG.ptr(9140,9179,1),new IG.ptr(9186,9254,1),new IG.ptr(9280,9290,1),new IG.ptr(9372,9449,1),new IG.ptr(9472,9654,1),new IG.ptr(9656,9664,1),new IG.ptr(9666,9719,1),new IG.ptr(9728,9838,1),new IG.ptr(9840,10087,1),new IG.ptr(10132,10175,1),new IG.ptr(10240,10495,1),new IG.ptr(11008,11055,1),new IG.ptr(11077,11078,1),new IG.ptr(11085,11123,1),new IG.ptr(11126,11157,1),new IG.ptr(11159,11263,1),new IG.ptr(11493,11498,1),new IG.ptr(11856,11857,1),new IG.ptr(11904,11929,1),new IG.ptr(11931,12019,1),new IG.ptr(12032,12245,1),new IG.ptr(12272,12283,1),new IG.ptr(12292,12306,14),new IG.ptr(12307,12320,13),new IG.ptr(12342,12343,1),new IG.ptr(12350,12351,1),new IG.ptr(12688,12689,1),new IG.ptr(12694,12703,1),new IG.ptr(12736,12771,1),new IG.ptr(12800,12830,1),new IG.ptr(12842,12871,1),new IG.ptr(12880,12896,16),new IG.ptr(12897,12927,1),new IG.ptr(12938,12976,1),new IG.ptr(12992,13311,1),new IG.ptr(19904,19967,1),new IG.ptr(42128,42182,1),new IG.ptr(43048,43051,1),new IG.ptr(43062,43063,1),new IG.ptr(43065,43639,574),new IG.ptr(43640,43641,1),new IG.ptr(65021,65508,487),new IG.ptr(65512,65517,5),new IG.ptr(65518,65532,14),new IG.ptr(65533,65533,1)]),new JN([new IH.ptr(65847,65855,1),new IH.ptr(65913,65929,1),new IH.ptr(65932,65934,1),new IH.ptr(65936,65948,1),new IH.ptr(65952,66000,48),new IH.ptr(66001,66044,1),new IH.ptr(67703,67704,1),new IH.ptr(68296,71487,3191),new IH.ptr(73685,73692,1),new IH.ptr(73697,73713,1),new IH.ptr(92988,92991,1),new IH.ptr(92997,113820,20823),new IH.ptr(118784,119029,1),new IH.ptr(119040,119078,1),new IH.ptr(119081,119140,1),new IH.ptr(119146,119148,1),new IH.ptr(119171,119172,1),new IH.ptr(119180,119209,1),new IH.ptr(119214,119272,1),new IH.ptr(119296,119361,1),new IH.ptr(119365,119552,187),new IH.ptr(119553,119638,1),new IH.ptr(120832,121343,1),new IH.ptr(121399,121402,1),new IH.ptr(121453,121460,1),new IH.ptr(121462,121475,1),new IH.ptr(121477,121478,1),new IH.ptr(123215,126124,2909),new IH.ptr(126254,126976,722),new IH.ptr(126977,127019,1),new IH.ptr(127024,127123,1),new IH.ptr(127136,127150,1),new IH.ptr(127153,127167,1),new IH.ptr(127169,127183,1),new IH.ptr(127185,127221,1),new IH.ptr(127245,127405,1),new IH.ptr(127462,127490,1),new IH.ptr(127504,127547,1),new IH.ptr(127552,127560,1),new IH.ptr(127568,127569,1),new IH.ptr(127584,127589,1),new IH.ptr(127744,127994,1),new IH.ptr(128000,128727,1),new IH.ptr(128736,128748,1),new IH.ptr(128752,128764,1),new IH.ptr(128768,128883,1),new IH.ptr(128896,128984,1),new IH.ptr(128992,129003,1),new IH.ptr(129024,129035,1),new IH.ptr(129040,129095,1),new IH.ptr(129104,129113,1),new IH.ptr(129120,129159,1),new IH.ptr(129168,129197,1),new IH.ptr(129200,129201,1),new IH.ptr(129280,129400,1),new IH.ptr(129402,129483,1),new IH.ptr(129485,129619,1),new IH.ptr(129632,129645,1),new IH.ptr(129648,129652,1),new IH.ptr(129656,129658,1),new IH.ptr(129664,129670,1),new IH.ptr(129680,129704,1),new IH.ptr(129712,129718,1),new IH.ptr(129728,129730,1),new IH.ptr(129744,129750,1),new IH.ptr(129792,129938,1),new IH.ptr(129940,129994,1)]),2);AG=new IF.ptr(new JM([new IG.ptr(32,160,128),new IG.ptr(5760,8192,2432),new IG.ptr(8193,8202,1),new IG.ptr(8232,8233,1),new IG.ptr(8239,8287,48),new IG.ptr(12288,12288,1)]),JN.nil,1);AH=new IF.ptr(new JM([new IG.ptr(8232,8232,1)]),JN.nil,0);AI=new IF.ptr(new JM([new IG.ptr(8233,8233,1)]),JN.nil,0);AJ=new IF.ptr(new JM([new IG.ptr(32,160,128),new IG.ptr(5760,8192,2432),new IG.ptr(8193,8202,1),new IG.ptr(8239,8287,48),new IG.ptr(12288,12288,1)]),JN.nil,1);$pkg.Cc=B;$pkg.Cf=C;$pkg.Co=D;$pkg.Cs=E;$pkg.Digit=Q;$pkg.Nd=Q;$pkg.Letter=F;$pkg.L=F;$pkg.Lm=H;$pkg.Lo=I;$pkg.Ll=G;$pkg.M=L;$pkg.Mc=M;$pkg.Me=N;$pkg.Mn=O;$pkg.Nl=R;$pkg.No=S;$pkg.Number=P;$pkg.N=P;$pkg.C=A;$pkg.Pc=U;$pkg.Pd=V;$pkg.Pe=W;$pkg.Pf=X;$pkg.Pi=Y;$pkg.Po=Z;$pkg.Ps=AA;$pkg.P=T;$pkg.Sc=AC;$pkg.Sk=AD;$pkg.Sm=AE;$pkg.So=AF;$pkg.Z=AG;$pkg.S=AB;$pkg.Lt=J;$pkg.Upper=K;$pkg.Lu=K;$pkg.Zl=AH;$pkg.Zp=AI;$pkg.Zs=AJ;$pkg.Categories=$makeMap($String.keyFor,[{k:"C",v:$pkg.C},{k:"Cc",v:$pkg.Cc},{k:"Cf",v:$pkg.Cf},{k:"Co",v:$pkg.Co},{k:"Cs",v:$pkg.Cs},{k:"L",v:$pkg.L},{k:"Ll",v:$pkg.Ll},{k:"Lm",v:$pkg.Lm},{k:"Lo",v:$pkg.Lo},{k:"Lt",v:$pkg.Lt},{k:"Lu",v:$pkg.Lu},{k:"M",v:$pkg.M},{k:"Mc",v:$pkg.Mc},{k:"Me",v:$pkg.Me},{k:"Mn",v:$pkg.Mn},{k:"N",v:$pkg.N},{k:"Nd",v:$pkg.Nd},{k:"Nl",v:$pkg.Nl},{k:"No",v:$pkg.No},{k:"P",v:$pkg.P},{k:"Pc",v:$pkg.Pc},{k:"Pd",v:$pkg.Pd},{k:"Pe",v:$pkg.Pe},{k:"Pf",v:$pkg.Pf},{k:"Pi",v:$pkg.Pi},{k:"Po",v:$pkg.Po},{k:"Ps",v:$pkg.Ps},{k:"S",v:$pkg.S},{k:"Sc",v:$pkg.Sc},{k:"Sk",v:$pkg.Sk},{k:"Sm",v:$pkg.Sm},{k:"So",v:$pkg.So},{k:"Z",v:$pkg.Z},{k:"Zl",v:$pkg.Zl},{k:"Zp",v:$pkg.Zp},{k:"Zs",v:$pkg.Zs}]);AK=new IF.ptr(new JM([]),new JN([new IH.ptr(125184,125259,1),new IH.ptr(125264,125273,1),new IH.ptr(125278,125279,1)]),0);AL=new IF.ptr(new JM([]),new JN([new IH.ptr(71424,71450,1),new IH.ptr(71453,71467,1),new IH.ptr(71472,71487,1)]),0);AM=new IF.ptr(new JM([]),new JN([new IH.ptr(82944,83526,1)]),0);AN=new IF.ptr(new JM([new IG.ptr(1536,1540,1),new IG.ptr(1542,1547,1),new IG.ptr(1549,1562,1),new IG.ptr(1564,1568,2),new IG.ptr(1569,1599,1),new IG.ptr(1601,1610,1),new IG.ptr(1622,1647,1),new IG.ptr(1649,1756,1),new IG.ptr(1758,1791,1),new IG.ptr(1872,1919,1),new IG.ptr(2208,2228,1),new IG.ptr(2230,2247,1),new IG.ptr(2259,2273,1),new IG.ptr(2275,2303,1),new IG.ptr(64336,64449,1),new IG.ptr(64467,64829,1),new IG.ptr(64848,64911,1),new IG.ptr(64914,64967,1),new IG.ptr(65008,65021,1),new IG.ptr(65136,65140,1),new IG.ptr(65142,65276,1)]),new JN([new IH.ptr(69216,69246,1),new IH.ptr(126464,126467,1),new IH.ptr(126469,126495,1),new IH.ptr(126497,126498,1),new IH.ptr(126500,126503,3),new IH.ptr(126505,126514,1),new IH.ptr(126516,126519,1),new IH.ptr(126521,126523,2),new IH.ptr(126530,126535,5),new IH.ptr(126537,126541,2),new IH.ptr(126542,126543,1),new IH.ptr(126545,126546,1),new IH.ptr(126548,126551,3),new IH.ptr(126553,126561,2),new IH.ptr(126562,126564,2),new IH.ptr(126567,126570,1),new IH.ptr(126572,126578,1),new IH.ptr(126580,126583,1),new IH.ptr(126585,126588,1),new IH.ptr(126590,126592,2),new IH.ptr(126593,126601,1),new IH.ptr(126603,126619,1),new IH.ptr(126625,126627,1),new IH.ptr(126629,126633,1),new IH.ptr(126635,126651,1),new IH.ptr(126704,126705,1)]),0);AO=new IF.ptr(new JM([new IG.ptr(1329,1366,1),new IG.ptr(1369,1418,1),new IG.ptr(1421,1423,1),new IG.ptr(64275,64279,1)]),JN.nil,0);AP=new IF.ptr(new JM([]),new JN([new IH.ptr(68352,68405,1),new IH.ptr(68409,68415,1)]),0);AQ=new IF.ptr(new JM([new IG.ptr(6912,6987,1),new IG.ptr(6992,7036,1)]),JN.nil,0);AR=new IF.ptr(new JM([new IG.ptr(42656,42743,1)]),new JN([new IH.ptr(92160,92728,1)]),0);AS=new IF.ptr(new JM([]),new JN([new IH.ptr(92880,92909,1),new IH.ptr(92912,92917,1)]),0);AT=new IF.ptr(new JM([new IG.ptr(7104,7155,1),new IG.ptr(7164,7167,1)]),JN.nil,0);AU=new IF.ptr(new JM([new IG.ptr(2432,2435,1),new IG.ptr(2437,2444,1),new IG.ptr(2447,2448,1),new IG.ptr(2451,2472,1),new IG.ptr(2474,2480,1),new IG.ptr(2482,2486,4),new IG.ptr(2487,2489,1),new IG.ptr(2492,2500,1),new IG.ptr(2503,2504,1),new IG.ptr(2507,2510,1),new IG.ptr(2519,2524,5),new IG.ptr(2525,2527,2),new IG.ptr(2528,2531,1),new IG.ptr(2534,2558,1)]),JN.nil,0);AV=new IF.ptr(new JM([]),new JN([new IH.ptr(72704,72712,1),new IH.ptr(72714,72758,1),new IH.ptr(72760,72773,1),new IH.ptr(72784,72812,1)]),0);AW=new IF.ptr(new JM([new IG.ptr(746,747,1),new IG.ptr(12549,12591,1),new IG.ptr(12704,12735,1)]),JN.nil,0);AX=new IF.ptr(new JM([]),new JN([new IH.ptr(69632,69709,1),new IH.ptr(69714,69743,1),new IH.ptr(69759,69759,1)]),0);AY=new IF.ptr(new JM([new IG.ptr(10240,10495,1)]),JN.nil,0);AZ=new IF.ptr(new JM([new IG.ptr(6656,6683,1),new IG.ptr(6686,6687,1)]),JN.nil,0);BA=new IF.ptr(new JM([new IG.ptr(5952,5971,1)]),JN.nil,0);BB=new IF.ptr(new JM([new IG.ptr(5120,5759,1),new IG.ptr(6320,6389,1)]),JN.nil,0);BC=new IF.ptr(new JM([]),new JN([new IH.ptr(66208,66256,1)]),0);BD=new IF.ptr(new JM([]),new JN([new IH.ptr(66864,66915,1),new IH.ptr(66927,66927,1)]),0);BE=new IF.ptr(new JM([]),new JN([new IH.ptr(69888,69940,1),new IH.ptr(69942,69959,1)]),0);BF=new IF.ptr(new JM([new IG.ptr(43520,43574,1),new IG.ptr(43584,43597,1),new IG.ptr(43600,43609,1),new IG.ptr(43612,43615,1)]),JN.nil,0);BG=new IF.ptr(new JM([new IG.ptr(5024,5109,1),new IG.ptr(5112,5117,1),new IG.ptr(43888,43967,1)]),JN.nil,0);BH=new IF.ptr(new JM([]),new JN([new IH.ptr(69552,69579,1)]),0);BI=new IF.ptr(new JM([new IG.ptr(0,64,1),new IG.ptr(91,96,1),new IG.ptr(123,169,1),new IG.ptr(171,185,1),new IG.ptr(187,191,1),new IG.ptr(215,247,32),new IG.ptr(697,735,1),new IG.ptr(741,745,1),new IG.ptr(748,767,1),new IG.ptr(884,894,10),new IG.ptr(901,903,2),new IG.ptr(1541,1548,7),new IG.ptr(1563,1567,4),new IG.ptr(1600,1757,157),new IG.ptr(2274,2404,130),new IG.ptr(2405,3647,1242),new IG.ptr(4053,4056,1),new IG.ptr(4347,5867,1520),new IG.ptr(5868,5869,1),new IG.ptr(5941,5942,1),new IG.ptr(6146,6147,1),new IG.ptr(6149,7379,1230),new IG.ptr(7393,7401,8),new IG.ptr(7402,7404,1),new IG.ptr(7406,7411,1),new IG.ptr(7413,7415,1),new IG.ptr(7418,8192,774),new IG.ptr(8193,8203,1),new IG.ptr(8206,8292,1),new IG.ptr(8294,8304,1),new IG.ptr(8308,8318,1),new IG.ptr(8320,8334,1),new IG.ptr(8352,8383,1),new IG.ptr(8448,8485,1),new IG.ptr(8487,8489,1),new IG.ptr(8492,8497,1),new IG.ptr(8499,8525,1),new IG.ptr(8527,8543,1),new IG.ptr(8585,8587,1),new IG.ptr(8592,9254,1),new IG.ptr(9280,9290,1),new IG.ptr(9312,10239,1),new IG.ptr(10496,11123,1),new IG.ptr(11126,11157,1),new IG.ptr(11159,11263,1),new IG.ptr(11776,11858,1),new IG.ptr(12272,12283,1),new IG.ptr(12288,12292,1),new IG.ptr(12294,12296,2),new IG.ptr(12297,12320,1),new IG.ptr(12336,12343,1),new IG.ptr(12348,12351,1),new IG.ptr(12443,12444,1),new IG.ptr(12448,12539,91),new IG.ptr(12540,12688,148),new IG.ptr(12689,12703,1),new IG.ptr(12736,12771,1),new IG.ptr(12832,12895,1),new IG.ptr(12927,13007,1),new IG.ptr(13055,13144,89),new IG.ptr(13145,13311,1),new IG.ptr(19904,19967,1),new IG.ptr(42752,42785,1),new IG.ptr(42888,42890,1),new IG.ptr(43056,43065,1),new IG.ptr(43310,43471,161),new IG.ptr(43867,43882,15),new IG.ptr(43883,64830,20947),new IG.ptr(64831,65040,209),new IG.ptr(65041,65049,1),new IG.ptr(65072,65106,1),new IG.ptr(65108,65126,1),new IG.ptr(65128,65131,1),new IG.ptr(65279,65281,2),new IG.ptr(65282,65312,1),new IG.ptr(65339,65344,1),new IG.ptr(65371,65381,1),new IG.ptr(65392,65438,46),new IG.ptr(65439,65504,65),new IG.ptr(65505,65510,1),new IG.ptr(65512,65518,1),new IG.ptr(65529,65533,1)]),new JN([new IH.ptr(65792,65794,1),new IH.ptr(65799,65843,1),new IH.ptr(65847,65855,1),new IH.ptr(65936,65948,1),new IH.ptr(66000,66044,1),new IH.ptr(66273,66299,1),new IH.ptr(94178,94179,1),new IH.ptr(113824,113827,1),new IH.ptr(118784,119029,1),new IH.ptr(119040,119078,1),new IH.ptr(119081,119142,1),new IH.ptr(119146,119162,1),new IH.ptr(119171,119172,1),new IH.ptr(119180,119209,1),new IH.ptr(119214,119272,1),new IH.ptr(119520,119539,1),new IH.ptr(119552,119638,1),new IH.ptr(119648,119672,1),new IH.ptr(119808,119892,1),new IH.ptr(119894,119964,1),new IH.ptr(119966,119967,1),new IH.ptr(119970,119973,3),new IH.ptr(119974,119977,3),new IH.ptr(119978,119980,1),new IH.ptr(119982,119993,1),new IH.ptr(119995,119997,2),new IH.ptr(119998,120003,1),new IH.ptr(120005,120069,1),new IH.ptr(120071,120074,1),new IH.ptr(120077,120084,1),new IH.ptr(120086,120092,1),new IH.ptr(120094,120121,1),new IH.ptr(120123,120126,1),new IH.ptr(120128,120132,1),new IH.ptr(120134,120138,4),new IH.ptr(120139,120144,1),new IH.ptr(120146,120485,1),new IH.ptr(120488,120779,1),new IH.ptr(120782,120831,1),new IH.ptr(126065,126132,1),new IH.ptr(126209,126269,1),new IH.ptr(126976,127019,1),new IH.ptr(127024,127123,1),new IH.ptr(127136,127150,1),new IH.ptr(127153,127167,1),new IH.ptr(127169,127183,1),new IH.ptr(127185,127221,1),new IH.ptr(127232,127405,1),new IH.ptr(127462,127487,1),new IH.ptr(127489,127490,1),new IH.ptr(127504,127547,1),new IH.ptr(127552,127560,1),new IH.ptr(127568,127569,1),new IH.ptr(127584,127589,1),new IH.ptr(127744,128727,1),new IH.ptr(128736,128748,1),new IH.ptr(128752,128764,1),new IH.ptr(128768,128883,1),new IH.ptr(128896,128984,1),new IH.ptr(128992,129003,1),new IH.ptr(129024,129035,1),new IH.ptr(129040,129095,1),new IH.ptr(129104,129113,1),new IH.ptr(129120,129159,1),new IH.ptr(129168,129197,1),new IH.ptr(129200,129201,1),new IH.ptr(129280,129400,1),new IH.ptr(129402,129483,1),new IH.ptr(129485,129619,1),new IH.ptr(129632,129645,1),new IH.ptr(129648,129652,1),new IH.ptr(129656,129658,1),new IH.ptr(129664,129670,1),new IH.ptr(129680,129704,1),new IH.ptr(129712,129718,1),new IH.ptr(129728,129730,1),new IH.ptr(129744,129750,1),new IH.ptr(129792,129938,1),new IH.ptr(129940,129994,1),new IH.ptr(130032,130041,1),new IH.ptr(917505,917536,31),new IH.ptr(917537,917631,1)]),6);BJ=new IF.ptr(new JM([new IG.ptr(994,1007,1),new IG.ptr(11392,11507,1),new IG.ptr(11513,11519,1)]),JN.nil,0);BK=new IF.ptr(new JM([]),new JN([new IH.ptr(73728,74649,1),new IH.ptr(74752,74862,1),new IH.ptr(74864,74868,1),new IH.ptr(74880,75075,1)]),0);BL=new IF.ptr(new JM([]),new JN([new IH.ptr(67584,67589,1),new IH.ptr(67592,67594,2),new IH.ptr(67595,67637,1),new IH.ptr(67639,67640,1),new IH.ptr(67644,67647,3)]),0);BM=new IF.ptr(new JM([new IG.ptr(1024,1156,1),new IG.ptr(1159,1327,1),new IG.ptr(7296,7304,1),new IG.ptr(7467,7544,77),new IG.ptr(11744,11775,1),new IG.ptr(42560,42655,1),new IG.ptr(65070,65071,1)]),JN.nil,0);BN=new IF.ptr(new JM([]),new JN([new IH.ptr(66560,66639,1)]),0);BO=new IF.ptr(new JM([new IG.ptr(2304,2384,1),new IG.ptr(2389,2403,1),new IG.ptr(2406,2431,1),new IG.ptr(43232,43263,1)]),JN.nil,0);BP=new IF.ptr(new JM([]),new JN([new IH.ptr(71936,71942,1),new IH.ptr(71945,71948,3),new IH.ptr(71949,71955,1),new IH.ptr(71957,71958,1),new IH.ptr(71960,71989,1),new IH.ptr(71991,71992,1),new IH.ptr(71995,72006,1),new IH.ptr(72016,72025,1)]),0);BQ=new IF.ptr(new JM([]),new JN([new IH.ptr(71680,71739,1)]),0);BR=new IF.ptr(new JM([]),new JN([new IH.ptr(113664,113770,1),new IH.ptr(113776,113788,1),new IH.ptr(113792,113800,1),new IH.ptr(113808,113817,1),new IH.ptr(113820,113823,1)]),0);BS=new IF.ptr(new JM([]),new JN([new IH.ptr(77824,78894,1),new IH.ptr(78896,78904,1)]),0);BT=new IF.ptr(new JM([]),new JN([new IH.ptr(66816,66855,1)]),0);BU=new IF.ptr(new JM([]),new JN([new IH.ptr(69600,69622,1)]),0);BV=new IF.ptr(new JM([new IG.ptr(4608,4680,1),new IG.ptr(4682,4685,1),new IG.ptr(4688,4694,1),new IG.ptr(4696,4698,2),new IG.ptr(4699,4701,1),new IG.ptr(4704,4744,1),new IG.ptr(4746,4749,1),new IG.ptr(4752,4784,1),new IG.ptr(4786,4789,1),new IG.ptr(4792,4798,1),new IG.ptr(4800,4802,2),new IG.ptr(4803,4805,1),new IG.ptr(4808,4822,1),new IG.ptr(4824,4880,1),new IG.ptr(4882,4885,1),new IG.ptr(4888,4954,1),new IG.ptr(4957,4988,1),new IG.ptr(4992,5017,1),new IG.ptr(11648,11670,1),new IG.ptr(11680,11686,1),new IG.ptr(11688,11694,1),new IG.ptr(11696,11702,1),new IG.ptr(11704,11710,1),new IG.ptr(11712,11718,1),new IG.ptr(11720,11726,1),new IG.ptr(11728,11734,1),new IG.ptr(11736,11742,1),new IG.ptr(43777,43782,1),new IG.ptr(43785,43790,1),new IG.ptr(43793,43798,1),new IG.ptr(43808,43814,1),new IG.ptr(43816,43822,1)]),JN.nil,0);BW=new IF.ptr(new JM([new IG.ptr(4256,4293,1),new IG.ptr(4295,4301,6),new IG.ptr(4304,4346,1),new IG.ptr(4348,4351,1),new IG.ptr(7312,7354,1),new IG.ptr(7357,7359,1),new IG.ptr(11520,11557,1),new IG.ptr(11559,11565,6)]),JN.nil,0);BX=new IF.ptr(new JM([new IG.ptr(11264,11310,1),new IG.ptr(11312,11358,1)]),new JN([new IH.ptr(122880,122886,1),new IH.ptr(122888,122904,1),new IH.ptr(122907,122913,1),new IH.ptr(122915,122916,1),new IH.ptr(122918,122922,1)]),0);BY=new IF.ptr(new JM([]),new JN([new IH.ptr(66352,66378,1)]),0);BZ=new IF.ptr(new JM([]),new JN([new IH.ptr(70400,70403,1),new IH.ptr(70405,70412,1),new IH.ptr(70415,70416,1),new IH.ptr(70419,70440,1),new IH.ptr(70442,70448,1),new IH.ptr(70450,70451,1),new IH.ptr(70453,70457,1),new IH.ptr(70460,70468,1),new IH.ptr(70471,70472,1),new IH.ptr(70475,70477,1),new IH.ptr(70480,70487,7),new IH.ptr(70493,70499,1),new IH.ptr(70502,70508,1),new IH.ptr(70512,70516,1)]),0);CA=new IF.ptr(new JM([new IG.ptr(880,883,1),new IG.ptr(885,887,1),new IG.ptr(890,893,1),new IG.ptr(895,900,5),new IG.ptr(902,904,2),new IG.ptr(905,906,1),new IG.ptr(908,910,2),new IG.ptr(911,929,1),new IG.ptr(931,993,1),new IG.ptr(1008,1023,1),new IG.ptr(7462,7466,1),new IG.ptr(7517,7521,1),new IG.ptr(7526,7530,1),new IG.ptr(7615,7936,321),new IG.ptr(7937,7957,1),new IG.ptr(7960,7965,1),new IG.ptr(7968,8005,1),new IG.ptr(8008,8013,1),new IG.ptr(8016,8023,1),new IG.ptr(8025,8031,2),new IG.ptr(8032,8061,1),new IG.ptr(8064,8116,1),new IG.ptr(8118,8132,1),new IG.ptr(8134,8147,1),new IG.ptr(8150,8155,1),new IG.ptr(8157,8175,1),new IG.ptr(8178,8180,1),new IG.ptr(8182,8190,1),new IG.ptr(8486,43877,35391)]),new JN([new IH.ptr(65856,65934,1),new IH.ptr(65952,119296,53344),new IH.ptr(119297,119365,1)]),0);CB=new IF.ptr(new JM([new IG.ptr(2689,2691,1),new IG.ptr(2693,2701,1),new IG.ptr(2703,2705,1),new IG.ptr(2707,2728,1),new IG.ptr(2730,2736,1),new IG.ptr(2738,2739,1),new IG.ptr(2741,2745,1),new IG.ptr(2748,2757,1),new IG.ptr(2759,2761,1),new IG.ptr(2763,2765,1),new IG.ptr(2768,2784,16),new IG.ptr(2785,2787,1),new IG.ptr(2790,2801,1),new IG.ptr(2809,2815,1)]),JN.nil,0);CC=new IF.ptr(new JM([]),new JN([new IH.ptr(73056,73061,1),new IH.ptr(73063,73064,1),new IH.ptr(73066,73102,1),new IH.ptr(73104,73105,1),new IH.ptr(73107,73112,1),new IH.ptr(73120,73129,1)]),0);CD=new IF.ptr(new JM([new IG.ptr(2561,2563,1),new IG.ptr(2565,2570,1),new IG.ptr(2575,2576,1),new IG.ptr(2579,2600,1),new IG.ptr(2602,2608,1),new IG.ptr(2610,2611,1),new IG.ptr(2613,2614,1),new IG.ptr(2616,2617,1),new IG.ptr(2620,2622,2),new IG.ptr(2623,2626,1),new IG.ptr(2631,2632,1),new IG.ptr(2635,2637,1),new IG.ptr(2641,2649,8),new IG.ptr(2650,2652,1),new IG.ptr(2654,2662,8),new IG.ptr(2663,2678,1)]),JN.nil,0);CE=new IF.ptr(new JM([new IG.ptr(11904,11929,1),new IG.ptr(11931,12019,1),new IG.ptr(12032,12245,1),new IG.ptr(12293,12295,2),new IG.ptr(12321,12329,1),new IG.ptr(12344,12347,1),new IG.ptr(13312,19903,1),new IG.ptr(19968,40956,1),new IG.ptr(63744,64109,1),new IG.ptr(64112,64217,1)]),new JN([new IH.ptr(94192,94193,1),new IH.ptr(131072,173789,1),new IH.ptr(173824,177972,1),new IH.ptr(177984,178205,1),new IH.ptr(178208,183969,1),new IH.ptr(183984,191456,1),new IH.ptr(194560,195101,1),new IH.ptr(196608,201546,1)]),0);CF=new IF.ptr(new JM([new IG.ptr(4352,4607,1),new IG.ptr(12334,12335,1),new IG.ptr(12593,12686,1),new IG.ptr(12800,12830,1),new IG.ptr(12896,12926,1),new IG.ptr(43360,43388,1),new IG.ptr(44032,55203,1),new IG.ptr(55216,55238,1),new IG.ptr(55243,55291,1),new IG.ptr(65440,65470,1),new IG.ptr(65474,65479,1),new IG.ptr(65482,65487,1),new IG.ptr(65490,65495,1),new IG.ptr(65498,65500,1)]),JN.nil,0);CG=new IF.ptr(new JM([]),new JN([new IH.ptr(68864,68903,1),new IH.ptr(68912,68921,1)]),0);CH=new IF.ptr(new JM([new IG.ptr(5920,5940,1)]),JN.nil,0);CI=new IF.ptr(new JM([]),new JN([new IH.ptr(67808,67826,1),new IH.ptr(67828,67829,1),new IH.ptr(67835,67839,1)]),0);CJ=new IF.ptr(new JM([new IG.ptr(1425,1479,1),new IG.ptr(1488,1514,1),new IG.ptr(1519,1524,1),new IG.ptr(64285,64310,1),new IG.ptr(64312,64316,1),new IG.ptr(64318,64320,2),new IG.ptr(64321,64323,2),new IG.ptr(64324,64326,2),new IG.ptr(64327,64335,1)]),JN.nil,0);CK=new IF.ptr(new JM([new IG.ptr(12353,12438,1),new IG.ptr(12445,12447,1)]),new JN([new IH.ptr(110593,110878,1),new IH.ptr(110928,110930,1),new IH.ptr(127488,127488,1)]),0);CL=new IF.ptr(new JM([]),new JN([new IH.ptr(67648,67669,1),new IH.ptr(67671,67679,1)]),0);CM=new IF.ptr(new JM([new IG.ptr(768,879,1),new IG.ptr(1157,1158,1),new IG.ptr(1611,1621,1),new IG.ptr(1648,2385,737),new IG.ptr(2386,2388,1),new IG.ptr(6832,6848,1),new IG.ptr(7376,7378,1),new IG.ptr(7380,7392,1),new IG.ptr(7394,7400,1),new IG.ptr(7405,7412,7),new IG.ptr(7416,7417,1),new IG.ptr(7616,7673,1),new IG.ptr(7675,7679,1),new IG.ptr(8204,8205,1),new IG.ptr(8400,8432,1),new IG.ptr(12330,12333,1),new IG.ptr(12441,12442,1),new IG.ptr(65024,65039,1),new IG.ptr(65056,65069,1)]),new JN([new IH.ptr(66045,66272,227),new IH.ptr(70459,119143,48684),new IH.ptr(119144,119145,1),new IH.ptr(119163,119170,1),new IH.ptr(119173,119179,1),new IH.ptr(119210,119213,1),new IH.ptr(917760,917999,1)]),0);CN=new IF.ptr(new JM([]),new JN([new IH.ptr(68448,68466,1),new IH.ptr(68472,68479,1)]),0);CO=new IF.ptr(new JM([]),new JN([new IH.ptr(68416,68437,1),new IH.ptr(68440,68447,1)]),0);CP=new IF.ptr(new JM([new IG.ptr(43392,43469,1),new IG.ptr(43472,43481,1),new IG.ptr(43486,43487,1)]),JN.nil,0);CQ=new IF.ptr(new JM([]),new JN([new IH.ptr(69760,69825,1),new IH.ptr(69837,69837,1)]),0);CR=new IF.ptr(new JM([new IG.ptr(3200,3212,1),new IG.ptr(3214,3216,1),new IG.ptr(3218,3240,1),new IG.ptr(3242,3251,1),new IG.ptr(3253,3257,1),new IG.ptr(3260,3268,1),new IG.ptr(3270,3272,1),new IG.ptr(3274,3277,1),new IG.ptr(3285,3286,1),new IG.ptr(3294,3296,2),new IG.ptr(3297,3299,1),new IG.ptr(3302,3311,1),new IG.ptr(3313,3314,1)]),JN.nil,0);CS=new IF.ptr(new JM([new IG.ptr(12449,12538,1),new IG.ptr(12541,12543,1),new IG.ptr(12784,12799,1),new IG.ptr(13008,13054,1),new IG.ptr(13056,13143,1),new IG.ptr(65382,65391,1),new IG.ptr(65393,65437,1)]),new JN([new IH.ptr(110592,110948,356),new IH.ptr(110949,110951,1)]),0);CT=new IF.ptr(new JM([new IG.ptr(43264,43309,1),new IG.ptr(43311,43311,1)]),JN.nil,0);CU=new IF.ptr(new JM([]),new JN([new IH.ptr(68096,68099,1),new IH.ptr(68101,68102,1),new IH.ptr(68108,68115,1),new IH.ptr(68117,68119,1),new IH.ptr(68121,68149,1),new IH.ptr(68152,68154,1),new IH.ptr(68159,68168,1),new IH.ptr(68176,68184,1)]),0);CV=new IF.ptr(new JM([]),new JN([new IH.ptr(94180,101120,6940),new IH.ptr(101121,101589,1)]),0);CW=new IF.ptr(new JM([new IG.ptr(6016,6109,1),new IG.ptr(6112,6121,1),new IG.ptr(6128,6137,1),new IG.ptr(6624,6655,1)]),JN.nil,0);CX=new IF.ptr(new JM([]),new JN([new IH.ptr(70144,70161,1),new IH.ptr(70163,70206,1)]),0);CY=new IF.ptr(new JM([]),new JN([new IH.ptr(70320,70378,1),new IH.ptr(70384,70393,1)]),0);CZ=new IF.ptr(new JM([new IG.ptr(3713,3714,1),new IG.ptr(3716,3718,2),new IG.ptr(3719,3722,1),new IG.ptr(3724,3747,1),new IG.ptr(3749,3751,2),new IG.ptr(3752,3773,1),new IG.ptr(3776,3780,1),new IG.ptr(3782,3784,2),new IG.ptr(3785,3789,1),new IG.ptr(3792,3801,1),new IG.ptr(3804,3807,1)]),JN.nil,0);DA=new IF.ptr(new JM([new IG.ptr(65,90,1),new IG.ptr(97,122,1),new IG.ptr(170,186,16),new IG.ptr(192,214,1),new IG.ptr(216,246,1),new IG.ptr(248,696,1),new IG.ptr(736,740,1),new IG.ptr(7424,7461,1),new IG.ptr(7468,7516,1),new IG.ptr(7522,7525,1),new IG.ptr(7531,7543,1),new IG.ptr(7545,7614,1),new IG.ptr(7680,7935,1),new IG.ptr(8305,8319,14),new IG.ptr(8336,8348,1),new IG.ptr(8490,8491,1),new IG.ptr(8498,8526,28),new IG.ptr(8544,8584,1),new IG.ptr(11360,11391,1),new IG.ptr(42786,42887,1),new IG.ptr(42891,42943,1),new IG.ptr(42946,42954,1),new IG.ptr(42997,43007,1),new IG.ptr(43824,43866,1),new IG.ptr(43868,43876,1),new IG.ptr(43878,43881,1),new IG.ptr(64256,64262,1),new IG.ptr(65313,65338,1),new IG.ptr(65345,65370,1)]),JN.nil,5);DB=new IF.ptr(new JM([new IG.ptr(7168,7223,1),new IG.ptr(7227,7241,1),new IG.ptr(7245,7247,1)]),JN.nil,0);DC=new IF.ptr(new JM([new IG.ptr(6400,6430,1),new IG.ptr(6432,6443,1),new IG.ptr(6448,6459,1),new IG.ptr(6464,6468,4),new IG.ptr(6469,6479,1)]),JN.nil,0);DD=new IF.ptr(new JM([]),new JN([new IH.ptr(67072,67382,1),new IH.ptr(67392,67413,1),new IH.ptr(67424,67431,1)]),0);DE=new IF.ptr(new JM([]),new JN([new IH.ptr(65536,65547,1),new IH.ptr(65549,65574,1),new IH.ptr(65576,65594,1),new IH.ptr(65596,65597,1),new IH.ptr(65599,65613,1),new IH.ptr(65616,65629,1),new IH.ptr(65664,65786,1)]),0);DF=new IF.ptr(new JM([new IG.ptr(42192,42239,1)]),new JN([new IH.ptr(73648,73648,1)]),0);DG=new IF.ptr(new JM([]),new JN([new IH.ptr(66176,66204,1)]),0);DH=new IF.ptr(new JM([]),new JN([new IH.ptr(67872,67897,1),new IH.ptr(67903,67903,1)]),0);DI=new IF.ptr(new JM([]),new JN([new IH.ptr(69968,70006,1)]),0);DJ=new IF.ptr(new JM([]),new JN([new IH.ptr(73440,73464,1)]),0);DK=new IF.ptr(new JM([new IG.ptr(3328,3340,1),new IG.ptr(3342,3344,1),new IG.ptr(3346,3396,1),new IG.ptr(3398,3400,1),new IG.ptr(3402,3407,1),new IG.ptr(3412,3427,1),new IG.ptr(3430,3455,1)]),JN.nil,0);DL=new IF.ptr(new JM([new IG.ptr(2112,2139,1),new IG.ptr(2142,2142,1)]),JN.nil,0);DM=new IF.ptr(new JM([]),new JN([new IH.ptr(68288,68326,1),new IH.ptr(68331,68342,1)]),0);DN=new IF.ptr(new JM([]),new JN([new IH.ptr(72816,72847,1),new IH.ptr(72850,72871,1),new IH.ptr(72873,72886,1)]),0);DO=new IF.ptr(new JM([]),new JN([new IH.ptr(72960,72966,1),new IH.ptr(72968,72969,1),new IH.ptr(72971,73014,1),new IH.ptr(73018,73020,2),new IH.ptr(73021,73023,2),new IH.ptr(73024,73031,1),new IH.ptr(73040,73049,1)]),0);DP=new IF.ptr(new JM([]),new JN([new IH.ptr(93760,93850,1)]),0);DQ=new IF.ptr(new JM([new IG.ptr(43744,43766,1),new IG.ptr(43968,44013,1),new IG.ptr(44016,44025,1)]),JN.nil,0);DR=new IF.ptr(new JM([]),new JN([new IH.ptr(124928,125124,1),new IH.ptr(125127,125142,1)]),0);DS=new IF.ptr(new JM([]),new JN([new IH.ptr(68000,68023,1),new IH.ptr(68028,68047,1),new IH.ptr(68050,68095,1)]),0);DT=new IF.ptr(new JM([]),new JN([new IH.ptr(67968,67999,1)]),0);DU=new IF.ptr(new JM([]),new JN([new IH.ptr(93952,94026,1),new IH.ptr(94031,94087,1),new IH.ptr(94095,94111,1)]),0);DV=new IF.ptr(new JM([]),new JN([new IH.ptr(71168,71236,1),new IH.ptr(71248,71257,1)]),0);DW=new IF.ptr(new JM([new IG.ptr(6144,6145,1),new IG.ptr(6148,6150,2),new IG.ptr(6151,6158,1),new IG.ptr(6160,6169,1),new IG.ptr(6176,6264,1),new IG.ptr(6272,6314,1)]),new JN([new IH.ptr(71264,71276,1)]),0);DX=new IF.ptr(new JM([]),new JN([new IH.ptr(92736,92766,1),new IH.ptr(92768,92777,1),new IH.ptr(92782,92783,1)]),0);DY=new IF.ptr(new JM([]),new JN([new IH.ptr(70272,70278,1),new IH.ptr(70280,70282,2),new IH.ptr(70283,70285,1),new IH.ptr(70287,70301,1),new IH.ptr(70303,70313,1)]),0);DZ=new IF.ptr(new JM([new IG.ptr(4096,4255,1),new IG.ptr(43488,43518,1),new IG.ptr(43616,43647,1)]),JN.nil,0);EA=new IF.ptr(new JM([]),new JN([new IH.ptr(67712,67742,1),new IH.ptr(67751,67759,1)]),0);EB=new IF.ptr(new JM([]),new JN([new IH.ptr(72096,72103,1),new IH.ptr(72106,72151,1),new IH.ptr(72154,72164,1)]),0);EC=new IF.ptr(new JM([new IG.ptr(6528,6571,1),new IG.ptr(6576,6601,1),new IG.ptr(6608,6618,1),new IG.ptr(6622,6623,1)]),JN.nil,0);ED=new IF.ptr(new JM([]),new JN([new IH.ptr(70656,70747,1),new IH.ptr(70749,70753,1)]),0);EE=new IF.ptr(new JM([new IG.ptr(1984,2042,1),new IG.ptr(2045,2047,1)]),JN.nil,0);EF=new IF.ptr(new JM([]),new JN([new IH.ptr(94177,110960,16783),new IH.ptr(110961,111355,1)]),0);EG=new IF.ptr(new JM([]),new JN([new IH.ptr(123136,123180,1),new IH.ptr(123184,123197,1),new IH.ptr(123200,123209,1),new IH.ptr(123214,123215,1)]),0);EH=new IF.ptr(new JM([new IG.ptr(5760,5788,1)]),JN.nil,0);EI=new IF.ptr(new JM([new IG.ptr(7248,7295,1)]),JN.nil,0);EJ=new IF.ptr(new JM([]),new JN([new IH.ptr(68736,68786,1),new IH.ptr(68800,68850,1),new IH.ptr(68858,68863,1)]),0);EK=new IF.ptr(new JM([]),new JN([new IH.ptr(66304,66339,1),new IH.ptr(66349,66351,1)]),0);EL=new IF.ptr(new JM([]),new JN([new IH.ptr(68224,68255,1)]),0);EM=new IF.ptr(new JM([]),new JN([new IH.ptr(66384,66426,1)]),0);EN=new IF.ptr(new JM([]),new JN([new IH.ptr(66464,66499,1),new IH.ptr(66504,66517,1)]),0);EO=new IF.ptr(new JM([]),new JN([new IH.ptr(69376,69415,1)]),0);EP=new IF.ptr(new JM([]),new JN([new IH.ptr(68192,68223,1)]),0);EQ=new IF.ptr(new JM([]),new JN([new IH.ptr(68608,68680,1)]),0);ER=new IF.ptr(new JM([new IG.ptr(2817,2819,1),new IG.ptr(2821,2828,1),new IG.ptr(2831,2832,1),new IG.ptr(2835,2856,1),new IG.ptr(2858,2864,1),new IG.ptr(2866,2867,1),new IG.ptr(2869,2873,1),new IG.ptr(2876,2884,1),new IG.ptr(2887,2888,1),new IG.ptr(2891,2893,1),new IG.ptr(2901,2903,1),new IG.ptr(2908,2909,1),new IG.ptr(2911,2915,1),new IG.ptr(2918,2935,1)]),JN.nil,0);ES=new IF.ptr(new JM([]),new JN([new IH.ptr(66736,66771,1),new IH.ptr(66776,66811,1)]),0);ET=new IF.ptr(new JM([]),new JN([new IH.ptr(66688,66717,1),new IH.ptr(66720,66729,1)]),0);EU=new IF.ptr(new JM([]),new JN([new IH.ptr(92928,92997,1),new IH.ptr(93008,93017,1),new IH.ptr(93019,93025,1),new IH.ptr(93027,93047,1),new IH.ptr(93053,93071,1)]),0);EV=new IF.ptr(new JM([]),new JN([new IH.ptr(67680,67711,1)]),0);EW=new IF.ptr(new JM([]),new JN([new IH.ptr(72384,72440,1)]),0);EX=new IF.ptr(new JM([new IG.ptr(43072,43127,1)]),JN.nil,0);EY=new IF.ptr(new JM([]),new JN([new IH.ptr(67840,67867,1),new IH.ptr(67871,67871,1)]),0);EZ=new IF.ptr(new JM([]),new JN([new IH.ptr(68480,68497,1),new IH.ptr(68505,68508,1),new IH.ptr(68521,68527,1)]),0);FA=new IF.ptr(new JM([new IG.ptr(43312,43347,1),new IG.ptr(43359,43359,1)]),JN.nil,0);FB=new IF.ptr(new JM([new IG.ptr(5792,5866,1),new IG.ptr(5870,5880,1)]),JN.nil,0);FC=new IF.ptr(new JM([new IG.ptr(2048,2093,1),new IG.ptr(2096,2110,1)]),JN.nil,0);FD=new IF.ptr(new JM([new IG.ptr(43136,43205,1),new IG.ptr(43214,43225,1)]),JN.nil,0);FE=new IF.ptr(new JM([]),new JN([new IH.ptr(70016,70111,1)]),0);FF=new IF.ptr(new JM([]),new JN([new IH.ptr(66640,66687,1)]),0);FG=new IF.ptr(new JM([]),new JN([new IH.ptr(71040,71093,1),new IH.ptr(71096,71133,1)]),0);FH=new IF.ptr(new JM([]),new JN([new IH.ptr(120832,121483,1),new IH.ptr(121499,121503,1),new IH.ptr(121505,121519,1)]),0);FI=new IF.ptr(new JM([new IG.ptr(3457,3459,1),new IG.ptr(3461,3478,1),new IG.ptr(3482,3505,1),new IG.ptr(3507,3515,1),new IG.ptr(3517,3520,3),new IG.ptr(3521,3526,1),new IG.ptr(3530,3535,5),new IG.ptr(3536,3540,1),new IG.ptr(3542,3544,2),new IG.ptr(3545,3551,1),new IG.ptr(3558,3567,1),new IG.ptr(3570,3572,1)]),new JN([new IH.ptr(70113,70132,1)]),0);FJ=new IF.ptr(new JM([]),new JN([new IH.ptr(69424,69465,1)]),0);FK=new IF.ptr(new JM([]),new JN([new IH.ptr(69840,69864,1),new IH.ptr(69872,69881,1)]),0);FL=new IF.ptr(new JM([]),new JN([new IH.ptr(72272,72354,1)]),0);FM=new IF.ptr(new JM([new IG.ptr(7040,7103,1),new IG.ptr(7360,7367,1)]),JN.nil,0);FN=new IF.ptr(new JM([new IG.ptr(43008,43052,1)]),JN.nil,0);FO=new IF.ptr(new JM([new IG.ptr(1792,1805,1),new IG.ptr(1807,1866,1),new IG.ptr(1869,1871,1),new IG.ptr(2144,2154,1)]),JN.nil,0);FP=new IF.ptr(new JM([new IG.ptr(5888,5900,1),new IG.ptr(5902,5908,1)]),JN.nil,0);FQ=new IF.ptr(new JM([new IG.ptr(5984,5996,1),new IG.ptr(5998,6000,1),new IG.ptr(6002,6003,1)]),JN.nil,0);FR=new IF.ptr(new JM([new IG.ptr(6480,6509,1),new IG.ptr(6512,6516,1)]),JN.nil,0);FS=new IF.ptr(new JM([new IG.ptr(6688,6750,1),new IG.ptr(6752,6780,1),new IG.ptr(6783,6793,1),new IG.ptr(6800,6809,1),new IG.ptr(6816,6829,1)]),JN.nil,0);FT=new IF.ptr(new JM([new IG.ptr(43648,43714,1),new IG.ptr(43739,43743,1)]),JN.nil,0);FU=new IF.ptr(new JM([]),new JN([new IH.ptr(71296,71352,1),new IH.ptr(71360,71369,1)]),0);FV=new IF.ptr(new JM([new IG.ptr(2946,2947,1),new IG.ptr(2949,2954,1),new IG.ptr(2958,2960,1),new IG.ptr(2962,2965,1),new IG.ptr(2969,2970,1),new IG.ptr(2972,2974,2),new IG.ptr(2975,2979,4),new IG.ptr(2980,2984,4),new IG.ptr(2985,2986,1),new IG.ptr(2990,3001,1),new IG.ptr(3006,3010,1),new IG.ptr(3014,3016,1),new IG.ptr(3018,3021,1),new IG.ptr(3024,3031,7),new IG.ptr(3046,3066,1)]),new JN([new IH.ptr(73664,73713,1),new IH.ptr(73727,73727,1)]),0);FW=new IF.ptr(new JM([]),new JN([new IH.ptr(94176,94208,32),new IH.ptr(94209,100343,1),new IH.ptr(100352,101119,1),new IH.ptr(101632,101640,1)]),0);FX=new IF.ptr(new JM([new IG.ptr(3072,3084,1),new IG.ptr(3086,3088,1),new IG.ptr(3090,3112,1),new IG.ptr(3114,3129,1),new IG.ptr(3133,3140,1),new IG.ptr(3142,3144,1),new IG.ptr(3146,3149,1),new IG.ptr(3157,3158,1),new IG.ptr(3160,3162,1),new IG.ptr(3168,3171,1),new IG.ptr(3174,3183,1),new IG.ptr(3191,3199,1)]),JN.nil,0);FY=new IF.ptr(new JM([new IG.ptr(1920,1969,1)]),JN.nil,0);FZ=new IF.ptr(new JM([new IG.ptr(3585,3642,1),new IG.ptr(3648,3675,1)]),JN.nil,0);GA=new IF.ptr(new JM([new IG.ptr(3840,3911,1),new IG.ptr(3913,3948,1),new IG.ptr(3953,3991,1),new IG.ptr(3993,4028,1),new IG.ptr(4030,4044,1),new IG.ptr(4046,4052,1),new IG.ptr(4057,4058,1)]),JN.nil,0);GB=new IF.ptr(new JM([new IG.ptr(11568,11623,1),new IG.ptr(11631,11632,1),new IG.ptr(11647,11647,1)]),JN.nil,0);GC=new IF.ptr(new JM([]),new JN([new IH.ptr(70784,70855,1),new IH.ptr(70864,70873,1)]),0);GD=new IF.ptr(new JM([]),new JN([new IH.ptr(66432,66461,1),new IH.ptr(66463,66463,1)]),0);GE=new IF.ptr(new JM([new IG.ptr(42240,42539,1)]),JN.nil,0);GF=new IF.ptr(new JM([]),new JN([new IH.ptr(123584,123641,1),new IH.ptr(123647,123647,1)]),0);GG=new IF.ptr(new JM([]),new JN([new IH.ptr(71840,71922,1),new IH.ptr(71935,71935,1)]),0);GH=new IF.ptr(new JM([]),new JN([new IH.ptr(69248,69289,1),new IH.ptr(69291,69293,1),new IH.ptr(69296,69297,1)]),0);GI=new IF.ptr(new JM([new IG.ptr(40960,42124,1),new IG.ptr(42128,42182,1)]),JN.nil,0);GJ=new IF.ptr(new JM([]),new JN([new IH.ptr(72192,72263,1)]),0);$pkg.Adlam=AK;$pkg.Ahom=AL;$pkg.Anatolian_Hieroglyphs=AM;$pkg.Arabic=AN;$pkg.Armenian=AO;$pkg.Avestan=AP;$pkg.Balinese=AQ;$pkg.Bamum=AR;$pkg.Bassa_Vah=AS;$pkg.Batak=AT;$pkg.Bengali=AU;$pkg.Bhaiksuki=AV;$pkg.Bopomofo=AW;$pkg.Brahmi=AX;$pkg.Braille=AY;$pkg.Buginese=AZ;$pkg.Buhid=BA;$pkg.Canadian_Aboriginal=BB;$pkg.Carian=BC;$pkg.Caucasian_Albanian=BD;$pkg.Chakma=BE;$pkg.Cham=BF;$pkg.Cherokee=BG;$pkg.Chorasmian=BH;$pkg.Common=BI;$pkg.Coptic=BJ;$pkg.Cuneiform=BK;$pkg.Cypriot=BL;$pkg.Cyrillic=BM;$pkg.Deseret=BN;$pkg.Devanagari=BO;$pkg.Dives_Akuru=BP;$pkg.Dogra=BQ;$pkg.Duployan=BR;$pkg.Egyptian_Hieroglyphs=BS;$pkg.Elbasan=BT;$pkg.Elymaic=BU;$pkg.Ethiopic=BV;$pkg.Georgian=BW;$pkg.Glagolitic=BX;$pkg.Gothic=BY;$pkg.Grantha=BZ;$pkg.Greek=CA;$pkg.Gujarati=CB;$pkg.Gunjala_Gondi=CC;$pkg.Gurmukhi=CD;$pkg.Han=CE;$pkg.Hangul=CF;$pkg.Hanifi_Rohingya=CG;$pkg.Hanunoo=CH;$pkg.Hatran=CI;$pkg.Hebrew=CJ;$pkg.Hiragana=CK;$pkg.Imperial_Aramaic=CL;$pkg.Inherited=CM;$pkg.Inscriptional_Pahlavi=CN;$pkg.Inscriptional_Parthian=CO;$pkg.Javanese=CP;$pkg.Kaithi=CQ;$pkg.Kannada=CR;$pkg.Katakana=CS;$pkg.Kayah_Li=CT;$pkg.Kharoshthi=CU;$pkg.Khitan_Small_Script=CV;$pkg.Khmer=CW;$pkg.Khojki=CX;$pkg.Khudawadi=CY;$pkg.Lao=CZ;$pkg.Latin=DA;$pkg.Lepcha=DB;$pkg.Limbu=DC;$pkg.Linear_A=DD;$pkg.Linear_B=DE;$pkg.Lisu=DF;$pkg.Lycian=DG;$pkg.Lydian=DH;$pkg.Mahajani=DI;$pkg.Makasar=DJ;$pkg.Malayalam=DK;$pkg.Mandaic=DL;$pkg.Manichaean=DM;$pkg.Marchen=DN;$pkg.Masaram_Gondi=DO;$pkg.Medefaidrin=DP;$pkg.Meetei_Mayek=DQ;$pkg.Mende_Kikakui=DR;$pkg.Meroitic_Cursive=DS;$pkg.Meroitic_Hieroglyphs=DT;$pkg.Miao=DU;$pkg.Modi=DV;$pkg.Mongolian=DW;$pkg.Mro=DX;$pkg.Multani=DY;$pkg.Myanmar=DZ;$pkg.Nabataean=EA;$pkg.Nandinagari=EB;$pkg.New_Tai_Lue=EC;$pkg.Newa=ED;$pkg.Nko=EE;$pkg.Nushu=EF;$pkg.Nyiakeng_Puachue_Hmong=EG;$pkg.Ogham=EH;$pkg.Ol_Chiki=EI;$pkg.Old_Hungarian=EJ;$pkg.Old_Italic=EK;$pkg.Old_North_Arabian=EL;$pkg.Old_Permic=EM;$pkg.Old_Persian=EN;$pkg.Old_Sogdian=EO;$pkg.Old_South_Arabian=EP;$pkg.Old_Turkic=EQ;$pkg.Oriya=ER;$pkg.Osage=ES;$pkg.Osmanya=ET;$pkg.Pahawh_Hmong=EU;$pkg.Palmyrene=EV;$pkg.Pau_Cin_Hau=EW;$pkg.Phags_Pa=EX;$pkg.Phoenician=EY;$pkg.Psalter_Pahlavi=EZ;$pkg.Rejang=FA;$pkg.Runic=FB;$pkg.Samaritan=FC;$pkg.Saurashtra=FD;$pkg.Sharada=FE;$pkg.Shavian=FF;$pkg.Siddham=FG;$pkg.SignWriting=FH;$pkg.Sinhala=FI;$pkg.Sogdian=FJ;$pkg.Sora_Sompeng=FK;$pkg.Soyombo=FL;$pkg.Sundanese=FM;$pkg.Syloti_Nagri=FN;$pkg.Syriac=FO;$pkg.Tagalog=FP;$pkg.Tagbanwa=FQ;$pkg.Tai_Le=FR;$pkg.Tai_Tham=FS;$pkg.Tai_Viet=FT;$pkg.Takri=FU;$pkg.Tamil=FV;$pkg.Tangut=FW;$pkg.Telugu=FX;$pkg.Thaana=FY;$pkg.Thai=FZ;$pkg.Tibetan=GA;$pkg.Tifinagh=GB;$pkg.Tirhuta=GC;$pkg.Ugaritic=GD;$pkg.Vai=GE;$pkg.Wancho=GF;$pkg.Warang_Citi=GG;$pkg.Yezidi=GH;$pkg.Yi=GI;$pkg.Zanabazar_Square=GJ;$pkg.Scripts=$makeMap($String.keyFor,[{k:"Adlam",v:$pkg.Adlam},{k:"Ahom",v:$pkg.Ahom},{k:"Anatolian_Hieroglyphs",v:$pkg.Anatolian_Hieroglyphs},{k:"Arabic",v:$pkg.Arabic},{k:"Armenian",v:$pkg.Armenian},{k:"Avestan",v:$pkg.Avestan},{k:"Balinese",v:$pkg.Balinese},{k:"Bamum",v:$pkg.Bamum},{k:"Bassa_Vah",v:$pkg.Bassa_Vah},{k:"Batak",v:$pkg.Batak},{k:"Bengali",v:$pkg.Bengali},{k:"Bhaiksuki",v:$pkg.Bhaiksuki},{k:"Bopomofo",v:$pkg.Bopomofo},{k:"Brahmi",v:$pkg.Brahmi},{k:"Braille",v:$pkg.Braille},{k:"Buginese",v:$pkg.Buginese},{k:"Buhid",v:$pkg.Buhid},{k:"Canadian_Aboriginal",v:$pkg.Canadian_Aboriginal},{k:"Carian",v:$pkg.Carian},{k:"Caucasian_Albanian",v:$pkg.Caucasian_Albanian},{k:"Chakma",v:$pkg.Chakma},{k:"Cham",v:$pkg.Cham},{k:"Cherokee",v:$pkg.Cherokee},{k:"Chorasmian",v:$pkg.Chorasmian},{k:"Common",v:$pkg.Common},{k:"Coptic",v:$pkg.Coptic},{k:"Cuneiform",v:$pkg.Cuneiform},{k:"Cypriot",v:$pkg.Cypriot},{k:"Cyrillic",v:$pkg.Cyrillic},{k:"Deseret",v:$pkg.Deseret},{k:"Devanagari",v:$pkg.Devanagari},{k:"Dives_Akuru",v:$pkg.Dives_Akuru},{k:"Dogra",v:$pkg.Dogra},{k:"Duployan",v:$pkg.Duployan},{k:"Egyptian_Hieroglyphs",v:$pkg.Egyptian_Hieroglyphs},{k:"Elbasan",v:$pkg.Elbasan},{k:"Elymaic",v:$pkg.Elymaic},{k:"Ethiopic",v:$pkg.Ethiopic},{k:"Georgian",v:$pkg.Georgian},{k:"Glagolitic",v:$pkg.Glagolitic},{k:"Gothic",v:$pkg.Gothic},{k:"Grantha",v:$pkg.Grantha},{k:"Greek",v:$pkg.Greek},{k:"Gujarati",v:$pkg.Gujarati},{k:"Gunjala_Gondi",v:$pkg.Gunjala_Gondi},{k:"Gurmukhi",v:$pkg.Gurmukhi},{k:"Han",v:$pkg.Han},{k:"Hangul",v:$pkg.Hangul},{k:"Hanifi_Rohingya",v:$pkg.Hanifi_Rohingya},{k:"Hanunoo",v:$pkg.Hanunoo},{k:"Hatran",v:$pkg.Hatran},{k:"Hebrew",v:$pkg.Hebrew},{k:"Hiragana",v:$pkg.Hiragana},{k:"Imperial_Aramaic",v:$pkg.Imperial_Aramaic},{k:"Inherited",v:$pkg.Inherited},{k:"Inscriptional_Pahlavi",v:$pkg.Inscriptional_Pahlavi},{k:"Inscriptional_Parthian",v:$pkg.Inscriptional_Parthian},{k:"Javanese",v:$pkg.Javanese},{k:"Kaithi",v:$pkg.Kaithi},{k:"Kannada",v:$pkg.Kannada},{k:"Katakana",v:$pkg.Katakana},{k:"Kayah_Li",v:$pkg.Kayah_Li},{k:"Kharoshthi",v:$pkg.Kharoshthi},{k:"Khitan_Small_Script",v:$pkg.Khitan_Small_Script},{k:"Khmer",v:$pkg.Khmer},{k:"Khojki",v:$pkg.Khojki},{k:"Khudawadi",v:$pkg.Khudawadi},{k:"Lao",v:$pkg.Lao},{k:"Latin",v:$pkg.Latin},{k:"Lepcha",v:$pkg.Lepcha},{k:"Limbu",v:$pkg.Limbu},{k:"Linear_A",v:$pkg.Linear_A},{k:"Linear_B",v:$pkg.Linear_B},{k:"Lisu",v:$pkg.Lisu},{k:"Lycian",v:$pkg.Lycian},{k:"Lydian",v:$pkg.Lydian},{k:"Mahajani",v:$pkg.Mahajani},{k:"Makasar",v:$pkg.Makasar},{k:"Malayalam",v:$pkg.Malayalam},{k:"Mandaic",v:$pkg.Mandaic},{k:"Manichaean",v:$pkg.Manichaean},{k:"Marchen",v:$pkg.Marchen},{k:"Masaram_Gondi",v:$pkg.Masaram_Gondi},{k:"Medefaidrin",v:$pkg.Medefaidrin},{k:"Meetei_Mayek",v:$pkg.Meetei_Mayek},{k:"Mende_Kikakui",v:$pkg.Mende_Kikakui},{k:"Meroitic_Cursive",v:$pkg.Meroitic_Cursive},{k:"Meroitic_Hieroglyphs",v:$pkg.Meroitic_Hieroglyphs},{k:"Miao",v:$pkg.Miao},{k:"Modi",v:$pkg.Modi},{k:"Mongolian",v:$pkg.Mongolian},{k:"Mro",v:$pkg.Mro},{k:"Multani",v:$pkg.Multani},{k:"Myanmar",v:$pkg.Myanmar},{k:"Nabataean",v:$pkg.Nabataean},{k:"Nandinagari",v:$pkg.Nandinagari},{k:"New_Tai_Lue",v:$pkg.New_Tai_Lue},{k:"Newa",v:$pkg.Newa},{k:"Nko",v:$pkg.Nko},{k:"Nushu",v:$pkg.Nushu},{k:"Nyiakeng_Puachue_Hmong",v:$pkg.Nyiakeng_Puachue_Hmong},{k:"Ogham",v:$pkg.Ogham},{k:"Ol_Chiki",v:$pkg.Ol_Chiki},{k:"Old_Hungarian",v:$pkg.Old_Hungarian},{k:"Old_Italic",v:$pkg.Old_Italic},{k:"Old_North_Arabian",v:$pkg.Old_North_Arabian},{k:"Old_Permic",v:$pkg.Old_Permic},{k:"Old_Persian",v:$pkg.Old_Persian},{k:"Old_Sogdian",v:$pkg.Old_Sogdian},{k:"Old_South_Arabian",v:$pkg.Old_South_Arabian},{k:"Old_Turkic",v:$pkg.Old_Turkic},{k:"Oriya",v:$pkg.Oriya},{k:"Osage",v:$pkg.Osage},{k:"Osmanya",v:$pkg.Osmanya},{k:"Pahawh_Hmong",v:$pkg.Pahawh_Hmong},{k:"Palmyrene",v:$pkg.Palmyrene},{k:"Pau_Cin_Hau",v:$pkg.Pau_Cin_Hau},{k:"Phags_Pa",v:$pkg.Phags_Pa},{k:"Phoenician",v:$pkg.Phoenician},{k:"Psalter_Pahlavi",v:$pkg.Psalter_Pahlavi},{k:"Rejang",v:$pkg.Rejang},{k:"Runic",v:$pkg.Runic},{k:"Samaritan",v:$pkg.Samaritan},{k:"Saurashtra",v:$pkg.Saurashtra},{k:"Sharada",v:$pkg.Sharada},{k:"Shavian",v:$pkg.Shavian},{k:"Siddham",v:$pkg.Siddham},{k:"SignWriting",v:$pkg.SignWriting},{k:"Sinhala",v:$pkg.Sinhala},{k:"Sogdian",v:$pkg.Sogdian},{k:"Sora_Sompeng",v:$pkg.Sora_Sompeng},{k:"Soyombo",v:$pkg.Soyombo},{k:"Sundanese",v:$pkg.Sundanese},{k:"Syloti_Nagri",v:$pkg.Syloti_Nagri},{k:"Syriac",v:$pkg.Syriac},{k:"Tagalog",v:$pkg.Tagalog},{k:"Tagbanwa",v:$pkg.Tagbanwa},{k:"Tai_Le",v:$pkg.Tai_Le},{k:"Tai_Tham",v:$pkg.Tai_Tham},{k:"Tai_Viet",v:$pkg.Tai_Viet},{k:"Takri",v:$pkg.Takri},{k:"Tamil",v:$pkg.Tamil},{k:"Tangut",v:$pkg.Tangut},{k:"Telugu",v:$pkg.Telugu},{k:"Thaana",v:$pkg.Thaana},{k:"Thai",v:$pkg.Thai},{k:"Tibetan",v:$pkg.Tibetan},{k:"Tifinagh",v:$pkg.Tifinagh},{k:"Tirhuta",v:$pkg.Tirhuta},{k:"Ugaritic",v:$pkg.Ugaritic},{k:"Vai",v:$pkg.Vai},{k:"Wancho",v:$pkg.Wancho},{k:"Warang_Citi",v:$pkg.Warang_Citi},{k:"Yezidi",v:$pkg.Yezidi},{k:"Yi",v:$pkg.Yi},{k:"Zanabazar_Square",v:$pkg.Zanabazar_Square}]);HR=new IF.ptr(new JM([new IG.ptr(9,13,1),new IG.ptr(32,133,101),new IG.ptr(160,5760,5600),new IG.ptr(8192,8202,1),new IG.ptr(8232,8233,1),new IG.ptr(8239,8287,48),new IG.ptr(12288,12288,1)]),JN.nil,2);$pkg.White_Space=HR;HV=new JO([new IW.ptr(75,107),new IW.ptr(83,115),new IW.ptr(107,8490),new IW.ptr(115,383),new IW.ptr(181,924),new IW.ptr(197,229),new IW.ptr(223,7838),new IW.ptr(229,8491),new IW.ptr(304,304),new IW.ptr(305,305),new IW.ptr(383,83),new IW.ptr(452,453),new IW.ptr(453,454),new IW.ptr(454,452),new IW.ptr(455,456),new IW.ptr(456,457),new IW.ptr(457,455),new IW.ptr(458,459),new IW.ptr(459,460),new IW.ptr(460,458),new IW.ptr(497,498),new IW.ptr(498,499),new IW.ptr(499,497),new IW.ptr(837,921),new IW.ptr(914,946),new IW.ptr(917,949),new IW.ptr(920,952),new IW.ptr(921,953),new IW.ptr(922,954),new IW.ptr(924,956),new IW.ptr(928,960),new IW.ptr(929,961),new IW.ptr(931,962),new IW.ptr(934,966),new IW.ptr(937,969),new IW.ptr(946,976),new IW.ptr(949,1013),new IW.ptr(952,977),new IW.ptr(953,8126),new IW.ptr(954,1008),new IW.ptr(956,181),new IW.ptr(960,982),new IW.ptr(961,1009),new IW.ptr(962,963),new IW.ptr(963,931),new IW.ptr(966,981),new IW.ptr(969,8486),new IW.ptr(976,914),new IW.ptr(977,1012),new IW.ptr(981,934),new IW.ptr(982,928),new IW.ptr(1008,922),new IW.ptr(1009,929),new IW.ptr(1012,920),new IW.ptr(1013,917),new IW.ptr(1042,1074),new IW.ptr(1044,1076),new IW.ptr(1054,1086),new IW.ptr(1057,1089),new IW.ptr(1058,1090),new IW.ptr(1066,1098),new IW.ptr(1074,7296),new IW.ptr(1076,7297),new IW.ptr(1086,7298),new IW.ptr(1089,7299),new IW.ptr(1090,7300),new IW.ptr(1098,7302),new IW.ptr(1122,1123),new IW.ptr(1123,7303),new IW.ptr(7296,1042),new IW.ptr(7297,1044),new IW.ptr(7298,1054),new IW.ptr(7299,1057),new IW.ptr(7300,7301),new IW.ptr(7301,1058),new IW.ptr(7302,1066),new IW.ptr(7303,1122),new IW.ptr(7304,42570),new IW.ptr(7776,7777),new IW.ptr(7777,7835),new IW.ptr(7835,7776),new IW.ptr(7838,223),new IW.ptr(8126,837),new IW.ptr(8486,937),new IW.ptr(8490,75),new IW.ptr(8491,197),new IW.ptr(42570,42571),new IW.ptr(42571,7304)]);HW=new IF.ptr(new JM([new IG.ptr(837,837,1)]),JN.nil,0);HX=new IF.ptr(new JM([new IG.ptr(65,90,1),new IG.ptr(192,214,1),new IG.ptr(216,222,1),new IG.ptr(256,302,2),new IG.ptr(306,310,2),new IG.ptr(313,327,2),new IG.ptr(330,376,2),new IG.ptr(377,381,2),new IG.ptr(385,386,1),new IG.ptr(388,390,2),new IG.ptr(391,393,2),new IG.ptr(394,395,1),new IG.ptr(398,401,1),new IG.ptr(403,404,1),new IG.ptr(406,408,1),new IG.ptr(412,413,1),new IG.ptr(415,416,1),new IG.ptr(418,422,2),new IG.ptr(423,425,2),new IG.ptr(428,430,2),new IG.ptr(431,433,2),new IG.ptr(434,435,1),new IG.ptr(437,439,2),new IG.ptr(440,444,4),new IG.ptr(452,453,1),new IG.ptr(455,456,1),new IG.ptr(458,459,1),new IG.ptr(461,475,2),new IG.ptr(478,494,2),new IG.ptr(497,498,1),new IG.ptr(500,502,2),new IG.ptr(503,504,1),new IG.ptr(506,562,2),new IG.ptr(570,571,1),new IG.ptr(573,574,1),new IG.ptr(577,579,2),new IG.ptr(580,582,1),new IG.ptr(584,590,2),new IG.ptr(837,880,43),new IG.ptr(882,886,4),new IG.ptr(895,902,7),new IG.ptr(904,906,1),new IG.ptr(908,910,2),new IG.ptr(911,913,2),new IG.ptr(914,929,1),new IG.ptr(931,939,1),new IG.ptr(975,984,9),new IG.ptr(986,1006,2),new IG.ptr(1012,1015,3),new IG.ptr(1017,1018,1),new IG.ptr(1021,1071,1),new IG.ptr(1120,1152,2),new IG.ptr(1162,1216,2),new IG.ptr(1217,1229,2),new IG.ptr(1232,1326,2),new IG.ptr(1329,1366,1),new IG.ptr(4256,4293,1),new IG.ptr(4295,4301,6),new IG.ptr(5024,5109,1),new IG.ptr(7312,7354,1),new IG.ptr(7357,7359,1),new IG.ptr(7680,7828,2),new IG.ptr(7838,7934,2),new IG.ptr(7944,7951,1),new IG.ptr(7960,7965,1),new IG.ptr(7976,7983,1),new IG.ptr(7992,7999,1),new IG.ptr(8008,8013,1),new IG.ptr(8025,8031,2),new IG.ptr(8040,8047,1),new IG.ptr(8072,8079,1),new IG.ptr(8088,8095,1),new IG.ptr(8104,8111,1),new IG.ptr(8120,8124,1),new IG.ptr(8136,8140,1),new IG.ptr(8152,8155,1),new IG.ptr(8168,8172,1),new IG.ptr(8184,8188,1),new IG.ptr(8486,8490,4),new IG.ptr(8491,8498,7),new IG.ptr(8579,11264,2685),new IG.ptr(11265,11310,1),new IG.ptr(11360,11362,2),new IG.ptr(11363,11364,1),new IG.ptr(11367,11373,2),new IG.ptr(11374,11376,1),new IG.ptr(11378,11381,3),new IG.ptr(11390,11392,1),new IG.ptr(11394,11490,2),new IG.ptr(11499,11501,2),new IG.ptr(11506,42560,31054),new IG.ptr(42562,42604,2),new IG.ptr(42624,42650,2),new IG.ptr(42786,42798,2),new IG.ptr(42802,42862,2),new IG.ptr(42873,42877,2),new IG.ptr(42878,42886,2),new IG.ptr(42891,42893,2),new IG.ptr(42896,42898,2),new IG.ptr(42902,42922,2),new IG.ptr(42923,42926,1),new IG.ptr(42928,42932,1),new IG.ptr(42934,42942,2),new IG.ptr(42946,42948,2),new IG.ptr(42949,42951,1),new IG.ptr(42953,42997,44),new IG.ptr(65313,65338,1)]),new JN([new IH.ptr(66560,66599,1),new IH.ptr(66736,66771,1),new IH.ptr(68736,68786,1),new IH.ptr(71840,71871,1),new IH.ptr(93760,93791,1),new IH.ptr(125184,125217,1)]),3);HY=new IF.ptr(new JM([new IG.ptr(452,454,2),new IG.ptr(455,457,2),new IG.ptr(458,460,2),new IG.ptr(497,499,2),new IG.ptr(8064,8071,1),new IG.ptr(8080,8087,1),new IG.ptr(8096,8103,1),new IG.ptr(8115,8131,16),new IG.ptr(8179,8179,1)]),JN.nil,0);HZ=new IF.ptr(new JM([new IG.ptr(97,122,1),new IG.ptr(181,223,42),new IG.ptr(224,246,1),new IG.ptr(248,255,1),new IG.ptr(257,303,2),new IG.ptr(307,311,2),new IG.ptr(314,328,2),new IG.ptr(331,375,2),new IG.ptr(378,382,2),new IG.ptr(383,384,1),new IG.ptr(387,389,2),new IG.ptr(392,396,4),new IG.ptr(402,405,3),new IG.ptr(409,410,1),new IG.ptr(414,417,3),new IG.ptr(419,421,2),new IG.ptr(424,429,5),new IG.ptr(432,436,4),new IG.ptr(438,441,3),new IG.ptr(445,447,2),new IG.ptr(453,454,1),new IG.ptr(456,457,1),new IG.ptr(459,460,1),new IG.ptr(462,476,2),new IG.ptr(477,495,2),new IG.ptr(498,499,1),new IG.ptr(501,505,4),new IG.ptr(507,543,2),new IG.ptr(547,563,2),new IG.ptr(572,575,3),new IG.ptr(576,578,2),new IG.ptr(583,591,2),new IG.ptr(592,596,1),new IG.ptr(598,599,1),new IG.ptr(601,603,2),new IG.ptr(604,608,4),new IG.ptr(609,613,2),new IG.ptr(614,616,2),new IG.ptr(617,620,1),new IG.ptr(623,625,2),new IG.ptr(626,629,3),new IG.ptr(637,640,3),new IG.ptr(642,643,1),new IG.ptr(647,652,1),new IG.ptr(658,669,11),new IG.ptr(670,837,167),new IG.ptr(881,883,2),new IG.ptr(887,891,4),new IG.ptr(892,893,1),new IG.ptr(940,943,1),new IG.ptr(945,974,1),new IG.ptr(976,977,1),new IG.ptr(981,983,1),new IG.ptr(985,1007,2),new IG.ptr(1008,1011,1),new IG.ptr(1013,1019,3),new IG.ptr(1072,1119,1),new IG.ptr(1121,1153,2),new IG.ptr(1163,1215,2),new IG.ptr(1218,1230,2),new IG.ptr(1231,1327,2),new IG.ptr(1377,1414,1),new IG.ptr(4304,4346,1),new IG.ptr(4349,4351,1),new IG.ptr(5112,5117,1),new IG.ptr(7296,7304,1),new IG.ptr(7545,7549,4),new IG.ptr(7566,7681,115),new IG.ptr(7683,7829,2),new IG.ptr(7835,7841,6),new IG.ptr(7843,7935,2),new IG.ptr(7936,7943,1),new IG.ptr(7952,7957,1),new IG.ptr(7968,7975,1),new IG.ptr(7984,7991,1),new IG.ptr(8000,8005,1),new IG.ptr(8017,8023,2),new IG.ptr(8032,8039,1),new IG.ptr(8048,8061,1),new IG.ptr(8112,8113,1),new IG.ptr(8126,8144,18),new IG.ptr(8145,8160,15),new IG.ptr(8161,8165,4),new IG.ptr(8526,8580,54),new IG.ptr(11312,11358,1),new IG.ptr(11361,11365,4),new IG.ptr(11366,11372,2),new IG.ptr(11379,11382,3),new IG.ptr(11393,11491,2),new IG.ptr(11500,11502,2),new IG.ptr(11507,11520,13),new IG.ptr(11521,11557,1),new IG.ptr(11559,11565,6),new IG.ptr(42561,42605,2),new IG.ptr(42625,42651,2),new IG.ptr(42787,42799,2),new IG.ptr(42803,42863,2),new IG.ptr(42874,42876,2),new IG.ptr(42879,42887,2),new IG.ptr(42892,42897,5),new IG.ptr(42899,42900,1),new IG.ptr(42903,42921,2),new IG.ptr(42933,42943,2),new IG.ptr(42947,42952,5),new IG.ptr(42954,42998,44),new IG.ptr(43859,43888,29),new IG.ptr(43889,43967,1),new IG.ptr(65345,65370,1)]),new JN([new IH.ptr(66600,66639,1),new IH.ptr(66776,66811,1),new IH.ptr(68800,68850,1),new IH.ptr(71872,71903,1),new IH.ptr(93792,93823,1),new IH.ptr(125218,125251,1)]),4);IA=new IF.ptr(new JM([new IG.ptr(921,953,32),new IG.ptr(8126,8126,1)]),JN.nil,0);IB=new IF.ptr(new JM([new IG.ptr(921,953,32),new IG.ptr(8126,8126,1)]),JN.nil,0);$pkg.FoldCategory=$makeMap($String.keyFor,[{k:"L",v:HW},{k:"Ll",v:HX},{k:"Lt",v:HY},{k:"Lu",v:HZ},{k:"M",v:IA},{k:"Mn",v:IB}]);IC=new IF.ptr(new JM([new IG.ptr(924,956,32)]),JN.nil,0);ID=new IF.ptr(new JM([new IG.ptr(181,837,656)]),JN.nil,0);IE=new IF.ptr(new JM([new IG.ptr(921,953,32),new IG.ptr(8126,8126,1)]),JN.nil,0);$pkg.FoldScript=$makeMap($String.keyFor,[{k:"Common",v:IC},{k:"Greek",v:ID},{k:"Inherited",v:IE}]);HU=$toNativeArray($kindUint16,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,95,96,65,66,67,68,69,70,71,72,73,74,8490,76,77,78,79,80,81,82,383,84,85,86,87,88,89,90,123,124,125,126,127]);HS=new JP([new II.ptr(65,90,$toNativeArray($kindInt32,[0,32,0])),new II.ptr(97,122,$toNativeArray($kindInt32,[-32,0,-32])),new II.ptr(181,181,$toNativeArray($kindInt32,[743,0,743])),new II.ptr(192,214,$toNativeArray($kindInt32,[0,32,0])),new II.ptr(216,222,$toNativeArray($kindInt32,[0,32,0])),new II.ptr(224,246,$toNativeArray($kindInt32,[-32,0,-32])),new II.ptr(248,254,$toNativeArray($kindInt32,[-32,0,-32])),new II.ptr(255,255,$toNativeArray($kindInt32,[121,0,121])),new II.ptr(256,303,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(304,304,$toNativeArray($kindInt32,[0,-199,0])),new II.ptr(305,305,$toNativeArray($kindInt32,[-232,0,-232])),new II.ptr(306,311,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(313,328,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(330,375,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(376,376,$toNativeArray($kindInt32,[0,-121,0])),new II.ptr(377,382,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(383,383,$toNativeArray($kindInt32,[-300,0,-300])),new II.ptr(384,384,$toNativeArray($kindInt32,[195,0,195])),new II.ptr(385,385,$toNativeArray($kindInt32,[0,210,0])),new II.ptr(386,389,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(390,390,$toNativeArray($kindInt32,[0,206,0])),new II.ptr(391,392,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(393,394,$toNativeArray($kindInt32,[0,205,0])),new II.ptr(395,396,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(398,398,$toNativeArray($kindInt32,[0,79,0])),new II.ptr(399,399,$toNativeArray($kindInt32,[0,202,0])),new II.ptr(400,400,$toNativeArray($kindInt32,[0,203,0])),new II.ptr(401,402,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(403,403,$toNativeArray($kindInt32,[0,205,0])),new II.ptr(404,404,$toNativeArray($kindInt32,[0,207,0])),new II.ptr(405,405,$toNativeArray($kindInt32,[97,0,97])),new II.ptr(406,406,$toNativeArray($kindInt32,[0,211,0])),new II.ptr(407,407,$toNativeArray($kindInt32,[0,209,0])),new II.ptr(408,409,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(410,410,$toNativeArray($kindInt32,[163,0,163])),new II.ptr(412,412,$toNativeArray($kindInt32,[0,211,0])),new II.ptr(413,413,$toNativeArray($kindInt32,[0,213,0])),new II.ptr(414,414,$toNativeArray($kindInt32,[130,0,130])),new II.ptr(415,415,$toNativeArray($kindInt32,[0,214,0])),new II.ptr(416,421,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(422,422,$toNativeArray($kindInt32,[0,218,0])),new II.ptr(423,424,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(425,425,$toNativeArray($kindInt32,[0,218,0])),new II.ptr(428,429,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(430,430,$toNativeArray($kindInt32,[0,218,0])),new II.ptr(431,432,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(433,434,$toNativeArray($kindInt32,[0,217,0])),new II.ptr(435,438,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(439,439,$toNativeArray($kindInt32,[0,219,0])),new II.ptr(440,441,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(444,445,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(447,447,$toNativeArray($kindInt32,[56,0,56])),new II.ptr(452,452,$toNativeArray($kindInt32,[0,2,1])),new II.ptr(453,453,$toNativeArray($kindInt32,[-1,1,0])),new II.ptr(454,454,$toNativeArray($kindInt32,[-2,0,-1])),new II.ptr(455,455,$toNativeArray($kindInt32,[0,2,1])),new II.ptr(456,456,$toNativeArray($kindInt32,[-1,1,0])),new II.ptr(457,457,$toNativeArray($kindInt32,[-2,0,-1])),new II.ptr(458,458,$toNativeArray($kindInt32,[0,2,1])),new II.ptr(459,459,$toNativeArray($kindInt32,[-1,1,0])),new II.ptr(460,460,$toNativeArray($kindInt32,[-2,0,-1])),new II.ptr(461,476,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(477,477,$toNativeArray($kindInt32,[-79,0,-79])),new II.ptr(478,495,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(497,497,$toNativeArray($kindInt32,[0,2,1])),new II.ptr(498,498,$toNativeArray($kindInt32,[-1,1,0])),new II.ptr(499,499,$toNativeArray($kindInt32,[-2,0,-1])),new II.ptr(500,501,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(502,502,$toNativeArray($kindInt32,[0,-97,0])),new II.ptr(503,503,$toNativeArray($kindInt32,[0,-56,0])),new II.ptr(504,543,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(544,544,$toNativeArray($kindInt32,[0,-130,0])),new II.ptr(546,563,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(570,570,$toNativeArray($kindInt32,[0,10795,0])),new II.ptr(571,572,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(573,573,$toNativeArray($kindInt32,[0,-163,0])),new II.ptr(574,574,$toNativeArray($kindInt32,[0,10792,0])),new II.ptr(575,576,$toNativeArray($kindInt32,[10815,0,10815])),new II.ptr(577,578,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(579,579,$toNativeArray($kindInt32,[0,-195,0])),new II.ptr(580,580,$toNativeArray($kindInt32,[0,69,0])),new II.ptr(581,581,$toNativeArray($kindInt32,[0,71,0])),new II.ptr(582,591,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(592,592,$toNativeArray($kindInt32,[10783,0,10783])),new II.ptr(593,593,$toNativeArray($kindInt32,[10780,0,10780])),new II.ptr(594,594,$toNativeArray($kindInt32,[10782,0,10782])),new II.ptr(595,595,$toNativeArray($kindInt32,[-210,0,-210])),new II.ptr(596,596,$toNativeArray($kindInt32,[-206,0,-206])),new II.ptr(598,599,$toNativeArray($kindInt32,[-205,0,-205])),new II.ptr(601,601,$toNativeArray($kindInt32,[-202,0,-202])),new II.ptr(603,603,$toNativeArray($kindInt32,[-203,0,-203])),new II.ptr(604,604,$toNativeArray($kindInt32,[42319,0,42319])),new II.ptr(608,608,$toNativeArray($kindInt32,[-205,0,-205])),new II.ptr(609,609,$toNativeArray($kindInt32,[42315,0,42315])),new II.ptr(611,611,$toNativeArray($kindInt32,[-207,0,-207])),new II.ptr(613,613,$toNativeArray($kindInt32,[42280,0,42280])),new II.ptr(614,614,$toNativeArray($kindInt32,[42308,0,42308])),new II.ptr(616,616,$toNativeArray($kindInt32,[-209,0,-209])),new II.ptr(617,617,$toNativeArray($kindInt32,[-211,0,-211])),new II.ptr(618,618,$toNativeArray($kindInt32,[42308,0,42308])),new II.ptr(619,619,$toNativeArray($kindInt32,[10743,0,10743])),new II.ptr(620,620,$toNativeArray($kindInt32,[42305,0,42305])),new II.ptr(623,623,$toNativeArray($kindInt32,[-211,0,-211])),new II.ptr(625,625,$toNativeArray($kindInt32,[10749,0,10749])),new II.ptr(626,626,$toNativeArray($kindInt32,[-213,0,-213])),new II.ptr(629,629,$toNativeArray($kindInt32,[-214,0,-214])),new II.ptr(637,637,$toNativeArray($kindInt32,[10727,0,10727])),new II.ptr(640,640,$toNativeArray($kindInt32,[-218,0,-218])),new II.ptr(642,642,$toNativeArray($kindInt32,[42307,0,42307])),new II.ptr(643,643,$toNativeArray($kindInt32,[-218,0,-218])),new II.ptr(647,647,$toNativeArray($kindInt32,[42282,0,42282])),new II.ptr(648,648,$toNativeArray($kindInt32,[-218,0,-218])),new II.ptr(649,649,$toNativeArray($kindInt32,[-69,0,-69])),new II.ptr(650,651,$toNativeArray($kindInt32,[-217,0,-217])),new II.ptr(652,652,$toNativeArray($kindInt32,[-71,0,-71])),new II.ptr(658,658,$toNativeArray($kindInt32,[-219,0,-219])),new II.ptr(669,669,$toNativeArray($kindInt32,[42261,0,42261])),new II.ptr(670,670,$toNativeArray($kindInt32,[42258,0,42258])),new II.ptr(837,837,$toNativeArray($kindInt32,[84,0,84])),new II.ptr(880,883,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(886,887,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(891,893,$toNativeArray($kindInt32,[130,0,130])),new II.ptr(895,895,$toNativeArray($kindInt32,[0,116,0])),new II.ptr(902,902,$toNativeArray($kindInt32,[0,38,0])),new II.ptr(904,906,$toNativeArray($kindInt32,[0,37,0])),new II.ptr(908,908,$toNativeArray($kindInt32,[0,64,0])),new II.ptr(910,911,$toNativeArray($kindInt32,[0,63,0])),new II.ptr(913,929,$toNativeArray($kindInt32,[0,32,0])),new II.ptr(931,939,$toNativeArray($kindInt32,[0,32,0])),new II.ptr(940,940,$toNativeArray($kindInt32,[-38,0,-38])),new II.ptr(941,943,$toNativeArray($kindInt32,[-37,0,-37])),new II.ptr(945,961,$toNativeArray($kindInt32,[-32,0,-32])),new II.ptr(962,962,$toNativeArray($kindInt32,[-31,0,-31])),new II.ptr(963,971,$toNativeArray($kindInt32,[-32,0,-32])),new II.ptr(972,972,$toNativeArray($kindInt32,[-64,0,-64])),new II.ptr(973,974,$toNativeArray($kindInt32,[-63,0,-63])),new II.ptr(975,975,$toNativeArray($kindInt32,[0,8,0])),new II.ptr(976,976,$toNativeArray($kindInt32,[-62,0,-62])),new II.ptr(977,977,$toNativeArray($kindInt32,[-57,0,-57])),new II.ptr(981,981,$toNativeArray($kindInt32,[-47,0,-47])),new II.ptr(982,982,$toNativeArray($kindInt32,[-54,0,-54])),new II.ptr(983,983,$toNativeArray($kindInt32,[-8,0,-8])),new II.ptr(984,1007,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(1008,1008,$toNativeArray($kindInt32,[-86,0,-86])),new II.ptr(1009,1009,$toNativeArray($kindInt32,[-80,0,-80])),new II.ptr(1010,1010,$toNativeArray($kindInt32,[7,0,7])),new II.ptr(1011,1011,$toNativeArray($kindInt32,[-116,0,-116])),new II.ptr(1012,1012,$toNativeArray($kindInt32,[0,-60,0])),new II.ptr(1013,1013,$toNativeArray($kindInt32,[-96,0,-96])),new II.ptr(1015,1016,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(1017,1017,$toNativeArray($kindInt32,[0,-7,0])),new II.ptr(1018,1019,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(1021,1023,$toNativeArray($kindInt32,[0,-130,0])),new II.ptr(1024,1039,$toNativeArray($kindInt32,[0,80,0])),new II.ptr(1040,1071,$toNativeArray($kindInt32,[0,32,0])),new II.ptr(1072,1103,$toNativeArray($kindInt32,[-32,0,-32])),new II.ptr(1104,1119,$toNativeArray($kindInt32,[-80,0,-80])),new II.ptr(1120,1153,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(1162,1215,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(1216,1216,$toNativeArray($kindInt32,[0,15,0])),new II.ptr(1217,1230,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(1231,1231,$toNativeArray($kindInt32,[-15,0,-15])),new II.ptr(1232,1327,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(1329,1366,$toNativeArray($kindInt32,[0,48,0])),new II.ptr(1377,1414,$toNativeArray($kindInt32,[-48,0,-48])),new II.ptr(4256,4293,$toNativeArray($kindInt32,[0,7264,0])),new II.ptr(4295,4295,$toNativeArray($kindInt32,[0,7264,0])),new II.ptr(4301,4301,$toNativeArray($kindInt32,[0,7264,0])),new II.ptr(4304,4346,$toNativeArray($kindInt32,[3008,0,0])),new II.ptr(4349,4351,$toNativeArray($kindInt32,[3008,0,0])),new II.ptr(5024,5103,$toNativeArray($kindInt32,[0,38864,0])),new II.ptr(5104,5109,$toNativeArray($kindInt32,[0,8,0])),new II.ptr(5112,5117,$toNativeArray($kindInt32,[-8,0,-8])),new II.ptr(7296,7296,$toNativeArray($kindInt32,[-6254,0,-6254])),new II.ptr(7297,7297,$toNativeArray($kindInt32,[-6253,0,-6253])),new II.ptr(7298,7298,$toNativeArray($kindInt32,[-6244,0,-6244])),new II.ptr(7299,7300,$toNativeArray($kindInt32,[-6242,0,-6242])),new II.ptr(7301,7301,$toNativeArray($kindInt32,[-6243,0,-6243])),new II.ptr(7302,7302,$toNativeArray($kindInt32,[-6236,0,-6236])),new II.ptr(7303,7303,$toNativeArray($kindInt32,[-6181,0,-6181])),new II.ptr(7304,7304,$toNativeArray($kindInt32,[35266,0,35266])),new II.ptr(7312,7354,$toNativeArray($kindInt32,[0,-3008,0])),new II.ptr(7357,7359,$toNativeArray($kindInt32,[0,-3008,0])),new II.ptr(7545,7545,$toNativeArray($kindInt32,[35332,0,35332])),new II.ptr(7549,7549,$toNativeArray($kindInt32,[3814,0,3814])),new II.ptr(7566,7566,$toNativeArray($kindInt32,[35384,0,35384])),new II.ptr(7680,7829,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(7835,7835,$toNativeArray($kindInt32,[-59,0,-59])),new II.ptr(7838,7838,$toNativeArray($kindInt32,[0,-7615,0])),new II.ptr(7840,7935,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(7936,7943,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(7944,7951,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(7952,7957,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(7960,7965,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(7968,7975,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(7976,7983,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(7984,7991,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(7992,7999,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(8000,8005,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(8008,8013,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(8017,8017,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(8019,8019,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(8021,8021,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(8023,8023,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(8025,8025,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(8027,8027,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(8029,8029,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(8031,8031,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(8032,8039,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(8040,8047,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(8048,8049,$toNativeArray($kindInt32,[74,0,74])),new II.ptr(8050,8053,$toNativeArray($kindInt32,[86,0,86])),new II.ptr(8054,8055,$toNativeArray($kindInt32,[100,0,100])),new II.ptr(8056,8057,$toNativeArray($kindInt32,[128,0,128])),new II.ptr(8058,8059,$toNativeArray($kindInt32,[112,0,112])),new II.ptr(8060,8061,$toNativeArray($kindInt32,[126,0,126])),new II.ptr(8064,8071,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(8072,8079,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(8080,8087,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(8088,8095,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(8096,8103,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(8104,8111,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(8112,8113,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(8115,8115,$toNativeArray($kindInt32,[9,0,9])),new II.ptr(8120,8121,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(8122,8123,$toNativeArray($kindInt32,[0,-74,0])),new II.ptr(8124,8124,$toNativeArray($kindInt32,[0,-9,0])),new II.ptr(8126,8126,$toNativeArray($kindInt32,[-7205,0,-7205])),new II.ptr(8131,8131,$toNativeArray($kindInt32,[9,0,9])),new II.ptr(8136,8139,$toNativeArray($kindInt32,[0,-86,0])),new II.ptr(8140,8140,$toNativeArray($kindInt32,[0,-9,0])),new II.ptr(8144,8145,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(8152,8153,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(8154,8155,$toNativeArray($kindInt32,[0,-100,0])),new II.ptr(8160,8161,$toNativeArray($kindInt32,[8,0,8])),new II.ptr(8165,8165,$toNativeArray($kindInt32,[7,0,7])),new II.ptr(8168,8169,$toNativeArray($kindInt32,[0,-8,0])),new II.ptr(8170,8171,$toNativeArray($kindInt32,[0,-112,0])),new II.ptr(8172,8172,$toNativeArray($kindInt32,[0,-7,0])),new II.ptr(8179,8179,$toNativeArray($kindInt32,[9,0,9])),new II.ptr(8184,8185,$toNativeArray($kindInt32,[0,-128,0])),new II.ptr(8186,8187,$toNativeArray($kindInt32,[0,-126,0])),new II.ptr(8188,8188,$toNativeArray($kindInt32,[0,-9,0])),new II.ptr(8486,8486,$toNativeArray($kindInt32,[0,-7517,0])),new II.ptr(8490,8490,$toNativeArray($kindInt32,[0,-8383,0])),new II.ptr(8491,8491,$toNativeArray($kindInt32,[0,-8262,0])),new II.ptr(8498,8498,$toNativeArray($kindInt32,[0,28,0])),new II.ptr(8526,8526,$toNativeArray($kindInt32,[-28,0,-28])),new II.ptr(8544,8559,$toNativeArray($kindInt32,[0,16,0])),new II.ptr(8560,8575,$toNativeArray($kindInt32,[-16,0,-16])),new II.ptr(8579,8580,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(9398,9423,$toNativeArray($kindInt32,[0,26,0])),new II.ptr(9424,9449,$toNativeArray($kindInt32,[-26,0,-26])),new II.ptr(11264,11310,$toNativeArray($kindInt32,[0,48,0])),new II.ptr(11312,11358,$toNativeArray($kindInt32,[-48,0,-48])),new II.ptr(11360,11361,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(11362,11362,$toNativeArray($kindInt32,[0,-10743,0])),new II.ptr(11363,11363,$toNativeArray($kindInt32,[0,-3814,0])),new II.ptr(11364,11364,$toNativeArray($kindInt32,[0,-10727,0])),new II.ptr(11365,11365,$toNativeArray($kindInt32,[-10795,0,-10795])),new II.ptr(11366,11366,$toNativeArray($kindInt32,[-10792,0,-10792])),new II.ptr(11367,11372,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(11373,11373,$toNativeArray($kindInt32,[0,-10780,0])),new II.ptr(11374,11374,$toNativeArray($kindInt32,[0,-10749,0])),new II.ptr(11375,11375,$toNativeArray($kindInt32,[0,-10783,0])),new II.ptr(11376,11376,$toNativeArray($kindInt32,[0,-10782,0])),new II.ptr(11378,11379,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(11381,11382,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(11390,11391,$toNativeArray($kindInt32,[0,-10815,0])),new II.ptr(11392,11491,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(11499,11502,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(11506,11507,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(11520,11557,$toNativeArray($kindInt32,[-7264,0,-7264])),new II.ptr(11559,11559,$toNativeArray($kindInt32,[-7264,0,-7264])),new II.ptr(11565,11565,$toNativeArray($kindInt32,[-7264,0,-7264])),new II.ptr(42560,42605,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(42624,42651,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(42786,42799,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(42802,42863,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(42873,42876,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(42877,42877,$toNativeArray($kindInt32,[0,-35332,0])),new II.ptr(42878,42887,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(42891,42892,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(42893,42893,$toNativeArray($kindInt32,[0,-42280,0])),new II.ptr(42896,42899,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(42900,42900,$toNativeArray($kindInt32,[48,0,48])),new II.ptr(42902,42921,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(42922,42922,$toNativeArray($kindInt32,[0,-42308,0])),new II.ptr(42923,42923,$toNativeArray($kindInt32,[0,-42319,0])),new II.ptr(42924,42924,$toNativeArray($kindInt32,[0,-42315,0])),new II.ptr(42925,42925,$toNativeArray($kindInt32,[0,-42305,0])),new II.ptr(42926,42926,$toNativeArray($kindInt32,[0,-42308,0])),new II.ptr(42928,42928,$toNativeArray($kindInt32,[0,-42258,0])),new II.ptr(42929,42929,$toNativeArray($kindInt32,[0,-42282,0])),new II.ptr(42930,42930,$toNativeArray($kindInt32,[0,-42261,0])),new II.ptr(42931,42931,$toNativeArray($kindInt32,[0,928,0])),new II.ptr(42932,42943,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(42946,42947,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(42948,42948,$toNativeArray($kindInt32,[0,-48,0])),new II.ptr(42949,42949,$toNativeArray($kindInt32,[0,-42307,0])),new II.ptr(42950,42950,$toNativeArray($kindInt32,[0,-35384,0])),new II.ptr(42951,42954,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(42997,42998,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new II.ptr(43859,43859,$toNativeArray($kindInt32,[-928,0,-928])),new II.ptr(43888,43967,$toNativeArray($kindInt32,[-38864,0,-38864])),new II.ptr(65313,65338,$toNativeArray($kindInt32,[0,32,0])),new II.ptr(65345,65370,$toNativeArray($kindInt32,[-32,0,-32])),new II.ptr(66560,66599,$toNativeArray($kindInt32,[0,40,0])),new II.ptr(66600,66639,$toNativeArray($kindInt32,[-40,0,-40])),new II.ptr(66736,66771,$toNativeArray($kindInt32,[0,40,0])),new II.ptr(66776,66811,$toNativeArray($kindInt32,[-40,0,-40])),new II.ptr(68736,68786,$toNativeArray($kindInt32,[0,64,0])),new II.ptr(68800,68850,$toNativeArray($kindInt32,[-64,0,-64])),new II.ptr(71840,71871,$toNativeArray($kindInt32,[0,32,0])),new II.ptr(71872,71903,$toNativeArray($kindInt32,[-32,0,-32])),new II.ptr(93760,93791,$toNativeArray($kindInt32,[0,32,0])),new II.ptr(93792,93823,$toNativeArray($kindInt32,[-32,0,-32])),new II.ptr(125184,125217,$toNativeArray($kindInt32,[0,34,0])),new II.ptr(125218,125251,$toNativeArray($kindInt32,[-34,0,-34]))]);$pkg.CaseRanges=HS;HT=$toNativeArray($kindUint8,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,144,130,130,130,136,130,130,130,130,130,130,136,130,130,130,130,132,132,132,132,132,132,132,132,132,132,130,130,136,136,136,130,130,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,130,130,130,136,130,136,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,130,136,130,136,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,16,130,136,136,136,136,136,130,136,136,224,130,136,0,136,136,136,136,132,132,136,192,130,130,136,132,224,130,132,132,132,130,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,136,160,160,160,160,160,160,160,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,136,192,192,192,192,192,192,192,192]);$pkg.GraphicRanges=new JS([$pkg.L,$pkg.M,$pkg.N,$pkg.P,$pkg.S,$pkg.Zs]);$pkg.PrintRanges=new JS([$pkg.L,$pkg.M,$pkg.N,$pkg.P,$pkg.S]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["unicode/utf8"]=(function(){var $pkg={},$init,B,A,C,D,F,G,H,I,J,K,N,O,P,R,S;B=$pkg.acceptRange=$newType(0,$kindStruct,"utf8.acceptRange",true,"unicode/utf8",false,function(lo_,hi_){this.$val=this;if(arguments.length===0){this.lo=0;this.hi=0;return;}this.lo=lo_;this.hi=hi_;});D=function(a){var a,b,c,d,e,f;b=a.$length;if(b===0){return false;}d=(c=(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]),((c<0||c>=A.length)?($throwRuntimeError("index out of range"),undefined):A[c]));if(b>=((((d&7)>>>0)>>0))){return true;}f=$clone((e=d>>>4<<24>>>24,((e<0||e>=C.length)?($throwRuntimeError("index out of range"),undefined):C[e])),B);if(b>1&&((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]))){return true;}else if(b>2&&((2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2])<128||191<(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]))){return true;}return false;};$pkg.FullRune=D;F=function(a){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b=0;c=0;d=a.$length;if(d<1){e=65533;f=0;b=e;c=f;return[b,c];}g=(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]);h=((g<0||g>=A.length)?($throwRuntimeError("index out of range"),undefined):A[g]);if(h>=240){i=(((h>>0))<<31>>0)>>31>>0;j=(((((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])>>0))&~i)>>0)|(65533&i);k=1;b=j;c=k;return[b,c];}l=((((h&7)>>>0)>>0));n=$clone((m=h>>>4<<24>>>24,((m<0||m>=C.length)?($throwRuntimeError("index out of range"),undefined):C[m])),B);if(d=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]);if(q>>0)>>0))<<6>>0)|((((q&63)>>>0)>>0));u=2;b=t;c=u;return[b,c];}v=(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]);if(v<128||191>>0)>>0))<<12>>0)|(((((q&63)>>>0)>>0))<<6>>0))|((((v&63)>>>0)>>0));z=3;b=y;c=z;return[b,c];}aa=(3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]);if(aa<128||191>>0)>>0))<<18>>0)|(((((q&63)>>>0)>>0))<<12>>0))|(((((v&63)>>>0)>>0))<<6>>0))|((((aa&63)>>>0)>>0));ae=4;b=ad;c=ae;return[b,c];};$pkg.DecodeRune=F;G=function(a){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b=0;c=0;d=a.length;if(d<1){e=65533;f=0;b=e;c=f;return[b,c];}g=a.charCodeAt(0);h=((g<0||g>=A.length)?($throwRuntimeError("index out of range"),undefined):A[g]);if(h>=240){i=(((h>>0))<<31>>0)>>31>>0;j=((((a.charCodeAt(0)>>0))&~i)>>0)|(65533&i);k=1;b=j;c=k;return[b,c];}l=((((h&7)>>>0)>>0));n=$clone((m=h>>>4<<24>>>24,((m<0||m>=C.length)?($throwRuntimeError("index out of range"),undefined):C[m])),B);if(d>>0)>>0))<<6>>0)|((((q&63)>>>0)>>0));u=2;b=t;c=u;return[b,c];}v=a.charCodeAt(2);if(v<128||191>>0)>>0))<<12>>0)|(((((q&63)>>>0)>>0))<<6>>0))|((((v&63)>>>0)>>0));z=3;b=y;c=z;return[b,c];}aa=a.charCodeAt(3);if(aa<128||191>>0)>>0))<<18>>0)|(((((q&63)>>>0)>>0))<<12>>0))|(((((v&63)>>>0)>>0))<<6>>0))|((((aa&63)>>>0)>>0));ae=4;b=ad;c=ae;return[b,c];};$pkg.DecodeRuneInString=G;H=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;b=0;c=0;d=a.$length;if(d===0){e=65533;f=0;b=e;c=f;return[b,c];}g=d-1>>0;b=((((g<0||g>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g])>>0));if(b<128){h=b;i=1;b=h;c=i;return[b,c];}j=d-4>>0;if(j<0){j=0;}g=g-(1)>>0;while(true){if(!(g>=j)){break;}if(P(((g<0||g>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g]))){break;}g=g-(1)>>0;}if(g<0){g=0;}k=F($subslice(a,g,d));b=k[0];c=k[1];if(!(((g+c>>0)===d))){l=65533;m=1;b=l;c=m;return[b,c];}n=b;o=c;b=n;c=o;return[b,c];};$pkg.DecodeLastRune=H;I=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;b=0;c=0;d=a.length;if(d===0){e=65533;f=0;b=e;c=f;return[b,c];}g=d-1>>0;b=((a.charCodeAt(g)>>0));if(b<128){h=b;i=1;b=h;c=i;return[b,c];}j=d-4>>0;if(j<0){j=0;}g=g-(1)>>0;while(true){if(!(g>=j)){break;}if(P(a.charCodeAt(g))){break;}g=g-(1)>>0;}if(g<0){g=0;}k=G($substring(a,g,d));b=k[0];c=k[1];if(!(((g+c>>0)===d))){l=65533;m=1;b=l;c=m;return[b,c];}n=b;o=c;b=n;c=o;return[b,c];};$pkg.DecodeLastRuneInString=I;J=function(a){var a;if(a<0){return-1;}else if(a<=127){return 1;}else if(a<=2047){return 2;}else if(55296<=a&&a<=57343){return-1;}else if(a<=65535){return 3;}else if(a<=1114111){return 4;}return-1;};$pkg.RuneLen=J;K=function(a,b){var a,b,c;c=((b>>>0));if(c<=127){(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=((b<<24>>>24)));return 1;}else if(c<=2047){$unused((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=((192|(((b>>6>>0)<<24>>>24)))>>>0));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=((128|((((b<<24>>>24))&63)>>>0))>>>0));return 2;}else if((c>1114111)||(55296<=c&&c<=57343)){b=65533;$unused((2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=((224|(((b>>12>>0)<<24>>>24)))>>>0));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=((128|(((((b>>6>>0)<<24>>>24))&63)>>>0))>>>0));(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=((128|((((b<<24>>>24))&63)>>>0))>>>0));return 3;}else if(c<=65535){$unused((2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=((224|(((b>>12>>0)<<24>>>24)))>>>0));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=((128|(((((b>>6>>0)<<24>>>24))&63)>>>0))>>>0));(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=((128|((((b<<24>>>24))&63)>>>0))>>>0));return 3;}else{$unused((3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=((240|(((b>>18>>0)<<24>>>24)))>>>0));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=((128|(((((b>>12>>0)<<24>>>24))&63)>>>0))>>>0));(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=((128|(((((b>>6>>0)<<24>>>24))&63)>>>0))>>>0));(3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]=((128|((((b<<24>>>24))&63)>>>0))>>>0));return 4;}};$pkg.EncodeRune=K;N=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;b=a.$length;c=0;d=0;while(true){if(!(d>0;e=((d<0||d>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+d]);if(e<128){d=d+(1)>>0;continue;}f=((e<0||e>=A.length)?($throwRuntimeError("index out of range"),undefined):A[e]);if(f===241){d=d+(1)>>0;continue;}g=((((f&7)>>>0)>>0));if((d+g>>0)>b){d=d+(1)>>0;continue;}i=$clone((h=f>>>4<<24>>>24,((h<0||h>=C.length)?($throwRuntimeError("index out of range"),undefined):C[h])),B);k=(j=d+1>>0,((j<0||j>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+j]));if(k>0,((l<0||l>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+l]));if(m<128||191>0,((n<0||n>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+n]));if(o<128||191>0;}return c;};$pkg.RuneCount=N;O=function(a){var a,b,c,d,e,f,g,h,i,j,k,l;b=0;c=a.length;d=0;while(true){if(!(d>0;b=b+(1)>>0;continue;}f=((e<0||e>=A.length)?($throwRuntimeError("index out of range"),undefined):A[e]);if(f===241){d=d+(1)>>0;b=b+(1)>>0;continue;}g=((((f&7)>>>0)>>0));if((d+g>>0)>c){d=d+(1)>>0;b=b+(1)>>0;continue;}i=$clone((h=f>>>4<<24>>>24,((h<0||h>=C.length)?($throwRuntimeError("index out of range"),undefined):C[h])),B);j=a.charCodeAt((d+1>>0));if(j>0));if(k<128||191>0));if(l<128||191>0;b=b+(1)>>0;}b=b;return b;};$pkg.RuneCountInString=O;P=function(a){var a;return!((((a&192)>>>0)===128));};$pkg.RuneStart=P;R=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m;while(true){if(!(a.length>=8)){break;}b=(((((((a.charCodeAt(0)>>>0))|(((a.charCodeAt(1)>>>0))<<8>>>0))>>>0)|(((a.charCodeAt(2)>>>0))<<16>>>0))>>>0)|(((a.charCodeAt(3)>>>0))<<24>>>0))>>>0;c=(((((((a.charCodeAt(4)>>>0))|(((a.charCodeAt(5)>>>0))<<8>>>0))>>>0)|(((a.charCodeAt(6)>>>0))<<16>>>0))>>>0)|(((a.charCodeAt(7)>>>0))<<24>>>0))>>>0;if(!(((((((b|c)>>>0))&2155905152)>>>0)===0))){break;}a=$substring(a,8);}d=a.length;e=0;while(true){if(!(e>0;continue;}g=((f<0||f>=A.length)?($throwRuntimeError("index out of range"),undefined):A[f]);if(g===241){return false;}h=((((g&7)>>>0)>>0));if((e+h>>0)>d){return false;}j=$clone((i=g>>>4<<24>>>24,((i<0||i>=C.length)?($throwRuntimeError("index out of range"),undefined):C[i])),B);k=a.charCodeAt((e+1>>0));if(k>0));if(l<128||191>0));if(m<128||191>0;}return true;};$pkg.ValidString=R;S=function(a){var a;if(0<=a&&a<55296){return true;}else if(57343f.$high||(e.$high===f.$high&&e.$low>=f.$low)))){return 0;}return(((g=(h=(new $Int64(0,d.s.$length)),i=d.i,new $Int64(h.$high-i.$high,h.$low-i.$low)),g.$low+((g.$high>>31)*4294967296))>>0));};F.prototype.Len=function(){return this.$val.Len();};F.ptr.prototype.Size=function(){var d;d=this;return(new $Int64(0,d.s.$length));};F.prototype.Size=function(){return this.$val.Size();};F.ptr.prototype.Read=function(d){var d,e,f,g,h,i,j,k,l,m;e=0;f=$ifaceNil;g=this;if((h=g.i,i=(new $Int64(0,g.s.$length)),(h.$high>i.$high||(h.$high===i.$high&&h.$low>=i.$low)))){j=0;k=B.EOF;e=j;f=k;return[e,f];}g.prevRune=-1;e=$copySlice(d,$subslice(g.s,$flatten64(g.i)));g.i=(l=g.i,m=(new $Int64(0,e)),new $Int64(l.$high+m.$high,l.$low+m.$low));return[e,f];};F.prototype.Read=function(d){return this.$val.Read(d);};F.ptr.prototype.ReadAt=function(d,e){var d,e,f,g,h,i,j,k,l,m;f=0;g=$ifaceNil;h=this;if((e.$high<0||(e.$high===0&&e.$low<0))){i=0;j=A.New("bytes.Reader.ReadAt: negative offset");f=i;g=j;return[f,g];}if((k=(new $Int64(0,h.s.$length)),(e.$high>k.$high||(e.$high===k.$high&&e.$low>=k.$low)))){l=0;m=B.EOF;f=l;g=m;return[f,g];}f=$copySlice(d,$subslice(h.s,$flatten64(e)));if(ff.$high||(e.$high===f.$high&&e.$low>=f.$low)))){return[0,B.EOF];}i=(g=d.s,h=d.i,(($flatten64(h)<0||$flatten64(h)>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+$flatten64(h)]));d.i=(j=d.i,k=new $Int64(0,1),new $Int64(j.$high+k.$high,j.$low+k.$low));return[i,$ifaceNil];};F.prototype.ReadByte=function(){return this.$val.ReadByte();};F.ptr.prototype.UnreadByte=function(){var d,e,f,g;d=this;if((e=d.i,(e.$high<0||(e.$high===0&&e.$low<=0)))){return A.New("bytes.Reader.UnreadByte: at beginning of slice");}d.prevRune=-1;d.i=(f=d.i,g=new $Int64(0,1),new $Int64(f.$high-g.$high,f.$low-g.$low));return $ifaceNil;};F.prototype.UnreadByte=function(){return this.$val.UnreadByte();};F.ptr.prototype.ReadRune=function(){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;d=0;e=0;f=$ifaceNil;g=this;if((h=g.i,i=(new $Int64(0,g.s.$length)),(h.$high>i.$high||(h.$high===i.$high&&h.$low>=i.$low)))){g.prevRune=-1;j=0;k=0;l=B.EOF;d=j;e=k;f=l;return[d,e,f];}g.prevRune=(((m=g.i,m.$low+((m.$high>>31)*4294967296))>>0));p=(n=g.s,o=g.i,(($flatten64(o)<0||$flatten64(o)>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+$flatten64(o)]));if(p<128){g.i=(q=g.i,r=new $Int64(0,1),new $Int64(q.$high+r.$high,q.$low+r.$low));s=((p>>0));t=1;u=$ifaceNil;d=s;e=t;f=u;return[d,e,f];}v=C.DecodeRune($subslice(g.s,$flatten64(g.i)));d=v[0];e=v[1];g.i=(w=g.i,x=(new $Int64(0,e)),new $Int64(w.$high+x.$high,w.$low+x.$low));return[d,e,f];};F.prototype.ReadRune=function(){return this.$val.ReadRune();};F.ptr.prototype.UnreadRune=function(){var d,e;d=this;if((e=d.i,(e.$high<0||(e.$high===0&&e.$low<=0)))){return A.New("bytes.Reader.UnreadRune: at beginning of slice");}if(d.prevRune<0){return A.New("bytes.Reader.UnreadRune: previous operation was not ReadRune");}d.i=(new $Int64(0,d.prevRune));d.prevRune=-1;return $ifaceNil;};F.prototype.UnreadRune=function(){return this.$val.UnreadRune();};F.ptr.prototype.Seek=function(d,e){var d,e,f,g,h,i,j;f=this;f.prevRune=-1;g=new $Int64(0,0);h=e;if(h===(0)){g=d;}else if(h===(1)){g=(i=f.i,new $Int64(i.$high+d.$high,i.$low+d.$low));}else if(h===(2)){g=(j=(new $Int64(0,f.s.$length)),new $Int64(j.$high+d.$high,j.$low+d.$low));}else{return[new $Int64(0,0),A.New("bytes.Reader.Seek: invalid whence")];}if((g.$high<0||(g.$high===0&&g.$low<0))){return[new $Int64(0,0),A.New("bytes.Reader.Seek: negative position")];}f.i=g;return[g,$ifaceNil];};F.prototype.Seek=function(d,e){return this.$val.Seek(d,e);};F.ptr.prototype.WriteTo=function(d){var{d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=new $Int64(0,0);f=$ifaceNil;g=this;g.prevRune=-1;if((h=g.i,i=(new $Int64(0,g.s.$length)),(h.$high>i.$high||(h.$high===i.$high&&h.$low>=i.$low)))){j=new $Int64(0,0);k=$ifaceNil;e=j;f=k;$s=-1;return[e,f];}l=$subslice(g.s,$flatten64(g.i));n=d.Write(l);$s=1;case 1:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=m[0];f=m[1];if(o>l.$length){$panic(new $String("bytes.Reader.WriteTo: invalid Write count"));}g.i=(p=g.i,q=(new $Int64(0,o)),new $Int64(p.$high+q.$high,p.$low+q.$low));e=(new $Int64(0,o));if(!((o===l.$length))&&$interfaceIsEqual(f,$ifaceNil)){f=B.ErrShortWrite;}$s=-1;return[e,f];}return;}var $f={$blk:F.ptr.prototype.WriteTo,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};F.prototype.WriteTo=function(d){return this.$val.WriteTo(d);};F.ptr.prototype.Reset=function(d){var d,e;e=this;F.copy(e,new F.ptr(d,new $Int64(0,0),-1));};F.prototype.Reset=function(d){return this.$val.Reset(d);};G=function(d){var d;return new F.ptr(d,new $Int64(0,0),-1);};$pkg.NewReader=G;H=function(d,e){var d,e,f,g,h,i;f=d;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(i===e){return h;}g++;}return-1;};$pkg.IndexByte=H;I=function(d,e){var d,e,f,g,h,i;if(!((d.$length===e.$length))){return false;}f=d;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(!((i===((h<0||h>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h])))){return false;}g++;}return true;};$pkg.Equal=I;L=function(d,e){var d,e,f,g;if(e.$length===0){return C.RuneCount(d)+1>>0;}if(e.$length===1){return D.Count(d,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]));}f=0;while(true){g=BR(d,e);if(g===-1){return f;}f=f+(1)>>0;d=$subslice(d,(g+e.$length>>0));}};$pkg.Count=L;M=function(d,e){var d,e;return!((BR(d,e)===-1));};$pkg.Contains=M;Q=function(d,e){var d,e,f,g,h,i,j,k,l,m,n;f=e.$length;if((f===0)){return d.$length;}else if((f===1)){return R(d,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]));}else if((f===d.$length)){if(I(d,e)){return 0;}return-1;}else if(f>d.$length){return-1;}g=D.HashStrRevBytes(e);h=g[0];i=g[1];j=d.$length-f>>0;k=0;l=d.$length-1>>0;while(true){if(!(l>=j)){break;}k=($imul(k,16777619)>>>0)+((((l<0||l>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+l])>>>0))>>>0;l=l-(1)>>0;}if((k===h)&&I($subslice(d,j),e)){return j;}m=j-1>>0;while(true){if(!(m>=0)){break;}k=$imul(k,(16777619))>>>0;k=k+(((((m<0||m>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+m])>>>0)))>>>0;k=k-(($imul(i,(((n=m+f>>0,((n<0||n>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+n]))>>>0)))>>>0))>>>0;if((k===h)&&I($subslice(d,m,(m+f>>0)),e)){return m;}m=m-(1)>>0;}return-1;};$pkg.LastIndex=Q;R=function(d,e){var d,e,f;f=d.$length-1>>0;while(true){if(!(f>=0)){break;}if(((f<0||f>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f])===e){return f;}f=f-(1)>>0;}return-1;};$pkg.LastIndexByte=R;S=function(d,e){var d,e,f,g,h,i,j,k;if(0<=e&&e<128){return H(d,((e<<24>>>24)));}else if((e===65533)){f=0;while(true){if(!(f>0;}return-1;}else if(!C.ValidRune(e)){return-1;}else{j=CC.zero();k=C.EncodeRune(new CA(j),e);return BR(d,$subslice(new CA(j),0,k));}};$pkg.IndexRune=S;T=function(d,e){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;if(e===""){return-1;}if(d.$length===1){f=(((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])>>0));if(f>=128){g=e;h=0;while(true){if(!(h=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]))>=0){return 0;}return-1;}if(e.length===1){j=((e.charCodeAt(0)>>0));if(j>=128){j=65533;}return S(d,j);}if(d.$length>8){k=BB(e);l=$clone(k[0],BA);m=k[1];if(m){n=d;o=0;while(true){if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]);if(new CD(l).contains(q)){return p;}o++;}return-1;}}r=0;s=0;while(true){if(!(s=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+s])>>0));if(t<128){if(D.IndexByteString(e,((s<0||s>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+s]))>=0){return s;}r=1;s=s+(r)>>0;continue;}u=C.DecodeRune($subslice(d,s));t=u[0];r=u[1];if(!((t===65533))){if(e.length===r){if(e===($encodeRune(t))){return s;}s=s+(r)>>0;continue;}if(D.MaxLen>=r){if(D.IndexString(e,($encodeRune(t)))>=0){return s;}s=s+(r)>>0;continue;}}v=e;w=0;while(true){if(!(w>0;}return-1;};$pkg.IndexAny=T;AE=function(d,e){var d,e;return d.$length>=e.$length&&I($subslice(d,0,e.$length),e);};$pkg.HasPrefix=AE;AR=function(d,e){var{d,e,f,g,$s,$r,$c}=$restore(this,{d,e});$s=$s||0;s:while(true){switch($s){case 0:f=AY(d,e,false);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(g===-1){$s=-1;return CA.nil;}$s=-1;return $subslice(d,g);}return;}var $f={$blk:AR,$c:true,$r,d,e,f,g,$s};return $f;};$pkg.TrimLeftFunc=AR;AS=function(d,e){var{d,e,f,g,h,i,$s,$r,$c}=$restore(this,{d,e});$s=$s||0;s:while(true){switch($s){case 0:f=AZ(d,e,false);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(g>=0&&((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g])>=128){h=C.DecodeRune($subslice(d,g));i=h[1];g=g+(i)>>0;}else{g=g+(1)>>0;}$s=-1;return $subslice(d,0,g);}return;}var $f={$blk:AS,$c:true,$r,d,e,f,g,h,i,$s};return $f;};$pkg.TrimRightFunc=AS;AT=function(d,e){var{d,e,f,g,h,$s,$r,$c}=$restore(this,{d,e});$s=$s||0;s:while(true){switch($s){case 0:f=AR(d,e);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=AS(f,e);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=3;case 3:return h;}return;}var $f={$blk:AT,$c:true,$r,d,e,f,g,h,$s};return $f;};$pkg.TrimFunc=AT;AY=function(d,e,f){var{d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=0;case 1:if(!(g=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g])>>0));if(i>=128){j=C.DecodeRune($subslice(d,g));i=j[0];h=j[1];}k=e(i);$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(k===f){$s=3;continue;}$s=4;continue;case 3:$s=-1;return g;case 4:g=g+(h)>>0;$s=1;continue;case 2:$s=-1;return-1;}return;}var $f={$blk:AY,$c:true,$r,d,e,f,g,h,i,j,k,$s};return $f;};AZ=function(d,e,f){var{d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=d.$length;case 1:if(!(g>0)){$s=2;continue;}h=(((i=g-1>>0,((i<0||i>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+i]))>>0));j=1;k=h;l=j;if(k>=128){m=C.DecodeLastRune($subslice(d,0,g));k=m[0];l=m[1];}g=g-(l)>>0;n=e(k);$s=5;case 5:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}if(n===f){$s=3;continue;}$s=4;continue;case 3:$s=-1;return g;case 4:$s=1;continue;case 2:$s=-1;return-1;}return;}var $f={$blk:AZ,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};BB=function(d){var d,e,f,g,h,i,j,k,l,m,n,o,p;e=CG.zero();f=false;g=0;while(true){if(!(g=128){i=$clone(e,BA);j=false;BA.copy(e,i);f=j;return[e,f];}l=(k=h/32,(k===k&&k!==1/0&&k!==-1/0)?k>>>0:$throwRuntimeError("integer divide by zero"));((l<0||l>=e.length)?($throwRuntimeError("index out of range"),undefined):e[l]=((((l<0||l>=e.length)?($throwRuntimeError("index out of range"),undefined):e[l])|(((m=((n=h%32,n===n?n:$throwRuntimeError("integer divide by zero"))),m<32?(1<>>0)))>>>0));g=g+(1)>>0;}o=$clone(e,BA);p=true;BA.copy(e,o);f=p;return[e,f];};BA.prototype.contains=function(d){var d,e,f,g,h,i,j;e=this.$val;return!((((((f=e,g=(h=d/32,(h===h&&h!==1/0&&h!==-1/0)?h>>>0:$throwRuntimeError("integer divide by zero")),((g<0||g>=f.length)?($throwRuntimeError("index out of range"),undefined):f[g]))&(((i=((j=d%32,j===j?j:$throwRuntimeError("integer divide by zero"))),i<32?(1<>>0)))>>>0))===0));};$ptrType(BA).prototype.contains=function(d){return(new BA(this.$get())).contains(d);};BC=function(d,e){var d,e,f,g,h,i;f=d;g=0;while(true){if(!(g0&&((f=d.$length-1>>0,((f<0||f>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f]))===e))){break;}d=$subslice(d,0,(d.$length-1>>0));}return d;};BK=function(d,e){var d,e,f;while(true){if(!(d.$length>0)){break;}if(!new CD(e).contains((f=d.$length-1>>0,((f<0||f>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f])))){break;}d=$subslice(d,0,(d.$length-1>>0));}return d;};BL=function(d,e){var d,e,f,g,h,i,j,k;while(true){if(!(d.$length>0)){break;}f=(((g=d.$length-1>>0,((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]))>>0));h=1;i=f;j=h;if(i>=128){k=C.DecodeLastRune(d);i=k[0];j=k[1];}if(!BC(e,i)){break;}d=$subslice(d,0,(d.$length-j>>0));}return d;};BM=function(d){var{d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(f>=128){$s=3;continue;}$s=4;continue;case 3:g=AT($subslice(d,e),E.IsSpace);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=6;case 6:return h;case 4:if(((f<0||f>=AA.length)?($throwRuntimeError("index out of range"),undefined):AA[f])===0){$s=2;continue;}e=e+(1)>>0;$s=1;continue;case 2:i=d.$length;case 7:if(!(i>e)){$s=8;continue;}k=(j=i-1>>0,((j<0||j>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+j]));if(k>=128){$s=9;continue;}$s=10;continue;case 9:l=AT($subslice(d,e,i),E.IsSpace);$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=12;case 12:return m;case 10:if(((k<0||k>=AA.length)?($throwRuntimeError("index out of range"),undefined):AA[k])===0){$s=8;continue;}i=i-(1)>>0;$s=7;continue;case 8:if(e===i){$s=-1;return CA.nil;}$s=-1;return $subslice(d,e,i);}return;}var $f={$blk:BM,$c:true,$r,d,e,f,g,h,i,j,k,l,m,$s};return $f;};$pkg.TrimSpace=BM;BO=function(d,e,f,g){var d,e,f,g,h,i,j,k,l,m,n,o;h=0;if(!((g===0))){h=L(d,e);}if(h===0){return $appendSlice((CA.nil),d);}if(g<0||h>0))))>>0));j=0;k=0;l=0;while(true){if(!(l0){n=C.DecodeRune($subslice(d,k));o=n[1];m=m+(o)>>0;}}else{m=m+(BR($subslice(d,k),e))>>0;}j=j+($copySlice($subslice(i,j),$subslice(d,k,m)))>>0;j=j+($copySlice($subslice(i,j),f))>>0;k=m+e.$length>>0;l=l+(1)>>0;}j=j+($copySlice($subslice(i,j),$subslice(d,k)))>>0;return $subslice(i,0,j);};$pkg.Replace=BO;BQ=function(d,e){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;while(true){if(!(!((d.$length===0))&&!((e.$length===0)))){break;}f=0;g=0;h=f;i=g;if((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])<128){j=(((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])>>0));k=$subslice(d,1);h=j;d=k;}else{l=C.DecodeRune(d);m=l[0];n=l[1];o=m;p=$subslice(d,n);h=o;d=p;}if((0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])<128){q=(((0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])>>0));r=$subslice(e,1);i=q;e=r;}else{s=C.DecodeRune(e);t=s[0];u=s[1];v=t;w=$subslice(e,u);i=v;e=w;}if(i===h){continue;}if(i>0)-65>>0))){continue;}return false;}z=E.SimpleFold(h);while(true){if(!(!((z===h))&&z=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]));}else if((f===d.$length)){if(I(e,d)){return 0;}return-1;}else if(f>d.$length){return-1;}else if(f<=D.MaxLen){if(d.$length<=0){return D.Index(d,e);}g=(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]);h=(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]);i=0;j=(d.$length-f>>0)+1>>0;k=0;while(true){if(!(i=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+i])===g))){l=H($subslice(d,(i+1>>0),j),g);if(l<0){return-1;}i=i+((l+1>>0))>>0;}if(((m=i+1>>0,((m<0||m>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+m]))===h)&&I($subslice(d,i,(i+f>>0)),e)){return i;}k=k+(1)>>0;i=i+(1)>>0;if(k>D.Cutover(i)){n=D.Index($subslice(d,i),e);if(n>=0){return n+i>>0;}return-1;}}return-1;}o=(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]);p=(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]);q=0;r=0;s=(d.$length-f>>0)+1>>0;while(true){if(!(q=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+q])===o))){t=H($subslice(d,(q+1>>0),s),o);if(t<0){break;}q=q+((t+1>>0))>>0;}if(((u=q+1>>0,((u<0||u>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+u]))===p)&&I($subslice(d,q,(q+f>>0)),e)){return q;}q=q+(1)>>0;r=r+(1)>>0;if(r>=(4+(q>>4>>0)>>0)&&q>0;}}return-1;};$pkg.Index=BR;BS=function(d,e){var d,e,f,g,h,i,j,k,l,m,n,o;f=CA.nil;g=CA.nil;h=false;i=BR(d,e);if(i>=0){j=$subslice(d,0,i);k=$subslice(d,(i+e.$length>>0));l=true;f=j;g=k;h=l;return[f,g,h];}m=d;n=CA.nil;o=false;f=m;g=n;h=o;return[f,g,h];};$pkg.Cut=BS;BT.ptr.prototype.Bytes=function(){var d;d=this;return $subslice(d.buf,d.off);};BT.prototype.Bytes=function(){return this.$val.Bytes();};BT.ptr.prototype.String=function(){var d;d=this;if(d===CI.nil){return"";}return($bytesToString($subslice(d.buf,d.off)));};BT.prototype.String=function(){return this.$val.String();};BT.ptr.prototype.empty=function(){var d;d=this;return d.buf.$length<=d.off;};BT.prototype.empty=function(){return this.$val.empty();};BT.ptr.prototype.Len=function(){var d;d=this;return d.buf.$length-d.off>>0;};BT.prototype.Len=function(){return this.$val.Len();};BT.ptr.prototype.Cap=function(){var d;d=this;return d.buf.$capacity;};BT.prototype.Cap=function(){return this.$val.Cap();};BT.ptr.prototype.Truncate=function(d){var d,e;e=this;if(d===0){e.Reset();return;}e.lastRead=0;if(d<0||d>e.Len()){$panic(new $String("bytes.Buffer: truncation out of range"));}e.buf=$subslice(e.buf,0,(e.off+d>>0));};BT.prototype.Truncate=function(d){return this.$val.Truncate(d);};BT.ptr.prototype.Reset=function(){var d;d=this;d.buf=$subslice(d.buf,0,0);d.off=0;d.lastRead=0;};BT.prototype.Reset=function(){return this.$val.Reset();};BT.ptr.prototype.tryGrowByReslice=function(d){var d,e,f;e=this;f=e.buf.$length;if(d<=(e.buf.$capacity-f>>0)){e.buf=$subslice(e.buf,0,(f+d>>0));return[f,true];}return[0,false];};BT.prototype.tryGrowByReslice=function(d){return this.$val.tryGrowByReslice(d);};BT.ptr.prototype.grow=function(d){var{d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=e.Len();if((f===0)&&!((e.off===0))){e.Reset();}g=e.tryGrowByReslice(d);h=g[0];i=g[1];if(i){$s=-1;return h;}if(e.buf===CA.nil&&d<=64){e.buf=$makeSlice(CA,d,64);$s=-1;return 0;}j=e.buf.$capacity;if(d<=((k=j/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero"))-f>>0)){$s=1;continue;}if(j>((2147483647-j>>0)-d>>0)){$s=2;continue;}$s=3;continue;case 1:$copySlice(e.buf,$subslice(e.buf,e.off));$s=4;continue;case 2:$panic($pkg.ErrTooLarge);$s=4;continue;case 3:l=BW(($imul(2,j))+d>>0);$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$copySlice(m,$subslice(e.buf,e.off));e.buf=m;case 4:e.off=0;e.buf=$subslice(e.buf,0,(f+d>>0));$s=-1;return f;}return;}var $f={$blk:BT.ptr.prototype.grow,$c:true,$r,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BT.prototype.grow=function(d){return this.$val.grow(d);};BT.ptr.prototype.Grow=function(d){var{d,e,f,g,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if(d<0){$panic(new $String("bytes.Buffer.Grow: negative count"));}f=e.grow(d);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;e.buf=$subslice(e.buf,0,g);$s=-1;return;}return;}var $f={$blk:BT.ptr.prototype.Grow,$c:true,$r,d,e,f,g,$s};return $f;};BT.prototype.Grow=function(d){return this.$val.Grow(d);};BT.ptr.prototype.Write=function(d){var{d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=0;f=$ifaceNil;g=this;g.lastRead=0;h=g.tryGrowByReslice(d.$length);i=h[0];j=h[1];if(!j){$s=1;continue;}$s=2;continue;case 1:k=g.grow(d.$length);$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}i=k;case 2:l=$copySlice($subslice(g.buf,i),d);m=$ifaceNil;e=l;f=m;$s=-1;return[e,f];}return;}var $f={$blk:BT.ptr.prototype.Write,$c:true,$r,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BT.prototype.Write=function(d){return this.$val.Write(d);};BT.ptr.prototype.WriteString=function(d){var{d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=0;f=$ifaceNil;g=this;g.lastRead=0;h=g.tryGrowByReslice(d.length);i=h[0];j=h[1];if(!j){$s=1;continue;}$s=2;continue;case 1:k=g.grow(d.length);$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}i=k;case 2:l=$copyString($subslice(g.buf,i),d);m=$ifaceNil;e=l;f=m;$s=-1;return[e,f];}return;}var $f={$blk:BT.ptr.prototype.WriteString,$c:true,$r,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BT.prototype.WriteString=function(d){return this.$val.WriteString(d);};BT.ptr.prototype.ReadFrom=function(d){var{d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=new $Int64(0,0);f=$ifaceNil;g=this;g.lastRead=0;case 1:h=g.grow(512);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;g.buf=$subslice(g.buf,0,i);k=d.Read($subslice(g.buf,i,g.buf.$capacity));$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];if(l<0){$panic(BV);}g.buf=$subslice(g.buf,0,(i+l>>0));e=(n=(new $Int64(0,l)),new $Int64(e.$high+n.$high,e.$low+n.$low));if($interfaceIsEqual(m,B.EOF)){o=e;p=$ifaceNil;e=o;f=p;$s=-1;return[e,f];}if(!($interfaceIsEqual(m,$ifaceNil))){q=e;r=m;e=q;f=r;$s=-1;return[e,f];}$s=1;continue;case 2:$s=-1;return[e,f];}return;}var $f={$blk:BT.ptr.prototype.ReadFrom,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};BT.prototype.ReadFrom=function(d){return this.$val.ReadFrom(d);};BW=function(d){var{d,e,$s,$deferred,$r,$c}=$restore(this,{d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);$deferred.push([(function(){if(!($interfaceIsEqual($recover(),$ifaceNil))){$panic($pkg.ErrTooLarge);}}),[]]);e=$makeSlice(CA,d);$s=1;case 1:return e;}return;}}catch(err){$err=err;$s=-1;return CA.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:BW,$c:true,$r,d,e,$s,$deferred};return $f;}}};BT.ptr.prototype.WriteTo=function(d){var{d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=new $Int64(0,0);f=$ifaceNil;g=this;g.lastRead=0;h=g.Len();if(h>0){$s=1;continue;}$s=2;continue;case 1:j=d.Write($subslice(g.buf,g.off));$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];l=i[1];if(k>h){$panic(new $String("bytes.Buffer.WriteTo: invalid Write count"));}g.off=g.off+(k)>>0;e=(new $Int64(0,k));if(!($interfaceIsEqual(l,$ifaceNil))){m=e;n=l;e=m;f=n;$s=-1;return[e,f];}if(!((k===h))){o=e;p=B.ErrShortWrite;e=o;f=p;$s=-1;return[e,f];}case 2:g.Reset();q=e;r=$ifaceNil;e=q;f=r;$s=-1;return[e,f];}return;}var $f={$blk:BT.ptr.prototype.WriteTo,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};BT.prototype.WriteTo=function(d){return this.$val.WriteTo(d);};BT.ptr.prototype.WriteByte=function(d){var{d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=this;e.lastRead=0;f=e.tryGrowByReslice(1);g=f[0];h=f[1];if(!h){$s=1;continue;}$s=2;continue;case 1:i=e.grow(1);$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}g=i;case 2:(j=e.buf,((g<0||g>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+g]=d));$s=-1;return $ifaceNil;}return;}var $f={$blk:BT.ptr.prototype.WriteByte,$c:true,$r,d,e,f,g,h,i,j,$s};return $f;};BT.prototype.WriteByte=function(d){return this.$val.WriteByte(d);};BT.ptr.prototype.WriteRune=function(d){var{d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=0;f=$ifaceNil;g=this;if(((d>>>0))<128){$s=1;continue;}$s=2;continue;case 1:h=g.WriteByte(((d<<24>>>24)));$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;i=1;j=$ifaceNil;e=i;f=j;$s=-1;return[e,f];case 2:g.lastRead=0;k=g.tryGrowByReslice(4);l=k[0];m=k[1];if(!m){$s=4;continue;}$s=5;continue;case 4:n=g.grow(4);$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}l=n;case 5:e=C.EncodeRune($subslice(g.buf,l,(l+4>>0)),d);g.buf=$subslice(g.buf,0,(l+e>>0));o=e;p=$ifaceNil;e=o;f=p;$s=-1;return[e,f];}return;}var $f={$blk:BT.ptr.prototype.WriteRune,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};BT.prototype.WriteRune=function(d){return this.$val.WriteRune(d);};BT.ptr.prototype.Read=function(d){var d,e,f,g,h,i,j,k,l,m;e=0;f=$ifaceNil;g=this;g.lastRead=0;if(g.empty()){g.Reset();if(d.$length===0){h=0;i=$ifaceNil;e=h;f=i;return[e,f];}j=0;k=B.EOF;e=j;f=k;return[e,f];}e=$copySlice(d,$subslice(g.buf,g.off));g.off=g.off+(e)>>0;if(e>0){g.lastRead=-1;}l=e;m=$ifaceNil;e=l;f=m;return[e,f];};BT.prototype.Read=function(d){return this.$val.Read(d);};BT.ptr.prototype.Next=function(d){var d,e,f,g;e=this;e.lastRead=0;f=e.Len();if(d>f){d=f;}g=$subslice(e.buf,e.off,(e.off+d>>0));e.off=e.off+(d)>>0;if(d>0){e.lastRead=-1;}return g;};BT.prototype.Next=function(d){return this.$val.Next(d);};BT.ptr.prototype.ReadByte=function(){var d,e,f,g;d=this;if(d.empty()){d.Reset();return[0,B.EOF];}g=(e=d.buf,f=d.off,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));d.off=d.off+(1)>>0;d.lastRead=-1;return[g,$ifaceNil];};BT.prototype.ReadByte=function(){return this.$val.ReadByte();};BT.ptr.prototype.ReadRune=function(){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;d=0;e=0;f=$ifaceNil;g=this;if(g.empty()){g.Reset();h=0;i=0;j=B.EOF;d=h;e=i;f=j;return[d,e,f];}m=(k=g.buf,l=g.off,((l<0||l>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]));if(m<128){g.off=g.off+(1)>>0;g.lastRead=1;n=((m>>0));o=1;p=$ifaceNil;d=n;e=o;f=p;return[d,e,f];}q=C.DecodeRune($subslice(g.buf,g.off));d=q[0];r=q[1];g.off=g.off+(r)>>0;g.lastRead=((r<<24>>24));s=d;t=r;u=$ifaceNil;d=s;e=t;f=u;return[d,e,f];};BT.prototype.ReadRune=function(){return this.$val.ReadRune();};BT.ptr.prototype.UnreadRune=function(){var d;d=this;if(d.lastRead<=0){return A.New("bytes.Buffer: UnreadRune: previous operation was not a successful ReadRune");}if(d.off>=((d.lastRead>>0))){d.off=d.off-(((d.lastRead>>0)))>>0;}d.lastRead=0;return $ifaceNil;};BT.prototype.UnreadRune=function(){return this.$val.UnreadRune();};BT.ptr.prototype.UnreadByte=function(){var d;d=this;if(d.lastRead===0){return BX;}d.lastRead=0;if(d.off>0){d.off=d.off-(1)>>0;}return $ifaceNil;};BT.prototype.UnreadByte=function(){return this.$val.UnreadByte();};BT.ptr.prototype.ReadBytes=function(d){var d,e,f,g,h,i,j,k;e=CA.nil;f=$ifaceNil;g=this;h=g.readSlice(d);i=h[0];f=h[1];e=$appendSlice(e,i);j=e;k=f;e=j;f=k;return[e,f];};BT.prototype.ReadBytes=function(d){return this.$val.ReadBytes(d);};BT.ptr.prototype.readSlice=function(d){var d,e,f,g,h,i,j,k;e=CA.nil;f=$ifaceNil;g=this;h=H($subslice(g.buf,g.off),d);i=(g.off+h>>0)+1>>0;if(h<0){i=g.buf.$length;f=B.EOF;}e=$subslice(g.buf,g.off,i);g.off=i;g.lastRead=-1;j=e;k=f;e=j;f=k;return[e,f];};BT.prototype.readSlice=function(d){return this.$val.readSlice(d);};BT.ptr.prototype.ReadString=function(d){var d,e,f,g,h,i,j,k;e="";f=$ifaceNil;g=this;h=g.readSlice(d);i=h[0];f=h[1];j=($bytesToString(i));k=f;e=j;f=k;return[e,f];};BT.prototype.ReadString=function(d){return this.$val.ReadString(d);};BY=function(d){var d;return new BT.ptr(d,0,0);};$pkg.NewBuffer=BY;BZ=function(d){var d;return new BT.ptr((new CA($stringToBytes(d))),0,0);};$pkg.NewBufferString=BZ;CJ.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Read",name:"Read",pkg:"",typ:$funcType([CA],[$Int,$error],false)},{prop:"ReadAt",name:"ReadAt",pkg:"",typ:$funcType([CA,$Int64],[$Int,$error],false)},{prop:"ReadByte",name:"ReadByte",pkg:"",typ:$funcType([],[$Uint8,$error],false)},{prop:"UnreadByte",name:"UnreadByte",pkg:"",typ:$funcType([],[$error],false)},{prop:"ReadRune",name:"ReadRune",pkg:"",typ:$funcType([],[$Int32,$Int,$error],false)},{prop:"UnreadRune",name:"UnreadRune",pkg:"",typ:$funcType([],[$error],false)},{prop:"Seek",name:"Seek",pkg:"",typ:$funcType([$Int64,$Int],[$Int64,$error],false)},{prop:"WriteTo",name:"WriteTo",pkg:"",typ:$funcType([B.Writer],[$Int64,$error],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([CA],[],false)}];CD.methods=[{prop:"contains",name:"contains",pkg:"bytes",typ:$funcType([$Uint8],[$Bool],false)}];CI.methods=[{prop:"Bytes",name:"Bytes",pkg:"",typ:$funcType([],[CA],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"empty",name:"empty",pkg:"bytes",typ:$funcType([],[$Bool],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Cap",name:"Cap",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Truncate",name:"Truncate",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([],[],false)},{prop:"tryGrowByReslice",name:"tryGrowByReslice",pkg:"bytes",typ:$funcType([$Int],[$Int,$Bool],false)},{prop:"grow",name:"grow",pkg:"bytes",typ:$funcType([$Int],[$Int],false)},{prop:"Grow",name:"Grow",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([CA],[$Int,$error],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([$String],[$Int,$error],false)},{prop:"ReadFrom",name:"ReadFrom",pkg:"",typ:$funcType([B.Reader],[$Int64,$error],false)},{prop:"WriteTo",name:"WriteTo",pkg:"",typ:$funcType([B.Writer],[$Int64,$error],false)},{prop:"WriteByte",name:"WriteByte",pkg:"",typ:$funcType([$Uint8],[$error],false)},{prop:"WriteRune",name:"WriteRune",pkg:"",typ:$funcType([$Int32],[$Int,$error],false)},{prop:"Read",name:"Read",pkg:"",typ:$funcType([CA],[$Int,$error],false)},{prop:"Next",name:"Next",pkg:"",typ:$funcType([$Int],[CA],false)},{prop:"ReadByte",name:"ReadByte",pkg:"",typ:$funcType([],[$Uint8,$error],false)},{prop:"ReadRune",name:"ReadRune",pkg:"",typ:$funcType([],[$Int32,$Int,$error],false)},{prop:"UnreadRune",name:"UnreadRune",pkg:"",typ:$funcType([],[$error],false)},{prop:"UnreadByte",name:"UnreadByte",pkg:"",typ:$funcType([],[$error],false)},{prop:"ReadBytes",name:"ReadBytes",pkg:"",typ:$funcType([$Uint8],[CA,$error],false)},{prop:"readSlice",name:"readSlice",pkg:"bytes",typ:$funcType([$Uint8],[CA,$error],false)},{prop:"ReadString",name:"ReadString",pkg:"",typ:$funcType([$Uint8],[$String,$error],false)}];F.init("bytes",[{prop:"s",name:"s",embedded:false,exported:false,typ:CA,tag:""},{prop:"i",name:"i",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"prevRune",name:"prevRune",embedded:false,exported:false,typ:$Int,tag:""}]);BA.init($Uint32,8);BT.init("bytes",[{prop:"buf",name:"buf",embedded:false,exported:false,typ:CA,tag:""},{prop:"off",name:"off",embedded:false,exported:false,typ:$Int,tag:""},{prop:"lastRead",name:"lastRead",embedded:false,exported:false,typ:BU,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}AA=$toNativeArray($kindUint8,[0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);$pkg.ErrTooLarge=A.New("bytes.Buffer: too large");BV=A.New("bytes.Buffer: reader returned negative count from Read");BX=A.New("bytes.Buffer: UnreadByte: previous operation was not a successful read");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["strings"]=(function(){var $pkg={},$init,F,G,A,D,E,B,C,AS,BK,BO,BP,BR,BS,BU,BV,BX,BZ,CA,CB,CJ,CN,CL,CM,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,CY,CZ,DA,DB,DC,DD,DE,DF,U,H,I,J,K,L,M,N,O,P,Q,S,V,W,X,Y,Z,AA,AB,AC,AD,AL,AM,AN,AO,AQ,AR,AT,AU,AV,AW,AX,AY,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BL,BM,BN,BQ,BT,BW,BY,CC,CD,CE,CF,CG;F=$packages["errors"];G=$packages["github.com/gopherjs/gopherjs/js"];A=$packages["internal/bytealg"];D=$packages["io"];E=$packages["sync"];B=$packages["unicode"];C=$packages["unicode/utf8"];AS=$pkg.asciiSet=$newType(32,$kindArray,"strings.asciiSet",true,"strings",false,null);BK=$pkg.stringFinder=$newType(0,$kindStruct,"strings.stringFinder",true,"strings",false,function(pattern_,badCharSkip_,goodSuffixSkip_){this.$val=this;if(arguments.length===0){this.pattern="";this.badCharSkip=CS.zero();this.goodSuffixSkip=CT.nil;return;}this.pattern=pattern_;this.badCharSkip=badCharSkip_;this.goodSuffixSkip=goodSuffixSkip_;});BO=$pkg.Replacer=$newType(0,$kindStruct,"strings.Replacer",true,"strings",true,function(once_,r_,oldnew_){this.$val=this;if(arguments.length===0){this.once=new E.Once.ptr(0,new E.Mutex.ptr(0,0));this.r=$ifaceNil;this.oldnew=CL.nil;return;}this.once=once_;this.r=r_;this.oldnew=oldnew_;});BP=$pkg.replacer=$newType(8,$kindInterface,"strings.replacer",true,"strings",false,null);BR=$pkg.trieNode=$newType(0,$kindStruct,"strings.trieNode",true,"strings",false,function(value_,priority_,prefix_,next_,table_){this.$val=this;if(arguments.length===0){this.value="";this.priority=0;this.prefix="";this.next=CX.nil;this.table=CY.nil;return;}this.value=value_;this.priority=priority_;this.prefix=prefix_;this.next=next_;this.table=table_;});BS=$pkg.genericReplacer=$newType(0,$kindStruct,"strings.genericReplacer",true,"strings",false,function(root_,tableSize_,mapping_){this.$val=this;if(arguments.length===0){this.root=new BR.ptr("",0,"",CX.nil,CY.nil);this.tableSize=0;this.mapping=CU.zero();return;}this.root=root_;this.tableSize=tableSize_;this.mapping=mapping_;});BU=$pkg.appendSliceWriter=$newType(12,$kindSlice,"strings.appendSliceWriter",true,"strings",false,null);BV=$pkg.stringWriter=$newType(0,$kindStruct,"strings.stringWriter",true,"strings",false,function(w_){this.$val=this;if(arguments.length===0){this.w=$ifaceNil;return;}this.w=w_;});BX=$pkg.singleStringReplacer=$newType(0,$kindStruct,"strings.singleStringReplacer",true,"strings",false,function(finder_,value_){this.$val=this;if(arguments.length===0){this.finder=DA.nil;this.value="";return;}this.finder=finder_;this.value=value_;});BZ=$pkg.byteReplacer=$newType(256,$kindArray,"strings.byteReplacer",true,"strings",false,null);CA=$pkg.byteStringReplacer=$newType(0,$kindStruct,"strings.byteStringReplacer",true,"strings",false,function(replacements_,toReplace_){this.$val=this;if(arguments.length===0){this.replacements=CW.zero();this.toReplace=CL.nil;return;}this.replacements=replacements_;this.toReplace=toReplace_;});CB=$pkg.Reader=$newType(0,$kindStruct,"strings.Reader",true,"strings",true,function(s_,i_,prevRune_){this.$val=this;if(arguments.length===0){this.s="";this.i=new $Int64(0,0);this.prevRune=0;return;}this.s=s_;this.i=i_;this.prevRune=prevRune_;});CJ=$pkg.Builder=$newType(0,$kindStruct,"strings.Builder",true,"strings",true,function(addr_,buf_){this.$val=this;if(arguments.length===0){this.addr=CP.nil;this.buf=CQ.nil;return;}this.addr=addr_;this.buf=buf_;});CN=$newType(0,$kindStruct,"strings.span",true,"strings",false,function(start_,end_){this.$val=this;if(arguments.length===0){this.start=0;this.end=0;return;}this.start=start_;this.end=end_;});CL=$sliceType($String);CM=$ptrType(AS);CO=$sliceType(CN);CP=$ptrType(CJ);CQ=$sliceType($Uint8);CR=$arrayType($Uint32,8);CS=$arrayType($Int,256);CT=$sliceType($Int);CU=$arrayType($Uint8,256);CV=$ptrType(BZ);CW=$arrayType(CQ,256);CX=$ptrType(BR);CY=$sliceType(CX);CZ=$ptrType(BU);DA=$ptrType(BK);DB=$ptrType(BO);DC=$ptrType(BS);DD=$ptrType(BX);DE=$ptrType(CA);DF=$ptrType(CB);H=function(f,g){var f,g,h,i,j,k,l,m,n;h=C.RuneCountInString(f);if(g<0||g>h){g=h;}i=$makeSlice(CL,g);j=0;while(true){if(!(j<(g-1>>0))){break;}k=C.DecodeRuneInString(f);l=k[0];m=k[1];((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]=$substring(f,0,m));f=$substring(f,m);if(l===65533){((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]="\xEF\xBF\xBD");}j=j+(1)>>0;}if(g>0){(n=g-1>>0,((n<0||n>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+n]=f));}return i;};I=function(f,g){var f,g;return CE(f,g)>=0;};$pkg.Contains=I;J=function(f,g){var f,g;return M(f,g)>=0;};$pkg.ContainsAny=J;K=function(f,g){var f,g;return L(f,g)>=0;};$pkg.ContainsRune=K;L=function(f,g){var f,g,h,i,j,k,l;if(0<=g&&g<128){return CD(f,((g<<24>>>24)));}else if((g===65533)){h=f;i=0;while(true){if(!(i>0));if(h>=128){h=65533;}return L(f,h);}if(f.length>8){i=AT(g);j=$clone(i[0],AS);k=i[1];if(k){l=0;while(true){if(!(l>0;}return-1;}}m=f;n=0;while(true){if(!(n=0){return p;}n+=o[1];}return-1;};$pkg.IndexAny=M;N=function(f,g){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(g===""){return-1;}if(f.length===1){h=((f.charCodeAt(0)>>0));if(h>=128){h=65533;}if(L(g,h)>=0){return 0;}return-1;}if(f.length>8){i=AT(g);j=$clone(i[0],AS);k=i[1];if(k){l=f.length-1>>0;while(true){if(!(l>=0)){break;}if(new CM(j).contains(f.charCodeAt(l))){return l;}l=l-(1)>>0;}return-1;}}if(g.length===1){m=((g.charCodeAt(0)>>0));if(m>=128){m=65533;}n=f.length;while(true){if(!(n>0)){break;}o=C.DecodeLastRuneInString($substring(f,0,n));p=o[0];q=o[1];n=n-(q)>>0;if(m===p){return n;}}return-1;}r=f.length;while(true){if(!(r>0)){break;}s=C.DecodeLastRuneInString($substring(f,0,r));t=s[0];u=s[1];r=r-(u)>>0;if(L(g,t)>=0){return r;}}return-1;};$pkg.LastIndexAny=N;O=function(f,g){var f,g,h;h=f.length-1>>0;while(true){if(!(h>=0)){break;}if(f.charCodeAt(h)===g){return h;}h=h-(1)>>0;}return-1;};$pkg.LastIndexByte=O;P=function(f,g,h,i){var f,g,h,i,j,k,l;if(i===0){return CL.nil;}if(g===""){return H(f,i);}if(i<0){i=CG(f,g)+1>>0;}j=$makeSlice(CL,i);i=i-(1)>>0;k=0;while(true){if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]=$substring(f,0,(l+h>>0)));f=$substring(f,(l+g.length>>0));k=k+(1)>>0;}((k<0||k>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]=f);return $subslice(j,0,(k+1>>0));};Q=function(f,g,h){var f,g,h;return P(f,g,0,h);};$pkg.SplitN=Q;S=function(f,g){var f,g;return P(f,g,0,-1);};$pkg.Split=S;V=function(f){var{f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:g=0;h=1;i=0;j=0;while(true){if(!(j>>0;l=((((k<0||k>=U.length)?($throwRuntimeError("index out of range"),undefined):U[k])>>0));g=g+((h&(~l>>0)))>>0;h=l;j=j+(1)>>0;}if(i>=128){$s=1;continue;}$s=2;continue;case 1:m=W(f,B.IsSpace);$s=3;case 3:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=4;case 4:return n;case 2:o=$makeSlice(CL,g);p=0;q=0;r=0;while(true){if(!(r=U.length)?($throwRuntimeError("index out of range"),undefined):U[s]))===0)))){break;}r=r+(1)>>0;}q=r;while(true){if(!(r=U.length)?($throwRuntimeError("index out of range"),undefined):U[t]))===0){r=r+(1)>>0;continue;}((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=$substring(f,q,r));p=p+(1)>>0;r=r+(1)>>0;while(true){if(!(r=U.length)?($throwRuntimeError("index out of range"),undefined):U[u]))===0)))){break;}r=r+(1)>>0;}q=r;}if(q=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=$substring(f,q));}$s=-1;return o;}return;}var $f={$blk:V,$c:true,$r,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};$pkg.Fields=V;W=function(f,g){var{f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=$makeSlice(CO,0,32);i=-1;j=f;k=0;case 1:if(!(k=0){h=$append(h,new CN.ptr(i,m));i=~i>>0;}$s=5;continue;case 4:if(i<0){i=m;}case 5:k+=l[1];$s=1;continue;case 2:if(i>=0){h=$append(h,new CN.ptr(i,f.length));}p=$makeSlice(CL,h.$length);q=h;r=0;while(true){if(!(r=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]),CN);((s<0||s>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+s]=$substring(f,t.start,t.end));r++;}$s=-1;return p;}return;}var $f={$blk:W,$c:true,$r,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};$pkg.FieldsFunc=W;X=function(f,g){var f,g,h,i,j,k,l,m,n;h=f.$length;if(h===(0)){return"";}else if(h===(1)){return(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]);}i=$imul(g.length,((f.$length-1>>0)));j=0;while(true){if(!(j=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+j]).length)>>0;j=j+(1)>>0;}k=new CJ.ptr(CP.nil,CQ.nil);k.Grow(i);k.WriteString((0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]));l=$subslice(f,1);m=0;while(true){if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);k.WriteString(g);k.WriteString(n);m++;}return k.String();};$pkg.Join=X;Y=function(f,g){var f,g;return f.length>=g.length&&$substring(f,0,g.length)===g;};$pkg.HasPrefix=Y;Z=function(f,g){var f,g;return f.length>=g.length&&$substring(f,(f.length-g.length>>0))===g;};$pkg.HasSuffix=Z;AA=function(f,g){var{f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=new CJ.ptr(CP.nil,CQ.nil);i=g;j=0;case 1:if(!(j>0);h.WriteString($substring(g,0,l));if(o>=0){h.WriteRune(o);}g=$substring(g,(l+p>>0));$s=2;continue;case 2:if(h.Cap()===0){$s=-1;return g;}r=g;s=0;case 4:if(!(s=0){if(w<128){h.WriteByte(((w<<24>>>24)));}else{h.WriteRune(w);}}s+=t[1];$s=4;continue;case 5:$s=-1;return h.String();}return;}var $f={$blk:AA,$c:true,$r,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};$pkg.Map=AA;AB=function(f,g){var f,g,h,i,j,k;if(g===0){return"";}if(g<0){$panic(new $String("strings: negative Repeat count"));}else if(!(((h=($imul(f.length,g))/g,(h===h&&h!==1/0&&h!==-1/0)?h>>0:$throwRuntimeError("integer divide by zero"))===f.length))){$panic(new $String("strings: Repeat count causes overflow"));}i=$imul(f.length,g);j=new CJ.ptr(CP.nil,CQ.nil);j.Grow(i);j.WriteString(f);while(true){if(!(j.Len()>0:$throwRuntimeError("integer divide by zero"))){j.WriteString(j.String());}else{j.WriteString($substring(j.String(),0,(i-j.Len()>>0)));break;}}return j.String();};$pkg.Repeat=AB;AC=function(f){var{f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:g=true;h=false;i=g;j=h;k=0;while(true){if(!(k=128){i=false;break;}j=j||(97<=l&&l<=122);k=k+(1)>>0;}if(i){if(!j){$s=-1;return f;}m=new CJ.ptr(CP.nil,CQ.nil);m.Grow(f.length);n=0;while(true){if(!(n>>24;}m.WriteByte(o);n=n+(1)>>0;}$s=-1;return m.String();}p=AA(B.ToUpper,f);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=2;case 2:return q;}return;}var $f={$blk:AC,$c:true,$r,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};$pkg.ToUpper=AC;AD=function(f){var{f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:g=true;h=false;i=g;j=h;k=0;while(true){if(!(k=128){i=false;break;}j=j||(65<=l&&l<=90);k=k+(1)>>0;}if(i){if(!j){$s=-1;return f;}m=new CJ.ptr(CP.nil,CQ.nil);m.Grow(f.length);n=0;while(true){if(!(n>>24;}m.WriteByte(o);n=n+(1)>>0;}$s=-1;return m.String();}p=AA(B.ToLower,f);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=2;case 2:return q;}return;}var $f={$blk:AD,$c:true,$r,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};$pkg.ToLower=AD;AL=function(f,g){var{f,g,h,i,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=AQ(f,g,false);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if(i===-1){$s=-1;return"";}$s=-1;return $substring(f,i);}return;}var $f={$blk:AL,$c:true,$r,f,g,h,i,$s};return $f;};$pkg.TrimLeftFunc=AL;AM=function(f,g){var{f,g,h,i,j,k,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=AR(f,g,false);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if(i>=0&&f.charCodeAt(i)>=128){j=C.DecodeRuneInString($substring(f,i));k=j[1];i=i+(k)>>0;}else{i=i+(1)>>0;}$s=-1;return $substring(f,0,i);}return;}var $f={$blk:AM,$c:true,$r,f,g,h,i,j,k,$s};return $f;};$pkg.TrimRightFunc=AM;AN=function(f,g){var{f,g,h,i,j,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=AL(f,g);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=AM(h,g);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=3;case 3:return j;}return;}var $f={$blk:AN,$c:true,$r,f,g,h,i,j,$s};return $f;};$pkg.TrimFunc=AN;AO=function(f,g){var{f,g,h,i,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=AQ(f,g,true);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=2;case 2:return i;}return;}var $f={$blk:AO,$c:true,$r,f,g,h,i,$s};return $f;};$pkg.IndexFunc=AO;AQ=function(f,g,h){var{f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{f,g,h});$s=$s||0;s:while(true){switch($s){case 0:i=f;j=0;case 1:if(!(j0)){$s=2;continue;}j=C.DecodeLastRuneInString($substring(f,0,i));k=j[0];l=j[1];i=i-(l)>>0;m=g(k);$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if(m===h){$s=3;continue;}$s=4;continue;case 3:$s=-1;return i;case 4:$s=1;continue;case 2:$s=-1;return-1;}return;}var $f={$blk:AR,$c:true,$r,f,g,h,i,j,k,l,m,$s};return $f;};AT=function(f){var f,g,h,i,j,k,l,m,n,o,p,q,r;g=CR.zero();h=false;i=0;while(true){if(!(i=128){k=$clone(g,AS);l=false;AS.copy(g,k);h=l;return[g,h];}n=(m=j/32,(m===m&&m!==1/0&&m!==-1/0)?m>>>0:$throwRuntimeError("integer divide by zero"));((n<0||n>=g.length)?($throwRuntimeError("index out of range"),undefined):g[n]=((((n<0||n>=g.length)?($throwRuntimeError("index out of range"),undefined):g[n])|(((o=((p=j%32,p===p?p:$throwRuntimeError("integer divide by zero"))),o<32?(1<>>0)))>>>0));i=i+(1)>>0;}q=$clone(g,AS);r=true;AS.copy(g,q);h=r;return[g,h];};AS.prototype.contains=function(f){var f,g,h,i,j,k,l;g=this.$val;return!((((((h=g,i=(j=f/32,(j===j&&j!==1/0&&j!==-1/0)?j>>>0:$throwRuntimeError("integer divide by zero")),((i<0||i>=h.length)?($throwRuntimeError("index out of range"),undefined):h[i]))&(((k=((l=f%32,l===l?l:$throwRuntimeError("integer divide by zero"))),k<32?(1<>>0)))>>>0))===0));};$ptrType(AS).prototype.contains=function(f){return(new AS(this.$get())).contains(f);};AU=function(f,g){var f,g,h,i,j;if(f===""||g===""){return f;}if((g.length===1)&&g.charCodeAt(0)<128){return AW(BA(f,g.charCodeAt(0)),g.charCodeAt(0));}h=AT(g);i=$clone(h[0],AS);j=h[1];if(j){return AX(BB(f,i),i);}return AY(BC(f,g),g);};$pkg.Trim=AU;AV=function(f,g){var f,g,h,i,j;if(f===""||g===""){return f;}if((g.length===1)&&g.charCodeAt(0)<128){return AW(f,g.charCodeAt(0));}h=AT(g);i=$clone(h[0],AS);j=h[1];if(j){return AX(f,i);}return AY(f,g);};$pkg.TrimLeft=AV;AW=function(f,g){var f,g;while(true){if(!(f.length>0&&(f.charCodeAt(0)===g))){break;}f=$substring(f,1);}return f;};AX=function(f,g){var f,g;while(true){if(!(f.length>0)){break;}if(!new CM(g).contains(f.charCodeAt(0))){break;}f=$substring(f,1);}return f;};AY=function(f,g){var f,g,h,i,j,k,l;while(true){if(!(f.length>0)){break;}h=((f.charCodeAt(0)>>0));i=1;j=h;k=i;if(j>=128){l=C.DecodeRuneInString(f);j=l[0];k=l[1];}if(!K(g,j)){break;}f=$substring(f,k);}return f;};BA=function(f,g){var f,g;while(true){if(!(f.length>0&&(f.charCodeAt((f.length-1>>0))===g))){break;}f=$substring(f,0,(f.length-1>>0));}return f;};BB=function(f,g){var f,g;while(true){if(!(f.length>0)){break;}if(!new CM(g).contains(f.charCodeAt((f.length-1>>0)))){break;}f=$substring(f,0,(f.length-1>>0));}return f;};BC=function(f,g){var f,g,h,i,j,k,l;while(true){if(!(f.length>0)){break;}h=((f.charCodeAt((f.length-1>>0))>>0));i=1;j=h;k=i;if(j>=128){l=C.DecodeLastRuneInString(f);j=l[0];k=l[1];}if(!K(g,j)){break;}f=$substring(f,0,(f.length-k>>0));}return f;};BD=function(f){var{f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:g=0;case 1:if(!(g=128){$s=3;continue;}$s=4;continue;case 3:i=AN($substring(f,g),B.IsSpace);$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=6;case 6:return j;case 4:if(((h<0||h>=U.length)?($throwRuntimeError("index out of range"),undefined):U[h])===0){$s=2;continue;}g=g+(1)>>0;$s=1;continue;case 2:k=f.length;case 7:if(!(k>g)){$s=8;continue;}l=f.charCodeAt((k-1>>0));if(l>=128){$s=9;continue;}$s=10;continue;case 9:m=AN($substring(f,g,k),B.IsSpace);$s=11;case 11:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=12;case 12:return n;case 10:if(((l<0||l>=U.length)?($throwRuntimeError("index out of range"),undefined):U[l])===0){$s=8;continue;}k=k-(1)>>0;$s=7;continue;case 8:$s=-1;return $substring(f,g,k);}return;}var $f={$blk:BD,$c:true,$r,f,g,h,i,j,k,l,m,n,$s};return $f;};$pkg.TrimSpace=BD;BE=function(f,g){var f,g;if(Y(f,g)){return $substring(f,g.length);}return f;};$pkg.TrimPrefix=BE;BF=function(f,g){var f,g;if(Z(f,g)){return $substring(f,0,(f.length-g.length>>0));}return f;};$pkg.TrimSuffix=BF;BG=function(f,g,h,i){var f,g,h,i,j,k,l,m,n,o,p;if(g===h||(i===0)){return f;}j=CG(f,g);if(j===0){return f;}else if(i<0||j>0))))>>0);l=0;m=0;while(true){if(!(m0){o=C.DecodeRuneInString($substring(f,l));p=o[1];n=n+(p)>>0;}}else{n=n+(CE($substring(f,l),g))>>0;}k.WriteString($substring(f,l,n));k.WriteString(h);l=n+g.length>>0;m=m+(1)>>0;}k.WriteString($substring(f,l));return k.String();};$pkg.Replace=BG;BH=function(f,g,h){var f,g,h;return BG(f,g,h,-1);};$pkg.ReplaceAll=BH;BI=function(f,g){var aa,ab,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;while(true){if(!(!(f==="")&&!(g===""))){break;}h=0;i=0;j=h;k=i;if(f.charCodeAt(0)<128){l=((f.charCodeAt(0)>>0));m=$substring(f,1);j=l;f=m;}else{n=C.DecodeRuneInString(f);o=n[0];p=n[1];q=o;r=$substring(f,p);j=q;f=r;}if(g.charCodeAt(0)<128){s=((g.charCodeAt(0)>>0));t=$substring(g,1);k=s;g=t;}else{u=C.DecodeRuneInString(g);v=u[0];w=u[1];x=v;y=$substring(g,w);k=x;g=y;}if(k===j){continue;}if(k>0)-65>>0))){continue;}return false;}ab=B.SimpleFold(j);while(true){if(!(!((ab===j))&&ab=0){l=$substring(f,0,k);m=$substring(f,(k+g.length>>0));n=true;h=l;i=m;j=n;return[h,i,j];}o=f;p="";q=false;h=o;i=p;j=q;return[h,i,j];};$pkg.Cut=BJ;BL=function(f){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;g=new BK.ptr(f,CS.zero(),$makeSlice(CT,f.length));h=f.length-1>>0;i=g.badCharSkip;j=0;while(true){if(!(j<256)){break;}k=j;(l=g.badCharSkip,((k<0||k>=l.length)?($throwRuntimeError("index out of range"),undefined):l[k]=f.length));j++;}m=0;while(true){if(!(m=n.length)?($throwRuntimeError("index out of range"),undefined):n[o]=(h-m>>0)));m=m+(1)>>0;}p=h;q=h;while(true){if(!(q>=0)){break;}if(Y(f,$substring(f,(q+1>>0)))){p=q+1>>0;}(r=g.goodSuffixSkip,((q<0||q>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+q]=((p+h>>0)-q>>0)));q=q-(1)>>0;}s=0;while(true){if(!(s>0)));if(!((f.charCodeAt((s-t>>0))===f.charCodeAt((h-t>>0))))){(u=g.goodSuffixSkip,v=h-t>>0,((v<0||v>=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v]=((t+h>>0)-s>>0)));}s=s+(1)>>0;}return g;};BM=function(f,g){var f,g,h;h=0;while(true){if(!(h>0)-h>>0))===g.charCodeAt(((g.length-1>>0)-h>>0))))){break;}h=h+(1)>>0;}return h;};BK.ptr.prototype.next=function(f){var f,g,h,i,j,k,l;g=this;h=g.pattern.length-1>>0;while(true){if(!(h>0;while(true){if(!(i>=0&&(f.charCodeAt(h)===g.pattern.charCodeAt(i)))){break;}h=h-(1)>>0;i=i-(1)>>0;}if(i<0){return h+1>>0;}h=h+(BN((j=g.badCharSkip,k=f.charCodeAt(h),((k<0||k>=j.length)?($throwRuntimeError("index out of range"),undefined):j[k])),(l=g.goodSuffixSkip,((i<0||i>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+i]))))>>0;}return-1;};BK.prototype.next=function(f){return this.$val.next(f);};BN=function(f,g){var f,g;if(f>g){return f;}return g;};BQ=function(f){var f,g;if((g=f.$length%2,g===g?g:$throwRuntimeError("integer divide by zero"))===1){$panic(new $String("strings.NewReplacer: odd argument count"));}return new BO.ptr(new E.Once.ptr(0,new E.Mutex.ptr(0,0)),$ifaceNil,$appendSlice((CL.nil),f));};$pkg.NewReplacer=BQ;BO.ptr.prototype.buildOnce=function(){var f;f=this;f.r=f.build();f.oldnew=CL.nil;};BO.prototype.buildOnce=function(){return this.$val.buildOnce();};BO.ptr.prototype.build=function(){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;f=this;g=f.oldnew;if((g.$length===2)&&(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]).length>1){return BY((0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]),(1>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+1]));}h=true;i=0;while(true){if(!(i=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+i]).length===1))){return BT(g);}if(!(((j=i+1>>0,((j<0||j>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+j])).length===1))){h=false;}i=i+(2)>>0;}if(h){k=CU.zero();l=k;m=0;while(true){if(!(m<256)){break;}n=m;((n<0||n>=k.length)?($throwRuntimeError("index out of range"),undefined):k[n]=((n<<24>>>24)));m++;}o=g.$length-2>>0;while(true){if(!(o>=0)){break;}p=((o<0||o>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+o]).charCodeAt(0);r=(q=o+1>>0,((q<0||q>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+q])).charCodeAt(0);((p<0||p>=k.length)?($throwRuntimeError("index out of range"),undefined):k[p]=r);o=o-(2)>>0;}return new CV(k);}t=new CA.ptr(CW.zero(),$makeSlice(CL,0,(s=g.$length/2,(s===s&&s!==1/0&&s!==-1/0)?s>>0:$throwRuntimeError("integer divide by zero"))));u=g.$length-2>>0;while(true){if(!(u>=0)){break;}v=((u<0||u>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+u]).charCodeAt(0);x=(w=u+1>>0,((w<0||w>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+w]));if((y=t.replacements,((v<0||v>=y.length)?($throwRuntimeError("index out of range"),undefined):y[v]))===CQ.nil){t.toReplace=$append(t.toReplace,($bytesToString(new CQ([v]))));}(z=t.replacements,((v<0||v>=z.length)?($throwRuntimeError("index out of range"),undefined):z[v]=(new CQ($stringToBytes(x)))));u=u-(2)>>0;}return t;};BO.prototype.build=function(){return this.$val.build();};BO.ptr.prototype.Replace=function(f){var{f,g,h,i,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:g=this;$r=g.once.Do($methodVal(g,"buildOnce"));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=g.r.Replace(f);$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=3;case 3:return i;}return;}var $f={$blk:BO.ptr.prototype.Replace,$c:true,$r,f,g,h,i,$s};return $f;};BO.prototype.Replace=function(f){return this.$val.Replace(f);};BO.ptr.prototype.WriteString=function(f,g){var{f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=0;i=$ifaceNil;j=this;$r=j.once.Do($methodVal(j,"buildOnce"));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=j.r.WriteString(f,g);$s=2;case 2:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;h=k[0];i=k[1];m=[h,i];$s=3;case 3:return m;}return;}var $f={$blk:BO.ptr.prototype.WriteString,$c:true,$r,f,g,h,i,j,k,l,m,$s};return $f;};BO.prototype.WriteString=function(f,g){return this.$val.WriteString(f,g);};BR.ptr.prototype.add=function(f,g,h,i){var aa,ab,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;j=this;if(f===""){if(j.priority===0){j.value=g;j.priority=h;}return;}if(!(j.prefix==="")){k=0;while(true){if(!(k>0;}if(k===j.prefix.length){j.next.add($substring(f,k),g,h,i);}else if(k===0){l=CX.nil;if(j.prefix.length===1){l=j.next;}else{l=new BR.ptr("",0,$substring(j.prefix,1),j.next,CY.nil);}m=new BR.ptr("",0,"",CX.nil,CY.nil);j.table=$makeSlice(CY,i.tableSize);(n=j.table,o=(p=i.mapping,q=j.prefix.charCodeAt(0),((q<0||q>=p.length)?($throwRuntimeError("index out of range"),undefined):p[q])),((o<0||o>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]=l));(r=j.table,s=(t=i.mapping,u=f.charCodeAt(0),((u<0||u>=t.length)?($throwRuntimeError("index out of range"),undefined):t[u])),((s<0||s>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]=m));j.prefix="";j.next=CX.nil;m.add($substring(f,1),g,h,i);}else{v=new BR.ptr("",0,$substring(j.prefix,k),j.next,CY.nil);j.prefix=$substring(j.prefix,0,k);j.next=v;v.add($substring(f,k),g,h,i);}}else if(!(j.table===CY.nil)){y=(w=i.mapping,x=f.charCodeAt(0),((x<0||x>=w.length)?($throwRuntimeError("index out of range"),undefined):w[x]));if((z=j.table,((y<0||y>=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+y]))===CX.nil){(aa=j.table,((y<0||y>=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+y]=new BR.ptr("",0,"",CX.nil,CY.nil)));}(ab=j.table,((y<0||y>=ab.$length)?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+y])).add($substring(f,1),g,h,i);}else{j.prefix=f;j.next=new BR.ptr("",0,"",CX.nil,CY.nil);j.next.add("",g,h,i);}};BR.prototype.add=function(f,g,h,i){return this.$val.add(f,g,h,i);};BS.ptr.prototype.lookup=function(f,g){var f,g,h,i,j,k,l,m,n,o,p,q,r;h="";i=0;j=false;k=this;l=0;m=k.root;n=0;while(true){if(!(!(m===CX.nil))){break;}if(m.priority>l&&!(g&&m===k.root)){l=m.priority;h=m.value;i=n;j=true;}if(f===""){break;}if(!(m.table===CY.nil)){q=(o=k.mapping,p=f.charCodeAt(0),((p<0||p>=o.length)?($throwRuntimeError("index out of range"),undefined):o[p]));if(((q>>0))===k.tableSize){break;}m=(r=m.table,((q<0||q>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+q]));f=$substring(f,1);n=n+(1)>>0;}else if(!(m.prefix==="")&&Y(f,m.prefix)){n=n+(m.prefix.length)>>0;f=$substring(f,m.prefix.length);m=m.next;}else{break;}}return[h,i,j];};BS.prototype.lookup=function(f,g){return this.$val.lookup(f,g);};BT=function(f){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;g=new BS.ptr(new BR.ptr("",0,"",CX.nil,CY.nil),0,CU.zero());h=0;while(true){if(!(h=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+h]);j=0;while(true){if(!(j=k.length)?($throwRuntimeError("index out of range"),undefined):k[l]=1));j=j+(1)>>0;}h=h+(2)>>0;}m=g.mapping;n=0;while(true){if(!(n<256)){break;}o=((n<0||n>=m.length)?($throwRuntimeError("index out of range"),undefined):m[n]);g.tableSize=g.tableSize+(((o>>0)))>>0;n++;}p=0;q=g.mapping;r=0;while(true){if(!(r<256)){break;}s=r;t=((r<0||r>=q.length)?($throwRuntimeError("index out of range"),undefined):q[r]);if(t===0){(u=g.mapping,((s<0||s>=u.length)?($throwRuntimeError("index out of range"),undefined):u[s]=((g.tableSize<<24>>>24))));}else{(v=g.mapping,((s<0||s>=v.length)?($throwRuntimeError("index out of range"),undefined):v[s]=p));p=p+(1)<<24>>>24;}r++;}g.root.table=$makeSlice(CY,g.tableSize);w=0;while(true){if(!(w=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+w]),(x=w+1>>0,((x<0||x>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+x])),f.$length-w>>0,g);w=w+(2)>>0;}return g;};$ptrType(BU).prototype.Write=function(f){var f,g;g=this;g.$set($appendSlice(g.$get(),f));return[f.$length,$ifaceNil];};$ptrType(BU).prototype.WriteString=function(f){var f,g;g=this;g.$set($appendSlice(g.$get(),f));return[f.length,$ifaceNil];};BV.ptr.prototype.WriteString=function(f){var{f,g,h,i,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:g=this;h=g.w.Write((new CQ($stringToBytes(f))));$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=2;case 2:return i;}return;}var $f={$blk:BV.ptr.prototype.WriteString,$c:true,$r,f,g,h,i,$s};return $f;};BV.prototype.WriteString=function(f){return this.$val.WriteString(f);};BW=function(f){var f,g,h,i,j;g=$assertType(f,D.StringWriter,true);h=g[0];i=g[1];if(!i){h=(j=new BV.ptr(f),new j.constructor.elem(j));}return h;};BS.ptr.prototype.Replace=function(f){var{f,g,h,i,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:g=[g];h=this;g[0]=$makeSlice(BU,0,f.length);i=h.WriteString((g.$ptr||(g.$ptr=new CZ(function(){return this.$target[0];},function($v){this.$target[0]=$v;},g))),f);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$s=-1;return($bytesToString(g[0]));}return;}var $f={$blk:BS.ptr.prototype.Replace,$c:true,$r,f,g,h,i,$s};return $f;};BS.prototype.Replace=function(f){return this.$val.Replace(f);};BS.ptr.prototype.WriteString=function(f,g){var{aa,ab,ac,ad,ae,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=0;i=$ifaceNil;j=this;k=BW(f);l=0;m=0;n=l;o=m;p=false;q=0;case 1:if(!(q<=g.length)){$s=2;continue;}if(!((q===g.length))&&(j.root.priority===0)){t=(((r=j.mapping,s=g.charCodeAt(q),((s<0||s>=r.length)?($throwRuntimeError("index out of range"),undefined):r[s]))>>0));if((t===j.tableSize)||(u=j.root.table,((t<0||t>=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+t]))===CX.nil){q=q+(1)>>0;$s=1;continue;}}v=j.lookup($substring(g,q),p);w=v[0];x=v[1];y=v[2];p=y&&(x===0);if(y){$s=3;continue;}$s=4;continue;case 3:aa=k.WriteString($substring(g,n,q));$s=5;case 5:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;o=z[0];i=z[1];h=h+(o)>>0;if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return[h,i];}ac=k.WriteString(w);$s=6;case 6:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ab=ac;o=ab[0];i=ab[1];h=h+(o)>>0;if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return[h,i];}q=q+(x)>>0;n=q;$s=1;continue;case 4:q=q+(1)>>0;$s=1;continue;case 2:if(!((n===g.length))){$s=7;continue;}$s=8;continue;case 7:ae=k.WriteString($substring(g,n));$s=9;case 9:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ad=ae;o=ad[0];i=ad[1];h=h+(o)>>0;case 8:$s=-1;return[h,i];}return;}var $f={$blk:BS.ptr.prototype.WriteString,$c:true,$r,aa,ab,ac,ad,ae,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BS.prototype.WriteString=function(f,g){return this.$val.WriteString(f,g);};BY=function(f,g){var f,g;return new BX.ptr(BL(f),g);};BX.ptr.prototype.Replace=function(f){var f,g,h,i,j,k,l,m;g=this;h=new CJ.ptr(CP.nil,CQ.nil);i=0;j=false;k=i;l=j;while(true){m=g.finder.next($substring(f,k));if(m===-1){break;}l=true;h.Grow(m+g.value.length>>0);h.WriteString($substring(f,k,(k+m>>0)));h.WriteString(g.value);k=k+((m+g.finder.pattern.length>>0))>>0;}if(!l){return f;}h.WriteString($substring(f,k));return h.String();};BX.prototype.Replace=function(f){return this.$val.Replace(f);};BX.ptr.prototype.WriteString=function(f,g){var{f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=0;i=$ifaceNil;j=this;k=BW(f);l=0;m=0;n=l;o=m;case 1:p=j.finder.next($substring(g,n));if(p===-1){$s=2;continue;}r=k.WriteString($substring(g,n,(n+p>>0)));$s=3;case 3:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;o=q[0];i=q[1];h=h+(o)>>0;if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return[h,i];}t=k.WriteString(j.value);$s=4;case 4:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;o=s[0];i=s[1];h=h+(o)>>0;if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return[h,i];}n=n+((p+j.finder.pattern.length>>0))>>0;$s=1;continue;case 2:v=k.WriteString($substring(g,n));$s=5;case 5:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=v;o=u[0];i=u[1];h=h+(o)>>0;$s=-1;return[h,i];}return;}var $f={$blk:BX.ptr.prototype.WriteString,$c:true,$r,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};BX.prototype.WriteString=function(f,g){return this.$val.WriteString(f,g);};BZ.prototype.Replace=function(f){var f,g,h,i,j,k,l;g=this.$val;h=CQ.nil;i=0;while(true){if(!(i=k.length)?($throwRuntimeError("index out of range"),undefined):k[j]))===j))){if(h===CQ.nil){h=(new CQ($stringToBytes(f)));}((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]=(l=g,((j<0||j>=l.length)?($throwRuntimeError("index out of range"),undefined):l[j])));}i=i+(1)>>0;}if(h===CQ.nil){return f;}return($bytesToString(h));};$ptrType(BZ).prototype.Replace=function(f){return(new BZ(this.$get())).Replace(f);};BZ.prototype.WriteString=function(f,g){var{f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=0;i=$ifaceNil;j=this.$val;k=32768;if(g.length0)){$s=2;continue;}m=$copyString(l,g);g=$substring(g,m);n=$subslice(l,0,m);o=0;while(true){if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]);((p<0||p>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+p]=(r=j,((q<0||q>=r.length)?($throwRuntimeError("index out of range"),undefined):r[q])));o++;}t=f.Write($subslice(l,0,m));$s=3;case 3:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;u=s[0];v=s[1];h=h+(u)>>0;if(!($interfaceIsEqual(v,$ifaceNil))){w=h;x=v;h=w;i=x;$s=-1;return[h,i];}$s=1;continue;case 2:y=h;z=$ifaceNil;h=y;i=z;$s=-1;return[h,i];}return;}var $f={$blk:BZ.prototype.WriteString,$c:true,$r,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$ptrType(BZ).prototype.WriteString=function(f,g){return(new BZ(this.$get())).WriteString(f,g);};CA.ptr.prototype.Replace=function(f){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;g=this;h=f.length;i=false;if(($imul(g.toReplace.$length,8))<=f.length){j=g.toReplace;k=0;while(true){if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);m=CG(f,l);if(!((m===0))){h=h+(($imul(m,(((n=g.replacements,o=l.charCodeAt(0),((o<0||o>=n.length)?($throwRuntimeError("index out of range"),undefined):n[o])).$length-1>>0)))))>>0;i=true;}k++;}}else{p=0;while(true){if(!(p=r.length)?($throwRuntimeError("index out of range"),undefined):r[q]))===CQ.nil)){h=h+(((s=g.replacements,((q<0||q>=s.length)?($throwRuntimeError("index out of range"),undefined):s[q])).$length-1>>0))>>0;i=true;}p=p+(1)>>0;}}if(!i){return f;}t=$makeSlice(CQ,h);u=0;v=0;while(true){if(!(v=x.length)?($throwRuntimeError("index out of range"),undefined):x[w]))===CQ.nil)){u=u+($copySlice($subslice(t,u),(y=g.replacements,((w<0||w>=y.length)?($throwRuntimeError("index out of range"),undefined):y[w]))))>>0;}else{((u<0||u>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]=w);u=u+(1)>>0;}v=v+(1)>>0;}return($bytesToString(t));};CA.prototype.Replace=function(f){return this.$val.Replace(f);};CA.ptr.prototype.WriteString=function(f,g){var{aa,ab,ac,ad,ae,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=0;i=$ifaceNil;j=this;k=BW(f);l=0;m=0;case 1:if(!(m=o.length)?($throwRuntimeError("index out of range"),undefined):o[n]))===CQ.nil){m=m+(1)>>0;$s=1;continue;}if(!((l===m))){$s=3;continue;}$s=4;continue;case 3:q=k.WriteString($substring(g,l,m));$s=5;case 5:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p[0];s=p[1];h=h+(r)>>0;if(!($interfaceIsEqual(s,$ifaceNil))){t=h;u=s;h=t;i=u;$s=-1;return[h,i];}case 4:l=m+1>>0;x=f.Write((w=j.replacements,((n<0||n>=w.length)?($throwRuntimeError("index out of range"),undefined):w[n])));$s=6;case 6:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}v=x;y=v[0];z=v[1];h=h+(y)>>0;if(!($interfaceIsEqual(z,$ifaceNil))){aa=h;ab=z;h=aa;i=ab;$s=-1;return[h,i];}m=m+(1)>>0;$s=1;continue;case 2:if(!((l===g.length))){$s=7;continue;}$s=8;continue;case 7:ac=0;ae=k.WriteString($substring(g,l));$s=9;case 9:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ad=ae;ac=ad[0];i=ad[1];h=h+(ac)>>0;case 8:$s=-1;return[h,i];}return;}var $f={$blk:CA.ptr.prototype.WriteString,$c:true,$r,aa,ab,ac,ad,ae,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};CA.prototype.WriteString=function(f,g){return this.$val.WriteString(f,g);};CB.ptr.prototype.Len=function(){var f,g,h,i,j,k;f=this;if((g=f.i,h=(new $Int64(0,f.s.length)),(g.$high>h.$high||(g.$high===h.$high&&g.$low>=h.$low)))){return 0;}return(((i=(j=(new $Int64(0,f.s.length)),k=f.i,new $Int64(j.$high-k.$high,j.$low-k.$low)),i.$low+((i.$high>>31)*4294967296))>>0));};CB.prototype.Len=function(){return this.$val.Len();};CB.ptr.prototype.Size=function(){var f;f=this;return(new $Int64(0,f.s.length));};CB.prototype.Size=function(){return this.$val.Size();};CB.ptr.prototype.Read=function(f){var f,g,h,i,j,k,l,m,n,o;g=0;h=$ifaceNil;i=this;if((j=i.i,k=(new $Int64(0,i.s.length)),(j.$high>k.$high||(j.$high===k.$high&&j.$low>=k.$low)))){l=0;m=D.EOF;g=l;h=m;return[g,h];}i.prevRune=-1;g=$copyString(f,$substring(i.s,$flatten64(i.i)));i.i=(n=i.i,o=(new $Int64(0,g)),new $Int64(n.$high+o.$high,n.$low+o.$low));return[g,h];};CB.prototype.Read=function(f){return this.$val.Read(f);};CB.ptr.prototype.ReadAt=function(f,g){var f,g,h,i,j,k,l,m,n,o;h=0;i=$ifaceNil;j=this;if((g.$high<0||(g.$high===0&&g.$low<0))){k=0;l=F.New("strings.Reader.ReadAt: negative offset");h=k;i=l;return[h,i];}if((m=(new $Int64(0,j.s.length)),(g.$high>m.$high||(g.$high===m.$high&&g.$low>=m.$low)))){n=0;o=D.EOF;h=n;i=o;return[h,i];}h=$copyString(f,$substring(j.s,$flatten64(g)));if(hh.$high||(g.$high===h.$high&&g.$low>=h.$low)))){return[0,D.EOF];}i=f.s.charCodeAt($flatten64(f.i));f.i=(j=f.i,k=new $Int64(0,1),new $Int64(j.$high+k.$high,j.$low+k.$low));return[i,$ifaceNil];};CB.prototype.ReadByte=function(){return this.$val.ReadByte();};CB.ptr.prototype.UnreadByte=function(){var f,g,h,i;f=this;if((g=f.i,(g.$high<0||(g.$high===0&&g.$low<=0)))){return F.New("strings.Reader.UnreadByte: at beginning of string");}f.prevRune=-1;f.i=(h=f.i,i=new $Int64(0,1),new $Int64(h.$high-i.$high,h.$low-i.$low));return $ifaceNil;};CB.prototype.UnreadByte=function(){return this.$val.UnreadByte();};CB.ptr.prototype.ReadRune=function(){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;f=0;g=0;h=$ifaceNil;i=this;if((j=i.i,k=(new $Int64(0,i.s.length)),(j.$high>k.$high||(j.$high===k.$high&&j.$low>=k.$low)))){i.prevRune=-1;l=0;m=0;n=D.EOF;f=l;g=m;h=n;return[f,g,h];}i.prevRune=(((o=i.i,o.$low+((o.$high>>31)*4294967296))>>0));p=i.s.charCodeAt($flatten64(i.i));if(p<128){i.i=(q=i.i,r=new $Int64(0,1),new $Int64(q.$high+r.$high,q.$low+r.$low));s=((p>>0));t=1;u=$ifaceNil;f=s;g=t;h=u;return[f,g,h];}v=C.DecodeRuneInString($substring(i.s,$flatten64(i.i)));f=v[0];g=v[1];i.i=(w=i.i,x=(new $Int64(0,g)),new $Int64(w.$high+x.$high,w.$low+x.$low));return[f,g,h];};CB.prototype.ReadRune=function(){return this.$val.ReadRune();};CB.ptr.prototype.UnreadRune=function(){var f,g;f=this;if((g=f.i,(g.$high<0||(g.$high===0&&g.$low<=0)))){return F.New("strings.Reader.UnreadRune: at beginning of string");}if(f.prevRune<0){return F.New("strings.Reader.UnreadRune: previous operation was not ReadRune");}f.i=(new $Int64(0,f.prevRune));f.prevRune=-1;return $ifaceNil;};CB.prototype.UnreadRune=function(){return this.$val.UnreadRune();};CB.ptr.prototype.Seek=function(f,g){var f,g,h,i,j,k,l;h=this;h.prevRune=-1;i=new $Int64(0,0);j=g;if(j===(0)){i=f;}else if(j===(1)){i=(k=h.i,new $Int64(k.$high+f.$high,k.$low+f.$low));}else if(j===(2)){i=(l=(new $Int64(0,h.s.length)),new $Int64(l.$high+f.$high,l.$low+f.$low));}else{return[new $Int64(0,0),F.New("strings.Reader.Seek: invalid whence")];}if((i.$high<0||(i.$high===0&&i.$low<0))){return[new $Int64(0,0),F.New("strings.Reader.Seek: negative position")];}h.i=i;return[i,$ifaceNil];};CB.prototype.Seek=function(f,g){return this.$val.Seek(f,g);};CB.ptr.prototype.WriteTo=function(f){var{f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:g=new $Int64(0,0);h=$ifaceNil;i=this;i.prevRune=-1;if((j=i.i,k=(new $Int64(0,i.s.length)),(j.$high>k.$high||(j.$high===k.$high&&j.$low>=k.$low)))){l=new $Int64(0,0);m=$ifaceNil;g=l;h=m;$s=-1;return[g,h];}n=$substring(i.s,$flatten64(i.i));p=D.WriteString(f,n);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;q=o[0];h=o[1];if(q>n.length){$panic(new $String("strings.Reader.WriteTo: invalid WriteString count"));}i.i=(r=i.i,s=(new $Int64(0,q)),new $Int64(r.$high+s.$high,r.$low+s.$low));g=(new $Int64(0,q));if(!((q===n.length))&&$interfaceIsEqual(h,$ifaceNil)){h=D.ErrShortWrite;}$s=-1;return[g,h];}return;}var $f={$blk:CB.ptr.prototype.WriteTo,$c:true,$r,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};CB.prototype.WriteTo=function(f){return this.$val.WriteTo(f);};CB.ptr.prototype.Reset=function(f){var f,g;g=this;CB.copy(g,new CB.ptr(f,new $Int64(0,0),-1));};CB.prototype.Reset=function(f){return this.$val.Reset(f);};CC=function(f){var f;return new CB.ptr(f,new $Int64(0,0),-1);};$pkg.NewReader=CC;CD=function(f,g){var f,g;return $parseInt(f.indexOf($global.String.fromCharCode(g)))>>0;};$pkg.IndexByte=CD;CE=function(f,g){var f,g;return $parseInt(f.indexOf(g))>>0;};$pkg.Index=CE;CF=function(f,g){var f,g;return $parseInt(f.lastIndexOf(g))>>0;};$pkg.LastIndex=CF;CG=function(f,g){var f,g,h,i;h=0;if((g.length===0)){return C.RuneCountInString(f)+1>>0;}else if(g.length>f.length){return 0;}else if((g.length===f.length)){if(g===f){return 1;}return 0;}while(true){i=CE(f,g);if(i===-1){break;}h=h+(1)>>0;f=$substring(f,(i+g.length>>0));}return h;};$pkg.Count=CG;CJ.ptr.prototype.String=function(){var f;f=this;return($bytesToString(f.buf));};CJ.prototype.String=function(){return this.$val.String();};CJ.ptr.prototype.copyCheck=function(){var f;f=this;if(f.addr===CP.nil){f.addr=f;}else if(!(f.addr===f)){$panic(new $String("strings: illegal use of non-zero Builder copied by value"));}};CJ.prototype.copyCheck=function(){return this.$val.copyCheck();};CJ.ptr.prototype.Len=function(){var f;f=this;return f.buf.$length;};CJ.prototype.Len=function(){return this.$val.Len();};CJ.ptr.prototype.Cap=function(){var f;f=this;return f.buf.$capacity;};CJ.prototype.Cap=function(){return this.$val.Cap();};CJ.ptr.prototype.Reset=function(){var f;f=this;f.addr=CP.nil;f.buf=CQ.nil;};CJ.prototype.Reset=function(){return this.$val.Reset();};CJ.ptr.prototype.grow=function(f){var f,g,h;g=this;h=$makeSlice(CQ,g.buf.$length,(($imul(2,g.buf.$capacity))+f>>0));$copySlice(h,g.buf);g.buf=h;};CJ.prototype.grow=function(f){return this.$val.grow(f);};CJ.ptr.prototype.Grow=function(f){var f,g;g=this;g.copyCheck();if(f<0){$panic(new $String("strings.Builder.Grow: negative count"));}if((g.buf.$capacity-g.buf.$length>>0)>>0))<128){g.buf=$append(g.buf,((f<<24>>>24)));return[1,$ifaceNil];}h=g.buf.$length;if((g.buf.$capacity-h>>0)<4){g.grow(4);}i=C.EncodeRune($subslice(g.buf,h,(h+4>>0)),f);g.buf=$subslice(g.buf,0,(h+i>>0));return[i,$ifaceNil];};CJ.prototype.WriteRune=function(f){return this.$val.WriteRune(f);};CJ.ptr.prototype.WriteString=function(f){var f,g;g=this;g.copyCheck();g.buf=$appendSlice(g.buf,f);return[f.length,$ifaceNil];};CJ.prototype.WriteString=function(f){return this.$val.WriteString(f);};CM.methods=[{prop:"contains",name:"contains",pkg:"strings",typ:$funcType([$Uint8],[$Bool],false)}];DA.methods=[{prop:"next",name:"next",pkg:"strings",typ:$funcType([$String],[$Int],false)}];DB.methods=[{prop:"buildOnce",name:"buildOnce",pkg:"strings",typ:$funcType([],[],false)},{prop:"build",name:"build",pkg:"strings",typ:$funcType([],[BP],false)},{prop:"Replace",name:"Replace",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([D.Writer,$String],[$Int,$error],false)}];CX.methods=[{prop:"add",name:"add",pkg:"strings",typ:$funcType([$String,$String,$Int,DC],[],false)}];DC.methods=[{prop:"lookup",name:"lookup",pkg:"strings",typ:$funcType([$String,$Bool],[$String,$Int,$Bool],false)},{prop:"Replace",name:"Replace",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([D.Writer,$String],[$Int,$error],false)}];CZ.methods=[{prop:"Write",name:"Write",pkg:"",typ:$funcType([CQ],[$Int,$error],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([$String],[$Int,$error],false)}];BV.methods=[{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([$String],[$Int,$error],false)}];DD.methods=[{prop:"Replace",name:"Replace",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([D.Writer,$String],[$Int,$error],false)}];CV.methods=[{prop:"Replace",name:"Replace",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([D.Writer,$String],[$Int,$error],false)}];DE.methods=[{prop:"Replace",name:"Replace",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([D.Writer,$String],[$Int,$error],false)}];DF.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Read",name:"Read",pkg:"",typ:$funcType([CQ],[$Int,$error],false)},{prop:"ReadAt",name:"ReadAt",pkg:"",typ:$funcType([CQ,$Int64],[$Int,$error],false)},{prop:"ReadByte",name:"ReadByte",pkg:"",typ:$funcType([],[$Uint8,$error],false)},{prop:"UnreadByte",name:"UnreadByte",pkg:"",typ:$funcType([],[$error],false)},{prop:"ReadRune",name:"ReadRune",pkg:"",typ:$funcType([],[$Int32,$Int,$error],false)},{prop:"UnreadRune",name:"UnreadRune",pkg:"",typ:$funcType([],[$error],false)},{prop:"Seek",name:"Seek",pkg:"",typ:$funcType([$Int64,$Int],[$Int64,$error],false)},{prop:"WriteTo",name:"WriteTo",pkg:"",typ:$funcType([D.Writer],[$Int64,$error],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([$String],[],false)}];CP.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"copyCheck",name:"copyCheck",pkg:"strings",typ:$funcType([],[],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Cap",name:"Cap",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([],[],false)},{prop:"grow",name:"grow",pkg:"strings",typ:$funcType([$Int],[],false)},{prop:"Grow",name:"Grow",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([CQ],[$Int,$error],false)},{prop:"WriteByte",name:"WriteByte",pkg:"",typ:$funcType([$Uint8],[$error],false)},{prop:"WriteRune",name:"WriteRune",pkg:"",typ:$funcType([$Int32],[$Int,$error],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([$String],[$Int,$error],false)}];AS.init($Uint32,8);BK.init("strings",[{prop:"pattern",name:"pattern",embedded:false,exported:false,typ:$String,tag:""},{prop:"badCharSkip",name:"badCharSkip",embedded:false,exported:false,typ:CS,tag:""},{prop:"goodSuffixSkip",name:"goodSuffixSkip",embedded:false,exported:false,typ:CT,tag:""}]);BO.init("strings",[{prop:"once",name:"once",embedded:false,exported:false,typ:E.Once,tag:""},{prop:"r",name:"r",embedded:false,exported:false,typ:BP,tag:""},{prop:"oldnew",name:"oldnew",embedded:false,exported:false,typ:CL,tag:""}]);BP.init([{prop:"Replace",name:"Replace",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([D.Writer,$String],[$Int,$error],false)}]);BR.init("strings",[{prop:"value",name:"value",embedded:false,exported:false,typ:$String,tag:""},{prop:"priority",name:"priority",embedded:false,exported:false,typ:$Int,tag:""},{prop:"prefix",name:"prefix",embedded:false,exported:false,typ:$String,tag:""},{prop:"next",name:"next",embedded:false,exported:false,typ:CX,tag:""},{prop:"table",name:"table",embedded:false,exported:false,typ:CY,tag:""}]);BS.init("strings",[{prop:"root",name:"root",embedded:false,exported:false,typ:BR,tag:""},{prop:"tableSize",name:"tableSize",embedded:false,exported:false,typ:$Int,tag:""},{prop:"mapping",name:"mapping",embedded:false,exported:false,typ:CU,tag:""}]);BU.init($Uint8);BV.init("strings",[{prop:"w",name:"w",embedded:false,exported:false,typ:D.Writer,tag:""}]);BX.init("strings",[{prop:"finder",name:"finder",embedded:false,exported:false,typ:DA,tag:""},{prop:"value",name:"value",embedded:false,exported:false,typ:$String,tag:""}]);BZ.init($Uint8,256);CA.init("strings",[{prop:"replacements",name:"replacements",embedded:false,exported:false,typ:CW,tag:""},{prop:"toReplace",name:"toReplace",embedded:false,exported:false,typ:CL,tag:""}]);CB.init("strings",[{prop:"s",name:"s",embedded:false,exported:false,typ:$String,tag:""},{prop:"i",name:"i",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"prevRune",name:"prevRune",embedded:false,exported:false,typ:$Int,tag:""}]);CJ.init("strings",[{prop:"addr",name:"addr",embedded:false,exported:false,typ:CP,tag:""},{prop:"buf",name:"buf",embedded:false,exported:false,typ:CQ,tag:""}]);CN.init("strings",[{prop:"start",name:"start",embedded:false,exported:false,typ:$Int,tag:""},{prop:"end",name:"end",embedded:false,exported:false,typ:$Int,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=F.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}U=$toNativeArray($kindUint8,[0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["bufio"]=(function(){var $pkg={},$init,A,B,C,E,D,F,G,P,Z,AA,AB,AC,AE,S,T,H,L,M,Q,R;A=$packages["bytes"];B=$packages["errors"];C=$packages["io"];E=$packages["strings"];D=$packages["unicode/utf8"];F=$pkg.Scanner=$newType(0,$kindStruct,"bufio.Scanner",true,"bufio",true,function(r_,split_,maxTokenSize_,token_,buf_,start_,end_,err_,empties_,scanCalled_,done_){this.$val=this;if(arguments.length===0){this.r=$ifaceNil;this.split=$throwNilPointerError;this.maxTokenSize=0;this.token=Z.nil;this.buf=Z.nil;this.start=0;this.end=0;this.err=$ifaceNil;this.empties=0;this.scanCalled=false;this.done=false;return;}this.r=r_;this.split=split_;this.maxTokenSize=maxTokenSize_;this.token=token_;this.buf=buf_;this.start=start_;this.end=end_;this.err=err_;this.empties=empties_;this.scanCalled=scanCalled_;this.done=done_;});G=$pkg.SplitFunc=$newType(4,$kindFunc,"bufio.SplitFunc",true,"bufio",true,null);P=$pkg.Reader=$newType(0,$kindStruct,"bufio.Reader",true,"bufio",true,function(buf_,rd_,r_,w_,err_,lastByte_,lastRuneSize_){this.$val=this;if(arguments.length===0){this.buf=Z.nil;this.rd=$ifaceNil;this.r=0;this.w=0;this.err=$ifaceNil;this.lastByte=0;this.lastRuneSize=0;return;}this.buf=buf_;this.rd=rd_;this.r=r_;this.w=w_;this.err=err_;this.lastByte=lastByte_;this.lastRuneSize=lastRuneSize_;});Z=$sliceType($Uint8);AA=$ptrType(P);AB=$sliceType(Z);AC=$ptrType(E.Builder);AE=$ptrType(F);H=function(a){var a;return new F.ptr(a,M,65536,Z.nil,Z.nil,0,0,$ifaceNil,0,false,false);};$pkg.NewScanner=H;F.ptr.prototype.Err=function(){var a;a=this;if($interfaceIsEqual(a.err,C.EOF)){return $ifaceNil;}return a.err;};F.prototype.Err=function(){return this.$val.Err();};F.ptr.prototype.Bytes=function(){var a;a=this;return a.token;};F.prototype.Bytes=function(){return this.$val.Bytes();};F.ptr.prototype.Text=function(){var a;a=this;return($bytesToString(a.token));};F.prototype.Text=function(){return this.$val.Text();};F.ptr.prototype.Scan=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.done){$s=-1;return false;}a.scanCalled=true;case 1:if(a.end>a.start||!($interfaceIsEqual(a.err,$ifaceNil))){$s=3;continue;}$s=4;continue;case 3:c=a.split($subslice(a.buf,a.start,a.end),!($interfaceIsEqual(a.err,$ifaceNil)));$s=5;case 5:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];f=b[2];if(!($interfaceIsEqual(f,$ifaceNil))){if($interfaceIsEqual(f,$pkg.ErrFinalToken)){a.token=e;a.done=true;$s=-1;return true;}a.setErr(f);$s=-1;return false;}if(!a.advance(d)){$s=-1;return false;}a.token=e;if(!(e===Z.nil)){if($interfaceIsEqual(a.err,$ifaceNil)||d>0){a.empties=0;}else{a.empties=a.empties+(1)>>0;if(a.empties>100){$panic(new $String("bufio.Scan: too many empty tokens without progressing"));}}$s=-1;return true;}case 4:if(!($interfaceIsEqual(a.err,$ifaceNil))){a.start=0;a.end=0;$s=-1;return false;}if(a.start>0&&((a.end===a.buf.$length)||a.start>(g=a.buf.$length/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero")))){$copySlice(a.buf,$subslice(a.buf,a.start,a.end));a.end=a.end-(a.start)>>0;a.start=0;}if(a.end===a.buf.$length){if(a.buf.$length>=a.maxTokenSize||a.buf.$length>1073741823){a.setErr($pkg.ErrTooLong);$s=-1;return false;}h=$imul(a.buf.$length,2);if(h===0){h=4096;}if(h>a.maxTokenSize){h=a.maxTokenSize;}i=$makeSlice(Z,h);$copySlice(i,$subslice(a.buf,a.start,a.end));a.buf=i;a.end=a.end-(a.start)>>0;a.start=0;}j=0;case 6:l=a.r.Read($subslice(a.buf,a.end,a.buf.$length));$s=8;case 8:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];if(m<0||(a.buf.$length-a.end>>0)>0;if(!($interfaceIsEqual(n,$ifaceNil))){a.setErr(n);$s=7;continue;}if(m>0){a.empties=0;$s=7;continue;}j=j+(1)>>0;if(j>100){a.setErr(C.ErrNoProgress);$s=7;continue;}$s=6;continue;case 7:$s=1;continue;case 2:$s=-1;return false;}return;}var $f={$blk:F.ptr.prototype.Scan,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};F.prototype.Scan=function(){return this.$val.Scan();};F.ptr.prototype.advance=function(a){var a,b;b=this;if(a<0){b.setErr($pkg.ErrNegativeAdvance);return false;}if(a>(b.end-b.start>>0)){b.setErr($pkg.ErrAdvanceTooFar);return false;}b.start=b.start+(a)>>0;return true;};F.prototype.advance=function(a){return this.$val.advance(a);};F.ptr.prototype.setErr=function(a){var a,b;b=this;if($interfaceIsEqual(b.err,$ifaceNil)||$interfaceIsEqual(b.err,C.EOF)){b.err=a;}};F.prototype.setErr=function(a){return this.$val.setErr(a);};F.ptr.prototype.Buffer=function(a,b){var a,b,c;c=this;if(c.scanCalled){$panic(new $String("Buffer called after Scan"));}c.buf=$subslice(a,0,a.$capacity);c.maxTokenSize=b;};F.prototype.Buffer=function(a,b){return this.$val.Buffer(a,b);};F.ptr.prototype.Split=function(a){var a,b;b=this;if(b.scanCalled){$panic(new $String("Split called after Scan"));}b.split=a;};F.prototype.Split=function(a){return this.$val.Split(a);};L=function(a){var a,b;if(a.$length>0&&((b=a.$length-1>>0,((b<0||b>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+b]))===13)){return $subslice(a,0,(a.$length-1>>0));}return a;};M=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;c=0;d=Z.nil;e=$ifaceNil;if(b&&(a.$length===0)){f=0;g=Z.nil;h=$ifaceNil;c=f;d=g;e=h;return[c,d,e];}i=A.IndexByte(a,10);if(i>=0){j=i+1>>0;k=L($subslice(a,0,i));l=$ifaceNil;c=j;d=k;e=l;return[c,d,e];}if(b){m=a.$length;n=L(a);o=$ifaceNil;c=m;d=n;e=o;return[c,d,e];}p=0;q=Z.nil;r=$ifaceNil;c=p;d=q;e=r;return[c,d,e];};$pkg.ScanLines=M;Q=function(a,b){var a,b,c,d,e,f;c=$assertType(a,AA,true);d=c[0];e=c[1];if(e&&d.buf.$length>=b){return d;}if(b<16){b=16;}f=new P.ptr(Z.nil,$ifaceNil,0,0,$ifaceNil,0,0);f.reset($makeSlice(Z,b),a);return f;};$pkg.NewReaderSize=Q;R=function(a){var a;return Q(a,4096);};$pkg.NewReader=R;P.ptr.prototype.Size=function(){var a;a=this;return a.buf.$length;};P.prototype.Size=function(){return this.$val.Size();};P.ptr.prototype.Reset=function(a){var a,b;b=this;if(b.buf===Z.nil){b.buf=$makeSlice(Z,4096);}b.reset(b.buf,a);};P.prototype.Reset=function(a){return this.$val.Reset(a);};P.ptr.prototype.reset=function(a,b){var a,b,c;c=this;P.copy(c,new P.ptr(a,b,0,0,$ifaceNil,-1,-1));};P.prototype.reset=function(a,b){return this.$val.reset(a,b);};P.ptr.prototype.fill=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.r>0){$copySlice(a.buf,$subslice(a.buf,a.r,a.w));a.w=a.w-(a.r)>>0;a.r=0;}if(a.w>=a.buf.$length){$panic(new $String("bufio: tried to fill full buffer"));}b=100;case 1:if(!(b>0)){$s=2;continue;}d=a.rd.Read($subslice(a.buf,a.w));$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];if(e<0){$panic(S);}a.w=a.w+(e)>>0;if(!($interfaceIsEqual(f,$ifaceNil))){a.err=f;$s=-1;return;}if(e>0){$s=-1;return;}b=b-(1)>>0;$s=1;continue;case 2:a.err=C.ErrNoProgress;$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.fill,$c:true,$r,a,b,c,d,e,f,$s};return $f;};P.prototype.fill=function(){return this.$val.fill();};P.ptr.prototype.readErr=function(){var a,b;a=this;b=a.err;a.err=$ifaceNil;return b;};P.prototype.readErr=function(){return this.$val.readErr();};P.ptr.prototype.Peek=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(a<0){$s=-1;return[Z.nil,$pkg.ErrNegativeCount];}b.lastByte=-1;b.lastRuneSize=-1;case 1:if(!((b.w-b.r>>0)>0)b.buf.$length){$s=-1;return[$subslice(b.buf,b.r,b.w),$pkg.ErrBufferFull];}c=$ifaceNil;d=b.w-b.r>>0;if(d>0)),c];}return;}var $f={$blk:P.ptr.prototype.Peek,$c:true,$r,a,b,c,d,$s};return $f;};P.prototype.Peek=function(a){return this.$val.Peek(a);};P.ptr.prototype.Discard=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=0;c=$ifaceNil;d=this;if(a<0){e=0;f=$pkg.ErrNegativeCount;b=e;c=f;$s=-1;return[b,c];}if(a===0){$s=-1;return[b,c];}d.lastByte=-1;d.lastRuneSize=-1;g=a;case 1:h=d.Buffered();if(h===0){$s=3;continue;}$s=4;continue;case 3:$r=d.fill();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=d.Buffered();case 4:if(h>g){h=g;}d.r=d.r+(h)>>0;g=g-(h)>>0;if(g===0){i=a;j=$ifaceNil;b=i;c=j;$s=-1;return[b,c];}if(!($interfaceIsEqual(d.err,$ifaceNil))){k=a-g>>0;l=d.readErr();b=k;c=l;$s=-1;return[b,c];}$s=1;continue;case 2:$s=-1;return[b,c];}return;}var $f={$blk:P.ptr.prototype.Discard,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};P.prototype.Discard=function(a){return this.$val.Discard(a);};P.ptr.prototype.Read=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=0;c=$ifaceNil;d=this;b=a.$length;if(b===0){if(d.Buffered()>0){e=0;f=$ifaceNil;b=e;c=f;$s=-1;return[b,c];}g=0;h=d.readErr();b=g;c=h;$s=-1;return[b,c];}if(d.r===d.w){$s=1;continue;}$s=2;continue;case 1:if(!($interfaceIsEqual(d.err,$ifaceNil))){i=0;j=d.readErr();b=i;c=j;$s=-1;return[b,c];}if(a.$length>=d.buf.$length){$s=3;continue;}$s=4;continue;case 3:l=d.rd.Read(a);$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;b=k[0];d.err=k[1];if(b<0){$panic(S);}if(b>0){d.lastByte=(((m=b-1>>0,((m<0||m>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+m]))>>0));d.lastRuneSize=-1;}n=b;o=d.readErr();b=n;c=o;$s=-1;return[b,c];case 4:d.r=0;d.w=0;q=d.rd.Read(d.buf);$s=6;case 6:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;b=p[0];d.err=p[1];if(b<0){$panic(S);}if(b===0){r=0;s=d.readErr();b=r;c=s;$s=-1;return[b,c];}d.w=d.w+(b)>>0;case 2:b=$copySlice(a,$subslice(d.buf,d.r,d.w));d.r=d.r+(b)>>0;d.lastByte=(((t=d.buf,u=d.r-1>>0,((u<0||u>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]))>>0));d.lastRuneSize=-1;v=b;w=$ifaceNil;b=v;c=w;$s=-1;return[b,c];}return;}var $f={$blk:P.ptr.prototype.Read,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};P.prototype.Read=function(a){return this.$val.Read(a);};P.ptr.prototype.ReadByte=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;a.lastRuneSize=-1;case 1:if(!(a.r===a.w)){$s=2;continue;}if(!($interfaceIsEqual(a.err,$ifaceNil))){$s=-1;return[0,a.readErr()];}$r=a.fill();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=1;continue;case 2:d=(b=a.buf,c=a.r,((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]));a.r=a.r+(1)>>0;a.lastByte=((d>>0));$s=-1;return[d,$ifaceNil];}return;}var $f={$blk:P.ptr.prototype.ReadByte,$c:true,$r,a,b,c,d,$s};return $f;};P.prototype.ReadByte=function(){return this.$val.ReadByte();};P.ptr.prototype.UnreadByte=function(){var a,b,c;a=this;if(a.lastByte<0||(a.r===0)&&a.w>0){return $pkg.ErrInvalidUnreadByte;}if(a.r>0){a.r=a.r-(1)>>0;}else{a.w=1;}(b=a.buf,c=a.r,((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]=((a.lastByte<<24>>>24))));a.lastByte=-1;a.lastRuneSize=-1;return $ifaceNil;};P.prototype.UnreadByte=function(){return this.$val.UnreadByte();};P.ptr.prototype.ReadRune=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=0;b=0;c=$ifaceNil;d=this;case 1:if(!((d.r+4>>0)>d.w&&!D.FullRune($subslice(d.buf,d.r,d.w))&&$interfaceIsEqual(d.err,$ifaceNil)&&(d.w-d.r>>0)=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]))>>0));k=1;a=h;b=k;if(a>=128){l=D.DecodeRune($subslice(d.buf,d.r,d.w));a=l[0];b=l[1];}d.r=d.r+(b)>>0;d.lastByte=(((m=d.buf,n=d.r-1>>0,((n<0||n>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]))>>0));d.lastRuneSize=b;o=a;p=b;q=$ifaceNil;a=o;b=p;c=q;$s=-1;return[a,b,c];}return;}var $f={$blk:P.ptr.prototype.ReadRune,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};P.prototype.ReadRune=function(){return this.$val.ReadRune();};P.ptr.prototype.UnreadRune=function(){var a;a=this;if(a.lastRuneSize<0||a.r>0;a.lastByte=-1;a.lastRuneSize=-1;return $ifaceNil;};P.prototype.UnreadRune=function(){return this.$val.UnreadRune();};P.ptr.prototype.Buffered=function(){var a;a=this;return a.w-a.r>>0;};P.prototype.Buffered=function(){return this.$val.Buffered();};P.ptr.prototype.ReadSlice=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=Z.nil;c=$ifaceNil;d=this;e=0;case 1:f=A.IndexByte($subslice(d.buf,(d.r+e>>0),d.w),a);if(f>=0){f=f+(e)>>0;b=$subslice(d.buf,d.r,((d.r+f>>0)+1>>0));d.r=d.r+((f+1>>0))>>0;$s=2;continue;}if(!($interfaceIsEqual(d.err,$ifaceNil))){b=$subslice(d.buf,d.r,d.w);d.r=d.w;c=d.readErr();$s=2;continue;}if(d.Buffered()>=d.buf.$length){d.r=d.w;b=d.buf;c=$pkg.ErrBufferFull;$s=2;continue;}e=d.w-d.r>>0;$r=d.fill();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=1;continue;case 2:g=b.$length-1>>0;if(g>=0){d.lastByte=((((g<0||g>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+g])>>0));d.lastRuneSize=-1;}$s=-1;return[b,c];}return;}var $f={$blk:P.ptr.prototype.ReadSlice,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};P.prototype.ReadSlice=function(a){return this.$val.ReadSlice(a);};P.ptr.prototype.ReadLine=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=Z.nil;b=false;c=$ifaceNil;d=this;f=d.ReadSlice(10);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;a=e[0];c=e[1];if($interfaceIsEqual(c,$pkg.ErrBufferFull)){if(a.$length>0&&((g=a.$length-1>>0,((g<0||g>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g]))===13)){if(d.r===0){$panic(new $String("bufio: tried to rewind past start of buffer"));}d.r=d.r-(1)>>0;a=$subslice(a,0,(a.$length-1>>0));}h=a;i=true;j=$ifaceNil;a=h;b=i;c=j;$s=-1;return[a,b,c];}if(a.$length===0){if(!($interfaceIsEqual(c,$ifaceNil))){a=Z.nil;}$s=-1;return[a,b,c];}c=$ifaceNil;if((k=a.$length-1>>0,((k<0||k>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+k]))===10){l=1;if(a.$length>1&&((m=a.$length-2>>0,((m<0||m>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+m]))===13)){l=2;}a=$subslice(a,0,(a.$length-l>>0));}$s=-1;return[a,b,c];}return;}var $f={$blk:P.ptr.prototype.ReadLine,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};P.prototype.ReadLine=function(){return this.$val.ReadLine();};P.ptr.prototype.collectFragments=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=AB.nil;c=Z.nil;d=0;e=$ifaceNil;f=this;g=Z.nil;case 1:h=$ifaceNil;j=f.ReadSlice(a);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;g=i[0];h=i[1];if($interfaceIsEqual(h,$ifaceNil)){$s=2;continue;}if(!($interfaceIsEqual(h,$pkg.ErrBufferFull))){e=h;$s=2;continue;}k=$makeSlice(Z,g.$length);$copySlice(k,g);b=$append(b,k);d=d+(k.$length)>>0;$s=1;continue;case 2:d=d+(g.$length)>>0;l=b;m=g;n=d;o=e;b=l;c=m;d=n;e=o;$s=-1;return[b,c,d,e];}return;}var $f={$blk:P.ptr.prototype.collectFragments,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};P.prototype.collectFragments=function(a){return this.$val.collectFragments(a);};P.ptr.prototype.ReadBytes=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;d=b.collectFragments(a);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];g=c[2];h=c[3];i=$makeSlice(Z,g);g=0;j=e;k=0;while(true){if(!(k=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+l])))>>0;k++;}$copySlice($subslice(i,g),f);$s=-1;return[i,h];}return;}var $f={$blk:P.ptr.prototype.ReadBytes,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};P.prototype.ReadBytes=function(a){return this.$val.ReadBytes(a);};P.ptr.prototype.ReadString=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;d=b.collectFragments(a);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];g=c[2];h=c[3];i=new E.Builder.ptr(AC.nil,Z.nil);i.Grow(g);j=e;k=0;while(true){if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);i.Write(l);k++;}i.Write(f);$s=-1;return[i.String(),h];}return;}var $f={$blk:P.ptr.prototype.ReadString,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};P.prototype.ReadString=function(a){return this.$val.ReadString(a);};P.ptr.prototype.WriteTo=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=new $Int64(0,0);c=$ifaceNil;d=this;d.lastByte=-1;d.lastRuneSize=-1;f=d.writeBuf(a);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;b=e[0];c=e[1];if(!($interfaceIsEqual(c,$ifaceNil))){$s=-1;return[b,c];}g=$assertType(d.rd,C.WriterTo,true);h=g[0];i=g[1];if(i){$s=2;continue;}$s=3;continue;case 2:k=h.WriteTo(a);$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];b=(n=l,new $Int64(b.$high+n.$high,b.$low+n.$low));o=b;p=m;b=o;c=p;$s=-1;return[b,c];case 3:q=$assertType(a,C.ReaderFrom,true);r=q[0];s=q[1];if(s){$s=5;continue;}$s=6;continue;case 5:u=r.ReadFrom(d.rd);$s=7;case 7:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;v=t[0];w=t[1];b=(x=v,new $Int64(b.$high+x.$high,b.$low+x.$low));y=b;z=w;b=y;c=z;$s=-1;return[b,c];case 6:if((d.w-d.r>>0)>0;$s=-1;return[(new $Int64(0,e)),f];}return;}var $f={$blk:P.ptr.prototype.writeBuf,$c:true,$r,a,b,c,d,e,f,$s};return $f;};P.prototype.writeBuf=function(a){return this.$val.writeBuf(a);};AE.methods=[{prop:"Err",name:"Err",pkg:"",typ:$funcType([],[$error],false)},{prop:"Bytes",name:"Bytes",pkg:"",typ:$funcType([],[Z],false)},{prop:"Text",name:"Text",pkg:"",typ:$funcType([],[$String],false)},{prop:"Scan",name:"Scan",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"advance",name:"advance",pkg:"bufio",typ:$funcType([$Int],[$Bool],false)},{prop:"setErr",name:"setErr",pkg:"bufio",typ:$funcType([$error],[],false)},{prop:"Buffer",name:"Buffer",pkg:"",typ:$funcType([Z,$Int],[],false)},{prop:"Split",name:"Split",pkg:"",typ:$funcType([G],[],false)}];AA.methods=[{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([C.Reader],[],false)},{prop:"reset",name:"reset",pkg:"bufio",typ:$funcType([Z,C.Reader],[],false)},{prop:"fill",name:"fill",pkg:"bufio",typ:$funcType([],[],false)},{prop:"readErr",name:"readErr",pkg:"bufio",typ:$funcType([],[$error],false)},{prop:"Peek",name:"Peek",pkg:"",typ:$funcType([$Int],[Z,$error],false)},{prop:"Discard",name:"Discard",pkg:"",typ:$funcType([$Int],[$Int,$error],false)},{prop:"Read",name:"Read",pkg:"",typ:$funcType([Z],[$Int,$error],false)},{prop:"ReadByte",name:"ReadByte",pkg:"",typ:$funcType([],[$Uint8,$error],false)},{prop:"UnreadByte",name:"UnreadByte",pkg:"",typ:$funcType([],[$error],false)},{prop:"ReadRune",name:"ReadRune",pkg:"",typ:$funcType([],[$Int32,$Int,$error],false)},{prop:"UnreadRune",name:"UnreadRune",pkg:"",typ:$funcType([],[$error],false)},{prop:"Buffered",name:"Buffered",pkg:"",typ:$funcType([],[$Int],false)},{prop:"ReadSlice",name:"ReadSlice",pkg:"",typ:$funcType([$Uint8],[Z,$error],false)},{prop:"ReadLine",name:"ReadLine",pkg:"",typ:$funcType([],[Z,$Bool,$error],false)},{prop:"collectFragments",name:"collectFragments",pkg:"bufio",typ:$funcType([$Uint8],[AB,Z,$Int,$error],false)},{prop:"ReadBytes",name:"ReadBytes",pkg:"",typ:$funcType([$Uint8],[Z,$error],false)},{prop:"ReadString",name:"ReadString",pkg:"",typ:$funcType([$Uint8],[$String,$error],false)},{prop:"WriteTo",name:"WriteTo",pkg:"",typ:$funcType([C.Writer],[$Int64,$error],false)},{prop:"writeBuf",name:"writeBuf",pkg:"bufio",typ:$funcType([C.Writer],[$Int64,$error],false)}];F.init("bufio",[{prop:"r",name:"r",embedded:false,exported:false,typ:C.Reader,tag:""},{prop:"split",name:"split",embedded:false,exported:false,typ:G,tag:""},{prop:"maxTokenSize",name:"maxTokenSize",embedded:false,exported:false,typ:$Int,tag:""},{prop:"token",name:"token",embedded:false,exported:false,typ:Z,tag:""},{prop:"buf",name:"buf",embedded:false,exported:false,typ:Z,tag:""},{prop:"start",name:"start",embedded:false,exported:false,typ:$Int,tag:""},{prop:"end",name:"end",embedded:false,exported:false,typ:$Int,tag:""},{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""},{prop:"empties",name:"empties",embedded:false,exported:false,typ:$Int,tag:""},{prop:"scanCalled",name:"scanCalled",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"done",name:"done",embedded:false,exported:false,typ:$Bool,tag:""}]);G.init([Z,$Bool],[$Int,Z,$error],false);P.init("bufio",[{prop:"buf",name:"buf",embedded:false,exported:false,typ:Z,tag:""},{prop:"rd",name:"rd",embedded:false,exported:false,typ:C.Reader,tag:""},{prop:"r",name:"r",embedded:false,exported:false,typ:$Int,tag:""},{prop:"w",name:"w",embedded:false,exported:false,typ:$Int,tag:""},{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""},{prop:"lastByte",name:"lastByte",embedded:false,exported:false,typ:$Int,tag:""},{prop:"lastRuneSize",name:"lastRuneSize",embedded:false,exported:false,typ:$Int,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.ErrTooLong=B.New("bufio.Scanner: token too long");$pkg.ErrNegativeAdvance=B.New("bufio.Scanner: SplitFunc returns negative advance count");$pkg.ErrAdvanceTooFar=B.New("bufio.Scanner: SplitFunc returns advance count beyond input");$pkg.ErrBadReadCount=B.New("bufio.Scanner: Read returned impossible count");$pkg.ErrFinalToken=B.New("final token");$pkg.ErrInvalidUnreadByte=B.New("bufio: invalid use of UnreadByte");$pkg.ErrInvalidUnreadRune=B.New("bufio: invalid use of UnreadRune");$pkg.ErrBufferFull=B.New("bufio: buffer full");$pkg.ErrNegativeCount=B.New("bufio: negative count");S=B.New("bufio: reader returned negative count from Read");T=B.New("bufio: writer returned negative count from Write");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/abi"]=(function(){var $pkg={},$init,A,D;A=$packages["internal/goarch"];D=function(){$throwRuntimeError("native function not implemented: internal/abi.FuncPCABI0");};$pkg.FuncPCABI0=D;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/goexperiment"]=(function(){var $pkg={},$init,A;A=$pkg.Flags=$newType(0,$kindStruct,"goexperiment.Flags",true,"internal/goexperiment",true,function(FieldTrack_,PreemptibleLoops_,StaticLockRanking_,Unified_,RegabiWrappers_,RegabiReflect_,RegabiArgs_,PacerRedesign_,HeapMinimum512KiB_){this.$val=this;if(arguments.length===0){this.FieldTrack=false;this.PreemptibleLoops=false;this.StaticLockRanking=false;this.Unified=false;this.RegabiWrappers=false;this.RegabiReflect=false;this.RegabiArgs=false;this.PacerRedesign=false;this.HeapMinimum512KiB=false;return;}this.FieldTrack=FieldTrack_;this.PreemptibleLoops=PreemptibleLoops_;this.StaticLockRanking=StaticLockRanking_;this.Unified=Unified_;this.RegabiWrappers=RegabiWrappers_;this.RegabiReflect=RegabiReflect_;this.RegabiArgs=RegabiArgs_;this.PacerRedesign=PacerRedesign_;this.HeapMinimum512KiB=HeapMinimum512KiB_;});A.init("",[{prop:"FieldTrack",name:"FieldTrack",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"PreemptibleLoops",name:"PreemptibleLoops",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"StaticLockRanking",name:"StaticLockRanking",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"Unified",name:"Unified",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"RegabiWrappers",name:"RegabiWrappers",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"RegabiReflect",name:"RegabiReflect",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"RegabiArgs",name:"RegabiArgs",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"PacerRedesign",name:"PacerRedesign",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"HeapMinimum512KiB",name:"HeapMinimum512KiB",embedded:false,exported:true,typ:$Bool,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/itoa"]=(function(){var $pkg={},$init,C,D,A,B;C=$arrayType($Uint8,20);D=$sliceType($Uint8);A=function(a){var a;if(a<0){return"-"+B(((-a>>>0)));}return B(((a>>>0)));};$pkg.Itoa=A;B=function(a){var a,b,c,d,e;if(a===0){return"0";}b=C.zero();c=19;while(true){if(!(a>=10)){break;}e=(d=a/10,(d===d&&d!==1/0&&d!==-1/0)?d>>>0:$throwRuntimeError("integer divide by zero"));((c<0||c>=b.length)?($throwRuntimeError("index out of range"),undefined):b[c]=((((48+a>>>0)-(e*10>>>0)>>>0)<<24>>>24)));c=c-(1)>>0;a=e;}((c<0||c>=b.length)?($throwRuntimeError("index out of range"),undefined):b[c]=(((48+a>>>0)<<24>>>24)));return($bytesToString($subslice(new D(b),c)));};$pkg.Uitoa=B;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["math/bits"]=(function(){var $pkg={},$init,A,B,C,M,N,D,E,F,H,K,L,O,R,S,AB,AL,AM,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ;A=$pkg._err=$newType(8,$kindString,"bits._err",true,"math/bits",false,null);A.prototype.Error=function(){var e;e=this.$val;return(e);};$ptrType(A).prototype.Error=function(){return new A(this.$get()).Error();};A.prototype.RuntimeError=function(){var e;e=this.$val;};$ptrType(A).prototype.RuntimeError=function(){return new A(this.$get()).RuntimeError();};D=function(e,f){var e,f,g,h,i,j,k,l,m,n,o,p;g=0;h=0;i=(e&65535)>>>0;j=e>>>16>>>0;k=(f&65535)>>>0;l=f>>>16>>>0;m=$imul(i,k)>>>0;n=($imul(j,k)>>>0)+(m>>>16>>>0)>>>0;o=(n&65535)>>>0;p=n>>>16>>>0;o=o+(($imul(i,l)>>>0))>>>0;g=(($imul(j,l)>>>0)+p>>>0)+(o>>>16>>>0)>>>0;h=$imul(e,f)>>>0;return[g,h];};$pkg.Mul32=D;E=function(e,f,g){var e,f,g,h,i;h=0;i=0;h=(e+f>>>0)+g>>>0;i=((((((e&f)>>>0))|((((((e|f)>>>0))&~h)>>>0)))>>>0))>>>31>>>0;return[h,i];};$pkg.Add32=E;F=function(e,f,g){var aa,ab,ac,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;h=0;i=0;if(g===0){$panic(C);}if(g<=e){$panic(B);}j=((K(g)>>>0));g=(k=(j),k<32?(g<>>0;l=g>>>16>>>0;m=(g&65535)>>>0;p=(((n=j,n<32?(e<>>0)|((o=((32-j>>>0)),o<32?(f>>>o):0)>>>0))>>>0;r=(q=j,q<32?(f<>>0;s=r>>>16>>>0;t=(r&65535)>>>0;v=(u=p/l,(u===u&&u!==1/0&&u!==-1/0)?u>>>0:$throwRuntimeError("integer divide by zero"));w=p-($imul(v,l)>>>0)>>>0;while(true){if(!(v>=65536||($imul(v,m)>>>0)>(($imul(65536,w)>>>0)+s>>>0))){break;}v=v-(1)>>>0;w=w+(l)>>>0;if(w>=65536){break;}}x=(($imul(p,65536)>>>0)+s>>>0)-($imul(v,g)>>>0)>>>0;z=(y=x/l,(y===y&&y!==1/0&&y!==-1/0)?y>>>0:$throwRuntimeError("integer divide by zero"));w=x-($imul(z,l)>>>0)>>>0;while(true){if(!(z>=65536||($imul(z,m)>>>0)>(($imul(65536,w)>>>0)+t>>>0))){break;}z=z-(1)>>>0;w=w+(l)>>>0;if(w>=65536){break;}}aa=($imul(v,65536)>>>0)+z>>>0;ab=(ac=j,ac<32?((((($imul(x,65536)>>>0)+t>>>0)-($imul(z,g)>>>0)>>>0))>>>ac):0)>>>0;h=aa;i=ab;return[h,i];};$pkg.Div32=F;H=function(e){var e;return 32-AM(e)>>0;};$pkg.LeadingZeros=H;K=function(e){var e;return 32-AP(e)>>0;};$pkg.LeadingZeros32=K;L=function(e){var e;return 64-AQ(e)>>0;};$pkg.LeadingZeros64=L;O=function(e){var e;if(true){return R(((e>>>0)));}return S((new $Uint64(0,e)));};$pkg.TrailingZeros=O;R=function(e){var e,f;if(e===0){return 32;}return(((f=($imul((((e&(-e>>>0))>>>0)),125613361)>>>0)>>>27>>>0,((f<0||f>=M.length)?($throwRuntimeError("index out of range"),undefined):M[f]))>>0));};$pkg.TrailingZeros32=R;S=function(e){var e,f,g;if((e.$high===0&&e.$low===0)){return 64;}return(((f=$shiftRightUint64($mul64(((g=new $Uint64(-e.$high,-e.$low),new $Uint64(e.$high&g.$high,(e.$low&g.$low)>>>0))),new $Uint64(66559345,3033172745)),58),(($flatten64(f)<0||$flatten64(f)>=N.length)?($throwRuntimeError("index out of range"),undefined):N[$flatten64(f)]))>>0));};$pkg.TrailingZeros64=S;AB=function(e,f){var e,f,g,h,i;g=(((f>>>0))&31)>>>0;return(((h=g,h<32?(e<>>0)|((i=((32-g>>>0)),i<32?(e>>>i):0)>>>0))>>>0;};$pkg.RotateLeft32=AB;AL=function(e){var e,f,g,h,i,j,k,l,m;e=(f=(g=$shiftRightUint64(e,8),new $Uint64(g.$high&16711935,(g.$low&16711935)>>>0)),h=$shiftLeft64(new $Uint64(e.$high&16711935,(e.$low&16711935)>>>0),8),new $Uint64(f.$high|h.$high,(f.$low|h.$low)>>>0));e=(i=(j=$shiftRightUint64(e,16),new $Uint64(j.$high&65535,(j.$low&65535)>>>0)),k=$shiftLeft64(new $Uint64(e.$high&65535,(e.$low&65535)>>>0),16),new $Uint64(i.$high|k.$high,(i.$low|k.$low)>>>0));return(l=$shiftRightUint64(e,32),m=$shiftLeft64(e,32),new $Uint64(l.$high|m.$high,(l.$low|m.$low)>>>0));};$pkg.ReverseBytes64=AL;AM=function(e){var e;if(true){return AP(((e>>>0)));}return AQ((new $Uint64(0,e)));};$pkg.Len=AM;AP=function(e){var e,f,g,h;f=0;if(e>=65536){e=(g=(16),g<32?(e>>>g):0)>>>0;f=16;}if(e>=256){e=(h=(8),h<32?(e>>>h):0)>>>0;f=f+(8)>>0;}f=f+(("\x00\x01\x02\x02\x03\x03\x03\x03\x04\x04\x04\x04\x04\x04\x04\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b".charCodeAt(e)>>0))>>0;return f;};$pkg.Len32=AP;AQ=function(e){var e,f;f=0;if((e.$high>1||(e.$high===1&&e.$low>=0))){e=$shiftRightUint64(e,(32));f=32;}if((e.$high>0||(e.$high===0&&e.$low>=65536))){e=$shiftRightUint64(e,(16));f=f+(16)>>0;}if((e.$high>0||(e.$high===0&&e.$low>=256))){e=$shiftRightUint64(e,(8));f=f+(8)>>0;}f=f+(("\x00\x01\x02\x02\x03\x03\x03\x03\x04\x04\x04\x04\x04\x04\x04\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b".charCodeAt($flatten64(e))>>0))>>0;return f;};$pkg.Len64=AQ;AR=function(e,f,g){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;h=0;i=0;if(true){j=E(((e>>>0)),((f>>>0)),((g>>>0)));k=j[0];l=j[1];m=((k>>>0));n=((l>>>0));h=m;i=n;return[h,i];}o=AS((new $Uint64(0,e)),(new $Uint64(0,f)),(new $Uint64(0,g)));p=o[0];q=o[1];r=((p.$low>>>0));s=((q.$low>>>0));h=r;i=s;return[h,i];};$pkg.Add=AR;AS=function(e,f,g){var e,f,g,h,i,j,k,l,m;h=new $Uint64(0,0);i=new $Uint64(0,0);h=(j=new $Uint64(e.$high+f.$high,e.$low+f.$low),new $Uint64(j.$high+g.$high,j.$low+g.$low));i=$shiftRightUint64(((k=new $Uint64(e.$high&f.$high,(e.$low&f.$low)>>>0),l=(m=new $Uint64(e.$high|f.$high,(e.$low|f.$low)>>>0),new $Uint64(m.$high&~h.$high,(m.$low&~h.$low)>>>0)),new $Uint64(k.$high|l.$high,(k.$low|l.$low)>>>0))),63);return[h,i];};$pkg.Add64=AS;AT=function(e,f,g){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;h=0;i=0;if(true){j=AU(((e>>>0)),((f>>>0)),((g>>>0)));k=j[0];l=j[1];m=((k>>>0));n=((l>>>0));h=m;i=n;return[h,i];}o=AV((new $Uint64(0,e)),(new $Uint64(0,f)),(new $Uint64(0,g)));p=o[0];q=o[1];r=((p.$low>>>0));s=((q.$low>>>0));h=r;i=s;return[h,i];};$pkg.Sub=AT;AU=function(e,f,g){var e,f,g,h,i;h=0;i=0;h=(e-f>>>0)-g>>>0;i=(((((((~e>>>0)&f)>>>0))|((((~(((e^f)>>>0))>>>0)&h)>>>0)))>>>0))>>>31>>>0;return[h,i];};$pkg.Sub32=AU;AV=function(e,f,g){var e,f,g,h,i,j,k,l,m,n,o;h=new $Uint64(0,0);i=new $Uint64(0,0);h=(j=new $Uint64(e.$high-f.$high,e.$low-f.$low),new $Uint64(j.$high-g.$high,j.$low-g.$low));i=$shiftRightUint64(((k=(l=new $Uint64(~e.$high,~e.$low>>>0),new $Uint64(l.$high&f.$high,(l.$low&f.$low)>>>0)),m=(n=(o=new $Uint64(e.$high^f.$high,(e.$low^f.$low)>>>0),new $Uint64(~o.$high,~o.$low>>>0)),new $Uint64(n.$high&h.$high,(n.$low&h.$low)>>>0)),new $Uint64(k.$high|m.$high,(k.$low|m.$low)>>>0))),63);return[h,i];};$pkg.Sub64=AV;AW=function(e,f){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;g=0;h=0;if(true){i=D(((e>>>0)),((f>>>0)));j=i[0];k=i[1];l=((j>>>0));m=((k>>>0));g=l;h=m;return[g,h];}n=AX((new $Uint64(0,e)),(new $Uint64(0,f)));o=n[0];p=n[1];q=((o.$low>>>0));r=((p.$low>>>0));g=q;h=r;return[g,h];};$pkg.Mul=AW;AX=function(e,f){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;g=new $Uint64(0,0);h=new $Uint64(0,0);i=new $Uint64(e.$high&0,(e.$low&4294967295)>>>0);j=$shiftRightUint64(e,32);k=new $Uint64(f.$high&0,(f.$low&4294967295)>>>0);l=$shiftRightUint64(f,32);m=$mul64(i,k);p=(n=$mul64(j,k),o=$shiftRightUint64(m,32),new $Uint64(n.$high+o.$high,n.$low+o.$low));q=new $Uint64(p.$high&0,(p.$low&4294967295)>>>0);r=$shiftRightUint64(p,32);q=(s=$mul64(i,l),new $Uint64(q.$high+s.$high,q.$low+s.$low));g=(t=(u=$mul64(j,l),new $Uint64(u.$high+r.$high,u.$low+r.$low)),v=$shiftRightUint64(q,32),new $Uint64(t.$high+v.$high,t.$low+v.$low));h=$mul64(e,f);return[g,h];};$pkg.Mul64=AX;AY=function(e,f,g){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;h=0;i=0;if(true){j=F(((e>>>0)),((f>>>0)),((g>>>0)));k=j[0];l=j[1];m=((k>>>0));n=((l>>>0));h=m;i=n;return[h,i];}o=AZ((new $Uint64(0,e)),(new $Uint64(0,f)),(new $Uint64(0,g)));p=o[0];q=o[1];r=((p.$low>>>0));s=((q.$low>>>0));h=r;i=s;return[h,i];};$pkg.Div=AY;AZ=function(e,f,g){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;h=new $Uint64(0,0);i=new $Uint64(0,0);if((g.$high===0&&g.$low===0)){$panic(C);}if((g.$high>>0));g=$shiftLeft64(g,(j));k=$shiftRightUint64(g,32);l=new $Uint64(g.$high&0,(g.$low&4294967295)>>>0);o=(m=$shiftLeft64(e,j),n=$shiftRightUint64(f,((64-j>>>0))),new $Uint64(m.$high|n.$high,(m.$low|n.$low)>>>0));p=$shiftLeft64(f,j);q=$shiftRightUint64(p,32);r=new $Uint64(p.$high&0,(p.$low&4294967295)>>>0);s=$div64(o,k,false);u=(t=$mul64(s,k),new $Uint64(o.$high-t.$high,o.$low-t.$low));while(true){if(!((s.$high>1||(s.$high===1&&s.$low>=0))||(v=$mul64(s,l),w=(x=$mul64(new $Uint64(1,0),u),new $Uint64(x.$high+q.$high,x.$low+q.$low)),(v.$high>w.$high||(v.$high===w.$high&&v.$low>w.$low))))){break;}s=(y=new $Uint64(0,1),new $Uint64(s.$high-y.$high,s.$low-y.$low));u=(z=k,new $Uint64(u.$high+z.$high,u.$low+z.$low));if((u.$high>1||(u.$high===1&&u.$low>=0))){break;}}ad=(aa=(ab=$mul64(o,new $Uint64(1,0)),new $Uint64(ab.$high+q.$high,ab.$low+q.$low)),ac=$mul64(s,g),new $Uint64(aa.$high-ac.$high,aa.$low-ac.$low));ae=$div64(ad,k,false);u=(af=$mul64(ae,k),new $Uint64(ad.$high-af.$high,ad.$low-af.$low));while(true){if(!((ae.$high>1||(ae.$high===1&&ae.$low>=0))||(ag=$mul64(ae,l),ah=(ai=$mul64(new $Uint64(1,0),u),new $Uint64(ai.$high+r.$high,ai.$low+r.$low)),(ag.$high>ah.$high||(ag.$high===ah.$high&&ag.$low>ah.$low))))){break;}ae=(aj=new $Uint64(0,1),new $Uint64(ae.$high-aj.$high,ae.$low-aj.$low));u=(ak=k,new $Uint64(u.$high+ak.$high,u.$low+ak.$low));if((u.$high>1||(u.$high===1&&u.$low>=0))){break;}}al=(am=$mul64(s,new $Uint64(1,0)),new $Uint64(am.$high+ae.$high,am.$low+ae.$low));an=$shiftRightUint64(((ao=(ap=$mul64(ad,new $Uint64(1,0)),new $Uint64(ap.$high+r.$high,ap.$low+r.$low)),aq=$mul64(ae,g),new $Uint64(ao.$high-aq.$high,ao.$low-aq.$low))),j);h=al;i=an;return[h,i];};$pkg.Div64=AZ;A.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"RuntimeError",name:"RuntimeError",pkg:"",typ:$funcType([],[],false)}];$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:B=new A("runtime error: integer overflow");C=new A("runtime error: integer divide by zero");M=$toNativeArray($kindUint8,[0,1,28,2,29,14,24,3,30,22,20,15,25,17,4,8,31,27,13,23,21,19,16,7,26,12,18,6,11,5,10,9]);N=$toNativeArray($kindUint8,[0,1,56,2,57,49,28,3,61,58,42,50,38,29,17,4,62,47,59,36,45,43,51,22,53,39,33,30,24,18,12,5,63,55,48,27,60,41,37,16,46,35,44,21,52,32,23,11,54,26,40,15,34,20,31,10,25,14,19,9,13,8,7,6]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["math"]=(function(){var $pkg={},$init,B,A,IT,IU,IV,IW,DN,DO,DP,DQ,DR,FJ,BJ,BU,EB,EG,EK,EM,EN,EO,EP,EQ,ET,EY,EZ,FB,FF,FK,FL,FM,FN,FO,FV,HC,HM;B=$packages["github.com/gopherjs/gopherjs/js"];A=$packages["math/bits"];IT=$arrayType($Uint32,2);IU=$arrayType($Float32,2);IV=$arrayType($Float64,1);IW=$structType("math",[{prop:"uint32array",name:"uint32array",embedded:false,exported:false,typ:IT,tag:""},{prop:"float32array",name:"float32array",embedded:false,exported:false,typ:IU,tag:""},{prop:"float64array",name:"float64array",embedded:false,exported:false,typ:IV,tag:""}]);BJ=function(av){var av,aw,ax,ay;aw=EK(av);ax=aw[0];ay=aw[1];if(ax===0.5){return((ay-1>>0));}return EQ(ax)*1.4426950408889634+(ay);};BU=function(av,aw){var av,aw,ax,ay,az,ba,bb,bc;if((av===0)){return av;}else if(EN(av,0)||EO(av)){return av;}ax=HC(av);av=ax[0];ay=ax[1];aw=aw+(ay)>>0;az=FN(av);aw=aw+((((($shiftRightUint64(az,52).$low>>0))&2047)-1023>>0))>>0;if(aw<-1075){return EB(0,av);}if(aw>1023){if(av<0){return EM(-1);}return EM(1);}ba=1;if(aw<-1022){aw=aw+(53)>>0;ba=1.1102230246251565e-16;}az=(bb=new $Uint64(2146435072,0),new $Uint64(az.$high&~bb.$high,(az.$low&~bb.$low)>>>0));az=(bc=$shiftLeft64((new $Uint64(0,(aw+1023>>0))),52),new $Uint64(az.$high|bc.$high,(az.$low|bc.$low)>>>0));return ba*FO(az);};EB=function(av,aw){var av,aw;if(!((av<0||(1/av===DQ))===(aw<0||(1/aw===DQ)))){return-av;}return av;};$pkg.Copysign=EB;EG=function(av){var av;return $parseFloat(DN.exp(av));};$pkg.Exp=EG;EK=function(av){var av,aw,ax,ay;aw=0;ax=0;ay=FV(av);aw=ay[0];ax=ay[1];return[aw,ax];};$pkg.Frexp=EK;EM=function(av){var av;if(av>=0){return DP;}else{return DQ;}};$pkg.Inf=EM;EN=function(av,aw){var av,aw;if(av===DP){return aw>=0;}if(av===DQ){return aw<=0;}return false;};$pkg.IsInf=EN;EO=function(av){var av,aw;aw=false;aw=!((av===av));return aw;};$pkg.IsNaN=EO;EP=function(av,aw){var av,aw;if(-1024>>0));FJ.uint32array[1]=(($shiftRightUint64(av,32).$low>>>0));return FJ.float64array[0];};$pkg.Float64frombits=FO;FV=function(av){var av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg;aw=0;ax=0;if((av===0)){ay=av;az=0;aw=ay;ax=az;return[aw,ax];}else if(EN(av,0)||EO(av)){ba=av;bb=0;aw=ba;ax=bb;return[aw,ax];}bc=HC(av);av=bc[0];ax=bc[1];bd=FN(av);ax=ax+((((((be=$shiftRightUint64(bd,52),new $Uint64(be.$high&0,(be.$low&2047)>>>0)).$low>>0))-1023>>0)+1>>0))>>0;bd=(bf=new $Uint64(2146435072,0),new $Uint64(bd.$high&~bf.$high,(bd.$low&~bf.$low)>>>0));bd=(bg=new $Uint64(1071644672,0),new $Uint64(bd.$high|bg.$high,(bd.$low|bg.$low)>>>0));aw=FO(bd);return[aw,ax];};HC=function(av){var av,aw,ax,ay,az,ba,bb;aw=0;ax=0;if(HM(av)<2.2250738585072014e-308){ay=av*4.503599627370496e+15;az=-52;aw=ay;ax=az;return[aw,ax];}ba=av;bb=0;aw=ba;ax=bb;return[aw,ax];};HM=function(av){var av,aw;return FO((aw=FN(av),new $Uint64(aw.$high&~2147483648,(aw.$low&~0)>>>0)));};$pkg.Abs=HM;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=B.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}FJ=new IW.ptr(IT.zero(),IU.zero(),IV.zero());DN=$global.Math;DO=0;DP=1/DO;DQ=-1/DO;DR=$parseFloat($NaN);FK();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["strconv"]=(function(){var $pkg={},$init,F,C,E,D,B,A,BL,BU,CE,CI,CQ,DT,DU,DV,DW,DX,DY,DZ,EA,EB,EC,ED,EE,EF,EG,EH,EI,AQ,AR,AS,AT,AU,AZ,BM,DR,BN,DS,CD,CJ,CY,DC,DD,DE,G,H,J,K,L,M,N,O,P,T,V,Y,Z,AA,AC,AD,AE,AF,AG,AI,AJ,AK,AL,AM,AN,AO,AP,AV,AW,AX,AY,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BO,BP,BQ,BR,BS,BT,BV,BW,BX,BY,BZ,CA,CB,CC,CF,CG,CH,CK,CL,CM,CO,CP,CR,CS,CT,CU,CV,CW,CX,CZ,DA,DB,DF,DG,DH,DI,DJ,DK,DL,DP;F=$packages["errors"];C=$packages["github.com/gopherjs/gopherjs/js"];E=$packages["internal/bytealg"];D=$packages["math"];B=$packages["math/bits"];A=$packages["unicode/utf8"];BL=$pkg.floatInfo=$newType(0,$kindStruct,"strconv.floatInfo",true,"strconv",false,function(mantbits_,expbits_,bias_){this.$val=this;if(arguments.length===0){this.mantbits=0;this.expbits=0;this.bias=0;return;}this.mantbits=mantbits_;this.expbits=expbits_;this.bias=bias_;});BU=$pkg.decimalSlice=$newType(0,$kindStruct,"strconv.decimalSlice",true,"strconv",false,function(d_,nd_,dp_,neg_){this.$val=this;if(arguments.length===0){this.d=EA.nil;this.nd=0;this.dp=0;this.neg=false;return;}this.d=d_;this.nd=nd_;this.dp=dp_;this.neg=neg_;});CE=$pkg.decimal=$newType(0,$kindStruct,"strconv.decimal",true,"strconv",false,function(d_,nd_,dp_,neg_,trunc_){this.$val=this;if(arguments.length===0){this.d=EG.zero();this.nd=0;this.dp=0;this.neg=false;this.trunc=false;return;}this.d=d_;this.nd=nd_;this.dp=dp_;this.neg=neg_;this.trunc=trunc_;});CI=$pkg.leftCheat=$newType(0,$kindStruct,"strconv.leftCheat",true,"strconv",false,function(delta_,cutoff_){this.$val=this;if(arguments.length===0){this.delta=0;this.cutoff="";return;}this.delta=delta_;this.cutoff=cutoff_;});CQ=$pkg.NumError=$newType(0,$kindStruct,"strconv.NumError",true,"strconv",true,function(Func_,Num_,Err_){this.$val=this;if(arguments.length===0){this.Func="";this.Num="";this.Err=$ifaceNil;return;}this.Func=Func_;this.Num=Num_;this.Err=Err_;});DT=$sliceType($Uint16);DU=$sliceType($Uint32);DV=$arrayType($Uint64,2);DW=$sliceType(CI);DX=$sliceType($Int);DY=$sliceType($Float64);DZ=$sliceType($Float32);EA=$sliceType($Uint8);EB=$arrayType($Uint8,4);EC=$arrayType($Uint8,65);ED=$ptrType(BL);EE=$arrayType($Uint8,32);EF=$arrayType($Uint8,24);EG=$arrayType($Uint8,800);EH=$ptrType(CQ);EI=$ptrType(CE);G=function(c,d){var c,d;return!((CO(c,d)===-1));};H=function(c,d,e,f){var c,d,e,f,g;return($bytesToString(J($makeSlice(EA,0,(g=($imul(3,c.length))/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"))),c,d,e,f)));};J=function(c,d,e,f,g){var c,d,e,f,g,h,i,j,k;if((c.$capacity-c.$length>>0)>0)+d.length>>0)+1>>0));$copySlice(h,c);c=h;}c=$append(c,e);i=0;while(true){if(!(d.length>0)){break;}j=((d.charCodeAt(0)>>0));i=1;if(j>=128){k=A.DecodeRuneInString(d);j=k[0];i=k[1];}if((i===1)&&(j===65533)){c=$appendSlice(c,"\\x");c=$append(c,"0123456789abcdef".charCodeAt((d.charCodeAt(0)>>>4<<24>>>24)));c=$append(c,"0123456789abcdef".charCodeAt(((d.charCodeAt(0)&15)>>>0)));d=$substring(d,i);continue;}c=L(c,j,e,f,g);d=$substring(d,i);}c=$append(c,e);return c;};K=function(c,d,e,f,g){var c,d,e,f,g;c=$append(c,e);if(!A.ValidRune(d)){d=65533;}c=L(c,d,e,f,g);c=$append(c,e);return c;};L=function(c,d,e,f,g){var c,d,e,f,g,h,i,j,k,l;h=EB.zero();if((d===((e>>0)))||(d===92)){c=$append(c,92);c=$append(c,((d<<24>>>24)));return c;}if(f){if(d<128&&AG(d)){c=$append(c,((d<<24>>>24)));return c;}}else if(AG(d)||g&&AI(d)){i=A.EncodeRune(new EA(h),d);c=$appendSlice(c,$subslice(new EA(h),0,i));return c;}j=d;if(j===(7)){c=$appendSlice(c,"\\a");}else if(j===(8)){c=$appendSlice(c,"\\b");}else if(j===(12)){c=$appendSlice(c,"\\f");}else if(j===(10)){c=$appendSlice(c,"\\n");}else if(j===(13)){c=$appendSlice(c,"\\r");}else if(j===(9)){c=$appendSlice(c,"\\t");}else if(j===(11)){c=$appendSlice(c,"\\v");}else{if(d<32){c=$appendSlice(c,"\\x");c=$append(c,"0123456789abcdef".charCodeAt((((d<<24>>>24))>>>4<<24>>>24)));c=$append(c,"0123456789abcdef".charCodeAt(((((d<<24>>>24))&15)>>>0)));}else if(!A.ValidRune(d)){d=65533;c=$appendSlice(c,"\\u");k=12;while(true){if(!(k>=0)){break;}c=$append(c,"0123456789abcdef".charCodeAt((((d>>$min(((k>>>0)),31))>>0)&15)));k=k-(4)>>0;}}else if(d<65536){c=$appendSlice(c,"\\u");k=12;while(true){if(!(k>=0)){break;}c=$append(c,"0123456789abcdef".charCodeAt((((d>>$min(((k>>>0)),31))>>0)&15)));k=k-(4)>>0;}}else{c=$appendSlice(c,"\\U");l=28;while(true){if(!(l>=0)){break;}c=$append(c,"0123456789abcdef".charCodeAt((((d>>$min(((l>>>0)),31))>>0)&15)));l=l-(4)>>0;}}}return c;};M=function(c){var c;return H(c,34,false,false);};$pkg.Quote=M;N=function(c,d){var c,d;return J(c,d,34,false,false);};$pkg.AppendQuote=N;O=function(c){var c;return H(c,34,true,false);};$pkg.QuoteToASCII=O;P=function(c,d){var c,d;return J(c,d,34,true,false);};$pkg.AppendQuoteToASCII=P;T=function(c,d){var c,d;return K(c,d,39,false,false);};$pkg.AppendQuoteRune=T;V=function(c,d){var c,d;return K(c,d,39,true,false);};$pkg.AppendQuoteRuneToASCII=V;Y=function(c){var c,d,e,f;while(true){if(!(c.length>0)){break;}d=A.DecodeRuneInString(c);e=d[0];f=d[1];c=$substring(c,f);if(f>1){if(e===65279){return false;}continue;}if(e===65533){return false;}if((e<32&&!((e===9)))||(e===96)||(e===127)){return false;}}return true;};$pkg.CanBackquote=Y;Z=function(c){var c,d,e,f,g,h,i,j,k,l;d=0;e=false;f=((c>>0));if(48<=f&&f<=57){g=f-48>>0;h=true;d=g;e=h;return[d,e];}else if(97<=f&&f<=102){i=(f-97>>0)+10>>0;j=true;d=i;e=j;return[d,e];}else if(65<=f&&f<=70){k=(f-65>>0)+10>>0;l=true;d=k;e=l;return[d,e];}return[d,e];};AA=function(c,d){var aa,ab,ac,ad,ae,af,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;e=0;f=false;g="";h=$ifaceNil;if(c.length===0){h=$pkg.ErrSyntax;return[e,f,g,h];}i=c.charCodeAt(0);if((i===d)&&((d===39)||(d===34))){h=$pkg.ErrSyntax;return[e,f,g,h];}else if(i>=128){j=A.DecodeRuneInString(c);k=j[0];l=j[1];m=k;n=true;o=$substring(c,l);p=$ifaceNil;e=m;f=n;g=o;h=p;return[e,f,g,h];}else if(!((i===92))){q=((c.charCodeAt(0)>>0));r=false;s=$substring(c,1);t=$ifaceNil;e=q;f=r;g=s;h=t;return[e,f,g,h];}if(c.length<=1){h=$pkg.ErrSyntax;return[e,f,g,h];}u=c.charCodeAt(1);c=$substring(c,2);switch(0){default:v=u;if(v===(97)){e=7;}else if(v===(98)){e=8;}else if(v===(102)){e=12;}else if(v===(110)){e=10;}else if(v===(114)){e=13;}else if(v===(116)){e=9;}else if(v===(118)){e=11;}else if((v===(120))||(v===(117))||(v===(85))){w=0;x=u;if(x===(120)){w=2;}else if(x===(117)){w=4;}else if(x===(85)){w=8;}y=0;if(c.length>0)|ab;z=z+(1)>>0;}c=$substring(c,w);if(u===120){e=y;break;}if(!A.ValidRune(y)){h=$pkg.ErrSyntax;return[e,f,g,h];}e=y;f=true;}else if((v===(48))||(v===(49))||(v===(50))||(v===(51))||(v===(52))||(v===(53))||(v===(54))||(v===(55))){ad=((u>>0))-48>>0;if(c.length<2){h=$pkg.ErrSyntax;return[e,f,g,h];}ae=0;while(true){if(!(ae<2)){break;}af=((c.charCodeAt(ae)>>0))-48>>0;if(af<0||af>7){h=$pkg.ErrSyntax;return[e,f,g,h];}ad=((ad<<3>>0))|af;ae=ae+(1)>>0;}c=$substring(c,2);if(ad>255){h=$pkg.ErrSyntax;return[e,f,g,h];}e=ad;}else if(v===(92)){e=92;}else if((v===(39))||(v===(34))){if(!((u===d))){h=$pkg.ErrSyntax;return[e,f,g,h];}e=((u>>0));}else{h=$pkg.ErrSyntax;return[e,f,g,h];}}g=c;return[e,f,g,h];};$pkg.UnquoteChar=AA;AC=function(c){var c,d,e,f,g;d=AD(c,true);e=d[0];f=d[1];g=d[2];if(f.length>0){return["",$pkg.ErrSyntax];}return[e,g];};$pkg.Unquote=AC;AD=function(c,d){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;e="";f="";g=$ifaceNil;if(c.length<2){h="";i=c;j=$pkg.ErrSyntax;e=h;f=i;g=j;return[e,f,g];}k=c.charCodeAt(0);l=CO($substring(c,1),k);if(l<0){m="";n=c;o=$pkg.ErrSyntax;e=m;f=n;g=o;return[e,f,g];}l=l+(2)>>0;p=k;if(p===(96)){if(!d){e=$substring(c,0,l);}else if(!G($substring(c,0,l),13)){e=$substring(c,1,(l-1>>0));}else{q=$makeSlice(EA,0,(((l-1>>0)-1>>0)-1>>0));r=1;while(true){if(!(r<(l-1>>0))){break;}if(!((c.charCodeAt(r)===13))){q=$append(q,c.charCodeAt(r));}r=r+(1)>>0;}e=($bytesToString(q));}s=e;t=$substring(c,l);u=$ifaceNil;e=s;f=t;g=u;return[e,f,g];}else if((p===(34))||(p===(39))){if(!G($substring(c,0,l),92)&&!G($substring(c,0,l),10)){v=false;w=k;if(w===(34)){v=A.ValidString($substring(c,1,(l-1>>0)));}else if(w===(39)){x=A.DecodeRuneInString($substring(c,1,(l-1>>0)));y=x[0];z=x[1];v=(((1+z>>0)+1>>0)===l)&&(!((y===65533))||!((z===1)));}if(v){e=$substring(c,0,l);if(d){e=$substring(e,1,(l-1>>0));}aa=e;ab=$substring(c,l);ac=$ifaceNil;e=aa;f=ab;g=ac;return[e,f,g];}}ad=EA.nil;ae=c;c=$substring(c,1);if(d){ad=$makeSlice(EA,0,(af=($imul(3,l))/2,(af===af&&af!==1/0&&af!==-1/0)?af>>0:$throwRuntimeError("integer divide by zero")));}while(true){if(!(c.length>0&&!((c.charCodeAt(0)===k)))){break;}ag=AA(c,k);ah=ag[0];ai=ag[1];aj=ag[2];ak=ag[3];if((c.charCodeAt(0)===10)||!($interfaceIsEqual(ak,$ifaceNil))){al="";am=ae;an=$pkg.ErrSyntax;e=al;f=am;g=an;return[e,f,g];}c=aj;if(d){if(ah<128||!ai){ad=$append(ad,((ah<<24>>>24)));}else{ao=EB.zero();ap=A.EncodeRune(new EA(ao),ah);ad=$appendSlice(ad,$subslice(new EA(ao),0,ap));}}if(k===39){break;}}if(!(c.length>0&&(c.charCodeAt(0)===k))){aq="";ar=ae;as=$pkg.ErrSyntax;e=aq;f=ar;g=as;return[e,f,g];}c=$substring(c,1);if(d){at=($bytesToString(ad));au=c;av=$ifaceNil;e=at;f=au;g=av;return[e,f,g];}aw=$substring(ae,0,(ae.length-c.length>>0));ax=c;ay=$ifaceNil;e=aw;f=ax;g=ay;return[e,f,g];}else{az="";ba=c;bb=$pkg.ErrSyntax;e=az;f=ba;g=bb;return[e,f,g];}};AE=function(c,d){var c,d,e,f,g,h,i;e=0;f=c.$length;g=e;h=f;while(true){if(!(g>0))>>1>>0)>>0;if(((i<0||i>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i])>0;}else{h=i;}}return g;};AF=function(c,d){var c,d,e,f,g,h,i;e=0;f=c.$length;g=e;h=f;while(true){if(!(g>0))>>1>>0)>>0;if(((i<0||i>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i])>0;}else{h=i;}}return g;};AG=function(c){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(c<=255){if(32<=c&&c<=126){return true;}if(161<=c&&c<=255){return!((c===173));}return false;}if(0<=c&&c<65536){d=((c<<16>>>16));e=AQ;f=AR;g=d;h=e;i=f;j=AE(h,g);if(j>=h.$length||g<(k=(j&~1)>>0,((k<0||k>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+k]))||(l=j|1,((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]))=i.$length||!((((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m])===g));}n=((c>>>0));o=AS;p=AT;q=n;r=o;s=p;t=AF(r,q);if(t>=r.$length||q<(u=(t&~1)>>0,((u<0||u>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+u]))||(v=t|1,((v<0||v>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+v]))=131072){return true;}c=c-(65536)>>0;w=AE(s,((c<<16>>>16)));return w>=s.$length||!((((w<0||w>=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+w])===((c<<16>>>16))));};$pkg.IsPrint=AG;AI=function(c){var c,d,e;if(c>65535){return false;}d=((c<<16>>>16));e=AE(AU,d);return e=AU.$length)?($throwRuntimeError("index out of range"),undefined):AU.$array[AU.$offset+e]));};AJ=function(c,d){var c,d,e,f;if(true&&(c.$high<0||(c.$high===0&&c.$low<100))&&(d===10)){return AN(((c.$low>>0)));}e=AO(EA.nil,c,d,false,false);f=e[1];return f;};$pkg.FormatUint=AJ;AK=function(c,d){var c,d,e,f;if(true&&(0>31)*4294967296))>>0)));}e=AO(EA.nil,(new $Uint64(c.$high,c.$low)),d,(c.$high<0||(c.$high===0&&c.$low<0)),false);f=e[1];return f;};$pkg.FormatInt=AK;AL=function(c,d,e){var c,d,e,f;if(true&&(0>31)*4294967296))>>0))));}f=AO(c,(new $Uint64(d.$high,d.$low)),e,(d.$high<0||(d.$high===0&&d.$low<0)),true);c=f[0];return c;};$pkg.AppendInt=AL;AM=function(c,d,e){var c,d,e,f;if(true&&(d.$high<0||(d.$high===0&&d.$low<100))&&(e===10)){return $appendSlice(c,AN(((d.$low>>0))));}f=AO(c,d,e,false,true);c=f[0];return c;};$pkg.AppendUint=AM;AN=function(c){var c;if(c<10){return $substring("0123456789abcdefghijklmnopqrstuvwxyz",c,(c+1>>0));}return $substring("00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899",($imul(c,2)),(($imul(c,2))+2>>0));};AO=function(c,d,e,f,g){var aa,ab,ac,ad,ae,af,ag,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;h=EA.nil;i="";if(e<2||e>36){$panic(new $String("strconv: illegal AppendInt/FormatInt base"));}j=EC.zero();k=65;if(f){d=new $Uint64(-d.$high,-d.$low);}if(e===10){if(true){while(true){if(!((d.$high>0||(d.$high===0&&d.$low>=1000000000)))){break;}l=$div64(d,new $Uint64(0,1000000000),false);n=(((m=$mul64(l,new $Uint64(0,1000000000)),new $Uint64(d.$high-m.$high,d.$low-m.$low)).$low>>>0));o=4;while(true){if(!(o>0)){break;}q=(p=n%100,p===p?p:$throwRuntimeError("integer divide by zero"))*2>>>0;n=(r=n/(100),(r===r&&r!==1/0&&r!==-1/0)?r>>>0:$throwRuntimeError("integer divide by zero"));k=k-(2)>>0;(s=k+1>>0,((s<0||s>=j.length)?($throwRuntimeError("index out of range"),undefined):j[s]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((q+1>>>0))));(t=k+0>>0,((t<0||t>=j.length)?($throwRuntimeError("index out of range"),undefined):j[t]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((q+0>>>0))));o=o-(1)>>0;}k=k-(1)>>0;((k<0||k>=j.length)?($throwRuntimeError("index out of range"),undefined):j[k]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(((n*2>>>0)+1>>>0)));d=l;}}u=((d.$low>>>0));while(true){if(!(u>=100)){break;}w=(v=u%100,v===v?v:$throwRuntimeError("integer divide by zero"))*2>>>0;u=(x=u/(100),(x===x&&x!==1/0&&x!==-1/0)?x>>>0:$throwRuntimeError("integer divide by zero"));k=k-(2)>>0;(y=k+1>>0,((y<0||y>=j.length)?($throwRuntimeError("index out of range"),undefined):j[y]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((w+1>>>0))));(z=k+0>>0,((z<0||z>=j.length)?($throwRuntimeError("index out of range"),undefined):j[z]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((w+0>>>0))));}aa=u*2>>>0;k=k-(1)>>0;((k<0||k>=j.length)?($throwRuntimeError("index out of range"),undefined):j[k]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((aa+1>>>0)));if(u>=10){k=k-(1)>>0;((k<0||k>=j.length)?($throwRuntimeError("index out of range"),undefined):j[k]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(aa));}}else if(AP(e)){ab=(((B.TrailingZeros(((e>>>0)))>>>0))&7)>>>0;ac=(new $Uint64(0,e));ad=((e>>>0))-1>>>0;while(true){if(!((d.$high>ac.$high||(d.$high===ac.$high&&d.$low>=ac.$low)))){break;}k=k-(1)>>0;((k<0||k>=j.length)?($throwRuntimeError("index out of range"),undefined):j[k]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((((d.$low>>>0))&ad)>>>0)));d=$shiftRightUint64(d,(ab));}k=k-(1)>>0;((k<0||k>=j.length)?($throwRuntimeError("index out of range"),undefined):j[k]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((d.$low>>>0))));}else{ae=(new $Uint64(0,e));while(true){if(!((d.$high>ae.$high||(d.$high===ae.$high&&d.$low>=ae.$low)))){break;}k=k-(1)>>0;af=$div64(d,ae,false);((k<0||k>=j.length)?($throwRuntimeError("index out of range"),undefined):j[k]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((((ag=$mul64(af,ae),new $Uint64(d.$high-ag.$high,d.$low-ag.$low)).$low>>>0))));d=af;}k=k-(1)>>0;((k<0||k>=j.length)?($throwRuntimeError("index out of range"),undefined):j[k]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((d.$low>>>0))));}if(f){k=k-(1)>>0;((k<0||k>=j.length)?($throwRuntimeError("index out of range"),undefined):j[k]=45);}if(g){h=$appendSlice(c,$subslice(new EA(j),k));return[h,i];}i=($bytesToString($subslice(new EA(j),k)));return[h,i];};AP=function(c){var c;return(c&((c-1>>0)))===0;};AV=function(c){var c;return $internalize(c.toString(),$String);};$pkg.Itoa=AV;AW=function(c){var c,d,e,f,g;if(c.length===0){return[0,CR("Atoi",c)];}d=0;while(true){if(!(d57){if(!((e===43))&&!((e===45))){return[0,CR("Atoi",c)];}}d=d+(1)>>0;}f=$global.Number($externalize(c,$String),10);if(!!!($global.isFinite(f))){return[0,CR("Atoi",c)];}g=$parseFloat(f);if(g>2.147483647e+09){return[2147483647,CS("Atoi",c)];}else if(g<-2.147483648e+09){return[-2147483648,CS("Atoi",c)];}return[$parseInt(f)>>0,$ifaceNil];};$pkg.Atoi=AW;AX=function(c,d,e,f){var aa,ab,ac,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;if(f<0){$panic(new $String("ryuFtoaFixed32 called with negative prec"));}if(f>9){$panic(new $String("ryuFtoaFixed32 called with prec > 9"));}if(d===0){g=0;h=0;c.nd=g;c.dp=h;return;}i=e;j=B.Len32(d);if(j<25){d=(k=((((25-j>>0)>>>0))),k<32?(d<>>0;i=i+(((j)-25>>0))>>0;}l=(-BC(i+24>>0)+f>>0)-1>>0;m=l<=27&&l>=0;n=BH(d,i,l);o=n[0];p=n[1];q=n[2];if(p>=0){$panic(new $String("not enough significant bits after mult64bitPow10"));}if(l<0&&l>=-10&&BJ((new $Uint64(0,d)),-l)){m=true;q=true;}r=((-p>>>0));t=((((s=r,s<32?(1<>>0)-1>>>0));u=(v=r,v<32?(o>>>v):0)>>>0;w=(o&t)>>>0;o=u;x=w;y=false;if(m){y=x>((z=((r-1>>>0)),z<32?(1<>>0)||((x===((aa=((r-1>>>0)),aa<32?(1<>>0))&&!q)||((x===((ab=((r-1>>>0)),ab<32?(1<>>0))&&q&&(((o&1)>>>0)===1));}else{y=((ac=((r-1>>>0)),ac<32?(x>>>ac):0)>>>0)===1;}if(!((x===0))){q=false;}BA(c,(new $Uint64(0,o)),!q,y,f);c.dp=c.dp-(l)>>0;};AY=function(c,d,e,f){var aa,ab,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;if(f>18){$panic(new $String("ryuFtoaFixed64 called with prec > 18"));}if((d.$high===0&&d.$low===0)){g=0;h=0;c.nd=g;c.dp=h;return;}i=e;j=B.Len64(d);if(j<55){d=$shiftLeft64(d,(((55-j>>0)>>>0)));i=i+(((j)-55>>0))>>0;}k=(-BC(i+54>>0)+f>>0)-1>>0;l=k<=55&&k>=0;m=BI(d,i,k);n=m[0];o=m[1];p=m[2];if(o>=0){$panic(new $String("not enough significant bits after mult128bitPow10"));}if(k<0&&k>=-22&&BJ(d,-k)){l=true;p=true;}q=((-o>>>0));s=((r=$shiftLeft64(new $Uint64(0,1),q),new $Uint64(r.$high-0,r.$low-1)));t=$shiftRightUint64(n,q);u=new $Uint64(n.$high&s.$high,(n.$low&s.$low)>>>0);n=t;v=u;w=false;if(l){w=(x=$shiftLeft64(new $Uint64(0,1),((q-1>>>0))),(v.$high>x.$high||(v.$high===x.$high&&v.$low>x.$low)))||((y=$shiftLeft64(new $Uint64(0,1),((q-1>>>0))),(v.$high===y.$high&&v.$low===y.$low))&&!p)||((z=$shiftLeft64(new $Uint64(0,1),((q-1>>>0))),(v.$high===z.$high&&v.$low===z.$low))&&p&&(aa=new $Uint64(n.$high&0,(n.$low&1)>>>0),(aa.$high===0&&aa.$low===1)));}else{w=(ab=$shiftRightUint64(v,((q-1>>>0))),(ab.$high===0&&ab.$low===1));}if(!((v.$high===0&&v.$low===0))){p=false;}BA(c,n,!p,w,f);c.dp=c.dp-(k)>>0;};BA=function(c,d,e,f,g){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;h=((g<0||g>=AZ.length)?($throwRuntimeError("index out of range"),undefined):AZ[g]);i=0;while(true){if(!((d.$high>h.$high||(d.$high===h.$high&&d.$low>=h.$low)))){break;}j=$div64(d,new $Uint64(0,10),false);k=$div64(d,new $Uint64(0,10),true);l=j;m=k;d=l;i=i+(1)>>0;if((m.$high>0||(m.$high===0&&m.$low>5))){f=true;}else if((m.$high<0||(m.$high===0&&m.$low<5))){f=false;}else{f=e||(n=new $Uint64(d.$high&0,(d.$low&1)>>>0),(n.$high===0&&n.$low===1));}if(!((m.$high===0&&m.$low===0))){e=true;}}if(f){d=(o=new $Uint64(0,1),new $Uint64(d.$high+o.$high,d.$low+o.$low));}if((d.$high>h.$high||(d.$high===h.$high&&d.$low>=h.$low))){d=$div64(d,(new $Uint64(0,10)),false);i=i+(1)>>0;}p=((g>>>0));c.nd=(g);q=d;while(true){if(!((q.$high>0||(q.$high===0&&q.$low>=100)))){break;}r=new $Uint64(0,0);s=new $Uint64(0,0);t=r;u=s;if((v=$shiftRightUint64(q,32),(v.$high===0&&v.$low===0))){w=(new $Uint64(0,(x=((q.$low>>>0))/100,(x===x&&x!==1/0&&x!==-1/0)?x>>>0:$throwRuntimeError("integer divide by zero"))));y=(new $Uint64(0,(z=((q.$low>>>0))%100,z===z?z:$throwRuntimeError("integer divide by zero"))));t=w;u=y;}else{aa=$div64(q,new $Uint64(0,100),false);ab=$div64(q,new $Uint64(0,100),true);t=aa;u=ab;}p=p-(2)>>>0;(ad=c.d,ae=p+1>>>0,((ae<0||ae>=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ae]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt($flatten64((ac=$mul64(new $Uint64(0,2),u),new $Uint64(ac.$high+0,ac.$low+1))))));(ag=c.d,ah=p+0>>>0,((ah<0||ah>=ag.$length)?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+ah]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt($flatten64((af=$mul64(new $Uint64(0,2),u),new $Uint64(af.$high+0,af.$low+0))))));q=t;}if((q.$high>0||(q.$high===0&&q.$low>0))){p=p-(1)>>>0;(aj=c.d,((p<0||p>=aj.$length)?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+p]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt($flatten64((ai=$mul64(new $Uint64(0,2),q),new $Uint64(ai.$high+0,ai.$low+1))))));}if((q.$high>0||(q.$high===0&&q.$low>=10))){p=p-(1)>>>0;(ak=c.d,((p<0||p>=ak.$length)?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+p]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt($flatten64($mul64(new $Uint64(0,2),q)))));}while(true){if(!((al=c.d,am=c.nd-1>>0,((am<0||am>=al.$length)?($throwRuntimeError("index out of range"),undefined):al.$array[al.$offset+am]))===48)){break;}c.nd=c.nd-(1)>>0;i=i+(1)>>0;}c.dp=c.nd+i>>0;};BB=function(c,d,e,f){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;if((d.$high===0&&d.$low===0)){g=0;h=0;c.nd=g;c.dp=h;return;}if(e<=0&&B.TrailingZeros64(d)>=-e){d=$shiftRightUint64(d,(((-e>>>0))));BF(c,d,d,d,true,false);return;}i=BE(d,e,f);j=i[0];k=i[1];l=i[2];m=i[3];if(m===0){BF(c,j,k,l,true,false);return;}n=BC(-m)+1>>0;o=new $Uint64(0,0);p=new $Uint64(0,0);q=new $Uint64(0,0);r=o;s=p;t=q;u=false;v=false;w=false;x=u;y=v;z=w;if(f===BM){aa=0;ab=0;ac=0;ad=aa;ae=ab;af=ac;ag=BH(((j.$low>>>0)),m,n);ad=ag[0];x=ag[2];ah=BH(((k.$low>>>0)),m,n);ae=ah[0];y=ah[2];ai=BH(((l.$low>>>0)),m,n);af=ai[0];m=ai[1];z=ai[2];aj=(new $Uint64(0,ad));ak=(new $Uint64(0,ae));al=(new $Uint64(0,af));r=aj;s=ak;t=al;}else{am=BI(j,m,n);r=am[0];x=am[2];an=BI(k,m,n);s=an[0];y=an[2];ao=BI(l,m,n);t=ao[0];m=ao[1];z=ao[2];}if(m>=0){$panic(new $String("not enough significant bits after mult128bitPow10"));}if(n>55){ap=false;aq=false;ar=false;x=ap;y=aq;z=ar;}if(n<0&&n>=-24){if(BJ(j,-n)){x=true;}if(BJ(k,-n)){y=true;}if(BJ(l,-n)){z=true;}}as=((-m>>>0));au=((at=$shiftLeft64(new $Uint64(0,1),as),new $Uint64(at.$high-0,at.$low-1)));av=$shiftRightUint64(r,as);aw=new $Uint64(r.$high&au.$high,(r.$low&au.$low)>>>0);r=av;ax=aw;ay=$shiftRightUint64(s,as);az=new $Uint64(s.$high&au.$high,(s.$low&au.$low)>>>0);s=ay;ba=az;bb=$shiftRightUint64(t,as);bc=new $Uint64(t.$high&au.$high,(t.$low&au.$low)>>>0);t=bb;bd=bc;be=!z||(bd.$high>0||(bd.$high===0&&bd.$low>0));if(z&&(bd.$high===0&&bd.$low===0)){be=(bf=new $Uint64(d.$high&0,(d.$low&1)>>>0),(bf.$high===0&&bf.$low===0));}if(!be){t=(bg=new $Uint64(0,1),new $Uint64(t.$high-bg.$high,t.$low-bg.$low));}bh=false;if(y){bh=(bi=$shiftLeft64(new $Uint64(0,1),((as-1>>>0))),(ba.$high>bi.$high||(ba.$high===bi.$high&&ba.$low>bi.$low)))||((bj=$shiftLeft64(new $Uint64(0,1),((as-1>>>0))),(ba.$high===bj.$high&&ba.$low===bj.$low))&&(bk=new $Uint64(s.$high&0,(s.$low&1)>>>0),(bk.$high===0&&bk.$low===1)));}else{bh=(bl=$shiftRightUint64(ba,((as-1>>>0))),(bl.$high===0&&bl.$low===1));}bn=x&&(ax.$high===0&&ax.$low===0)&&((bm=new $Uint64(d.$high&0,(d.$low&1)>>>0),(bm.$high===0&&bm.$low===0)));if(!bn){r=(bo=new $Uint64(0,1),new $Uint64(r.$high+bo.$high,r.$low+bo.$low));}bp=y&&(ba.$high===0&&ba.$low===0);BF(c,r,s,t,bp,bh);c.dp=c.dp-(n)>>0;};BC=function(c){var c;return(($imul(c,78913)))>>18>>0;};BD=function(c){var c;return(($imul(c,108853)))>>15>>0;};BE=function(c,d,e){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;f=new $Uint64(0,0);g=new $Uint64(0,0);h=new $Uint64(0,0);i=0;if(!((j=$shiftLeft64(new $Uint64(0,1),e.mantbits),(c.$high===j.$high&&c.$low===j.$low)))||(d===((e.bias+1>>0)-((e.mantbits>>0))>>0))){k=(l=$mul64(new $Uint64(0,2),c),new $Uint64(l.$high-0,l.$low-1));m=$mul64(new $Uint64(0,2),c);n=(o=$mul64(new $Uint64(0,2),c),new $Uint64(o.$high+0,o.$low+1));f=k;g=m;h=n;i=d-1>>0;return[f,g,h,i];}else{p=(q=$mul64(new $Uint64(0,4),c),new $Uint64(q.$high-0,q.$low-1));r=$mul64(new $Uint64(0,4),c);s=(t=$mul64(new $Uint64(0,4),c),new $Uint64(t.$high+0,t.$low+2));f=p;g=r;h=s;i=d-2>>0;return[f,g,h,i];}};BF=function(c,d,e,f,g,h){var aa,ab,ac,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;i=BK(d);j=i[0];k=i[1];l=BK(e);m=l[0];n=l[1];o=BK(f);p=o[0];q=o[1];if(p===0){BG(c,k,n,q,g,h,8);}else if(j>>0;}g=g&&(n===0);h=(n>500000000)||((n===500000000)&&h);BG(c,j,m,p,g,h,8);c.dp=c.dp+(9)>>0;}else{c.nd=0;r=9;s=m;while(true){if(!(s>0)){break;}t=(u=s/10,(u===u&&u!==1/0&&u!==-1/0)?u>>>0:$throwRuntimeError("integer divide by zero"));v=(w=s%10,w===w?w:$throwRuntimeError("integer divide by zero"));x=t;y=v;s=x;r=r-(1)>>>0;(z=c.d,((r<0||r>=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+r]=(((y+48>>>0)<<24>>>24))));}c.d=$subslice(c.d,r);c.nd=(((9-r>>>0)>>0));BG(c,k,n,q,g,h,c.nd+8>>0);}while(true){if(!(c.nd>0&&((aa=c.d,ab=c.nd-1>>0,((ab<0||ab>=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+ab]))===48))){break;}c.nd=c.nd-(1)>>0;}while(true){if(!(c.nd>0&&((ac=c.d,(0>=ac.$length?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+0]))===48))){break;}c.nd=c.nd-(1)>>0;c.dp=c.dp-(1)>>0;c.d=$subslice(c.d,1);}};BG=function(c,d,e,f,g,h,i){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;if(f===0){c.dp=i+1>>0;return;}j=0;k=0;while(true){if(!(f>0)){break;}m=(l=((d+9>>>0))/10,(l===l&&l!==1/0&&l!==-1/0)?l>>>0:$throwRuntimeError("integer divide by zero"));n=(o=e/10,(o===o&&o!==1/0&&o!==-1/0)?o>>>0:$throwRuntimeError("integer divide by zero"));p=(q=e%10,q===q?q:$throwRuntimeError("integer divide by zero"));r=n;s=p;u=(t=f/10,(t===t&&t!==1/0&&t!==-1/0)?t>>>0:$throwRuntimeError("integer divide by zero"));if(m>u){break;}if((m===(r+1>>>0))&&r>>0;s=0;h=false;}j=j+(1)>>0;g=g&&(k===0);k=((s>>0));v=m;w=r;x=u;d=v;e=w;f=x;}if(j>0){h=k>5||((k===5)&&!g)||((k===5)&&g&&(((e&1)>>>0)===1));}if(e>>0;}i=i-(j)>>0;y=e;z=i;while(true){if(!(z>c.nd)){break;}aa=(ab=y/100,(ab===ab&&ab!==1/0&&ab!==-1/0)?ab>>>0:$throwRuntimeError("integer divide by zero"));ac=(ad=y%100,ad===ad?ad:$throwRuntimeError("integer divide by zero"));ae=aa;af=ac;(ag=c.d,((z<0||z>=ag.$length)?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+z]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((($imul(2,af)>>>0)+1>>>0))));(ah=c.d,ai=z-1>>0,((ai<0||ai>=ah.$length)?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+ai]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((($imul(2,af)>>>0)+0>>>0))));z=z-(2)>>0;y=ae;}if(z===c.nd){(aj=c.d,((z<0||z>=aj.$length)?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+z]=(((y+48>>>0)<<24>>>24))));}c.nd=i+1>>0;c.dp=c.nd+j>>0;};BH=function(c,d,e){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;f=0;g=0;h=false;if(e===0){i=c<<6>>>0;j=d-6>>0;k=true;f=i;g=j;h=k;return[f,g,h];}if(e<-348||347>0,((l<0||l>=CD.length)?($throwRuntimeError("index out of range"),undefined):CD[l]))[1];if(e<0){m=(n=new $Uint64(0,1),new $Uint64(m.$high+n.$high,m.$low+n.$low));}o=B.Mul64((new $Uint64(0,c)),m);p=o[0];q=o[1];d=d+(((BD(e)-63>>0)+57>>0))>>0;r=(((s=$shiftLeft64(p,7),t=$shiftRightUint64(q,57),new $Uint64(s.$high|t.$high,(s.$low|t.$low)>>>0)).$low>>>0));u=d;v=(w=$shiftLeft64(q,7),(w.$high===0&&w.$low===0));f=r;g=u;h=v;return[f,g,h];};BI=function(c,d,e){var aa,ab,ac,ad,ae,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;f=new $Uint64(0,0);g=0;h=false;if(e===0){i=$shiftLeft64(c,8);j=d-8>>0;k=true;f=i;g=j;h=k;return[f,g,h];}if(e<-348||347>0,((l<0||l>=CD.length)?($throwRuntimeError("index out of range"),undefined):CD[l])),DV);if(e<0){m[0]=(n=m[0],o=new $Uint64(0,1),new $Uint64(n.$high+o.$high,n.$low+o.$low));}d=d+(((BD(e)-127>>0)+119>>0))>>0;p=B.Mul64(c,m[0]);q=p[0];r=p[1];s=B.Mul64(c,m[1]);t=s[0];u=s[1];v=B.Add64(q,u,new $Uint64(0,0));w=v[0];x=v[1];t=(y=x,new $Uint64(t.$high+y.$high,t.$low+y.$low));z=(aa=$shiftLeft64(t,9),ab=$shiftRightUint64(w,55),new $Uint64(aa.$high|ab.$high,(aa.$low|ab.$low)>>>0));ac=d;ad=(ae=$shiftLeft64(w,9),(ae.$high===0&&ae.$low===0))&&(r.$high===0&&r.$low===0);f=z;g=ac;h=ad;return[f,g,h];};BJ=function(c,d){var c,d,e,f;if((c.$high===0&&c.$low===0)){return true;}e=0;while(true){if(!(e>0;}return true;};BK=function(c){var c,d,e,f,g;if(false){return[(($div64(c,new $Uint64(0,1000000000),false).$low>>>0)),(($div64(c,new $Uint64(0,1000000000),true).$low>>>0))];}d=B.Mul64($shiftRightUint64(c,1),new $Uint64(2305843009,917808536));e=d[0];f=$shiftRightUint64(e,28);return[((f.$low>>>0)),(((g=$mul64(f,new $Uint64(0,1000000000)),new $Uint64(c.$high-g.$high,c.$low-g.$low)).$low>>>0))];};BO=function(c,d,e,f){var c,d,e,f;return($bytesToString(BQ($makeSlice(EA,0,CA(e+4>>0,24)),c,d,e,f)));};$pkg.FormatFloat=BO;BP=function(c,d,e,f,g){var c,d,e,f,g;return BQ(c,d,e,f,g);};$pkg.AppendFloat=BP;BQ=function(c,d,e,f,g){var aa,ab,ac,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;h=new $Uint64(0,0);i=ED.nil;j=g;if(j===(32)){h=(new $Uint64(0,D.Float32bits(($fround(d)))));i=BM;}else if(j===(64)){h=D.Float64bits(d);i=BN;}else{$panic(new $String("strconv: illegal AppendFloat/FormatFloat bitSize"));}l=!((k=$shiftRightUint64(h,((i.expbits+i.mantbits>>>0))),(k.$high===0&&k.$low===0)));n=(($shiftRightUint64(h,i.mantbits).$low>>0))&((((m=i.expbits,m<32?(1<>0)-1>>0));q=(o=(p=$shiftLeft64(new $Uint64(0,1),i.mantbits),new $Uint64(p.$high-0,p.$low-1)),new $Uint64(h.$high&o.$high,(h.$low&o.$low)>>>0));r=n;if(r===((((s=i.expbits,s<32?(1<>0)-1>>0))){t="";if(!((q.$high===0&&q.$low===0))){t="NaN";}else if(l){t="-Inf";}else{t="+Inf";}return $appendSlice(c,t);}else if(r===(0)){n=n+(1)>>0;}else{q=(u=$shiftLeft64(new $Uint64(0,1),i.mantbits),new $Uint64(q.$high|u.$high,(q.$low|u.$low)>>>0));}n=n+(i.bias)>>0;if(e===98){return BX(c,l,q,n,i);}if((e===120)||(e===88)){return BY(c,f,e,l,q,n,i);}if(!CY){return BR(c,f,e,l,q,n,i);}v=new BU.ptr(EA.nil,0,0,false);w=false;x=f<0;if(x){y=EE.zero();v.d=new EA(y);BB(v,q,n-((i.mantbits>>0))>>0,i);w=true;z=e;if((z===(101))||(z===(69))){f=CA(v.nd-1>>0,0);}else if(z===(102)){f=CA(v.nd-v.dp>>0,0);}else if((z===(103))||(z===(71))){f=v.nd;}}else if(!((e===102))){aa=f;ab=e;if((ab===(101))||(ab===(69))){aa=aa+(1)>>0;}else if((ab===(103))||(ab===(71))){if(f===0){f=1;}aa=f;}ac=EF.zero();if((g===32)&&aa<=9){v.d=new EA(ac);AX(v,((q.$low>>>0)),n-((i.mantbits>>0))>>0,aa);w=true;}else if(aa<=18){v.d=new EA(ac);AY(v,q,n-((i.mantbits>>0))>>0,aa);w=true;}}if(!w){return BR(c,f,e,l,q,n,i);}return BS(c,x,l,$clone(v,BU),f,e);};BR=function(c,d,e,f,g,h,i){var c,d,e,f,g,h,i,j,k,l,m,n;j=new CE.ptr(EG.zero(),0,0,false,false);j.Assign(g);j.Shift(h-((i.mantbits>>0))>>0);k=new BU.ptr(EA.nil,0,0,false);l=d<0;if(l){BT(j,g,h,i);BU.copy(k,new BU.ptr(new EA(j.d),j.nd,j.dp,false));m=e;if((m===(101))||(m===(69))){d=k.nd-1>>0;}else if(m===(102)){d=CA(k.nd-k.dp>>0,0);}else if((m===(103))||(m===(71))){d=k.nd;}}else{n=e;if((n===(101))||(n===(69))){j.Round(d+1>>0);}else if(n===(102)){j.Round(j.dp+d>>0);}else if((n===(103))||(n===(71))){if(d===0){d=1;}j.Round(d);}BU.copy(k,new BU.ptr(new EA(j.d),j.nd,j.dp,false));}return BS(c,l,f,$clone(k,BU),d,e);};BS=function(c,d,e,f,g,h){var c,d,e,f,g,h,i,j,k;i=h;if((i===(101))||(i===(69))){return BV(c,e,$clone(f,BU),g,h);}else if(i===(102)){return BW(c,e,$clone(f,BU),g);}else if((i===(103))||(i===(71))){j=g;if(j>f.nd&&f.nd>=f.dp){j=f.nd;}if(d){j=6;}k=f.dp-1>>0;if(k<-4||k>=j){if(g>f.nd){g=f.nd;}return BV(c,e,$clone(f,BU),g-1>>0,(h+101<<24>>>24)-103<<24>>>24);}if(g>f.dp){g=f.nd;}return BW(c,e,$clone(f,BU),CA(g-f.dp>>0,0));}return $append(c,37,h);};BT=function(c,d,e,f){var aa,ab,ac,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;if((d.$high===0&&d.$low===0)){c.nd=0;return;}g=f.bias+1>>0;if(e>g&&($imul(332,((c.dp-c.nd>>0))))>=($imul(100,((e-((f.mantbits>>0))>>0))))){return;}h=new CE.ptr(EG.zero(),0,0,false,false);h.Assign((i=$mul64(d,new $Uint64(0,2)),new $Uint64(i.$high+0,i.$low+1)));h.Shift((e-((f.mantbits>>0))>>0)-1>>0);j=new $Uint64(0,0);k=0;if((l=$shiftLeft64(new $Uint64(0,1),f.mantbits),(d.$high>l.$high||(d.$high===l.$high&&d.$low>l.$low)))||(e===g)){j=new $Uint64(d.$high-0,d.$low-1);k=e;}else{j=(m=$mul64(d,new $Uint64(0,2)),new $Uint64(m.$high-0,m.$low-1));k=e-1>>0;}n=new CE.ptr(EG.zero(),0,0,false,false);n.Assign((o=$mul64(j,new $Uint64(0,2)),new $Uint64(o.$high+0,o.$low+1)));n.Shift((k-((f.mantbits>>0))>>0)-1>>0);q=(p=$div64(d,new $Uint64(0,2),true),(p.$high===0&&p.$low===0));r=0;s=0;while(true){t=(s-h.dp>>0)+c.dp>>0;if(t>=c.nd){break;}u=(s-h.dp>>0)+n.dp>>0;v=48;if(u>=0&&u=w.length)?($throwRuntimeError("index out of range"),undefined):w[u]));}x=48;if(t>=0){x=(y=c.d,((t<0||t>=y.length)?($throwRuntimeError("index out of range"),undefined):y[t]));}z=48;if(s=aa.length)?($throwRuntimeError("index out of range"),undefined):aa[s]));}ab=!((v===x))||q&&((u+1>>0)===n.nd);if((r===0)&&(x+1<<24>>>24)0&&(q||r>1||(s+1>>0)>0);return;}else if(ab){c.RoundDown(t+1>>0);return;}else if(ac){c.RoundUp(t+1>>0);return;}s=s+(1)>>0;}};BV=function(c,d,e,f,g){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(d){c=$append(c,45);}h=48;if(!((e.nd===0))){h=(i=e.d,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]));}c=$append(c,h);if(f>0){c=$append(c,46);j=1;k=BZ(e.nd,f+1>>0);if(j>0;}}c=$append(c,g);l=e.dp-1>>0;if(e.nd===0){l=0;}if(l<0){h=45;l=-l;}else{h=43;}c=$append(c,h);if(l<10){c=$append(c,48,((l<<24>>>24))+48<<24>>>24);}else if(l<100){c=$append(c,(((m=l/10,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24,(((n=l%10,n===n?n:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24);}else{c=$append(c,(((o=l/100,(o===o&&o!==1/0&&o!==-1/0)?o>>0:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24,(p=(((q=l/10,(q===q&&q!==1/0&&q!==-1/0)?q>>0:$throwRuntimeError("integer divide by zero"))<<24>>>24))%10,p===p?p:$throwRuntimeError("integer divide by zero"))+48<<24>>>24,(((r=l%10,r===r?r:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24);}return c;};BW=function(c,d,e,f){var c,d,e,f,g,h,i,j,k;if(d){c=$append(c,45);}if(e.dp>0){g=BZ(e.nd,e.dp);c=$appendSlice(c,$subslice(e.d,0,g));while(true){if(!(g>0;}}else{c=$append(c,48);}if(f>0){c=$append(c,46);h=0;while(true){if(!(h>0;if(0<=j&&j=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+j]));}c=$append(c,i);h=h+(1)>>0;}}return c;};BX=function(c,d,e,f,g){var c,d,e,f,g,h,i;if(d){c=$append(c,45);}h=AO(c,e,10,false,true);c=h[0];c=$append(c,112);f=f-(((g.mantbits>>0)))>>0;if(f>=0){c=$append(c,43);}i=AO(c,(new $Uint64(0,f)),10,f<0,true);c=i[0];return c;};BY=function(c,d,e,f,g,h,i){var aa,ab,ac,ad,ae,af,ag,ah,ai,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;if((g.$high===0&&g.$low===0)){h=0;}g=$shiftLeft64(g,((60-i.mantbits>>>0)));while(true){if(!(!((g.$high===0&&g.$low===0))&&(j=new $Uint64(g.$high&268435456,(g.$low&0)>>>0),(j.$high===0&&j.$low===0)))){break;}g=$shiftLeft64(g,(1));h=h-(1)>>0;}if(d>=0&&d<15){k=((($imul(d,4))>>>0));m=(l=$shiftLeft64(g,k),new $Uint64(l.$high&268435455,(l.$low&4294967295)>>>0));g=$shiftRightUint64(g,((60-k>>>0)));if((n=(o=new $Uint64(g.$high&0,(g.$low&1)>>>0),new $Uint64(m.$high|o.$high,(m.$low|o.$low)>>>0)),(n.$high>134217728||(n.$high===134217728&&n.$low>0)))){g=(p=new $Uint64(0,1),new $Uint64(g.$high+p.$high,g.$low+p.$low));}g=$shiftLeft64(g,((60-k>>>0)));if(!((q=new $Uint64(g.$high&536870912,(g.$low&0)>>>0),(q.$high===0&&q.$low===0)))){g=$shiftRightUint64(g,(1));h=h+(1)>>0;}}r="0123456789abcdef";if(e===88){r="0123456789ABCDEF";}if(f){c=$append(c,45);}c=$append(c,48,e,48+(((s=$shiftRightUint64(g,60),new $Uint64(s.$high&0,(s.$low&1)>>>0)).$low<<24>>>24))<<24>>>24);g=$shiftLeft64(g,(4));if(d<0&&!((g.$high===0&&g.$low===0))){c=$append(c,46);while(true){if(!(!((g.$high===0&&g.$low===0)))){break;}c=$append(c,r.charCodeAt($flatten64((t=$shiftRightUint64(g,60),new $Uint64(t.$high&0,(t.$low&15)>>>0)))));g=$shiftLeft64(g,(4));}}else if(d>0){c=$append(c,46);u=0;while(true){if(!(u>>0)))));g=$shiftLeft64(g,(4));u=u+(1)>>0;}}w=80;if(e===CP(e)){w=112;}c=$append(c,w);if(h<0){w=45;h=-h;}else{w=43;}c=$append(c,w);if(h<100){c=$append(c,(((x=h/10,(x===x&&x!==1/0&&x!==-1/0)?x>>0:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24,(((y=h%10,y===y?y:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24);}else if(h<1000){c=$append(c,(((z=h/100,(z===z&&z!==1/0&&z!==-1/0)?z>>0:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24,(((aa=((ab=h/10,(ab===ab&&ab!==1/0&&ab!==-1/0)?ab>>0:$throwRuntimeError("integer divide by zero")))%10,aa===aa?aa:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24,(((ac=h%10,ac===ac?ac:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24);}else{c=$append(c,(((ad=h/1000,(ad===ad&&ad!==1/0&&ad!==-1/0)?ad>>0:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24,(ae=(((af=h/100,(af===af&&af!==1/0&&af!==-1/0)?af>>0:$throwRuntimeError("integer divide by zero"))<<24>>>24))%10,ae===ae?ae:$throwRuntimeError("integer divide by zero"))+48<<24>>>24,(((ag=((ah=h/10,(ah===ah&&ah!==1/0&&ah!==-1/0)?ah>>0:$throwRuntimeError("integer divide by zero")))%10,ag===ag?ag:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24,(((ai=h%10,ai===ai?ai:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24);}return c;};BZ=function(c,d){var c,d;if(cd){return c;}return d;};CB=function(c,d,e){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;f=0;g=false;if((c.$high===0&&c.$low===0)){if(e){f=D.Float64frombits(new $Uint64(2147483648,0));}h=f;i=true;f=h;g=i;return[f,g];}if(d<-348||347>>0))));o=(m=(new $Uint64(0,(((($imul(217706,d))>>16>>0)+64>>0)+1023>>0))),n=(new $Uint64(0,l)),new $Uint64(m.$high-n.$high,m.$low-n.$low));p=B.Mul64(c,(q=d- -348>>0,((q<0||q>=CD.length)?($throwRuntimeError("index out of range"),undefined):CD[q]))[1]);r=p[0];s=p[1];if((t=new $Uint64(r.$high&0,(r.$low&511)>>>0),(t.$high===0&&t.$low===511))&&(u=new $Uint64(s.$high+c.$high,s.$low+c.$low),(u.$high>0,((w<0||w>=CD.length)?($throwRuntimeError("index out of range"),undefined):CD[w]))[0]);x=v[0];y=v[1];z=r;aa=new $Uint64(s.$high+x.$high,s.$low+x.$low);ab=z;ac=aa;if((ac.$high>>0),(ae.$high===0&&ae.$low===511))&&(af=new $Uint64(ac.$high+0,ac.$low+1),(af.$high===0&&af.$low===0))&&(ag=new $Uint64(y.$high+c.$high,y.$low+c.$low),(ag.$high>>0),new $Uint64(o.$high-an.$high,o.$low-an.$low));if((s.$high===0&&s.$low===0)&&(ao=new $Uint64(r.$high&0,(r.$low&511)>>>0),(ao.$high===0&&ao.$low===0))&&(ap=new $Uint64(am.$high&0,(am.$low&3)>>>0),(ap.$high===0&&ap.$low===1))){aq=0;ar=false;f=aq;g=ar;return[f,g];}am=(as=new $Uint64(am.$high&0,(am.$low&1)>>>0),new $Uint64(am.$high+as.$high,am.$low+as.$low));am=$shiftRightUint64(am,(1));if((at=$shiftRightUint64(am,53),(at.$high>0||(at.$high===0&&at.$low>0)))){am=$shiftRightUint64(am,(1));o=(au=new $Uint64(0,1),new $Uint64(o.$high+au.$high,o.$low+au.$low));}if((av=new $Uint64(o.$high-0,o.$low-1),(av.$high>0||(av.$high===0&&av.$low>=2046)))){aw=0;ax=false;f=aw;g=ax;return[f,g];}ba=(ay=$shiftLeft64(o,52),az=new $Uint64(am.$high&1048575,(am.$low&4294967295)>>>0),new $Uint64(ay.$high|az.$high,(ay.$low|az.$low)>>>0));if(e){ba=(bb=new $Uint64(2147483648,0),new $Uint64(ba.$high|bb.$high,(ba.$low|bb.$low)>>>0));}bc=D.Float64frombits(ba);bd=true;f=bc;g=bd;return[f,g];};CC=function(c,d,e){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;f=0;g=false;if((c.$high===0&&c.$low===0)){if(e){f=D.Float32frombits(2147483648);}h=f;i=true;f=h;g=i;return[f,g];}if(d<-348||347>>0))));o=(m=(new $Uint64(0,(((($imul(217706,d))>>16>>0)+64>>0)+127>>0))),n=(new $Uint64(0,l)),new $Uint64(m.$high-n.$high,m.$low-n.$low));p=B.Mul64(c,(q=d- -348>>0,((q<0||q>=CD.length)?($throwRuntimeError("index out of range"),undefined):CD[q]))[1]);r=p[0];s=p[1];if((t=new $Uint64(r.$high&63,(r.$low&4294967295)>>>0),(t.$high===63&&t.$low===4294967295))&&(u=new $Uint64(s.$high+c.$high,s.$low+c.$low),(u.$high>0,((w<0||w>=CD.length)?($throwRuntimeError("index out of range"),undefined):CD[w]))[0]);x=v[0];y=v[1];z=r;aa=new $Uint64(s.$high+x.$high,s.$low+x.$low);ab=z;ac=aa;if((ac.$high>>0),(ae.$high===63&&ae.$low===4294967295))&&(af=new $Uint64(ac.$high+0,ac.$low+1),(af.$high===0&&af.$low===0))&&(ag=new $Uint64(y.$high+c.$high,y.$low+c.$low),(ag.$high>>0),new $Uint64(o.$high-an.$high,o.$low-an.$low));if((s.$high===0&&s.$low===0)&&(ao=new $Uint64(r.$high&63,(r.$low&4294967295)>>>0),(ao.$high===0&&ao.$low===0))&&(ap=new $Uint64(am.$high&0,(am.$low&3)>>>0),(ap.$high===0&&ap.$low===1))){aq=0;ar=false;f=aq;g=ar;return[f,g];}am=(as=new $Uint64(am.$high&0,(am.$low&1)>>>0),new $Uint64(am.$high+as.$high,am.$low+as.$low));am=$shiftRightUint64(am,(1));if((at=$shiftRightUint64(am,24),(at.$high>0||(at.$high===0&&at.$low>0)))){am=$shiftRightUint64(am,(1));o=(au=new $Uint64(0,1),new $Uint64(o.$high+au.$high,o.$low+au.$low));}if((av=new $Uint64(o.$high-0,o.$low-1),(av.$high>0||(av.$high===0&&av.$low>=254)))){aw=0;ax=false;f=aw;g=ax;return[f,g];}ba=(ay=$shiftLeft64(o,23),az=new $Uint64(am.$high&0,(am.$low&8388607)>>>0),new $Uint64(ay.$high|az.$high,(ay.$low|az.$low)>>>0));if(e){ba=(bb=new $Uint64(0,2147483648),new $Uint64(ba.$high|bb.$high,(ba.$low|bb.$low)>>>0));}bc=D.Float32frombits(((ba.$low>>>0)));bd=true;f=bc;g=bd;return[f,g];};CE.ptr.prototype.String=function(){var c,d,e,f;c=this;d=10+c.nd>>0;if(c.dp>0){d=d+(c.dp)>>0;}if(c.dp<0){d=d+(-c.dp)>>0;}e=$makeSlice(EA,d);f=0;if((c.nd===0)){return"0";}else if(c.dp<=0){((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]=48);f=f+(1)>>0;((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]=46);f=f+(1)>>0;f=f+(CF($subslice(e,f,(f+-c.dp>>0))))>>0;f=f+($copySlice($subslice(e,f),$subslice(new EA(c.d),0,c.nd)))>>0;}else if(c.dp>0;((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]=46);f=f+(1)>>0;f=f+($copySlice($subslice(e,f),$subslice(new EA(c.d),c.dp,c.nd)))>>0;}else{f=f+($copySlice($subslice(e,f),$subslice(new EA(c.d),0,c.nd)))>>0;f=f+(CF($subslice(e,f,((f+c.dp>>0)-c.nd>>0))))>>0;}return($bytesToString($subslice(e,0,f)));};CE.prototype.String=function(){return this.$val.String();};CF=function(c){var c,d,e,f;d=c;e=0;while(true){if(!(e=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=48);e++;}return c.$length;};CG=function(c){var c,d,e;while(true){if(!(c.nd>0&&((d=c.d,e=c.nd-1>>0,((e<0||e>=d.length)?($throwRuntimeError("index out of range"),undefined):d[e]))===48))){break;}c.nd=c.nd-(1)>>0;}if(c.nd===0){c.dp=0;}};CE.ptr.prototype.Assign=function(c){var c,d,e,f,g,h,i,j;d=this;e=EF.zero();f=0;while(true){if(!((c.$high>0||(c.$high===0&&c.$low>0)))){break;}g=$div64(c,new $Uint64(0,10),false);c=(h=$mul64(new $Uint64(0,10),g),new $Uint64(c.$high-h.$high,c.$low-h.$low));((f<0||f>=e.length)?($throwRuntimeError("index out of range"),undefined):e[f]=((new $Uint64(c.$high+0,c.$low+48).$low<<24>>>24)));f=f+(1)>>0;c=g;}d.nd=0;f=f-(1)>>0;while(true){if(!(f>=0)){break;}(i=d.d,j=d.nd,((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]=((f<0||f>=e.length)?($throwRuntimeError("index out of range"),undefined):e[f])));d.nd=d.nd+(1)>>0;f=f-(1)>>0;}d.dp=d.nd;CG(d);};CE.prototype.Assign=function(c){return this.$val.Assign(c);};CH=function(c,d){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=0;f=0;g=0;while(true){if(!(((h=d,h<32?(g>>>h):0)>>>0)===0)){break;}if(e>=c.nd){if(g===0){c.nd=0;return;}while(true){if(!(((i=d,i<32?(g>>>i):0)>>>0)===0)){break;}g=g*10>>>0;e=e+(1)>>0;}break;}k=(((j=c.d,((e<0||e>=j.length)?($throwRuntimeError("index out of range"),undefined):j[e]))>>>0));g=((g*10>>>0)+k>>>0)-48>>>0;e=e+(1)>>0;}c.dp=c.dp-((e-1>>0))>>0;m=(((l=d,l<32?(1<>>0))-1>>>0;while(true){if(!(e=n.length)?($throwRuntimeError("index out of range"),undefined):n[e]))>>>0));q=(p=d,p<32?(g>>>p):0)>>>0;g=(g&(m))>>>0;(r=c.d,((f<0||f>=r.length)?($throwRuntimeError("index out of range"),undefined):r[f]=(((q+48>>>0)<<24>>>24))));f=f+(1)>>0;g=((g*10>>>0)+o>>>0)-48>>>0;e=e+(1)>>0;}while(true){if(!(g>0)){break;}t=(s=d,s<32?(g>>>s):0)>>>0;g=(g&(m))>>>0;if(f<800){(u=c.d,((f<0||f>=u.length)?($throwRuntimeError("index out of range"),undefined):u[f]=(((t+48>>>0)<<24>>>24))));f=f+(1)>>0;}else if(t>0){c.trunc=true;}g=g*10>>>0;}c.nd=f;CG(c);};CK=function(c,d){var c,d,e;e=0;while(true){if(!(e=c.$length){return true;}if(!((((e<0||e>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+e])===d.charCodeAt(e)))){return((e<0||e>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+e])>0;}return false;};CL=function(c,d){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;e=((d<0||d>=CJ.$length)?($throwRuntimeError("index out of range"),undefined):CJ.$array[CJ.$offset+d]).delta;if(CK($subslice(new EA(c.d),0,c.nd),((d<0||d>=CJ.$length)?($throwRuntimeError("index out of range"),undefined):CJ.$array[CJ.$offset+d]).cutoff)){e=e-(1)>>0;}f=c.nd;g=c.nd+e>>0;h=0;f=f-(1)>>0;while(true){if(!(f>=0)){break;}h=h+(((i=d,i<32?((((((j=c.d,((f<0||f>=j.length)?($throwRuntimeError("index out of range"),undefined):j[f]))>>>0))-48>>>0))<>>0))>>>0;l=(k=h/10,(k===k&&k!==1/0&&k!==-1/0)?k>>>0:$throwRuntimeError("integer divide by zero"));m=h-(10*l>>>0)>>>0;g=g-(1)>>0;if(g<800){(n=c.d,((g<0||g>=n.length)?($throwRuntimeError("index out of range"),undefined):n[g]=(((m+48>>>0)<<24>>>24))));}else if(!((m===0))){c.trunc=true;}h=l;f=f-(1)>>0;}while(true){if(!(h>0)){break;}p=(o=h/10,(o===o&&o!==1/0&&o!==-1/0)?o>>>0:$throwRuntimeError("integer divide by zero"));q=h-(10*p>>>0)>>>0;g=g-(1)>>0;if(g<800){(r=c.d,((g<0||g>=r.length)?($throwRuntimeError("index out of range"),undefined):r[g]=(((q+48>>>0)<<24>>>24))));}else if(!((q===0))){c.trunc=true;}h=p;}c.nd=c.nd+(e)>>0;if(c.nd>=800){c.nd=800;}c.dp=c.dp+(e)>>0;CG(c);};CE.ptr.prototype.Shift=function(c){var c,d;d=this;if((d.nd===0)){}else if(c>0){while(true){if(!(c>28)){break;}CL(d,28);c=c-(28)>>0;}CL(d,((c>>>0)));}else if(c<0){while(true){if(!(c<-28)){break;}CH(d,28);c=c+(28)>>0;}CH(d,((-c>>>0)));}};CE.prototype.Shift=function(c){return this.$val.Shift(c);};CM=function(c,d){var c,d,e,f,g,h,i;if(d<0||d>=c.nd){return false;}if(((e=c.d,((d<0||d>=e.length)?($throwRuntimeError("index out of range"),undefined):e[d]))===53)&&((d+1>>0)===c.nd)){if(c.trunc){return true;}return d>0&&!(((f=(((g=c.d,h=d-1>>0,((h<0||h>=g.length)?($throwRuntimeError("index out of range"),undefined):g[h]))-48<<24>>>24))%2,f===f?f:$throwRuntimeError("integer divide by zero"))===0));}return(i=c.d,((d<0||d>=i.length)?($throwRuntimeError("index out of range"),undefined):i[d]))>=53;};CE.ptr.prototype.Round=function(c){var c,d;d=this;if(c<0||c>=d.nd){return;}if(CM(d,c)){d.RoundUp(c);}else{d.RoundDown(c);}};CE.prototype.Round=function(c){return this.$val.Round(c);};CE.ptr.prototype.RoundDown=function(c){var c,d;d=this;if(c<0||c>=d.nd){return;}d.nd=c;CG(d);};CE.prototype.RoundDown=function(c){return this.$val.RoundDown(c);};CE.ptr.prototype.RoundUp=function(c){var c,d,e,f,g,h,i;d=this;if(c<0||c>=d.nd){return;}e=c-1>>0;while(true){if(!(e>=0)){break;}g=(f=d.d,((e<0||e>=f.length)?($throwRuntimeError("index out of range"),undefined):f[e]));if(g<57){(i=d.d,((e<0||e>=i.length)?($throwRuntimeError("index out of range"),undefined):i[e]=((h=d.d,((e<0||e>=h.length)?($throwRuntimeError("index out of range"),undefined):h[e]))+(1)<<24>>>24)));d.nd=e+1>>0;return;}e=e-(1)>>0;}d.d[0]=49;d.nd=1;d.dp=d.dp+(1)>>0;};CE.prototype.RoundUp=function(c){return this.$val.RoundUp(c);};CE.ptr.prototype.RoundedInteger=function(){var c,d,e,f,g,h,i;c=this;if(c.dp>20){return new $Uint64(4294967295,4294967295);}d=0;e=new $Uint64(0,0);d=0;while(true){if(!(d=h.length)?($throwRuntimeError("index out of range"),undefined):h[d]))-48<<24>>>24))),new $Uint64(f.$high+g.$high,f.$low+g.$low));d=d+(1)>>0;}while(true){if(!(d>0;}if(CM(c,c.dp)){e=(i=new $Uint64(0,1),new $Uint64(e.$high+i.$high,e.$low+i.$low));}return e;};CE.prototype.RoundedInteger=function(){return this.$val.RoundedInteger();};CO=function(c,d){var c,d;return E.IndexByteString(c,d);};CP=function(c){var c;return(c|32)>>>0;};CQ.ptr.prototype.Error=function(){var{c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.Err.Error();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e="strconv."+c.Func+": "+"parsing "+M(c.Num)+": "+d;$s=2;case 2:return e;}return;}var $f={$blk:CQ.ptr.prototype.Error,$c:true,$r,c,d,e,$s};return $f;};CQ.prototype.Error=function(){return this.$val.Error();};CQ.ptr.prototype.Unwrap=function(){var c;c=this;return c.Err;};CQ.prototype.Unwrap=function(){return this.$val.Unwrap();};CR=function(c,d){var c,d;return new CQ.ptr(c,d,$pkg.ErrSyntax);};CS=function(c,d){var c,d;return new CQ.ptr(c,d,$pkg.ErrRange);};CT=function(c,d,e){var c,d,e;return new CQ.ptr(c,d,F.New("invalid base "+AV(e)));};CU=function(c,d,e){var c,d,e;return new CQ.ptr(c,d,F.New("invalid bit size "+AV(e)));};CV=function(c,d,e){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(c===""){return[new $Uint64(0,0),CR("ParseUint",c)];}f=d===0;g=c;if(2<=d&&d<=36){}else if((d===0)){d=10;if(c.charCodeAt(0)===48){if(c.length>=3&&(CP(c.charCodeAt(1))===98)){d=2;c=$substring(c,2);}else if(c.length>=3&&(CP(c.charCodeAt(1))===111)){d=8;c=$substring(c,2);}else if(c.length>=3&&(CP(c.charCodeAt(1))===120)){d=16;c=$substring(c,2);}else{d=8;c=$substring(c,1);}}}else{return[new $Uint64(0,0),CT("ParseUint",g,d)];}if(e===0){e=32;}else if(e<0||e>64){return[new $Uint64(0,0),CU("ParseUint",g,e)];}h=new $Uint64(0,0);i=d;if(i===(10)){h=new $Uint64(429496729,2576980378);}else if(i===(16)){h=new $Uint64(268435456,0);}else{h=(j=$div64(new $Uint64(4294967295,4294967295),(new $Uint64(0,d)),false),new $Uint64(j.$high+0,j.$low+1));}l=(k=$shiftLeft64(new $Uint64(0,1),((e>>>0))),new $Uint64(k.$high-0,k.$low-1));m=false;n=new $Uint64(0,0);o=(new EA($stringToBytes(c)));p=0;while(true){if(!(p=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]);r=0;if((q===95)&&f){m=true;p++;continue;}else if(48<=q&&q<=57){r=q-48<<24>>>24;}else if(97<=CP(q)&&CP(q)<=122){r=(CP(q)-97<<24>>>24)+10<<24>>>24;}else{return[new $Uint64(0,0),CR("ParseUint",g)];}if(r>=((d<<24>>>24))){return[new $Uint64(0,0),CR("ParseUint",g)];}if((n.$high>h.$high||(n.$high===h.$high&&n.$low>=h.$low))){return[l,CS("ParseUint",g)];}n=$mul64(n,((new $Uint64(0,d))));t=(s=(new $Uint64(0,r)),new $Uint64(n.$high+s.$high,n.$low+s.$low));if((t.$highl.$high||(t.$high===l.$high&&t.$low>l.$low))){return[l,CS("ParseUint",g)];}n=t;p++;}if(m&&!CX(g)){return[new $Uint64(0,0),CR("ParseUint",g)];}return[n,$ifaceNil];};$pkg.ParseUint=CV;CW=function(c,d,e){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;f=new $Int64(0,0);g=$ifaceNil;if(c===""){h=new $Int64(0,0);i=CR("ParseInt",c);f=h;g=i;return[f,g];}j=c;k=false;if(c.charCodeAt(0)===43){c=$substring(c,1);}else if(c.charCodeAt(0)===45){k=true;c=$substring(c,1);}l=new $Uint64(0,0);m=CV(c,d,e);l=m[0];g=m[1];if(!($interfaceIsEqual(g,$ifaceNil))&&!($interfaceIsEqual($assertType(g,EH).Err,$pkg.ErrRange))){$assertType(g,EH).Func="ParseInt";$assertType(g,EH).Num=j;n=new $Int64(0,0);o=g;f=n;g=o;return[f,g];}if(e===0){e=32;}p=($shiftLeft64(new $Uint64(0,1),(((e-1>>0)>>>0))));if(!k&&(l.$high>p.$high||(l.$high===p.$high&&l.$low>=p.$low))){q=((r=new $Uint64(p.$high-0,p.$low-1),new $Int64(r.$high,r.$low)));s=CS("ParseInt",j);f=q;g=s;return[f,g];}if(k&&(l.$high>p.$high||(l.$high===p.$high&&l.$low>p.$low))){t=(u=(new $Int64(p.$high,p.$low)),new $Int64(-u.$high,-u.$low));v=CS("ParseInt",j);f=t;g=v;return[f,g];}w=(new $Int64(l.$high,l.$low));if(k){w=new $Int64(-w.$high,-w.$low);}x=w;y=$ifaceNil;f=x;g=y;return[f,g];};$pkg.ParseInt=CW;CX=function(c){var c,d,e,f;d=94;e=0;if(c.length>=1&&((c.charCodeAt(0)===45)||(c.charCodeAt(0)===43))){c=$substring(c,1);}f=false;if(c.length>=2&&(c.charCodeAt(0)===48)&&((CP(c.charCodeAt(1))===98)||(CP(c.charCodeAt(1))===111)||(CP(c.charCodeAt(1))===120))){e=2;d=48;f=CP(c.charCodeAt(1))===120;}while(true){if(!(e>0;continue;}if(c.charCodeAt(e)===95){if(!((d===48))){return false;}d=95;e=e+(1)>>0;continue;}if(d===95){return false;}d=33;e=e+(1)>>0;}return!((d===95));};CZ=function(c,d){var c,d,e,f,g;e=d.length;if(e>c.length){e=c.length;}f=0;while(true){if(!(f>>24;}if(!((g===d.charCodeAt(f)))){return f;}f=f+(1)>>0;}return e;};DA=function(c){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;d=0;e=0;f=false;if(c.length===0){g=0;h=0;i=false;d=g;e=h;f=i;return[d,e,f];}j=1;k=0;l=c.charCodeAt(0);if((l===(43))||(l===(45))){if(c.charCodeAt(0)===45){j=-1;}k=1;c=$substring(c,1);m=CZ(c,"infinity");if(3>0;p=true;d=n;e=o;f=p;return[d,e,f];}}else if((l===(105))||(l===(73))){m=CZ(c,"infinity");if(3>0;s=true;d=q;e=r;f=s;return[d,e,f];}}else if((l===(110))||(l===(78))){if(CZ(c,"nan")===3){t=D.NaN();u=3;v=true;d=t;e=u;f=v;return[d,e,f];}}w=0;x=0;y=false;d=w;e=x;f=y;return[d,e,f];};CE.ptr.prototype.set=function(c){var c,d,e,f,g,h,i,j,k,l;d=false;e=this;f=0;e.neg=false;e.trunc=false;if(f>=c.length){return d;}if((c.charCodeAt(f)===43)){f=f+(1)>>0;}else if((c.charCodeAt(f)===45)){e.neg=true;f=f+(1)>>0;}g=false;h=false;while(true){if(!(f>0;continue;}else if((c.charCodeAt(f)===46)){if(g){return d;}g=true;e.dp=e.nd;f=f+(1)>>0;continue;}else if(48<=c.charCodeAt(f)&&c.charCodeAt(f)<=57){h=true;if((c.charCodeAt(f)===48)&&(e.nd===0)){e.dp=e.dp-(1)>>0;f=f+(1)>>0;continue;}if(e.nd<800){(i=e.d,j=e.nd,((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]=c.charCodeAt(f)));e.nd=e.nd+(1)>>0;}else if(!((c.charCodeAt(f)===48))){e.trunc=true;}f=f+(1)>>0;continue;}break;}if(!h){return d;}if(!g){e.dp=e.nd;}if(f>0;if(f>=c.length){return d;}k=1;if(c.charCodeAt(f)===43){f=f+(1)>>0;}else if(c.charCodeAt(f)===45){f=f+(1)>>0;k=-1;}if(f>=c.length||c.charCodeAt(f)<48||c.charCodeAt(f)>57){return d;}l=0;while(true){if(!(f>0;continue;}if(l<10000){l=(($imul(l,10))+((c.charCodeAt(f)>>0))>>0)-48>>0;}f=f+(1)>>0;}e.dp=e.dp+(($imul(l,k)))>>0;}if(!((f===c.length))){return d;}d=true;return d;};CE.prototype.set=function(c){return this.$val.set(c);};DB=function(c){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;d=new $Uint64(0,0);e=0;f=false;g=false;h=false;i=0;j=false;k=false;if(i>=c.length){return[d,e,f,g,h,i,j];}if((c.charCodeAt(i)===43)){i=i+(1)>>0;}else if((c.charCodeAt(i)===45)){f=true;i=i+(1)>>0;}l=new $Uint64(0,10);m=19;n=101;if((i+2>>0)>0)))===120)){l=new $Uint64(0,16);m=16;i=i+(2)>>0;n=112;h=true;}o=false;p=false;q=0;r=0;s=0;loop:while(true){if(!(i>0;continue;}else if(u===((t===46))){if(o){break loop;}o=true;s=q;i=i+(1)>>0;continue;}else if(u===(48<=t&&t<=57)){p=true;if((t===48)&&(q===0)){s=s-(1)>>0;i=i+(1)>>0;continue;}q=q+(1)>>0;if(r>>24))),new $Uint64(d.$high+v.$high,d.$low+v.$low));r=r+(1)>>0;}else if(!((t===48))){g=true;}i=i+(1)>>0;continue;}else if(u===((l.$high===0&&l.$low===16)&&97<=CP(t)&&CP(t)<=102)){p=true;q=q+(1)>>0;if(r>>24)+10<<24>>>24))),new $Uint64(d.$high+w.$high,d.$low+w.$low));r=r+(1)>>0;}else{g=true;}i=i+(1)>>0;continue;}break;}if(!p){return[d,e,f,g,h,i,j];}if(!o){s=q;}if((l.$high===0&&l.$low===16)){s=$imul(s,(4));r=$imul(r,(4));}if(i>0;if(i>=c.length){return[d,e,f,g,h,i,j];}x=1;if(c.charCodeAt(i)===43){i=i+(1)>>0;}else if(c.charCodeAt(i)===45){i=i+(1)>>0;x=-1;}if(i>=c.length||c.charCodeAt(i)<48||c.charCodeAt(i)>57){return[d,e,f,g,h,i,j];}y=0;while(true){if(!(i>0;continue;}if(y<10000){y=(($imul(y,10))+((c.charCodeAt(i)>>0))>>0)-48>>0;}i=i+(1)>>0;}s=s+(($imul(y,x)))>>0;}else if((l.$high===0&&l.$low===16)){return[d,e,f,g,h,i,j];}if(!((d.$high===0&&d.$low===0))){e=s-r>>0;}if(k&&!CX($substring(c,0,i))){return[d,e,f,g,h,i,j];}j=true;return[d,e,f,g,h,i,j];};CE.ptr.prototype.floatBits=function(c){var aa,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s;$s=$s||0;s:while(true){switch($s){case 0:d=new $Uint64(0,0);e=false;f=this;g=0;h=new $Uint64(0,0);if(f.nd===0){$s=1;continue;}$s=2;continue;case 1:h=new $Uint64(0,0);g=c.bias;$s=3;continue;case 2:if(f.dp>310){$s=4;continue;}$s=5;continue;case 4:$s=6;continue;case 5:if(f.dp<-330){$s=7;continue;}$s=8;continue;case 7:h=new $Uint64(0,0);g=c.bias;$s=3;continue;case 8:g=0;while(true){if(!(f.dp>0)){break;}i=0;if(f.dp>=DC.$length){i=27;}else{i=(j=f.dp,((j<0||j>=DC.$length)?($throwRuntimeError("index out of range"),undefined):DC.$array[DC.$offset+j]));}f.Shift(-i);g=g+(i)>>0;}while(true){if(!(f.dp<0||(f.dp===0)&&f.d[0]<53)){break;}k=0;if(-f.dp>=DC.$length){k=27;}else{k=(l=-f.dp,((l<0||l>=DC.$length)?($throwRuntimeError("index out of range"),undefined):DC.$array[DC.$offset+l]));}f.Shift(k);g=g-(k)>>0;}g=g-(1)>>0;if(g<(c.bias+1>>0)){m=(c.bias+1>>0)-g>>0;f.Shift(-m);g=g+(m)>>0;}if((g-c.bias>>0)>=(((n=c.expbits,n<32?(1<>0)-1>>0)){$s=9;continue;}$s=10;continue;case 9:$s=6;continue;case 10:f.Shift((((1+c.mantbits>>>0)>>0)));h=f.RoundedInteger();if((o=$shiftLeft64(new $Uint64(0,2),c.mantbits),(h.$high===o.$high&&h.$low===o.$low))){$s=11;continue;}$s=12;continue;case 11:h=$shiftRightUint64(h,(1));g=g+(1)>>0;if((g-c.bias>>0)>=(((p=c.expbits,p<32?(1<>0)-1>>0)){$s=13;continue;}$s=14;continue;case 13:$s=6;continue;case 14:case 12:if((q=(r=$shiftLeft64(new $Uint64(0,1),c.mantbits),new $Uint64(h.$high&r.$high,(h.$low&r.$low)>>>0)),(q.$high===0&&q.$low===0))){g=c.bias;}$s=3;continue;case 6:h=new $Uint64(0,0);g=(((s=c.expbits,s<32?(1<>0)-1>>0)+c.bias>>0;e=true;case 3:v=(t=(u=$shiftLeft64(new $Uint64(0,1),c.mantbits),new $Uint64(u.$high-0,u.$low-1)),new $Uint64(h.$high&t.$high,(h.$low&t.$low)>>>0));v=(w=$shiftLeft64((new $Uint64(0,(((g-c.bias>>0))&((((x=c.expbits,x<32?(1<>0)-1>>0))))),c.mantbits),new $Uint64(v.$high|w.$high,(v.$low|w.$low)>>>0));if(f.neg){v=(y=$shiftLeft64($shiftLeft64(new $Uint64(0,1),c.mantbits),c.expbits),new $Uint64(v.$high|y.$high,(v.$low|y.$low)>>>0));}z=v;aa=e;d=z;e=aa;$s=-1;return[d,e];}return;}};CE.prototype.floatBits=function(c){return this.$val.floatBits(c);};DF=function(c,d,e){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;f=0;g=false;if(!((h=$shiftRightUint64(c,BN.mantbits),(h.$high===0&&h.$low===0)))){return[f,g];}f=($flatten64(c));if(e){f=-f;}if((d===0)){i=f;j=true;f=i;g=j;return[f,g];}else if(d>0&&d<=37){if(d>22){f=f*((k=d-22>>0,((k<0||k>=DD.$length)?($throwRuntimeError("index out of range"),undefined):DD.$array[DD.$offset+k])));d=22;}if(f>1e+15||f<-1e+15){return[f,g];}l=f*((d<0||d>=DD.$length)?($throwRuntimeError("index out of range"),undefined):DD.$array[DD.$offset+d]);m=true;f=l;g=m;return[f,g];}else if(d<0&&d>=-22){n=f/(o=-d,((o<0||o>=DD.$length)?($throwRuntimeError("index out of range"),undefined):DD.$array[DD.$offset+o]));p=true;f=n;g=p;return[f,g];}return[f,g];};DG=function(c,d,e){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;f=0;g=false;if(!((h=$shiftRightUint64(c,BM.mantbits),(h.$high===0&&h.$low===0)))){return[f,g];}f=($flatten64(c));if(e){f=-f;}if((d===0)){i=f;j=true;f=i;g=j;return[f,g];}else if(d>0&&d<=17){if(d>10){f=$fround(f*((k=d-10>>0,((k<0||k>=DE.$length)?($throwRuntimeError("index out of range"),undefined):DE.$array[DE.$offset+k]))));d=10;}if(f>1e+07||f<-1e+07){return[f,g];}l=$fround(f*((d<0||d>=DE.$length)?($throwRuntimeError("index out of range"),undefined):DE.$array[DE.$offset+d]));m=true;f=l;g=m;return[f,g];}else if(d<0&&d>=-10){n=$fround(f/(o=-d,((o<0||o>=DE.$length)?($throwRuntimeError("index out of range"),undefined):DE.$array[DE.$offset+o])));p=true;f=n;g=p;return[f,g];}return[f,g];};DH=function(c,d,e,f,g,h){var aa,ab,ac,ad,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;j=(((i=d.expbits,i<32?(1<>0)+d.bias>>0)-2>>0;k=d.bias+1>>0;f=f+(((d.mantbits>>0)))>>0;while(true){if(!(!((e.$high===0&&e.$low===0))&&(l=$shiftRightUint64(e,((d.mantbits+2>>>0))),(l.$high===0&&l.$low===0)))){break;}e=$shiftLeft64(e,(1));f=f-(1)>>0;}if(h){e=(m=new $Uint64(0,1),new $Uint64(e.$high|m.$high,(e.$low|m.$low)>>>0));}while(true){if(!(!((n=$shiftRightUint64(e,(((1+d.mantbits>>>0)+2>>>0))),(n.$high===0&&n.$low===0))))){break;}e=(o=$shiftRightUint64(e,1),p=new $Uint64(e.$high&0,(e.$low&1)>>>0),new $Uint64(o.$high|p.$high,(o.$low|p.$low)>>>0));f=f+(1)>>0;}while(true){if(!((e.$high>0||(e.$high===0&&e.$low>1))&&f<(k-2>>0))){break;}e=(q=$shiftRightUint64(e,1),r=new $Uint64(e.$high&0,(e.$low&1)>>>0),new $Uint64(q.$high|r.$high,(q.$low|r.$low)>>>0));f=f+(1)>>0;}s=new $Uint64(e.$high&0,(e.$low&3)>>>0);e=$shiftRightUint64(e,(2));s=(t=new $Uint64(e.$high&0,(e.$low&1)>>>0),new $Uint64(s.$high|t.$high,(s.$low|t.$low)>>>0));f=f+(2)>>0;if((s.$high===0&&s.$low===3)){e=(u=new $Uint64(0,1),new $Uint64(e.$high+u.$high,e.$low+u.$low));if((v=$shiftLeft64(new $Uint64(0,1),((1+d.mantbits>>>0))),(e.$high===v.$high&&e.$low===v.$low))){e=$shiftRightUint64(e,(1));f=f+(1)>>0;}}if((w=$shiftRightUint64(e,d.mantbits),(w.$high===0&&w.$low===0))){f=d.bias;}x=$ifaceNil;if(f>j){e=$shiftLeft64(new $Uint64(0,1),d.mantbits);f=j+1>>0;x=CS("ParseFloat",c);}aa=(y=(z=$shiftLeft64(new $Uint64(0,1),d.mantbits),new $Uint64(z.$high-0,z.$low-1)),new $Uint64(e.$high&y.$high,(e.$low&y.$low)>>>0));aa=(ab=$shiftLeft64((new $Uint64(0,(((f-d.bias>>0))&((((ac=d.expbits,ac<32?(1<>0)-1>>0))))),d.mantbits),new $Uint64(aa.$high|ab.$high,(aa.$low|ab.$low)>>>0));if(g){aa=(ad=$shiftLeft64($shiftLeft64(new $Uint64(0,1),d.mantbits),d.expbits),new $Uint64(aa.$high|ad.$high,(aa.$low|ad.$low)>>>0));}if(d===BM){return[(D.Float32frombits(((aa.$low>>>0)))),x];}return[D.Float64frombits(aa),x];};DI=function(c){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;d=0;e=0;f=$ifaceNil;g=DA(c);h=g[0];i=g[1];j=g[2];if(j){k=($fround(h));l=i;m=$ifaceNil;d=k;e=l;f=m;return[d,e,f];}n=DB(c);o=n[0];p=n[1];q=n[2];r=n[3];s=n[4];e=n[5];t=n[6];if(!t){u=0;v=e;w=CR("ParseFloat",c);d=u;e=v;f=w;return[d,e,f];}if(s){x=DH($substring(c,0,e),BM,o,p,q,r);y=x[0];z=x[1];aa=($fround(y));ab=e;ac=z;d=aa;e=ab;f=ac;return[d,e,f];}if(CY){if(!r){ad=DG(o,p,q);ae=ad[0];af=ad[1];if(af){ag=ae;ah=e;ai=$ifaceNil;d=ag;e=ah;f=ai;return[d,e,f];}}aj=CC(o,p,q);ak=aj[0];al=aj[1];if(al){if(!r){am=ak;an=e;ao=$ifaceNil;d=am;e=an;f=ao;return[d,e,f];}ap=CC(new $Uint64(o.$high+0,o.$low+1),p,q);aq=ap[0];ar=ap[1];if(ar&&(ak===aq)){as=ak;at=e;au=$ifaceNil;d=as;e=at;f=au;return[d,e,f];}}}av=new CE.ptr(EG.zero(),0,0,false,false);if(!av.set($substring(c,0,e))){aw=0;ax=e;ay=CR("ParseFloat",c);d=aw;e=ax;f=ay;return[d,e,f];}az=av.floatBits(BM);ba=az[0];bb=az[1];d=D.Float32frombits(((ba.$low>>>0)));if(bb){f=CS("ParseFloat",c);}bc=d;bd=e;be=f;d=bc;e=bd;f=be;return[d,e,f];};DJ=function(c){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;d=0;e=0;f=$ifaceNil;g=DA(c);h=g[0];i=g[1];j=g[2];if(j){k=h;l=i;m=$ifaceNil;d=k;e=l;f=m;return[d,e,f];}n=DB(c);o=n[0];p=n[1];q=n[2];r=n[3];s=n[4];e=n[5];t=n[6];if(!t){u=0;v=e;w=CR("ParseFloat",c);d=u;e=v;f=w;return[d,e,f];}if(s){x=DH($substring(c,0,e),BN,o,p,q,r);y=x[0];z=x[1];aa=y;ab=e;ac=z;d=aa;e=ab;f=ac;return[d,e,f];}if(CY){if(!r){ad=DF(o,p,q);ae=ad[0];af=ad[1];if(af){ag=ae;ah=e;ai=$ifaceNil;d=ag;e=ah;f=ai;return[d,e,f];}}aj=CB(o,p,q);ak=aj[0];al=aj[1];if(al){if(!r){am=ak;an=e;ao=$ifaceNil;d=am;e=an;f=ao;return[d,e,f];}ap=CB(new $Uint64(o.$high+0,o.$low+1),p,q);aq=ap[0];ar=ap[1];if(ar&&(ak===aq)){as=ak;at=e;au=$ifaceNil;d=as;e=at;f=au;return[d,e,f];}}}av=new CE.ptr(EG.zero(),0,0,false,false);if(!av.set($substring(c,0,e))){aw=0;ax=e;ay=CR("ParseFloat",c);d=aw;e=ax;f=ay;return[d,e,f];}az=av.floatBits(BN);ba=az[0];bb=az[1];d=D.Float64frombits(ba);if(bb){f=CS("ParseFloat",c);}bc=d;bd=e;be=f;d=bc;e=bd;f=be;return[d,e,f];};DK=function(c,d){var c,d,e,f,g,h;e=DL(c,d);f=e[0];g=e[1];h=e[2];if(!((g===c.length))&&($interfaceIsEqual(h,$ifaceNil)||!($interfaceIsEqual($assertType(h,EH).Err,$pkg.ErrSyntax)))){return[0,CR("ParseFloat",c)];}return[f,h];};$pkg.ParseFloat=DK;DL=function(c,d){var c,d,e,f,g,h;if(d===32){e=DI(c);f=e[0];g=e[1];h=e[2];return[(f),g,h];}return DJ(c);};DP=function(c){var c;if(c){return"true";}return"false";};$pkg.FormatBool=DP;EI.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Assign",name:"Assign",pkg:"",typ:$funcType([$Uint64],[],false)},{prop:"Shift",name:"Shift",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Round",name:"Round",pkg:"",typ:$funcType([$Int],[],false)},{prop:"RoundDown",name:"RoundDown",pkg:"",typ:$funcType([$Int],[],false)},{prop:"RoundUp",name:"RoundUp",pkg:"",typ:$funcType([$Int],[],false)},{prop:"RoundedInteger",name:"RoundedInteger",pkg:"",typ:$funcType([],[$Uint64],false)},{prop:"set",name:"set",pkg:"strconv",typ:$funcType([$String],[$Bool],false)},{prop:"floatBits",name:"floatBits",pkg:"strconv",typ:$funcType([ED],[$Uint64,$Bool],false)}];EH.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Unwrap",name:"Unwrap",pkg:"",typ:$funcType([],[$error],false)}];BL.init("strconv",[{prop:"mantbits",name:"mantbits",embedded:false,exported:false,typ:$Uint,tag:""},{prop:"expbits",name:"expbits",embedded:false,exported:false,typ:$Uint,tag:""},{prop:"bias",name:"bias",embedded:false,exported:false,typ:$Int,tag:""}]);BU.init("strconv",[{prop:"d",name:"d",embedded:false,exported:false,typ:EA,tag:""},{prop:"nd",name:"nd",embedded:false,exported:false,typ:$Int,tag:""},{prop:"dp",name:"dp",embedded:false,exported:false,typ:$Int,tag:""},{prop:"neg",name:"neg",embedded:false,exported:false,typ:$Bool,tag:""}]);CE.init("strconv",[{prop:"d",name:"d",embedded:false,exported:false,typ:EG,tag:""},{prop:"nd",name:"nd",embedded:false,exported:false,typ:$Int,tag:""},{prop:"dp",name:"dp",embedded:false,exported:false,typ:$Int,tag:""},{prop:"neg",name:"neg",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"trunc",name:"trunc",embedded:false,exported:false,typ:$Bool,tag:""}]);CI.init("strconv",[{prop:"delta",name:"delta",embedded:false,exported:false,typ:$Int,tag:""},{prop:"cutoff",name:"cutoff",embedded:false,exported:false,typ:$String,tag:""}]);CQ.init("",[{prop:"Func",name:"Func",embedded:false,exported:true,typ:$String,tag:""},{prop:"Num",name:"Num",embedded:false,exported:true,typ:$String,tag:""},{prop:"Err",name:"Err",embedded:false,exported:true,typ:$error,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=F.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}AQ=new DT([32,126,161,887,890,895,900,1366,1369,1418,1421,1479,1488,1514,1519,1524,1542,1563,1566,1805,1808,1866,1869,1969,1984,2042,2045,2093,2096,2139,2142,2154,2208,2247,2259,2444,2447,2448,2451,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2531,2534,2558,2561,2570,2575,2576,2579,2617,2620,2626,2631,2632,2635,2637,2641,2641,2649,2654,2662,2678,2689,2745,2748,2765,2768,2768,2784,2787,2790,2801,2809,2828,2831,2832,2835,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2915,2918,2935,2946,2954,2958,2965,2969,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3021,3024,3024,3031,3031,3046,3066,3072,3129,3133,3149,3157,3162,3168,3171,3174,3183,3191,3257,3260,3277,3285,3286,3294,3299,3302,3314,3328,3407,3412,3427,3430,3478,3482,3517,3520,3526,3530,3530,3535,3551,3558,3567,3570,3572,3585,3642,3647,3675,3713,3773,3776,3789,3792,3801,3804,3807,3840,3948,3953,4058,4096,4295,4301,4301,4304,4685,4688,4701,4704,4749,4752,4789,4792,4805,4808,4885,4888,4954,4957,4988,4992,5017,5024,5109,5112,5117,5120,5788,5792,5880,5888,5908,5920,5942,5952,5971,5984,6003,6016,6109,6112,6121,6128,6137,6144,6157,6160,6169,6176,6264,6272,6314,6320,6389,6400,6443,6448,6459,6464,6464,6468,6509,6512,6516,6528,6571,6576,6601,6608,6618,6622,6683,6686,6780,6783,6793,6800,6809,6816,6829,6832,6848,6912,6987,6992,7036,7040,7155,7164,7223,7227,7241,7245,7304,7312,7354,7357,7367,7376,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8061,8064,8147,8150,8175,8178,8190,8208,8231,8240,8286,8304,8305,8308,8348,8352,8383,8400,8432,8448,8587,8592,9254,9280,9290,9312,11123,11126,11507,11513,11559,11565,11565,11568,11623,11631,11632,11647,11670,11680,11858,11904,12019,12032,12245,12272,12283,12289,12438,12441,12543,12549,12771,12784,40956,40960,42124,42128,42182,42192,42539,42560,42743,42752,42943,42946,42954,42997,43052,43056,43065,43072,43127,43136,43205,43214,43225,43232,43347,43359,43388,43392,43481,43486,43574,43584,43597,43600,43609,43612,43714,43739,43766,43777,43782,43785,43790,43793,43798,43808,43883,43888,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64449,64467,64831,64848,64911,64914,64967,65008,65021,65024,65049,65056,65131,65136,65276,65281,65470,65474,65479,65482,65487,65490,65495,65498,65500,65504,65518,65532,65533]);AR=new DT([173,907,909,930,1328,1424,1757,2111,2143,2229,2274,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3085,3089,3113,3141,3145,3159,3213,3217,3241,3252,3269,3273,3295,3312,3341,3345,3397,3401,3456,3460,3506,3516,3541,3543,3715,3717,3723,3748,3750,3781,3783,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5760,5901,5997,6001,6431,6751,7674,8024,8026,8028,8030,8117,8133,8156,8181,8335,11158,11311,11359,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12592,12687,12831,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65511]);AS=new DU([65536,65613,65616,65629,65664,65786,65792,65794,65799,65843,65847,65948,65952,65952,66000,66045,66176,66204,66208,66256,66272,66299,66304,66339,66349,66378,66384,66426,66432,66499,66504,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66927,66927,67072,67382,67392,67413,67424,67431,67584,67589,67592,67640,67644,67644,67647,67742,67751,67759,67808,67829,67835,67867,67871,67897,67903,67903,67968,68023,68028,68047,68050,68102,68108,68149,68152,68154,68159,68168,68176,68184,68192,68255,68288,68326,68331,68342,68352,68405,68409,68437,68440,68466,68472,68497,68505,68508,68521,68527,68608,68680,68736,68786,68800,68850,68858,68903,68912,68921,69216,69293,69296,69297,69376,69415,69424,69465,69552,69579,69600,69622,69632,69709,69714,69743,69759,69825,69840,69864,69872,69881,69888,69959,69968,70006,70016,70132,70144,70206,70272,70313,70320,70378,70384,70393,70400,70412,70415,70416,70419,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70753,70784,70855,70864,70873,71040,71093,71096,71133,71168,71236,71248,71257,71264,71276,71296,71352,71360,71369,71424,71450,71453,71467,71472,71487,71680,71739,71840,71922,71935,71942,71945,71945,71948,71992,71995,72006,72016,72025,72096,72103,72106,72151,72154,72164,72192,72263,72272,72354,72384,72440,72704,72773,72784,72812,72816,72847,72850,72886,72960,73014,73018,73031,73040,73049,73056,73112,73120,73129,73440,73464,73648,73648,73664,73713,73727,74649,74752,74868,74880,75075,77824,78894,82944,83526,92160,92728,92736,92777,92782,92783,92880,92909,92912,92917,92928,92997,93008,93047,93053,93071,93760,93850,93952,94026,94031,94087,94095,94111,94176,94180,94192,94193,94208,100343,100352,101589,101632,101640,110592,110878,110928,110930,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113820,113823,118784,119029,119040,119078,119081,119154,119163,119272,119296,119365,119520,119539,119552,119638,119648,119672,119808,119967,119970,119970,119973,119974,119977,120074,120077,120134,120138,120485,120488,120779,120782,121483,121499,121519,122880,122904,122907,122922,123136,123180,123184,123197,123200,123209,123214,123215,123584,123641,123647,123647,124928,125124,125127,125142,125184,125259,125264,125273,125278,125279,126065,126132,126209,126269,126464,126500,126503,126523,126530,126530,126535,126548,126551,126564,126567,126619,126625,126651,126704,126705,126976,127019,127024,127123,127136,127150,127153,127221,127232,127405,127462,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,128727,128736,128748,128752,128764,128768,128883,128896,128984,128992,129003,129024,129035,129040,129095,129104,129113,129120,129159,129168,129197,129200,129201,129280,129619,129632,129645,129648,129652,129656,129658,129664,129670,129680,129704,129712,129718,129728,129730,129744,129750,129792,129994,130032,130041,131072,173789,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101,196608,201546,917760,917999]);AT=new DT([12,39,59,62,399,926,2057,2102,2134,2291,2564,2580,2584,3711,3754,4285,4405,4576,4626,4743,4745,4750,4766,4868,4905,4913,4916,4922,5212,6420,6423,6454,7177,7223,7336,7431,7434,7483,7486,7526,7529,7567,7570,9327,27231,27482,27490,54357,54429,54445,54458,54460,54468,54534,54549,54557,54586,54591,54597,54609,55968,57351,57378,57381,60932,60960,60963,60968,60979,60984,60986,61000,61002,61004,61008,61011,61016,61018,61020,61022,61024,61027,61035,61043,61048,61053,61055,61066,61092,61098,61632,61648,63865,63948,64403]);AU=new DT([160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288]);AZ=$toNativeArray($kindUint64,[new $Uint64(0,1),new $Uint64(0,10),new $Uint64(0,100),new $Uint64(0,1000),new $Uint64(0,10000),new $Uint64(0,100000),new $Uint64(0,1000000),new $Uint64(0,10000000),new $Uint64(0,100000000),new $Uint64(0,1000000000),new $Uint64(2,1410065408),new $Uint64(23,1215752192),new $Uint64(232,3567587328),new $Uint64(2328,1316134912),new $Uint64(23283,276447232),new $Uint64(232830,2764472320),new $Uint64(2328306,1874919424),new $Uint64(23283064,1569325056),new $Uint64(232830643,2808348672),new $Uint64(2328306436,2313682944)]);BM=new BL.ptr(23,8,-127);BN=new BL.ptr(52,11,-1023);CD=$toNativeArray($kindArray,[$toNativeArray($kindUint64,[new $Uint64(389204073,3445679187),new $Uint64(4203730336,136053384)]),$toNativeArray($kindUint64,[new $Uint64(243252546,542936756),new $Uint64(2627331460,85033365)]),$toNativeArray($kindUint64,[new $Uint64(1377807506,2826154593),new $Uint64(3284164325,106291706)]),$toNativeArray($kindUint64,[new $Uint64(3869743031,1385209593),new $Uint64(4105205406,1206606456)]),$toNativeArray($kindUint64,[new $Uint64(2418589394,2476368732),new $Uint64(2565753378,3975354507)]),$toNativeArray($kindUint64,[new $Uint64(1949494919,947977267),new $Uint64(3207191723,2821709486)]),$toNativeArray($kindUint64,[new $Uint64(289385001,111229759),new $Uint64(4008989654,2453395034)]),$toNativeArray($kindUint64,[new $Uint64(1254607449,2753873159),new $Uint64(2505618534,459630072)]),$toNativeArray($kindUint64,[new $Uint64(1568259312,221115977),new $Uint64(3132023167,2722021238)]),$toNativeArray($kindUint64,[new $Uint64(4107807788,276394972),new $Uint64(3915028959,2328784723)]),$toNativeArray($kindUint64,[new $Uint64(2030508955,2320230505),new $Uint64(2446893099,3066103188)]),$toNativeArray($kindUint64,[new $Uint64(2538136194,1826546308),new $Uint64(3058616374,2758887161)]),$toNativeArray($kindUint64,[new $Uint64(4246412067,135699237),new $Uint64(3823270468,1301125303)]),$toNativeArray($kindUint64,[new $Uint64(4264620277,3842908407),new $Uint64(2389544042,2960686962)]),$toNativeArray($kindUint64,[new $Uint64(3183291699,1582410037),new $Uint64(2986930053,1553375055)]),$toNativeArray($kindUint64,[new $Uint64(2905372800,904270722),new $Uint64(3733662566,3015460643)]),$toNativeArray($kindUint64,[new $Uint64(1278987088,565169201),new $Uint64(2333539104,810921078)]),$toNativeArray($kindUint64,[new $Uint64(3746217508,706461501),new $Uint64(2916923880,1013651347)]),$toNativeArray($kindUint64,[new $Uint64(3609030061,883076877),new $Uint64(3646154850,1267064184)]),$toNativeArray($kindUint64,[new $Uint64(2255643788,1088793960),new $Uint64(2278846781,1865656939)]),$toNativeArray($kindUint64,[new $Uint64(1745812911,1360992450),new $Uint64(2848558476,3405812998)]),$toNativeArray($kindUint64,[new $Uint64(34782491,627498738),new $Uint64(3560698095,4257266248)]),$toNativeArray($kindUint64,[new $Uint64(21739056,4150283095),new $Uint64(2225436309,4271404141)]),$toNativeArray($kindUint64,[new $Uint64(1100915645,892886573),new $Uint64(2781795387,2118029704)]),$toNativeArray($kindUint64,[new $Uint64(1376144556,2189850041),new $Uint64(3477244234,1573795306)]),$toNativeArray($kindUint64,[new $Uint64(1933832171,3516139923),new $Uint64(2173277646,2057363890)]),$toNativeArray($kindUint64,[new $Uint64(269806566,3321433080),new $Uint64(2716597058,424221215)]),$toNativeArray($kindUint64,[new $Uint64(3558483680,2004307702),new $Uint64(3395746322,2677760166)]),$toNativeArray($kindUint64,[new $Uint64(2300620952,2505384628),new $Uint64(4244682903,1199716560)]),$toNativeArray($kindUint64,[new $Uint64(1437888095,1565865392),new $Uint64(2652926814,2360435586)]),$toNativeArray($kindUint64,[new $Uint64(3944843767,883589917),new $Uint64(3316158518,803060834)]),$toNativeArray($kindUint64,[new $Uint64(2783571061,30745572),new $Uint64(4145198147,3151309691)]),$toNativeArray($kindUint64,[new $Uint64(1202861001,556086894),new $Uint64(2590748842,1432697645)]),$toNativeArray($kindUint64,[new $Uint64(2577318075,1768850442),new $Uint64(3238436052,3938355704)]),$toNativeArray($kindUint64,[new $Uint64(3221647594,1137321229),new $Uint64(4048045066,627977334)]),$toNativeArray($kindUint64,[new $Uint64(939787922,1784567592),new $Uint64(2530028166,1466227658)]),$toNativeArray($kindUint64,[new $Uint64(3322218551,83225842),new $Uint64(3162535207,3980268220)]),$toNativeArray($kindUint64,[new $Uint64(4152773188,3325257774),new $Uint64(3953169009,3901593451)]),$toNativeArray($kindUint64,[new $Uint64(2058612330,4225769757),new $Uint64(2470730631,827883171)]),$toNativeArray($kindUint64,[new $Uint64(1499523589,3134728548),new $Uint64(3088413288,4256079436)]),$toNativeArray($kindUint64,[new $Uint64(1874404487,697185213),new $Uint64(3860516611,1025131999)]),$toNativeArray($kindUint64,[new $Uint64(2782115540,2046353494),new $Uint64(2412822882,103836587)]),$toNativeArray($kindUint64,[new $Uint64(2403902601,2557941868),new $Uint64(3016028602,2277279382)]),$toNativeArray($kindUint64,[new $Uint64(857394603,4271169159),new $Uint64(3770035753,699115580)]),$toNativeArray($kindUint64,[new $Uint64(2683355275,2132609812),new $Uint64(2356272345,3121301797)]),$toNativeArray($kindUint64,[new $Uint64(132968622,1592020441),new $Uint64(2945340432,680401775)]),$toNativeArray($kindUint64,[new $Uint64(3387436249,4137509200),new $Uint64(3681675540,850502218)]),$toNativeArray($kindUint64,[new $Uint64(3190889480,975330514),new $Uint64(2301047212,2679047534)]),$toNativeArray($kindUint64,[new $Uint64(1841128202,1219163142),new $Uint64(2876309015,3348809418)]),$toNativeArray($kindUint64,[new $Uint64(153926604,3671437576),new $Uint64(3595386269,3112269949)]),$toNativeArray($kindUint64,[new $Uint64(633075040,147164837),new $Uint64(2247116418,2482039630)]),$toNativeArray($kindUint64,[new $Uint64(2938827448,183956046),new $Uint64(2808895523,955065889)]),$toNativeArray($kindUint64,[new $Uint64(452308838,229945057),new $Uint64(3511119404,120090538)]),$toNativeArray($kindUint64,[new $Uint64(1356434847,3364941133),new $Uint64(2194449627,2222540234)]),$toNativeArray($kindUint64,[new $Uint64(3843027207,3132434592),new $Uint64(2743062034,1704433468)]),$toNativeArray($kindUint64,[new $Uint64(508816713,2841801416),new $Uint64(3428827542,4278025484)]),$toNativeArray($kindUint64,[new $Uint64(636020892,331026298),new $Uint64(4286034428,3200048207)]),$toNativeArray($kindUint64,[new $Uint64(2008125793,2354375084),new $Uint64(2678771517,4147513777)]),$toNativeArray($kindUint64,[new $Uint64(3583899065,4016710679),new $Uint64(3348464397,1963166749)]),$toNativeArray($kindUint64,[new $Uint64(1258648360,1799662877),new $Uint64(4185580496,3527700261)]),$toNativeArray($kindUint64,[new $Uint64(1323526137,1124789298),new $Uint64(2615987810,2204812663)]),$toNativeArray($kindUint64,[new $Uint64(580665847,2479728447),new $Uint64(3269984763,608532181)]),$toNativeArray($kindUint64,[new $Uint64(1799574133,2025918735),new $Uint64(4087480953,3981890698)]),$toNativeArray($kindUint64,[new $Uint64(2198475657,1803070121),new $Uint64(2554675596,878068950)]),$toNativeArray($kindUint64,[new $Uint64(600610923,3327579475),new $Uint64(3193344495,1097586188)]),$toNativeArray($kindUint64,[new $Uint64(750763654,3085732520),new $Uint64(3991680619,298240911)]),$toNativeArray($kindUint64,[new $Uint64(2079840020,854841001),new $Uint64(2494800386,3944496953)]),$toNativeArray($kindUint64,[new $Uint64(3673541849,1068551251),new $Uint64(3118500483,2783137543)]),$toNativeArray($kindUint64,[new $Uint64(3518185487,2409430888),new $Uint64(3898125604,2405180105)]),$toNativeArray($kindUint64,[new $Uint64(588253193,3116507041),new $Uint64(2436328502,3650721214)]),$toNativeArray($kindUint64,[new $Uint64(2882800140,674408330),new $Uint64(3045410628,2415917869)]),$toNativeArray($kindUint64,[new $Uint64(382274703,843010412),new $Uint64(3806763285,3019897337)]),$toNativeArray($kindUint64,[new $Uint64(2923276249,2137494243),new $Uint64(2379227053,2424306747)]),$toNativeArray($kindUint64,[new $Uint64(2580353487,3745609628),new $Uint64(2974033816,4104125258)]),$toNativeArray($kindUint64,[new $Uint64(1077958211,3608270211),new $Uint64(3717542271,835189277)]),$toNativeArray($kindUint64,[new $Uint64(1210594794,1718297970),new $Uint64(2323463919,2132606034)]),$toNativeArray($kindUint64,[new $Uint64(3660727141,388815),new $Uint64(2904329899,1592015718)]),$toNativeArray($kindUint64,[new $Uint64(2428425278,1074227842),new $Uint64(3630412374,916277824)]),$toNativeArray($kindUint64,[new $Uint64(1517765798,3892617873),new $Uint64(2269007733,3793899112)]),$toNativeArray($kindUint64,[new $Uint64(1897207248,2718288694),new $Uint64(2836259667,1521148418)]),$toNativeArray($kindUint64,[new $Uint64(224025412,3397860867),new $Uint64(3545324584,827693699)]),$toNativeArray($kindUint64,[new $Uint64(3898112266,4271146690),new $Uint64(2215827865,517308561)]),$toNativeArray($kindUint64,[new $Uint64(1651414861,3191449714),new $Uint64(2769784831,1720377526)]),$toNativeArray($kindUint64,[new $Uint64(4211752225,768086671),new $Uint64(3462231039,1076730083)]),$toNativeArray($kindUint64,[new $Uint64(2095474228,3164408729),new $Uint64(2163894399,2283569038)]),$toNativeArray($kindUint64,[new $Uint64(471859137,3955510912),new $Uint64(2704867999,1780719474)]),$toNativeArray($kindUint64,[new $Uint64(2737307570,1723163168),new $Uint64(3381084999,1152157518)]),$toNativeArray($kindUint64,[new $Uint64(1274150815,6470312),new $Uint64(4226356249,366455074)]),$toNativeArray($kindUint64,[new $Uint64(1870086083,1614656681),new $Uint64(2641472655,2913388981)]),$toNativeArray($kindUint64,[new $Uint64(3411349428,944579027),new $Uint64(3301840819,2567994402)]),$toNativeArray($kindUint64,[new $Uint64(2116703137,1180723784),new $Uint64(4127301024,2136251179)]),$toNativeArray($kindUint64,[new $Uint64(786068548,3422306925),new $Uint64(2579563140,1335156987)]),$toNativeArray($kindUint64,[new $Uint64(4203811157,4277883656),new $Uint64(3224453925,1668946233)]),$toNativeArray($kindUint64,[new $Uint64(2033538475,2126129098),new $Uint64(4030567406,3159924616)]),$toNativeArray($kindUint64,[new $Uint64(1270961547,791959774),new $Uint64(2519104629,901211061)]),$toNativeArray($kindUint64,[new $Uint64(2662443757,4211175190),new $Uint64(3148880786,2200255650)]),$toNativeArray($kindUint64,[new $Uint64(1180571049,2042743516),new $Uint64(3936100983,602835915)]),$toNativeArray($kindUint64,[new $Uint64(200985993,3961069257),new $Uint64(2460063114,1987385183)]),$toNativeArray($kindUint64,[new $Uint64(3472457964,1730111099),new $Uint64(3075078893,336747830)]),$toNativeArray($kindUint64,[new $Uint64(2193088807,2162638874),new $Uint64(3843848616,1494676612)]),$toNativeArray($kindUint64,[new $Uint64(3518164152,2962262032),new $Uint64(2402405385,934172882)]),$toNativeArray($kindUint64,[new $Uint64(2250221542,3702827541),new $Uint64(3003006731,2241457927)]),$toNativeArray($kindUint64,[new $Uint64(1739035104,2481050778),new $Uint64(3753758414,1728080585)]),$toNativeArray($kindUint64,[new $Uint64(3771251500,1550656736),new $Uint64(2346099009,6308541)]),$toNativeArray($kindUint64,[new $Uint64(1492838903,1938320920),new $Uint64(2932623761,1081627501)]),$toNativeArray($kindUint64,[new $Uint64(2939790453,1349159326),new $Uint64(3665779701,2425776200)]),$toNativeArray($kindUint64,[new $Uint64(1837369033,1380095491),new $Uint64(2291112313,2052981037)]),$toNativeArray($kindUint64,[new $Uint64(3370453115,2798861187),new $Uint64(2863890391,3639968120)]),$toNativeArray($kindUint64,[new $Uint64(4213066394,2424834660),new $Uint64(3579862989,3476218326)]),$toNativeArray($kindUint64,[new $Uint64(1559424672,2589263487),new $Uint64(2237414368,2709507366)]),$toNativeArray($kindUint64,[new $Uint64(4096764488,3236579358),new $Uint64(2796767960,3386884207)]),$toNativeArray($kindUint64,[new $Uint64(4047213786,4045724198),new $Uint64(3495959950,4233605259)]),$toNativeArray($kindUint64,[new $Uint64(1992637704,3602319448),new $Uint64(2184974969,1572261463)]),$toNativeArray($kindUint64,[new $Uint64(1417055307,207932014),new $Uint64(2731218711,3039068653)]),$toNativeArray($kindUint64,[new $Uint64(2845060957,3481140489),new $Uint64(3414023389,2725093992)]),$toNativeArray($kindUint64,[new $Uint64(3556326197,1130200140),new $Uint64(4267529237,185142018)]),$toNativeArray($kindUint64,[new $Uint64(3296445697,1243245999),new $Uint64(2667205773,652584673)]),$toNativeArray($kindUint64,[new $Uint64(899331649,2627799323),new $Uint64(3334007216,1889472666)]),$toNativeArray($kindUint64,[new $Uint64(3271648210,63523682),new $Uint64(4167509020,2361840832)]),$toNativeArray($kindUint64,[new $Uint64(2044780131,1113444125),new $Uint64(2604693137,3623634168)]),$toNativeArray($kindUint64,[new $Uint64(2555975164,318063332),new $Uint64(3255866422,1308317238)]),$toNativeArray($kindUint64,[new $Uint64(1047485307,397579165),new $Uint64(4069833027,3782880196)]),$toNativeArray($kindUint64,[new $Uint64(2802161964,4006583362),new $Uint64(2543645642,1827429210)]),$toNativeArray($kindUint64,[new $Uint64(1355218808,713261907),new $Uint64(3179557053,136802865)]),$toNativeArray($kindUint64,[new $Uint64(2767765334,891577384),new $Uint64(3974446316,1244745405)]),$toNativeArray($kindUint64,[new $Uint64(2266724245,3778461337),new $Uint64(2484028947,2925449526)]),$toNativeArray($kindUint64,[new $Uint64(685921659,1501851199),new $Uint64(3105036184,2583070084)]),$toNativeArray($kindUint64,[new $Uint64(857402074,803572175),new $Uint64(3881295230,3228837605)]),$toNativeArray($kindUint64,[new $Uint64(1072747208,1575974433),new $Uint64(2425809519,944281679)]),$toNativeArray($kindUint64,[new $Uint64(267192186,1969968041),new $Uint64(3032261899,106610275)]),$toNativeArray($kindUint64,[new $Uint64(3555215705,314976404),new $Uint64(3790327373,3354488315)]),$toNativeArray($kindUint64,[new $Uint64(1685138903,2881214812),new $Uint64(2368954608,2633426109)]),$toNativeArray($kindUint64,[new $Uint64(3180165453,2527776691),new $Uint64(2961193260,3291782636)]),$toNativeArray($kindUint64,[new $Uint64(3975206816,4233462688),new $Uint64(3701491575,4114728295)]),$toNativeArray($kindUint64,[new $Uint64(4095116996,2645914180),new $Uint64(2313432234,4182317920)]),$toNativeArray($kindUint64,[new $Uint64(823928949,3307392725),new $Uint64(2891790293,3080413753)]),$toNativeArray($kindUint64,[new $Uint64(2103653011,913015435),new $Uint64(3614737867,629291719)]),$toNativeArray($kindUint64,[new $Uint64(2925395868,33763735),new $Uint64(2259211166,4151403708)]),$toNativeArray($kindUint64,[new $Uint64(3656744835,42204668),new $Uint64(2824013958,3041770987)]),$toNativeArray($kindUint64,[new $Uint64(3497189219,3273981307),new $Uint64(3530017448,1654730086)]),$toNativeArray($kindUint64,[new $Uint64(1112001438,1509367405),new $Uint64(2206260905,1034206304)]),$toNativeArray($kindUint64,[new $Uint64(1390001797,4034192904),new $Uint64(2757826131,2366499704)]),$toNativeArray($kindUint64,[new $Uint64(1737502247,1821515659),new $Uint64(3447282664,1884382806)]),$toNativeArray($kindUint64,[new $Uint64(12197080,2749060022),new $Uint64(2154551665,1177739254)]),$toNativeArray($kindUint64,[new $Uint64(2162729998,3436325028),new $Uint64(2693189581,2545915891)]),$toNativeArray($kindUint64,[new $Uint64(1629670674,2147922637),new $Uint64(3366486976,4256136688)]),$toNativeArray($kindUint64,[new $Uint64(2037088343,537419649),new $Uint64(4208108721,1025203564)]),$toNativeArray($kindUint64,[new $Uint64(3420663862,1946500016),new $Uint64(2630067950,3325106787)]),$toNativeArray($kindUint64,[new $Uint64(3202088004,285641372),new $Uint64(3287584938,2008899836)]),$toNativeArray($kindUint64,[new $Uint64(4002610005,357051716),new $Uint64(4109481173,363641147)]),$toNativeArray($kindUint64,[new $Uint64(1964760341,760028234),new $Uint64(2568425733,764146629)]),$toNativeArray($kindUint64,[new $Uint64(3529692250,2023777117),new $Uint64(3210532166,2028925110)]),$toNativeArray($kindUint64,[new $Uint64(2264631665,382237748),new $Uint64(4013165208,388672740)]),$toNativeArray($kindUint64,[new $Uint64(3562878438,2923253152),new $Uint64(2508228255,242920462)]),$toNativeArray($kindUint64,[new $Uint64(2306114400,1506582793),new $Uint64(3135285318,3524876050)]),$toNativeArray($kindUint64,[new $Uint64(735159352,1883228491),new $Uint64(3919106648,2258611415)]),$toNativeArray($kindUint64,[new $Uint64(2070087331,1177017807),new $Uint64(2449441655,1411632134)]),$toNativeArray($kindUint64,[new $Uint64(440125516,397530434),new $Uint64(3061802069,690798344)]),$toNativeArray($kindUint64,[new $Uint64(550156895,496913043),new $Uint64(3827252586,1937239754)]),$toNativeArray($kindUint64,[new $Uint64(1417589883,1921183388),new $Uint64(2392032866,2284516670)]),$toNativeArray($kindUint64,[new $Uint64(3919471002,1327737411),new $Uint64(2990041083,708162189)]),$toNativeArray($kindUint64,[new $Uint64(1678113280,3807155412),new $Uint64(3737551353,4106428209)]),$toNativeArray($kindUint64,[new $Uint64(3733175360,2379472132),new $Uint64(2335969596,955904894)]),$toNativeArray($kindUint64,[new $Uint64(2518985552,2974340165),new $Uint64(2919961995,1194881118)]),$toNativeArray($kindUint64,[new $Uint64(1001248292,3717925207),new $Uint64(3649952494,419859574)]),$toNativeArray($kindUint64,[new $Uint64(3847005655,176219606),new $Uint64(2281220308,3483637705)]),$toNativeArray($kindUint64,[new $Uint64(1587531596,3441499980),new $Uint64(2851525386,59579836)]),$toNativeArray($kindUint64,[new $Uint64(1984414496,6907679),new $Uint64(3564406732,2221958443)]),$toNativeArray($kindUint64,[new $Uint64(703388148,4317299),new $Uint64(2227754207,3536207675)]),$toNativeArray($kindUint64,[new $Uint64(4100460657,5396624),new $Uint64(2784692759,3346517769)]),$toNativeArray($kindUint64,[new $Uint64(1904350349,1080487604),new $Uint64(3480865949,3109405388)]),$toNativeArray($kindUint64,[new $Uint64(3337702616,1212175664),new $Uint64(2175541218,2480249279)]),$toNativeArray($kindUint64,[new $Uint64(3098386446,1515219580),new $Uint64(2719426523,952827951)]),$toNativeArray($kindUint64,[new $Uint64(2799241233,4041508124),new $Uint64(3399283154,117293115)]),$toNativeArray($kindUint64,[new $Uint64(2425309718,1830659683),new $Uint64(4249103942,2294100042)]),$toNativeArray($kindUint64,[new $Uint64(2589560398,70420478),new $Uint64(2655689964,360070702)]),$toNativeArray($kindUint64,[new $Uint64(1089466849,2235509245),new $Uint64(3319612455,450088378)]),$toNativeArray($kindUint64,[new $Uint64(3509317209,3868128380),new $Uint64(4149515568,3783835944)]),$toNativeArray($kindUint64,[new $Uint64(2193323256,806967502),new $Uint64(2593447230,2364897465)]),$toNativeArray($kindUint64,[new $Uint64(3815395894,1008709377),new $Uint64(3241809038,808638183)]),$toNativeArray($kindUint64,[new $Uint64(3695503043,3408370369),new $Uint64(4052261297,3158281377)]),$toNativeArray($kindUint64,[new $Uint64(699076666,1593360569),new $Uint64(2532663311,363313125)]),$toNativeArray($kindUint64,[new $Uint64(1947587656,4139184359),new $Uint64(3165829138,3675366878)]),$toNativeArray($kindUint64,[new $Uint64(287000923,879013153),new $Uint64(3957286423,2446724950)]),$toNativeArray($kindUint64,[new $Uint64(3400601049,12512308),new $Uint64(2473304014,3139815829)]),$toNativeArray($kindUint64,[new $Uint64(1029525839,1089382210),new $Uint64(3091630018,1777286139)]),$toNativeArray($kindUint64,[new $Uint64(213165475,287985938),new $Uint64(3864537523,74124026)]),$toNativeArray($kindUint64,[new $Uint64(1206970245,3938087595),new $Uint64(2415335951,3804423900)]),$toNativeArray($kindUint64,[new $Uint64(1508712807,1701384022),new $Uint64(3019169939,3681788051)]),$toNativeArray($kindUint64,[new $Uint64(812149185,1052988204),new $Uint64(3773962424,3528493240)]),$toNativeArray($kindUint64,[new $Uint64(507593240,3342472187),new $Uint64(2358726515,2205308275)]),$toNativeArray($kindUint64,[new $Uint64(3855717022,4178090234),new $Uint64(2948408144,1682893519)]),$toNativeArray($kindUint64,[new $Uint64(3745904454,3075129145),new $Uint64(3685510180,2103616899)]),$toNativeArray($kindUint64,[new $Uint64(1804319372,848213891),new $Uint64(2303443862,3462244210)]),$toNativeArray($kindUint64,[new $Uint64(107915567,1060267364),new $Uint64(2879304828,2180321615)]),$toNativeArray($kindUint64,[new $Uint64(3356119931,251592381),new $Uint64(3599131035,2725402018)]),$toNativeArray($kindUint64,[new $Uint64(3171316780,3915341622),new $Uint64(2249456897,1166505349)]),$toNativeArray($kindUint64,[new $Uint64(742920504,599209732),new $Uint64(2811821121,2531873511)]),$toNativeArray($kindUint64,[new $Uint64(4149876102,749012165),new $Uint64(3514776401,4238583712)]),$toNativeArray($kindUint64,[new $Uint64(2593672563,3689358075),new $Uint64(2196735251,1038502084)]),$toNativeArray($kindUint64,[new $Uint64(3242090704,3537955770),new $Uint64(2745919064,224385781)]),$toNativeArray($kindUint64,[new $Uint64(831387909,127477416),new $Uint64(3432398830,280482227)]),$toNativeArray($kindUint64,[new $Uint64(4260460358,1233088594),new $Uint64(4290498537,2498086431)]),$toNativeArray($kindUint64,[new $Uint64(4273400459,3991905843),new $Uint64(2681561585,4245658579)]),$toNativeArray($kindUint64,[new $Uint64(4268008750,3916140480),new $Uint64(3351951982,2085847752)]),$toNativeArray($kindUint64,[new $Uint64(1040043642,2747691952),new $Uint64(4189939978,459826043)]),$toNativeArray($kindUint64,[new $Uint64(113156364,2791049294),new $Uint64(2618712486,1361133101)]),$toNativeArray($kindUint64,[new $Uint64(1215187279,3488811618),new $Uint64(3273390607,3848900024)]),$toNativeArray($kindUint64,[new $Uint64(1518984099,3287272698),new $Uint64(4091738259,3737383206)]),$toNativeArray($kindUint64,[new $Uint64(4170590534,1517674524),new $Uint64(2557336412,1798993591)]),$toNativeArray($kindUint64,[new $Uint64(4139496343,4044576803),new $Uint64(3196670515,2248741989)]),$toNativeArray($kindUint64,[new $Uint64(1953144957,3981979180),new $Uint64(3995838144,1737185663)]),$toNativeArray($kindUint64,[new $Uint64(2831328334,3025607900),new $Uint64(2497398840,1085741039)]),$toNativeArray($kindUint64,[new $Uint64(2465418594,1634526227),new $Uint64(3121748550,1357176299)]),$toNativeArray($kindUint64,[new $Uint64(2008031418,4190641431),new $Uint64(3902185687,3843954022)]),$toNativeArray($kindUint64,[new $Uint64(181277812,3692892718),new $Uint64(2438866054,4013084000)]),$toNativeArray($kindUint64,[new $Uint64(226597266,321148602),new $Uint64(3048582568,2868871352)]),$toNativeArray($kindUint64,[new $Uint64(283246582,2548919401),new $Uint64(3810728210,3586089190)]),$toNativeArray($kindUint64,[new $Uint64(3398254586,519332801),new $Uint64(2381705131,3315047567)]),$toNativeArray($kindUint64,[new $Uint64(3174076408,2796649650),new $Uint64(2977131414,3070067635)]),$toNativeArray($kindUint64,[new $Uint64(2893853686,3495812062),new $Uint64(3721414268,1690100896)]),$toNativeArray($kindUint64,[new $Uint64(1808658554,1111140715),new $Uint64(2325883917,3203796708)]),$toNativeArray($kindUint64,[new $Uint64(2260823192,3536409542),new $Uint64(2907354897,783520413)]),$toNativeArray($kindUint64,[new $Uint64(3899770815,125544631),new $Uint64(3634193621,2053142340)]),$toNativeArray($kindUint64,[new $Uint64(289873111,1689078130),new $Uint64(2271371013,1820084875)]),$toNativeArray($kindUint64,[new $Uint64(3583566861,1037605839),new $Uint64(2839213766,3348847917)]),$toNativeArray($kindUint64,[new $Uint64(1258233104,2370749123),new $Uint64(3549017208,2038576249)]),$toNativeArray($kindUint64,[new $Uint64(3470750250,1481718202),new $Uint64(2218135755,1274110155)]),$toNativeArray($kindUint64,[new $Uint64(3264695988,3999631400),new $Uint64(2772669694,518895870)]),$toNativeArray($kindUint64,[new $Uint64(1933386338,704571954),new $Uint64(3465837117,2796103486)]),$toNativeArray($kindUint64,[new $Uint64(134624637,1514099295),new $Uint64(2166148198,2284435591)]),$toNativeArray($kindUint64,[new $Uint64(3389506268,2966365943),new $Uint64(2707685248,708060840)]),$toNativeArray($kindUint64,[new $Uint64(4236882835,3707957429),new $Uint64(3384606560,885076050)]),$toNativeArray($kindUint64,[new $Uint64(3148619896,3561204962),new $Uint64(4230758200,1106345063)]),$toNativeArray($kindUint64,[new $Uint64(3578500171,2225753101),new $Uint64(2644223875,691465664)]),$toNativeArray($kindUint64,[new $Uint64(178157918,1708449553),new $Uint64(3305279843,4085557553)]),$toNativeArray($kindUint64,[new $Uint64(1296439221,4283045589),new $Uint64(4131599804,4033205117)]),$toNativeArray($kindUint64,[new $Uint64(1347145425,3213774405),new $Uint64(2582249878,373269550)]),$toNativeArray($kindUint64,[new $Uint64(3831415430,795992534),new $Uint64(3227812347,2614070585)]),$toNativeArray($kindUint64,[new $Uint64(1568043815,3142474316),new $Uint64(4034765434,2193846408)]),$toNativeArray($kindUint64,[new $Uint64(980027384,3574659183),new $Uint64(2521728396,2444895829)]),$toNativeArray($kindUint64,[new $Uint64(2298776055,173356683),new $Uint64(3152160495,3056119786)]),$toNativeArray($kindUint64,[new $Uint64(725986420,3437921326),new $Uint64(3940200619,2746407909)]),$toNativeArray($kindUint64,[new $Uint64(990612425,1217181),new $Uint64(2462625387,1179634031)]),$toNativeArray($kindUint64,[new $Uint64(164523707,1075263300),new $Uint64(3078281734,400800715)]),$toNativeArray($kindUint64,[new $Uint64(3426880106,270337301),new $Uint64(3847852167,2648484541)]),$toNativeArray($kindUint64,[new $Uint64(2678670978,1242702637),new $Uint64(2404907604,3265915574)]),$toNativeArray($kindUint64,[new $Uint64(1200855074,3700861945),new $Uint64(3006134505,4082394468)]),$toNativeArray($kindUint64,[new $Uint64(1501068843,2478593783),new $Uint64(3757668132,1881767613)]),$toNativeArray($kindUint64,[new $Uint64(1475038939,1012250202),new $Uint64(2348542582,3323588406)]),$toNativeArray($kindUint64,[new $Uint64(3991282322,191570929),new $Uint64(2935678228,2007001859)]),$toNativeArray($kindUint64,[new $Uint64(3915361078,2386947309),new $Uint64(3669597785,2508752324)]),$toNativeArray($kindUint64,[new $Uint64(299617026,418100244),new $Uint64(2293498615,4252324763)]),$toNativeArray($kindUint64,[new $Uint64(3595746754,2670108953),new $Uint64(2866873269,4241664129)]),$toNativeArray($kindUint64,[new $Uint64(1273457971,1190152543),new $Uint64(3583591587,2080854690)]),$toNativeArray($kindUint64,[new $Uint64(1869653056,206974427),new $Uint64(2239744742,763663269)]),$toNativeArray($kindUint64,[new $Uint64(3410808144,258718034),new $Uint64(2799680927,3102062734)]),$toNativeArray($kindUint64,[new $Uint64(2116026532,323397543),new $Uint64(3499601159,2803836594)]),$toNativeArray($kindUint64,[new $Uint64(2396258406,2349607112),new $Uint64(2187250724,3363010607)]),$toNativeArray($kindUint64,[new $Uint64(1921581184,789525242),new $Uint64(2734063405,4203763259)]),$toNativeArray($kindUint64,[new $Uint64(1328234656,986906553),new $Uint64(3417579257,2033478602)]),$toNativeArray($kindUint64,[new $Uint64(3807776968,1233633192),new $Uint64(4271974071,3615590076)]),$toNativeArray($kindUint64,[new $Uint64(232376957,771020745),new $Uint64(2669983794,3870356534)]),$toNativeArray($kindUint64,[new $Uint64(2437954844,2037517755),new $Uint64(3337479743,2690462019)]),$toNativeArray($kindUint64,[new $Uint64(1973701731,2546897194),new $Uint64(4171849679,2289335700)]),$toNativeArray($kindUint64,[new $Uint64(3381047230,1054939834),new $Uint64(2607406049,3041447548)]),$toNativeArray($kindUint64,[new $Uint64(4226309037,3466158440),new $Uint64(3259257562,580583963)]),$toNativeArray($kindUint64,[new $Uint64(4209144473,1111472579),new $Uint64(4074071952,2873213602)]),$toNativeArray($kindUint64,[new $Uint64(3704457119,3379024922),new $Uint64(2546294970,1795758501)]),$toNativeArray($kindUint64,[new $Uint64(1409345927,3150039328),new $Uint64(3182868713,97214479)]),$toNativeArray($kindUint64,[new $Uint64(687940585,2863807336),new $Uint64(3978585891,1195259923)]),$toNativeArray($kindUint64,[new $Uint64(4188059250,179266849),new $Uint64(2486616182,210166539)]),$toNativeArray($kindUint64,[new $Uint64(4161332238,2371567209),new $Uint64(3108270227,2410191822)]),$toNativeArray($kindUint64,[new $Uint64(3054181650,816975364),new $Uint64(3885337784,1938997954)]),$toNativeArray($kindUint64,[new $Uint64(2982605355,1584351426),new $Uint64(2428336115,1211873721)]),$toNativeArray($kindUint64,[new $Uint64(507031222,906697459),new $Uint64(3035420144,441100328)]),$toNativeArray($kindUint64,[new $Uint64(633789027,3280855472),new $Uint64(3794275180,551375410)]),$toNativeArray($kindUint64,[new $Uint64(1469859966,1513663758),new $Uint64(2371421987,2492093279)]),$toNativeArray($kindUint64,[new $Uint64(763583133,4039563345),new $Uint64(2964277484,2041374775)]),$toNativeArray($kindUint64,[new $Uint64(4175704389,1828228709),new $Uint64(3705346855,2551718468)]),$toNativeArray($kindUint64,[new $Uint64(462331595,1679513855),new $Uint64(2315841784,3205436779)]),$toNativeArray($kindUint64,[new $Uint64(3799139966,1025650495),new $Uint64(2894802230,4006795973)]),$toNativeArray($kindUint64,[new $Uint64(1527699485,3429546767),new $Uint64(3618502788,2861011319)]),$toNativeArray($kindUint64,[new $Uint64(2565424914,2680337641),new $Uint64(2261564242,3935615722)]),$toNativeArray($kindUint64,[new $Uint64(1059297495,1202938404),new $Uint64(2826955303,2772036005)]),$toNativeArray($kindUint64,[new $Uint64(2397863693,429931181),new $Uint64(3533694129,2391303182)]),$toNativeArray($kindUint64,[new $Uint64(424922984,805577900),new $Uint64(2208558830,4178919049)]),$toNativeArray($kindUint64,[new $Uint64(1604895554,1006972375),new $Uint64(2760698538,3076165163)]),$toNativeArray($kindUint64,[new $Uint64(932377618,3406199117),new $Uint64(3450873173,1697722806)]),$toNativeArray($kindUint64,[new $Uint64(3803961483,3202616272),new $Uint64(2156795733,1597947665)]),$toNativeArray($kindUint64,[new $Uint64(1533726382,2929528516),new $Uint64(2695994666,3071176406)]),$toNativeArray($kindUint64,[new $Uint64(4064641626,1514426997),new $Uint64(3369993333,1691486859)]),$toNativeArray($kindUint64,[new $Uint64(4007060208,4040517394),new $Uint64(4212491666,3188100398)]),$toNativeArray($kindUint64,[new $Uint64(1430670806,2525323371),new $Uint64(2632807291,3066304573)]),$toNativeArray($kindUint64,[new $Uint64(2862080332,1009170566),new $Uint64(3291009114,2759138892)]),$toNativeArray($kindUint64,[new $Uint64(3577600415,1261463208),new $Uint64(4113761393,1301439967)]),$toNativeArray($kindUint64,[new $Uint64(3846612995,2399027241),new $Uint64(2571100870,3497754539)]),$toNativeArray($kindUint64,[new $Uint64(3734524420,1925042227),new $Uint64(3213876088,2224709526)]),$toNativeArray($kindUint64,[new $Uint64(2520671877,2406302784),new $Uint64(4017345110,2780886908)]),$toNativeArray($kindUint64,[new $Uint64(3722903571,2040810152),new $Uint64(2510840694,664312493)]),$toNativeArray($kindUint64,[new $Uint64(1432403992,1477270866),new $Uint64(3138550867,2977874265)]),$toNativeArray($kindUint64,[new $Uint64(2864246814,1846588582),new $Uint64(3923188584,2648601007)]),$toNativeArray($kindUint64,[new $Uint64(3400766995,80376040),new $Uint64(2451992865,1655375629)]),$toNativeArray($kindUint64,[new $Uint64(1029733271,3321695522),new $Uint64(3064991081,3142961361)]),$toNativeArray($kindUint64,[new $Uint64(2360908413,3078377578),new $Uint64(3831238852,707476229)]),$toNativeArray($kindUint64,[new $Uint64(2012438670,2460856898),new $Uint64(2394524282,2589656291)]),$toNativeArray($kindUint64,[new $Uint64(1441806514,928587475),new $Uint64(2993155353,1089586716)]),$toNativeArray($kindUint64,[new $Uint64(1802258142,3308217992),new $Uint64(3741444191,2435725219)]),$toNativeArray($kindUint64,[new $Uint64(589540427,993894421),new $Uint64(2338402619,3132940998)]),$toNativeArray($kindUint64,[new $Uint64(2884409182,168626202),new $Uint64(2923003274,2842434423)]),$toNativeArray($kindUint64,[new $Uint64(2531769653,2358266401),new $Uint64(3653754093,1405559381)]),$toNativeArray($kindUint64,[new $Uint64(2119226945,2010787412),new $Uint64(2283596308,1415345525)]),$toNativeArray($kindUint64,[new $Uint64(3722775505,3587226089),new $Uint64(2854495385,1769181906)]),$toNativeArray($kindUint64,[new $Uint64(2505985734,1262807140),new $Uint64(3568119231,3285219207)]),$toNativeArray($kindUint64,[new $Uint64(3176853819,4010479934),new $Uint64(2230074519,3663874740)]),$toNativeArray($kindUint64,[new $Uint64(3971067274,3939358094),new $Uint64(2787593149,3506101601)]),$toNativeArray($kindUint64,[new $Uint64(1742608621,2776713970),new $Uint64(3484491437,1161401530)]),$toNativeArray($kindUint64,[new $Uint64(2162872212,2272317143),new $Uint64(2177807148,1262746868)]),$toNativeArray($kindUint64,[new $Uint64(2703590265,2840396429),new $Uint64(2722258935,1578433585)]),$toNativeArray($kindUint64,[new $Uint64(158262360,329270064),new $Uint64(3402823669,899300158)]),$toNativeArray($kindUint64,[new $Uint64(2345311598,411587580),new $Uint64(4253529586,2197867021)]),$toNativeArray($kindUint64,[new $Uint64(2002690660,3478467709),new $Uint64(2658455991,2447408712)]),$toNativeArray($kindUint64,[new $Uint64(2503363326,53117341),new $Uint64(3323069989,1985519066)]),$toNativeArray($kindUint64,[new $Uint64(981720509,2213880324),new $Uint64(4153837486,3555640657)]),$toNativeArray($kindUint64,[new $Uint64(3297929878,1920546114),new $Uint64(2596148429,1148533586)]),$toNativeArray($kindUint64,[new $Uint64(1974928700,253198995),new $Uint64(3245185536,2509408807)]),$toNativeArray($kindUint64,[new $Uint64(1394919051,316498744),new $Uint64(4056481920,3136761009)]),$toNativeArray($kindUint64,[new $Uint64(3556178966,3955908099),new $Uint64(2535301200,1960475630)]),$toNativeArray($kindUint64,[new $Uint64(2297740060,2797401476),new $Uint64(3169126500,2450594538)]),$toNativeArray($kindUint64,[new $Uint64(724691427,3496751845),new $Uint64(3961408125,3063243173)]),$toNativeArray($kindUint64,[new $Uint64(989803054,1648598991),new $Uint64(2475880078,2451397895)]),$toNativeArray($kindUint64,[new $Uint64(163511993,4208232386),new $Uint64(3094850098,916763721)]),$toNativeArray($kindUint64,[new $Uint64(1278131816,2039065011),new $Uint64(3868562622,3293438299)]),$toNativeArray($kindUint64,[new $Uint64(261961473,1274415632),new $Uint64(2417851639,984657113)]),$toNativeArray($kindUint64,[new $Uint64(1401193665,2666761364),new $Uint64(3022314549,157079567)]),$toNativeArray($kindUint64,[new $Uint64(677750258,112226233),new $Uint64(3777893186,1270091283)]),$toNativeArray($kindUint64,[new $Uint64(4181690295,1143883219),new $Uint64(2361183241,1867548875)]),$toNativeArray($kindUint64,[new $Uint64(4153371045,356112200),new $Uint64(2951479051,3408177918)]),$toNativeArray($kindUint64,[new $Uint64(3044230158,1518882075),new $Uint64(3689348814,3186480574)]),$toNativeArray($kindUint64,[new $Uint64(828902024,4170526768),new $Uint64(2305843009,917808535)]),$toNativeArray($kindUint64,[new $Uint64(4257353003,918191165),new $Uint64(2882303761,2221002492)]),$toNativeArray($kindUint64,[new $Uint64(1026723958,73997132),new $Uint64(3602879701,3849994940)]),$toNativeArray($kindUint64,[new $Uint64(2789186121,3267473679),new $Uint64(2251799813,2943117749)]),$toNativeArray($kindUint64,[new $Uint64(265257180,863116627),new $Uint64(2814749767,457671715)]),$toNativeArray($kindUint64,[new $Uint64(3552796947,1078895784),new $Uint64(3518437208,3793315115)]),$toNativeArray($kindUint64,[new $Uint64(1683627180,137438953),new $Uint64(2199023255,2370821947)]),$toNativeArray($kindUint64,[new $Uint64(1030792151,171798691),new $Uint64(2748779069,1889785610)]),$toNativeArray($kindUint64,[new $Uint64(3435973836,3435973836),new $Uint64(3435973836,3435973836)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2147483648,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2684354560,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(3355443200,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(4194304000,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2621440000,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(3276800000,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(4096000000,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2560000000,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(3200000000,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(4000000000,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2500000000,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(3125000000,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(3906250000,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2441406250,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(3051757812,2147483648)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(3814697265,2684354560)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2384185791,67108864)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2980232238,3305111552)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(3725290298,1983905792)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2328306436,2313682944)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2910383045,2892103680)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(3637978807,393904128)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2273736754,1856802816)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2842170943,173519872)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(3552713678,3438125312)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2220446049,1075086496)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(2775557561,2417599944)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(3469446951,4095741754)]),$toNativeArray($kindUint64,[new $Uint64(1073741824,0),new $Uint64(2168404344,4170451332)]),$toNativeArray($kindUint64,[new $Uint64(1342177280,0),new $Uint64(2710505431,918096869)]),$toNativeArray($kindUint64,[new $Uint64(2751463424,0),new $Uint64(3388131789,73879262)]),$toNativeArray($kindUint64,[new $Uint64(1291845632,0),new $Uint64(4235164736,1166090902)]),$toNativeArray($kindUint64,[new $Uint64(4028628992,0),new $Uint64(2646977960,728806813)]),$toNativeArray($kindUint64,[new $Uint64(1814560768,0),new $Uint64(3308722450,911008517)]),$toNativeArray($kindUint64,[new $Uint64(3341942784,0),new $Uint64(4135903062,3286244294)]),$toNativeArray($kindUint64,[new $Uint64(1014972416,0),new $Uint64(2584939414,980160860)]),$toNativeArray($kindUint64,[new $Uint64(1268715520,0),new $Uint64(3231174267,3372684723)]),$toNativeArray($kindUint64,[new $Uint64(512152576,0),new $Uint64(4038967834,3142114080)]),$toNativeArray($kindUint64,[new $Uint64(320095360,0),new $Uint64(2524354896,3037563124)]),$toNativeArray($kindUint64,[new $Uint64(400119200,0),new $Uint64(3155443620,3796953905)]),$toNativeArray($kindUint64,[new $Uint64(1573890824,0),new $Uint64(3944304526,451225085)]),$toNativeArray($kindUint64,[new $Uint64(1520552677,0),new $Uint64(2465190328,3503241150)]),$toNativeArray($kindUint64,[new $Uint64(4048174494,1073741824),new $Uint64(3081487911,84084141)]),$toNativeArray($kindUint64,[new $Uint64(1838992645,3489660928),new $Uint64(3851859888,3326330649)]),$toNativeArray($kindUint64,[new $Uint64(3833724963,2717908992),new $Uint64(2407412430,2078956655)]),$toNativeArray($kindUint64,[new $Uint64(3718414380,2323644416),new $Uint64(3009265538,451212171)]),$toNativeArray($kindUint64,[new $Uint64(3574276151,2904555520),new $Uint64(3761581922,2711498862)]),$toNativeArray($kindUint64,[new $Uint64(1160180770,3425959936),new $Uint64(2350988701,2768428613)]),$toNativeArray($kindUint64,[new $Uint64(2523967787,2134966272),new $Uint64(2938735877,239310294)]),$toNativeArray($kindUint64,[new $Uint64(1007476086,1594966016),new $Uint64(3673419846,1372879692)]),$toNativeArray($kindUint64,[new $Uint64(2777156201,4218079232),new $Uint64(2295887403,4079275279)]),$toNativeArray($kindUint64,[new $Uint64(2397703428,2051373568),new $Uint64(2869859254,4025352275)]),$toNativeArray($kindUint64,[new $Uint64(1923387461,2564216960),new $Uint64(3587324068,2884206696)]),$toNativeArray($kindUint64,[new $Uint64(1202117163,2139506512),new $Uint64(2242077542,3950112833)]),$toNativeArray($kindUint64,[new $Uint64(2576388278,1600641316),new $Uint64(2802596928,2790157393)]),$toNativeArray($kindUint64,[new $Uint64(4294227171,4148285293),new $Uint64(3503246160,3487696741)]),$toNativeArray($kindUint64,[new $Uint64(3220762894,2055807396),new $Uint64(2189528850,2179810463)]),$toNativeArray($kindUint64,[new $Uint64(2952211794,422275597),new $Uint64(2736911063,577279431)]),$toNativeArray($kindUint64,[new $Uint64(2616522918,2675328144),new $Uint64(3421138828,3942824761)]),$toNativeArray($kindUint64,[new $Uint64(49428176,1196676532),new $Uint64(4276423536,633563656)]),$toNativeArray($kindUint64,[new $Uint64(30892610,747922832),new $Uint64(2672764710,395977285)]),$toNativeArray($kindUint64,[new $Uint64(1112357586,3082387189),new $Uint64(3340955887,2642455254)]),$toNativeArray($kindUint64,[new $Uint64(3537930631,1705500338),new $Uint64(4176194859,2229327243)]),$toNativeArray($kindUint64,[new $Uint64(1674335732,2676550447),new $Uint64(2610121787,856458615)]),$toNativeArray($kindUint64,[new $Uint64(1019177841,3345688059),new $Uint64(3262652233,4291798741)]),$toNativeArray($kindUint64,[new $Uint64(2347714126,960884602),new $Uint64(4078315292,2143522954)]),$toNativeArray($kindUint64,[new $Uint64(2541063152,3821778348),new $Uint64(2548947057,3487185494)]),$toNativeArray($kindUint64,[new $Uint64(1028845293,482255639),new $Uint64(3186183822,1137756396)]),$toNativeArray($kindUint64,[new $Uint64(1286056616,1676561373),new $Uint64(3982729777,3569679143)]),$toNativeArray($kindUint64,[new $Uint64(2414398121,1047850858),new $Uint64(2489206111,620436728)]),$toNativeArray($kindUint64,[new $Uint64(3017997651,2383555396),new $Uint64(3111507638,3996771382)]),$toNativeArray($kindUint64,[new $Uint64(1625013416,1905702422),new $Uint64(3889384548,2848480580)]),$toNativeArray($kindUint64,[new $Uint64(3163117033,1191064013),new $Uint64(2430865342,3927784010)]),$toNativeArray($kindUint64,[new $Uint64(1806412643,2562571841),new $Uint64(3038581678,2762246365)]),$toNativeArray($kindUint64,[new $Uint64(3331757628,2129472977),new $Uint64(3798227098,1305324308)]),$toNativeArray($kindUint64,[new $Uint64(4229832165,3478404258),new $Uint64(2373891936,1889569516)]),$toNativeArray($kindUint64,[new $Uint64(992322911,1126779851),new $Uint64(2967364920,2361961896)]),$toNativeArray($kindUint64,[new $Uint64(1240403639,334732990),new $Uint64(3709206150,2952452370)]),$toNativeArray($kindUint64,[new $Uint64(1848994098,1819820855),new $Uint64(2318253844,771540907)]),$toNativeArray($kindUint64,[new $Uint64(1237500799,127292420),new $Uint64(2897817305,964426134)]),$toNativeArray($kindUint64,[new $Uint64(3694359646,3380340998),new $Uint64(3622271631,2279274491)]),$toNativeArray($kindUint64,[new $Uint64(1772103867,1038971299),new $Uint64(2263919769,3035159293)]),$toNativeArray($kindUint64,[new $Uint64(3288871658,224972300),new $Uint64(2829899712,572723644)]),$toNativeArray($kindUint64,[new $Uint64(4111089572,2428699024),new $Uint64(3537374640,715904555)]),$toNativeArray($kindUint64,[new $Uint64(2032560070,3665420538),new $Uint64(2210859150,447440347)]),$toNativeArray($kindUint64,[new $Uint64(1466958264,2434292024),new $Uint64(2763573937,2706784082)]),$toNativeArray($kindUint64,[new $Uint64(3981181478,3042865030),new $Uint64(3454467422,162254630)]),$toNativeArray($kindUint64,[new $Uint64(1414496600,828048820),new $Uint64(2159042138,3322634616)]),$toNativeArray($kindUint64,[new $Uint64(1768120750,1035061025),new $Uint64(2698802673,2005809622)]),$toNativeArray($kindUint64,[new $Uint64(62667289,3441309929),new $Uint64(3373503341,3581003852)]),$toNativeArray($kindUint64,[new $Uint64(78334112,1080411939),new $Uint64(4216879177,1255029343)]),$toNativeArray($kindUint64,[new $Uint64(1659571556,675257462),new $Uint64(2635549485,3468747899)]),$toNativeArray($kindUint64,[new $Uint64(1000722621,844071828),new $Uint64(3294436857,1114709402)]),$toNativeArray($kindUint64,[new $Uint64(3398386924,2128831609),new $Uint64(4118046071,2467128576)]),$toNativeArray($kindUint64,[new $Uint64(2123991827,3478003403),new $Uint64(2573778794,3152568096)]),$toNativeArray($kindUint64,[new $Uint64(2654989784,3273762430),new $Uint64(3217223493,1793226472)]),$toNativeArray($kindUint64,[new $Uint64(3318737230,4092203038),new $Uint64(4021529366,3315274914)]),$toNativeArray($kindUint64,[new $Uint64(3147952593,1483885074),new $Uint64(2513455854,998304997)]),$toNativeArray($kindUint64,[new $Uint64(713715269,2928598167),new $Uint64(3141819817,3395364895)]),$toNativeArray($kindUint64,[new $Uint64(4113369559,439522237),new $Uint64(3927274772,1022980646)]),$toNativeArray($kindUint64,[new $Uint64(1497114150,1885314134),new $Uint64(2454546732,2786846552)]),$toNativeArray($kindUint64,[new $Uint64(1871392688,209159020),new $Uint64(3068183415,3483558190)]),$toNativeArray($kindUint64,[new $Uint64(191757212,261448775),new $Uint64(3835229269,3280705914)]),$toNativeArray($kindUint64,[new $Uint64(1193590081,2310889132),new $Uint64(2397018293,2587312108)]),$toNativeArray($kindUint64,[new $Uint64(1491987601,3962353239),new $Uint64(2996272867,12914663)]),$toNativeArray($kindUint64,[new $Uint64(791242678,1731716077),new $Uint64(3745341083,3237368801)]),$toNativeArray($kindUint64,[new $Uint64(3178881234,8580724),new $Uint64(2340838177,1486484588)]),$toNativeArray($kindUint64,[new $Uint64(3973601542,2158209553),new $Uint64(2926047721,2931847559)]),$toNativeArray($kindUint64,[new $Uint64(3893260104,550278293),new $Uint64(3657559652,443583977)]),$toNativeArray($kindUint64,[new $Uint64(822674829,343923933),new $Uint64(2285974782,2424723634)]),$toNativeArray($kindUint64,[new $Uint64(3175827184,1503646741),new $Uint64(2857468478,883420894)]),$toNativeArray($kindUint64,[new $Uint64(1822300332,1879558426),new $Uint64(3571835597,3251759766)]),$toNativeArray($kindUint64,[new $Uint64(65195883,3322207664),new $Uint64(2232397248,2569220766)]),$toNativeArray($kindUint64,[new $Uint64(2228978502,3079017756),new $Uint64(2790496560,3211525957)]),$toNativeArray($kindUint64,[new $Uint64(3859964952,1701288547),new $Uint64(3488120700,4014407446)]),$toNativeArray($kindUint64,[new $Uint64(1338736271,1063305342),new $Uint64(2180075438,361521006)]),$toNativeArray($kindUint64,[new $Uint64(3820903987,255389853),new $Uint64(2725094297,2599384905)]),$toNativeArray($kindUint64,[new $Uint64(1554904511,3540462789),new $Uint64(3406367872,28005660)]),$toNativeArray($kindUint64,[new $Uint64(1943630639,3351836662),new $Uint64(4257959840,35007075)]),$toNativeArray($kindUint64,[new $Uint64(677898237,3705510650),new $Uint64(2661224900,21879422)]),$toNativeArray($kindUint64,[new $Uint64(2994856445,1410662840),new $Uint64(3326531125,27349277)]),$toNativeArray($kindUint64,[new $Uint64(522345084,2837070374),new $Uint64(4158163906,1107928421)]),$toNativeArray($kindUint64,[new $Uint64(863336589,3920652632),new $Uint64(2598852441,1766197087)]),$toNativeArray($kindUint64,[new $Uint64(5428913,1679590318),new $Uint64(3248565551,3281488183)]),$toNativeArray($kindUint64,[new $Uint64(3228011613,3173229722),new $Uint64(4060706939,3028118404)]),$toNativeArray($kindUint64,[new $Uint64(4164990906,2520139488),new $Uint64(2537941837,1355703090)]),$toNativeArray($kindUint64,[new $Uint64(3058754985,1002690712),new $Uint64(3172427296,2768370687)]),$toNativeArray($kindUint64,[new $Uint64(2749701907,2327105214),new $Uint64(3965534120,3460463359)]),$toNativeArray($kindUint64,[new $Uint64(3329176428,917569847),new $Uint64(2478458825,2162789599)]),$toNativeArray($kindUint64,[new $Uint64(3087728711,1146962308),new $Uint64(3098073531,3777228823)]),$toNativeArray($kindUint64,[new $Uint64(2785919065,359961061),new $Uint64(3872591914,3647794205)]),$toNativeArray($kindUint64,[new $Uint64(2278070327,2909330223),new $Uint64(2420369946,3353613202)]),$toNativeArray($kindUint64,[new $Uint64(700104261,2562920955),new $Uint64(3025462433,2044532855)]),$toNativeArray($kindUint64,[new $Uint64(4096355798,4277393018),new $Uint64(3781828041,3629407892)]),$toNativeArray($kindUint64,[new $Uint64(412738726,1599628812),new $Uint64(2363642526,657767197)]),$toNativeArray($kindUint64,[new $Uint64(1589665231,4147019663),new $Uint64(2954553157,2969692644)]),$toNativeArray($kindUint64,[new $Uint64(1987081539,4110032755),new $Uint64(3693191447,490890333)]),$toNativeArray($kindUint64,[new $Uint64(1778796874,2031899560),new $Uint64(2308244654,1917419194)]),$toNativeArray($kindUint64,[new $Uint64(76012445,392390802),new $Uint64(2885305818,249290345)]),$toNativeArray($kindUint64,[new $Uint64(1168757380,1564230326),new $Uint64(3606632272,2459096579)]),$toNativeArray($kindUint64,[new $Uint64(193602450,3125127602),new $Uint64(2254145170,1536935362)]),$toNativeArray($kindUint64,[new $Uint64(2389486711,1758925854),new $Uint64(2817681462,4068652850)]),$toNativeArray($kindUint64,[new $Uint64(839374741,1124915494),new $Uint64(3522101828,2938332415)]),$toNativeArray($kindUint64,[new $Uint64(2135221949,1239943096),new $Uint64(2201313642,3983941407)]),$toNativeArray($kindUint64,[new $Uint64(1595285612,2623670694),new $Uint64(2751642053,2832443111)]),$toNativeArray($kindUint64,[new $Uint64(920365191,3279588367),new $Uint64(3439552567,319328417)]),$toNativeArray($kindUint64,[new $Uint64(3259582804,3660355465),new $Uint64(2149720354,1810192996)]),$toNativeArray($kindUint64,[new $Uint64(4074478506,280477036),new $Uint64(2687150443,115257597)]),$toNativeArray($kindUint64,[new $Uint64(1871872660,2498079943),new $Uint64(3358938053,3365297469)]),$toNativeArray($kindUint64,[new $Uint64(3413582649,3122599929),new $Uint64(4198672567,985396364)]),$toNativeArray($kindUint64,[new $Uint64(4280972804,341012219),new $Uint64(2624170354,2226485463)]),$toNativeArray($kindUint64,[new $Uint64(4277474181,426265274),new $Uint64(3280212943,635623181)]),$toNativeArray($kindUint64,[new $Uint64(2125617254,1606573417),new $Uint64(4100266178,4015754449)]),$toNativeArray($kindUint64,[new $Uint64(4012865343,4225333857),new $Uint64(2562666361,3583588354)]),$toNativeArray($kindUint64,[new $Uint64(2868598031,4207925498),new $Uint64(3203332952,1258259971)]),$toNativeArray($kindUint64,[new $Uint64(2512005715,4186165048),new $Uint64(4004166190,1572824964)]),$toNativeArray($kindUint64,[new $Uint64(3717487220,2079482243),new $Uint64(2502603868,4204241074)]),$toNativeArray($kindUint64,[new $Uint64(2499375377,2599352804),new $Uint64(3128254836,960334047)]),$toNativeArray($kindUint64,[new $Uint64(2050477398,27965533),new $Uint64(3910318545,1200417559)]),$toNativeArray($kindUint64,[new $Uint64(2892161109,3238703930),new $Uint64(2443949090,3434615534)]),$toNativeArray($kindUint64,[new $Uint64(1467717739,827154441),new $Uint64(3054936363,2145785770)]),$toNativeArray($kindUint64,[new $Uint64(3982130821,4255168523),new $Uint64(3818670454,1608490388)]),$toNativeArray($kindUint64,[new $Uint64(341348115,3196351239),new $Uint64(2386669033,4226531965)]),$toNativeArray($kindUint64,[new $Uint64(1500426968,2921697224),new $Uint64(2983336292,2061939484)]),$toNativeArray($kindUint64,[new $Uint64(1875533710,3652121531),new $Uint64(3729170365,2577424355)]),$toNativeArray($kindUint64,[new $Uint64(635337657,1208834132),new $Uint64(2330731478,2147761134)]),$toNativeArray($kindUint64,[new $Uint64(2941655719,2584784490),new $Uint64(2913414348,537217769)]),$toNativeArray($kindUint64,[new $Uint64(455844177,2157238788),new $Uint64(3641767935,671522212)]),$toNativeArray($kindUint64,[new $Uint64(2432386258,4032628802),new $Uint64(2276104959,2030314118)]),$toNativeArray($kindUint64,[new $Uint64(892999175,2893302355),new $Uint64(2845131199,1464150824)]),$toNativeArray($kindUint64,[new $Uint64(1116248969,2542886120),new $Uint64(3556413999,756446706)]),$toNativeArray($kindUint64,[new $Uint64(1771397429,4273658385),new $Uint64(2222758749,2083391927)]),$toNativeArray($kindUint64,[new $Uint64(1140504963,2120847509),new $Uint64(2778448436,3677981733)]),$toNativeArray($kindUint64,[new $Uint64(2499373028,1577317563),new $Uint64(3473060546,302509870)]),$toNativeArray($kindUint64,[new $Uint64(488366318,3133307125),new $Uint64(2170662841,1262810493)]),$toNativeArray($kindUint64,[new $Uint64(1684199722,1769150258),new $Uint64(2713328551,2652254940)]),$toNativeArray($kindUint64,[new $Uint64(2105249653,63954174),new $Uint64(3391660689,2241576851)]),$toNativeArray($kindUint64,[new $Uint64(1557820242,1153684542),new $Uint64(4239575861,3875712888)]),$toNativeArray($kindUint64,[new $Uint64(973637651,1794794663),new $Uint64(2649734913,2959191467)]),$toNativeArray($kindUint64,[new $Uint64(143305240,1169751504),new $Uint64(3312168642,477763862)]),$toNativeArray($kindUint64,[new $Uint64(2326615198,1462189381),new $Uint64(4140210802,2744688475)]),$toNativeArray($kindUint64,[new $Uint64(917263586,4135093835),new $Uint64(2587631751,2789172121)]),$toNativeArray($kindUint64,[new $Uint64(2220321307,3021383645),new $Uint64(3234539689,2412723327)]),$toNativeArray($kindUint64,[new $Uint64(1701659810,2702987733),new $Uint64(4043174611,4089645983)]),$toNativeArray($kindUint64,[new $Uint64(2674150117,2763109157),new $Uint64(2526984132,2019157827)]),$toNativeArray($kindUint64,[new $Uint64(2268945823,232660974),new $Uint64(3158730165,2523947284)]),$toNativeArray($kindUint64,[new $Uint64(2836182278,3512051690),new $Uint64(3948412706,4228675929)]),$toNativeArray($kindUint64,[new $Uint64(162001188,1121290482),new $Uint64(2467757941,3716664280)]),$toNativeArray($kindUint64,[new $Uint64(202501485,1401613103),new $Uint64(3084697427,1424604878)]),$toNativeArray($kindUint64,[new $Uint64(2400610504,2825758202),new $Uint64(3855871784,707014273)]),$toNativeArray($kindUint64,[new $Uint64(4184736125,1766098876),new $Uint64(2409919865,441883920)]),$toNativeArray($kindUint64,[new $Uint64(935952860,3281365420),new $Uint64(3012399831,1626096725)]),$toNativeArray($kindUint64,[new $Uint64(2243682899,4101706775),new $Uint64(3765499789,958879082)]),$toNativeArray($kindUint64,[new $Uint64(2476043636,2026695822),new $Uint64(2353437368,1136170338)]),$toNativeArray($kindUint64,[new $Uint64(947570897,2533369778),new $Uint64(2941796710,1420212923)]),$toNativeArray($kindUint64,[new $Uint64(110721797,4240454046),new $Uint64(3677245887,3922749802)]),$toNativeArray($kindUint64,[new $Uint64(1142942947,3187154691),new $Uint64(2298278679,4062331362)]),$toNativeArray($kindUint64,[new $Uint64(3576162332,2910201539),new $Uint64(2872848349,4004172378)]),$toNativeArray($kindUint64,[new $Uint64(2322719267,3637751924),new $Uint64(3591060437,1783990001)]),$toNativeArray($kindUint64,[new $Uint64(4136054102,1736724041),new $Uint64(2244412773,1651864662)]),$toNativeArray($kindUint64,[new $Uint64(3022583980,23421403),new $Uint64(2805515966,3138572652)]),$toNativeArray($kindUint64,[new $Uint64(3778229975,29276754),new $Uint64(3506894958,1775732167)]),$toNativeArray($kindUint64,[new $Uint64(3972006470,1628910707),new $Uint64(2191809349,36090780)]),$toNativeArray($kindUint64,[new $Uint64(670040791,4183622032),new $Uint64(2739761686,1118855300)]),$toNativeArray($kindUint64,[new $Uint64(837550989,4155785716),new $Uint64(3424702107,3546052773)]),$toNativeArray($kindUint64,[new $Uint64(2120680561,1973506673),new $Uint64(4280877634,3358824142)]),$toNativeArray($kindUint64,[new $Uint64(251683526,3917796230),new $Uint64(2675548521,3173006913)]),$toNativeArray($kindUint64,[new $Uint64(1388346232,2749761640),new $Uint64(3344435652,745033169)]),$toNativeArray($kindUint64,[new $Uint64(2809174614,3437202050),new $Uint64(4180544565,931291461)]),$toNativeArray($kindUint64,[new $Uint64(2292605046,1074509457),new $Uint64(2612840353,1118928075)]),$toNativeArray($kindUint64,[new $Uint64(1792014483,3490620469),new $Uint64(3266050441,2472401918)]),$toNativeArray($kindUint64,[new $Uint64(92534456,3289533763),new $Uint64(4082563051,4164244222)]),$toNativeArray($kindUint64,[new $Uint64(3279059507,2055958602),new $Uint64(2551601907,2065781726)]),$toNativeArray($kindUint64,[new $Uint64(1951340736,1496206428),new $Uint64(3189502384,1508485334)]),$toNativeArray($kindUint64,[new $Uint64(291692272,1870258035),new $Uint64(3986877980,1885606668)]),$toNativeArray($kindUint64,[new $Uint64(2329791318,1168911272),new $Uint64(2491798737,3325987815)]),$toNativeArray($kindUint64,[new $Uint64(1838497323,3608622738),new $Uint64(3114748422,936259297)]),$toNativeArray($kindUint64,[new $Uint64(3371863478,3437036599),new $Uint64(3893435527,3317807769)]),$toNativeArray($kindUint64,[new $Uint64(496801938,1074406050),new $Uint64(2433397204,3684242592)]),$toNativeArray($kindUint64,[new $Uint64(621002422,3490491211),new $Uint64(3041746506,310335944)]),$toNativeArray($kindUint64,[new $Uint64(776253028,2215630365),new $Uint64(3802183132,2535403578)]),$toNativeArray($kindUint64,[new $Uint64(1558899966,3532252626),new $Uint64(2376364457,3732110884)]),$toNativeArray($kindUint64,[new $Uint64(1948624958,2267832135),new $Uint64(2970455572,1443913133)]),$toNativeArray($kindUint64,[new $Uint64(3509523022,687306521),new $Uint64(3713069465,1804891416)]),$toNativeArray($kindUint64,[new $Uint64(2193451888,3650792047),new $Uint64(2320668415,3812411695)]),$toNativeArray($kindUint64,[new $Uint64(1668073037,268522763),new $Uint64(2900835519,3691772795)]),$toNativeArray($kindUint64,[new $Uint64(1011349472,1409395278),new $Uint64(3626044399,3540974170)]),$toNativeArray($kindUint64,[new $Uint64(1705835244,880872049),new $Uint64(2266277749,3823721592)]),$toNativeArray($kindUint64,[new $Uint64(2132294055,1101090061),new $Uint64(2832847187,1558426518)]),$toNativeArray($kindUint64,[new $Uint64(517883921,302620752),new $Uint64(3541058984,874291324)]),$toNativeArray($kindUint64,[new $Uint64(2471161098,2873492530),new $Uint64(2213161865,546432077)]),$toNativeArray($kindUint64,[new $Uint64(4162693197,1444382015),new $Uint64(2766452331,1756781920)]),$toNativeArray($kindUint64,[new $Uint64(908399200,2879219342),new $Uint64(3458065414,1122235577)]),$toNativeArray($kindUint64,[new $Uint64(3252104060,1799512089),new $Uint64(2161290883,3922622707)]),$toNativeArray($kindUint64,[new $Uint64(2991388251,2249390111),new $Uint64(2701613604,3829536560)]),$toNativeArray($kindUint64,[new $Uint64(3739235314,1737995815),new $Uint64(3377017006,491953404)]),$toNativeArray($kindUint64,[new $Uint64(379076847,25011121),new $Uint64(4221271257,2762425404)]),$toNativeArray($kindUint64,[new $Uint64(2384406677,1626244686),new $Uint64(2638294536,115903141)]),$toNativeArray($kindUint64,[new $Uint64(4054250170,3106547682),new $Uint64(3297868170,144878926)]),$toNativeArray($kindUint64,[new $Uint64(2920329065,1735700955),new $Uint64(4122335212,2328582306)]),$toNativeArray($kindUint64,[new $Uint64(2898947489,3769167657),new $Uint64(2576459507,3602847589)]),$toNativeArray($kindUint64,[new $Uint64(402458890,1490234099),new $Uint64(3220574384,3429817663)]),$toNativeArray($kindUint64,[new $Uint64(3724299084,4010276272),new $Uint64(4025717980,4287272078)]),$toNativeArray($kindUint64,[new $Uint64(1253945104,358939022),new $Uint64(2516073738,532061401)]),$toNativeArray($kindUint64,[new $Uint64(2641173204,448673777),new $Uint64(3145092172,2812560399)]),$toNativeArray($kindUint64,[new $Uint64(2227724681,560842221),new $Uint64(3931365215,3515700499)]),$toNativeArray($kindUint64,[new $Uint64(855457013,3034880948),new $Uint64(2457103259,3807925548)]),$toNativeArray($kindUint64,[new $Uint64(1069321267,572375713),new $Uint64(3071379074,3686165111)]),$toNativeArray($kindUint64,[new $Uint64(262909759,3936695114),new $Uint64(3839223843,2460222741)]),$toNativeArray($kindUint64,[new $Uint64(701189511,4071047182),new $Uint64(2399514902,1000768301)]),$toNativeArray($kindUint64,[new $Uint64(1950228713,4015067154),new $Uint64(2999393627,3398444024)]),$toNativeArray($kindUint64,[new $Uint64(2437785892,1797608470),new $Uint64(3749242034,3174313206)]),$toNativeArray($kindUint64,[new $Uint64(449874358,3270988942),new $Uint64(2343276271,3057687578)]),$toNativeArray($kindUint64,[new $Uint64(2709826596,1941252529),new $Uint64(2929095339,2748367648)]),$toNativeArray($kindUint64,[new $Uint64(3387283245,2426565662),new $Uint64(3661369174,2361717736)]),$toNativeArray($kindUint64,[new $Uint64(2117052028,2053474450),new $Uint64(2288355734,402331761)]),$toNativeArray($kindUint64,[new $Uint64(3720056859,2566843063),new $Uint64(2860444667,2650398349)]),$toNativeArray($kindUint64,[new $Uint64(1428845602,2134812005),new $Uint64(3575555834,2239256113)]),$toNativeArray($kindUint64,[new $Uint64(3577383061,2407999327),new $Uint64(2234722396,2473276894)]),$toNativeArray($kindUint64,[new $Uint64(2324245178,4083740983),new $Uint64(2793402995,3091596118)]),$toNativeArray($kindUint64,[new $Uint64(757822825,2957192581),new $Uint64(3491753744,2790753324)]),$toNativeArray($kindUint64,[new $Uint64(2621122914,237632627),new $Uint64(2182346090,1744220827)]),$toNativeArray($kindUint64,[new $Uint64(2202661818,2444524431),new $Uint64(2727932613,32792386)]),$toNativeArray($kindUint64,[new $Uint64(605843625,908171891),new $Uint64(3409915766,1114732307)]),$toNativeArray($kindUint64,[new $Uint64(3978530003,2208956688),new $Uint64(4262394707,3540899031)]),$toNativeArray($kindUint64,[new $Uint64(4097193988,843727018),new $Uint64(2663996692,1676190982)]),$toNativeArray($kindUint64,[new $Uint64(2974008837,1054658773),new $Uint64(3329995865,2095238728)]),$toNativeArray($kindUint64,[new $Uint64(3717511046,2392065290),new $Uint64(4162494831,3692790234)]),$toNativeArray($kindUint64,[new $Uint64(3397186228,421298982),new $Uint64(2601559269,3918606632)]),$toNativeArray($kindUint64,[new $Uint64(4246482785,526623728),new $Uint64(3251949087,1677032818)]),$toNativeArray($kindUint64,[new $Uint64(3160619833,1732021484),new $Uint64(4064936359,1022549199)]),$toNativeArray($kindUint64,[new $Uint64(3586000131,3766867987),new $Uint64(2540585224,2249705985)]),$toNativeArray($kindUint64,[new $Uint64(1261274692,3634843160),new $Uint64(3175731530,2812132482)]),$toNativeArray($kindUint64,[new $Uint64(3724077014,248586654),new $Uint64(3969664413,1367681954)]),$toNativeArray($kindUint64,[new $Uint64(3401289957,3376592131),new $Uint64(2481040258,1391672133)]),$toNativeArray($kindUint64,[new $Uint64(1030386975,999514691),new $Uint64(3101300322,3887073815)]),$toNativeArray($kindUint64,[new $Uint64(214241895,175651540),new $Uint64(3876625403,2711358621)]),$toNativeArray($kindUint64,[new $Uint64(670772096,1720394949),new $Uint64(2422890877,1157728226)]),$toNativeArray($kindUint64,[new $Uint64(2985948768,2150493686),new $Uint64(3028613596,2520902106)]),$toNativeArray($kindUint64,[new $Uint64(1584952312,2688117107),new $Uint64(3785766995,3151127633)]),$toNativeArray($kindUint64,[new $Uint64(3674949755,1680073192),new $Uint64(2366104372,1432583858)]),$toNativeArray($kindUint64,[new $Uint64(2446203546,1026349666),new $Uint64(2957630465,1790729823)]),$toNativeArray($kindUint64,[new $Uint64(1984012608,3430420731),new $Uint64(3697038081,3312154103)]),$toNativeArray($kindUint64,[new $Uint64(2850620616,2144012957),new $Uint64(2310648801,459483578)]),$toNativeArray($kindUint64,[new $Uint64(1415792122,2680016196),new $Uint64(2888311001,1648096297)]),$toNativeArray($kindUint64,[new $Uint64(2843481977,1202536597),new $Uint64(3610388751,3133862195)]),$toNativeArray($kindUint64,[new $Uint64(1240305323,3435939933),new $Uint64(2256492969,3569276608)]),$toNativeArray($kindUint64,[new $Uint64(1550381654,3221183092),new $Uint64(2820616212,1240370288)]),$toNativeArray($kindUint64,[new $Uint64(1937977068,1878995217),new $Uint64(3525770265,1550462860)]),$toNativeArray($kindUint64,[new $Uint64(3358719315,3321855659),new $Uint64(2203606415,3653393847)]),$toNativeArray($kindUint64,[new $Uint64(3124657320,3078577749),new $Uint64(2754508019,3493000485)]),$toNativeArray($kindUint64,[new $Uint64(684596178,3848222187),new $Uint64(3443135024,3292508783)]),$toNativeArray($kindUint64,[new $Uint64(2038485347,3478880691),new $Uint64(2151959390,2057817989)]),$toNativeArray($kindUint64,[new $Uint64(3621848508,3274859039),new $Uint64(2689949238,424788838)]),$toNativeArray($kindUint64,[new $Uint64(2379826987,4093573799),new $Uint64(3362436547,2678469696)]),$toNativeArray($kindUint64,[new $Uint64(2974783734,4043225425),new $Uint64(4203045684,2274345296)]),$toNativeArray($kindUint64,[new $Uint64(1859239834,1453274067),new $Uint64(2626903552,3568949458)]),$toNativeArray($kindUint64,[new $Uint64(176566144,3964076232),new $Uint64(3283629441,166219527)]),$toNativeArray($kindUint64,[new $Uint64(3441933153,660127994),new $Uint64(4104536801,1281516232)]),$toNativeArray($kindUint64,[new $Uint64(2151208220,3096934556),new $Uint64(2565335500,3485302205)]),$toNativeArray($kindUint64,[new $Uint64(3762752099,3871168195),new $Uint64(3206669376,61660460)]),$toNativeArray($kindUint64,[new $Uint64(408472828,3765218420),new $Uint64(4008336720,77075576)]),$toNativeArray($kindUint64,[new $Uint64(255295518,205777864),new $Uint64(2505210450,48172235)]),$toNativeArray($kindUint64,[new $Uint64(3540344869,2404705978),new $Uint64(3131513062,2207698941)]),$toNativeArray($kindUint64,[new $Uint64(1204205614,4079624297),new $Uint64(3914391328,612140029)]),$toNativeArray($kindUint64,[new $Uint64(1289499421,1476023361),new $Uint64(2446494580,382587518)]),$toNativeArray($kindUint64,[new $Uint64(3759357924,2918771026),new $Uint64(3058118225,478234397)]),$toNativeArray($kindUint64,[new $Uint64(1477971933,3648463782),new $Uint64(3822647781,1671534821)]),$toNativeArray($kindUint64,[new $Uint64(1460603370,2817160776),new $Uint64(2389154863,1581580175)]),$toNativeArray($kindUint64,[new $Uint64(752012389,1373967322),new $Uint64(2986443579,903233395)]),$toNativeArray($kindUint64,[new $Uint64(4161240958,2791200977),new $Uint64(3733054474,55299919)]),$toNativeArray($kindUint64,[new $Uint64(4211388335,670758786),new $Uint64(2333159046,1108304273)]),$toNativeArray($kindUint64,[new $Uint64(2043009946,4059673955),new $Uint64(2916448807,3532863990)]),$toNativeArray($kindUint64,[new $Uint64(406278785,2927108796),new $Uint64(3645561009,3342338164)]),$toNativeArray($kindUint64,[new $Uint64(2401407889,218830261),new $Uint64(2278475631,478348616)]),$toNativeArray($kindUint64,[new $Uint64(3001759861,1347279650),new $Uint64(2848094538,3819161242)]),$toNativeArray($kindUint64,[new $Uint64(1604716178,2757841387),new $Uint64(3560118173,2626467905)]),$toNativeArray($kindUint64,[new $Uint64(3687302171,2797392691),new $Uint64(2225073858,2178413352)]),$toNativeArray($kindUint64,[new $Uint64(314160418,2422999040),new $Uint64(2781342323,575533043)]),$toNativeArray($kindUint64,[new $Uint64(3613925995,881265152),new $Uint64(3476677903,3940641775)]),$toNativeArray($kindUint64,[new $Uint64(3869316483,13919808),new $Uint64(2172923689,4073513845)]),$toNativeArray($kindUint64,[new $Uint64(1615420131,3238625232),new $Uint64(2716154612,1870666835)]),$toNativeArray($kindUint64,[new $Uint64(945533340,2974539716),new $Uint64(3395193265,2338333544)]),$toNativeArray($kindUint64,[new $Uint64(1181916675,3718174645),new $Uint64(4243991581,3996658754)]),$toNativeArray($kindUint64,[new $Uint64(1812439746,1786988241),new $Uint64(2652494738,3034782633)]),$toNativeArray($kindUint64,[new $Uint64(3339291507,86251653),new $Uint64(3315618423,1645994643)]),$toNativeArray($kindUint64,[new $Uint64(3100372559,3329040039),new $Uint64(4144523029,983751480)]),$toNativeArray($kindUint64,[new $Uint64(1937732849,3691262760),new $Uint64(2590326893,1151715587)]),$toNativeArray($kindUint64,[new $Uint64(1348424238,1392852978),new $Uint64(3237908616,2513386308)]),$toNativeArray($kindUint64,[new $Uint64(1685530297,3888549871),new $Uint64(4047385770,3141732885)]),$toNativeArray($kindUint64,[new $Uint64(1590327348,819730933),new $Uint64(2529616106,3037324877)]),$toNativeArray($kindUint64,[new $Uint64(3061651009,1024663666),new $Uint64(3162020133,1649172448)]),$toNativeArray($kindUint64,[new $Uint64(3827063761,2354571407),new $Uint64(3952525166,3135207384)]),$toNativeArray($kindUint64,[new $Uint64(2391914850,4155961689),new $Uint64(2470328229,885762791)]),$toNativeArray($kindUint64,[new $Uint64(1916151739,3047468464),new $Uint64(3087910286,2180945313)]),$toNativeArray($kindUint64,[new $Uint64(3468931498,2735593756),new $Uint64(3859887858,578697993)]),$toNativeArray($kindUint64,[new $Uint64(557469450,2783487921),new $Uint64(2412429911,1435428070)]),$toNativeArray($kindUint64,[new $Uint64(2844320461,1331876253),new $Uint64(3015537389,720543263)]),$toNativeArray($kindUint64,[new $Uint64(2481658752,2738587141),new $Uint64(3769421736,1974420903)]),$toNativeArray($kindUint64,[new $Uint64(3161649456,1711616963),new $Uint64(2355888585,1234013064)]),$toNativeArray($kindUint64,[new $Uint64(3952061820,2139521204),new $Uint64(2944860731,2616258154)]),$toNativeArray($kindUint64,[new $Uint64(2792593627,2674401505),new $Uint64(3681075914,2196580869)]),$toNativeArray($kindUint64,[new $Uint64(2282241929,1134630028),new $Uint64(2300672446,2446604867)]),$toNativeArray($kindUint64,[new $Uint64(1779060587,2492029360),new $Uint64(2875840558,910772436)]),$toNativeArray($kindUint64,[new $Uint64(2223825734,2041294876),new $Uint64(3594800697,3285949193)]),$toNativeArray($kindUint64,[new $Uint64(4074245644,202067473),new $Uint64(2246750436,443105509)]),$toNativeArray($kindUint64,[new $Uint64(1871581583,252584341),new $Uint64(2808438045,553881887)]),$toNativeArray($kindUint64,[new $Uint64(1265735154,3536955899),new $Uint64(3510547556,1766094183)])]);CJ=new DW([new CI.ptr(0,""),new CI.ptr(1,"5"),new CI.ptr(1,"25"),new CI.ptr(1,"125"),new CI.ptr(2,"625"),new CI.ptr(2,"3125"),new CI.ptr(2,"15625"),new CI.ptr(3,"78125"),new CI.ptr(3,"390625"),new CI.ptr(3,"1953125"),new CI.ptr(4,"9765625"),new CI.ptr(4,"48828125"),new CI.ptr(4,"244140625"),new CI.ptr(4,"1220703125"),new CI.ptr(5,"6103515625"),new CI.ptr(5,"30517578125"),new CI.ptr(5,"152587890625"),new CI.ptr(6,"762939453125"),new CI.ptr(6,"3814697265625"),new CI.ptr(6,"19073486328125"),new CI.ptr(7,"95367431640625"),new CI.ptr(7,"476837158203125"),new CI.ptr(7,"2384185791015625"),new CI.ptr(7,"11920928955078125"),new CI.ptr(8,"59604644775390625"),new CI.ptr(8,"298023223876953125"),new CI.ptr(8,"1490116119384765625"),new CI.ptr(9,"7450580596923828125"),new CI.ptr(9,"37252902984619140625"),new CI.ptr(9,"186264514923095703125"),new CI.ptr(10,"931322574615478515625"),new CI.ptr(10,"4656612873077392578125"),new CI.ptr(10,"23283064365386962890625"),new CI.ptr(10,"116415321826934814453125"),new CI.ptr(11,"582076609134674072265625"),new CI.ptr(11,"2910383045673370361328125"),new CI.ptr(11,"14551915228366851806640625"),new CI.ptr(12,"72759576141834259033203125"),new CI.ptr(12,"363797880709171295166015625"),new CI.ptr(12,"1818989403545856475830078125"),new CI.ptr(13,"9094947017729282379150390625"),new CI.ptr(13,"45474735088646411895751953125"),new CI.ptr(13,"227373675443232059478759765625"),new CI.ptr(13,"1136868377216160297393798828125"),new CI.ptr(14,"5684341886080801486968994140625"),new CI.ptr(14,"28421709430404007434844970703125"),new CI.ptr(14,"142108547152020037174224853515625"),new CI.ptr(15,"710542735760100185871124267578125"),new CI.ptr(15,"3552713678800500929355621337890625"),new CI.ptr(15,"17763568394002504646778106689453125"),new CI.ptr(16,"88817841970012523233890533447265625"),new CI.ptr(16,"444089209850062616169452667236328125"),new CI.ptr(16,"2220446049250313080847263336181640625"),new CI.ptr(16,"11102230246251565404236316680908203125"),new CI.ptr(17,"55511151231257827021181583404541015625"),new CI.ptr(17,"277555756156289135105907917022705078125"),new CI.ptr(17,"1387778780781445675529539585113525390625"),new CI.ptr(18,"6938893903907228377647697925567626953125"),new CI.ptr(18,"34694469519536141888238489627838134765625"),new CI.ptr(18,"173472347597680709441192448139190673828125"),new CI.ptr(19,"867361737988403547205962240695953369140625")]);$pkg.ErrRange=F.New("value out of range");$pkg.ErrSyntax=F.New("invalid syntax");CY=true;DC=new DX([1,3,6,9,13,16,19,23,26]);DD=new DY([1,10,100,1000,10000,100000,1e+06,1e+07,1e+08,1e+09,1e+10,1e+11,1e+12,1e+13,1e+14,1e+15,1e+16,1e+17,1e+18,1e+19,1e+20,1e+21,1e+22]);DE=new DZ([1,10,100,1000,10000,100000,1e+06,1e+07,1e+08,1e+09,1e+10]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["reflect"]=(function(){var $pkg={},$init,A,L,B,M,C,N,D,E,F,G,H,I,J,K,Q,R,U,AG,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,CY,DA,DI,DJ,DK,DM,DN,DO,FU,FW,FX,FY,HJ,JD,JE,JF,JG,JH,JI,JJ,JL,JN,JO,JV,JW,JY,JZ,KA,KB,KC,KD,KE,KF,KG,KK,KM,KN,KO,KP,KQ,KT,KU,KV,KW,LD,LE,LF,LG,LL,LM,LN,LV,AE,AF,DB,FO,FV,FZ,GC,GE,HW,HX,IB,V,AH,AI,AL,AW,AX,AY,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,DQ,DR,DT,DU,DV,DW,DX,EY,FD,FJ,FK,FP,FQ,FR,FS,FT,GA,GB,GD,GF,GH,GI,GJ,GK,GL,GM,GN,GQ,GS,GU,GV,GW,GY,HB,HC,HD,HE,HF,HG,HH,HI,HK,HL,HM,HN,HO,HP,HQ,HR,HS,HT,HU,HV,HY,HZ,IA,IC,ID,IH,II;A=$packages["errors"];L=$packages["github.com/gopherjs/gopherjs/js"];B=$packages["internal/abi"];M=$packages["internal/bytealg"];C=$packages["internal/goarch"];N=$packages["internal/goexperiment"];D=$packages["internal/itoa"];E=$packages["internal/unsafeheader"];F=$packages["math"];G=$packages["runtime"];H=$packages["strconv"];I=$packages["sync"];J=$packages["unicode"];K=$packages["unicode/utf8"];Q=$pkg.Value=$newType(0,$kindStruct,"reflect.Value",true,"reflect",true,function(typ_,ptr_,flag_){this.$val=this;if(arguments.length===0){this.typ=JE.nil;this.ptr=0;this.flag=0;return;}this.typ=typ_;this.ptr=ptr_;this.flag=flag_;});R=$pkg.flag=$newType(4,$kindUintptr,"reflect.flag",true,"reflect",false,null);U=$pkg.ValueError=$newType(0,$kindStruct,"reflect.ValueError",true,"reflect",true,function(Method_,Kind_){this.$val=this;if(arguments.length===0){this.Method="";this.Kind=0;return;}this.Method=Method_;this.Kind=Kind_;});AG=$pkg.MapIter=$newType(0,$kindStruct,"reflect.MapIter",true,"reflect",true,function(m_,hiter_){this.$val=this;if(arguments.length===0){this.m=new Q.ptr(JE.nil,0,0);this.hiter=new HJ.ptr($ifaceNil,null,null,0,null);return;}this.m=m_;this.hiter=hiter_;});CK=$pkg.Type=$newType(8,$kindInterface,"reflect.Type",true,"reflect",true,null);CL=$pkg.Kind=$newType(4,$kindUint,"reflect.Kind",true,"reflect",true,null);CM=$pkg.tflag=$newType(1,$kindUint8,"reflect.tflag",true,"reflect",false,null);CN=$pkg.rtype=$newType(0,$kindStruct,"reflect.rtype",true,"reflect",false,function(size_,ptrdata_,hash_,tflag_,align_,fieldAlign_,kind_,equal_,gcdata_,str_,ptrToThis_){this.$val=this;if(arguments.length===0){this.size=0;this.ptrdata=0;this.hash=0;this.tflag=0;this.align=0;this.fieldAlign=0;this.kind=0;this.equal=$throwNilPointerError;this.gcdata=KG.nil;this.str=0;this.ptrToThis=0;return;}this.size=size_;this.ptrdata=ptrdata_;this.hash=hash_;this.tflag=tflag_;this.align=align_;this.fieldAlign=fieldAlign_;this.kind=kind_;this.equal=equal_;this.gcdata=gcdata_;this.str=str_;this.ptrToThis=ptrToThis_;});CO=$pkg.method=$newType(0,$kindStruct,"reflect.method",true,"reflect",false,function(name_,mtyp_,ifn_,tfn_){this.$val=this;if(arguments.length===0){this.name=0;this.mtyp=0;this.ifn=0;this.tfn=0;return;}this.name=name_;this.mtyp=mtyp_;this.ifn=ifn_;this.tfn=tfn_;});CP=$pkg.ChanDir=$newType(4,$kindInt,"reflect.ChanDir",true,"reflect",true,null);CQ=$pkg.arrayType=$newType(0,$kindStruct,"reflect.arrayType",true,"reflect",false,function(rtype_,elem_,slice_,len_){this.$val=this;if(arguments.length===0){this.rtype=new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0);this.elem=JE.nil;this.slice=JE.nil;this.len=0;return;}this.rtype=rtype_;this.elem=elem_;this.slice=slice_;this.len=len_;});CR=$pkg.chanType=$newType(0,$kindStruct,"reflect.chanType",true,"reflect",false,function(rtype_,elem_,dir_){this.$val=this;if(arguments.length===0){this.rtype=new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0);this.elem=JE.nil;this.dir=0;return;}this.rtype=rtype_;this.elem=elem_;this.dir=dir_;});CS=$pkg.imethod=$newType(0,$kindStruct,"reflect.imethod",true,"reflect",false,function(name_,typ_){this.$val=this;if(arguments.length===0){this.name=0;this.typ=0;return;}this.name=name_;this.typ=typ_;});CT=$pkg.interfaceType=$newType(0,$kindStruct,"reflect.interfaceType",true,"reflect",false,function(rtype_,pkgPath_,methods_){this.$val=this;if(arguments.length===0){this.rtype=new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0);this.pkgPath=new FX.ptr(KG.nil);this.methods=KM.nil;return;}this.rtype=rtype_;this.pkgPath=pkgPath_;this.methods=methods_;});CU=$pkg.mapType=$newType(0,$kindStruct,"reflect.mapType",true,"reflect",false,function(rtype_,key_,elem_,bucket_,hasher_,keysize_,valuesize_,bucketsize_,flags_){this.$val=this;if(arguments.length===0){this.rtype=new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0);this.key=JE.nil;this.elem=JE.nil;this.bucket=JE.nil;this.hasher=$throwNilPointerError;this.keysize=0;this.valuesize=0;this.bucketsize=0;this.flags=0;return;}this.rtype=rtype_;this.key=key_;this.elem=elem_;this.bucket=bucket_;this.hasher=hasher_;this.keysize=keysize_;this.valuesize=valuesize_;this.bucketsize=bucketsize_;this.flags=flags_;});CV=$pkg.ptrType=$newType(0,$kindStruct,"reflect.ptrType",true,"reflect",false,function(rtype_,elem_){this.$val=this;if(arguments.length===0){this.rtype=new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0);this.elem=JE.nil;return;}this.rtype=rtype_;this.elem=elem_;});CW=$pkg.sliceType=$newType(0,$kindStruct,"reflect.sliceType",true,"reflect",false,function(rtype_,elem_){this.$val=this;if(arguments.length===0){this.rtype=new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0);this.elem=JE.nil;return;}this.rtype=rtype_;this.elem=elem_;});CX=$pkg.structField=$newType(0,$kindStruct,"reflect.structField",true,"reflect",false,function(name_,typ_,offsetEmbed_){this.$val=this;if(arguments.length===0){this.name=new FX.ptr(KG.nil);this.typ=JE.nil;this.offsetEmbed=0;return;}this.name=name_;this.typ=typ_;this.offsetEmbed=offsetEmbed_;});CY=$pkg.structType=$newType(0,$kindStruct,"reflect.structType",true,"reflect",false,function(rtype_,pkgPath_,fields_){this.$val=this;if(arguments.length===0){this.rtype=new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0);this.pkgPath=new FX.ptr(KG.nil);this.fields=KN.nil;return;}this.rtype=rtype_;this.pkgPath=pkgPath_;this.fields=fields_;});DA=$pkg.Method=$newType(0,$kindStruct,"reflect.Method",true,"reflect",true,function(Name_,PkgPath_,Type_,Func_,Index_){this.$val=this;if(arguments.length===0){this.Name="";this.PkgPath="";this.Type=$ifaceNil;this.Func=new Q.ptr(JE.nil,0,0);this.Index=0;return;}this.Name=Name_;this.PkgPath=PkgPath_;this.Type=Type_;this.Func=Func_;this.Index=Index_;});DI=$pkg.nameOff=$newType(4,$kindInt32,"reflect.nameOff",true,"reflect",false,null);DJ=$pkg.typeOff=$newType(4,$kindInt32,"reflect.typeOff",true,"reflect",false,null);DK=$pkg.textOff=$newType(4,$kindInt32,"reflect.textOff",true,"reflect",false,null);DM=$pkg.StructField=$newType(0,$kindStruct,"reflect.StructField",true,"reflect",true,function(Name_,PkgPath_,Type_,Tag_,Offset_,Index_,Anonymous_){this.$val=this;if(arguments.length===0){this.Name="";this.PkgPath="";this.Type=$ifaceNil;this.Tag="";this.Offset=0;this.Index=JL.nil;this.Anonymous=false;return;}this.Name=Name_;this.PkgPath=PkgPath_;this.Type=Type_;this.Tag=Tag_;this.Offset=Offset_;this.Index=Index_;this.Anonymous=Anonymous_;});DN=$pkg.StructTag=$newType(8,$kindString,"reflect.StructTag",true,"reflect",true,null);DO=$pkg.fieldScan=$newType(0,$kindStruct,"reflect.fieldScan",true,"reflect",false,function(typ_,index_){this.$val=this;if(arguments.length===0){this.typ=KF.nil;this.index=JL.nil;return;}this.typ=typ_;this.index=index_;});FU=$pkg.uncommonType=$newType(0,$kindStruct,"reflect.uncommonType",true,"reflect",false,function(pkgPath_,mcount_,xcount_,moff_,_methods_){this.$val=this;if(arguments.length===0){this.pkgPath=0;this.mcount=0;this.xcount=0;this.moff=0;this._methods=KB.nil;return;}this.pkgPath=pkgPath_;this.mcount=mcount_;this.xcount=xcount_;this.moff=moff_;this._methods=_methods_;});FW=$pkg.funcType=$newType(0,$kindStruct,"reflect.funcType",true,"reflect",false,function(rtype_,inCount_,outCount_,_in_,_out_){this.$val=this;if(arguments.length===0){this.rtype=new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0);this.inCount=0;this.outCount=0;this._in=JF.nil;this._out=JF.nil;return;}this.rtype=rtype_;this.inCount=inCount_;this.outCount=outCount_;this._in=_in_;this._out=_out_;});FX=$pkg.name=$newType(0,$kindStruct,"reflect.name",true,"reflect",false,function(bytes_){this.$val=this;if(arguments.length===0){this.bytes=KG.nil;return;}this.bytes=bytes_;});FY=$pkg.nameData=$newType(0,$kindStruct,"reflect.nameData",true,"reflect",false,function(name_,tag_,exported_,pkgPath_){this.$val=this;if(arguments.length===0){this.name="";this.tag="";this.exported=false;this.pkgPath="";return;}this.name=name_;this.tag=tag_;this.exported=exported_;this.pkgPath=pkgPath_;});HJ=$pkg.hiter=$newType(0,$kindStruct,"reflect.hiter",true,"reflect",false,function(t_,m_,keys_,i_,last_){this.$val=this;if(arguments.length===0){this.t=$ifaceNil;this.m=null;this.keys=null;this.i=0;this.last=null;return;}this.t=t_;this.m=m_;this.keys=keys_;this.i=i_;this.last=last_;});JD=$sliceType(FX);JE=$ptrType(CN);JF=$sliceType(JE);JG=$sliceType($String);JH=$sliceType($emptyInterface);JI=$ptrType(L.Object);JJ=$funcType([JH],[JI],true);JL=$sliceType($Int);JN=$ptrType(G.Func);JO=$sliceType(Q);JV=$ptrType($UnsafePointer);JW=$ptrType(E.Slice);JY=$sliceType($Uint8);JZ=$sliceType($Int32);KA=$ptrType(FU);KB=$sliceType(CO);KC=$ptrType(CT);KD=$ptrType(CS);KE=$sliceType(DO);KF=$ptrType(CY);KG=$ptrType($Uint8);KK=$funcType([],[],false);KM=$sliceType(CS);KN=$sliceType(CX);KO=$ptrType(FY);KP=$structType("reflect",[{prop:"str",name:"str",embedded:false,exported:false,typ:$String,tag:""}]);KQ=$sliceType(JI);KT=$ptrType($String);KU=$ptrType(FW);KV=$sliceType(CK);KW=$sliceType(KQ);LD=$funcType([$String],[$Bool],false);LE=$ptrType(AG);LF=$arrayType($Uintptr,2);LG=$ptrType(U);LL=$funcType([$UnsafePointer,$UnsafePointer],[$Bool],false);LM=$funcType([$UnsafePointer,$Uintptr],[$Uintptr],false);LN=$ptrType(CX);LV=$ptrType(HJ);R.prototype.kind=function(){var aw;aw=this.$val;return((((aw&31)>>>0)>>>0));};$ptrType(R).prototype.kind=function(){return new R(this.$get()).kind();};R.prototype.ro=function(){var aw;aw=this.$val;if(!((((aw&96)>>>0)===0))){return 32;}return 0;};$ptrType(R).prototype.ro=function(){return new R(this.$get()).ro();};Q.ptr.prototype.pointer=function(){var aw;aw=this;if(!((aw.typ.size===4))||!aw.typ.pointers()){$panic(new $String("can't call pointer on a non-pointer Value"));}if(!((((aw.flag&128)>>>0)===0))){return(aw.ptr).$get();}return aw.ptr;};Q.prototype.pointer=function(){return this.$val.pointer();};U.ptr.prototype.Error=function(){var aw;aw=this;if(aw.Kind===0){return"reflect: call of "+aw.Method+" on zero Value";}return"reflect: call of "+aw.Method+" on "+new CL(aw.Kind).String()+" Value";};U.prototype.Error=function(){return this.$val.Error();};V=function(){var aw,ax,ay;aw=G.Caller(2);ax=aw[0];ay=G.FuncForPC(ax);if(ay===JN.nil){return"unknown method";}return ay.Name();};R.prototype.mustBe=function(aw){var aw,ax;ax=this.$val;if(!((((((ax&31)>>>0)>>>0))===aw))){$panic(new U.ptr(V(),new R(ax).kind()));}};$ptrType(R).prototype.mustBe=function(aw){return new R(this.$get()).mustBe(aw);};R.prototype.mustBeExported=function(){var aw;aw=this.$val;if((aw===0)||!((((aw&96)>>>0)===0))){new R(aw).mustBeExportedSlow();}};$ptrType(R).prototype.mustBeExported=function(){return new R(this.$get()).mustBeExported();};R.prototype.mustBeExportedSlow=function(){var aw;aw=this.$val;if(aw===0){$panic(new U.ptr(IH(),0));}if(!((((aw&96)>>>0)===0))){$panic(new $String("reflect: "+IH()+" using value obtained using unexported field"));}};$ptrType(R).prototype.mustBeExportedSlow=function(){return new R(this.$get()).mustBeExportedSlow();};R.prototype.mustBeAssignable=function(){var aw;aw=this.$val;if(!((((aw&96)>>>0)===0))||(((aw&256)>>>0)===0)){new R(aw).mustBeAssignableSlow();}};$ptrType(R).prototype.mustBeAssignable=function(){return new R(this.$get()).mustBeAssignable();};R.prototype.mustBeAssignableSlow=function(){var aw;aw=this.$val;if(aw===0){$panic(new U.ptr(IH(),0));}if(!((((aw&96)>>>0)===0))){$panic(new $String("reflect: "+IH()+" using value obtained using unexported field"));}if(((aw&256)>>>0)===0){$panic(new $String("reflect: "+IH()+" using unaddressable value"));}};$ptrType(R).prototype.mustBeAssignableSlow=function(){return new R(this.$get()).mustBeAssignableSlow();};Q.ptr.prototype.Addr=function(){var aw,ax;aw=this;if(((aw.flag&256)>>>0)===0){$panic(new $String("reflect.Value.Addr of unaddressable value"));}ax=(aw.flag&96)>>>0;return new Q.ptr(aw.typ.ptrTo(),aw.ptr,(ax|22)>>>0);};Q.prototype.Addr=function(){return this.$val.Addr();};Q.ptr.prototype.Bool=function(){var aw;aw=this;new R(aw.flag).mustBe(1);return(aw.ptr).$get();};Q.prototype.Bool=function(){return this.$val.Bool();};Q.ptr.prototype.Bytes=function(){var{aw,ax,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=this;new R(aw.flag).mustBe(23);ax=aw.typ.Elem().Kind();$s=3;case 3:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}if(!((ax===8))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.Value.Bytes of non-byte slice"));case 2:$s=-1;return(aw.ptr).$get();}return;}var $f={$blk:Q.ptr.prototype.Bytes,$c:true,$r,aw,ax,$s};return $f;};Q.prototype.Bytes=function(){return this.$val.Bytes();};Q.ptr.prototype.runes=function(){var{aw,ax,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=this;new R(aw.flag).mustBe(23);ax=aw.typ.Elem().Kind();$s=3;case 3:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}if(!((ax===5))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.Value.Bytes of non-rune slice"));case 2:$s=-1;return(aw.ptr).$get();}return;}var $f={$blk:Q.ptr.prototype.runes,$c:true,$r,aw,ax,$s};return $f;};Q.prototype.runes=function(){return this.$val.runes();};Q.ptr.prototype.CanAddr=function(){var aw;aw=this;return!((((aw.flag&256)>>>0)===0));};Q.prototype.CanAddr=function(){return this.$val.CanAddr();};Q.ptr.prototype.CanSet=function(){var aw;aw=this;return((aw.flag&352)>>>0)===256;};Q.prototype.CanSet=function(){return this.$val.CanSet();};Q.ptr.prototype.Call=function(aw){var{aw,ax,ay,az,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;new R(ax.flag).mustBe(19);new R(ax.flag).mustBeExported();ay=$clone(ax,Q).call("Call",aw);$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;$s=2;case 2:return az;}return;}var $f={$blk:Q.ptr.prototype.Call,$c:true,$r,aw,ax,ay,az,$s};return $f;};Q.prototype.Call=function(aw){return this.$val.Call(aw);};Q.ptr.prototype.CallSlice=function(aw){var{aw,ax,ay,az,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;new R(ax.flag).mustBe(19);new R(ax.flag).mustBeExported();ay=$clone(ax,Q).call("CallSlice",aw);$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;$s=2;case 2:return az;}return;}var $f={$blk:Q.ptr.prototype.CallSlice,$c:true,$r,aw,ax,ay,az,$s};return $f;};Q.prototype.CallSlice=function(aw){return this.$val.CallSlice(aw);};Q.ptr.prototype.CanComplex=function(){var aw,ax;aw=this;ax=new R(aw.flag).kind();if((ax===(15))||(ax===(16))){return true;}else{return false;}};Q.prototype.CanComplex=function(){return this.$val.CanComplex();};Q.ptr.prototype.Complex=function(){var aw,ax,ay,az;aw=this;ax=new R(aw.flag).kind();ay=ax;if(ay===(15)){return((az=(aw.ptr).$get(),new $Complex128(az.$real,az.$imag)));}else if(ay===(16)){return(aw.ptr).$get();}$panic(new U.ptr("reflect.Value.Complex",new R(aw.flag).kind()));};Q.prototype.Complex=function(){return this.$val.Complex();};Q.ptr.prototype.FieldByIndex=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;if(aw.$length===1){$s=1;continue;}$s=2;continue;case 1:ay=$clone(ax,Q).Field((0>=aw.$length?($throwRuntimeError("index out of range"),undefined):aw.$array[aw.$offset+0]));$s=3;case 3:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;$s=4;case 4:return az;case 2:new R(ax.flag).mustBe(25);ba=aw;bb=0;case 5:if(!(bb=ba.$length)?($throwRuntimeError("index out of range"),undefined):ba.$array[ba.$offset+bb]);if(bc>0){$s=7;continue;}$s=8;continue;case 7:if(!($clone(ax,Q).Kind()===22)){be=false;$s=11;continue s;}bf=ax.typ.Elem().Kind();$s=12;case 12:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}be=bf===25;case 11:if(be){$s=9;continue;}$s=10;continue;case 9:if($clone(ax,Q).IsNil()){$panic(new $String("reflect: indirection through nil pointer to embedded struct"));}bg=$clone(ax,Q).Elem();$s=13;case 13:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}ax=bg;case 10:case 8:bh=$clone(ax,Q).Field(bd);$s=14;case 14:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}ax=bh;bb++;$s=5;continue;case 6:$s=-1;return ax;}return;}var $f={$blk:Q.ptr.prototype.FieldByIndex,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,$s};return $f;};Q.prototype.FieldByIndex=function(aw){return this.$val.FieldByIndex(aw);};Q.ptr.prototype.FieldByIndexErr=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;if(aw.$length===1){$s=1;continue;}$s=2;continue;case 1:ay=$clone(ax,Q).Field((0>=aw.$length?($throwRuntimeError("index out of range"),undefined):aw.$array[aw.$offset+0]));$s=3;case 3:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=[ay,$ifaceNil];$s=4;case 4:return az;case 2:new R(ax.flag).mustBe(25);ba=aw;bb=0;case 5:if(!(bb=ba.$length)?($throwRuntimeError("index out of range"),undefined):ba.$array[ba.$offset+bb]);if(bc>0){$s=7;continue;}$s=8;continue;case 7:if(!($clone(ax,Q).Kind()===22)){be=false;$s=11;continue s;}bf=ax.typ.Elem().Kind();$s=12;case 12:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}be=bf===25;case 11:if(be){$s=9;continue;}$s=10;continue;case 9:if($clone(ax,Q).IsNil()){$s=13;continue;}$s=14;continue;case 13:bg=ax.typ.Elem().Name();$s=15;case 15:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=A.New("reflect: indirection through nil pointer to embedded struct field "+bg);$s=16;case 16:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bi=[new Q.ptr(JE.nil,0,0),bh];$s=17;case 17:return bi;case 14:bj=$clone(ax,Q).Elem();$s=18;case 18:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}ax=bj;case 10:case 8:bk=$clone(ax,Q).Field(bd);$s=19;case 19:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}ax=bk;bb++;$s=5;continue;case 6:$s=-1;return[ax,$ifaceNil];}return;}var $f={$blk:Q.ptr.prototype.FieldByIndexErr,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,$s};return $f;};Q.prototype.FieldByIndexErr=function(aw){return this.$val.FieldByIndexErr(aw);};Q.ptr.prototype.FieldByName=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;new R(ax.flag).mustBe(25);az=ax.typ.FieldByName(aw);$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ay=az;ba=$clone(ay[0],DM);bb=ay[1];if(bb){$s=2;continue;}$s=3;continue;case 2:bc=$clone(ax,Q).FieldByIndex(ba.Index);$s=4;case 4:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;$s=5;case 5:return bd;case 3:$s=-1;return new Q.ptr(JE.nil,0,0);}return;}var $f={$blk:Q.ptr.prototype.FieldByName,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,$s};return $f;};Q.prototype.FieldByName=function(aw){return this.$val.FieldByName(aw);};Q.ptr.prototype.FieldByNameFunc=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;az=ax.typ.FieldByNameFunc(aw);$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ay=az;ba=$clone(ay[0],DM);bb=ay[1];if(bb){$s=2;continue;}$s=3;continue;case 2:bc=$clone(ax,Q).FieldByIndex(ba.Index);$s=4;case 4:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;$s=5;case 5:return bd;case 3:$s=-1;return new Q.ptr(JE.nil,0,0);}return;}var $f={$blk:Q.ptr.prototype.FieldByNameFunc,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,$s};return $f;};Q.prototype.FieldByNameFunc=function(aw){return this.$val.FieldByNameFunc(aw);};Q.ptr.prototype.CanFloat=function(){var aw,ax;aw=this;ax=new R(aw.flag).kind();if((ax===(13))||(ax===(14))){return true;}else{return false;}};Q.prototype.CanFloat=function(){return this.$val.CanFloat();};Q.ptr.prototype.Float=function(){var aw,ax,ay;aw=this;ax=new R(aw.flag).kind();ay=ax;if(ay===(13)){return((aw.ptr).$get());}else if(ay===(14)){return(aw.ptr).$get();}$panic(new U.ptr("reflect.Value.Float",new R(aw.flag).kind()));};Q.prototype.Float=function(){return this.$val.Float();};Q.ptr.prototype.CanInt=function(){var aw,ax;aw=this;ax=new R(aw.flag).kind();if((ax===(2))||(ax===(3))||(ax===(4))||(ax===(5))||(ax===(6))){return true;}else{return false;}};Q.prototype.CanInt=function(){return this.$val.CanInt();};Q.ptr.prototype.Int=function(){var aw,ax,ay,az;aw=this;ax=new R(aw.flag).kind();ay=aw.ptr;az=ax;if(az===(2)){return(new $Int64(0,(ay).$get()));}else if(az===(3)){return(new $Int64(0,(ay).$get()));}else if(az===(4)){return(new $Int64(0,(ay).$get()));}else if(az===(5)){return(new $Int64(0,(ay).$get()));}else if(az===(6)){return(ay).$get();}$panic(new U.ptr("reflect.Value.Int",new R(aw.flag).kind()));};Q.prototype.Int=function(){return this.$val.Int();};Q.ptr.prototype.CanInterface=function(){var aw;aw=this;if(aw.flag===0){$panic(new U.ptr("reflect.Value.CanInterface",0));}return((aw.flag&96)>>>0)===0;};Q.prototype.CanInterface=function(){return this.$val.CanInterface();};Q.ptr.prototype.Interface=function(){var{aw,ax,ay,az,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=$ifaceNil;ax=this;ay=HT($clone(ax,Q),true);$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}aw=ay;az=aw;$s=2;case 2:return az;}return;}var $f={$blk:Q.ptr.prototype.Interface,$c:true,$r,aw,ax,ay,az,$s};return $f;};Q.prototype.Interface=function(){return this.$val.Interface();};Q.ptr.prototype.IsValid=function(){var aw;aw=this;return!((aw.flag===0));};Q.prototype.IsValid=function(){return this.$val.IsValid();};Q.ptr.prototype.IsZero=function(){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=this;ax=new R(aw.flag).kind();if(ax===(1)){$s=2;continue;}if((ax===(2))||(ax===(3))||(ax===(4))||(ax===(5))||(ax===(6))){$s=3;continue;}if((ax===(7))||(ax===(8))||(ax===(9))||(ax===(10))||(ax===(11))||(ax===(12))){$s=4;continue;}if((ax===(13))||(ax===(14))){$s=5;continue;}if((ax===(15))||(ax===(16))){$s=6;continue;}if(ax===(17)){$s=7;continue;}if((ax===(18))||(ax===(19))||(ax===(20))||(ax===(21))||(ax===(22))||(ax===(23))||(ax===(26))){$s=8;continue;}if(ax===(24)){$s=9;continue;}if(ax===(25)){$s=10;continue;}$s=11;continue;case 2:$s=-1;return!$clone(aw,Q).Bool();case 3:$s=-1;return(ay=$clone(aw,Q).Int(),(ay.$high===0&&ay.$low===0));case 4:$s=-1;return(az=$clone(aw,Q).Uint(),(az.$high===0&&az.$low===0));case 5:$s=-1;return(ba=F.Float64bits($clone(aw,Q).Float()),(ba.$high===0&&ba.$low===0));case 6:bb=$clone(aw,Q).Complex();$s=-1;return(bc=F.Float64bits(bb.$real),(bc.$high===0&&bc.$low===0))&&(bd=F.Float64bits(bb.$imag),(bd.$high===0&&bd.$low===0));case 7:be=0;case 13:if(!(be<$clone(aw,Q).Len())){$s=14;continue;}bf=$clone(aw,Q).Index(be);$s=17;case 17:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bg=$clone(bf,Q).IsZero();$s=18;case 18:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}if(!bg){$s=15;continue;}$s=16;continue;case 15:$s=-1;return false;case 16:be=be+(1)>>0;$s=13;continue;case 14:$s=-1;return true;case 8:$s=-1;return $clone(aw,Q).IsNil();case 9:$s=-1;return $clone(aw,Q).Len()===0;case 10:bh=0;case 19:if(!(bh<$clone(aw,Q).NumField())){$s=20;continue;}bi=$clone(aw,Q).Field(bh);$s=23;case 23:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bj=$clone(bi,Q).IsZero();$s=24;case 24:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}if(!bj){$s=21;continue;}$s=22;continue;case 21:$s=-1;return false;case 22:bh=bh+(1)>>0;$s=19;continue;case 20:$s=-1;return true;case 11:$panic(new U.ptr("reflect.Value.IsZero",$clone(aw,Q).Kind()));case 12:case 1:$s=-1;return false;}return;}var $f={$blk:Q.ptr.prototype.IsZero,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,$s};return $f;};Q.prototype.IsZero=function(){return this.$val.IsZero();};Q.ptr.prototype.Kind=function(){var aw;aw=this;return new R(aw.flag).kind();};Q.prototype.Kind=function(){return this.$val.Kind();};Q.ptr.prototype.MapIndex=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;new R(ax.flag).mustBe(21);ay=(ax.typ.kindType);az=0;if((ay.key===AF||(new R(aw.flag).kind()===24))&&ay.key===aw.typ&&ay.elem.size<=128){$s=1;continue;}$s=2;continue;case 1:ba=(aw.ptr).$get();az=HG(ax.typ,$clone(ax,Q).pointer(),ba);$s=3;continue;case 2:bb=$clone(aw,Q).assignTo("reflect.Value.MapIndex",ay.key,0);$s=4;case 4:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}aw=bb;bc=0;if(!((((aw.flag&128)>>>0)===0))){bc=aw.ptr;}else{bc=((aw.$ptr_ptr||(aw.$ptr_ptr=new JV(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},aw))));}az=HD(ax.typ,$clone(ax,Q).pointer(),bc);case 3:if(az===0){$s=-1;return new Q.ptr(JE.nil,0,0);}bd=ay.elem;be=new R((((ax.flag|aw.flag)>>>0))).ro();be=(be|(((bd.Kind()>>>0))))>>>0;$s=-1;return AH(bd,be,az);}return;}var $f={$blk:Q.ptr.prototype.MapIndex,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,$s};return $f;};Q.prototype.MapIndex=function(aw){return this.$val.MapIndex(aw);};Q.ptr.prototype.MapKeys=function(){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=[aw];ax=this;new R(ax.flag).mustBe(21);ay=(ax.typ.kindType);az=ay.key;ba=(new R(ax.flag).ro()|((az.Kind()>>>0)))>>>0;bb=$clone(ax,Q).pointer();bc=0;if(!(bb===0)){bc=HO(bb);}aw[0]=new HJ.ptr($ifaceNil,null,null,0,null);HK(ax.typ,bb,aw[0]);bd=$makeSlice(JO,bc);be=0;be=0;case 1:if(!(be=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+be]=AH(az,ba,bg));HN(aw[0]);be=be+(1)>>0;$s=1;continue;case 2:$s=-1;return $subslice(bd,0,be);}return;}var $f={$blk:Q.ptr.prototype.MapKeys,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,$s};return $f;};Q.prototype.MapKeys=function(){return this.$val.MapKeys();};HJ.ptr.prototype.initialized=function(){var aw;aw=this;return!($interfaceIsEqual(aw.t,$ifaceNil));};HJ.prototype.initialized=function(){return this.$val.initialized();};AG.ptr.prototype.Key=function(){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=this;if(!aw.hiter.initialized()){$panic(new $String("MapIter.Key called before Next"));}ax=HL(aw.hiter);$s=1;case 1:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;if(ay===0){$panic(new $String("MapIter.Key called on exhausted iterator"));}az=(aw.m.typ.kindType);ba=az.key;$s=-1;return AH(ba,(new R(aw.m.flag).ro()|((ba.Kind()>>>0)))>>>0,ay);}return;}var $f={$blk:AG.ptr.prototype.Key,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};AG.prototype.Key=function(){return this.$val.Key();};Q.ptr.prototype.SetIterKey=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;if(!aw.hiter.initialized()){$panic(new $String("reflect: Value.SetIterKey called before Next"));}ay=HL(aw.hiter);$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;if(az===0){$panic(new $String("reflect: Value.SetIterKey called on exhausted iterator"));}new R(ax.flag).mustBeAssignable();ba=0;if(new R(ax.flag).kind()===20){ba=ax.ptr;}bb=(aw.m.typ.kindType);bc=bb.key;bd=new Q.ptr(bc,az,(((aw.m.flag|((bc.Kind()>>>0)))>>>0)|128)>>>0);be=$clone(bd,Q).assignTo("reflect.MapIter.SetKey",ax.typ,ba);$s=2;case 2:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bd=be;GY(ax.typ,ax.ptr,bd.ptr);$s=-1;return;}return;}var $f={$blk:Q.ptr.prototype.SetIterKey,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,$s};return $f;};Q.prototype.SetIterKey=function(aw){return this.$val.SetIterKey(aw);};AG.ptr.prototype.Value=function(){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=this;if(!aw.hiter.initialized()){$panic(new $String("MapIter.Value called before Next"));}ax=HM(aw.hiter);$s=1;case 1:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;if(ay===0){$panic(new $String("MapIter.Value called on exhausted iterator"));}az=(aw.m.typ.kindType);ba=az.elem;$s=-1;return AH(ba,(new R(aw.m.flag).ro()|((ba.Kind()>>>0)))>>>0,ay);}return;}var $f={$blk:AG.ptr.prototype.Value,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};AG.prototype.Value=function(){return this.$val.Value();};Q.ptr.prototype.SetIterValue=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;if(!aw.hiter.initialized()){$panic(new $String("reflect: Value.SetIterValue called before Next"));}ay=HM(aw.hiter);$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;if(az===0){$panic(new $String("reflect: Value.SetIterValue called on exhausted iterator"));}new R(ax.flag).mustBeAssignable();ba=0;if(new R(ax.flag).kind()===20){ba=ax.ptr;}bb=(aw.m.typ.kindType);bc=bb.elem;bd=new Q.ptr(bc,az,(((aw.m.flag|((bc.Kind()>>>0)))>>>0)|128)>>>0);be=$clone(bd,Q).assignTo("reflect.MapIter.SetValue",ax.typ,ba);$s=2;case 2:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bd=be;GY(ax.typ,ax.ptr,bd.ptr);$s=-1;return;}return;}var $f={$blk:Q.ptr.prototype.SetIterValue,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,$s};return $f;};Q.prototype.SetIterValue=function(aw){return this.$val.SetIterValue(aw);};AG.ptr.prototype.Next=function(){var{aw,ax,ay,az,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=this;if(!$clone(aw.m,Q).IsValid()){$panic(new $String("MapIter.Next called on an iterator that does not have an associated map Value"));}if(!aw.hiter.initialized()){$s=1;continue;}$s=2;continue;case 1:HK(aw.m.typ,$clone(aw.m,Q).pointer(),aw.hiter);$s=3;continue;case 2:ax=HL(aw.hiter);$s=6;case 6:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}if(ax===0){$s=4;continue;}$s=5;continue;case 4:$panic(new $String("MapIter.Next called on exhausted iterator"));case 5:HN(aw.hiter);case 3:ay=HL(aw.hiter);$s=7;case 7:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=!(ay===0);$s=8;case 8:return az;}return;}var $f={$blk:AG.ptr.prototype.Next,$c:true,$r,aw,ax,ay,az,$s};return $f;};AG.prototype.Next=function(){return this.$val.Next();};AG.ptr.prototype.Reset=function(aw){var aw,ax;ax=this;if($clone(aw,Q).IsValid()){new R(aw.flag).mustBe(21);}ax.m=aw;HJ.copy(ax.hiter,new HJ.ptr($ifaceNil,null,null,0,null));};AG.prototype.Reset=function(aw){return this.$val.Reset(aw);};Q.ptr.prototype.MapRange=function(){var aw;aw=this;new R(aw.flag).mustBe(21);return new AG.ptr($clone(aw,Q),new HJ.ptr($ifaceNil,null,null,0,null));};Q.prototype.MapRange=function(){return this.$val.MapRange();};AH=function(aw,ax,ay){var aw,ax,ay,az;if(FD(aw)){az=GV(aw);GY(aw,az,ay);return new Q.ptr(aw,az,(ax|128)>>>0);}return new Q.ptr(aw,(ay).$get(),ax);};Q.ptr.prototype.Method=function(aw){var aw,ax,ay;ax=this;if(ax.typ===JE.nil){$panic(new U.ptr("reflect.Value.Method",0));}if(!((((ax.flag&512)>>>0)===0))||((aw>>>0))>=((ax.typ.NumMethod()>>>0))){$panic(new $String("reflect: Method index out of range"));}if((ax.typ.Kind()===20)&&$clone(ax,Q).IsNil()){$panic(new $String("reflect: Method on nil interface value"));}ay=(new R(ax.flag).ro()|(((ax.flag&128)>>>0)))>>>0;ay=(ay|(19))>>>0;ay=(ay|((((((aw>>>0))<<10>>>0)|512)>>>0)))>>>0;return new Q.ptr(ax.typ,ax.ptr,ay);};Q.prototype.Method=function(aw){return this.$val.Method(aw);};Q.ptr.prototype.NumMethod=function(){var aw;aw=this;if(aw.typ===JE.nil){$panic(new U.ptr("reflect.Value.NumMethod",0));}if(!((((aw.flag&512)>>>0)===0))){return 0;}return aw.typ.NumMethod();};Q.prototype.NumMethod=function(){return this.$val.NumMethod();};Q.ptr.prototype.MethodByName=function(aw){var{aw,ax,ay,az,ba,bb,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;if(ax.typ===JE.nil){$panic(new U.ptr("reflect.Value.MethodByName",0));}if(!((((ax.flag&512)>>>0)===0))){$s=-1;return new Q.ptr(JE.nil,0,0);}az=ax.typ.MethodByName(aw);$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ay=az;ba=$clone(ay[0],DA);bb=ay[1];if(!bb){$s=-1;return new Q.ptr(JE.nil,0,0);}$s=-1;return $clone(ax,Q).Method(ba.Index);}return;}var $f={$blk:Q.ptr.prototype.MethodByName,$c:true,$r,aw,ax,ay,az,ba,bb,$s};return $f;};Q.prototype.MethodByName=function(aw){return this.$val.MethodByName(aw);};Q.ptr.prototype.NumField=function(){var aw,ax;aw=this;new R(aw.flag).mustBe(25);ax=(aw.typ.kindType);return ax.fields.$length;};Q.prototype.NumField=function(){return this.$val.NumField();};Q.ptr.prototype.OverflowComplex=function(aw){var aw,ax,ay,az;ax=this;ay=new R(ax.flag).kind();az=ay;if(az===(15)){return AI(aw.$real)||AI(aw.$imag);}else if(az===(16)){return false;}$panic(new U.ptr("reflect.Value.OverflowComplex",new R(ax.flag).kind()));};Q.prototype.OverflowComplex=function(aw){return this.$val.OverflowComplex(aw);};Q.ptr.prototype.OverflowFloat=function(aw){var aw,ax,ay,az;ax=this;ay=new R(ax.flag).kind();az=ay;if(az===(13)){return AI(aw);}else if(az===(14)){return false;}$panic(new U.ptr("reflect.Value.OverflowFloat",new R(ax.flag).kind()));};Q.prototype.OverflowFloat=function(aw){return this.$val.OverflowFloat(aw);};AI=function(aw){var aw;if(aw<0){aw=-aw;}return 3.4028234663852886e+38>>0;bb=$shiftRightInt64(($shiftLeft64(aw,((64-ba>>>0)))),((64-ba>>>0)));return!((aw.$high===bb.$high&&aw.$low===bb.$low));}$panic(new U.ptr("reflect.Value.OverflowInt",new R(ax.flag).kind()));};Q.prototype.OverflowInt=function(aw){return this.$val.OverflowInt(aw);};Q.ptr.prototype.OverflowUint=function(aw){var aw,ax,ay,az,ba,bb;ax=this;ay=new R(ax.flag).kind();az=ay;if((az===(7))||(az===(12))||(az===(8))||(az===(9))||(az===(10))||(az===(11))){ba=$imul(ax.typ.size,8)>>>0;bb=$shiftRightUint64(($shiftLeft64(aw,((64-ba>>>0)))),((64-ba>>>0)));return!((aw.$high===bb.$high&&aw.$low===bb.$low));}$panic(new U.ptr("reflect.Value.OverflowUint",new R(ax.flag).kind()));};Q.prototype.OverflowUint=function(aw){return this.$val.OverflowUint(aw);};Q.ptr.prototype.Recv=function(){var{aw,ax,ay,az,ba,bb,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=new Q.ptr(JE.nil,0,0);ax=false;ay=this;new R(ay.flag).mustBe(18);new R(ay.flag).mustBeExported();ba=$clone(ay,Q).recv(false);$s=1;case 1:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}az=ba;aw=az[0];ax=az[1];bb=[aw,ax];$s=2;case 2:return bb;}return;}var $f={$blk:Q.ptr.prototype.Recv,$c:true,$r,aw,ax,ay,az,ba,bb,$s};return $f;};Q.prototype.Recv=function(){return this.$val.Recv();};Q.ptr.prototype.recv=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=new Q.ptr(JE.nil,0,0);ay=false;az=this;ba=(az.typ.kindType);if((((ba.dir>>0))&1)===0){$panic(new $String("reflect: recv on send-only channel"));}bb=ba.elem;ax=new Q.ptr(bb,0,((bb.Kind()>>>0)));bc=0;if(FD(bb)){bc=GV(bb);ax.ptr=bc;ax.flag=(ax.flag|(128))>>>0;}else{bc=((ax.$ptr_ptr||(ax.$ptr_ptr=new JV(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},ax))));}be=IC($clone(az,Q).pointer(),aw,bc);$s=1;case 1:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bd=be;bf=bd[0];ay=bd[1];if(!bf){ax=new Q.ptr(JE.nil,0,0);}$s=-1;return[ax,ay];}return;}var $f={$blk:Q.ptr.prototype.recv,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,$s};return $f;};Q.prototype.recv=function(aw){return this.$val.recv(aw);};Q.ptr.prototype.Send=function(aw){var{aw,ax,ay,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;new R(ax.flag).mustBe(18);new R(ax.flag).mustBeExported();ay=$clone(ax,Q).send($clone(aw,Q),false);$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}ay;$s=-1;return;}return;}var $f={$blk:Q.ptr.prototype.Send,$c:true,$r,aw,ax,ay,$s};return $f;};Q.prototype.Send=function(aw){return this.$val.Send(aw);};Q.ptr.prototype.send=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,be,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=false;az=this;ba=(az.typ.kindType);if((((ba.dir>>0))&2)===0){$panic(new $String("reflect: send on recv-only channel"));}new R(aw.flag).mustBeExported();bb=$clone(aw,Q).assignTo("reflect.Value.Send",ba.elem,0);$s=1;case 1:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}aw=bb;bc=0;if(!((((aw.flag&128)>>>0)===0))){bc=aw.ptr;}else{bc=((aw.$ptr_ptr||(aw.$ptr_ptr=new JV(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},aw))));}bd=ID($clone(az,Q).pointer(),bc,ax);$s=2;case 2:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}ay=bd;be=ay;$s=3;case 3:return be;}return;}var $f={$blk:Q.ptr.prototype.send,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,$s};return $f;};Q.prototype.send=function(aw,ax){return this.$val.send(aw,ax);};Q.ptr.prototype.SetBool=function(aw){var aw,ax;ax=this;new R(ax.flag).mustBeAssignable();new R(ax.flag).mustBe(1);(ax.ptr).$set(aw);};Q.prototype.SetBool=function(aw){return this.$val.SetBool(aw);};Q.ptr.prototype.setRunes=function(aw){var{aw,ax,ay,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;new R(ax.flag).mustBeAssignable();new R(ax.flag).mustBe(23);ay=ax.typ.Elem().Kind();$s=3;case 3:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}if(!((ay===5))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.Value.setRunes of non-rune slice"));case 2:(ax.ptr).$set(aw);$s=-1;return;}return;}var $f={$blk:Q.ptr.prototype.setRunes,$c:true,$r,aw,ax,ay,$s};return $f;};Q.prototype.setRunes=function(aw){return this.$val.setRunes(aw);};Q.ptr.prototype.SetComplex=function(aw){var aw,ax,ay,az;ax=this;new R(ax.flag).mustBeAssignable();ay=new R(ax.flag).kind();az=ay;if(az===(15)){(ax.ptr).$set((new $Complex64(aw.$real,aw.$imag)));}else if(az===(16)){(ax.ptr).$set(aw);}else{$panic(new U.ptr("reflect.Value.SetComplex",new R(ax.flag).kind()));}};Q.prototype.SetComplex=function(aw){return this.$val.SetComplex(aw);};Q.ptr.prototype.SetFloat=function(aw){var aw,ax,ay,az;ax=this;new R(ax.flag).mustBeAssignable();ay=new R(ax.flag).kind();az=ay;if(az===(13)){(ax.ptr).$set(($fround(aw)));}else if(az===(14)){(ax.ptr).$set(aw);}else{$panic(new U.ptr("reflect.Value.SetFloat",new R(ax.flag).kind()));}};Q.prototype.SetFloat=function(aw){return this.$val.SetFloat(aw);};Q.ptr.prototype.SetInt=function(aw){var aw,ax,ay,az;ax=this;new R(ax.flag).mustBeAssignable();ay=new R(ax.flag).kind();az=ay;if(az===(2)){(ax.ptr).$set((((aw.$low+((aw.$high>>31)*4294967296))>>0)));}else if(az===(3)){(ax.ptr).$set((((aw.$low+((aw.$high>>31)*4294967296))<<24>>24)));}else if(az===(4)){(ax.ptr).$set((((aw.$low+((aw.$high>>31)*4294967296))<<16>>16)));}else if(az===(5)){(ax.ptr).$set((((aw.$low+((aw.$high>>31)*4294967296))>>0)));}else if(az===(6)){(ax.ptr).$set(aw);}else{$panic(new U.ptr("reflect.Value.SetInt",new R(ax.flag).kind()));}};Q.prototype.SetInt=function(aw){return this.$val.SetInt(aw);};Q.ptr.prototype.SetMapIndex=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=this;new R(ay.flag).mustBe(21);new R(ay.flag).mustBeExported();new R(aw.flag).mustBeExported();az=(ay.typ.kindType);if((az.key===AF||(new R(aw.flag).kind()===24))&&az.key===aw.typ&&az.elem.size<=128){$s=1;continue;}$s=2;continue;case 1:ba=(aw.ptr).$get();if(ax.typ===JE.nil){HI(ay.typ,$clone(ay,Q).pointer(),ba);$s=-1;return;}new R(ax.flag).mustBeExported();bb=$clone(ax,Q).assignTo("reflect.Value.SetMapIndex",az.elem,0);$s=3;case 3:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}ax=bb;bc=0;if(!((((ax.flag&128)>>>0)===0))){bc=ax.ptr;}else{bc=((ax.$ptr_ptr||(ax.$ptr_ptr=new JV(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},ax))));}$r=HH(ay.typ,$clone(ay,Q).pointer(),ba,bc);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 2:bd=$clone(aw,Q).assignTo("reflect.Value.SetMapIndex",az.key,0);$s=5;case 5:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}aw=bd;be=0;if(!((((aw.flag&128)>>>0)===0))){be=aw.ptr;}else{be=((aw.$ptr_ptr||(aw.$ptr_ptr=new JV(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},aw))));}if(ax.typ===JE.nil){HF(ay.typ,$clone(ay,Q).pointer(),be);$s=-1;return;}new R(ax.flag).mustBeExported();bf=$clone(ax,Q).assignTo("reflect.Value.SetMapIndex",az.elem,0);$s=6;case 6:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}ax=bf;bg=0;if(!((((ax.flag&128)>>>0)===0))){bg=ax.ptr;}else{bg=((ax.$ptr_ptr||(ax.$ptr_ptr=new JV(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},ax))));}$r=HE(ay.typ,$clone(ay,Q).pointer(),be,bg);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:Q.ptr.prototype.SetMapIndex,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,$s};return $f;};Q.prototype.SetMapIndex=function(aw,ax){return this.$val.SetMapIndex(aw,ax);};Q.ptr.prototype.SetUint=function(aw){var aw,ax,ay,az;ax=this;new R(ax.flag).mustBeAssignable();ay=new R(ax.flag).kind();az=ay;if(az===(7)){(ax.ptr).$set(((aw.$low>>>0)));}else if(az===(8)){(ax.ptr).$set(((aw.$low<<24>>>24)));}else if(az===(9)){(ax.ptr).$set(((aw.$low<<16>>>16)));}else if(az===(10)){(ax.ptr).$set(((aw.$low>>>0)));}else if(az===(11)){(ax.ptr).$set(aw);}else if(az===(12)){(ax.ptr).$set(((aw.$low>>>0)));}else{$panic(new U.ptr("reflect.Value.SetUint",new R(ax.flag).kind()));}};Q.prototype.SetUint=function(aw){return this.$val.SetUint(aw);};Q.ptr.prototype.SetPointer=function(aw){var aw,ax;ax=this;new R(ax.flag).mustBeAssignable();new R(ax.flag).mustBe(26);(ax.ptr).$set(aw);};Q.prototype.SetPointer=function(aw){return this.$val.SetPointer(aw);};Q.ptr.prototype.SetString=function(aw){var aw,ax;ax=this;new R(ax.flag).mustBeAssignable();new R(ax.flag).mustBe(24);(ax.ptr).$set(aw);};Q.prototype.SetString=function(aw){return this.$val.SetString(aw);};Q.ptr.prototype.String=function(){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=this;ax=new R(aw.flag).kind();ay=ax;if(ay===(0)){$s=-1;return"";}else if(ay===(24)){$s=-1;return(aw.ptr).$get();}az=$clone(aw,Q).Type().String();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba="<"+az+" Value>";$s=2;case 2:return ba;}return;}var $f={$blk:Q.ptr.prototype.String,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};Q.prototype.String=function(){return this.$val.String();};Q.ptr.prototype.TryRecv=function(){var{aw,ax,ay,az,ba,bb,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=new Q.ptr(JE.nil,0,0);ax=false;ay=this;new R(ay.flag).mustBe(18);new R(ay.flag).mustBeExported();ba=$clone(ay,Q).recv(true);$s=1;case 1:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}az=ba;aw=az[0];ax=az[1];bb=[aw,ax];$s=2;case 2:return bb;}return;}var $f={$blk:Q.ptr.prototype.TryRecv,$c:true,$r,aw,ax,ay,az,ba,bb,$s};return $f;};Q.prototype.TryRecv=function(){return this.$val.TryRecv();};Q.ptr.prototype.TrySend=function(aw){var{aw,ax,ay,az,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;new R(ax.flag).mustBe(18);new R(ax.flag).mustBeExported();ay=$clone(ax,Q).send($clone(aw,Q),true);$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;$s=2;case 2:return az;}return;}var $f={$blk:Q.ptr.prototype.TrySend,$c:true,$r,aw,ax,ay,az,$s};return $f;};Q.prototype.TrySend=function(aw){return this.$val.TrySend(aw);};Q.ptr.prototype.Type=function(){var aw,ax,ay,az,ba,bb,bc,bd;aw=this;ax=aw.flag;if(ax===0){$panic(new U.ptr("reflect.Value.Type",0));}if(((ax&512)>>>0)===0){return aw.typ;}ay=((aw.flag>>0))>>10>>0;if(aw.typ.Kind()===20){az=(aw.typ.kindType);if(((ay>>>0))>=((az.methods.$length>>>0))){$panic(new $String("reflect: internal error: invalid method index"));}bb=(ba=az.methods,((ay<0||ay>=ba.$length)?($throwRuntimeError("index out of range"),undefined):ba.$array[ba.$offset+ay]));return aw.typ.typeOff(bb.typ);}bc=aw.typ.exportedMethods();if(((ay>>>0))>=((bc.$length>>>0))){$panic(new $String("reflect: internal error: invalid method index"));}bd=$clone(((ay<0||ay>=bc.$length)?($throwRuntimeError("index out of range"),undefined):bc.$array[bc.$offset+ay]),CO);return aw.typ.typeOff(bd.mtyp);};Q.prototype.Type=function(){return this.$val.Type();};Q.ptr.prototype.CanUint=function(){var aw,ax;aw=this;ax=new R(aw.flag).kind();if((ax===(7))||(ax===(8))||(ax===(9))||(ax===(10))||(ax===(11))||(ax===(12))){return true;}else{return false;}};Q.prototype.CanUint=function(){return this.$val.CanUint();};Q.ptr.prototype.Uint=function(){var aw,ax,ay,az,ba;aw=this;ax=new R(aw.flag).kind();ay=aw.ptr;az=ax;if(az===(7)){return(new $Uint64(0,(ay).$get()));}else if(az===(8)){return(new $Uint64(0,(ay).$get()));}else if(az===(9)){return(new $Uint64(0,(ay).$get()));}else if(az===(10)){return(new $Uint64(0,(ay).$get()));}else if(az===(11)){return(ay).$get();}else if(az===(12)){return((ba=(ay).$get(),new $Uint64(0,ba.constructor===Number?ba:1)));}$panic(new U.ptr("reflect.Value.Uint",new R(aw.flag).kind()));};Q.prototype.Uint=function(){return this.$val.Uint();};Q.ptr.prototype.UnsafeAddr=function(){var aw;aw=this;if(aw.typ===JE.nil){$panic(new U.ptr("reflect.Value.UnsafeAddr",0));}if(((aw.flag&256)>>>0)===0){$panic(new $String("reflect.Value.UnsafeAddr of unaddressable value"));}return(aw.ptr);};Q.prototype.UnsafeAddr=function(){return this.$val.UnsafeAddr();};Q.ptr.prototype.UnsafePointer=function(){var{aw,ax,ay,az,ba,bb,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=[aw];ax=this;ay=new R(ax.flag).kind();az=ay;if(az===(22)){$s=2;continue;}if((az===(18))||(az===(21))||(az===(26))){$s=3;continue;}if(az===(19)){$s=4;continue;}if(az===(23)){$s=5;continue;}$s=6;continue;case 2:if(ax.typ.ptrdata===0){if(!II((ax.ptr).$get())){$panic(new $String("reflect: reflect.Value.UnsafePointer on an invalid notinheap pointer"));}$s=-1;return(ax.ptr).$get();}$s=-1;return $clone(ax,Q).pointer();case 3:$s=-1;return $clone(ax,Q).pointer();case 4:if(!((((ax.flag&512)>>>0)===0))){$s=7;continue;}$s=8;continue;case 7:ba=FJ();$s=9;case 9:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}aw[0]=ba;$s=-1;return aw[0];case 8:bb=$clone(ax,Q).pointer();if(!(bb===0)){bb=(bb).$get();}$s=-1;return bb;case 5:$s=-1;return($pointerOfStructConversion(ax.ptr,JW)).Data;case 6:case 1:$panic(new U.ptr("reflect.Value.UnsafePointer",new R(ax.flag).kind()));$s=-1;return 0;}return;}var $f={$blk:Q.ptr.prototype.UnsafePointer,$c:true,$r,aw,ax,ay,az,ba,bb,$s};return $f;};Q.prototype.UnsafePointer=function(){return this.$val.UnsafePointer();};AL=function(aw,ax,ay){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:if(!($interfaceIsEqual(ax,ay))){$s=1;continue;}$s=2;continue;case 1:az=ax.String();$s=3;case 3:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=ay.String();$s=4;case 4:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}$panic(new $String(aw+": "+az+" != "+ba));case 2:$s=-1;return;}return;}var $f={$blk:AL,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};AW=function(aw){var{aw,ax,ay,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=AX(aw,0);$s=1;case 1:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;$s=2;case 2:return ay;}return;}var $f={$blk:AW,$c:true,$r,aw,ax,ay,$s};return $f;};$pkg.MakeMap=AW;AX=function(aw,ax){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=aw.Kind();$s=3;case 3:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}if(!((ay===21))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.MakeMapWithSize of non-map type"));case 2:az=$assertType(aw,JE);ba=HB(az,ax);$s=-1;return new Q.ptr(az,ba,21);}return;}var $f={$blk:AX,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};$pkg.MakeMapWithSize=AX;AY=function(aw){var{aw,ax,ay,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:if(!(($clone(aw,Q).Kind()===22))){$s=-1;return aw;}ax=$clone(aw,Q).Elem();$s=1;case 1:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;$s=2;case 2:return ay;}return;}var $f={$blk:AY,$c:true,$r,aw,ax,ay,$s};return $f;};$pkg.Indirect=AY;Q.ptr.prototype.Convert=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;if(!((((ax.flag&512)>>>0)===0))){$s=1;continue;}$s=2;continue;case 1:ay=HV("Convert",$clone(ax,Q));$s=3;case 3:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}ax=ay;case 2:az=aw.common();$s=4;case 4:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=BB(az,ax.typ);$s=5;case 5:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba;if(bb===$throwNilPointerError){$s=6;continue;}$s=7;continue;case 6:bc=aw.String();$s=8;case 8:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}$panic(new $String("reflect.Value.Convert: value of type "+ax.typ.String()+" cannot be converted to type "+bc));case 7:bd=bb($clone(ax,Q),aw);$s=9;case 9:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=bd;$s=10;case 10:return be;}return;}var $f={$blk:Q.ptr.prototype.Convert,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,$s};return $f;};Q.prototype.Convert=function(aw){return this.$val.Convert(aw);};Q.ptr.prototype.CanConvert=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;ay=$clone(ax,Q).Type();az=ay.ConvertibleTo(aw);$s=3;case 3:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}if(!az){$s=1;continue;}$s=2;continue;case 1:$s=-1;return false;case 2:bc=ay.Kind();$s=8;case 8:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}if(!(bc===23)){bb=false;$s=7;continue s;}bd=aw.Kind();$s=9;case 9:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}bb=bd===22;case 7:if(!(bb)){ba=false;$s=6;continue s;}be=aw.Elem();$s=10;case 10:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bf=be.Kind();$s=11;case 11:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}ba=bf===17;case 6:if(ba){$s=4;continue;}$s=5;continue;case 4:bg=aw.Elem();$s=12;case 12:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=bg.Len();$s=13;case 13:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bi=bh;if(bi>$clone(ax,Q).Len()){$s=-1;return false;}case 5:$s=-1;return true;}return;}var $f={$blk:Q.ptr.prototype.CanConvert,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,$s};return $f;};Q.prototype.CanConvert=function(aw){return this.$val.CanConvert(aw);};BB=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=ax.Kind();if((ay===(2))||(ay===(3))||(ay===(4))||(ay===(5))||(ay===(6))){$s=2;continue;}if((ay===(7))||(ay===(8))||(ay===(9))||(ay===(10))||(ay===(11))||(ay===(12))){$s=3;continue;}if((ay===(13))||(ay===(14))){$s=4;continue;}if((ay===(15))||(ay===(16))){$s=5;continue;}if(ay===(24)){$s=6;continue;}if(ay===(23)){$s=7;continue;}if(ay===(18)){$s=8;continue;}$s=9;continue;case 2:az=aw.Kind();if((az===(2))||(az===(3))||(az===(4))||(az===(5))||(az===(6))||(az===(7))||(az===(8))||(az===(9))||(az===(10))||(az===(11))||(az===(12))){$s=-1;return BI;}else if((az===(13))||(az===(14))){$s=-1;return BM;}else if(az===(24)){$s=-1;return BQ;}$s=9;continue;case 3:ba=aw.Kind();if((ba===(2))||(ba===(3))||(ba===(4))||(ba===(5))||(ba===(6))||(ba===(7))||(ba===(8))||(ba===(9))||(ba===(10))||(ba===(11))||(ba===(12))){$s=-1;return BJ;}else if((ba===(13))||(ba===(14))){$s=-1;return BN;}else if(ba===(24)){$s=-1;return BR;}$s=9;continue;case 4:bb=aw.Kind();if((bb===(2))||(bb===(3))||(bb===(4))||(bb===(5))||(bb===(6))){$s=-1;return BK;}else if((bb===(7))||(bb===(8))||(bb===(9))||(bb===(10))||(bb===(11))||(bb===(12))){$s=-1;return BL;}else if((bb===(13))||(bb===(14))){$s=-1;return BO;}$s=9;continue;case 5:bc=aw.Kind();if((bc===(15))||(bc===(16))){$s=-1;return BP;}$s=9;continue;case 6:if(!(aw.Kind()===23)){bd=false;$s=12;continue s;}be=aw.Elem().PkgPath();$s=13;case 13:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bd=be==="";case 12:if(bd){$s=10;continue;}$s=11;continue;case 10:bf=aw.Elem().Kind();$s=15;case 15:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bg=bf;if(bg===(8)){$s=-1;return BT;}else if(bg===(5)){$s=-1;return BV;}case 14:case 11:$s=9;continue;case 7:if(!(aw.Kind()===24)){bh=false;$s=18;continue s;}bi=ax.Elem().PkgPath();$s=19;case 19:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bh=bi==="";case 18:if(bh){$s=16;continue;}$s=17;continue;case 16:bj=ax.Elem().Kind();$s=21;case 21:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bk=bj;if(bk===(8)){$s=-1;return BS;}else if(bk===(5)){$s=-1;return BU;}case 20:case 17:if(!(aw.Kind()===22)){bm=false;$s=25;continue s;}bn=aw.Elem().Kind();$s=26;case 26:if($c){$c=false;bn=bn.$blk();}if(bn&&bn.$blk!==undefined){break s;}bm=bn===17;case 25:if(!(bm)){bl=false;$s=24;continue s;}bo=aw.Elem().Elem();$s=27;case 27:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bl=$interfaceIsEqual(ax.Elem(),bo);case 24:if(bl){$s=22;continue;}$s=23;continue;case 22:$s=-1;return HQ;case 23:$s=9;continue;case 8:if(!(aw.Kind()===18)){bp=false;$s=30;continue s;}bq=DU(aw,ax);$s=31;case 31:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}bp=bq;case 30:if(bp){$s=28;continue;}$s=29;continue;case 28:$s=-1;return HP;case 29:case 9:case 1:br=DX(aw,ax,false);$s=34;case 34:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}if(br){$s=32;continue;}$s=33;continue;case 32:$s=-1;return HP;case 33:if(!((aw.Kind()===22)&&aw.Name()===""&&(ax.Kind()===22)&&ax.Name()==="")){bs=false;$s=37;continue s;}bt=aw.Elem().common();$s=38;case 38:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}bu=bt;bv=ax.Elem().common();$s=39;case 39:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}bw=bv;bx=DX(bu,bw,false);$s=40;case 40:if($c){$c=false;bx=bx.$blk();}if(bx&&bx.$blk!==undefined){break s;}bs=bx;case 37:if(bs){$s=35;continue;}$s=36;continue;case 35:$s=-1;return HP;case 36:if(DT(aw,ax)){if(ax.Kind()===20){$s=-1;return BX;}$s=-1;return BW;}$s=-1;return $throwNilPointerError;}return;}var $f={$blk:BB,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,$s};return $f;};BC=function(aw,ax,ay){var{aw,ax,ay,az,ba,bb,bc,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:az=ay.common();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;bb=GV(ba);bc=ba.size;if(bc===(4)){(bb).$set(($fround(ax)));}else if(bc===(8)){(bb).$set(ax);}$s=-1;return new Q.ptr(ba,bb,(((aw|128)>>>0)|((ba.Kind()>>>0)))>>>0);}return;}var $f={$blk:BC,$c:true,$r,aw,ax,ay,az,ba,bb,bc,$s};return $f;};BD=function(aw,ax,ay){var{aw,ax,ay,az,ba,bb,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:az=ay.common();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;bb=GV(ba);(bb).$set(ax);$s=-1;return new Q.ptr(ba,bb,(((aw|128)>>>0)|((ba.Kind()>>>0)))>>>0);}return;}var $f={$blk:BD,$c:true,$r,aw,ax,ay,az,ba,bb,$s};return $f;};BE=function(aw,ax,ay){var{aw,ax,ay,az,ba,bb,bc,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:az=ay.common();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;bb=GV(ba);bc=ba.size;if(bc===(8)){(bb).$set((new $Complex64(ax.$real,ax.$imag)));}else if(bc===(16)){(bb).$set(ax);}$s=-1;return new Q.ptr(ba,bb,(((aw|128)>>>0)|((ba.Kind()>>>0)))>>>0);}return;}var $f={$blk:BE,$c:true,$r,aw,ax,ay,az,ba,bb,bc,$s};return $f;};BF=function(aw,ax,ay){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:az=$clone(FQ(ay),Q).Elem();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;$clone(ba,Q).SetString(ax);ba.flag=(((ba.flag&~256)>>>0)|aw)>>>0;$s=-1;return ba;}return;}var $f={$blk:BF,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};BG=function(aw,ax,ay){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:az=$clone(FQ(ay),Q).Elem();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;$r=$clone(ba,Q).SetBytes(ax);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ba.flag=(((ba.flag&~256)>>>0)|aw)>>>0;$s=-1;return ba;}return;}var $f={$blk:BG,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};BH=function(aw,ax,ay){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:az=$clone(FQ(ay),Q).Elem();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;$r=$clone(ba,Q).setRunes(ax);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ba.flag=(((ba.flag&~256)>>>0)|aw)>>>0;$s=-1;return ba;}return;}var $f={$blk:BH,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};BI=function(aw,ax){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:az=GW(new R(aw.flag).ro(),((ay=$clone(aw,Q).Int(),new $Uint64(ay.$high,ay.$low))),ax);$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;$s=2;case 2:return ba;}return;}var $f={$blk:BI,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};BJ=function(aw,ax){var{aw,ax,ay,az,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=GW(new R(aw.flag).ro(),$clone(aw,Q).Uint(),ax);$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;$s=2;case 2:return az;}return;}var $f={$blk:BJ,$c:true,$r,aw,ax,ay,az,$s};return $f;};BK=function(aw,ax){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:az=GW(new R(aw.flag).ro(),((ay=(new $Int64(0,$clone(aw,Q).Float())),new $Uint64(ay.$high,ay.$low))),ax);$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;$s=2;case 2:return ba;}return;}var $f={$blk:BK,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};BL=function(aw,ax){var{aw,ax,ay,az,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=GW(new R(aw.flag).ro(),(new $Uint64(0,$clone(aw,Q).Float())),ax);$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;$s=2;case 2:return az;}return;}var $f={$blk:BL,$c:true,$r,aw,ax,ay,az,$s};return $f;};BM=function(aw,ax){var{aw,ax,ay,az,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=BC(new R(aw.flag).ro(),($flatten64($clone(aw,Q).Int())),ax);$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;$s=2;case 2:return az;}return;}var $f={$blk:BM,$c:true,$r,aw,ax,ay,az,$s};return $f;};BN=function(aw,ax){var{aw,ax,ay,az,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=BC(new R(aw.flag).ro(),($flatten64($clone(aw,Q).Uint())),ax);$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;$s=2;case 2:return az;}return;}var $f={$blk:BN,$c:true,$r,aw,ax,ay,az,$s};return $f;};BO=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,be,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:az=$clone(aw,Q).Type().Kind();$s=4;case 4:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}if(!(az===13)){ay=false;$s=3;continue s;}ba=ax.Kind();$s=5;case 5:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}ay=ba===13;case 3:if(ay){$s=1;continue;}$s=2;continue;case 1:bb=BD(new R(aw.flag).ro(),(aw.ptr).$get(),ax);$s=6;case 6:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=bb;$s=7;case 7:return bc;case 2:bd=BC(new R(aw.flag).ro(),$clone(aw,Q).Float(),ax);$s=8;case 8:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=bd;$s=9;case 9:return be;}return;}var $f={$blk:BO,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,$s};return $f;};BP=function(aw,ax){var{aw,ax,ay,az,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=BE(new R(aw.flag).ro(),$clone(aw,Q).Complex(),ax);$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;$s=2;case 2:return az;}return;}var $f={$blk:BP,$c:true,$r,aw,ax,ay,az,$s};return $f;};BQ=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay="\xEF\xBF\xBD";az=$clone(aw,Q).Int();if((ba=(new $Int64(0,(((az.$low+((az.$high>>31)*4294967296))>>0)))),(ba.$high===az.$high&&ba.$low===az.$low))){ay=($encodeRune((((az.$low+((az.$high>>31)*4294967296))>>0))));}bb=BF(new R(aw.flag).ro(),ay,ax);$s=1;case 1:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=bb;$s=2;case 2:return bc;}return;}var $f={$blk:BQ,$c:true,$r,aw,ax,ay,az,ba,bb,bc,$s};return $f;};BR=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay="\xEF\xBF\xBD";az=$clone(aw,Q).Uint();if((ba=(new $Uint64(0,((az.$low>>0)))),(ba.$high===az.$high&&ba.$low===az.$low))){ay=($encodeRune(((az.$low>>0))));}bb=BF(new R(aw.flag).ro(),ay,ax);$s=1;case 1:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=bb;$s=2;case 2:return bc;}return;}var $f={$blk:BR,$c:true,$r,aw,ax,ay,az,ba,bb,bc,$s};return $f;};BS=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=new R(aw.flag).ro();az=$clone(aw,Q).Bytes();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=($bytesToString(az));bb=ax;bc=BF(ay,ba,bb);$s=2;case 2:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;$s=3;case 3:return bd;}return;}var $f={$blk:BS,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,$s};return $f;};BT=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=new R(aw.flag).ro();az=$clone(aw,Q).String();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=(new JY($stringToBytes(az)));bb=ax;bc=BG(ay,ba,bb);$s=2;case 2:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;$s=3;case 3:return bd;}return;}var $f={$blk:BT,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,$s};return $f;};BU=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=new R(aw.flag).ro();az=$clone(aw,Q).runes();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=($runesToString(az));bb=ax;bc=BF(ay,ba,bb);$s=2;case 2:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;$s=3;case 3:return bd;}return;}var $f={$blk:BU,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,$s};return $f;};BV=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=new R(aw.flag).ro();az=$clone(aw,Q).String();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=(new JZ($stringToRunes(az)));bb=ax;bc=BH(ay,ba,bb);$s=2;case 2:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;$s=3;case 3:return bd;}return;}var $f={$blk:BV,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,$s};return $f;};BW=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=ax.common();$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=GV(ay);$s=2;case 2:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;bb=HT($clone(aw,Q),false);$s=3;case 3:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=bb;bd=ax.NumMethod();$s=7;case 7:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}if(bd===0){$s=4;continue;}$s=5;continue;case 4:(ba).$set(bc);$s=6;continue;case 5:HU($assertType(ax,JE),bc,ba);case 6:be=ax.common();$s=8;case 8:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bf=new Q.ptr(be,ba,(((new R(aw.flag).ro()|128)>>>0)|20)>>>0);$s=9;case 9:return bf;}return;}var $f={$blk:BW,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,$s};return $f;};BX=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:if($clone(aw,Q).IsNil()){$s=1;continue;}$s=2;continue;case 1:ay=GU(ax);$s=3;case 3:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;az.flag=(az.flag|(new R(aw.flag).ro()))>>>0;$s=-1;return az;case 2:ba=$clone(aw,Q).Elem();$s=4;case 4:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=BW($clone(ba,Q),ax);$s=5;case 5:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=bb;$s=6;case 6:return bc;}return;}var $f={$blk:BX,$c:true,$r,aw,ax,ay,az,ba,bb,bc,$s};return $f;};CX.ptr.prototype.offset=function(){var aw;aw=this;return aw.offsetEmbed>>>1>>>0;};CX.prototype.offset=function(){return this.$val.offset();};CX.ptr.prototype.embedded=function(){var aw;aw=this;return!((((aw.offsetEmbed&1)>>>0)===0));};CX.prototype.embedded=function(){return this.$val.embedded();};DA.ptr.prototype.IsExported=function(){var aw;aw=this;return aw.PkgPath==="";};DA.prototype.IsExported=function(){return this.$val.IsExported();};CL.prototype.String=function(){var aw;aw=this.$val;if(((aw>>0))=DB.$length)?($throwRuntimeError("index out of range"),undefined):DB.$array[DB.$offset+aw]);}return"kind"+H.Itoa(((aw>>0)));};$ptrType(CL).prototype.String=function(){return new CL(this.$get()).String();};CN.ptr.prototype.String=function(){var aw,ax;aw=this;ax=$clone(aw.nameOff(aw.str),FX).name();if(!((((aw.tflag&2)>>>0)===0))){return $substring(ax,1);}return ax;};CN.prototype.String=function(){return this.$val.String();};CN.ptr.prototype.Size=function(){var aw;aw=this;return aw.size;};CN.prototype.Size=function(){return this.$val.Size();};CN.ptr.prototype.Bits=function(){var aw,ax;aw=this;if(aw===JE.nil){$panic(new $String("reflect: Bits of nil Type"));}ax=aw.Kind();if(ax<2||ax>16){$panic(new $String("reflect: Bits of non-arithmetic Type "+aw.String()));}return $imul(((aw.size>>0)),8);};CN.prototype.Bits=function(){return this.$val.Bits();};CN.ptr.prototype.Align=function(){var aw;aw=this;return((aw.align>>0));};CN.prototype.Align=function(){return this.$val.Align();};CN.ptr.prototype.FieldAlign=function(){var aw;aw=this;return((aw.fieldAlign>>0));};CN.prototype.FieldAlign=function(){return this.$val.FieldAlign();};CN.ptr.prototype.Kind=function(){var aw;aw=this;return((((aw.kind&31)>>>0)>>>0));};CN.prototype.Kind=function(){return this.$val.Kind();};CN.ptr.prototype.common=function(){var aw;aw=this;return aw;};CN.prototype.common=function(){return this.$val.common();};CN.ptr.prototype.exportedMethods=function(){var aw,ax;aw=this;ax=aw.uncommon();if(ax===KA.nil){return KB.nil;}return ax.exportedMethods();};CN.prototype.exportedMethods=function(){return this.$val.exportedMethods();};CN.ptr.prototype.NumMethod=function(){var aw,ax;aw=this;if(aw.Kind()===20){ax=(aw.kindType);return ax.NumMethod();}return aw.exportedMethods().$length;};CN.prototype.NumMethod=function(){return this.$val.NumMethod();};CN.ptr.prototype.MethodByName=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=new DA.ptr("","",$ifaceNil,new Q.ptr(JE.nil,0,0),0);ay=false;az=this;if(az.Kind()===20){ba=(az.kindType);bb=ba.MethodByName(aw);DA.copy(ax,bb[0]);ay=bb[1];$s=-1;return[ax,ay];}bc=az.uncommon();if(bc===KA.nil){bd=new DA.ptr("","",$ifaceNil,new Q.ptr(JE.nil,0,0),0);be=false;DA.copy(ax,bd);ay=be;$s=-1;return[ax,ay];}bf=bc.exportedMethods();bg=0;case 1:if(!(bg=bf.$length)?($throwRuntimeError("index out of range"),undefined):bf.$array[bf.$offset+bg]),CO);if($clone(az.nameOff(bi.name),FX).name()===aw){$s=3;continue;}$s=4;continue;case 3:bk=az.Method(bh);$s=5;case 5:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}bj=$clone(bk,DA);bl=true;DA.copy(ax,bj);ay=bl;bm=[ax,ay];$s=6;case 6:return bm;case 4:bg++;$s=1;continue;case 2:bn=new DA.ptr("","",$ifaceNil,new Q.ptr(JE.nil,0,0),0);bo=false;DA.copy(ax,bn);ay=bo;$s=-1;return[ax,ay];}return;}var $f={$blk:CN.ptr.prototype.MethodByName,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,$s};return $f;};CN.prototype.MethodByName=function(aw){return this.$val.MethodByName(aw);};CN.ptr.prototype.PkgPath=function(){var aw,ax;aw=this;if(((aw.tflag&4)>>>0)===0){return"";}ax=aw.uncommon();if(ax===KA.nil){return"";}return $clone(aw.nameOff(ax.pkgPath),FX).name();};CN.prototype.PkgPath=function(){return this.$val.PkgPath();};CN.ptr.prototype.hasName=function(){var aw;aw=this;return!((((aw.tflag&4)>>>0)===0));};CN.prototype.hasName=function(){return this.$val.hasName();};CN.ptr.prototype.Name=function(){var aw,ax,ay,az,ba;aw=this;if(!aw.hasName()){return"";}ax=aw.String();ay=ax.length-1>>0;az=0;while(true){if(!(ay>=0&&(!((ax.charCodeAt(ay)===46))||!((az===0))))){break;}ba=ax.charCodeAt(ay);if(ba===(93)){az=az+(1)>>0;}else if(ba===(91)){az=az-(1)>>0;}ay=ay-(1)>>0;}return $substring(ax,(ay+1>>0));};CN.prototype.Name=function(){return this.$val.Name();};CN.ptr.prototype.ChanDir=function(){var aw,ax;aw=this;if(!((aw.Kind()===18))){$panic(new $String("reflect: ChanDir of non-chan type "+aw.String()));}ax=(aw.kindType);return((ax.dir>>0));};CN.prototype.ChanDir=function(){return this.$val.ChanDir();};CN.ptr.prototype.IsVariadic=function(){var aw,ax;aw=this;if(!((aw.Kind()===19))){$panic(new $String("reflect: IsVariadic of non-func type "+aw.String()));}ax=(aw.kindType);return!((((ax.outCount&32768)>>>0)===0));};CN.prototype.IsVariadic=function(){return this.$val.IsVariadic();};CN.ptr.prototype.Elem=function(){var aw,ax,ay,az,ba,bb,bc;aw=this;ax=aw.Kind();if(ax===(17)){ay=(aw.kindType);return EY(ay.elem);}else if(ax===(18)){az=(aw.kindType);return EY(az.elem);}else if(ax===(21)){ba=(aw.kindType);return EY(ba.elem);}else if(ax===(22)){bb=(aw.kindType);return EY(bb.elem);}else if(ax===(23)){bc=(aw.kindType);return EY(bc.elem);}$panic(new $String("reflect: Elem of invalid type "+aw.String()));};CN.prototype.Elem=function(){return this.$val.Elem();};CN.ptr.prototype.Field=function(aw){var aw,ax,ay;ax=this;if(!((ax.Kind()===25))){$panic(new $String("reflect: Field of non-struct type "+ax.String()));}ay=(ax.kindType);return ay.Field(aw);};CN.prototype.Field=function(aw){return this.$val.Field(aw);};CN.ptr.prototype.FieldByIndex=function(aw){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;if(!((ax.Kind()===25))){$panic(new $String("reflect: FieldByIndex of non-struct type "+ax.String()));}ay=(ax.kindType);az=ay.FieldByIndex(aw);$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;$s=2;case 2:return ba;}return;}var $f={$blk:CN.ptr.prototype.FieldByIndex,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};CN.prototype.FieldByIndex=function(aw){return this.$val.FieldByIndex(aw);};CN.ptr.prototype.FieldByName=function(aw){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;if(!((ax.Kind()===25))){$panic(new $String("reflect: FieldByName of non-struct type "+ax.String()));}ay=(ax.kindType);az=ay.FieldByName(aw);$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;$s=2;case 2:return ba;}return;}var $f={$blk:CN.ptr.prototype.FieldByName,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};CN.prototype.FieldByName=function(aw){return this.$val.FieldByName(aw);};CN.ptr.prototype.FieldByNameFunc=function(aw){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;if(!((ax.Kind()===25))){$panic(new $String("reflect: FieldByNameFunc of non-struct type "+ax.String()));}ay=(ax.kindType);az=ay.FieldByNameFunc(aw);$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;$s=2;case 2:return ba;}return;}var $f={$blk:CN.ptr.prototype.FieldByNameFunc,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};CN.prototype.FieldByNameFunc=function(aw){return this.$val.FieldByNameFunc(aw);};CN.ptr.prototype.In=function(aw){var aw,ax,ay,az;ax=this;if(!((ax.Kind()===19))){$panic(new $String("reflect: In of non-func type "+ax.String()));}ay=(ax.kindType);return EY((az=ay.in$(),((aw<0||aw>=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+aw])));};CN.prototype.In=function(aw){return this.$val.In(aw);};CN.ptr.prototype.Key=function(){var aw,ax;aw=this;if(!((aw.Kind()===21))){$panic(new $String("reflect: Key of non-map type "+aw.String()));}ax=(aw.kindType);return EY(ax.key);};CN.prototype.Key=function(){return this.$val.Key();};CN.ptr.prototype.Len=function(){var aw,ax;aw=this;if(!((aw.Kind()===17))){$panic(new $String("reflect: Len of non-array type "+aw.String()));}ax=(aw.kindType);return((ax.len>>0));};CN.prototype.Len=function(){return this.$val.Len();};CN.ptr.prototype.NumField=function(){var aw,ax;aw=this;if(!((aw.Kind()===25))){$panic(new $String("reflect: NumField of non-struct type "+aw.String()));}ax=(aw.kindType);return ax.fields.$length;};CN.prototype.NumField=function(){return this.$val.NumField();};CN.ptr.prototype.NumIn=function(){var aw,ax;aw=this;if(!((aw.Kind()===19))){$panic(new $String("reflect: NumIn of non-func type "+aw.String()));}ax=(aw.kindType);return((ax.inCount>>0));};CN.prototype.NumIn=function(){return this.$val.NumIn();};CN.ptr.prototype.NumOut=function(){var aw,ax;aw=this;if(!((aw.Kind()===19))){$panic(new $String("reflect: NumOut of non-func type "+aw.String()));}ax=(aw.kindType);return ax.out().$length;};CN.prototype.NumOut=function(){return this.$val.NumOut();};CN.ptr.prototype.Out=function(aw){var aw,ax,ay,az;ax=this;if(!((ax.Kind()===19))){$panic(new $String("reflect: Out of non-func type "+ax.String()));}ay=(ax.kindType);return EY((az=ay.out(),((aw<0||aw>=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+aw])));};CN.prototype.Out=function(aw){return this.$val.Out(aw);};CP.prototype.String=function(){var aw,ax;aw=this.$val;ax=aw;if(ax===(2)){return"chan<-";}else if(ax===(1)){return"<-chan";}else if(ax===(3)){return"chan";}return"ChanDir"+H.Itoa(((aw>>0)));};$ptrType(CP).prototype.String=function(){return new CP(this.$get()).String();};CT.ptr.prototype.Method=function(aw){var aw,ax,ay,az,ba,bb;ax=new DA.ptr("","",$ifaceNil,new Q.ptr(JE.nil,0,0),0);ay=this;if(aw<0||aw>=ay.methods.$length){return ax;}ba=(az=ay.methods,((aw<0||aw>=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+aw]));bb=$clone(ay.rtype.nameOff(ba.name),FX);ax.Name=$clone(bb,FX).name();if(!$clone(bb,FX).isExported()){ax.PkgPath=$clone(bb,FX).pkgPath();if(ax.PkgPath===""){ax.PkgPath=$clone(ay.pkgPath,FX).name();}}ax.Type=EY(ay.rtype.typeOff(ba.typ));ax.Index=aw;return ax;};CT.prototype.Method=function(aw){return this.$val.Method(aw);};CT.ptr.prototype.NumMethod=function(){var aw;aw=this;return aw.methods.$length;};CT.prototype.NumMethod=function(){return this.$val.NumMethod();};CT.ptr.prototype.MethodByName=function(aw){var aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg;ax=new DA.ptr("","",$ifaceNil,new Q.ptr(JE.nil,0,0),0);ay=false;az=this;if(az===KC.nil){return[ax,ay];}ba=KD.nil;bb=az.methods;bc=0;while(true){if(!(bc=be.$length)?($throwRuntimeError("index out of range"),undefined):be.$array[be.$offset+bd]));if($clone(az.rtype.nameOff(ba.name),FX).name()===aw){bf=$clone(az.Method(bd),DA);bg=true;DA.copy(ax,bf);ay=bg;return[ax,ay];}bc++;}return[ax,ay];};CT.prototype.MethodByName=function(aw){return this.$val.MethodByName(aw);};DM.ptr.prototype.IsExported=function(){var aw;aw=this;return aw.PkgPath==="";};DM.prototype.IsExported=function(){return this.$val.IsExported();};DN.prototype.Get=function(aw){var aw,ax,ay,az;ax=this.$val;ay=new DN(ax).Lookup(aw);az=ay[0];return az;};$ptrType(DN).prototype.Get=function(aw){return new DN(this.$get()).Get(aw);};DN.prototype.Lookup=function(aw){var aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj;ax="";ay=false;az=this.$val;while(true){if(!(!(az===""))){break;}ba=0;while(true){if(!(ba>0;}az=$substring(az,ba);if(az===""){break;}ba=0;while(true){if(!(ba32&&!((az.charCodeAt(ba)===58))&&!((az.charCodeAt(ba)===34))&&!((az.charCodeAt(ba)===127)))){break;}ba=ba+(1)>>0;}if((ba===0)||(ba+1>>0)>=az.length||!((az.charCodeAt(ba)===58))||!((az.charCodeAt((ba+1>>0))===34))){break;}bb=($substring(az,0,ba));az=$substring(az,(ba+1>>0));ba=1;while(true){if(!(ba>0;}ba=ba+(1)>>0;}if(ba>=az.length){break;}bc=($substring(az,0,(ba+1>>0)));az=$substring(az,(ba+1>>0));if(aw===bb){bd=H.Unquote(bc);be=bd[0];bf=bd[1];if(!($interfaceIsEqual(bf,$ifaceNil))){break;}bg=be;bh=true;ax=bg;ay=bh;return[ax,ay];}}bi="";bj=false;ax=bi;ay=bj;return[ax,ay];};$ptrType(DN).prototype.Lookup=function(aw){return new DN(this.$get()).Lookup(aw);};CY.ptr.prototype.Field=function(aw){var aw,ax,ay,az,ba,bb;ax=new DM.ptr("","",$ifaceNil,"",0,JL.nil,false);ay=this;if(aw<0||aw>=ay.fields.$length){$panic(new $String("reflect: Field index out of bounds"));}ba=(az=ay.fields,((aw<0||aw>=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+aw]));ax.Type=EY(ba.typ);ax.Name=$clone(ba.name,FX).name();ax.Anonymous=ba.embedded();if(!$clone(ba.name,FX).isExported()){ax.PkgPath=$clone(ay.pkgPath,FX).name();}bb=$clone(ba.name,FX).tag();if(!(bb==="")){ax.Tag=(bb);}ax.Offset=ba.offset();ax.Index=new JL([aw]);return ax;};CY.prototype.Field=function(aw){return this.$val.Field(aw);};CY.ptr.prototype.FieldByIndex=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=new DM.ptr("","",$ifaceNil,"",0,JL.nil,false);ay=this;ax.Type=EY(ay.rtype);az=aw;ba=0;case 1:if(!(ba=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+ba]);if(bb>0){$s=3;continue;}$s=4;continue;case 3:bd=ax.Type;bf=bd.Kind();$s=8;case 8:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}if(!(bf===22)){be=false;$s=7;continue s;}bg=bd.Elem();$s=9;case 9:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=bg.Kind();$s=10;case 10:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}be=bh===25;case 7:if(be){$s=5;continue;}$s=6;continue;case 5:bi=bd.Elem();$s=11;case 11:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bd=bi;case 6:ax.Type=bd;case 4:bj=ax.Type.Field(bc);$s=12;case 12:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}DM.copy(ax,bj);ba++;$s=1;continue;case 2:$s=-1;return ax;}return;}var $f={$blk:CY.ptr.prototype.FieldByIndex,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,$s};return $f;};CY.prototype.FieldByIndex=function(aw){return this.$val.FieldByIndex(aw);};CY.ptr.prototype.FieldByNameFunc=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=new DM.ptr("","",$ifaceNil,"",0,JL.nil,false);ay=false;az=this;ba=new KE([]);bb=new KE([new DO.ptr(az,JL.nil)]);bc=false;bd=$makeMap(KF.keyFor,[]);case 1:if(!(bb.$length>0)){$s=2;continue;}be=bb;bf=$subslice(ba,0,0);ba=be;bb=bf;bg=bc;bc=false;bh=ba;bi=0;case 3:if(!(bi=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bi]),DO);bk=bj.typ;if((bl=$mapIndex(bd,KF.keyFor(bk)),bl!==undefined?bl.v:false)){bi++;$s=3;continue;}bm=bk;(bd||$throwRuntimeError("assignment to entry in nil map")).set(KF.keyFor(bm),{k:bm,v:true});bn=bk.fields;bo=0;case 5:if(!(bo=bq.$length)?($throwRuntimeError("index out of range"),undefined):bq.$array[bq.$offset+bp]));bs=$clone(br.name,FX).name();bt=JE.nil;if(br.embedded()){$s=7;continue;}$s=8;continue;case 7:bt=br.typ;if(bt.Kind()===22){$s=9;continue;}$s=10;continue;case 9:bu=bt.Elem().common();$s=11;case 11:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}bt=bu;case 10:case 8:bv=aw(bs);$s=14;case 14:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}if(bv){$s=12;continue;}$s=13;continue;case 12:if((bw=$mapIndex(bg,KF.keyFor(bk)),bw!==undefined?bw.v:0)>1||ay){bx=new DM.ptr("","",$ifaceNil,"",0,JL.nil,false);by=false;DM.copy(ax,bx);ay=by;$s=-1;return[ax,ay];}DM.copy(ax,bk.Field(bp));ax.Index=JL.nil;ax.Index=$appendSlice(ax.Index,bj.index);ax.Index=$append(ax.Index,bp);ay=true;bo++;$s=5;continue;case 13:if(ay||bt===JE.nil||!((bt.Kind()===25))){bo++;$s=5;continue;}bz=(bt.kindType);if((ca=$mapIndex(bc,KF.keyFor(bz)),ca!==undefined?ca.v:0)>0){cb=bz;(bc||$throwRuntimeError("assignment to entry in nil map")).set(KF.keyFor(cb),{k:cb,v:2});bo++;$s=5;continue;}if(bc===false){bc=$makeMap(KF.keyFor,[]);}cc=bz;(bc||$throwRuntimeError("assignment to entry in nil map")).set(KF.keyFor(cc),{k:cc,v:1});if((cd=$mapIndex(bg,KF.keyFor(bk)),cd!==undefined?cd.v:0)>1){ce=bz;(bc||$throwRuntimeError("assignment to entry in nil map")).set(KF.keyFor(ce),{k:ce,v:2});}cf=JL.nil;cf=$appendSlice(cf,bj.index);cf=$append(cf,bp);bb=$append(bb,new DO.ptr(bz,cf));bo++;$s=5;continue;case 6:bi++;$s=3;continue;case 4:if(ay){$s=2;continue;}$s=1;continue;case 2:$s=-1;return[ax,ay];}return;}var $f={$blk:CY.ptr.prototype.FieldByNameFunc,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,$s};return $f;};CY.prototype.FieldByNameFunc=function(aw){return this.$val.FieldByNameFunc(aw);};CY.ptr.prototype.FieldByName=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:aw=[aw];ax=new DM.ptr("","",$ifaceNil,"",0,JL.nil,false);ay=false;az=this;ba=false;if(!(aw[0]==="")){bb=az.fields;bc=0;while(true){if(!(bc=be.$length)?($throwRuntimeError("index out of range"),undefined):be.$array[be.$offset+bd]));if($clone(bf.name,FX).name()===aw[0]){bg=$clone(az.Field(bd),DM);bh=true;DM.copy(ax,bg);ay=bh;$s=-1;return[ax,ay];}if(bf.embedded()){ba=true;}bc++;}}if(!ba){$s=-1;return[ax,ay];}bj=az.FieldByNameFunc((function(aw){return function(bj){var bj;return bj===aw[0];};})(aw));$s=1;case 1:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bi=bj;DM.copy(ax,bi[0]);ay=bi[1];bk=[ax,ay];$s=2;case 2:return bk;}return;}var $f={$blk:CY.ptr.prototype.FieldByName,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,$s};return $f;};CY.prototype.FieldByName=function(aw){return this.$val.FieldByName(aw);};DQ=function(aw){var aw;return DR(aw);};$pkg.PtrTo=DQ;DR=function(aw){var aw;return $assertType(aw,JE).ptrTo();};$pkg.PointerTo=DR;CN.ptr.prototype.Implements=function(aw){var{aw,ax,ay,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;if($interfaceIsEqual(aw,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.Implements"));}ay=aw.Kind();$s=3;case 3:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}if(!((ay===20))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect: non-interface type passed to Type.Implements"));case 2:$s=-1;return DT($assertType(aw,JE),ax);}return;}var $f={$blk:CN.ptr.prototype.Implements,$c:true,$r,aw,ax,ay,$s};return $f;};CN.prototype.Implements=function(aw){return this.$val.Implements(aw);};CN.ptr.prototype.AssignableTo=function(aw){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;if($interfaceIsEqual(aw,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.AssignableTo"));}ay=$assertType(aw,JE);az=DV(ay,ax);$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az||DT(ay,ax);$s=2;case 2:return ba;}return;}var $f={$blk:CN.ptr.prototype.AssignableTo,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};CN.prototype.AssignableTo=function(aw){return this.$val.AssignableTo(aw);};CN.ptr.prototype.ConvertibleTo=function(aw){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;if($interfaceIsEqual(aw,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.ConvertibleTo"));}ay=$assertType(aw,JE);az=BB(ay,ax);$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=!(az===$throwNilPointerError);$s=2;case 2:return ba;}return;}var $f={$blk:CN.ptr.prototype.ConvertibleTo,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};CN.prototype.ConvertibleTo=function(aw){return this.$val.ConvertibleTo(aw);};DT=function(aw,ax){var aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu;if(!((aw.Kind()===20))){return false;}ay=(aw.kindType);if(ay.methods.$length===0){return true;}if(ax.Kind()===20){az=(ax.kindType);ba=0;bb=0;while(true){if(!(bb=bc.$length)?($throwRuntimeError("index out of range"),undefined):bc.$array[bc.$offset+ba]));be=$clone(ay.rtype.nameOff(bd.name),FX);bg=(bf=az.methods,((bb<0||bb>=bf.$length)?($throwRuntimeError("index out of range"),undefined):bf.$array[bf.$offset+bb]));bh=$clone(ax.nameOff(bg.name),FX);if($clone(bh,FX).name()===$clone(be,FX).name()&&ax.typeOff(bg.typ)===ay.rtype.typeOff(bd.typ)){if(!$clone(be,FX).isExported()){bi=$clone(be,FX).pkgPath();if(bi===""){bi=$clone(ay.pkgPath,FX).name();}bj=$clone(bh,FX).pkgPath();if(bj===""){bj=$clone(az.pkgPath,FX).name();}if(!(bi===bj)){bb=bb+(1)>>0;continue;}}ba=ba+(1)>>0;if(ba>=ay.methods.$length){return true;}}bb=bb+(1)>>0;}return false;}bk=ax.uncommon();if(bk===KA.nil){return false;}bl=0;bm=bk.methods();bn=0;while(true){if(!(bn<((bk.mcount>>0)))){break;}bp=(bo=ay.methods,((bl<0||bl>=bo.$length)?($throwRuntimeError("index out of range"),undefined):bo.$array[bo.$offset+bl]));bq=$clone(ay.rtype.nameOff(bp.name),FX);br=$clone(((bn<0||bn>=bm.$length)?($throwRuntimeError("index out of range"),undefined):bm.$array[bm.$offset+bn]),CO);bs=$clone(ax.nameOff(br.name),FX);if($clone(bs,FX).name()===$clone(bq,FX).name()&&ax.typeOff(br.mtyp)===ay.rtype.typeOff(bp.typ)){if(!$clone(bq,FX).isExported()){bt=$clone(bq,FX).pkgPath();if(bt===""){bt=$clone(ay.pkgPath,FX).name();}bu=$clone(bs,FX).pkgPath();if(bu===""){bu=$clone(ax.nameOff(bk.pkgPath),FX).name();}if(!(bt===bu)){bn=bn+(1)>>0;continue;}}bl=bl+(1)>>0;if(bl>=ay.methods.$length){return true;}}bn=bn+(1)>>0;}return false;};DU=function(aw,ax){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:if(!((ax.ChanDir()===3)&&(aw.Name()===""||ax.Name()===""))){ay=false;$s=1;continue s;}az=DW(aw.Elem(),ax.Elem(),true);$s=2;case 2:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ay=az;case 1:ba=ay;$s=3;case 3:return ba;}return;}var $f={$blk:DU,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};DV=function(aw,ax){var{aw,ax,ay,az,ba,bb,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:if(aw===ax){$s=-1;return true;}if(aw.hasName()&&ax.hasName()||!((aw.Kind()===ax.Kind()))){$s=-1;return false;}if(!(aw.Kind()===18)){ay=false;$s=3;continue s;}az=DU(aw,ax);$s=4;case 4:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ay=az;case 3:if(ay){$s=1;continue;}$s=2;continue;case 1:$s=-1;return true;case 2:ba=DX(aw,ax,true);$s=5;case 5:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba;$s=6;case 6:return bb;}return;}var $f={$blk:DV,$c:true,$r,aw,ax,ay,az,ba,bb,$s};return $f;};DW=function(aw,ax,ay){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:if(ay){$s=-1;return $interfaceIsEqual(aw,ax);}bb=aw.Name();$s=5;case 5:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=ax.Name();$s=6;case 6:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}if(!(bb===bc)){ba=true;$s=4;continue s;}bd=aw.Kind();$s=7;case 7:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=ax.Kind();$s=8;case 8:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}ba=!((bd===be));case 4:if(ba){az=true;$s=3;continue s;}bf=aw.PkgPath();$s=9;case 9:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bg=ax.PkgPath();$s=10;case 10:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}az=!(bf===bg);case 3:if(az){$s=1;continue;}$s=2;continue;case 1:$s=-1;return false;case 2:bh=aw.common();$s=11;case 11:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bi=bh;bj=ax.common();$s=12;case 12:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bk=bj;bl=DX(bi,bk,false);$s=13;case 13:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}bm=bl;$s=14;case 14:return bm;}return;}var $f={$blk:DW,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,$s};return $f;};DX=function(aw,ax,ay){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:if(aw===ax){$s=-1;return true;}az=aw.Kind();if(!((az===ax.Kind()))){$s=-1;return false;}if(1<=az&&az<=16||(az===24)||(az===26)){$s=-1;return true;}ba=az;if(ba===(17)){$s=2;continue;}if(ba===(18)){$s=3;continue;}if(ba===(19)){$s=4;continue;}if(ba===(20)){$s=5;continue;}if(ba===(21)){$s=6;continue;}if((ba===(22))||(ba===(23))){$s=7;continue;}if(ba===(25)){$s=8;continue;}$s=9;continue;case 2:if(!(aw.Len()===ax.Len())){bb=false;$s=10;continue s;}bc=DW(aw.Elem(),ax.Elem(),ay);$s=11;case 11:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bb=bc;case 10:bd=bb;$s=12;case 12:return bd;case 3:if(!(ax.ChanDir()===aw.ChanDir())){be=false;$s=13;continue s;}bf=DW(aw.Elem(),ax.Elem(),ay);$s=14;case 14:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}be=bf;case 13:bg=be;$s=15;case 15:return bg;case 4:bh=(aw.kindType);bi=(ax.kindType);if(!((bh.outCount===bi.outCount))||!((bh.inCount===bi.inCount))){$s=-1;return false;}bj=0;case 16:if(!(bj>0;$s=16;continue;case 17:bl=0;case 21:if(!(bl>0;$s=21;continue;case 22:$s=-1;return true;case 5:bn=(aw.kindType);bo=(ax.kindType);if((bn.methods.$length===0)&&(bo.methods.$length===0)){$s=-1;return true;}$s=-1;return false;case 6:bq=DW(aw.Key(),ax.Key(),ay);$s=27;case 27:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}if(!(bq)){bp=false;$s=26;continue s;}br=DW(aw.Elem(),ax.Elem(),ay);$s=28;case 28:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}bp=br;case 26:bs=bp;$s=29;case 29:return bs;case 7:bt=DW(aw.Elem(),ax.Elem(),ay);$s=30;case 30:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}bu=bt;$s=31;case 31:return bu;case 8:bv=(aw.kindType);bw=(ax.kindType);if(!((bv.fields.$length===bw.fields.$length))){$s=-1;return false;}if(!($clone(bv.pkgPath,FX).name()===$clone(bw.pkgPath,FX).name())){$s=-1;return false;}bx=bv.fields;by=0;case 32:if(!(by=ca.$length)?($throwRuntimeError("index out of range"),undefined):ca.$array[ca.$offset+bz]));cd=(cc=bw.fields,((bz<0||bz>=cc.$length)?($throwRuntimeError("index out of range"),undefined):cc.$array[cc.$offset+bz]));if(!($clone(cb.name,FX).name()===$clone(cd.name,FX).name())){$s=-1;return false;}ce=DW(cb.typ,cd.typ,ay);$s=36;case 36:if($c){$c=false;ce=ce.$blk();}if(ce&&ce.$blk!==undefined){break s;}if(!ce){$s=34;continue;}$s=35;continue;case 34:$s=-1;return false;case 35:if(ay&&!($clone(cb.name,FX).tag()===$clone(cd.name,FX).tag())){$s=-1;return false;}if(!((cb.offsetEmbed===cd.offsetEmbed))){$s=-1;return false;}by++;$s=32;continue;case 33:$s=-1;return true;case 9:case 1:$s=-1;return false;}return;}var $f={$blk:DX,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,$s};return $f;};EY=function(aw){var aw;if(aw===JE.nil){return $ifaceNil;}return aw;};FD=function(aw){var aw;return((aw.kind&32)>>>0)===0;};FJ=function(){var{aw,ax,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=B.FuncPCABI0(new KK(FK));$s=1;case 1:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ax=aw;$s=2;case 2:return ax;}return;}var $f={$blk:FJ,$c:true,$r,aw,ax,$s};return $f;};FK=function(){$throwRuntimeError("native function not implemented: reflect.methodValueCall");};FP=function(){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=(function(aw){var aw;});$r=aw((ax=new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),new ax.constructor.elem(ax)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=aw((ay=new FU.ptr(0,0,0,0,KB.nil),new ay.constructor.elem(ay)));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=aw((az=new CO.ptr(0,0,0,0),new az.constructor.elem(az)));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=aw((ba=new CQ.ptr(new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),JE.nil,JE.nil,0),new ba.constructor.elem(ba)));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=aw((bb=new CR.ptr(new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),JE.nil,0),new bb.constructor.elem(bb)));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=aw((bc=new FW.ptr(new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),0,0,JF.nil,JF.nil),new bc.constructor.elem(bc)));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=aw((bd=new CT.ptr(new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),new FX.ptr(KG.nil),KM.nil),new bd.constructor.elem(bd)));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=aw((be=new CU.ptr(new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),JE.nil,JE.nil,JE.nil,$throwNilPointerError,0,0,0,0),new be.constructor.elem(be)));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=aw((bf=new CV.ptr(new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),JE.nil),new bf.constructor.elem(bf)));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=aw((bg=new CW.ptr(new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),JE.nil),new bg.constructor.elem(bg)));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=aw((bh=new CY.ptr(new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),new FX.ptr(KG.nil),KN.nil),new bh.constructor.elem(bh)));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=aw((bi=new CS.ptr(0,0),new bi.constructor.elem(bi)));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=aw((bj=new CX.ptr(new FX.ptr(KG.nil),JE.nil,0),new bj.constructor.elem(bj)));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}FO=true;AE=$assertType(GM(new $Uint8(0)),JE);$s=-1;return;}return;}var $f={$blk:FP,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,$s};return $f;};FQ=function(aw){var aw,ax,ay,az,ba;if($interfaceIsEqual(aw,$ifaceNil)){$panic(new $String("reflect: New(nil)"));}ax=$assertType(aw,JE);ay=ax.ptrTo();az=GV(ax);ba=22;return new Q.ptr(ay,az,ba);};$pkg.New=FQ;FR=function(aw){var aw;return aw.jsType;};FS=function(aw){var aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci;if(aw.reflectType===undefined){ax=new CN.ptr(((($parseInt(aw.size)>>0)>>>0)),0,0,0,0,0,((($parseInt(aw.kind)>>0)<<24>>>24)),$throwNilPointerError,KG.nil,GD($clone(GA(GH(aw.string),"",!!(aw.exported)),FX)),0);ax.jsType=aw;aw.reflectType=ax;ay=$methodSet(aw);if(!(($parseInt(ay.length)===0))||!!(aw.named)){ax.tflag=(ax.tflag|(1))>>>0;if(!!(aw.named)){ax.tflag=(ax.tflag|(4))>>>0;}az=KB.nil;ba=0;while(true){if(!(ba<$parseInt(ay.length))){break;}bb=ay[ba];bc=GH(bb.pkg)==="";if(!bc){ba=ba+(1)>>0;continue;}az=$append(az,new CO.ptr(GD($clone(GB(bb),FX)),GF(FS(bb.typ)),0,0));ba=ba+(1)>>0;}bd=((az.$length<<16>>>16));be=0;while(true){if(!(be<$parseInt(ay.length))){break;}bf=ay[be];bg=GH(bf.pkg)==="";if(bg){be=be+(1)>>0;continue;}az=$append(az,new CO.ptr(GD($clone(GB(bf),FX)),GF(FS(bf.typ)),0,0));be=be+(1)>>0;}bh=new FU.ptr(GD($clone(GA(GH(aw.pkg),"",false),FX)),(($parseInt(ay.length)<<16>>>16)),bd,0,az);bi=ax;(FV||$throwRuntimeError("assignment to entry in nil map")).set(JE.keyFor(bi),{k:bi,v:bh});bh.jsType=aw;}bj=ax.Kind();if(bj===(17)){FT(ax,new CQ.ptr(new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),FS(aw.elem),JE.nil,((($parseInt(aw.len)>>0)>>>0))));}else if(bj===(18)){bk=3;if(!!(aw.sendOnly)){bk=2;}if(!!(aw.recvOnly)){bk=1;}FT(ax,new CR.ptr(new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),FS(aw.elem),((bk>>>0))));}else if(bj===(19)){bl=aw.params;bm=$makeSlice(JF,$parseInt(bl.length));bn=bm;bo=0;while(true){if(!(bo=bm.$length)?($throwRuntimeError("index out of range"),undefined):bm.$array[bm.$offset+bp]=FS(bl[bp]));bo++;}bq=aw.results;br=$makeSlice(JF,$parseInt(bq.length));bs=br;bt=0;while(true){if(!(bt=br.$length)?($throwRuntimeError("index out of range"),undefined):br.$array[br.$offset+bu]=FS(bq[bu]));bt++;}bv=(($parseInt(bq.length)<<16>>>16));if(!!(aw.variadic)){bv=(bv|(32768))>>>0;}FT(ax,new FW.ptr($clone(ax,CN),(($parseInt(bl.length)<<16>>>16)),bv,bm,br));}else if(bj===(20)){bw=aw.methods;bx=$makeSlice(KM,$parseInt(bw.length));by=bx;bz=0;while(true){if(!(bz=bx.$length)?($throwRuntimeError("index out of range"),undefined):bx.$array[bx.$offset+ca]),new CS.ptr(GD($clone(GB(cb),FX)),GF(FS(cb.typ))));bz++;}FT(ax,new CT.ptr($clone(ax,CN),$clone(GA(GH(aw.pkg),"",false),FX),bx));}else if(bj===(21)){FT(ax,new CU.ptr(new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),FS(aw.key),FS(aw.elem),JE.nil,$throwNilPointerError,0,0,0,0));}else if(bj===(22)){FT(ax,new CV.ptr(new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),FS(aw.elem)));}else if(bj===(23)){FT(ax,new CW.ptr(new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0),FS(aw.elem)));}else if(bj===(25)){cc=aw.fields;cd=$makeSlice(KN,$parseInt(cc.length));ce=cd;cf=0;while(true){if(!(cf>>0))<<1>>>0;if(!!(ch.embedded)){ci=(ci|(1))>>>0;}CX.copy(((cg<0||cg>=cd.$length)?($throwRuntimeError("index out of range"),undefined):cd.$array[cd.$offset+cg]),new CX.ptr($clone(GA(GH(ch.name),GH(ch.tag),!!(ch.exported)),FX),FS(ch.typ),ci));cf++;}FT(ax,new CY.ptr($clone(ax,CN),$clone(GA(GH(aw.pkgPath),"",false),FX),cd));}}return((aw.reflectType));};FT=function(aw,ax){var aw,ax;aw.kindType=ax;ax.rtype=aw;};FU.ptr.prototype.methods=function(){var aw;aw=this;return aw._methods;};FU.prototype.methods=function(){return this.$val.methods();};FU.ptr.prototype.exportedMethods=function(){var aw;aw=this;return $subslice(aw._methods,0,aw.xcount,aw.xcount);};FU.prototype.exportedMethods=function(){return this.$val.exportedMethods();};CN.ptr.prototype.uncommon=function(){var aw,ax;aw=this;return(ax=$mapIndex(FV,JE.keyFor(aw)),ax!==undefined?ax.v:KA.nil);};CN.prototype.uncommon=function(){return this.$val.uncommon();};FW.ptr.prototype.in$=function(){var aw;aw=this;return aw._in;};FW.prototype.in$=function(){return this.$val.in$();};FW.ptr.prototype.out=function(){var aw;aw=this;return aw._out;};FW.prototype.out=function(){return this.$val.out();};FX.ptr.prototype.name=function(){var aw,ax,ay;aw="";ax=this;aw=(ay=$mapIndex(FZ,KG.keyFor(ax.bytes)),ay!==undefined?ay.v:KO.nil).name;return aw;};FX.prototype.name=function(){return this.$val.name();};FX.ptr.prototype.tag=function(){var aw,ax,ay;aw="";ax=this;aw=(ay=$mapIndex(FZ,KG.keyFor(ax.bytes)),ay!==undefined?ay.v:KO.nil).tag;return aw;};FX.prototype.tag=function(){return this.$val.tag();};FX.ptr.prototype.pkgPath=function(){var aw,ax;aw=this;return(ax=$mapIndex(FZ,KG.keyFor(aw.bytes)),ax!==undefined?ax.v:KO.nil).pkgPath;};FX.prototype.pkgPath=function(){return this.$val.pkgPath();};FX.ptr.prototype.isExported=function(){var aw,ax;aw=this;return(ax=$mapIndex(FZ,KG.keyFor(aw.bytes)),ax!==undefined?ax.v:KO.nil).exported;};FX.prototype.isExported=function(){return this.$val.isExported();};GA=function(aw,ax,ay){var aw,ax,ay,az,ba;az=$newDataPointer(0,KG);ba=az;(FZ||$throwRuntimeError("assignment to entry in nil map")).set(KG.keyFor(ba),{k:ba,v:new FY.ptr(aw,ax,ay,"")});return new FX.ptr(az);};GB=function(aw){var aw,ax,ay;ax=$newDataPointer(0,KG);ay=ax;(FZ||$throwRuntimeError("assignment to entry in nil map")).set(KG.keyFor(ay),{k:ay,v:new FY.ptr(GH(aw.name),"",GH(aw.pkg)==="",GH(aw.pkg))});return new FX.ptr(ax);};CN.ptr.prototype.nameOff=function(aw){var aw,ax,ay;ax=this;return(ay=((aw>>0)),((ay<0||ay>=GC.$length)?($throwRuntimeError("index out of range"),undefined):GC.$array[GC.$offset+ay]));};CN.prototype.nameOff=function(aw){return this.$val.nameOff(aw);};GD=function(aw){var aw,ax;ax=GC.$length;GC=$append(GC,aw);return((ax>>0));};CN.ptr.prototype.typeOff=function(aw){var aw,ax,ay;ax=this;return(ay=((aw>>0)),((ay<0||ay>=GE.$length)?($throwRuntimeError("index out of range"),undefined):GE.$array[GE.$offset+ay]));};CN.prototype.typeOff=function(aw){return this.$val.typeOff(aw);};GF=function(aw){var aw,ax;ax=GE.$length;GE=$append(GE,aw);return((ax>>0));};GH=function(aw){var aw,ax;ax=new KP.ptr("");ax.str=aw;return ax.str;};GI=function(aw){var aw;return!!(FR(aw).wrapped);};GJ=function(aw,ax,ay){var aw,ax,ay,az,ba,bb;az=FR(ay).fields;ba=0;while(true){if(!(ba<$parseInt(az.length))){break;}bb=$internalize(az[ba].prop,$String);aw[$externalize(bb,$String)]=ax[$externalize(bb,$String)];ba=ba+(1)>>0;}};GK=function(aw,ax,ay){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:az=aw.common();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;bd=aw.Kind();$s=6;case 6:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}if(bd===17){bc=true;$s=5;continue s;}be=aw.Kind();$s=7;case 7:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bc=be===25;case 5:if(bc){bb=true;$s=4;continue s;}bf=aw.Kind();$s=8;case 8:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bb=bf===22;case 4:if(bb){$s=2;continue;}$s=3;continue;case 2:bg=aw.Kind();$s=9;case 9:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=new Q.ptr(ba,(ax),(ay|((bg>>>0)))>>>0);$s=10;case 10:return bh;case 3:bi=aw.Kind();$s=11;case 11:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bj=new Q.ptr(ba,($newDataPointer(ax,FR(ba.ptrTo()))),(((ay|((bi>>>0)))>>>0)|128)>>>0);$s=12;case 12:return bj;}return;}var $f={$blk:GK,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,$s};return $f;};GL=function(aw,ax,ay){var{aw,ax,ay,az,ba,bb,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:aw=[aw];az=aw[0].Kind();$s=3;case 3:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}if(!((az===23))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.MakeSlice of non-slice type"));case 2:if(ax<0){$panic(new $String("reflect.MakeSlice: negative len"));}if(ay<0){$panic(new $String("reflect.MakeSlice: negative cap"));}if(ax>ay){$panic(new $String("reflect.MakeSlice: len > cap"));}ba=GK(aw[0],$makeSlice(FR(aw[0]),ax,ay,(function(aw){return function $b(){var{ba,bb,bc,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:ba=aw[0].Elem();$s=1;case 1:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=FR(ba);$s=2;case 2:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=bb.zero();$s=3;case 3:return bc;}return;}var $f={$blk:$b,$c:true,$r,ba,bb,bc,$s};return $f;};})(aw)),0);$s=4;case 4:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba;$s=5;case 5:return bb;}return;}var $f={$blk:GL,$c:true,$r,aw,ax,ay,az,ba,bb,$s};return $f;};$pkg.MakeSlice=GL;GM=function(aw){var aw;if(!FO){return new CN.ptr(0,0,0,0,0,0,0,$throwNilPointerError,KG.nil,0,0);}if($interfaceIsEqual(aw,$ifaceNil)){return $ifaceNil;}return FS(aw.constructor);};$pkg.TypeOf=GM;GN=function(aw){var{aw,ax,ay,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:if($interfaceIsEqual(aw,$ifaceNil)){$s=-1;return new Q.ptr(JE.nil,0,0);}ax=GK(FS(aw.constructor),aw.$val,0);$s=1;case 1:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;$s=2;case 2:return ay;}return;}var $f={$blk:GN,$c:true,$r,aw,ax,ay,$s};return $f;};$pkg.ValueOf=GN;GQ=function(aw,ax,ay){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:if(!(ay)){az=false;$s=3;continue s;}if(aw.$length===0){ba=true;$s=4;continue s;}bc=(bb=aw.$length-1>>0,((bb<0||bb>=aw.$length)?($throwRuntimeError("index out of range"),undefined):aw.$array[aw.$offset+bb])).Kind();$s=5;case 5:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}ba=!((bc===23));case 4:az=ba;case 3:if(az){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.FuncOf: last arg of variadic func must be slice"));case 2:bd=$makeSlice(KQ,aw.$length);be=aw;bf=0;while(true){if(!(bf=be.$length)?($throwRuntimeError("index out of range"),undefined):be.$array[be.$offset+bf]);((bg<0||bg>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bg]=FR(bh));bf++;}bi=$makeSlice(KQ,ax.$length);bj=ax;bk=0;while(true){if(!(bk=bj.$length)?($throwRuntimeError("index out of range"),undefined):bj.$array[bj.$offset+bk]);((bl<0||bl>=bi.$length)?($throwRuntimeError("index out of range"),undefined):bi.$array[bi.$offset+bl]=FR(bm));bk++;}$s=-1;return FS($funcType($externalize(bd,KQ),$externalize(bi,KQ),$externalize(ay,$Bool)));}return;}var $f={$blk:GQ,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,$s};return $f;};$pkg.FuncOf=GQ;CN.ptr.prototype.ptrTo=function(){var aw;aw=this;return FS($ptrType(FR(aw)));};CN.prototype.ptrTo=function(){return this.$val.ptrTo();};GS=function(aw){var aw;return FS($sliceType(FR(aw)));};$pkg.SliceOf=GS;GU=function(aw){var{aw,ax,ay,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=GK(aw,FR(aw).zero(),0);$s=1;case 1:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;$s=2;case 2:return ay;}return;}var $f={$blk:GU,$c:true,$r,aw,ax,ay,$s};return $f;};$pkg.Zero=GU;GV=function(aw){var aw,ax;ax=aw.Kind();if(ax===(25)){return(new(FR(aw).ptr)());}else if(ax===(17)){return(FR(aw).zero());}else{return($newDataPointer(FR(aw).zero(),FR(aw.ptrTo())));}};GW=function(aw,ax,ay){var{aw,ax,ay,az,ba,bb,bc,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:az=ay.common();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;bb=GV(ba);bc=ba.Kind();if(bc===(3)){(bb).$set(((ax.$low<<24>>24)));}else if(bc===(4)){(bb).$set(((ax.$low<<16>>16)));}else if((bc===(2))||(bc===(5))){(bb).$set(((ax.$low>>0)));}else if(bc===(6)){(bb).$set((new $Int64(ax.$high,ax.$low)));}else if(bc===(8)){(bb).$set(((ax.$low<<24>>>24)));}else if(bc===(9)){(bb).$set(((ax.$low<<16>>>16)));}else if((bc===(7))||(bc===(10))||(bc===(12))){(bb).$set(((ax.$low>>>0)));}else if(bc===(11)){(bb).$set((ax));}$s=-1;return new Q.ptr(ba,bb,(((aw|128)>>>0)|((ba.Kind()>>>0)))>>>0);}return;}var $f={$blk:GW,$c:true,$r,aw,ax,ay,az,ba,bb,bc,$s};return $f;};GY=function(aw,ax,ay){var aw,ax,ay;ax.$set(ay.$get());};HB=function(aw,ax){var aw,ax,ay;ay=0;ay=(new($global.Map)());return ay;};HC=function(aw,ax){var aw,ax,ay,az;ay=ax;if(!(ay.$get===undefined)){ay=ay.$get();}az=FR(aw.Key()).keyFor(ay);return[ay,az];};HD=function(aw,ax,ay){var aw,ax,ay,az,ba,bb;if(!!!(ax)){return 0;}az=HC(aw,ay);ba=az[1];bb=ax.get(ba);if(bb===undefined){return 0;}return($newDataPointer(bb.v,FR(DQ(aw.Elem()))));};HE=function(aw,ax,ay,az){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,$s,$r,$c}=$restore(this,{aw,ax,ay,az});$s=$s||0;s:while(true){switch($s){case 0:ba=HC(aw,ay);bb=ba[0];bc=ba[1];bd=az.$get();be=aw.Elem();bf=be.Kind();$s=3;case 3:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}if(bf===25){$s=1;continue;}$s=2;continue;case 1:bg=FR(be).zero();GJ(bg,bd,be);bd=bg;case 2:bh=new($global.Object)();bh.k=bb;bh.v=bd;ax.set(bc,bh);$s=-1;return;}return;}var $f={$blk:HE,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,$s};return $f;};HF=function(aw,ax,ay){var aw,ax,ay,az,ba;az=HC(aw,ay);ba=az[1];if(!!!(ax)){return;}ax.delete(ba);};HG=function(aw,ax,ay){var aw,ax,ay,az,ba;az=0;az=HD(aw,ax,((ba||(ba=new KT(function(){return ay;},function($v){ay=$v;})))));return az;};HH=function(aw,ax,ay,az){var{aw,ax,ay,az,$s,$r,$c}=$restore(this,{aw,ax,ay,az});$s=$s||0;s:while(true){switch($s){case 0:ay=[ay];$r=HE(aw,ax,((ay.$ptr||(ay.$ptr=new KT(function(){return this.$target[0];},function($v){this.$target[0]=$v;},ay)))),az);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:HH,$c:true,$r,aw,ax,ay,az,$s};return $f;};HI=function(aw,ax,ay){var aw,ax,ay,az;HF(aw,ax,((az||(az=new KT(function(){return ay;},function($v){ay=$v;})))));};HJ.ptr.prototype.skipUntilValidKey=function(){var aw,ax,ay;aw=this;while(true){if(!(aw.i<$parseInt(aw.keys.length))){break;}ax=aw.keys[aw.i];ay=aw.m.get(ax);if(!(ay===undefined)){break;}aw.i=aw.i+(1)>>0;}};HJ.prototype.skipUntilValidKey=function(){return this.$val.skipUntilValidKey();};HK=function(aw,ax,ay){var aw,ax,ay,az,ba,bb;az=ax;ba=new($global.Array)();if(!(az.keys===undefined)){bb=az.keys();if(!(az.keys===undefined)){ba=$global.Array.from(bb);}}HJ.copy(ay,new HJ.ptr(aw,az,ba,0,null));};HL=function(aw){var{aw,ax,ay,az,ba,bb,bc,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=null;if(!(aw.last===null)){ax=aw.last;}else{aw.skipUntilValidKey();if(aw.i===$parseInt(aw.keys.length)){$s=-1;return 0;}ay=aw.keys[aw.i];ax=aw.m.get(ay);aw.last=ax;}az=aw.t.Key();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=DQ(az);$s=2;case 2:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=FR(ba);$s=3;case 3:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=($newDataPointer(ax.k,bb));$s=4;case 4:return bc;}return;}var $f={$blk:HL,$c:true,$r,aw,ax,ay,az,ba,bb,bc,$s};return $f;};HM=function(aw){var{aw,ax,ay,az,ba,bb,bc,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=null;if(!(aw.last===null)){ax=aw.last;}else{aw.skipUntilValidKey();if(aw.i===$parseInt(aw.keys.length)){$s=-1;return 0;}ay=aw.keys[aw.i];ax=aw.m.get(ay);aw.last=ax;}az=aw.t.Elem();$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=DQ(az);$s=2;case 2:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=FR(ba);$s=3;case 3:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=($newDataPointer(ax.v,bb));$s=4;case 4:return bc;}return;}var $f={$blk:HM,$c:true,$r,aw,ax,ay,az,ba,bb,bc,$s};return $f;};HN=function(aw){var aw;aw.last=null;aw.i=aw.i+(1)>>0;};HO=function(aw){var aw;return $parseInt(aw.size)>>0;};HP=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=$clone(aw,Q).object();if(ay===FR(aw.typ).nil){$s=1;continue;}$s=2;continue;case 1:az=GK(ax,FR(ax).nil,aw.flag);$s=3;case 3:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;$s=4;case 4:return ba;case 2:bb=null;bc=ax.Kind();$s=6;case 6:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;be=bd;if(be===(23)){$s=7;continue;}if(be===(22)){$s=8;continue;}if(be===(25)){$s=9;continue;}if((be===(17))||(be===(1))||(be===(18))||(be===(19))||(be===(20))||(be===(21))||(be===(24))||(be===(26))){$s=10;continue;}$s=11;continue;case 7:bf=new(FR(ax))(ay.$array);bf.$offset=ay.$offset;bf.$length=ay.$length;bf.$capacity=ay.$capacity;bb=$newDataPointer(bf,FR(DQ(ax)));$s=12;continue;case 8:bg=ax.Elem();$s=14;case 14:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=bg.Kind();$s=15;case 15:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bi=bh;if(bi===(25)){$s=16;continue;}if(bi===(17)){$s=17;continue;}$s=18;continue;case 16:bj=ax.Elem();$s=22;case 22:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}if($interfaceIsEqual(bj,aw.typ.Elem())){$s=20;continue;}$s=21;continue;case 20:bb=ay;$s=13;continue;case 21:bb=new(FR(ax))();bk=bb;bl=ay;bm=ax.Elem();$s=23;case 23:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bn=bm;$r=GJ(bk,bl,bn);$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=19;continue;case 17:bb=ay;$s=19;continue;case 18:bb=new(FR(ax))(ay.$get,ay.$set);case 19:case 13:$s=12;continue;case 9:bb=new(FR(ax).ptr)();GJ(bb,ay,ax);$s=12;continue;case 10:bb=aw.ptr;$s=12;continue;case 11:$panic(new U.ptr("reflect.Convert",bd));case 12:case 5:bo=ax.common();$s=25;case 25:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=ax.Kind();$s=26;case 26:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}bq=new Q.ptr(bo,(bb),(((new R(aw.flag).ro()|((aw.flag&128)>>>0))>>>0)|((bp>>>0)))>>>0);$s=27;case 27:return bq;}return;}var $f={$blk:HP,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,$s};return $f;};HQ=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=$clone(aw,Q).object();az=$parseInt(ay.$length)>>0;ba=ax.Elem();$s=1;case 1:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba.Len();$s=2;case 2:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=bb;if(bc>az){$panic(new $String("reflect: cannot convert slice with length "+D.Itoa(az)+" to pointer to array with length "+D.Itoa(bc)));}bd=$sliceToGoArray(ay,FR(ax));be=ax.common();$s=3;case 3:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bf=new Q.ptr(be,(bd),(((aw.flag&~415)>>>0)|22)>>>0);$s=4;case 4:return bf;}return;}var $f={$blk:HQ,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,$s};return $f;};HR=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,be,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=new R(aw.flag).kind();if(!((ay===17))&&!((ay===23))){$panic(new U.ptr("reflect.Copy",ay));}if(ay===17){new R(aw.flag).mustBeAssignable();}new R(aw.flag).mustBeExported();az=new R(ax.flag).kind();ba=false;if(!((az===17))&&!((az===23))){$s=1;continue;}$s=2;continue;case 1:if(!(az===24)){bb=false;$s=3;continue s;}bc=aw.typ.Elem().Kind();$s=4;case 4:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bb=bc===8;case 3:ba=bb;if(!ba){$panic(new U.ptr("reflect.Copy",az));}case 2:new R(ax.flag).mustBeExported();if(!ba){$s=5;continue;}$s=6;continue;case 5:$r=AL("reflect.Copy",aw.typ.Elem(),ax.typ.Elem());$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:bd=$clone(aw,Q).object();if(ay===17){bd=new(FR(GS(aw.typ.Elem())))(bd);}be=$clone(ax,Q).object();if(az===17){be=new(FR(GS(ax.typ.Elem())))(be);}if(ba){$s=-1;return $parseInt($copyString(bd,be))>>0;}$s=-1;return $parseInt($copySlice(bd,be))>>0;}return;}var $f={$blk:HR,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,$s};return $f;};$pkg.Copy=HR;HS=function(aw,ax,ay){var aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi;az=JE.nil;ba=KU.nil;bb=0;bc="";if(ax.typ.Kind()===20){bd=(ax.typ.kindType);if(ay<0||ay>=bd.methods.$length){$panic(new $String("reflect: internal error: invalid method index"));}bf=(be=bd.methods,((ay<0||ay>=be.$length)?($throwRuntimeError("index out of range"),undefined):be.$array[be.$offset+ay]));if(!$clone(bd.rtype.nameOff(bf.name),FX).isExported()){$panic(new $String("reflect: "+aw+" of unexported method"));}ba=(bd.rtype.typeOff(bf.typ).kindType);bc=$clone(bd.rtype.nameOff(bf.name),FX).name();}else{bg=ax.typ.exportedMethods();if(((ay>>>0))>=((bg.$length>>>0))){$panic(new $String("reflect: internal error: invalid method index"));}bh=$clone(((ay<0||ay>=bg.$length)?($throwRuntimeError("index out of range"),undefined):bg.$array[bg.$offset+ay]),CO);if(!$clone(ax.typ.nameOff(bh.name),FX).isExported()){$panic(new $String("reflect: "+aw+" of unexported method"));}ba=(ax.typ.typeOff(bh.mtyp).kindType);bc=$internalize($methodSet(FR(ax.typ))[ay].prop,$String);}bi=$clone(ax,Q).object();if(GI(ax.typ)){bi=new(FR(ax.typ))(bi);}bb=(bi[$externalize(bc,$String)]);return[az,ba,bb];};HT=function(aw,ax){var{aw,ax,ay,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:if(aw.flag===0){$panic(new U.ptr("reflect.Value.Interface",0));}if(ax&&!((((aw.flag&96)>>>0)===0))){$panic(new $String("reflect.Value.Interface: cannot return value obtained from unexported field or method"));}if(!((((aw.flag&512)>>>0)===0))){$s=1;continue;}$s=2;continue;case 1:ay=HV("Interface",$clone(aw,Q));$s=3;case 3:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}aw=ay;case 2:if(GI(aw.typ)){$s=-1;return((new(FR(aw.typ))($clone(aw,Q).object())));}$s=-1;return(($clone(aw,Q).object()));}return;}var $f={$blk:HT,$c:true,$r,aw,ax,ay,$s};return $f;};HU=function(aw,ax,ay){var aw,ax,ay;ay.$set(ax);};HV=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=[ay];az=[az];if(((ax.flag&512)>>>0)===0){$panic(new $String("reflect: internal error: invalid use of makePartialFunc"));}ba=HS(aw,$clone(ax,Q),((ax.flag>>0))>>10>>0);ay[0]=ba[2];az[0]=$clone(ax,Q).object();if(GI(ax.typ)){az[0]=new(FR(ax.typ))(az[0]);}bb=L.MakeFunc((function(ay,az){return function(bb,bc){var bb,bc;return new $jsObjectPtr(ay[0].apply(az[0],$externalize(bc,KQ)));};})(ay,az));bc=$clone(ax,Q).Type().common();$s=1;case 1:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=new Q.ptr(bc,(bb),(new R(ax.flag).ro()|19)>>>0);$s=2;case 2:return bd;}return;}var $f={$blk:HV,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,$s};return $f;};CN.ptr.prototype.pointers=function(){var aw,ax;aw=this;ax=aw.Kind();if((ax===(22))||(ax===(21))||(ax===(18))||(ax===(19))||(ax===(25))||(ax===(17))){return true;}else{return false;}};CN.prototype.pointers=function(){return this.$val.pointers();};CN.ptr.prototype.Comparable=function(){var{aw,ax,ay,az,ba,bb,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=this;ax=aw.Kind();if((ax===(19))||(ax===(23))||(ax===(21))){$s=2;continue;}if(ax===(17)){$s=3;continue;}if(ax===(25)){$s=4;continue;}$s=5;continue;case 2:$s=-1;return false;case 3:ay=aw.Elem().Comparable();$s=6;case 6:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;$s=7;case 7:return az;case 4:ba=0;case 8:if(!(ba>0;$s=8;continue;case 9:case 5:case 1:$s=-1;return true;}return;}var $f={$blk:CN.ptr.prototype.Comparable,$c:true,$r,aw,ax,ay,az,ba,bb,$s};return $f;};CN.prototype.Comparable=function(){return this.$val.Comparable();};CN.ptr.prototype.Method=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=[ax];ay=new DA.ptr("","",$ifaceNil,new Q.ptr(JE.nil,0,0),0);az=this;if(az.Kind()===20){ba=(az.kindType);DA.copy(ay,ba.Method(aw));$s=-1;return ay;}bb=az.exportedMethods();if(aw<0||aw>=bb.$length){$panic(new $String("reflect: Method index out of range"));}bc=$clone(((aw<0||aw>=bb.$length)?($throwRuntimeError("index out of range"),undefined):bb.$array[bb.$offset+aw]),CO);bd=$clone(az.nameOff(bc.name),FX);ay.Name=$clone(bd,FX).name();be=19;bf=az.typeOff(bc.mtyp);bg=(bf.kindType);bh=$makeSlice(KV,0,(1+bg.in$().$length>>0));bh=$append(bh,az);bi=bg.in$();bj=0;while(true){if(!(bj=bi.$length)?($throwRuntimeError("index out of range"),undefined):bi.$array[bi.$offset+bj]);bh=$append(bh,bk);bj++;}bl=$makeSlice(KV,0,bg.out().$length);bm=bg.out();bn=0;while(true){if(!(bn=bm.$length)?($throwRuntimeError("index out of range"),undefined):bm.$array[bm.$offset+bn]);bl=$append(bl,bo);bn++;}bp=GQ(bh,bl,bg.rtype.IsVariadic());$s=1;case 1:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}bq=bp;ay.Type=bq;ax[0]=$internalize($methodSet(az.jsType)[aw].prop,$String);br=L.MakeFunc((function(ax){return function(br,bs){var br,bs,bt;bt=(0>=bs.$length?($throwRuntimeError("index out of range"),undefined):bs.$array[bs.$offset+0]);return new $jsObjectPtr(bt[$externalize(ax[0],$String)].apply(bt,$externalize($subslice(bs,1),KQ)));};})(ax));ay.Func=new Q.ptr($assertType(bq,JE),(br),be);ay.Index=aw;DA.copy(ay,ay);$s=-1;return ay;}return;}var $f={$blk:CN.ptr.prototype.Method,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,$s};return $f;};CN.prototype.Method=function(aw){return this.$val.Method(aw);};Q.ptr.prototype.object=function(){var aw,ax,ay,az;aw=this;if((aw.typ.Kind()===17)||(aw.typ.Kind()===25)){return aw.ptr;}if(!((((aw.flag&128)>>>0)===0))){ax=aw.ptr.$get();if(!(ax===$ifaceNil)&&!(ax.constructor===FR(aw.typ))){switch(0){default:ay=aw.typ.Kind();if((ay===(11))||(ay===(6))){ax=new(FR(aw.typ))(ax.$high,ax.$low);}else if((ay===(15))||(ay===(16))){ax=new(FR(aw.typ))(ax.$real,ax.$imag);}else if(ay===(23)){if(ax===ax.constructor.nil){ax=FR(aw.typ).nil;break;}az=new(FR(aw.typ))(ax.$array);az.$offset=ax.$offset;az.$length=ax.$length;az.$capacity=ax.$capacity;ax=az;}}}return ax;}return aw.ptr;};Q.prototype.object=function(){return this.$val.object();};Q.ptr.prototype.assignTo=function(aw,ax,ay){var{aw,ax,ay,az,ba,bb,bc,bd,be,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:az=this;if(!((((az.flag&512)>>>0)===0))){$s=1;continue;}$s=2;continue;case 1:ba=HV(aw,$clone(az,Q));$s=3;case 3:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}az=ba;case 2:bb=DV(ax,az.typ);$s=8;case 8:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}if(bb){$s=5;continue;}if(DT(ax,az.typ)){$s=6;continue;}$s=7;continue;case 5:bc=(((az.flag&384)>>>0)|new R(az.flag).ro())>>>0;bc=(bc|(((ax.Kind()>>>0))))>>>0;$s=-1;return new Q.ptr(ax,az.ptr,bc);case 6:if(ay===0){ay=GV(ax);}bd=HT($clone(az,Q),false);$s=9;case 9:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=bd;if(ax.NumMethod()===0){(ay).$set(be);}else{HU(ax,be,ay);}$s=-1;return new Q.ptr(ax,ay,148);case 7:case 4:$panic(new $String(aw+": value of type "+az.typ.String()+" is not assignable to type "+ax.String()));$s=-1;return new Q.ptr(JE.nil,0,0);}return;}var $f={$blk:Q.ptr.prototype.assignTo,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,$s};return $f;};Q.prototype.assignTo=function(aw,ax,ay){return this.$val.assignTo(aw,ax,ay);};Q.ptr.prototype.call=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,db,dc,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=this;az=KU.nil;ba=0;bb=null;if(!((((ay.flag&512)>>>0)===0))){bc=HS(aw,$clone(ay,Q),((ay.flag>>0))>>10>>0);az=bc[1];ba=bc[2];bb=$clone(ay,Q).object();if(GI(ay.typ)){bb=new(FR(ay.typ))(bb);}}else{az=(ay.typ.kindType);ba=($clone(ay,Q).object());bb=undefined;}if(ba===0){$panic(new $String("reflect.Value.Call: call of nil function"));}bd=aw==="CallSlice";be=az.rtype.NumIn();if(bd){if(!az.rtype.IsVariadic()){$panic(new $String("reflect: CallSlice of non-variadic function"));}if(ax.$lengthbe){$panic(new $String("reflect: CallSlice with too many input arguments"));}}else{if(az.rtype.IsVariadic()){be=be-(1)>>0;}if(ax.$lengthbe){$panic(new $String("reflect: Call with too many input arguments"));}}bf=ax;bg=0;while(true){if(!(bg=bf.$length)?($throwRuntimeError("index out of range"),undefined):bf.$array[bf.$offset+bg]);if($clone(bh,Q).Kind()===0){$panic(new $String("reflect: "+aw+" using zero Value argument"));}bg++;}bi=0;case 1:if(!(bi=ax.$length)?($throwRuntimeError("index out of range"),undefined):ax.$array[ax.$offset+bi]),Q).Type();bk=az.rtype.In(bi);bl=bj;bm=bk;bn=bl.AssignableTo(bm);$s=5;case 5:if($c){$c=false;bn=bn.$blk();}if(bn&&bn.$blk!==undefined){break s;}if(!bn){$s=3;continue;}$s=4;continue;case 3:bo=bl.String();$s=6;case 6:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=bm.String();$s=7;case 7:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}$panic(new $String("reflect: "+aw+" using "+bo+" as type "+bp));case 4:bi=bi+(1)>>0;$s=1;continue;case 2:if(!bd&&az.rtype.IsVariadic()){$s=8;continue;}$s=9;continue;case 8:bq=ax.$length-be>>0;br=GL(az.rtype.In(be),bq,bq);$s=10;case 10:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}bs=br;bt=az.rtype.In(be).Elem();$s=11;case 11:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}bu=bt;bv=0;case 12:if(!(bv>0,((bw<0||bw>=ax.$length)?($throwRuntimeError("index out of range"),undefined):ax.$array[ax.$offset+bw]));by=$clone(bx,Q).Type();bz=by.AssignableTo(bu);$s=16;case 16:if($c){$c=false;bz=bz.$blk();}if(bz&&bz.$blk!==undefined){break s;}if(!bz){$s=14;continue;}$s=15;continue;case 14:ca=by.String();$s=17;case 17:if($c){$c=false;ca=ca.$blk();}if(ca&&ca.$blk!==undefined){break s;}cb=bu.String();$s=18;case 18:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}$panic(new $String("reflect: cannot use "+ca+" as type "+cb+" in "+aw));case 15:cc=$clone(bs,Q).Index(bv);$s=19;case 19:if($c){$c=false;cc=cc.$blk();}if(cc&&cc.$blk!==undefined){break s;}$r=$clone(cc,Q).Set($clone(bx,Q));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bv=bv+(1)>>0;$s=12;continue;case 13:cd=ax;ax=$makeSlice(JO,(be+1>>0));$copySlice($subslice(ax,0,be),cd);((be<0||be>=ax.$length)?($throwRuntimeError("index out of range"),undefined):ax.$array[ax.$offset+be]=bs);case 9:ce=ax.$length;if(!((ce===az.rtype.NumIn()))){$panic(new $String("reflect.Value.Call: wrong argument count"));}cf=az.rtype.NumOut();cg=new($global.Array)(az.rtype.NumIn());ch=ax;ci=0;case 21:if(!(ci=ch.$length)?($throwRuntimeError("index out of range"),undefined):ch.$array[ch.$offset+ci]);cl=az.rtype.In(cj);cm=az.rtype.In(cj).common();$s=23;case 23:if($c){$c=false;cm=cm.$blk();}if(cm&&cm.$blk!==undefined){break s;}cn=cm;co=0;cp=$clone(ck,Q).assignTo("reflect.Value.Call",cn,co);$s=24;case 24:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}cq=$clone(cp,Q).object();$s=25;case 25:if($c){$c=false;cq=cq.$blk();}if(cq&&cq.$blk!==undefined){break s;}cr=cq;cs=HZ(cl,cr);$s=26;case 26:if($c){$c=false;cs=cs.$blk();}if(cs&&cs.$blk!==undefined){break s;}cg[cj]=cs;ci++;$s=21;continue;case 22:ct=HW(new JH([new $jsObjectPtr(ba),new $jsObjectPtr(bb),new $jsObjectPtr(cg)]));$s=27;case 27:if($c){$c=false;ct=ct.$blk();}if(ct&&ct.$blk!==undefined){break s;}cu=ct;cv=cf;if(cv===(0)){$s=29;continue;}if(cv===(1)){$s=30;continue;}$s=31;continue;case 29:$s=-1;return JO.nil;case 30:cw=GK(az.rtype.Out(0),HY(az.rtype.Out(0),cu),0);$s=33;case 33:if($c){$c=false;cw=cw.$blk();}if(cw&&cw.$blk!==undefined){break s;}cx=new JO([$clone(cw,Q)]);$s=34;case 34:return cx;case 31:cy=$makeSlice(JO,cf);cz=cy;da=0;case 35:if(!(da=cy.$length)?($throwRuntimeError("index out of range"),undefined):cy.$array[cy.$offset+db]=dc);da++;$s=35;continue;case 36:$s=-1;return cy;case 32:case 28:$s=-1;return JO.nil;}return;}var $f={$blk:Q.ptr.prototype.call,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,db,dc,$s};return $f;};Q.prototype.call=function(aw,ax){return this.$val.call(aw,ax);};Q.ptr.prototype.Cap=function(){var aw,ax,ay;aw=this;ax=new R(aw.flag).kind();ay=ax;if(ay===(17)){return aw.typ.Len();}else if((ay===(18))||(ay===(23))){return $parseInt($clone(aw,Q).object().$capacity)>>0;}$panic(new U.ptr("reflect.Value.Cap",ax));};Q.prototype.Cap=function(){return this.$val.Cap();};HY=function(aw,ax){var aw,ax;if($interfaceIsEqual(aw,HX)){return new(FR(HX))(ax);}return ax;};HZ=function(aw,ax){var aw,ax;if($interfaceIsEqual(aw,HX)){return ax.object;}return ax;};Q.ptr.prototype.Elem=function(){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:aw=this;ax=new R(aw.flag).kind();ay=ax;if(ay===(20)){$s=2;continue;}if(ay===(22)){$s=3;continue;}$s=4;continue;case 2:az=$clone(aw,Q).object();if(az===$ifaceNil){$s=-1;return new Q.ptr(JE.nil,0,0);}ba=FS(az.constructor);bb=GK(ba,az.$val,new R(aw.flag).ro());$s=6;case 6:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=bb;$s=7;case 7:return bc;case 3:if($clone(aw,Q).IsNil()){$s=-1;return new Q.ptr(JE.nil,0,0);}bd=$clone(aw,Q).object();be=(aw.typ.kindType);bf=(((((aw.flag&96)>>>0)|128)>>>0)|256)>>>0;bf=(bf|(((be.elem.Kind()>>>0))))>>>0;$s=-1;return new Q.ptr(be.elem,(HY(be.elem,bd)),bf);case 4:$panic(new U.ptr("reflect.Value.Elem",ax));case 5:case 1:$s=-1;return new Q.ptr(JE.nil,0,0);}return;}var $f={$blk:Q.ptr.prototype.Elem,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,$s};return $f;};Q.prototype.Elem=function(){return this.$val.Elem();};Q.ptr.prototype.Field=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=[ax];ay=[ay];az=[az];ba=[ba];bb=this;if(!((new R(bb.flag).kind()===25))){$panic(new U.ptr("reflect.Value.Field",new R(bb.flag).kind()));}bc=(bb.typ.kindType);if(((aw>>>0))>=((bc.fields.$length>>>0))){$panic(new $String("reflect: Field index out of range"));}ay[0]=$internalize(FR(bb.typ).fields[aw].prop,$String);be=(bd=bc.fields,((aw<0||aw>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+aw]));ba[0]=be.typ;bf=(((bb.flag&416)>>>0)|((ba[0].Kind()>>>0)))>>>0;if(!$clone(be.name,FX).isExported()){if(be.embedded()){bf=(bf|(64))>>>0;}else{bf=(bf|(32))>>>0;}}bh=$clone((bg=bc.fields,((aw<0||aw>=bg.$length)?($throwRuntimeError("index out of range"),undefined):bg.$array[bg.$offset+aw])).name,FX).tag();if(!(bh==="")&&!((aw===0))){$s=1;continue;}$s=2;continue;case 1:ax[0]=IA(bh);if(!(ax[0]==="")){$s=3;continue;}$s=4;continue;case 3:case 5:bi=[bi];bj=$clone(bb,Q).Field(0);$s=7;case 7:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bb=bj;if(bb.typ===HX){$s=8;continue;}$s=9;continue;case 8:bi[0]=$clone(bb,Q).object().object;$s=-1;return new Q.ptr(ba[0],(new(FR(DQ(ba[0])))((function(ax,ay,az,ba,bi){return function(){return $internalize(bi[0][$externalize(ax[0],$String)],FR(ba[0]));};})(ax,ay,az,ba,bi),(function(ax,ay,az,ba,bi){return function(bk){var bk;bi[0][$externalize(ax[0],$String)]=$externalize(bk,FR(ba[0]));};})(ax,ay,az,ba,bi))),bf);case 9:if(bb.typ.Kind()===22){$s=10;continue;}$s=11;continue;case 10:bk=$clone(bb,Q).Elem();$s=12;case 12:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}bb=bk;case 11:$s=5;continue;case 6:case 4:case 2:az[0]=bb.ptr;if(!((((bf&128)>>>0)===0))&&!((ba[0].Kind()===17))&&!((ba[0].Kind()===25))){$s=13;continue;}$s=14;continue;case 13:$s=-1;return new Q.ptr(ba[0],(new(FR(DQ(ba[0])))((function(ax,ay,az,ba){return function(){return HY(ba[0],az[0][$externalize(ay[0],$String)]);};})(ax,ay,az,ba),(function(ax,ay,az,ba){return function(bl){var bl;az[0][$externalize(ay[0],$String)]=HZ(ba[0],bl);};})(ax,ay,az,ba))),bf);case 14:bl=GK(ba[0],HY(ba[0],az[0][$externalize(ay[0],$String)]),bf);$s=15;case 15:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}bm=bl;$s=16;case 16:return bm;}return;}var $f={$blk:Q.ptr.prototype.Field,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,$s};return $f;};Q.prototype.Field=function(aw){return this.$val.Field(aw);};IA=function(aw){var aw,ax,ay,az,ba,bb;while(true){if(!(!(aw===""))){break;}ax=0;while(true){if(!(ax>0;}aw=$substring(aw,ax);if(aw===""){break;}ax=0;while(true){if(!(ax>0;}if((ax+1>>0)>=aw.length||!((aw.charCodeAt(ax)===58))||!((aw.charCodeAt((ax+1>>0))===34))){break;}ay=($substring(aw,0,ax));aw=$substring(aw,(ax+1>>0));ax=1;while(true){if(!(ax>0;}ax=ax+(1)>>0;}if(ax>=aw.length){break;}az=($substring(aw,0,(ax+1>>0)));aw=$substring(aw,(ax+1>>0));if(ay==="js"){ba=H.Unquote(az);bb=ba[0];return bb;}}return"";};Q.ptr.prototype.Index=function(aw){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:aw=[aw];ax=[ax];ay=[ay];az=[az];ba=[ba];bb=[bb];bc=this;bd=new R(bc.flag).kind();be=bd;if(be===(17)){$s=2;continue;}if(be===(23)){$s=3;continue;}if(be===(24)){$s=4;continue;}$s=5;continue;case 2:bf=(bc.typ.kindType);if(aw[0]<0||aw[0]>((bf.len>>0))){$panic(new $String("reflect: array index out of range"));}ba[0]=bf.elem;bg=(((((bc.flag&384)>>>0)|new R(bc.flag).ro())>>>0)|((ba[0].Kind()>>>0)))>>>0;ax[0]=bc.ptr;if(!((((bg&128)>>>0)===0))&&!((ba[0].Kind()===17))&&!((ba[0].Kind()===25))){$s=7;continue;}$s=8;continue;case 7:$s=-1;return new Q.ptr(ba[0],(new(FR(DQ(ba[0])))((function(aw,ax,ay,az,ba,bb){return function(){return HY(ba[0],ax[0][aw[0]]);};})(aw,ax,ay,az,ba,bb),(function(aw,ax,ay,az,ba,bb){return function(bh){var bh;ax[0][aw[0]]=HZ(ba[0],bh);};})(aw,ax,ay,az,ba,bb))),bg);case 8:bh=GK(ba[0],HY(ba[0],ax[0][aw[0]]),bg);$s=9;case 9:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bi=bh;$s=10;case 10:return bi;case 3:bj=$clone(bc,Q).object();if(aw[0]<0||aw[0]>=($parseInt(bj.$length)>>0)){$panic(new $String("reflect: slice index out of range"));}bk=(bc.typ.kindType);bb[0]=bk.elem;bl=(((384|new R(bc.flag).ro())>>>0)|((bb[0].Kind()>>>0)))>>>0;aw[0]=aw[0]+(($parseInt(bj.$offset)>>0))>>0;ay[0]=bj.$array;if(!((((bl&128)>>>0)===0))&&!((bb[0].Kind()===17))&&!((bb[0].Kind()===25))){$s=11;continue;}$s=12;continue;case 11:$s=-1;return new Q.ptr(bb[0],(new(FR(DQ(bb[0])))((function(aw,ax,ay,az,ba,bb){return function(){return HY(bb[0],ay[0][aw[0]]);};})(aw,ax,ay,az,ba,bb),(function(aw,ax,ay,az,ba,bb){return function(bm){var bm;ay[0][aw[0]]=HZ(bb[0],bm);};})(aw,ax,ay,az,ba,bb))),bl);case 12:bm=GK(bb[0],HY(bb[0],ay[0][aw[0]]),bl);$s=13;case 13:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bn=bm;$s=14;case 14:return bn;case 4:bo=(bc.ptr).$get();if(aw[0]<0||aw[0]>=bo.length){$panic(new $String("reflect: string index out of range"));}bp=(((new R(bc.flag).ro()|8)>>>0)|128)>>>0;az[0]=bo.charCodeAt(aw[0]);$s=-1;return new Q.ptr(AE,((az.$ptr||(az.$ptr=new KG(function(){return this.$target[0];},function($v){this.$target[0]=$v;},az)))),bp);case 5:$panic(new U.ptr("reflect.Value.Index",bd));case 6:case 1:$s=-1;return new Q.ptr(JE.nil,0,0);}return;}var $f={$blk:Q.ptr.prototype.Index,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,$s};return $f;};Q.prototype.Index=function(aw){return this.$val.Index(aw);};Q.ptr.prototype.InterfaceData=function(){var aw;aw=this;$panic(A.New("InterfaceData is not supported by GopherJS"));};Q.prototype.InterfaceData=function(){return this.$val.InterfaceData();};Q.ptr.prototype.IsNil=function(){var aw,ax,ay;aw=this;ax=new R(aw.flag).kind();ay=ax;if((ay===(22))||(ay===(23))){return $clone(aw,Q).object()===FR(aw.typ).nil;}else if(ay===(18)){return $clone(aw,Q).object()===$chanNil;}else if(ay===(19)){return $clone(aw,Q).object()===$throwNilPointerError;}else if(ay===(21)){return $clone(aw,Q).object()===false;}else if(ay===(20)){return $clone(aw,Q).object()===$ifaceNil;}else if(ay===(26)){return $clone(aw,Q).object()===0;}else{$panic(new U.ptr("reflect.Value.IsNil",ax));}};Q.prototype.IsNil=function(){return this.$val.IsNil();};Q.ptr.prototype.Len=function(){var aw,ax,ay;aw=this;ax=new R(aw.flag).kind();ay=ax;if((ay===(17))||(ay===(24))){return $parseInt($clone(aw,Q).object().length);}else if(ay===(23)){return $parseInt($clone(aw,Q).object().$length)>>0;}else if(ay===(18)){return $parseInt($clone(aw,Q).object().$buffer.length)>>0;}else if(ay===(21)){return $parseInt($clone(aw,Q).object().size)>>0;}else{$panic(new U.ptr("reflect.Value.Len",ax));}};Q.prototype.Len=function(){return this.$val.Len();};Q.ptr.prototype.Pointer=function(){var aw,ax,ay;aw=this;ax=new R(aw.flag).kind();ay=ax;if((ay===(18))||(ay===(21))||(ay===(22))||(ay===(26))){if($clone(aw,Q).IsNil()){return 0;}return $clone(aw,Q).object();}else if(ay===(19)){if($clone(aw,Q).IsNil()){return 0;}return 1;}else if(ay===(23)){if($clone(aw,Q).IsNil()){return 0;}return $clone(aw,Q).object().$array;}else{$panic(new U.ptr("reflect.Value.Pointer",ax));}};Q.prototype.Pointer=function(){return this.$val.Pointer();};Q.ptr.prototype.Set=function(aw){var{aw,ax,ay,az,ba,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;new R(ax.flag).mustBeAssignable();new R(aw.flag).mustBeExported();ay=$clone(aw,Q).assignTo("reflect.Set",ax.typ,0);$s=1;case 1:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}aw=ay;if(!((((ax.flag&128)>>>0)===0))){$s=2;continue;}$s=3;continue;case 2:az=ax.typ.Kind();if(az===(17)){$s=5;continue;}if(az===(20)){$s=6;continue;}if(az===(25)){$s=7;continue;}$s=8;continue;case 5:FR(ax.typ).copy(ax.ptr,aw.ptr);$s=9;continue;case 6:ba=HT($clone(aw,Q),false);$s=10;case 10:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}ax.ptr.$set(ba);$s=9;continue;case 7:GJ(ax.ptr,aw.ptr,ax.typ);$s=9;continue;case 8:ax.ptr.$set($clone(aw,Q).object());case 9:case 4:$s=-1;return;case 3:ax.ptr=aw.ptr;$s=-1;return;}return;}var $f={$blk:Q.ptr.prototype.Set,$c:true,$r,aw,ax,ay,az,ba,$s};return $f;};Q.prototype.Set=function(aw){return this.$val.Set(aw);};Q.ptr.prototype.SetBytes=function(aw){var{aw,ax,ay,az,ba,bb,bc,$s,$r,$c}=$restore(this,{aw});$s=$s||0;s:while(true){switch($s){case 0:ax=this;new R(ax.flag).mustBeAssignable();new R(ax.flag).mustBe(23);ay=ax.typ.Elem().Kind();$s=3;case 3:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}if(!((ay===8))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.Value.SetBytes of non-byte slice"));case 2:az=aw;if(!(ax.typ.Name()==="")){ba=true;$s=6;continue s;}bb=ax.typ.Elem().Name();$s=7;case 7:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}ba=!(bb==="");case 6:if(ba){$s=4;continue;}$s=5;continue;case 4:bc=new(FR(ax.typ))(az.$array);bc.$offset=az.$offset;bc.$length=az.$length;bc.$capacity=az.$capacity;az=bc;case 5:ax.ptr.$set(az);$s=-1;return;}return;}var $f={$blk:Q.ptr.prototype.SetBytes,$c:true,$r,aw,ax,ay,az,ba,bb,bc,$s};return $f;};Q.prototype.SetBytes=function(aw){return this.$val.SetBytes(aw);};Q.ptr.prototype.SetCap=function(aw){var aw,ax,ay,az;ax=this;new R(ax.flag).mustBeAssignable();new R(ax.flag).mustBe(23);ay=ax.ptr.$get();if(aw<($parseInt(ay.$length)>>0)||aw>($parseInt(ay.$capacity)>>0)){$panic(new $String("reflect: slice capacity out of range in SetCap"));}az=new(FR(ax.typ))(ay.$array);az.$offset=ay.$offset;az.$length=ay.$length;az.$capacity=aw;ax.ptr.$set(az);};Q.prototype.SetCap=function(aw){return this.$val.SetCap(aw);};Q.ptr.prototype.SetLen=function(aw){var aw,ax,ay,az;ax=this;new R(ax.flag).mustBeAssignable();new R(ax.flag).mustBe(23);ay=ax.ptr.$get();if(aw<0||aw>($parseInt(ay.$capacity)>>0)){$panic(new $String("reflect: slice length out of range in SetLen"));}az=new(FR(ax.typ))(ay.$array);az.$offset=ay.$offset;az.$length=aw;az.$capacity=ay.$capacity;ax.ptr.$set(az);};Q.prototype.SetLen=function(aw){return this.$val.SetLen(aw);};Q.ptr.prototype.Slice=function(aw,ax){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,$s,$r,$c}=$restore(this,{aw,ax});$s=$s||0;s:while(true){switch($s){case 0:ay=this;az=0;ba=$ifaceNil;bb=null;bc=new R(ay.flag).kind();bd=bc;if(bd===(17)){$s=2;continue;}if(bd===(23)){$s=3;continue;}if(bd===(24)){$s=4;continue;}$s=5;continue;case 2:if(((ay.flag&256)>>>0)===0){$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));}be=(ay.typ.kindType);az=((be.len>>0));ba=GS(be.elem);bb=new(FR(ba))($clone(ay,Q).object());$s=6;continue;case 3:ba=ay.typ;bb=$clone(ay,Q).object();az=$parseInt(bb.$capacity)>>0;$s=6;continue;case 4:bf=(ay.ptr).$get();if(aw<0||axbf.length){$panic(new $String("reflect.Value.Slice: string slice index out of bounds"));}bg=GN(new $String($substring(bf,aw,ax)));$s=7;case 7:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=bg;$s=8;case 8:return bh;case 5:$panic(new U.ptr("reflect.Value.Slice",bc));case 6:case 1:if(aw<0||axaz){$panic(new $String("reflect.Value.Slice: slice index out of bounds"));}bi=GK(ba,$subslice(bb,aw,ax),new R(ay.flag).ro());$s=9;case 9:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bj=bi;$s=10;case 10:return bj;}return;}var $f={$blk:Q.ptr.prototype.Slice,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,$s};return $f;};Q.prototype.Slice=function(aw,ax){return this.$val.Slice(aw,ax);};Q.ptr.prototype.Slice3=function(aw,ax,ay){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:az=this;ba=0;bb=$ifaceNil;bc=null;bd=new R(az.flag).kind();be=bd;if(be===(17)){if(((az.flag&256)>>>0)===0){$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));}bf=(az.typ.kindType);ba=((bf.len>>0));bb=GS(bf.elem);bc=new(FR(bb))($clone(az,Q).object());}else if(be===(23)){bb=az.typ;bc=$clone(az,Q).object();ba=$parseInt(bc.$capacity)>>0;}else{$panic(new U.ptr("reflect.Value.Slice3",bd));}if(aw<0||axba){$panic(new $String("reflect.Value.Slice3: slice index out of bounds"));}bg=GK(bb,$subslice(bc,aw,ax,ay),new R(az.flag).ro());$s=1;case 1:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=bg;$s=2;case 2:return bh;}return;}var $f={$blk:Q.ptr.prototype.Slice3,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,$s};return $f;};Q.prototype.Slice3=function(aw,ax,ay){return this.$val.Slice3(aw,ax,ay);};Q.ptr.prototype.Close=function(){var aw;aw=this;new R(aw.flag).mustBe(18);new R(aw.flag).mustBeExported();$close($clone(aw,Q).object());};Q.prototype.Close=function(){return this.$val.Close();};IC=function(aw,ax,ay){var{aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:az=false;ba=false;bb=new KW([new KQ([aw])]);if(ax){bb=$append(bb,new KQ([]));}bc=IB(new JH([bb]));$s=1;case 1:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;if(ax&&(($parseInt(bd[0])>>0)===1)){be=false;bf=false;az=be;ba=bf;$s=-1;return[az,ba];}bg=bd[1];ay.$set(bg[0]);bh=true;bi=!!(bg[1]);az=bh;ba=bi;$s=-1;return[az,ba];}return;}var $f={$blk:IC,$c:true,$r,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,$s};return $f;};ID=function(aw,ax,ay){var{aw,ax,ay,az,ba,bb,$s,$r,$c}=$restore(this,{aw,ax,ay});$s=$s||0;s:while(true){switch($s){case 0:az=new KW([new KQ([aw,ax.$get()])]);if(ay){az=$append(az,new KQ([]));}ba=IB(new JH([az]));$s=1;case 1:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba;if(ay&&(($parseInt(bb[0])>>0)===1)){$s=-1;return false;}$s=-1;return true;}return;}var $f={$blk:ID,$c:true,$r,aw,ax,ay,az,ba,bb,$s};return $f;};IH=function(){var aw,ax,ay,az,ba;aw=G.Caller(3);ax=aw[0];ay=G.FuncForPC(ax);if(ay===JN.nil){return"unknown method";}az=ay.Name();ba=az.length-1>>0;while(true){if(!(ba>0)){break;}if(az.charCodeAt(ba)===46){break;}ba=ba-(1)>>0;}if(ba<0){return az;}return"Value"+$substring(az,ba);};II=function(aw){var aw;return true;};Q.methods=[{prop:"pointer",name:"pointer",pkg:"reflect",typ:$funcType([],[$UnsafePointer],false)},{prop:"Addr",name:"Addr",pkg:"",typ:$funcType([],[Q],false)},{prop:"Bool",name:"Bool",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Bytes",name:"Bytes",pkg:"",typ:$funcType([],[JY],false)},{prop:"runes",name:"runes",pkg:"reflect",typ:$funcType([],[JZ],false)},{prop:"CanAddr",name:"CanAddr",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"CanSet",name:"CanSet",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Call",name:"Call",pkg:"",typ:$funcType([JO],[JO],false)},{prop:"CallSlice",name:"CallSlice",pkg:"",typ:$funcType([JO],[JO],false)},{prop:"CanComplex",name:"CanComplex",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Complex",name:"Complex",pkg:"",typ:$funcType([],[$Complex128],false)},{prop:"FieldByIndex",name:"FieldByIndex",pkg:"",typ:$funcType([JL],[Q],false)},{prop:"FieldByIndexErr",name:"FieldByIndexErr",pkg:"",typ:$funcType([JL],[Q,$error],false)},{prop:"FieldByName",name:"FieldByName",pkg:"",typ:$funcType([$String],[Q],false)},{prop:"FieldByNameFunc",name:"FieldByNameFunc",pkg:"",typ:$funcType([LD],[Q],false)},{prop:"CanFloat",name:"CanFloat",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Float",name:"Float",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"CanInt",name:"CanInt",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Int",name:"Int",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"CanInterface",name:"CanInterface",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Interface",name:"Interface",pkg:"",typ:$funcType([],[$emptyInterface],false)},{prop:"IsValid",name:"IsValid",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsZero",name:"IsZero",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[CL],false)},{prop:"MapIndex",name:"MapIndex",pkg:"",typ:$funcType([Q],[Q],false)},{prop:"MapKeys",name:"MapKeys",pkg:"",typ:$funcType([],[JO],false)},{prop:"SetIterKey",name:"SetIterKey",pkg:"",typ:$funcType([LE],[],false)},{prop:"SetIterValue",name:"SetIterValue",pkg:"",typ:$funcType([LE],[],false)},{prop:"MapRange",name:"MapRange",pkg:"",typ:$funcType([],[LE],false)},{prop:"Method",name:"Method",pkg:"",typ:$funcType([$Int],[Q],false)},{prop:"NumMethod",name:"NumMethod",pkg:"",typ:$funcType([],[$Int],false)},{prop:"MethodByName",name:"MethodByName",pkg:"",typ:$funcType([$String],[Q],false)},{prop:"NumField",name:"NumField",pkg:"",typ:$funcType([],[$Int],false)},{prop:"OverflowComplex",name:"OverflowComplex",pkg:"",typ:$funcType([$Complex128],[$Bool],false)},{prop:"OverflowFloat",name:"OverflowFloat",pkg:"",typ:$funcType([$Float64],[$Bool],false)},{prop:"OverflowInt",name:"OverflowInt",pkg:"",typ:$funcType([$Int64],[$Bool],false)},{prop:"OverflowUint",name:"OverflowUint",pkg:"",typ:$funcType([$Uint64],[$Bool],false)},{prop:"Recv",name:"Recv",pkg:"",typ:$funcType([],[Q,$Bool],false)},{prop:"recv",name:"recv",pkg:"reflect",typ:$funcType([$Bool],[Q,$Bool],false)},{prop:"Send",name:"Send",pkg:"",typ:$funcType([Q],[],false)},{prop:"send",name:"send",pkg:"reflect",typ:$funcType([Q,$Bool],[$Bool],false)},{prop:"SetBool",name:"SetBool",pkg:"",typ:$funcType([$Bool],[],false)},{prop:"setRunes",name:"setRunes",pkg:"reflect",typ:$funcType([JZ],[],false)},{prop:"SetComplex",name:"SetComplex",pkg:"",typ:$funcType([$Complex128],[],false)},{prop:"SetFloat",name:"SetFloat",pkg:"",typ:$funcType([$Float64],[],false)},{prop:"SetInt",name:"SetInt",pkg:"",typ:$funcType([$Int64],[],false)},{prop:"SetMapIndex",name:"SetMapIndex",pkg:"",typ:$funcType([Q,Q],[],false)},{prop:"SetUint",name:"SetUint",pkg:"",typ:$funcType([$Uint64],[],false)},{prop:"SetPointer",name:"SetPointer",pkg:"",typ:$funcType([$UnsafePointer],[],false)},{prop:"SetString",name:"SetString",pkg:"",typ:$funcType([$String],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"TryRecv",name:"TryRecv",pkg:"",typ:$funcType([],[Q,$Bool],false)},{prop:"TrySend",name:"TrySend",pkg:"",typ:$funcType([Q],[$Bool],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[CK],false)},{prop:"CanUint",name:"CanUint",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Uint",name:"Uint",pkg:"",typ:$funcType([],[$Uint64],false)},{prop:"UnsafeAddr",name:"UnsafeAddr",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"UnsafePointer",name:"UnsafePointer",pkg:"",typ:$funcType([],[$UnsafePointer],false)},{prop:"Convert",name:"Convert",pkg:"",typ:$funcType([CK],[Q],false)},{prop:"CanConvert",name:"CanConvert",pkg:"",typ:$funcType([CK],[$Bool],false)},{prop:"object",name:"object",pkg:"reflect",typ:$funcType([],[JI],false)},{prop:"assignTo",name:"assignTo",pkg:"reflect",typ:$funcType([$String,JE,$UnsafePointer],[Q],false)},{prop:"call",name:"call",pkg:"reflect",typ:$funcType([$String,JO],[JO],false)},{prop:"Cap",name:"Cap",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[Q],false)},{prop:"Field",name:"Field",pkg:"",typ:$funcType([$Int],[Q],false)},{prop:"Index",name:"Index",pkg:"",typ:$funcType([$Int],[Q],false)},{prop:"InterfaceData",name:"InterfaceData",pkg:"",typ:$funcType([],[LF],false)},{prop:"IsNil",name:"IsNil",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Pointer",name:"Pointer",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([Q],[],false)},{prop:"SetBytes",name:"SetBytes",pkg:"",typ:$funcType([JY],[],false)},{prop:"SetCap",name:"SetCap",pkg:"",typ:$funcType([$Int],[],false)},{prop:"SetLen",name:"SetLen",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Slice",name:"Slice",pkg:"",typ:$funcType([$Int,$Int],[Q],false)},{prop:"Slice3",name:"Slice3",pkg:"",typ:$funcType([$Int,$Int,$Int],[Q],false)},{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[],false)}];R.methods=[{prop:"kind",name:"kind",pkg:"reflect",typ:$funcType([],[CL],false)},{prop:"ro",name:"ro",pkg:"reflect",typ:$funcType([],[R],false)},{prop:"mustBe",name:"mustBe",pkg:"reflect",typ:$funcType([CL],[],false)},{prop:"mustBeExported",name:"mustBeExported",pkg:"reflect",typ:$funcType([],[],false)},{prop:"mustBeExportedSlow",name:"mustBeExportedSlow",pkg:"reflect",typ:$funcType([],[],false)},{prop:"mustBeAssignable",name:"mustBeAssignable",pkg:"reflect",typ:$funcType([],[],false)},{prop:"mustBeAssignableSlow",name:"mustBeAssignableSlow",pkg:"reflect",typ:$funcType([],[],false)}];LG.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];LE.methods=[{prop:"Key",name:"Key",pkg:"",typ:$funcType([],[Q],false)},{prop:"Value",name:"Value",pkg:"",typ:$funcType([],[Q],false)},{prop:"Next",name:"Next",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([Q],[],false)}];CL.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];JE.methods=[{prop:"textOff",name:"textOff",pkg:"reflect",typ:$funcType([DK],[$UnsafePointer],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"Bits",name:"Bits",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Align",name:"Align",pkg:"",typ:$funcType([],[$Int],false)},{prop:"FieldAlign",name:"FieldAlign",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[CL],false)},{prop:"common",name:"common",pkg:"reflect",typ:$funcType([],[JE],false)},{prop:"exportedMethods",name:"exportedMethods",pkg:"reflect",typ:$funcType([],[KB],false)},{prop:"NumMethod",name:"NumMethod",pkg:"",typ:$funcType([],[$Int],false)},{prop:"MethodByName",name:"MethodByName",pkg:"",typ:$funcType([$String],[DA,$Bool],false)},{prop:"PkgPath",name:"PkgPath",pkg:"",typ:$funcType([],[$String],false)},{prop:"hasName",name:"hasName",pkg:"reflect",typ:$funcType([],[$Bool],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"ChanDir",name:"ChanDir",pkg:"",typ:$funcType([],[CP],false)},{prop:"IsVariadic",name:"IsVariadic",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[CK],false)},{prop:"Field",name:"Field",pkg:"",typ:$funcType([$Int],[DM],false)},{prop:"FieldByIndex",name:"FieldByIndex",pkg:"",typ:$funcType([JL],[DM],false)},{prop:"FieldByName",name:"FieldByName",pkg:"",typ:$funcType([$String],[DM,$Bool],false)},{prop:"FieldByNameFunc",name:"FieldByNameFunc",pkg:"",typ:$funcType([LD],[DM,$Bool],false)},{prop:"In",name:"In",pkg:"",typ:$funcType([$Int],[CK],false)},{prop:"Key",name:"Key",pkg:"",typ:$funcType([],[CK],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumField",name:"NumField",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumIn",name:"NumIn",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumOut",name:"NumOut",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Out",name:"Out",pkg:"",typ:$funcType([$Int],[CK],false)},{prop:"Implements",name:"Implements",pkg:"",typ:$funcType([CK],[$Bool],false)},{prop:"AssignableTo",name:"AssignableTo",pkg:"",typ:$funcType([CK],[$Bool],false)},{prop:"ConvertibleTo",name:"ConvertibleTo",pkg:"",typ:$funcType([CK],[$Bool],false)},{prop:"gcSlice",name:"gcSlice",pkg:"reflect",typ:$funcType([$Uintptr,$Uintptr],[JY],false)},{prop:"uncommon",name:"uncommon",pkg:"reflect",typ:$funcType([],[KA],false)},{prop:"nameOff",name:"nameOff",pkg:"reflect",typ:$funcType([DI],[FX],false)},{prop:"typeOff",name:"typeOff",pkg:"reflect",typ:$funcType([DJ],[JE],false)},{prop:"ptrTo",name:"ptrTo",pkg:"reflect",typ:$funcType([],[JE],false)},{prop:"pointers",name:"pointers",pkg:"reflect",typ:$funcType([],[$Bool],false)},{prop:"Comparable",name:"Comparable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Method",name:"Method",pkg:"",typ:$funcType([$Int],[DA],false)}];CP.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];KC.methods=[{prop:"Method",name:"Method",pkg:"",typ:$funcType([$Int],[DA],false)},{prop:"NumMethod",name:"NumMethod",pkg:"",typ:$funcType([],[$Int],false)},{prop:"MethodByName",name:"MethodByName",pkg:"",typ:$funcType([$String],[DA,$Bool],false)}];LN.methods=[{prop:"offset",name:"offset",pkg:"reflect",typ:$funcType([],[$Uintptr],false)},{prop:"embedded",name:"embedded",pkg:"reflect",typ:$funcType([],[$Bool],false)}];KF.methods=[{prop:"Field",name:"Field",pkg:"",typ:$funcType([$Int],[DM],false)},{prop:"FieldByIndex",name:"FieldByIndex",pkg:"",typ:$funcType([JL],[DM],false)},{prop:"FieldByNameFunc",name:"FieldByNameFunc",pkg:"",typ:$funcType([LD],[DM,$Bool],false)},{prop:"FieldByName",name:"FieldByName",pkg:"",typ:$funcType([$String],[DM,$Bool],false)}];DA.methods=[{prop:"IsExported",name:"IsExported",pkg:"",typ:$funcType([],[$Bool],false)}];DM.methods=[{prop:"IsExported",name:"IsExported",pkg:"",typ:$funcType([],[$Bool],false)}];DN.methods=[{prop:"Get",name:"Get",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"Lookup",name:"Lookup",pkg:"",typ:$funcType([$String],[$String,$Bool],false)}];KA.methods=[{prop:"methods",name:"methods",pkg:"reflect",typ:$funcType([],[KB],false)},{prop:"exportedMethods",name:"exportedMethods",pkg:"reflect",typ:$funcType([],[KB],false)}];KU.methods=[{prop:"in$",name:"in",pkg:"reflect",typ:$funcType([],[JF],false)},{prop:"out",name:"out",pkg:"reflect",typ:$funcType([],[JF],false)}];FX.methods=[{prop:"data",name:"data",pkg:"reflect",typ:$funcType([$Int,$String],[KG],false)},{prop:"hasTag",name:"hasTag",pkg:"reflect",typ:$funcType([],[$Bool],false)},{prop:"readVarint",name:"readVarint",pkg:"reflect",typ:$funcType([$Int],[$Int,$Int],false)},{prop:"name",name:"name",pkg:"reflect",typ:$funcType([],[$String],false)},{prop:"tag",name:"tag",pkg:"reflect",typ:$funcType([],[$String],false)},{prop:"pkgPath",name:"pkgPath",pkg:"reflect",typ:$funcType([],[$String],false)},{prop:"isExported",name:"isExported",pkg:"reflect",typ:$funcType([],[$Bool],false)}];LV.methods=[{prop:"initialized",name:"initialized",pkg:"reflect",typ:$funcType([],[$Bool],false)},{prop:"skipUntilValidKey",name:"skipUntilValidKey",pkg:"reflect",typ:$funcType([],[],false)}];Q.init("reflect",[{prop:"typ",name:"typ",embedded:false,exported:false,typ:JE,tag:""},{prop:"ptr",name:"ptr",embedded:false,exported:false,typ:$UnsafePointer,tag:""},{prop:"flag",name:"flag",embedded:true,exported:false,typ:R,tag:""}]);U.init("",[{prop:"Method",name:"Method",embedded:false,exported:true,typ:$String,tag:""},{prop:"Kind",name:"Kind",embedded:false,exported:true,typ:CL,tag:""}]);AG.init("reflect",[{prop:"m",name:"m",embedded:false,exported:false,typ:Q,tag:""},{prop:"hiter",name:"hiter",embedded:false,exported:false,typ:HJ,tag:""}]);CK.init([{prop:"Align",name:"Align",pkg:"",typ:$funcType([],[$Int],false)},{prop:"AssignableTo",name:"AssignableTo",pkg:"",typ:$funcType([CK],[$Bool],false)},{prop:"Bits",name:"Bits",pkg:"",typ:$funcType([],[$Int],false)},{prop:"ChanDir",name:"ChanDir",pkg:"",typ:$funcType([],[CP],false)},{prop:"Comparable",name:"Comparable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"ConvertibleTo",name:"ConvertibleTo",pkg:"",typ:$funcType([CK],[$Bool],false)},{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[CK],false)},{prop:"Field",name:"Field",pkg:"",typ:$funcType([$Int],[DM],false)},{prop:"FieldAlign",name:"FieldAlign",pkg:"",typ:$funcType([],[$Int],false)},{prop:"FieldByIndex",name:"FieldByIndex",pkg:"",typ:$funcType([JL],[DM],false)},{prop:"FieldByName",name:"FieldByName",pkg:"",typ:$funcType([$String],[DM,$Bool],false)},{prop:"FieldByNameFunc",name:"FieldByNameFunc",pkg:"",typ:$funcType([LD],[DM,$Bool],false)},{prop:"Implements",name:"Implements",pkg:"",typ:$funcType([CK],[$Bool],false)},{prop:"In",name:"In",pkg:"",typ:$funcType([$Int],[CK],false)},{prop:"IsVariadic",name:"IsVariadic",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Key",name:"Key",pkg:"",typ:$funcType([],[CK],false)},{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[CL],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Method",name:"Method",pkg:"",typ:$funcType([$Int],[DA],false)},{prop:"MethodByName",name:"MethodByName",pkg:"",typ:$funcType([$String],[DA,$Bool],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"NumField",name:"NumField",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumIn",name:"NumIn",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumMethod",name:"NumMethod",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumOut",name:"NumOut",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Out",name:"Out",pkg:"",typ:$funcType([$Int],[CK],false)},{prop:"PkgPath",name:"PkgPath",pkg:"",typ:$funcType([],[$String],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"common",name:"common",pkg:"reflect",typ:$funcType([],[JE],false)},{prop:"uncommon",name:"uncommon",pkg:"reflect",typ:$funcType([],[KA],false)}]);CN.init("reflect",[{prop:"size",name:"size",embedded:false,exported:false,typ:$Uintptr,tag:""},{prop:"ptrdata",name:"ptrdata",embedded:false,exported:false,typ:$Uintptr,tag:""},{prop:"hash",name:"hash",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"tflag",name:"tflag",embedded:false,exported:false,typ:CM,tag:""},{prop:"align",name:"align",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"fieldAlign",name:"fieldAlign",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"kind",name:"kind",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"equal",name:"equal",embedded:false,exported:false,typ:LL,tag:""},{prop:"gcdata",name:"gcdata",embedded:false,exported:false,typ:KG,tag:""},{prop:"str",name:"str",embedded:false,exported:false,typ:DI,tag:""},{prop:"ptrToThis",name:"ptrToThis",embedded:false,exported:false,typ:DJ,tag:""}]);CO.init("reflect",[{prop:"name",name:"name",embedded:false,exported:false,typ:DI,tag:""},{prop:"mtyp",name:"mtyp",embedded:false,exported:false,typ:DJ,tag:""},{prop:"ifn",name:"ifn",embedded:false,exported:false,typ:DK,tag:""},{prop:"tfn",name:"tfn",embedded:false,exported:false,typ:DK,tag:""}]);CQ.init("reflect",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:CN,tag:""},{prop:"elem",name:"elem",embedded:false,exported:false,typ:JE,tag:""},{prop:"slice",name:"slice",embedded:false,exported:false,typ:JE,tag:""},{prop:"len",name:"len",embedded:false,exported:false,typ:$Uintptr,tag:""}]);CR.init("reflect",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:CN,tag:""},{prop:"elem",name:"elem",embedded:false,exported:false,typ:JE,tag:""},{prop:"dir",name:"dir",embedded:false,exported:false,typ:$Uintptr,tag:""}]);CS.init("reflect",[{prop:"name",name:"name",embedded:false,exported:false,typ:DI,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:DJ,tag:""}]);CT.init("reflect",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:CN,tag:""},{prop:"pkgPath",name:"pkgPath",embedded:false,exported:false,typ:FX,tag:""},{prop:"methods",name:"methods",embedded:false,exported:false,typ:KM,tag:""}]);CU.init("reflect",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:CN,tag:""},{prop:"key",name:"key",embedded:false,exported:false,typ:JE,tag:""},{prop:"elem",name:"elem",embedded:false,exported:false,typ:JE,tag:""},{prop:"bucket",name:"bucket",embedded:false,exported:false,typ:JE,tag:""},{prop:"hasher",name:"hasher",embedded:false,exported:false,typ:LM,tag:""},{prop:"keysize",name:"keysize",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"valuesize",name:"valuesize",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"bucketsize",name:"bucketsize",embedded:false,exported:false,typ:$Uint16,tag:""},{prop:"flags",name:"flags",embedded:false,exported:false,typ:$Uint32,tag:""}]);CV.init("reflect",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:CN,tag:""},{prop:"elem",name:"elem",embedded:false,exported:false,typ:JE,tag:""}]);CW.init("reflect",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:CN,tag:""},{prop:"elem",name:"elem",embedded:false,exported:false,typ:JE,tag:""}]);CX.init("reflect",[{prop:"name",name:"name",embedded:false,exported:false,typ:FX,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:JE,tag:""},{prop:"offsetEmbed",name:"offsetEmbed",embedded:false,exported:false,typ:$Uintptr,tag:""}]);CY.init("reflect",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:CN,tag:""},{prop:"pkgPath",name:"pkgPath",embedded:false,exported:false,typ:FX,tag:""},{prop:"fields",name:"fields",embedded:false,exported:false,typ:KN,tag:""}]);DA.init("",[{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""},{prop:"PkgPath",name:"PkgPath",embedded:false,exported:true,typ:$String,tag:""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:CK,tag:""},{prop:"Func",name:"Func",embedded:false,exported:true,typ:Q,tag:""},{prop:"Index",name:"Index",embedded:false,exported:true,typ:$Int,tag:""}]);DM.init("",[{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""},{prop:"PkgPath",name:"PkgPath",embedded:false,exported:true,typ:$String,tag:""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:CK,tag:""},{prop:"Tag",name:"Tag",embedded:false,exported:true,typ:DN,tag:""},{prop:"Offset",name:"Offset",embedded:false,exported:true,typ:$Uintptr,tag:""},{prop:"Index",name:"Index",embedded:false,exported:true,typ:JL,tag:""},{prop:"Anonymous",name:"Anonymous",embedded:false,exported:true,typ:$Bool,tag:""}]);DO.init("reflect",[{prop:"typ",name:"typ",embedded:false,exported:false,typ:KF,tag:""},{prop:"index",name:"index",embedded:false,exported:false,typ:JL,tag:""}]);FU.init("reflect",[{prop:"pkgPath",name:"pkgPath",embedded:false,exported:false,typ:DI,tag:""},{prop:"mcount",name:"mcount",embedded:false,exported:false,typ:$Uint16,tag:""},{prop:"xcount",name:"xcount",embedded:false,exported:false,typ:$Uint16,tag:""},{prop:"moff",name:"moff",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"_methods",name:"_methods",embedded:false,exported:false,typ:KB,tag:""}]);FW.init("reflect",[{prop:"rtype",name:"rtype",embedded:true,exported:false,typ:CN,tag:"reflect:\"func\""},{prop:"inCount",name:"inCount",embedded:false,exported:false,typ:$Uint16,tag:""},{prop:"outCount",name:"outCount",embedded:false,exported:false,typ:$Uint16,tag:""},{prop:"_in",name:"_in",embedded:false,exported:false,typ:JF,tag:""},{prop:"_out",name:"_out",embedded:false,exported:false,typ:JF,tag:""}]);FX.init("reflect",[{prop:"bytes",name:"bytes",embedded:false,exported:false,typ:KG,tag:""}]);FY.init("reflect",[{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"tag",name:"tag",embedded:false,exported:false,typ:$String,tag:""},{prop:"exported",name:"exported",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"pkgPath",name:"pkgPath",embedded:false,exported:false,typ:$String,tag:""}]);HJ.init("reflect",[{prop:"t",name:"t",embedded:false,exported:false,typ:CK,tag:""},{prop:"m",name:"m",embedded:false,exported:false,typ:JI,tag:""},{prop:"keys",name:"keys",embedded:false,exported:false,typ:JI,tag:""},{prop:"i",name:"i",embedded:false,exported:false,typ:$Int,tag:""},{prop:"last",name:"last",embedded:false,exported:false,typ:JI,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}GC=JD.nil;GE=JF.nil;DB=new JG(["invalid","bool","int","int8","int16","int32","int64","uint","uint8","uint16","uint32","uint64","uintptr","float32","float64","complex64","complex128","array","chan","func","interface","map","ptr","slice","string","struct","unsafe.Pointer"]);FO=false;FV=new $global.Map();FZ=new $global.Map();AE=$assertType(GM(new $Uint8(0)),JE);AF=$assertType(GM(new $String("")),JE);HW=$assertType($internalize($call,$emptyInterface),JJ);HX=FS($jsObjectPtr);IB=$assertType($internalize($select,$emptyInterface),JJ);$r=FP();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["sort"]=(function(){var $pkg={},$init,A,V,Z,AC,AW,AY,AZ,BA,AN,AO,B,C,D,E,G,H,M,N,O,P,Q,R,S,T,U,Y,AD,AF,AJ,AK,AL,AM,AP,AS,AT,AV;A=$packages["internal/reflectlite"];V=$pkg.lessSwap=$newType(0,$kindStruct,"sort.lessSwap",true,"sort",false,function(Less_,Swap_){this.$val=this;if(arguments.length===0){this.Less=$throwNilPointerError;this.Swap=$throwNilPointerError;return;}this.Less=Less_;this.Swap=Swap_;});Z=$pkg.IntSlice=$newType(12,$kindSlice,"sort.IntSlice",true,"sort",true,null);AC=$pkg.StringSlice=$newType(12,$kindSlice,"sort.StringSlice",true,"sort",true,null);AW=$sliceType($Int);AY=$sliceType($String);AZ=$funcType([$Int,$Int],[$Bool],false);BA=$funcType([$Int,$Int],[],false);B=function(a,b,c){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=b+1>>0;case 1:if(!(db)){f=false;$s=5;continue s;}g=a.Less(e,e-1>>0);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;case 5:if(!(f)){$s=4;continue;}$r=a.Swap(e,e-1>>0);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=e-(1)>>0;$s=3;continue;case 4:d=d+(1)>>0;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:B,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};C=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=b;case 1:f=($imul(2,e))+1>>0;if(f>=c){$s=2;continue;}if(!((f+1>>0)>0,(d+f>>0)+1>>0);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;case 5:if(g){$s=3;continue;}$s=4;continue;case 3:f=f+(1)>>0;case 4:i=a.Less(d+e>>0,d+f>>0);$s=9;case 9:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(!i){$s=7;continue;}$s=8;continue;case 7:$s=-1;return;case 8:$r=a.Swap(d+e>>0,d+f>>0);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=f;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:C,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};D=function(a,b,c){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=b;e=0;f=c-b>>0;h=(g=((f-1>>0))/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"));case 1:if(!(h>=0)){$s=2;continue;}$r=C($clone(a,V),h,f,d);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=h-(1)>>0;$s=1;continue;case 2:i=f-1>>0;case 4:if(!(i>=0)){$s=5;continue;}$r=a.Swap(d,d+i>>0);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C($clone(a,V),e,i,d);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=i-(1)>>0;$s=4;continue;case 5:$s=-1;return;}return;}var $f={$blk:D,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};E=function(a,b,c,d){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=a.Less(b,c);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}if(e){$s=1;continue;}$s=2;continue;case 1:$r=a.Swap(b,c);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:f=a.Less(d,b);$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f){$s=5;continue;}$s=6;continue;case 5:$r=a.Swap(d,b);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=a.Less(b,c);$s=11;case 11:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(g){$s=9;continue;}$s=10;continue;case 9:$r=a.Swap(b,c);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:case 6:$s=-1;return;}return;}var $f={$blk:E,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};G=function(a,b,c){var{a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=0;e=0;f=((((((b+c>>0)>>>0))>>>1>>>0)>>0));if((c-b>>0)>40){$s=1;continue;}$s=2;continue;case 1:h=(g=((c-b>>0))/8,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"));$r=E($clone(a,V),b,b+h>>0,b+($imul(2,h))>>0);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E($clone(a,V),f,f-h>>0,f+h>>0);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E($clone(a,V),c-1>>0,(c-1>>0)-h>>0,(c-1>>0)-($imul(2,h))>>0);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$r=E($clone(a,V),b,f,c-1>>0);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=b;j=b+1>>0;k=c-1>>0;l=j;m=k;case 7:if(!(l>0;$s=7;continue;case 8:p=l;case 11:case 13:if(!(p>0;$s=13;continue;case 14:case 17:if(!(p>0);$s=20;case 20:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;case 19:if(!(s)){$s=18;continue;}m=m-(1)>>0;$s=17;continue;case 18:if(p>=m){$s=12;continue;}$r=a.Swap(p,m-1>>0);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=p+(1)>>0;m=m-(1)>>0;$s=11;continue;case 12:u=(c-m>>0)<5;if(!u&&(c-m>>0)<(v=((c-b>>0))/4,(v===v&&v!==1/0&&v!==-1/0)?v>>0:$throwRuntimeError("integer divide by zero"))){$s=22;continue;}$s=23;continue;case 22:w=0;x=a.Less(i,c-1>>0);$s=26;case 26:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}if(!x){$s=24;continue;}$s=25;continue;case 24:$r=a.Swap(m,c-1>>0);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=m+(1)>>0;w=w+(1)>>0;case 25:y=a.Less(p-1>>0,i);$s=30;case 30:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}if(!y){$s=28;continue;}$s=29;continue;case 28:p=p-(1)>>0;w=w+(1)>>0;case 29:z=a.Less(f,i);$s=33;case 33:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}if(!z){$s=31;continue;}$s=32;continue;case 31:$r=a.Swap(f,p-1>>0);$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=p-(1)>>0;w=w+(1)>>0;case 32:u=w>1;case 23:if(u){$s=35;continue;}$s=36;continue;case 35:case 37:case 39:if(!(l>0,i);$s=42;case 42:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=!ab;case 41:if(!(aa)){$s=40;continue;}p=p-(1)>>0;$s=39;continue;case 40:case 43:if(!(l>0;$s=43;continue;case 44:if(l>=p){$s=38;continue;}$r=a.Swap(l,p-1>>0);$s=47;case 47:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=l+(1)>>0;p=p-(1)>>0;$s=37;continue;case 38:case 36:$r=a.Swap(i,p-1>>0);$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ae=p-1>>0;af=m;d=ae;e=af;$s=-1;return[d,e];}return;}var $f={$blk:G,$c:true,$r,a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};H=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:case 1:if(!((c-b>>0)>12)){$s=2;continue;}if(d===0){$s=3;continue;}$s=4;continue;case 3:$r=D($clone(a,V),b,c);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 4:d=d-(1)>>0;f=G($clone(a,V),b,c);$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if((g-b>>0)<(c-h>>0)){$s=7;continue;}$s=8;continue;case 7:$r=H($clone(a,V),b,g,d);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=h;$s=9;continue;case 8:$r=H($clone(a,V),h,c,d);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=g;case 9:$s=1;continue;case 2:if((c-b>>0)>1){$s=12;continue;}$s=13;continue;case 12:i=b+6>>0;case 14:if(!(i>0);$s=18;case 18:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=16;continue;}$s=17;continue;case 16:$r=a.Swap(i,i-6>>0);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:i=i+(1)>>0;$s=14;continue;case 15:$r=B($clone(a,V),b,c);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:$s=-1;return;}return;}var $f={$blk:H,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};M=function(a,b,c){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=b+1>>0;case 1:if(!(db)){f=false;$s=5;continue s;}g=a.Less(e,e-1>>0);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;case 5:if(!(f)){$s=4;continue;}$r=a.Swap(e,e-1>>0);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=e-(1)>>0;$s=3;continue;case 4:d=d+(1)>>0;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:M,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};N=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=b;case 1:f=($imul(2,e))+1>>0;if(f>=c){$s=2;continue;}if(!((f+1>>0)>0,(d+f>>0)+1>>0);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;case 5:if(g){$s=3;continue;}$s=4;continue;case 3:f=f+(1)>>0;case 4:i=a.Less(d+e>>0,d+f>>0);$s=9;case 9:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(!i){$s=7;continue;}$s=8;continue;case 7:$s=-1;return;case 8:$r=a.Swap(d+e>>0,d+f>>0);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=f;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:N,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};O=function(a,b,c){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=b;e=0;f=c-b>>0;h=(g=((f-1>>0))/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"));case 1:if(!(h>=0)){$s=2;continue;}$r=N(a,h,f,d);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=h-(1)>>0;$s=1;continue;case 2:i=f-1>>0;case 4:if(!(i>=0)){$s=5;continue;}$r=a.Swap(d,d+i>>0);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N(a,e,i,d);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=i-(1)>>0;$s=4;continue;case 5:$s=-1;return;}return;}var $f={$blk:O,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};P=function(a,b,c,d){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=a.Less(b,c);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}if(e){$s=1;continue;}$s=2;continue;case 1:$r=a.Swap(b,c);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:f=a.Less(d,b);$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f){$s=5;continue;}$s=6;continue;case 5:$r=a.Swap(d,b);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=a.Less(b,c);$s=11;case 11:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(g){$s=9;continue;}$s=10;continue;case 9:$r=a.Swap(b,c);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:case 6:$s=-1;return;}return;}var $f={$blk:P,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};Q=function(a,b,c,d){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=0;case 1:if(!(e>0,c+e>>0);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=e+(1)>>0;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:Q,$c:true,$r,a,b,c,d,e,$s};return $f;};R=function(a,b,c){var{a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=0;e=0;f=((((((b+c>>0)>>>0))>>>1>>>0)>>0));if((c-b>>0)>40){$s=1;continue;}$s=2;continue;case 1:h=(g=((c-b>>0))/8,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"));$r=P(a,b,b+h>>0,b+($imul(2,h))>>0);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,f,f-h>>0,f+h>>0);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,c-1>>0,(c-1>>0)-h>>0,(c-1>>0)-($imul(2,h))>>0);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$r=P(a,b,f,c-1>>0);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=b;j=b+1>>0;k=c-1>>0;l=j;m=k;case 7:if(!(l>0;$s=7;continue;case 8:p=l;case 11:case 13:if(!(p>0;$s=13;continue;case 14:case 17:if(!(p>0);$s=20;case 20:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;case 19:if(!(s)){$s=18;continue;}m=m-(1)>>0;$s=17;continue;case 18:if(p>=m){$s=12;continue;}$r=a.Swap(p,m-1>>0);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=p+(1)>>0;m=m-(1)>>0;$s=11;continue;case 12:u=(c-m>>0)<5;if(!u&&(c-m>>0)<(v=((c-b>>0))/4,(v===v&&v!==1/0&&v!==-1/0)?v>>0:$throwRuntimeError("integer divide by zero"))){$s=22;continue;}$s=23;continue;case 22:w=0;x=a.Less(i,c-1>>0);$s=26;case 26:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}if(!x){$s=24;continue;}$s=25;continue;case 24:$r=a.Swap(m,c-1>>0);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=m+(1)>>0;w=w+(1)>>0;case 25:y=a.Less(p-1>>0,i);$s=30;case 30:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}if(!y){$s=28;continue;}$s=29;continue;case 28:p=p-(1)>>0;w=w+(1)>>0;case 29:z=a.Less(f,i);$s=33;case 33:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}if(!z){$s=31;continue;}$s=32;continue;case 31:$r=a.Swap(f,p-1>>0);$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=p-(1)>>0;w=w+(1)>>0;case 32:u=w>1;case 23:if(u){$s=35;continue;}$s=36;continue;case 35:case 37:case 39:if(!(l>0,i);$s=42;case 42:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=!ab;case 41:if(!(aa)){$s=40;continue;}p=p-(1)>>0;$s=39;continue;case 40:case 43:if(!(l>0;$s=43;continue;case 44:if(l>=p){$s=38;continue;}$r=a.Swap(l,p-1>>0);$s=47;case 47:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=l+(1)>>0;p=p-(1)>>0;$s=37;continue;case 38:case 36:$r=a.Swap(i,p-1>>0);$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ae=p-1>>0;af=m;d=ae;e=af;$s=-1;return[d,e];}return;}var $f={$blk:R,$c:true,$r,a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};S=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:case 1:if(!((c-b>>0)>12)){$s=2;continue;}if(d===0){$s=3;continue;}$s=4;continue;case 3:$r=O(a,b,c);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 4:d=d-(1)>>0;f=R(a,b,c);$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if((g-b>>0)<(c-h>>0)){$s=7;continue;}$s=8;continue;case 7:$r=S(a,b,g,d);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=h;$s=9;continue;case 8:$r=S(a,h,c,d);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=g;case 9:$s=1;continue;case 2:if((c-b>>0)>1){$s=12;continue;}$s=13;continue;case 12:i=b+6>>0;case 14:if(!(i>0);$s=18;case 18:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=16;continue;}$s=17;continue;case 16:$r=a.Swap(i,i-6>>0);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:i=i+(1)>>0;$s=14;continue;case 15:$r=M(a,b,c);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:$s=-1;return;}return;}var $f={$blk:S,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};T=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a.Len();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$r=S(a,0,c,U(c));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:T,$c:true,$r,a,b,c,$s};return $f;};$pkg.Sort=T;U=function(a){var a,b,c;b=0;c=a;while(true){if(!(c>0)){break;}b=b+(1)>>0;c=(c>>$min((1),31))>>0;}return $imul(b,2);};Y=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a.Len();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=c-1>>0;case 2:if(!(d>0)){$s=3;continue;}e=a.Less(d,d-1>>0);$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}if(e){$s=4;continue;}$s=5;continue;case 4:$s=-1;return false;case 5:d=d-(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:Y,$c:true,$r,a,b,c,d,e,$s};return $f;};$pkg.IsSorted=Y;Z.prototype.Len=function(){var a;a=this;return a.$length;};$ptrType(Z).prototype.Len=function(){return this.$get().Len();};Z.prototype.Less=function(a,b){var a,b,c;c=this;return((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a])<((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]);};$ptrType(Z).prototype.Less=function(a,b){return this.$get().Less(a,b);};Z.prototype.Swap=function(a,b){var a,b,c,d,e;c=this;d=((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]);e=((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]);((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]=d);((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]=e);};$ptrType(Z).prototype.Swap=function(a,b){return this.$get().Swap(a,b);};Z.prototype.Sort=function(){var{a,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=T(a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:Z.prototype.Sort,$c:true,$r,a,$s};return $f;};$ptrType(Z).prototype.Sort=function(){return this.$get().Sort();};AC.prototype.Len=function(){var a;a=this;return a.$length;};$ptrType(AC).prototype.Len=function(){return this.$get().Len();};AC.prototype.Less=function(a,b){var a,b,c;c=this;return((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a])<((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]);};$ptrType(AC).prototype.Less=function(a,b){return this.$get().Less(a,b);};AC.prototype.Swap=function(a,b){var a,b,c,d,e;c=this;d=((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]);e=((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]);((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]=d);((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]=e);};$ptrType(AC).prototype.Swap=function(a,b){return this.$get().Swap(a,b);};AC.prototype.Sort=function(){var{a,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=T(a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AC.prototype.Sort,$c:true,$r,a,$s};return $f;};$ptrType(AC).prototype.Sort=function(){return this.$get().Sort();};AD=function(a){var{a,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:$r=T(($convertSliceType(a,Z)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AD,$c:true,$r,a,$s};return $f;};$pkg.Ints=AD;AF=function(a){var{a,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:$r=T(($convertSliceType(a,AC)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AF,$c:true,$r,a,$s};return $f;};$pkg.Strings=AF;AJ=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a;c=a.Len();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$r=AK(b,d);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AJ,$c:true,$r,a,b,c,d,$s};return $f;};$pkg.Stable=AJ;AK=function(a,b){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=20;d=0;e=c;f=d;g=e;case 1:if(!(g<=b)){$s=2;continue;}$r=M(a,f,g);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=g;g=g+(c)>>0;$s=1;continue;case 2:$r=M(a,f,b);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:if(!(c>0,g);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=g;g=g+(($imul(2,c)))>>0;$s=7;continue;case 8:j=f+c>>0;if(j>0)===1){$s=1;continue;}$s=2;continue;case 1:e=c;f=d;case 3:if(!(e>0)>>>0))>>>1>>>0)>>0));h=a.Less(g,b);$s=8;case 8:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(h){$s=5;continue;}$s=6;continue;case 5:e=g+1>>0;$s=7;continue;case 6:f=g;case 7:$s=3;continue;case 4:i=b;case 9:if(!(i<(e-1>>0))){$s=10;continue;}$r=a.Swap(i,i+1>>0);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=i+(1)>>0;$s=9;continue;case 10:$s=-1;return;case 2:if((d-c>>0)===1){$s=12;continue;}$s=13;continue;case 12:j=b;k=c;case 14:if(!(j>0)>>>0))>>>1>>>0)>>0));m=a.Less(c,l);$s=19;case 19:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if(!m){$s=16;continue;}$s=17;continue;case 16:j=l+1>>0;$s=18;continue;case 17:k=l;case 18:$s=14;continue;case 15:n=c;case 20:if(!(n>j)){$s=21;continue;}$r=a.Swap(n,n-1>>0);$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n=n-(1)>>0;$s=20;continue;case 21:$s=-1;return;case 13:o=((((((b+d>>0)>>>0))>>>1>>>0)>>0));p=o+c>>0;q=0;r=0;s=q;t=r;if(c>o){s=p-d>>0;t=o;}else{s=b;t=c;}u=p-1>>0;case 23:if(!(s>0)>>>0))>>>1>>>0)>>0));w=a.Less(u-v>>0,v);$s=28;case 28:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}if(!w){$s=25;continue;}$s=26;continue;case 25:s=v+1>>0;$s=27;continue;case 26:t=v;case 27:$s=23;continue;case 24:x=p-s>>0;if(s>0;f=d-c>>0;case 1:if(!(!((e===f)))){$s=2;continue;}if(e>f){$s=3;continue;}$s=4;continue;case 3:$r=Q(a,c-e>>0,c,f);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=e-(f)>>0;$s=5;continue;case 4:$r=Q(a,c-e>>0,(c+f>>0)-e>>0,e);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=f-(e)>>0;case 5:$s=1;continue;case 2:$r=Q(a,c-e>>0,c,e);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AM,$c:true,$r,a,b,c,d,e,f,$s};return $f;};AP=function(a,b){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=AN(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=$clone(c,A.Value);e=AO(a);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=$clone(d,A.Value).Len();$r=H(new V.ptr(b,f),0,g,U(g));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AP,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};$pkg.Slice=AP;AS=function(a,b){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=0;d=a;e=c;f=d;case 1:if(!(e>0)>>>0))>>>1>>>0)>>0));h=b(g);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(!h){$s=3;continue;}$s=4;continue;case 3:e=g+1>>0;$s=5;continue;case 4:f=g;case 5:$s=1;continue;case 2:$s=-1;return e;}return;}var $f={$blk:AS,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};$pkg.Search=AS;AT=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=AS(a[0].$length,(function(a,b){return function(c){var c;return((c<0||c>=a[0].$length)?($throwRuntimeError("index out of range"),undefined):a[0].$array[a[0].$offset+c])>=b[0];};})(a,b));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:AT,$c:true,$r,a,b,c,d,$s};return $f;};$pkg.SearchInts=AT;AV=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=AS(a[0].$length,(function(a,b){return function(c){var c;return((c<0||c>=a[0].$length)?($throwRuntimeError("index out of range"),undefined):a[0].$array[a[0].$offset+c])>=b[0];};})(a,b));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:AV,$c:true,$r,a,b,c,d,$s};return $f;};$pkg.SearchStrings=AV;Z.prototype.Search=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=AT($convertSliceType(b,AW),a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:Z.prototype.Search,$c:true,$r,a,b,c,d,$s};return $f;};$ptrType(Z).prototype.Search=function(a){return this.$get().Search(a);};AC.prototype.Search=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=AV($convertSliceType(b,AY),a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:AC.prototype.Search,$c:true,$r,a,b,c,d,$s};return $f;};$ptrType(AC).prototype.Search=function(a){return this.$get().Search(a);};Z.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"Sort",name:"Sort",pkg:"",typ:$funcType([],[],false)},{prop:"Search",name:"Search",pkg:"",typ:$funcType([$Int],[$Int],false)}];AC.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"Sort",name:"Sort",pkg:"",typ:$funcType([],[],false)},{prop:"Search",name:"Search",pkg:"",typ:$funcType([$String],[$Int],false)}];V.init("",[{prop:"Less",name:"Less",embedded:false,exported:true,typ:AZ,tag:""},{prop:"Swap",name:"Swap",embedded:false,exported:true,typ:BA,tag:""}]);Z.init($Int);AC.init($String);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}AN=A.ValueOf;AO=A.Swapper;}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/fmtsort"]=(function(){var $pkg={},$init,A,B,C,I,J,D,E,F,G,H;A=$packages["reflect"];B=$packages["sort"];C=$pkg.SortedMap=$newType(0,$kindStruct,"fmtsort.SortedMap",true,"internal/fmtsort",true,function(Key_,Value_){this.$val=this;if(arguments.length===0){this.Key=J.nil;this.Value=J.nil;return;}this.Key=Key_;this.Value=Value_;});I=$ptrType(C);J=$sliceType(A.Value);C.ptr.prototype.Len=function(){var a;a=this;return a.Key.$length;};C.prototype.Len=function(){return this.$val.Len();};C.ptr.prototype.Less=function(a,b){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;f=E($clone((d=c.Key,((a<0||a>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+a])),A.Value),$clone((e=c.Key,((b<0||b>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+b])),A.Value));$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f<0;$s=2;case 2:return g;}return;}var $f={$blk:C.ptr.prototype.Less,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};C.prototype.Less=function(a,b){return this.$val.Less(a,b);};C.ptr.prototype.Swap=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;c=this;d=(e=c.Key,((b<0||b>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+b]));f=(g=c.Key,((a<0||a>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+a]));(h=c.Key,((a<0||a>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+a]=d));(i=c.Key,((b<0||b>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+b]=f));j=(k=c.Value,((b<0||b>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+b]));l=(m=c.Value,((a<0||a>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+a]));(n=c.Value,((a<0||a>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+a]=j));(o=c.Value,((b<0||b>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+b]=l));};C.prototype.Swap=function(a,b){return this.$val.Swap(a,b);};D=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$clone(a,A.Value).Type().Kind();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}if(!((b===21))){$s=1;continue;}$s=2;continue;case 1:$s=-1;return I.nil;case 2:c=$clone(a,A.Value).Len();d=$makeSlice(J,0,c);e=$makeSlice(J,0,c);f=$clone(a,A.Value).MapRange();case 4:g=f.Next();$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(!(g)){$s=5;continue;}h=f.Key();$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}d=$append(d,h);i=f.Value();$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}e=$append(e,i);$s=4;continue;case 5:j=new C.ptr(d,e);$r=B.Stable(j);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return j;}return;}var $f={$blk:D,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};$pkg.Sort=D;E=function(a,b){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=$clone(a,A.Value).Type();d=$clone(b,A.Value).Type();e=c;f=d;if(!($interfaceIsEqual(e,f))){$s=-1;return-1;}g=$clone(a,A.Value).Kind();if((g===(2))||(g===(3))||(g===(4))||(g===(5))||(g===(6))){$s=2;continue;}if((g===(7))||(g===(8))||(g===(9))||(g===(10))||(g===(11))||(g===(12))){$s=3;continue;}if(g===(24)){$s=4;continue;}if((g===(13))||(g===(14))){$s=5;continue;}if((g===(15))||(g===(16))){$s=6;continue;}if(g===(1)){$s=7;continue;}if((g===(22))||(g===(26))){$s=8;continue;}if(g===(18)){$s=9;continue;}if(g===(25)){$s=10;continue;}if(g===(17)){$s=11;continue;}if(g===(20)){$s=12;continue;}$s=13;continue;case 2:h=$clone(a,A.Value).Int();i=$clone(b,A.Value).Int();j=h;k=i;if((j.$highk.$high||(j.$high===k.$high&&j.$low>k.$low))){$s=-1;return 1;}else{$s=-1;return 0;}$s=14;continue;case 3:l=$clone(a,A.Value).Uint();m=$clone(b,A.Value).Uint();n=l;o=m;if((n.$higho.$high||(n.$high===o.$high&&n.$low>o.$low))){$s=-1;return 1;}else{$s=-1;return 0;}$s=14;continue;case 4:q=$clone(a,A.Value).String();$s=15;case 15:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;s=$clone(b,A.Value).String();$s=16;case 16:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;t=p;u=r;if(tu){$s=-1;return 1;}else{$s=-1;return 0;}$s=14;continue;case 5:$s=-1;return G($clone(a,A.Value).Float(),$clone(b,A.Value).Float());case 6:v=$clone(a,A.Value).Complex();w=$clone(b,A.Value).Complex();x=v;y=w;z=G(x.$real,y.$real);if(!((z===0))){$s=-1;return z;}$s=-1;return G(x.$imag,y.$imag);case 7:aa=$clone(a,A.Value).Bool();ab=$clone(b,A.Value).Bool();ac=aa;ad=ab;if(ac===ad){$s=-1;return 0;}else if(ac){$s=-1;return 1;}else{$s=-1;return-1;}$s=14;continue;case 8:ae=$clone(a,A.Value).Pointer();af=$clone(b,A.Value).Pointer();ag=ae;ah=af;if(agah){$s=-1;return 1;}else{$s=-1;return 0;}$s=14;continue;case 9:ai=F($clone(a,A.Value),$clone(b,A.Value));aj=ai[0];ak=ai[1];if(ak){$s=-1;return aj;}al=$clone(a,A.Value).Pointer();am=$clone(b,A.Value).Pointer();an=al;ao=am;if(anao){$s=-1;return 1;}else{$s=-1;return 0;}$s=14;continue;case 10:ap=0;case 17:if(!(ap<$clone(a,A.Value).NumField())){$s=18;continue;}aq=$clone(a,A.Value).Field(ap);$s=19;case 19:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=$clone(aq,A.Value);as=$clone(b,A.Value).Field(ap);$s=20;case 20:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=$clone(as,A.Value);au=E(ar,at);$s=21;case 21:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=au;if(!((av===0))){$s=-1;return av;}ap=ap+(1)>>0;$s=17;continue;case 18:$s=-1;return 0;case 11:aw=0;case 22:if(!(aw<$clone(a,A.Value).Len())){$s=23;continue;}ax=$clone(a,A.Value).Index(aw);$s=24;case 24:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=$clone(ax,A.Value);az=$clone(b,A.Value).Index(aw);$s=25;case 25:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=$clone(az,A.Value);bb=E(ay,ba);$s=26;case 26:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=bb;if(!((bc===0))){$s=-1;return bc;}aw=aw+(1)>>0;$s=22;continue;case 23:$s=-1;return 0;case 12:bd=F($clone(a,A.Value),$clone(b,A.Value));be=bd[0];bf=bd[1];if(bf){$s=-1;return be;}bg=$clone(a,A.Value).Elem();$s=27;case 27:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=$clone(bg,A.Value).Type();$s=28;case 28:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bi=A.ValueOf(bh);$s=29;case 29:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bj=$clone(bi,A.Value);bk=$clone(b,A.Value).Elem();$s=30;case 30:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}bl=$clone(bk,A.Value).Type();$s=31;case 31:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}bm=A.ValueOf(bl);$s=32;case 32:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bn=$clone(bm,A.Value);bo=E(bj,bn);$s=33;case 33:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=bo;if(!((bp===0))){$s=-1;return bp;}bq=$clone(a,A.Value).Elem();$s=34;case 34:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}br=$clone(bq,A.Value);bs=$clone(b,A.Value).Elem();$s=35;case 35:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}bt=$clone(bs,A.Value);bu=E(br,bt);$s=36;case 36:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}bv=bu;$s=37;case 37:return bv;case 13:bw=e.String();$s=38;case 38:if($c){$c=false;bw=bw.$blk();}if(bw&&bw.$blk!==undefined){break s;}$panic(new $String("bad type in compare: "+bw));case 14:case 1:$s=-1;return 0;}return;}var $f={$blk:E,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};F=function(a,b){var a,b;if($clone(a,A.Value).IsNil()){if($clone(b,A.Value).IsNil()){return[0,true];}return[-1,true];}if($clone(b,A.Value).IsNil()){return[1,true];}return[0,false];};G=function(a,b){var a,b;if(H(a)){return-1;}else if(H(b)){return 1;}else if(ab){return 1;}return 0;};H=function(a){var a;return!((a===a));};I.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)}];C.init("",[{prop:"Key",name:"Key",embedded:false,exported:true,typ:J,tag:""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:J,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/oserror"]=(function(){var $pkg={},$init,A;A=$packages["errors"];$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.ErrInvalid=A.New("invalid argument");$pkg.ErrPermission=A.New("permission denied");$pkg.ErrExist=A.New("file already exists");$pkg.ErrNotExist=A.New("file does not exist");$pkg.ErrClosed=A.New("file already closed");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["syscall/js"]=(function(){var $pkg={},$init,A,B,F,H,I,R,U,V,W,X,Y,Z,AA,AB,AC,K,L,M,C,D,E,G,J,N,O,P,Q,S,T;A=$packages["github.com/gopherjs/gopherjs/js"];B=$pkg.Type=$newType(4,$kindInt,"js.Type",true,"syscall/js",true,null);F=$pkg.Func=$newType(0,$kindStruct,"js.Func",true,"syscall/js",true,function(Value_){this.$val=this;if(arguments.length===0){this.Value=new I.ptr(null,false,V.zero());return;}this.Value=Value_;});H=$pkg.Error=$newType(0,$kindStruct,"js.Error",true,"syscall/js",true,function(Value_){this.$val=this;if(arguments.length===0){this.Value=new I.ptr(null,false,V.zero());return;}this.Value=Value_;});I=$pkg.Value=$newType(0,$kindStruct,"js.Value",true,"syscall/js",true,function(v_,inited_,_$2_){this.$val=this;if(arguments.length===0){this.v=null;this.inited=false;this._$2=V.zero();return;}this.v=v_;this.inited=inited_;this._$2=_$2_;});R=$pkg.ValueError=$newType(0,$kindStruct,"js.ValueError",true,"syscall/js",true,function(Method_,Type_){this.$val=this;if(arguments.length===0){this.Method="";this.Type=0;return;}this.Method=Method_;this.Type=Type_;});U=$funcType([],[],false);V=$arrayType(U,0);W=$sliceType(I);X=$mapType($String,$emptyInterface);Y=$sliceType($emptyInterface);Z=$ptrType(A.Error);AA=$sliceType($Uint8);AB=$ptrType(A.Object);AC=$ptrType(R);B.prototype.String=function(){var a,b;a=this.$val;b=a;if(b===(0)){return"undefined";}else if(b===(1)){return"null";}else if(b===(2)){return"boolean";}else if(b===(3)){return"number";}else if(b===(4)){return"string";}else if(b===(5)){return"symbol";}else if(b===(6)){return"object";}else if(b===(7)){return"function";}else{$panic(new $String("bad type"));}};$ptrType(B).prototype.String=function(){return new B(this.$get()).String();};B.prototype.isObject=function(){var a;a=this.$val;return(a===6)||(a===7);};$ptrType(B).prototype.isObject=function(){return new B(this.$get()).isObject();};C=function(){return J($global);};$pkg.Global=C;D=function(){return J(null);};$pkg.Null=D;E=function(){return J(undefined);};$pkg.Undefined=E;F.ptr.prototype.Release=function(){var a;a=this;$exportedFunctions=($parseInt($exportedFunctions)>>0)-1>>0;I.copy(a.Value,D());};F.prototype.Release=function(){return this.$val.Release();};G=function(a){var a;$exportedFunctions=($parseInt($exportedFunctions)>>0)+1>>0;return new F.ptr($clone(J(A.MakeFunc((function $b(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=$makeSlice(W,c.$length);e=c;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);I.copy(((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]),J(h));f++;}i=a($clone(J(b),I),d);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=2;case 2:return j;}return;}var $f={$blk:$b,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;}))),I));};$pkg.FuncOf=G;H.ptr.prototype.Error=function(){var a;a=this;return"JavaScript error: "+$clone($clone(a.Value,I).Get("message"),I).String();};H.prototype.Error=function(){return this.$val.Error();};J=function(a){var a;if(a===undefined){return new I.ptr(null,false,V.zero());}return new I.ptr(a,true,V.zero());};N=function(){if(!($global===null)){K=$global.eval($externalize("(function(x) { return x; })",$String));L=$global.eval($externalize("(function(x, y) { return x instanceof y; })",$String));M=$global.eval($externalize("(function(x) {\n if (typeof(x) === \"undefined\") {\n return 0; // TypeUndefined\n }\n if (x === null) {\n return 1; // TypeNull\n }\n if (typeof(x) === \"boolean\") {\n return 2; // TypeBoolean\n }\n if (typeof(x) === \"number\") {\n return 3; // TypeNumber\n }\n if (typeof(x) === \"string\") {\n return 4; // TypeString\n }\n if (typeof(x) === \"symbol\") {\n return 5; // TypeSymbol\n }\n if (typeof(x) === \"function\") {\n return 7; // TypeFunction\n }\n return 6; // TypeObject\n})",$String));}};O=function(a){var a,b,c,d,e,f,g;b=a;if($assertType(b,I,true)[1]){c=$clone(b.$val,I);return c;}else if($assertType(b,F,true)[1]){d=$clone(b.$val,F);return d.Value;}else if(b===$ifaceNil){e=b;return D();}else if($assertType(b,$Bool,true)[1]||$assertType(b,$Int,true)[1]||$assertType(b,$Int8,true)[1]||$assertType(b,$Int16,true)[1]||$assertType(b,$Int32,true)[1]||$assertType(b,$Int64,true)[1]||$assertType(b,$Uint,true)[1]||$assertType(b,$Uint8,true)[1]||$assertType(b,$Uint16,true)[1]||$assertType(b,$Uint32,true)[1]||$assertType(b,$Uint64,true)[1]||$assertType(b,$Float32,true)[1]||$assertType(b,$Float64,true)[1]||$assertType(b,$UnsafePointer,true)[1]||$assertType(b,$String,true)[1]||$assertType(b,X,true)[1]||$assertType(b,Y,true)[1]){f=b;return J(K($externalize(f,$emptyInterface)));}else{g=b;$panic(new $String("ValueOf: invalid value"));}};$pkg.ValueOf=O;I.ptr.prototype.internal=function(){var a;a=this;if(!a.inited){return undefined;}return a.v;};I.prototype.internal=function(){return this.$val.internal();};I.ptr.prototype.Bool=function(){var a,b;a=this;b=$clone(a,I).Type();if(!((b===2))){$panic(new R.ptr("Value.Bool",b));}return!!($clone(a,I).internal());};I.prototype.Bool=function(){return this.$val.Bool();};P=function(a){var a,b,c,d,e,f;b=new Y([]);c=a;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=$clone(O(e),I);b=$append(b,new $jsObjectPtr($clone(f,I).internal()));d++;}return b;};Q=function(){var a,b,c,d,e;a=$recover();if($interfaceIsEqual(a,$ifaceNil)){return;}b=$assertType(a,Z,true);c=b[0];d=b[1];if(d){$panic((e=new H.ptr($clone(J(c.Object),I)),new e.constructor.elem(e)));}$panic(a);};I.ptr.prototype.Call=function(a,b){var{a,b,c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{a,b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=this;d=$clone(c,I).Type();if(!((d===6))&&!((d===7))){$panic(new R.ptr("Value.Call",d));}e=$clone($clone(c,I).Get(a),I).Type();if(!((e===7))){$panic(new $String("js: Value.Call: property "+a+" is not a function, got "+new B(e).String()));}$deferred.push([Q,[]]);g=J((f=$clone(c,I).internal(),f[$externalize(a,$String)].apply(f,$externalize(P(b),Y))));$s=1;case 1:return g;}return;}}catch(err){$err=err;$s=-1;return new I.ptr(null,false,V.zero());}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:I.ptr.prototype.Call,$c:true,$r,a,b,c,d,e,f,g,$s,$deferred};return $f;}}};I.prototype.Call=function(a,b){return this.$val.Call(a,b);};I.ptr.prototype.Float=function(){var a,b;a=this;b=$clone(a,I).Type();if(!((b===3))){$panic(new R.ptr("Value.Float",b));}return $parseFloat($clone(a,I).internal());};I.prototype.Float=function(){return this.$val.Float();};I.ptr.prototype.Get=function(a){var a,b,c;b=this;c=$clone(b,I).Type();if(!new B(c).isObject()){$panic(new R.ptr("Value.Get",c));}return J($clone(b,I).internal()[$externalize(a,$String)]);};I.prototype.Get=function(a){return this.$val.Get(a);};I.ptr.prototype.Index=function(a){var a,b,c;b=this;c=$clone(b,I).Type();if(!new B(c).isObject()){$panic(new R.ptr("Value.Index",c));}return J($clone(b,I).internal()[a]);};I.prototype.Index=function(a){return this.$val.Index(a);};I.ptr.prototype.Int=function(){var a,b;a=this;b=$clone(a,I).Type();if(!((b===3))){$panic(new R.ptr("Value.Int",b));}return $parseInt($clone(a,I).internal())>>0;};I.prototype.Int=function(){return this.$val.Int();};I.ptr.prototype.InstanceOf=function(a){var a,b;b=this;return!!(L($clone(b,I).internal(),$clone(a,I).internal()));};I.prototype.InstanceOf=function(a){return this.$val.InstanceOf(a);};I.ptr.prototype.Invoke=function(a){var a,b,c;b=this;c=$clone(b,I).Type();if(!((c===7))){$panic(new R.ptr("Value.Invoke",c));}return J($clone(b,I).internal().apply(undefined,$externalize(P(a),Y)));};I.prototype.Invoke=function(a){return this.$val.Invoke(a);};I.ptr.prototype.JSValue=function(){var a;a=this;return a;};I.prototype.JSValue=function(){return this.$val.JSValue();};I.ptr.prototype.Length=function(){var a;a=this;return $parseInt($clone(a,I).internal().length);};I.prototype.Length=function(){return this.$val.Length();};I.ptr.prototype.New=function(a){var{a,b,c,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];b[0]=this;$deferred.push([(function(b){return function(){var c,d,e,f,g,h;c=$recover();if($interfaceIsEqual(c,$ifaceNil)){return;}d=$clone(b[0],I).Type();if(!((d===7))){$panic(new R.ptr("Value.New",d));}e=$assertType(c,Z,true);f=e[0];g=e[1];if(g){$panic((h=new H.ptr($clone(J(f.Object),I)),new h.constructor.elem(h)));}$panic(c);};})(b),[]]);c=J(new($global.Function.prototype.bind.apply($clone(b[0],I).internal(),[undefined].concat($externalize(P(a),Y)))));$s=1;case 1:return c;}return;}}catch(err){$err=err;$s=-1;return new I.ptr(null,false,V.zero());}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:I.ptr.prototype.New,$c:true,$r,a,b,c,$s,$deferred};return $f;}}};I.prototype.New=function(a){return this.$val.New(a);};I.ptr.prototype.Set=function(a,b){var a,b,c,d,e;c=this;d=$clone(c,I).Type();if(!new B(d).isObject()){$panic(new R.ptr("Value.Set",d));}$clone(c,I).internal()[$externalize(a,$String)]=$externalize((e=P(new Y([b])),(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])),$emptyInterface);};I.prototype.Set=function(a,b){return this.$val.Set(a,b);};I.ptr.prototype.SetIndex=function(a,b){var a,b,c,d,e;c=this;d=$clone(c,I).Type();if(!new B(d).isObject()){$panic(new R.ptr("Value.SetIndex",d));}$clone(c,I).internal()[a]=$externalize((e=P(new Y([b])),(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])),$emptyInterface);};I.prototype.SetIndex=function(a,b){return this.$val.SetIndex(a,b);};I.ptr.prototype.String=function(){var a,b;a=this;b=$clone(a,I).Type();if(b===(4)){return $internalize($clone(a,I).internal(),$String);}else if(b===(0)){return"";}else if(b===(1)){return"";}else if(b===(2)){return"";}else if(b===(3)){return"";}else if(b===(5)){return"";}else if(b===(6)){return"";}else if(b===(7)){return"";}else{$panic(new $String("bad type"));}};I.prototype.String=function(){return this.$val.String();};I.ptr.prototype.Truthy=function(){var a;a=this;return!!($clone(a,I).internal());};I.prototype.Truthy=function(){return this.$val.Truthy();};I.ptr.prototype.Type=function(){var a;a=this;return((($parseInt(M($clone(a,I).internal()))>>0)>>0));};I.prototype.Type=function(){return this.$val.Type();};I.ptr.prototype.IsNull=function(){var a;a=this;return $clone(a,I).Type()===1;};I.prototype.IsNull=function(){return this.$val.IsNull();};I.ptr.prototype.IsUndefined=function(){var a;a=this;return!a.inited;};I.prototype.IsUndefined=function(){return this.$val.IsUndefined();};I.ptr.prototype.IsNaN=function(){var a;a=this;return!!($global.isNaN($clone(a,I).internal()));};I.prototype.IsNaN=function(){return this.$val.IsNaN();};I.ptr.prototype.Delete=function(a){var a,b,c;b=this;c=$clone(b,I).Type();if(!new B(c).isObject()){$panic(new R.ptr("Value.Delete",c));}delete $clone(b,I).internal()[$externalize(a,$String)];};I.prototype.Delete=function(a){return this.$val.Delete(a);};I.ptr.prototype.Equal=function(a){var a,b;b=this;return $clone(b,I).internal()===$clone(a,I).internal();};I.prototype.Equal=function(a){return this.$val.Equal(a);};R.ptr.prototype.Error=function(){var a;a=this;return"syscall/js: call of "+a.Method+" on "+new B(a.Type).String();};R.prototype.Error=function(){return this.$val.Error();};S=function(a,b){var a,b,c,d;c=$parseInt(b.v.length);d=a.$length;if(d>0))&&((h>>0))<2054){i=((h<0||h>=L.length)?($throwRuntimeError("index out of range"),undefined):L[h]);if(!(i==="")){return i;}}return"errno "+B.Itoa(((h>>0)));};$ptrType(V).prototype.Error=function(){return new V(this.$get()).Error();};V.prototype.Is=function(h){var h,i,j;i=this.$val;j=h;if($interfaceIsEqual(j,(C.ErrPermission))){return(i===13)||(i===1);}else if($interfaceIsEqual(j,(C.ErrExist))){return(i===17)||(i===39);}else if($interfaceIsEqual(j,(C.ErrNotExist))){return i===2;}return false;};$ptrType(V).prototype.Is=function(h){return new V(this.$get()).Is(h);};V.prototype.Temporary=function(){var h;h=this.$val;return(h===4)||(h===24)||new V(h).Timeout();};$ptrType(V).prototype.Temporary=function(){return new V(this.$get()).Temporary();};V.prototype.Timeout=function(){var h;h=this.$val;return(h===11)||(h===11)||(h===110);};$ptrType(V).prototype.Timeout=function(){return new V(this.$get()).Timeout();};W.prototype.Signal=function(){var h;h=this.$val;};$ptrType(W).prototype.Signal=function(){return new W(this.$get()).Signal();};W.prototype.String=function(){var h,i;h=this.$val;if(0<=h&&((h>>0))<0){i=((h<0||h>=X.length)?($throwRuntimeError("index out of range"),undefined):X[h]);if(!(i==="")){return i;}}return"signal "+B.Itoa(((h>>0)));};$ptrType(W).prototype.String=function(){return new W(this.$get()).String();};Z.prototype.Exited=function(){var h;h=this.$val;return false;};$ptrType(Z).prototype.Exited=function(){return new Z(this.$get()).Exited();};Z.prototype.ExitStatus=function(){var h;h=this.$val;return 0;};$ptrType(Z).prototype.ExitStatus=function(){return new Z(this.$get()).ExitStatus();};Z.prototype.Signaled=function(){var h;h=this.$val;return false;};$ptrType(Z).prototype.Signaled=function(){return new Z(this.$get()).Signaled();};Z.prototype.Signal=function(){var h;h=this.$val;return 0;};$ptrType(Z).prototype.Signal=function(){return new Z(this.$get()).Signal();};Z.prototype.CoreDump=function(){var h;h=this.$val;return false;};$ptrType(Z).prototype.CoreDump=function(){return new Z(this.$get()).CoreDump();};Z.prototype.Stopped=function(){var h;h=this.$val;return false;};$ptrType(Z).prototype.Stopped=function(){return new Z(this.$get()).Stopped();};Z.prototype.Continued=function(){var h;h=this.$val;return false;};$ptrType(Z).prototype.Continued=function(){return new Z(this.$get()).Continued();};Z.prototype.StopSignal=function(){var h;h=this.$val;return 0;};$ptrType(Z).prototype.StopSignal=function(){return new Z(this.$get()).StopSignal();};Z.prototype.TrapCause=function(){var h;h=this.$val;return 0;};$ptrType(Z).prototype.TrapCause=function(){return new Z(this.$get()).TrapCause();};AI=function(){var{h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h="";i=$ifaceNil;j=FD.zero();l=DT($subslice(new FE(j),0));$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];i=k[1];if(!($interfaceIsEqual(i,$ifaceNil))){n="";o=i;h=n;i=o;$s=-1;return[h,i];}p=($bytesToString($subslice(new FE(j),0,m)));q=$ifaceNil;h=p;i=q;$s=-1;return[h,i];}return;}var $f={$blk:AI,$c:true,$r,h,i,j,k,l,m,n,o,p,q,$s};return $f;};$pkg.Getwd=AI;AS=function(h,i){var h,i;return new V(38);};$pkg.Kill=AS;AU=function(h,i,j){var h,i,j,k,l,m,n,o,p;k=0;l=0;m=$ifaceNil;n=0;o=0;p=new V(38);k=n;l=o;m=p;return[k,l,m];};$pkg.StartProcess=AU;AV=function(h,i,j,k){var h,i,j,k,l,m,n,o;l=0;m=$ifaceNil;n=0;o=new V(38);l=n;m=o;return[l,m];};$pkg.Wait4=AV;AY.ptr.prototype.Unix=function(){var h,i,j,k,l;h=new $Int64(0,0);i=new $Int64(0,0);j=this;k=(j.Sec);l=$mul64((j.Usec),new $Int64(0,1000));h=k;i=l;return[h,i];};AY.prototype.Unix=function(){return this.$val.Unix();};AY.ptr.prototype.Nano=function(){var h,i,j;h=this;return(i=$mul64((h.Sec),new $Int64(0,1000000000)),j=$mul64((h.Usec),new $Int64(0,1000)),new $Int64(i.$high+j.$high,i.$low+j.$low));};AY.prototype.Nano=function(){return this.$val.Nano();};BN=function(h){var h;return new V(38);};$pkg.StopIO=BN;BP=function(h){var h,i,j,k,l,m,n;i=0;j=$ifaceNil;k=$ifaceNil;l=0;m=$ifaceNil;n=new V(38);i=l;j=m;k=n;return[i,j,k];};$pkg.Accept=BP;BR=function(h,i,j){var h,i,j,k,l,m,n,o,p;k=0;l=$ifaceNil;m=$ifaceNil;n=0;o=$ifaceNil;p=new V(38);k=n;l=o;m=p;return[k,l,m];};$pkg.Recvfrom=BR;BS=function(h,i,j,k){var h,i,j,k;return new V(38);};$pkg.Sendto=BS;BT=function(h,i,j,k){var h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=0;m=0;n=0;o=$ifaceNil;p=$ifaceNil;q=0;r=0;s=0;t=$ifaceNil;u=new V(38);l=q;m=r;n=s;o=t;p=u;return[l,m,n,o,p];};$pkg.Recvmsg=BT;BU=function(h,i,j,k,l){var h,i,j,k,l,m,n,o,p;m=0;n=$ifaceNil;o=0;p=new V(38);m=o;n=p;return[m,n];};$pkg.SendmsgN=BU;BX=function(h,i){var h,i;return new V(38);};$pkg.SetReadDeadline=BX;BY=function(h,i){var h,i;return new V(38);};$pkg.SetWriteDeadline=BY;BZ=function(h,i){var h,i;return new V(38);};$pkg.Shutdown=BZ;CA=function(h,i){var h,i;return $ifaceNil;};$pkg.SetNonblock=CA;CF=function(){var{h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=$clone($clone(E.Global(),E.Value).Get("process"),E.Value);if($clone(h,E.Value).IsUndefined()){$s=-1;return FC.nil;}i=$clone($clone(h,E.Value).Get("env"),E.Value);j=$clone($clone(E.Global(),E.Value).Get("Object"),E.Value).Call("keys",new FF([new i.constructor.elem(i)]));$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=$clone(j,E.Value);l=$makeSlice(FC,$clone(k,E.Value).Length());m=0;while(true){if(!(m<$clone(k,E.Value).Length())){break;}n=$clone($clone(k,E.Value).Index(m),E.Value).String();((m<0||m>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]=n+"="+$clone($clone(i,E.Value).Get(n),E.Value).String());m=m+(1)>>0;}$s=-1;return l;}return;}var $f={$blk:CF,$c:true,$r,h,i,j,k,l,m,n,$s};return $f;};CI=function(h,i){var h,i,j,k,l;h.Dev=(new $Int64(0,$clone($clone(i,E.Value).Get("dev"),E.Value).Int()));h.Ino=(new $Uint64(0,$clone($clone(i,E.Value).Get("ino"),E.Value).Int()));h.Mode=(($clone($clone(i,E.Value).Get("mode"),E.Value).Int()>>>0));h.Nlink=(($clone($clone(i,E.Value).Get("nlink"),E.Value).Int()>>>0));h.Uid=(($clone($clone(i,E.Value).Get("uid"),E.Value).Int()>>>0));h.Gid=(($clone($clone(i,E.Value).Get("gid"),E.Value).Int()>>>0));h.Rdev=(new $Int64(0,$clone($clone(i,E.Value).Get("rdev"),E.Value).Int()));h.Size=(new $Int64(0,$clone($clone(i,E.Value).Get("size"),E.Value).Int()));h.Blksize=(($clone($clone(i,E.Value).Get("blksize"),E.Value).Int()>>0));h.Blocks=(($clone($clone(i,E.Value).Get("blocks"),E.Value).Int()>>0));j=(new $Int64(0,$clone($clone(i,E.Value).Get("atimeMs"),E.Value).Float()));h.Atime=$div64(j,new $Int64(0,1000),false);h.AtimeNsec=$mul64(($div64(j,new $Int64(0,1000),true)),new $Int64(0,1000000));k=(new $Int64(0,$clone($clone(i,E.Value).Get("mtimeMs"),E.Value).Float()));h.Mtime=$div64(k,new $Int64(0,1000),false);h.MtimeNsec=$mul64(($div64(k,new $Int64(0,1000),true)),new $Int64(0,1000000));l=(new $Int64(0,$clone($clone(i,E.Value).Get("ctimeMs"),E.Value).Float()));h.Ctime=$div64(l,new $Int64(0,1000),false);h.CtimeNsec=$mul64(($div64(l,new $Int64(0,1000),true)),new $Int64(0,1000000));};CJ=function(h){var{h,i,j,k,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=$clone($clone(E.Global(),E.Value).Get("process"),E.Value);if(!$clone(i,E.Value).IsUndefined()){$s=1;continue;}$s=2;continue;case 1:j=$clone(i,E.Value).Call("exit",new FF([new $Int(h)]));$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;$s=-1;return;case 2:if(!((h===0))){$s=4;continue;}$s=5;continue;case 4:k=$clone($clone(E.Global(),E.Value).Get("console"),E.Value).Call("warn",new FF([new $String("Go program exited with non-zero code:"),new $Int(h)]));$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;case 5:$s=-1;return;}return;}var $f={$blk:CJ,$c:true,$r,h,i,j,k,$s};return $f;};$pkg.Exit=CJ;CK=function(h,i){var{h,i,j,k,l,m,n,o,p,$s,$deferred,$r,$c}=$restore(this,{h,i});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);j=[j];j[0]=new $Chan(FJ,1);k=$clone(E.FuncOf((function(j){return function $b(k,l){var{k,l,m,n,$s,$r,$c}=$restore(this,{k,l});$s=$s||0;s:while(true){switch($s){case 0:m=new FJ.ptr(new E.Value.ptr(null,false,FL.zero()),$ifaceNil);if(l.$length>=1){n=$clone((0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0]),E.Value);if(!$clone(n,E.Value).IsUndefined()&&!$clone(n,E.Value).IsNull()){m.err=EK($clone(n,E.Value));}}E.Value.copy(m.val,E.Undefined());if(l.$length>=2){E.Value.copy(m.val,(1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1]));}$r=$send(j[0],$clone($clone(m,FJ),FJ));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;}return;}var $f={$blk:$b,$c:true,$r,k,l,m,n,$s};return $f;};})(j)),E.Func);$deferred.push([$methodVal($clone(k,E.Func),"Release"),[]]);if($clone($clone(CN,E.Value).Get(h),E.Value).IsUndefined()){$s=1;continue;}$s=2;continue;case 1:l=[E.Undefined(),new V(38)];$s=3;case 3:return l;case 2:m=$clone(CN,E.Value).Call(h,$append(i,new k.constructor.elem(k)));$s=4;case 4:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;n=$recv(j[0]);$s=5;case 5:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=$clone(n[0],FJ);p=[o.val,o.err];$s=6;case 6:return p;}return;}}catch(err){$err=err;$s=-1;return[new E.Value.ptr(null,false,FL.zero()),$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:CK,$c:true,$r,h,i,j,k,l,m,n,o,p,$s,$deferred};return $f;}}};CZ=function(h){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:$r=CX.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=(j=$mapIndex(CY,$Int.keyFor(h)),j!==undefined?[j.v,true]:[FM.nil,false]);k=i[0];l=i[1];$r=CX.Unlock();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!l){$s=-1;return[FM.nil,new V(9)];}$s=-1;return[k,$ifaceNil];}return;}var $f={$blk:CZ,$c:true,$r,h,i,j,k,l,$s};return $f;};DA=function(h,i,j){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{h,i,j});$s=$s||0;s:while(true){switch($s){case 0:k=EI(h);if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return[0,k];}l=0;if(!(((i&1)===0))){l=l|(CQ);}if(!(((i&2)===0))){l=l|(CR);}if(!(((i&64)===0))){l=l|(CS);}if(!(((i&512)===0))){l=l|(CT);}if(!(((i&1024)===0))){l=l|(CU);}if(!(((i&128)===0))){l=l|(CV);}if(!(((i&4096)===0))){$s=-1;return[0,F.New("syscall.Open: O_SYNC is not supported by js/wasm")];}n=CK("open",new FF([new $String(h),new $Int(l),new $Uint32(j)]));$s=1;case 1:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=$clone(m[0],E.Value);p=m[1];if(!($interfaceIsEqual(p,$ifaceNil))){$s=-1;return[0,p];}q=$clone(o,E.Value).Int();r=FC.nil;t=CK("fstat",new FF([new $Int(q)]));$s=2;case 2:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;u=$clone(s[0],E.Value);v=s[1];if(!($interfaceIsEqual(v,$ifaceNil))){w=false;$s=5;continue s;}x=$clone(u,E.Value).Call("isDirectory",new FF([]));$s=6;case 6:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=$clone(x,E.Value).Bool();$s=7;case 7:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}w=y;case 5:if(w){$s=3;continue;}$s=4;continue;case 3:aa=CK("readdir",new FF([new $String(h)]));$s=8;case 8:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;ab=$clone(z[0],E.Value);ac=z[1];if(!($interfaceIsEqual(ac,$ifaceNil))){$s=-1;return[0,ac];}r=$makeSlice(FC,$clone(ab,E.Value).Length());ad=r;ae=0;while(true){if(!(ae=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+af]=$clone($clone(ab,E.Value).Index(af),E.Value).String());ae++;}case 4:if(!((h.charCodeAt(0)===47))){$s=9;continue;}$s=10;continue;case 9:ag=$clone(CM,E.Value).Call("cwd",new FF([]));$s=11;case 11:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=$clone(ag,E.Value).String();$s=12;case 12:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;h=ai+"/"+h;case 10:aj=new CW.ptr(h,r,0,new $Int64(0,0),false);$r=CX.Lock();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ak=q;(CY||$throwRuntimeError("assignment to entry in nil map")).set($Int.keyFor(ak),{k:ak,v:aj});$r=CX.Unlock();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return[q,$ifaceNil];}return;}var $f={$blk:DA,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.Open=DA;DB=function(h){var{h,i,j,k,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:$r=CX.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$mapDelete(CY,$Int.keyFor(h));$r=CX.Unlock();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=CK("close",new FF([new $Int(h)]));$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[1];$s=-1;return k;}return;}var $f={$blk:DB,$c:true,$r,h,i,j,k,$s};return $f;};$pkg.Close=DB;DC=function(h){var h;};$pkg.CloseOnExec=DC;DE=function(h,i){var{h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:k=CZ(h);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];if(!($interfaceIsEqual(m,$ifaceNil))){$s=-1;return[0,m];}if(l.entries===FC.nil){$s=-1;return[0,new V(22)];}n=0;while(true){if(!(l.dirIdx=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]));r=2+q.length>>0;if(r>i.$length){break;}(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]=((r<<24>>>24)));(1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]=(((r>>8>>0)<<24>>>24)));$copyString($subslice(i,2),q);i=$subslice(i,r);n=n+(r)>>0;l.dirIdx=l.dirIdx+(1)>>0;}$s=-1;return[n,$ifaceNil];}return;}var $f={$blk:DE,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};$pkg.ReadDirent=DE;DF=function(h,i){var{h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:j=EI(h);if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}l=CK("stat",new FF([new $String(h)]));$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=$clone(k[0],E.Value);n=k[1];if(!($interfaceIsEqual(n,$ifaceNil))){$s=-1;return n;}CI(i,$clone(m,E.Value));$s=-1;return $ifaceNil;}return;}var $f={$blk:DF,$c:true,$r,h,i,j,k,l,m,n,$s};return $f;};$pkg.Stat=DF;DG=function(h,i){var{h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:j=EI(h);if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}l=CK("lstat",new FF([new $String(h)]));$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=$clone(k[0],E.Value);n=k[1];if(!($interfaceIsEqual(n,$ifaceNil))){$s=-1;return n;}CI(i,$clone(m,E.Value));$s=-1;return $ifaceNil;}return;}var $f={$blk:DG,$c:true,$r,h,i,j,k,l,m,n,$s};return $f;};$pkg.Lstat=DG;DH=function(h,i){var{h,i,j,k,l,m,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:k=CK("fstat",new FF([new $Int(h)]));$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=$clone(j[0],E.Value);m=j[1];if(!($interfaceIsEqual(m,$ifaceNil))){$s=-1;return m;}CI(i,$clone(l,E.Value));$s=-1;return $ifaceNil;}return;}var $f={$blk:DH,$c:true,$r,h,i,j,k,l,m,$s};return $f;};$pkg.Fstat=DH;DK=function(h,i){var{h,i,j,k,l,m,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:j=EI(h);if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}l=CK("chmod",new FF([new $String(h),new $Uint32(i)]));$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[1];$s=-1;return m;}return;}var $f={$blk:DK,$c:true,$r,h,i,j,k,l,m,$s};return $f;};$pkg.Chmod=DK;DL=function(h,i){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:k=CK("fchmod",new FF([new $Int(h),new $Uint32(i)]));$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[1];$s=-1;return l;}return;}var $f={$blk:DL,$c:true,$r,h,i,j,k,l,$s};return $f;};$pkg.Fchmod=DL;DN=function(h,i,j){var{h,i,j,k,l,m,$s,$r,$c}=$restore(this,{h,i,j});$s=$s||0;s:while(true){switch($s){case 0:l=CK("fchown",new FF([new $Int(h),new $Uint32(((i>>>0))),new $Uint32(((j>>>0)))]));$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[1];$s=-1;return m;}return;}var $f={$blk:DN,$c:true,$r,h,i,j,k,l,m,$s};return $f;};$pkg.Fchown=DN;DS=function(h,i){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:k=CK("ftruncate",new FF([new $Int(h),i]));$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[1];$s=-1;return l;}return;}var $f={$blk:DS,$c:true,$r,h,i,j,k,l,$s};return $f;};$pkg.Ftruncate=DS;DT=function(h){var{h,i,j,k,l,m,n,$s,$deferred,$r,$c}=$restore(this,{h});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);i=[i];j=0;i[0]=$ifaceNil;$deferred.push([EJ,[(i.$ptr||(i.$ptr=new FH(function(){return this.$target[0];},function($v){this.$target[0]=$v;},i)))]]);k=$clone(CM,E.Value).Call("cwd",new FF([]));$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=$clone(k,E.Value).String();$s=2;case 2:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;j=$copyString(h,m);n=[j,i[0]];$s=3;case 3:return n;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[j,i[0]];}if($curGoroutine.asleep){var $f={$blk:DT,$c:true,$r,h,i,j,k,l,m,n,$s,$deferred};return $f;}}};$pkg.Getcwd=DT;DU=function(h){var{h,i,j,k,l,m,$s,$deferred,$r,$c}=$restore(this,{h});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);i=[i];i[0]=$ifaceNil;j=EI(h);if(!($interfaceIsEqual(j,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:i[0]=j;k=i[0];$s=3;case 3:return k;case 2:$deferred.push([EJ,[(i.$ptr||(i.$ptr=new FH(function(){return this.$target[0];},function($v){this.$target[0]=$v;},i)))]]);l=$clone(CM,E.Value).Call("chdir",new FF([new $String(h)]));$s=4;case 4:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;m=i[0];$s=5;case 5:return m;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return i[0];}if($curGoroutine.asleep){var $f={$blk:DU,$c:true,$r,h,i,j,k,l,m,$s,$deferred};return $f;}}};$pkg.Chdir=DU;DV=function(h){var{h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:j=CZ(h);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];l=i[1];if(!($interfaceIsEqual(l,$ifaceNil))){$s=-1;return l;}m=DU(k.path);$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=3;case 3:return n;}return;}var $f={$blk:DV,$c:true,$r,h,i,j,k,l,m,n,$s};return $f;};$pkg.Fchdir=DV;DW=function(h,i){var{h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:j=0;k=$ifaceNil;l=EI(h);if(!($interfaceIsEqual(l,$ifaceNil))){m=0;n=l;j=m;k=n;$s=-1;return[j,k];}p=CK("readlink",new FF([new $String(h)]));$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;q=$clone(o[0],E.Value);k=o[1];if(!($interfaceIsEqual(k,$ifaceNil))){r=0;s=k;j=r;k=s;$s=-1;return[j,k];}j=$copyString(i,$clone(q,E.Value).String());t=j;u=$ifaceNil;j=t;k=u;$s=-1;return[j,k];}return;}var $f={$blk:DW,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};$pkg.Readlink=DW;DZ=function(h){var{h,i,j,k,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:j=CK("fsync",new FF([new $Int(h)]));$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[1];$s=-1;return k;}return;}var $f={$blk:DZ,$c:true,$r,h,i,j,k,$s};return $f;};$pkg.Fsync=DZ;EA=function(h,i){var{aa,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:k=CZ(h);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];if(!($interfaceIsEqual(m,$ifaceNil))){$s=-1;return[0,m];}if(l.seeked){$s=2;continue;}$s=3;continue;case 2:o=EC(h,i,l.pos);$s=4;case 4:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;p=n[0];q=n[1];l.pos=(r=l.pos,s=(new $Int64(0,p)),new $Int64(r.$high+s.$high,r.$low+s.$low));$s=-1;return[p,q];case 3:t=$clone(CP,E.Value).New(new FF([new $Int(i.$length)]));$s=5;case 5:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=$clone(t,E.Value);w=CK("read",new FF([new $Int(h),new u.constructor.elem(u),new $Int(0),new $Int(i.$length),$ifaceNil]));$s=6;case 6:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}v=w;x=$clone(v[0],E.Value);m=v[1];if(!($interfaceIsEqual(m,$ifaceNil))){$s=-1;return[0,m];}E.CopyBytesToGo(i,$clone(u,E.Value));y=$clone(x,E.Value).Int();l.pos=(z=l.pos,aa=(new $Int64(0,y)),new $Int64(z.$high+aa.$high,z.$low+aa.$low));$s=-1;return[y,m];}return;}var $f={$blk:EA,$c:true,$r,aa,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.Read=EA;EB=function(h,i){var{aa,ab,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:k=CZ(h);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];if(!($interfaceIsEqual(m,$ifaceNil))){$s=-1;return[0,m];}if(l.seeked){$s=2;continue;}$s=3;continue;case 2:o=ED(h,i,l.pos);$s=4;case 4:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;p=n[0];q=n[1];l.pos=(r=l.pos,s=(new $Int64(0,p)),new $Int64(r.$high+s.$high,r.$low+s.$low));$s=-1;return[p,q];case 3:if(false&&((h===1)||(h===2))){t=K(h,i);if(t<0){$s=-1;return[0,P(((-t>>>0)))];}$s=-1;return[t,$ifaceNil];}u=$clone(CP,E.Value).New(new FF([new $Int(i.$length)]));$s=5;case 5:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=$clone(u,E.Value);E.CopyBytesToJS($clone(v,E.Value),i);x=CK("write",new FF([new $Int(h),new v.constructor.elem(v),new $Int(0),new $Int(i.$length),$ifaceNil]));$s=6;case 6:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;y=$clone(w[0],E.Value);m=w[1];if(!($interfaceIsEqual(m,$ifaceNil))){$s=-1;return[0,m];}z=$clone(y,E.Value).Int();l.pos=(aa=l.pos,ab=(new $Int64(0,z)),new $Int64(aa.$high+ab.$high,aa.$low+ab.$low));$s=-1;return[z,m];}return;}var $f={$blk:EB,$c:true,$r,aa,ab,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.Write=EB;EC=function(h,i,j){var{h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{h,i,j});$s=$s||0;s:while(true){switch($s){case 0:k=$clone(CP,E.Value).New(new FF([new $Int(i.$length)]));$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=$clone(k,E.Value);n=CK("read",new FF([new $Int(h),new l.constructor.elem(l),new $Int(0),new $Int(i.$length),j]));$s=2;case 2:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=$clone(m[0],E.Value);p=m[1];if(!($interfaceIsEqual(p,$ifaceNil))){$s=-1;return[0,p];}E.CopyBytesToGo(i,$clone(l,E.Value));$s=-1;return[$clone(o,E.Value).Int(),$ifaceNil];}return;}var $f={$blk:EC,$c:true,$r,h,i,j,k,l,m,n,o,p,$s};return $f;};$pkg.Pread=EC;ED=function(h,i,j){var{h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{h,i,j});$s=$s||0;s:while(true){switch($s){case 0:k=$clone(CP,E.Value).New(new FF([new $Int(i.$length)]));$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=$clone(k,E.Value);E.CopyBytesToJS($clone(l,E.Value),i);n=CK("write",new FF([new $Int(h),new l.constructor.elem(l),new $Int(0),new $Int(i.$length),j]));$s=2;case 2:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=$clone(m[0],E.Value);p=m[1];if(!($interfaceIsEqual(p,$ifaceNil))){$s=-1;return[0,p];}$s=-1;return[$clone(o,E.Value).Int(),$ifaceNil];}return;}var $f={$blk:ED,$c:true,$r,h,i,j,k,l,m,n,o,p,$s};return $f;};$pkg.Pwrite=ED;EE=function(h,i,j){var{h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{h,i,j});$s=$s||0;s:while(true){switch($s){case 0:k=[k];m=CZ(h);$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;n=l[0];o=l[1];if(!($interfaceIsEqual(o,$ifaceNil))){$s=-1;return[new $Int64(0,0),o];}p=new $Int64(0,0);q=j;if(q===(0)){$s=3;continue;}if(q===(1)){$s=4;continue;}if(q===(2)){$s=5;continue;}$s=6;continue;case 3:p=i;$s=7;continue;case 4:p=(r=n.pos,new $Int64(r.$high+i.$high,r.$low+i.$low));$s=7;continue;case 5:k[0]=new Y.ptr(new $Int64(0,0),new $Uint64(0,0),0,0,0,0,new $Int64(0,0),new $Int64(0,0),0,0,new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0));s=DH(h,k[0]);$s=8;case 8:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;if(!($interfaceIsEqual(t,$ifaceNil))){$s=-1;return[new $Int64(0,0),t];}p=(u=k[0].Size,new $Int64(u.$high+i.$high,u.$low+i.$low));$s=7;continue;case 6:$s=-1;return[new $Int64(0,0),P(22)];case 7:case 2:if((p.$high<0||(p.$high===0&&p.$low<0))){$s=-1;return[new $Int64(0,0),P(22)];}n.seeked=true;n.dirIdx=0;n.pos=p;$s=-1;return[p,$ifaceNil];}return;}var $f={$blk:EE,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};$pkg.Seek=EE;EF=function(h){var h;return[0,new V(38)];};$pkg.Dup=EF;EH=function(h){var h;return new V(38);};$pkg.Pipe=EH;EI=function(h){var h,i;if(h===""){return new V(22);}i=0;while(true){if(!(i>0;}return $ifaceNil;};EJ=function(h){var h,i,j,k,l;i=$recover();if(!($interfaceIsEqual(i,$ifaceNil))){j=$assertType(i,E.Error,true);k=$clone(j[0],E.Error);l=j[1];if(!l){$panic(i);}h.$set(EK($clone(k.Value,E.Value)));}};EK=function(h){var h,i,j,k,l;i=(j=$mapIndex(Q,$String.keyFor($clone($clone(h,E.Value).Get("code"),E.Value).String())),j!==undefined?[j.v,true]:[0,false]);k=i[0];l=i[1];if(!l){$panic(new h.constructor.elem(h));}return P((k));};EP=function(){var h,i,j,k,l,m,n,o,p,q;EN=new $global.Map();h=EO;i=0;while(true){if(!(i=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]);l=0;while(true){if(!(l=EO.$length)?($throwRuntimeError("index out of range"),undefined):EO.$array[EO.$offset+j]="");}break;}l=l+(1)>>0;}i++;}};ER=function(h){var{aa,ab,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{h});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);i="";j=false;$r=EL.Do(EP);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(h.length===0){$s=2;continue;}$s=3;continue;case 2:k="";l=false;i=k;j=l;m=[i,j];$s=4;case 4:return m;case 3:$r=EM.RLock();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(EM,"RUnlock"),[]]);n=(o=$mapIndex(EN,$String.keyFor(h)),o!==undefined?[o.v,true]:[0,false]);p=n[0];q=n[1];if(!q){$s=6;continue;}$s=7;continue;case 6:r="";s=false;i=r;j=s;t=[i,j];$s=8;case 8:return t;case 7:u=((p<0||p>=EO.$length)?($throwRuntimeError("index out of range"),undefined):EO.$array[EO.$offset+p]);v=0;case 9:if(!(v>0));x=true;i=w;j=x;y=[i,j];$s=13;case 13:return y;case 12:v=v+(1)>>0;$s=9;continue;case 10:z="";aa=false;i=z;j=aa;ab=[i,j];$s=14;case 14:return ab;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[i,j];}if($curGoroutine.asleep){var $f={$blk:ER,$c:true,$r,aa,ab,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};$pkg.Getenv=ER;EU=function(){var{h,i,j,k,l,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);$r=EL.Do(EP);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=EM.RLock();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(EM,"RUnlock"),[]]);h=$makeSlice(FC,0,EO.$length);i=EO;j=0;while(true){if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);if(!(k==="")){h=$append(h,k);}j++;}l=h;$s=3;case 3:return l;}return;}}catch(err){$err=err;$s=-1;return FC.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:EU,$c:true,$r,h,i,j,k,l,$s,$deferred};return $f;}}};$pkg.Environ=EU;V.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Is",name:"Is",pkg:"",typ:$funcType([$error],[$Bool],false)},{prop:"Temporary",name:"Temporary",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Timeout",name:"Timeout",pkg:"",typ:$funcType([],[$Bool],false)}];W.methods=[{prop:"Signal",name:"Signal",pkg:"",typ:$funcType([],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];Z.methods=[{prop:"Exited",name:"Exited",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"ExitStatus",name:"ExitStatus",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Signaled",name:"Signaled",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Signal",name:"Signal",pkg:"",typ:$funcType([],[W],false)},{prop:"CoreDump",name:"CoreDump",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Stopped",name:"Stopped",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Continued",name:"Continued",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"StopSignal",name:"StopSignal",pkg:"",typ:$funcType([],[W],false)},{prop:"TrapCause",name:"TrapCause",pkg:"",typ:$funcType([],[$Int],false)}];FQ.methods=[{prop:"Unix",name:"Unix",pkg:"",typ:$funcType([],[$Int64,$Int64],false)},{prop:"Nano",name:"Nano",pkg:"",typ:$funcType([],[$Int64],false)}];Y.init("",[{prop:"Dev",name:"Dev",embedded:false,exported:true,typ:$Int64,tag:""},{prop:"Ino",name:"Ino",embedded:false,exported:true,typ:$Uint64,tag:""},{prop:"Mode",name:"Mode",embedded:false,exported:true,typ:$Uint32,tag:""},{prop:"Nlink",name:"Nlink",embedded:false,exported:true,typ:$Uint32,tag:""},{prop:"Uid",name:"Uid",embedded:false,exported:true,typ:$Uint32,tag:""},{prop:"Gid",name:"Gid",embedded:false,exported:true,typ:$Uint32,tag:""},{prop:"Rdev",name:"Rdev",embedded:false,exported:true,typ:$Int64,tag:""},{prop:"Size",name:"Size",embedded:false,exported:true,typ:$Int64,tag:""},{prop:"Blksize",name:"Blksize",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Blocks",name:"Blocks",embedded:false,exported:true,typ:$Int32,tag:""},{prop:"Atime",name:"Atime",embedded:false,exported:true,typ:$Int64,tag:""},{prop:"AtimeNsec",name:"AtimeNsec",embedded:false,exported:true,typ:$Int64,tag:""},{prop:"Mtime",name:"Mtime",embedded:false,exported:true,typ:$Int64,tag:""},{prop:"MtimeNsec",name:"MtimeNsec",embedded:false,exported:true,typ:$Int64,tag:""},{prop:"Ctime",name:"Ctime",embedded:false,exported:true,typ:$Int64,tag:""},{prop:"CtimeNsec",name:"CtimeNsec",embedded:false,exported:true,typ:$Int64,tag:""}]);AA.init("",[{prop:"Utime",name:"Utime",embedded:false,exported:true,typ:AY,tag:""},{prop:"Stime",name:"Stime",embedded:false,exported:true,typ:AY,tag:""}]);AB.init("",[{prop:"Dir",name:"Dir",embedded:false,exported:true,typ:$String,tag:""},{prop:"Env",name:"Env",embedded:false,exported:true,typ:FC,tag:""},{prop:"Files",name:"Files",embedded:false,exported:true,typ:FN,tag:""},{prop:"Sys",name:"Sys",embedded:false,exported:true,typ:FO,tag:""}]);AC.init("",[]);AW.init("",[]);AY.init("",[{prop:"Sec",name:"Sec",embedded:false,exported:true,typ:$Int64,tag:""},{prop:"Usec",name:"Usec",embedded:false,exported:true,typ:$Int64,tag:""}]);BH.init([]);BI.init("",[{prop:"Port",name:"Port",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Addr",name:"Addr",embedded:false,exported:true,typ:FR,tag:""}]);BJ.init("",[{prop:"Port",name:"Port",embedded:false,exported:true,typ:$Int,tag:""},{prop:"ZoneId",name:"ZoneId",embedded:false,exported:true,typ:$Uint32,tag:""},{prop:"Addr",name:"Addr",embedded:false,exported:true,typ:FS,tag:""}]);CB.init([{prop:"Control",name:"Control",pkg:"",typ:$funcType([FT],[$error],false)},{prop:"Read",name:"Read",pkg:"",typ:$funcType([FU],[$error],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([FU],[$error],false)}]);CW.init("syscall",[{prop:"path",name:"path",embedded:false,exported:false,typ:$String,tag:""},{prop:"entries",name:"entries",embedded:false,exported:false,typ:FC,tag:""},{prop:"dirIdx",name:"dirIdx",embedded:false,exported:false,typ:$Int,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"seeked",name:"seeked",embedded:false,exported:false,typ:$Bool,tag:""}]);FJ.init("syscall",[{prop:"val",name:"val",embedded:false,exported:false,typ:E.Value,tag:""},{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=F.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.ForkLock=new D.RWMutex.ptr(new D.Mutex.ptr(0,0),0,0,0,0);CX=new D.Mutex.ptr(0,0);EL=new D.Once.ptr(0,new D.Mutex.ptr(0,0));EM=new D.RWMutex.ptr(new D.Mutex.ptr(0,0),0,0,0,0);EN=false;L=$toNativeArray($kindString,["","Operation not permitted","No such file or directory","No such process","Interrupted system call","I/O error","No such device or address","Argument list too long","Exec format error","Bad file number","No child processes","Try again","Out of memory","Permission denied","Bad address","","Device or resource busy","File exists","Cross-device link","No such device","Not a directory","Is a directory","Invalid argument","File table overflow","Too many open files","Not a typewriter","","File too large","No space left on device","Illegal seek","Read-only file system","Too many links","Broken pipe","Math arg out of domain of func","Math result not representable","Deadlock condition","File name too long","No record locks available","not implemented on js","Directory not empty","Too many symbolic links","","No message of desired type","Identifier removed","Channel number out of range","Level 2 not synchronized","Level 3 halted","Level 3 reset","Link number out of range","Protocol driver not attached","No CSI structure available","Level 2 halted","Invalid exchange","Invalid request descriptor","Exchange full","No anode","Invalid request code","Invalid slot","","Bad font file fmt","Device not a stream","No data (for no delay io)","Timer expired","Out of streams resources","Machine is not on the network","Package not installed","The object is remote","The link has been severed","Advertise error","Srmount error","Communication error on send","Protocol error","Multihop attempted","Cross mount point (not really error)","Trying to read unreadable message","Value too large for defined data type","Given log. name not unique","f.d. invalid for this operation","Remote address changed","Can't access a needed shared lib","Accessing a corrupted shared lib",".lib section in a.out corrupted","Attempting to link in too many libs","Attempting to exec a shared library","","","","","Socket operation on non-socket","Destination address required","Message too long","Protocol wrong type for socket","Protocol not available","Unknown protocol","Socket type not supported","Operation not supported on transport endpoint","Protocol family not supported","Address family not supported by protocol family","Address already in use","Address not available","Network interface is not configured","Network is unreachable","","Connection aborted","Connection reset by peer","No buffer space available","Socket is already connected","Socket is not connected","Can't send after socket shutdown","","Connection timed out","Connection refused","Host is down","Host is unreachable","Socket already connected","Connection already in progress","","","","","","","Quota exceeded","No medium (in tape drive)","","Operation canceled.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Inode is remote (not really error)","Inappropriate file type or format","No more files","","No such host or network path","Filename exists with different case"]);M=new V(11);N=new V(22);O=new V(2);Q=$makeMap($String.keyFor,[{k:"EPERM",v:1},{k:"ENOENT",v:2},{k:"ESRCH",v:3},{k:"EINTR",v:4},{k:"EIO",v:5},{k:"ENXIO",v:6},{k:"E2BIG",v:7},{k:"ENOEXEC",v:8},{k:"EBADF",v:9},{k:"ECHILD",v:10},{k:"EAGAIN",v:11},{k:"ENOMEM",v:12},{k:"EACCES",v:13},{k:"EFAULT",v:14},{k:"EBUSY",v:16},{k:"EEXIST",v:17},{k:"EXDEV",v:18},{k:"ENODEV",v:19},{k:"ENOTDIR",v:20},{k:"EISDIR",v:21},{k:"EINVAL",v:22},{k:"ENFILE",v:23},{k:"EMFILE",v:24},{k:"ENOTTY",v:25},{k:"EFBIG",v:27},{k:"ENOSPC",v:28},{k:"ESPIPE",v:29},{k:"EROFS",v:30},{k:"EMLINK",v:31},{k:"EPIPE",v:32},{k:"ENAMETOOLONG",v:36},{k:"ENOSYS",v:38},{k:"EDQUOT",v:122},{k:"EDOM",v:33},{k:"ERANGE",v:34},{k:"EDEADLK",v:35},{k:"ENOLCK",v:37},{k:"ENOTEMPTY",v:39},{k:"ELOOP",v:40},{k:"ENOMSG",v:42},{k:"EIDRM",v:43},{k:"ECHRNG",v:44},{k:"EL2NSYNC",v:45},{k:"EL3HLT",v:46},{k:"EL3RST",v:47},{k:"ELNRNG",v:48},{k:"EUNATCH",v:49},{k:"ENOCSI",v:50},{k:"EL2HLT",v:51},{k:"EBADE",v:52},{k:"EBADR",v:53},{k:"EXFULL",v:54},{k:"ENOANO",v:55},{k:"EBADRQC",v:56},{k:"EBADSLT",v:57},{k:"EDEADLOCK",v:35},{k:"EBFONT",v:59},{k:"ENOSTR",v:60},{k:"ENODATA",v:61},{k:"ETIME",v:62},{k:"ENOSR",v:63},{k:"ENONET",v:64},{k:"ENOPKG",v:65},{k:"EREMOTE",v:66},{k:"ENOLINK",v:67},{k:"EADV",v:68},{k:"ESRMNT",v:69},{k:"ECOMM",v:70},{k:"EPROTO",v:71},{k:"EMULTIHOP",v:72},{k:"EDOTDOT",v:73},{k:"EBADMSG",v:74},{k:"EOVERFLOW",v:75},{k:"ENOTUNIQ",v:76},{k:"EBADFD",v:77},{k:"EREMCHG",v:78},{k:"ELIBACC",v:79},{k:"ELIBBAD",v:80},{k:"ELIBSCN",v:81},{k:"ELIBMAX",v:82},{k:"ELIBEXEC",v:83},{k:"EILSEQ",v:84},{k:"EUSERS",v:87},{k:"ENOTSOCK",v:88},{k:"EDESTADDRREQ",v:89},{k:"EMSGSIZE",v:90},{k:"EPROTOTYPE",v:91},{k:"ENOPROTOOPT",v:92},{k:"EPROTONOSUPPORT",v:93},{k:"ESOCKTNOSUPPORT",v:94},{k:"EOPNOTSUPP",v:95},{k:"EPFNOSUPPORT",v:96},{k:"EAFNOSUPPORT",v:97},{k:"EADDRINUSE",v:98},{k:"EADDRNOTAVAIL",v:99},{k:"ENETDOWN",v:100},{k:"ENETUNREACH",v:101},{k:"ENETRESET",v:102},{k:"ECONNABORTED",v:103},{k:"ECONNRESET",v:104},{k:"ENOBUFS",v:105},{k:"EISCONN",v:106},{k:"ENOTCONN",v:107},{k:"ESHUTDOWN",v:108},{k:"ETOOMANYREFS",v:109},{k:"ETIMEDOUT",v:110},{k:"ECONNREFUSED",v:111},{k:"EHOSTDOWN",v:112},{k:"EHOSTUNREACH",v:113},{k:"EALREADY",v:114},{k:"EINPROGRESS",v:115},{k:"ESTALE",v:116},{k:"ENOTSUP",v:95},{k:"ENOMEDIUM",v:123},{k:"ECANCELED",v:125},{k:"ELBIN",v:2048},{k:"EFTYPE",v:2049},{k:"ENMFILE",v:2050},{k:"EPROCLIM",v:2051},{k:"ENOSHARE",v:2052},{k:"ECASECLASH",v:2053},{k:"EWOULDBLOCK",v:11}]);X=FB.zero();CM=$clone($clone(E.Global(),E.Value).Get("process"),E.Value);CN=$clone($clone(E.Global(),E.Value).Get("fs"),E.Value);CO=$clone($clone(CN,E.Value).Get("constants"),E.Value);CP=$clone($clone(E.Global(),E.Value).Get("Uint8Array"),E.Value);CQ=$clone($clone(CO,E.Value).Get("O_WRONLY"),E.Value).Int();CR=$clone($clone(CO,E.Value).Get("O_RDWR"),E.Value).Int();CS=$clone($clone(CO,E.Value).Get("O_CREAT"),E.Value).Int();CT=$clone($clone(CO,E.Value).Get("O_TRUNC"),E.Value).Int();CU=$clone($clone(CO,E.Value).Get("O_APPEND"),E.Value).Int();CV=$clone($clone(CO,E.Value).Get("O_EXCL"),E.Value).Int();CY=$makeMap($Int.keyFor,[{k:0,v:new CW.ptr("",FC.nil,0,new $Int64(0,0),false)},{k:1,v:new CW.ptr("",FC.nil,0,new $Int64(0,0),false)},{k:2,v:new CW.ptr("",FC.nil,0,new $Int64(0,0),false)}]);g=CF();$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}EO=g;}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/syscall/unix"]=(function(){var $pkg={},$init,A,B,C,D,E,F,G,H,I,J;A=$packages["syscall"];B=function(a){var a,b,c,d,e;b=false;c=$ifaceNil;d=false;e=$ifaceNil;b=d;c=e;return[b,c];};$pkg.IsNonblock=B;C=function(a,b,c,d){var a,b,c,d;return[0,new A.Errno(38)];};$pkg.RecvfromInet4=C;D=function(a,b,c,d){var a,b,c,d,e,f,g,h;e=0;f=$ifaceNil;g=0;h=new A.Errno(38);e=g;f=h;return[e,f];};$pkg.RecvfromInet6=D;E=function(a,b,c,d){var a,b,c,d,e;e=$ifaceNil;e=new A.Errno(38);return e;};$pkg.SendtoInet4=E;F=function(a,b,c,d){var a,b,c,d,e;e=$ifaceNil;e=new A.Errno(38);return e;};$pkg.SendtoInet6=F;G=function(a,b,c,d,e){var a,b,c,d,e,f,g,h,i;f=0;g=$ifaceNil;h=0;i=new A.Errno(38);f=h;g=i;return[f,g];};$pkg.SendmsgNInet4=G;H=function(a,b,c,d,e){var a,b,c,d,e,f,g,h,i;f=0;g=$ifaceNil;h=0;i=new A.Errno(38);f=h;g=i;return[f,g];};$pkg.SendmsgNInet6=H;I=function(a,b,c,d,e){var a,b,c,d,e,f,g,h,i,j,k,l,m;f=0;g=0;h=0;i=$ifaceNil;j=0;k=0;l=0;m=new A.Errno(38);f=j;g=k;h=l;i=m;return[f,g,h,i];};$pkg.RecvmsgInet4=I;J=function(a,b,c,d,e){var a,b,c,d,e,f,g,h,i,j,k,l,m;f=0;g=0;h=0;i=$ifaceNil;j=0;k=0;l=0;m=new A.Errno(38);f=j;g=k;h=l;i=m;return[f,g,h,i];};$pkg.RecvmsgInet6=J;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/gopherjs/gopherjs/nosync"]=(function(){var $pkg={},$init,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q;A=$pkg.Pool=$newType(0,$kindStruct,"nosync.Pool",true,"github.com/gopherjs/gopherjs/nosync",true,function(store_,New_){this.$val=this;if(arguments.length===0){this.store=G.nil;this.New=$throwNilPointerError;return;}this.store=store_;this.New=New_;});B=$pkg.Once=$newType(0,$kindStruct,"nosync.Once",true,"github.com/gopherjs/gopherjs/nosync",true,function(doing_,done_){this.$val=this;if(arguments.length===0){this.doing=false;this.done=false;return;}this.doing=doing_;this.done=done_;});C=$pkg.Mutex=$newType(0,$kindStruct,"nosync.Mutex",true,"github.com/gopherjs/gopherjs/nosync",true,function(locked_){this.$val=this;if(arguments.length===0){this.locked=false;return;}this.locked=locked_;});D=$pkg.RWMutex=$newType(0,$kindStruct,"nosync.RWMutex",true,"github.com/gopherjs/gopherjs/nosync",true,function(writeLocked_,readLockCounter_){this.$val=this;if(arguments.length===0){this.writeLocked=false;this.readLockCounter=0;return;}this.writeLocked=writeLocked_;this.readLockCounter=readLockCounter_;});E=$pkg.WaitGroup=$newType(0,$kindStruct,"nosync.WaitGroup",true,"github.com/gopherjs/gopherjs/nosync",true,function(counter_){this.$val=this;if(arguments.length===0){this.counter=0;return;}this.counter=counter_;});F=$pkg.Map=$newType(0,$kindStruct,"nosync.Map",true,"github.com/gopherjs/gopherjs/nosync",true,function(m_){this.$val=this;if(arguments.length===0){this.m=false;return;}this.m=m_;});G=$sliceType($emptyInterface);H=$ptrType(A);I=$funcType([],[$emptyInterface],false);J=$funcType([],[],false);K=$ptrType(B);L=$ptrType(C);M=$ptrType(D);N=$ptrType(E);O=$funcType([$emptyInterface,$emptyInterface],[$Bool],false);P=$ptrType(F);Q=$mapType($emptyInterface,$emptyInterface);A.ptr.prototype.Get=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.store.$length===0){$s=1;continue;}$s=2;continue;case 1:if(!(a.New===$throwNilPointerError)){$s=3;continue;}$s=4;continue;case 3:b=a.New();$s=5;case 5:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=6;case 6:return c;case 4:$s=-1;return $ifaceNil;case 2:f=(d=a.store,e=a.store.$length-1>>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]));a.store=$subslice(a.store,0,(a.store.$length-1>>0));$s=-1;return f;}return;}var $f={$blk:A.ptr.prototype.Get,$c:true,$r,a,b,c,d,e,f,$s};return $f;};A.prototype.Get=function(){return this.$val.Get();};A.ptr.prototype.Put=function(a){var a,b;b=this;if($interfaceIsEqual(a,$ifaceNil)){return;}b.store=$append(b.store,a);};A.prototype.Put=function(a){return this.$val.Put(a);};B.ptr.prototype.Do=function(a){var{a,b,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];b[0]=this;if(b[0].done){$s=1;continue;}$s=2;continue;case 1:$s=3;case 3:return;case 2:if(b[0].doing){$panic(new $String("nosync: Do called within f"));}b[0].doing=true;$deferred.push([(function(b){return function(){b[0].doing=false;b[0].done=true;};})(b),[]]);$r=a();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:B.ptr.prototype.Do,$c:true,$r,a,b,$s,$deferred};return $f;}}};B.prototype.Do=function(a){return this.$val.Do(a);};C.ptr.prototype.Lock=function(){var a;a=this;if(a.locked){$panic(new $String("nosync: mutex is already locked"));}a.locked=true;};C.prototype.Lock=function(){return this.$val.Lock();};C.ptr.prototype.Unlock=function(){var a;a=this;if(!a.locked){$panic(new $String("nosync: unlock of unlocked mutex"));}a.locked=false;};C.prototype.Unlock=function(){return this.$val.Unlock();};D.ptr.prototype.Lock=function(){var a;a=this;if(!((a.readLockCounter===0))||a.writeLocked){$panic(new $String("nosync: mutex is already locked"));}a.writeLocked=true;};D.prototype.Lock=function(){return this.$val.Lock();};D.ptr.prototype.Unlock=function(){var a;a=this;if(!a.writeLocked){$panic(new $String("nosync: unlock of unlocked mutex"));}a.writeLocked=false;};D.prototype.Unlock=function(){return this.$val.Unlock();};D.ptr.prototype.RLock=function(){var a;a=this;if(a.writeLocked){$panic(new $String("nosync: mutex is already locked"));}a.readLockCounter=a.readLockCounter+(1)>>0;};D.prototype.RLock=function(){return this.$val.RLock();};D.ptr.prototype.RUnlock=function(){var a;a=this;if(a.readLockCounter===0){$panic(new $String("nosync: unlock of unlocked mutex"));}a.readLockCounter=a.readLockCounter-(1)>>0;};D.prototype.RUnlock=function(){return this.$val.RUnlock();};E.ptr.prototype.Add=function(a){var a,b;b=this;b.counter=b.counter+(a)>>0;if(b.counter<0){$panic(new $String("sync: negative WaitGroup counter"));}};E.prototype.Add=function(a){return this.$val.Add(a);};E.ptr.prototype.Done=function(){var a;a=this;a.Add(-1);};E.prototype.Done=function(){return this.$val.Done();};E.ptr.prototype.Wait=function(){var a;a=this;if(!((a.counter===0))){$panic(new $String("sync: WaitGroup counter not zero"));}};E.prototype.Wait=function(){return this.$val.Wait();};F.ptr.prototype.Load=function(a){var a,b,c,d,e,f,g,h;b=$ifaceNil;c=false;d=this;e=(f=$mapIndex(d.m,$emptyInterface.keyFor(a)),f!==undefined?[f.v,true]:[$ifaceNil,false]);b=e[0];c=e[1];g=b;h=c;b=g;c=h;return[b,c];};F.prototype.Load=function(a){return this.$val.Load(a);};F.ptr.prototype.Store=function(a,b){var a,b,c,d;c=this;if(c.m===false){c.m=new $global.Map();}d=a;(c.m||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(d),{k:d,v:b});};F.prototype.Store=function(a,b){return this.$val.Store(a,b);};F.ptr.prototype.LoadOrStore=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;c=$ifaceNil;d=false;e=this;f=(g=$mapIndex(e.m,$emptyInterface.keyFor(a)),g!==undefined?[g.v,true]:[$ifaceNil,false]);h=f[0];i=f[1];if(i){j=h;k=true;c=j;d=k;return[c,d];}if(e.m===false){e.m=new $global.Map();}l=a;(e.m||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(l),{k:l,v:b});m=b;n=false;c=m;d=n;return[c,d];};F.prototype.LoadOrStore=function(a,b){return this.$val.LoadOrStore(a,b);};F.ptr.prototype.Delete=function(a){var a,b;b=this;if(b.m===false){return;}$mapDelete(b.m,$emptyInterface.keyFor(a));};F.prototype.Delete=function(a){return this.$val.Delete(a);};F.ptr.prototype.Range=function(a){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.m;d=0;e=c?c.keys():undefined;f=c?c.size:0;case 1:if(!(d=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0]));return n;};$pkg.FixedZone=AC;W.ptr.prototype.lookup=function(l){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{l});$s=$s||0;s:while(true){switch($s){case 0:m="";n=0;o=new $Int64(0,0);p=new $Int64(0,0);q=false;r=this;s=r.get();$s=1;case 1:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;if(r.zone.$length===0){m="UTC";n=0;o=new $Int64(-2147483648,0);p=new $Int64(2147483647,4294967295);q=false;$s=-1;return[m,n,o,p,q];}t=r.cacheZone;if(!(t===EH.nil)&&(u=r.cacheStart,(u.$high=x.$length?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+0])).when,(l.$high=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+z]));m=aa.name;n=aa.offset;o=new $Int64(-2147483648,0);if(r.tx.$length>0){p=(ab=r.tx,(0>=ab.$length?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+0])).when;}else{p=new $Int64(2147483647,4294967295);}q=aa.isDST;$s=-1;return[m,n,o,p,q];}ac=r.tx;p=new $Int64(2147483647,4294967295);ad=0;ae=ac.$length;while(true){if(!((ae-ad>>0)>1)){break;}ag=ad+(af=((ae-ad>>0))/2,(af===af&&af!==1/0&&af!==-1/0)?af>>0:$throwRuntimeError("integer divide by zero"))>>0;ah=((ag<0||ag>=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+ag]).when;if((l.$high=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+ad]).index,((aj<0||aj>=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+aj]));m=ak.name;n=ak.offset;o=((ad<0||ad>=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+ad]).when;q=ak.isDST;if((ad===(ac.$length-1>>0))&&!(r.extend==="")){al=AD(r.extend,p,l);am=al[0];an=al[1];ao=al[2];ap=al[3];aq=al[4];ar=al[5];if(ar){as=am;at=an;au=ao;av=ap;aw=aq;m=as;n=at;o=au;p=av;q=aw;$s=-1;return[m,n,o,p,q];}}$s=-1;return[m,n,o,p,q];}return;}var $f={$blk:W.ptr.prototype.lookup,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};W.prototype.lookup=function(l){return this.$val.lookup(l);};W.ptr.prototype.lookupFirstZone=function(){var l,m,n,o,p,q,r,s,t,u,v;l=this;if(!l.firstZoneUsed()){return 0;}if(l.tx.$length>0&&(m=l.zone,n=(o=l.tx,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0])).index,((n<0||n>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n])).isDST){q=(((p=l.tx,(0>=p.$length?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+0])).index>>0))-1>>0;while(true){if(!(q>=0)){break;}if(!(r=l.zone,((q<0||q>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+q])).isDST){return q;}q=q-(1)>>0;}}s=l.zone;t=0;while(true){if(!(t=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+u])).isDST){return u;}t++;}return 0;};W.prototype.lookupFirstZone=function(){return this.$val.lookupFirstZone();};W.ptr.prototype.firstZoneUsed=function(){var l,m,n,o;l=this;m=l.tx;n=0;while(true){if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]),Y);if(o.index===0){return true;}n++;}return false;};W.prototype.firstZoneUsed=function(){return this.$val.firstZoneUsed();};AD=function(l,m,n){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;o="";p=0;q=new $Int64(0,0);r=new $Int64(0,0);s=false;t=false;u="";v="";w=u;x=v;y=0;z=0;aa=y;ab=z;ac=AE(l);w=ac[0];l=ac[1];t=ac[2];if(t){ad=AF(l);aa=ad[0];l=ad[1];t=ad[2];}if(!t){ae="";af=0;ag=new $Int64(0,0);ah=new $Int64(0,0);ai=false;aj=false;o=ae;p=af;q=ag;r=ah;s=ai;t=aj;return[o,p,q,r,s,t];}aa=-aa;if((l.length===0)||(l.charCodeAt(0)===44)){ak=w;al=aa;am=m;an=new $Int64(2147483647,4294967295);ao=false;ap=true;o=ak;p=al;q=am;r=an;s=ao;t=ap;return[o,p,q,r,s,t];}aq=AE(l);x=aq[0];l=aq[1];t=aq[2];if(t){if((l.length===0)||(l.charCodeAt(0)===44)){ab=aa+3600>>0;}else{ar=AF(l);ab=ar[0];l=ar[1];t=ar[2];ab=-ab;}}if(!t){as="";at=0;au=new $Int64(0,0);av=new $Int64(0,0);aw=false;ax=false;o=as;p=at;q=au;r=av;s=aw;t=ax;return[o,p,q,r,s,t];}if(l.length===0){l=",M3.2.0,M11.1.0";}if(!((l.charCodeAt(0)===44))&&!((l.charCodeAt(0)===59))){ay="";az=0;ba=new $Int64(0,0);bb=new $Int64(0,0);bc=false;bd=false;o=ay;p=az;q=ba;r=bb;s=bc;t=bd;return[o,p,q,r,s,t];}l=$substring(l,1);be=new AH.ptr(0,0,0,0,0);bf=new AH.ptr(0,0,0,0,0);bg=$clone(be,AH);bh=$clone(bf,AH);bi=AI(l);AH.copy(bg,bi[0]);l=bi[1];t=bi[2];if(!t||(l.length===0)||!((l.charCodeAt(0)===44))){bj="";bk=0;bl=new $Int64(0,0);bm=new $Int64(0,0);bn=false;bo=false;o=bj;p=bk;q=bl;r=bm;s=bn;t=bo;return[o,p,q,r,s,t];}l=$substring(l,1);bp=AI(l);AH.copy(bh,bp[0]);l=bp[1];t=bp[2];if(!t||l.length>0){bq="";br=0;bs=new $Int64(0,0);bt=new $Int64(0,0);bu=false;bv=false;o=bq;p=br;q=bs;r=bt;s=bu;t=bv;return[o,p,q,r,s,t];}bw=BB(((bx=(by=new $Int64(n.$high+14,n.$low+2006054656),new $Int64(by.$high+2147483631,by.$low+2739393024)),new $Uint64(bx.$high,bx.$low))),false);bz=bw[0];ca=bw[3];cd=(cb=(new $Int64(0,($imul(ca,86400)))),cc=$div64(n,new $Int64(0,86400),true),new $Int64(cb.$high+cc.$high,cb.$low+cc.$low));ce=BE(bz);cg=((cf=$mul64(ce,new $Uint64(0,86400)),new $Int64(cf.$high,cf.$low)));cg=(ch=new $Int64(-2147483647,3844486912),new $Int64(cg.$high+ch.$high,cg.$low+ch.$low));ci=(new $Int64(0,AK(bz,$clone(bg,AH),aa)));cj=(new $Int64(0,AK(bz,$clone(bh,AH),ab)));ck=true;cl=false;cm=ck;cn=cl;if((cj.$highcj.$high||(cd.$high===cj.$high&&cd.$low>=cj.$low))){dc=w;dd=aa;de=new $Int64(cj.$high+cg.$high,cj.$low+cg.$low);df=new $Int64(cg.$high+0,cg.$low+31536000);dg=cn;dh=true;o=dc;p=dd;q=de;r=df;s=dg;t=dh;return[o,p,q,r,s,t];}else{di=x;dj=ab;dk=new $Int64(ci.$high+cg.$high,ci.$low+cg.$low);dl=new $Int64(cj.$high+cg.$high,cj.$low+cg.$low);dm=cm;dn=true;o=di;p=dj;q=dk;r=dl;s=dm;t=dn;return[o,p,q,r,s,t];}};AE=function(l){var l,m,n,o,p,q,r,s,t,u,v,w;if(l.length===0){return["","",false];}if(!((l.charCodeAt(0)===60))){m=l;n=0;while(true){if(!(n>0)),true];}t+=u[1];}return["","",false];}};AF=function(l){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;m=0;n="";o=false;if(l.length===0){p=0;q="";r=false;m=p;n=q;o=r;return[m,n,o];}s=false;if(l.charCodeAt(0)===43){l=$substring(l,1);}else if(l.charCodeAt(0)===45){l=$substring(l,1);s=true;}t=0;u=AJ(l,0,168);t=u[0];l=u[1];o=u[2];if(!o){v=0;w="";x=false;m=v;n=w;o=x;return[m,n,o];}y=$imul(t,3600);if((l.length===0)||!((l.charCodeAt(0)===58))){if(s){y=-y;}z=y;aa=l;ab=true;m=z;n=aa;o=ab;return[m,n,o];}ac=0;ad=AJ($substring(l,1),0,59);ac=ad[0];l=ad[1];o=ad[2];if(!o){ae=0;af="";ag=false;m=ae;n=af;o=ag;return[m,n,o];}y=y+(($imul(ac,60)))>>0;if((l.length===0)||!((l.charCodeAt(0)===58))){if(s){y=-y;}ah=y;ai=l;aj=true;m=ah;n=ai;o=aj;return[m,n,o];}ak=0;al=AJ($substring(l,1),0,59);ak=al[0];l=al[1];o=al[2];if(!o){am=0;an="";ao=false;m=am;n=an;o=ao;return[m,n,o];}y=y+(ak)>>0;if(s){y=-y;}ap=y;aq=l;ar=true;m=ap;n=aq;o=ar;return[m,n,o];};AI=function(l){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;m=new AH.ptr(0,0,0,0,0);if(l.length===0){return[new AH.ptr(0,0,0,0,0),"",false];}n=false;if(l.charCodeAt(0)===74){o=0;p=AJ($substring(l,1),1,365);o=p[0];l=p[1];n=p[2];if(!n){return[new AH.ptr(0,0,0,0,0),"",false];}m.kind=0;m.day=o;}else if(l.charCodeAt(0)===77){q=0;r=AJ($substring(l,1),1,12);q=r[0];l=r[1];n=r[2];if(!n||(l.length===0)||!((l.charCodeAt(0)===46))){return[new AH.ptr(0,0,0,0,0),"",false];}s=0;t=AJ($substring(l,1),1,5);s=t[0];l=t[1];n=t[2];if(!n||(l.length===0)||!((l.charCodeAt(0)===46))){return[new AH.ptr(0,0,0,0,0),"",false];}u=0;v=AJ($substring(l,1),0,6);u=v[0];l=v[1];n=v[2];if(!n){return[new AH.ptr(0,0,0,0,0),"",false];}m.kind=2;m.day=u;m.week=s;m.mon=q;}else{w=0;x=AJ(l,0,365);w=x[0];l=x[1];n=x[2];if(!n){return[new AH.ptr(0,0,0,0,0),"",false];}m.kind=1;m.day=w;}if((l.length===0)||!((l.charCodeAt(0)===47))){m.time=7200;return[m,l,true];}y=AF($substring(l,1));z=y[0];l=y[1];n=y[2];if(!n){return[new AH.ptr(0,0,0,0,0),"",false];}m.time=z;return[m,l,true];};AJ=function(l,m,n){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;o=0;p="";q=false;if(l.length===0){r=0;s="";t=false;o=r;p=s;q=t;return[o,p,q];}o=0;u=l;v=0;while(true){if(!(v57){if((x===0)||o>0))-48>>0))>>0;if(o>n){af=0;ag="";ah=false;o=af;p=ag;q=ah;return[o,p,q];}v+=w[1];}if(o>0)),86400);if(BM(l)&&m.day>=60){o=o+(86400)>>0;}}else if(p===(1)){o=$imul(m.day,86400);}else if(p===(2)){r=(q=((m.mon+9>>0))%12,q===q?q:$throwRuntimeError("integer divide by zero"))+1>>0;s=l;if(m.mon<=2){s=s-(1)>>0;}u=(t=s/100,(t===t&&t!==1/0&&t!==-1/0)?t>>0:$throwRuntimeError("integer divide by zero"));w=(v=s%100,v===v?v:$throwRuntimeError("integer divide by zero"));ab=(x=(((((((y=((($imul(26,r))-2>>0))/10,(y===y&&y!==1/0&&y!==-1/0)?y>>0:$throwRuntimeError("integer divide by zero"))+1>>0)+w>>0)+(z=w/4,(z===z&&z!==1/0&&z!==-1/0)?z>>0:$throwRuntimeError("integer divide by zero"))>>0)+(aa=u/4,(aa===aa&&aa!==1/0&&aa!==-1/0)?aa>>0:$throwRuntimeError("integer divide by zero"))>>0)-($imul(2,u))>>0))%7,x===x?x:$throwRuntimeError("integer divide by zero"));if(ab<0){ab=ab+(7)>>0;}ac=m.day-ab>>0;if(ac<0){ac=ac+(7)>>0;}ad=1;while(true){if(!(ad>0)>=BD(((m.mon>>0)),l)){break;}ac=ac+(7)>>0;ad=ad+(1)>>0;}ac=ac+((((ae=m.mon-1>>0,((ae<0||ae>=BC.length)?($throwRuntimeError("index out of range"),undefined):BC[ae]))>>0)))>>0;if(BM(l)&&m.mon>2){ac=ac+(1)>>0;}o=$imul(ac,86400);}return(o+m.time>>0)-n>>0;};W.ptr.prototype.lookupName=function(l,m){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{l,m});$s=$s||0;s:while(true){switch($s){case 0:n=0;o=false;p=this;q=p.get();$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p.zone;s=0;case 2:if(!(s=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+t]));if(v.name===l){$s=4;continue;}$s=5;continue;case 4:y=p.lookup((x=(new $Int64(0,v.offset)),new $Int64(m.$high-x.$high,m.$low-x.$low)));$s=6;case 6:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}w=y;z=w[0];aa=w[1];if(z===v.name){ab=aa;ac=true;n=ab;o=ac;$s=-1;return[n,o];}case 5:s++;$s=2;continue;case 3:ad=p.zone;ae=0;while(true){if(!(ae=ag.$length)?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+af]));if(ah.name===l){ai=ah.offset;aj=true;n=ai;o=aj;$s=-1;return[n,o];}ae++;}$s=-1;return[n,o];}return;}var $f={$blk:W.ptr.prototype.lookupName,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};W.prototype.lookupName=function(l,m){return this.$val.lookupName(l,m);};AQ.ptr.prototype.nsec=function(){var l,m;l=this;return(((m=l.wall,new $Uint64(m.$high&0,(m.$low&1073741823)>>>0)).$low>>0));};AQ.prototype.nsec=function(){return this.$val.nsec();};AQ.ptr.prototype.sec=function(){var l,m,n,o,p;l=this;if(!((m=(n=l.wall,new $Uint64(n.$high&2147483648,(n.$low&0)>>>0)),(m.$high===0&&m.$low===0)))){return(o=((p=$shiftRightUint64($shiftLeft64(l.wall,1),31),new $Int64(p.$high,p.$low))),new $Int64(13+o.$high,3618733952+o.$low));}return l.ext;};AQ.prototype.sec=function(){return this.$val.sec();};AQ.ptr.prototype.unixSec=function(){var l,m;l=this;return(m=l.sec(),new $Int64(m.$high+-15,m.$low+2288912640));};AQ.prototype.unixSec=function(){return this.$val.unixSec();};AQ.ptr.prototype.addSec=function(l){var l,m,n,o,p,q,r,s,t,u,v,w,x,y;m=this;if(!((n=(o=m.wall,new $Uint64(o.$high&2147483648,(o.$low&0)>>>0)),(n.$high===0&&n.$low===0)))){q=((p=$shiftRightUint64($shiftLeft64(m.wall,1),31),new $Int64(p.$high,p.$low)));r=new $Int64(q.$high+l.$high,q.$low+l.$low);if((0>>0)),v=$shiftLeft64((new $Uint64(r.$high,r.$low)),30),new $Uint64(t.$high|v.$high,(t.$low|v.$low)>>>0)),new $Uint64(s.$high|2147483648,(s.$low|0)>>>0));return;}m.stripMono();}x=(w=m.ext,new $Int64(w.$high+l.$high,w.$low+l.$low));if(((y=m.ext,(x.$high>y.$high||(x.$high===y.$high&&x.$low>y.$low))))===((l.$high>0||(l.$high===0&&l.$low>0)))){m.ext=x;}else if((l.$high>0||(l.$high===0&&l.$low>0))){m.ext=new $Int64(2147483647,4294967295);}else{m.ext=new $Int64(-2147483648,1);}};AQ.prototype.addSec=function(l){return this.$val.addSec(l);};AQ.ptr.prototype.setLoc=function(l){var l,m;m=this;if(l===Z){l=EL.nil;}m.stripMono();m.loc=l;};AQ.prototype.setLoc=function(l){return this.$val.setLoc(l);};AQ.ptr.prototype.stripMono=function(){var l,m,n,o,p;l=this;if(!((m=(n=l.wall,new $Uint64(n.$high&2147483648,(n.$low&0)>>>0)),(m.$high===0&&m.$low===0)))){l.ext=l.sec();l.wall=(o=l.wall,p=new $Uint64(0,1073741823),new $Uint64(o.$high&p.$high,(o.$low&p.$low)>>>0));}};AQ.prototype.stripMono=function(){return this.$val.stripMono();};AQ.ptr.prototype.After=function(l){var l,m,n,o,p,q,r,s,t,u;m=this;if(!((n=(o=(p=m.wall,q=l.wall,new $Uint64(p.$high&q.$high,(p.$low&q.$low)>>>0)),new $Uint64(o.$high&2147483648,(o.$low&0)>>>0)),(n.$high===0&&n.$low===0)))){return(r=m.ext,s=l.ext,(r.$high>s.$high||(r.$high===s.$high&&r.$low>s.$low)));}t=m.sec();u=l.sec();return(t.$high>u.$high||(t.$high===u.$high&&t.$low>u.$low))||(t.$high===u.$high&&t.$low===u.$low)&&m.nsec()>l.nsec();};AQ.prototype.After=function(l){return this.$val.After(l);};AQ.ptr.prototype.Before=function(l){var l,m,n,o,p,q,r,s,t,u;m=this;if(!((n=(o=(p=m.wall,q=l.wall,new $Uint64(p.$high&q.$high,(p.$low&q.$low)>>>0)),new $Uint64(o.$high&2147483648,(o.$low&0)>>>0)),(n.$high===0&&n.$low===0)))){return(r=m.ext,s=l.ext,(r.$high>>0)),new $Uint64(o.$high&2147483648,(o.$low&0)>>>0)),(n.$high===0&&n.$low===0)))){return(r=m.ext,s=l.ext,(r.$high===s.$high&&r.$low===s.$low));}return(t=m.sec(),u=l.sec(),(t.$high===u.$high&&t.$low===u.$low))&&(m.nsec()===l.nsec());};AQ.prototype.Equal=function(l){return this.$val.Equal(l);};AR.prototype.String=function(){var l,m,n,o;l=this.$val;if(1<=l&&l<=12){return(m=l-1>>0,((m<0||m>=CY.$length)?($throwRuntimeError("index out of range"),undefined):CY.$array[CY.$offset+m]));}n=$makeSlice(EK,20);o=AX(n,(new $Uint64(0,l)));return"%!Month("+($bytesToString($subslice(n,o)))+")";};$ptrType(AR).prototype.String=function(){return new AR(this.$get()).String();};AS.prototype.String=function(){var l,m,n;l=this.$val;if(0<=l&&l<=6){return((l<0||l>=CV.$length)?($throwRuntimeError("index out of range"),undefined):CV.$array[CV.$offset+l]);}m=$makeSlice(EK,20);n=AX(m,(new $Uint64(0,l)));return"%!Weekday("+($bytesToString($subslice(m,n)))+")";};$ptrType(AS).prototype.String=function(){return new AS(this.$get()).String();};AQ.ptr.prototype.IsZero=function(){var l,m;l=this;return(m=l.sec(),(m.$high===0&&m.$low===0))&&(l.nsec()===0);};AQ.prototype.IsZero=function(){return this.$val.IsZero();};AQ.ptr.prototype.abs=function(){var{l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=this;m=l.loc;if(m===EL.nil||m===AA){$s=1;continue;}$s=2;continue;case 1:n=m.get();$s=3;case 3:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;case 2:o=l.unixSec();if(!(m===Z)){$s=4;continue;}$s=5;continue;case 4:if(!(m.cacheZone===EH.nil)&&(p=m.cacheStart,(p.$high>0))/86400,(n===n&&n!==1/0&&n!==-1/0)?n>>0:$throwRuntimeError("integer divide by zero"))>>0));};AQ.ptr.prototype.ISOWeek=function(){var{l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=0;m=0;n=this;o=$clone(n,AQ).abs();$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=4-AT(p)>>0;if(q===4){q=-3;}p=(r=$mul64((new $Uint64(0,q)),new $Uint64(0,86400)),new $Uint64(p.$high+r.$high,p.$low+r.$low));s=BB(p,false);l=s[0];t=s[3];u=l;v=(w=t/7,(w===w&&w!==1/0&&w!==-1/0)?w>>0:$throwRuntimeError("integer divide by zero"))+1>>0;l=u;m=v;$s=-1;return[l,m];}return;}var $f={$blk:AQ.ptr.prototype.ISOWeek,$c:true,$r,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};AQ.prototype.ISOWeek=function(){return this.$val.ISOWeek();};AQ.ptr.prototype.Clock=function(){var{l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=0;m=0;n=0;o=this;q=$clone(o,AQ).abs();$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=AU(q);$s=2;case 2:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}p=r;l=p[0];m=p[1];n=p[2];s=[l,m,n];$s=3;case 3:return s;}return;}var $f={$blk:AQ.ptr.prototype.Clock,$c:true,$r,l,m,n,o,p,q,r,s,$s};return $f;};AQ.prototype.Clock=function(){return this.$val.Clock();};AU=function(l){var l,m,n,o,p,q;m=0;n=0;o=0;o=(($div64(l,new $Uint64(0,86400),true).$low>>0));m=(p=o/3600,(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"));o=o-(($imul(m,3600)))>>0;n=(q=o/60,(q===q&&q!==1/0&&q!==-1/0)?q>>0:$throwRuntimeError("integer divide by zero"));o=o-(($imul(n,60)))>>0;return[m,n,o];};AQ.ptr.prototype.Hour=function(){var{l,m,n,o,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=this;n=$clone(l,AQ).abs();$s=1;case 1:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=(m=(($div64(n,new $Uint64(0,86400),true).$low>>0))/3600,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero"));$s=2;case 2:return o;}return;}var $f={$blk:AQ.ptr.prototype.Hour,$c:true,$r,l,m,n,o,$s};return $f;};AQ.prototype.Hour=function(){return this.$val.Hour();};AQ.ptr.prototype.Minute=function(){var{l,m,n,o,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=this;n=$clone(l,AQ).abs();$s=1;case 1:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=(m=(($div64(n,new $Uint64(0,3600),true).$low>>0))/60,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero"));$s=2;case 2:return o;}return;}var $f={$blk:AQ.ptr.prototype.Minute,$c:true,$r,l,m,n,o,$s};return $f;};AQ.prototype.Minute=function(){return this.$val.Minute();};AQ.ptr.prototype.Second=function(){var{l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=this;m=$clone(l,AQ).abs();$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=(($div64(m,new $Uint64(0,60),true).$low>>0));$s=2;case 2:return n;}return;}var $f={$blk:AQ.ptr.prototype.Second,$c:true,$r,l,m,n,$s};return $f;};AQ.prototype.Second=function(){return this.$val.Second();};AQ.ptr.prototype.Nanosecond=function(){var l;l=this;return((l.nsec()>>0));};AQ.prototype.Nanosecond=function(){return this.$val.Nanosecond();};AQ.ptr.prototype.YearDay=function(){var{l,m,n,o,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=this;n=$clone(l,AQ).date(false);$s=1;case 1:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=m[3];$s=-1;return o+1>>0;}return;}var $f={$blk:AQ.ptr.prototype.YearDay,$c:true,$r,l,m,n,o,$s};return $f;};AQ.prototype.YearDay=function(){return this.$val.YearDay();};AV.prototype.String=function(){var l,m,n,o,p,q,r,s;l=this;m=EO.zero();n=32;o=(new $Uint64(l.$high,l.$low));p=(l.$high<0||(l.$high===0&&l.$low<0));if(p){o=new $Uint64(-o.$high,-o.$low);}if((o.$high<0||(o.$high===0&&o.$low<1000000000))){q=0;n=n-(1)>>0;((n<0||n>=m.length)?($throwRuntimeError("index out of range"),undefined):m[n]=115);n=n-(1)>>0;if((o.$high===0&&o.$low===0)){return"0s";}else if((o.$high<0||(o.$high===0&&o.$low<1000))){q=0;((n<0||n>=m.length)?($throwRuntimeError("index out of range"),undefined):m[n]=110);}else if((o.$high<0||(o.$high===0&&o.$low<1000000))){q=3;n=n-(1)>>0;$copyString($subslice(new EK(m),n),"\xC2\xB5");}else{q=6;((n<0||n>=m.length)?($throwRuntimeError("index out of range"),undefined):m[n]=109);}r=AW($subslice(new EK(m),0,n),o,q);n=r[0];o=r[1];n=AX($subslice(new EK(m),0,n),o);}else{n=n-(1)>>0;((n<0||n>=m.length)?($throwRuntimeError("index out of range"),undefined):m[n]=115);s=AW($subslice(new EK(m),0,n),o,9);n=s[0];o=s[1];n=AX($subslice(new EK(m),0,n),$div64(o,new $Uint64(0,60),true));o=$div64(o,(new $Uint64(0,60)),false);if((o.$high>0||(o.$high===0&&o.$low>0))){n=n-(1)>>0;((n<0||n>=m.length)?($throwRuntimeError("index out of range"),undefined):m[n]=109);n=AX($subslice(new EK(m),0,n),$div64(o,new $Uint64(0,60),true));o=$div64(o,(new $Uint64(0,60)),false);if((o.$high>0||(o.$high===0&&o.$low>0))){n=n-(1)>>0;((n<0||n>=m.length)?($throwRuntimeError("index out of range"),undefined):m[n]=104);n=AX($subslice(new EK(m),0,n),o);}}}if(p){n=n-(1)>>0;((n<0||n>=m.length)?($throwRuntimeError("index out of range"),undefined):m[n]=45);}return($bytesToString($subslice(new EK(m),n)));};$ptrType(AV).prototype.String=function(){return this.$get().String();};AW=function(l,m,n){var l,m,n,o,p,q,r,s,t,u,v;o=0;p=new $Uint64(0,0);q=l.$length;r=false;s=0;while(true){if(!(s>0;((q<0||q>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+q]=(((t.$low<<24>>>24))+48<<24>>>24));}m=$div64(m,(new $Uint64(0,10)),false);s=s+(1)>>0;}if(r){q=q-(1)>>0;((q<0||q>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+q]=46);}u=q;v=m;o=u;p=v;return[o,p];};AX=function(l,m){var l,m,n;n=l.$length;if((m.$high===0&&m.$low===0)){n=n-(1)>>0;((n<0||n>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+n]=48);}else{while(true){if(!((m.$high>0||(m.$high===0&&m.$low>0)))){break;}n=n-(1)>>0;((n<0||n>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+n]=((($div64(m,new $Uint64(0,10),true).$low<<24>>>24))+48<<24>>>24));m=$div64(m,(new $Uint64(0,10)),false);}}return n;};AV.prototype.Nanoseconds=function(){var l;l=this;return(new $Int64(l.$high,l.$low));};$ptrType(AV).prototype.Nanoseconds=function(){return this.$get().Nanoseconds();};AV.prototype.Microseconds=function(){var l;l=this;return $div64((new $Int64(l.$high,l.$low)),new $Int64(0,1000),false);};$ptrType(AV).prototype.Microseconds=function(){return this.$get().Microseconds();};AV.prototype.Milliseconds=function(){var l;l=this;return $div64((new $Int64(l.$high,l.$low)),new $Int64(0,1000000),false);};$ptrType(AV).prototype.Milliseconds=function(){return this.$get().Milliseconds();};AV.prototype.Seconds=function(){var l,m,n;l=this;m=$div64(l,new AV(0,1000000000),false);n=$div64(l,new AV(0,1000000000),true);return($flatten64(m))+($flatten64(n))/1e+09;};$ptrType(AV).prototype.Seconds=function(){return this.$get().Seconds();};AV.prototype.Minutes=function(){var l,m,n;l=this;m=$div64(l,new AV(13,4165425152),false);n=$div64(l,new AV(13,4165425152),true);return($flatten64(m))+($flatten64(n))/6e+10;};$ptrType(AV).prototype.Minutes=function(){return this.$get().Minutes();};AV.prototype.Hours=function(){var l,m,n;l=this;m=$div64(l,new AV(838,817405952),false);n=$div64(l,new AV(838,817405952),true);return($flatten64(m))+($flatten64(n))/3.6e+12;};$ptrType(AV).prototype.Hours=function(){return this.$get().Hours();};AV.prototype.Truncate=function(l){var l,m,n;m=this;if((l.$high<0||(l.$high===0&&l.$low<=0))){return m;}return(n=$div64(m,l,true),new AV(m.$high-n.$high,m.$low-n.$low));};$ptrType(AV).prototype.Truncate=function(l){return this.$get().Truncate(l);};AY=function(l,m){var l,m,n,o,p,q;return(n=(o=(new $Uint64(l.$high,l.$low)),p=(new $Uint64(l.$high,l.$low)),new $Uint64(o.$high+p.$high,o.$low+p.$low)),q=(new $Uint64(m.$high,m.$low)),(n.$highm.$high||(r.$high===m.$high&&r.$low>m.$low))){return r;}return new AV(2147483647,4294967295);};$ptrType(AV).prototype.Round=function(l){return this.$get().Round(l);};AQ.ptr.prototype.Add=function(l){var aa,ab,ac,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;m=this;o=((n=$div64(l,new AV(0,1000000000),false),new $Int64(n.$high,n.$low)));q=m.nsec()+(((p=$div64(l,new AV(0,1000000000),true),p.$low+((p.$high>>31)*4294967296))>>0))>>0;if(q>=1000000000){o=(r=new $Int64(0,1),new $Int64(o.$high+r.$high,o.$low+r.$low));q=q-(1000000000)>>0;}else if(q<0){o=(s=new $Int64(0,1),new $Int64(o.$high-s.$high,o.$low-s.$low));q=q+(1000000000)>>0;}m.wall=(t=(u=m.wall,new $Uint64(u.$high&~0,(u.$low&~1073741823)>>>0)),v=(new $Uint64(0,q)),new $Uint64(t.$high|v.$high,(t.$low|v.$low)>>>0));m.addSec(o);if(!((w=(x=m.wall,new $Uint64(x.$high&2147483648,(x.$low&0)>>>0)),(w.$high===0&&w.$low===0)))){aa=(y=m.ext,z=(new $Int64(l.$high,l.$low)),new $Int64(y.$high+z.$high,y.$low+z.$low));if((l.$high<0||(l.$high===0&&l.$low<0))&&(ab=m.ext,(aa.$high>ab.$high||(aa.$high===ab.$high&&aa.$low>ab.$low)))||(l.$high>0||(l.$high===0&&l.$low>0))&&(ac=m.ext,(aa.$high>>0)),new $Uint64(o.$high&2147483648,(o.$low&0)>>>0)),(n.$high===0&&n.$low===0)))){r=m.ext;s=l.ext;u=((t=new $Int64(r.$high-s.$high,r.$low-s.$low),new AV(t.$high,t.$low)));if((u.$high<0||(u.$high===0&&u.$low<0))&&(r.$high>s.$high||(r.$high===s.$high&&r.$low>s.$low))){return new AV(2147483647,4294967295);}if((u.$high>0||(u.$high===0&&u.$low>0))&&(r.$high>0))),new AV(v.$high+z.$high,v.$low+z.$low));if($clone($clone(l,AQ).Add(aa),AQ).Equal($clone(m,AQ))){return aa;}else if($clone(m,AQ).Before($clone(l,AQ))){return new AV(-2147483648,0);}else{return new AV(2147483647,4294967295);}};AQ.prototype.Sub=function(l){return this.$val.Sub(l);};AQ.ptr.prototype.AddDate=function(l,m,n){var{aa,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{l,m,n});$s=$s||0;s:while(true){switch($s){case 0:o=this;q=$clone(o,AQ).Date();$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p[0];s=p[1];t=p[2];v=$clone(o,AQ).Clock();$s=2;case 2:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=v;w=u[0];x=u[1];y=u[2];z=BO(r+l>>0,s+((m>>0))>>0,t+n>>0,w,x,y,((o.nsec()>>0)),$clone(o,AQ).Location());$s=3;case 3:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;$s=4;case 4:return aa;}return;}var $f={$blk:AQ.ptr.prototype.AddDate,$c:true,$r,aa,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AQ.prototype.AddDate=function(l,m,n){return this.$val.AddDate(l,m,n);};AQ.ptr.prototype.date=function(l){var{l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{l});$s=$s||0;s:while(true){switch($s){case 0:m=0;n=0;o=0;p=0;q=this;s=$clone(q,AQ).abs();$s=1;case 1:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=BB(s,l);$s=2;case 2:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}r=t;m=r[0];n=r[1];o=r[2];p=r[3];u=[m,n,o,p];$s=3;case 3:return u;}return;}var $f={$blk:AQ.ptr.prototype.date,$c:true,$r,l,m,n,o,p,q,r,s,t,u,$s};return $f;};AQ.prototype.date=function(l){return this.$val.date(l);};BB=function(l,m){var aa,ab,ac,ad,ae,af,ag,ah,ai,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;n=0;o=0;p=0;q=0;r=$div64(l,new $Uint64(0,86400),false);s=$div64(r,new $Uint64(0,146097),false);t=$mul64(new $Uint64(0,400),s);r=(u=$mul64(new $Uint64(0,146097),s),new $Uint64(r.$high-u.$high,r.$low-u.$low));s=$div64(r,new $Uint64(0,36524),false);s=(v=$shiftRightUint64(s,2),new $Uint64(s.$high-v.$high,s.$low-v.$low));t=(w=$mul64(new $Uint64(0,100),s),new $Uint64(t.$high+w.$high,t.$low+w.$low));r=(x=$mul64(new $Uint64(0,36524),s),new $Uint64(r.$high-x.$high,r.$low-x.$low));s=$div64(r,new $Uint64(0,1461),false);t=(y=$mul64(new $Uint64(0,4),s),new $Uint64(t.$high+y.$high,t.$low+y.$low));r=(z=$mul64(new $Uint64(0,1461),s),new $Uint64(r.$high-z.$high,r.$low-z.$low));s=$div64(r,new $Uint64(0,365),false);s=(aa=$shiftRightUint64(s,2),new $Uint64(s.$high-aa.$high,s.$low-aa.$low));t=(ab=s,new $Uint64(t.$high+ab.$high,t.$low+ab.$low));r=(ac=$mul64(new $Uint64(0,365),s),new $Uint64(r.$high-ac.$high,r.$low-ac.$low));n=(((ad=(ae=(new $Int64(t.$high,t.$low)),new $Int64(ae.$high+-69,ae.$low+4075721025)),ad.$low+((ad.$high>>31)*4294967296))>>0));q=((r.$low>>0));if(!m){return[n,o,p,q];}p=q;if(BM(n)){if(p>59){p=p-(1)>>0;}else if((p===59)){o=2;p=29;return[n,o,p,q];}}o=(((af=p/31,(af===af&&af!==1/0&&af!==-1/0)?af>>0:$throwRuntimeError("integer divide by zero"))>>0));ah=(((ag=o+1>>0,((ag<0||ag>=BC.length)?($throwRuntimeError("index out of range"),undefined):BC[ag]))>>0));ai=0;if(p>=ah){o=o+(1)>>0;ai=ah;}else{ai=((((o<0||o>=BC.length)?($throwRuntimeError("index out of range"),undefined):BC[o])>>0));}o=o+(1)>>0;p=(p-ai>>0)+1>>0;return[n,o,p,q];};BD=function(l,m){var l,m,n;if((l===2)&&BM(m)){return 29;}return(((((l<0||l>=BC.length)?($throwRuntimeError("index out of range"),undefined):BC[l])-(n=l-1>>0,((n<0||n>=BC.length)?($throwRuntimeError("index out of range"),undefined):BC[n]))>>0)>>0));};BE=function(l){var l,m,n,o,p,q,r,s,t,u,v,w;o=((m=(n=(new $Int64(0,l)),new $Int64(n.$high- -69,n.$low-4075721025)),new $Uint64(m.$high,m.$low)));p=$div64(o,new $Uint64(0,400),false);o=(q=$mul64(new $Uint64(0,400),p),new $Uint64(o.$high-q.$high,o.$low-q.$low));r=$mul64(new $Uint64(0,146097),p);p=$div64(o,new $Uint64(0,100),false);o=(s=$mul64(new $Uint64(0,100),p),new $Uint64(o.$high-s.$high,o.$low-s.$low));r=(t=$mul64(new $Uint64(0,36524),p),new $Uint64(r.$high+t.$high,r.$low+t.$low));p=$div64(o,new $Uint64(0,4),false);o=(u=$mul64(new $Uint64(0,4),p),new $Uint64(o.$high-u.$high,o.$low-u.$low));r=(v=$mul64(new $Uint64(0,1461),p),new $Uint64(r.$high+v.$high,r.$low+v.$low));p=o;r=(w=$mul64(new $Uint64(0,365),p),new $Uint64(r.$high+w.$high,r.$low+w.$low));return r;};BF=function(){$throwRuntimeError("native function not implemented: time.runtimeNano");};BH=function(){var{l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:m=CJ();$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;n=l[0];o=l[1];p=l[2];p=(q=BG,new $Int64(p.$high-q.$high,p.$low-q.$low));n=(r=new $Int64(0,2682288000),new $Int64(n.$high+r.$high,n.$low+r.$low));if(!((s=$shiftRightUint64((new $Uint64(n.$high,n.$low)),33),(s.$high===0&&s.$low===0)))){$s=-1;return new AQ.ptr((new $Uint64(0,o)),new $Int64(n.$high+13,n.$low+3618733952),$pkg.Local);}$s=-1;return new AQ.ptr((t=(u=$shiftLeft64((new $Uint64(n.$high,n.$low)),30),new $Uint64(2147483648|u.$high,(0|u.$low)>>>0)),v=(new $Uint64(0,o)),new $Uint64(t.$high|v.$high,(t.$low|v.$low)>>>0)),p,$pkg.Local);}return;}var $f={$blk:BH,$c:true,$r,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};$pkg.Now=BH;BI=function(l,m){var l,m;return new AQ.ptr((new $Uint64(0,m)),new $Int64(l.$high+14,l.$low+2006054656),$pkg.Local);};AQ.ptr.prototype.UTC=function(){var l;l=this;l.setLoc(Z);return l;};AQ.prototype.UTC=function(){return this.$val.UTC();};AQ.ptr.prototype.Local=function(){var l;l=this;l.setLoc($pkg.Local);return l;};AQ.prototype.Local=function(){return this.$val.Local();};AQ.ptr.prototype.In=function(l){var l,m;m=this;if(l===EL.nil){$panic(new $String("time: missing Location in call to Time.In"));}m.setLoc(l);return m;};AQ.prototype.In=function(l){return this.$val.In(l);};AQ.ptr.prototype.Location=function(){var l,m;l=this;m=l.loc;if(m===EL.nil){m=$pkg.UTC;}return m;};AQ.prototype.Location=function(){return this.$val.Location();};AQ.ptr.prototype.Zone=function(){var{l,m,n,o,p,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l="";m=0;n=this;p=n.loc.lookup(n.unixSec());$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;l=o[0];m=o[1];$s=-1;return[l,m];}return;}var $f={$blk:AQ.ptr.prototype.Zone,$c:true,$r,l,m,n,o,p,$s};return $f;};AQ.prototype.Zone=function(){return this.$val.Zone();};AQ.ptr.prototype.Unix=function(){var l;l=this;return l.unixSec();};AQ.prototype.Unix=function(){return this.$val.Unix();};AQ.ptr.prototype.UnixMilli=function(){var l,m,n;l=this;return(m=$mul64(l.unixSec(),new $Int64(0,1000)),n=$div64((new $Int64(0,l.nsec())),new $Int64(0,1000000),false),new $Int64(m.$high+n.$high,m.$low+n.$low));};AQ.prototype.UnixMilli=function(){return this.$val.UnixMilli();};AQ.ptr.prototype.UnixMicro=function(){var l,m,n;l=this;return(m=$mul64(l.unixSec(),new $Int64(0,1000000)),n=$div64((new $Int64(0,l.nsec())),new $Int64(0,1000),false),new $Int64(m.$high+n.$high,m.$low+n.$low));};AQ.prototype.UnixMicro=function(){return this.$val.UnixMicro();};AQ.ptr.prototype.UnixNano=function(){var l,m,n;l=this;return(m=$mul64((l.unixSec()),new $Int64(0,1000000000)),n=(new $Int64(0,l.nsec())),new $Int64(m.$high+n.$high,m.$low+n.$low));};AQ.prototype.UnixNano=function(){return this.$val.UnixNano();};AQ.ptr.prototype.MarshalBinary=function(){var{l,m,n,o,p,q,r,s,t,u,v,w,x,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=this;m=0;n=0;o=1;if($clone(l,AQ).Location()===$pkg.UTC){$s=1;continue;}$s=2;continue;case 1:m=-1;$s=3;continue;case 2:q=$clone(l,AQ).Zone();$s=4;case 4:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p[1];if(!(((s=r%60,s===s?s:$throwRuntimeError("integer divide by zero"))===0))){o=2;n=(((t=r%60,t===t?t:$throwRuntimeError("integer divide by zero"))<<24>>24));}r=(u=r/(60),(u===u&&u!==1/0&&u!==-1/0)?u>>0:$throwRuntimeError("integer divide by zero"));if(r<-32768||(r===-1)||r>32767){$s=-1;return[EK.nil,A.New("Time.MarshalBinary: unexpected zone offset")];}m=((r<<16>>16));case 3:v=l.sec();w=l.nsec();x=new EK([o,(($shiftRightInt64(v,56).$low<<24>>>24)),(($shiftRightInt64(v,48).$low<<24>>>24)),(($shiftRightInt64(v,40).$low<<24>>>24)),(($shiftRightInt64(v,32).$low<<24>>>24)),(($shiftRightInt64(v,24).$low<<24>>>24)),(($shiftRightInt64(v,16).$low<<24>>>24)),(($shiftRightInt64(v,8).$low<<24>>>24)),((v.$low<<24>>>24)),(((w>>24>>0)<<24>>>24)),(((w>>16>>0)<<24>>>24)),(((w>>8>>0)<<24>>>24)),((w<<24>>>24)),(((m>>8<<16>>16)<<24>>>24)),((m<<24>>>24))]);if(o===2){x=$append(x,((n<<24>>>24)));}$s=-1;return[x,$ifaceNil];}return;}var $f={$blk:AQ.ptr.prototype.MarshalBinary,$c:true,$r,l,m,n,o,p,q,r,s,t,u,v,w,x,$s};return $f;};AQ.prototype.MarshalBinary=function(){return this.$val.MarshalBinary();};AQ.ptr.prototype.UnmarshalBinary=function(l){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{l});$s=$s||0;s:while(true){switch($s){case 0:m=this;n=l;if(n.$length===0){$s=-1;return A.New("Time.UnmarshalBinary: no data");}o=(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0]);if(!((o===1))&&!((o===2))){$s=-1;return A.New("Time.UnmarshalBinary: unsupported version");}p=15;if(o===2){p=p+(1)>>0;}if(!((n.$length===p))){$s=-1;return A.New("Time.UnmarshalBinary: invalid length");}n=$subslice(n,1);ae=(q=(r=(s=(t=(u=(v=(w=(new $Int64(0,(7>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+7]))),x=$shiftLeft64((new $Int64(0,(6>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+6]))),8),new $Int64(w.$high|x.$high,(w.$low|x.$low)>>>0)),y=$shiftLeft64((new $Int64(0,(5>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+5]))),16),new $Int64(v.$high|y.$high,(v.$low|y.$low)>>>0)),z=$shiftLeft64((new $Int64(0,(4>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+4]))),24),new $Int64(u.$high|z.$high,(u.$low|z.$low)>>>0)),aa=$shiftLeft64((new $Int64(0,(3>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+3]))),32),new $Int64(t.$high|aa.$high,(t.$low|aa.$low)>>>0)),ab=$shiftLeft64((new $Int64(0,(2>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+2]))),40),new $Int64(s.$high|ab.$high,(s.$low|ab.$low)>>>0)),ac=$shiftLeft64((new $Int64(0,(1>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1]))),48),new $Int64(r.$high|ac.$high,(r.$low|ac.$low)>>>0)),ad=$shiftLeft64((new $Int64(0,(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0]))),56),new $Int64(q.$high|ad.$high,(q.$low|ad.$low)>>>0));n=$subslice(n,8);af=(((((3>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+3])>>0))|((((2>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+2])>>0))<<8>>0))|((((1>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1])>>0))<<16>>0))|((((0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0])>>0))<<24>>0);n=$subslice(n,4);ag=$imul(((((((1>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1])<<16>>16))|((((0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0])<<16>>16))<<8<<16>>16))>>0)),60);if(o===2){ag=ag+((((2>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+2])>>0)))>>0;}AQ.copy(m,new AQ.ptr(new $Uint64(0,0),new $Int64(0,0),EL.nil));m.wall=(new $Uint64(0,af));m.ext=ae;if(ag===-60){$s=1;continue;}$s=2;continue;case 1:m.setLoc(Z);$s=3;continue;case 2:ai=$pkg.Local.lookup(m.unixSec());$s=4;case 4:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ah=ai;aj=ah[1];if(ag===aj){m.setLoc($pkg.Local);}else{m.setLoc(AC("",ag));}case 3:$s=-1;return $ifaceNil;}return;}var $f={$blk:AQ.ptr.prototype.UnmarshalBinary,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AQ.prototype.UnmarshalBinary=function(l){return this.$val.UnmarshalBinary(l);};AQ.ptr.prototype.GobEncode=function(){var{l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=this;m=$clone(l,AQ).MarshalBinary();$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=2;case 2:return n;}return;}var $f={$blk:AQ.ptr.prototype.GobEncode,$c:true,$r,l,m,n,$s};return $f;};AQ.prototype.GobEncode=function(){return this.$val.GobEncode();};AQ.ptr.prototype.GobDecode=function(l){var{l,m,n,o,$s,$r,$c}=$restore(this,{l});$s=$s||0;s:while(true){switch($s){case 0:m=this;n=m.UnmarshalBinary(l);$s=1;case 1:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;$s=2;case 2:return o;}return;}var $f={$blk:AQ.ptr.prototype.GobDecode,$c:true,$r,l,m,n,o,$s};return $f;};AQ.prototype.GobDecode=function(l){return this.$val.GobDecode(l);};AQ.ptr.prototype.MarshalJSON=function(){var{l,m,n,o,p,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=this;m=$clone(l,AQ).Year();$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;if(n<0||n>=10000){$s=-1;return[EK.nil,A.New("Time.MarshalJSON: year outside of range [0,9999]")];}o=$makeSlice(EK,0,37);o=$append(o,34);p=$clone(l,AQ).AppendFormat(o,"2006-01-02T15:04:05.999999999Z07:00");$s=2;case 2:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;o=$append(o,34);$s=-1;return[o,$ifaceNil];}return;}var $f={$blk:AQ.ptr.prototype.MarshalJSON,$c:true,$r,l,m,n,o,p,$s};return $f;};AQ.prototype.MarshalJSON=function(){return this.$val.MarshalJSON();};AQ.ptr.prototype.UnmarshalJSON=function(l){var{l,m,n,o,p,$s,$r,$c}=$restore(this,{l});$s=$s||0;s:while(true){switch($s){case 0:m=this;if(($bytesToString(l))==="null"){$s=-1;return $ifaceNil;}n=$ifaceNil;p=DQ("\"2006-01-02T15:04:05Z07:00\"",($bytesToString(l)));$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;AQ.copy(m,o[0]);n=o[1];$s=-1;return n;}return;}var $f={$blk:AQ.ptr.prototype.UnmarshalJSON,$c:true,$r,l,m,n,o,p,$s};return $f;};AQ.prototype.UnmarshalJSON=function(l){return this.$val.UnmarshalJSON(l);};AQ.ptr.prototype.MarshalText=function(){var{l,m,n,o,p,q,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=this;m=$clone(l,AQ).Year();$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;if(n<0||n>=10000){$s=-1;return[EK.nil,A.New("Time.MarshalText: year outside of range [0,9999]")];}o=$makeSlice(EK,0,35);p=$clone(l,AQ).AppendFormat(o,"2006-01-02T15:04:05.999999999Z07:00");$s=2;case 2:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=[p,$ifaceNil];$s=3;case 3:return q;}return;}var $f={$blk:AQ.ptr.prototype.MarshalText,$c:true,$r,l,m,n,o,p,q,$s};return $f;};AQ.prototype.MarshalText=function(){return this.$val.MarshalText();};AQ.ptr.prototype.UnmarshalText=function(l){var{l,m,n,o,p,$s,$r,$c}=$restore(this,{l});$s=$s||0;s:while(true){switch($s){case 0:m=this;n=$ifaceNil;p=DQ("2006-01-02T15:04:05Z07:00",($bytesToString(l)));$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;AQ.copy(m,o[0]);n=o[1];$s=-1;return n;}return;}var $f={$blk:AQ.ptr.prototype.UnmarshalText,$c:true,$r,l,m,n,o,p,$s};return $f;};AQ.prototype.UnmarshalText=function(l){return this.$val.UnmarshalText(l);};BJ=function(l,m){var l,m,n,o,p,q,r;if((m.$high<0||(m.$high===0&&m.$low<0))||(m.$high>0||(m.$high===0&&m.$low>=1000000000))){n=$div64(m,new $Int64(0,1000000000),false);l=(o=n,new $Int64(l.$high+o.$high,l.$low+o.$low));m=(p=$mul64(n,new $Int64(0,1000000000)),new $Int64(m.$high-p.$high,m.$low-p.$low));if((m.$high<0||(m.$high===0&&m.$low<0))){m=(q=new $Int64(0,1000000000),new $Int64(m.$high+q.$high,m.$low+q.$low));l=(r=new $Int64(0,1),new $Int64(l.$high-r.$high,l.$low-r.$low));}}return BI(l,(((m.$low+((m.$high>>31)*4294967296))>>0)));};$pkg.Unix=BJ;AQ.ptr.prototype.IsDST=function(){var{l,m,n,o,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=this;n=l.loc.lookup($clone(l,AQ).Unix());$s=1;case 1:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=m[4];$s=-1;return o;}return;}var $f={$blk:AQ.ptr.prototype.IsDST,$c:true,$r,l,m,n,o,$s};return $f;};AQ.prototype.IsDST=function(){return this.$val.IsDST();};BM=function(l){var l,m,n,o;return((m=l%4,m===m?m:$throwRuntimeError("integer divide by zero"))===0)&&(!(((n=l%100,n===n?n:$throwRuntimeError("integer divide by zero"))===0))||((o=l%400,o===o?o:$throwRuntimeError("integer divide by zero"))===0));};BN=function(l,m,n){var l,m,n,o,p,q,r,s,t,u,v;o=0;p=0;if(m<0){r=(q=((-m-1>>0))/n,(q===q&&q!==1/0&&q!==-1/0)?q>>0:$throwRuntimeError("integer divide by zero"))+1>>0;l=l-(r)>>0;m=m+(($imul(r,n)))>>0;}if(m>=n){t=(s=m/n,(s===s&&s!==1/0&&s!==-1/0)?s>>0:$throwRuntimeError("integer divide by zero"));l=l+(t)>>0;m=m-(($imul(t,n)))>>0;}u=l;v=m;o=u;p=v;return[o,p];};BO=function(l,m,n,o,p,q,r,s){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{l,m,n,o,p,q,r,s});$s=$s||0;s:while(true){switch($s){case 0:if(s===EL.nil){$panic(new $String("time: missing Location in call to Date"));}t=((m>>0))-1>>0;u=BN(l,t,12);l=u[0];t=u[1];m=((t>>0))+1>>0;v=BN(q,r,1000000000);q=v[0];r=v[1];w=BN(p,q,60);p=w[0];q=w[1];x=BN(o,p,60);o=x[0];p=x[1];y=BN(n,o,24);n=y[0];o=y[1];z=BE(l);z=(aa=(new $Uint64(0,(ab=m-1>>0,((ab<0||ab>=BC.length)?($throwRuntimeError("index out of range"),undefined):BC[ab])))),new $Uint64(z.$high+aa.$high,z.$low+aa.$low));if(BM(l)&&m>=3){z=(ac=new $Uint64(0,1),new $Uint64(z.$high+ac.$high,z.$low+ac.$low));}z=(ad=(new $Uint64(0,(n-1>>0))),new $Uint64(z.$high+ad.$high,z.$low+ad.$low));ae=$mul64(z,new $Uint64(0,86400));ae=(af=(new $Uint64(0,((($imul(o,3600))+($imul(p,60))>>0)+q>>0))),new $Uint64(ae.$high+af.$high,ae.$low+af.$low));ah=(ag=(new $Int64(ae.$high,ae.$low)),new $Int64(ag.$high+-2147483647,ag.$low+3844486912));aj=s.lookup(ah);$s=1;case 1:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ai=aj;ak=ai[1];al=ai[2];am=ai[3];if(!((ak===0))){$s=2;continue;}$s=3;continue;case 2:ao=(an=(new $Int64(0,ak)),new $Int64(ah.$high-an.$high,ah.$low-an.$low));if((ao.$higham.$high||(ao.$high===am.$high&&ao.$low>=am.$low))){$s=4;continue;}$s=5;continue;case 4:aq=s.lookup(ao);$s=6;case 6:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ap=aq;ak=ap[1];case 5:ah=(ar=(new $Int64(0,ak)),new $Int64(ah.$high-ar.$high,ah.$low-ar.$low));case 3:as=$clone(BI(ah,((r>>0))),AQ);as.setLoc(s);$s=-1;return as;}return;}var $f={$blk:BO,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.Date=BO;AQ.ptr.prototype.Truncate=function(l){var l,m,n,o;m=this;m.stripMono();if((l.$high<0||(l.$high===0&&l.$low<=0))){return m;}n=BP($clone(m,AQ),l);o=n[1];return $clone(m,AQ).Add(new AV(-o.$high,-o.$low));};AQ.prototype.Truncate=function(l){return this.$val.Truncate(l);};AQ.ptr.prototype.Round=function(l){var l,m,n,o;m=this;m.stripMono();if((l.$high<0||(l.$high===0&&l.$low<=0))){return m;}n=BP($clone(m,AQ),l);o=n[1];if(AY(o,l)){return $clone(m,AQ).Add(new AV(-o.$high,-o.$low));}return $clone(m,AQ).Add(new AV(l.$high-o.$high,l.$low-o.$low));};AQ.prototype.Round=function(l){return this.$val.Round(l);};BP=function(l,m){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;n=0;o=new AV(0,0);p=false;q=l.nsec();r=l.sec();if((r.$high<0||(r.$high===0&&r.$low<0))){p=true;r=new $Int64(-r.$high,-r.$low);q=-q;if(q<0){q=q+(1000000000)>>0;r=(s=new $Int64(0,1),new $Int64(r.$high-s.$high,r.$low-s.$low));}}if((m.$high<0||(m.$high===0&&m.$low<1000000000))&&(t=$div64(new AV(0,1000000000),(new AV(m.$high+m.$high,m.$low+m.$low)),true),(t.$high===0&&t.$low===0))){n=(((v=q/(((m.$low+((m.$high>>31)*4294967296))>>0)),(v===v&&v!==1/0&&v!==-1/0)?v>>0:$throwRuntimeError("integer divide by zero"))>>0))&1;o=(new AV(0,(w=q%(((m.$low+((m.$high>>31)*4294967296))>>0)),w===w?w:$throwRuntimeError("integer divide by zero"))));}else if((u=$div64(m,new AV(0,1000000000),true),(u.$high===0&&u.$low===0))){y=((x=$div64(m,new AV(0,1000000000),false),new $Int64(x.$high,x.$low)));n=(((z=$div64(r,y,false),z.$low+((z.$high>>31)*4294967296))>>0))&1;o=(aa=$mul64(((ab=$div64(r,y,true),new AV(ab.$high,ab.$low))),new AV(0,1000000000)),ac=(new AV(0,q)),new AV(aa.$high+ac.$high,aa.$low+ac.$low));}else{ad=(new $Uint64(r.$high,r.$low));ae=$mul64(($shiftRightUint64(ad,32)),new $Uint64(0,1000000000));af=$shiftRightUint64(ae,32);ag=$shiftLeft64(ae,32);ae=$mul64((new $Uint64(ad.$high&0,(ad.$low&4294967295)>>>0)),new $Uint64(0,1000000000));ah=ag;ai=new $Uint64(ag.$high+ae.$high,ag.$low+ae.$low);aj=ah;ag=ai;if((ag.$highap.$high||(af.$high===ap.$high&&af.$low>ap.$low))||(af.$high===ap.$high&&af.$low===ap.$low)&&(ag.$high>ar.$high||(ag.$high===ar.$high&&ag.$low>=ar.$low))){n=1;as=ag;at=new $Uint64(ag.$high-ar.$high,ag.$low-ar.$low);aj=as;ag=at;if((ag.$high>aj.$high||(ag.$high===aj.$high&&ag.$low>aj.$low))){af=(au=new $Uint64(0,1),new $Uint64(af.$high-au.$high,af.$low-au.$low));}af=(av=ap,new $Uint64(af.$high-av.$high,af.$low-av.$low));}if((ap.$high===0&&ap.$low===0)&&(aw=(new $Uint64(m.$high,m.$low)),(ar.$high===aw.$high&&ar.$low===aw.$low))){break;}ar=$shiftRightUint64(ar,(1));ar=(ax=$shiftLeft64((new $Uint64(ap.$high&0,(ap.$low&1)>>>0)),63),new $Uint64(ar.$high|ax.$high,(ar.$low|ax.$low)>>>0));ap=$shiftRightUint64(ap,(1));}o=(new AV(ag.$high,ag.$low));}if(p&&!((o.$high===0&&o.$low===0))){n=(n^(1))>>0;o=new AV(m.$high-o.$high,m.$low-o.$low);}return[n,o];};BY=function(l){var{l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{l});$s=$s||0;s:while(true){switch($s){case 0:if((l.$high<0||(l.$high===0&&l.$low<=0))){$s=1;continue;}$s=2;continue;case 1:m=BF();$s=3;case 3:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=4;case 4:return n;case 2:p=BF();$s=5;case 5:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}r=(o=p,q=(new $Int64(l.$high,l.$low)),new $Int64(o.$high+q.$high,o.$low+q.$low));if((r.$high<0||(r.$high===0&&r.$low<0))){r=new $Int64(2147483647,4294967295);}$s=-1;return r;}return;}var $f={$blk:BY,$c:true,$r,l,m,n,o,p,q,r,$s};return $f;};BZ.ptr.prototype.Stop=function(){var l;l=this;if(l.r.f===$throwNilPointerError){$panic(new $String("time: Stop called on uninitialized Timer"));}return CM(l.r);};BZ.prototype.Stop=function(){return this.$val.Stop();};BZ.ptr.prototype.Reset=function(l){var{l,m,n,o,p,q,$s,$r,$c}=$restore(this,{l});$s=$s||0;s:while(true){switch($s){case 0:m=this;if(m.r.f===$throwNilPointerError){$panic(new $String("time: Reset called on uninitialized Timer"));}n=BY(l);$s=1;case 1:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;p=CO(m.r,o);$s=2;case 2:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=3;case 3:return q;}return;}var $f={$blk:BZ.ptr.prototype.Reset,$c:true,$r,l,m,n,o,p,q,$s};return $f;};BZ.prototype.Reset=function(l){return this.$val.Reset(l);};CD=function(l,m){var{l,m,n,o,$s,$r,$c}=$restore(this,{l,m});$s=$s||0;s:while(true){switch($s){case 0:n=BY(l);$s=1;case 1:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=new BZ.ptr($chanNil,new CI.ptr(0,n,new $Int64(0,0),CE,new EQ(m),0,null,false));$r=CL(o.r);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return o;}return;}var $f={$blk:CD,$c:true,$r,l,m,n,o,$s};return $f;};$pkg.AfterFunc=CD;CE=function(l,m){var l,m;$go($assertType(l,EQ),[]);};CF=function(){var l,m,n,o,p,q;AA.name="Local";l=new X.ptr("",0,false);m=new($global.Date)();n=$imul(($parseInt(m.getTimezoneOffset())>>0),-1);l.offset=$imul(n,60);l.name="UTC";if(n<0){l.name=l.name+("-");n=$imul(n,(-1));}else{l.name=l.name+("+");}l.name=l.name+(CG((o=n/60,(o===o&&o!==1/0&&o!==-1/0)?o>>0:$throwRuntimeError("integer divide by zero"))));q=(p=n%60,p===p?p:$throwRuntimeError("integer divide by zero"));if(!((q===0))){l.name=l.name+(":"+CG(q));}AA.zone=new EF([$clone(l,X)]);};CG=function(l){var l;if(l<10){return $substring("0123456789",l,(l+1>>0));}return $substring("00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899",($imul(l,2)),(($imul(l,2))+2>>0));};CH=function(){$unused(BJ(new $Int64(0,0),new $Int64(0,0)));};CJ=function(){var{l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=new $Int64(0,0);m=0;n=new $Int64(0,0);o=BF();$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=$div64(p,new $Int64(0,1000000000),false);r=(((s=$div64(p,new $Int64(0,1000000000),true),s.$low+((s.$high>>31)*4294967296))>>0));t=p;l=q;m=r;n=t;$s=-1;return[l,m,n];}return;}var $f={$blk:CJ,$c:true,$r,l,m,n,o,p,q,r,s,t,$s};return $f;};CK=function(l){var{l,m,n,o,$s,$r,$c}=$restore(this,{l});$s=$s||0;s:while(true){switch($s){case 0:m=[m];m[0]=new $Chan(ER,0);$setTimeout((function(m){return function(){$close(m[0]);};})(m),(((n=$div64(l,new AV(0,1000000),false),n.$low+((n.$high>>31)*4294967296))>>0)));o=$recv(m[0]);$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o[0];$s=-1;return;}return;}var $f={$blk:CK,$c:true,$r,l,m,n,o,$s};return $f;};$pkg.Sleep=CK;CL=function(l){var{l,m,n,o,p,$s,$r,$c}=$restore(this,{l});$s=$s||0;s:while(true){switch($s){case 0:l=[l];l[0].active=true;o=BF();$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=$div64(((m=l[0].when,n=o,new $Int64(m.$high-n.$high,m.$low-n.$low))),new $Int64(0,1000000),false);if((p.$high>0||(p.$high===0&&p.$low>2147483647))){$s=-1;return;}if((p.$high<0||(p.$high===0&&p.$low<0))){p=new $Int64(0,0);}l[0].timeout=$setTimeout((function(l){return function $b(){var{q,r,s,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l[0].active=false;if(!((q=l[0].period,(q.$high===0&&q.$low===0)))){$s=1;continue;}$s=2;continue;case 1:l[0].when=(r=l[0].when,s=l[0].period,new $Int64(r.$high+s.$high,r.$low+s.$low));$r=CL(l[0]);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$go(l[0].f,[l[0].arg,0]);$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,q,r,s,$s};return $f;};})(l),$externalize(new $Int64(p.$high+0,p.$low+1),$Int64));$s=-1;return;}return;}var $f={$blk:CL,$c:true,$r,l,m,n,o,p,$s};return $f;};CM=function(l){var l,m;$global.clearTimeout(l.timeout);m=l.active;l.active=false;return m;};CN=function(l,m,n,o,p,q){var{l,m,n,o,p,q,$s,$r,$c}=$restore(this,{l,m,n,o,p,q});$s=$s||0;s:while(true){switch($s){case 0:CM(l);l.when=m;l.period=n;l.f=o;l.arg=p;l.seq=q;$r=CL(l);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:CN,$c:true,$r,l,m,n,o,p,q,$s};return $f;};CO=function(l,m){var{l,m,n,$s,$r,$c}=$restore(this,{l,m});$s=$s||0;s:while(true){switch($s){case 0:n=l.active;$r=CN(l,m,l.period,l.f,l.arg,l.seq);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return n;}return;}var $f={$blk:CO,$c:true,$r,l,m,n,$s};return $f;};CT=function(l){var l,m;if(l.length===0){return false;}m=l.charCodeAt(0);return 97<=m&&m<=122;};CU=function(l){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;m="";n=0;o="";p=0;while(true){if(!(p>0));r=q;if(r===(74)){if(l.length>=(p+3>>0)&&$substring(l,p,(p+3>>0))==="Jan"){if(l.length>=(p+7>>0)&&$substring(l,p,(p+7>>0))==="January"){s=$substring(l,0,p);t=257;u=$substring(l,(p+7>>0));m=s;n=t;o=u;return[m,n,o];}if(!CT($substring(l,(p+3>>0)))){v=$substring(l,0,p);w=258;x=$substring(l,(p+3>>0));m=v;n=w;o=x;return[m,n,o];}}}else if(r===(77)){if(l.length>=(p+3>>0)){if($substring(l,p,(p+3>>0))==="Mon"){if(l.length>=(p+6>>0)&&$substring(l,p,(p+6>>0))==="Monday"){y=$substring(l,0,p);z=261;aa=$substring(l,(p+6>>0));m=y;n=z;o=aa;return[m,n,o];}if(!CT($substring(l,(p+3>>0)))){ab=$substring(l,0,p);ac=262;ad=$substring(l,(p+3>>0));m=ab;n=ac;o=ad;return[m,n,o];}}if($substring(l,p,(p+3>>0))==="MST"){ae=$substring(l,0,p);af=23;ag=$substring(l,(p+3>>0));m=ae;n=af;o=ag;return[m,n,o];}}}else if(r===(48)){if(l.length>=(p+2>>0)&&49<=l.charCodeAt((p+1>>0))&&l.charCodeAt((p+1>>0))<=54){ah=$substring(l,0,p);ai=(aj=l.charCodeAt((p+1>>0))-49<<24>>>24,((aj<0||aj>=CS.length)?($throwRuntimeError("index out of range"),undefined):CS[aj]));ak=$substring(l,(p+2>>0));m=ah;n=ai;o=ak;return[m,n,o];}if(l.length>=(p+3>>0)&&(l.charCodeAt((p+1>>0))===48)&&(l.charCodeAt((p+2>>0))===50)){al=$substring(l,0,p);am=267;an=$substring(l,(p+3>>0));m=al;n=am;o=an;return[m,n,o];}}else if(r===(49)){if(l.length>=(p+2>>0)&&(l.charCodeAt((p+1>>0))===53)){ao=$substring(l,0,p);ap=524;aq=$substring(l,(p+2>>0));m=ao;n=ap;o=aq;return[m,n,o];}ar=$substring(l,0,p);as=259;at=$substring(l,(p+1>>0));m=ar;n=as;o=at;return[m,n,o];}else if(r===(50)){if(l.length>=(p+4>>0)&&$substring(l,p,(p+4>>0))==="2006"){au=$substring(l,0,p);av=275;aw=$substring(l,(p+4>>0));m=au;n=av;o=aw;return[m,n,o];}ax=$substring(l,0,p);ay=263;az=$substring(l,(p+1>>0));m=ax;n=ay;o=az;return[m,n,o];}else if(r===(95)){if(l.length>=(p+2>>0)&&(l.charCodeAt((p+1>>0))===50)){if(l.length>=(p+5>>0)&&$substring(l,(p+1>>0),(p+5>>0))==="2006"){ba=$substring(l,0,(p+1>>0));bb=275;bc=$substring(l,(p+5>>0));m=ba;n=bb;o=bc;return[m,n,o];}bd=$substring(l,0,p);be=264;bf=$substring(l,(p+2>>0));m=bd;n=be;o=bf;return[m,n,o];}if(l.length>=(p+3>>0)&&(l.charCodeAt((p+1>>0))===95)&&(l.charCodeAt((p+2>>0))===50)){bg=$substring(l,0,p);bh=266;bi=$substring(l,(p+3>>0));m=bg;n=bh;o=bi;return[m,n,o];}}else if(r===(51)){bj=$substring(l,0,p);bk=525;bl=$substring(l,(p+1>>0));m=bj;n=bk;o=bl;return[m,n,o];}else if(r===(52)){bm=$substring(l,0,p);bn=527;bo=$substring(l,(p+1>>0));m=bm;n=bn;o=bo;return[m,n,o];}else if(r===(53)){bp=$substring(l,0,p);bq=529;br=$substring(l,(p+1>>0));m=bp;n=bq;o=br;return[m,n,o];}else if(r===(80)){if(l.length>=(p+2>>0)&&(l.charCodeAt((p+1>>0))===77)){bs=$substring(l,0,p);bt=533;bu=$substring(l,(p+2>>0));m=bs;n=bt;o=bu;return[m,n,o];}}else if(r===(112)){if(l.length>=(p+2>>0)&&(l.charCodeAt((p+1>>0))===109)){bv=$substring(l,0,p);bw=534;bx=$substring(l,(p+2>>0));m=bv;n=bw;o=bx;return[m,n,o];}}else if(r===(45)){if(l.length>=(p+7>>0)&&$substring(l,p,(p+7>>0))==="-070000"){by=$substring(l,0,p);bz=30;ca=$substring(l,(p+7>>0));m=by;n=bz;o=ca;return[m,n,o];}if(l.length>=(p+9>>0)&&$substring(l,p,(p+9>>0))==="-07:00:00"){cb=$substring(l,0,p);cc=33;cd=$substring(l,(p+9>>0));m=cb;n=cc;o=cd;return[m,n,o];}if(l.length>=(p+5>>0)&&$substring(l,p,(p+5>>0))==="-0700"){ce=$substring(l,0,p);cf=29;cg=$substring(l,(p+5>>0));m=ce;n=cf;o=cg;return[m,n,o];}if(l.length>=(p+6>>0)&&$substring(l,p,(p+6>>0))==="-07:00"){ch=$substring(l,0,p);ci=32;cj=$substring(l,(p+6>>0));m=ch;n=ci;o=cj;return[m,n,o];}if(l.length>=(p+3>>0)&&$substring(l,p,(p+3>>0))==="-07"){ck=$substring(l,0,p);cl=31;cm=$substring(l,(p+3>>0));m=ck;n=cl;o=cm;return[m,n,o];}}else if(r===(90)){if(l.length>=(p+7>>0)&&$substring(l,p,(p+7>>0))==="Z070000"){cn=$substring(l,0,p);co=25;cp=$substring(l,(p+7>>0));m=cn;n=co;o=cp;return[m,n,o];}if(l.length>=(p+9>>0)&&$substring(l,p,(p+9>>0))==="Z07:00:00"){cq=$substring(l,0,p);cr=28;cs=$substring(l,(p+9>>0));m=cq;n=cr;o=cs;return[m,n,o];}if(l.length>=(p+5>>0)&&$substring(l,p,(p+5>>0))==="Z0700"){ct=$substring(l,0,p);cu=24;cv=$substring(l,(p+5>>0));m=ct;n=cu;o=cv;return[m,n,o];}if(l.length>=(p+6>>0)&&$substring(l,p,(p+6>>0))==="Z07:00"){cw=$substring(l,0,p);cx=27;cy=$substring(l,(p+6>>0));m=cw;n=cx;o=cy;return[m,n,o];}if(l.length>=(p+3>>0)&&$substring(l,p,(p+3>>0))==="Z07"){cz=$substring(l,0,p);da=26;db=$substring(l,(p+3>>0));m=cz;n=da;o=db;return[m,n,o];}}else if((r===(46))||(r===(44))){if((p+1>>0)>0))===48)||(l.charCodeAt((p+1>>0))===57))){dc=l.charCodeAt((p+1>>0));dd=p+1>>0;while(true){if(!(dd>0;}if(!DL(l,dd)){de=34;if(l.charCodeAt((p+1>>0))===57){de=35;}df=DE(de,dd-((p+1>>0))>>0,q);dg=$substring(l,0,p);dh=df;di=$substring(l,dd);m=dg;n=dh;o=di;return[m,n,o];}}}p=p+(1)>>0;}dj=l;dk=0;dl="";m=dj;n=dk;o=dl;return[m,n,o];};CZ=function(l,m){var l,m,n,o,p;n=0;while(true){if(!(n>>0;p=(p|(32))>>>0;if(!((o===p))||o<97||o>122){return false;}}n=n+(1)>>0;}return true;};DA=function(l,m){var l,m,n,o,p,q;n=l;o=0;while(true){if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]);if(m.length>=q.length&&CZ($substring(m,0,q.length),q)){return[p,$substring(m,q.length),$ifaceNil];}o++;}return[-1,m,DI];};DB=function(l,m,n){var l,m,n,o,p,q,r,s,t;o=((m>>>0));if(m<0){l=$append(l,45);o=((-m>>>0));}p=ES.zero();q=20;while(true){if(!(o>=10)){break;}q=q-(1)>>0;s=(r=o/10,(r===r&&r!==1/0&&r!==-1/0)?r>>>0:$throwRuntimeError("integer divide by zero"));((q<0||q>=p.length)?($throwRuntimeError("index out of range"),undefined):p[q]=((((48+o>>>0)-(s*10>>>0)>>>0)<<24>>>24)));o=s;}q=q-(1)>>0;((q<0||q>=p.length)?($throwRuntimeError("index out of range"),undefined):p[q]=(((48+o>>>0)<<24>>>24)));t=20-q>>0;while(true){if(!(t>0;}return $appendSlice(l,$subslice(new EK(p),q));};DD=function(l){var l,m,n,o,p,q,r,s,t,u,v;m=0;n=$ifaceNil;o=false;if(!(l==="")&&((l.charCodeAt(0)===45)||(l.charCodeAt(0)===43))){o=l.charCodeAt(0)===45;l=$substring(l,1);}p=DZ(l);q=p[0];r=p[1];n=p[2];m=((q.$low>>0));if(!($interfaceIsEqual(n,$ifaceNil))||!(r==="")){s=0;t=DC;m=s;n=t;return[m,n];}if(o){m=-m;}u=m;v=$ifaceNil;m=u;n=v;return[m,n];};DE=function(l,m,n){var l,m,n;if(n===46){return l|((((m&4095))<<16>>0));}return(l|((((m&4095))<<16>>0)))|268435456;};DF=function(l){var l;return((l>>16>>0))&4095;};DG=function(l){var l;if(((l>>28>>0))===0){return 46;}return 44;};DH=function(l,m,n){var l,m,n,o,p,q,r,s,t,u,v,w;o=DF(n);p=DG(n);q=(n&65535)===35;r=m;s=ET.zero();t=9;while(true){if(!(t>0)){break;}t=t-(1)>>0;((t<0||t>=s.length)?($throwRuntimeError("index out of range"),undefined):s[t]=((((u=r%10,u===u?u:$throwRuntimeError("integer divide by zero"))+48>>>0)<<24>>>24)));r=(v=r/(10),(v===v&&v!==1/0&&v!==-1/0)?v>>>0:$throwRuntimeError("integer divide by zero"));}if(o>9){o=9;}if(q){while(true){if(!(o>0&&((w=o-1>>0,((w<0||w>=s.length)?($throwRuntimeError("index out of range"),undefined):s[w]))===48))){break;}o=o-(1)>>0;}if(o===0){return l;}}l=$append(l,p);return $appendSlice(l,$subslice(new EK(s),0,o));};AQ.ptr.prototype.String=function(){var{aa,ab,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=this;m=$clone(l,AQ).Format("2006-01-02 15:04:05.999999999 -0700 MST");$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;if(!((o=(p=l.wall,new $Uint64(p.$high&2147483648,(p.$low&0)>>>0)),(o.$high===0&&o.$low===0)))){r=((q=l.ext,new $Uint64(q.$high,q.$low)));s=43;if((t=l.ext,(t.$high<0||(t.$high===0&&t.$low<0)))){s=45;r=new $Uint64(-r.$high,-r.$low);}u=$div64(r,new $Uint64(0,1000000000),false);v=$div64(r,new $Uint64(0,1000000000),true);w=u;r=v;x=$div64(w,new $Uint64(0,1000000000),false);y=$div64(w,new $Uint64(0,1000000000),true);z=x;w=y;aa=$makeSlice(EK,0,24);aa=$appendSlice(aa," m=");aa=$append(aa,s);ab=0;if(!((z.$high===0&&z.$low===0))){aa=DB(aa,((z.$low>>0)),0);ab=9;}aa=DB(aa,((w.$low>>0)),ab);aa=$append(aa,46);aa=DB(aa,((r.$low>>0)),9);n=n+(($bytesToString(aa)));}$s=-1;return n;}return;}var $f={$blk:AQ.ptr.prototype.String,$c:true,$r,aa,ab,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AQ.prototype.String=function(){return this.$val.String();};AQ.ptr.prototype.GoString=function(){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:l=this;m=$makeSlice(EK,0,70);m=$appendSlice(m,"time.Date(");n=m;o=$clone(l,AQ).Year();$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=DB(n,p,0);$s=2;case 2:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}m=q;r=$clone(l,AQ).Month();$s=3;case 3:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;if(1<=s&&s<=12){$s=4;continue;}$s=5;continue;case 4:m=$appendSlice(m,", time.");t=m;u=$clone(l,AQ).Month();$s=7;case 7:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=new AR(u).String();$s=8;case 8:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v;m=$appendSlice(t,w);$s=6;continue;case 5:m=DB(m,((s>>0)),0);case 6:m=$appendSlice(m,", ");x=m;y=$clone(l,AQ).Day();$s=9;case 9:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;aa=DB(x,z,0);$s=10;case 10:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}m=aa;m=$appendSlice(m,", ");ab=m;ac=$clone(l,AQ).Hour();$s=11;case 11:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;ae=DB(ab,ad,0);$s=12;case 12:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}m=ae;m=$appendSlice(m,", ");af=m;ag=$clone(l,AQ).Minute();$s=13;case 13:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag;ai=DB(af,ah,0);$s=14;case 14:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}m=ai;m=$appendSlice(m,", ");aj=m;ak=$clone(l,AQ).Second();$s=15;case 15:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak;am=DB(aj,al,0);$s=16;case 16:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}m=am;m=$appendSlice(m,", ");m=DB(m,$clone(l,AQ).Nanosecond(),0);m=$appendSlice(m,", ");an=$clone(l,AQ).Location();ao=an;if(ao===($pkg.UTC)||ao===EL.nil){m=$appendSlice(m,"time.UTC");}else if(ao===($pkg.Local)){m=$appendSlice(m,"time.Local");}else{m=$appendSlice(m,"time.Location(");m=$appendSlice(m,(new EK($stringToBytes(DK(an.name)))));m=$appendSlice(m,")");}m=$append(m,41);$s=-1;return($bytesToString(m));}return;}var $f={$blk:AQ.ptr.prototype.GoString,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AQ.prototype.GoString=function(){return this.$val.GoString();};AQ.ptr.prototype.Format=function(l){var{l,m,n,o,p,q,$s,$r,$c}=$restore(this,{l});$s=$s||0;s:while(true){switch($s){case 0:m=this;n=EK.nil;o=l.length+10>>0;if(o<64){p=EU.zero();n=$subslice(new EK(p),0,0);}else{n=$makeSlice(EK,0,o);}q=$clone(m,AQ).AppendFormat(n,l);$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}n=q;$s=-1;return($bytesToString(n));}return;}var $f={$blk:AQ.ptr.prototype.Format,$c:true,$r,l,m,n,o,p,q,$s};return $f;};AQ.prototype.Format=function(l){return this.$val.Format(l);};AQ.ptr.prototype.AppendFormat=function(l,m){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{l,m});$s=$s||0;s:while(true){switch($s){case 0:n=this;p=$clone(n,AQ).locabs();$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;q=o[0];r=o[1];s=o[2];t=-1;u=0;v=0;w=0;x=-1;y=0;z=0;while(true){if(!(!(m===""))){break;}aa=CU(m);ab=aa[0];ac=aa[1];ad=aa[2];if(!(ab==="")){l=$appendSlice(l,ab);}if(ac===0){break;}m=ad;if(t<0&&!(((ac&256)===0))){ae=BB(s,true);t=ae[0];u=ae[1];v=ae[2];w=ae[3];w=w+(1)>>0;}if(x<0&&!(((ac&512)===0))){af=AU(s);x=af[0];y=af[1];z=af[2];}switch(0){default:ag=ac&65535;if(ag===(276)){ah=t;if(ah<0){ah=-ah;}l=DB(l,(ai=ah%100,ai===ai?ai:$throwRuntimeError("integer divide by zero")),2);}else if(ag===(275)){l=DB(l,t,4);}else if(ag===(258)){l=$appendSlice(l,$substring(new AR(u).String(),0,3));}else if(ag===(257)){aj=new AR(u).String();l=$appendSlice(l,aj);}else if(ag===(259)){l=DB(l,((u>>0)),0);}else if(ag===(260)){l=DB(l,((u>>0)),2);}else if(ag===(262)){l=$appendSlice(l,$substring(new AS(AT(s)).String(),0,3));}else if(ag===(261)){ak=new AS(AT(s)).String();l=$appendSlice(l,ak);}else if(ag===(263)){l=DB(l,v,0);}else if(ag===(264)){if(v<10){l=$append(l,32);}l=DB(l,v,0);}else if(ag===(265)){l=DB(l,v,2);}else if(ag===(266)){if(w<100){l=$append(l,32);if(w<10){l=$append(l,32);}}l=DB(l,w,0);}else if(ag===(267)){l=DB(l,w,3);}else if(ag===(524)){l=DB(l,x,2);}else if(ag===(525)){am=(al=x%12,al===al?al:$throwRuntimeError("integer divide by zero"));if(am===0){am=12;}l=DB(l,am,0);}else if(ag===(526)){ao=(an=x%12,an===an?an:$throwRuntimeError("integer divide by zero"));if(ao===0){ao=12;}l=DB(l,ao,2);}else if(ag===(527)){l=DB(l,y,0);}else if(ag===(528)){l=DB(l,y,2);}else if(ag===(529)){l=DB(l,z,0);}else if(ag===(530)){l=DB(l,z,2);}else if(ag===(533)){if(x>=12){l=$appendSlice(l,"PM");}else{l=$appendSlice(l,"AM");}}else if(ag===(534)){if(x>=12){l=$appendSlice(l,"pm");}else{l=$appendSlice(l,"am");}}else if((ag===(24))||(ag===(27))||(ag===(25))||(ag===(26))||(ag===(28))||(ag===(29))||(ag===(32))||(ag===(30))||(ag===(31))||(ag===(33))){if((r===0)&&((ac===24)||(ac===27)||(ac===25)||(ac===26)||(ac===28))){l=$append(l,90);break;}aq=(ap=r/60,(ap===ap&&ap!==1/0&&ap!==-1/0)?ap>>0:$throwRuntimeError("integer divide by zero"));ar=r;if(aq<0){l=$append(l,45);aq=-aq;ar=-ar;}else{l=$append(l,43);}l=DB(l,(as=aq/60,(as===as&&as!==1/0&&as!==-1/0)?as>>0:$throwRuntimeError("integer divide by zero")),2);if((ac===27)||(ac===32)||(ac===28)||(ac===33)){l=$append(l,58);}if(!((ac===31))&&!((ac===26))){l=DB(l,(at=aq%60,at===at?at:$throwRuntimeError("integer divide by zero")),2);}if((ac===25)||(ac===30)||(ac===33)||(ac===28)){if((ac===33)||(ac===28)){l=$append(l,58);}l=DB(l,(au=ar%60,au===au?au:$throwRuntimeError("integer divide by zero")),2);}}else if(ag===(23)){if(!(q==="")){l=$appendSlice(l,q);break;}aw=(av=r/60,(av===av&&av!==1/0&&av!==-1/0)?av>>0:$throwRuntimeError("integer divide by zero"));if(aw<0){l=$append(l,45);aw=-aw;}else{l=$append(l,43);}l=DB(l,(ax=aw/60,(ax===ax&&ax!==1/0&&ax!==-1/0)?ax>>0:$throwRuntimeError("integer divide by zero")),2);l=DB(l,(ay=aw%60,ay===ay?ay:$throwRuntimeError("integer divide by zero")),2);}else if((ag===(34))||(ag===(35))){l=DH(l,(($clone(n,AQ).Nanosecond()>>>0)),ac);}}}$s=-1;return l;}return;}var $f={$blk:AQ.ptr.prototype.AppendFormat,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AQ.prototype.AppendFormat=function(l,m){return this.$val.AppendFormat(l,m);};DK=function(l){var l,m,n,o,p,q,r,s,t;m=$makeSlice(EK,1,(l.length+2>>0));(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0]=34);n=l;o=0;while(true){if(!(o=128||r<32){s=0;if(r===65533){s=1;if((q+2>>0)>0))==="\xEF\xBF\xBD"){s=3;}}else{s=($encodeRune(r)).length;}t=0;while(true){if(!(t>0))>>>4<<24>>>24)));m=$append(m,"0123456789abcdef".charCodeAt(((l.charCodeAt((q+t>>0))&15)>>>0)));t=t+(1)>>0;}}else{if((r===34)||(r===92)){m=$append(m,92);}m=$appendSlice(m,($encodeRune(r)));}o+=p[1];}m=$append(m,34);return($bytesToString(m));};DJ.ptr.prototype.Error=function(){var l;l=this;if(l.Message===""){return"parsing time "+DK(l.Value)+" as "+DK(l.Layout)+": cannot parse "+DK(l.ValueElem)+" as "+DK(l.LayoutElem);}return"parsing time "+DK(l.Value)+l.Message;};DJ.prototype.Error=function(){return this.$val.Error();};DL=function(l,m){var l,m,n;if(l.length<=m){return false;}n=l.charCodeAt(m);return 48<=n&&n<=57;};DM=function(l,m){var l,m;if(!DL(l,0)){return[0,l,DI];}if(!DL(l,1)){if(m){return[0,l,DI];}return[(((l.charCodeAt(0)-48<<24>>>24)>>0)),$substring(l,1),$ifaceNil];}return[($imul((((l.charCodeAt(0)-48<<24>>>24)>>0)),10))+(((l.charCodeAt(1)-48<<24>>>24)>>0))>>0,$substring(l,2),$ifaceNil];};DN=function(l,m){var l,m,n,o,p,q;n=0;o=0;p=n;q=o;q=0;while(true){if(!(q<3&&DL(l,q))){break;}p=($imul(p,10))+(((l.charCodeAt(q)-48<<24>>>24)>>0))>>0;q=q+(1)>>0;}if((q===0)||m&&!((q===3))){return[0,l,DI];}return[p,$substring(l,q),$ifaceNil];};DO=function(l){var l;while(true){if(!(l.length>0&&(l.charCodeAt(0)===32))){break;}l=$substring(l,1);}return l;};DP=function(l,m){var l,m;while(true){if(!(m.length>0)){break;}if(m.charCodeAt(0)===32){if(l.length>0&&!((l.charCodeAt(0)===32))){return[l,DI];}m=DO(m);l=DO(l);continue;}if((l.length===0)||!((l.charCodeAt(0)===m.charCodeAt(0)))){return[l,DI];}m=$substring(m,1);l=$substring(l,1);}return[l,$ifaceNil];};DQ=function(l,m){var{l,m,n,o,$s,$r,$c}=$restore(this,{l,m});$s=$s||0;s:while(true){switch($s){case 0:n=DS(l,m,$pkg.UTC,$pkg.Local);$s=1;case 1:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;$s=2;case 2:return o;}return;}var $f={$blk:DQ,$c:true,$r,l,m,n,o,$s};return $f;};$pkg.Parse=DQ;DS=function(l,m,n,o){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{l,m,n,o});$s=$s||0;s:while(true){switch($s){case 0:p=l;q=m;r=p;s=q;t="";u=false;v=false;w=0;x=-1;y=-1;z=-1;aa=0;ab=0;ac=0;ad=0;ae=EL.nil;af=-1;ag="";while(true){ah=$ifaceNil;ai=CU(l);aj=ai[0];ak=ai[1];al=ai[2];am=$substring(l,aj.length,(l.length-al.length>>0));an=DP(m,aj);m=an[0];ah=an[1];if(!($interfaceIsEqual(ah,$ifaceNil))){$s=-1;return[new AQ.ptr(new $Uint64(0,0),new $Int64(0,0),EL.nil),new DJ.ptr(r,s,aj,m,"")];}if(ak===0){if(!((m.length===0))){$s=-1;return[new AQ.ptr(new $Uint64(0,0),new $Int64(0,0),EL.nil),new DJ.ptr(r,s,"",m,": extra text: "+DK(m))];}break;}l=al;ao="";switch(0){default:ap=ak&65535;if(ap===(276)){if(m.length<2){ah=DI;break;}aq=m;ar=$substring(m,0,2);as=$substring(m,2);ao=ar;m=as;at=DD(ao);w=at[0];ah=at[1];if(!($interfaceIsEqual(ah,$ifaceNil))){m=aq;}else if(w>=69){w=w+(1900)>>0;}else{w=w+(2000)>>0;}}else if(ap===(275)){if(m.length<4||!DL(m,0)){ah=DI;break;}au=$substring(m,0,4);av=$substring(m,4);ao=au;m=av;aw=DD(ao);w=aw[0];ah=aw[1];}else if(ap===(258)){ax=DA(CX,m);x=ax[0];m=ax[1];ah=ax[2];x=x+(1)>>0;}else if(ap===(257)){ay=DA(CY,m);x=ay[0];m=ay[1];ah=ay[2];x=x+(1)>>0;}else if((ap===(259))||(ap===(260))){az=DM(m,ak===260);x=az[0];m=az[1];ah=az[2];if($interfaceIsEqual(ah,$ifaceNil)&&(x<=0||120&&(m.charCodeAt(0)===32)){m=$substring(m,1);}bc=DM(m,ak===265);y=bc[0];m=bc[1];ah=bc[2];}else if((ap===(266))||(ap===(267))){bd=0;while(true){if(!(bd<2)){break;}if((ak===266)&&m.length>0&&(m.charCodeAt(0)===32)){m=$substring(m,1);}bd=bd+(1)>>0;}be=DN(m,ak===267);z=be[0];m=be[1];ah=be[2];}else if(ap===(524)){bf=DM(m,false);aa=bf[0];m=bf[1];ah=bf[2];if(aa<0||24<=aa){t="hour";}}else if((ap===(525))||(ap===(526))){bg=DM(m,ak===526);aa=bg[0];m=bg[1];ah=bg[2];if(aa<0||12=2&&DW(m.charCodeAt(0))&&DL(m,1)){bj=CU(l);ak=bj[1];ak=ak&(65535);if((ak===34)||(ak===35)){break;}bk=2;while(true){if(!(bk>0;}bl=DX(m,bk);ad=bl[0];t=bl[1];ah=bl[2];m=$substring(m,bk);}}else if(ap===(533)){if(m.length<2){ah=DI;break;}bm=$substring(m,0,2);bn=$substring(m,2);ao=bm;m=bn;bo=ao;if(bo===("PM")){v=true;}else if(bo===("AM")){u=true;}else{ah=DI;}}else if(ap===(534)){if(m.length<2){ah=DI;break;}bp=$substring(m,0,2);bq=$substring(m,2);ao=bp;m=bq;br=ao;if(br===("pm")){v=true;}else if(br===("am")){u=true;}else{ah=DI;}}else if((ap===(24))||(ap===(27))||(ap===(25))||(ap===(26))||(ap===(28))||(ap===(29))||(ap===(31))||(ap===(32))||(ap===(30))||(ap===(33))){if(((ak===24)||(ak===26)||(ak===27))&&m.length>=1&&(m.charCodeAt(0)===90)){m=$substring(m,1);ae=$pkg.UTC;break;}bs="";bt="";bu="";bv="";bw=bs;bx=bt;by=bu;bz=bv;if((ak===27)||(ak===32)){if(m.length<6){ah=DI;break;}if(!((m.charCodeAt(3)===58))){ah=DI;break;}ca=$substring(m,0,1);cb=$substring(m,1,3);cc=$substring(m,4,6);cd="00";ce=$substring(m,6);bw=ca;bx=cb;by=cc;bz=cd;m=ce;}else if((ak===31)||(ak===26)){if(m.length<3){ah=DI;break;}cf=$substring(m,0,1);cg=$substring(m,1,3);ch="00";ci="00";cj=$substring(m,3);bw=cf;bx=cg;by=ch;bz=ci;m=cj;}else if((ak===28)||(ak===33)){if(m.length<9){ah=DI;break;}if(!((m.charCodeAt(3)===58))||!((m.charCodeAt(6)===58))){ah=DI;break;}ck=$substring(m,0,1);cl=$substring(m,1,3);cm=$substring(m,4,6);cn=$substring(m,7,9);co=$substring(m,9);bw=ck;bx=cl;by=cm;bz=cn;m=co;}else if((ak===25)||(ak===30)){if(m.length<7){ah=DI;break;}cp=$substring(m,0,1);cq=$substring(m,1,3);cr=$substring(m,3,5);cs=$substring(m,5,7);ct=$substring(m,7);bw=cp;bx=cq;by=cr;bz=cs;m=ct;}else{if(m.length<5){ah=DI;break;}cu=$substring(m,0,1);cv=$substring(m,1,3);cw=$substring(m,3,5);cx="00";cy=$substring(m,5);bw=cu;bx=cv;by=cw;bz=cx;m=cy;}cz=0;da=0;db=0;dc=cz;dd=da;de=db;df=DD(bx);dc=df[0];ah=df[1];if($interfaceIsEqual(ah,$ifaceNil)){dg=DD(by);dd=dg[0];ah=dg[1];}if($interfaceIsEqual(ah,$ifaceNil)){dh=DD(bz);de=dh[0];ah=dh[1];}af=($imul(((($imul(dc,60))+dd>>0)),60))+de>>0;di=bw.charCodeAt(0);if(di===(43)){}else if(di===(45)){af=-af;}else{ah=DI;}}else if(ap===(23)){if(m.length>=3&&$substring(m,0,3)==="UTC"){ae=$pkg.UTC;m=$substring(m,3);break;}dj=DT(m);dk=dj[0];dl=dj[1];if(!dl){ah=DI;break;}dm=$substring(m,0,dk);dn=$substring(m,dk);ag=dm;m=dn;}else if(ap===(34)){dp=1+DF(ak)>>0;if(m.length>0)>0))&&m.charCodeAt((dr+1>>0))<=57)){break;}dr=dr+(1)>>0;}ds=DX(m,1+dr>>0);ad=ds[0];t=ds[1];ah=ds[2];m=$substring(m,(1+dr>>0));}}if(!(t==="")){$s=-1;return[new AQ.ptr(new $Uint64(0,0),new $Int64(0,0),EL.nil),new DJ.ptr(r,s,am,m,": "+t+" out of range")];}if(!($interfaceIsEqual(ah,$ifaceNil))){$s=-1;return[new AQ.ptr(new $Uint64(0,0),new $Int64(0,0),EL.nil),new DJ.ptr(r,s,am,m,"")];}}if(v&&aa<12){aa=aa+(12)>>0;}else if(u&&(aa===12)){aa=0;}if(z>=0){dt=0;du=0;if(BM(w)){if(z===60){du=2;dt=29;}else if(z>60){z=z-(1)>>0;}}if(z<1||z>365){$s=-1;return[new AQ.ptr(new $Uint64(0,0),new $Int64(0,0),EL.nil),new DJ.ptr(r,s,"",m,": day-of-year out of range")];}if(du===0){du=(dv=((z-1>>0))/31,(dv===dv&&dv!==1/0&&dv!==-1/0)?dv>>0:$throwRuntimeError("integer divide by zero"))+1>>0;if(((((du<0||du>=BC.length)?($throwRuntimeError("index out of range"),undefined):BC[du])>>0))>0;}dt=z-(((dw=du-1>>0,((dw<0||dw>=BC.length)?($throwRuntimeError("index out of range"),undefined):BC[dw]))>>0))>>0;}if(x>=0&&!((x===du))){$s=-1;return[new AQ.ptr(new $Uint64(0,0),new $Int64(0,0),EL.nil),new DJ.ptr(r,s,"",m,": day-of-year does not match month")];}x=du;if(y>=0&&!((y===dt))){$s=-1;return[new AQ.ptr(new $Uint64(0,0),new $Int64(0,0),EL.nil),new DJ.ptr(r,s,"",m,": day-of-year does not match day")];}y=dt;}else{if(x<0){x=1;}if(y<0){y=1;}}if(y<1||y>BD(((x>>0)),w)){$s=-1;return[new AQ.ptr(new $Uint64(0,0),new $Int64(0,0),EL.nil),new DJ.ptr(r,s,"",m,": day out of range")];}if(!(ae===EL.nil)){$s=1;continue;}$s=2;continue;case 1:dx=BO(w,((x>>0)),y,aa,ab,ac,ad,ae);$s=3;case 3:if($c){$c=false;dx=dx.$blk();}if(dx&&dx.$blk!==undefined){break s;}dy=[dx,$ifaceNil];$s=4;case 4:return dy;case 2:if(!((af===-1))){$s=5;continue;}$s=6;continue;case 5:dz=BO(w,((x>>0)),y,aa,ab,ac,ad,$pkg.UTC);$s=7;case 7:if($c){$c=false;dz=dz.$blk();}if(dz&&dz.$blk!==undefined){break s;}ea=$clone(dz,AQ);ea.addSec((eb=(new $Int64(0,af)),new $Int64(-eb.$high,-eb.$low)));ed=o.lookup(ea.unixSec());$s=8;case 8:if($c){$c=false;ed=ed.$blk();}if(ed&&ed.$blk!==undefined){break s;}ec=ed;ee=ec[0];ef=ec[1];if((ef===af)&&(ag===""||ee===ag)){ea.setLoc(o);$s=-1;return[ea,$ifaceNil];}ea.setLoc(AC(ag,af));$s=-1;return[ea,$ifaceNil];case 6:if(!(ag==="")){$s=9;continue;}$s=10;continue;case 9:eg=BO(w,((x>>0)),y,aa,ab,ac,ad,$pkg.UTC);$s=11;case 11:if($c){$c=false;eg=eg.$blk();}if(eg&&eg.$blk!==undefined){break s;}eh=$clone(eg,AQ);ej=o.lookupName(ag,eh.unixSec());$s=12;case 12:if($c){$c=false;ej=ej.$blk();}if(ej&&ej.$blk!==undefined){break s;}ei=ej;ek=ei[0];el=ei[1];if(el){eh.addSec((em=(new $Int64(0,ek)),new $Int64(-em.$high,-em.$low)));eh.setLoc(o);$s=-1;return[eh,$ifaceNil];}if(ag.length>3&&$substring(ag,0,3)==="GMT"){en=DD($substring(ag,3));ek=en[0];ek=$imul(ek,(3600));}eh.setLoc(AC(ag,ek));$s=-1;return[eh,$ifaceNil];case 10:eo=BO(w,((x>>0)),y,aa,ab,ac,ad,n);$s=13;case 13:if($c){$c=false;eo=eo.$blk();}if(eo&&eo.$blk!==undefined){break s;}ep=[eo,$ifaceNil];$s=14;case 14:return ep;}return;}var $f={$blk:DS,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};DT=function(l){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;m=0;n=false;if(l.length<3){o=0;p=false;m=o;n=p;return[m,n];}if(l.length>=4&&($substring(l,0,4)==="ChST"||$substring(l,0,4)==="MeST")){q=4;r=true;m=q;n=r;return[m,n];}if($substring(l,0,3)==="GMT"){m=DU(l);s=m;t=true;m=s;n=t;return[m,n];}if((l.charCodeAt(0)===43)||(l.charCodeAt(0)===45)){m=DV(l);u=m>0;v=m;w=u;m=v;n=w;return[m,n];}x=0;x=0;while(true){if(!(x<6)){break;}if(x>=l.length){break;}y=l.charCodeAt(x);if(y<65||90>0;}z=x;if((z===(0))||(z===(1))||(z===(2))||(z===(6))){aa=0;ab=false;m=aa;n=ab;return[m,n];}else if(z===(5)){if(l.charCodeAt(4)===84){ac=5;ad=true;m=ac;n=ad;return[m,n];}}else if(z===(4)){if((l.charCodeAt(3)===84)||$substring(l,0,4)==="WITA"){ae=4;af=true;m=ae;n=af;return[m,n];}}else if(z===(3)){ag=3;ah=true;m=ag;n=ah;return[m,n];}ai=0;aj=false;m=ai;n=aj;return[m,n];};DU=function(l){var l;l=$substring(l,3);if(l.length===0){return 3;}return 3+DV(l)>>0;};DV=function(l){var l,m,n,o,p,q;m=l.charCodeAt(0);if(!((m===45))&&!((m===43))){return 0;}n=DZ($substring(l,1));o=n[0];p=n[1];q=n[2];if(!($interfaceIsEqual(q,$ifaceNil))||$substring(l,1)===p){return 0;}if((o.$high>0||(o.$high===0&&o.$low>23))){return 0;}return l.length-p.length>>0;};DW=function(l){var l;return(l===46)||(l===44);};DX=function(l,m){var l,m,n,o,p,q,r,s;n=0;o="";p=$ifaceNil;if(!DW(l.charCodeAt(0))){p=DI;return[n,o,p];}if(m>10){l=$substring(l,0,10);m=10;}q=DD($substring(l,1,m));n=q[0];p=q[1];if(!($interfaceIsEqual(p,$ifaceNil))){return[n,o,p];}if(n<0){o="fractional second";return[n,o,p];}r=10-m>>0;s=0;while(true){if(!(s>0;}return[n,o,p];};DZ=function(l){var aa,ab,ac,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;m=new $Uint64(0,0);n="";o=$ifaceNil;p=0;while(true){if(!(p57){break;}if((m.$high>214748364||(m.$high===214748364&&m.$low>3435973836))){r=new $Uint64(0,0);s="";t=DY;m=r;n=s;o=t;return[m,n,o];}m=(u=(v=$mul64(m,new $Uint64(0,10)),w=(new $Uint64(0,q)),new $Uint64(v.$high+w.$high,v.$low+w.$low)),new $Uint64(u.$high-0,u.$low-48));if((m.$high>2147483648||(m.$high===2147483648&&m.$low>0))){x=new $Uint64(0,0);y="";z=DY;m=x;n=y;o=z;return[m,n,o];}p=p+(1)>>0;}aa=m;ab=$substring(l,p);ac=$ifaceNil;m=aa;n=ab;o=ac;return[m,n,o];};EL.methods=[{prop:"get",name:"get",pkg:"time",typ:$funcType([],[EL],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"lookup",name:"lookup",pkg:"time",typ:$funcType([$Int64],[$String,$Int,$Int64,$Int64,$Bool],false)},{prop:"lookupFirstZone",name:"lookupFirstZone",pkg:"time",typ:$funcType([],[$Int],false)},{prop:"firstZoneUsed",name:"firstZoneUsed",pkg:"time",typ:$funcType([],[$Bool],false)},{prop:"lookupName",name:"lookupName",pkg:"time",typ:$funcType([$String,$Int64],[$Int,$Bool],false)}];AQ.methods=[{prop:"After",name:"After",pkg:"",typ:$funcType([AQ],[$Bool],false)},{prop:"Before",name:"Before",pkg:"",typ:$funcType([AQ],[$Bool],false)},{prop:"Equal",name:"Equal",pkg:"",typ:$funcType([AQ],[$Bool],false)},{prop:"IsZero",name:"IsZero",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"abs",name:"abs",pkg:"time",typ:$funcType([],[$Uint64],false)},{prop:"locabs",name:"locabs",pkg:"time",typ:$funcType([],[$String,$Int,$Uint64],false)},{prop:"Date",name:"Date",pkg:"",typ:$funcType([],[$Int,AR,$Int],false)},{prop:"Year",name:"Year",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Month",name:"Month",pkg:"",typ:$funcType([],[AR],false)},{prop:"Day",name:"Day",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Weekday",name:"Weekday",pkg:"",typ:$funcType([],[AS],false)},{prop:"ISOWeek",name:"ISOWeek",pkg:"",typ:$funcType([],[$Int,$Int],false)},{prop:"Clock",name:"Clock",pkg:"",typ:$funcType([],[$Int,$Int,$Int],false)},{prop:"Hour",name:"Hour",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Minute",name:"Minute",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Second",name:"Second",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Nanosecond",name:"Nanosecond",pkg:"",typ:$funcType([],[$Int],false)},{prop:"YearDay",name:"YearDay",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Add",name:"Add",pkg:"",typ:$funcType([AV],[AQ],false)},{prop:"Sub",name:"Sub",pkg:"",typ:$funcType([AQ],[AV],false)},{prop:"AddDate",name:"AddDate",pkg:"",typ:$funcType([$Int,$Int,$Int],[AQ],false)},{prop:"date",name:"date",pkg:"time",typ:$funcType([$Bool],[$Int,AR,$Int,$Int],false)},{prop:"UTC",name:"UTC",pkg:"",typ:$funcType([],[AQ],false)},{prop:"Local",name:"Local",pkg:"",typ:$funcType([],[AQ],false)},{prop:"In",name:"In",pkg:"",typ:$funcType([EL],[AQ],false)},{prop:"Location",name:"Location",pkg:"",typ:$funcType([],[EL],false)},{prop:"Zone",name:"Zone",pkg:"",typ:$funcType([],[$String,$Int],false)},{prop:"Unix",name:"Unix",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"UnixMilli",name:"UnixMilli",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"UnixMicro",name:"UnixMicro",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"UnixNano",name:"UnixNano",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"MarshalBinary",name:"MarshalBinary",pkg:"",typ:$funcType([],[EK,$error],false)},{prop:"GobEncode",name:"GobEncode",pkg:"",typ:$funcType([],[EK,$error],false)},{prop:"MarshalJSON",name:"MarshalJSON",pkg:"",typ:$funcType([],[EK,$error],false)},{prop:"MarshalText",name:"MarshalText",pkg:"",typ:$funcType([],[EK,$error],false)},{prop:"IsDST",name:"IsDST",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Truncate",name:"Truncate",pkg:"",typ:$funcType([AV],[AQ],false)},{prop:"Round",name:"Round",pkg:"",typ:$funcType([AV],[AQ],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"GoString",name:"GoString",pkg:"",typ:$funcType([],[$String],false)},{prop:"Format",name:"Format",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"AppendFormat",name:"AppendFormat",pkg:"",typ:$funcType([EK,$String],[EK],false)}];EW.methods=[{prop:"nsec",name:"nsec",pkg:"time",typ:$funcType([],[$Int32],false)},{prop:"sec",name:"sec",pkg:"time",typ:$funcType([],[$Int64],false)},{prop:"unixSec",name:"unixSec",pkg:"time",typ:$funcType([],[$Int64],false)},{prop:"addSec",name:"addSec",pkg:"time",typ:$funcType([$Int64],[],false)},{prop:"setLoc",name:"setLoc",pkg:"time",typ:$funcType([EL],[],false)},{prop:"stripMono",name:"stripMono",pkg:"time",typ:$funcType([],[],false)},{prop:"setMono",name:"setMono",pkg:"time",typ:$funcType([$Int64],[],false)},{prop:"mono",name:"mono",pkg:"time",typ:$funcType([],[$Int64],false)},{prop:"UnmarshalBinary",name:"UnmarshalBinary",pkg:"",typ:$funcType([EK],[$error],false)},{prop:"GobDecode",name:"GobDecode",pkg:"",typ:$funcType([EK],[$error],false)},{prop:"UnmarshalJSON",name:"UnmarshalJSON",pkg:"",typ:$funcType([EK],[$error],false)},{prop:"UnmarshalText",name:"UnmarshalText",pkg:"",typ:$funcType([EK],[$error],false)}];AR.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];AS.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];AV.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Nanoseconds",name:"Nanoseconds",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Microseconds",name:"Microseconds",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Milliseconds",name:"Milliseconds",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Seconds",name:"Seconds",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Minutes",name:"Minutes",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Hours",name:"Hours",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Truncate",name:"Truncate",pkg:"",typ:$funcType([AV],[AV],false)},{prop:"Round",name:"Round",pkg:"",typ:$funcType([AV],[AV],false)}];EZ.methods=[{prop:"Stop",name:"Stop",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([AV],[$Bool],false)}];FC.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];W.init("time",[{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"zone",name:"zone",embedded:false,exported:false,typ:EF,tag:""},{prop:"tx",name:"tx",embedded:false,exported:false,typ:EG,tag:""},{prop:"extend",name:"extend",embedded:false,exported:false,typ:$String,tag:""},{prop:"cacheStart",name:"cacheStart",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"cacheEnd",name:"cacheEnd",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"cacheZone",name:"cacheZone",embedded:false,exported:false,typ:EH,tag:""}]);X.init("time",[{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"offset",name:"offset",embedded:false,exported:false,typ:$Int,tag:""},{prop:"isDST",name:"isDST",embedded:false,exported:false,typ:$Bool,tag:""}]);Y.init("time",[{prop:"when",name:"when",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"index",name:"index",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"isstd",name:"isstd",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"isutc",name:"isutc",embedded:false,exported:false,typ:$Bool,tag:""}]);AH.init("time",[{prop:"kind",name:"kind",embedded:false,exported:false,typ:AG,tag:""},{prop:"day",name:"day",embedded:false,exported:false,typ:$Int,tag:""},{prop:"week",name:"week",embedded:false,exported:false,typ:$Int,tag:""},{prop:"mon",name:"mon",embedded:false,exported:false,typ:$Int,tag:""},{prop:"time",name:"time",embedded:false,exported:false,typ:$Int,tag:""}]);AQ.init("time",[{prop:"wall",name:"wall",embedded:false,exported:false,typ:$Uint64,tag:""},{prop:"ext",name:"ext",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"loc",name:"loc",embedded:false,exported:false,typ:EL,tag:""}]);BZ.init("time",[{prop:"C",name:"C",embedded:false,exported:true,typ:EY,tag:""},{prop:"r",name:"r",embedded:false,exported:false,typ:CI,tag:""}]);CI.init("time",[{prop:"i",name:"i",embedded:false,exported:false,typ:$Int32,tag:""},{prop:"when",name:"when",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"period",name:"period",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"f",name:"f",embedded:false,exported:false,typ:FA,tag:""},{prop:"arg",name:"arg",embedded:false,exported:false,typ:$emptyInterface,tag:""},{prop:"seq",name:"seq",embedded:false,exported:false,typ:$Uintptr,tag:""},{prop:"timeout",name:"timeout",embedded:false,exported:false,typ:FB,tag:""},{prop:"active",name:"active",embedded:false,exported:false,typ:$Bool,tag:""}]);DJ.init("",[{prop:"Layout",name:"Layout",embedded:false,exported:true,typ:$String,tag:""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:$String,tag:""},{prop:"LayoutElem",name:"LayoutElem",embedded:false,exported:true,typ:$String,tag:""},{prop:"ValueElem",name:"ValueElem",embedded:false,exported:true,typ:$String,tag:""},{prop:"Message",name:"Message",embedded:false,exported:true,typ:$String,tag:""}]);$pkg.$initLinknames=function(){BF=$linknames["runtime.nanotime"];};$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}AA=new W.ptr("",EF.nil,EG.nil,"",new $Int64(0,0),new $Int64(0,0),EH.nil);AB=new E.Once.ptr(false,false);L=A.New("malformed time zone information");$unused(new EJ(["/usr/share/zoneinfo/","/usr/share/lib/zoneinfo/","/usr/lib/locale/TZ/",B.GOROOT()+"/lib/time/zoneinfo.zip"]));Z=new W.ptr("UTC",EF.nil,EG.nil,"",new $Int64(0,0),new $Int64(0,0),EH.nil);$pkg.UTC=Z;$pkg.Local=AA;AL=A.New("time: invalid location name");BC=$toNativeArray($kindInt32,[0,31,59,90,120,151,181,212,243,273,304,334,365]);k=BF();$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}BG=(j=k,new $Int64(j.$high-0,j.$low-1));CQ=new EJ([B.GOROOT()+"/lib/time/zoneinfo.zip"]);CS=$toNativeArray($kindInt,[260,265,526,528,530,276]);CV=new EJ(["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]);CW=new EJ(["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);CX=new EJ(["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]);CY=new EJ(["January","February","March","April","May","June","July","August","September","October","November","December"]);DC=A.New("time: invalid number");DI=A.New("bad value for field");DY=A.New("time: bad [0-9]*");CH();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/poll"]=(function(){var $pkg={},$init,F,B,C,D,A,E,J,P,S,T,V,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,K,Y,G,H,I,L,M,N,O,Q,U,X;F=$packages["errors"];B=$packages["internal/syscall/unix"];C=$packages["io"];D=$packages["sync/atomic"];A=$packages["syscall"];E=$packages["time"];J=$pkg.FD=$newType(0,$kindStruct,"poll.FD",true,"internal/poll",true,function(fdmu_,Sysfd_,pd_,iovecs_,csema_,isBlocking_,IsStream_,ZeroReadIsEOF_,isFile_){this.$val=this;if(arguments.length===0){this.fdmu=new S.ptr(new $Uint64(0,0),0,0);this.Sysfd=0;this.pd=new P.ptr(AB.nil,false);this.iovecs=AE.nil;this.csema=0;this.isBlocking=0;this.IsStream=false;this.ZeroReadIsEOF=false;this.isFile=false;return;}this.fdmu=fdmu_;this.Sysfd=Sysfd_;this.pd=pd_;this.iovecs=iovecs_;this.csema=csema_;this.isBlocking=isBlocking_;this.IsStream=IsStream_;this.ZeroReadIsEOF=ZeroReadIsEOF_;this.isFile=isFile_;});P=$pkg.pollDesc=$newType(0,$kindStruct,"poll.pollDesc",true,"internal/poll",false,function(fd_,closing_){this.$val=this;if(arguments.length===0){this.fd=AB.nil;this.closing=false;return;}this.fd=fd_;this.closing=closing_;});S=$pkg.fdMutex=$newType(0,$kindStruct,"poll.fdMutex",true,"internal/poll",false,function(state_,rsema_,wsema_){this.$val=this;if(arguments.length===0){this.state=new $Uint64(0,0);this.rsema=0;this.wsema=0;return;}this.state=state_;this.rsema=rsema_;this.wsema=wsema_;});T=$pkg.errNetClosing=$newType(0,$kindStruct,"poll.errNetClosing",true,"internal/poll",false,function(){this.$val=this;if(arguments.length===0){return;}});V=$pkg.DeadlineExceededError=$newType(0,$kindStruct,"poll.DeadlineExceededError",true,"internal/poll",true,function(){this.$val=this;if(arguments.length===0){return;}});Z=$ptrType($Uint32);AA=$ptrType($Int32);AB=$ptrType(J);AC=$ptrType($Uint64);AD=$sliceType(A.Iovec);AE=$ptrType(AD);AF=$sliceType($Uint8);AG=$ptrType(A.SockaddrInet4);AH=$ptrType(A.SockaddrInet6);AI=$ptrType(A.Stat_t);AJ=$funcType([$Uintptr],[$Bool],false);AK=$funcType([$Uintptr],[],false);AL=$ptrType(P);AM=$ptrType(S);AN=$ptrType(V);G=function(c){var{c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:e=$pkg.AcceptFunc(c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];h=d[2];if($interfaceIsEqual(h,$ifaceNil)){A.CloseOnExec(f);}if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return[-1,$ifaceNil,"accept",h];}h=A.SetNonblock(f,true);if(!($interfaceIsEqual(h,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:i=$pkg.CloseFunc(f);$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$s=-1;return[-1,$ifaceNil,"setnonblock",h];case 3:$s=-1;return[f,g,"",$ifaceNil];}return;}var $f={$blk:G,$c:true,$r,c,d,e,f,g,h,i,$s};return $f;};H=function(){$throwRuntimeError("native function not implemented: internal/poll.runtime_Semacquire");};I=function(){$throwRuntimeError("native function not implemented: internal/poll.runtime_Semrelease");};J.ptr.prototype.Init=function(c,d){var c,d,e,f;e=this;if(c==="file"){e.isFile=true;}if(!d){e.isBlocking=1;return $ifaceNil;}f=e.pd.init(e);if(!($interfaceIsEqual(f,$ifaceNil))){e.isBlocking=1;}return f;};J.prototype.Init=function(c,d){return this.$val.Init(c,d);};J.ptr.prototype.destroy=function(){var{c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;c.pd.close();d=$pkg.CloseFunc(c.Sysfd);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;c.Sysfd=-1;$r=I((c.$ptr_csema||(c.$ptr_csema=new Z(function(){return this.$target.csema;},function($v){this.$target.csema=$v;},c))));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return e;}return;}var $f={$blk:J.ptr.prototype.destroy,$c:true,$r,c,d,e,$s};return $f;};J.prototype.destroy=function(){return this.$val.destroy();};J.ptr.prototype.Close=function(){var{c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.fdmu.increfAndClose();$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(!d){$s=1;continue;}$s=2;continue;case 1:$s=-1;return U(c.isFile);case 2:c.pd.evict();e=c.decref();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(c.isBlocking===0){$s=5;continue;}$s=6;continue;case 5:$r=H((c.$ptr_csema||(c.$ptr_csema=new Z(function(){return this.$target.csema;},function($v){this.$target.csema=$v;},c))));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:$s=-1;return f;}return;}var $f={$blk:J.ptr.prototype.Close,$c:true,$r,c,d,e,f,$s};return $f;};J.prototype.Close=function(){return this.$val.Close();};J.ptr.prototype.SetBlocking=function(){var{c,d,e,f,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=this;d=c.incref();if(!($interfaceIsEqual(d,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:e=d;$s=3;case 3:return e;case 2:$deferred.push([$methodVal(c,"decref"),[]]);D.StoreUint32((c.$ptr_isBlocking||(c.$ptr_isBlocking=new Z(function(){return this.$target.isBlocking;},function($v){this.$target.isBlocking=$v;},c))),1);f=A.SetNonblock(c.Sysfd,false);$s=4;case 4:return f;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.SetBlocking,$c:true,$r,c,d,e,f,$s,$deferred};return $f;}}};J.prototype.SetBlocking=function(){return this.$val.SetBlocking();};J.ptr.prototype.Read=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$deferred,$r,$c}=$restore(this,{c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=this;e=d.readLock();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:g=[0,f];$s=4;case 4:return g;case 3:$deferred.push([$methodVal(d,"readUnlock"),[]]);if(c.$length===0){$s=5;continue;}$s=6;continue;case 5:h=[0,$ifaceNil];$s=7;case 7:return h;case 6:i=d.pd.prepareRead(d.isFile);if(!($interfaceIsEqual(i,$ifaceNil))){$s=8;continue;}$s=9;continue;case 8:j=[0,i];$s=10;case 10:return j;case 9:if(d.IsStream&&c.$length>1073741824){c=$subslice(c,0,1073741824);}case 11:l=N(A.Read,d.Sysfd,c);$s=13;case 13:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];if(!($interfaceIsEqual(n,$ifaceNil))){m=0;if($interfaceIsEqual(n,new A.Errno(11))&&d.pd.pollable()){n=d.pd.waitRead(d.isFile);if($interfaceIsEqual(n,$ifaceNil)){$s=11;continue;}}}n=d.eofError(m,n);o=[m,n];$s=14;case 14:return o;case 12:$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.Read,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$deferred};return $f;}}};J.prototype.Read=function(c){return this.$val.Read(c);};J.ptr.prototype.Pread=function(c,d){var{c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=e.incref();if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[0,f];}if(e.IsStream&&c.$length>1073741824){c=$subslice(c,0,1073741824);}g=0;h=$ifaceNil;case 1:j=A.Pread(e.Sysfd,c,d);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;g=i[0];h=i[1];if(!($interfaceIsEqual(h,new A.Errno(4)))){$s=2;continue;}$s=1;continue;case 2:if(!($interfaceIsEqual(h,$ifaceNil))){g=0;}k=e.decref();$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;h=e.eofError(g,h);$s=-1;return[g,h];}return;}var $f={$blk:J.ptr.prototype.Pread,$c:true,$r,c,d,e,f,g,h,i,j,k,$s};return $f;};J.prototype.Pread=function(c,d){return this.$val.Pread(c,d);};J.ptr.prototype.ReadFrom=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,$s,$deferred,$r,$c}=$restore(this,{c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=this;e=d.readLock();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:g=[0,$ifaceNil,f];$s=4;case 4:return g;case 3:$deferred.push([$methodVal(d,"readUnlock"),[]]);h=d.pd.prepareRead(d.isFile);if(!($interfaceIsEqual(h,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:i=[0,$ifaceNil,h];$s=7;case 7:return i;case 6:case 8:j=A.Recvfrom(d.Sysfd,c,0);k=j[0];l=j[1];m=j[2];if(!($interfaceIsEqual(m,$ifaceNil))){if($interfaceIsEqual(m,new A.Errno(4))){$s=8;continue;}k=0;if($interfaceIsEqual(m,new A.Errno(11))&&d.pd.pollable()){m=d.pd.waitRead(d.isFile);if($interfaceIsEqual(m,$ifaceNil)){$s=8;continue;}}}m=d.eofError(k,m);n=[k,l,m];$s=10;case 10:return n;case 9:$s=-1;return[0,$ifaceNil,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.ReadFrom,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,$s,$deferred};return $f;}}};J.prototype.ReadFrom=function(c){return this.$val.ReadFrom(c);};J.ptr.prototype.ReadFromInet4=function(c,d){var{c,d,e,f,g,h,i,j,k,l,m,n,$s,$deferred,$r,$c}=$restore(this,{c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=this;f=e.readLock();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:h=[0,g];$s=4;case 4:return h;case 3:$deferred.push([$methodVal(e,"readUnlock"),[]]);i=e.pd.prepareRead(e.isFile);if(!($interfaceIsEqual(i,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:j=[0,i];$s=7;case 7:return j;case 6:case 8:k=B.RecvfromInet4(e.Sysfd,c,0,d);l=k[0];m=k[1];if(!($interfaceIsEqual(m,$ifaceNil))){if($interfaceIsEqual(m,new A.Errno(4))){$s=8;continue;}l=0;if($interfaceIsEqual(m,new A.Errno(11))&&e.pd.pollable()){m=e.pd.waitRead(e.isFile);if($interfaceIsEqual(m,$ifaceNil)){$s=8;continue;}}}m=e.eofError(l,m);n=[l,m];$s=10;case 10:return n;case 9:$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.ReadFromInet4,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,$s,$deferred};return $f;}}};J.prototype.ReadFromInet4=function(c,d){return this.$val.ReadFromInet4(c,d);};J.ptr.prototype.ReadFromInet6=function(c,d){var{c,d,e,f,g,h,i,j,k,l,m,n,$s,$deferred,$r,$c}=$restore(this,{c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=this;f=e.readLock();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:h=[0,g];$s=4;case 4:return h;case 3:$deferred.push([$methodVal(e,"readUnlock"),[]]);i=e.pd.prepareRead(e.isFile);if(!($interfaceIsEqual(i,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:j=[0,i];$s=7;case 7:return j;case 6:case 8:k=B.RecvfromInet6(e.Sysfd,c,0,d);l=k[0];m=k[1];if(!($interfaceIsEqual(m,$ifaceNil))){if($interfaceIsEqual(m,new A.Errno(4))){$s=8;continue;}l=0;if($interfaceIsEqual(m,new A.Errno(11))&&e.pd.pollable()){m=e.pd.waitRead(e.isFile);if($interfaceIsEqual(m,$ifaceNil)){$s=8;continue;}}}m=e.eofError(l,m);n=[l,m];$s=10;case 10:return n;case 9:$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.ReadFromInet6,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,$s,$deferred};return $f;}}};J.prototype.ReadFromInet6=function(c,d){return this.$val.ReadFromInet6(c,d);};J.ptr.prototype.ReadMsg=function(c,d,e){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$deferred,$r,$c}=$restore(this,{c,d,e});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);f=this;g=f.readLock();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:i=[0,0,0,$ifaceNil,h];$s=4;case 4:return i;case 3:$deferred.push([$methodVal(f,"readUnlock"),[]]);j=f.pd.prepareRead(f.isFile);if(!($interfaceIsEqual(j,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:k=[0,0,0,$ifaceNil,j];$s=7;case 7:return k;case 6:case 8:l=A.Recvmsg(f.Sysfd,c,d,e);m=l[0];n=l[1];o=l[2];p=l[3];q=l[4];if(!($interfaceIsEqual(q,$ifaceNil))){if($interfaceIsEqual(q,new A.Errno(4))){$s=8;continue;}if($interfaceIsEqual(q,new A.Errno(11))&&f.pd.pollable()){q=f.pd.waitRead(f.isFile);if($interfaceIsEqual(q,$ifaceNil)){$s=8;continue;}}}q=f.eofError(m,q);r=[m,n,o,p,q];$s=10;case 10:return r;case 9:$s=-1;return[0,0,0,$ifaceNil,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,0,0,$ifaceNil,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.ReadMsg,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$deferred};return $f;}}};J.prototype.ReadMsg=function(c,d,e){return this.$val.ReadMsg(c,d,e);};J.ptr.prototype.ReadMsgInet4=function(c,d,e,f){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$deferred,$r,$c}=$restore(this,{c,d,e,f});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);g=this;h=g.readLock();$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if(!($interfaceIsEqual(i,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:j=[0,0,0,i];$s=4;case 4:return j;case 3:$deferred.push([$methodVal(g,"readUnlock"),[]]);k=g.pd.prepareRead(g.isFile);if(!($interfaceIsEqual(k,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:l=[0,0,0,k];$s=7;case 7:return l;case 6:case 8:m=B.RecvmsgInet4(g.Sysfd,c,d,e,f);n=m[0];o=m[1];p=m[2];q=m[3];if(!($interfaceIsEqual(q,$ifaceNil))){if($interfaceIsEqual(q,new A.Errno(4))){$s=8;continue;}if($interfaceIsEqual(q,new A.Errno(11))&&g.pd.pollable()){q=g.pd.waitRead(g.isFile);if($interfaceIsEqual(q,$ifaceNil)){$s=8;continue;}}}q=g.eofError(n,q);r=[n,o,p,q];$s=10;case 10:return r;case 9:$s=-1;return[0,0,0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,0,0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.ReadMsgInet4,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$deferred};return $f;}}};J.prototype.ReadMsgInet4=function(c,d,e,f){return this.$val.ReadMsgInet4(c,d,e,f);};J.ptr.prototype.ReadMsgInet6=function(c,d,e,f){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$deferred,$r,$c}=$restore(this,{c,d,e,f});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);g=this;h=g.readLock();$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if(!($interfaceIsEqual(i,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:j=[0,0,0,i];$s=4;case 4:return j;case 3:$deferred.push([$methodVal(g,"readUnlock"),[]]);k=g.pd.prepareRead(g.isFile);if(!($interfaceIsEqual(k,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:l=[0,0,0,k];$s=7;case 7:return l;case 6:case 8:m=B.RecvmsgInet6(g.Sysfd,c,d,e,f);n=m[0];o=m[1];p=m[2];q=m[3];if(!($interfaceIsEqual(q,$ifaceNil))){if($interfaceIsEqual(q,new A.Errno(4))){$s=8;continue;}if($interfaceIsEqual(q,new A.Errno(11))&&g.pd.pollable()){q=g.pd.waitRead(g.isFile);if($interfaceIsEqual(q,$ifaceNil)){$s=8;continue;}}}q=g.eofError(n,q);r=[n,o,p,q];$s=10;case 10:return r;case 9:$s=-1;return[0,0,0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,0,0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.ReadMsgInet6,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$deferred};return $f;}}};J.prototype.ReadMsgInet6=function(c,d,e,f){return this.$val.ReadMsgInet6(c,d,e,f);};J.ptr.prototype.Write=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$deferred,$r,$c}=$restore(this,{c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=this;e=d.writeLock();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:g=[0,f];$s=4;case 4:return g;case 3:$deferred.push([$methodVal(d,"writeUnlock"),[]]);h=d.pd.prepareWrite(d.isFile);if(!($interfaceIsEqual(h,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:i=[0,h];$s=7;case 7:return i;case 6:j=0;case 8:k=c.$length;if(d.IsStream&&(k-j>>0)>1073741824){k=j+1073741824>>0;}m=N(A.Write,d.Sysfd,$subslice(c,j,k));$s=10;case 10:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;n=l[0];o=l[1];if(n>0){j=j+(n)>>0;}if(j===c.$length){$s=11;continue;}$s=12;continue;case 11:p=[j,o];$s=13;case 13:return p;case 12:if($interfaceIsEqual(o,new A.Errno(11))&&d.pd.pollable()){o=d.pd.waitWrite(d.isFile);if($interfaceIsEqual(o,$ifaceNil)){$s=8;continue;}}if(!($interfaceIsEqual(o,$ifaceNil))){$s=14;continue;}$s=15;continue;case 14:q=[j,o];$s=16;case 16:return q;case 15:if(n===0){$s=17;continue;}$s=18;continue;case 17:r=[j,C.ErrUnexpectedEOF];$s=19;case 19:return r;case 18:$s=8;continue;case 9:$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.Write,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$deferred};return $f;}}};J.prototype.Write=function(c){return this.$val.Write(c);};J.ptr.prototype.Pwrite=function(c,d){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred,$r,$c}=$restore(this,{c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=this;f=e.incref();if(!($interfaceIsEqual(f,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:g=[0,f];$s=3;case 3:return g;case 2:$deferred.push([$methodVal(e,"decref"),[]]);h=0;case 4:i=c.$length;if(e.IsStream&&(i-h>>0)>1073741824){i=h+1073741824>>0;}l=A.Pwrite(e.Sysfd,$subslice(c,h,i),(k=(new $Int64(0,h)),new $Int64(d.$high+k.$high,d.$low+k.$low)));$s=6;case 6:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}j=l;m=j[0];n=j[1];if($interfaceIsEqual(n,new A.Errno(4))){$s=4;continue;}if(m>0){h=h+(m)>>0;}if(h===c.$length){$s=7;continue;}$s=8;continue;case 7:o=[h,n];$s=9;case 9:return o;case 8:if(!($interfaceIsEqual(n,$ifaceNil))){$s=10;continue;}$s=11;continue;case 10:p=[h,n];$s=12;case 12:return p;case 11:if(m===0){$s=13;continue;}$s=14;continue;case 13:q=[h,C.ErrUnexpectedEOF];$s=15;case 15:return q;case 14:$s=4;continue;case 5:$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.Pwrite,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred};return $f;}}};J.prototype.Pwrite=function(c,d){return this.$val.Pwrite(c,d);};J.ptr.prototype.WriteToInet4=function(c,d){var{c,d,e,f,g,h,i,j,k,l,m,$s,$deferred,$r,$c}=$restore(this,{c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=this;f=e.writeLock();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:h=[0,g];$s=4;case 4:return h;case 3:$deferred.push([$methodVal(e,"writeUnlock"),[]]);i=e.pd.prepareWrite(e.isFile);if(!($interfaceIsEqual(i,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:j=[0,i];$s=7;case 7:return j;case 6:case 8:k=B.SendtoInet4(e.Sysfd,c,0,d);if($interfaceIsEqual(k,new A.Errno(4))){$s=8;continue;}if($interfaceIsEqual(k,new A.Errno(11))&&e.pd.pollable()){k=e.pd.waitWrite(e.isFile);if($interfaceIsEqual(k,$ifaceNil)){$s=8;continue;}}if(!($interfaceIsEqual(k,$ifaceNil))){$s=10;continue;}$s=11;continue;case 10:l=[0,k];$s=12;case 12:return l;case 11:m=[c.$length,$ifaceNil];$s=13;case 13:return m;case 9:$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.WriteToInet4,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,$s,$deferred};return $f;}}};J.prototype.WriteToInet4=function(c,d){return this.$val.WriteToInet4(c,d);};J.ptr.prototype.WriteToInet6=function(c,d){var{c,d,e,f,g,h,i,j,k,l,m,$s,$deferred,$r,$c}=$restore(this,{c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=this;f=e.writeLock();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:h=[0,g];$s=4;case 4:return h;case 3:$deferred.push([$methodVal(e,"writeUnlock"),[]]);i=e.pd.prepareWrite(e.isFile);if(!($interfaceIsEqual(i,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:j=[0,i];$s=7;case 7:return j;case 6:case 8:k=B.SendtoInet6(e.Sysfd,c,0,d);if($interfaceIsEqual(k,new A.Errno(4))){$s=8;continue;}if($interfaceIsEqual(k,new A.Errno(11))&&e.pd.pollable()){k=e.pd.waitWrite(e.isFile);if($interfaceIsEqual(k,$ifaceNil)){$s=8;continue;}}if(!($interfaceIsEqual(k,$ifaceNil))){$s=10;continue;}$s=11;continue;case 10:l=[0,k];$s=12;case 12:return l;case 11:m=[c.$length,$ifaceNil];$s=13;case 13:return m;case 9:$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.WriteToInet6,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,$s,$deferred};return $f;}}};J.prototype.WriteToInet6=function(c,d){return this.$val.WriteToInet6(c,d);};J.ptr.prototype.WriteTo=function(c,d){var{c,d,e,f,g,h,i,j,k,l,m,$s,$deferred,$r,$c}=$restore(this,{c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=this;f=e.writeLock();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:h=[0,g];$s=4;case 4:return h;case 3:$deferred.push([$methodVal(e,"writeUnlock"),[]]);i=e.pd.prepareWrite(e.isFile);if(!($interfaceIsEqual(i,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:j=[0,i];$s=7;case 7:return j;case 6:case 8:k=A.Sendto(e.Sysfd,c,0,d);if($interfaceIsEqual(k,new A.Errno(4))){$s=8;continue;}if($interfaceIsEqual(k,new A.Errno(11))&&e.pd.pollable()){k=e.pd.waitWrite(e.isFile);if($interfaceIsEqual(k,$ifaceNil)){$s=8;continue;}}if(!($interfaceIsEqual(k,$ifaceNil))){$s=10;continue;}$s=11;continue;case 10:l=[0,k];$s=12;case 12:return l;case 11:m=[c.$length,$ifaceNil];$s=13;case 13:return m;case 9:$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.WriteTo,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,$s,$deferred};return $f;}}};J.prototype.WriteTo=function(c,d){return this.$val.WriteTo(c,d);};J.ptr.prototype.WriteMsg=function(c,d,e){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred,$r,$c}=$restore(this,{c,d,e});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);f=this;g=f.writeLock();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:i=[0,0,h];$s=4;case 4:return i;case 3:$deferred.push([$methodVal(f,"writeUnlock"),[]]);j=f.pd.prepareWrite(f.isFile);if(!($interfaceIsEqual(j,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:k=[0,0,j];$s=7;case 7:return k;case 6:case 8:l=A.SendmsgN(f.Sysfd,c,d,e,0);m=l[0];n=l[1];if($interfaceIsEqual(n,new A.Errno(4))){$s=8;continue;}if($interfaceIsEqual(n,new A.Errno(11))&&f.pd.pollable()){n=f.pd.waitWrite(f.isFile);if($interfaceIsEqual(n,$ifaceNil)){$s=8;continue;}}if(!($interfaceIsEqual(n,$ifaceNil))){$s=10;continue;}$s=11;continue;case 10:o=[m,0,n];$s=12;case 12:return o;case 11:p=[m,d.$length,n];$s=13;case 13:return p;case 9:$s=-1;return[0,0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.WriteMsg,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred};return $f;}}};J.prototype.WriteMsg=function(c,d,e){return this.$val.WriteMsg(c,d,e);};J.ptr.prototype.WriteMsgInet4=function(c,d,e){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred,$r,$c}=$restore(this,{c,d,e});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);f=this;g=f.writeLock();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:i=[0,0,h];$s=4;case 4:return i;case 3:$deferred.push([$methodVal(f,"writeUnlock"),[]]);j=f.pd.prepareWrite(f.isFile);if(!($interfaceIsEqual(j,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:k=[0,0,j];$s=7;case 7:return k;case 6:case 8:l=B.SendmsgNInet4(f.Sysfd,c,d,e,0);m=l[0];n=l[1];if($interfaceIsEqual(n,new A.Errno(4))){$s=8;continue;}if($interfaceIsEqual(n,new A.Errno(11))&&f.pd.pollable()){n=f.pd.waitWrite(f.isFile);if($interfaceIsEqual(n,$ifaceNil)){$s=8;continue;}}if(!($interfaceIsEqual(n,$ifaceNil))){$s=10;continue;}$s=11;continue;case 10:o=[m,0,n];$s=12;case 12:return o;case 11:p=[m,d.$length,n];$s=13;case 13:return p;case 9:$s=-1;return[0,0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.WriteMsgInet4,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred};return $f;}}};J.prototype.WriteMsgInet4=function(c,d,e){return this.$val.WriteMsgInet4(c,d,e);};J.ptr.prototype.WriteMsgInet6=function(c,d,e){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred,$r,$c}=$restore(this,{c,d,e});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);f=this;g=f.writeLock();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:i=[0,0,h];$s=4;case 4:return i;case 3:$deferred.push([$methodVal(f,"writeUnlock"),[]]);j=f.pd.prepareWrite(f.isFile);if(!($interfaceIsEqual(j,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:k=[0,0,j];$s=7;case 7:return k;case 6:case 8:l=B.SendmsgNInet6(f.Sysfd,c,d,e,0);m=l[0];n=l[1];if($interfaceIsEqual(n,new A.Errno(4))){$s=8;continue;}if($interfaceIsEqual(n,new A.Errno(11))&&f.pd.pollable()){n=f.pd.waitWrite(f.isFile);if($interfaceIsEqual(n,$ifaceNil)){$s=8;continue;}}if(!($interfaceIsEqual(n,$ifaceNil))){$s=10;continue;}$s=11;continue;case 10:o=[m,0,n];$s=12;case 12:return o;case 11:p=[m,d.$length,n];$s=13;case 13:return p;case 9:$s=-1;return[0,0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.WriteMsgInet6,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred};return $f;}}};J.prototype.WriteMsgInet6=function(c,d,e){return this.$val.WriteMsgInet6(c,d,e);};J.ptr.prototype.Accept=function(){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=this;d=c.readLock();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(!($interfaceIsEqual(e,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:f=[-1,$ifaceNil,"",e];$s=4;case 4:return f;case 3:$deferred.push([$methodVal(c,"readUnlock"),[]]);g=c.pd.prepareRead(c.isFile);if(!($interfaceIsEqual(g,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:h=[-1,$ifaceNil,"",g];$s=7;case 7:return h;case 6:case 8:j=G(c.Sysfd);$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];l=i[1];m=i[2];n=i[3];if($interfaceIsEqual(n,$ifaceNil)){$s=11;continue;}$s=12;continue;case 11:o=[k,l,"",n];$s=13;case 13:return o;case 12:p=n;if($interfaceIsEqual(p,new A.Errno((4)))){$s=8;continue;}else if($interfaceIsEqual(p,new A.Errno((11)))){if(c.pd.pollable()){n=c.pd.waitRead(c.isFile);if($interfaceIsEqual(n,$ifaceNil)){$s=8;continue;}}}else if($interfaceIsEqual(p,new A.Errno((103)))){$s=8;continue;}q=[-1,$ifaceNil,m,n];$s=14;case 14:return q;case 9:$s=-1;return[0,$ifaceNil,"",$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil,"",$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.Accept,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred};return $f;}}};J.prototype.Accept=function(){return this.$val.Accept();};J.ptr.prototype.Seek=function(c,d){var{c,d,e,f,g,h,i,$s,$deferred,$r,$c}=$restore(this,{c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=this;f=e.incref();if(!($interfaceIsEqual(f,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:g=[new $Int64(0,0),f];$s=3;case 3:return g;case 2:$deferred.push([$methodVal(e,"decref"),[]]);h=A.Seek(e.Sysfd,c,d);$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=5;case 5:return i;}return;}}catch(err){$err=err;$s=-1;return[new $Int64(0,0),$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.Seek,$c:true,$r,c,d,e,f,g,h,i,$s,$deferred};return $f;}}};J.prototype.Seek=function(c,d){return this.$val.Seek(c,d);};J.ptr.prototype.ReadDirent=function(c){var{c,d,e,f,g,h,i,j,k,$s,$deferred,$r,$c}=$restore(this,{c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=this;e=d.incref();if(!($interfaceIsEqual(e,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:f=[0,e];$s=3;case 3:return f;case 2:$deferred.push([$methodVal(d,"decref"),[]]);case 4:h=N(A.ReadDirent,d.Sysfd,c);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;i=g[0];j=g[1];if(!($interfaceIsEqual(j,$ifaceNil))){i=0;if($interfaceIsEqual(j,new A.Errno(11))&&d.pd.pollable()){j=d.pd.waitRead(d.isFile);if($interfaceIsEqual(j,$ifaceNil)){$s=4;continue;}}}k=[i,j];$s=7;case 7:return k;case 5:$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.ReadDirent,$c:true,$r,c,d,e,f,g,h,i,j,k,$s,$deferred};return $f;}}};J.prototype.ReadDirent=function(c){return this.$val.ReadDirent(c);};J.ptr.prototype.Fchmod=function(c){var{c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];d=[d];d[0]=this;e=d[0].incref();if(!($interfaceIsEqual(e,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:f=e;$s=3;case 3:return f;case 2:$deferred.push([$methodVal(d[0],"decref"),[]]);g=O((function(c,d){return function $b(){var{g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:g=A.Fchmod(d[0].Sysfd,c[0]);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=2;case 2:return h;}return;}var $f={$blk:$b,$c:true,$r,g,h,$s};return $f;};})(c,d));$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=5;case 5:return h;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.Fchmod,$c:true,$r,c,d,e,f,g,h,$s,$deferred};return $f;}}};J.prototype.Fchmod=function(c){return this.$val.Fchmod(c);};J.ptr.prototype.Fchdir=function(){var{c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=this;d=c.incref();if(!($interfaceIsEqual(d,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:e=d;$s=3;case 3:return e;case 2:$deferred.push([$methodVal(c,"decref"),[]]);f=A.Fchdir(c.Sysfd);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=5;case 5:return g;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.Fchdir,$c:true,$r,c,d,e,f,g,$s,$deferred};return $f;}}};J.prototype.Fchdir=function(){return this.$val.Fchdir();};J.ptr.prototype.Fstat=function(c){var{c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];d=[d];d[0]=this;e=d[0].incref();if(!($interfaceIsEqual(e,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:f=e;$s=3;case 3:return f;case 2:$deferred.push([$methodVal(d[0],"decref"),[]]);g=O((function(c,d){return function $b(){var{g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:g=A.Fstat(d[0].Sysfd,c[0]);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=2;case 2:return h;}return;}var $f={$blk:$b,$c:true,$r,g,h,$s};return $f;};})(c,d));$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=5;case 5:return h;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.Fstat,$c:true,$r,c,d,e,f,g,h,$s,$deferred};return $f;}}};J.prototype.Fstat=function(c){return this.$val.Fstat(c);};L=function(c){var{c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:if(true&&(D.LoadInt32((Y||(Y=new AA(function(){return K;},function($v){K=$v;}))))===1)){d=X(c,1,0);e=d[0];f=d[1];if($interfaceIsEqual(f,$ifaceNil)){$s=-1;return[e,"",$ifaceNil];}g=$assertType(f,A.Errno);if((g===(22))||(g===(38))){D.StoreInt32((Y||(Y=new AA(function(){return K;},function($v){K=$v;}))),0);}else{$s=-1;return[-1,"fcntl",f];}}h=M(c);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=2;case 2:return i;}return;}var $f={$blk:L,$c:true,$r,c,d,e,f,g,h,i,$s};return $f;};$pkg.DupCloseOnExec=L;M=function(c){var{c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);$r=A.ForkLock.RLock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(A.ForkLock,"RUnlock"),[]]);d=A.Dup(c);e=d[0];f=d[1];if(!($interfaceIsEqual(f,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:g=[-1,"dup",f];$s=4;case 4:return g;case 3:A.CloseOnExec(e);h=[e,"",$ifaceNil];$s=5;case 5:return h;}return;}}catch(err){$err=err;$s=-1;return[0,"",$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:M,$c:true,$r,c,d,e,f,g,h,$s,$deferred};return $f;}}};J.ptr.prototype.Dup=function(){var{c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=this;d=c.incref();if(!($interfaceIsEqual(d,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:e=[-1,"",d];$s=3;case 3:return e;case 2:$deferred.push([$methodVal(c,"decref"),[]]);f=L(c.Sysfd);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=5;case 5:return g;}return;}}catch(err){$err=err;$s=-1;return[0,"",$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.Dup,$c:true,$r,c,d,e,f,g,$s,$deferred};return $f;}}};J.prototype.Dup=function(){return this.$val.Dup();};J.ptr.prototype.WaitWrite=function(){var c;c=this;return c.pd.waitWrite(c.isFile);};J.prototype.WaitWrite=function(){return this.$val.WaitWrite();};J.ptr.prototype.WriteOnce=function(c){var{c,d,e,f,g,h,i,$s,$deferred,$r,$c}=$restore(this,{c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=this;e=d.writeLock();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:g=[0,f];$s=4;case 4:return g;case 3:$deferred.push([$methodVal(d,"writeUnlock"),[]]);h=N(A.Write,d.Sysfd,c);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=6;case 6:return i;}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.WriteOnce,$c:true,$r,c,d,e,f,g,h,i,$s,$deferred};return $f;}}};J.prototype.WriteOnce=function(c){return this.$val.WriteOnce(c);};J.ptr.prototype.RawRead=function(c){var{c,d,e,f,g,h,i,j,k,l,m,$s,$deferred,$r,$c}=$restore(this,{c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=this;e=d.readLock();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:g=f;$s=4;case 4:return g;case 3:$deferred.push([$methodVal(d,"readUnlock"),[]]);h=d.pd.prepareRead(d.isFile);if(!($interfaceIsEqual(h,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:i=h;$s=7;case 7:return i;case 6:case 8:j=c(((d.Sysfd>>>0)));$s=12;case 12:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=10;continue;}$s=11;continue;case 10:k=$ifaceNil;$s=13;case 13:return k;case 11:l=d.pd.waitRead(d.isFile);if(!($interfaceIsEqual(l,$ifaceNil))){$s=14;continue;}$s=15;continue;case 14:m=l;$s=16;case 16:return m;case 15:$s=8;continue;case 9:$s=-1;return $ifaceNil;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.RawRead,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,$s,$deferred};return $f;}}};J.prototype.RawRead=function(c){return this.$val.RawRead(c);};J.ptr.prototype.RawWrite=function(c){var{c,d,e,f,g,h,i,j,k,l,m,$s,$deferred,$r,$c}=$restore(this,{c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=this;e=d.writeLock();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:g=f;$s=4;case 4:return g;case 3:$deferred.push([$methodVal(d,"writeUnlock"),[]]);h=d.pd.prepareWrite(d.isFile);if(!($interfaceIsEqual(h,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:i=h;$s=7;case 7:return i;case 6:case 8:j=c(((d.Sysfd>>>0)));$s=12;case 12:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=10;continue;}$s=11;continue;case 10:k=$ifaceNil;$s=13;case 13:return k;case 11:l=d.pd.waitWrite(d.isFile);if(!($interfaceIsEqual(l,$ifaceNil))){$s=14;continue;}$s=15;continue;case 14:m=l;$s=16;case 16:return m;case 15:$s=8;continue;case 9:$s=-1;return $ifaceNil;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.RawWrite,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,$s,$deferred};return $f;}}};J.prototype.RawWrite=function(c){return this.$val.RawWrite(c);};N=function(c,d,e){var{c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{c,d,e});$s=$s||0;s:while(true){switch($s){case 0:case 1:g=c(d,e);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];if(!($interfaceIsEqual(i,new A.Errno(4)))){$s=-1;return[h,i];}$s=1;continue;case 2:$s=-1;return[0,$ifaceNil];}return;}var $f={$blk:N,$c:true,$r,c,d,e,f,g,h,i,$s};return $f;};J.ptr.prototype.eofError=function(c,d){var c,d,e;e=this;if((c===0)&&$interfaceIsEqual(d,$ifaceNil)&&e.ZeroReadIsEOF){return C.EOF;}return d;};J.prototype.eofError=function(c,d){return this.$val.eofError(c,d);};J.ptr.prototype.Shutdown=function(c){var{c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=this;e=d.incref();if(!($interfaceIsEqual(e,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:f=e;$s=3;case 3:return f;case 2:$deferred.push([$methodVal(d,"decref"),[]]);g=A.Shutdown(d.Sysfd,c);$s=4;case 4:return g;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.Shutdown,$c:true,$r,c,d,e,f,g,$s,$deferred};return $f;}}};J.prototype.Shutdown=function(c){return this.$val.Shutdown(c);};J.ptr.prototype.Fchown=function(c,d){var{c,d,e,f,g,h,i,$s,$deferred,$r,$c}=$restore(this,{c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];d=[d];e=[e];e[0]=this;f=e[0].incref();if(!($interfaceIsEqual(f,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:g=f;$s=3;case 3:return g;case 2:$deferred.push([$methodVal(e[0],"decref"),[]]);h=O((function(c,d,e){return function $b(){var{h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=A.Fchown(e[0].Sysfd,c[0],d[0]);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=2;case 2:return i;}return;}var $f={$blk:$b,$c:true,$r,h,i,$s};return $f;};})(c,d,e));$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=5;case 5:return i;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.Fchown,$c:true,$r,c,d,e,f,g,h,i,$s,$deferred};return $f;}}};J.prototype.Fchown=function(c,d){return this.$val.Fchown(c,d);};J.ptr.prototype.Ftruncate=function(c){var{c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];d=[d];d[0]=this;e=d[0].incref();if(!($interfaceIsEqual(e,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:f=e;$s=3;case 3:return f;case 2:$deferred.push([$methodVal(d[0],"decref"),[]]);g=O((function(c,d){return function $b(){var{g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:g=A.Ftruncate(d[0].Sysfd,c[0]);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=2;case 2:return h;}return;}var $f={$blk:$b,$c:true,$r,g,h,$s};return $f;};})(c,d));$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=5;case 5:return h;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.Ftruncate,$c:true,$r,c,d,e,f,g,h,$s,$deferred};return $f;}}};J.prototype.Ftruncate=function(c){return this.$val.Ftruncate(c);};J.ptr.prototype.RawControl=function(c){var{c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=this;e=d.incref();if(!($interfaceIsEqual(e,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:f=e;$s=3;case 3:return f;case 2:$deferred.push([$methodVal(d,"decref"),[]]);$r=c(((d.Sysfd>>>0)));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=$ifaceNil;$s=5;case 5:return g;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.RawControl,$c:true,$r,c,d,e,f,g,$s,$deferred};return $f;}}};J.prototype.RawControl=function(c){return this.$val.RawControl(c);};O=function(c){var{c,d,e,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:case 1:d=c();$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(!($interfaceIsEqual(e,new A.Errno(4)))){$s=-1;return e;}$s=1;continue;case 2:$s=-1;return $ifaceNil;}return;}var $f={$blk:O,$c:true,$r,c,d,e,$s};return $f;};P.ptr.prototype.init=function(c){var c,d;d=this;d.fd=c;return $ifaceNil;};P.prototype.init=function(c){return this.$val.init(c);};P.ptr.prototype.close=function(){var c;c=this;};P.prototype.close=function(){return this.$val.close();};P.ptr.prototype.evict=function(){var c;c=this;c.closing=true;if(!(c.fd===AB.nil)){A.StopIO(c.fd.Sysfd);}};P.prototype.evict=function(){return this.$val.evict();};P.ptr.prototype.prepare=function(c,d){var c,d,e;e=this;if(e.closing){return U(d);}return $ifaceNil;};P.prototype.prepare=function(c,d){return this.$val.prepare(c,d);};P.ptr.prototype.prepareRead=function(c){var c,d;d=this;return d.prepare(114,c);};P.prototype.prepareRead=function(c){return this.$val.prepareRead(c);};P.ptr.prototype.prepareWrite=function(c){var c,d;d=this;return d.prepare(119,c);};P.prototype.prepareWrite=function(c){return this.$val.prepareWrite(c);};P.ptr.prototype.wait=function(c,d){var c,d,e;e=this;if(e.closing){return U(d);}if(d){return $ifaceNil;}return $pkg.ErrDeadlineExceeded;};P.prototype.wait=function(c,d){return this.$val.wait(c,d);};P.ptr.prototype.waitRead=function(c){var c,d;d=this;return d.wait(114,c);};P.prototype.waitRead=function(c){return this.$val.waitRead(c);};P.ptr.prototype.waitWrite=function(c){var c,d;d=this;return d.wait(119,c);};P.prototype.waitWrite=function(c){return this.$val.waitWrite(c);};P.ptr.prototype.pollable=function(){var c;c=this;return true;};P.prototype.pollable=function(){return this.$val.pollable();};J.ptr.prototype.SetDeadline=function(c){var{c,d,e,f,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=Q(d,$clone(c,E.Time),233);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:J.ptr.prototype.SetDeadline,$c:true,$r,c,d,e,f,$s};return $f;};J.prototype.SetDeadline=function(c){return this.$val.SetDeadline(c);};J.ptr.prototype.SetReadDeadline=function(c){var{c,d,e,f,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=Q(d,$clone(c,E.Time),114);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:J.ptr.prototype.SetReadDeadline,$c:true,$r,c,d,e,f,$s};return $f;};J.prototype.SetReadDeadline=function(c){return this.$val.SetReadDeadline(c);};J.ptr.prototype.SetWriteDeadline=function(c){var{c,d,e,f,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=Q(d,$clone(c,E.Time),119);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:J.ptr.prototype.SetWriteDeadline,$c:true,$r,c,d,e,f,$s};return $f;};J.prototype.SetWriteDeadline=function(c){return this.$val.SetWriteDeadline(c);};Q=function(c,d,e){var{c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=$clone(d,E.Time).UnixNano();if($clone(d,E.Time).IsZero()){f=new $Int64(0,0);}g=c.incref();if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}h=e;if(h===(114)){A.SetReadDeadline(c.Sysfd,f);}else if(h===(119)){A.SetWriteDeadline(c.Sysfd,f);}else if(h===(233)){A.SetReadDeadline(c.Sysfd,f);A.SetWriteDeadline(c.Sysfd,f);}i=c.decref();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$s=-1;return $ifaceNil;}return;}var $f={$blk:Q,$c:true,$r,c,d,e,f,g,h,i,$s};return $f;};S.ptr.prototype.incref=function(){var c,d,e,f,g;c=this;while(true){d=D.LoadUint64((c.$ptr_state||(c.$ptr_state=new AC(function(){return this.$target.state;},function($v){this.$target.state=$v;},c))));if(!((e=new $Uint64(d.$high&0,(d.$low&1)>>>0),(e.$high===0&&e.$low===0)))){return false;}f=new $Uint64(d.$high+0,d.$low+8);if((g=new $Uint64(f.$high&0,(f.$low&8388600)>>>0),(g.$high===0&&g.$low===0))){$panic(new $String("too many concurrent operations on a single file or socket (max 1048575)"));}if(D.CompareAndSwapUint64((c.$ptr_state||(c.$ptr_state=new AC(function(){return this.$target.state;},function($v){this.$target.state=$v;},c))),d,f)){return true;}}};S.prototype.incref=function(){return this.$val.incref();};S.ptr.prototype.increfAndClose=function(){var{c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;case 1:d=D.LoadUint64((c.$ptr_state||(c.$ptr_state=new AC(function(){return this.$target.state;},function($v){this.$target.state=$v;},c))));if(!((e=new $Uint64(d.$high&0,(d.$low&1)>>>0),(e.$high===0&&e.$low===0)))){$s=-1;return false;}g=(f=new $Uint64(d.$high|0,(d.$low|1)>>>0),new $Uint64(f.$high+0,f.$low+8));if((h=new $Uint64(g.$high&0,(g.$low&8388600)>>>0),(h.$high===0&&h.$low===0))){$panic(new $String("too many concurrent operations on a single file or socket (max 1048575)"));}g=(i=new $Uint64(2147483647,4286578688),new $Uint64(g.$high&~i.$high,(g.$low&~i.$low)>>>0));if(D.CompareAndSwapUint64((c.$ptr_state||(c.$ptr_state=new AC(function(){return this.$target.state;},function($v){this.$target.state=$v;},c))),d,g)){$s=3;continue;}$s=4;continue;case 3:case 5:if(!(!((j=new $Uint64(d.$high&2047,(d.$low&4286578688)>>>0),(j.$high===0&&j.$low===0))))){$s=6;continue;}d=(k=new $Uint64(0,8388608),new $Uint64(d.$high-k.$high,d.$low-k.$low));$r=I((c.$ptr_rsema||(c.$ptr_rsema=new Z(function(){return this.$target.rsema;},function($v){this.$target.rsema=$v;},c))));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 6:case 8:if(!(!((l=new $Uint64(d.$high&2147481600,(d.$low&0)>>>0),(l.$high===0&&l.$low===0))))){$s=9;continue;}d=(m=new $Uint64(2048,0),new $Uint64(d.$high-m.$high,d.$low-m.$low));$r=I((c.$ptr_wsema||(c.$ptr_wsema=new Z(function(){return this.$target.wsema;},function($v){this.$target.wsema=$v;},c))));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 9:$s=-1;return true;case 4:$s=1;continue;case 2:$s=-1;return false;}return;}var $f={$blk:S.ptr.prototype.increfAndClose,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};S.prototype.increfAndClose=function(){return this.$val.increfAndClose();};S.ptr.prototype.decref=function(){var c,d,e,f,g;c=this;while(true){d=D.LoadUint64((c.$ptr_state||(c.$ptr_state=new AC(function(){return this.$target.state;},function($v){this.$target.state=$v;},c))));if((e=new $Uint64(d.$high&0,(d.$low&8388600)>>>0),(e.$high===0&&e.$low===0))){$panic(new $String("inconsistent poll.fdMutex"));}f=new $Uint64(d.$high-0,d.$low-8);if(D.CompareAndSwapUint64((c.$ptr_state||(c.$ptr_state=new AC(function(){return this.$target.state;},function($v){this.$target.state=$v;},c))),d,f)){return(g=new $Uint64(f.$high&0,(f.$low&8388601)>>>0),(g.$high===0&&g.$low===1));}}};S.prototype.decref=function(){return this.$val.decref();};S.ptr.prototype.rwlock=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=new $Uint64(0,0);f=new $Uint64(0,0);g=new $Uint64(0,0);h=e;i=f;j=g;k=Z.nil;if(c){h=new $Uint64(0,2);i=new $Uint64(0,8388608);j=new $Uint64(2047,4286578688);k=(d.$ptr_rsema||(d.$ptr_rsema=new Z(function(){return this.$target.rsema;},function($v){this.$target.rsema=$v;},d)));}else{h=new $Uint64(0,4);i=new $Uint64(2048,0);j=new $Uint64(2147481600,0);k=(d.$ptr_wsema||(d.$ptr_wsema=new Z(function(){return this.$target.wsema;},function($v){this.$target.wsema=$v;},d)));}case 1:l=D.LoadUint64((d.$ptr_state||(d.$ptr_state=new AC(function(){return this.$target.state;},function($v){this.$target.state=$v;},d))));if(!((m=new $Uint64(l.$high&0,(l.$low&1)>>>0),(m.$high===0&&m.$low===0)))){$s=-1;return false;}n=new $Uint64(0,0);if((o=new $Uint64(l.$high&h.$high,(l.$low&h.$low)>>>0),(o.$high===0&&o.$low===0))){n=(p=new $Uint64(l.$high|h.$high,(l.$low|h.$low)>>>0),new $Uint64(p.$high+0,p.$low+8));if((q=new $Uint64(n.$high&0,(n.$low&8388600)>>>0),(q.$high===0&&q.$low===0))){$panic(new $String("too many concurrent operations on a single file or socket (max 1048575)"));}}else{n=new $Uint64(l.$high+i.$high,l.$low+i.$low);if((r=new $Uint64(n.$high&j.$high,(n.$low&j.$low)>>>0),(r.$high===0&&r.$low===0))){$panic(new $String("too many concurrent operations on a single file or socket (max 1048575)"));}}if(D.CompareAndSwapUint64((d.$ptr_state||(d.$ptr_state=new AC(function(){return this.$target.state;},function($v){this.$target.state=$v;},d))),l,n)){$s=3;continue;}$s=4;continue;case 3:if((s=new $Uint64(l.$high&h.$high,(l.$low&h.$low)>>>0),(s.$high===0&&s.$low===0))){$s=-1;return true;}$r=H(k);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:$s=1;continue;case 2:$s=-1;return false;}return;}var $f={$blk:S.ptr.prototype.rwlock,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};S.prototype.rwlock=function(c){return this.$val.rwlock(c);};S.ptr.prototype.rwunlock=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=new $Uint64(0,0);f=new $Uint64(0,0);g=new $Uint64(0,0);h=e;i=f;j=g;k=Z.nil;if(c){h=new $Uint64(0,2);i=new $Uint64(0,8388608);j=new $Uint64(2047,4286578688);k=(d.$ptr_rsema||(d.$ptr_rsema=new Z(function(){return this.$target.rsema;},function($v){this.$target.rsema=$v;},d)));}else{h=new $Uint64(0,4);i=new $Uint64(2048,0);j=new $Uint64(2147481600,0);k=(d.$ptr_wsema||(d.$ptr_wsema=new Z(function(){return this.$target.wsema;},function($v){this.$target.wsema=$v;},d)));}case 1:l=D.LoadUint64((d.$ptr_state||(d.$ptr_state=new AC(function(){return this.$target.state;},function($v){this.$target.state=$v;},d))));if((m=new $Uint64(l.$high&h.$high,(l.$low&h.$low)>>>0),(m.$high===0&&m.$low===0))||(n=new $Uint64(l.$high&0,(l.$low&8388600)>>>0),(n.$high===0&&n.$low===0))){$panic(new $String("inconsistent poll.fdMutex"));}p=(o=new $Uint64(l.$high&~h.$high,(l.$low&~h.$low)>>>0),new $Uint64(o.$high-0,o.$low-8));if(!((q=new $Uint64(l.$high&j.$high,(l.$low&j.$low)>>>0),(q.$high===0&&q.$low===0)))){p=(r=i,new $Uint64(p.$high-r.$high,p.$low-r.$low));}if(D.CompareAndSwapUint64((d.$ptr_state||(d.$ptr_state=new AC(function(){return this.$target.state;},function($v){this.$target.state=$v;},d))),l,p)){$s=3;continue;}$s=4;continue;case 3:if(!((s=new $Uint64(l.$high&j.$high,(l.$low&j.$low)>>>0),(s.$high===0&&s.$low===0)))){$s=5;continue;}$s=6;continue;case 5:$r=I(k);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:$s=-1;return(t=new $Uint64(p.$high&0,(p.$low&8388601)>>>0),(t.$high===0&&t.$low===1));case 4:$s=1;continue;case 2:$s=-1;return false;}return;}var $f={$blk:S.ptr.prototype.rwunlock,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};S.prototype.rwunlock=function(c){return this.$val.rwunlock(c);};J.ptr.prototype.incref=function(){var c;c=this;if(!c.fdmu.incref()){return U(c.isFile);}return $ifaceNil;};J.prototype.incref=function(){return this.$val.incref();};J.ptr.prototype.decref=function(){var{c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(c.fdmu.decref()){$s=1;continue;}$s=2;continue;case 1:d=c.destroy();$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=4;case 4:return e;case 2:$s=-1;return $ifaceNil;}return;}var $f={$blk:J.ptr.prototype.decref,$c:true,$r,c,d,e,$s};return $f;};J.prototype.decref=function(){return this.$val.decref();};J.ptr.prototype.readLock=function(){var{c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.fdmu.rwlock(true);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(!d){$s=1;continue;}$s=2;continue;case 1:$s=-1;return U(c.isFile);case 2:$s=-1;return $ifaceNil;}return;}var $f={$blk:J.ptr.prototype.readLock,$c:true,$r,c,d,$s};return $f;};J.prototype.readLock=function(){return this.$val.readLock();};J.ptr.prototype.readUnlock=function(){var{c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.fdmu.rwunlock(true);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(d){$s=1;continue;}$s=2;continue;case 1:e=c.destroy();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;case 2:$s=-1;return;}return;}var $f={$blk:J.ptr.prototype.readUnlock,$c:true,$r,c,d,e,$s};return $f;};J.prototype.readUnlock=function(){return this.$val.readUnlock();};J.ptr.prototype.writeLock=function(){var{c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.fdmu.rwlock(false);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(!d){$s=1;continue;}$s=2;continue;case 1:$s=-1;return U(c.isFile);case 2:$s=-1;return $ifaceNil;}return;}var $f={$blk:J.ptr.prototype.writeLock,$c:true,$r,c,d,$s};return $f;};J.prototype.writeLock=function(){return this.$val.writeLock();};J.ptr.prototype.writeUnlock=function(){var{c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.fdmu.rwunlock(false);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(d){$s=1;continue;}$s=2;continue;case 1:e=c.destroy();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;case 2:$s=-1;return;}return;}var $f={$blk:J.ptr.prototype.writeUnlock,$c:true,$r,c,d,e,$s};return $f;};J.prototype.writeUnlock=function(){return this.$val.writeUnlock();};J.ptr.prototype.Fsync=function(){var{c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];c[0]=this;d=c[0].incref();if(!($interfaceIsEqual(d,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:e=d;$s=3;case 3:return e;case 2:$deferred.push([$methodVal(c[0],"decref"),[]]);f=O((function(c){return function $b(){var{f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:f=A.Fsync(c[0].Sysfd);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=2;case 2:return g;}return;}var $f={$blk:$b,$c:true,$r,f,g,$s};return $f;};})(c));$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=5;case 5:return g;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J.ptr.prototype.Fsync,$c:true,$r,c,d,e,f,g,$s,$deferred};return $f;}}};J.prototype.Fsync=function(){return this.$val.Fsync();};T.ptr.prototype.Error=function(){var c;c=this;return"use of closed network connection";};T.prototype.Error=function(){return this.$val.Error();};T.ptr.prototype.Timeout=function(){var c;c=this;return false;};T.prototype.Timeout=function(){return this.$val.Timeout();};T.ptr.prototype.Temporary=function(){var c;c=this;return false;};T.prototype.Temporary=function(){return this.$val.Temporary();};U=function(c){var c;if(c){return $pkg.ErrFileClosing;}return new $pkg.ErrNetClosing.constructor.elem($pkg.ErrNetClosing);};V.ptr.prototype.Error=function(){var c;c=this;return"i/o timeout";};V.prototype.Error=function(){return this.$val.Error();};V.ptr.prototype.Timeout=function(){var c;c=this;return true;};V.prototype.Timeout=function(){return this.$val.Timeout();};V.ptr.prototype.Temporary=function(){var c;c=this;return true;};V.prototype.Temporary=function(){return this.$val.Temporary();};X=function(c,d,e){var c,d,e;return[0,new A.Errno(38)];};AB.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([$String,$Bool],[$error],false)},{prop:"destroy",name:"destroy",pkg:"internal/poll",typ:$funcType([],[$error],false)},{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[$error],false)},{prop:"SetBlocking",name:"SetBlocking",pkg:"",typ:$funcType([],[$error],false)},{prop:"Read",name:"Read",pkg:"",typ:$funcType([AF],[$Int,$error],false)},{prop:"Pread",name:"Pread",pkg:"",typ:$funcType([AF,$Int64],[$Int,$error],false)},{prop:"ReadFrom",name:"ReadFrom",pkg:"",typ:$funcType([AF],[$Int,A.Sockaddr,$error],false)},{prop:"ReadFromInet4",name:"ReadFromInet4",pkg:"",typ:$funcType([AF,AG],[$Int,$error],false)},{prop:"ReadFromInet6",name:"ReadFromInet6",pkg:"",typ:$funcType([AF,AH],[$Int,$error],false)},{prop:"ReadMsg",name:"ReadMsg",pkg:"",typ:$funcType([AF,AF,$Int],[$Int,$Int,$Int,A.Sockaddr,$error],false)},{prop:"ReadMsgInet4",name:"ReadMsgInet4",pkg:"",typ:$funcType([AF,AF,$Int,AG],[$Int,$Int,$Int,$error],false)},{prop:"ReadMsgInet6",name:"ReadMsgInet6",pkg:"",typ:$funcType([AF,AF,$Int,AH],[$Int,$Int,$Int,$error],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([AF],[$Int,$error],false)},{prop:"Pwrite",name:"Pwrite",pkg:"",typ:$funcType([AF,$Int64],[$Int,$error],false)},{prop:"WriteToInet4",name:"WriteToInet4",pkg:"",typ:$funcType([AF,AG],[$Int,$error],false)},{prop:"WriteToInet6",name:"WriteToInet6",pkg:"",typ:$funcType([AF,AH],[$Int,$error],false)},{prop:"WriteTo",name:"WriteTo",pkg:"",typ:$funcType([AF,A.Sockaddr],[$Int,$error],false)},{prop:"WriteMsg",name:"WriteMsg",pkg:"",typ:$funcType([AF,AF,A.Sockaddr],[$Int,$Int,$error],false)},{prop:"WriteMsgInet4",name:"WriteMsgInet4",pkg:"",typ:$funcType([AF,AF,AG],[$Int,$Int,$error],false)},{prop:"WriteMsgInet6",name:"WriteMsgInet6",pkg:"",typ:$funcType([AF,AF,AH],[$Int,$Int,$error],false)},{prop:"Accept",name:"Accept",pkg:"",typ:$funcType([],[$Int,A.Sockaddr,$String,$error],false)},{prop:"Seek",name:"Seek",pkg:"",typ:$funcType([$Int64,$Int],[$Int64,$error],false)},{prop:"ReadDirent",name:"ReadDirent",pkg:"",typ:$funcType([AF],[$Int,$error],false)},{prop:"Fchmod",name:"Fchmod",pkg:"",typ:$funcType([$Uint32],[$error],false)},{prop:"Fchdir",name:"Fchdir",pkg:"",typ:$funcType([],[$error],false)},{prop:"Fstat",name:"Fstat",pkg:"",typ:$funcType([AI],[$error],false)},{prop:"Dup",name:"Dup",pkg:"",typ:$funcType([],[$Int,$String,$error],false)},{prop:"WaitWrite",name:"WaitWrite",pkg:"",typ:$funcType([],[$error],false)},{prop:"WriteOnce",name:"WriteOnce",pkg:"",typ:$funcType([AF],[$Int,$error],false)},{prop:"RawRead",name:"RawRead",pkg:"",typ:$funcType([AJ],[$error],false)},{prop:"RawWrite",name:"RawWrite",pkg:"",typ:$funcType([AJ],[$error],false)},{prop:"eofError",name:"eofError",pkg:"internal/poll",typ:$funcType([$Int,$error],[$error],false)},{prop:"Shutdown",name:"Shutdown",pkg:"",typ:$funcType([$Int],[$error],false)},{prop:"Fchown",name:"Fchown",pkg:"",typ:$funcType([$Int,$Int],[$error],false)},{prop:"Ftruncate",name:"Ftruncate",pkg:"",typ:$funcType([$Int64],[$error],false)},{prop:"RawControl",name:"RawControl",pkg:"",typ:$funcType([AK],[$error],false)},{prop:"SetDeadline",name:"SetDeadline",pkg:"",typ:$funcType([E.Time],[$error],false)},{prop:"SetReadDeadline",name:"SetReadDeadline",pkg:"",typ:$funcType([E.Time],[$error],false)},{prop:"SetWriteDeadline",name:"SetWriteDeadline",pkg:"",typ:$funcType([E.Time],[$error],false)},{prop:"incref",name:"incref",pkg:"internal/poll",typ:$funcType([],[$error],false)},{prop:"decref",name:"decref",pkg:"internal/poll",typ:$funcType([],[$error],false)},{prop:"readLock",name:"readLock",pkg:"internal/poll",typ:$funcType([],[$error],false)},{prop:"readUnlock",name:"readUnlock",pkg:"internal/poll",typ:$funcType([],[],false)},{prop:"writeLock",name:"writeLock",pkg:"internal/poll",typ:$funcType([],[$error],false)},{prop:"writeUnlock",name:"writeUnlock",pkg:"internal/poll",typ:$funcType([],[],false)},{prop:"Fsync",name:"Fsync",pkg:"",typ:$funcType([],[$error],false)}];AL.methods=[{prop:"init",name:"init",pkg:"internal/poll",typ:$funcType([AB],[$error],false)},{prop:"close",name:"close",pkg:"internal/poll",typ:$funcType([],[],false)},{prop:"evict",name:"evict",pkg:"internal/poll",typ:$funcType([],[],false)},{prop:"prepare",name:"prepare",pkg:"internal/poll",typ:$funcType([$Int,$Bool],[$error],false)},{prop:"prepareRead",name:"prepareRead",pkg:"internal/poll",typ:$funcType([$Bool],[$error],false)},{prop:"prepareWrite",name:"prepareWrite",pkg:"internal/poll",typ:$funcType([$Bool],[$error],false)},{prop:"wait",name:"wait",pkg:"internal/poll",typ:$funcType([$Int,$Bool],[$error],false)},{prop:"waitRead",name:"waitRead",pkg:"internal/poll",typ:$funcType([$Bool],[$error],false)},{prop:"waitWrite",name:"waitWrite",pkg:"internal/poll",typ:$funcType([$Bool],[$error],false)},{prop:"waitCanceled",name:"waitCanceled",pkg:"internal/poll",typ:$funcType([$Int],[],false)},{prop:"pollable",name:"pollable",pkg:"internal/poll",typ:$funcType([],[$Bool],false)}];AM.methods=[{prop:"incref",name:"incref",pkg:"internal/poll",typ:$funcType([],[$Bool],false)},{prop:"increfAndClose",name:"increfAndClose",pkg:"internal/poll",typ:$funcType([],[$Bool],false)},{prop:"decref",name:"decref",pkg:"internal/poll",typ:$funcType([],[$Bool],false)},{prop:"rwlock",name:"rwlock",pkg:"internal/poll",typ:$funcType([$Bool],[$Bool],false)},{prop:"rwunlock",name:"rwunlock",pkg:"internal/poll",typ:$funcType([$Bool],[$Bool],false)}];T.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Timeout",name:"Timeout",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Temporary",name:"Temporary",pkg:"",typ:$funcType([],[$Bool],false)}];AN.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Timeout",name:"Timeout",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Temporary",name:"Temporary",pkg:"",typ:$funcType([],[$Bool],false)}];J.init("internal/poll",[{prop:"fdmu",name:"fdmu",embedded:false,exported:false,typ:S,tag:""},{prop:"Sysfd",name:"Sysfd",embedded:false,exported:true,typ:$Int,tag:""},{prop:"pd",name:"pd",embedded:false,exported:false,typ:P,tag:""},{prop:"iovecs",name:"iovecs",embedded:false,exported:false,typ:AE,tag:""},{prop:"csema",name:"csema",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"isBlocking",name:"isBlocking",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"IsStream",name:"IsStream",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"ZeroReadIsEOF",name:"ZeroReadIsEOF",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"isFile",name:"isFile",embedded:false,exported:false,typ:$Bool,tag:""}]);P.init("internal/poll",[{prop:"fd",name:"fd",embedded:false,exported:false,typ:AB,tag:""},{prop:"closing",name:"closing",embedded:false,exported:false,typ:$Bool,tag:""}]);S.init("internal/poll",[{prop:"state",name:"state",embedded:false,exported:false,typ:$Uint64,tag:""},{prop:"rsema",name:"rsema",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"wsema",name:"wsema",embedded:false,exported:false,typ:$Uint32,tag:""}]);T.init("",[]);V.init("",[]);$pkg.$initLinknames=function(){H=$linknames["sync.runtime_Semacquire"];I=$linknames["sync.runtime_Semrelease"];};$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=F.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.CloseFunc=A.Close;$pkg.AcceptFunc=A.Accept;K=1;$pkg.ErrNetClosing=new T.ptr();$pkg.ErrFileClosing=F.New("use of closed file");$pkg.ErrNoDeadline=F.New("file type does not support deadline");$pkg.ErrDeadlineExceeded=new V.ptr();$pkg.ErrNotPollable=F.New("not pollable");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/syscall/execenv"]=(function(){var $pkg={},$init,A,B;A=$packages["syscall"];B=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=A.Environ();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=[b,$ifaceNil];$s=2;case 2:return c;}return;}var $f={$blk:B,$c:true,$r,a,b,c,$s};return $f;};$pkg.Default=B;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/testlog"]=(function(){var $pkg={},$init,B,A,C,M,N,D,K,F,G,H,I,J;B=$packages["sync"];A=$packages["sync/atomic"];C=$pkg.Interface=$newType(8,$kindInterface,"testlog.Interface",true,"internal/testlog",true,null);M=$structType("internal/testlog",[{prop:"mu",name:"mu",embedded:false,exported:false,typ:B.Mutex,tag:""},{prop:"val",name:"val",embedded:false,exported:false,typ:$Bool,tag:""}]);N=$ptrType(C);F=function(){var a;a=D.Load();if($interfaceIsEqual(a,$ifaceNil)){return $ifaceNil;}return $assertType(a,N).$get();};$pkg.Logger=F;G=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=F();if(!($interfaceIsEqual(b,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:$r=b.Getenv(a);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:G,$c:true,$r,a,b,$s};return $f;};$pkg.Getenv=G;H=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=F();if(!($interfaceIsEqual(b,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:$r=b.Open(a);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:H,$c:true,$r,a,b,$s};return $f;};$pkg.Open=H;I=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=F();if(!($interfaceIsEqual(b,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:$r=b.Stat(a);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:I,$c:true,$r,a,b,$s};return $f;};$pkg.Stat=I;J=function(){var{a,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);$r=K.mu.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(K.mu,"Unlock"),[]]);a=K.val;$s=2;case 2:return a;}return;}}catch(err){$err=err;$s=-1;return false;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:J,$c:true,$r,a,$s,$deferred};return $f;}}};$pkg.PanicOnExit0=J;C.init([{prop:"Chdir",name:"Chdir",pkg:"",typ:$funcType([$String],[],false)},{prop:"Getenv",name:"Getenv",pkg:"",typ:$funcType([$String],[],false)},{prop:"Open",name:"Open",pkg:"",typ:$funcType([$String],[],false)},{prop:"Stat",name:"Stat",pkg:"",typ:$funcType([$String],[],false)}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=B.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}D=new A.Value.ptr($ifaceNil);K=new M.ptr(new B.Mutex.ptr(0,0),false);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["path"]=(function(){var $pkg={},$init,A,B,C,D,Q,R,E,F,G,H,J;A=$packages["errors"];B=$packages["internal/bytealg"];C=$packages["unicode/utf8"];D=$pkg.lazybuf=$newType(0,$kindStruct,"path.lazybuf",true,"path",false,function(s_,buf_,w_){this.$val=this;if(arguments.length===0){this.s="";this.buf=Q.nil;this.w=0;return;}this.s=s_;this.buf=buf_;this.w=w_;});Q=$sliceType($Uint8);R=$ptrType(D);D.ptr.prototype.index=function(a){var a,b,c;b=this;if(!(b.buf===Q.nil)){return(c=b.buf,((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]));}return b.s.charCodeAt(a);};D.prototype.index=function(a){return this.$val.index(a);};D.ptr.prototype.append=function(a){var a,b,c,d;b=this;if(b.buf===Q.nil){if(b.w>0;return;}b.buf=$makeSlice(Q,b.s.length);$copyString(b.buf,$substring(b.s,0,b.w));}(c=b.buf,d=b.w,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=a));b.w=b.w+(1)>>0;};D.prototype.append=function(a){return this.$val.append(a);};D.ptr.prototype.string=function(){var a;a=this;if(a.buf===Q.nil){return $substring(a.s,0,a.w);}return($bytesToString($subslice(a.buf,0,a.w)));};D.prototype.string=function(){return this.$val.string();};E=function(a){var a,b,c,d,e,f,g,h,i,j;if(a===""){return".";}b=a.charCodeAt(0)===47;c=a.length;d=new D.ptr(a,Q.nil,0);e=0;f=0;g=e;h=f;if(b){d.append(47);i=1;j=1;g=i;h=j;}while(true){if(!(g>0;}else if((a.charCodeAt(g)===46)&&(((g+1>>0)===c)||(a.charCodeAt((g+1>>0))===47))){g=g+(1)>>0;}else if((a.charCodeAt(g)===46)&&(a.charCodeAt((g+1>>0))===46)&&(((g+2>>0)===c)||(a.charCodeAt((g+2>>0))===47))){g=g+(2)>>0;if(d.w>h){d.w=d.w-(1)>>0;while(true){if(!(d.w>h&&!((d.index(d.w)===47)))){break;}d.w=d.w-(1)>>0;}}else if(!b){if(d.w>0){d.append(47);}d.append(46);d.append(46);h=d.w;}}else{if(b&&!((d.w===1))||!b&&!((d.w===0))){d.append(47);}while(true){if(!(g>0;}}}if(d.w===0){return".";}return d.string();};$pkg.Clean=E;F=function(a){var a,b;b=a.length-1>>0;while(true){if(!(b>=0&&!((a.charCodeAt(b)===47)))){break;}b=b-(1)>>0;}return b;};G=function(a){var a,b,c,d,e,f;b="";c="";d=F(a);e=$substring(a,0,(d+1>>0));f=$substring(a,(d+1>>0));b=e;c=f;return[b,c];};$pkg.Split=G;H=function(a){var a,b,c,d,e,f,g,h,i;b=0;c=a;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);b=b+(e.length)>>0;d++;}if(b===0){return"";}f=$makeSlice(Q,0,((b+a.$length>>0)-1>>0));g=a;h=0;while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if(f.$length>0||!(i==="")){if(f.$length>0){f=$append(f,47);}f=$appendSlice(f,i);}h++;}return E(($bytesToString(f)));};$pkg.Join=H;J=function(a){var a,b;if(a===""){return".";}while(true){if(!(a.length>0&&(a.charCodeAt((a.length-1>>0))===47))){break;}a=$substring(a,0,(a.length-1>>0));}b=F(a);if(b>=0){a=$substring(a,(b+1>>0));}if(a===""){return"/";}return a;};$pkg.Base=J;R.methods=[{prop:"index",name:"index",pkg:"path",typ:$funcType([$Int],[$Uint8],false)},{prop:"append",name:"append",pkg:"path",typ:$funcType([$Uint8],[],false)},{prop:"string",name:"string",pkg:"path",typ:$funcType([],[$String],false)}];D.init("path",[{prop:"s",name:"s",embedded:false,exported:false,typ:$String,tag:""},{prop:"buf",name:"buf",embedded:false,exported:false,typ:Q,tag:""},{prop:"w",name:"w",embedded:false,exported:false,typ:$Int,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.ErrBadPattern=A.New("syntax error in pattern");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["io/fs"]=(function(){var $pkg={},$init,A,E,C,B,D,F,G,AF,AM,AN,AO,AQ,AS,AT,AU,AH,AI,AJ,AK,AL;A=$packages["errors"];E=$packages["internal/oserror"];C=$packages["io"];B=$packages["path"];D=$packages["sort"];F=$packages["time"];G=$packages["unicode/utf8"];AF=$pkg.DirEntry=$newType(8,$kindInterface,"fs.DirEntry",true,"io/fs",true,null);AM=$pkg.FileInfo=$newType(8,$kindInterface,"fs.FileInfo",true,"io/fs",true,null);AN=$pkg.FileMode=$newType(4,$kindUint32,"fs.FileMode",true,"io/fs",true,null);AO=$pkg.PathError=$newType(0,$kindStruct,"fs.PathError",true,"io/fs",true,function(Op_,Path_,Err_){this.$val=this;if(arguments.length===0){this.Op="";this.Path="";this.Err=$ifaceNil;return;}this.Op=Op_;this.Path=Path_;this.Err=Err_;});AQ=$ptrType(AO);AS=$sliceType($Uint8);AT=$arrayType($Uint8,32);AU=$interfaceType([{prop:"Timeout",name:"Timeout",pkg:"",typ:$funcType([],[$Bool],false)}]);AH=function(){return E.ErrInvalid;};AI=function(){return E.ErrPermission;};AJ=function(){return E.ErrExist;};AK=function(){return E.ErrNotExist;};AL=function(){return E.ErrClosed;};AN.prototype.String=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;a=this.$val;b=AT.zero();c=0;d="dalTLDpSugct?";e=0;while(true){if(!(e>0)>>>0)),i<32?(1<>>0)))>>>0)===0))){((c<0||c>=b.length)?($throwRuntimeError("index out of range"),undefined):b[c]=((h<<24>>>24)));c=c+(1)>>0;}e+=f[1];}if(c===0){((c<0||c>=b.length)?($throwRuntimeError("index out of range"),undefined):b[c]=45);c=c+(1)>>0;}j="rwxrwxrwx";k=0;while(true){if(!(k>0)>>>0)),o<32?(1<>>0)))>>>0)===0))){((c<0||c>=b.length)?($throwRuntimeError("index out of range"),undefined):b[c]=((n<<24>>>24)));}else{((c<0||c>=b.length)?($throwRuntimeError("index out of range"),undefined):b[c]=45);}c=c+(1)>>0;k+=l[1];}return($bytesToString($subslice(new AS(b),0,c)));};$ptrType(AN).prototype.String=function(){return new AN(this.$get()).String();};AN.prototype.IsDir=function(){var a;a=this.$val;return!((((a&2147483648)>>>0)===0));};$ptrType(AN).prototype.IsDir=function(){return new AN(this.$get()).IsDir();};AN.prototype.IsRegular=function(){var a;a=this.$val;return((a&2401763328)>>>0)===0;};$ptrType(AN).prototype.IsRegular=function(){return new AN(this.$get()).IsRegular();};AN.prototype.Perm=function(){var a;a=this.$val;return(a&511)>>>0;};$ptrType(AN).prototype.Perm=function(){return new AN(this.$get()).Perm();};AN.prototype.Type=function(){var a;a=this.$val;return(a&2401763328)>>>0;};$ptrType(AN).prototype.Type=function(){return new AN(this.$get()).Type();};AO.ptr.prototype.Error=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Err.Error();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=a.Op+" "+a.Path+": "+b;$s=2;case 2:return c;}return;}var $f={$blk:AO.ptr.prototype.Error,$c:true,$r,a,b,c,$s};return $f;};AO.prototype.Error=function(){return this.$val.Error();};AO.ptr.prototype.Unwrap=function(){var a;a=this;return a.Err;};AO.prototype.Unwrap=function(){return this.$val.Unwrap();};AO.ptr.prototype.Timeout=function(){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=$assertType(a.Err,AU,true);c=b[0];d=b[1];if(!(d)){e=false;$s=1;continue s;}f=c.Timeout();$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;case 1:g=e;$s=3;case 3:return g;}return;}var $f={$blk:AO.ptr.prototype.Timeout,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};AO.prototype.Timeout=function(){return this.$val.Timeout();};AN.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"IsDir",name:"IsDir",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsRegular",name:"IsRegular",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Perm",name:"Perm",pkg:"",typ:$funcType([],[AN],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[AN],false)}];AQ.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Unwrap",name:"Unwrap",pkg:"",typ:$funcType([],[$error],false)},{prop:"Timeout",name:"Timeout",pkg:"",typ:$funcType([],[$Bool],false)}];AF.init([{prop:"Info",name:"Info",pkg:"",typ:$funcType([],[AM,$error],false)},{prop:"IsDir",name:"IsDir",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[AN],false)}]);AM.init([{prop:"IsDir",name:"IsDir",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"ModTime",name:"ModTime",pkg:"",typ:$funcType([],[F.Time],false)},{prop:"Mode",name:"Mode",pkg:"",typ:$funcType([],[AN],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Sys",name:"Sys",pkg:"",typ:$funcType([],[$emptyInterface],false)}]);AO.init("",[{prop:"Op",name:"Op",embedded:false,exported:true,typ:$String,tag:""},{prop:"Path",name:"Path",embedded:false,exported:true,typ:$String,tag:""},{prop:"Err",name:"Err",embedded:false,exported:true,typ:$error,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.SkipDir=A.New("skip this directory");$pkg.ErrInvalid=AH();$pkg.ErrPermission=AI();$pkg.ErrExist=AJ();$pkg.ErrNotExist=AK();$pkg.ErrClosed=AL();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["os"]=(function(){var $pkg={},$init,D,I,E,P,K,N,L,F,M,G,C,H,Q,J,O,A,B,R,U,AR,BR,CD,CM,CO,DO,DP,DR,DS,EC,EE,FB,FG,FK,FL,FM,FN,FO,FP,FQ,FR,FS,FU,FV,FW,FX,FY,FZ,GA,GB,GC,GF,GG,GH,GI,GJ,GK,GL,GM,GN,GO,GP,GQ,GR,GS,GT,GU,GV,GW,AA,BN,CP,CW,FC,FI,e,f,g,S,X,AI,AJ,AK,AL,AM,AO,AP,AS,AT,AZ,BA,BB,BC,BI,BJ,BK,BO,BP,BS,BU,BV,BW,CC,CE,CF,CG,CH,CL,CN,CR,CT,CV,CY,DD,DI,DN,DQ,DW,EA,EB,EF,EH,EK,EL,ER,EW,EX,EY,EZ,FA,FD,FE,FF;D=$packages["errors"];I=$packages["github.com/gopherjs/gopherjs/js"];E=$packages["internal/itoa"];P=$packages["internal/oserror"];K=$packages["internal/poll"];N=$packages["internal/syscall/execenv"];L=$packages["internal/syscall/unix"];F=$packages["internal/testlog"];M=$packages["internal/unsafeheader"];G=$packages["io"];C=$packages["io/fs"];H=$packages["runtime"];Q=$packages["sort"];J=$packages["sync"];O=$packages["sync/atomic"];A=$packages["syscall"];B=$packages["time"];R=$pkg.fileStat=$newType(0,$kindStruct,"os.fileStat",true,"os",false,function(name_,size_,mode_,modTime_,sys_){this.$val=this;if(arguments.length===0){this.name="";this.size=new $Int64(0,0);this.mode=0;this.modTime=new B.Time.ptr(new $Uint64(0,0),new $Int64(0,0),FS.nil);this.sys=new A.Stat_t.ptr(new $Int64(0,0),new $Uint64(0,0),0,0,0,0,new $Int64(0,0),new $Int64(0,0),0,0,new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0));return;}this.name=name_;this.size=size_;this.mode=mode_;this.modTime=modTime_;this.sys=sys_;});U=$pkg.File=$newType(0,$kindStruct,"os.File",true,"os",true,function(file_){this.$val=this;if(arguments.length===0){this.file=GB.nil;return;}this.file=file_;});AR=$pkg.rawConn=$newType(0,$kindStruct,"os.rawConn",true,"os",false,function(file_){this.$val=this;if(arguments.length===0){this.file=FQ.nil;return;}this.file=file_;});BR=$pkg.file=$newType(0,$kindStruct,"os.file",true,"os",false,function(pfd_,name_,dirinfo_,nonblock_,stdoutOrErr_,appendMode_){this.$val=this;if(arguments.length===0){this.pfd=new K.FD.ptr(new K.fdMutex.ptr(new $Uint64(0,0),0,0),0,new K.pollDesc.ptr(FX.nil,false),FZ.nil,0,0,false,false,false);this.name="";this.dirinfo=GA.nil;this.nonblock=false;this.stdoutOrErr=false;this.appendMode=false;return;}this.pfd=pfd_;this.name=name_;this.dirinfo=dirinfo_;this.nonblock=nonblock_;this.stdoutOrErr=stdoutOrErr_;this.appendMode=appendMode_;});CD=$pkg.unixDirent=$newType(0,$kindStruct,"os.unixDirent",true,"os",false,function(parent_,name_,typ_,info_){this.$val=this;if(arguments.length===0){this.parent="";this.name="";this.typ=0;this.info=$ifaceNil;return;}this.parent=parent_;this.name=name_;this.typ=typ_;this.info=info_;});CM=$pkg.LinkError=$newType(0,$kindStruct,"os.LinkError",true,"os",true,function(Op_,Old_,New_,Err_){this.$val=this;if(arguments.length===0){this.Op="";this.Old="";this.New="";this.Err=$ifaceNil;return;}this.Op=Op_;this.Old=Old_;this.New=New_;this.Err=Err_;});CO=$pkg.onlyWriter=$newType(0,$kindStruct,"os.onlyWriter",true,"os",false,function(Writer_){this.$val=this;if(arguments.length===0){this.Writer=$ifaceNil;return;}this.Writer=Writer_;});DO=$pkg.ProcessState=$newType(0,$kindStruct,"os.ProcessState",true,"os",true,function(pid_,status_,rusage_){this.$val=this;if(arguments.length===0){this.pid=0;this.status=0;this.rusage=GH.nil;return;}this.pid=pid_;this.status=status_;this.rusage=rusage_;});DP=$pkg.Process=$newType(0,$kindStruct,"os.Process",true,"os",true,function(Pid_,handle_,isdone_,sigMu_){this.$val=this;if(arguments.length===0){this.Pid=0;this.handle=0;this.isdone=0;this.sigMu=new J.RWMutex.ptr(new J.Mutex.ptr(0,0),0,0,0,0);return;}this.Pid=Pid_;this.handle=handle_;this.isdone=isdone_;this.sigMu=sigMu_;});DR=$pkg.ProcAttr=$newType(0,$kindStruct,"os.ProcAttr",true,"os",true,function(Dir_,Env_,Files_,Sys_){this.$val=this;if(arguments.length===0){this.Dir="";this.Env=FK.nil;this.Files=GW.nil;this.Sys=GK.nil;return;}this.Dir=Dir_;this.Env=Env_;this.Files=Files_;this.Sys=Sys_;});DS=$pkg.Signal=$newType(8,$kindInterface,"os.Signal",true,"os",true,null);EC=$pkg.timeout=$newType(8,$kindInterface,"os.timeout",true,"os",false,null);EE=$pkg.SyscallError=$newType(0,$kindStruct,"os.SyscallError",true,"os",true,function(Syscall_,Err_){this.$val=this;if(arguments.length===0){this.Syscall="";this.Err=$ifaceNil;return;}this.Syscall=Syscall_;this.Err=Err_;});FB=$pkg.dirInfo=$newType(0,$kindStruct,"os.dirInfo",true,"os",false,function(buf_,nbuf_,bufp_){this.$val=this;if(arguments.length===0){this.buf=FO.nil;this.nbuf=0;this.bufp=0;return;}this.buf=buf_;this.nbuf=nbuf_;this.bufp=bufp_;});FG=$pkg.readdirMode=$newType(4,$kindInt,"os.readdirMode",true,"os",false,null);FK=$sliceType($String);FL=$structType("os",[{prop:"Mutex",name:"Mutex",embedded:true,exported:true,typ:J.Mutex,tag:""},{prop:"dir",name:"dir",embedded:false,exported:false,typ:$String,tag:""}]);FM=$sliceType($emptyInterface);FN=$sliceType($Uint8);FO=$ptrType(FN);FP=$ptrType(R);FQ=$ptrType(U);FR=$arrayType($Uint8,20);FS=$ptrType(B.Location);FU=$ptrType(C.PathError);FV=$arrayType($Int,2);FW=$sliceType($Int);FX=$ptrType(K.FD);FY=$sliceType(A.Iovec);FZ=$ptrType(FY);GA=$ptrType(FB);GB=$ptrType(BR);GC=$funcType([GB],[$error],false);GF=$ptrType(DO);GG=$ptrType(A.WaitStatus);GH=$ptrType(A.Rusage);GI=$ptrType(DP);GJ=$ptrType(DR);GK=$ptrType(A.SysProcAttr);GL=$sliceType($Uintptr);GM=$funcType([GI],[$error],false);GN=$ptrType($Uint32);GO=$ptrType(CM);GP=$ptrType(EE);GQ=$sliceType(C.DirEntry);GR=$sliceType(C.FileInfo);GS=$funcType([$Uintptr],[],false);GT=$funcType([$Uintptr],[$Bool],false);GU=$ptrType(AR);GV=$ptrType(CD);GW=$sliceType(FQ);DP.ptr.prototype.blockUntilWaitable=function(){var h;h=this;return[false,$ifaceNil];};DP.prototype.blockUntilWaitable=function(){return this.$val.blockUntilWaitable();};R.ptr.prototype.Size=function(){var h;h=this;return h.size;};R.prototype.Size=function(){return this.$val.Size();};R.ptr.prototype.Mode=function(){var h;h=this;return h.mode;};R.prototype.Mode=function(){return this.$val.Mode();};R.ptr.prototype.ModTime=function(){var h;h=this;return h.modTime;};R.prototype.ModTime=function(){return this.$val.ModTime();};R.ptr.prototype.Sys=function(){var h;h=this;return h.sys;};R.prototype.Sys=function(){return this.$val.Sys();};S=function(h,i){var h,i,j,k,l,m;return(j=h.sys.Dev,k=i.sys.Dev,(j.$high===k.$high&&j.$low===k.$low))&&(l=h.sys.Ino,m=i.sys.Ino,(l.$high===m.$high&&l.$low===m.$low));};R.ptr.prototype.Name=function(){var h;h=this;return h.name;};R.prototype.Name=function(){return this.$val.Name();};R.ptr.prototype.IsDir=function(){var h;h=this;return new C.FileMode(h.Mode()).IsDir();};R.prototype.IsDir=function(){return this.$val.IsDir();};X=function(h,i){var h,i,j,k,l,m,n,o;j=$assertType(h,FP,true);k=j[0];l=j[1];m=$assertType(i,FP,true);n=m[0];o=m[1];if(!l||!o){return false;}return S(k,n);};$pkg.SameFile=X;AI=function(h){var h,i,j,k,l,m,n;if(h===0){return"0x0";}i=FR.zero();j=19;while(true){if(!(h>=16)){break;}l=(k=h/16,(k===k&&k!==1/0&&k!==-1/0)?k>>>0:$throwRuntimeError("integer divide by zero"));((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]="0123456789abcdef".charCodeAt((m=h%16,m===m?m:$throwRuntimeError("integer divide by zero"))));j=j-(1)>>0;h=l;}((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]="0123456789abcdef".charCodeAt((n=h%16,n===n?n:$throwRuntimeError("integer divide by zero"))));j=j-(1)>>0;((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]=120);j=j-(1)>>0;((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]=48);return($bytesToString($subslice(new FN(i),j)));};U.ptr.prototype.Stat=function(){var{h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=[h];i=this;if(i===FQ.nil){$s=-1;return[$ifaceNil,$pkg.ErrInvalid];}h[0]=new R.ptr("",new $Int64(0,0),0,new B.Time.ptr(new $Uint64(0,0),new $Int64(0,0),FS.nil),new A.Stat_t.ptr(new $Int64(0,0),new $Uint64(0,0),0,0,0,0,new $Int64(0,0),new $Int64(0,0),0,0,new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0)));j=i.file.pfd.Fstat(h[0].sys);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return[$ifaceNil,new C.PathError.ptr("stat",i.file.name,k)];}AL(h[0],i.file.name);$s=-1;return[h[0],$ifaceNil];}return;}var $f={$blk:U.ptr.prototype.Stat,$c:true,$r,h,i,j,k,$s};return $f;};U.prototype.Stat=function(){return this.$val.Stat();};AJ=function(h){var{h,i,j,k,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:h=[h];i=[i];i[0]=new R.ptr("",new $Int64(0,0),0,new B.Time.ptr(new $Uint64(0,0),new $Int64(0,0),FS.nil),new A.Stat_t.ptr(new $Int64(0,0),new $Uint64(0,0),0,0,0,0,new $Int64(0,0),new $Int64(0,0),0,0,new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0)));j=CL((function(h,i){return function $b(){var{j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=A.Stat(h[0],i[0].sys);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=2;case 2:return k;}return;}var $f={$blk:$b,$c:true,$r,j,k,$s};return $f;};})(h,i));$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return[$ifaceNil,new C.PathError.ptr("stat",h[0],k)];}AL(i[0],h[0]);$s=-1;return[i[0],$ifaceNil];}return;}var $f={$blk:AJ,$c:true,$r,h,i,j,k,$s};return $f;};AK=function(h){var{h,i,j,k,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:h=[h];i=[i];i[0]=new R.ptr("",new $Int64(0,0),0,new B.Time.ptr(new $Uint64(0,0),new $Int64(0,0),FS.nil),new A.Stat_t.ptr(new $Int64(0,0),new $Uint64(0,0),0,0,0,0,new $Int64(0,0),new $Int64(0,0),0,0,new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0)));j=CL((function(h,i){return function $b(){var{j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=A.Lstat(h[0],i[0].sys);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=2;case 2:return k;}return;}var $f={$blk:$b,$c:true,$r,j,k,$s};return $f;};})(h,i));$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return[$ifaceNil,new C.PathError.ptr("lstat",h[0],k)];}AL(i[0],h[0]);$s=-1;return[i[0],$ifaceNil];}return;}var $f={$blk:AK,$c:true,$r,h,i,j,k,$s};return $f;};AL=function(h,i){var h,i,j;h.name=BC(i);h.size=h.sys.Size;B.Time.copy(h.modTime,AM(h.sys.Mtime,h.sys.MtimeNsec));h.mode=((((h.sys.Mode&511)>>>0)>>>0));j=(h.sys.Mode&126976)>>>0;if(j===(24576)){h.mode=(h.mode|(67108864))>>>0;}else if(j===(8192)){h.mode=(h.mode|(69206016))>>>0;}else if(j===(16384)){h.mode=(h.mode|(2147483648))>>>0;}else if(j===(4096)){h.mode=(h.mode|(33554432))>>>0;}else if(j===(40960)){h.mode=(h.mode|(134217728))>>>0;}else if(j===(32768)){}else if(j===(49152)){h.mode=(h.mode|(16777216))>>>0;}if(!((((h.sys.Mode&1024)>>>0)===0))){h.mode=(h.mode|(4194304))>>>0;}if(!((((h.sys.Mode&2048)>>>0)===0))){h.mode=(h.mode|(8388608))>>>0;}if(!((((h.sys.Mode&512)>>>0)===0))){h.mode=(h.mode|(1048576))>>>0;}};AM=function(h,i){var h,i;return B.Unix(h,i);};AO=function(h){var{h,i,j,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:$r=F.Stat(h);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=AJ(h);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=3;case 3:return j;}return;}var $f={$blk:AO,$c:true,$r,h,i,j,$s};return $f;};$pkg.Stat=AO;AP=function(h){var{h,i,j,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:$r=F.Stat(h);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=AK(h);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=3;case 3:return j;}return;}var $f={$blk:AP,$c:true,$r,h,i,j,$s};return $f;};$pkg.Lstat=AP;U.ptr.prototype.readFrom=function(h){var h,i,j,k,l,m,n,o;i=new $Int64(0,0);j=false;k=$ifaceNil;l=this;m=new $Int64(0,0);n=false;o=$ifaceNil;i=m;j=n;k=o;return[i,j,k];};U.prototype.readFrom=function(h){return this.$val.readFrom(h);};AR.ptr.prototype.Control=function(h){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;j=i.file.checkValid("SyscallConn.Control");if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}k=i.file.file.pfd.RawControl(h);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;H.KeepAlive(i.file);$s=-1;return l;}return;}var $f={$blk:AR.ptr.prototype.Control,$c:true,$r,h,i,j,k,l,$s};return $f;};AR.prototype.Control=function(h){return this.$val.Control(h);};AR.ptr.prototype.Read=function(h){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;j=i.file.checkValid("SyscallConn.Read");if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}k=i.file.file.pfd.RawRead(h);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;H.KeepAlive(i.file);$s=-1;return l;}return;}var $f={$blk:AR.ptr.prototype.Read,$c:true,$r,h,i,j,k,l,$s};return $f;};AR.prototype.Read=function(h){return this.$val.Read(h);};AR.ptr.prototype.Write=function(h){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;j=i.file.checkValid("SyscallConn.Write");if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}k=i.file.file.pfd.RawWrite(h);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;H.KeepAlive(i.file);$s=-1;return l;}return;}var $f={$blk:AR.ptr.prototype.Write,$c:true,$r,h,i,j,k,l,$s};return $f;};AR.prototype.Write=function(h){return this.$val.Write(h);};AS=function(h){var h;return[new AR.ptr(h),$ifaceNil];};AT=function(){if(false){return;}$pkg.Args=BI();};AZ=function(h){var{h,i,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:if(h===0){$s=1;continue;}$s=2;continue;case 1:i=F.PanicOnExit0();$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(i){$s=3;continue;}$s=4;continue;case 3:$panic(new $String("unexpected call to os.Exit(0) during test"));case 4:BK();case 2:$r=A.Exit(h);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AZ,$c:true,$r,h,i,$s};return $f;};$pkg.Exit=AZ;BA=function(){var{h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=FQ.nil;i=FQ.nil;j=$ifaceNil;k=FV.zero();$r=A.ForkLock.RLock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=A.Pipe($subslice(new FW(k),0));if(!($interfaceIsEqual(l,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:$r=A.ForkLock.RUnlock();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=FQ.nil;n=FQ.nil;o=EF("pipe",l);h=m;i=n;j=o;$s=-1;return[h,i,j];case 3:A.CloseOnExec(k[0]);A.CloseOnExec(k[1]);$r=A.ForkLock.RUnlock();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}q=BU(((k[0]>>>0)),"|0",2);$s=6;case 6:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;s=BU(((k[1]>>>0)),"|1",2);$s=7;case 7:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;t=$ifaceNil;h=p;i=r;j=t;u=[h,i,j];$s=8;case 8:return u;}return;}var $f={$blk:BA,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};$pkg.Pipe=BA;BB=function(h){var h;return 47===h;};$pkg.IsPathSeparator=BB;BC=function(h){var h,i;i=h.length-1>>0;while(true){if(!(i>0&&(h.charCodeAt(i)===47))){break;}h=$substring(h,0,i);i=i-(1)>>0;}i=i-(1)>>0;while(true){if(!(i>=0)){break;}if(h.charCodeAt(i)===47){h=$substring(h,(i+1>>0));break;}i=i-(1)>>0;}return h;};BI=function(){return $pkg.Args;};BJ=function(){var h,i,j;h=$global.process;if(!(h===undefined)){i=h.argv;if(!(i===undefined)&&$parseInt(i.length)>=1){$pkg.Args=$makeSlice(FK,($parseInt(i.length)-1>>0));j=0;while(true){if(!(j<($parseInt(i.length)-1>>0))){break;}((j<0||j>=$pkg.Args.$length)?($throwRuntimeError("index out of range"),undefined):$pkg.Args.$array[$pkg.Args.$offset+j]=$internalize(i[(j+1>>0)],$String));j=j+(1)>>0;}}}if($pkg.Args.$length===0){$pkg.Args=new FK(["?"]);}};BK=function(){};U.ptr.prototype.WriteString=function(h){var{h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=0;j=$ifaceNil;k=this;m=k.Write((new FN($stringToBytes(h))));$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;i=l[0];j=l[1];n=[i,j];$s=2;case 2:return n;}return;}var $f={$blk:U.ptr.prototype.WriteString,$c:true,$r,h,i,j,k,l,m,n,$s};return $f;};U.prototype.WriteString=function(h){return this.$val.WriteString(h);};BO=function(){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h="";i=$ifaceNil;if(false){$s=1;continue;}$s=2;continue;case 1:k=A.Getwd();$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;h=j[0];i=j[1];l=[h,i];$s=4;case 4:return l;case 2:n=AJ(".");$s=5;case 5:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=m[0];i=m[1];if(!($interfaceIsEqual(i,$ifaceNil))){p="";q=i;h=p;i=q;$s=-1;return[h,i];}r=ER("PWD");$s=6;case 6:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}h=r;if(h.length>0&&(h.charCodeAt(0)===47)){$s=7;continue;}$s=8;continue;case 7:t=AJ(h);$s=9;case 9:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;u=s[0];v=s[1];if($interfaceIsEqual(v,$ifaceNil)&&X(o,u)){w=h;x=$ifaceNil;h=w;i=x;$s=-1;return[h,i];}case 8:if(true){$s=10;continue;}$s=11;continue;case 10:y="";z=$ifaceNil;case 12:ab=A.Getwd();$s=14;case 14:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;y=aa[0];z=aa[1];if(!($interfaceIsEqual(z,new A.Errno(4)))){$s=13;continue;}$s=12;continue;case 13:ac=y;ad=EF("getwd",z);h=ac;i=ad;$s=-1;return[h,i];case 11:$r=BN.Mutex.Lock();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=BN.dir;$r=BN.Mutex.Unlock();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(h.length>0){$s=17;continue;}$s=18;continue;case 17:af=AJ(h);$s=19;case 19:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ae=af;ag=ae[0];ah=ae[1];if($interfaceIsEqual(ah,$ifaceNil)&&X(o,ag)){ai=h;aj=$ifaceNil;h=ai;i=aj;$s=-1;return[h,i];}case 18:al=AJ("/");$s=20;case 20:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}ak=al;am=ak[0];i=ak[1];if(!($interfaceIsEqual(i,$ifaceNil))){an="";ao=i;h=an;i=ao;$s=-1;return[h,i];}if(X(am,o)){ap="/";aq=$ifaceNil;h=ap;i=aq;$s=-1;return[h,i];}h="";ar="..";case 21:if(ar.length>=1024){as="";at=new A.Errno(36);h=as;i=at;$s=-1;return[h,i];}av=BW(ar,0,0);$s=23;case 23:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}au=av;aw=au[0];ax=au[1];if(!($interfaceIsEqual(ax,$ifaceNil))){ay="";az=ax;h=ay;i=az;$s=-1;return[h,i];}case 24:bb=aw.Readdirnames(100);$s=26;case 26:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}ba=bb;bc=ba[0];bd=ba[1];if(!($interfaceIsEqual(bd,$ifaceNil))){$s=27;continue;}$s=28;continue;case 27:be=aw.Close();$s=29;case 29:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}be;bf="";bg=bd;h=bf;i=bg;$s=-1;return[h,i];case 28:bh=bc;bi=0;case 30:if(!(bi=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bi]);bl=AK(ar+"/"+bj);$s=32;case 32:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}bk=bl;bm=bk[0];if(X(bm,o)){$s=33;continue;}$s=34;continue;case 33:h="/"+bj+h;$s=35;continue;case 34:bi++;$s=30;continue;case 31:$s=24;continue;case 25:case 35:bo=aw.Stat();$s=36;case 36:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bn=bo;bp=bn[0];ax=bn[1];bq=aw.Close();$s=37;case 37:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}bq;if(!($interfaceIsEqual(ax,$ifaceNil))){br="";bs=ax;h=br;i=bs;$s=-1;return[h,i];}if(X(bp,am)){$s=22;continue;}o=bp;ar="../"+ar;$s=21;continue;case 22:$r=BN.Mutex.Lock();$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}BN.dir=h;$r=BN.Mutex.Unlock();$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bt=h;bu=$ifaceNil;h=bt;i=bu;$s=-1;return[h,i];}return;}var $f={$blk:BO,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.Getwd=BO;BP=function(h){var h;return h;};U.ptr.prototype.Fd=function(){var{h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=this;if(h===FQ.nil){$s=-1;return 4294967295;}if(h.file.nonblock){$s=1;continue;}$s=2;continue;case 1:i=h.file.pfd.SetBlocking();$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;case 2:$s=-1;return((h.file.pfd.Sysfd>>>0));}return;}var $f={$blk:U.ptr.prototype.Fd,$c:true,$r,h,i,$s};return $f;};U.prototype.Fd=function(){return this.$val.Fd();};BS=function(h,i){var{h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:j=0;k=L.IsNonblock(((h>>0)));l=k[0];m=k[1];if($interfaceIsEqual(m,$ifaceNil)&&l){j=3;}n=BU(h,i,j);$s=1;case 1:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;$s=2;case 2:return o;}return;}var $f={$blk:BS,$c:true,$r,h,i,j,k,l,m,n,o,$s};return $f;};$pkg.NewFile=BS;BU=function(h,i,j){var{h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{h,i,j});$s=$s||0;s:while(true){switch($s){case 0:k=[k];l=[l];k[0]=((h>>0));if(k[0]<0){$s=-1;return FQ.nil;}m=new U.ptr(new BR.ptr(new K.FD.ptr(new K.fdMutex.ptr(new $Uint64(0,0),0,0),k[0],new K.pollDesc.ptr(FX.nil,false),FZ.nil,0,0,true,true,false),i,GA.nil,false,(k[0]===1)||(k[0]===2),false));n=(j===1)||(j===2)||(j===3);if(j===1){$s=1;continue;}$s=2;continue;case 1:o="js";if(o===("darwin")||o===("ios")||o===("dragonfly")||o===("freebsd")||o===("netbsd")||o===("openbsd")){$s=4;continue;}$s=5;continue;case 4:l[0]=new A.Stat_t.ptr(new $Int64(0,0),new $Uint64(0,0),0,0,0,0,new $Int64(0,0),new $Int64(0,0),0,0,new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0));p=CL((function(k,l){return function $b(){var{p,q,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:p=A.Fstat(k[0],l[0]);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=2;case 2:return q;}return;}var $f={$blk:$b,$c:true,$r,p,q,$s};return $f;};})(k,l));$s=6;case 6:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;r=(l[0].Mode&126976)>>>0;if($interfaceIsEqual(q,$ifaceNil)&&((r===32768)||(r===16384))){n=false;}if(false&&(r===4096)){n=false;}case 5:case 3:case 2:s=m.file.pfd.Init("file",n);if(!($interfaceIsEqual(s,$ifaceNil))){}else if(n){t=A.SetNonblock(k[0],true);if($interfaceIsEqual(t,$ifaceNil)){m.file.nonblock=true;}}H.SetFinalizer(m.file,new GC($methodExpr(GB,"close")));$s=-1;return m;}return;}var $f={$blk:BU,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};BV=function(h,i){var{h,i,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:if($interfaceIsEqual(i,new A.Errno(32))&&h.file.stdoutOrErr){$s=1;continue;}$s=2;continue;case 1:$r=CF();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:BV,$c:true,$r,h,i,$s};return $f;};BW=function(h,i,j){var{h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{h,i,j});$s=$s||0;s:while(true){switch($s){case 0:k=false;if(true&&!(((i&64)===0))&&!((((j&1048576)>>>0)===0))){$s=1;continue;}$s=2;continue;case 1:m=AO(h);$s=3;case 3:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;n=l[1];if(EH(n)){k=true;}case 2:o=0;case 4:p=$ifaceNil;r=A.Open(h,i|0,CG(j));$s=6;case 6:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;o=q[0];p=q[1];if($interfaceIsEqual(p,$ifaceNil)){$s=5;continue;}if($interfaceIsEqual(p,new A.Errno(4))){$s=4;continue;}$s=-1;return[FQ.nil,new C.PathError.ptr("open",h,p)];case 5:if(k){$s=7;continue;}$s=8;continue;case 7:s=CR(h);$s=9;case 9:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;case 8:if(true){A.CloseOnExec(o);}t=BU(((o>>>0)),h,1);$s=10;case 10:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=[t,$ifaceNil];$s=11;case 11:return u;}return;}var $f={$blk:BW,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};BR.ptr.prototype.close=function(){var{h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=this;if(h===GB.nil){$s=-1;return new A.Errno(22);}if(!(h.dirinfo===GA.nil)){h.dirinfo.close();h.dirinfo=GA.nil;}i=$ifaceNil;j=h.pfd.Close();$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!($interfaceIsEqual(k,$ifaceNil))){if($interfaceIsEqual(k,K.ErrFileClosing)){k=$pkg.ErrClosed;}i=new C.PathError.ptr("close",h.name,k);}H.SetFinalizer(h,$ifaceNil);$s=-1;return i;}return;}var $f={$blk:BR.ptr.prototype.close,$c:true,$r,h,i,j,k,$s};return $f;};BR.prototype.close=function(){return this.$val.close();};U.ptr.prototype.seek=function(h,i){var{h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:j=new $Int64(0,0);k=$ifaceNil;l=this;if(!(l.file.dirinfo===GA.nil)){l.file.dirinfo.close();l.file.dirinfo=GA.nil;}n=l.file.pfd.Seek(h,i);$s=1;case 1:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;j=m[0];k=m[1];H.KeepAlive(l);o=j;p=k;j=o;k=p;$s=-1;return[j,k];}return;}var $f={$blk:U.ptr.prototype.seek,$c:true,$r,h,i,j,k,l,m,n,o,p,$s};return $f;};U.prototype.seek=function(h,i){return this.$val.seek(h,i);};CC=function(h){var{h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=128;case 1:j=$makeSlice(FN,i);k=0;l=$ifaceNil;case 3:o=A.Readlink(h,j);$s=5;case 5:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;p=CY(n[0],n[1]);$s=6;case 6:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}m=p;k=m[0];l=m[1];if(!($interfaceIsEqual(l,new A.Errno(4)))){$s=4;continue;}$s=3;continue;case 4:if(false&&$interfaceIsEqual(l,new A.Errno(34))){i=$imul(i,(2));$s=1;continue;}if(!($interfaceIsEqual(l,$ifaceNil))){$s=-1;return["",new C.PathError.ptr("readlink",h,l)];}if(k>>0))))>>>0;if(!((((h&8388608)>>>0)===0))){i=(i|(2048))>>>0;}if(!((((h&4194304)>>>0)===0))){i=(i|(1024))>>>0;}if(!((((h&1048576)>>>0)===0))){i=(i|(512))>>>0;}return i;};CH=function(h,i){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:i=[i];j=[j];j[0]=BP(h);k=CL((function(i,j){return function $b(){var{k,l,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:k=A.Chmod(j[0],CG(i[0]));$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=2;case 2:return l;}return;}var $f={$blk:$b,$c:true,$r,k,l,$s};return $f;};})(i,j));$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(!($interfaceIsEqual(l,$ifaceNil))){$s=-1;return new C.PathError.ptr("chmod",h,l);}$s=-1;return $ifaceNil;}return;}var $f={$blk:CH,$c:true,$r,h,i,j,k,l,$s};return $f;};U.ptr.prototype.chmod=function(h){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;j=i.checkValid("chmod");if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}k=i.file.pfd.Fchmod(CG(h));$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(!($interfaceIsEqual(l,$ifaceNil))){$s=-1;return i.wrapErr("chmod",l);}$s=-1;return $ifaceNil;}return;}var $f={$blk:U.ptr.prototype.chmod,$c:true,$r,h,i,j,k,l,$s};return $f;};U.prototype.chmod=function(h){return this.$val.chmod(h);};U.ptr.prototype.Chown=function(h,i){var{h,i,j,k,l,m,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:j=this;k=j.checkValid("chown");if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return k;}l=j.file.pfd.Fchown(h,i);$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;if(!($interfaceIsEqual(m,$ifaceNil))){$s=-1;return j.wrapErr("chown",m);}$s=-1;return $ifaceNil;}return;}var $f={$blk:U.ptr.prototype.Chown,$c:true,$r,h,i,j,k,l,m,$s};return $f;};U.prototype.Chown=function(h,i){return this.$val.Chown(h,i);};U.ptr.prototype.Truncate=function(h){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;j=i.checkValid("truncate");if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}k=i.file.pfd.Ftruncate(h);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(!($interfaceIsEqual(l,$ifaceNil))){$s=-1;return i.wrapErr("truncate",l);}$s=-1;return $ifaceNil;}return;}var $f={$blk:U.ptr.prototype.Truncate,$c:true,$r,h,i,j,k,l,$s};return $f;};U.prototype.Truncate=function(h){return this.$val.Truncate(h);};U.ptr.prototype.Sync=function(){var{h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=this;i=h.checkValid("sync");if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return i;}j=h.file.pfd.Fsync();$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return h.wrapErr("sync",k);}$s=-1;return $ifaceNil;}return;}var $f={$blk:U.ptr.prototype.Sync,$c:true,$r,h,i,j,k,$s};return $f;};U.prototype.Sync=function(){return this.$val.Sync();};U.ptr.prototype.Chdir=function(){var{h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=this;i=h.checkValid("chdir");if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return i;}j=h.file.pfd.Fchdir();$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return h.wrapErr("chdir",k);}$s=-1;return $ifaceNil;}return;}var $f={$blk:U.ptr.prototype.Chdir,$c:true,$r,h,i,j,k,$s};return $f;};U.prototype.Chdir=function(){return this.$val.Chdir();};U.ptr.prototype.setDeadline=function(h){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;j=i.checkValid("SetDeadline");if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}k=i.file.pfd.SetDeadline($clone(h,B.Time));$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=2;case 2:return l;}return;}var $f={$blk:U.ptr.prototype.setDeadline,$c:true,$r,h,i,j,k,l,$s};return $f;};U.prototype.setDeadline=function(h){return this.$val.setDeadline(h);};U.ptr.prototype.setReadDeadline=function(h){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;j=i.checkValid("SetReadDeadline");if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}k=i.file.pfd.SetReadDeadline($clone(h,B.Time));$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=2;case 2:return l;}return;}var $f={$blk:U.ptr.prototype.setReadDeadline,$c:true,$r,h,i,j,k,l,$s};return $f;};U.prototype.setReadDeadline=function(h){return this.$val.setReadDeadline(h);};U.ptr.prototype.setWriteDeadline=function(h){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;j=i.checkValid("SetWriteDeadline");if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}k=i.file.pfd.SetWriteDeadline($clone(h,B.Time));$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=2;case 2:return l;}return;}var $f={$blk:U.ptr.prototype.setWriteDeadline,$c:true,$r,h,i,j,k,l,$s};return $f;};U.prototype.setWriteDeadline=function(h){return this.$val.setWriteDeadline(h);};U.ptr.prototype.checkValid=function(h){var h,i;i=this;if(i===FQ.nil){return $pkg.ErrInvalid;}return $ifaceNil;};U.prototype.checkValid=function(h){return this.$val.checkValid(h);};CL=function(h){var{h,i,j,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:case 1:i=h();$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(!($interfaceIsEqual(j,new A.Errno(4)))){$s=-1;return j;}$s=1;continue;case 2:$s=-1;return $ifaceNil;}return;}var $f={$blk:CL,$c:true,$r,h,i,j,$s};return $f;};U.ptr.prototype.Name=function(){var h;h=this;return h.file.name;};U.prototype.Name=function(){return this.$val.Name();};CM.ptr.prototype.Error=function(){var{h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=this;i=h.Err.Error();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=h.Op+" "+h.Old+" "+h.New+": "+i;$s=2;case 2:return j;}return;}var $f={$blk:CM.ptr.prototype.Error,$c:true,$r,h,i,j,$s};return $f;};CM.prototype.Error=function(){return this.$val.Error();};CM.ptr.prototype.Unwrap=function(){var h;h=this;return h.Err;};CM.prototype.Unwrap=function(){return this.$val.Unwrap();};U.ptr.prototype.Read=function(h){var{h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=0;j=$ifaceNil;k=this;l=k.checkValid("read");if(!($interfaceIsEqual(l,$ifaceNil))){m=0;n=l;i=m;j=n;$s=-1;return[i,j];}p=k.read(h);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;i=o[0];q=o[1];r=i;s=k.wrapErr("read",q);i=r;j=s;$s=-1;return[i,j];}return;}var $f={$blk:U.ptr.prototype.Read,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};U.prototype.Read=function(h){return this.$val.Read(h);};U.ptr.prototype.ReadAt=function(h,i){var{h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:j=0;k=$ifaceNil;l=this;m=l.checkValid("read");if(!($interfaceIsEqual(m,$ifaceNil))){n=0;o=m;j=n;k=o;$s=-1;return[j,k];}if((i.$high<0||(i.$high===0&&i.$low<0))){p=0;q=new C.PathError.ptr("readat",l.file.name,D.New("negative offset"));j=p;k=q;$s=-1;return[j,k];}case 1:if(!(h.$length>0)){$s=2;continue;}s=l.pread(h,i);$s=3;case 3:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;t=r[0];u=r[1];if(!($interfaceIsEqual(u,$ifaceNil))){k=l.wrapErr("read",u);$s=2;continue;}j=j+(t)>>0;h=$subslice(h,t);i=(v=(new $Int64(0,t)),new $Int64(i.$high+v.$high,i.$low+v.$low));$s=1;continue;case 2:$s=-1;return[j,k];}return;}var $f={$blk:U.ptr.prototype.ReadAt,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};U.prototype.ReadAt=function(h,i){return this.$val.ReadAt(h,i);};U.ptr.prototype.ReadFrom=function(h){var{h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=new $Int64(0,0);j=$ifaceNil;k=this;l=k.checkValid("write");if(!($interfaceIsEqual(l,$ifaceNil))){m=new $Int64(0,0);n=l;i=m;j=n;$s=-1;return[i,j];}o=k.readFrom(h);i=o[0];p=o[1];q=o[2];if(!p){$s=1;continue;}$s=2;continue;case 1:s=CN(k,h);$s=3;case 3:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;i=r[0];j=r[1];t=[i,j];$s=4;case 4:return t;case 2:u=i;v=k.wrapErr("write",q);i=u;j=v;$s=-1;return[i,j];}return;}var $f={$blk:U.ptr.prototype.ReadFrom,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};U.prototype.ReadFrom=function(h){return this.$val.ReadFrom(h);};CN=function(h,i){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:k=G.Copy((j=new CO.ptr(h),new j.constructor.elem(j)),i);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=2;case 2:return l;}return;}var $f={$blk:CN,$c:true,$r,h,i,j,k,l,$s};return $f;};U.ptr.prototype.Write=function(h){var{h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=0;j=$ifaceNil;k=this;l=k.checkValid("write");if(!($interfaceIsEqual(l,$ifaceNil))){m=0;n=l;i=m;j=n;$s=-1;return[i,j];}p=k.write(h);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;i=o[0];q=o[1];if(i<0){i=0;}if(!((i===h.$length))){j=G.ErrShortWrite;}$r=BV(k,q);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(q,$ifaceNil))){j=k.wrapErr("write",q);}r=i;s=j;i=r;j=s;$s=-1;return[i,j];}return;}var $f={$blk:U.ptr.prototype.Write,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};U.prototype.Write=function(h){return this.$val.Write(h);};U.ptr.prototype.WriteAt=function(h,i){var{h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:j=0;k=$ifaceNil;l=this;m=l.checkValid("write");if(!($interfaceIsEqual(m,$ifaceNil))){n=0;o=m;j=n;k=o;$s=-1;return[j,k];}if(l.file.appendMode){p=0;q=CP;j=p;k=q;$s=-1;return[j,k];}if((i.$high<0||(i.$high===0&&i.$low<0))){r=0;s=new C.PathError.ptr("writeat",l.file.name,D.New("negative offset"));j=r;k=s;$s=-1;return[j,k];}case 1:if(!(h.$length>0)){$s=2;continue;}u=l.pwrite(h,i);$s=3;case 3:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;v=t[0];w=t[1];if(!($interfaceIsEqual(w,$ifaceNil))){k=l.wrapErr("write",w);$s=2;continue;}j=j+(v)>>0;h=$subslice(h,v);i=(x=(new $Int64(0,v)),new $Int64(i.$high+x.$high,i.$low+x.$low));$s=1;continue;case 2:$s=-1;return[j,k];}return;}var $f={$blk:U.ptr.prototype.WriteAt,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s};return $f;};U.prototype.WriteAt=function(h,i){return this.$val.WriteAt(h,i);};U.ptr.prototype.Seek=function(h,i){var{h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:j=new $Int64(0,0);k=$ifaceNil;l=this;m=l.checkValid("seek");if(!($interfaceIsEqual(m,$ifaceNil))){n=new $Int64(0,0);o=m;j=n;k=o;$s=-1;return[j,k];}q=l.seek(h,i);$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p[0];s=p[1];if($interfaceIsEqual(s,$ifaceNil)&&!(l.file.dirinfo===GA.nil)&&!((r.$high===0&&r.$low===0))){s=new A.Errno(21);}if(!($interfaceIsEqual(s,$ifaceNil))){t=new $Int64(0,0);u=l.wrapErr("seek",s);j=t;k=u;$s=-1;return[j,k];}v=r;w=$ifaceNil;j=v;k=w;$s=-1;return[j,k];}return;}var $f={$blk:U.ptr.prototype.Seek,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};U.prototype.Seek=function(h,i){return this.$val.Seek(h,i);};CR=function(h){var{h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:j=AO(h);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];l=i[1];if(!($interfaceIsEqual(l,$ifaceNil))){$s=-1;return l;}m=h;n=k.Mode();$s=2;case 2:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=(n|1048576)>>>0;p=DD(m,o);$s=3;case 3:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=4;case 4:return q;}return;}var $f={$blk:CR,$c:true,$r,h,i,j,k,l,m,n,o,p,q,$s};return $f;};CT=function(h){var{h,i,j,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=CV(h,0,0);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=2;case 2:return j;}return;}var $f={$blk:CT,$c:true,$r,h,i,j,$s};return $f;};$pkg.Open=CT;CV=function(h,i,j){var{h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{h,i,j});$s=$s||0;s:while(true){switch($s){case 0:$r=F.Open(h);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=BW(h,i,j);$s=2;case 2:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];if(!($interfaceIsEqual(n,$ifaceNil))){$s=-1;return[FQ.nil,n];}m.file.appendMode=!(((i&1024)===0));$s=-1;return[m,$ifaceNil];}return;}var $f={$blk:CV,$c:true,$r,h,i,j,k,l,m,n,$s};return $f;};$pkg.OpenFile=CV;CY=function(h,i){var h,i;if(h<0){h=0;}return[h,i];};U.ptr.prototype.wrapErr=function(h,i){var h,i,j;j=this;if($interfaceIsEqual(i,$ifaceNil)||$interfaceIsEqual(i,G.EOF)){return i;}if($interfaceIsEqual(i,K.ErrFileClosing)){i=$pkg.ErrClosed;}return new C.PathError.ptr(h,j.file.name,i);};U.prototype.wrapErr=function(h,i){return this.$val.wrapErr(h,i);};DD=function(h,i){var{h,i,j,k,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:j=CH(h,i);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=2;case 2:return k;}return;}var $f={$blk:DD,$c:true,$r,h,i,j,k,$s};return $f;};$pkg.Chmod=DD;U.ptr.prototype.Chmod=function(h){var{h,i,j,k,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;j=i.chmod(h);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=2;case 2:return k;}return;}var $f={$blk:U.ptr.prototype.Chmod,$c:true,$r,h,i,j,k,$s};return $f;};U.prototype.Chmod=function(h){return this.$val.Chmod(h);};U.ptr.prototype.SetDeadline=function(h){var{h,i,j,k,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;j=i.setDeadline($clone(h,B.Time));$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=2;case 2:return k;}return;}var $f={$blk:U.ptr.prototype.SetDeadline,$c:true,$r,h,i,j,k,$s};return $f;};U.prototype.SetDeadline=function(h){return this.$val.SetDeadline(h);};U.ptr.prototype.SetReadDeadline=function(h){var{h,i,j,k,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;j=i.setReadDeadline($clone(h,B.Time));$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=2;case 2:return k;}return;}var $f={$blk:U.ptr.prototype.SetReadDeadline,$c:true,$r,h,i,j,k,$s};return $f;};U.prototype.SetReadDeadline=function(h){return this.$val.SetReadDeadline(h);};U.ptr.prototype.SetWriteDeadline=function(h){var{h,i,j,k,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;j=i.setWriteDeadline($clone(h,B.Time));$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=2;case 2:return k;}return;}var $f={$blk:U.ptr.prototype.SetWriteDeadline,$c:true,$r,h,i,j,k,$s};return $f;};U.prototype.SetWriteDeadline=function(h){return this.$val.SetWriteDeadline(h);};U.ptr.prototype.SyscallConn=function(){var h,i,j;h=this;i=h.checkValid("SyscallConn");if(!($interfaceIsEqual(i,$ifaceNil))){return[$ifaceNil,i];}j=AS(h);return[j[0],j[1]];};U.prototype.SyscallConn=function(){return this.$val.SyscallConn();};DI=function(h){var{aa,ab,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{h});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);j=CT(h);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];l=i[1];if(!($interfaceIsEqual(l,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:m=[FN.nil,l];$s=4;case 4:return m;case 3:$deferred.push([$methodVal(k,"Close"),[]]);n=0;p=k.Stat();$s=5;case 5:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;q=o[0];r=o[1];if($interfaceIsEqual(r,$ifaceNil)){$s=6;continue;}$s=7;continue;case 6:s=q.Size();$s=8;case 8:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;if((u=(new $Int64(0,(((t.$low+((t.$high>>31)*4294967296))>>0)))),(u.$high===t.$high&&u.$low===t.$low))){n=(((t.$low+((t.$high>>31)*4294967296))>>0));}case 7:n=n+(1)>>0;if(n<512){n=512;}v=$makeSlice(FN,0,n);case 9:if(v.$length>=v.$capacity){w=$append($subslice(v,0,v.$capacity),0);v=$subslice(w,0,v.$length);}y=k.Read($subslice(v,v.$length,v.$capacity));$s=11;case 11:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}x=y;z=x[0];aa=x[1];v=$subslice(v,0,(v.$length+z>>0));if(!($interfaceIsEqual(aa,$ifaceNil))){$s=12;continue;}$s=13;continue;case 12:if($interfaceIsEqual(aa,G.EOF)){aa=$ifaceNil;}ab=[v,aa];$s=14;case 14:return ab;case 13:$s=9;continue;case 10:$s=-1;return[FN.nil,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[FN.nil,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:DI,$c:true,$r,aa,ab,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};$pkg.ReadFile=DI;DP.ptr.prototype.wait=function(){var{h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=[h];i=[i];j=GF.nil;k=$ifaceNil;l=this;if(l.Pid===-1){m=GF.nil;n=new A.Errno(22);j=m;k=n;$s=-1;return[j,k];}o=l.blockUntilWaitable();p=o[0];k=o[1];if(!($interfaceIsEqual(k,$ifaceNil))){q=GF.nil;r=k;j=q;k=r;$s=-1;return[j,k];}if(p){$s=1;continue;}$s=2;continue;case 1:l.setDone();$r=l.sigMu.Lock();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=l.sigMu.Unlock();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:i[0]=0;h[0]=new A.Rusage.ptr(new A.Timeval.ptr(new $Int64(0,0),new $Int64(0,0)),new A.Timeval.ptr(new $Int64(0,0),new $Int64(0,0)));s=0;t=$ifaceNil;while(true){u=A.Wait4(l.Pid,(i.$ptr||(i.$ptr=new GG(function(){return this.$target[0];},function($v){this.$target[0]=$v;},i))),0,h[0]);s=u[0];t=u[1];if(!($interfaceIsEqual(t,new A.Errno(4)))){break;}}if(!($interfaceIsEqual(t,$ifaceNil))){v=GF.nil;w=EF("wait",t);j=v;k=w;$s=-1;return[j,k];}if(!((s===0))){l.setDone();}j=new DO.ptr(s,i[0],h[0]);x=j;y=$ifaceNil;j=x;k=y;$s=-1;return[j,k];}return;}var $f={$blk:DP.ptr.prototype.wait,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s};return $f;};DP.prototype.wait=function(){return this.$val.wait();};DP.ptr.prototype.signal=function(h){var{h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$deferred,$r,$c}=$restore(this,{h});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);i=this;if(i.Pid===-1){$s=1;continue;}$s=2;continue;case 1:j=D.New("os: process already released");$s=3;case 3:return j;case 2:if(i.Pid===0){$s=4;continue;}$s=5;continue;case 4:k=D.New("os: process not initialized");$s=6;case 6:return k;case 5:$r=i.sigMu.RLock();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(i.sigMu,"RUnlock"),[]]);if(i.done()){$s=8;continue;}$s=9;continue;case 8:l=$pkg.ErrProcessDone;$s=10;case 10:return l;case 9:m=$assertType(h,A.Signal,true);n=m[0];o=m[1];if(!o){$s=11;continue;}$s=12;continue;case 11:p=D.New("os: unsupported signal type");$s=13;case 13:return p;case 12:q=A.Kill(i.Pid,n);if(!($interfaceIsEqual(q,$ifaceNil))){$s=14;continue;}$s=15;continue;case 14:if($interfaceIsEqual(q,new A.Errno(3))){$s=16;continue;}$s=17;continue;case 16:r=$pkg.ErrProcessDone;$s=18;case 18:return r;case 17:s=q;$s=19;case 19:return s;case 15:t=$ifaceNil;$s=20;case 20:return t;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:DP.ptr.prototype.signal,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$deferred};return $f;}}};DP.prototype.signal=function(h){return this.$val.signal(h);};DP.ptr.prototype.release=function(){var h;h=this;h.Pid=-1;H.SetFinalizer(h,$ifaceNil);return $ifaceNil;};DP.prototype.release=function(){return this.$val.release();};DO.ptr.prototype.userTime=function(){var h,i;h=this;return $mul64(((i=h.rusage.Utime.Nano(),new B.Duration(i.$high,i.$low))),new B.Duration(0,1));};DO.prototype.userTime=function(){return this.$val.userTime();};DO.ptr.prototype.systemTime=function(){var h,i;h=this;return $mul64(((i=h.rusage.Stime.Nano(),new B.Duration(i.$high,i.$low))),new B.Duration(0,1));};DO.prototype.systemTime=function(){return this.$val.systemTime();};DN=function(h,i,j){var{aa,ab,ac,ad,ae,af,ag,ah,ai,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{h,i,j});$s=$s||0;s:while(true){switch($s){case 0:k=GI.nil;l=$ifaceNil;if(!(j===GJ.nil)&&j.Sys===GK.nil&&!(j.Dir==="")){$s=1;continue;}$s=2;continue;case 1:n=AO(j.Dir);$s=3;case 3:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=m[1];if(!($interfaceIsEqual(o,$ifaceNil))){p=$assertType(o,FU);p.Op="chdir";q=GI.nil;r=p;k=q;l=r;$s=-1;return[k,l];}case 2:s=new A.ProcAttr.ptr(j.Dir,j.Env,GL.nil,j.Sys);if(s.Env===FK.nil){$s=4;continue;}$s=5;continue;case 4:u=N.Default(s.Sys);$s=6;case 6:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;s.Env=t[0];l=t[1];if(!($interfaceIsEqual(l,$ifaceNil))){v=GI.nil;w=l;k=v;l=w;$s=-1;return[k,l];}case 5:s.Files=$makeSlice(GL,0,j.Files.$length);x=j.Files;y=0;case 7:if(!(y=x.$length)?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+y]);aa=z.Fd();$s=9;case 9:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}s.Files=$append(s.Files,aa);y++;$s=7;continue;case 8:ab=A.StartProcess(h,i,s);ac=ab[0];ad=ab[1];ae=ab[2];H.KeepAlive(j);if(!($interfaceIsEqual(ae,$ifaceNil))){af=GI.nil;ag=new C.PathError.ptr("fork/exec",h,ae);k=af;l=ag;$s=-1;return[k,l];}ah=DQ(ac,ad);ai=$ifaceNil;k=ah;l=ai;$s=-1;return[k,l];}return;}var $f={$blk:DN,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};DP.ptr.prototype.kill=function(){var{h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=this;i=h.Signal($pkg.Kill);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=2;case 2:return j;}return;}var $f={$blk:DP.ptr.prototype.kill,$c:true,$r,h,i,j,$s};return $f;};DP.prototype.kill=function(){return this.$val.kill();};DO.ptr.prototype.Pid=function(){var h;h=this;return h.pid;};DO.prototype.Pid=function(){return this.$val.Pid();};DO.ptr.prototype.exited=function(){var h;h=this;return new A.WaitStatus(h.status).Exited();};DO.prototype.exited=function(){return this.$val.exited();};DO.ptr.prototype.success=function(){var h;h=this;return new A.WaitStatus(h.status).ExitStatus()===0;};DO.prototype.success=function(){return this.$val.success();};DO.ptr.prototype.sys=function(){var h;h=this;return new A.WaitStatus(h.status);};DO.prototype.sys=function(){return this.$val.sys();};DO.ptr.prototype.sysUsage=function(){var h;h=this;return h.rusage;};DO.prototype.sysUsage=function(){return this.$val.sysUsage();};DO.ptr.prototype.String=function(){var h,i,j,k;h=this;if(h===GF.nil){return"";}i=$assertType(h.Sys(),A.WaitStatus);j="";if(new A.WaitStatus(i).Exited()){k=new A.WaitStatus(i).ExitStatus();if(false&&((k>>>0))>=65536){j="exit status "+AI(((k>>>0)));}else{j="exit status "+E.Itoa(k);}}else if(new A.WaitStatus(i).Signaled()){j="signal: "+new A.Signal(new A.WaitStatus(i).Signal()).String();}else if(new A.WaitStatus(i).Stopped()){j="stop signal: "+new A.Signal(new A.WaitStatus(i).StopSignal()).String();if((new A.WaitStatus(i).StopSignal()===4)&&!((new A.WaitStatus(i).TrapCause()===0))){j=j+(" (trap "+E.Itoa(new A.WaitStatus(i).TrapCause())+")");}}else if(new A.WaitStatus(i).Continued()){j="continued";}if(new A.WaitStatus(i).CoreDump()){j=j+(" (core dumped)");}return j;};DO.prototype.String=function(){return this.$val.String();};DO.ptr.prototype.ExitCode=function(){var h;h=this;if(h===GF.nil){return-1;}return new A.WaitStatus(h.status).ExitStatus();};DO.prototype.ExitCode=function(){return this.$val.ExitCode();};DQ=function(h,i){var h,i,j;j=new DP.ptr(h,i,0,new J.RWMutex.ptr(new J.Mutex.ptr(0,0),0,0,0,0));H.SetFinalizer(j,new GM($methodExpr(GI,"Release")));return j;};DP.ptr.prototype.setDone=function(){var h;h=this;O.StoreUint32((h.$ptr_isdone||(h.$ptr_isdone=new GN(function(){return this.$target.isdone;},function($v){this.$target.isdone=$v;},h))),1);};DP.prototype.setDone=function(){return this.$val.setDone();};DP.ptr.prototype.done=function(){var h;h=this;return O.LoadUint32((h.$ptr_isdone||(h.$ptr_isdone=new GN(function(){return this.$target.isdone;},function($v){this.$target.isdone=$v;},h))))>0;};DP.prototype.done=function(){return this.$val.done();};DW=function(h,i,j){var{h,i,j,k,l,$s,$r,$c}=$restore(this,{h,i,j});$s=$s||0;s:while(true){switch($s){case 0:$r=F.Open(h);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=DN(h,i,j);$s=2;case 2:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=3;case 3:return l;}return;}var $f={$blk:DW,$c:true,$r,h,i,j,k,l,$s};return $f;};$pkg.StartProcess=DW;DP.ptr.prototype.Release=function(){var h;h=this;return h.release();};DP.prototype.Release=function(){return this.$val.Release();};DP.ptr.prototype.Kill=function(){var{h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=this;i=h.kill();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=2;case 2:return j;}return;}var $f={$blk:DP.ptr.prototype.Kill,$c:true,$r,h,i,j,$s};return $f;};DP.prototype.Kill=function(){return this.$val.Kill();};DP.ptr.prototype.Wait=function(){var{h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=this;i=h.wait();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=2;case 2:return j;}return;}var $f={$blk:DP.ptr.prototype.Wait,$c:true,$r,h,i,j,$s};return $f;};DP.prototype.Wait=function(){return this.$val.Wait();};DP.ptr.prototype.Signal=function(h){var{h,i,j,k,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;j=i.signal(h);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=2;case 2:return k;}return;}var $f={$blk:DP.ptr.prototype.Signal,$c:true,$r,h,i,j,k,$s};return $f;};DP.prototype.Signal=function(h){return this.$val.Signal(h);};DO.ptr.prototype.UserTime=function(){var h;h=this;return h.userTime();};DO.prototype.UserTime=function(){return this.$val.UserTime();};DO.ptr.prototype.SystemTime=function(){var h;h=this;return h.systemTime();};DO.prototype.SystemTime=function(){return this.$val.SystemTime();};DO.ptr.prototype.Exited=function(){var h;h=this;return h.exited();};DO.prototype.Exited=function(){return this.$val.Exited();};DO.ptr.prototype.Success=function(){var h;h=this;return h.success();};DO.prototype.Success=function(){return this.$val.Success();};DO.ptr.prototype.Sys=function(){var h;h=this;return h.sys();};DO.prototype.Sys=function(){return this.$val.Sys();};DO.ptr.prototype.SysUsage=function(){var h;h=this;return h.sysUsage();};DO.prototype.SysUsage=function(){return this.$val.SysUsage();};EA=function(){return K.ErrNoDeadline;};EB=function(){return K.ErrDeadlineExceeded;};EE.ptr.prototype.Error=function(){var{h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=this;i=h.Err.Error();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=h.Syscall+": "+i;$s=2;case 2:return j;}return;}var $f={$blk:EE.ptr.prototype.Error,$c:true,$r,h,i,j,$s};return $f;};EE.prototype.Error=function(){return this.$val.Error();};EE.ptr.prototype.Unwrap=function(){var h;h=this;return h.Err;};EE.prototype.Unwrap=function(){return this.$val.Unwrap();};EE.ptr.prototype.Timeout=function(){var{h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=this;i=$assertType(h.Err,EC,true);j=i[0];k=i[1];if(!(k)){l=false;$s=1;continue s;}m=j.Timeout();$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;case 1:n=l;$s=3;case 3:return n;}return;}var $f={$blk:EE.ptr.prototype.Timeout,$c:true,$r,h,i,j,k,l,m,n,$s};return $f;};EE.prototype.Timeout=function(){return this.$val.Timeout();};EF=function(h,i){var h,i;if($interfaceIsEqual(i,$ifaceNil)){return $ifaceNil;}return new EE.ptr(h,i);};$pkg.NewSyscallError=EF;EH=function(h){var h;return EK(h,$pkg.ErrNotExist);};$pkg.IsNotExist=EH;EK=function(h,i){var h,i,j,k,l;h=EL(h);if($interfaceIsEqual(h,i)){return true;}j=$assertType(h,A.Errno,true);k=j[0];l=j[1];return l&&new A.Errno(k).Is(i);};EL=function(h){var h,i,j,k,l;i=h;if($assertType(i,FU,true)[1]){j=i.$val;return j.Err;}else if($assertType(i,GO,true)[1]){k=i.$val;return k.Err;}else if($assertType(i,GP,true)[1]){l=i.$val;return l.Err;}return h;};ER=function(h){var{h,i,j,k,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:$r=F.Getenv(h);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=A.Getenv(h);$s=2;case 2:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];$s=-1;return k;}return;}var $f={$blk:ER,$c:true,$r,h,i,j,k,$s};return $f;};$pkg.Getenv=ER;EW=function(){var{h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=A.Environ();$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=2;case 2:return i;}return;}var $f={$blk:EW,$c:true,$r,h,i,$s};return $f;};$pkg.Environ=EW;EX=function(h){var h;return[new $Uint64(0,1),true];};EY=function(h){var h;return FD(h,0,2);};EZ=function(h){var h,i,j,k;i=EY(h);j=i[0];k=i[1];if(!k){return[new $Uint64(0,0),false];}return[new $Uint64(j.$high-0,j.$low-2),true];};FA=function(h){var h;return 4294967295;};FB.ptr.prototype.close=function(){var h;h=this;if(!(h.buf===FO.nil)){FC.Put(h.buf);h.buf=FO.nil;}};FB.prototype.close=function(){return this.$val.close();};U.ptr.prototype.readdir=function(h,i){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:j=FK.nil;k=GQ.nil;l=GR.nil;m=$ifaceNil;n=this;if(n.file.dirinfo===GA.nil){$s=1;continue;}$s=2;continue;case 1:n.file.dirinfo=new FB.ptr(FO.nil,0,0);o=FC.Get();$s=3;case 3:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n.file.dirinfo.buf=$assertType(o,FO);case 2:p=n.file.dirinfo;if(h===0){h=-1;}case 4:if(!(!((h===0)))){$s=5;continue;}if(p.bufp>=p.nbuf){$s=6;continue;}$s=7;continue;case 6:p.bufp=0;q=$ifaceNil;s=n.file.pfd.ReadDirent(p.buf.$get());$s=8;case 8:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;p.nbuf=r[0];q=r[1];H.KeepAlive(n);if(!($interfaceIsEqual(q,$ifaceNil))){t=j;u=k;v=l;w=new C.PathError.ptr("readdirent",n.file.name,q);j=t;k=u;l=v;m=w;$s=-1;return[j,k,l,m];}if(p.nbuf<=0){$s=5;continue;}case 7:x=$subslice((p.buf.$get()),p.bufp,p.nbuf);y=EY(x);z=y[0];aa=y[1];if(!aa||(ab=(new $Uint64(0,x.$length)),(z.$high>ab.$high||(z.$high===ab.$high&&z.$low>ab.$low)))){$s=5;continue;}ac=$subslice(x,0,$flatten64(z));p.bufp=p.bufp+(((z.$low>>0)))>>0;ad=EX(ac);ae=ad[0];aa=ad[1];if(!aa){$s=5;continue;}if((ae.$high===0&&ae.$low===0)){$s=4;continue;}af=EZ(ac);ag=af[0];aa=af[1];if(!aa||(ah=new $Uint64(0+ag.$high,2+ag.$low),ai=(new $Uint64(0,ac.$length)),(ah.$high>ai.$high||(ah.$high===ai.$high&&ah.$low>ai.$low)))){$s=5;continue;}aj=$subslice(ac,2,$flatten64(new $Uint64(0+ag.$high,2+ag.$low)));ak=aj;al=0;while(true){if(!(al=ak.$length)?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+al]);if(an===0){aj=$subslice(aj,0,am);break;}al++;}if(($bytesToString(aj))==="."||($bytesToString(aj))===".."){$s=4;continue;}if(h>0){h=h-(1)>>0;}if(i===0){$s=9;continue;}if(i===1){$s=10;continue;}$s=11;continue;case 9:j=$append(j,($bytesToString(aj)));$s=12;continue;case 10:ap=CE(n.file.name,($bytesToString(aj)),FA(ac));$s=13;case 13:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ao=ap;aq=ao[0];ar=ao[1];if(EH(ar)){$s=4;continue;}if(!($interfaceIsEqual(ar,$ifaceNil))){as=FK.nil;at=k;au=GR.nil;av=ar;j=as;k=at;l=au;m=av;$s=-1;return[j,k,l,m];}k=$append(k,aq);$s=12;continue;case 11:ax=CW(n.file.name+"/"+($bytesToString(aj)));$s=14;case 14:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}aw=ax;ay=aw[0];az=aw[1];if(EH(az)){$s=4;continue;}if(!($interfaceIsEqual(az,$ifaceNil))){ba=FK.nil;bb=GQ.nil;bc=l;bd=az;j=ba;k=bb;l=bc;m=bd;$s=-1;return[j,k,l,m];}l=$append(l,ay);case 12:$s=4;continue;case 5:if(h>0&&(((j.$length+k.$length>>0)+l.$length>>0)===0)){be=FK.nil;bf=GQ.nil;bg=GR.nil;bh=G.EOF;j=be;k=bf;l=bg;m=bh;$s=-1;return[j,k,l,m];}bi=j;bj=k;bk=l;bl=$ifaceNil;j=bi;k=bj;l=bk;m=bl;$s=-1;return[j,k,l,m];}return;}var $f={$blk:U.ptr.prototype.readdir,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};U.prototype.readdir=function(h,i){return this.$val.readdir(h,i);};FD=function(h,i,j){var h,i,j,k,l,m,n,o,p,q,r;k=new $Uint64(0,0);l=false;if(h.$length<(((i+j>>>0)>>0))){m=new $Uint64(0,0);n=false;k=m;l=n;return[k,l];}if(false){o=FE($subslice(h,i),j);p=true;k=o;l=p;return[k,l];}q=FF($subslice(h,i),j);r=true;k=q;l=r;return[k,l];};FE=function(h,i){var aa,ab,ac,ad,ae,af,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;j=i;if(j===(1)){return(new $Uint64(0,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0])));}else if(j===(2)){$unused((1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1]));return(k=(new $Uint64(0,(1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1]))),l=$shiftLeft64((new $Uint64(0,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]))),8),new $Uint64(k.$high|l.$high,(k.$low|l.$low)>>>0));}else if(j===(4)){$unused((3>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+3]));return(m=(n=(o=(new $Uint64(0,(3>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+3]))),p=$shiftLeft64((new $Uint64(0,(2>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+2]))),8),new $Uint64(o.$high|p.$high,(o.$low|p.$low)>>>0)),q=$shiftLeft64((new $Uint64(0,(1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1]))),16),new $Uint64(n.$high|q.$high,(n.$low|q.$low)>>>0)),r=$shiftLeft64((new $Uint64(0,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]))),24),new $Uint64(m.$high|r.$high,(m.$low|r.$low)>>>0));}else if(j===(8)){$unused((7>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+7]));return(s=(t=(u=(v=(w=(x=(y=(new $Uint64(0,(7>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+7]))),z=$shiftLeft64((new $Uint64(0,(6>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+6]))),8),new $Uint64(y.$high|z.$high,(y.$low|z.$low)>>>0)),aa=$shiftLeft64((new $Uint64(0,(5>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+5]))),16),new $Uint64(x.$high|aa.$high,(x.$low|aa.$low)>>>0)),ab=$shiftLeft64((new $Uint64(0,(4>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+4]))),24),new $Uint64(w.$high|ab.$high,(w.$low|ab.$low)>>>0)),ac=$shiftLeft64((new $Uint64(0,(3>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+3]))),32),new $Uint64(v.$high|ac.$high,(v.$low|ac.$low)>>>0)),ad=$shiftLeft64((new $Uint64(0,(2>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+2]))),40),new $Uint64(u.$high|ad.$high,(u.$low|ad.$low)>>>0)),ae=$shiftLeft64((new $Uint64(0,(1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1]))),48),new $Uint64(t.$high|ae.$high,(t.$low|ae.$low)>>>0)),af=$shiftLeft64((new $Uint64(0,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]))),56),new $Uint64(s.$high|af.$high,(s.$low|af.$low)>>>0));}else{$panic(new $String("syscall: readInt with unsupported size"));}};FF=function(h,i){var aa,ab,ac,ad,ae,af,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;j=i;if(j===(1)){return(new $Uint64(0,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0])));}else if(j===(2)){$unused((1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1]));return(k=(new $Uint64(0,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]))),l=$shiftLeft64((new $Uint64(0,(1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1]))),8),new $Uint64(k.$high|l.$high,(k.$low|l.$low)>>>0));}else if(j===(4)){$unused((3>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+3]));return(m=(n=(o=(new $Uint64(0,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]))),p=$shiftLeft64((new $Uint64(0,(1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1]))),8),new $Uint64(o.$high|p.$high,(o.$low|p.$low)>>>0)),q=$shiftLeft64((new $Uint64(0,(2>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+2]))),16),new $Uint64(n.$high|q.$high,(n.$low|q.$low)>>>0)),r=$shiftLeft64((new $Uint64(0,(3>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+3]))),24),new $Uint64(m.$high|r.$high,(m.$low|r.$low)>>>0));}else if(j===(8)){$unused((7>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+7]));return(s=(t=(u=(v=(w=(x=(y=(new $Uint64(0,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]))),z=$shiftLeft64((new $Uint64(0,(1>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+1]))),8),new $Uint64(y.$high|z.$high,(y.$low|z.$low)>>>0)),aa=$shiftLeft64((new $Uint64(0,(2>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+2]))),16),new $Uint64(x.$high|aa.$high,(x.$low|aa.$low)>>>0)),ab=$shiftLeft64((new $Uint64(0,(3>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+3]))),24),new $Uint64(w.$high|ab.$high,(w.$low|ab.$low)>>>0)),ac=$shiftLeft64((new $Uint64(0,(4>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+4]))),32),new $Uint64(v.$high|ac.$high,(v.$low|ac.$low)>>>0)),ad=$shiftLeft64((new $Uint64(0,(5>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+5]))),40),new $Uint64(u.$high|ad.$high,(u.$low|ad.$low)>>>0)),ae=$shiftLeft64((new $Uint64(0,(6>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+6]))),48),new $Uint64(t.$high|ae.$high,(t.$low|ae.$low)>>>0)),af=$shiftLeft64((new $Uint64(0,(7>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+7]))),56),new $Uint64(s.$high|af.$high,(s.$low|af.$low)>>>0));}else{$panic(new $String("syscall: readInt with unsupported size"));}};U.ptr.prototype.Readdir=function(h){var{h,i,j,k,l,m,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;if(i===FQ.nil){$s=-1;return[GR.nil,$pkg.ErrInvalid];}k=i.readdir(h,2);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[2];m=j[3];if(l===GR.nil){l=new GR([]);}$s=-1;return[l,m];}return;}var $f={$blk:U.ptr.prototype.Readdir,$c:true,$r,h,i,j,k,l,m,$s};return $f;};U.prototype.Readdir=function(h){return this.$val.Readdir(h);};U.ptr.prototype.Readdirnames=function(h){var{h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=FK.nil;j=$ifaceNil;k=this;if(k===FQ.nil){l=FK.nil;m=$pkg.ErrInvalid;i=l;j=m;$s=-1;return[i,j];}o=k.readdir(h,0);$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;i=n[0];j=n[3];if(i===FK.nil){i=new FK([]);}p=i;q=j;i=p;j=q;$s=-1;return[i,j];}return;}var $f={$blk:U.ptr.prototype.Readdirnames,$c:true,$r,h,i,j,k,l,m,n,o,p,q,$s};return $f;};U.prototype.Readdirnames=function(h){return this.$val.Readdirnames(h);};U.ptr.prototype.ReadDir=function(h){var{h,i,j,k,l,m,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:i=this;if(i===FQ.nil){$s=-1;return[GQ.nil,$pkg.ErrInvalid];}k=i.readdir(h,1);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[1];m=j[3];if(l===GQ.nil){l=new GQ([]);}$s=-1;return[l,m];}return;}var $f={$blk:U.ptr.prototype.ReadDir,$c:true,$r,h,i,j,k,l,m,$s};return $f;};U.prototype.ReadDir=function(h){return this.$val.ReadDir(h);};FP.methods=[{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Mode",name:"Mode",pkg:"",typ:$funcType([],[C.FileMode],false)},{prop:"ModTime",name:"ModTime",pkg:"",typ:$funcType([],[B.Time],false)},{prop:"Sys",name:"Sys",pkg:"",typ:$funcType([],[$emptyInterface],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"IsDir",name:"IsDir",pkg:"",typ:$funcType([],[$Bool],false)}];FQ.methods=[{prop:"Stat",name:"Stat",pkg:"",typ:$funcType([],[C.FileInfo,$error],false)},{prop:"readFrom",name:"readFrom",pkg:"os",typ:$funcType([G.Reader],[$Int64,$Bool,$error],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([$String],[$Int,$error],false)},{prop:"Fd",name:"Fd",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"seek",name:"seek",pkg:"os",typ:$funcType([$Int64,$Int],[$Int64,$error],false)},{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[$error],false)},{prop:"read",name:"read",pkg:"os",typ:$funcType([FN],[$Int,$error],false)},{prop:"pread",name:"pread",pkg:"os",typ:$funcType([FN,$Int64],[$Int,$error],false)},{prop:"write",name:"write",pkg:"os",typ:$funcType([FN],[$Int,$error],false)},{prop:"pwrite",name:"pwrite",pkg:"os",typ:$funcType([FN,$Int64],[$Int,$error],false)},{prop:"chmod",name:"chmod",pkg:"os",typ:$funcType([C.FileMode],[$error],false)},{prop:"Chown",name:"Chown",pkg:"",typ:$funcType([$Int,$Int],[$error],false)},{prop:"Truncate",name:"Truncate",pkg:"",typ:$funcType([$Int64],[$error],false)},{prop:"Sync",name:"Sync",pkg:"",typ:$funcType([],[$error],false)},{prop:"Chdir",name:"Chdir",pkg:"",typ:$funcType([],[$error],false)},{prop:"setDeadline",name:"setDeadline",pkg:"os",typ:$funcType([B.Time],[$error],false)},{prop:"setReadDeadline",name:"setReadDeadline",pkg:"os",typ:$funcType([B.Time],[$error],false)},{prop:"setWriteDeadline",name:"setWriteDeadline",pkg:"os",typ:$funcType([B.Time],[$error],false)},{prop:"checkValid",name:"checkValid",pkg:"os",typ:$funcType([$String],[$error],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"Read",name:"Read",pkg:"",typ:$funcType([FN],[$Int,$error],false)},{prop:"ReadAt",name:"ReadAt",pkg:"",typ:$funcType([FN,$Int64],[$Int,$error],false)},{prop:"ReadFrom",name:"ReadFrom",pkg:"",typ:$funcType([G.Reader],[$Int64,$error],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([FN],[$Int,$error],false)},{prop:"WriteAt",name:"WriteAt",pkg:"",typ:$funcType([FN,$Int64],[$Int,$error],false)},{prop:"Seek",name:"Seek",pkg:"",typ:$funcType([$Int64,$Int],[$Int64,$error],false)},{prop:"wrapErr",name:"wrapErr",pkg:"os",typ:$funcType([$String,$error],[$error],false)},{prop:"Chmod",name:"Chmod",pkg:"",typ:$funcType([C.FileMode],[$error],false)},{prop:"SetDeadline",name:"SetDeadline",pkg:"",typ:$funcType([B.Time],[$error],false)},{prop:"SetReadDeadline",name:"SetReadDeadline",pkg:"",typ:$funcType([B.Time],[$error],false)},{prop:"SetWriteDeadline",name:"SetWriteDeadline",pkg:"",typ:$funcType([B.Time],[$error],false)},{prop:"SyscallConn",name:"SyscallConn",pkg:"",typ:$funcType([],[A.RawConn,$error],false)},{prop:"readdir",name:"readdir",pkg:"os",typ:$funcType([$Int,FG],[FK,GQ,GR,$error],false)},{prop:"Readdir",name:"Readdir",pkg:"",typ:$funcType([$Int],[GR,$error],false)},{prop:"Readdirnames",name:"Readdirnames",pkg:"",typ:$funcType([$Int],[FK,$error],false)},{prop:"ReadDir",name:"ReadDir",pkg:"",typ:$funcType([$Int],[GQ,$error],false)}];GU.methods=[{prop:"Control",name:"Control",pkg:"",typ:$funcType([GS],[$error],false)},{prop:"Read",name:"Read",pkg:"",typ:$funcType([GT],[$error],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([GT],[$error],false)}];GB.methods=[{prop:"close",name:"close",pkg:"os",typ:$funcType([],[$error],false)}];GV.methods=[{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"IsDir",name:"IsDir",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[C.FileMode],false)},{prop:"Info",name:"Info",pkg:"",typ:$funcType([],[C.FileInfo,$error],false)}];GO.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Unwrap",name:"Unwrap",pkg:"",typ:$funcType([],[$error],false)}];GF.methods=[{prop:"userTime",name:"userTime",pkg:"os",typ:$funcType([],[B.Duration],false)},{prop:"systemTime",name:"systemTime",pkg:"os",typ:$funcType([],[B.Duration],false)},{prop:"Pid",name:"Pid",pkg:"",typ:$funcType([],[$Int],false)},{prop:"exited",name:"exited",pkg:"os",typ:$funcType([],[$Bool],false)},{prop:"success",name:"success",pkg:"os",typ:$funcType([],[$Bool],false)},{prop:"sys",name:"sys",pkg:"os",typ:$funcType([],[$emptyInterface],false)},{prop:"sysUsage",name:"sysUsage",pkg:"os",typ:$funcType([],[$emptyInterface],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"ExitCode",name:"ExitCode",pkg:"",typ:$funcType([],[$Int],false)},{prop:"UserTime",name:"UserTime",pkg:"",typ:$funcType([],[B.Duration],false)},{prop:"SystemTime",name:"SystemTime",pkg:"",typ:$funcType([],[B.Duration],false)},{prop:"Exited",name:"Exited",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Success",name:"Success",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Sys",name:"Sys",pkg:"",typ:$funcType([],[$emptyInterface],false)},{prop:"SysUsage",name:"SysUsage",pkg:"",typ:$funcType([],[$emptyInterface],false)}];GI.methods=[{prop:"blockUntilWaitable",name:"blockUntilWaitable",pkg:"os",typ:$funcType([],[$Bool,$error],false)},{prop:"wait",name:"wait",pkg:"os",typ:$funcType([],[GF,$error],false)},{prop:"signal",name:"signal",pkg:"os",typ:$funcType([DS],[$error],false)},{prop:"release",name:"release",pkg:"os",typ:$funcType([],[$error],false)},{prop:"kill",name:"kill",pkg:"os",typ:$funcType([],[$error],false)},{prop:"setDone",name:"setDone",pkg:"os",typ:$funcType([],[],false)},{prop:"done",name:"done",pkg:"os",typ:$funcType([],[$Bool],false)},{prop:"Release",name:"Release",pkg:"",typ:$funcType([],[$error],false)},{prop:"Kill",name:"Kill",pkg:"",typ:$funcType([],[$error],false)},{prop:"Wait",name:"Wait",pkg:"",typ:$funcType([],[GF,$error],false)},{prop:"Signal",name:"Signal",pkg:"",typ:$funcType([DS],[$error],false)}];GP.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Unwrap",name:"Unwrap",pkg:"",typ:$funcType([],[$error],false)},{prop:"Timeout",name:"Timeout",pkg:"",typ:$funcType([],[$Bool],false)}];GA.methods=[{prop:"close",name:"close",pkg:"os",typ:$funcType([],[],false)}];R.init("os",[{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"size",name:"size",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"mode",name:"mode",embedded:false,exported:false,typ:C.FileMode,tag:""},{prop:"modTime",name:"modTime",embedded:false,exported:false,typ:B.Time,tag:""},{prop:"sys",name:"sys",embedded:false,exported:false,typ:A.Stat_t,tag:""}]);U.init("os",[{prop:"file",name:"file",embedded:true,exported:false,typ:GB,tag:""}]);AR.init("os",[{prop:"file",name:"file",embedded:false,exported:false,typ:FQ,tag:""}]);BR.init("os",[{prop:"pfd",name:"pfd",embedded:false,exported:false,typ:K.FD,tag:""},{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"dirinfo",name:"dirinfo",embedded:false,exported:false,typ:GA,tag:""},{prop:"nonblock",name:"nonblock",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"stdoutOrErr",name:"stdoutOrErr",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"appendMode",name:"appendMode",embedded:false,exported:false,typ:$Bool,tag:""}]);CD.init("os",[{prop:"parent",name:"parent",embedded:false,exported:false,typ:$String,tag:""},{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:C.FileMode,tag:""},{prop:"info",name:"info",embedded:false,exported:false,typ:C.FileInfo,tag:""}]);CM.init("",[{prop:"Op",name:"Op",embedded:false,exported:true,typ:$String,tag:""},{prop:"Old",name:"Old",embedded:false,exported:true,typ:$String,tag:""},{prop:"New",name:"New",embedded:false,exported:true,typ:$String,tag:""},{prop:"Err",name:"Err",embedded:false,exported:true,typ:$error,tag:""}]);CO.init("",[{prop:"Writer",name:"Writer",embedded:true,exported:true,typ:G.Writer,tag:""}]);DO.init("os",[{prop:"pid",name:"pid",embedded:false,exported:false,typ:$Int,tag:""},{prop:"status",name:"status",embedded:false,exported:false,typ:A.WaitStatus,tag:""},{prop:"rusage",name:"rusage",embedded:false,exported:false,typ:GH,tag:""}]);DP.init("os",[{prop:"Pid",name:"Pid",embedded:false,exported:true,typ:$Int,tag:""},{prop:"handle",name:"handle",embedded:false,exported:false,typ:$Uintptr,tag:""},{prop:"isdone",name:"isdone",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"sigMu",name:"sigMu",embedded:false,exported:false,typ:J.RWMutex,tag:""}]);DR.init("",[{prop:"Dir",name:"Dir",embedded:false,exported:true,typ:$String,tag:""},{prop:"Env",name:"Env",embedded:false,exported:true,typ:FK,tag:""},{prop:"Files",name:"Files",embedded:false,exported:true,typ:GW,tag:""},{prop:"Sys",name:"Sys",embedded:false,exported:true,typ:GK,tag:""}]);DS.init([{prop:"Signal",name:"Signal",pkg:"",typ:$funcType([],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}]);EC.init([{prop:"Timeout",name:"Timeout",pkg:"",typ:$funcType([],[$Bool],false)}]);EE.init("",[{prop:"Syscall",name:"Syscall",embedded:false,exported:true,typ:$String,tag:""},{prop:"Err",name:"Err",embedded:false,exported:true,typ:$error,tag:""}]);FB.init("os",[{prop:"buf",name:"buf",embedded:false,exported:false,typ:FO,tag:""},{prop:"nbuf",name:"nbuf",embedded:false,exported:false,typ:$Int,tag:""},{prop:"bufp",name:"bufp",embedded:false,exported:false,typ:$Int,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=D.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=Q.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=O.$init();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.Args=FK.nil;BN=new FL.ptr(new J.Mutex.ptr(0,0),"");FI=false;AA=D.New("pattern contains path separator");CP=D.New("os: invalid use of WriteAt on file opened with O_APPEND");CW=AP;$pkg.Kill=new A.Signal(3);$pkg.ErrProcessDone=D.New("os: process already finished");$pkg.ErrInvalid=C.ErrInvalid;$pkg.ErrNotExist=C.ErrNotExist;$pkg.ErrClosed=C.ErrClosed;$pkg.ErrNoDeadline=EA();$pkg.ErrDeadlineExceeded=EB();FC=new J.Pool.ptr(FM.nil,(function(){var e,f;e=$makeSlice(FN,8192);return(f||(f=new FO(function(){return e;},function($v){e=$convertSliceType($v,FN);})));}));e=BS(0,"/dev/stdin");$s=18;case 18:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$pkg.Stdin=e;f=BS(1,"/dev/stdout");$s=19;case 19:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$pkg.Stdout=f;g=BS(2,"/dev/stderr");$s=20;case 20:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$pkg.Stderr=g;AT();BJ();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["fmt"]=(function(){var $pkg={},$init,A,I,B,C,D,E,F,G,H,J,V,W,X,AK,AL,AM,AN,AO,AP,BG,BH,BJ,BK,BL,BM,BN,BO,BP,BS,BT,CO,CP,CQ,CS,CT,Y,AC,AE,AF,AQ,Z,AA,AG,AR,AS,AT,AU,AV,AW,AY,AZ,BA,BB,BC,BD,BE,BF,BI;A=$packages["errors"];I=$packages["internal/fmtsort"];B=$packages["io"];C=$packages["math"];D=$packages["os"];E=$packages["reflect"];F=$packages["strconv"];G=$packages["sync"];H=$packages["unicode/utf8"];J=$pkg.ScanState=$newType(8,$kindInterface,"fmt.ScanState",true,"fmt",true,null);V=$pkg.scanError=$newType(0,$kindStruct,"fmt.scanError",true,"fmt",false,function(err_){this.$val=this;if(arguments.length===0){this.err=$ifaceNil;return;}this.err=err_;});W=$pkg.ss=$newType(0,$kindStruct,"fmt.ss",true,"fmt",false,function(rs_,buf_,count_,atEOF_,ssave_){this.$val=this;if(arguments.length===0){this.rs=$ifaceNil;this.buf=AO.nil;this.count=0;this.atEOF=false;this.ssave=new X.ptr(false,false,false,0,0,0);return;}this.rs=rs_;this.buf=buf_;this.count=count_;this.atEOF=atEOF_;this.ssave=ssave_;});X=$pkg.ssave=$newType(0,$kindStruct,"fmt.ssave",true,"fmt",false,function(validSave_,nlIsEnd_,nlIsSpace_,argLimit_,limit_,maxWid_){this.$val=this;if(arguments.length===0){this.validSave=false;this.nlIsEnd=false;this.nlIsSpace=false;this.argLimit=0;this.limit=0;this.maxWid=0;return;}this.validSave=validSave_;this.nlIsEnd=nlIsEnd_;this.nlIsSpace=nlIsSpace_;this.argLimit=argLimit_;this.limit=limit_;this.maxWid=maxWid_;});AK=$pkg.State=$newType(8,$kindInterface,"fmt.State",true,"fmt",true,null);AL=$pkg.Formatter=$newType(8,$kindInterface,"fmt.Formatter",true,"fmt",true,null);AM=$pkg.Stringer=$newType(8,$kindInterface,"fmt.Stringer",true,"fmt",true,null);AN=$pkg.GoStringer=$newType(8,$kindInterface,"fmt.GoStringer",true,"fmt",true,null);AO=$pkg.buffer=$newType(12,$kindSlice,"fmt.buffer",true,"fmt",false,null);AP=$pkg.pp=$newType(0,$kindStruct,"fmt.pp",true,"fmt",false,function(buf_,arg_,value_,fmt_,reordered_,goodArgNum_,panicking_,erroring_,wrapErrs_,wrappedErr_){this.$val=this;if(arguments.length===0){this.buf=AO.nil;this.arg=$ifaceNil;this.value=new E.Value.ptr(BN.nil,0,0);this.fmt=new BH.ptr(BO.nil,new BG.ptr(false,false,false,false,false,false,false,false,false),0,0,BP.zero());this.reordered=false;this.goodArgNum=false;this.panicking=false;this.erroring=false;this.wrapErrs=false;this.wrappedErr=$ifaceNil;return;}this.buf=buf_;this.arg=arg_;this.value=value_;this.fmt=fmt_;this.reordered=reordered_;this.goodArgNum=goodArgNum_;this.panicking=panicking_;this.erroring=erroring_;this.wrapErrs=wrapErrs_;this.wrappedErr=wrappedErr_;});BG=$pkg.fmtFlags=$newType(0,$kindStruct,"fmt.fmtFlags",true,"fmt",false,function(widPresent_,precPresent_,minus_,plus_,sharp_,space_,zero_,plusV_,sharpV_){this.$val=this;if(arguments.length===0){this.widPresent=false;this.precPresent=false;this.minus=false;this.plus=false;this.sharp=false;this.space=false;this.zero=false;this.plusV=false;this.sharpV=false;return;}this.widPresent=widPresent_;this.precPresent=precPresent_;this.minus=minus_;this.plus=plus_;this.sharp=sharp_;this.space=space_;this.zero=zero_;this.plusV=plusV_;this.sharpV=sharpV_;});BH=$pkg.fmt=$newType(0,$kindStruct,"fmt.fmt",true,"fmt",false,function(buf_,fmtFlags_,wid_,prec_,intbuf_){this.$val=this;if(arguments.length===0){this.buf=BO.nil;this.fmtFlags=new BG.ptr(false,false,false,false,false,false,false,false,false);this.wid=0;this.prec=0;this.intbuf=BP.zero();return;}this.buf=buf_;this.fmtFlags=fmtFlags_;this.wid=wid_;this.prec=prec_;this.intbuf=intbuf_;});BJ=$pkg.wrapError=$newType(0,$kindStruct,"fmt.wrapError",true,"fmt",false,function(msg_,err_){this.$val=this;if(arguments.length===0){this.msg="";this.err=$ifaceNil;return;}this.msg=msg_;this.err=err_;});BK=$arrayType($Uint16,2);BL=$sliceType(BK);BM=$sliceType($emptyInterface);BN=$ptrType(E.rtype);BO=$ptrType(AO);BP=$arrayType($Uint8,68);BS=$sliceType($Uint8);BT=$ptrType(W);CO=$ptrType(AP);CP=$arrayType($Uint8,6);CQ=$funcType([$Int32],[$Bool],false);CS=$ptrType(BH);CT=$ptrType(BJ);W.ptr.prototype.Read=function(a){var a,b,c,d,e,f;b=0;c=$ifaceNil;d=this;e=0;f=A.New("ScanState's Read should not be called. Use ReadRune");b=e;c=f;return[b,c];};W.prototype.Read=function(a){return this.$val.Read(a);};W.ptr.prototype.ReadRune=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=0;b=0;c=$ifaceNil;d=this;if(d.atEOF||d.count>=d.ssave.argLimit){c=B.EOF;$s=-1;return[a,b,c];}f=d.rs.ReadRune();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;a=e[0];b=e[1];c=e[2];if($interfaceIsEqual(c,$ifaceNil)){d.count=d.count+(1)>>0;if(d.ssave.nlIsEnd&&(a===10)){d.atEOF=true;}}else if($interfaceIsEqual(c,B.EOF)){d.atEOF=true;}$s=-1;return[a,b,c];}return;}var $f={$blk:W.ptr.prototype.ReadRune,$c:true,$r,a,b,c,d,e,f,$s};return $f;};W.prototype.ReadRune=function(){return this.$val.ReadRune();};W.ptr.prototype.Width=function(){var a,b,c,d,e,f,g;a=0;b=false;c=this;if(c.ssave.maxWid===1073741824){d=0;e=false;a=d;b=e;return[a,b];}f=c.ssave.maxWid;g=true;a=f;b=g;return[a,b];};W.prototype.Width=function(){return this.$val.Width();};W.ptr.prototype.getRune=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=0;b=this;d=b.ReadRune();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;a=c[0];e=c[2];if(!($interfaceIsEqual(e,$ifaceNil))){if($interfaceIsEqual(e,B.EOF)){a=-1;$s=-1;return a;}b.error(e);}$s=-1;return a;}return;}var $f={$blk:W.ptr.prototype.getRune,$c:true,$r,a,b,c,d,e,$s};return $f;};W.prototype.getRune=function(){return this.$val.getRune();};W.ptr.prototype.UnreadRune=function(){var{a,b,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.rs.UnreadRune();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}b;a.atEOF=false;a.count=a.count-(1)>>0;$s=-1;return $ifaceNil;}return;}var $f={$blk:W.ptr.prototype.UnreadRune,$c:true,$r,a,b,$s};return $f;};W.prototype.UnreadRune=function(){return this.$val.UnreadRune();};W.ptr.prototype.error=function(a){var a,b,c;b=this;$panic((c=new V.ptr(a),new c.constructor.elem(c)));};W.prototype.error=function(a){return this.$val.error(a);};W.ptr.prototype.errorString=function(a){var a,b,c;b=this;$panic((c=new V.ptr(A.New(a)),new c.constructor.elem(c)));};W.prototype.errorString=function(a){return this.$val.errorString(a);};W.ptr.prototype.Token=function(a,b){var{a,b,c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{a,b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];d=BS.nil;c[0]=$ifaceNil;e=this;$deferred.push([(function(c){return function(){var f,g,h,i;f=$recover();if(!($interfaceIsEqual(f,$ifaceNil))){g=$assertType(f,V,true);h=$clone(g[0],V);i=g[1];if(i){c[0]=h.err;}else{$panic(f);}}};})(c),[]]);if(b===$throwNilPointerError){b=AA;}e.buf=$subslice(e.buf,0,0);f=e.token(a,b);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}d=f;g=[d,c[0]];$s=2;case 2:return g;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[d,c[0]];}if($curGoroutine.asleep){var $f={$blk:W.ptr.prototype.Token,$c:true,$r,a,b,c,d,e,f,g,$s,$deferred};return $f;}}};W.prototype.Token=function(a,b){return this.$val.Token(a,b);};Z=function(a){var a,b,c,d,e;if(a>=65536){return false;}b=((a<<16>>>16));c=Y;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]),BK);if(b1024){return;}b.buf=$subslice(b.buf,0,0);b.rs=$ifaceNil;AC.Put(b);};W.prototype.free=function(a){return this.$val.free(a);};W.ptr.prototype.SkipSpace=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;case 1:b=a.getRune();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if(c===-1){$s=-1;return;}if(!(c===13)){d=false;$s=6;continue s;}e=a.peek("\n");$s=7;case 7:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;case 6:if(d){$s=4;continue;}$s=5;continue;case 4:$s=1;continue;case 5:if(c===10){if(a.ssave.nlIsSpace){$s=1;continue;}a.errorString("unexpected newline");$s=-1;return;}if(!Z(c)){$s=8;continue;}$s=9;continue;case 8:f=a.UnreadRune();$s=10;case 10:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;$s=2;continue;case 9:$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:W.ptr.prototype.SkipSpace,$c:true,$r,a,b,c,d,e,f,$s};return $f;};W.prototype.SkipSpace=function(){return this.$val.SkipSpace();};W.ptr.prototype.token=function(a,b){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(a){$s=1;continue;}$s=2;continue;case 1:$r=c.SkipSpace();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:case 4:d=c.getRune();$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===-1){$s=5;continue;}f=b(e);$s=9;case 9:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(!f){$s=7;continue;}$s=8;continue;case 7:g=c.UnreadRune();$s=10;case 10:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;$s=5;continue;case 8:(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeRune(e);$s=4;continue;case 5:$s=-1;return $convertSliceType(c.buf,BS);}return;}var $f={$blk:W.ptr.prototype.token,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};W.prototype.token=function(a,b){return this.$val.token(a,b);};AG=function(a,b){var a,b,c,d,e,f,g;c=a;d=0;while(true){if(!(d=0;}return;}var $f={$blk:W.ptr.prototype.peek,$c:true,$r,a,b,c,d,e,$s};return $f;};W.prototype.peek=function(a){return this.$val.peek(a);};$ptrType(AO).prototype.write=function(a){var a,b;b=this;b.$set($appendSlice(b.$get(),a));};$ptrType(AO).prototype.writeString=function(a){var a,b;b=this;b.$set($appendSlice(b.$get(),a));};$ptrType(AO).prototype.writeByte=function(a){var a,b;b=this;b.$set($append(b.$get(),a));};$ptrType(AO).prototype.writeRune=function(a){var a,b,c,d,e;b=this;if(a<128){b.$set($append(b.$get(),((a<<24>>>24))));return;}c=b.$get();d=c.$length;while(true){if(!((d+4>>0)>c.$capacity)){break;}c=$append(c,0);}e=H.EncodeRune($convertSliceType($subslice(c,d,(d+4>>0)),BS),a);b.$set($subslice(c,0,(d+e>>0)));};AR=function(){var{a,b,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=AQ.Get();$s=1;case 1:if($c){$c=false;a=a.$blk();}if(a&&a.$blk!==undefined){break s;}b=$assertType(a,CO);b.panicking=false;b.erroring=false;b.wrapErrs=false;b.fmt.init((b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))));$s=-1;return b;}return;}var $f={$blk:AR,$c:true,$r,a,b,$s};return $f;};AP.ptr.prototype.free=function(){var a;a=this;if(a.buf.$capacity>65536){return;}a.buf=$subslice(a.buf,0,0);a.arg=$ifaceNil;a.value=new E.Value.ptr(BN.nil,0,0);a.wrappedErr=$ifaceNil;AQ.Put(a);};AP.prototype.free=function(){return this.$val.free();};AP.ptr.prototype.Width=function(){var a,b,c,d,e;a=0;b=false;c=this;d=c.fmt.wid;e=c.fmt.fmtFlags.widPresent;a=d;b=e;return[a,b];};AP.prototype.Width=function(){return this.$val.Width();};AP.ptr.prototype.Precision=function(){var a,b,c,d,e;a=0;b=false;c=this;d=c.fmt.prec;e=c.fmt.fmtFlags.precPresent;a=d;b=e;return[a,b];};AP.prototype.Precision=function(){return this.$val.Precision();};AP.ptr.prototype.Flag=function(a){var a,b,c;b=this;c=a;if(c===(45)){return b.fmt.fmtFlags.minus;}else if(c===(43)){return b.fmt.fmtFlags.plus||b.fmt.fmtFlags.plusV;}else if(c===(35)){return b.fmt.fmtFlags.sharp||b.fmt.fmtFlags.sharpV;}else if(c===(32)){return b.fmt.fmtFlags.space;}else if(c===(48)){return b.fmt.fmtFlags.zero;}return false;};AP.prototype.Flag=function(a){return this.$val.Flag(a);};AP.ptr.prototype.Write=function(a){var a,b,c,d,e,f;b=0;c=$ifaceNil;d=this;(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).write(a);e=a.$length;f=$ifaceNil;b=e;c=f;return[b,c];};AP.prototype.Write=function(a){return this.$val.Write(a);};AP.ptr.prototype.WriteString=function(a){var a,b,c,d,e,f;b=0;c=$ifaceNil;d=this;(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString(a);e=a.length;f=$ifaceNil;b=e;c=f;return[b,c];};AP.prototype.WriteString=function(a){return this.$val.WriteString(a);};AS=function(a,b,c){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=0;e=$ifaceNil;f=AR();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$r=g.doPrintf(b,c);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=a.Write($convertSliceType(g.buf,BS));$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;d=h[0];e=h[1];g.free();$s=-1;return[d,e];}return;}var $f={$blk:AS,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};$pkg.Fprintf=AS;AT=function(a,b){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=0;d=$ifaceNil;f=AS(D.Stdout,a,b);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;c=e[0];d=e[1];g=[c,d];$s=2;case 2:return g;}return;}var $f={$blk:AT,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};$pkg.Printf=AT;AU=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=AR();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$r=d.doPrintf(a,b);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=($bytesToString(d.buf));d.free();$s=-1;return e;}return;}var $f={$blk:AU,$c:true,$r,a,b,c,d,e,$s};return $f;};$pkg.Sprintf=AU;AV=function(a,b){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=0;d=$ifaceNil;e=AR();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$r=f.doPrint(b);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=a.Write($convertSliceType(f.buf,BS));$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;c=g[0];d=g[1];f.free();$s=-1;return[c,d];}return;}var $f={$blk:AV,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};$pkg.Fprint=AV;AW=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=0;c=$ifaceNil;e=AV(D.Stdout,a);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;b=d[0];c=d[1];f=[b,c];$s=2;case 2:return f;}return;}var $f={$blk:AW,$c:true,$r,a,b,c,d,e,f,$s};return $f;};$pkg.Print=AW;AY=function(a,b){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=0;d=$ifaceNil;e=AR();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$r=f.doPrintln(b);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=a.Write($convertSliceType(f.buf,BS));$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;c=g[0];d=g[1];f.free();$s=-1;return[c,d];}return;}var $f={$blk:AY,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};$pkg.Fprintln=AY;AZ=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=0;c=$ifaceNil;e=AY(D.Stdout,a);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;b=d[0];c=d[1];f=[b,c];$s=2;case 2:return f;}return;}var $f={$blk:AZ,$c:true,$r,a,b,c,d,e,f,$s};return $f;};$pkg.Println=AZ;BA=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=AR();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$r=c.doPrintln(a);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=($bytesToString(c.buf));c.free();$s=-1;return d;}return;}var $f={$blk:BA,$c:true,$r,a,b,c,d,$s};return $f;};$pkg.Sprintln=BA;BB=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=$clone(a,E.Value).Field(b);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(($clone(d,E.Value).Kind()===20)&&!$clone(d,E.Value).IsNil()){$s=2;continue;}$s=3;continue;case 2:e=$clone(d,E.Value).Elem();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;case 3:$s=-1;return d;}return;}var $f={$blk:BB,$c:true,$r,a,b,c,d,e,$s};return $f;};BC=function(a){var a;return a>1000000||a<-1000000;};BD=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l;d=0;e=false;f=0;if(b>=c){g=0;h=false;i=c;d=g;e=h;f=i;return[d,e,f];}f=b;while(true){if(!(f>>24)>>0))>>0;e=true;f=f+(1)>>0;}return[d,e,f];};AP.ptr.prototype.unknownType=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(!$clone(a,E.Value).IsValid()){(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeString("");$s=-1;return;}(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeByte(63);c=$clone(a,E.Value).Type().String();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$r=(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeString(c);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeByte(63);$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.unknownType,$c:true,$r,a,b,c,$s};return $f;};AP.prototype.unknownType=function(a){return this.$val.unknownType(a);};AP.ptr.prototype.badVerb=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;b.erroring=true;(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeString("%!");(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeRune(a);(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeByte(40);if(!($interfaceIsEqual(b.arg,$ifaceNil))){$s=2;continue;}if($clone(b.value,E.Value).IsValid()){$s=3;continue;}$s=4;continue;case 2:c=E.TypeOf(b.arg).String();$s=6;case 6:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$r=(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeString(c);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeByte(61);$r=b.printArg(b.arg,118);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 3:d=$clone(b.value,E.Value).Type().String();$s=9;case 9:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$r=(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeString(d);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeByte(61);$r=b.printValue($clone(b.value,E.Value),118,0);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 4:(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeString("");case 5:case 1:(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeByte(41);b.erroring=false;$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.badVerb,$c:true,$r,a,b,c,d,$s};return $f;};AP.prototype.badVerb=function(a){return this.$val.badVerb(a);};AP.ptr.prototype.fmtBool=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b;if((d===(116))||(d===(118))){$s=2;continue;}$s=3;continue;case 2:c.fmt.fmtBoolean(a);$s=4;continue;case 3:$r=c.badVerb(b);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:case 1:$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.fmtBool,$c:true,$r,a,b,c,d,$s};return $f;};AP.prototype.fmtBool=function(a,b){return this.$val.fmtBool(a,b);};AP.ptr.prototype.fmt0x64=function(a,b){var a,b,c,d;c=this;d=c.fmt.fmtFlags.sharp;c.fmt.fmtFlags.sharp=b;c.fmt.fmtInteger(a,16,false,118,"0123456789abcdefx");c.fmt.fmtFlags.sharp=d;};AP.prototype.fmt0x64=function(a,b){return this.$val.fmt0x64(a,b);};AP.ptr.prototype.fmtInteger=function(a,b,c){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=c;if(e===(118)){$s=2;continue;}if(e===(100)){$s=3;continue;}if(e===(98)){$s=4;continue;}if((e===(111))||(e===(79))){$s=5;continue;}if(e===(120)){$s=6;continue;}if(e===(88)){$s=7;continue;}if(e===(99)){$s=8;continue;}if(e===(113)){$s=9;continue;}if(e===(85)){$s=10;continue;}$s=11;continue;case 2:if(d.fmt.fmtFlags.sharpV&&!b){d.fmt0x64(a,true);}else{d.fmt.fmtInteger(a,10,b,c,"0123456789abcdefx");}$s=12;continue;case 3:d.fmt.fmtInteger(a,10,b,c,"0123456789abcdefx");$s=12;continue;case 4:d.fmt.fmtInteger(a,2,b,c,"0123456789abcdefx");$s=12;continue;case 5:d.fmt.fmtInteger(a,8,b,c,"0123456789abcdefx");$s=12;continue;case 6:d.fmt.fmtInteger(a,16,b,c,"0123456789abcdefx");$s=12;continue;case 7:d.fmt.fmtInteger(a,16,b,c,"0123456789ABCDEFX");$s=12;continue;case 8:d.fmt.fmtC(a);$s=12;continue;case 9:d.fmt.fmtQc(a);$s=12;continue;case 10:d.fmt.fmtUnicode(a);$s=12;continue;case 11:$r=d.badVerb(c);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:case 1:$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.fmtInteger,$c:true,$r,a,b,c,d,e,$s};return $f;};AP.prototype.fmtInteger=function(a,b,c){return this.$val.fmtInteger(a,b,c);};AP.ptr.prototype.fmtFloat=function(a,b,c){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=c;if(e===(118)){$s=2;continue;}if((e===(98))||(e===(103))||(e===(71))||(e===(120))||(e===(88))){$s=3;continue;}if((e===(102))||(e===(101))||(e===(69))){$s=4;continue;}if(e===(70)){$s=5;continue;}$s=6;continue;case 2:d.fmt.fmtFloat(a,b,103,-1);$s=7;continue;case 3:d.fmt.fmtFloat(a,b,c,-1);$s=7;continue;case 4:d.fmt.fmtFloat(a,b,c,6);$s=7;continue;case 5:d.fmt.fmtFloat(a,b,102,6);$s=7;continue;case 6:$r=d.badVerb(c);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:case 1:$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.fmtFloat,$c:true,$r,a,b,c,d,e,$s};return $f;};AP.prototype.fmtFloat=function(a,b,c){return this.$val.fmtFloat(a,b,c);};AP.ptr.prototype.fmtComplex=function(a,b,c){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=c;if((e===(118))||(e===(98))||(e===(103))||(e===(71))||(e===(120))||(e===(88))||(e===(102))||(e===(70))||(e===(101))||(e===(69))){$s=2;continue;}$s=3;continue;case 2:f=d.fmt.fmtFlags.plus;(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(40);$r=d.fmtFloat(a.$real,(g=b/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero")),c);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d.fmt.fmtFlags.plus=true;$r=d.fmtFloat(a.$imag,(h=b/2,(h===h&&h!==1/0&&h!==-1/0)?h>>0:$throwRuntimeError("integer divide by zero")),c);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString("i)");d.fmt.fmtFlags.plus=f;$s=4;continue;case 3:$r=d.badVerb(c);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:case 1:$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.fmtComplex,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};AP.prototype.fmtComplex=function(a,b,c){return this.$val.fmtComplex(a,b,c);};AP.ptr.prototype.fmtString=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b;if(d===(118)){$s=2;continue;}if(d===(115)){$s=3;continue;}if(d===(120)){$s=4;continue;}if(d===(88)){$s=5;continue;}if(d===(113)){$s=6;continue;}$s=7;continue;case 2:if(c.fmt.fmtFlags.sharpV){c.fmt.fmtQ(a);}else{c.fmt.fmtS(a);}$s=8;continue;case 3:c.fmt.fmtS(a);$s=8;continue;case 4:c.fmt.fmtSx(a,"0123456789abcdefx");$s=8;continue;case 5:c.fmt.fmtSx(a,"0123456789ABCDEFX");$s=8;continue;case 6:c.fmt.fmtQ(a);$s=8;continue;case 7:$r=c.badVerb(b);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:case 1:$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.fmtString,$c:true,$r,a,b,c,d,$s};return $f;};AP.prototype.fmtString=function(a,b){return this.$val.fmtString(a,b);};AP.ptr.prototype.fmtBytes=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=b;if((e===(118))||(e===(100))){$s=2;continue;}if(e===(115)){$s=3;continue;}if(e===(120)){$s=4;continue;}if(e===(88)){$s=5;continue;}if(e===(113)){$s=6;continue;}$s=7;continue;case 2:if(d.fmt.fmtFlags.sharpV){(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString(c);if(a===BS.nil){(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString("(nil)");$s=-1;return;}(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(123);f=a;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(h>0){(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString(", ");}d.fmt0x64((new $Uint64(0,i)),true);g++;}(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(125);}else{(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(91);j=a;k=0;while(true){if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);if(l>0){(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(32);}d.fmt.fmtInteger((new $Uint64(0,m)),10,false,b,"0123456789abcdefx");k++;}(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(93);}$s=8;continue;case 3:d.fmt.fmtBs(a);$s=8;continue;case 4:d.fmt.fmtBx(a,"0123456789abcdefx");$s=8;continue;case 5:d.fmt.fmtBx(a,"0123456789ABCDEFX");$s=8;continue;case 6:d.fmt.fmtQ(($bytesToString(a)));$s=8;continue;case 7:n=E.ValueOf(a);$s=9;case 9:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$r=d.printValue($clone(n,E.Value),b,0);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:case 1:$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.fmtBytes,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};AP.prototype.fmtBytes=function(a,b,c){return this.$val.fmtBytes(a,b,c);};AP.ptr.prototype.fmtPointer=function(a,b){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=0;e=$clone(a,E.Value).Kind();if((e===(18))||(e===(19))||(e===(21))||(e===(22))||(e===(23))||(e===(26))){$s=2;continue;}$s=3;continue;case 2:d=$clone(a,E.Value).Pointer();$s=4;continue;case 3:$r=c.badVerb(b);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 4:case 1:f=b;if(f===(118)){$s=7;continue;}if(f===(112)){$s=8;continue;}if((f===(98))||(f===(111))||(f===(100))||(f===(120))||(f===(88))){$s=9;continue;}$s=10;continue;case 7:if(c.fmt.fmtFlags.sharpV){$s=12;continue;}$s=13;continue;case 12:(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeByte(40);g=$clone(a,E.Value).Type().String();$s=15;case 15:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$r=(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeString(g);$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeString(")(");if(d===0){(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeString("nil");}else{c.fmt0x64((new $Uint64(0,d.constructor===Number?d:1)),true);}(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeByte(41);$s=14;continue;case 13:if(d===0){c.fmt.padString("");}else{c.fmt0x64((new $Uint64(0,d.constructor===Number?d:1)),!c.fmt.fmtFlags.sharp);}case 14:$s=11;continue;case 8:c.fmt0x64((new $Uint64(0,d.constructor===Number?d:1)),!c.fmt.fmtFlags.sharp);$s=11;continue;case 9:$r=c.fmtInteger((new $Uint64(0,d.constructor===Number?d:1)),false,b);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 10:$r=c.badVerb(b);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:case 6:$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.fmtPointer,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};AP.prototype.fmtPointer=function(a,b){return this.$val.fmtPointer(a,b);};AP.ptr.prototype.catchPanic=function(a,b,c){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=$recover();if(!($interfaceIsEqual(e,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:f=E.ValueOf(a);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(($clone(g,E.Value).Kind()===22)&&$clone(g,E.Value).IsNil()){(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString("");$s=-1;return;}if(d.panicking){$panic(e);}h=$clone(d.fmt.fmtFlags,BG);d.fmt.clearflags();(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString("%!");(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeRune(b);(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString("(PANIC=");(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString(c);(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString(" method: ");d.panicking=true;$r=d.printArg(e,118);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d.panicking=false;(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(41);BG.copy(d.fmt.fmtFlags,h);case 2:$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.catchPanic,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};AP.prototype.catchPanic=function(a,b,c){return this.$val.catchPanic(a,b,c);};AP.ptr.prototype.handleMethods=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=false;c=this;if(c.erroring){$s=1;continue;}$s=2;continue;case 1:d=b;$s=3;case 3:return d;case 2:if(a===119){$s=4;continue;}$s=5;continue;case 4:e=$assertType(c.arg,$error,true);f=e[0];g=e[1];if(!g||!c.wrapErrs||!($interfaceIsEqual(c.wrappedErr,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:c.wrappedErr=$ifaceNil;c.wrapErrs=false;$r=c.badVerb(a);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=true;h=b;$s=9;case 9:return h;case 7:c.wrappedErr=f;a=118;case 5:i=$assertType(c.arg,AL,true);j=i[0];k=i[1];if(k){$s=10;continue;}$s=11;continue;case 10:b=true;$deferred.push([$methodVal(c,"catchPanic"),[c.arg,a,"Format"]]);$r=j.Format(c,a);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=b;$s=13;case 13:return l;case 11:if(c.fmt.fmtFlags.sharpV){$s=14;continue;}$s=15;continue;case 14:m=$assertType(c.arg,AN,true);n=m[0];o=m[1];if(o){$s=17;continue;}$s=18;continue;case 17:b=true;$deferred.push([$methodVal(c,"catchPanic"),[c.arg,a,"GoString"]]);p=n.GoString();$s=19;case 19:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}$r=c.fmt.fmtS(p);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}q=b;$s=21;case 21:return q;case 18:$s=16;continue;case 15:r=a;if((r===(118))||(r===(115))||(r===(120))||(r===(88))||(r===(113))){$s=23;continue;}$s=24;continue;case 23:s=c.arg;if($assertType(s,$error,true)[1]){$s=25;continue;}if($assertType(s,AM,true)[1]){$s=26;continue;}$s=27;continue;case 25:t=s;b=true;$deferred.push([$methodVal(c,"catchPanic"),[c.arg,a,"Error"]]);v=t.Error();$s=28;case 28:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}$r=c.fmtString(v,a);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}w=b;$s=30;case 30:return w;case 26:u=s;b=true;$deferred.push([$methodVal(c,"catchPanic"),[c.arg,a,"String"]]);x=u.String();$s=31;case 31:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}$r=c.fmtString(x,a);$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}y=b;$s=33;case 33:return y;case 27:case 24:case 22:case 16:b=false;z=b;$s=34;case 34:return z;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return b;}if($curGoroutine.asleep){var $f={$blk:AP.ptr.prototype.handleMethods,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};AP.prototype.handleMethods=function(a){return this.$val.handleMethods(a);};AP.ptr.prototype.printArg=function(a,b){var{a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;c.arg=a;c.value=new E.Value.ptr(BN.nil,0,0);if($interfaceIsEqual(a,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:d=b;if((d===(84))||(d===(118))){$s=4;continue;}$s=5;continue;case 4:c.fmt.padString("");$s=6;continue;case 5:$r=c.badVerb(b);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:case 3:$s=-1;return;case 2:e=b;if(e===(84)){$s=9;continue;}if(e===(112)){$s=10;continue;}$s=11;continue;case 9:f=E.TypeOf(a).String();$s=12;case 12:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$r=c.fmt.fmtS(f);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 10:g=E.ValueOf(a);$s=14;case 14:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$r=c.fmtPointer($clone(g,E.Value),112);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 11:case 8:h=a;if($assertType(h,$Bool,true)[1]){$s=16;continue;}if($assertType(h,$Float32,true)[1]){$s=17;continue;}if($assertType(h,$Float64,true)[1]){$s=18;continue;}if($assertType(h,$Complex64,true)[1]){$s=19;continue;}if($assertType(h,$Complex128,true)[1]){$s=20;continue;}if($assertType(h,$Int,true)[1]){$s=21;continue;}if($assertType(h,$Int8,true)[1]){$s=22;continue;}if($assertType(h,$Int16,true)[1]){$s=23;continue;}if($assertType(h,$Int32,true)[1]){$s=24;continue;}if($assertType(h,$Int64,true)[1]){$s=25;continue;}if($assertType(h,$Uint,true)[1]){$s=26;continue;}if($assertType(h,$Uint8,true)[1]){$s=27;continue;}if($assertType(h,$Uint16,true)[1]){$s=28;continue;}if($assertType(h,$Uint32,true)[1]){$s=29;continue;}if($assertType(h,$Uint64,true)[1]){$s=30;continue;}if($assertType(h,$Uintptr,true)[1]){$s=31;continue;}if($assertType(h,$String,true)[1]){$s=32;continue;}if($assertType(h,BS,true)[1]){$s=33;continue;}if($assertType(h,E.Value,true)[1]){$s=34;continue;}$s=35;continue;case 16:i=h.$val;$r=c.fmtBool(i,b);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 17:j=h.$val;$r=c.fmtFloat((j),32,b);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 18:k=h.$val;$r=c.fmtFloat(k,64,b);$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 19:l=h.$val;$r=c.fmtComplex((new $Complex128(l.$real,l.$imag)),64,b);$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 20:m=h.$val;$r=c.fmtComplex(m,128,b);$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 21:n=h.$val;$r=c.fmtInteger((new $Uint64(0,n)),true,b);$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 22:o=h.$val;$r=c.fmtInteger((new $Uint64(0,o)),true,b);$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 23:p=h.$val;$r=c.fmtInteger((new $Uint64(0,p)),true,b);$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 24:q=h.$val;$r=c.fmtInteger((new $Uint64(0,q)),true,b);$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 25:r=h.$val;$r=c.fmtInteger((new $Uint64(r.$high,r.$low)),true,b);$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 26:s=h.$val;$r=c.fmtInteger((new $Uint64(0,s)),false,b);$s=47;case 47:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 27:t=h.$val;$r=c.fmtInteger((new $Uint64(0,t)),false,b);$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 28:u=h.$val;$r=c.fmtInteger((new $Uint64(0,u)),false,b);$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 29:v=h.$val;$r=c.fmtInteger((new $Uint64(0,v)),false,b);$s=50;case 50:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 30:w=h.$val;$r=c.fmtInteger(w,false,b);$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 31:x=h.$val;$r=c.fmtInteger((new $Uint64(0,x.constructor===Number?x:1)),false,b);$s=52;case 52:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 32:y=h.$val;$r=c.fmtString(y,b);$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 33:z=h.$val;$r=c.fmtBytes(z,b,"[]byte");$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 34:aa=h.$val;if($clone(aa,E.Value).IsValid()&&$clone(aa,E.Value).CanInterface()){$s=55;continue;}$s=56;continue;case 55:ac=$clone(aa,E.Value).Interface();$s=57;case 57:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}c.arg=ac;ad=c.handleMethods(b);$s=60;case 60:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}if(ad){$s=58;continue;}$s=59;continue;case 58:$s=-1;return;case 59:case 56:$r=c.printValue($clone(aa,E.Value),b,0);$s=61;case 61:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 35:ab=h;ae=c.handleMethods(b);$s=64;case 64:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}if(!ae){$s=62;continue;}$s=63;continue;case 62:af=E.ValueOf(ab);$s=65;case 65:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}$r=c.printValue($clone(af,E.Value),b,0);$s=66;case 66:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 63:case 36:$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.printArg,$c:true,$r,a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AP.prototype.printArg=function(a,b){return this.$val.printArg(a,b);};AP.ptr.prototype.printValue=function(a,b,c){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(c>0&&$clone(a,E.Value).IsValid()&&$clone(a,E.Value).CanInterface()){$s=1;continue;}$s=2;continue;case 1:e=$clone(a,E.Value).Interface();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d.arg=e;f=d.handleMethods(b);$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f){$s=4;continue;}$s=5;continue;case 4:$s=-1;return;case 5:case 2:d.arg=$ifaceNil;d.value=a;g=a;h=$clone(a,E.Value).Kind();if(h===(0)){$s=8;continue;}if(h===(1)){$s=9;continue;}if((h===(2))||(h===(3))||(h===(4))||(h===(5))||(h===(6))){$s=10;continue;}if((h===(7))||(h===(8))||(h===(9))||(h===(10))||(h===(11))||(h===(12))){$s=11;continue;}if(h===(13)){$s=12;continue;}if(h===(14)){$s=13;continue;}if(h===(15)){$s=14;continue;}if(h===(16)){$s=15;continue;}if(h===(24)){$s=16;continue;}if(h===(21)){$s=17;continue;}if(h===(25)){$s=18;continue;}if(h===(20)){$s=19;continue;}if((h===(17))||(h===(23))){$s=20;continue;}if(h===(22)){$s=21;continue;}if((h===(18))||(h===(19))||(h===(26))){$s=22;continue;}$s=23;continue;case 8:if(c===0){$s=25;continue;}$s=26;continue;case 25:(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString("");$s=27;continue;case 26:i=b;if(i===(118)){$s=29;continue;}$s=30;continue;case 29:(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString("");$s=31;continue;case 30:$r=d.badVerb(b);$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 31:case 28:case 27:$s=24;continue;case 9:$r=d.fmtBool($clone(g,E.Value).Bool(),b);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 10:$r=d.fmtInteger(((j=$clone(g,E.Value).Int(),new $Uint64(j.$high,j.$low))),true,b);$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 11:$r=d.fmtInteger($clone(g,E.Value).Uint(),false,b);$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 12:$r=d.fmtFloat($clone(g,E.Value).Float(),32,b);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 13:$r=d.fmtFloat($clone(g,E.Value).Float(),64,b);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 14:$r=d.fmtComplex($clone(g,E.Value).Complex(),64,b);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 15:$r=d.fmtComplex($clone(g,E.Value).Complex(),128,b);$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 16:k=$clone(g,E.Value).String();$s=40;case 40:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}$r=d.fmtString(k,b);$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 17:if(d.fmt.fmtFlags.sharpV){$s=42;continue;}$s=43;continue;case 42:l=$clone(g,E.Value).Type().String();$s=45;case 45:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}$r=(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString(l);$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if($clone(g,E.Value).IsNil()){(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString("(nil)");$s=-1;return;}(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(123);$s=44;continue;case 43:(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString("map[");case 44:m=I.Sort($clone(g,E.Value));$s=47;case 47:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=n.Key;p=0;case 48:if(!(p=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]);if(q>0){if(d.fmt.fmtFlags.sharpV){(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString(", ");}else{(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(32);}}$r=d.printValue($clone(r,E.Value),b,c+1>>0);$s=50;case 50:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(58);$r=d.printValue($clone((s=n.Value,((q<0||q>=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+q])),E.Value),b,c+1>>0);$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p++;$s=48;continue;case 49:if(d.fmt.fmtFlags.sharpV){(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(125);}else{(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(93);}$s=24;continue;case 18:if(d.fmt.fmtFlags.sharpV){$s=52;continue;}$s=53;continue;case 52:t=$clone(g,E.Value).Type().String();$s=54;case 54:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}$r=(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString(t);$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 53:(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(123);u=0;case 56:if(!(u<$clone(g,E.Value).NumField())){$s=57;continue;}if(u>0){if(d.fmt.fmtFlags.sharpV){(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString(", ");}else{(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(32);}}if(d.fmt.fmtFlags.plusV||d.fmt.fmtFlags.sharpV){$s=58;continue;}$s=59;continue;case 58:v=$clone(g,E.Value).Type().Field(u);$s=60;case 60:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v.Name;if(!(w==="")){(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString(w);(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(58);}case 59:x=BB($clone(g,E.Value),u);$s=61;case 61:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}$r=d.printValue($clone(x,E.Value),b,c+1>>0);$s=62;case 62:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}u=u+(1)>>0;$s=56;continue;case 57:(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(125);$s=24;continue;case 19:y=$clone(g,E.Value).Elem();$s=63;case 63:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;if(!$clone(z,E.Value).IsValid()){$s=64;continue;}$s=65;continue;case 64:if(d.fmt.fmtFlags.sharpV){$s=67;continue;}$s=68;continue;case 67:aa=$clone(g,E.Value).Type().String();$s=70;case 70:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}$r=(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString(aa);$s=71;case 71:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString("(nil)");$s=69;continue;case 68:(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString("");case 69:$s=66;continue;case 65:$r=d.printValue($clone(z,E.Value),b,c+1>>0);$s=72;case 72:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 66:$s=24;continue;case 20:ab=b;if((ab===(115))||(ab===(113))||(ab===(120))||(ab===(88))){$s=74;continue;}$s=75;continue;case 74:ac=$clone(g,E.Value).Type();ad=ac.Elem();$s=78;case 78:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad.Kind();$s=79;case 79:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}if(ae===8){$s=76;continue;}$s=77;continue;case 76:af=BS.nil;if($clone(g,E.Value).Kind()===23){$s=80;continue;}if($clone(g,E.Value).CanAddr()){$s=81;continue;}$s=82;continue;case 80:ag=$clone(g,E.Value).Bytes();$s=84;case 84:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;$s=83;continue;case 81:ah=$clone(g,E.Value).Slice(0,$clone(g,E.Value).Len());$s=85;case 85:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=$clone(ah,E.Value).Bytes();$s=86;case 86:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}af=ai;$s=83;continue;case 82:af=$makeSlice(BS,$clone(g,E.Value).Len());aj=af;ak=0;case 87:if(!(ak=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+al]=((an.$low<<24>>>24)));ak++;$s=87;continue;case 88:case 83:ao=af;ap=b;aq=ac.String();$s=91;case 91:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;$r=d.fmtBytes(ao,ap,ar);$s=92;case 92:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 77:case 75:case 73:if(d.fmt.fmtFlags.sharpV){$s=93;continue;}$s=94;continue;case 93:as=$clone(g,E.Value).Type().String();$s=96;case 96:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}$r=(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString(as);$s=97;case 97:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(($clone(g,E.Value).Kind()===23)&&$clone(g,E.Value).IsNil()){(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString("(nil)");$s=-1;return;}(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(123);at=0;case 98:if(!(at<$clone(g,E.Value).Len())){$s=99;continue;}if(at>0){(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeString(", ");}au=$clone(g,E.Value).Index(at);$s=100;case 100:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}$r=d.printValue($clone(au,E.Value),b,c+1>>0);$s=101;case 101:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}at=at+(1)>>0;$s=98;continue;case 99:(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(125);$s=95;continue;case 94:(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(91);av=0;case 102:if(!(av<$clone(g,E.Value).Len())){$s=103;continue;}if(av>0){(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(32);}aw=$clone(g,E.Value).Index(av);$s=104;case 104:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}$r=d.printValue($clone(aw,E.Value),b,c+1>>0);$s=105;case 105:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}av=av+(1)>>0;$s=102;continue;case 103:(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(93);case 95:$s=24;continue;case 21:if((c===0)&&!(($clone(g,E.Value).Pointer()===0))){$s=106;continue;}$s=107;continue;case 106:ax=$clone(g,E.Value).Elem();$s=109;case 109:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;az=$clone(ay,E.Value).Kind();if((az===(17))||(az===(23))||(az===(25))||(az===(21))){$s=110;continue;}$s=111;continue;case 110:(d.$ptr_buf||(d.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).writeByte(38);$r=d.printValue($clone(ay,E.Value),b,c+1>>0);$s=112;case 112:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 111:case 108:case 107:$r=d.fmtPointer($clone(g,E.Value),b);$s=113;case 113:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 22:$r=d.fmtPointer($clone(g,E.Value),b);$s=114;case 114:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 23:$r=d.unknownType($clone(g,E.Value));$s=115;case 115:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 24:case 7:$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.printValue,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AP.prototype.printValue=function(a,b,c){return this.$val.printValue(a,b,c);};BE=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=0;d=false;e=0;e=b;if(b=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+b]),$Int,true);c=f[0];d=f[1];if(!d){$s=3;continue;}$s=4;continue;case 3:g=E.ValueOf(((b<0||b>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+b]));$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=$clone(h,E.Value).Kind();if((i===(2))||(i===(3))||(i===(4))||(i===(5))||(i===(6))){j=$clone(h,E.Value).Int();if((k=(new $Int64(0,(((j.$low+((j.$high>>31)*4294967296))>>0)))),(k.$high===j.$high&&k.$low===j.$low))){c=(((j.$low+((j.$high>>31)*4294967296))>>0));d=true;}}else if((i===(7))||(i===(8))||(i===(9))||(i===(10))||(i===(11))||(i===(12))){l=$clone(h,E.Value).Uint();if((m=(new $Int64(l.$high,l.$low)),(m.$high>0||(m.$high===0&&m.$low>=0)))&&(n=(new $Uint64(0,((l.$low>>0)))),(n.$high===l.$high&&n.$low===l.$low))){c=((l.$low>>0));d=true;}}case 5:case 4:e=b+1>>0;if(BC(c)){c=0;d=false;}case 2:$s=-1;return[c,d,e];}return;}var $f={$blk:BE,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};BF=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;b=0;c=0;d=false;if(a.length<3){e=0;f=1;g=false;b=e;c=f;d=g;return[b,c,d];}h=1;while(true){if(!(h>0;o=false;b=m;c=n;d=o;return[b,c,d];}p=j-1>>0;q=h+1>>0;r=true;b=p;c=q;d=r;return[b,c,d];}h=h+(1)>>0;}s=0;t=1;u=false;b=s;c=t;d=u;return[b,c,d];};AP.ptr.prototype.argNumber=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=0;f=0;g=false;h=this;if(b.length<=c||!((b.charCodeAt(c)===91))){i=a;j=c;k=false;e=i;f=j;g=k;return[e,f,g];}h.reordered=true;l=BF($substring(b,c));m=l[0];n=l[1];o=l[2];if(o&&0<=m&&m>0;r=true;e=p;f=q;g=r;return[e,f,g];}h.goodArgNum=false;s=a;t=c+n>>0;u=o;e=s;f=t;g=u;return[e,f,g];};AP.prototype.argNumber=function(a,b,c,d){return this.$val.argNumber(a,b,c,d);};AP.ptr.prototype.badArgNum=function(a){var a,b;b=this;(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeString("%!");(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeRune(a);(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeString("(BADINDEX)");};AP.prototype.badArgNum=function(a){return this.$val.badArgNum(a);};AP.ptr.prototype.missingArg=function(a){var a,b;b=this;(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeString("%!");(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeRune(a);(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeString("(MISSING)");};AP.prototype.missingArg=function(a){return this.$val.missingArg(a);};AP.ptr.prototype.doPrintf=function(a,b){var{a,aa,ab,ac,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=a.length;e=0;f=false;c.reordered=false;g=0;case 1:if(!(g>0;}if(g>h){(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeString($substring(a,h,g));}if(g>=d){$s=2;continue;}g=g+(1)>>0;c.fmt.clearflags();case 3:if(!(g=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]),((i>>0)));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=e+(1)>>0;g=g+(1)>>0;$s=1;continue s;case 14:$s=4;continue s;case 12:case 5:g=g+(1)>>0;$s=3;continue;case 4:k=c.argNumber(e,a,g,b.$length);e=k[0];g=k[1];f=k[2];if(g>0;m=BE(b,e);$s=19;case 19:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;c.fmt.wid=l[0];c.fmt.fmtFlags.widPresent=l[1];e=l[2];if(!c.fmt.fmtFlags.widPresent){(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeString("%!(BADWIDTH)");}if(c.fmt.wid<0){c.fmt.wid=-c.fmt.wid;c.fmt.fmtFlags.minus=true;c.fmt.fmtFlags.zero=false;}f=false;$s=18;continue;case 17:n=BD(a,g,d);c.fmt.wid=n[0];c.fmt.fmtFlags.widPresent=n[1];g=n[2];if(f&&c.fmt.fmtFlags.widPresent){c.goodArgNum=false;}case 18:if((g+1>>0)>0;if(f){c.goodArgNum=false;}o=c.argNumber(e,a,g,b.$length);e=o[0];g=o[1];f=o[2];if(g>0;q=BE(b,e);$s=25;case 25:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;c.fmt.prec=p[0];c.fmt.fmtFlags.precPresent=p[1];e=p[2];if(c.fmt.prec<0){c.fmt.prec=0;c.fmt.fmtFlags.precPresent=false;}if(!c.fmt.fmtFlags.precPresent){(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeString("%!(BADPREC)");}f=false;$s=24;continue;case 23:r=BD(a,g,d);c.fmt.prec=r[0];c.fmt.fmtFlags.precPresent=r[1];g=r[2];if(!c.fmt.fmtFlags.precPresent){c.fmt.prec=0;c.fmt.fmtFlags.precPresent=true;}case 24:case 21:if(!f){s=c.argNumber(e,a,g,b.$length);e=s[0];g=s[1];f=s[2];}if(g>=d){(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeString("%!(NOVERB)");$s=2;continue;}t=((a.charCodeAt(g)>>0));u=1;v=t;w=u;if(v>=128){x=H.DecodeRuneInString($substring(a,g));v=x[0];w=x[1];}g=g+(w)>>0;if((v===37)){$s=27;continue;}if(!c.goodArgNum){$s=28;continue;}if(e>=b.$length){$s=29;continue;}if((v===118)){$s=30;continue;}$s=31;continue;case 27:(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeByte(37);$s=32;continue;case 28:c.badArgNum(v);$s=32;continue;case 29:c.missingArg(v);$s=32;continue;case 30:c.fmt.fmtFlags.sharpV=c.fmt.fmtFlags.sharp;c.fmt.fmtFlags.sharp=false;c.fmt.fmtFlags.plusV=c.fmt.fmtFlags.plus;c.fmt.fmtFlags.plus=false;$r=c.printArg(((e<0||e>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]),v);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=e+(1)>>0;$s=32;continue;case 31:$r=c.printArg(((e<0||e>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]),v);$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=e+(1)>>0;case 32:case 26:$s=1;continue;case 2:if(!c.reordered&&e=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+z]);if(aa>0){(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeString(", ");}if($interfaceIsEqual(ab,$ifaceNil)){$s=39;continue;}$s=40;continue;case 39:(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeString("");$s=41;continue;case 40:ac=E.TypeOf(ab).String();$s=42;case 42:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}$r=(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeString(ac);$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeByte(61);$r=c.printArg(ab,118);$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 41:z++;$s=37;continue;case 38:(c.$ptr_buf||(c.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).writeByte(41);case 36:$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.doPrintf,$c:true,$r,a,aa,ab,ac,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AP.prototype.doPrintf=function(a,b){return this.$val.doPrintf(a,b);};AP.ptr.prototype.doPrint=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=false;d=a;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(!(!($interfaceIsEqual(g,$ifaceNil)))){h=false;$s=3;continue s;}i=E.TypeOf(g).Kind();$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i===24;case 3:j=h;if(f>0&&!j&&!c){(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeByte(32);}$r=b.printArg(g,118);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=j;e++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.doPrint,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};AP.prototype.doPrint=function(a){return this.$val.doPrint(a);};AP.ptr.prototype.doPrintln=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(e>0){(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeByte(32);}$r=b.printArg(f,118);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d++;$s=1;continue;case 2:(b.$ptr_buf||(b.$ptr_buf=new BO(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).writeByte(10);$s=-1;return;}return;}var $f={$blk:AP.ptr.prototype.doPrintln,$c:true,$r,a,b,c,d,e,f,$s};return $f;};AP.prototype.doPrintln=function(a){return this.$val.doPrintln(a);};BH.ptr.prototype.clearflags=function(){var a;a=this;BG.copy(a.fmtFlags,new BG.ptr(false,false,false,false,false,false,false,false,false));};BH.prototype.clearflags=function(){return this.$val.clearflags();};BH.ptr.prototype.init=function(a){var a,b;b=this;b.buf=a;b.clearflags();};BH.prototype.init=function(a){return this.$val.init(a);};BH.ptr.prototype.writePadding=function(a){var a,b,c,d,e,f,g,h,i,j;b=this;if(a<=0){return;}c=b.buf.$get();d=c.$length;e=d+a>>0;if(e>c.$capacity){c=$makeSlice(AO,(($imul(c.$capacity,2))+a>>0));$copySlice(c,b.buf.$get());}f=32;if(b.fmtFlags.zero){f=48;}g=$subslice(c,d,e);h=g;i=0;while(true){if(!(i=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+j]=f);i++;}b.buf.$set($subslice(c,0,e));};BH.prototype.writePadding=function(a){return this.$val.writePadding(a);};BH.ptr.prototype.pad=function(a){var a,b,c;b=this;if(!b.fmtFlags.widPresent||(b.wid===0)){b.buf.write(a);return;}c=b.wid-H.RuneCount(a)>>0;if(!b.fmtFlags.minus){b.writePadding(c);b.buf.write(a);}else{b.buf.write(a);b.writePadding(c);}};BH.prototype.pad=function(a){return this.$val.pad(a);};BH.ptr.prototype.padString=function(a){var a,b,c;b=this;if(!b.fmtFlags.widPresent||(b.wid===0)){b.buf.writeString(a);return;}c=b.wid-H.RuneCountInString(a)>>0;if(!b.fmtFlags.minus){b.writePadding(c);b.buf.writeString(a);}else{b.buf.writeString(a);b.writePadding(c);}};BH.prototype.padString=function(a){return this.$val.padString(a);};BH.ptr.prototype.fmtBoolean=function(a){var a,b;b=this;if(a){b.padString("true");}else{b.padString("false");}};BH.prototype.fmtBoolean=function(a){return this.$val.fmtBoolean(a);};BH.ptr.prototype.fmtUnicode=function(a){var a,b,c,d,e,f,g;b=this;c=$subslice(new BS(b.intbuf),0);d=4;if(b.fmtFlags.precPresent&&b.prec>4){d=b.prec;e=(((2+d>>0)+2>>0)+4>>0)+1>>0;if(e>c.$length){c=$makeSlice(BS,e);}}f=c.$length;if(b.fmtFlags.sharp&&(a.$high<0||(a.$high===0&&a.$low<=1114111))&&F.IsPrint(((a.$low>>0)))){f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=39);f=f-(H.RuneLen(((a.$low>>0))))>>0;H.EncodeRune($subslice(c,f),((a.$low>>0)));f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=39);f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=32);}while(true){if(!((a.$high>0||(a.$high===0&&a.$low>=16)))){break;}f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]="0123456789ABCDEFX".charCodeAt($flatten64(new $Uint64(a.$high&0,(a.$low&15)>>>0))));d=d-(1)>>0;a=$shiftRightUint64(a,(4));}f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]="0123456789ABCDEFX".charCodeAt($flatten64(a)));d=d-(1)>>0;while(true){if(!(d>0)){break;}f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=48);d=d-(1)>>0;}f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=43);f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=85);g=b.fmtFlags.zero;b.fmtFlags.zero=false;b.pad($subslice(c,f));b.fmtFlags.zero=g;};BH.prototype.fmtUnicode=function(a){return this.$val.fmtUnicode(a);};BH.ptr.prototype.fmtInteger=function(a,b,c,d,e){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;f=this;h=c&&(g=(new $Int64(a.$high,a.$low)),(g.$high<0||(g.$high===0&&g.$low<0)));if(h){a=new $Uint64(-a.$high,-a.$low);}i=$subslice(new BS(f.intbuf),0);if(f.fmtFlags.widPresent||f.fmtFlags.precPresent){j=(3+f.wid>>0)+f.prec>>0;if(j>i.$length){i=$makeSlice(BS,j);}}k=0;if(f.fmtFlags.precPresent){k=f.prec;if((k===0)&&(a.$high===0&&a.$low===0)){l=f.fmtFlags.zero;f.fmtFlags.zero=false;f.writePadding(f.wid);f.fmtFlags.zero=l;return;}}else if(f.fmtFlags.zero&&f.fmtFlags.widPresent){k=f.wid;if(h||f.fmtFlags.plus||f.fmtFlags.space){k=k-(1)>>0;}}m=i.$length;n=b;if(n===(10)){while(true){if(!((a.$high>0||(a.$high===0&&a.$low>=10)))){break;}m=m-(1)>>0;o=$div64(a,new $Uint64(0,10),false);((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=(((p=new $Uint64(0+a.$high,48+a.$low),q=$mul64(o,new $Uint64(0,10)),new $Uint64(p.$high-q.$high,p.$low-q.$low)).$low<<24>>>24)));a=o;}}else if(n===(16)){while(true){if(!((a.$high>0||(a.$high===0&&a.$low>=16)))){break;}m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=e.charCodeAt($flatten64(new $Uint64(a.$high&0,(a.$low&15)>>>0))));a=$shiftRightUint64(a,(4));}}else if(n===(8)){while(true){if(!((a.$high>0||(a.$high===0&&a.$low>=8)))){break;}m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=(((r=new $Uint64(a.$high&0,(a.$low&7)>>>0),new $Uint64(0+r.$high,48+r.$low)).$low<<24>>>24)));a=$shiftRightUint64(a,(3));}}else if(n===(2)){while(true){if(!((a.$high>0||(a.$high===0&&a.$low>=2)))){break;}m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=(((s=new $Uint64(a.$high&0,(a.$low&1)>>>0),new $Uint64(0+s.$high,48+s.$low)).$low<<24>>>24)));a=$shiftRightUint64(a,(1));}}else{$panic(new $String("fmt: unknown base; can't happen"));}m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=e.charCodeAt($flatten64(a)));while(true){if(!(m>0&&k>(i.$length-m>>0))){break;}m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=48);}if(f.fmtFlags.sharp){t=b;if(t===(2)){m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=98);m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=48);}else if(t===(8)){if(!((((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m])===48))){m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=48);}}else if(t===(16)){m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=e.charCodeAt(16));m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=48);}}if(d===79){m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=111);m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=48);}if(h){m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=45);}else if(f.fmtFlags.plus){m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=43);}else if(f.fmtFlags.space){m=m-(1)>>0;((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]=32);}u=f.fmtFlags.zero;f.fmtFlags.zero=false;f.pad($subslice(i,m));f.fmtFlags.zero=u;};BH.prototype.fmtInteger=function(a,b,c,d,e){return this.$val.fmtInteger(a,b,c,d,e);};BH.ptr.prototype.truncateString=function(a){var a,b,c,d,e,f,g;b=this;if(b.fmtFlags.precPresent){c=b.prec;d=a;e=0;while(true){if(!(e>0;if(c<0){return $substring(a,0,g);}e+=f[1];}}return a;};BH.prototype.truncateString=function(a){return this.$val.truncateString(a);};BH.ptr.prototype.truncate=function(a){var a,b,c,d,e,f;b=this;if(b.fmtFlags.precPresent){c=b.prec;d=0;while(true){if(!(d>0;if(c<0){return $subslice(a,0,d);}e=1;if(((d<0||d>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+d])>=128){f=H.DecodeRune($subslice(a,d));e=f[1];}d=d+(e)>>0;}}return a;};BH.prototype.truncate=function(a){return this.$val.truncate(a);};BH.ptr.prototype.fmtS=function(a){var a,b;b=this;a=b.truncateString(a);b.padString(a);};BH.prototype.fmtS=function(a){return this.$val.fmtS(a);};BH.ptr.prototype.fmtBs=function(a){var a,b;b=this;a=b.truncate(a);b.pad(a);};BH.prototype.fmtBs=function(a){return this.$val.fmtBs(a);};BH.ptr.prototype.fmtSbx=function(a,b,c){var a,b,c,d,e,f,g,h,i;d=this;e=b.$length;if(b===BS.nil){e=a.length;}if(d.fmtFlags.precPresent&&d.prec0){if(d.fmtFlags.space){if(d.fmtFlags.sharp){f=$imul(f,(2));}f=f+((e-1>>0))>>0;}else if(d.fmtFlags.sharp){f=f+(2)>>0;}}else{if(d.fmtFlags.widPresent){d.writePadding(d.wid);}return;}if(d.fmtFlags.widPresent&&d.wid>f&&!d.fmtFlags.minus){d.writePadding(d.wid-f>>0);}g=d.buf.$get();if(d.fmtFlags.sharp){g=$append(g,48,c.charCodeAt(16));}h=0;i=0;while(true){if(!(i0){g=$append(g,32);if(d.fmtFlags.sharp){g=$append(g,48,c.charCodeAt(16));}}if(!(b===BS.nil)){h=((i<0||i>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+i]);}else{h=a.charCodeAt(i);}g=$append(g,c.charCodeAt((h>>>4<<24>>>24)),c.charCodeAt(((h&15)>>>0)));i=i+(1)>>0;}d.buf.$set(g);if(d.fmtFlags.widPresent&&d.wid>f&&d.fmtFlags.minus){d.writePadding(d.wid-f>>0);}};BH.prototype.fmtSbx=function(a,b,c){return this.$val.fmtSbx(a,b,c);};BH.ptr.prototype.fmtSx=function(a,b){var a,b,c;c=this;c.fmtSbx(a,BS.nil,b);};BH.prototype.fmtSx=function(a,b){return this.$val.fmtSx(a,b);};BH.ptr.prototype.fmtBx=function(a,b){var a,b,c;c=this;c.fmtSbx("",a,b);};BH.prototype.fmtBx=function(a,b){return this.$val.fmtBx(a,b);};BH.ptr.prototype.fmtQ=function(a){var a,b,c;b=this;a=b.truncateString(a);if(b.fmtFlags.sharp&&F.CanBackquote(a)){b.padString("`"+a+"`");return;}c=$subslice(new BS(b.intbuf),0,0);if(b.fmtFlags.plus){b.pad(F.AppendQuoteToASCII(c,a));}else{b.pad(F.AppendQuote(c,a));}};BH.prototype.fmtQ=function(a){return this.$val.fmtQ(a);};BH.ptr.prototype.fmtC=function(a){var a,b,c,d,e;b=this;c=((a.$low>>0));if((a.$high>0||(a.$high===0&&a.$low>1114111))){c=65533;}d=$subslice(new BS(b.intbuf),0,0);e=H.EncodeRune($subslice(d,0,4),c);b.pad($subslice(d,0,e));};BH.prototype.fmtC=function(a){return this.$val.fmtC(a);};BH.ptr.prototype.fmtQc=function(a){var a,b,c,d;b=this;c=((a.$low>>0));if((a.$high>0||(a.$high===0&&a.$low>1114111))){c=65533;}d=$subslice(new BS(b.intbuf),0,0);if(b.fmtFlags.plus){b.pad(F.AppendQuoteRuneToASCII(d,c));}else{b.pad(F.AppendQuoteRune(d,c));}};BH.prototype.fmtQc=function(a){return this.$val.fmtQc(a);};BH.ptr.prototype.fmtFloat=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;e=this;if(e.fmtFlags.precPresent){d=e.prec;}f=F.AppendFloat($subslice(new BS(e.intbuf),0,1),a,((c<<24>>>24)),d,b);if(((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===45)||((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===43)){f=$subslice(f,1);}else{(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]=43);}if(e.fmtFlags.space&&((0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0])===43)&&!e.fmtFlags.plus){(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]=32);}if(((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===73)||((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===78)){g=e.fmtFlags.zero;e.fmtFlags.zero=false;if(((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===78)&&!e.fmtFlags.space&&!e.fmtFlags.plus){f=$subslice(f,1);}e.pad(f);e.fmtFlags.zero=g;return;}if(e.fmtFlags.sharp&&!((c===98))){h=0;i=c;if((i===(118))||(i===(103))||(i===(71))||(i===(120))){h=d;if(h===-1){h=6;}}j=CP.zero();k=$subslice(new BS(j),0,0);l=false;m=false;n=1;while(true){if(!(n=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+n]);if(o===(46)){l=true;}else if((o===(112))||(o===(80))){k=$appendSlice(k,$subslice(f,n));f=$subslice(f,0,n);}else if((o===(101))||(o===(69))){if(!((c===120))&&!((c===88))){k=$appendSlice(k,$subslice(f,n));f=$subslice(f,0,n);break;}if(!((((n<0||n>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+n])===48))){m=true;}if(m){h=h-(1)>>0;}}else{if(!((((n<0||n>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+n])===48))){m=true;}if(m){h=h-(1)>>0;}}}n=n+(1)>>0;}if(!l){if((f.$length===2)&&((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===48)){h=h-(1)>>0;}f=$append(f,46);}while(true){if(!(h>0)){break;}f=$append(f,48);h=h-(1)>>0;}f=$appendSlice(f,k);}if(e.fmtFlags.plus||!(((0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0])===43))){if(e.fmtFlags.zero&&e.fmtFlags.widPresent&&e.wid>f.$length){e.buf.writeByte((0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]));e.writePadding(e.wid-f.$length>>0);e.buf.write($subslice(f,1));return;}e.pad(f);return;}e.pad($subslice(f,1));};BH.prototype.fmtFloat=function(a,b,c,d){return this.$val.fmtFloat(a,b,c,d);};BI=function(a,b){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=AR();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;d.wrapErrs=true;$r=d.doPrintf(a,b);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=($bytesToString(d.buf));f=$ifaceNil;if($interfaceIsEqual(d.wrappedErr,$ifaceNil)){f=A.New(e);}else{f=new BJ.ptr(e,d.wrappedErr);}d.free();$s=-1;return f;}return;}var $f={$blk:BI,$c:true,$r,a,b,c,d,e,f,$s};return $f;};$pkg.Errorf=BI;BJ.ptr.prototype.Error=function(){var a;a=this;return a.msg;};BJ.prototype.Error=function(){return this.$val.Error();};BJ.ptr.prototype.Unwrap=function(){var a;a=this;return a.err;};BJ.prototype.Unwrap=function(){return this.$val.Unwrap();};BT.methods=[{prop:"Read",name:"Read",pkg:"",typ:$funcType([BS],[$Int,$error],false)},{prop:"ReadRune",name:"ReadRune",pkg:"",typ:$funcType([],[$Int32,$Int,$error],false)},{prop:"Width",name:"Width",pkg:"",typ:$funcType([],[$Int,$Bool],false)},{prop:"getRune",name:"getRune",pkg:"fmt",typ:$funcType([],[$Int32],false)},{prop:"mustReadRune",name:"mustReadRune",pkg:"fmt",typ:$funcType([],[$Int32],false)},{prop:"UnreadRune",name:"UnreadRune",pkg:"",typ:$funcType([],[$error],false)},{prop:"error",name:"error",pkg:"fmt",typ:$funcType([$error],[],false)},{prop:"errorString",name:"errorString",pkg:"fmt",typ:$funcType([$String],[],false)},{prop:"Token",name:"Token",pkg:"",typ:$funcType([$Bool,CQ],[BS,$error],false)},{prop:"free",name:"free",pkg:"fmt",typ:$funcType([X],[],false)},{prop:"SkipSpace",name:"SkipSpace",pkg:"",typ:$funcType([],[],false)},{prop:"token",name:"token",pkg:"fmt",typ:$funcType([$Bool,CQ],[BS],false)},{prop:"consume",name:"consume",pkg:"fmt",typ:$funcType([$String,$Bool],[$Bool],false)},{prop:"peek",name:"peek",pkg:"fmt",typ:$funcType([$String],[$Bool],false)},{prop:"notEOF",name:"notEOF",pkg:"fmt",typ:$funcType([],[],false)},{prop:"accept",name:"accept",pkg:"fmt",typ:$funcType([$String],[$Bool],false)},{prop:"okVerb",name:"okVerb",pkg:"fmt",typ:$funcType([$Int32,$String,$String],[$Bool],false)},{prop:"scanBool",name:"scanBool",pkg:"fmt",typ:$funcType([$Int32],[$Bool],false)},{prop:"getBase",name:"getBase",pkg:"fmt",typ:$funcType([$Int32],[$Int,$String],false)},{prop:"scanNumber",name:"scanNumber",pkg:"fmt",typ:$funcType([$String,$Bool],[$String],false)},{prop:"scanRune",name:"scanRune",pkg:"fmt",typ:$funcType([$Int],[$Int64],false)},{prop:"scanBasePrefix",name:"scanBasePrefix",pkg:"fmt",typ:$funcType([],[$Int,$String,$Bool],false)},{prop:"scanInt",name:"scanInt",pkg:"fmt",typ:$funcType([$Int32,$Int],[$Int64],false)},{prop:"scanUint",name:"scanUint",pkg:"fmt",typ:$funcType([$Int32,$Int],[$Uint64],false)},{prop:"floatToken",name:"floatToken",pkg:"fmt",typ:$funcType([],[$String],false)},{prop:"complexTokens",name:"complexTokens",pkg:"fmt",typ:$funcType([],[$String,$String],false)},{prop:"convertFloat",name:"convertFloat",pkg:"fmt",typ:$funcType([$String,$Int],[$Float64],false)},{prop:"scanComplex",name:"scanComplex",pkg:"fmt",typ:$funcType([$Int32,$Int],[$Complex128],false)},{prop:"convertString",name:"convertString",pkg:"fmt",typ:$funcType([$Int32],[$String],false)},{prop:"quotedString",name:"quotedString",pkg:"fmt",typ:$funcType([],[$String],false)},{prop:"hexByte",name:"hexByte",pkg:"fmt",typ:$funcType([],[$Uint8,$Bool],false)},{prop:"hexString",name:"hexString",pkg:"fmt",typ:$funcType([],[$String],false)},{prop:"scanPercent",name:"scanPercent",pkg:"fmt",typ:$funcType([],[],false)},{prop:"scanOne",name:"scanOne",pkg:"fmt",typ:$funcType([$Int32,$emptyInterface],[],false)},{prop:"doScan",name:"doScan",pkg:"fmt",typ:$funcType([BM],[$Int,$error],false)},{prop:"advance",name:"advance",pkg:"fmt",typ:$funcType([$String],[$Int],false)},{prop:"doScanf",name:"doScanf",pkg:"fmt",typ:$funcType([$String,BM],[$Int,$error],false)}];BO.methods=[{prop:"write",name:"write",pkg:"fmt",typ:$funcType([BS],[],false)},{prop:"writeString",name:"writeString",pkg:"fmt",typ:$funcType([$String],[],false)},{prop:"writeByte",name:"writeByte",pkg:"fmt",typ:$funcType([$Uint8],[],false)},{prop:"writeRune",name:"writeRune",pkg:"fmt",typ:$funcType([$Int32],[],false)}];CO.methods=[{prop:"free",name:"free",pkg:"fmt",typ:$funcType([],[],false)},{prop:"Width",name:"Width",pkg:"",typ:$funcType([],[$Int,$Bool],false)},{prop:"Precision",name:"Precision",pkg:"",typ:$funcType([],[$Int,$Bool],false)},{prop:"Flag",name:"Flag",pkg:"",typ:$funcType([$Int],[$Bool],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([BS],[$Int,$error],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([$String],[$Int,$error],false)},{prop:"unknownType",name:"unknownType",pkg:"fmt",typ:$funcType([E.Value],[],false)},{prop:"badVerb",name:"badVerb",pkg:"fmt",typ:$funcType([$Int32],[],false)},{prop:"fmtBool",name:"fmtBool",pkg:"fmt",typ:$funcType([$Bool,$Int32],[],false)},{prop:"fmt0x64",name:"fmt0x64",pkg:"fmt",typ:$funcType([$Uint64,$Bool],[],false)},{prop:"fmtInteger",name:"fmtInteger",pkg:"fmt",typ:$funcType([$Uint64,$Bool,$Int32],[],false)},{prop:"fmtFloat",name:"fmtFloat",pkg:"fmt",typ:$funcType([$Float64,$Int,$Int32],[],false)},{prop:"fmtComplex",name:"fmtComplex",pkg:"fmt",typ:$funcType([$Complex128,$Int,$Int32],[],false)},{prop:"fmtString",name:"fmtString",pkg:"fmt",typ:$funcType([$String,$Int32],[],false)},{prop:"fmtBytes",name:"fmtBytes",pkg:"fmt",typ:$funcType([BS,$Int32,$String],[],false)},{prop:"fmtPointer",name:"fmtPointer",pkg:"fmt",typ:$funcType([E.Value,$Int32],[],false)},{prop:"catchPanic",name:"catchPanic",pkg:"fmt",typ:$funcType([$emptyInterface,$Int32,$String],[],false)},{prop:"handleMethods",name:"handleMethods",pkg:"fmt",typ:$funcType([$Int32],[$Bool],false)},{prop:"printArg",name:"printArg",pkg:"fmt",typ:$funcType([$emptyInterface,$Int32],[],false)},{prop:"printValue",name:"printValue",pkg:"fmt",typ:$funcType([E.Value,$Int32,$Int],[],false)},{prop:"argNumber",name:"argNumber",pkg:"fmt",typ:$funcType([$Int,$String,$Int,$Int],[$Int,$Int,$Bool],false)},{prop:"badArgNum",name:"badArgNum",pkg:"fmt",typ:$funcType([$Int32],[],false)},{prop:"missingArg",name:"missingArg",pkg:"fmt",typ:$funcType([$Int32],[],false)},{prop:"doPrintf",name:"doPrintf",pkg:"fmt",typ:$funcType([$String,BM],[],false)},{prop:"doPrint",name:"doPrint",pkg:"fmt",typ:$funcType([BM],[],false)},{prop:"doPrintln",name:"doPrintln",pkg:"fmt",typ:$funcType([BM],[],false)}];CS.methods=[{prop:"clearflags",name:"clearflags",pkg:"fmt",typ:$funcType([],[],false)},{prop:"init",name:"init",pkg:"fmt",typ:$funcType([BO],[],false)},{prop:"writePadding",name:"writePadding",pkg:"fmt",typ:$funcType([$Int],[],false)},{prop:"pad",name:"pad",pkg:"fmt",typ:$funcType([BS],[],false)},{prop:"padString",name:"padString",pkg:"fmt",typ:$funcType([$String],[],false)},{prop:"fmtBoolean",name:"fmtBoolean",pkg:"fmt",typ:$funcType([$Bool],[],false)},{prop:"fmtUnicode",name:"fmtUnicode",pkg:"fmt",typ:$funcType([$Uint64],[],false)},{prop:"fmtInteger",name:"fmtInteger",pkg:"fmt",typ:$funcType([$Uint64,$Int,$Bool,$Int32,$String],[],false)},{prop:"truncateString",name:"truncateString",pkg:"fmt",typ:$funcType([$String],[$String],false)},{prop:"truncate",name:"truncate",pkg:"fmt",typ:$funcType([BS],[BS],false)},{prop:"fmtS",name:"fmtS",pkg:"fmt",typ:$funcType([$String],[],false)},{prop:"fmtBs",name:"fmtBs",pkg:"fmt",typ:$funcType([BS],[],false)},{prop:"fmtSbx",name:"fmtSbx",pkg:"fmt",typ:$funcType([$String,BS,$String],[],false)},{prop:"fmtSx",name:"fmtSx",pkg:"fmt",typ:$funcType([$String,$String],[],false)},{prop:"fmtBx",name:"fmtBx",pkg:"fmt",typ:$funcType([BS,$String],[],false)},{prop:"fmtQ",name:"fmtQ",pkg:"fmt",typ:$funcType([$String],[],false)},{prop:"fmtC",name:"fmtC",pkg:"fmt",typ:$funcType([$Uint64],[],false)},{prop:"fmtQc",name:"fmtQc",pkg:"fmt",typ:$funcType([$Uint64],[],false)},{prop:"fmtFloat",name:"fmtFloat",pkg:"fmt",typ:$funcType([$Float64,$Int,$Int32,$Int],[],false)}];CT.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Unwrap",name:"Unwrap",pkg:"",typ:$funcType([],[$error],false)}];J.init([{prop:"Read",name:"Read",pkg:"",typ:$funcType([BS],[$Int,$error],false)},{prop:"ReadRune",name:"ReadRune",pkg:"",typ:$funcType([],[$Int32,$Int,$error],false)},{prop:"SkipSpace",name:"SkipSpace",pkg:"",typ:$funcType([],[],false)},{prop:"Token",name:"Token",pkg:"",typ:$funcType([$Bool,CQ],[BS,$error],false)},{prop:"UnreadRune",name:"UnreadRune",pkg:"",typ:$funcType([],[$error],false)},{prop:"Width",name:"Width",pkg:"",typ:$funcType([],[$Int,$Bool],false)}]);V.init("fmt",[{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""}]);W.init("fmt",[{prop:"rs",name:"rs",embedded:false,exported:false,typ:B.RuneScanner,tag:""},{prop:"buf",name:"buf",embedded:false,exported:false,typ:AO,tag:""},{prop:"count",name:"count",embedded:false,exported:false,typ:$Int,tag:""},{prop:"atEOF",name:"atEOF",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"ssave",name:"ssave",embedded:true,exported:false,typ:X,tag:""}]);X.init("fmt",[{prop:"validSave",name:"validSave",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"nlIsEnd",name:"nlIsEnd",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"nlIsSpace",name:"nlIsSpace",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"argLimit",name:"argLimit",embedded:false,exported:false,typ:$Int,tag:""},{prop:"limit",name:"limit",embedded:false,exported:false,typ:$Int,tag:""},{prop:"maxWid",name:"maxWid",embedded:false,exported:false,typ:$Int,tag:""}]);AK.init([{prop:"Flag",name:"Flag",pkg:"",typ:$funcType([$Int],[$Bool],false)},{prop:"Precision",name:"Precision",pkg:"",typ:$funcType([],[$Int,$Bool],false)},{prop:"Width",name:"Width",pkg:"",typ:$funcType([],[$Int,$Bool],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([BS],[$Int,$error],false)}]);AL.init([{prop:"Format",name:"Format",pkg:"",typ:$funcType([AK,$Int32],[],false)}]);AM.init([{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}]);AN.init([{prop:"GoString",name:"GoString",pkg:"",typ:$funcType([],[$String],false)}]);AO.init($Uint8);AP.init("fmt",[{prop:"buf",name:"buf",embedded:false,exported:false,typ:AO,tag:""},{prop:"arg",name:"arg",embedded:false,exported:false,typ:$emptyInterface,tag:""},{prop:"value",name:"value",embedded:false,exported:false,typ:E.Value,tag:""},{prop:"fmt",name:"fmt",embedded:false,exported:false,typ:BH,tag:""},{prop:"reordered",name:"reordered",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"goodArgNum",name:"goodArgNum",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"panicking",name:"panicking",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"erroring",name:"erroring",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"wrapErrs",name:"wrapErrs",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"wrappedErr",name:"wrappedErr",embedded:false,exported:false,typ:$error,tag:""}]);BG.init("fmt",[{prop:"widPresent",name:"widPresent",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"precPresent",name:"precPresent",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"minus",name:"minus",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"plus",name:"plus",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"sharp",name:"sharp",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"space",name:"space",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"zero",name:"zero",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"plusV",name:"plusV",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"sharpV",name:"sharpV",embedded:false,exported:false,typ:$Bool,tag:""}]);BH.init("fmt",[{prop:"buf",name:"buf",embedded:false,exported:false,typ:BO,tag:""},{prop:"fmtFlags",name:"fmtFlags",embedded:true,exported:false,typ:BG,tag:""},{prop:"wid",name:"wid",embedded:false,exported:false,typ:$Int,tag:""},{prop:"prec",name:"prec",embedded:false,exported:false,typ:$Int,tag:""},{prop:"intbuf",name:"intbuf",embedded:false,exported:false,typ:BP,tag:""}]);BJ.init("fmt",[{prop:"msg",name:"msg",embedded:false,exported:false,typ:$String,tag:""},{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}Y=new BL([$toNativeArray($kindUint16,[9,13]),$toNativeArray($kindUint16,[32,32]),$toNativeArray($kindUint16,[133,133]),$toNativeArray($kindUint16,[160,160]),$toNativeArray($kindUint16,[5760,5760]),$toNativeArray($kindUint16,[8192,8202]),$toNativeArray($kindUint16,[8232,8233]),$toNativeArray($kindUint16,[8239,8239]),$toNativeArray($kindUint16,[8287,8287]),$toNativeArray($kindUint16,[12288,12288])]);AC=new G.Pool.ptr(BM.nil,(function(){return new W.ptr($ifaceNil,AO.nil,0,false,new X.ptr(false,false,false,0,0,0));}));AE=A.New("syntax error scanning complex number");AF=A.New("syntax error scanning boolean");AQ=new G.Pool.ptr(BM.nil,(function(){return new AP.ptr(AO.nil,$ifaceNil,new E.Value.ptr(BN.nil,0,0),new BH.ptr(BO.nil,new BG.ptr(false,false,false,false,false,false,false,false,false),0,0,BP.zero()),false,false,false,false,false,$ifaceNil);}));}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["go/token"]=(function(){var $pkg={},$init,D,F,E,A,B,C,G,O,P,Q,R,S,T,V,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,H,I,J,K,L,U,W,X,Y;D=$packages["fmt"];F=$packages["github.com/gopherjs/gopherjs/nosync"];E=$packages["sort"];A=$packages["strconv"];B=$packages["unicode"];C=$packages["unicode/utf8"];G=$pkg.Token=$newType(4,$kindInt,"token.Token",true,"go/token",true,null);O=$pkg.serializedFile=$newType(0,$kindStruct,"token.serializedFile",true,"go/token",false,function(Name_,Base_,Size_,Lines_,Infos_){this.$val=this;if(arguments.length===0){this.Name="";this.Base=0;this.Size=0;this.Lines=AD.nil;this.Infos=AE.nil;return;}this.Name=Name_;this.Base=Base_;this.Size=Size_;this.Lines=Lines_;this.Infos=Infos_;});P=$pkg.serializedFileSet=$newType(0,$kindStruct,"token.serializedFileSet",true,"go/token",false,function(Base_,Files_){this.$val=this;if(arguments.length===0){this.Base=0;this.Files=Z.nil;return;}this.Base=Base_;this.Files=Files_;});Q=$pkg.Position=$newType(0,$kindStruct,"token.Position",true,"go/token",true,function(Filename_,Offset_,Line_,Column_){this.$val=this;if(arguments.length===0){this.Filename="";this.Offset=0;this.Line=0;this.Column=0;return;}this.Filename=Filename_;this.Offset=Offset_;this.Line=Line_;this.Column=Column_;});R=$pkg.Pos=$newType(4,$kindInt,"token.Pos",true,"go/token",true,null);S=$pkg.File=$newType(0,$kindStruct,"token.File",true,"go/token",true,function(set_,name_,base_,size_,mutex_,lines_,infos_){this.$val=this;if(arguments.length===0){this.set=AC.nil;this.name="";this.base=0;this.size=0;this.mutex=new F.Mutex.ptr(false);this.lines=AD.nil;this.infos=AE.nil;return;}this.set=set_;this.name=name_;this.base=base_;this.size=size_;this.mutex=mutex_;this.lines=lines_;this.infos=infos_;});T=$pkg.lineInfo=$newType(0,$kindStruct,"token.lineInfo",true,"go/token",false,function(Offset_,Filename_,Line_,Column_){this.$val=this;if(arguments.length===0){this.Offset=0;this.Filename="";this.Line=0;this.Column=0;return;}this.Offset=Offset_;this.Filename=Filename_;this.Line=Line_;this.Column=Column_;});V=$pkg.FileSet=$newType(0,$kindStruct,"token.FileSet",true,"go/token",true,function(mutex_,base_,files_,last_){this.$val=this;if(arguments.length===0){this.mutex=new F.RWMutex.ptr(false,0);this.base=0;this.files=AB.nil;this.last=AA.nil;return;}this.mutex=mutex_;this.base=base_;this.files=files_;this.last=last_;});Z=$sliceType(O);AA=$ptrType(S);AB=$sliceType(AA);AC=$ptrType(V);AD=$sliceType($Int);AE=$sliceType(T);AF=$sliceType($emptyInterface);AG=$ptrType(Q);AH=$sliceType($Uint8);AI=$funcType([$emptyInterface],[$error],false);AJ=$funcType([AA],[$Bool],false);G.prototype.String=function(){var a,b;a=this.$val;b="";if(0<=a&&a<89){b=((a<0||a>=H.length)?($throwRuntimeError("index out of range"),undefined):H[a]);}if(b===""){b="token("+A.Itoa(((a>>0)))+")";}return b;};$ptrType(G).prototype.String=function(){return new G(this.$get()).String();};G.prototype.Precedence=function(){var a,b;a=this.$val;b=a;if(b===(35)){return 1;}else if(b===(34)){return 2;}else if((b===(39))||(b===(44))||(b===(40))||(b===(45))||(b===(41))||(b===(46))){return 3;}else if((b===(12))||(b===(13))||(b===(18))||(b===(19))){return 4;}else if((b===(14))||(b===(15))||(b===(16))||(b===(20))||(b===(21))||(b===(17))||(b===(22))){return 5;}return 0;};$ptrType(G).prototype.Precedence=function(){return new G(this.$get()).Precedence();};J=function(){var a,b;I=new $global.Map();a=61;while(true){if(!(a<86)){break;}b=((a<0||a>=H.length)?($throwRuntimeError("index out of range"),undefined):H[a]);(I||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(b),{k:b,v:a});a=a+(1)>>0;}};K=function(a){var a,b,c,d,e;b=(c=$mapIndex(I,$String.keyFor(a)),c!==undefined?[c.v,true]:[0,false]);d=b[0];e=b[1];if(e){return d;}return 4;};$pkg.Lookup=K;G.prototype.IsLiteral=function(){var a;a=this.$val;return 3=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+g]));((g<0||g>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]=new S.ptr(c,i.Name,i.Base,i.Size,new F.Mutex.ptr(false),i.Lines,i.Infos));g=g+(1)>>0;}c.files=f;c.last=AA.nil;c.mutex.Unlock();$s=-1;return $ifaceNil;}return;}var $f={$blk:V.ptr.prototype.Read,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};V.prototype.Read=function(a){return this.$val.Read(a);};V.ptr.prototype.Write=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=new P.ptr(0,Z.nil);b.mutex.Lock();c.Base=b.base;d=$makeSlice(Z,b.files.$length);e=b.files;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);h.mutex.Lock();O.copy(((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]),new O.ptr(h.name,h.base,h.size,$appendSlice((AD.nil),h.lines),$appendSlice((AE.nil),h.infos)));h.mutex.Unlock();f++;}c.Files=d;b.mutex.Unlock();i=a(new c.constructor.elem(c));$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=2;case 2:return j;}return;}var $f={$blk:V.ptr.prototype.Write,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};V.prototype.Write=function(a){return this.$val.Write(a);};Q.ptr.prototype.IsValid=function(){var a;a=this;return a.Line>0;};Q.prototype.IsValid=function(){return this.$val.IsValid();};Q.ptr.prototype.String=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Filename;if(a.IsValid()){$s=1;continue;}$s=2;continue;case 1:if(!(b==="")){b=b+(":");}c=D.Sprintf("%d",new AF([new $Int(a.Line)]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=b+(c);if(!((a.Column===0))){$s=4;continue;}$s=5;continue;case 4:d=D.Sprintf(":%d",new AF([new $Int(a.Column)]));$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}b=b+(d);case 5:case 2:if(b===""){b="-";}$s=-1;return b;}return;}var $f={$blk:Q.ptr.prototype.String,$c:true,$r,a,b,c,d,$s};return $f;};Q.prototype.String=function(){return this.$val.String();};R.prototype.IsValid=function(){var a;a=this.$val;return!((a===0));};$ptrType(R).prototype.IsValid=function(){return new R(this.$get()).IsValid();};S.ptr.prototype.Name=function(){var a;a=this;return a.name;};S.prototype.Name=function(){return this.$val.Name();};S.ptr.prototype.Base=function(){var a;a=this;return a.base;};S.prototype.Base=function(){return this.$val.Base();};S.ptr.prototype.Size=function(){var a;a=this;return a.size;};S.prototype.Size=function(){return this.$val.Size();};S.ptr.prototype.LineCount=function(){var a,b;a=this;a.mutex.Lock();b=a.lines.$length;a.mutex.Unlock();return b;};S.prototype.LineCount=function(){return this.$val.LineCount();};S.ptr.prototype.AddLine=function(a){var a,b,c,d,e;b=this;b.mutex.Lock();c=b.lines.$length;if(((c===0)||(d=b.lines,e=c-1>>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]))= 1)",new AF([new $Int(a)]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$panic(new $String(c));case 2:b.mutex.Lock();$deferred.push([$methodVal(b.mutex,"Unlock"),[]]);if(a>=b.lines.$length){$s=4;continue;}$s=5;continue;case 4:d=D.Sprintf("invalid line number %d (should be < %d)",new AF([new $Int(a),new $Int(b.lines.$length)]));$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$panic(new $String(d));case 5:$copySlice($subslice(b.lines,a),$subslice(b.lines,(a+1>>0)));b.lines=$subslice(b.lines,0,(b.lines.$length-1>>0));$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:S.ptr.prototype.MergeLine,$c:true,$r,a,b,c,d,$s,$deferred};return $f;}}};S.prototype.MergeLine=function(a){return this.$val.MergeLine(a);};S.ptr.prototype.SetLines=function(a){var a,b,c,d,e,f,g,h;b=this;c=b.size;d=a;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(f>0&&g<=(h=f-1>>0,((h<0||h>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+h]))||c<=g){return false;}e++;}b.mutex.Lock();b.lines=a;b.mutex.Unlock();return true;};S.prototype.SetLines=function(a){return this.$val.SetLines(a);};S.ptr.prototype.SetLinesForContent=function(a){var a,b,c,d,e,f,g,h;b=this;c=AD.nil;d=0;e=a;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(d>=0){c=$append(c,d);}d=-1;if(h===10){d=g+1>>0;}f++;}b.mutex.Lock();b.lines=c;b.mutex.Unlock();};S.prototype.SetLinesForContent=function(a){return this.$val.SetLinesForContent(a);};S.ptr.prototype.LineStart=function(a){var{a,b,c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(a<1){$s=1;continue;}$s=2;continue;case 1:c=D.Sprintf("invalid line number %d (should be >= 1)",new AF([new $Int(a)]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$panic(new $String(c));case 2:b.mutex.Lock();$deferred.push([$methodVal(b.mutex,"Unlock"),[]]);if(a>b.lines.$length){$s=4;continue;}$s=5;continue;case 4:d=D.Sprintf("invalid line number %d (should be < %d)",new AF([new $Int(a),new $Int(b.lines.$length)]));$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$panic(new $String(d));case 5:g=(((b.base+(e=b.lines,f=a-1>>0,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]))>>0)>>0));$s=7;case 7:return g;}return;}}catch(err){$err=err;$s=-1;return 0;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:S.ptr.prototype.LineStart,$c:true,$r,a,b,c,d,e,f,g,$s,$deferred};return $f;}}};S.prototype.LineStart=function(a){return this.$val.LineStart(a);};S.ptr.prototype.AddLineInfo=function(a,b,c){var a,b,c,d;d=this;d.AddLineColumnInfo(a,b,c,1);};S.prototype.AddLineInfo=function(a,b,c){return this.$val.AddLineInfo(a,b,c);};S.ptr.prototype.AddLineColumnInfo=function(a,b,c,d){var a,b,c,d,e,f,g,h;e=this;e.mutex.Lock();f=e.infos.$length;if((f===0)||(g=e.infos,h=f-1>>0,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h])).Offsetb.size){$s=1;continue;}$s=2;continue;case 1:c=D.Sprintf("invalid file offset %d (should be <= %d)",new AF([new $Int(a),new $Int(b.size)]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$panic(new $String(c));case 2:$s=-1;return(((b.base+a>>0)>>0));}return;}var $f={$blk:S.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};S.prototype.Pos=function(a){return this.$val.Pos(a);};S.ptr.prototype.Offset=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(((a>>0))>0))>(b.base+b.size>>0)){$s=1;continue;}$s=2;continue;case 1:c=D.Sprintf("invalid Pos value %d (should be in [%d, %d])",new AF([new R(a),new $Int(b.base),new $Int((b.base+b.size>>0))]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$panic(new $String(c));case 2:$s=-1;return((a>>0))-b.base>>0;}return;}var $f={$blk:S.ptr.prototype.Offset,$c:true,$r,a,b,c,$s};return $f;};S.prototype.Offset=function(a){return this.$val.Offset(a);};S.ptr.prototype.Line=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.Position(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.Line;$s=2;case 2:return d;}return;}var $f={$blk:S.ptr.prototype.Line,$c:true,$r,a,b,c,d,$s};return $f;};S.prototype.Line=function(a){return this.$val.Line(a);};U=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=E.Search(a[0].$length,(function(a,b){return function(c){var c;return((c<0||c>=a[0].$length)?($throwRuntimeError("index out of range"),undefined):a[0].$array[a[0].$offset+c]).Offset>b[0];};})(a,b));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c-1>>0;$s=2;case 2:return d;}return;}var $f={$blk:U,$c:true,$r,a,b,c,d,$s};return $f;};S.ptr.prototype.unpack=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred,$r,$c}=$restore(this,{a,b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c="";d=0;e=0;f=this;f.mutex.Lock();$deferred.push([$methodVal(f.mutex,"Unlock"),[]]);c=f.name;g=Y(f.lines,a);if(g>=0){h=g+1>>0;i=(a-(j=f.lines,((g<0||g>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+g]))>>0)+1>>0;d=h;e=i;}if(b&&f.infos.$length>0){$s=1;continue;}$s=2;continue;case 1:k=U(f.infos,a);$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(l>=0){n=(m=f.infos,((l<0||l>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+l]));c=n.Filename;o=Y(f.lines,n.Offset);if(o>=0){p=d-((o+1>>0))>>0;d=n.Line+p>>0;if(n.Column===0){e=0;}else if(p===0){e=n.Column+((a-n.Offset>>0))>>0;}}}case 2:q=[c,d,e];$s=4;case 4:return q;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[c,d,e];}if($curGoroutine.asleep){var $f={$blk:S.ptr.prototype.unpack,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred};return $f;}}};S.prototype.unpack=function(a,b){return this.$val.unpack(a,b);};S.ptr.prototype.position=function(a,b){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=new Q.ptr("",0,0,0);d=this;e=((a>>0))-d.base>>0;c.Offset=e;g=d.unpack(e,b);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;c.Filename=f[0];c.Line=f[1];c.Column=f[2];$s=-1;return c;}return;}var $f={$blk:S.ptr.prototype.position,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};S.prototype.position=function(a,b){return this.$val.position(a,b);};S.ptr.prototype.PositionFor=function(a,b){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=new Q.ptr("",0,0,0);d=this;if(!((a===0))){$s=1;continue;}$s=2;continue;case 1:if(((a>>0))>0))>(d.base+d.size>>0)){$s=3;continue;}$s=4;continue;case 3:e=D.Sprintf("invalid Pos value %d (should be in [%d, %d])",new AF([new R(a),new $Int(d.base),new $Int((d.base+d.size>>0))]));$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$panic(new $String(e));case 4:f=d.position(a,b);$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}Q.copy(c,f);case 2:$s=-1;return c;}return;}var $f={$blk:S.ptr.prototype.PositionFor,$c:true,$r,a,b,c,d,e,f,$s};return $f;};S.prototype.PositionFor=function(a,b){return this.$val.PositionFor(a,b);};S.ptr.prototype.Position=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=new Q.ptr("",0,0,0);c=this;d=c.PositionFor(a,true);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}Q.copy(b,d);e=b;$s=2;case 2:return e;}return;}var $f={$blk:S.ptr.prototype.Position,$c:true,$r,a,b,c,d,e,$s};return $f;};S.prototype.Position=function(a){return this.$val.Position(a);};W=function(){return new V.ptr(new F.RWMutex.ptr(false,0),1,AB.nil,AA.nil);};$pkg.NewFileSet=W;V.ptr.prototype.Base=function(){var a,b;a=this;a.mutex.RLock();b=a.base;a.mutex.RUnlock();return b;};V.prototype.Base=function(){return this.$val.Base();};V.ptr.prototype.AddFile=function(a,b,c){var{a,b,c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{a,b,c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=this;d.mutex.Lock();$deferred.push([$methodVal(d.mutex,"Unlock"),[]]);if(b<0){b=d.base;}if(b= %d)",new AF([new $Int(b),new $Int(d.base)]));$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$panic(new $String(e));case 2:if(c<0){$s=4;continue;}$s=5;continue;case 4:f=D.Sprintf("invalid size %d (should be >= 0)",new AF([new $Int(c)]));$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$panic(new $String(f));case 5:g=new S.ptr(d,a,b,c,new F.Mutex.ptr(false),new AD([0]),AE.nil);b=b+((c+1>>0))>>0;if(b<0){$panic(new $String("token.Pos offset overflow (> 2G of source code in file set)"));}d.base=b;d.files=$append(d.files,g);d.last=g;h=g;$s=7;case 7:return h;}return;}}catch(err){$err=err;$s=-1;return AA.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:V.ptr.prototype.AddFile,$c:true,$r,a,b,c,d,e,f,g,h,$s,$deferred};return $f;}}};V.prototype.AddFile=function(a,b,c){return this.$val.AddFile(a,b,c);};V.ptr.prototype.Iterate=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=0;case 1:d=AA.nil;b.mutex.RLock();if(c=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+c]));}b.mutex.RUnlock();if(d===AA.nil){f=true;$s=5;continue s;}g=a(d);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=!g;case 5:if(f){$s=3;continue;}$s=4;continue;case 3:$s=2;continue;case 4:c=c+(1)>>0;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:V.ptr.prototype.Iterate,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};V.prototype.Iterate=function(a){return this.$val.Iterate(a);};X=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=E.Search(a[0].$length,(function(a,b){return function(c){var c;return((c<0||c>=a[0].$length)?($throwRuntimeError("index out of range"),undefined):a[0].$array[a[0].$offset+c]).base>b[0];};})(a,b));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c-1>>0;$s=2;case 2:return d;}return;}var $f={$blk:X,$c:true,$r,a,b,c,d,$s};return $f;};V.ptr.prototype.file=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;b.mutex.RLock();c=b.last;if(!(c===AA.nil)&&c.base<=((a>>0))&&((a>>0))<=(c.base+c.size>>0)){b.mutex.RUnlock();$s=-1;return c;}d=X(b.files,((a>>0)));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e>=0){g=(f=b.files,((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]));if(((a>>0))<=(g.base+g.size>>0)){b.mutex.RUnlock();b.mutex.Lock();b.last=g;b.mutex.Unlock();$s=-1;return g;}}b.mutex.RUnlock();$s=-1;return AA.nil;}return;}var $f={$blk:V.ptr.prototype.file,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};V.prototype.file=function(a){return this.$val.file(a);};V.ptr.prototype.File=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=AA.nil;c=this;if(!((a===0))){$s=1;continue;}$s=2;continue;case 1:d=c.file(a);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}b=d;case 2:$s=-1;return b;}return;}var $f={$blk:V.ptr.prototype.File,$c:true,$r,a,b,c,d,$s};return $f;};V.prototype.File=function(a){return this.$val.File(a);};V.ptr.prototype.PositionFor=function(a,b){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=new Q.ptr("",0,0,0);d=this;if(!((a===0))){$s=1;continue;}$s=2;continue;case 1:e=d.file(a);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!(f===AA.nil)){$s=4;continue;}$s=5;continue;case 4:g=f.position(a,b);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}Q.copy(c,g);h=c;$s=7;case 7:return h;case 5:case 2:$s=-1;return c;}return;}var $f={$blk:V.ptr.prototype.PositionFor,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};V.prototype.PositionFor=function(a,b){return this.$val.PositionFor(a,b);};V.ptr.prototype.Position=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=new Q.ptr("",0,0,0);c=this;d=c.PositionFor(a,true);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}Q.copy(b,d);e=b;$s=2;case 2:return e;}return;}var $f={$blk:V.ptr.prototype.Position,$c:true,$r,a,b,c,d,e,$s};return $f;};V.prototype.Position=function(a){return this.$val.Position(a);};Y=function(a,b){var a,b,c,d,e,f,g;c=0;d=a.$length;e=c;f=d;while(true){if(!(e>0)>>>0))>>>1>>>0)>>0));if(((g<0||g>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g])<=b){e=g+1>>0;}else{f=g;}}return e-1>>0;};G.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Precedence",name:"Precedence",pkg:"",typ:$funcType([],[$Int],false)},{prop:"IsLiteral",name:"IsLiteral",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsOperator",name:"IsOperator",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsKeyword",name:"IsKeyword",pkg:"",typ:$funcType([],[$Bool],false)}];Q.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];AG.methods=[{prop:"IsValid",name:"IsValid",pkg:"",typ:$funcType([],[$Bool],false)}];R.methods=[{prop:"IsValid",name:"IsValid",pkg:"",typ:$funcType([],[$Bool],false)}];AA.methods=[{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"Base",name:"Base",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Int],false)},{prop:"LineCount",name:"LineCount",pkg:"",typ:$funcType([],[$Int],false)},{prop:"AddLine",name:"AddLine",pkg:"",typ:$funcType([$Int],[],false)},{prop:"MergeLine",name:"MergeLine",pkg:"",typ:$funcType([$Int],[],false)},{prop:"SetLines",name:"SetLines",pkg:"",typ:$funcType([AD],[$Bool],false)},{prop:"SetLinesForContent",name:"SetLinesForContent",pkg:"",typ:$funcType([AH],[],false)},{prop:"LineStart",name:"LineStart",pkg:"",typ:$funcType([$Int],[R],false)},{prop:"AddLineInfo",name:"AddLineInfo",pkg:"",typ:$funcType([$Int,$String,$Int],[],false)},{prop:"AddLineColumnInfo",name:"AddLineColumnInfo",pkg:"",typ:$funcType([$Int,$String,$Int,$Int],[],false)},{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([$Int],[R],false)},{prop:"Offset",name:"Offset",pkg:"",typ:$funcType([R],[$Int],false)},{prop:"Line",name:"Line",pkg:"",typ:$funcType([R],[$Int],false)},{prop:"unpack",name:"unpack",pkg:"go/token",typ:$funcType([$Int,$Bool],[$String,$Int,$Int],false)},{prop:"position",name:"position",pkg:"go/token",typ:$funcType([R,$Bool],[Q],false)},{prop:"PositionFor",name:"PositionFor",pkg:"",typ:$funcType([R,$Bool],[Q],false)},{prop:"Position",name:"Position",pkg:"",typ:$funcType([R],[Q],false)}];AC.methods=[{prop:"Read",name:"Read",pkg:"",typ:$funcType([AI],[$error],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([AI],[$error],false)},{prop:"Base",name:"Base",pkg:"",typ:$funcType([],[$Int],false)},{prop:"AddFile",name:"AddFile",pkg:"",typ:$funcType([$String,$Int,$Int],[AA],false)},{prop:"Iterate",name:"Iterate",pkg:"",typ:$funcType([AJ],[],false)},{prop:"file",name:"file",pkg:"go/token",typ:$funcType([R],[AA],false)},{prop:"File",name:"File",pkg:"",typ:$funcType([R],[AA],false)},{prop:"PositionFor",name:"PositionFor",pkg:"",typ:$funcType([R,$Bool],[Q],false)},{prop:"Position",name:"Position",pkg:"",typ:$funcType([R],[Q],false)}];O.init("",[{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""},{prop:"Base",name:"Base",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Size",name:"Size",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Lines",name:"Lines",embedded:false,exported:true,typ:AD,tag:""},{prop:"Infos",name:"Infos",embedded:false,exported:true,typ:AE,tag:""}]);P.init("",[{prop:"Base",name:"Base",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Files",name:"Files",embedded:false,exported:true,typ:Z,tag:""}]);Q.init("",[{prop:"Filename",name:"Filename",embedded:false,exported:true,typ:$String,tag:""},{prop:"Offset",name:"Offset",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Line",name:"Line",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Column",name:"Column",embedded:false,exported:true,typ:$Int,tag:""}]);S.init("go/token",[{prop:"set",name:"set",embedded:false,exported:false,typ:AC,tag:""},{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"base",name:"base",embedded:false,exported:false,typ:$Int,tag:""},{prop:"size",name:"size",embedded:false,exported:false,typ:$Int,tag:""},{prop:"mutex",name:"mutex",embedded:false,exported:false,typ:F.Mutex,tag:""},{prop:"lines",name:"lines",embedded:false,exported:false,typ:AD,tag:""},{prop:"infos",name:"infos",embedded:false,exported:false,typ:AE,tag:""}]);T.init("",[{prop:"Offset",name:"Offset",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Filename",name:"Filename",embedded:false,exported:true,typ:$String,tag:""},{prop:"Line",name:"Line",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Column",name:"Column",embedded:false,exported:true,typ:$Int,tag:""}]);V.init("go/token",[{prop:"mutex",name:"mutex",embedded:false,exported:false,typ:F.RWMutex,tag:""},{prop:"base",name:"base",embedded:false,exported:false,typ:$Int,tag:""},{prop:"files",name:"files",embedded:false,exported:false,typ:AB,tag:""},{prop:"last",name:"last",embedded:false,exported:false,typ:AA,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=D.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}I=false;H=$toNativeArray($kindString,["ILLEGAL","EOF","COMMENT","","IDENT","INT","FLOAT","IMAG","CHAR","STRING","","","+","-","*","/","%","&","|","^","<<",">>","&^","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=","&^=","&&","||","<-","++","--","==","<",">","=","!","!=","<=",">=",":=","...","(","[","{",",",".",")","]","}",";",":","","","break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var","","","~"]);J();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["path/filepath"]=(function(){var $pkg={},$init,A,B,C,D,G,F,E,H,R,AZ,BA,BC,I,J,K,L,N,O,P,S,T,U,V,W,X,Z,AA,AB,AM,AN,AO;A=$packages["errors"];B=$packages["io/fs"];C=$packages["os"];D=$packages["runtime"];G=$packages["sort"];F=$packages["strings"];E=$packages["syscall"];H=$packages["unicode/utf8"];R=$pkg.lazybuf=$newType(0,$kindStruct,"filepath.lazybuf",true,"path/filepath",false,function(path_,buf_,w_,volAndPath_,volLen_){this.$val=this;if(arguments.length===0){this.path="";this.buf=BA.nil;this.w=0;this.volAndPath="";this.volLen=0;return;}this.path=path_;this.buf=buf_;this.w=w_;this.volAndPath=volAndPath_;this.volLen=volLen_;});AZ=$sliceType($String);BA=$sliceType($Uint8);BC=$ptrType(R);I=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=J(a);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:I,$c:true,$r,a,b,c,$s};return $f;};J=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=L(a);c="/";if(b>0;}d=$substring(a,0,b);e=d;f=0;g=b;h=b;i=g;j=h;case 1:if(!(i>0;}j=i;while(true){if(!(j>0;}k=false&&$substring(a,L(a))===".";if(j===i){$s=2;continue;}else if($substring(a,i,j)==="."&&!k){i=j;$s=1;continue;}else if($substring(a,i,j)===".."){l=0;l=e.length-1>>0;while(true){if(!(l>=b)){break;}if(C.IsPathSeparator(e.charCodeAt(l))){break;}l=l-(1)>>0;}if(l>0))===".."){if(e.length>b){e=e+(c);}e=e+("..");}else{e=$substring(e,0,l);}i=j;$s=1;continue;}if(e.length>L(e)&&!C.IsPathSeparator(e.charCodeAt((e.length-1>>0)))){e=e+(c);}e=e+($substring(a,i,j));n=C.Lstat(e);$s=3;case 3:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=m[0];p=m[1];if(!($interfaceIsEqual(p,$ifaceNil))){$s=-1;return["",p];}q=o.Mode();$s=6;case 6:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}if(((q&134217728)>>>0)===0){$s=4;continue;}$s=5;continue;case 4:r=o.Mode();$s=9;case 9:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=new B.FileMode(r).IsDir();$s=10;case 10:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}if(!s&&j>0;if(f>255){$s=-1;return["",A.New("EvalSymlinks: too many links")];}u=C.Readlink(e);$s=11;case 11:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;v=t[0];p=t[1];if(!($interfaceIsEqual(p,$ifaceNil))){$s=-1;return["",p];}if(k&&!K(v)){$s=2;continue;}a=v+$substring(a,j);w=L(v);if(w>0){if(w>0;}d=$substring(v,0,w);e=d;j=d.length;}else if(v.length>0&&C.IsPathSeparator(v.charCodeAt(0))){e=$substring(v,0,1);j=1;}else{x=0;x=e.length-1>>0;while(true){if(!(x>=b)){break;}if(C.IsPathSeparator(e.charCodeAt(x))){break;}x=x-(1)>>0;}if(x=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]);if(!(e==="")){return S(F.Join($subslice(a,d),"/"));}c++;}return"";};R.ptr.prototype.index=function(a){var a,b,c;b=this;if(!(b.buf===BA.nil)){return(c=b.buf,((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]));}return b.path.charCodeAt(a);};R.prototype.index=function(a){return this.$val.index(a);};R.ptr.prototype.append=function(a){var a,b,c,d;b=this;if(b.buf===BA.nil){if(b.w>0;return;}b.buf=$makeSlice(BA,b.path.length);$copyString(b.buf,$substring(b.path,0,b.w));}(c=b.buf,d=b.w,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=a));b.w=b.w+(1)>>0;};R.prototype.append=function(a){return this.$val.append(a);};R.ptr.prototype.string=function(){var a;a=this;if(a.buf===BA.nil){return $substring(a.volAndPath,0,(a.volLen+a.w>>0));}return $substring(a.volAndPath,0,a.volLen)+($bytesToString($subslice(a.buf,0,a.w)));};R.prototype.string=function(){return this.$val.string();};S=function(a){var a,b,c,d,e,f,g,h,i,j,k,l;b=a;c=L(a);a=$substring(a,c);if(a===""){if(c>1&&!((b.charCodeAt(1)===58))){return U(b);}return b+".";}d=C.IsPathSeparator(a.charCodeAt(0));e=a.length;f=new R.ptr(a,BA.nil,0,b,c);g=0;h=0;i=g;j=h;if(d){f.append(47);k=1;l=1;i=k;j=l;}while(true){if(!(i>0;}else if((a.charCodeAt(i)===46)&&((i+1>>0)===e)){i=i+(1)>>0;}else if((a.charCodeAt(i)===46)&&C.IsPathSeparator(a.charCodeAt((i+1>>0)))){i=i+(1)>>0;while(true){if(!(i>0;}if((f.w===0)&&L($substring(a,i))>0){f.append(46);}}else if((a.charCodeAt(i)===46)&&(a.charCodeAt((i+1>>0))===46)&&(((i+2>>0)===e)||C.IsPathSeparator(a.charCodeAt((i+2>>0))))){i=i+(2)>>0;if(f.w>j){f.w=f.w-(1)>>0;while(true){if(!(f.w>j&&!C.IsPathSeparator(f.index(f.w)))){break;}f.w=f.w-(1)>>0;}}else if(!d){if(f.w>0){f.append(47);}f.append(46);f.append(46);j=f.w;}}else{if(d&&!((f.w===1))||!d&&!((f.w===0))){f.append(47);}while(true){if(!(i>0;}}}if(f.w===0){f.append(46);}return U(f.string());};$pkg.Clean=S;T=function(a){var a;if(true){return a;}return F.ReplaceAll(a,"/","/");};$pkg.ToSlash=T;U=function(a){var a;if(true){return a;}return F.ReplaceAll(a,"/","/");};$pkg.FromSlash=U;V=function(a){var a;return N(a);};$pkg.SplitList=V;W=function(a){var a,b,c,d,e,f,g;b="";c="";d=AO(a);e=a.length-1>>0;while(true){if(!(e>=d.length&&!C.IsPathSeparator(a.charCodeAt(e)))){break;}e=e-(1)>>0;}f=$substring(a,0,(e+1>>0));g=$substring(a,(e+1>>0));b=f;c=g;return[b,c];};$pkg.Split=W;X=function(a){var a;return P(a);};$pkg.Join=X;Z=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=I(a);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:Z,$c:true,$r,a,b,c,$s};return $f;};$pkg.EvalSymlinks=Z;AA=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=O(a);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:AA,$c:true,$r,a,b,c,$s};return $f;};$pkg.Abs=AA;AB=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:if(K(a)){$s=-1;return[S(a),$ifaceNil];}c=C.Getwd();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return["",e];}$s=-1;return[X(new AZ([d,a])),$ifaceNil];}return;}var $f={$blk:AB,$c:true,$r,a,b,c,d,e,$s};return $f;};AM=function(a){var a,b;if(a===""){return".";}while(true){if(!(a.length>0&&C.IsPathSeparator(a.charCodeAt((a.length-1>>0))))){break;}a=$substring(a,0,(a.length-1>>0));}a=$substring(a,AO(a).length);b=a.length-1>>0;while(true){if(!(b>=0&&!C.IsPathSeparator(a.charCodeAt(b)))){break;}b=b-(1)>>0;}if(b>=0){a=$substring(a,(b+1>>0));}if(a===""){return"/";}return a;};$pkg.Base=AM;AN=function(a){var a,b,c,d;b=AO(a);c=a.length-1>>0;while(true){if(!(c>=b.length&&!C.IsPathSeparator(a.charCodeAt(c)))){break;}c=c-(1)>>0;}d=S($substring(a,b.length,(c+1>>0)));if(d==="."&&b.length>2){return b;}return b+d;};$pkg.Dir=AN;AO=function(a){var a;return $substring(a,0,L(a));};$pkg.VolumeName=AO;BC.methods=[{prop:"index",name:"index",pkg:"path/filepath",typ:$funcType([$Int],[$Uint8],false)},{prop:"append",name:"append",pkg:"path/filepath",typ:$funcType([$Uint8],[],false)},{prop:"string",name:"string",pkg:"path/filepath",typ:$funcType([],[$String],false)}];R.init("path/filepath",[{prop:"path",name:"path",embedded:false,exported:false,typ:$String,tag:""},{prop:"buf",name:"buf",embedded:false,exported:false,typ:BA,tag:""},{prop:"w",name:"w",embedded:false,exported:false,typ:$Int,tag:""},{prop:"volAndPath",name:"volAndPath",embedded:false,exported:false,typ:$String,tag:""},{prop:"volLen",name:"volLen",embedded:false,exported:false,typ:$Int,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.ErrBadPattern=A.New("syntax error in pattern");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["go/scanner"]=(function(){var $pkg={},$init,A,B,C,H,D,I,E,F,G,J,K,L,X,Y,AA,AB,AC,AD,AE,AF,AG,AH,M,N,O,P,Q,R,S,T,U,V,W;A=$packages["bytes"];B=$packages["fmt"];C=$packages["go/token"];H=$packages["io"];D=$packages["path/filepath"];I=$packages["sort"];E=$packages["strconv"];F=$packages["unicode"];G=$packages["unicode/utf8"];J=$pkg.ErrorHandler=$newType(4,$kindFunc,"scanner.ErrorHandler",true,"go/scanner",true,null);K=$pkg.Scanner=$newType(0,$kindStruct,"scanner.Scanner",true,"go/scanner",true,function(file_,dir_,src_,err_,mode_,ch_,offset_,rdOffset_,lineOffset_,insertSemi_,ErrorCount_){this.$val=this;if(arguments.length===0){this.file=AE.nil;this.dir="";this.src=AA.nil;this.err=$throwNilPointerError;this.mode=0;this.ch=0;this.offset=0;this.rdOffset=0;this.lineOffset=0;this.insertSemi=false;this.ErrorCount=0;return;}this.file=file_;this.dir=dir_;this.src=src_;this.err=err_;this.mode=mode_;this.ch=ch_;this.offset=offset_;this.rdOffset=rdOffset_;this.lineOffset=lineOffset_;this.insertSemi=insertSemi_;this.ErrorCount=ErrorCount_;});L=$pkg.Mode=$newType(4,$kindUint,"scanner.Mode",true,"go/scanner",true,null);X=$pkg.Error=$newType(0,$kindStruct,"scanner.Error",true,"go/scanner",true,function(Pos_,Msg_){this.$val=this;if(arguments.length===0){this.Pos=new C.Position.ptr("",0,0,0);this.Msg="";return;}this.Pos=Pos_;this.Msg=Msg_;});Y=$pkg.ErrorList=$newType(12,$kindSlice,"scanner.ErrorList",true,"go/scanner",true,null);AA=$sliceType($Uint8);AB=$sliceType($emptyInterface);AC=$sliceType($String);AD=$ptrType($Int);AE=$ptrType(C.File);AF=$ptrType(K);AG=$ptrType(Y);AH=$ptrType(X);K.ptr.prototype.next=function(){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.rdOffset=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]))>>0));e=1;f=b;g=e;if((f===0)){$s=5;continue;}if(f>=128){$s=6;continue;}$s=7;continue;case 5:$r=a.error(a.offset,"illegal character NUL");$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 6:h=G.DecodeRune($subslice(a.src,a.rdOffset));f=h[0];g=h[1];if((f===65533)&&(g===1)){$s=9;continue;}if((f===65279)&&a.offset>0){$s=10;continue;}$s=11;continue;case 9:$r=a.error(a.offset,"illegal UTF-8 encoding");$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 10:$r=a.error(a.offset,"illegal byte order mark");$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:case 7:case 4:a.rdOffset=a.rdOffset+(g)>>0;a.ch=f;$s=3;continue;case 2:a.offset=a.src.$length;if(a.ch===10){a.lineOffset=a.offset;a.file.AddLine(a.offset);}a.ch=-1;case 3:$s=-1;return;}return;}var $f={$blk:K.ptr.prototype.next,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};K.prototype.next=function(){return this.$val.next();};K.ptr.prototype.peek=function(){var a,b,c;a=this;if(a.rdOffset=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]));}return 0;};K.prototype.peek=function(){return this.$val.peek();};K.ptr.prototype.Init=function(a,b,c,d){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if(!((a.Size()===b.$length))){$s=1;continue;}$s=2;continue;case 1:f=B.Sprintf("file size (%d) does not match src len (%d)",new AB([new $Int(a.Size()),new $Int(b.$length)]));$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$panic(new $String(f));case 2:e.file=a;g=D.Split(a.Name());e.dir=g[0];e.src=b;e.err=c;e.mode=d;e.ch=32;e.offset=0;e.rdOffset=0;e.lineOffset=0;e.insertSemi=false;e.ErrorCount=0;$r=e.next();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(e.ch===65279){$s=5;continue;}$s=6;continue;case 5:$r=e.next();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:$s=-1;return;}return;}var $f={$blk:K.ptr.prototype.Init,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};K.prototype.Init=function(a,b,c,d){return this.$val.Init(a,b,c,d);};K.ptr.prototype.error=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!(c.err===$throwNilPointerError)){$s=1;continue;}$s=2;continue;case 1:d=c.file.Pos(a);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=c.file.Position(d);$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$r=c.err($clone(e,C.Position),b);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:c.ErrorCount=c.ErrorCount+(1)>>0;$s=-1;return;}return;}var $f={$blk:K.ptr.prototype.error,$c:true,$r,a,b,c,d,e,$s};return $f;};K.prototype.error=function(a,b){return this.$val.error(a,b);};K.ptr.prototype.errorf=function(a,b,c){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=a;f=B.Sprintf(b,c);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$r=d.error(e,g);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:K.ptr.prototype.errorf,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};K.prototype.errorf=function(a,b,c){return this.$val.errorf(a,b,c);};K.ptr.prototype.scanComment=function(){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.offset-1>>0;c=-1;d=0;if(a.ch===47){$s=1;continue;}$s=2;continue;case 1:$r=a.next();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:if(!(!((a.ch===10))&&a.ch>=0)){$s=5;continue;}if(a.ch===13){d=d+(1)>>0;}$r=a.next();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=4;continue;case 5:c=a.offset;if(a.ch===10){c=c+(1)>>0;}$s=7;continue;case 2:$r=a.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:if(!(a.ch>=0)){$s=10;continue;}e=a.ch;if(e===13){d=d+(1)>>0;}$r=a.next();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if((e===42)&&(a.ch===47)){$s=12;continue;}$s=13;continue;case 12:$r=a.next();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=a.offset;$s=7;continue;case 13:$s=9;continue;case 10:$r=a.error(b,"comment not terminated");$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:f=$subslice(a.src,b,a.offset);if(d>0&&f.$length>=2&&((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===47)&&((g=f.$length-1>>0,((g<0||g>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]))===13)){f=$subslice(f,0,(f.$length-1>>0));d=d-(1)>>0;}if(c>=0&&(((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===42)||(b===a.lineOffset))&&A.HasPrefix($subslice(f,2),M)){$s=16;continue;}$s=17;continue;case 16:$r=a.updateLineInfo(c,b,f);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:if(d>0){f=W(f,(1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===42);}$s=-1;return($bytesToString(f));}return;}var $f={$blk:K.ptr.prototype.scanComment,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};K.prototype.scanComment=function(){return this.$val.scanComment();};K.ptr.prototype.updateLineInfo=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if((1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1])===42){c=$subslice(c,0,(c.$length-2>>0));}c=$subslice(c,7);b=b+(7)>>0;e=N(c);f=e[0];g=e[1];h=e[2];if(f===0){$s=-1;return;}if(!h){$s=1;continue;}$s=2;continue;case 1:$r=d.error(b+f>>0,"invalid line number: "+($bytesToString($subslice(c,f))));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 2:i=0;j=0;k=i;l=j;m=N($subslice(c,0,(f-1>>0)));n=m[0];o=m[1];p=m[2];if(p){$s=4;continue;}$s=5;continue;case 4:q=n;r=f;f=q;n=r;s=o;t=g;k=s;l=t;if(l===0){$s=7;continue;}$s=8;continue;case 7:$r=d.error(b+n>>0,"invalid column number: "+($bytesToString($subslice(c,n))));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 8:c=$subslice(c,0,(n-1>>0));$s=6;continue;case 5:k=g;case 6:if(k===0){$s=10;continue;}$s=11;continue;case 10:$r=d.error(b+f>>0,"invalid line number: "+($bytesToString($subslice(c,f))));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 11:u=($bytesToString($subslice(c,0,(f-1>>0))));if(u===""&&p){$s=13;continue;}if(!(u==="")){$s=14;continue;}$s=15;continue;case 13:v=d.file.Pos(b);$s=16;case 16:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=d.file.Position(v);$s=17;case 17:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}u=w.Filename;$s=15;continue;case 14:u=D.Clean(u);if(!D.IsAbs(u)){u=D.Join(new AC([d.dir,u]));}case 15:d.file.AddLineColumnInfo(a,u,k,l);$s=-1;return;}return;}var $f={$blk:K.ptr.prototype.updateLineInfo,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};K.prototype.updateLineInfo=function(a,b,c){return this.$val.updateLineInfo(a,b,c);};N=function(a){var a,b,c,d,e;b=A.LastIndexByte(a,58);if(b<0){return[0,0,false];}c=E.ParseUint(($bytesToString($subslice(a,(b+1>>0)))),10,0);d=c[0];e=c[1];return[b+1>>0,((d.$low>>0)),$interfaceIsEqual(e,$ifaceNil)];};K.ptr.prototype.findLineEnd=function(){var{a,b,c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=[a];a[0]=this;$deferred.push([(function(a){return function $b(b){var{b,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:a[0].ch=47;a[0].offset=b;a[0].rdOffset=b+1>>0;$r=a[0].next();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,b,$s};return $f;};})(a),[a[0].offset-1>>0]]);case 1:if(!((a[0].ch===47)||(a[0].ch===42))){$s=2;continue;}if(a[0].ch===47){$s=3;continue;}$s=4;continue;case 3:b=true;$s=5;case 5:return b;case 4:$r=a[0].next();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:if(!(a[0].ch>=0)){$s=8;continue;}c=a[0].ch;if(c===10){$s=9;continue;}$s=10;continue;case 9:d=true;$s=11;case 11:return d;case 10:$r=a[0].next();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if((c===42)&&(a[0].ch===47)){$s=13;continue;}$s=14;continue;case 13:$r=a[0].next();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 14:$s=7;continue;case 8:$r=a[0].skipWhitespace();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(a[0].ch<0||(a[0].ch===10)){$s=17;continue;}$s=18;continue;case 17:e=true;$s=19;case 19:return e;case 18:if(!((a[0].ch===47))){$s=20;continue;}$s=21;continue;case 20:f=false;$s=22;case 22:return f;case 21:$r=a[0].next();$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=1;continue;case 2:g=false;$s=24;case 24:return g;}return;}}catch(err){$err=err;$s=-1;return false;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:K.ptr.prototype.findLineEnd,$c:true,$r,a,b,c,d,e,f,g,$s,$deferred};return $f;}}};K.prototype.findLineEnd=function(){return this.$val.findLineEnd();};O=function(a){var a;return 97<=R(a)&&R(a)<=122||(a===95)||a>=128&&F.IsLetter(a);};P=function(a){var a;return S(a)||a>=128&&F.IsDigit(a);};K.ptr.prototype.scanIdentifier=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.offset;c=$subslice(a.src,a.rdOffset);d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(97<=f&&f<=122||65<=f&&f<=90||(f===95)||48<=f&&f<=57){d++;$s=1;continue;}a.rdOffset=a.rdOffset+(e)>>0;if(0>0));a.offset=a.rdOffset;a.rdOffset=a.rdOffset+(1)>>0;$s=5;continue;case 4:$r=a.next();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:if(!(O(a.ch)||P(a.ch))){$s=8;continue;}$r=a.next();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 8:$s=5;continue;case 2:a.offset=a.src.$length;a.rdOffset=a.src.$length;a.ch=-1;case 5:$s=-1;return($bytesToString($subslice(a.src,b,a.offset)));}return;}var $f={$blk:K.ptr.prototype.scanIdentifier,$c:true,$r,a,b,c,d,e,f,$s};return $f;};K.prototype.scanIdentifier=function(){return this.$val.scanIdentifier();};Q=function(a){var a;if(48<=a&&a<=57){return(((a-48>>0)>>0));}else if(97<=R(a)&&R(a)<=102){return((((R(a)-97>>0)+10>>0)>>0));}return 16;};R=function(a){var a;return 32|a;};S=function(a){var a;return 48<=a&&a<=57;};T=function(a){var a;return 48<=a&&a<=57||97<=R(a)&&R(a)<=102;};K.ptr.prototype.digits=function(a,b){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=0;d=this;if(a<=10){$s=1;continue;}$s=2;continue;case 1:e=(((48+a>>0)>>0));case 4:if(!(S(d.ch)||(d.ch===95))){$s=5;continue;}f=1;if(d.ch===95){f=2;}else if(d.ch>=e&&b.$get()<0){b.$set(d.offset);}c=c|(f);$r=d.next();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=4;continue;case 5:$s=3;continue;case 2:case 7:if(!(T(d.ch)||(d.ch===95))){$s=8;continue;}g=1;if(d.ch===95){g=2;}c=c|(g);$r=d.next();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 8:case 3:$s=-1;return c;}return;}var $f={$blk:K.ptr.prototype.digits,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};K.prototype.digits=function(a,b){return this.$val.digits(a,b);};K.ptr.prototype.scanNumber=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=this;c=b.offset;d=0;e=10;f=0;g=0;a[0]=-1;if(!((b.ch===46))){$s=1;continue;}$s=2;continue;case 1:d=5;if(b.ch===48){$s=3;continue;}$s=4;continue;case 3:$r=b.next();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=R(b.ch);if(h===(120)){$s=7;continue;}if(h===(111)){$s=8;continue;}if(h===(98)){$s=9;continue;}$s=10;continue;case 7:$r=b.next();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=16;j=120;e=i;f=j;$s=11;continue;case 8:$r=b.next();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=8;l=111;e=k;f=l;$s=11;continue;case 9:$r=b.next();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=2;n=98;e=m;f=n;$s=11;continue;case 10:o=8;p=48;e=o;f=p;g=1;case 11:case 6:case 4:q=b.digits(e,(a.$ptr||(a.$ptr=new AD(function(){return this.$target[0];},function($v){this.$target[0]=$v;},a))));$s=15;case 15:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}g=g|(q);case 2:if(b.ch===46){$s=16;continue;}$s=17;continue;case 16:d=6;if((f===111)||(f===98)){$s=18;continue;}$s=19;continue;case 18:$r=b.error(b.offset,"invalid radix point in "+U(f));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 19:$r=b.next();$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}r=b.digits(e,(a.$ptr||(a.$ptr=new AD(function(){return this.$target[0];},function($v){this.$target[0]=$v;},a))));$s=22;case 22:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}g=g|(r);case 17:if((g&1)===0){$s=23;continue;}$s=24;continue;case 23:$r=b.error(b.offset,U(f)+" has no digits");$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 24:s=R(b.ch);if((s===101)||(s===112)){$s=26;continue;}if((f===120)&&(d===6)){$s=27;continue;}$s=28;continue;case 26:if((s===101)&&!((f===0))&&!((f===48))){$s=30;continue;}if((s===112)&&!((f===120))){$s=31;continue;}$s=32;continue;case 30:$r=b.errorf(b.offset,"%q exponent requires decimal mantissa",new AB([new $Int32(b.ch)]));$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=32;continue;case 31:$r=b.errorf(b.offset,"%q exponent requires hexadecimal mantissa",new AB([new $Int32(b.ch)]));$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 32:case 29:$r=b.next();$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=6;if((b.ch===43)||(b.ch===45)){$s=36;continue;}$s=37;continue;case 36:$r=b.next();$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 37:t=b.digits(10,AD.nil);$s=39;case 39:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;g=g|(u);if((u&1)===0){$s=40;continue;}$s=41;continue;case 40:$r=b.error(b.offset,"exponent has no digits");$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 41:$s=28;continue;case 27:$r=b.error(b.offset,"hexadecimal mantissa requires a 'p' exponent");$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 28:if(b.ch===105){$s=44;continue;}$s=45;continue;case 44:d=7;$r=b.next();$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 45:v=($bytesToString($subslice(b.src,c,b.offset)));if((d===5)&&a[0]>=0){$s=47;continue;}$s=48;continue;case 47:$r=b.errorf(a[0],"invalid digit %q in %s",new AB([new $Uint8(v.charCodeAt((a[0]-c>>0))),new $String(U(f))]));$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 48:if(!(((g&2)===0))){$s=50;continue;}$s=51;continue;case 50:w=V(v);if(w>=0){$s=52;continue;}$s=53;continue;case 52:$r=b.error(c+w>>0,"'_' must separate successive digits");$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 53:case 51:$s=-1;return[d,v];}return;}var $f={$blk:K.ptr.prototype.scanNumber,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};K.prototype.scanNumber=function(){return this.$val.scanNumber();};U=function(a){var a,b;b=a;if(b===(120)){return"hexadecimal literal";}else if((b===(111))||(b===(48))){return"octal literal";}else if(b===(98)){return"binary literal";}return"decimal literal";};V=function(a){var a,b,c,d,e;b=32;c=46;d=0;if(a.length>=2&&(a.charCodeAt(0)===48)){b=R(((a.charCodeAt(1)>>0)));if((b===120)||(b===111)||(b===98)){c=48;d=2;}}while(true){if(!(d>0));if((c===95)){if(!((e===48))){return d;}}else if(S(c)||(b===120)&&T(c)){c=48;}else{if(e===95){return d-1>>0;}c=46;}d=d+(1)>>0;}if(c===95){return a.length-1>>0;}return-1;};K.ptr.prototype.scanEscape=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.offset;d=0;e=0;f=0;g=e;h=f;i=b.ch;if((i===(97))||(i===(98))||(i===(102))||(i===(110))||(i===(114))||(i===(116))||(i===(118))||(i===(92))||(i===(a))){$s=2;continue;}if((i===(48))||(i===(49))||(i===(50))||(i===(51))||(i===(52))||(i===(53))||(i===(54))||(i===(55))){$s=3;continue;}if(i===(120)){$s=4;continue;}if(i===(117)){$s=5;continue;}if(i===(85)){$s=6;continue;}$s=7;continue;case 2:$r=b.next();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return true;case 3:j=3;k=8;l=255;d=j;g=k;h=l;$s=8;continue;case 4:$r=b.next();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=2;n=16;o=255;d=m;g=n;h=o;$s=8;continue;case 5:$r=b.next();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=4;q=16;r=1114111;d=p;g=q;h=r;$s=8;continue;case 6:$r=b.next();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s=8;t=16;u=1114111;d=s;g=t;h=u;$s=8;continue;case 7:v="unknown escape sequence";if(b.ch<0){v="escape sequence not terminated";}$r=b.error(c,v);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 8:case 1:w=0;case 14:if(!(d>0)){$s=15;continue;}x=((Q(b.ch)>>>0));if(x>=g){$s=16;continue;}$s=17;continue;case 16:y=B.Sprintf("illegal character %#U in escape sequence",new AB([new $Int32(b.ch)]));$s=18;case 18:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;if(b.ch<0){z="escape sequence not terminated";}$r=b.error(b.offset,z);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 17:w=($imul(w,g)>>>0)+x>>>0;$r=b.next();$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=d-(1)>>0;$s=14;continue;case 15:if(w>h||55296<=w&&w<57344){$s=21;continue;}$s=22;continue;case 21:$r=b.error(c,"escape sequence is invalid Unicode code point");$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 22:$s=-1;return true;}return;}var $f={$blk:K.ptr.prototype.scanEscape,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};K.prototype.scanEscape=function(a){return this.$val.scanEscape(a);};K.ptr.prototype.scanRune=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.offset-1>>0;c=true;d=0;case 1:e=a.ch;if((e===10)||e<0){$s=3;continue;}$s=4;continue;case 3:if(c){$s=5;continue;}$s=6;continue;case 5:$r=a.error(b,"rune literal not terminated");$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=false;case 6:$s=2;continue;case 4:$r=a.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(e===39){$s=2;continue;}d=d+(1)>>0;if(e===92){$s=9;continue;}$s=10;continue;case 9:f=a.scanEscape(39);$s=13;case 13:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(!f){$s=11;continue;}$s=12;continue;case 11:c=false;case 12:case 10:$s=1;continue;case 2:if(c&&!((d===1))){$s=14;continue;}$s=15;continue;case 14:$r=a.error(b,"illegal rune literal");$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 15:$s=-1;return($bytesToString($subslice(a.src,b,a.offset)));}return;}var $f={$blk:K.ptr.prototype.scanRune,$c:true,$r,a,b,c,d,e,f,$s};return $f;};K.prototype.scanRune=function(){return this.$val.scanRune();};K.ptr.prototype.scanString=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.offset-1>>0;case 1:c=a.ch;if((c===10)||c<0){$s=3;continue;}$s=4;continue;case 3:$r=a.error(b,"string literal not terminated");$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=2;continue;case 4:$r=a.next();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c===34){$s=2;continue;}if(c===92){$s=7;continue;}$s=8;continue;case 7:d=a.scanEscape(34);$s=9;case 9:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;case 8:$s=1;continue;case 2:$s=-1;return($bytesToString($subslice(a.src,b,a.offset)));}return;}var $f={$blk:K.ptr.prototype.scanString,$c:true,$r,a,b,c,d,$s};return $f;};K.prototype.scanString=function(){return this.$val.scanString();};W=function(a,b){var a,b,c,d,e,f,g,h,i,j;c=$makeSlice(AA,a.$length);d=0;e=a;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(!((h===13))||b&&d>2&&((i=d-1>>0,((i<0||i>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i]))===42)&&(g+1>>0)>0,((j<0||j>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+j]))===47)){((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=h);d=d+(1)>>0;}f++;}return $subslice(c,0,d);};K.ptr.prototype.scanRawString=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.offset-1>>0;c=false;case 1:d=a.ch;if(d<0){$s=3;continue;}$s=4;continue;case 3:$r=a.error(b,"raw string literal not terminated");$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=2;continue;case 4:$r=a.next();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(d===96){$s=2;continue;}if(d===13){c=true;}$s=1;continue;case 2:e=$subslice(a.src,b,a.offset);if(c){e=W(e,false);}$s=-1;return($bytesToString(e));}return;}var $f={$blk:K.ptr.prototype.scanRawString,$c:true,$r,a,b,c,d,e,$s};return $f;};K.prototype.scanRawString=function(){return this.$val.scanRawString();};K.ptr.prototype.skipWhitespace=function(){var{a,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;case 1:if(!((a.ch===32)||(a.ch===9)||(a.ch===10)&&!a.insertSemi||(a.ch===13))){$s=2;continue;}$r=a.next();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:K.ptr.prototype.skipWhitespace,$c:true,$r,a,$s};return $f;};K.prototype.skipWhitespace=function(){return this.$val.skipWhitespace();};K.ptr.prototype.switch2=function(a,b){var{a,b,c,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(c.ch===61){$s=1;continue;}$s=2;continue;case 1:$r=c.next();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b;case 2:$s=-1;return a;}return;}var $f={$blk:K.ptr.prototype.switch2,$c:true,$r,a,b,c,$s};return $f;};K.prototype.switch2=function(a,b){return this.$val.switch2(a,b);};K.ptr.prototype.switch3=function(a,b,c,d){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if(e.ch===61){$s=1;continue;}$s=2;continue;case 1:$r=e.next();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b;case 2:if(e.ch===c){$s=4;continue;}$s=5;continue;case 4:$r=e.next();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return d;case 5:$s=-1;return a;}return;}var $f={$blk:K.ptr.prototype.switch3,$c:true,$r,a,b,c,d,e,$s};return $f;};K.prototype.switch3=function(a,b,c,d){return this.$val.switch3(a,b,c,d);};K.ptr.prototype.switch4=function(a,b,c,d,e){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;if(f.ch===61){$s=1;continue;}$s=2;continue;case 1:$r=f.next();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b;case 2:if(f.ch===c){$s=4;continue;}$s=5;continue;case 4:$r=f.next();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(f.ch===61){$s=7;continue;}$s=8;continue;case 7:$r=f.next();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return e;case 8:$s=-1;return d;case 5:$s=-1;return a;}return;}var $f={$blk:K.ptr.prototype.switch4,$c:true,$r,a,b,c,d,e,f,$s};return $f;};K.prototype.switch4=function(a,b,c,d,e){return this.$val.switch4(a,b,c,d,e);};K.ptr.prototype.Scan=function(){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=0;b=0;c="";d=this;case 1:$r=d.skipWhitespace();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=d.file.Pos(d.offset);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}a=e;f=false;g=d.ch;if(O(g)){$s=5;continue;}if(S(g)||(g===46)&&S(((d.peek()>>0)))){$s=6;continue;}$s=7;continue;case 5:h=d.scanIdentifier();$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}c=h;if(c.length>1){b=C.Lookup(c);i=b;if((i===(4))||(i===(61))||(i===(65))||(i===(69))||(i===(80))){f=true;}}else{f=true;b=4;}$s=8;continue;case 6:f=true;k=d.scanNumber();$s=10;case 10:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;b=j[0];c=j[1];$s=8;continue;case 7:$r=d.next();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=g;if(l===(-1)){$s=13;continue;}if(l===(10)){$s=14;continue;}if(l===(34)){$s=15;continue;}if(l===(39)){$s=16;continue;}if(l===(96)){$s=17;continue;}if(l===(58)){$s=18;continue;}if(l===(46)){$s=19;continue;}if(l===(44)){$s=20;continue;}if(l===(59)){$s=21;continue;}if(l===(40)){$s=22;continue;}if(l===(41)){$s=23;continue;}if(l===(91)){$s=24;continue;}if(l===(93)){$s=25;continue;}if(l===(123)){$s=26;continue;}if(l===(125)){$s=27;continue;}if(l===(43)){$s=28;continue;}if(l===(45)){$s=29;continue;}if(l===(42)){$s=30;continue;}if(l===(47)){$s=31;continue;}if(l===(37)){$s=32;continue;}if(l===(94)){$s=33;continue;}if(l===(60)){$s=34;continue;}if(l===(62)){$s=35;continue;}if(l===(61)){$s=36;continue;}if(l===(33)){$s=37;continue;}if(l===(38)){$s=38;continue;}if(l===(124)){$s=39;continue;}if(l===(126)){$s=40;continue;}$s=41;continue;case 13:if(d.insertSemi){d.insertSemi=false;m=a;n=57;o="\n";a=m;b=n;c=o;$s=-1;return[a,b,c];}b=1;$s=42;continue;case 14:d.insertSemi=false;p=a;q=57;r="\n";a=p;b=q;c=r;$s=-1;return[a,b,c];case 15:f=true;b=9;s=d.scanString();$s=43;case 43:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}c=s;$s=42;continue;case 16:f=true;b=8;t=d.scanRune();$s=44;case 44:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}c=t;$s=42;continue;case 17:f=true;b=9;u=d.scanRawString();$s=45;case 45:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}c=u;$s=42;continue;case 18:v=d.switch2(58,47);$s=46;case 46:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}b=v;$s=42;continue;case 19:b=53;if((d.ch===46)&&(d.peek()===46)){$s=47;continue;}$s=48;continue;case 47:$r=d.next();$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.next();$s=50;case 50:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=48;case 48:$s=42;continue;case 20:b=52;$s=42;continue;case 21:b=57;c=";";$s=42;continue;case 22:b=49;$s=42;continue;case 23:f=true;b=54;$s=42;continue;case 24:b=50;$s=42;continue;case 25:f=true;b=55;$s=42;continue;case 26:b=51;$s=42;continue;case 27:f=true;b=56;$s=42;continue;case 28:w=d.switch3(12,23,43,37);$s=51;case 51:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}b=w;if(b===37){f=true;}$s=42;continue;case 29:x=d.switch3(13,24,45,38);$s=52;case 52:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}b=x;if(b===38){f=true;}$s=42;continue;case 30:y=d.switch2(14,25);$s=53;case 53:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}b=y;$s=42;continue;case 31:if((d.ch===47)||(d.ch===42)){$s=54;continue;}$s=55;continue;case 54:if(!(d.insertSemi)){z=false;$s=59;continue s;}aa=d.findLineEnd();$s=60;case 60:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;case 59:if(z){$s=57;continue;}$s=58;continue;case 57:d.ch=47;ab=d.file.Offset(a);$s=61;case 61:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}d.offset=ab;d.rdOffset=d.offset+1>>0;d.insertSemi=false;ac=a;ad=57;ae="\n";a=ac;b=ad;c=ae;$s=-1;return[a,b,c];case 58:af=d.scanComment();$s=62;case 62:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;if(((d.mode&1)>>>0)===0){$s=63;continue;}$s=64;continue;case 63:d.insertSemi=false;$s=1;continue;case 64:b=2;c=ag;$s=56;continue;case 55:ah=d.switch2(15,26);$s=65;case 65:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}b=ah;case 56:$s=42;continue;case 32:ai=d.switch2(16,27);$s=66;case 66:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}b=ai;$s=42;continue;case 33:aj=d.switch2(19,30);$s=67;case 67:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}b=aj;$s=42;continue;case 34:if(d.ch===45){$s=68;continue;}$s=69;continue;case 68:$r=d.next();$s=71;case 71:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=36;$s=70;continue;case 69:ak=d.switch4(40,45,60,20,31);$s=72;case 72:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}b=ak;case 70:$s=42;continue;case 35:al=d.switch4(41,46,62,21,32);$s=73;case 73:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}b=al;$s=42;continue;case 36:am=d.switch2(42,39);$s=74;case 74:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}b=am;$s=42;continue;case 37:an=d.switch2(43,44);$s=75;case 75:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}b=an;$s=42;continue;case 38:if(d.ch===94){$s=76;continue;}$s=77;continue;case 76:$r=d.next();$s=79;case 79:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ao=d.switch2(22,33);$s=80;case 80:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}b=ao;$s=78;continue;case 77:ap=d.switch3(17,28,38,34);$s=81;case 81:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}b=ap;case 78:$s=42;continue;case 39:aq=d.switch3(18,29,124,35);$s=82;case 82:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}b=aq;$s=42;continue;case 40:b=88;$s=42;continue;case 41:if(!((g===65279))){$s=83;continue;}$s=84;continue;case 83:ar=d.file.Offset(a);$s=85;case 85:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}$r=d.errorf(ar,"illegal character %#U",new AB([new $Int32(g)]));$s=86;case 86:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 84:f=d.insertSemi;b=0;c=($encodeRune(g));case 42:case 12:case 8:case 4:if(((d.mode&2)>>>0)===0){d.insertSemi=f;}$s=-1;return[a,b,c];}return;}var $f={$blk:K.ptr.prototype.Scan,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};K.prototype.Scan=function(){return this.$val.Scan();};X.ptr.prototype.Error=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(!(a.Pos.Filename==="")||a.Pos.IsValid()){$s=1;continue;}$s=2;continue;case 1:b=$clone(a.Pos,C.Position).String();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b+": "+a.Msg;$s=4;case 4:return c;case 2:$s=-1;return a.Msg;}return;}var $f={$blk:X.ptr.prototype.Error,$c:true,$r,a,b,c,$s};return $f;};X.prototype.Error=function(){return this.$val.Error();};$ptrType(Y).prototype.Add=function(a,b){var a,b,c;c=this;c.$set($append(c.$get(),new X.ptr($clone(a,C.Position),b)));};$ptrType(Y).prototype.Reset=function(){var a;a=this;a.$set($subslice((a.$get()),0,0));};Y.prototype.Len=function(){var a;a=this;return a.$length;};$ptrType(Y).prototype.Len=function(){return this.$get().Len();};Y.prototype.Swap=function(a,b){var a,b,c,d,e;c=this;d=((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]);e=((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]);((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]=d);((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]=e);};$ptrType(Y).prototype.Swap=function(a,b){return this.$get().Swap(a,b);};Y.prototype.Less=function(a,b){var a,b,c,d,e;c=this;d=((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]).Pos;e=((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]).Pos;if(!(d.Filename===e.Filename)){return d.Filename=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]).Msg<((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]).Msg;};$ptrType(Y).prototype.Less=function(a,b){return this.$get().Less(a,b);};Y.prototype.Sort=function(){var{a,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=I.Sort(a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:Y.prototype.Sort,$c:true,$r,a,$s};return $f;};$ptrType(Y).prototype.Sort=function(){return this.$get().Sort();};$ptrType(Y).prototype.RemoveMultiples=function(){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=I.Sort(a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=new C.Position.ptr("",0,0,0);c=0;d=a.$get();e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(!(f.Pos.Filename===b.Filename)||!((f.Pos.Line===b.Line))){C.Position.copy(b,f.Pos);(g=a.$get(),((c<0||c>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+c]=f));c=c+(1)>>0;}e++;}a.$set($subslice((a.$get()),0,c));$s=-1;return;}return;}var $f={$blk:$ptrType(Y).prototype.RemoveMultiples,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};Y.prototype.Error=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.$length;if(b===(0)){$s=2;continue;}if(b===(1)){$s=3;continue;}$s=4;continue;case 2:$s=-1;return"no errors";case 3:c=$clone((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]),X).Error();$s=5;case 5:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=6;case 6:return d;case 4:case 1:e=B.Sprintf("%s (and %d more errors)",new AB([(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]),new $Int((a.$length-1>>0))]));$s=7;case 7:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=8;case 8:return f;}return;}var $f={$blk:Y.prototype.Error,$c:true,$r,a,b,c,d,e,f,$s};return $f;};$ptrType(Y).prototype.Error=function(){return this.$get().Error();};Y.prototype.Err=function(){var a;a=this;if(a.$length===0){return $ifaceNil;}return a;};$ptrType(Y).prototype.Err=function(){return this.$get().Err();};AF.methods=[{prop:"next",name:"next",pkg:"go/scanner",typ:$funcType([],[],false)},{prop:"peek",name:"peek",pkg:"go/scanner",typ:$funcType([],[$Uint8],false)},{prop:"Init",name:"Init",pkg:"",typ:$funcType([AE,AA,J,L],[],false)},{prop:"error",name:"error",pkg:"go/scanner",typ:$funcType([$Int,$String],[],false)},{prop:"errorf",name:"errorf",pkg:"go/scanner",typ:$funcType([$Int,$String,AB],[],true)},{prop:"scanComment",name:"scanComment",pkg:"go/scanner",typ:$funcType([],[$String],false)},{prop:"updateLineInfo",name:"updateLineInfo",pkg:"go/scanner",typ:$funcType([$Int,$Int,AA],[],false)},{prop:"findLineEnd",name:"findLineEnd",pkg:"go/scanner",typ:$funcType([],[$Bool],false)},{prop:"scanIdentifier",name:"scanIdentifier",pkg:"go/scanner",typ:$funcType([],[$String],false)},{prop:"digits",name:"digits",pkg:"go/scanner",typ:$funcType([$Int,AD],[$Int],false)},{prop:"scanNumber",name:"scanNumber",pkg:"go/scanner",typ:$funcType([],[C.Token,$String],false)},{prop:"scanEscape",name:"scanEscape",pkg:"go/scanner",typ:$funcType([$Int32],[$Bool],false)},{prop:"scanRune",name:"scanRune",pkg:"go/scanner",typ:$funcType([],[$String],false)},{prop:"scanString",name:"scanString",pkg:"go/scanner",typ:$funcType([],[$String],false)},{prop:"scanRawString",name:"scanRawString",pkg:"go/scanner",typ:$funcType([],[$String],false)},{prop:"skipWhitespace",name:"skipWhitespace",pkg:"go/scanner",typ:$funcType([],[],false)},{prop:"switch2",name:"switch2",pkg:"go/scanner",typ:$funcType([C.Token,C.Token],[C.Token],false)},{prop:"switch3",name:"switch3",pkg:"go/scanner",typ:$funcType([C.Token,C.Token,$Int32,C.Token],[C.Token],false)},{prop:"switch4",name:"switch4",pkg:"go/scanner",typ:$funcType([C.Token,C.Token,$Int32,C.Token,C.Token],[C.Token],false)},{prop:"Scan",name:"Scan",pkg:"",typ:$funcType([],[C.Pos,C.Token,$String],false)}];X.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];Y.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)},{prop:"Sort",name:"Sort",pkg:"",typ:$funcType([],[],false)},{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Err",name:"Err",pkg:"",typ:$funcType([],[$error],false)}];AG.methods=[{prop:"Add",name:"Add",pkg:"",typ:$funcType([C.Position,$String],[],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([],[],false)},{prop:"RemoveMultiples",name:"RemoveMultiples",pkg:"",typ:$funcType([],[],false)}];J.init([C.Position,$String],[],false);K.init("go/scanner",[{prop:"file",name:"file",embedded:false,exported:false,typ:AE,tag:""},{prop:"dir",name:"dir",embedded:false,exported:false,typ:$String,tag:""},{prop:"src",name:"src",embedded:false,exported:false,typ:AA,tag:""},{prop:"err",name:"err",embedded:false,exported:false,typ:J,tag:""},{prop:"mode",name:"mode",embedded:false,exported:false,typ:L,tag:""},{prop:"ch",name:"ch",embedded:false,exported:false,typ:$Int32,tag:""},{prop:"offset",name:"offset",embedded:false,exported:false,typ:$Int,tag:""},{prop:"rdOffset",name:"rdOffset",embedded:false,exported:false,typ:$Int,tag:""},{prop:"lineOffset",name:"lineOffset",embedded:false,exported:false,typ:$Int,tag:""},{prop:"insertSemi",name:"insertSemi",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"ErrorCount",name:"ErrorCount",embedded:false,exported:true,typ:$Int,tag:""}]);X.init("",[{prop:"Pos",name:"Pos",embedded:false,exported:true,typ:C.Position,tag:""},{prop:"Msg",name:"Msg",embedded:false,exported:true,typ:$String,tag:""}]);Y.init(AH);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}M=(new AA($stringToBytes("line ")));}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["go/ast"]=(function(){var $pkg={},$init,B,A,D,C,F,G,H,I,E,J,K,Q,S,U,W,AC,AH,AJ,AQ,AR,BZ,CA,CB,CC,CD,CE,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,CY,CZ,DA,DB,DC,DD,DE,DF,DG,DH,DK,DL,DM,DN,DO,DP,DQ,DR,DS,DT,DU,DV,DW,DX,DY,DZ,EA,EB,EC,ED,EE,EF,EG,EH,EI,EJ,EK,EL,EM,EN,EO,EP,EQ,ER,ES,ET,EU,EV,EW,EX,EY,EZ,FA,FB,FC,FD,FE,FF,FG,FH,FI,FJ,FK,FL,FM,FN,FO,FP,FQ,FR,FS,FT,FU,FV,FW,FX,FY,FZ,GA,GB,GC,GD,GE,GF,GG,GH,GI,GJ,GK,GL,GM,GN,GO,GP,GQ,GR,GS,GT,GU,GV,GX,GY,GZ,HA,HB,HC,HD,HE,HF,HI,HK,HL,HN,HO,HP,HQ,HR,X,AI,L,M,N,O,P,R,T,V,AD,AE,AF,AK,AL,AM,AN,AO,AP,AS,CF,CG,CH,DI,DJ;B=$packages["bytes"];A=$packages["fmt"];D=$packages["go/scanner"];C=$packages["go/token"];F=$packages["io"];G=$packages["os"];H=$packages["reflect"];I=$packages["sort"];E=$packages["strconv"];J=$packages["strings"];K=$pkg.Visitor=$newType(8,$kindInterface,"ast.Visitor",true,"go/ast",true,null);Q=$pkg.inspector=$newType(4,$kindFunc,"ast.inspector",true,"go/ast",false,null);S=$pkg.Scope=$newType(0,$kindStruct,"ast.Scope",true,"go/ast",true,function(Outer_,Objects_){this.$val=this;if(arguments.length===0){this.Outer=GV.nil;this.Objects=false;return;}this.Outer=Outer_;this.Objects=Objects_;});U=$pkg.Object=$newType(0,$kindStruct,"ast.Object",true,"go/ast",true,function(Kind_,Name_,Decl_,Data_,Type_){this.$val=this;if(arguments.length===0){this.Kind=0;this.Name="";this.Decl=$ifaceNil;this.Data=$ifaceNil;this.Type=$ifaceNil;return;}this.Kind=Kind_;this.Name=Name_;this.Decl=Decl_;this.Data=Data_;this.Type=Type_;});W=$pkg.ObjKind=$newType(4,$kindInt,"ast.ObjKind",true,"go/ast",true,null);AC=$pkg.FieldFilter=$newType(4,$kindFunc,"ast.FieldFilter",true,"go/ast",true,null);AH=$pkg.printer=$newType(0,$kindStruct,"ast.printer",true,"go/ast",false,function(output_,fset_,filter_,ptrmap_,indent_,last_,line_){this.$val=this;if(arguments.length===0){this.output=$ifaceNil;this.fset=GX.nil;this.filter=$throwNilPointerError;this.ptrmap=false;this.indent=0;this.last=0;this.line=0;return;}this.output=output_;this.fset=fset_;this.filter=filter_;this.ptrmap=ptrmap_;this.indent=indent_;this.last=last_;this.line=line_;});AJ=$pkg.localError=$newType(0,$kindStruct,"ast.localError",true,"go/ast",false,function(err_){this.$val=this;if(arguments.length===0){this.err=$ifaceNil;return;}this.err=err_;});AQ=$pkg.posSpan=$newType(0,$kindStruct,"ast.posSpan",true,"go/ast",false,function(Start_,End_){this.$val=this;if(arguments.length===0){this.Start=0;this.End=0;return;}this.Start=Start_;this.End=End_;});AR=$pkg.cgPos=$newType(0,$kindStruct,"ast.cgPos",true,"go/ast",false,function(left_,cg_){this.$val=this;if(arguments.length===0){this.left=false;this.cg=EQ.nil;return;}this.left=left_;this.cg=cg_;});BZ=$pkg.Node=$newType(8,$kindInterface,"ast.Node",true,"go/ast",true,null);CA=$pkg.Expr=$newType(8,$kindInterface,"ast.Expr",true,"go/ast",true,null);CB=$pkg.Stmt=$newType(8,$kindInterface,"ast.Stmt",true,"go/ast",true,null);CC=$pkg.Decl=$newType(8,$kindInterface,"ast.Decl",true,"go/ast",true,null);CD=$pkg.Comment=$newType(0,$kindStruct,"ast.Comment",true,"go/ast",true,function(Slash_,Text_){this.$val=this;if(arguments.length===0){this.Slash=0;this.Text="";return;}this.Slash=Slash_;this.Text=Text_;});CE=$pkg.CommentGroup=$newType(0,$kindStruct,"ast.CommentGroup",true,"go/ast",true,function(List_){this.$val=this;if(arguments.length===0){this.List=HC.nil;return;}this.List=List_;});CI=$pkg.Field=$newType(0,$kindStruct,"ast.Field",true,"go/ast",true,function(Doc_,Names_,Type_,Tag_,Comment_){this.$val=this;if(arguments.length===0){this.Doc=EQ.nil;this.Names=HF.nil;this.Type=$ifaceNil;this.Tag=EV.nil;this.Comment=EQ.nil;return;}this.Doc=Doc_;this.Names=Names_;this.Type=Type_;this.Tag=Tag_;this.Comment=Comment_;});CJ=$pkg.FieldList=$newType(0,$kindStruct,"ast.FieldList",true,"go/ast",true,function(Opening_,List_,Closing_){this.$val=this;if(arguments.length===0){this.Opening=0;this.List=HN.nil;this.Closing=0;return;}this.Opening=Opening_;this.List=List_;this.Closing=Closing_;});CK=$pkg.BadExpr=$newType(0,$kindStruct,"ast.BadExpr",true,"go/ast",true,function(From_,To_){this.$val=this;if(arguments.length===0){this.From=0;this.To=0;return;}this.From=From_;this.To=To_;});CL=$pkg.Ident=$newType(0,$kindStruct,"ast.Ident",true,"go/ast",true,function(NamePos_,Name_,Obj_){this.$val=this;if(arguments.length===0){this.NamePos=0;this.Name="";this.Obj=GU.nil;return;}this.NamePos=NamePos_;this.Name=Name_;this.Obj=Obj_;});CM=$pkg.Ellipsis=$newType(0,$kindStruct,"ast.Ellipsis",true,"go/ast",true,function(Ellipsis_,Elt_){this.$val=this;if(arguments.length===0){this.Ellipsis=0;this.Elt=$ifaceNil;return;}this.Ellipsis=Ellipsis_;this.Elt=Elt_;});CN=$pkg.BasicLit=$newType(0,$kindStruct,"ast.BasicLit",true,"go/ast",true,function(ValuePos_,Kind_,Value_){this.$val=this;if(arguments.length===0){this.ValuePos=0;this.Kind=0;this.Value="";return;}this.ValuePos=ValuePos_;this.Kind=Kind_;this.Value=Value_;});CO=$pkg.FuncLit=$newType(0,$kindStruct,"ast.FuncLit",true,"go/ast",true,function(Type_,Body_){this.$val=this;if(arguments.length===0){this.Type=FM.nil;this.Body=GC.nil;return;}this.Type=Type_;this.Body=Body_;});CP=$pkg.CompositeLit=$newType(0,$kindStruct,"ast.CompositeLit",true,"go/ast",true,function(Type_,Lbrace_,Elts_,Rbrace_,Incomplete_){this.$val=this;if(arguments.length===0){this.Type=$ifaceNil;this.Lbrace=0;this.Elts=HO.nil;this.Rbrace=0;this.Incomplete=false;return;}this.Type=Type_;this.Lbrace=Lbrace_;this.Elts=Elts_;this.Rbrace=Rbrace_;this.Incomplete=Incomplete_;});CQ=$pkg.ParenExpr=$newType(0,$kindStruct,"ast.ParenExpr",true,"go/ast",true,function(Lparen_,X_,Rparen_){this.$val=this;if(arguments.length===0){this.Lparen=0;this.X=$ifaceNil;this.Rparen=0;return;}this.Lparen=Lparen_;this.X=X_;this.Rparen=Rparen_;});CR=$pkg.SelectorExpr=$newType(0,$kindStruct,"ast.SelectorExpr",true,"go/ast",true,function(X_,Sel_){this.$val=this;if(arguments.length===0){this.X=$ifaceNil;this.Sel=EU.nil;return;}this.X=X_;this.Sel=Sel_;});CS=$pkg.IndexExpr=$newType(0,$kindStruct,"ast.IndexExpr",true,"go/ast",true,function(X_,Lbrack_,Index_,Rbrack_){this.$val=this;if(arguments.length===0){this.X=$ifaceNil;this.Lbrack=0;this.Index=$ifaceNil;this.Rbrack=0;return;}this.X=X_;this.Lbrack=Lbrack_;this.Index=Index_;this.Rbrack=Rbrack_;});CT=$pkg.IndexListExpr=$newType(0,$kindStruct,"ast.IndexListExpr",true,"go/ast",true,function(X_,Lbrack_,Indices_,Rbrack_){this.$val=this;if(arguments.length===0){this.X=$ifaceNil;this.Lbrack=0;this.Indices=HO.nil;this.Rbrack=0;return;}this.X=X_;this.Lbrack=Lbrack_;this.Indices=Indices_;this.Rbrack=Rbrack_;});CU=$pkg.SliceExpr=$newType(0,$kindStruct,"ast.SliceExpr",true,"go/ast",true,function(X_,Lbrack_,Low_,High_,Max_,Slice3_,Rbrack_){this.$val=this;if(arguments.length===0){this.X=$ifaceNil;this.Lbrack=0;this.Low=$ifaceNil;this.High=$ifaceNil;this.Max=$ifaceNil;this.Slice3=false;this.Rbrack=0;return;}this.X=X_;this.Lbrack=Lbrack_;this.Low=Low_;this.High=High_;this.Max=Max_;this.Slice3=Slice3_;this.Rbrack=Rbrack_;});CV=$pkg.TypeAssertExpr=$newType(0,$kindStruct,"ast.TypeAssertExpr",true,"go/ast",true,function(X_,Lparen_,Type_,Rparen_){this.$val=this;if(arguments.length===0){this.X=$ifaceNil;this.Lparen=0;this.Type=$ifaceNil;this.Rparen=0;return;}this.X=X_;this.Lparen=Lparen_;this.Type=Type_;this.Rparen=Rparen_;});CW=$pkg.CallExpr=$newType(0,$kindStruct,"ast.CallExpr",true,"go/ast",true,function(Fun_,Lparen_,Args_,Ellipsis_,Rparen_){this.$val=this;if(arguments.length===0){this.Fun=$ifaceNil;this.Lparen=0;this.Args=HO.nil;this.Ellipsis=0;this.Rparen=0;return;}this.Fun=Fun_;this.Lparen=Lparen_;this.Args=Args_;this.Ellipsis=Ellipsis_;this.Rparen=Rparen_;});CX=$pkg.StarExpr=$newType(0,$kindStruct,"ast.StarExpr",true,"go/ast",true,function(Star_,X_){this.$val=this;if(arguments.length===0){this.Star=0;this.X=$ifaceNil;return;}this.Star=Star_;this.X=X_;});CY=$pkg.UnaryExpr=$newType(0,$kindStruct,"ast.UnaryExpr",true,"go/ast",true,function(OpPos_,Op_,X_){this.$val=this;if(arguments.length===0){this.OpPos=0;this.Op=0;this.X=$ifaceNil;return;}this.OpPos=OpPos_;this.Op=Op_;this.X=X_;});CZ=$pkg.BinaryExpr=$newType(0,$kindStruct,"ast.BinaryExpr",true,"go/ast",true,function(X_,OpPos_,Op_,Y_){this.$val=this;if(arguments.length===0){this.X=$ifaceNil;this.OpPos=0;this.Op=0;this.Y=$ifaceNil;return;}this.X=X_;this.OpPos=OpPos_;this.Op=Op_;this.Y=Y_;});DA=$pkg.KeyValueExpr=$newType(0,$kindStruct,"ast.KeyValueExpr",true,"go/ast",true,function(Key_,Colon_,Value_){this.$val=this;if(arguments.length===0){this.Key=$ifaceNil;this.Colon=0;this.Value=$ifaceNil;return;}this.Key=Key_;this.Colon=Colon_;this.Value=Value_;});DB=$pkg.ChanDir=$newType(4,$kindInt,"ast.ChanDir",true,"go/ast",true,null);DC=$pkg.ArrayType=$newType(0,$kindStruct,"ast.ArrayType",true,"go/ast",true,function(Lbrack_,Len_,Elt_){this.$val=this;if(arguments.length===0){this.Lbrack=0;this.Len=$ifaceNil;this.Elt=$ifaceNil;return;}this.Lbrack=Lbrack_;this.Len=Len_;this.Elt=Elt_;});DD=$pkg.StructType=$newType(0,$kindStruct,"ast.StructType",true,"go/ast",true,function(Struct_,Fields_,Incomplete_){this.$val=this;if(arguments.length===0){this.Struct=0;this.Fields=ES.nil;this.Incomplete=false;return;}this.Struct=Struct_;this.Fields=Fields_;this.Incomplete=Incomplete_;});DE=$pkg.FuncType=$newType(0,$kindStruct,"ast.FuncType",true,"go/ast",true,function(Func_,TypeParams_,Params_,Results_){this.$val=this;if(arguments.length===0){this.Func=0;this.TypeParams=ES.nil;this.Params=ES.nil;this.Results=ES.nil;return;}this.Func=Func_;this.TypeParams=TypeParams_;this.Params=Params_;this.Results=Results_;});DF=$pkg.InterfaceType=$newType(0,$kindStruct,"ast.InterfaceType",true,"go/ast",true,function(Interface_,Methods_,Incomplete_){this.$val=this;if(arguments.length===0){this.Interface=0;this.Methods=ES.nil;this.Incomplete=false;return;}this.Interface=Interface_;this.Methods=Methods_;this.Incomplete=Incomplete_;});DG=$pkg.MapType=$newType(0,$kindStruct,"ast.MapType",true,"go/ast",true,function(Map_,Key_,Value_){this.$val=this;if(arguments.length===0){this.Map=0;this.Key=$ifaceNil;this.Value=$ifaceNil;return;}this.Map=Map_;this.Key=Key_;this.Value=Value_;});DH=$pkg.ChanType=$newType(0,$kindStruct,"ast.ChanType",true,"go/ast",true,function(Begin_,Arrow_,Dir_,Value_){this.$val=this;if(arguments.length===0){this.Begin=0;this.Arrow=0;this.Dir=0;this.Value=$ifaceNil;return;}this.Begin=Begin_;this.Arrow=Arrow_;this.Dir=Dir_;this.Value=Value_;});DK=$pkg.BadStmt=$newType(0,$kindStruct,"ast.BadStmt",true,"go/ast",true,function(From_,To_){this.$val=this;if(arguments.length===0){this.From=0;this.To=0;return;}this.From=From_;this.To=To_;});DL=$pkg.DeclStmt=$newType(0,$kindStruct,"ast.DeclStmt",true,"go/ast",true,function(Decl_){this.$val=this;if(arguments.length===0){this.Decl=$ifaceNil;return;}this.Decl=Decl_;});DM=$pkg.EmptyStmt=$newType(0,$kindStruct,"ast.EmptyStmt",true,"go/ast",true,function(Semicolon_,Implicit_){this.$val=this;if(arguments.length===0){this.Semicolon=0;this.Implicit=false;return;}this.Semicolon=Semicolon_;this.Implicit=Implicit_;});DN=$pkg.LabeledStmt=$newType(0,$kindStruct,"ast.LabeledStmt",true,"go/ast",true,function(Label_,Colon_,Stmt_){this.$val=this;if(arguments.length===0){this.Label=EU.nil;this.Colon=0;this.Stmt=$ifaceNil;return;}this.Label=Label_;this.Colon=Colon_;this.Stmt=Stmt_;});DO=$pkg.ExprStmt=$newType(0,$kindStruct,"ast.ExprStmt",true,"go/ast",true,function(X_){this.$val=this;if(arguments.length===0){this.X=$ifaceNil;return;}this.X=X_;});DP=$pkg.SendStmt=$newType(0,$kindStruct,"ast.SendStmt",true,"go/ast",true,function(Chan_,Arrow_,Value_){this.$val=this;if(arguments.length===0){this.Chan=$ifaceNil;this.Arrow=0;this.Value=$ifaceNil;return;}this.Chan=Chan_;this.Arrow=Arrow_;this.Value=Value_;});DQ=$pkg.IncDecStmt=$newType(0,$kindStruct,"ast.IncDecStmt",true,"go/ast",true,function(X_,TokPos_,Tok_){this.$val=this;if(arguments.length===0){this.X=$ifaceNil;this.TokPos=0;this.Tok=0;return;}this.X=X_;this.TokPos=TokPos_;this.Tok=Tok_;});DR=$pkg.AssignStmt=$newType(0,$kindStruct,"ast.AssignStmt",true,"go/ast",true,function(Lhs_,TokPos_,Tok_,Rhs_){this.$val=this;if(arguments.length===0){this.Lhs=HO.nil;this.TokPos=0;this.Tok=0;this.Rhs=HO.nil;return;}this.Lhs=Lhs_;this.TokPos=TokPos_;this.Tok=Tok_;this.Rhs=Rhs_;});DS=$pkg.GoStmt=$newType(0,$kindStruct,"ast.GoStmt",true,"go/ast",true,function(Go_,Call_){this.$val=this;if(arguments.length===0){this.Go=0;this.Call=FF.nil;return;}this.Go=Go_;this.Call=Call_;});DT=$pkg.DeferStmt=$newType(0,$kindStruct,"ast.DeferStmt",true,"go/ast",true,function(Defer_,Call_){this.$val=this;if(arguments.length===0){this.Defer=0;this.Call=FF.nil;return;}this.Defer=Defer_;this.Call=Call_;});DU=$pkg.ReturnStmt=$newType(0,$kindStruct,"ast.ReturnStmt",true,"go/ast",true,function(Return_,Results_){this.$val=this;if(arguments.length===0){this.Return=0;this.Results=HO.nil;return;}this.Return=Return_;this.Results=Results_;});DV=$pkg.BranchStmt=$newType(0,$kindStruct,"ast.BranchStmt",true,"go/ast",true,function(TokPos_,Tok_,Label_){this.$val=this;if(arguments.length===0){this.TokPos=0;this.Tok=0;this.Label=EU.nil;return;}this.TokPos=TokPos_;this.Tok=Tok_;this.Label=Label_;});DW=$pkg.BlockStmt=$newType(0,$kindStruct,"ast.BlockStmt",true,"go/ast",true,function(Lbrace_,List_,Rbrace_){this.$val=this;if(arguments.length===0){this.Lbrace=0;this.List=HP.nil;this.Rbrace=0;return;}this.Lbrace=Lbrace_;this.List=List_;this.Rbrace=Rbrace_;});DX=$pkg.IfStmt=$newType(0,$kindStruct,"ast.IfStmt",true,"go/ast",true,function(If_,Init_,Cond_,Body_,Else_){this.$val=this;if(arguments.length===0){this.If=0;this.Init=$ifaceNil;this.Cond=$ifaceNil;this.Body=GC.nil;this.Else=$ifaceNil;return;}this.If=If_;this.Init=Init_;this.Cond=Cond_;this.Body=Body_;this.Else=Else_;});DY=$pkg.CaseClause=$newType(0,$kindStruct,"ast.CaseClause",true,"go/ast",true,function(Case_,List_,Colon_,Body_){this.$val=this;if(arguments.length===0){this.Case=0;this.List=HO.nil;this.Colon=0;this.Body=HP.nil;return;}this.Case=Case_;this.List=List_;this.Colon=Colon_;this.Body=Body_;});DZ=$pkg.SwitchStmt=$newType(0,$kindStruct,"ast.SwitchStmt",true,"go/ast",true,function(Switch_,Init_,Tag_,Body_){this.$val=this;if(arguments.length===0){this.Switch=0;this.Init=$ifaceNil;this.Tag=$ifaceNil;this.Body=GC.nil;return;}this.Switch=Switch_;this.Init=Init_;this.Tag=Tag_;this.Body=Body_;});EA=$pkg.TypeSwitchStmt=$newType(0,$kindStruct,"ast.TypeSwitchStmt",true,"go/ast",true,function(Switch_,Init_,Assign_,Body_){this.$val=this;if(arguments.length===0){this.Switch=0;this.Init=$ifaceNil;this.Assign=$ifaceNil;this.Body=GC.nil;return;}this.Switch=Switch_;this.Init=Init_;this.Assign=Assign_;this.Body=Body_;});EB=$pkg.CommClause=$newType(0,$kindStruct,"ast.CommClause",true,"go/ast",true,function(Case_,Comm_,Colon_,Body_){this.$val=this;if(arguments.length===0){this.Case=0;this.Comm=$ifaceNil;this.Colon=0;this.Body=HP.nil;return;}this.Case=Case_;this.Comm=Comm_;this.Colon=Colon_;this.Body=Body_;});EC=$pkg.SelectStmt=$newType(0,$kindStruct,"ast.SelectStmt",true,"go/ast",true,function(Select_,Body_){this.$val=this;if(arguments.length===0){this.Select=0;this.Body=GC.nil;return;}this.Select=Select_;this.Body=Body_;});ED=$pkg.ForStmt=$newType(0,$kindStruct,"ast.ForStmt",true,"go/ast",true,function(For_,Init_,Cond_,Post_,Body_){this.$val=this;if(arguments.length===0){this.For=0;this.Init=$ifaceNil;this.Cond=$ifaceNil;this.Post=$ifaceNil;this.Body=GC.nil;return;}this.For=For_;this.Init=Init_;this.Cond=Cond_;this.Post=Post_;this.Body=Body_;});EE=$pkg.RangeStmt=$newType(0,$kindStruct,"ast.RangeStmt",true,"go/ast",true,function(For_,Key_,Value_,TokPos_,Tok_,X_,Body_){this.$val=this;if(arguments.length===0){this.For=0;this.Key=$ifaceNil;this.Value=$ifaceNil;this.TokPos=0;this.Tok=0;this.X=$ifaceNil;this.Body=GC.nil;return;}this.For=For_;this.Key=Key_;this.Value=Value_;this.TokPos=TokPos_;this.Tok=Tok_;this.X=X_;this.Body=Body_;});EF=$pkg.Spec=$newType(8,$kindInterface,"ast.Spec",true,"go/ast",true,null);EG=$pkg.ImportSpec=$newType(0,$kindStruct,"ast.ImportSpec",true,"go/ast",true,function(Doc_,Name_,Path_,Comment_,EndPos_){this.$val=this;if(arguments.length===0){this.Doc=EQ.nil;this.Name=EU.nil;this.Path=EV.nil;this.Comment=EQ.nil;this.EndPos=0;return;}this.Doc=Doc_;this.Name=Name_;this.Path=Path_;this.Comment=Comment_;this.EndPos=EndPos_;});EH=$pkg.ValueSpec=$newType(0,$kindStruct,"ast.ValueSpec",true,"go/ast",true,function(Doc_,Names_,Type_,Values_,Comment_){this.$val=this;if(arguments.length===0){this.Doc=EQ.nil;this.Names=HF.nil;this.Type=$ifaceNil;this.Values=HO.nil;this.Comment=EQ.nil;return;}this.Doc=Doc_;this.Names=Names_;this.Type=Type_;this.Values=Values_;this.Comment=Comment_;});EI=$pkg.TypeSpec=$newType(0,$kindStruct,"ast.TypeSpec",true,"go/ast",true,function(Doc_,Name_,TypeParams_,Assign_,Type_,Comment_){this.$val=this;if(arguments.length===0){this.Doc=EQ.nil;this.Name=EU.nil;this.TypeParams=ES.nil;this.Assign=0;this.Type=$ifaceNil;this.Comment=EQ.nil;return;}this.Doc=Doc_;this.Name=Name_;this.TypeParams=TypeParams_;this.Assign=Assign_;this.Type=Type_;this.Comment=Comment_;});EJ=$pkg.BadDecl=$newType(0,$kindStruct,"ast.BadDecl",true,"go/ast",true,function(From_,To_){this.$val=this;if(arguments.length===0){this.From=0;this.To=0;return;}this.From=From_;this.To=To_;});EK=$pkg.GenDecl=$newType(0,$kindStruct,"ast.GenDecl",true,"go/ast",true,function(Doc_,TokPos_,Tok_,Lparen_,Specs_,Rparen_){this.$val=this;if(arguments.length===0){this.Doc=EQ.nil;this.TokPos=0;this.Tok=0;this.Lparen=0;this.Specs=HQ.nil;this.Rparen=0;return;}this.Doc=Doc_;this.TokPos=TokPos_;this.Tok=Tok_;this.Lparen=Lparen_;this.Specs=Specs_;this.Rparen=Rparen_;});EL=$pkg.FuncDecl=$newType(0,$kindStruct,"ast.FuncDecl",true,"go/ast",true,function(Doc_,Recv_,Name_,Type_,Body_){this.$val=this;if(arguments.length===0){this.Doc=EQ.nil;this.Recv=ES.nil;this.Name=EU.nil;this.Type=FM.nil;this.Body=GC.nil;return;}this.Doc=Doc_;this.Recv=Recv_;this.Name=Name_;this.Type=Type_;this.Body=Body_;});EM=$pkg.File=$newType(0,$kindStruct,"ast.File",true,"go/ast",true,function(Doc_,Package_,Name_,Decls_,Scope_,Imports_,Unresolved_,Comments_){this.$val=this;if(arguments.length===0){this.Doc=EQ.nil;this.Package=0;this.Name=EU.nil;this.Decls=HD.nil;this.Scope=GV.nil;this.Imports=HE.nil;this.Unresolved=HF.nil;this.Comments=GZ.nil;return;}this.Doc=Doc_;this.Package=Package_;this.Name=Name_;this.Decls=Decls_;this.Scope=Scope_;this.Imports=Imports_;this.Unresolved=Unresolved_;this.Comments=Comments_;});EN=$pkg.Package=$newType(0,$kindStruct,"ast.Package",true,"go/ast",true,function(Name_,Scope_,Imports_,Files_){this.$val=this;if(arguments.length===0){this.Name="";this.Scope=GV.nil;this.Imports=false;this.Files=false;return;}this.Name=Name_;this.Scope=Scope_;this.Imports=Imports_;this.Files=Files_;});EO=$sliceType($Uint8);EP=$ptrType(CD);EQ=$ptrType(CE);ER=$ptrType(CI);ES=$ptrType(CJ);ET=$ptrType(CK);EU=$ptrType(CL);EV=$ptrType(CN);EW=$ptrType(CM);EX=$ptrType(CO);EY=$ptrType(CP);EZ=$ptrType(CQ);FA=$ptrType(CR);FB=$ptrType(CS);FC=$ptrType(CT);FD=$ptrType(CU);FE=$ptrType(CV);FF=$ptrType(CW);FG=$ptrType(CX);FH=$ptrType(CY);FI=$ptrType(CZ);FJ=$ptrType(DA);FK=$ptrType(DC);FL=$ptrType(DD);FM=$ptrType(DE);FN=$ptrType(DF);FO=$ptrType(DG);FP=$ptrType(DH);FQ=$ptrType(DK);FR=$ptrType(DL);FS=$ptrType(DM);FT=$ptrType(DN);FU=$ptrType(DO);FV=$ptrType(DP);FW=$ptrType(DQ);FX=$ptrType(DR);FY=$ptrType(DS);FZ=$ptrType(DT);GA=$ptrType(DU);GB=$ptrType(DV);GC=$ptrType(DW);GD=$ptrType(DX);GE=$ptrType(DY);GF=$ptrType(DZ);GG=$ptrType(EA);GH=$ptrType(EB);GI=$ptrType(EC);GJ=$ptrType(ED);GK=$ptrType(EE);GL=$ptrType(EG);GM=$ptrType(EH);GN=$ptrType(EI);GO=$ptrType(EJ);GP=$ptrType(EK);GQ=$ptrType(EL);GR=$ptrType(EM);GS=$ptrType(EN);GT=$sliceType($emptyInterface);GU=$ptrType(U);GV=$ptrType(S);GX=$ptrType(C.FileSet);GY=$sliceType(AQ);GZ=$sliceType(EQ);HA=$sliceType(AR);HB=$sliceType($String);HC=$sliceType(EP);HD=$sliceType(CC);HE=$sliceType(GL);HF=$sliceType(EU);HI=$mapType($String,GU);HK=$ptrType(AH);HL=$mapType($emptyInterface,$Int);HN=$sliceType(ER);HO=$sliceType(CA);HP=$sliceType(CB);HQ=$sliceType(EF);HR=$mapType($String,GR);L=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=b;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);$r=P(a,e);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:L,$c:true,$r,a,b,c,d,e,$s};return $f;};M=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=b;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);$r=P(a,e);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:M,$c:true,$r,a,b,c,d,e,$s};return $f;};N=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=b;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);$r=P(a,e);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:N,$c:true,$r,a,b,c,d,e,$s};return $f;};O=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=b;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);$r=P(a,e);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:O,$c:true,$r,a,b,c,d,e,$s};return $f;};P=function(a,b){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=a.Visit(b);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}a=c;if($interfaceIsEqual(a,$ifaceNil)){$s=-1;return;}d=b;if($assertType(d,EP,true)[1]){$s=2;continue;}if($assertType(d,EQ,true)[1]){$s=3;continue;}if($assertType(d,ER,true)[1]){$s=4;continue;}if($assertType(d,ES,true)[1]){$s=5;continue;}if($assertType(d,ET,true)[1]||$assertType(d,EU,true)[1]||$assertType(d,EV,true)[1]){$s=6;continue;}if($assertType(d,EW,true)[1]){$s=7;continue;}if($assertType(d,EX,true)[1]){$s=8;continue;}if($assertType(d,EY,true)[1]){$s=9;continue;}if($assertType(d,EZ,true)[1]){$s=10;continue;}if($assertType(d,FA,true)[1]){$s=11;continue;}if($assertType(d,FB,true)[1]){$s=12;continue;}if($assertType(d,FC,true)[1]){$s=13;continue;}if($assertType(d,FD,true)[1]){$s=14;continue;}if($assertType(d,FE,true)[1]){$s=15;continue;}if($assertType(d,FF,true)[1]){$s=16;continue;}if($assertType(d,FG,true)[1]){$s=17;continue;}if($assertType(d,FH,true)[1]){$s=18;continue;}if($assertType(d,FI,true)[1]){$s=19;continue;}if($assertType(d,FJ,true)[1]){$s=20;continue;}if($assertType(d,FK,true)[1]){$s=21;continue;}if($assertType(d,FL,true)[1]){$s=22;continue;}if($assertType(d,FM,true)[1]){$s=23;continue;}if($assertType(d,FN,true)[1]){$s=24;continue;}if($assertType(d,FO,true)[1]){$s=25;continue;}if($assertType(d,FP,true)[1]){$s=26;continue;}if($assertType(d,FQ,true)[1]){$s=27;continue;}if($assertType(d,FR,true)[1]){$s=28;continue;}if($assertType(d,FS,true)[1]){$s=29;continue;}if($assertType(d,FT,true)[1]){$s=30;continue;}if($assertType(d,FU,true)[1]){$s=31;continue;}if($assertType(d,FV,true)[1]){$s=32;continue;}if($assertType(d,FW,true)[1]){$s=33;continue;}if($assertType(d,FX,true)[1]){$s=34;continue;}if($assertType(d,FY,true)[1]){$s=35;continue;}if($assertType(d,FZ,true)[1]){$s=36;continue;}if($assertType(d,GA,true)[1]){$s=37;continue;}if($assertType(d,GB,true)[1]){$s=38;continue;}if($assertType(d,GC,true)[1]){$s=39;continue;}if($assertType(d,GD,true)[1]){$s=40;continue;}if($assertType(d,GE,true)[1]){$s=41;continue;}if($assertType(d,GF,true)[1]){$s=42;continue;}if($assertType(d,GG,true)[1]){$s=43;continue;}if($assertType(d,GH,true)[1]){$s=44;continue;}if($assertType(d,GI,true)[1]){$s=45;continue;}if($assertType(d,GJ,true)[1]){$s=46;continue;}if($assertType(d,GK,true)[1]){$s=47;continue;}if($assertType(d,GL,true)[1]){$s=48;continue;}if($assertType(d,GM,true)[1]){$s=49;continue;}if($assertType(d,GN,true)[1]){$s=50;continue;}if($assertType(d,GO,true)[1]){$s=51;continue;}if($assertType(d,GP,true)[1]){$s=52;continue;}if($assertType(d,GQ,true)[1]){$s=53;continue;}if($assertType(d,GR,true)[1]){$s=54;continue;}if($assertType(d,GS,true)[1]){$s=55;continue;}$s=56;continue;case 2:e=d.$val;$s=57;continue;case 3:f=d.$val;bh=f.List;bi=0;case 58:if(!(bi=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bi]);$r=P(a,bj);$s=60;case 60:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bi++;$s=58;continue;case 59:$s=57;continue;case 4:g=d.$val;if(!(g.Doc===EQ.nil)){$s=61;continue;}$s=62;continue;case 61:$r=P(a,g.Doc);$s=63;case 63:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 62:$r=L(a,g.Names);$s=64;case 64:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(g.Type,$ifaceNil))){$s=65;continue;}$s=66;continue;case 65:$r=P(a,g.Type);$s=67;case 67:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 66:if(!(g.Tag===EV.nil)){$s=68;continue;}$s=69;continue;case 68:$r=P(a,g.Tag);$s=70;case 70:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 69:if(!(g.Comment===EQ.nil)){$s=71;continue;}$s=72;continue;case 71:$r=P(a,g.Comment);$s=73;case 73:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 72:$s=57;continue;case 5:h=d.$val;bk=h.List;bl=0;case 74:if(!(bl=bk.$length)?($throwRuntimeError("index out of range"),undefined):bk.$array[bk.$offset+bl]);$r=P(a,bm);$s=76;case 76:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bl++;$s=74;continue;case 75:$s=57;continue;case 6:i=d;$s=57;continue;case 7:j=d.$val;if(!($interfaceIsEqual(j.Elt,$ifaceNil))){$s=77;continue;}$s=78;continue;case 77:$r=P(a,j.Elt);$s=79;case 79:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 78:$s=57;continue;case 8:k=d.$val;$r=P(a,k.Type);$s=80;case 80:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,k.Body);$s=81;case 81:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 9:l=d.$val;if(!($interfaceIsEqual(l.Type,$ifaceNil))){$s=82;continue;}$s=83;continue;case 82:$r=P(a,l.Type);$s=84;case 84:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 83:$r=M(a,l.Elts);$s=85;case 85:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 10:m=d.$val;$r=P(a,m.X);$s=86;case 86:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 11:n=d.$val;$r=P(a,n.X);$s=87;case 87:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,n.Sel);$s=88;case 88:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 12:o=d.$val;$r=P(a,o.X);$s=89;case 89:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,o.Index);$s=90;case 90:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 13:p=d.$val;$r=P(a,p.X);$s=91;case 91:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bn=p.Indices;bo=0;case 92:if(!(bo=bn.$length)?($throwRuntimeError("index out of range"),undefined):bn.$array[bn.$offset+bo]);$r=P(a,bp);$s=94;case 94:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bo++;$s=92;continue;case 93:$s=57;continue;case 14:q=d.$val;$r=P(a,q.X);$s=95;case 95:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(q.Low,$ifaceNil))){$s=96;continue;}$s=97;continue;case 96:$r=P(a,q.Low);$s=98;case 98:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 97:if(!($interfaceIsEqual(q.High,$ifaceNil))){$s=99;continue;}$s=100;continue;case 99:$r=P(a,q.High);$s=101;case 101:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 100:if(!($interfaceIsEqual(q.Max,$ifaceNil))){$s=102;continue;}$s=103;continue;case 102:$r=P(a,q.Max);$s=104;case 104:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 103:$s=57;continue;case 15:r=d.$val;$r=P(a,r.X);$s=105;case 105:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(r.Type,$ifaceNil))){$s=106;continue;}$s=107;continue;case 106:$r=P(a,r.Type);$s=108;case 108:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 107:$s=57;continue;case 16:s=d.$val;$r=P(a,s.Fun);$s=109;case 109:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M(a,s.Args);$s=110;case 110:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 17:t=d.$val;$r=P(a,t.X);$s=111;case 111:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 18:u=d.$val;$r=P(a,u.X);$s=112;case 112:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 19:v=d.$val;$r=P(a,v.X);$s=113;case 113:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,v.Y);$s=114;case 114:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 20:w=d.$val;$r=P(a,w.Key);$s=115;case 115:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,w.Value);$s=116;case 116:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 21:x=d.$val;if(!($interfaceIsEqual(x.Len,$ifaceNil))){$s=117;continue;}$s=118;continue;case 117:$r=P(a,x.Len);$s=119;case 119:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 118:$r=P(a,x.Elt);$s=120;case 120:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 22:y=d.$val;$r=P(a,y.Fields);$s=121;case 121:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 23:z=d.$val;if(!(z.TypeParams===ES.nil)){$s=122;continue;}$s=123;continue;case 122:$r=P(a,z.TypeParams);$s=124;case 124:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 123:if(!(z.Params===ES.nil)){$s=125;continue;}$s=126;continue;case 125:$r=P(a,z.Params);$s=127;case 127:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 126:if(!(z.Results===ES.nil)){$s=128;continue;}$s=129;continue;case 128:$r=P(a,z.Results);$s=130;case 130:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 129:$s=57;continue;case 24:aa=d.$val;$r=P(a,aa.Methods);$s=131;case 131:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 25:ab=d.$val;$r=P(a,ab.Key);$s=132;case 132:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,ab.Value);$s=133;case 133:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 26:ac=d.$val;$r=P(a,ac.Value);$s=134;case 134:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 27:ad=d.$val;$s=57;continue;case 28:ae=d.$val;$r=P(a,ae.Decl);$s=135;case 135:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 29:af=d.$val;$s=57;continue;case 30:ag=d.$val;$r=P(a,ag.Label);$s=136;case 136:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,ag.Stmt);$s=137;case 137:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 31:ah=d.$val;$r=P(a,ah.X);$s=138;case 138:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 32:ai=d.$val;$r=P(a,ai.Chan);$s=139;case 139:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,ai.Value);$s=140;case 140:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 33:aj=d.$val;$r=P(a,aj.X);$s=141;case 141:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 34:ak=d.$val;$r=M(a,ak.Lhs);$s=142;case 142:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M(a,ak.Rhs);$s=143;case 143:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 35:al=d.$val;$r=P(a,al.Call);$s=144;case 144:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 36:am=d.$val;$r=P(a,am.Call);$s=145;case 145:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 37:an=d.$val;$r=M(a,an.Results);$s=146;case 146:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 38:ao=d.$val;if(!(ao.Label===EU.nil)){$s=147;continue;}$s=148;continue;case 147:$r=P(a,ao.Label);$s=149;case 149:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 148:$s=57;continue;case 39:ap=d.$val;$r=N(a,ap.List);$s=150;case 150:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 40:aq=d.$val;if(!($interfaceIsEqual(aq.Init,$ifaceNil))){$s=151;continue;}$s=152;continue;case 151:$r=P(a,aq.Init);$s=153;case 153:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 152:$r=P(a,aq.Cond);$s=154;case 154:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,aq.Body);$s=155;case 155:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(aq.Else,$ifaceNil))){$s=156;continue;}$s=157;continue;case 156:$r=P(a,aq.Else);$s=158;case 158:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 157:$s=57;continue;case 41:ar=d.$val;$r=M(a,ar.List);$s=159;case 159:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N(a,ar.Body);$s=160;case 160:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 42:as=d.$val;if(!($interfaceIsEqual(as.Init,$ifaceNil))){$s=161;continue;}$s=162;continue;case 161:$r=P(a,as.Init);$s=163;case 163:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 162:if(!($interfaceIsEqual(as.Tag,$ifaceNil))){$s=164;continue;}$s=165;continue;case 164:$r=P(a,as.Tag);$s=166;case 166:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 165:$r=P(a,as.Body);$s=167;case 167:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 43:at=d.$val;if(!($interfaceIsEqual(at.Init,$ifaceNil))){$s=168;continue;}$s=169;continue;case 168:$r=P(a,at.Init);$s=170;case 170:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 169:$r=P(a,at.Assign);$s=171;case 171:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,at.Body);$s=172;case 172:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 44:au=d.$val;if(!($interfaceIsEqual(au.Comm,$ifaceNil))){$s=173;continue;}$s=174;continue;case 173:$r=P(a,au.Comm);$s=175;case 175:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 174:$r=N(a,au.Body);$s=176;case 176:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 45:av=d.$val;$r=P(a,av.Body);$s=177;case 177:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 46:aw=d.$val;if(!($interfaceIsEqual(aw.Init,$ifaceNil))){$s=178;continue;}$s=179;continue;case 178:$r=P(a,aw.Init);$s=180;case 180:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 179:if(!($interfaceIsEqual(aw.Cond,$ifaceNil))){$s=181;continue;}$s=182;continue;case 181:$r=P(a,aw.Cond);$s=183;case 183:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 182:if(!($interfaceIsEqual(aw.Post,$ifaceNil))){$s=184;continue;}$s=185;continue;case 184:$r=P(a,aw.Post);$s=186;case 186:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 185:$r=P(a,aw.Body);$s=187;case 187:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 47:ax=d.$val;if(!($interfaceIsEqual(ax.Key,$ifaceNil))){$s=188;continue;}$s=189;continue;case 188:$r=P(a,ax.Key);$s=190;case 190:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 189:if(!($interfaceIsEqual(ax.Value,$ifaceNil))){$s=191;continue;}$s=192;continue;case 191:$r=P(a,ax.Value);$s=193;case 193:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 192:$r=P(a,ax.X);$s=194;case 194:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,ax.Body);$s=195;case 195:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 48:ay=d.$val;if(!(ay.Doc===EQ.nil)){$s=196;continue;}$s=197;continue;case 196:$r=P(a,ay.Doc);$s=198;case 198:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 197:if(!(ay.Name===EU.nil)){$s=199;continue;}$s=200;continue;case 199:$r=P(a,ay.Name);$s=201;case 201:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 200:$r=P(a,ay.Path);$s=202;case 202:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(ay.Comment===EQ.nil)){$s=203;continue;}$s=204;continue;case 203:$r=P(a,ay.Comment);$s=205;case 205:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 204:$s=57;continue;case 49:az=d.$val;if(!(az.Doc===EQ.nil)){$s=206;continue;}$s=207;continue;case 206:$r=P(a,az.Doc);$s=208;case 208:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 207:$r=L(a,az.Names);$s=209;case 209:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(az.Type,$ifaceNil))){$s=210;continue;}$s=211;continue;case 210:$r=P(a,az.Type);$s=212;case 212:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 211:$r=M(a,az.Values);$s=213;case 213:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(az.Comment===EQ.nil)){$s=214;continue;}$s=215;continue;case 214:$r=P(a,az.Comment);$s=216;case 216:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 215:$s=57;continue;case 50:ba=d.$val;if(!(ba.Doc===EQ.nil)){$s=217;continue;}$s=218;continue;case 217:$r=P(a,ba.Doc);$s=219;case 219:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 218:$r=P(a,ba.Name);$s=220;case 220:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(ba.TypeParams===ES.nil)){$s=221;continue;}$s=222;continue;case 221:$r=P(a,ba.TypeParams);$s=223;case 223:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 222:$r=P(a,ba.Type);$s=224;case 224:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(ba.Comment===EQ.nil)){$s=225;continue;}$s=226;continue;case 225:$r=P(a,ba.Comment);$s=227;case 227:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 226:$s=57;continue;case 51:bb=d.$val;$s=57;continue;case 52:bc=d.$val;if(!(bc.Doc===EQ.nil)){$s=228;continue;}$s=229;continue;case 228:$r=P(a,bc.Doc);$s=230;case 230:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 229:bq=bc.Specs;br=0;case 231:if(!(br=bq.$length)?($throwRuntimeError("index out of range"),undefined):bq.$array[bq.$offset+br]);$r=P(a,bs);$s=233;case 233:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}br++;$s=231;continue;case 232:$s=57;continue;case 53:bd=d.$val;if(!(bd.Doc===EQ.nil)){$s=234;continue;}$s=235;continue;case 234:$r=P(a,bd.Doc);$s=236;case 236:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 235:if(!(bd.Recv===ES.nil)){$s=237;continue;}$s=238;continue;case 237:$r=P(a,bd.Recv);$s=239;case 239:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 238:$r=P(a,bd.Name);$s=240;case 240:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P(a,bd.Type);$s=241;case 241:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(bd.Body===GC.nil)){$s=242;continue;}$s=243;continue;case 242:$r=P(a,bd.Body);$s=244;case 244:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 243:$s=57;continue;case 54:be=d.$val;if(!(be.Doc===EQ.nil)){$s=245;continue;}$s=246;continue;case 245:$r=P(a,be.Doc);$s=247;case 247:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 246:$r=P(a,be.Name);$s=248;case 248:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=O(a,be.Decls);$s=249;case 249:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=57;continue;case 55:bf=d.$val;bt=bf.Files;bu=0;bv=bt?bt.keys():undefined;bw=bt?bt.size:0;case 250:if(!(bu0){$s=2;continue;}$s=3;continue;case 2:d=A.Fprintln(a[0],new GT([]));$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;e=b.Objects;f=0;g=e?e.keys():undefined;h=e?e.size:0;case 5:if(!(f=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);if(n.Name===b){return n.Pos();}m++;}}else if($assertType(c,GL,true)[1]){e=c.$val;if(!(e.Name===EU.nil)&&e.Name.Name===b){return e.Name.Pos();}return e.Path.Pos();}else if($assertType(c,GM,true)[1]){f=c.$val;o=f.Names;p=0;while(true){if(!(p=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]);if(q.Name===b){return q.Pos();}p++;}}else if($assertType(c,GN,true)[1]){g=c.$val;if(g.Name.Name===b){return g.Name.Pos();}}else if($assertType(c,GQ,true)[1]){h=c.$val;if(h.Name.Name===b){return h.Name.Pos();}}else if($assertType(c,FT,true)[1]){i=c.$val;if(i.Label.Name===b){return i.Label.Pos();}}else if($assertType(c,FX,true)[1]){j=c.$val;r=j.Lhs;s=0;while(true){if(!(s=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]);u=$assertType(t,EU,true);v=u[0];w=u[1];if(w&&v.Name===b){return v.Pos();}s++;}}else if($assertType(c,GV,true)[1]){k=c.$val;}return 0;};U.prototype.Pos=function(){return this.$val.Pos();};W.prototype.String=function(){var a;a=this.$val;return((a<0||a>=X.length)?($throwRuntimeError("index out of range"),undefined):X[a]);};$ptrType(W).prototype.String=function(){return new W(this.$get()).String();};AD=function(a,b){var a,b,c;c=$clone(b,H.Value).Kind();if((c===(18))||(c===(19))||(c===(20))||(c===(21))||(c===(22))||(c===(23))){return!$clone(b,H.Value).IsNil();}return true;};$pkg.NotNilFilter=AD;AE=function(a,b,c,d){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=AF(a,b,c,d);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:AE,$c:true,$r,a,b,c,d,e,f,$s};return $f;};$pkg.Fprint=AE;AF=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,$s,$deferred,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=[e];e[0]=$ifaceNil;f=new AH.ptr(a,b,d,new $global.Map(),0,10,0);$deferred.push([(function(e){return function(){var g;g=$recover();if(!($interfaceIsEqual(g,$ifaceNil))){e[0]=$assertType(g,AJ).err;}};})(e),[]]);if($interfaceIsEqual(c,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:$r=f.printf("nil\n",new GT([]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=e[0];$s=4;case 4:return g;case 2:h=H.ValueOf(c);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=f.print($clone(h,H.Value));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f.printf("\n",new GT([]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=e[0];$s=8;case 8:return i;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return e[0];}if($curGoroutine.asleep){var $f={$blk:AF,$c:true,$r,a,b,c,d,e,f,g,h,i,$s,$deferred};return $f;}}};AH.ptr.prototype.Write=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=0;c=$ifaceNil;d=this;e=0;f=a;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(i===10){$s=3;continue;}if(d.last===10){$s=4;continue;}$s=5;continue;case 3:k=d.output.Write($subslice(a,b,(h+1>>0)));$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;e=j[0];c=j[1];b=b+(e)>>0;if(!($interfaceIsEqual(c,$ifaceNil))){$s=-1;return[b,c];}d.line=d.line+(1)>>0;$s=5;continue;case 4:m=A.Fprintf(d.output,"%6d ",new GT([new $Int(d.line)]));$s=7;case 7:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;c=l[1];if(!($interfaceIsEqual(c,$ifaceNil))){$s=-1;return[b,c];}n=d.indent;case 8:if(!(n>0)){$s=9;continue;}p=d.output.Write(AI);$s=10;case 10:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;c=o[1];if(!($interfaceIsEqual(c,$ifaceNil))){$s=-1;return[b,c];}n=n-(1)>>0;$s=8;continue;case 9:case 5:d.last=i;g++;$s=1;continue;case 2:if(a.$length>b){$s=11;continue;}$s=12;continue;case 11:r=d.output.Write($subslice(a,b));$s=13;case 13:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;e=q[0];c=q[1];b=b+(e)>>0;case 12:$s=-1;return[b,c];}return;}var $f={$blk:AH.ptr.prototype.Write,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};AH.prototype.Write=function(a){return this.$val.Write(a);};AH.ptr.prototype.printf=function(a,b){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=A.Fprintf(c,a,b);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[1];if(!($interfaceIsEqual(f,$ifaceNil))){$panic((g=new AJ.ptr(f),new g.constructor.elem(g)));}$s=-1;return;}return;}var $f={$blk:AH.ptr.prototype.printf,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};AH.prototype.printf=function(a,b){return this.$val.printf(a,b);};AH.ptr.prototype.print=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(!AD("",$clone(a,H.Value))){$s=1;continue;}$s=2;continue;case 1:$r=b.printf("nil",new GT([]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 2:c=$clone(a,H.Value).Kind();if(c===(20)){$s=5;continue;}if(c===(21)){$s=6;continue;}if(c===(22)){$s=7;continue;}if(c===(17)){$s=8;continue;}if(c===(23)){$s=9;continue;}if(c===(25)){$s=10;continue;}$s=11;continue;case 5:d=$clone(a,H.Value).Elem();$s=13;case 13:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$r=b.print($clone(d,H.Value));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=12;continue;case 6:$r=b.printf("%s (len = %d) {",new GT([$clone(a,H.Value).Type(),new $Int($clone(a,H.Value).Len())]));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if($clone(a,H.Value).Len()>0){$s=16;continue;}$s=17;continue;case 16:b.indent=b.indent+(1)>>0;$r=b.printf("\n",new GT([]));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=$clone(a,H.Value).MapKeys();$s=19;case 19:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=0;case 20:if(!(g=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+g]);$r=b.print($clone(h,H.Value));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.printf(": ",new GT([]));$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=$clone(a,H.Value).MapIndex($clone(h,H.Value));$s=24;case 24:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$r=b.print($clone(i,H.Value));$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.printf("\n",new GT([]));$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g++;$s=20;continue;case 21:b.indent=b.indent-(1)>>0;case 17:$r=b.printf("}",new GT([]));$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=12;continue;case 7:$r=b.printf("*",new GT([]));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=$clone(a,H.Value).Interface();$s=29;case 29:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=(m=$mapIndex(b.ptrmap,$emptyInterface.keyFor(k)),m!==undefined?[m.v,true]:[0,false]);n=l[0];o=l[1];if(o){$s=30;continue;}$s=31;continue;case 30:$r=b.printf("(obj @ %d)",new GT([new $Int(n)]));$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=32;continue;case 31:p=k;(b.ptrmap||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(p),{k:p,v:b.line});q=$clone(a,H.Value).Elem();$s=34;case 34:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}$r=b.print($clone(q,H.Value));$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 32:$s=12;continue;case 8:$r=b.printf("%s {",new GT([$clone(a,H.Value).Type()]));$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if($clone(a,H.Value).Len()>0){$s=37;continue;}$s=38;continue;case 37:b.indent=b.indent+(1)>>0;$r=b.printf("\n",new GT([]));$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}r=0;s=$clone(a,H.Value).Len();t=r;u=s;case 40:if(!(t>0;$s=40;continue;case 41:b.indent=b.indent-(1)>>0;case 38:$r=b.printf("}",new GT([]));$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=12;continue;case 9:x=$clone(a,H.Value).Interface();$s=47;case 47:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=$assertType(x,EO,true);y=w[0];z=w[1];if(z){$s=48;continue;}$s=49;continue;case 48:$r=b.printf("%#q",new GT([y]));$s=50;case 50:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 49:$r=b.printf("%s (len = %d) {",new GT([$clone(a,H.Value).Type(),new $Int($clone(a,H.Value).Len())]));$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if($clone(a,H.Value).Len()>0){$s=52;continue;}$s=53;continue;case 52:b.indent=b.indent+(1)>>0;$r=b.printf("\n",new GT([]));$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aa=0;ab=$clone(a,H.Value).Len();ac=aa;ad=ab;case 55:if(!(ac>0;$s=55;continue;case 56:b.indent=b.indent-(1)>>0;case 53:$r=b.printf("}",new GT([]));$s=61;case 61:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=12;continue;case 10:af=$clone(a,H.Value).Type();$r=b.printf("%s {",new GT([af]));$s=62;case 62:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.indent=b.indent+(1)>>0;ag=true;ah=0;aj=af.NumField();$s=63;case 63:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ai=aj;ak=ah;al=ai;case 64:if(!(ak>0;$s=64;continue;case 65:b.indent=b.indent-(1)>>0;$r=b.printf("}",new GT([]));$s=80;case 80:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=12;continue;case 11:as=$clone(a,H.Value).Interface();$s=81;case 81:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=as;au=at;if($assertType(au,$String,true)[1]){$s=82;continue;}if($assertType(au,C.Pos,true)[1]){$s=83;continue;}$s=84;continue;case 82:av=au.$val;$r=b.printf("%q",new GT([new $String(av)]));$s=85;case 85:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 83:aw=au.$val;if(!(b.fset===GX.nil)){$s=86;continue;}$s=87;continue;case 86:ay=b.fset.Position(aw);$s=88;case 88:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=(ax=ay,new ax.constructor.elem(ax));$r=b.printf("%s",new GT([az]));$s=89;case 89:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 87:case 84:$r=b.printf("%v",new GT([at]));$s=90;case 90:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:case 4:$s=-1;return;}return;}var $f={$blk:AH.ptr.prototype.print,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AH.prototype.print=function(a){return this.$val.print(a);};AK=function(a,b){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=b.Decls;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=$assertType(e,GP,true);g=f[0];h=f[1];if(!h||!((g.Tok===75))){$s=2;continue;}if(!new C.Pos(g.Lparen).IsValid()){d++;$s=1;continue;}i=0;j=$subslice(g.Specs,0,0);k=g.Specs;l=0;case 3:if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);if(!(m>i)){o=false;$s=7;continue s;}p=a;q=n.Pos();$s=8;case 8:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;s=AL(p,r);$s=9;case 9:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=a;w=(u=g.Specs,v=m-1>>0,((v<0||v>=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v])).End();$s=10;case 10:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;y=AL(t,x);$s=11;case 11:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}o=s>(1+y>>0);case 7:if(o){$s=5;continue;}$s=6;continue;case 5:z=j;aa=AS(a,b,$subslice(g.Specs,i,m));$s=12;case 12:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa;j=$appendSlice(z,ab);i=m;case 6:l++;$s=3;continue;case 4:ac=j;ad=AS(a,b,$subslice(g.Specs,i));$s=13;case 13:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;j=$appendSlice(ac,ae);g.Specs=j;if(g.Specs.$length>0){$s=14;continue;}$s=15;continue;case 14:ah=(af=g.Specs,ag=g.Specs.$length-1>>0,((ag<0||ag>=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ag]));ai=a;aj=ah.Pos();$s=16;case 16:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=aj;al=AL(ai,ak);$s=17;case 17:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al;an=AL(a,g.Rparen);$s=18;case 18:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}ao=an;case 19:if(!(ao>(am+1>>0))){$s=20;continue;}ao=ao-(1)>>0;ap=a.File(g.Rparen);$s=21;case 21:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}$r=ap.MergeLine(ao);$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=19;continue;case 20:case 15:d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:AK,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.SortImports=AK;AL=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=a.PositionFor(b,false);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.Line;$s=2;case 2:return d;}return;}var $f={$blk:AL,$c:true,$r,a,b,c,d,$s};return $f;};AM=function(a){var a,b,c,d;b=E.Unquote($assertType(a,GL).Path.Value);c=b[0];d=b[1];if($interfaceIsEqual(d,$ifaceNil)){return c;}return"";};AN=function(a){var a,b;b=$assertType(a,GL).Name;if(b===EU.nil){return"";}return b.Name;};AO=function(a){var a,b;b=$assertType(a,GL).Comment;if(b===EQ.nil){return"";}return b.Text();};AP=function(a,b){var a,b;if(!(AM(b)===AM(a))||!(AN(b)===AN(a))){return false;}return $assertType(a,GL).Comment===EQ.nil;};AS=function(a,b,c){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=[d];if(c[0].$length<=1){$s=-1;return c[0];}e=$makeSlice(GY,c[0].$length);f=c[0];g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=i.Pos();$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=i.End();$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}AQ.copy(((h<0||h>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h]),new AQ.ptr(j,k));g++;$s=1;continue;case 2:l=(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]).Start;n=(m=e.$length-1>>0,((m<0||m>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+m])).End;o=a.File(l);$s=5;case 5:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=AL(a,l);$s=6;case 6:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=o.LineStart(p);$s=7;case 7:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;s=AL(a,n);$s=8;case 8:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;u=a.File(n);$s=9;case 9:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;w=0;if(t===v.LineCount()){$s=10;continue;}$s=11;continue;case 10:w=n;$s=12;continue;case 11:x=v.LineStart(t+1>>0);$s=13;case 13:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;case 12:y=b.Comments.$length;z=-1;aa=b.Comments;ab=0;while(true){if(!(ab=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+ab]);if(ad.End()>=w){break;}if(r<=ad.Pos()){if(acz){z=ac;}}ab++;}d[0]=GZ.nil;if(z>=0){d[0]=$subslice(b.Comments,y,(z+1>>0));}ae=$makeMap(GL.keyFor,[]);af=0;ag=d[0];ah=0;case 14:if(!(ah=ag.$length)?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+ah]);while(true){if(!((af+1>>0)>0,((aj<0||aj>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+aj])).Start<=ai.Pos())){break;}af=af+(1)>>0;}ak=false;if((af===0)&&((af<0||af>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+af]).Start>ai.Pos()){$s=16;continue;}if(!((af+1>>0)=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+af]).Start);$s=20;case 20:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=AL(a,ai.Pos());$s=21;case 21:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}al=(am+1>>0)===an;case 19:if(al){$s=17;continue;}$s=18;continue;case 16:ak=true;$s=18;continue;case 17:af=af+(1)>>0;ak=true;case 18:ao=$assertType(((af<0||af>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+af]),GL);ap=ao;(ae||$throwRuntimeError("assignment to entry in nil map")).set(GL.keyFor(ap),{k:ap,v:$append((aq=$mapIndex(ae,GL.keyFor(ao)),aq!==undefined?aq.v:HA.nil),new AR.ptr(ak,ai))});ah++;$s=14;continue;case 15:$r=I.Slice(c[0],(function(c,d){return function(ar,as){var ar,as,at,au,av,aw;at=AM(((ar<0||ar>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+ar]));au=AM(((as<0||as>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+as]));if(!(at===au)){return at=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+ar]));aw=AN(((as<0||as>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+as]));if(!(av===aw)){return av=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+ar]))=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+as]));};})(c,d));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ar=$subslice(c[0],0,0);as=c[0];at=0;case 23:if(!(at=as.$length)?($throwRuntimeError("index out of range"),undefined):as.$array[as.$offset+at]);if((au===(c[0].$length-1>>0))||!AP(av,(aw=au+1>>0,((aw<0||aw>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+aw])))){$s=25;continue;}$s=26;continue;case 25:ar=$append(ar,av);$s=27;continue;case 26:ax=av.Pos();$s=28;case 28:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;az=a.File(ay);$s=29;case 29:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=AL(a,ay);$s=30;case 30:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}$r=az.MergeLine(ba);$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 27:at++;$s=23;continue;case 24:c[0]=ar;bb=c[0];bc=0;while(true){if(!(bc=bb.$length)?($throwRuntimeError("index out of range"),undefined):bb.$array[bb.$offset+bc]);bf=$assertType(be,GL);if(!(bf.Name===EU.nil)){bf.Name.NamePos=((bd<0||bd>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+bd]).Start;}bf.Path.ValuePos=((bd<0||bd>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+bd]).Start;bf.EndPos=((bd<0||bd>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+bd]).End;bg=(bh=$mapIndex(ae,GL.keyFor(bf)),bh!==undefined?bh.v:HA.nil);bi=0;while(true){if(!(bi=bg.$length)?($throwRuntimeError("index out of range"),undefined):bg.$array[bg.$offset+bi]),AR);bk=bj.cg.List;bl=0;while(true){if(!(bl=bk.$length)?($throwRuntimeError("index out of range"),undefined):bk.$array[bk.$offset+bl]);if(bj.left){bm.Slash=((bd<0||bd>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+bd]).Start-1>>0;}else{bm.Slash=((bd<0||bd>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+bd]).End;}bl++;}bi++;}bc++;}$r=I.Slice(d[0],(function(c,d){return function(bn,bo){var bn,bo;return((bn<0||bn>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+bn]).Pos()<((bo<0||bo>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+bo]).Pos();};})(c,d));$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c[0];}return;}var $f={$blk:AS,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};CD.ptr.prototype.Pos=function(){var a;a=this;return a.Slash;};CD.prototype.Pos=function(){return this.$val.Pos();};CD.ptr.prototype.End=function(){var a;a=this;return(((((a.Slash>>0))+a.Text.length>>0)>>0));};CD.prototype.End=function(){return this.$val.End();};CE.ptr.prototype.Pos=function(){var a,b;a=this;return(b=a.List,(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])).Pos();};CE.prototype.Pos=function(){return this.$val.Pos();};CE.ptr.prototype.End=function(){var a,b,c;a=this;return(b=a.List,c=a.List.$length-1>>0,((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])).End();};CE.prototype.End=function(){return this.$val.End();};CF=function(a){var a;return(a===32)||(a===9)||(a===10)||(a===13);};CG=function(a){var a,b;b=a.length;while(true){if(!(b>0&&CF(a.charCodeAt((b-1>>0))))){break;}b=b-(1)>>0;}return $substring(a,0,b);};CE.ptr.prototype.Text=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a=this;if(a===EQ.nil){return"";}b=$makeSlice(HB,a.List.$length);c=a.List;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);((e<0||e>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]=f.Text);d++;}g=$makeSlice(HB,0,10);h=b;i=0;while(true){if(!(i=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]);switch(0){default:k=j.charCodeAt(1);if(k===(47)){j=$substring(j,2);if(j.length===0){break;}if(j.charCodeAt(0)===32){j=$substring(j,1);break;}if(CH(j)){i++;continue;}}else if(k===(42)){j=$substring(j,2,(j.length-2>>0));}}l=J.Split(j,"\n");m=l;n=0;while(true){if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);g=$append(g,CG(o));n++;}i++;}p=0;q=g;r=0;while(true){if(!(r=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);if(!(s==="")||p>0&&!((t=p-1>>0,((t<0||t>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+t]))==="")){((p<0||p>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+p]=s);p=p+(1)>>0;}r++;}g=$subslice(g,0,p);if(p>0&&!((u=p-1>>0,((u<0||u>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+u]))==="")){g=$append(g,"");}return J.Join(g,"\n");};CE.prototype.Text=function(){return this.$val.Text();};CH=function(a){var a,b,c,d;if(J.HasPrefix(a,"line ")){return true;}b=J.Index(a,":");if(b<=0||(b+1>>0)>=a.length){return false;}c=0;while(true){if(!(c<=(b+1>>0))){break;}if(c===b){c=c+(1)>>0;continue;}d=a.charCodeAt(c);if(!(97<=d&&d<=122||48<=d&&d<=57)){return false;}c=c+(1)>>0;}return true;};CI.ptr.prototype.Pos=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.Names.$length>0){$s=-1;return(b=a.Names,(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])).Pos();}if(!($interfaceIsEqual(a.Type,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:c=a.Type.Pos();$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=4;case 4:return d;case 2:$s=-1;return 0;}return;}var $f={$blk:CI.ptr.prototype.Pos,$c:true,$r,a,b,c,d,$s};return $f;};CI.prototype.Pos=function(){return this.$val.Pos();};CI.ptr.prototype.End=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(!(a.Tag===EV.nil)){$s=-1;return a.Tag.End();}if(!($interfaceIsEqual(a.Type,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:b=a.Type.End();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=4;case 4:return c;case 2:if(a.Names.$length>0){$s=-1;return(d=a.Names,e=a.Names.$length-1>>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e])).End();}$s=-1;return 0;}return;}var $f={$blk:CI.ptr.prototype.End,$c:true,$r,a,b,c,d,e,$s};return $f;};CI.prototype.End=function(){return this.$val.End();};CJ.ptr.prototype.Pos=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(new C.Pos(a.Opening).IsValid()){$s=-1;return a.Opening;}if(a.List.$length>0){$s=1;continue;}$s=2;continue;case 1:c=(b=a.List,(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])).Pos();$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=4;case 4:return d;case 2:$s=-1;return 0;}return;}var $f={$blk:CJ.ptr.prototype.Pos,$c:true,$r,a,b,c,d,$s};return $f;};CJ.prototype.Pos=function(){return this.$val.Pos();};CJ.ptr.prototype.End=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(new C.Pos(a.Closing).IsValid()){$s=-1;return a.Closing+1>>0;}b=a.List.$length;if(b>0){$s=1;continue;}$s=2;continue;case 1:e=(c=a.List,d=b-1>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).End();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=4;case 4:return f;case 2:$s=-1;return 0;}return;}var $f={$blk:CJ.ptr.prototype.End,$c:true,$r,a,b,c,d,e,f,$s};return $f;};CJ.prototype.End=function(){return this.$val.End();};CJ.ptr.prototype.NumFields=function(){var a,b,c,d,e,f;a=this;b=0;if(!(a===ES.nil)){c=a.List;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=e.Names.$length;if(f===0){f=1;}b=b+(f)>>0;d++;}}return b;};CJ.prototype.NumFields=function(){return this.$val.NumFields();};CK.ptr.prototype.Pos=function(){var a;a=this;return a.From;};CK.prototype.Pos=function(){return this.$val.Pos();};CL.ptr.prototype.Pos=function(){var a;a=this;return a.NamePos;};CL.prototype.Pos=function(){return this.$val.Pos();};CM.ptr.prototype.Pos=function(){var a;a=this;return a.Ellipsis;};CM.prototype.Pos=function(){return this.$val.Pos();};CN.ptr.prototype.Pos=function(){var a;a=this;return a.ValuePos;};CN.prototype.Pos=function(){return this.$val.Pos();};CO.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Type.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:CO.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};CO.prototype.Pos=function(){return this.$val.Pos();};CP.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(!($interfaceIsEqual(a.Type,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:b=a.Type.Pos();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=4;case 4:return c;case 2:$s=-1;return a.Lbrace;}return;}var $f={$blk:CP.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};CP.prototype.Pos=function(){return this.$val.Pos();};CQ.ptr.prototype.Pos=function(){var a;a=this;return a.Lparen;};CQ.prototype.Pos=function(){return this.$val.Pos();};CR.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.X.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:CR.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};CR.prototype.Pos=function(){return this.$val.Pos();};CS.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.X.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:CS.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};CS.prototype.Pos=function(){return this.$val.Pos();};CT.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.X.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:CT.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};CT.prototype.Pos=function(){return this.$val.Pos();};CU.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.X.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:CU.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};CU.prototype.Pos=function(){return this.$val.Pos();};CV.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.X.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:CV.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};CV.prototype.Pos=function(){return this.$val.Pos();};CW.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Fun.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:CW.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};CW.prototype.Pos=function(){return this.$val.Pos();};CX.ptr.prototype.Pos=function(){var a;a=this;return a.Star;};CX.prototype.Pos=function(){return this.$val.Pos();};CY.ptr.prototype.Pos=function(){var a;a=this;return a.OpPos;};CY.prototype.Pos=function(){return this.$val.Pos();};CZ.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.X.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:CZ.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};CZ.prototype.Pos=function(){return this.$val.Pos();};DA.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Key.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DA.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};DA.prototype.Pos=function(){return this.$val.Pos();};DC.ptr.prototype.Pos=function(){var a;a=this;return a.Lbrack;};DC.prototype.Pos=function(){return this.$val.Pos();};DD.ptr.prototype.Pos=function(){var a;a=this;return a.Struct;};DD.prototype.Pos=function(){return this.$val.Pos();};DE.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(new C.Pos(a.Func).IsValid()||a.Params===ES.nil){$s=-1;return a.Func;}b=a.Params.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DE.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};DE.prototype.Pos=function(){return this.$val.Pos();};DF.ptr.prototype.Pos=function(){var a;a=this;return a.Interface;};DF.prototype.Pos=function(){return this.$val.Pos();};DG.ptr.prototype.Pos=function(){var a;a=this;return a.Map;};DG.prototype.Pos=function(){return this.$val.Pos();};DH.ptr.prototype.Pos=function(){var a;a=this;return a.Begin;};DH.prototype.Pos=function(){return this.$val.Pos();};CK.ptr.prototype.End=function(){var a;a=this;return a.To;};CK.prototype.End=function(){return this.$val.End();};CL.ptr.prototype.End=function(){var a;a=this;return(((((a.NamePos>>0))+a.Name.length>>0)>>0));};CL.prototype.End=function(){return this.$val.End();};CM.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(!($interfaceIsEqual(a.Elt,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:b=a.Elt.End();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=4;case 4:return c;case 2:$s=-1;return a.Ellipsis+3>>0;}return;}var $f={$blk:CM.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};CM.prototype.End=function(){return this.$val.End();};CN.ptr.prototype.End=function(){var a;a=this;return(((((a.ValuePos>>0))+a.Value.length>>0)>>0));};CN.prototype.End=function(){return this.$val.End();};CO.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Body.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:CO.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};CO.prototype.End=function(){return this.$val.End();};CP.ptr.prototype.End=function(){var a;a=this;return a.Rbrace+1>>0;};CP.prototype.End=function(){return this.$val.End();};CQ.ptr.prototype.End=function(){var a;a=this;return a.Rparen+1>>0;};CQ.prototype.End=function(){return this.$val.End();};CR.ptr.prototype.End=function(){var a;a=this;return a.Sel.End();};CR.prototype.End=function(){return this.$val.End();};CS.ptr.prototype.End=function(){var a;a=this;return a.Rbrack+1>>0;};CS.prototype.End=function(){return this.$val.End();};CT.ptr.prototype.End=function(){var a;a=this;return a.Rbrack+1>>0;};CT.prototype.End=function(){return this.$val.End();};CU.ptr.prototype.End=function(){var a;a=this;return a.Rbrack+1>>0;};CU.prototype.End=function(){return this.$val.End();};CV.ptr.prototype.End=function(){var a;a=this;return a.Rparen+1>>0;};CV.prototype.End=function(){return this.$val.End();};CW.ptr.prototype.End=function(){var a;a=this;return a.Rparen+1>>0;};CW.prototype.End=function(){return this.$val.End();};CX.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.X.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:CX.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};CX.prototype.End=function(){return this.$val.End();};CY.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.X.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:CY.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};CY.prototype.End=function(){return this.$val.End();};CZ.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Y.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:CZ.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};CZ.prototype.End=function(){return this.$val.End();};DA.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Value.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DA.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};DA.prototype.End=function(){return this.$val.End();};DC.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Elt.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DC.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};DC.prototype.End=function(){return this.$val.End();};DD.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Fields.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DD.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};DD.prototype.End=function(){return this.$val.End();};DE.ptr.prototype.End=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(!(a.Results===ES.nil)){$s=1;continue;}$s=2;continue;case 1:b=a.Results.End();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=4;case 4:return c;case 2:d=a.Params.End();$s=5;case 5:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=6;case 6:return e;}return;}var $f={$blk:DE.ptr.prototype.End,$c:true,$r,a,b,c,d,e,$s};return $f;};DE.prototype.End=function(){return this.$val.End();};DF.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Methods.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DF.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};DF.prototype.End=function(){return this.$val.End();};DG.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Value.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DG.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};DG.prototype.End=function(){return this.$val.End();};DH.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Value.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DH.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};DH.prototype.End=function(){return this.$val.End();};DI=function(a){var a;return new CL.ptr(0,a,GU.nil);};$pkg.NewIdent=DI;DJ=function(a){var a;return C.IsExported(a);};$pkg.IsExported=DJ;CL.ptr.prototype.IsExported=function(){var a;a=this;return C.IsExported(a.Name);};CL.prototype.IsExported=function(){return this.$val.IsExported();};CL.ptr.prototype.String=function(){var a;a=this;if(!(a===EU.nil)){return a.Name;}return"";};CL.prototype.String=function(){return this.$val.String();};DK.ptr.prototype.Pos=function(){var a;a=this;return a.From;};DK.prototype.Pos=function(){return this.$val.Pos();};DL.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Decl.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DL.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};DL.prototype.Pos=function(){return this.$val.Pos();};DM.ptr.prototype.Pos=function(){var a;a=this;return a.Semicolon;};DM.prototype.Pos=function(){return this.$val.Pos();};DN.ptr.prototype.Pos=function(){var a;a=this;return a.Label.Pos();};DN.prototype.Pos=function(){return this.$val.Pos();};DO.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.X.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DO.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};DO.prototype.Pos=function(){return this.$val.Pos();};DP.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Chan.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DP.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};DP.prototype.Pos=function(){return this.$val.Pos();};DQ.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.X.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DQ.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};DQ.prototype.Pos=function(){return this.$val.Pos();};DR.ptr.prototype.Pos=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;c=(b=a.Lhs,(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])).Pos();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:DR.ptr.prototype.Pos,$c:true,$r,a,b,c,d,$s};return $f;};DR.prototype.Pos=function(){return this.$val.Pos();};DS.ptr.prototype.Pos=function(){var a;a=this;return a.Go;};DS.prototype.Pos=function(){return this.$val.Pos();};DT.ptr.prototype.Pos=function(){var a;a=this;return a.Defer;};DT.prototype.Pos=function(){return this.$val.Pos();};DU.ptr.prototype.Pos=function(){var a;a=this;return a.Return;};DU.prototype.Pos=function(){return this.$val.Pos();};DV.ptr.prototype.Pos=function(){var a;a=this;return a.TokPos;};DV.prototype.Pos=function(){return this.$val.Pos();};DW.ptr.prototype.Pos=function(){var a;a=this;return a.Lbrace;};DW.prototype.Pos=function(){return this.$val.Pos();};DX.ptr.prototype.Pos=function(){var a;a=this;return a.If;};DX.prototype.Pos=function(){return this.$val.Pos();};DY.ptr.prototype.Pos=function(){var a;a=this;return a.Case;};DY.prototype.Pos=function(){return this.$val.Pos();};DZ.ptr.prototype.Pos=function(){var a;a=this;return a.Switch;};DZ.prototype.Pos=function(){return this.$val.Pos();};EA.ptr.prototype.Pos=function(){var a;a=this;return a.Switch;};EA.prototype.Pos=function(){return this.$val.Pos();};EB.ptr.prototype.Pos=function(){var a;a=this;return a.Case;};EB.prototype.Pos=function(){return this.$val.Pos();};EC.ptr.prototype.Pos=function(){var a;a=this;return a.Select;};EC.prototype.Pos=function(){return this.$val.Pos();};ED.ptr.prototype.Pos=function(){var a;a=this;return a.For;};ED.prototype.Pos=function(){return this.$val.Pos();};EE.ptr.prototype.Pos=function(){var a;a=this;return a.For;};EE.prototype.Pos=function(){return this.$val.Pos();};DK.ptr.prototype.End=function(){var a;a=this;return a.To;};DK.prototype.End=function(){return this.$val.End();};DL.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Decl.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DL.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};DL.prototype.End=function(){return this.$val.End();};DM.ptr.prototype.End=function(){var a;a=this;if(a.Implicit){return a.Semicolon;}return a.Semicolon+1>>0;};DM.prototype.End=function(){return this.$val.End();};DN.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Stmt.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DN.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};DN.prototype.End=function(){return this.$val.End();};DO.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.X.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DO.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};DO.prototype.End=function(){return this.$val.End();};DP.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Value.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DP.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};DP.prototype.End=function(){return this.$val.End();};DQ.ptr.prototype.End=function(){var a;a=this;return a.TokPos+2>>0;};DQ.prototype.End=function(){return this.$val.End();};DR.ptr.prototype.End=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;d=(b=a.Rhs,c=a.Rhs.$length-1>>0,((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])).End();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:DR.ptr.prototype.End,$c:true,$r,a,b,c,d,e,$s};return $f;};DR.prototype.End=function(){return this.$val.End();};DS.ptr.prototype.End=function(){var a;a=this;return a.Call.End();};DS.prototype.End=function(){return this.$val.End();};DT.ptr.prototype.End=function(){var a;a=this;return a.Call.End();};DT.prototype.End=function(){return this.$val.End();};DU.ptr.prototype.End=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Results.$length;if(b>0){$s=1;continue;}$s=2;continue;case 1:e=(c=a.Results,d=b-1>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).End();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=4;case 4:return f;case 2:$s=-1;return a.Return+6>>0;}return;}var $f={$blk:DU.ptr.prototype.End,$c:true,$r,a,b,c,d,e,f,$s};return $f;};DU.prototype.End=function(){return this.$val.End();};DV.ptr.prototype.End=function(){var a;a=this;if(!(a.Label===EU.nil)){return a.Label.End();}return(((((a.TokPos>>0))+new C.Token(a.Tok).String().length>>0)>>0));};DV.prototype.End=function(){return this.$val.End();};DW.ptr.prototype.End=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(new C.Pos(a.Rbrace).IsValid()){$s=-1;return a.Rbrace+1>>0;}b=a.List.$length;if(b>0){$s=1;continue;}$s=2;continue;case 1:e=(c=a.List,d=b-1>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).End();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=4;case 4:return f;case 2:$s=-1;return a.Lbrace+1>>0;}return;}var $f={$blk:DW.ptr.prototype.End,$c:true,$r,a,b,c,d,e,f,$s};return $f;};DW.prototype.End=function(){return this.$val.End();};DX.ptr.prototype.End=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(!($interfaceIsEqual(a.Else,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:b=a.Else.End();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=4;case 4:return c;case 2:d=a.Body.End();$s=5;case 5:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=6;case 6:return e;}return;}var $f={$blk:DX.ptr.prototype.End,$c:true,$r,a,b,c,d,e,$s};return $f;};DX.prototype.End=function(){return this.$val.End();};DY.ptr.prototype.End=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Body.$length;if(b>0){$s=1;continue;}$s=2;continue;case 1:e=(c=a.Body,d=b-1>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).End();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=4;case 4:return f;case 2:$s=-1;return a.Colon+1>>0;}return;}var $f={$blk:DY.ptr.prototype.End,$c:true,$r,a,b,c,d,e,f,$s};return $f;};DY.prototype.End=function(){return this.$val.End();};DZ.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Body.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:DZ.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};DZ.prototype.End=function(){return this.$val.End();};EA.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Body.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:EA.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};EA.prototype.End=function(){return this.$val.End();};EB.ptr.prototype.End=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Body.$length;if(b>0){$s=1;continue;}$s=2;continue;case 1:e=(c=a.Body,d=b-1>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).End();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=4;case 4:return f;case 2:$s=-1;return a.Colon+1>>0;}return;}var $f={$blk:EB.ptr.prototype.End,$c:true,$r,a,b,c,d,e,f,$s};return $f;};EB.prototype.End=function(){return this.$val.End();};EC.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Body.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:EC.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};EC.prototype.End=function(){return this.$val.End();};ED.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Body.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:ED.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};ED.prototype.End=function(){return this.$val.End();};EE.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Body.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:EE.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};EE.prototype.End=function(){return this.$val.End();};EG.ptr.prototype.Pos=function(){var a;a=this;if(!(a.Name===EU.nil)){return a.Name.Pos();}return a.Path.Pos();};EG.prototype.Pos=function(){return this.$val.Pos();};EH.ptr.prototype.Pos=function(){var a,b;a=this;return(b=a.Names,(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])).Pos();};EH.prototype.Pos=function(){return this.$val.Pos();};EI.ptr.prototype.Pos=function(){var a;a=this;return a.Name.Pos();};EI.prototype.Pos=function(){return this.$val.Pos();};EG.ptr.prototype.End=function(){var a;a=this;if(!((a.EndPos===0))){return a.EndPos;}return a.Path.End();};EG.prototype.End=function(){return this.$val.End();};EH.ptr.prototype.End=function(){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Values.$length;if(b>0){$s=1;continue;}$s=2;continue;case 1:e=(c=a.Values,d=b-1>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).End();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=4;case 4:return f;case 2:if(!($interfaceIsEqual(a.Type,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:g=a.Type.End();$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=8;case 8:return h;case 6:$s=-1;return(i=a.Names,j=a.Names.$length-1>>0,((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j])).End();}return;}var $f={$blk:EH.ptr.prototype.End,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};EH.prototype.End=function(){return this.$val.End();};EI.ptr.prototype.End=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Type.End();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:EI.ptr.prototype.End,$c:true,$r,a,b,c,$s};return $f;};EI.prototype.End=function(){return this.$val.End();};EJ.ptr.prototype.Pos=function(){var a;a=this;return a.From;};EJ.prototype.Pos=function(){return this.$val.Pos();};EK.ptr.prototype.Pos=function(){var a;a=this;return a.TokPos;};EK.prototype.Pos=function(){return this.$val.Pos();};EL.ptr.prototype.Pos=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Type.Pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:EL.ptr.prototype.Pos,$c:true,$r,a,b,c,$s};return $f;};EL.prototype.Pos=function(){return this.$val.Pos();};EJ.ptr.prototype.End=function(){var a;a=this;return a.To;};EJ.prototype.End=function(){return this.$val.End();};EK.ptr.prototype.End=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(new C.Pos(a.Rparen).IsValid()){$s=-1;return a.Rparen+1>>0;}c=(b=a.Specs,(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])).End();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EK.ptr.prototype.End,$c:true,$r,a,b,c,d,$s};return $f;};EK.prototype.End=function(){return this.$val.End();};EL.ptr.prototype.End=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(!(a.Body===GC.nil)){$s=1;continue;}$s=2;continue;case 1:b=a.Body.End();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=4;case 4:return c;case 2:d=a.Type.End();$s=5;case 5:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=6;case 6:return e;}return;}var $f={$blk:EL.ptr.prototype.End,$c:true,$r,a,b,c,d,e,$s};return $f;};EL.prototype.End=function(){return this.$val.End();};EM.ptr.prototype.Pos=function(){var a;a=this;return a.Package;};EM.prototype.Pos=function(){return this.$val.Pos();};EM.ptr.prototype.End=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Decls.$length;if(b>0){$s=1;continue;}$s=2;continue;case 1:e=(c=a.Decls,d=b-1>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).End();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=4;case 4:return f;case 2:$s=-1;return a.Name.End();}return;}var $f={$blk:EM.ptr.prototype.End,$c:true,$r,a,b,c,d,e,f,$s};return $f;};EM.prototype.End=function(){return this.$val.End();};EN.ptr.prototype.Pos=function(){var a;a=this;return 0;};EN.prototype.Pos=function(){return this.$val.Pos();};EN.ptr.prototype.End=function(){var a;a=this;return 0;};EN.prototype.End=function(){return this.$val.End();};Q.methods=[{prop:"Visit",name:"Visit",pkg:"",typ:$funcType([BZ],[K],false)}];GV.methods=[{prop:"Lookup",name:"Lookup",pkg:"",typ:$funcType([$String],[GU],false)},{prop:"Insert",name:"Insert",pkg:"",typ:$funcType([GU],[GU],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];GU.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)}];W.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];HK.methods=[{prop:"Write",name:"Write",pkg:"",typ:$funcType([EO],[$Int,$error],false)},{prop:"printf",name:"printf",pkg:"go/ast",typ:$funcType([$String,GT],[],true)},{prop:"print",name:"print",pkg:"go/ast",typ:$funcType([H.Value],[],false)}];EP.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)}];EQ.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"Text",name:"Text",pkg:"",typ:$funcType([],[$String],false)}];ER.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)}];ES.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"NumFields",name:"NumFields",pkg:"",typ:$funcType([],[$Int],false)}];ET.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];EU.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)},{prop:"IsExported",name:"IsExported",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];EW.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];EV.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];EX.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];EY.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];EZ.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FA.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FB.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FC.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FD.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FE.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FF.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FG.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FH.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FI.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FJ.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FK.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FL.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FM.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FN.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FO.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FP.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}];FQ.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];FR.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];FS.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];FT.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];FU.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];FV.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];FW.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];FX.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];FY.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];FZ.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];GA.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];GB.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];GC.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];GD.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];GE.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];GF.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];GG.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];GH.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];GI.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];GJ.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];GK.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}];GL.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"specNode",name:"specNode",pkg:"go/ast",typ:$funcType([],[],false)}];GM.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"specNode",name:"specNode",pkg:"go/ast",typ:$funcType([],[],false)}];GN.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"specNode",name:"specNode",pkg:"go/ast",typ:$funcType([],[],false)}];GO.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"declNode",name:"declNode",pkg:"go/ast",typ:$funcType([],[],false)}];GP.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"declNode",name:"declNode",pkg:"go/ast",typ:$funcType([],[],false)}];GQ.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"declNode",name:"declNode",pkg:"go/ast",typ:$funcType([],[],false)}];GR.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)}];GS.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)}];K.init([{prop:"Visit",name:"Visit",pkg:"",typ:$funcType([BZ],[K],false)}]);Q.init([BZ],[$Bool],false);S.init("",[{prop:"Outer",name:"Outer",embedded:false,exported:true,typ:GV,tag:""},{prop:"Objects",name:"Objects",embedded:false,exported:true,typ:HI,tag:""}]);U.init("",[{prop:"Kind",name:"Kind",embedded:false,exported:true,typ:W,tag:""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""},{prop:"Decl",name:"Decl",embedded:false,exported:true,typ:$emptyInterface,tag:""},{prop:"Data",name:"Data",embedded:false,exported:true,typ:$emptyInterface,tag:""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$emptyInterface,tag:""}]);AC.init([$String,H.Value],[$Bool],false);AH.init("go/ast",[{prop:"output",name:"output",embedded:false,exported:false,typ:F.Writer,tag:""},{prop:"fset",name:"fset",embedded:false,exported:false,typ:GX,tag:""},{prop:"filter",name:"filter",embedded:false,exported:false,typ:AC,tag:""},{prop:"ptrmap",name:"ptrmap",embedded:false,exported:false,typ:HL,tag:""},{prop:"indent",name:"indent",embedded:false,exported:false,typ:$Int,tag:""},{prop:"last",name:"last",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"line",name:"line",embedded:false,exported:false,typ:$Int,tag:""}]);AJ.init("go/ast",[{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""}]);AQ.init("",[{prop:"Start",name:"Start",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"End",name:"End",embedded:false,exported:true,typ:C.Pos,tag:""}]);AR.init("go/ast",[{prop:"left",name:"left",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"cg",name:"cg",embedded:false,exported:false,typ:EQ,tag:""}]);BZ.init([{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)}]);CA.init([{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"exprNode",name:"exprNode",pkg:"go/ast",typ:$funcType([],[],false)}]);CB.init([{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"stmtNode",name:"stmtNode",pkg:"go/ast",typ:$funcType([],[],false)}]);CC.init([{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"declNode",name:"declNode",pkg:"go/ast",typ:$funcType([],[],false)}]);CD.init("",[{prop:"Slash",name:"Slash",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Text",name:"Text",embedded:false,exported:true,typ:$String,tag:""}]);CE.init("",[{prop:"List",name:"List",embedded:false,exported:true,typ:HC,tag:""}]);CI.init("",[{prop:"Doc",name:"Doc",embedded:false,exported:true,typ:EQ,tag:""},{prop:"Names",name:"Names",embedded:false,exported:true,typ:HF,tag:""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:CA,tag:""},{prop:"Tag",name:"Tag",embedded:false,exported:true,typ:EV,tag:""},{prop:"Comment",name:"Comment",embedded:false,exported:true,typ:EQ,tag:""}]);CJ.init("",[{prop:"Opening",name:"Opening",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"List",name:"List",embedded:false,exported:true,typ:HN,tag:""},{prop:"Closing",name:"Closing",embedded:false,exported:true,typ:C.Pos,tag:""}]);CK.init("",[{prop:"From",name:"From",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"To",name:"To",embedded:false,exported:true,typ:C.Pos,tag:""}]);CL.init("",[{prop:"NamePos",name:"NamePos",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""},{prop:"Obj",name:"Obj",embedded:false,exported:true,typ:GU,tag:""}]);CM.init("",[{prop:"Ellipsis",name:"Ellipsis",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Elt",name:"Elt",embedded:false,exported:true,typ:CA,tag:""}]);CN.init("",[{prop:"ValuePos",name:"ValuePos",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Kind",name:"Kind",embedded:false,exported:true,typ:C.Token,tag:""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:$String,tag:""}]);CO.init("",[{prop:"Type",name:"Type",embedded:false,exported:true,typ:FM,tag:""},{prop:"Body",name:"Body",embedded:false,exported:true,typ:GC,tag:""}]);CP.init("",[{prop:"Type",name:"Type",embedded:false,exported:true,typ:CA,tag:""},{prop:"Lbrace",name:"Lbrace",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Elts",name:"Elts",embedded:false,exported:true,typ:HO,tag:""},{prop:"Rbrace",name:"Rbrace",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Incomplete",name:"Incomplete",embedded:false,exported:true,typ:$Bool,tag:""}]);CQ.init("",[{prop:"Lparen",name:"Lparen",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"X",name:"X",embedded:false,exported:true,typ:CA,tag:""},{prop:"Rparen",name:"Rparen",embedded:false,exported:true,typ:C.Pos,tag:""}]);CR.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:CA,tag:""},{prop:"Sel",name:"Sel",embedded:false,exported:true,typ:EU,tag:""}]);CS.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:CA,tag:""},{prop:"Lbrack",name:"Lbrack",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Index",name:"Index",embedded:false,exported:true,typ:CA,tag:""},{prop:"Rbrack",name:"Rbrack",embedded:false,exported:true,typ:C.Pos,tag:""}]);CT.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:CA,tag:""},{prop:"Lbrack",name:"Lbrack",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Indices",name:"Indices",embedded:false,exported:true,typ:HO,tag:""},{prop:"Rbrack",name:"Rbrack",embedded:false,exported:true,typ:C.Pos,tag:""}]);CU.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:CA,tag:""},{prop:"Lbrack",name:"Lbrack",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Low",name:"Low",embedded:false,exported:true,typ:CA,tag:""},{prop:"High",name:"High",embedded:false,exported:true,typ:CA,tag:""},{prop:"Max",name:"Max",embedded:false,exported:true,typ:CA,tag:""},{prop:"Slice3",name:"Slice3",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"Rbrack",name:"Rbrack",embedded:false,exported:true,typ:C.Pos,tag:""}]);CV.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:CA,tag:""},{prop:"Lparen",name:"Lparen",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:CA,tag:""},{prop:"Rparen",name:"Rparen",embedded:false,exported:true,typ:C.Pos,tag:""}]);CW.init("",[{prop:"Fun",name:"Fun",embedded:false,exported:true,typ:CA,tag:""},{prop:"Lparen",name:"Lparen",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Args",name:"Args",embedded:false,exported:true,typ:HO,tag:""},{prop:"Ellipsis",name:"Ellipsis",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Rparen",name:"Rparen",embedded:false,exported:true,typ:C.Pos,tag:""}]);CX.init("",[{prop:"Star",name:"Star",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"X",name:"X",embedded:false,exported:true,typ:CA,tag:""}]);CY.init("",[{prop:"OpPos",name:"OpPos",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Op",name:"Op",embedded:false,exported:true,typ:C.Token,tag:""},{prop:"X",name:"X",embedded:false,exported:true,typ:CA,tag:""}]);CZ.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:CA,tag:""},{prop:"OpPos",name:"OpPos",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Op",name:"Op",embedded:false,exported:true,typ:C.Token,tag:""},{prop:"Y",name:"Y",embedded:false,exported:true,typ:CA,tag:""}]);DA.init("",[{prop:"Key",name:"Key",embedded:false,exported:true,typ:CA,tag:""},{prop:"Colon",name:"Colon",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:CA,tag:""}]);DC.init("",[{prop:"Lbrack",name:"Lbrack",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Len",name:"Len",embedded:false,exported:true,typ:CA,tag:""},{prop:"Elt",name:"Elt",embedded:false,exported:true,typ:CA,tag:""}]);DD.init("",[{prop:"Struct",name:"Struct",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Fields",name:"Fields",embedded:false,exported:true,typ:ES,tag:""},{prop:"Incomplete",name:"Incomplete",embedded:false,exported:true,typ:$Bool,tag:""}]);DE.init("",[{prop:"Func",name:"Func",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"TypeParams",name:"TypeParams",embedded:false,exported:true,typ:ES,tag:""},{prop:"Params",name:"Params",embedded:false,exported:true,typ:ES,tag:""},{prop:"Results",name:"Results",embedded:false,exported:true,typ:ES,tag:""}]);DF.init("",[{prop:"Interface",name:"Interface",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Methods",name:"Methods",embedded:false,exported:true,typ:ES,tag:""},{prop:"Incomplete",name:"Incomplete",embedded:false,exported:true,typ:$Bool,tag:""}]);DG.init("",[{prop:"Map",name:"Map",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Key",name:"Key",embedded:false,exported:true,typ:CA,tag:""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:CA,tag:""}]);DH.init("",[{prop:"Begin",name:"Begin",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Arrow",name:"Arrow",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Dir",name:"Dir",embedded:false,exported:true,typ:DB,tag:""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:CA,tag:""}]);DK.init("",[{prop:"From",name:"From",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"To",name:"To",embedded:false,exported:true,typ:C.Pos,tag:""}]);DL.init("",[{prop:"Decl",name:"Decl",embedded:false,exported:true,typ:CC,tag:""}]);DM.init("",[{prop:"Semicolon",name:"Semicolon",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Implicit",name:"Implicit",embedded:false,exported:true,typ:$Bool,tag:""}]);DN.init("",[{prop:"Label",name:"Label",embedded:false,exported:true,typ:EU,tag:""},{prop:"Colon",name:"Colon",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Stmt",name:"Stmt",embedded:false,exported:true,typ:CB,tag:""}]);DO.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:CA,tag:""}]);DP.init("",[{prop:"Chan",name:"Chan",embedded:false,exported:true,typ:CA,tag:""},{prop:"Arrow",name:"Arrow",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:CA,tag:""}]);DQ.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:CA,tag:""},{prop:"TokPos",name:"TokPos",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Tok",name:"Tok",embedded:false,exported:true,typ:C.Token,tag:""}]);DR.init("",[{prop:"Lhs",name:"Lhs",embedded:false,exported:true,typ:HO,tag:""},{prop:"TokPos",name:"TokPos",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Tok",name:"Tok",embedded:false,exported:true,typ:C.Token,tag:""},{prop:"Rhs",name:"Rhs",embedded:false,exported:true,typ:HO,tag:""}]);DS.init("",[{prop:"Go",name:"Go",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Call",name:"Call",embedded:false,exported:true,typ:FF,tag:""}]);DT.init("",[{prop:"Defer",name:"Defer",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Call",name:"Call",embedded:false,exported:true,typ:FF,tag:""}]);DU.init("",[{prop:"Return",name:"Return",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Results",name:"Results",embedded:false,exported:true,typ:HO,tag:""}]);DV.init("",[{prop:"TokPos",name:"TokPos",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Tok",name:"Tok",embedded:false,exported:true,typ:C.Token,tag:""},{prop:"Label",name:"Label",embedded:false,exported:true,typ:EU,tag:""}]);DW.init("",[{prop:"Lbrace",name:"Lbrace",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"List",name:"List",embedded:false,exported:true,typ:HP,tag:""},{prop:"Rbrace",name:"Rbrace",embedded:false,exported:true,typ:C.Pos,tag:""}]);DX.init("",[{prop:"If",name:"If",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Init",name:"Init",embedded:false,exported:true,typ:CB,tag:""},{prop:"Cond",name:"Cond",embedded:false,exported:true,typ:CA,tag:""},{prop:"Body",name:"Body",embedded:false,exported:true,typ:GC,tag:""},{prop:"Else",name:"Else",embedded:false,exported:true,typ:CB,tag:""}]);DY.init("",[{prop:"Case",name:"Case",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"List",name:"List",embedded:false,exported:true,typ:HO,tag:""},{prop:"Colon",name:"Colon",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Body",name:"Body",embedded:false,exported:true,typ:HP,tag:""}]);DZ.init("",[{prop:"Switch",name:"Switch",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Init",name:"Init",embedded:false,exported:true,typ:CB,tag:""},{prop:"Tag",name:"Tag",embedded:false,exported:true,typ:CA,tag:""},{prop:"Body",name:"Body",embedded:false,exported:true,typ:GC,tag:""}]);EA.init("",[{prop:"Switch",name:"Switch",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Init",name:"Init",embedded:false,exported:true,typ:CB,tag:""},{prop:"Assign",name:"Assign",embedded:false,exported:true,typ:CB,tag:""},{prop:"Body",name:"Body",embedded:false,exported:true,typ:GC,tag:""}]);EB.init("",[{prop:"Case",name:"Case",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Comm",name:"Comm",embedded:false,exported:true,typ:CB,tag:""},{prop:"Colon",name:"Colon",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Body",name:"Body",embedded:false,exported:true,typ:HP,tag:""}]);EC.init("",[{prop:"Select",name:"Select",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Body",name:"Body",embedded:false,exported:true,typ:GC,tag:""}]);ED.init("",[{prop:"For",name:"For",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Init",name:"Init",embedded:false,exported:true,typ:CB,tag:""},{prop:"Cond",name:"Cond",embedded:false,exported:true,typ:CA,tag:""},{prop:"Post",name:"Post",embedded:false,exported:true,typ:CB,tag:""},{prop:"Body",name:"Body",embedded:false,exported:true,typ:GC,tag:""}]);EE.init("",[{prop:"For",name:"For",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Key",name:"Key",embedded:false,exported:true,typ:CA,tag:""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:CA,tag:""},{prop:"TokPos",name:"TokPos",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Tok",name:"Tok",embedded:false,exported:true,typ:C.Token,tag:""},{prop:"X",name:"X",embedded:false,exported:true,typ:CA,tag:""},{prop:"Body",name:"Body",embedded:false,exported:true,typ:GC,tag:""}]);EF.init([{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"specNode",name:"specNode",pkg:"go/ast",typ:$funcType([],[],false)}]);EG.init("",[{prop:"Doc",name:"Doc",embedded:false,exported:true,typ:EQ,tag:""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:EU,tag:""},{prop:"Path",name:"Path",embedded:false,exported:true,typ:EV,tag:""},{prop:"Comment",name:"Comment",embedded:false,exported:true,typ:EQ,tag:""},{prop:"EndPos",name:"EndPos",embedded:false,exported:true,typ:C.Pos,tag:""}]);EH.init("",[{prop:"Doc",name:"Doc",embedded:false,exported:true,typ:EQ,tag:""},{prop:"Names",name:"Names",embedded:false,exported:true,typ:HF,tag:""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:CA,tag:""},{prop:"Values",name:"Values",embedded:false,exported:true,typ:HO,tag:""},{prop:"Comment",name:"Comment",embedded:false,exported:true,typ:EQ,tag:""}]);EI.init("",[{prop:"Doc",name:"Doc",embedded:false,exported:true,typ:EQ,tag:""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:EU,tag:""},{prop:"TypeParams",name:"TypeParams",embedded:false,exported:true,typ:ES,tag:""},{prop:"Assign",name:"Assign",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:CA,tag:""},{prop:"Comment",name:"Comment",embedded:false,exported:true,typ:EQ,tag:""}]);EJ.init("",[{prop:"From",name:"From",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"To",name:"To",embedded:false,exported:true,typ:C.Pos,tag:""}]);EK.init("",[{prop:"Doc",name:"Doc",embedded:false,exported:true,typ:EQ,tag:""},{prop:"TokPos",name:"TokPos",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Tok",name:"Tok",embedded:false,exported:true,typ:C.Token,tag:""},{prop:"Lparen",name:"Lparen",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Specs",name:"Specs",embedded:false,exported:true,typ:HQ,tag:""},{prop:"Rparen",name:"Rparen",embedded:false,exported:true,typ:C.Pos,tag:""}]);EL.init("",[{prop:"Doc",name:"Doc",embedded:false,exported:true,typ:EQ,tag:""},{prop:"Recv",name:"Recv",embedded:false,exported:true,typ:ES,tag:""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:EU,tag:""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:FM,tag:""},{prop:"Body",name:"Body",embedded:false,exported:true,typ:GC,tag:""}]);EM.init("",[{prop:"Doc",name:"Doc",embedded:false,exported:true,typ:EQ,tag:""},{prop:"Package",name:"Package",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:EU,tag:""},{prop:"Decls",name:"Decls",embedded:false,exported:true,typ:HD,tag:""},{prop:"Scope",name:"Scope",embedded:false,exported:true,typ:GV,tag:""},{prop:"Imports",name:"Imports",embedded:false,exported:true,typ:HE,tag:""},{prop:"Unresolved",name:"Unresolved",embedded:false,exported:true,typ:HF,tag:""},{prop:"Comments",name:"Comments",embedded:false,exported:true,typ:GZ,tag:""}]);EN.init("",[{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""},{prop:"Scope",name:"Scope",embedded:false,exported:true,typ:GV,tag:""},{prop:"Imports",name:"Imports",embedded:false,exported:true,typ:HI,tag:""},{prop:"Files",name:"Files",embedded:false,exported:true,typ:HR,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=B.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}X=$toNativeArray($kindString,["bad","package","const","type","var","func","label"]);AI=(new EO($stringToBytes(". ")));}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["go/internal/typeparams"]=(function(){var $pkg={},$init,A,B,D,F,G,H,I,C,E;A=$packages["go/ast"];B=$packages["go/token"];D=$pkg.IndexExpr=$newType(0,$kindStruct,"typeparams.IndexExpr",true,"go/internal/typeparams",true,function(Orig_,IndexListExpr_){this.$val=this;if(arguments.length===0){this.Orig=$ifaceNil;this.IndexListExpr=H.nil;return;}this.Orig=Orig_;this.IndexListExpr=IndexListExpr_;});F=$sliceType(A.Expr);G=$ptrType(A.IndexExpr);H=$ptrType(A.IndexListExpr);I=$ptrType(D);C=function(a,b,c,d){var a,b,c,d,e;e=c.$length;if(e===(0)){$panic(new $String("internal error: PackIndexExpr with empty expr slice"));}else if(e===(1)){return new A.IndexExpr.ptr(a,b,(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]),d);}else{return new A.IndexListExpr.ptr(a,b,c,d);}};$pkg.PackIndexExpr=C;E=function(a){var a,b,c,d;b=a;if($assertType(b,G,true)[1]){c=b.$val;return new D.ptr(c,new A.IndexListExpr.ptr(c.X,c.Lbrack,new F([c.Index]),c.Rbrack));}else if($assertType(b,H,true)[1]){d=b.$val;return new D.ptr(d,d);}return I.nil;};$pkg.UnpackIndexExpr=E;D.init("",[{prop:"Orig",name:"Orig",embedded:false,exported:true,typ:A.Expr,tag:""},{prop:"IndexListExpr",name:"IndexListExpr",embedded:true,exported:true,typ:H,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["go/parser"]=(function(){var $pkg={},$init,I,J,A,B,E,F,C,K,L,M,N,G,D,H,P,R,W,AB,AE,AI,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,CY,CZ,DA,DB,DC,DD,DE,DH,DI,DJ,DK,Q,Y,Z,AA,O,S,T,U,V,X,AC,AD,AF,AG,AH,AJ;I=$packages["bytes"];J=$packages["errors"];A=$packages["fmt"];B=$packages["go/ast"];E=$packages["go/internal/typeparams"];F=$packages["go/scanner"];C=$packages["go/token"];K=$packages["io"];L=$packages["io/fs"];M=$packages["os"];N=$packages["path/filepath"];G=$packages["strconv"];D=$packages["strings"];H=$packages["unicode"];P=$pkg.resolver=$newType(0,$kindStruct,"parser.resolver",true,"go/parser",false,function(handle_,declErr_,pkgScope_,topScope_,unresolved_,depth_,labelScope_,targetStack_){this.$val=this;if(arguments.length===0){this.handle=AO.nil;this.declErr=$throwNilPointerError;this.pkgScope=AN.nil;this.topScope=AN.nil;this.unresolved=AQ.nil;this.depth=0;this.labelScope=AN.nil;this.targetStack=AR.nil;return;}this.handle=handle_;this.declErr=declErr_;this.pkgScope=pkgScope_;this.topScope=topScope_;this.unresolved=unresolved_;this.depth=depth_;this.labelScope=labelScope_;this.targetStack=targetStack_;});R=$pkg.parser=$newType(0,$kindStruct,"parser.parser",true,"go/parser",false,function(file_,errors_,scanner_,mode_,trace_,indent_,comments_,leadComment_,lineComment_,pos_,tok_,lit_,syncPos_,syncCnt_,exprLev_,inRhs_,imports_,nestLev_){this.$val=this;if(arguments.length===0){this.file=AO.nil;this.errors=F.ErrorList.nil;this.scanner=new F.Scanner.ptr(AO.nil,"",DC.nil,$throwNilPointerError,0,0,0,0,0,false,0);this.mode=0;this.trace=false;this.indent=0;this.comments=DB.nil;this.leadComment=BZ.nil;this.lineComment=BZ.nil;this.pos=0;this.tok=0;this.lit="";this.syncPos=0;this.syncCnt=0;this.exprLev=0;this.inRhs=false;this.imports=DA.nil;this.nestLev=0;return;}this.file=file_;this.errors=errors_;this.scanner=scanner_;this.mode=mode_;this.trace=trace_;this.indent=indent_;this.comments=comments_;this.leadComment=leadComment_;this.lineComment=lineComment_;this.pos=pos_;this.tok=tok_;this.lit=lit_;this.syncPos=syncPos_;this.syncCnt=syncCnt_;this.exprLev=exprLev_;this.inRhs=inRhs_;this.imports=imports_;this.nestLev=nestLev_;});W=$pkg.bailout=$newType(0,$kindStruct,"parser.bailout",true,"go/parser",false,function(pos_,msg_){this.$val=this;if(arguments.length===0){this.pos=0;this.msg="";return;}this.pos=pos_;this.msg=msg_;});AB=$pkg.field=$newType(0,$kindStruct,"parser.field",true,"go/parser",false,function(name_,typ_){this.$val=this;if(arguments.length===0){this.name=AP.nil;this.typ=$ifaceNil;return;}this.name=name_;this.typ=typ_;});AE=$pkg.parseSpecFunction=$newType(4,$kindFunc,"parser.parseSpecFunction",true,"go/parser",false,null);AI=$pkg.Mode=$newType(4,$kindUint,"parser.Mode",true,"go/parser",true,null);AN=$ptrType(B.Scope);AO=$ptrType(C.File);AP=$ptrType(B.Ident);AQ=$sliceType(AP);AR=$sliceType(AQ);AS=$ptrType(B.Object);AT=$interfaceType([{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)}]);AU=$sliceType($emptyInterface);AV=$ptrType(B.FuncLit);AW=$ptrType(B.SelectorExpr);AX=$ptrType(B.StructType);AY=$ptrType(B.FuncType);AZ=$ptrType(B.CompositeLit);BA=$ptrType(B.InterfaceType);BB=$ptrType(B.LabeledStmt);BC=$ptrType(B.AssignStmt);BD=$ptrType(B.BranchStmt);BE=$ptrType(B.BlockStmt);BF=$ptrType(B.IfStmt);BG=$ptrType(B.CaseClause);BH=$ptrType(B.SwitchStmt);BI=$ptrType(B.TypeSwitchStmt);BJ=$ptrType(B.CommClause);BK=$ptrType(B.SelectStmt);BL=$ptrType(B.ForStmt);BM=$ptrType(B.RangeStmt);BN=$ptrType(B.GenDecl);BO=$ptrType(B.FuncDecl);BP=$ptrType(B.KeyValueExpr);BQ=$sliceType(B.Expr);BR=$ptrType(B.ValueSpec);BS=$ptrType(B.TypeSpec);BT=$ptrType(B.FieldList);BU=$ptrType(B.StarExpr);BV=$ptrType(B.IndexExpr);BW=$ptrType(B.IndexListExpr);BX=$ptrType(F.ErrorList);BY=$ptrType(B.Comment);BZ=$ptrType(B.CommentGroup);CA=$sliceType(BY);CB=$ptrType(B.ArrayType);CC=$ptrType(B.BasicLit);CD=$ptrType(B.Field);CE=$sliceType(CD);CF=$ptrType(B.Ellipsis);CG=$sliceType(AB);CH=$ptrType(B.MapType);CI=$ptrType(B.ChanType);CJ=$sliceType(B.Stmt);CK=$arrayType(B.Expr,3);CL=$arrayType(C.Pos,2);CM=$ptrType(B.CallExpr);CN=$ptrType(B.BadExpr);CO=$ptrType(B.ParenExpr);CP=$ptrType(B.SliceExpr);CQ=$ptrType(B.TypeAssertExpr);CR=$ptrType(B.UnaryExpr);CS=$ptrType(B.BinaryExpr);CT=$ptrType(B.ReturnStmt);CU=$ptrType(B.ExprStmt);CV=$structType("go/parser",[{prop:"pos",name:"pos",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"lit",name:"lit",embedded:false,exported:false,typ:$String,tag:""}]);CW=$sliceType(B.Spec);CX=$ptrType(B.File);CY=$sliceType(B.Decl);CZ=$ptrType(B.ImportSpec);DA=$sliceType(CZ);DB=$sliceType(BZ);DC=$sliceType($Uint8);DD=$ptrType(I.Buffer);DE=$ptrType(C.FileSet);DH=$ptrType(P);DI=$funcType([C.Pos,$String],[],false);DJ=$mapType(C.Token,$Bool);DK=$ptrType(R);O=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=B.NewScope(AN.nil);e=new P.ptr(b,c,d,d,AQ.nil,1,AN.nil,AR.nil);f=a.Decls;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);$r=B.Walk(e,h);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g++;$s=1;continue;case 2:$r=e.closeScope();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}X(e.topScope===AN.nil,"unbalanced scopes");X(e.labelScope===AN.nil,"unbalanced label scopes");i=0;j=e.unresolved;k=0;case 5:if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);X(l.Obj===Q,"object already resolved");l.Obj=e.pkgScope.Lookup(l.Name);if(l.Obj===AS.nil){$s=7;continue;}if(false){$s=8;continue;}$s=9;continue;case 7:(m=e.unresolved,((i<0||i>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+i]=l));i=i+(1)>>0;$s=9;continue;case 8:n=$assertType(l.Obj.Decl,AT).Pos();$s=10;case 10:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;$r=e.trace("resolved %s@%v to package object %v",new AU([new $String(l.Name),new C.Pos(l.Pos()),new C.Pos(o)]));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:k++;$s=5;continue;case 6:a.Scope=e.pkgScope;a.Unresolved=$subslice(e.unresolved,0,i);$s=-1;return;}return;}var $f={$blk:O,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};P.ptr.prototype.trace=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.sprintf(a,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=A.Println(new AU([new $String(D.Repeat(". ",c.depth)+d)]));$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.trace,$c:true,$r,a,b,c,d,e,$s};return $f;};P.prototype.trace=function(a,b){return this.$val.trace(a,b);};P.ptr.prototype.sprintf=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);h=g;if($assertType(h,C.Pos,true)[1]){$s=3;continue;}$s=4;continue;case 3:i=h.$val;k=c.handle.Position(i);$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}((f<0||f>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]=(j=k,new j.constructor.elem(j)));case 4:e++;$s=1;continue;case 2:l=A.Sprintf(a,b);$s=6;case 6:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=7;case 7:return m;}return;}var $f={$blk:P.ptr.prototype.sprintf,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};P.prototype.sprintf=function(a,b){return this.$val.sprintf(a,b);};P.ptr.prototype.openScope=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;b.depth=b.depth+(1)>>0;if(b.depth>1000){$panic((c=new W.ptr(a,"exceeded max scope depth during object resolution"),new c.constructor.elem(c)));}if(false){$s=1;continue;}$s=2;continue;case 1:$r=b.trace("opening scope @%v",new AU([new C.Pos(a)]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:b.topScope=B.NewScope(b.topScope);$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.openScope,$c:true,$r,a,b,c,$s};return $f;};P.prototype.openScope=function(a){return this.$val.openScope(a);};P.ptr.prototype.closeScope=function(){var{a,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;a.depth=a.depth-(1)>>0;if(false){$s=1;continue;}$s=2;continue;case 1:$r=a.trace("closing scope",new AU([]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:a.topScope=a.topScope.Outer;$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.closeScope,$c:true,$r,a,$s};return $f;};P.prototype.closeScope=function(){return this.$val.closeScope();};P.ptr.prototype.openLabelScope=function(){var a;a=this;a.labelScope=B.NewScope(a.labelScope);a.targetStack=$append(a.targetStack,AQ.nil);};P.prototype.openLabelScope=function(){return this.$val.openLabelScope();};P.ptr.prototype.closeLabelScope=function(){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.targetStack.$length-1>>0;c=a.labelScope;d=(e=a.targetStack,((b<0||b>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+b]));f=0;case 1:if(!(f=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f]);g.Obj=c.Lookup(g.Name);if(g.Obj===AS.nil&&!(a.declErr===$throwNilPointerError)){$s=3;continue;}$s=4;continue;case 3:h=g.Pos();i=A.Sprintf("label %s undefined",new AU([new $String(g.Name)]));$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$r=a.declErr(h,j);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:f++;$s=1;continue;case 2:a.targetStack=$subslice(a.targetStack,0,b);a.labelScope=a.labelScope.Outer;$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.closeLabelScope,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};P.prototype.closeLabelScope=function(){return this.$val.closeLabelScope();};P.ptr.prototype.declare=function(a,b,c,d,e){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{a,b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;g=e;h=0;case 1:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if(!(i.Obj===AS.nil)){$s=3;continue;}$s=4;continue;case 3:j=A.Sprintf("%v: identifier %s already declared or resolved",new AU([new C.Pos(i.Pos()),new $String(i.Name)]));$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}$panic(new $String(j));case 4:k=B.NewObj(d,i.Name);k.Decl=a;k.Data=b;l=$assertType(a,AP,true);m=l[1];if(!m){i.Obj=k;}if(!(i.Name==="_")){$s=6;continue;}$s=7;continue;case 6:if(false){$s=8;continue;}$s=9;continue;case 8:$r=f.trace("declaring %s@%v",new AU([new $String(i.Name),new C.Pos(i.Pos())]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:n=c.Insert(k);if(!(n===AS.nil)&&!(f.declErr===$throwNilPointerError)){$s=11;continue;}$s=12;continue;case 11:o="";p=n.Pos();if(new C.Pos(p).IsValid()){$s=13;continue;}$s=14;continue;case 13:q=f.sprintf("\n\tprevious declaration at %v",new AU([new C.Pos(p)]));$s=15;case 15:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}o=q;case 14:r=i.Pos();s=A.Sprintf("%s redeclared in this block%s",new AU([new $String(i.Name),new $String(o)]));$s=16;case 16:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;$r=f.declErr(r,t);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:case 7:h++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.declare,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};P.prototype.declare=function(a,b,c,d,e){return this.$val.declare(a,b,c,d,e);};P.ptr.prototype.shortVarDecl=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=0;d=a.Lhs;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=$assertType(f,AP,true);h=g[0];i=g[1];if(i){$s=3;continue;}$s=4;continue;case 3:X(h.Obj===AS.nil,"identifier already declared or resolved");j=B.NewObj(4,h.Name);j.Decl=a;h.Obj=j;if(!(h.Name==="_")){$s=5;continue;}$s=6;continue;case 5:if(false){$s=7;continue;}$s=8;continue;case 7:$r=b.trace("declaring %s@%v",new AU([new $String(h.Name),new C.Pos(h.Pos())]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:k=b.topScope.Insert(j);if(!(k===AS.nil)){h.Obj=k;}else{c=c+(1)>>0;}case 6:case 4:e++;$s=1;continue;case 2:if((c===0)&&!(b.declErr===$throwNilPointerError)){$s=10;continue;}$s=11;continue;case 10:m=(l=a.Lhs,(0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0])).Pos();$s=12;case 12:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}$r=b.declErr(m,"no new variables on left side of :=");$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.shortVarDecl,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};P.prototype.shortVarDecl=function(a){return this.$val.shortVarDecl(a);};P.ptr.prototype.resolve=function(a,b){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!(a.Obj===AS.nil)){$s=1;continue;}$s=2;continue;case 1:d=c.sprintf("%v: identifier %s already declared or resolved",new AU([new C.Pos(a.Pos()),new $String(a.Name)]));$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$panic(new $String(d));case 2:if(a.Name==="_"){$s=-1;return;}e=c.topScope;case 4:if(!(!(e===AN.nil))){$s=5;continue;}f=e.Lookup(a.Name);if(!(f===AS.nil)){$s=6;continue;}$s=7;continue;case 6:if(false){$s=8;continue;}$s=9;continue;case 8:$r=c.trace("resolved %v:%s to %v",new AU([new C.Pos(a.Pos()),new $String(a.Name),f]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:X(!(f.Name===""),"obj with no name");g=$assertType(f.Decl,AP,true);h=g[1];if(!h){a.Obj=f;}$s=-1;return;case 7:e=e.Outer;$s=4;continue;case 5:if(b){a.Obj=Q;c.unresolved=$append(c.unresolved,a);}$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.resolve,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};P.prototype.resolve=function(a,b){return this.$val.resolve(a,b);};P.ptr.prototype.walkExprs=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);$r=B.Walk(b,e);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.walkExprs,$c:true,$r,a,b,c,d,e,$s};return $f;};P.prototype.walkExprs=function(a){return this.$val.walkExprs(a);};P.ptr.prototype.walkLHS=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=AC(e);g=$assertType(f,AP,true);h=g[1];if(!h&&!($interfaceIsEqual(f,$ifaceNil))){$s=3;continue;}$s=4;continue;case 3:$r=B.Walk(b,f);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.walkLHS,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};P.prototype.walkLHS=function(a){return this.$val.walkLHS(a);};P.ptr.prototype.walkStmts=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);$r=B.Walk(b,e);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.walkStmts,$c:true,$r,a,b,c,d,e,$s};return $f;};P.prototype.walkStmts=function(a){return this.$val.walkStmts(a);};P.ptr.prototype.Visit=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(false&&!($interfaceIsEqual(a,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:c=a;d=a.Pos();$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=new C.Pos(d);$r=b.trace("node %T@%v",new AU([c,e]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:f=a;if($assertType(f,AP,true)[1]){$s=5;continue;}if($assertType(f,AV,true)[1]){$s=6;continue;}if($assertType(f,AW,true)[1]){$s=7;continue;}if($assertType(f,AX,true)[1]){$s=8;continue;}if($assertType(f,AY,true)[1]){$s=9;continue;}if($assertType(f,AZ,true)[1]){$s=10;continue;}if($assertType(f,BA,true)[1]){$s=11;continue;}if($assertType(f,BB,true)[1]){$s=12;continue;}if($assertType(f,BC,true)[1]){$s=13;continue;}if($assertType(f,BD,true)[1]){$s=14;continue;}if($assertType(f,BE,true)[1]){$s=15;continue;}if($assertType(f,BF,true)[1]){$s=16;continue;}if($assertType(f,BG,true)[1]){$s=17;continue;}if($assertType(f,BH,true)[1]){$s=18;continue;}if($assertType(f,BI,true)[1]){$s=19;continue;}if($assertType(f,BJ,true)[1]){$s=20;continue;}if($assertType(f,BK,true)[1]){$s=21;continue;}if($assertType(f,BL,true)[1]){$s=22;continue;}if($assertType(f,BM,true)[1]){$s=23;continue;}if($assertType(f,BN,true)[1]){$s=24;continue;}if($assertType(f,BO,true)[1]){$s=25;continue;}$s=26;continue;case 5:g=f.$val;$r=b.resolve(g,true);$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 6:h=f.$val;ac=h.Pos();$s=29;case 29:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}$r=b.openScope(ac);$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);$r=b.walkFuncType(h.Type);$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.walkBody(h.Body);$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 7:i=f.$val;$r=B.Walk(b,i.X);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 8:j=f.$val;$r=b.openScope(j.Pos());$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);$r=b.walkFieldList(j.Fields,4);$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 9:k=f.$val;ad=k.Pos();$s=36;case 36:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}$r=b.openScope(ad);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);$r=b.walkFuncType(k);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 10:l=f.$val;if(!($interfaceIsEqual(l.Type,$ifaceNil))){$s=39;continue;}$s=40;continue;case 39:$r=B.Walk(b,l.Type);$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 40:ae=l.Elts;af=0;case 42:if(!(af=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+af]);ah=$assertType(ag,BP,true);ai=ah[0];if(!(ai===BP.nil)){$s=44;continue;}$s=45;continue;case 44:aj=$assertType(ai.Key,AP,true);ak=aj[0];if(!(ak===AP.nil)){$s=47;continue;}$s=48;continue;case 47:$r=b.resolve(ak,false);$s=50;case 50:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=49;continue;case 48:$r=B.Walk(b,ai.Key);$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 49:$r=B.Walk(b,ai.Value);$s=52;case 52:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=46;continue;case 45:$r=B.Walk(b,ag);$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 46:af++;$s=42;continue;case 43:$s=27;continue;case 11:m=f.$val;$r=b.openScope(m.Pos());$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);$r=b.walkFieldList(m.Methods,5);$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 12:n=f.$val;$r=b.declare(n,$ifaceNil,b.labelScope,6,new AQ([n.Label]));$s=56;case 56:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.Walk(b,n.Stmt);$s=57;case 57:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 13:o=f.$val;$r=b.walkExprs(o.Rhs);$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(o.Tok===47){$s=59;continue;}$s=60;continue;case 59:$r=b.shortVarDecl(o);$s=62;case 62:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=61;continue;case 60:$r=b.walkExprs(o.Lhs);$s=63;case 63:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 61:$s=27;continue;case 14:p=f.$val;if(!((p.Tok===69))&&!(p.Label===AP.nil)){al=b.targetStack.$length-1>>0;(an=b.targetStack,((al<0||al>=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+al]=$append((am=b.targetStack,((al<0||al>=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+al])),p.Label)));}$s=27;continue;case 15:q=f.$val;$r=b.openScope(q.Pos());$s=64;case 64:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);$r=b.walkStmts(q.List);$s=65;case 65:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 16:r=f.$val;$r=b.openScope(r.Pos());$s=66;case 66:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);if(!($interfaceIsEqual(r.Init,$ifaceNil))){$s=67;continue;}$s=68;continue;case 67:$r=B.Walk(b,r.Init);$s=69;case 69:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 68:$r=B.Walk(b,r.Cond);$s=70;case 70:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.Walk(b,r.Body);$s=71;case 71:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(r.Else,$ifaceNil))){$s=72;continue;}$s=73;continue;case 72:$r=B.Walk(b,r.Else);$s=74;case 74:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 73:$s=27;continue;case 17:s=f.$val;$r=b.walkExprs(s.List);$s=75;case 75:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.openScope(s.Pos());$s=76;case 76:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);$r=b.walkStmts(s.Body);$s=77;case 77:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 18:t=f.$val;$r=b.openScope(t.Pos());$s=78;case 78:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);if(!($interfaceIsEqual(t.Init,$ifaceNil))){$s=79;continue;}$s=80;continue;case 79:$r=B.Walk(b,t.Init);$s=81;case 81:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 80:if(!($interfaceIsEqual(t.Tag,$ifaceNil))){$s=82;continue;}$s=83;continue;case 82:if(!($interfaceIsEqual(t.Init,$ifaceNil))){$s=84;continue;}$s=85;continue;case 84:ao=t.Tag.Pos();$s=86;case 86:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$r=b.openScope(ao);$s=87;case 87:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);case 85:$r=B.Walk(b,t.Tag);$s=88;case 88:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 83:if(!(t.Body===BE.nil)){$s=89;continue;}$s=90;continue;case 89:$r=b.walkStmts(t.Body.List);$s=91;case 91:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 90:$s=27;continue;case 19:u=f.$val;if(!($interfaceIsEqual(u.Init,$ifaceNil))){$s=92;continue;}$s=93;continue;case 92:$r=b.openScope(u.Pos());$s=94;case 94:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);$r=B.Walk(b,u.Init);$s=95;case 95:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 93:ap=u.Assign.Pos();$s=96;case 96:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}$r=b.openScope(ap);$s=97;case 97:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);$r=B.Walk(b,u.Assign);$s=98;case 98:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(u.Body===BE.nil)){$s=99;continue;}$s=100;continue;case 99:$r=b.walkStmts(u.Body.List);$s=101;case 101:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 100:$s=27;continue;case 20:v=f.$val;$r=b.openScope(v.Pos());$s=102;case 102:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);if(!($interfaceIsEqual(v.Comm,$ifaceNil))){$s=103;continue;}$s=104;continue;case 103:$r=B.Walk(b,v.Comm);$s=105;case 105:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 104:$r=b.walkStmts(v.Body);$s=106;case 106:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 21:w=f.$val;if(!(w.Body===BE.nil)){$s=107;continue;}$s=108;continue;case 107:$r=b.walkStmts(w.Body.List);$s=109;case 109:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 108:$s=27;continue;case 22:x=f.$val;$r=b.openScope(x.Pos());$s=110;case 110:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);if(!($interfaceIsEqual(x.Init,$ifaceNil))){$s=111;continue;}$s=112;continue;case 111:$r=B.Walk(b,x.Init);$s=113;case 113:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 112:if(!($interfaceIsEqual(x.Cond,$ifaceNil))){$s=114;continue;}$s=115;continue;case 114:$r=B.Walk(b,x.Cond);$s=116;case 116:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 115:if(!($interfaceIsEqual(x.Post,$ifaceNil))){$s=117;continue;}$s=118;continue;case 117:$r=B.Walk(b,x.Post);$s=119;case 119:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 118:$r=B.Walk(b,x.Body);$s=120;case 120:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 23:y=f.$val;$r=b.openScope(y.Pos());$s=121;case 121:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);$r=B.Walk(b,y.X);$s=122;case 122:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aq=BQ.nil;if(!($interfaceIsEqual(y.Key,$ifaceNil))){aq=$append(aq,y.Key);}if(!($interfaceIsEqual(y.Value,$ifaceNil))){aq=$append(aq,y.Value);}if(aq.$length>0){$s=123;continue;}$s=124;continue;case 123:if(y.Tok===47){$s=125;continue;}$s=126;continue;case 125:ar=new B.AssignStmt.ptr(aq,y.TokPos,47,new BQ([new B.UnaryExpr.ptr(0,79,y.X)]));$r=b.walkLHS(aq);$s=128;case 128:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.shortVarDecl(ar);$s=129;case 129:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=127;continue;case 126:$r=b.walkExprs(aq);$s=130;case 130:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 127:case 124:$r=B.Walk(b,y.Body);$s=131;case 131:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 24:z=f.$val;as=z.Tok;if((as===(64))||(as===(85))){$s=133;continue;}if(as===(84)){$s=134;continue;}$s=135;continue;case 133:at=z.Specs;au=0;case 136:if(!(au=at.$length)?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+au]);ax=$assertType(aw,BR);ay=2;if(z.Tok===85){ay=4;}$r=b.walkExprs(ax.Values);$s=138;case 138:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(ax.Type,$ifaceNil))){$s=139;continue;}$s=140;continue;case 139:$r=B.Walk(b,ax.Type);$s=141;case 141:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 140:$r=b.declare(ax,new $Int(av),b.topScope,ay,ax.Names);$s=142;case 142:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}au++;$s=136;continue;case 137:$s=135;continue;case 134:az=z.Specs;ba=0;case 143:if(!(ba=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+ba]);bc=$assertType(bb,BS);$r=b.declare(bc,$ifaceNil,b.topScope,3,new AQ([bc.Name]));$s=145;case 145:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(bc.TypeParams===BT.nil)){$s=146;continue;}$s=147;continue;case 146:$r=b.openScope(bc.Pos());$s=148;case 148:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);$r=b.walkTParams(bc.TypeParams);$s=149;case 149:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 147:$r=B.Walk(b,bc.Type);$s=150;case 150:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ba++;$s=143;continue;case 144:case 135:case 132:$s=27;continue;case 25:aa=f.$val;bd=aa.Pos();$s=151;case 151:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}$r=b.openScope(bd);$s=152;case 152:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(b,"closeScope"),[]]);$r=b.walkRecv(aa.Recv);$s=153;case 153:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(aa.Type.TypeParams===BT.nil)){$s=154;continue;}$s=155;continue;case 154:$r=b.walkTParams(aa.Type.TypeParams);$s=156;case 156:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 155:$r=b.resolveList(aa.Type.Params);$s=157;case 157:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.resolveList(aa.Type.Results);$s=158;case 158:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.declareList(aa.Recv,4);$s=159;case 159:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.declareList(aa.Type.Params,4);$s=160;case 160:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.declareList(aa.Type.Results,4);$s=161;case 161:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.walkBody(aa.Body);$s=162;case 162:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(aa.Recv===BT.nil&&!(aa.Name.Name==="init")){$s=163;continue;}$s=164;continue;case 163:$r=b.declare(aa,$ifaceNil,b.pkgScope,5,new AQ([aa.Name]));$s=165;case 165:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 164:$s=27;continue;case 26:ab=f;be=b;$s=166;case 166:return be;case 27:bf=$ifaceNil;$s=167;case 167:return bf;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:P.ptr.prototype.Visit,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};P.prototype.Visit=function(a){return this.$val.Visit(a);};P.ptr.prototype.walkFuncType=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.resolveList(a.Params);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.resolveList(a.Results);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.declareList(a.Params,4);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.declareList(a.Results,4);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.walkFuncType,$c:true,$r,a,b,$s};return $f;};P.prototype.walkFuncType=function(a){return this.$val.walkFuncType(a);};P.ptr.prototype.resolveList=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(a===BT.nil){$s=-1;return;}c=a.List;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(!($interfaceIsEqual(e.Type,$ifaceNil))){$s=3;continue;}$s=4;continue;case 3:$r=B.Walk(b,e.Type);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.resolveList,$c:true,$r,a,b,c,d,e,$s};return $f;};P.prototype.resolveList=function(a){return this.$val.resolveList(a);};P.ptr.prototype.declareList=function(a,b){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(a===BT.nil){$s=-1;return;}d=a.List;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);$r=c.declare(f,$ifaceNil,c.topScope,b,f.Names);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.declareList,$c:true,$r,a,b,c,d,e,f,$s};return $f;};P.prototype.declareList=function(a,b){return this.$val.declareList(a,b);};P.ptr.prototype.walkRecv=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(a===BT.nil||(a.List.$length===0)){$s=-1;return;}d=(c=a.List,(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])).Type;e=$assertType(d,BU,true);f=e[0];g=e[1];if(g){d=f.X;}h=BQ.nil;i=BQ.nil;j=d;if($assertType(j,BV,true)[1]){k=j.$val;h=new BQ([k.Index]);i=$append(i,k.X);}else if($assertType(j,BW,true)[1]){l=j.$val;h=l.Indices;i=$append(i,l.X);}else{m=j;i=$append(i,m);}n=h;o=0;case 1:if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]);q=$assertType(p,AP,true);r=q[0];if(!(r===AP.nil)){$s=3;continue;}$s=4;continue;case 3:$r=b.declare(p,$ifaceNil,b.topScope,3,new AQ([r]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 4:i=$append(i,p);case 5:o++;$s=1;continue;case 2:s=i;t=0;case 7:if(!(t=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]);if(!($interfaceIsEqual(u,$ifaceNil))){$s=9;continue;}$s=10;continue;case 9:$r=B.Walk(b,u);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:t++;$s=7;continue;case 8:v=$subslice(a.List,1);w=0;case 12:if(!(w=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w]);if(!($interfaceIsEqual(x.Type,$ifaceNil))){$s=14;continue;}$s=15;continue;case 14:$r=B.Walk(b,x.Type);$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 15:w++;$s=12;continue;case 13:$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.walkRecv,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s};return $f;};P.prototype.walkRecv=function(a){return this.$val.walkRecv(a);};P.ptr.prototype.walkFieldList=function(a,b){var{a,b,c,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(a===BT.nil){$s=-1;return;}$r=c.resolveList(a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.declareList(a,b);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.walkFieldList,$c:true,$r,a,b,c,$s};return $f;};P.prototype.walkFieldList=function(a,b){return this.$val.walkFieldList(a,b);};P.ptr.prototype.walkTParams=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.declareList(a,3);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.resolveList(a);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.walkTParams,$c:true,$r,a,b,$s};return $f;};P.prototype.walkTParams=function(a){return this.$val.walkTParams(a);};P.ptr.prototype.walkBody=function(a){var{a,b,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(a===BE.nil){$s=1;continue;}$s=2;continue;case 1:$s=3;case 3:return;case 2:b.openLabelScope();$deferred.push([$methodVal(b,"closeLabelScope"),[]]);$r=b.walkStmts(a.List);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:P.ptr.prototype.walkBody,$c:true,$r,a,b,$s,$deferred};return $f;}}};P.prototype.walkBody=function(a){return this.$val.walkBody(a);};R.ptr.prototype.init=function(a,b,c,d){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=[e];e[0]=this;f=a.AddFile(b,-1,c.$length);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e[0].file=f;g=0;if(!((((d&4)>>>0)===0))){g=1;}h=(function(e){return function(h,i){var h,i;(e[0].$ptr_errors||(e[0].$ptr_errors=new BX(function(){return this.$target.errors;},function($v){this.$target.errors=$v;},e[0]))).Add($clone(h,C.Position),i);};})(e);$r=e[0].scanner.Init(e[0].file,c,h,g);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e[0].mode=d;e[0].trace=!((((d&8)>>>0)===0));$r=e[0].next();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.init,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};R.prototype.init=function(a,b,c,d){return this.$val.init(a,b,c,d);};R.ptr.prototype.allowGenerics=function(){var a;a=this;return((a.mode&1073741824)>>>0)===0;};R.prototype.allowGenerics=function(){return this.$val.allowGenerics();};R.ptr.prototype.allowTypeSets=function(){var a;a=this;return((a.mode&536870912)>>>0)===0;};R.prototype.allowTypeSets=function(){return this.$val.allowTypeSets();};R.ptr.prototype.printTrace=function(a){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.file.Position(b.pos);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=$clone(c,C.Position);e=A.Printf("%5d:%3d: ",new AU([new $Int(d.Line),new $Int(d.Column)]));$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;f=$imul(2,b.indent);case 3:if(!(f>64)){$s=4;continue;}g=A.Print(new AU([new $String(". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ")]));$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;f=f-(64)>>0;$s=3;continue;case 4:h=A.Print(new AU([new $String($substring(". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",0,f))]));$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;i=A.Println(a);$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.printTrace,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};R.prototype.printTrace=function(a){return this.$val.printTrace(a);};S=function(a,b){var{a,b,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:$r=a.printTrace(new AU([new $String(b),new $String("(")]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}a.indent=a.indent+(1)>>0;$s=-1;return a;}return;}var $f={$blk:S,$c:true,$r,a,b,$s};return $f;};T=function(a){var{a,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:a.indent=a.indent-(1)>>0;$r=a.printTrace(new AU([new $String(")")]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:T,$c:true,$r,a,$s};return $f;};U=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:a.nestLev=a.nestLev+(1)>>0;if(a.nestLev>100000){$s=1;continue;}$s=2;continue;case 1:$r=a.error(a.pos,"exceeded max nesting depth");$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$panic((b=new W.ptr(0,""),new b.constructor.elem(b)));case 2:$s=-1;return a;}return;}var $f={$blk:U,$c:true,$r,a,b,$s};return $f;};V=function(a){var a;a.nestLev=a.nestLev-(1)>>0;};R.ptr.prototype.next0=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.trace&&new C.Pos(a.pos).IsValid()){$s=1;continue;}$s=2;continue;case 1:b=new C.Token(a.tok).String();if(new C.Token(a.tok).IsLiteral()){$s=4;continue;}if((new C.Token(a.tok).IsOperator())||(new C.Token(a.tok).IsKeyword())){$s=5;continue;}$s=6;continue;case 4:$r=a.printTrace(new AU([new $String(b),new $String(a.lit)]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 5:$r=a.printTrace(new AU([new $String("\""+b+"\"")]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 6:$r=a.printTrace(new AU([new $String(b)]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:case 3:case 2:d=a.scanner.Scan();$s=11;case 11:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;a.pos=c[0];a.tok=c[1];a.lit=c[2];$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.next0,$c:true,$r,a,b,c,d,$s};return $f;};R.prototype.next0=function(){return this.$val.next0();};R.ptr.prototype.consumeComment=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=BY.nil;b=0;c=this;d=c.file.Line(c.pos);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}b=d;if(c.lit.charCodeAt(1)===42){e=0;while(true){if(!(e>0;}e=e+(1)>>0;}}a=new B.Comment.ptr(c.pos,c.lit);$r=c.next0();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return[a,b];}return;}var $f={$blk:R.ptr.prototype.consumeComment,$c:true,$r,a,b,c,d,e,$s};return $f;};R.prototype.consumeComment=function(){return this.$val.consumeComment();};R.ptr.prototype.consumeCommentGroup=function(a){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=BZ.nil;c=0;d=this;e=CA.nil;f=d.file.Line(d.pos);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}c=f;case 2:if(!(d.tok===2)){g=false;$s=4;continue s;}h=d.file.Line(d.pos);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h<=(c+a>>0);case 4:if(!(g)){$s=3;continue;}i=BY.nil;k=d.consumeComment();$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;i=j[0];c=j[1];e=$append(e,i);$s=2;continue;case 3:b=new B.CommentGroup.ptr(e);d.comments=$append(d.comments,b);$s=-1;return[b,c];}return;}var $f={$blk:R.ptr.prototype.consumeCommentGroup,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};R.prototype.consumeCommentGroup=function(a){return this.$val.consumeCommentGroup(a);};R.ptr.prototype.next=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;a.leadComment=BZ.nil;a.lineComment=BZ.nil;b=a.pos;$r=a.next0();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(a.tok===2){$s=2;continue;}$s=3;continue;case 2:c=BZ.nil;d=0;e=a.file.Line(a.pos);$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=a.file.Line(b);$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(e===f){$s=4;continue;}$s=5;continue;case 4:h=a.consumeCommentGroup(0);$s=8;case 8:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;c=g[0];d=g[1];i=a.file.Line(a.pos);$s=11;case 11:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(!((i===d))||(a.tok===1)){$s=9;continue;}$s=10;continue;case 9:a.lineComment=c;case 10:case 5:d=-1;case 12:if(!(a.tok===2)){$s=13;continue;}k=a.consumeCommentGroup(1);$s=14;case 14:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;c=j[0];d=j[1];$s=12;continue;case 13:l=a.file.Line(a.pos);$s=17;case 17:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}if((d+1>>0)===l){$s=15;continue;}$s=16;continue;case 15:a.leadComment=c;case 16:case 3:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.next,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};R.prototype.next=function(){return this.$val.next();};R.ptr.prototype.error=function(a,b){var{a,b,c,d,e,f,g,h,i,j,$s,$deferred,$r,$c}=$restore(this,{a,b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=this;if(c.trace){$s=1;continue;}$s=2;continue;case 1:d=S(c,"error: "+b);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$deferred.push([T,[d]]);case 2:e=c.file.Position(a);$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=$clone(e,C.Position);if(((c.mode&32)>>>0)===0){$s=5;continue;}$s=6;continue;case 5:g=c.errors.$length;if(g>0&&((h=c.errors,i=g-1>>0,((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i])).Pos.Line===f.Line)){$s=7;continue;}$s=8;continue;case 7:$s=9;case 9:return;case 8:if(g>10){$panic((j=new W.ptr(0,""),new j.constructor.elem(j)));}case 6:(c.$ptr_errors||(c.$ptr_errors=new BX(function(){return this.$target.errors;},function($v){this.$target.errors=$v;},c))).Add($clone(f,C.Position),b);$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.error,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s,$deferred};return $f;}}};R.prototype.error=function(a,b){return this.$val.error(a,b);};R.ptr.prototype.errorExpected=function(a,b){var{a,b,c,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;b="expected "+b;if(a===c.pos){if((c.tok===57)&&c.lit==="\n"){b=b+(", found newline");}else if(new C.Token(c.tok).IsLiteral()){b=b+(", found "+c.lit);}else{b=b+(", found '"+new C.Token(c.tok).String()+"'");}}$r=c.error(a,b);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.errorExpected,$c:true,$r,a,b,c,$s};return $f;};R.prototype.errorExpected=function(a,b){return this.$val.errorExpected(a,b);};R.ptr.prototype.expect=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.pos;if(!((b.tok===a))){$s=1;continue;}$s=2;continue;case 1:$r=b.errorExpected(c,"'"+new C.Token(a).String()+"'");$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$r=b.next();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c;}return;}var $f={$blk:R.ptr.prototype.expect,$c:true,$r,a,b,c,$s};return $f;};R.prototype.expect=function(a){return this.$val.expect(a);};R.ptr.prototype.expect2=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=0;c=this;if(c.tok===a){$s=1;continue;}$s=2;continue;case 1:b=c.pos;$s=3;continue;case 2:$r=c.errorExpected(c.pos,"'"+new C.Token(a).String()+"'");$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$r=c.next();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b;}return;}var $f={$blk:R.ptr.prototype.expect2,$c:true,$r,a,b,c,$s};return $f;};R.prototype.expect2=function(a){return this.$val.expect2(a);};R.ptr.prototype.expectClosing=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!((c.tok===a))&&(c.tok===57)&&c.lit==="\n"){$s=1;continue;}$s=2;continue;case 1:$r=c.error(c.pos,"missing ',' before newline in "+b);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.next();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:d=c.expect(a);$s=5;case 5:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=6;case 6:return e;}return;}var $f={$blk:R.ptr.prototype.expectClosing,$c:true,$r,a,b,c,d,e,$s};return $f;};R.prototype.expectClosing=function(a,b){return this.$val.expectClosing(a,b);};R.ptr.prototype.expectSemi=function(){var{a,b,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(!((a.tok===54))&&!((a.tok===56))){$s=1;continue;}$s=2;continue;case 1:b=a.tok;if(b===(52)){$s=4;continue;}if(b===(57)){$s=5;continue;}$s=6;continue;case 4:$r=a.errorExpected(a.pos,"';'");$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=a.next();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 5:$r=a.next();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 6:$r=a.errorExpected(a.pos,"';'");$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=a.advance(Y);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:case 3:case 2:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.expectSemi,$c:true,$r,a,b,$s};return $f;};R.prototype.expectSemi=function(){return this.$val.expectSemi();};R.ptr.prototype.atComma=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(c.tok===52){$s=-1;return true;}if(!((c.tok===b))){$s=1;continue;}$s=2;continue;case 1:d="missing ','";if((c.tok===57)&&c.lit==="\n"){d=d+(" before newline");}$r=c.error(c.pos,d+" in "+a);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return true;case 2:$s=-1;return false;}return;}var $f={$blk:R.ptr.prototype.atComma,$c:true,$r,a,b,c,d,$s};return $f;};R.prototype.atComma=function(a,b){return this.$val.atComma(a,b);};X=function(a,b){var a,b;if(!a){$panic(new $String("go/parser internal error: "+b));}};R.ptr.prototype.advance=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;case 1:if(!(!((b.tok===1)))){$s=2;continue;}if((c=$mapIndex(a,C.Token.keyFor(b.tok)),c!==undefined?c.v:false)){if((b.pos===b.syncPos)&&b.syncCnt<10){b.syncCnt=b.syncCnt+(1)>>0;$s=-1;return;}if(b.pos>b.syncPos){b.syncPos=b.pos;b.syncCnt=0;$s=-1;return;}}$r=b.next();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.advance,$c:true,$r,a,b,c,$s};return $f;};R.prototype.advance=function(a){return this.$val.advance(a);};R.ptr.prototype.safePos=function(a){var{a,b,c,d,e,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];c[0]=0;b[0]=this;$deferred.push([(function(b,c){return function(){if(!($interfaceIsEqual($recover(),$ifaceNil))){c[0]=(((b[0].file.Base()+b[0].file.Size()>>0)>>0));}};})(b,c),[]]);d=b[0].file.Offset(a);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$unused(d);c[0]=a;e=c[0];$s=2;case 2:return e;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return c[0];}if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.safePos,$c:true,$r,a,b,c,d,e,$s,$deferred};return $f;}}};R.prototype.safePos=function(a){return this.$val.safePos(a);};R.ptr.prototype.parseIdent=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.pos;c="_";if(a.tok===4){$s=1;continue;}$s=2;continue;case 1:c=a.lit;$r=a.next();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=3;continue;case 2:d=a.expect(4);$s=5;case 5:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;case 3:$s=-1;return new B.Ident.ptr(b,c,AS.nil);}return;}var $f={$blk:R.ptr.prototype.parseIdent,$c:true,$r,a,b,c,d,$s};return $f;};R.prototype.parseIdent=function(){return this.$val.parseIdent();};R.ptr.prototype.parseIdentList=function(){var{a,b,c,d,e,f,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=AQ.nil;b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"IdentList");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.parseIdent();$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}a=$append(a,d);case 5:if(!(b.tok===52)){$s=6;continue;}$r=b.next();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=b.parseIdent();$s=8;case 8:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}a=$append(a,e);$s=5;continue;case 6:f=a;$s=9;case 9:return f;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return a;}if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseIdentList,$c:true,$r,a,b,c,d,e,f,$s,$deferred};return $f;}}};R.prototype.parseIdentList=function(){return this.$val.parseIdentList();};R.ptr.prototype.parseExprList=function(){var{a,b,c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=BQ.nil;b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"ExpressionList");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.parseExpr();$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=b.checkExpr(d);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}a=$append(a,e);case 6:if(!(b.tok===52)){$s=7;continue;}$r=b.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=b.parseExpr();$s=9;case 9:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=b.checkExpr(f);$s=10;case 10:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}a=$append(a,g);$s=6;continue;case 7:h=a;$s=11;case 11:return h;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return a;}if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseExprList,$c:true,$r,a,b,c,d,e,f,g,h,$s,$deferred};return $f;}}};R.prototype.parseExprList=function(){return this.$val.parseExprList();};R.ptr.prototype.parseList=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.inRhs;b.inRhs=a;d=b.parseExprList();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;b.inRhs=c;$s=-1;return e;}return;}var $f={$blk:R.ptr.prototype.parseList,$c:true,$r,a,b,c,d,e,$s};return $f;};R.prototype.parseList=function(a){return this.$val.parseList(a);};R.ptr.prototype.parseType=function(){var{a,b,c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"Type");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.tryIdentOrType();$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if($interfaceIsEqual(d,$ifaceNil)){$s=5;continue;}$s=6;continue;case 5:e=a.pos;$r=a.errorExpected(e,"type");$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=a.advance(AA);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=new B.BadExpr.ptr(e,a.pos);$s=9;case 9:return f;case 6:g=d;$s=10;case 10:return g;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseType,$c:true,$r,a,b,c,d,e,f,g,$s,$deferred};return $f;}}};R.prototype.parseType=function(){return this.$val.parseType();};R.ptr.prototype.parseQualifiedIdent=function(a){var{a,b,c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"QualifiedIdent");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.parseTypeName(a);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if((b.tok===50)&&b.allowGenerics()){$s=5;continue;}$s=6;continue;case 5:f=b.parseTypeInstance(e);$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;case 6:g=e;$s=8;case 8:return g;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseQualifiedIdent,$c:true,$r,a,b,c,d,e,f,g,$s,$deferred};return $f;}}};R.prototype.parseQualifiedIdent=function(a){return this.$val.parseQualifiedIdent(a);};R.ptr.prototype.parseTypeName=function(a){var{a,b,c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"TypeName");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:if(a===AP.nil){$s=4;continue;}$s=5;continue;case 4:d=b.parseIdent();$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}a=d;case 5:if(b.tok===53){$s=7;continue;}$s=8;continue;case 7:$r=b.next();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=b.parseIdent();$s=10;case 10:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=new B.SelectorExpr.ptr(a,f);$s=11;case 11:return g;case 8:h=a;$s=12;case 12:return h;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseTypeName,$c:true,$r,a,b,c,d,e,f,g,h,$s,$deferred};return $f;}}};R.prototype.parseTypeName=function(a){return this.$val.parseTypeName(a);};R.ptr.prototype.parseArrayType=function(a,b){var{a,b,c,d,e,f,g,h,i,$s,$deferred,$r,$c}=$restore(this,{a,b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=this;if(c.trace){$s=1;continue;}$s=2;continue;case 1:d=S(c,"ArrayType");$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$deferred.push([T,[d]]);case 2:if($interfaceIsEqual(b,$ifaceNil)){$s=4;continue;}$s=5;continue;case 4:c.exprLev=c.exprLev+(1)>>0;if(c.tok===48){$s=6;continue;}if(!((c.tok===55))){$s=7;continue;}$s=8;continue;case 6:b=new B.Ellipsis.ptr(c.pos,$ifaceNil);$r=c.next();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 7:e=c.parseRhs();$s=10;case 10:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}b=e;case 8:c.exprLev=c.exprLev-(1)>>0;case 5:if(c.tok===52){$s=11;continue;}$s=12;continue;case 11:$r=c.error(c.pos,"unexpected comma; expecting ]");$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.next();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:f=c.expect(55);$s=15;case 15:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;g=c.parseType();$s=16;case 16:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=new B.ArrayType.ptr(a,b,h);$s=17;case 17:return i;}return;}}catch(err){$err=err;$s=-1;return CB.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseArrayType,$c:true,$r,a,b,c,d,e,f,g,h,i,$s,$deferred};return $f;}}};R.prototype.parseArrayType=function(a,b){return this.$val.parseArrayType(a,b);};R.ptr.prototype.parseArrayFieldOrTypeInstance=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"ArrayFieldOrTypeInstance");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.expect(50);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=BQ.nil;g=0;h=$methodVal(b,"parseRhsOrType");if(!b.allowGenerics()){h=$methodVal(b,"parseRhs");}if(!((b.tok===55))){$s=5;continue;}$s=6;continue;case 5:b.exprLev=b.exprLev+(1)>>0;i=h();$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}f=$append(f,i);case 8:if(!(b.tok===52)){$s=9;continue;}if(!new C.Pos(g).IsValid()){g=b.pos;}$r=b.next();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=h();$s=11;case 11:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}f=$append(f,j);$s=8;continue;case 9:b.exprLev=b.exprLev-(1)>>0;case 6:k=b.expect(55);$s=12;case 12:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(f.$length===0){$s=13;continue;}$s=14;continue;case 13:m=b.parseType();$s=15;case 15:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=[a,new B.ArrayType.ptr(e,$ifaceNil,n)];$s=16;case 16:return o;case 14:if(f.$length===1){$s=17;continue;}$s=18;continue;case 17:p=b.tryIdentOrType();$s=19;case 19:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;if(!($interfaceIsEqual(q,$ifaceNil))){$s=20;continue;}$s=21;continue;case 20:r=[a,new B.ArrayType.ptr(e,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]),q)];$s=22;case 22:return r;case 21:if(!b.allowGenerics()){$s=23;continue;}$s=24;continue;case 23:$r=b.error(l,"missing element type in array type expression");$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s=(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).Pos();$s=26;case 26:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).End();$s=27;case 27:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=[AP.nil,new B.BadExpr.ptr(s,t)];$s=28;case 28:return u;case 24:case 18:if(!b.allowGenerics()){$s=29;continue;}$s=30;continue;case 29:$r=b.error(g,"expected ']', found ','");$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}v=(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).Pos();$s=32;case 32:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}x=(w=f.$length-1>>0,((w<0||w>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+w])).End();$s=33;case 33:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=[a,new B.BadExpr.ptr(v,x)];$s=34;case 34:return y;case 30:z=[AP.nil,E.PackIndexExpr(a,e,f,l)];$s=35;case 35:return z;}return;}}catch(err){$err=err;$s=-1;return[AP.nil,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseArrayFieldOrTypeInstance,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};R.prototype.parseArrayFieldOrTypeInstance=function(a){return this.$val.parseArrayFieldOrTypeInstance(a);};R.ptr.prototype.parseFieldDecl=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"FieldDecl");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.leadComment;d=AQ.nil;e=$ifaceNil;if(a.tok===4){$s=4;continue;}$s=5;continue;case 4:f=a.parseIdent();$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if((a.tok===53)||(a.tok===9)||(a.tok===57)||(a.tok===56)){$s=8;continue;}$s=9;continue;case 8:e=g;if(a.tok===53){$s=11;continue;}$s=12;continue;case 11:h=a.parseQualifiedIdent(g);$s=13;case 13:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}e=h;case 12:$s=10;continue;case 9:d=new AQ([g]);case 14:if(!(a.tok===52)){$s=15;continue;}$r=a.next();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=a.parseIdent();$s=17;case 17:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}d=$append(d,i);$s=14;continue;case 15:if((d.$length===1)&&(a.tok===50)){$s=18;continue;}$s=19;continue;case 18:k=a.parseArrayFieldOrTypeInstance(g);$s=21;case 21:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;g=j[0];e=j[1];if(g===AP.nil){d=AQ.nil;}$s=20;continue;case 19:l=a.parseType();$s=22;case 22:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}e=l;case 20:case 10:$s=6;continue;case 5:m=a.parseType();$s=23;case 23:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}e=m;case 6:n=CC.nil;if(a.tok===9){$s=24;continue;}$s=25;continue;case 24:n=new B.BasicLit.ptr(a.pos,a.tok,a.lit);$r=a.next();$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 25:$r=a.expectSemi();$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}o=new B.Field.ptr(c,d,e,n,a.lineComment);p=o;$s=28;case 28:return p;}return;}}catch(err){$err=err;$s=-1;return CD.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseFieldDecl,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred};return $f;}}};R.prototype.parseFieldDecl=function(){return this.$val.parseFieldDecl();};R.ptr.prototype.parseStructType=function(){var{a,b,c,d,e,f,g,h,i,j,k,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"StructType");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.expect(82);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=a.expect(51);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=CE.nil;case 6:if(!((a.tok===4)||(a.tok===14)||(a.tok===49))){$s=7;continue;}h=a.parseFieldDecl();$s=8;case 8:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=$append(g,h);$s=6;continue;case 7:i=a.expect(56);$s=9;case 9:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=new B.StructType.ptr(d,new B.FieldList.ptr(f,g,j),false);$s=10;case 10:return k;}return;}}catch(err){$err=err;$s=-1;return AX.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseStructType,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s,$deferred};return $f;}}};R.prototype.parseStructType=function(){return this.$val.parseStructType();};R.ptr.prototype.parsePointerType=function(){var{a,b,c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"PointerType");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.expect(14);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=a.parseType();$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=new B.StarExpr.ptr(d,f);$s=6;case 6:return g;}return;}}catch(err){$err=err;$s=-1;return BU.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parsePointerType,$c:true,$r,a,b,c,d,e,f,g,$s,$deferred};return $f;}}};R.prototype.parsePointerType=function(){return this.$val.parsePointerType();};R.ptr.prototype.parseDotsType=function(){var{a,b,c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"DotsType");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.expect(48);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=a.parseType();$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=new B.Ellipsis.ptr(d,f);$s=6;case 6:return g;}return;}}catch(err){$err=err;$s=-1;return CF.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseDotsType,$c:true,$r,a,b,c,d,e,f,g,$s,$deferred};return $f;}}};R.prototype.parseDotsType=function(){return this.$val.parseDotsType();};R.ptr.prototype.parseParamDecl=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a,b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=new AB.ptr(AP.nil,$ifaceNil);d=this;if(d.trace){$s=1;continue;}$s=2;continue;case 1:e=S(d,"ParamDeclOrNil");$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$deferred.push([T,[e]]);case 2:f=d.tok;if(!(a===AP.nil)){$s=4;continue;}if(b&&(d.tok===88)){$s=5;continue;}$s=6;continue;case 4:d.tok=4;$s=6;continue;case 5:g=d.embeddedElem($ifaceNil);$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}AB.copy(c,new AB.ptr(AP.nil,g));h=c;$s=8;case 8:return h;case 6:i=d.tok;if(i===(4)){$s=10;continue;}if((i===(14))||(i===(36))||(i===(71))||(i===(50))||(i===(63))||(i===(77))||(i===(82))||(i===(76))||(i===(49))){$s=11;continue;}if(i===(48)){$s=12;continue;}$s=13;continue;case 10:if(!(a===AP.nil)){$s=15;continue;}$s=16;continue;case 15:c.name=a;d.tok=f;$s=17;continue;case 16:j=d.parseIdent();$s=18;case 18:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}c.name=j;case 17:k=d.tok;if((k===(4))||(k===(14))||(k===(36))||(k===(71))||(k===(63))||(k===(77))||(k===(82))||(k===(76))||(k===(49))){$s=20;continue;}if(k===(50)){$s=21;continue;}if(k===(48)){$s=22;continue;}if(k===(53)){$s=23;continue;}if(k===(88)){$s=24;continue;}if(k===(18)){$s=25;continue;}$s=26;continue;case 20:l=d.parseType();$s=27;case 27:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}c.typ=l;$s=26;continue;case 21:n=d.parseArrayFieldOrTypeInstance(c.name);$s=28;case 28:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;c.name=m[0];c.typ=m[1];$s=26;continue;case 22:o=d.parseDotsType();$s=29;case 29:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}c.typ=o;p=c;$s=30;case 30:return p;case 23:q=d.parseQualifiedIdent(c.name);$s=31;case 31:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}c.typ=q;c.name=AP.nil;$s=26;continue;case 24:if(b){$s=32;continue;}$s=33;continue;case 32:r=d.embeddedElem($ifaceNil);$s=34;case 34:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}c.typ=r;s=c;$s=35;case 35:return s;case 33:$s=26;continue;case 25:if(b){$s=36;continue;}$s=37;continue;case 36:t=d.embeddedElem(c.name);$s=38;case 38:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}c.typ=t;c.name=AP.nil;u=c;$s=39;case 39:return u;case 37:case 26:case 19:$s=14;continue;case 11:v=d.parseType();$s=40;case 40:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}c.typ=v;$s=14;continue;case 12:w=d.parseDotsType();$s=41;case 41:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}c.typ=w;x=c;$s=42;case 42:return x;case 13:$r=d.errorExpected(d.pos,")");$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.advance(AA);$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:case 9:if(b&&(d.tok===18)&&!($interfaceIsEqual(c.typ,$ifaceNil))){$s=45;continue;}$s=46;continue;case 45:y=d.embeddedElem(c.typ);$s=47;case 47:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}c.typ=y;case 46:z=c;$s=48;case 48:return z;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return c;}if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseParamDecl,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};R.prototype.parseParamDecl=function(a,b){return this.$val.parseParamDecl(a,b);};R.ptr.prototype.parseParameterList=function(a,b,c){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a,b,c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=[d];e=[e];f=[f];e[0]=CE.nil;g=this;if(g.trace){$s=1;continue;}$s=2;continue;case 1:h=S(g,"ParameterList");$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$deferred.push([T,[h]]);case 2:i=c===55;j=i&&g.allowTypeSets();k=g.pos;if(!(a===AP.nil)){k=a.Pos();}l=CG.nil;m=0;case 4:if(!(!(a===AP.nil)||!((g.tok===c))&&!((g.tok===1)))){$s=5;continue;}n=new AB.ptr(AP.nil,$ifaceNil);if(!($interfaceIsEqual(b,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:if(j){$s=9;continue;}$s=10;continue;case 9:o=g.embeddedElem(b);$s=11;case 11:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}b=o;case 10:AB.copy(n,new AB.ptr(a,b));$s=8;continue;case 7:p=g.parseParamDecl(a,j);$s=12;case 12:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}AB.copy(n,p);case 8:a=AP.nil;b=$ifaceNil;if(!(n.name===AP.nil)||!($interfaceIsEqual(n.typ,$ifaceNil))){l=$append(l,n);if(!(n.name===AP.nil)&&!($interfaceIsEqual(n.typ,$ifaceNil))){m=m+(1)>>0;}}q=g.atComma("parameter list",c);$s=15;case 15:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}if(!q){$s=13;continue;}$s=14;continue;case 13:$s=5;continue;case 14:$r=g.next();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=4;continue;case 5:if(l.$length===0){$s=17;continue;}$s=18;continue;case 17:r=e[0];$s=19;case 19:return r;case 18:if(m===0){$s=20;continue;}if(!((m===l.$length))){$s=21;continue;}$s=22;continue;case 20:s=0;while(true){if(!(s=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+s]);u=t.name;if(!(u===AP.nil)){t.typ=u;t.name=AP.nil;}s=s+(1)>>0;}if(i){$s=23;continue;}$s=24;continue;case 23:$r=g.error(k,"all type parameters must be named");$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 24:$s=22;continue;case 21:v=true;w=$ifaceNil;x=k;y=l.$length-1>>0;case 26:if(!(y>=0)){$s=27;continue;}z=((y<0||y>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+y]);if(!($interfaceIsEqual(z.typ,$ifaceNil))){$s=28;continue;}if(!($interfaceIsEqual(w,$ifaceNil))){$s=29;continue;}$s=30;continue;case 28:w=z.typ;if(z.name===AP.nil){$s=32;continue;}$s=33;continue;case 32:v=false;aa=z.typ.Pos();$s=34;case 34:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}x=aa;ab=B.NewIdent("_");ac=w.Pos();$s=35;case 35:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ab.NamePos=ac;z.name=ab;case 33:$s=31;continue;case 29:z.typ=w;$s=31;continue;case 30:v=false;x=z.name.Pos();z.typ=new B.BadExpr.ptr(z.name.Pos(),g.pos);case 31:y=y-(1)>>0;$s=26;continue;case 27:if(!v){$s=36;continue;}$s=37;continue;case 36:if(i){$s=38;continue;}$s=39;continue;case 38:$r=g.error(x,"all type parameters must be named");$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=40;continue;case 39:$r=g.error(k,"mixed named and unnamed parameters");$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 40:case 37:case 22:if(m===0){$s=43;continue;}$s=44;continue;case 43:ad=l;ae=0;while(true){if(!(ae=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ae]),AB);X(!($interfaceIsEqual(af.typ,$ifaceNil)),"nil type in unnamed parameter list");e[0]=$append(e[0],new B.Field.ptr(BZ.nil,AQ.nil,af.typ,CC.nil,BZ.nil));ae++;}ag=e[0];$s=45;case 45:return ag;case 44:d[0]=AQ.nil;f[0]=$ifaceNil;ah=(function(d,e,f){return function(){var ah;X(!($interfaceIsEqual(f[0],$ifaceNil)),"nil type in named parameter list");ah=new B.Field.ptr(BZ.nil,d[0],f[0],CC.nil,BZ.nil);e[0]=$append(e[0],ah);d[0]=AQ.nil;};})(d,e,f);ai=l;aj=0;case 46:if(!(aj=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+aj]),AB);if(!($interfaceIsEqual(ak.typ,f[0]))){$s=48;continue;}$s=49;continue;case 48:if(d[0].$length>0){$s=50;continue;}$s=51;continue;case 50:$r=ah();$s=52;case 52:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 51:f[0]=ak.typ;case 49:d[0]=$append(d[0],ak.name);aj++;$s=46;continue;case 47:if(d[0].$length>0){$s=53;continue;}$s=54;continue;case 53:$r=ah();$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 54:al=e[0];$s=56;case 56:return al;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return e[0];}if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseParameterList,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};R.prototype.parseParameterList=function(a,b,c){return this.$val.parseParameterList(a,b,c);};R.ptr.prototype.parseParameters=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=BT.nil;c=BT.nil;d=this;if(d.trace){$s=1;continue;}$s=2;continue;case 1:e=S(d,"Parameters");$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$deferred.push([T,[e]]);case 2:if(d.allowGenerics()&&a&&(d.tok===50)){$s=4;continue;}$s=5;continue;case 4:f=d.pos;$r=d.next();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=d.parseParameterList(AP.nil,$ifaceNil,55);$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=d.expect(55);$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;b=new B.FieldList.ptr(f,h,j);if(b.NumFields()===0){$s=9;continue;}$s=10;continue;case 9:$r=d.error(b.Closing,"empty type parameter list");$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=BT.nil;case 10:case 5:k=d.expect(49);$s=12;case 12:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;m=CE.nil;if(!((d.tok===54))){$s=13;continue;}$s=14;continue;case 13:n=d.parseParameterList(AP.nil,$ifaceNil,54);$s=15;case 15:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;case 14:o=d.expect(54);$s=16;case 16:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;c=new B.FieldList.ptr(l,m,p);q=[b,c];$s=17;case 17:return q;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[b,c];}if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseParameters,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred};return $f;}}};R.prototype.parseParameters=function(a){return this.$val.parseParameters(a);};R.ptr.prototype.parseResult=function(){var{a,b,c,d,e,f,g,h,i,j,k,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"Result");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:if(a.tok===49){$s=4;continue;}$s=5;continue;case 4:d=a.parseParameters(false);$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[1];f=e;$s=7;case 7:return f;case 5:g=a.tryIdentOrType();$s=8;case 8:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=9;continue;}$s=10;continue;case 9:i=$makeSlice(CE,1);(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]=new B.Field.ptr(BZ.nil,AQ.nil,h,CC.nil,BZ.nil));j=new B.FieldList.ptr(0,i,0);$s=11;case 11:return j;case 10:k=BT.nil;$s=12;case 12:return k;}return;}}catch(err){$err=err;$s=-1;return BT.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseResult,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s,$deferred};return $f;}}};R.prototype.parseResult=function(){return this.$val.parseResult();};R.ptr.prototype.parseFuncType=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"FuncType");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.expect(71);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;f=a.parseParameters(true);$s=5;case 5:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if(!(g===BT.nil)){$s=6;continue;}$s=7;continue;case 6:i=g.Pos();$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$r=a.error(i,"function type must have no type parameters");$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:j=a.parseResult();$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=new B.FuncType.ptr(d,BT.nil,h,k);$s=11;case 11:return l;}return;}}catch(err){$err=err;$s=-1;return AY.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseFuncType,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s,$deferred};return $f;}}};R.prototype.parseFuncType=function(){return this.$val.parseFuncType();};R.ptr.prototype.parseMethodSpec=function(){var{a,aa,ab,ac,ad,ae,af,ag,ah,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"MethodSpec");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.leadComment;d=AQ.nil;e=$ifaceNil;f=a.parseTypeName(AP.nil);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=$assertType(g,AP,true);i=h[0];if(!(i===AP.nil)){$s=5;continue;}$s=6;continue;case 5:if((a.tok===50)&&a.allowGenerics()){$s=9;continue;}if((a.tok===49)){$s=10;continue;}$s=11;continue;case 9:j=a.pos;$r=a.next();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}a.exprLev=a.exprLev+(1)>>0;k=a.parseExpr();$s=14;case 14:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;a.exprLev=a.exprLev-(1)>>0;m=$assertType(l,AP,true);n=m[0];if(!(n===AP.nil)&&!((a.tok===52))&&!((a.tok===55))){$s=15;continue;}$s=16;continue;case 15:o=a.parseParameterList(n,$ifaceNil,55);$s=18;case 18:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}$unused(o);p=a.expect(55);$s=19;case 19:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}$unused(p);$r=a.error(j,"interface method must have no type parameters");$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}r=a.parseParameters(false);$s=21;case 21:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;s=q[1];t=a.parseResult();$s=22;case 22:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;d=new AQ([i]);e=new B.FuncType.ptr(0,BT.nil,s,u);$s=17;continue;case 16:v=new BQ([l]);w=a.atComma("type argument list",55);$s=25;case 25:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}if(w){$s=23;continue;}$s=24;continue;case 23:a.exprLev=a.exprLev+(1)>>0;$r=a.next();$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 27:if(!(!((a.tok===55))&&!((a.tok===1)))){$s=28;continue;}x=a.parseType();$s=29;case 29:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}v=$append(v,x);y=a.atComma("type argument list",55);$s=32;case 32:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}if(!y){$s=30;continue;}$s=31;continue;case 30:$s=28;continue;case 31:$r=a.next();$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 28:a.exprLev=a.exprLev-(1)>>0;case 24:z=a.expectClosing(55,"type argument list");$s=34;case 34:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;e=E.PackIndexExpr(i,j,v,aa);case 17:$s=12;continue;case 10:ac=a.parseParameters(false);$s=35;case 35:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ab=ac;ad=ab[1];ae=a.parseResult();$s=36;case 36:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;d=new AQ([i]);e=new B.FuncType.ptr(0,BT.nil,ad,af);$s=12;continue;case 11:e=g;case 12:case 8:$s=7;continue;case 6:e=g;if((a.tok===50)&&a.allowGenerics()){$s=37;continue;}$s=38;continue;case 37:ag=a.parseTypeInstance(e);$s=39;case 39:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}e=ag;case 38:case 7:ah=new B.Field.ptr(c,d,e,CC.nil,BZ.nil);$s=40;case 40:return ah;}return;}}catch(err){$err=err;$s=-1;return CD.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseMethodSpec,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};R.prototype.parseMethodSpec=function(){return this.$val.parseMethodSpec();};R.ptr.prototype.embeddedElem=function(a){var{a,b,c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"EmbeddedElem");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:if($interfaceIsEqual(a,$ifaceNil)){$s=4;continue;}$s=5;continue;case 4:d=b.embeddedTerm();$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}a=d;case 5:case 7:if(!(b.tok===18)){$s=8;continue;}e=new B.BinaryExpr.ptr($ifaceNil,0,0,$ifaceNil);e.OpPos=b.pos;e.Op=18;$r=b.next();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e.X=a;f=b.embeddedTerm();$s=10;case 10:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e.Y=f;a=e;$s=7;continue;case 8:g=a;$s=11;case 11:return g;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.embeddedElem,$c:true,$r,a,b,c,d,e,f,g,$s,$deferred};return $f;}}};R.prototype.embeddedElem=function(a){return this.$val.embeddedElem(a);};R.ptr.prototype.embeddedTerm=function(){var{a,b,c,d,e,f,g,h,i,j,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"EmbeddedTerm");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:if(a.tok===88){$s=4;continue;}$s=5;continue;case 4:c=new B.UnaryExpr.ptr(0,0,$ifaceNil);c.OpPos=a.pos;c.Op=88;$r=a.next();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=a.parseType();$s=7;case 7:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c.X=d;e=c;$s=8;case 8:return e;case 5:f=a.tryIdentOrType();$s=9;case 9:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if($interfaceIsEqual(g,$ifaceNil)){$s=10;continue;}$s=11;continue;case 10:h=a.pos;$r=a.errorExpected(h,"~ term or type");$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=a.advance(AA);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=new B.BadExpr.ptr(h,a.pos);$s=14;case 14:return i;case 11:j=g;$s=15;case 15:return j;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.embeddedTerm,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s,$deferred};return $f;}}};R.prototype.embeddedTerm=function(){return this.$val.embeddedTerm();};R.ptr.prototype.parseInterfaceType=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"InterfaceType");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.expect(76);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=a.expect(51);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=CE.nil;case 6:if((a.tok===4)){$s=9;continue;}if((a.tok===88)&&a.allowGenerics()){$s=10;continue;}if(a.allowGenerics()){$s=11;continue;}$s=12;continue;case 9:h=a.parseMethodSpec();$s=14;case 14:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if(i.Names===AQ.nil&&a.allowGenerics()){$s=15;continue;}$s=16;continue;case 15:j=a.embeddedElem(i.Type);$s=17;case 17:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i.Type=j;case 16:$r=a.expectSemi();$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i.Comment=a.lineComment;g=$append(g,i);$s=13;continue;case 10:k=a.embeddedElem($ifaceNil);$s=19;case 19:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$r=a.expectSemi();$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=a.lineComment;g=$append(g,new B.Field.ptr(BZ.nil,AQ.nil,l,CC.nil,m));$s=13;continue;case 11:n=a.tryIdentOrType();$s=21;case 21:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;if(!($interfaceIsEqual(o,$ifaceNil))){$s=22;continue;}$s=23;continue;case 22:p=a.embeddedElem(o);$s=25;case 25:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$r=a.expectSemi();$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}r=a.lineComment;g=$append(g,new B.Field.ptr(BZ.nil,AQ.nil,q,CC.nil,r));$s=24;continue;case 23:$s=7;continue s;case 24:$s=13;continue;case 12:$s=7;continue s;case 13:case 8:$s=6;continue;case 7:s=a.expect(56);$s=27;case 27:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;u=new B.InterfaceType.ptr(d,new B.FieldList.ptr(f,g,t),false);$s=28;case 28:return u;}return;}}catch(err){$err=err;$s=-1;return BA.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseInterfaceType,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$deferred};return $f;}}};R.prototype.parseInterfaceType=function(){return this.$val.parseInterfaceType();};R.ptr.prototype.parseMapType=function(){var{a,b,c,d,e,f,g,h,i,j,k,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"MapType");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.expect(77);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=a.expect(50);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;f=a.parseType();$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=a.expect(55);$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;i=a.parseType();$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=new B.MapType.ptr(d,g,j);$s=9;case 9:return k;}return;}}catch(err){$err=err;$s=-1;return CH.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseMapType,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s,$deferred};return $f;}}};R.prototype.parseMapType=function(){return this.$val.parseMapType();};R.ptr.prototype.parseChanType=function(){var{a,b,c,d,e,f,g,h,i,j,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"ChanType");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.pos;d=3;e=0;if(a.tok===63){$s=4;continue;}$s=5;continue;case 4:$r=a.next();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(a.tok===36){$s=8;continue;}$s=9;continue;case 8:e=a.pos;$r=a.next();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=1;case 9:$s=6;continue;case 5:f=a.expect(36);$s=11;case 11:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=a.expect(63);$s=12;case 12:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;d=2;case 6:h=a.parseType();$s=13;case 13:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=new B.ChanType.ptr(c,e,d,i);$s=14;case 14:return j;}return;}}catch(err){$err=err;$s=-1;return CI.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseChanType,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s,$deferred};return $f;}}};R.prototype.parseChanType=function(){return this.$val.parseChanType();};R.ptr.prototype.parseTypeInstance=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;X(b.allowGenerics(),"parseTypeInstance while not parsing type params");if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"TypeInstance");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.expect(50);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;b.exprLev=b.exprLev+(1)>>0;f=BQ.nil;case 5:if(!(!((b.tok===55))&&!((b.tok===1)))){$s=6;continue;}g=b.parseType();$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=$append(f,g);h=b.atComma("type argument list",55);$s=10;case 10:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(!h){$s=8;continue;}$s=9;continue;case 8:$s=6;continue;case 9:$r=b.next();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 6:b.exprLev=b.exprLev-(1)>>0;i=b.expectClosing(55,"type argument list");$s=12;case 12:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(f.$length===0){$s=13;continue;}$s=14;continue;case 13:$r=b.errorExpected(j,"type argument list");$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=new B.IndexExpr.ptr(a,e,new B.BadExpr.ptr(e+1>>0,j),j);$s=16;case 16:return k;case 14:l=E.PackIndexExpr(a,e,f,j);$s=17;case 17:return l;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseTypeInstance,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s,$deferred};return $f;}}};R.prototype.parseTypeInstance=function(a){return this.$val.parseTypeInstance(a);};R.ptr.prototype.tryIdentOrType=function(){var{a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;b=U(a);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([V,[b]]);c=a.tok;if(c===(4)){$s=3;continue;}if(c===(50)){$s=4;continue;}if(c===(82)){$s=5;continue;}if(c===(14)){$s=6;continue;}if(c===(71)){$s=7;continue;}if(c===(76)){$s=8;continue;}if(c===(77)){$s=9;continue;}if((c===(63))||(c===(36))){$s=10;continue;}if(c===(49)){$s=11;continue;}$s=12;continue;case 3:d=a.parseTypeName(AP.nil);$s=13;case 13:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if((a.tok===50)&&a.allowGenerics()){$s=14;continue;}$s=15;continue;case 14:f=a.parseTypeInstance(e);$s=16;case 16:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;case 15:g=e;$s=17;case 17:return g;case 4:h=a.expect(50);$s=18;case 18:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=a.parseArrayType(i,$ifaceNil);$s=19;case 19:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=20;case 20:return k;case 5:l=a.parseStructType();$s=21;case 21:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=22;case 22:return m;case 6:n=a.parsePointerType();$s=23;case 23:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;$s=24;case 24:return o;case 7:p=a.parseFuncType();$s=25;case 25:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;r=q;$s=26;case 26:return r;case 8:s=a.parseInterfaceType();$s=27;case 27:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;$s=28;case 28:return t;case 9:u=a.parseMapType();$s=29;case 29:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;$s=30;case 30:return v;case 10:w=a.parseChanType();$s=31;case 31:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;$s=32;case 32:return x;case 11:y=a.pos;$r=a.next();$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}z=a.parseType();$s=34;case 34:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;ab=a.expect(54);$s=35;case 35:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;ad=new B.ParenExpr.ptr(y,aa,ac);$s=36;case 36:return ad;case 12:case 2:ae=$ifaceNil;$s=37;case 37:return ae;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.tryIdentOrType,$c:true,$r,a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};R.prototype.tryIdentOrType=function(){return this.$val.tryIdentOrType();};R.ptr.prototype.parseStmtList=function(){var{a,b,c,d,e,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=CJ.nil;b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"StatementList");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:case 4:if(!(!((b.tok===62))&&!((b.tok===66))&&!((b.tok===56))&&!((b.tok===1)))){$s=5;continue;}d=b.parseStmt();$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}a=$append(a,d);$s=4;continue;case 5:e=a;$s=7;case 7:return e;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return a;}if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseStmtList,$c:true,$r,a,b,c,d,e,$s,$deferred};return $f;}}};R.prototype.parseStmtList=function(){return this.$val.parseStmtList();};R.ptr.prototype.parseBody=function(){var{a,b,c,d,e,f,g,h,i,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"Body");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.expect(51);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=a.parseStmtList();$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=a.expect2(56);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=new B.BlockStmt.ptr(d,f,h);$s=7;case 7:return i;}return;}}catch(err){$err=err;$s=-1;return BE.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseBody,$c:true,$r,a,b,c,d,e,f,g,h,i,$s,$deferred};return $f;}}};R.prototype.parseBody=function(){return this.$val.parseBody();};R.ptr.prototype.parseBlockStmt=function(){var{a,b,c,d,e,f,g,h,i,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"BlockStmt");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.expect(51);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=a.parseStmtList();$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=a.expect2(56);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=new B.BlockStmt.ptr(d,f,h);$s=7;case 7:return i;}return;}}catch(err){$err=err;$s=-1;return BE.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseBlockStmt,$c:true,$r,a,b,c,d,e,f,g,h,i,$s,$deferred};return $f;}}};R.prototype.parseBlockStmt=function(){return this.$val.parseBlockStmt();};R.ptr.prototype.parseFuncTypeOrLit=function(){var{a,b,c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"FuncTypeOrLit");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.parseFuncType();$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!((a.tok===51))){$s=5;continue;}$s=6;continue;case 5:e=d;$s=7;case 7:return e;case 6:a.exprLev=a.exprLev+(1)>>0;f=a.parseBody();$s=8;case 8:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;a.exprLev=a.exprLev-(1)>>0;h=new B.FuncLit.ptr(d,g);$s=9;case 9:return h;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseFuncTypeOrLit,$c:true,$r,a,b,c,d,e,f,g,h,$s,$deferred};return $f;}}};R.prototype.parseFuncTypeOrLit=function(){return this.$val.parseFuncTypeOrLit();};R.ptr.prototype.parseOperand=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"Operand");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.tok;if(c===(4)){$s=5;continue;}if((c===(5))||(c===(6))||(c===(7))||(c===(8))||(c===(9))){$s=6;continue;}if(c===(49)){$s=7;continue;}if(c===(71)){$s=8;continue;}$s=9;continue;case 5:d=a.parseIdent();$s=10;case 10:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=e;$s=11;case 11:return f;case 6:g=new B.BasicLit.ptr(a.pos,a.tok,a.lit);$r=a.next();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=g;$s=13;case 13:return h;case 7:i=a.pos;$r=a.next();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}a.exprLev=a.exprLev+(1)>>0;j=a.parseRhsOrType();$s=15;case 15:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;a.exprLev=a.exprLev-(1)>>0;l=a.expect(54);$s=16;case 16:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=new B.ParenExpr.ptr(i,k,m);$s=17;case 17:return n;case 8:o=a.parseFuncTypeOrLit();$s=18;case 18:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;$s=19;case 19:return p;case 9:case 4:q=a.tryIdentOrType();$s=20;case 20:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;if(!($interfaceIsEqual(r,$ifaceNil))){$s=21;continue;}$s=22;continue;case 21:s=$assertType(r,AP,true);t=s[1];X(!t,"type cannot be identifier");u=r;$s=23;case 23:return u;case 22:v=a.pos;$r=a.errorExpected(v,"operand");$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=a.advance(Y);$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}w=new B.BadExpr.ptr(v,a.pos);$s=26;case 26:return w;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseOperand,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$deferred};return $f;}}};R.prototype.parseOperand=function(){return this.$val.parseOperand();};R.ptr.prototype.parseSelector=function(a){var{a,b,c,d,e,f,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"Selector");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.parseIdent();$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=new B.SelectorExpr.ptr(a,e);$s=5;case 5:return f;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseSelector,$c:true,$r,a,b,c,d,e,f,$s,$deferred};return $f;}}};R.prototype.parseSelector=function(a){return this.$val.parseSelector(a);};R.ptr.prototype.parseTypeAssertion=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"TypeAssertion");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.expect(49);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=$ifaceNil;if(b.tok===84){$s=5;continue;}$s=6;continue;case 5:$r=b.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 6:g=b.parseType();$s=9;case 9:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;case 7:h=b.expect(54);$s=10;case 10:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=new B.TypeAssertExpr.ptr(a,e,f,i);$s=11;case 11:return j;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseTypeAssertion,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s,$deferred};return $f;}}};R.prototype.parseTypeAssertion=function(a){return this.$val.parseTypeAssertion(a);};R.ptr.prototype.parseIndexOrSliceOrInstance=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"parseIndexOrSliceOrInstance");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.expect(50);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(b.tok===55){$s=5;continue;}$s=6;continue;case 5:$r=b.errorExpected(b.pos,"operand");$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=b.pos;$r=b.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=new B.IndexExpr.ptr(a,e,new B.BadExpr.ptr(f,f),f);$s=9;case 9:return g;case 6:b.exprLev=b.exprLev+(1)>>0;h=BQ.nil;i=CK.zero();j=CL.zero();k=0;if(!((b.tok===58))){$s=10;continue;}$s=11;continue;case 10:l=b.parseRhsOrType();$s=12;case 12:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}i[0]=l;case 11:m=0;n=b.tok;if(n===(58)){$s=14;continue;}if(n===(52)){$s=15;continue;}$s=16;continue;case 14:case 17:if(!((b.tok===58)&&m<2)){$s=18;continue;}((m<0||m>=j.length)?($throwRuntimeError("index out of range"),undefined):j[m]=b.pos);m=m+(1)>>0;$r=b.next();$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((b.tok===58))&&!((b.tok===55))&&!((b.tok===1))){$s=20;continue;}$s=21;continue;case 20:o=b.parseRhs();$s=22;case 22:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}((m<0||m>=i.length)?($throwRuntimeError("index out of range"),undefined):i[m]=o);case 21:$s=17;continue;case 18:$s=16;continue;case 15:k=b.pos;h=$append(h,i[0]);case 23:if(!(b.tok===52)){$s=24;continue;}$r=b.next();$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((b.tok===55))&&!((b.tok===1))){$s=26;continue;}$s=27;continue;case 26:p=b.parseType();$s=28;case 28:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}h=$append(h,p);case 27:$s=23;continue;case 24:case 16:case 13:b.exprLev=b.exprLev-(1)>>0;q=b.expect(55);$s=29;case 29:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;if(m>0){$s=30;continue;}$s=31;continue;case 30:s=false;if(m===2){$s=32;continue;}$s=33;continue;case 32:s=true;if($interfaceIsEqual(i[1],$ifaceNil)){$s=34;continue;}$s=35;continue;case 34:$r=b.error(j[0],"2nd index required in 3-index slice");$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i[1]=new B.BadExpr.ptr(j[0]+1>>0,j[1]);case 35:if($interfaceIsEqual(i[2],$ifaceNil)){$s=37;continue;}$s=38;continue;case 37:$r=b.error(j[1],"3rd index required in 3-index slice");$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i[2]=new B.BadExpr.ptr(j[1]+1>>0,r);case 38:case 33:t=new B.SliceExpr.ptr(a,e,i[0],i[1],i[2],s,r);$s=40;case 40:return t;case 31:if(h.$length===0){$s=41;continue;}$s=42;continue;case 41:u=new B.IndexExpr.ptr(a,e,i[0],r);$s=43;case 43:return u;case 42:if(!b.allowGenerics()){$s=44;continue;}$s=45;continue;case 44:$r=b.error(k,"expected ']' or ':', found ','");$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}v=(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]).Pos();$s=47;case 47:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}x=(w=h.$length-1>>0,((w<0||w>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+w])).End();$s=48;case 48:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=new B.BadExpr.ptr(v,x);$s=49;case 49:return y;case 45:z=E.PackIndexExpr(a,e,h,r);$s=50;case 50:return z;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseIndexOrSliceOrInstance,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};R.prototype.parseIndexOrSliceOrInstance=function(a){return this.$val.parseIndexOrSliceOrInstance(a);};R.ptr.prototype.parseCallOrConversion=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"CallOrConversion");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.expect(49);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;b.exprLev=b.exprLev+(1)>>0;f=BQ.nil;g=0;case 5:if(!(!((b.tok===54))&&!((b.tok===1))&&!new C.Pos(g).IsValid())){$s=6;continue;}h=b.parseRhsOrType();$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}f=$append(f,h);if(b.tok===48){$s=8;continue;}$s=9;continue;case 8:g=b.pos;$r=b.next();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:i=b.atComma("argument list",54);$s=13;case 13:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(!i){$s=11;continue;}$s=12;continue;case 11:$s=6;continue;case 12:$r=b.next();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 6:b.exprLev=b.exprLev-(1)>>0;j=b.expectClosing(54,"argument list");$s=15;case 15:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=new B.CallExpr.ptr(a,e,f,g,k);$s=16;case 16:return l;}return;}}catch(err){$err=err;$s=-1;return CM.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseCallOrConversion,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s,$deferred};return $f;}}};R.prototype.parseCallOrConversion=function(a){return this.$val.parseCallOrConversion(a);};R.ptr.prototype.parseValue=function(){var{a,b,c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"Element");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:if(a.tok===51){$s=4;continue;}$s=5;continue;case 4:c=a.parseLiteralValue($ifaceNil);$s=6;case 6:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=7;case 7:return d;case 5:e=a.parseExpr();$s=8;case 8:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=a.checkExpr(e);$s=9;case 9:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=g;$s=10;case 10:return h;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseValue,$c:true,$r,a,b,c,d,e,f,g,h,$s,$deferred};return $f;}}};R.prototype.parseValue=function(){return this.$val.parseValue();};R.ptr.prototype.parseElement=function(){var{a,b,c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"Element");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.parseValue();$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(a.tok===58){$s=5;continue;}$s=6;continue;case 5:e=a.pos;$r=a.next();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=a.parseValue();$s=8;case 8:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}d=new B.KeyValueExpr.ptr(d,e,f);case 6:g=d;$s=9;case 9:return g;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseElement,$c:true,$r,a,b,c,d,e,f,g,$s,$deferred};return $f;}}};R.prototype.parseElement=function(){return this.$val.parseElement();};R.ptr.prototype.parseElementList=function(){var{a,b,c,d,e,f,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=BQ.nil;b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"ElementList");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:case 4:if(!(!((b.tok===56))&&!((b.tok===1)))){$s=5;continue;}d=b.parseElement();$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}a=$append(a,d);e=b.atComma("composite literal",56);$s=9;case 9:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}if(!e){$s=7;continue;}$s=8;continue;case 7:$s=5;continue;case 8:$r=b.next();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=4;continue;case 5:f=a;$s=11;case 11:return f;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return a;}if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseElementList,$c:true,$r,a,b,c,d,e,f,$s,$deferred};return $f;}}};R.prototype.parseElementList=function(){return this.$val.parseElementList();};R.ptr.prototype.parseLiteralValue=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"LiteralValue");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.expect(51);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=BQ.nil;b.exprLev=b.exprLev+(1)>>0;if(!((b.tok===56))){$s=5;continue;}$s=6;continue;case 5:g=b.parseElementList();$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;case 6:b.exprLev=b.exprLev-(1)>>0;h=b.expectClosing(56,"composite literal");$s=8;case 8:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=new B.CompositeLit.ptr(a,e,f,i,false);$s=9;case 9:return j;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseLiteralValue,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s,$deferred};return $f;}}};R.prototype.parseLiteralValue=function(a){return this.$val.parseLiteralValue(a);};R.ptr.prototype.checkExpr=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=AC(a);if($assertType(c,CN,true)[1]){$s=1;continue;}if($assertType(c,AP,true)[1]){$s=2;continue;}if($assertType(c,CC,true)[1]){$s=3;continue;}if($assertType(c,AV,true)[1]){$s=4;continue;}if($assertType(c,AZ,true)[1]){$s=5;continue;}if($assertType(c,CO,true)[1]){$s=6;continue;}if($assertType(c,AW,true)[1]){$s=7;continue;}if($assertType(c,BV,true)[1]){$s=8;continue;}if($assertType(c,BW,true)[1]){$s=9;continue;}if($assertType(c,CP,true)[1]){$s=10;continue;}if($assertType(c,CQ,true)[1]){$s=11;continue;}if($assertType(c,CM,true)[1]){$s=12;continue;}if($assertType(c,BU,true)[1]){$s=13;continue;}if($assertType(c,CR,true)[1]){$s=14;continue;}if($assertType(c,CS,true)[1]){$s=15;continue;}$s=16;continue;case 1:$s=17;continue;case 2:$s=17;continue;case 3:$s=17;continue;case 4:$s=17;continue;case 5:$s=17;continue;case 6:$panic(new $String("unreachable"));$s=17;continue;case 7:$s=17;continue;case 8:$s=17;continue;case 9:$s=17;continue;case 10:$s=17;continue;case 11:$s=17;continue;case 12:$s=17;continue;case 13:$s=17;continue;case 14:$s=17;continue;case 15:$s=17;continue;case 16:d=a.Pos();$s=18;case 18:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$r=b.errorExpected(d,"expression");$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=a.Pos();$s=20;case 20:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=a.End();$s=21;case 21:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=b.safePos(f);$s=22;case 22:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}a=new B.BadExpr.ptr(e,g);case 17:$s=-1;return a;}return;}var $f={$blk:R.ptr.prototype.checkExpr,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};R.prototype.checkExpr=function(a){return this.$val.checkExpr(a);};AC=function(a){var a,b,c,d;b=$assertType(a,CO,true);c=b[0];d=b[1];if(d){a=AC(c.X);}return a;};R.ptr.prototype.checkExprOrType=function(a){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=AC(a);if($assertType(c,CO,true)[1]){$s=1;continue;}if($assertType(c,CB,true)[1]){$s=2;continue;}$s=3;continue;case 1:d=c.$val;$panic(new $String("unreachable"));$s=3;continue;case 2:e=c.$val;f=$assertType(e.Len,CF,true);g=f[0];h=f[1];if(h){$s=4;continue;}$s=5;continue;case 4:$r=b.error(g.Pos(),"expected array length, found '...'");$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=a.Pos();$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=a.End();$s=8;case 8:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=b.safePos(j);$s=9;case 9:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}a=new B.BadExpr.ptr(i,k);case 5:case 3:$s=-1;return a;}return;}var $f={$blk:R.ptr.prototype.checkExprOrType,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};R.prototype.checkExprOrType=function(a){return this.$val.checkExprOrType(a);};R.ptr.prototype.parsePrimaryExpr=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];c[0]=this;if(c[0].trace){$s=1;continue;}$s=2;continue;case 1:d=S(c[0],"PrimaryExpr");$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$deferred.push([T,[d]]);case 2:if($interfaceIsEqual(a,$ifaceNil)){$s=4;continue;}$s=5;continue;case 4:e=c[0].parseOperand();$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}a=e;case 5:b[0]=0;$deferred.push([(function(b,c){return function(){c[0].nestLev=c[0].nestLev-(b[0])>>0;};})(b,c),[]]);b[0]=1;case 7:f=U(c[0]);$s=9;case 9:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;g=c[0].tok;if(g===(53)){$s=11;continue;}if(g===(50)){$s=12;continue;}if(g===(49)){$s=13;continue;}if(g===(51)){$s=14;continue;}$s=15;continue;case 11:$r=c[0].next();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=c[0].tok;if(h===(4)){$s=19;continue;}if(h===(49)){$s=20;continue;}$s=21;continue;case 19:i=c[0].checkExprOrType(a);$s=23;case 23:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=c[0].parseSelector(i);$s=24;case 24:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}a=j;$s=22;continue;case 20:k=c[0].checkExpr(a);$s=25;case 25:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=c[0].parseTypeAssertion(k);$s=26;case 26:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}a=l;$s=22;continue;case 21:m=c[0].pos;$r=c[0].errorExpected(m,"selector or type assertion");$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((c[0].tok===56))){$s=28;continue;}$s=29;continue;case 28:$r=c[0].next();$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 29:n=new B.Ident.ptr(m,"_",AS.nil);a=new B.SelectorExpr.ptr(a,n);case 22:case 18:$s=16;continue;case 12:o=c[0].checkExpr(a);$s=31;case 31:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=c[0].parseIndexOrSliceOrInstance(o);$s=32;case 32:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}a=p;$s=16;continue;case 13:q=c[0].checkExprOrType(a);$s=33;case 33:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=c[0].parseCallOrConversion(q);$s=34;case 34:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}a=r;$s=16;continue;case 14:s=AC(a);t=s;if($assertType(t,CN,true)[1]||$assertType(t,AP,true)[1]||$assertType(t,AW,true)[1]){$s=35;continue;}if($assertType(t,BV,true)[1]||$assertType(t,BW,true)[1]){$s=36;continue;}if($assertType(t,CB,true)[1]||$assertType(t,AX,true)[1]||$assertType(t,CH,true)[1]){$s=37;continue;}$s=38;continue;case 35:if(c[0].exprLev<0){$s=40;continue;}$s=41;continue;case 40:u=a;$s=42;case 42:return u;case 41:$s=39;continue;case 36:if(c[0].exprLev<0){$s=43;continue;}$s=44;continue;case 43:v=a;$s=45;case 45:return v;case 44:$s=39;continue;case 37:$s=39;continue;case 38:w=a;$s=46;case 46:return w;case 39:if(!($interfaceIsEqual(s,a))){$s=47;continue;}$s=48;continue;case 47:x=s.Pos();$s=49;case 49:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}$r=c[0].error(x,"cannot parenthesize type in composite literal");$s=50;case 50:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 48:y=c[0].parseLiteralValue(a);$s=51;case 51:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}a=y;$s=16;continue;case 15:z=a;$s=52;case 52:return z;case 16:case 10:b[0]=b[0]+(1)>>0;$s=7;continue;case 8:$s=-1;return $ifaceNil;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parsePrimaryExpr,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};R.prototype.parsePrimaryExpr=function(a){return this.$val.parsePrimaryExpr(a);};R.ptr.prototype.parseUnaryExpr=function(){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;b=U(a);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([V,[b]]);if(a.trace){$s=2;continue;}$s=3;continue;case 2:c=S(a,"UnaryExpr");$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 3:d=a.tok;if((d===(12))||(d===(13))||(d===(43))||(d===(19))||(d===(17))){$s=6;continue;}if(d===(36)){$s=7;continue;}if(d===(14)){$s=8;continue;}$s=9;continue;case 6:e=a.pos;f=a.tok;g=e;h=f;$r=a.next();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=a.parseUnaryExpr();$s=11;case 11:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=a.checkExpr(j);$s=12;case 12:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=new B.UnaryExpr.ptr(g,h,k);$s=13;case 13:return l;case 7:m=a.pos;$r=a.next();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n=a.parseUnaryExpr();$s=15;case 15:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;p=$assertType(o,CI,true);q=p[0];r=p[1];if(r){$s=16;continue;}$s=17;continue;case 16:s=1;case 18:if(!(r&&(s===1))){$s=19;continue;}if(q.Dir===2){$s=20;continue;}$s=21;continue;case 20:$r=a.errorExpected(q.Arrow,"'chan'");$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 21:t=q.Arrow;u=m;v=m;m=t;q.Begin=u;q.Arrow=v;w=q.Dir;x=2;s=w;q.Dir=x;y=$assertType(q.Value,CI,true);q=y[0];r=y[1];$s=18;continue;case 19:if(s===1){$s=23;continue;}$s=24;continue;case 23:$r=a.errorExpected(m,"channel type");$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 24:z=o;$s=26;case 26:return z;case 17:aa=a.checkExpr(o);$s=27;case 27:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=new B.UnaryExpr.ptr(m,36,aa);$s=28;case 28:return ab;case 8:ac=a.pos;$r=a.next();$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ad=a.parseUnaryExpr();$s=30;case 30:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;af=a.checkExprOrType(ae);$s=31;case 31:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=new B.StarExpr.ptr(ac,af);$s=32;case 32:return ag;case 9:case 5:ah=a.parsePrimaryExpr($ifaceNil);$s=33;case 33:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=34;case 34:return ai;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseUnaryExpr,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};R.prototype.parseUnaryExpr=function(){return this.$val.parseUnaryExpr();};R.ptr.prototype.tokPrec=function(){var a,b;a=this;b=a.tok;if(a.inRhs&&(b===42)){b=39;}return[b,new C.Token(b).Precedence()];};R.prototype.tokPrec=function(){return this.$val.tokPrec();};R.ptr.prototype.parseBinaryExpr=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$deferred,$r,$c}=$restore(this,{a,b,c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=[d];e=[e];e[0]=this;if(e[0].trace){$s=1;continue;}$s=2;continue;case 1:f=S(e[0],"BinaryExpr");$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$deferred.push([T,[f]]);case 2:if($interfaceIsEqual(a,$ifaceNil)){$s=4;continue;}$s=5;continue;case 4:g=e[0].parseUnaryExpr();$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}a=g;case 5:d[0]=0;$deferred.push([(function(d,e){return function(){e[0].nestLev=e[0].nestLev-(d[0])>>0;};})(d,e),[]]);d[0]=1;case 7:h=U(e[0]);$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;i=e[0].tokPrec();j=i[0];k=i[1];if(k>0,c);$s=14;case 14:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;if(c){$s=15;continue;}$s=16;continue;case 15:q=e[0].checkExpr(a);$s=17;case 17:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}a=q;r=e[0].checkExpr(p);$s=18;case 18:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}p=r;case 16:a=new B.BinaryExpr.ptr(a,n,j,p);d[0]=d[0]+(1)>>0;$s=7;continue;case 8:$s=-1;return $ifaceNil;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseBinaryExpr,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$deferred};return $f;}}};R.prototype.parseBinaryExpr=function(a,b,c){return this.$val.parseBinaryExpr(a,b,c);};R.ptr.prototype.checkBinaryExpr=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=$assertType(a,CS,true);d=c[0];e=c[1];if(!e){$s=-1;return;}f=b.checkExpr(d.X);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}d.X=f;g=b.checkExpr(d.Y);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}d.Y=g;$r=b.checkBinaryExpr(d.X);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.checkBinaryExpr(d.Y);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.checkBinaryExpr,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};R.prototype.checkBinaryExpr=function(a){return this.$val.checkBinaryExpr(a);};R.ptr.prototype.parseExpr=function(){var{a,b,c,d,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"Expression");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.parseBinaryExpr($ifaceNil,1,true);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=5;case 5:return d;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseExpr,$c:true,$r,a,b,c,d,$s,$deferred};return $f;}}};R.prototype.parseExpr=function(){return this.$val.parseExpr();};R.ptr.prototype.parseRhs=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.inRhs;a.inRhs=true;c=a.parseExpr();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=a.checkExpr(c);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;a.inRhs=b;$s=-1;return e;}return;}var $f={$blk:R.ptr.prototype.parseRhs,$c:true,$r,a,b,c,d,e,$s};return $f;};R.prototype.parseRhs=function(){return this.$val.parseRhs();};R.ptr.prototype.parseRhsOrType=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.inRhs;a.inRhs=true;c=a.parseExpr();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=a.checkExprOrType(c);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;a.inRhs=b;$s=-1;return e;}return;}var $f={$blk:R.ptr.prototype.parseRhsOrType,$c:true,$r,a,b,c,d,e,$s};return $f;};R.prototype.parseRhsOrType=function(){return this.$val.parseRhsOrType();};R.ptr.prototype.parseSimpleStmt=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"SimpleStmt");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.parseList(false);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=b.tok;if((f===(47))||(f===(42))||(f===(23))||(f===(24))||(f===(25))||(f===(26))||(f===(27))||(f===(28))||(f===(29))||(f===(30))||(f===(31))||(f===(32))||(f===(33))){$s=6;continue;}$s=7;continue;case 6:g=b.pos;h=b.tok;i=g;j=h;$r=b.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=BQ.nil;l=false;if((a===2)&&(b.tok===79)&&((j===47)||(j===42))){$s=9;continue;}$s=10;continue;case 9:m=b.pos;$r=b.next();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n=b.parseRhs();$s=13;case 13:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}k=new BQ([new B.UnaryExpr.ptr(m,79,n)]);l=true;$s=11;continue;case 10:o=b.parseList(true);$s=14;case 14:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}k=o;case 11:p=new B.AssignStmt.ptr(e,i,j,k);if(j===47){$s=15;continue;}$s=16;continue;case 15:$r=b.checkAssignStmt(p);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 16:q=[p,l];$s=18;case 18:return q;case 7:case 5:if(e.$length>1){$s=19;continue;}$s=20;continue;case 19:r=(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]).Pos();$s=21;case 21:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}$r=b.errorExpected(r,"1 expression");$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 20:s=b.tok;if(s===(58)){$s=24;continue;}if(s===(36)){$s=25;continue;}if((s===(37))||(s===(38))){$s=26;continue;}$s=27;continue;case 24:t=b.pos;$r=b.next();$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}u=$assertType((0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),AP,true);v=u[0];w=u[1];if((a===1)&&w){$s=29;continue;}$s=30;continue;case 29:x=b.parseStmt();$s=31;case 31:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=new B.LabeledStmt.ptr(v,t,x);z=[y,false];$s=32;case 32:return z;case 30:$r=b.error(t,"illegal label declaration");$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aa=(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]).Pos();$s=34;case 34:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=[new B.BadStmt.ptr(aa,t+1>>0),false];$s=35;case 35:return ab;case 25:ac=b.pos;$r=b.next();$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ad=b.parseRhs();$s=37;case 37:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;af=[new B.SendStmt.ptr((0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),ac,ae),false];$s=38;case 38:return af;case 26:ag=new B.IncDecStmt.ptr((0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),b.pos,b.tok);$r=b.next();$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ah=[ag,false];$s=40;case 40:return ah;case 27:case 23:ai=[new B.ExprStmt.ptr((0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])),false];$s=41;case 41:return ai;}return;}}catch(err){$err=err;$s=-1;return[$ifaceNil,false];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseSimpleStmt,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};R.prototype.parseSimpleStmt=function(a){return this.$val.parseSimpleStmt(a);};R.ptr.prototype.checkAssignStmt=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Lhs;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=$assertType(e,AP,true);g=f[1];if(!g){$s=3;continue;}$s=4;continue;case 3:h=e.Pos();$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=b.errorExpected(h,"identifier on left side of :=");$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.checkAssignStmt,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};R.prototype.checkAssignStmt=function(a){return this.$val.checkAssignStmt(a);};R.ptr.prototype.parseCallExpr=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.parseRhsOrType();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=$assertType(d,CM,true);f=e[0];g=e[1];if(g){$s=-1;return f;}h=$assertType(d,CN,true);i=h[1];if(!i){$s=2;continue;}$s=3;continue;case 2:j=d.End();$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=b.safePos(j);$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;m=A.Sprintf("function must be invoked in %s statement",new AU([new $String(a)]));$s=6;case 6:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$r=b.error(l,n);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return CM.nil;}return;}var $f={$blk:R.ptr.prototype.parseCallExpr,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};R.prototype.parseCallExpr=function(a){return this.$val.parseCallExpr(a);};R.ptr.prototype.parseGoStmt=function(){var{a,b,c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"GoStmt");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.expect(72);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=a.parseCallExpr("go");$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$r=a.expectSemi();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(f===CM.nil){$s=7;continue;}$s=8;continue;case 7:g=new B.BadStmt.ptr(d,d+2>>0);$s=9;case 9:return g;case 8:h=new B.GoStmt.ptr(d,f);$s=10;case 10:return h;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseGoStmt,$c:true,$r,a,b,c,d,e,f,g,h,$s,$deferred};return $f;}}};R.prototype.parseGoStmt=function(){return this.$val.parseGoStmt();};R.ptr.prototype.parseDeferStmt=function(){var{a,b,c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"DeferStmt");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.expect(67);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=a.parseCallExpr("defer");$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$r=a.expectSemi();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(f===CM.nil){$s=7;continue;}$s=8;continue;case 7:g=new B.BadStmt.ptr(d,d+5>>0);$s=9;case 9:return g;case 8:h=new B.DeferStmt.ptr(d,f);$s=10;case 10:return h;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseDeferStmt,$c:true,$r,a,b,c,d,e,f,g,h,$s,$deferred};return $f;}}};R.prototype.parseDeferStmt=function(){return this.$val.parseDeferStmt();};R.ptr.prototype.parseReturnStmt=function(){var{a,b,c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"ReturnStmt");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.pos;d=a.expect(80);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;e=BQ.nil;if(!((a.tok===57))&&!((a.tok===56))){$s=5;continue;}$s=6;continue;case 5:f=a.parseList(true);$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;case 6:$r=a.expectSemi();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=new B.ReturnStmt.ptr(c,e);$s=9;case 9:return g;}return;}}catch(err){$err=err;$s=-1;return CT.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseReturnStmt,$c:true,$r,a,b,c,d,e,f,g,$s,$deferred};return $f;}}};R.prototype.parseReturnStmt=function(){return this.$val.parseReturnStmt();};R.ptr.prototype.parseBranchStmt=function(a){var{a,b,c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"BranchStmt");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.expect(a);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=AP.nil;if(!((a===69))&&(b.tok===4)){$s=5;continue;}$s=6;continue;case 5:g=b.parseIdent();$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;case 6:$r=b.expectSemi();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=new B.BranchStmt.ptr(e,a,f);$s=9;case 9:return h;}return;}}catch(err){$err=err;$s=-1;return BD.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseBranchStmt,$c:true,$r,a,b,c,d,e,f,g,h,$s,$deferred};return $f;}}};R.prototype.parseBranchStmt=function(a){return this.$val.parseBranchStmt(a);};R.ptr.prototype.makeExpr=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if($interfaceIsEqual(a,$ifaceNil)){$s=-1;return $ifaceNil;}d=$assertType(a,CU,true);e=d[0];f=d[1];if(f){$s=1;continue;}$s=2;continue;case 1:g=c.checkExpr(e.X);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=4;case 4:return h;case 2:i="simple statement";j=$assertType(a,BC,true);k=j[1];if(k){i="assignment";}l=a.Pos();$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=A.Sprintf("expected %s, found %s (missing parentheses around composite literal?)",new AU([new $String(b),new $String(i)]));$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;$r=c.error(m,o);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=a.Pos();$s=8;case 8:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=a.End();$s=9;case 9:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=c.safePos(q);$s=10;case 10:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=new B.BadExpr.ptr(p,r);$s=11;case 11:return s;}return;}var $f={$blk:R.ptr.prototype.makeExpr,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};R.prototype.makeExpr=function(a,b){return this.$val.makeExpr(a,b);};R.ptr.prototype.parseIfHeader=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=$ifaceNil;b=$ifaceNil;c=this;if(c.tok===51){$s=1;continue;}$s=2;continue;case 1:$r=c.error(c.pos,"missing condition in if statement");$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=new B.BadExpr.ptr(c.pos,c.pos);$s=-1;return[a,b];case 2:d=c.exprLev;c.exprLev=-1;if(!((c.tok===57))){$s=4;continue;}$s=5;continue;case 4:if(c.tok===85){$s=6;continue;}$s=7;continue;case 6:$r=c.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.error(c.pos,"var declaration not allowed in 'IF' initializer");$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:f=c.parseSimpleStmt(0);$s=10;case 10:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;a=e[0];case 5:g=$ifaceNil;h=new CV.ptr(0,"");if(!((c.tok===51))){$s=11;continue;}$s=12;continue;case 11:if(c.tok===57){$s=14;continue;}$s=15;continue;case 14:h.pos=c.pos;h.lit=c.lit;$r=c.next();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 15:i=c.expect(57);$s=18;case 18:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;case 16:if(!((c.tok===51))){$s=19;continue;}$s=20;continue;case 19:k=c.parseSimpleStmt(0);$s=21;case 21:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;g=j[0];case 20:$s=13;continue;case 12:g=a;a=$ifaceNil;case 13:if(!($interfaceIsEqual(g,$ifaceNil))){$s=22;continue;}if(new C.Pos(h.pos).IsValid()){$s=23;continue;}$s=24;continue;case 22:l=c.makeExpr(g,"boolean expression");$s=25;case 25:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}b=l;$s=24;continue;case 23:if(h.lit==="\n"){$s=26;continue;}$s=27;continue;case 26:$r=c.error(h.pos,"unexpected newline, expecting { after if clause");$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=28;continue;case 27:$r=c.error(h.pos,"missing condition in if statement");$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 28:case 24:if($interfaceIsEqual(b,$ifaceNil)){b=new B.BadExpr.ptr(c.pos,c.pos);}c.exprLev=d;$s=-1;return[a,b];}return;}var $f={$blk:R.ptr.prototype.parseIfHeader,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};R.prototype.parseIfHeader=function(){return this.$val.parseIfHeader();};R.ptr.prototype.parseIfStmt=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;b=U(a);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([V,[b]]);if(a.trace){$s=2;continue;}$s=3;continue;case 2:c=S(a,"IfStmt");$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 3:d=a.expect(74);$s=5;case 5:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;g=a.parseIfHeader();$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];j=a.parseBlockStmt();$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=$ifaceNil;if(a.tok===68){$s=8;continue;}$s=9;continue;case 8:$r=a.next();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=a.tok;if(m===(74)){$s=13;continue;}if(m===(51)){$s=14;continue;}$s=15;continue;case 13:n=a.parseIfStmt();$s=17;case 17:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}l=n;$s=16;continue;case 14:o=a.parseBlockStmt();$s=18;case 18:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}l=o;$r=a.expectSemi();$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 15:$r=a.errorExpected(a.pos,"if statement or block");$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=new B.BadStmt.ptr(a.pos,a.pos);case 16:case 12:$s=10;continue;case 9:$r=a.expectSemi();$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:p=new B.IfStmt.ptr(e,h,i,k,l);$s=22;case 22:return p;}return;}}catch(err){$err=err;$s=-1;return BF.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseIfStmt,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred};return $f;}}};R.prototype.parseIfStmt=function(){return this.$val.parseIfStmt();};R.ptr.prototype.parseTypeList=function(){var{a,b,c,d,e,f,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=BQ.nil;b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"TypeList");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.parseType();$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}a=$append(a,d);case 5:if(!(b.tok===52)){$s=6;continue;}$r=b.next();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=b.parseType();$s=8;case 8:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}a=$append(a,e);$s=5;continue;case 6:f=a;$s=9;case 9:return f;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return a;}if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseTypeList,$c:true,$r,a,b,c,d,e,f,$s,$deferred};return $f;}}};R.prototype.parseTypeList=function(){return this.$val.parseTypeList();};R.ptr.prototype.parseCaseClause=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"CaseClause");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=b.pos;e=BQ.nil;if(b.tok===62){$s=4;continue;}$s=5;continue;case 4:$r=b.next();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(a){$s=8;continue;}$s=9;continue;case 8:f=b.parseTypeList();$s=11;case 11:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;$s=10;continue;case 9:g=b.parseList(true);$s=12;case 12:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}e=g;case 10:$s=6;continue;case 5:h=b.expect(66);$s=13;case 13:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 6:i=b.expect(58);$s=14;case 14:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=b.parseStmtList();$s=15;case 15:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;m=new B.CaseClause.ptr(d,e,j,l);$s=16;case 16:return m;}return;}}catch(err){$err=err;$s=-1;return BG.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseCaseClause,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$deferred};return $f;}}};R.prototype.parseCaseClause=function(a){return this.$val.parseCaseClause(a);};AD=function(a){var a,b,c,d;b=$assertType(a,CQ,true);c=b[0];d=b[1];return d&&$interfaceIsEqual(c.Type,$ifaceNil);};R.ptr.prototype.isTypeSwitchGuard=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a;if($assertType(c,CU,true)[1]){$s=1;continue;}if($assertType(c,BC,true)[1]){$s=2;continue;}$s=3;continue;case 1:d=c.$val;$s=-1;return AD(d.X);case 2:e=c.$val;if((e.Lhs.$length===1)&&(e.Rhs.$length===1)&&AD((f=e.Rhs,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0])))){$s=4;continue;}$s=5;continue;case 4:g=e.Tok;if(g===(42)){$s=7;continue;}if(g===(47)){$s=8;continue;}$s=9;continue;case 7:$r=b.error(e.TokPos,"expected ':=', found '='");$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return true;case 8:$s=-1;return true;case 9:case 6:case 5:case 3:$s=-1;return false;}return;}var $f={$blk:R.ptr.prototype.isTypeSwitchGuard,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};R.prototype.isTypeSwitchGuard=function(a){return this.$val.isTypeSwitchGuard(a);};R.ptr.prototype.parseSwitchStmt=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"SwitchStmt");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.expect(83);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=$ifaceNil;f=$ifaceNil;g=e;h=f;if(!((a.tok===51))){$s=5;continue;}$s=6;continue;case 5:i=a.exprLev;a.exprLev=-1;if(!((a.tok===57))){$s=7;continue;}$s=8;continue;case 7:k=a.parseSimpleStmt(0);$s=9;case 9:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;h=j[0];case 8:if(a.tok===57){$s=10;continue;}$s=11;continue;case 10:$r=a.next();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=h;h=$ifaceNil;if(!((a.tok===51))){$s=13;continue;}$s=14;continue;case 13:m=a.parseSimpleStmt(0);$s=15;case 15:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;h=l[0];case 14:case 11:a.exprLev=i;case 6:n=a.isTypeSwitchGuard(h);$s=16;case 16:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;p=a.expect(51);$s=17;case 17:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;r=CJ.nil;case 18:if(!((a.tok===62)||(a.tok===66))){$s=19;continue;}s=a.parseCaseClause(o);$s=20;case 20:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=$append(r,s);$s=18;continue;case 19:t=a.expect(56);$s=21;case 21:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;$r=a.expectSemi();$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}v=new B.BlockStmt.ptr(q,r,u);if(o){$s=23;continue;}$s=24;continue;case 23:w=new B.TypeSwitchStmt.ptr(d,g,h,v);$s=25;case 25:return w;case 24:x=a.makeExpr(h,"switch expression");$s=26;case 26:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=new B.SwitchStmt.ptr(d,g,x,v);$s=27;case 27:return y;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseSwitchStmt,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$deferred};return $f;}}};R.prototype.parseSwitchStmt=function(){return this.$val.parseSwitchStmt();};R.ptr.prototype.parseCommClause=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"CommClause");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.pos;d=$ifaceNil;if(a.tok===62){$s=4;continue;}$s=5;continue;case 4:$r=a.next();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=a.parseList(false);$s=8;case 8:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(a.tok===36){$s=9;continue;}$s=10;continue;case 9:if(f.$length>1){$s=12;continue;}$s=13;continue;case 12:g=(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).Pos();$s=14;case 14:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$r=a.errorExpected(g,"1 expression");$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:h=a.pos;$r=a.next();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=a.parseRhs();$s=17;case 17:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;d=new B.SendStmt.ptr((0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]),h,j);$s=11;continue;case 10:k=a.tok;if((k===42)||(k===47)){$s=18;continue;}$s=19;continue;case 18:if(f.$length>2){$s=21;continue;}$s=22;continue;case 21:l=(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).Pos();$s=23;case 23:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}$r=a.errorExpected(l,"1 or 2 expressions");$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=$subslice(f,0,2);case 22:m=a.pos;$r=a.next();$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n=a.parseRhs();$s=26;case 26:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;p=new B.AssignStmt.ptr(f,m,k,new BQ([o]));if(k===47){$s=27;continue;}$s=28;continue;case 27:$r=a.checkAssignStmt(p);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 28:d=p;$s=20;continue;case 19:if(f.$length>1){$s=30;continue;}$s=31;continue;case 30:q=(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).Pos();$s=32;case 32:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}$r=a.errorExpected(q,"1 expression");$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 31:d=new B.ExprStmt.ptr((0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]));case 20:case 11:$s=6;continue;case 5:r=a.expect(66);$s=34;case 34:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;case 6:s=a.expect(58);$s=35;case 35:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;u=a.parseStmtList();$s=36;case 36:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;w=new B.CommClause.ptr(c,d,t,v);$s=37;case 37:return w;}return;}}catch(err){$err=err;$s=-1;return BJ.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseCommClause,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$deferred};return $f;}}};R.prototype.parseCommClause=function(){return this.$val.parseCommClause();};R.ptr.prototype.parseSelectStmt=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"SelectStmt");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.expect(81);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=a.expect(51);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=CJ.nil;case 6:if(!((a.tok===62)||(a.tok===66))){$s=7;continue;}h=a.parseCommClause();$s=8;case 8:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=$append(g,h);$s=6;continue;case 7:i=a.expect(56);$s=9;case 9:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$r=a.expectSemi();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=new B.BlockStmt.ptr(f,g,j);l=new B.SelectStmt.ptr(d,k);$s=11;case 11:return l;}return;}}catch(err){$err=err;$s=-1;return BK.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseSelectStmt,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s,$deferred};return $f;}}};R.prototype.parseSelectStmt=function(){return this.$val.parseSelectStmt();};R.ptr.prototype.parseForStmt=function(){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"ForStmt");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.expect(70);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=$ifaceNil;f=$ifaceNil;g=$ifaceNil;h=e;i=f;j=g;k=false;if(!((a.tok===51))){$s=5;continue;}$s=6;continue;case 5:l=a.exprLev;a.exprLev=-1;if(!((a.tok===57))){$s=7;continue;}$s=8;continue;case 7:if(a.tok===79){$s=9;continue;}$s=10;continue;case 9:m=a.pos;$r=a.next();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n=a.parseRhs();$s=13;case 13:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=new BQ([new B.UnaryExpr.ptr(m,79,n)]);i=new B.AssignStmt.ptr(BQ.nil,0,0,o);k=true;$s=11;continue;case 10:q=a.parseSimpleStmt(2);$s=14;case 14:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;i=p[0];k=p[1];case 11:case 8:if(!k&&(a.tok===57)){$s=15;continue;}$s=16;continue;case 15:$r=a.next();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=i;i=$ifaceNil;if(!((a.tok===57))){$s=18;continue;}$s=19;continue;case 18:s=a.parseSimpleStmt(0);$s=20;case 20:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;i=r[0];case 19:$r=a.expectSemi();$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((a.tok===51))){$s=22;continue;}$s=23;continue;case 22:u=a.parseSimpleStmt(0);$s=24;case 24:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;j=t[0];case 23:case 16:a.exprLev=l;case 6:v=a.parseBlockStmt();$s=25;case 25:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v;$r=a.expectSemi();$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(k){$s=27;continue;}$s=28;continue;case 27:x=$assertType(i,BC);y=$ifaceNil;z=$ifaceNil;aa=y;ab=z;ac=x.Lhs.$length;if(ac===(0)){$s=30;continue;}if(ac===(1)){$s=31;continue;}if(ac===(2)){$s=32;continue;}$s=33;continue;case 30:$s=34;continue;case 31:aa=(ad=x.Lhs,(0>=ad.$length?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+0]));$s=34;continue;case 32:ae=(af=x.Lhs,(0>=af.$length?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+0]));ag=(ah=x.Lhs,(1>=ah.$length?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+1]));aa=ae;ab=ag;$s=34;continue;case 33:ak=(ai=x.Lhs,aj=x.Lhs.$length-1>>0,((aj<0||aj>=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+aj])).Pos();$s=35;case 35:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}$r=a.errorExpected(ak,"at most 2 expressions");$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}al=w.End();$s=37;case 37:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=a.safePos(al);$s=38;case 38:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=new B.BadStmt.ptr(d,am);$s=39;case 39:return an;case 34:case 29:ap=$assertType((ao=x.Rhs,(0>=ao.$length?($throwRuntimeError("index out of range"),undefined):ao.$array[ao.$offset+0])),CR).X;aq=new B.RangeStmt.ptr(d,aa,ab,x.TokPos,x.Tok,ap,w);$s=40;case 40:return aq;case 28:ar=a.makeExpr(i,"boolean or range expression");$s=41;case 41:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=new B.ForStmt.ptr(d,h,ar,j,w);$s=42;case 42:return as;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseForStmt,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};R.prototype.parseForStmt=function(){return this.$val.parseForStmt();};R.ptr.prototype.parseStmt=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=$ifaceNil;b=this;c=U(b);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([V,[c]]);if(b.trace){$s=2;continue;}$s=3;continue;case 2:d=S(b,"Statement");$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$deferred.push([T,[d]]);case 3:e=b.tok;if((e===(64))||(e===(84))||(e===(85))){$s=6;continue;}if((e===(4))||(e===(5))||(e===(6))||(e===(7))||(e===(8))||(e===(9))||(e===(71))||(e===(49))||(e===(50))||(e===(82))||(e===(77))||(e===(63))||(e===(76))||(e===(12))||(e===(13))||(e===(14))||(e===(17))||(e===(19))||(e===(36))||(e===(43))){$s=7;continue;}if(e===(72)){$s=8;continue;}if(e===(67)){$s=9;continue;}if(e===(80)){$s=10;continue;}if((e===(61))||(e===(65))||(e===(73))||(e===(69))){$s=11;continue;}if(e===(51)){$s=12;continue;}if(e===(74)){$s=13;continue;}if(e===(83)){$s=14;continue;}if(e===(81)){$s=15;continue;}if(e===(70)){$s=16;continue;}if(e===(57)){$s=17;continue;}if(e===(56)){$s=18;continue;}$s=19;continue;case 6:f=b.parseDecl(Y);$s=21;case 21:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}a=new B.DeclStmt.ptr(f);$s=20;continue;case 7:h=b.parseSimpleStmt(1);$s=22;case 22:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;a=g[0];i=$assertType(a,BB,true);j=i[1];if(!j){$s=23;continue;}$s=24;continue;case 23:$r=b.expectSemi();$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 24:$s=20;continue;case 8:k=b.parseGoStmt();$s=26;case 26:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}a=k;$s=20;continue;case 9:l=b.parseDeferStmt();$s=27;case 27:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}a=l;$s=20;continue;case 10:m=b.parseReturnStmt();$s=28;case 28:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}a=m;$s=20;continue;case 11:n=b.parseBranchStmt(b.tok);$s=29;case 29:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}a=n;$s=20;continue;case 12:o=b.parseBlockStmt();$s=30;case 30:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}a=o;$r=b.expectSemi();$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 13:p=b.parseIfStmt();$s=32;case 32:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}a=p;$s=20;continue;case 14:q=b.parseSwitchStmt();$s=33;case 33:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}a=q;$s=20;continue;case 15:r=b.parseSelectStmt();$s=34;case 34:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}a=r;$s=20;continue;case 16:s=b.parseForStmt();$s=35;case 35:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}a=s;$s=20;continue;case 17:a=new B.EmptyStmt.ptr(b.pos,b.lit==="\n");$r=b.next();$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 18:a=new B.EmptyStmt.ptr(b.pos,true);$s=20;continue;case 19:t=b.pos;$r=b.errorExpected(t,"statement");$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.advance(Y);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}a=new B.BadStmt.ptr(t,b.pos);case 20:case 5:u=a;$s=39;case 39:return u;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return a;}if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseStmt,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$deferred};return $f;}}};R.prototype.parseStmt=function(){return this.$val.parseStmt();};AF=function(a){var a,b,c,d,e,f,g;b=G.Unquote(a);c=b[0];d=c;e=0;while(true){if(!(e?[\\]^{|}`\xEF\xBF\xBD",g)){return false;}e+=f[1];}return!(c==="");};R.ptr.prototype.parseImportSpec=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$deferred,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=this;if(e.trace){$s=1;continue;}$s=2;continue;case 1:f=S(e,"ImportSpec");$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$deferred.push([T,[f]]);case 2:g=AP.nil;h=e.tok;if(h===(53)){$s=5;continue;}if(h===(4)){$s=6;continue;}$s=7;continue;case 5:g=new B.Ident.ptr(e.pos,".",AS.nil);$r=e.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 6:i=e.parseIdent();$s=9;case 9:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}g=i;case 7:case 4:j=e.pos;k="";if(e.tok===9){$s=10;continue;}$s=11;continue;case 10:k=e.lit;if(!AF(k)){$s=13;continue;}$s=14;continue;case 13:$r=e.error(j,"invalid import path: "+k);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:$r=e.next();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=12;continue;case 11:l=e.expect(9);$s=17;case 17:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;case 12:$r=e.expectSemi();$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=new B.ImportSpec.ptr(a,g,new B.BasicLit.ptr(j,9,k),e.lineComment,0);e.imports=$append(e.imports,m);n=m;$s=19;case 19:return n;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseImportSpec,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$deferred};return $f;}}};R.prototype.parseImportSpec=function(a,b,c,d){return this.$val.parseImportSpec(a,b,c,d);};R.ptr.prototype.parseValueSpec=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=this;if(e.trace){$s=1;continue;}$s=2;continue;case 1:f=S(e,new C.Token(c).String()+"Spec");$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$deferred.push([T,[f]]);case 2:g=e.pos;h=e.parseIdentList();$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=e.tryIdentOrType();$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=BQ.nil;if(e.tok===42){$s=6;continue;}$s=7;continue;case 6:$r=e.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=e.parseList(true);$s=9;case 9:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;case 7:$r=e.expectSemi();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n=c;if(n===(85)){$s=12;continue;}if(n===(64)){$s=13;continue;}$s=14;continue;case 12:if($interfaceIsEqual(k,$ifaceNil)&&l===BQ.nil){$s=15;continue;}$s=16;continue;case 15:$r=e.error(g,"missing variable type or initialization");$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 16:$s=14;continue;case 13:if(l===BQ.nil&&((d===0)||!($interfaceIsEqual(k,$ifaceNil)))){$s=18;continue;}$s=19;continue;case 18:$r=e.error(g,"missing constant value");$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 19:case 14:case 11:o=new B.ValueSpec.ptr(a,i,k,l,e.lineComment);p=o;$s=21;case 21:return p;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseValueSpec,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred};return $f;}}};R.prototype.parseValueSpec=function(a,b,c,d){return this.$val.parseValueSpec(a,b,c,d);};R.ptr.prototype.parseGenericType=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,$s,$deferred,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=this;if(e.trace){$s=1;continue;}$s=2;continue;case 1:f=S(e,"parseGenericType");$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$deferred.push([T,[f]]);case 2:g=e.parseParameterList(c,d,55);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=e.expect(55);$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;a.TypeParams=new B.FieldList.ptr(b,h,j);if(e.tok===42){$s=6;continue;}$s=7;continue;case 6:a.Assign=e.pos;$r=e.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:k=e.parseType();$s=9;case 9:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}a.Type=k;$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseGenericType,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s,$deferred};return $f;}}};R.prototype.parseGenericType=function(a,b,c,d){return this.$val.parseGenericType(a,b,c,d);};R.ptr.prototype.parseTypeSpec=function(a,b,c,d){var{a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=this;if(e.trace){$s=1;continue;}$s=2;continue;case 1:f=S(e,"TypeSpec");$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$deferred.push([T,[f]]);case 2:g=e.parseIdent();$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=new B.TypeSpec.ptr(a,h,BT.nil,0,$ifaceNil,BZ.nil);if((e.tok===50)&&e.allowGenerics()){$s=5;continue;}$s=6;continue;case 5:j=e.pos;$r=e.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(e.tok===4){$s=9;continue;}$s=10;continue;case 9:k=e.parseIdent();$s=12;case 12:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(!((e.tok===50))){$s=13;continue;}$s=14;continue;case 13:e.exprLev=e.exprLev+(1)>>0;m=e.parsePrimaryExpr(l);$s=15;case 15:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=e.parseBinaryExpr(n,1,false);$s=16;case 16:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}l=o;e.exprLev=e.exprLev-(1)>>0;case 14:p=AP.nil;q=$ifaceNil;r=l;if($assertType(r,AP,true)[1]){$s=17;continue;}if($assertType(r,CS,true)[1]){$s=18;continue;}if($assertType(r,CM,true)[1]){$s=19;continue;}$s=20;continue;case 17:s=r.$val;if(!((e.tok===55))){p=s;}$s=20;continue;case 18:t=r.$val;v=$assertType(t.X,AP,true);w=v[0];if(!(w===AP.nil)){if((t.Op===14)&&(AG(t.Y)||(e.tok===52))){p=w;q=new B.StarExpr.ptr(t.OpPos,t.Y);}}if(p===AP.nil){$s=21;continue;}$s=22;continue;case 21:$r=e.checkBinaryExpr(t);$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 22:$s=20;continue;case 19:u=r.$val;x=$assertType(u.Fun,AP,true);y=x[0];if(!(y===AP.nil)){if((u.Args.$length===1)&&!new C.Pos(u.Ellipsis).IsValid()&&(AG((z=u.Args,(0>=z.$length?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+0])))||(e.tok===52))){p=y;q=(aa=u.Args,(0>=aa.$length?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+0]));}}case 20:if(!(p===AP.nil)){$s=24;continue;}$s=25;continue;case 24:$r=e.parseGenericType(i,j,p,q);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=26;continue;case 25:ab=e.parseArrayType(j,l);$s=28;case 28:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}i.Type=ab;case 26:$s=11;continue;case 10:ac=e.parseArrayType(j,$ifaceNil);$s=29;case 29:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}i.Type=ac;case 11:$s=7;continue;case 6:if(e.tok===42){$s=30;continue;}$s=31;continue;case 30:i.Assign=e.pos;$r=e.next();$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 31:ad=e.parseType();$s=33;case 33:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}i.Type=ad;case 7:$r=e.expectSemi();$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i.Comment=e.lineComment;ae=i;$s=35;case 35:return ae;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseTypeSpec,$c:true,$r,a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};R.prototype.parseTypeSpec=function(a,b,c,d){return this.$val.parseTypeSpec(a,b,c,d);};AG=function(a){var a,b,c,d,e;b=a;if($assertType(b,CB,true)[1]||$assertType(b,AX,true)[1]||$assertType(b,AY,true)[1]||$assertType(b,BA,true)[1]||$assertType(b,CH,true)[1]||$assertType(b,CI,true)[1]){c=b;return true;}else if($assertType(b,BU,true)[1]){d=b.$val;return AG(d.X);}else if($assertType(b,CO,true)[1]){e=b.$val;return AG(e.X);}return false;};R.ptr.prototype.parseGenDecl=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred,$r,$c}=$restore(this,{a,b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=this;if(c.trace){$s=1;continue;}$s=2;continue;case 1:d=S(c,"GenDecl("+new C.Token(a).String()+")");$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$deferred.push([T,[d]]);case 2:e=c.leadComment;f=c.expect(a);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=0;i=0;j=h;k=i;l=CW.nil;if(c.tok===49){$s=5;continue;}$s=6;continue;case 5:j=c.pos;$r=c.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=0;case 9:if(!(!((c.tok===54))&&!((c.tok===1)))){$s=10;continue;}n=b(c.leadComment,g,a,m);$s=11;case 11:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}l=$append(l,n);m=m+(1)>>0;$s=9;continue;case 10:o=c.expect(54);$s=12;case 12:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}k=o;$r=c.expectSemi();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 6:p=b(BZ.nil,g,a,0);$s=14;case 14:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}l=$append(l,p);case 7:q=new B.GenDecl.ptr(e,g,a,j,l,k);$s=15;case 15:return q;}return;}}catch(err){$err=err;$s=-1;return BN.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseGenDecl,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred};return $f;}}};R.prototype.parseGenDecl=function(a,b){return this.$val.parseGenDecl(a,b);};R.ptr.prototype.parseFuncDecl=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"FunctionDecl");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:c=a.leadComment;d=a.expect(71);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=BT.nil;if(a.tok===49){$s=5;continue;}$s=6;continue;case 5:h=a.parseParameters(false);$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;f=g[1];case 6:i=a.parseIdent();$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;l=a.parseParameters(true);$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];if(!(f===BT.nil)&&!(m===BT.nil)){$s=10;continue;}$s=11;continue;case 10:$r=a.error(m.Opening,"method must have no type parameters");$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=BT.nil;case 11:o=a.parseResult();$s=13;case 13:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=BE.nil;r=a.tok;if(r===(51)){$s=15;continue;}if(r===(57)){$s=16;continue;}$s=17;continue;case 15:s=a.parseBody();$s=19;case 19:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}q=s;$r=a.expectSemi();$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 16:$r=a.next();$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(a.tok===51){$s=22;continue;}$s=23;continue;case 22:$r=a.error(a.pos,"unexpected semicolon or newline before {");$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}t=a.parseBody();$s=25;case 25:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}q=t;$r=a.expectSemi();$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 23:$s=18;continue;case 17:$r=a.expectSemi();$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 18:case 14:u=new B.FuncDecl.ptr(c,f,j,new B.FuncType.ptr(e,m,n,p),q);v=u;$s=28;case 28:return v;}return;}}catch(err){$err=err;$s=-1;return BO.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseFuncDecl,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$deferred};return $f;}}};R.prototype.parseFuncDecl=function(){return this.$val.parseFuncDecl();};R.ptr.prototype.parseDecl=function(a){var{a,b,c,d,e,f,g,h,i,j,k,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=this;if(b.trace){$s=1;continue;}$s=2;continue;case 1:c=S(b,"Declaration");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$deferred.push([T,[c]]);case 2:d=$throwNilPointerError;e=b.tok;if((e===(64))||(e===(85))){$s=5;continue;}if(e===(84)){$s=6;continue;}if(e===(71)){$s=7;continue;}$s=8;continue;case 5:d=$methodVal(b,"parseValueSpec");$s=9;continue;case 6:d=$methodVal(b,"parseTypeSpec");$s=9;continue;case 7:f=b.parseFuncDecl();$s=10;case 10:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=11;case 11:return g;case 8:h=b.pos;$r=b.errorExpected(h,"declaration");$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.advance(a);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=new B.BadDecl.ptr(h,b.pos);$s=14;case 14:return i;case 9:case 4:j=b.parseGenDecl(b.tok,d);$s=15;case 15:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=16;case 16:return k;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseDecl,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s,$deferred};return $f;}}};R.prototype.parseDecl=function(a){return this.$val.parseDecl(a);};R.ptr.prototype.parseFile=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.trace){$s=1;continue;}$s=2;continue;case 1:b=S(a,"File");$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$deferred.push([T,[b]]);case 2:if(!((a.errors.Len()===0))){$s=4;continue;}$s=5;continue;case 4:c=CX.nil;$s=6;case 6:return c;case 5:d=a.leadComment;e=a.expect(78);$s=7;case 7:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=a.parseIdent();$s=8;case 8:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(h.Name==="_"&&!((((a.mode&16)>>>0)===0))){$s=9;continue;}$s=10;continue;case 9:$r=a.error(a.pos,"invalid package name _");$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:$r=a.expectSemi();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((a.errors.Len()===0))){$s=13;continue;}$s=14;continue;case 13:i=CX.nil;$s=15;case 15:return i;case 14:j=CY.nil;if(((a.mode&1)>>>0)===0){$s=16;continue;}$s=17;continue;case 16:case 18:if(!(a.tok===75)){$s=19;continue;}k=a.parseGenDecl(75,$methodVal(a,"parseImportSpec"));$s=20;case 20:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=$append(j,k);$s=18;continue;case 19:if(((a.mode&2)>>>0)===0){$s=21;continue;}$s=22;continue;case 21:case 23:if(!(!((a.tok===1)))){$s=24;continue;}l=a.parseDecl(Z);$s=25;case 25:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}j=$append(j,l);$s=23;continue;case 24:case 22:case 17:m=new B.File.ptr(d,f,h,j,AN.nil,a.imports,AQ.nil,a.comments);n=$throwNilPointerError;if(!((((a.mode&16)>>>0)===0))){n=$methodVal(a,"error");}if(((a.mode&64)>>>0)===0){$s=26;continue;}$s=27;continue;case 26:$r=O(m,a.file,n);$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 27:o=m;$s=29;case 29:return o;}return;}}catch(err){$err=err;$s=-1;return CX.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.parseFile,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$deferred};return $f;}}};R.prototype.parseFile=function(){return this.$val.parseFile();};AH=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:if(!($interfaceIsEqual(b,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:c=b;if($assertType(c,$String,true)[1]){$s=3;continue;}if($assertType(c,DC,true)[1]){$s=4;continue;}if($assertType(c,DD,true)[1]){$s=5;continue;}if($assertType(c,K.Reader,true)[1]){$s=6;continue;}$s=7;continue;case 3:d=c.$val;$s=-1;return[(new DC($stringToBytes(d))),$ifaceNil];case 4:e=c.$val;$s=-1;return[e,$ifaceNil];case 5:f=c.$val;if(!(f===DD.nil)){$s=-1;return[f.Bytes(),$ifaceNil];}$s=7;continue;case 6:g=c;h=K.ReadAll(g);$s=8;case 8:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=9;case 9:return i;case 7:$s=-1;return[DC.nil,J.New("invalid source")];case 2:j=M.ReadFile(a);$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=11;case 11:return k;}return;}var $f={$blk:AH,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};AJ=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$deferred,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=[e];f=[f];g=[g];f[0]=CX.nil;e[0]=$ifaceNil;if(a===DE.nil){$panic(new $String("parser.ParseFile: no token.FileSet provided (fset == nil)"));}i=AH(b,c);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[0];e[0]=h[1];if(!($interfaceIsEqual(e[0],$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:k=CX.nil;l=e[0];f[0]=k;e[0]=l;m=[f[0],e[0]];$s=4;case 4:return m;case 3:g[0]=new R.ptr(AO.nil,F.ErrorList.nil,new F.Scanner.ptr(AO.nil,"",DC.nil,$throwNilPointerError,0,0,0,0,0,false,0),0,false,0,DB.nil,BZ.nil,BZ.nil,0,0,"",0,0,0,false,DA.nil,0);$deferred.push([(function(e,f,g){return function $b(){var{n,o,p,q,r,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:n=$recover();if(!($interfaceIsEqual(n,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:o=$assertType(n,W,true);p=$clone(o[0],W);q=o[1];if(!q){$s=3;continue;}if(!(p.msg==="")){$s=4;continue;}$s=5;continue;case 3:$panic(n);$s=5;continue;case 4:r=g[0].file.Position(p.pos);$s=6;case 6:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}$r=(g[0].$ptr_errors||(g[0].$ptr_errors=new BX(function(){return this.$target.errors;},function($v){this.$target.errors=$v;},g[0]))).Add($clone(r,C.Position),p.msg);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:case 2:if(f[0]===CX.nil){f[0]=new B.File.ptr(BZ.nil,0,new B.Ident.ptr(0,"",AS.nil),CY.nil,B.NewScope(AN.nil),DA.nil,AQ.nil,DB.nil);}$r=g[0].errors.Sort();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e[0]=g[0].errors.Err();$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,n,o,p,q,r,$s};return $f;};})(e,f,g),[]]);$r=g[0].init(a,b,j,d);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n=g[0].parseFile();$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}f[0]=n;o=[f[0],e[0]];$s=7;case 7:return o;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[f[0],e[0]];}if($curGoroutine.asleep){var $f={$blk:AJ,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$deferred};return $f;}}};$pkg.ParseFile=AJ;DH.methods=[{prop:"trace",name:"trace",pkg:"go/parser",typ:$funcType([$String,AU],[],true)},{prop:"sprintf",name:"sprintf",pkg:"go/parser",typ:$funcType([$String,AU],[$String],true)},{prop:"openScope",name:"openScope",pkg:"go/parser",typ:$funcType([C.Pos],[],false)},{prop:"closeScope",name:"closeScope",pkg:"go/parser",typ:$funcType([],[],false)},{prop:"openLabelScope",name:"openLabelScope",pkg:"go/parser",typ:$funcType([],[],false)},{prop:"closeLabelScope",name:"closeLabelScope",pkg:"go/parser",typ:$funcType([],[],false)},{prop:"declare",name:"declare",pkg:"go/parser",typ:$funcType([$emptyInterface,$emptyInterface,AN,B.ObjKind,AQ],[],true)},{prop:"shortVarDecl",name:"shortVarDecl",pkg:"go/parser",typ:$funcType([BC],[],false)},{prop:"resolve",name:"resolve",pkg:"go/parser",typ:$funcType([AP,$Bool],[],false)},{prop:"walkExprs",name:"walkExprs",pkg:"go/parser",typ:$funcType([BQ],[],false)},{prop:"walkLHS",name:"walkLHS",pkg:"go/parser",typ:$funcType([BQ],[],false)},{prop:"walkStmts",name:"walkStmts",pkg:"go/parser",typ:$funcType([CJ],[],false)},{prop:"Visit",name:"Visit",pkg:"",typ:$funcType([B.Node],[B.Visitor],false)},{prop:"walkFuncType",name:"walkFuncType",pkg:"go/parser",typ:$funcType([AY],[],false)},{prop:"resolveList",name:"resolveList",pkg:"go/parser",typ:$funcType([BT],[],false)},{prop:"declareList",name:"declareList",pkg:"go/parser",typ:$funcType([BT,B.ObjKind],[],false)},{prop:"walkRecv",name:"walkRecv",pkg:"go/parser",typ:$funcType([BT],[],false)},{prop:"walkFieldList",name:"walkFieldList",pkg:"go/parser",typ:$funcType([BT,B.ObjKind],[],false)},{prop:"walkTParams",name:"walkTParams",pkg:"go/parser",typ:$funcType([BT],[],false)},{prop:"walkBody",name:"walkBody",pkg:"go/parser",typ:$funcType([BE],[],false)}];DK.methods=[{prop:"init",name:"init",pkg:"go/parser",typ:$funcType([DE,$String,DC,AI],[],false)},{prop:"allowGenerics",name:"allowGenerics",pkg:"go/parser",typ:$funcType([],[$Bool],false)},{prop:"allowTypeSets",name:"allowTypeSets",pkg:"go/parser",typ:$funcType([],[$Bool],false)},{prop:"printTrace",name:"printTrace",pkg:"go/parser",typ:$funcType([AU],[],true)},{prop:"next0",name:"next0",pkg:"go/parser",typ:$funcType([],[],false)},{prop:"consumeComment",name:"consumeComment",pkg:"go/parser",typ:$funcType([],[BY,$Int],false)},{prop:"consumeCommentGroup",name:"consumeCommentGroup",pkg:"go/parser",typ:$funcType([$Int],[BZ,$Int],false)},{prop:"next",name:"next",pkg:"go/parser",typ:$funcType([],[],false)},{prop:"error",name:"error",pkg:"go/parser",typ:$funcType([C.Pos,$String],[],false)},{prop:"errorExpected",name:"errorExpected",pkg:"go/parser",typ:$funcType([C.Pos,$String],[],false)},{prop:"expect",name:"expect",pkg:"go/parser",typ:$funcType([C.Token],[C.Pos],false)},{prop:"expect2",name:"expect2",pkg:"go/parser",typ:$funcType([C.Token],[C.Pos],false)},{prop:"expectClosing",name:"expectClosing",pkg:"go/parser",typ:$funcType([C.Token,$String],[C.Pos],false)},{prop:"expectSemi",name:"expectSemi",pkg:"go/parser",typ:$funcType([],[],false)},{prop:"atComma",name:"atComma",pkg:"go/parser",typ:$funcType([$String,C.Token],[$Bool],false)},{prop:"advance",name:"advance",pkg:"go/parser",typ:$funcType([DJ],[],false)},{prop:"safePos",name:"safePos",pkg:"go/parser",typ:$funcType([C.Pos],[C.Pos],false)},{prop:"parseIdent",name:"parseIdent",pkg:"go/parser",typ:$funcType([],[AP],false)},{prop:"parseIdentList",name:"parseIdentList",pkg:"go/parser",typ:$funcType([],[AQ],false)},{prop:"parseExprList",name:"parseExprList",pkg:"go/parser",typ:$funcType([],[BQ],false)},{prop:"parseList",name:"parseList",pkg:"go/parser",typ:$funcType([$Bool],[BQ],false)},{prop:"parseType",name:"parseType",pkg:"go/parser",typ:$funcType([],[B.Expr],false)},{prop:"parseQualifiedIdent",name:"parseQualifiedIdent",pkg:"go/parser",typ:$funcType([AP],[B.Expr],false)},{prop:"parseTypeName",name:"parseTypeName",pkg:"go/parser",typ:$funcType([AP],[B.Expr],false)},{prop:"parseArrayType",name:"parseArrayType",pkg:"go/parser",typ:$funcType([C.Pos,B.Expr],[CB],false)},{prop:"parseArrayFieldOrTypeInstance",name:"parseArrayFieldOrTypeInstance",pkg:"go/parser",typ:$funcType([AP],[AP,B.Expr],false)},{prop:"parseFieldDecl",name:"parseFieldDecl",pkg:"go/parser",typ:$funcType([],[CD],false)},{prop:"parseStructType",name:"parseStructType",pkg:"go/parser",typ:$funcType([],[AX],false)},{prop:"parsePointerType",name:"parsePointerType",pkg:"go/parser",typ:$funcType([],[BU],false)},{prop:"parseDotsType",name:"parseDotsType",pkg:"go/parser",typ:$funcType([],[CF],false)},{prop:"parseParamDecl",name:"parseParamDecl",pkg:"go/parser",typ:$funcType([AP,$Bool],[AB],false)},{prop:"parseParameterList",name:"parseParameterList",pkg:"go/parser",typ:$funcType([AP,B.Expr,C.Token],[CE],false)},{prop:"parseParameters",name:"parseParameters",pkg:"go/parser",typ:$funcType([$Bool],[BT,BT],false)},{prop:"parseResult",name:"parseResult",pkg:"go/parser",typ:$funcType([],[BT],false)},{prop:"parseFuncType",name:"parseFuncType",pkg:"go/parser",typ:$funcType([],[AY],false)},{prop:"parseMethodSpec",name:"parseMethodSpec",pkg:"go/parser",typ:$funcType([],[CD],false)},{prop:"embeddedElem",name:"embeddedElem",pkg:"go/parser",typ:$funcType([B.Expr],[B.Expr],false)},{prop:"embeddedTerm",name:"embeddedTerm",pkg:"go/parser",typ:$funcType([],[B.Expr],false)},{prop:"parseInterfaceType",name:"parseInterfaceType",pkg:"go/parser",typ:$funcType([],[BA],false)},{prop:"parseMapType",name:"parseMapType",pkg:"go/parser",typ:$funcType([],[CH],false)},{prop:"parseChanType",name:"parseChanType",pkg:"go/parser",typ:$funcType([],[CI],false)},{prop:"parseTypeInstance",name:"parseTypeInstance",pkg:"go/parser",typ:$funcType([B.Expr],[B.Expr],false)},{prop:"tryIdentOrType",name:"tryIdentOrType",pkg:"go/parser",typ:$funcType([],[B.Expr],false)},{prop:"parseStmtList",name:"parseStmtList",pkg:"go/parser",typ:$funcType([],[CJ],false)},{prop:"parseBody",name:"parseBody",pkg:"go/parser",typ:$funcType([],[BE],false)},{prop:"parseBlockStmt",name:"parseBlockStmt",pkg:"go/parser",typ:$funcType([],[BE],false)},{prop:"parseFuncTypeOrLit",name:"parseFuncTypeOrLit",pkg:"go/parser",typ:$funcType([],[B.Expr],false)},{prop:"parseOperand",name:"parseOperand",pkg:"go/parser",typ:$funcType([],[B.Expr],false)},{prop:"parseSelector",name:"parseSelector",pkg:"go/parser",typ:$funcType([B.Expr],[B.Expr],false)},{prop:"parseTypeAssertion",name:"parseTypeAssertion",pkg:"go/parser",typ:$funcType([B.Expr],[B.Expr],false)},{prop:"parseIndexOrSliceOrInstance",name:"parseIndexOrSliceOrInstance",pkg:"go/parser",typ:$funcType([B.Expr],[B.Expr],false)},{prop:"parseCallOrConversion",name:"parseCallOrConversion",pkg:"go/parser",typ:$funcType([B.Expr],[CM],false)},{prop:"parseValue",name:"parseValue",pkg:"go/parser",typ:$funcType([],[B.Expr],false)},{prop:"parseElement",name:"parseElement",pkg:"go/parser",typ:$funcType([],[B.Expr],false)},{prop:"parseElementList",name:"parseElementList",pkg:"go/parser",typ:$funcType([],[BQ],false)},{prop:"parseLiteralValue",name:"parseLiteralValue",pkg:"go/parser",typ:$funcType([B.Expr],[B.Expr],false)},{prop:"checkExpr",name:"checkExpr",pkg:"go/parser",typ:$funcType([B.Expr],[B.Expr],false)},{prop:"checkExprOrType",name:"checkExprOrType",pkg:"go/parser",typ:$funcType([B.Expr],[B.Expr],false)},{prop:"parsePrimaryExpr",name:"parsePrimaryExpr",pkg:"go/parser",typ:$funcType([B.Expr],[B.Expr],false)},{prop:"parseUnaryExpr",name:"parseUnaryExpr",pkg:"go/parser",typ:$funcType([],[B.Expr],false)},{prop:"tokPrec",name:"tokPrec",pkg:"go/parser",typ:$funcType([],[C.Token,$Int],false)},{prop:"parseBinaryExpr",name:"parseBinaryExpr",pkg:"go/parser",typ:$funcType([B.Expr,$Int,$Bool],[B.Expr],false)},{prop:"checkBinaryExpr",name:"checkBinaryExpr",pkg:"go/parser",typ:$funcType([B.Expr],[],false)},{prop:"parseExpr",name:"parseExpr",pkg:"go/parser",typ:$funcType([],[B.Expr],false)},{prop:"parseRhs",name:"parseRhs",pkg:"go/parser",typ:$funcType([],[B.Expr],false)},{prop:"parseRhsOrType",name:"parseRhsOrType",pkg:"go/parser",typ:$funcType([],[B.Expr],false)},{prop:"parseSimpleStmt",name:"parseSimpleStmt",pkg:"go/parser",typ:$funcType([$Int],[B.Stmt,$Bool],false)},{prop:"checkAssignStmt",name:"checkAssignStmt",pkg:"go/parser",typ:$funcType([BC],[],false)},{prop:"parseCallExpr",name:"parseCallExpr",pkg:"go/parser",typ:$funcType([$String],[CM],false)},{prop:"parseGoStmt",name:"parseGoStmt",pkg:"go/parser",typ:$funcType([],[B.Stmt],false)},{prop:"parseDeferStmt",name:"parseDeferStmt",pkg:"go/parser",typ:$funcType([],[B.Stmt],false)},{prop:"parseReturnStmt",name:"parseReturnStmt",pkg:"go/parser",typ:$funcType([],[CT],false)},{prop:"parseBranchStmt",name:"parseBranchStmt",pkg:"go/parser",typ:$funcType([C.Token],[BD],false)},{prop:"makeExpr",name:"makeExpr",pkg:"go/parser",typ:$funcType([B.Stmt,$String],[B.Expr],false)},{prop:"parseIfHeader",name:"parseIfHeader",pkg:"go/parser",typ:$funcType([],[B.Stmt,B.Expr],false)},{prop:"parseIfStmt",name:"parseIfStmt",pkg:"go/parser",typ:$funcType([],[BF],false)},{prop:"parseTypeList",name:"parseTypeList",pkg:"go/parser",typ:$funcType([],[BQ],false)},{prop:"parseCaseClause",name:"parseCaseClause",pkg:"go/parser",typ:$funcType([$Bool],[BG],false)},{prop:"isTypeSwitchGuard",name:"isTypeSwitchGuard",pkg:"go/parser",typ:$funcType([B.Stmt],[$Bool],false)},{prop:"parseSwitchStmt",name:"parseSwitchStmt",pkg:"go/parser",typ:$funcType([],[B.Stmt],false)},{prop:"parseCommClause",name:"parseCommClause",pkg:"go/parser",typ:$funcType([],[BJ],false)},{prop:"parseSelectStmt",name:"parseSelectStmt",pkg:"go/parser",typ:$funcType([],[BK],false)},{prop:"parseForStmt",name:"parseForStmt",pkg:"go/parser",typ:$funcType([],[B.Stmt],false)},{prop:"parseStmt",name:"parseStmt",pkg:"go/parser",typ:$funcType([],[B.Stmt],false)},{prop:"parseImportSpec",name:"parseImportSpec",pkg:"go/parser",typ:$funcType([BZ,C.Pos,C.Token,$Int],[B.Spec],false)},{prop:"parseValueSpec",name:"parseValueSpec",pkg:"go/parser",typ:$funcType([BZ,C.Pos,C.Token,$Int],[B.Spec],false)},{prop:"parseGenericType",name:"parseGenericType",pkg:"go/parser",typ:$funcType([BS,C.Pos,AP,B.Expr],[],false)},{prop:"parseTypeSpec",name:"parseTypeSpec",pkg:"go/parser",typ:$funcType([BZ,C.Pos,C.Token,$Int],[B.Spec],false)},{prop:"parseGenDecl",name:"parseGenDecl",pkg:"go/parser",typ:$funcType([C.Token,AE],[BN],false)},{prop:"parseFuncDecl",name:"parseFuncDecl",pkg:"go/parser",typ:$funcType([],[BO],false)},{prop:"parseDecl",name:"parseDecl",pkg:"go/parser",typ:$funcType([DJ],[B.Decl],false)},{prop:"parseFile",name:"parseFile",pkg:"go/parser",typ:$funcType([],[CX],false)}];P.init("go/parser",[{prop:"handle",name:"handle",embedded:false,exported:false,typ:AO,tag:""},{prop:"declErr",name:"declErr",embedded:false,exported:false,typ:DI,tag:""},{prop:"pkgScope",name:"pkgScope",embedded:false,exported:false,typ:AN,tag:""},{prop:"topScope",name:"topScope",embedded:false,exported:false,typ:AN,tag:""},{prop:"unresolved",name:"unresolved",embedded:false,exported:false,typ:AQ,tag:""},{prop:"depth",name:"depth",embedded:false,exported:false,typ:$Int,tag:""},{prop:"labelScope",name:"labelScope",embedded:false,exported:false,typ:AN,tag:""},{prop:"targetStack",name:"targetStack",embedded:false,exported:false,typ:AR,tag:""}]);R.init("go/parser",[{prop:"file",name:"file",embedded:false,exported:false,typ:AO,tag:""},{prop:"errors",name:"errors",embedded:false,exported:false,typ:F.ErrorList,tag:""},{prop:"scanner",name:"scanner",embedded:false,exported:false,typ:F.Scanner,tag:""},{prop:"mode",name:"mode",embedded:false,exported:false,typ:AI,tag:""},{prop:"trace",name:"trace",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"indent",name:"indent",embedded:false,exported:false,typ:$Int,tag:""},{prop:"comments",name:"comments",embedded:false,exported:false,typ:DB,tag:""},{prop:"leadComment",name:"leadComment",embedded:false,exported:false,typ:BZ,tag:""},{prop:"lineComment",name:"lineComment",embedded:false,exported:false,typ:BZ,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"tok",name:"tok",embedded:false,exported:false,typ:C.Token,tag:""},{prop:"lit",name:"lit",embedded:false,exported:false,typ:$String,tag:""},{prop:"syncPos",name:"syncPos",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"syncCnt",name:"syncCnt",embedded:false,exported:false,typ:$Int,tag:""},{prop:"exprLev",name:"exprLev",embedded:false,exported:false,typ:$Int,tag:""},{prop:"inRhs",name:"inRhs",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"imports",name:"imports",embedded:false,exported:false,typ:DA,tag:""},{prop:"nestLev",name:"nestLev",embedded:false,exported:false,typ:$Int,tag:""}]);W.init("go/parser",[{prop:"pos",name:"pos",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"msg",name:"msg",embedded:false,exported:false,typ:$String,tag:""}]);AB.init("go/parser",[{prop:"name",name:"name",embedded:false,exported:false,typ:AP,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:B.Expr,tag:""}]);AE.init([BZ,C.Pos,C.Token,$Int],[B.Spec],false);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=I.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}Q=new B.Object.ptr(0,"",$ifaceNil,$ifaceNil,$ifaceNil);Y=$makeMap(C.Token.keyFor,[{k:61,v:true},{k:64,v:true},{k:65,v:true},{k:67,v:true},{k:69,v:true},{k:70,v:true},{k:72,v:true},{k:73,v:true},{k:74,v:true},{k:80,v:true},{k:81,v:true},{k:83,v:true},{k:84,v:true},{k:85,v:true}]);Z=$makeMap(C.Token.keyFor,[{k:64,v:true},{k:84,v:true},{k:85,v:true}]);AA=$makeMap(C.Token.keyFor,[{k:52,v:true},{k:58,v:true},{k:57,v:true},{k:54,v:true},{k:55,v:true},{k:56,v:true}]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["go/build/constraint"]=(function(){var $pkg={},$init,A,B,C,D,E,F,H,J,M,P,U,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,Q,AA,G,I,K,L,N,O,R,S,T,V,W,X,Y,Z,AB,AC,AD,AE;A=$packages["errors"];B=$packages["strings"];C=$packages["unicode"];D=$packages["unicode/utf8"];E=$pkg.Expr=$newType(8,$kindInterface,"constraint.Expr",true,"go/build/constraint",true,null);F=$pkg.TagExpr=$newType(0,$kindStruct,"constraint.TagExpr",true,"go/build/constraint",true,function(Tag_){this.$val=this;if(arguments.length===0){this.Tag="";return;}this.Tag=Tag_;});H=$pkg.NotExpr=$newType(0,$kindStruct,"constraint.NotExpr",true,"go/build/constraint",true,function(X_){this.$val=this;if(arguments.length===0){this.X=$ifaceNil;return;}this.X=X_;});J=$pkg.AndExpr=$newType(0,$kindStruct,"constraint.AndExpr",true,"go/build/constraint",true,function(X_,Y_){this.$val=this;if(arguments.length===0){this.X=$ifaceNil;this.Y=$ifaceNil;return;}this.X=X_;this.Y=Y_;});M=$pkg.OrExpr=$newType(0,$kindStruct,"constraint.OrExpr",true,"go/build/constraint",true,function(X_,Y_){this.$val=this;if(arguments.length===0){this.X=$ifaceNil;this.Y=$ifaceNil;return;}this.X=X_;this.Y=Y_;});P=$pkg.SyntaxError=$newType(0,$kindStruct,"constraint.SyntaxError",true,"go/build/constraint",true,function(Offset_,Err_){this.$val=this;if(arguments.length===0){this.Offset=0;this.Err="";return;}this.Offset=Offset_;this.Err=Err_;});U=$pkg.exprParser=$newType(0,$kindStruct,"constraint.exprParser",true,"go/build/constraint",false,function(s_,i_,tok_,isTag_,pos_){this.$val=this;if(arguments.length===0){this.s="";this.i=0;this.tok="";this.isTag=false;this.pos=0;return;}this.s=s_;this.i=i_;this.tok=tok_;this.isTag=isTag_;this.pos=pos_;});AF=$ptrType(J);AG=$ptrType(M);AH=$ptrType(P);AI=$sliceType(E);AJ=$sliceType(AI);AK=$sliceType(AJ);AL=$ptrType(F);AM=$ptrType(H);AN=$sliceType($String);AO=$funcType([$String],[$Bool],false);AP=$ptrType(U);F.ptr.prototype.Eval=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a(b.Tag);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:F.ptr.prototype.Eval,$c:true,$r,a,b,c,d,$s};return $f;};F.prototype.Eval=function(a){return this.$val.Eval(a);};F.ptr.prototype.String=function(){var a;a=this;return a.Tag;};F.prototype.String=function(){return this.$val.String();};G=function(a){var a;return new F.ptr(a);};H.ptr.prototype.Eval=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.X.Eval(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=!c;$s=2;case 2:return d;}return;}var $f={$blk:H.ptr.prototype.Eval,$c:true,$r,a,b,c,d,$s};return $f;};H.prototype.Eval=function(a){return this.$val.Eval(a);};H.ptr.prototype.String=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.X.String();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=a.X;if($assertType(d,AF,true)[1]||$assertType(d,AG,true)[1]){c="("+c+")";}$s=-1;return"!"+c;}return;}var $f={$blk:H.ptr.prototype.String,$c:true,$r,a,b,c,d,$s};return $f;};H.prototype.String=function(){return this.$val.String();};I=function(a){var a;return new H.ptr(a);};J.ptr.prototype.Eval=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.X.Eval(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=b.Y.Eval(a);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=-1;return d&&f;}return;}var $f={$blk:J.ptr.prototype.Eval,$c:true,$r,a,b,c,d,e,f,$s};return $f;};J.prototype.Eval=function(a){return this.$val.Eval(a);};J.ptr.prototype.String=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=K(a.X);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=K(a.Y);$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=b+" && "+c;$s=3;case 3:return d;}return;}var $f={$blk:J.ptr.prototype.String,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.String=function(){return this.$val.String();};K=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a.String();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=$assertType(a,AG,true);e=d[1];if(e){c="("+c+")";}$s=-1;return c;}return;}var $f={$blk:K,$c:true,$r,a,b,c,d,e,$s};return $f;};L=function(a,b){var a,b;return new J.ptr(a,b);};M.ptr.prototype.Eval=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.X.Eval(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=b.Y.Eval(a);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=-1;return d||f;}return;}var $f={$blk:M.ptr.prototype.Eval,$c:true,$r,a,b,c,d,e,f,$s};return $f;};M.prototype.Eval=function(a){return this.$val.Eval(a);};M.ptr.prototype.String=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=N(a.X);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=N(a.Y);$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=b+" || "+c;$s=3;case 3:return d;}return;}var $f={$blk:M.ptr.prototype.String,$c:true,$r,a,b,c,d,$s};return $f;};M.prototype.String=function(){return this.$val.String();};N=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a.String();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=$assertType(a,AF,true);e=d[1];if(e){c="("+c+")";}$s=-1;return c;}return;}var $f={$blk:N,$c:true,$r,a,b,c,d,e,$s};return $f;};O=function(a,b){var a,b;return new M.ptr(a,b);};P.ptr.prototype.Error=function(){var a;a=this;return a.Err;};P.prototype.Error=function(){return this.$val.Error();};R=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:c=T(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];if(e){$s=2;continue;}$s=3;continue;case 2:f=V(d);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=5;case 5:return g;case 3:i=X(a);$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[0];k=h[1];if(k){$s=7;continue;}$s=8;continue;case 7:l=Y(j);$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=[l,$ifaceNil];$s=10;case 10:return m;case 8:$s=-1;return[$ifaceNil,Q];}return;}var $f={$blk:R,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};$pkg.Parse=R;S=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:c=T(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[1];$s=-1;return d;}return;}var $f={$blk:S,$c:true,$r,a,b,c,d,$s};return $f;};$pkg.IsGoBuild=S;T=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b="";c=false;if(a.length>0&&(a.charCodeAt((a.length-1>>0))===10)){a=$substring(a,0,(a.length-1>>0));}if(B.Contains(a,"\n")){d="";e=false;b=d;c=e;$s=-1;return[b,c];}if(!B.HasPrefix(a,"//go:build")){f="";g=false;b=f;c=g;$s=-1;return[b,c];}h=B.TrimSpace(a);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}a=h;a=$substring(a,10);i=B.TrimSpace(a);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if((a.length===j.length)&&!(a==="")){k="";l=false;b=k;c=l;$s=-1;return[b,c];}m=j;n=true;b=m;c=n;$s=-1;return[b,c];}return;}var $f={$blk:T,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};V=function(a){var{a,b,c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=$ifaceNil;b[0]=$ifaceNil;$deferred.push([(function(b){return function(){var d,e,f,g;d=$recover();if(!($interfaceIsEqual(d,$ifaceNil))){e=$assertType(d,AH,true);f=e[0];g=e[1];if(g){b[0]=f;return;}$panic(d);}};})(b),[]]);d=new U.ptr(a,0,"",false,0);e=d.or();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}c=e;if(!(d.tok==="")){$panic(new P.ptr(d.pos,"unexpected token "+d.tok));}f=c;g=$ifaceNil;c=f;b[0]=g;h=[c,b[0]];$s=2;case 2:return h;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[c,b[0]];}if($curGoroutine.asleep){var $f={$blk:V,$c:true,$r,a,b,c,d,e,f,g,h,$s,$deferred};return $f;}}};U.ptr.prototype.or=function(){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.and();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;case 2:if(!(a.tok==="||")){$s=3;continue;}d=c;e=a.and();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=O(d,f);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}c=g;$s=2;continue;case 3:$s=-1;return c;}return;}var $f={$blk:U.ptr.prototype.or,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};U.prototype.or=function(){return this.$val.or();};U.ptr.prototype.and=function(){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.not();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;case 2:if(!(a.tok==="&&")){$s=3;continue;}d=c;e=a.not();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=L(d,f);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}c=g;$s=2;continue;case 3:$s=-1;return c;}return;}var $f={$blk:U.ptr.prototype.and,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};U.prototype.and=function(){return this.$val.and();};U.ptr.prototype.not=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;a.lex();if(a.tok==="!"){$s=1;continue;}$s=2;continue;case 1:a.lex();if(a.tok==="!"){$panic(new P.ptr(a.pos,"double negation not allowed"));}b=a.atom();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=I(b);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=5;case 5:return d;case 2:e=a.atom();$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=7;case 7:return f;}return;}var $f={$blk:U.ptr.prototype.not,$c:true,$r,a,b,c,d,e,f,$s};return $f;};U.prototype.not=function(){return this.$val.not();};U.ptr.prototype.atom=function(){var{a,b,c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=this;if(a.tok==="("){$s=1;continue;}$s=2;continue;case 1:b=a.pos;$deferred.push([(function(){var c,d,e,f;c=$recover();if(!($interfaceIsEqual(c,$ifaceNil))){d=$assertType(c,AH,true);e=d[0];f=d[1];if(f&&e.Err==="unexpected end of expression"){e.Err="missing close paren";}$panic(c);}}),[]]);c=a.or();$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!(a.tok===")")){$panic(new P.ptr(b,"missing close paren"));}a.lex();e=d;$s=4;case 4:return e;case 2:if(!a.isTag){if(a.tok===""){$panic(new P.ptr(a.pos,"unexpected end of expression"));}$panic(new P.ptr(a.pos,"unexpected token "+a.tok));}f=a.tok;a.lex();g=G(f);$s=5;case 5:return g;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:U.ptr.prototype.atom,$c:true,$r,a,b,c,d,e,f,g,$s,$deferred};return $f;}}};U.prototype.atom=function(){return this.$val.atom();};U.ptr.prototype.lex=function(){var a,b,c,d,e,f,g,h,i,j;a=this;a.isTag=false;while(true){if(!(a.i>0;}if(a.i>=a.s.length){a.tok="";a.pos=a.i;return;}b=a.s.charCodeAt(a.i);if((b===(40))||(b===(41))||(b===(33))){a.pos=a.i;a.i=a.i+(1)>>0;a.tok=$substring(a.s,a.pos,a.i);return;}else if((b===(38))||(b===(124))){if((a.i+1>>0)>=a.s.length||!((a.s.charCodeAt((a.i+1>>0))===a.s.charCodeAt(a.i)))){$panic(new P.ptr(a.i,"invalid syntax at "+($encodeRune(((a.s.charCodeAt(a.i)>>0))))));}a.pos=a.i;a.i=a.i+(2)>>0;a.tok=$substring(a.s,a.pos,a.i);return;}c=$substring(a.s,a.i);d=c;e=0;while(true){if(!(e>0;a.tok=$substring(a.s,a.pos,a.i);a.isTag=true;return;};U.prototype.lex=function(){return this.$val.lex();};W=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:c=X(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[1];$s=-1;return d;}return;}var $f={$blk:W,$c:true,$r,a,b,c,d,$s};return $f;};$pkg.IsPlusBuild=W;X=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b="";c=false;if(a.length>0&&(a.charCodeAt((a.length-1>>0))===10)){a=$substring(a,0,(a.length-1>>0));}if(B.Contains(a,"\n")){d="";e=false;b=d;c=e;$s=-1;return[b,c];}if(!B.HasPrefix(a,"//")){f="";g=false;b=f;c=g;$s=-1;return[b,c];}a=$substring(a,2);h=B.TrimSpace(a);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}a=h;if(!B.HasPrefix(a,"+build")){i="";j=false;b=i;c=j;$s=-1;return[b,c];}a=$substring(a,6);k=B.TrimSpace(a);$s=2;case 2:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if((a.length===l.length)&&!(a==="")){m="";n=false;b=m;c=n;$s=-1;return[b,c];}o=l;p=true;b=o;c=p;$s=-1;return[b,c];}return;}var $f={$blk:X,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};Y=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$ifaceNil;d=B.Fields(a);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=0;case 2:if(!(e=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+e]);g=$ifaceNil;h=B.Split(f,",");i=0;while(true){if(!(i=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]);k=$ifaceNil;l=false;if(B.HasPrefix(j,"!!")||j==="!"){k=G("ignore");}else{if(B.HasPrefix(j,"!")){l=true;j=$substring(j,1);}if(Z(j)){k=G(j);}else{k=G("ignore");}if(l){k=I(k);}}if($interfaceIsEqual(g,$ifaceNil)){g=k;}else{g=L(g,k);}i++;}if($interfaceIsEqual(b,$ifaceNil)){b=g;}else{b=O(b,g);}e++;$s=2;continue;case 3:if($interfaceIsEqual(b,$ifaceNil)){b=G("ignore");}$s=-1;return b;}return;}var $f={$blk:Y,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};Z=function(a){var a,b,c,d,e;if(a===""){return false;}b=a;c=0;while(true){if(!(c=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=AJ.nil;g=AE(AI.nil,e);h=0;while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);j=AI.nil;k=AD(AI.nil,i);l=0;while(true){if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);n=m;if($assertType(n,AL,true)[1]||$assertType(n,AM,true)[1]){j=$append(j,m);}else{$s=-1;return[AN.nil,AA];}l++;}f=$append(f,j);h++;}b=$append(b,f);d++;}o=0;p=b;q=0;while(true){if(!(q=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);if(o=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]);s=$appendSlice(s,(0>=v.$length?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+0]));u++;}b=new AK([new AJ([s])]);}w=AN.nil;x=b;y=0;case 1:if(!(y=x.$length)?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+y]);aa="// +build";ab=z;ac=0;case 3:if(!(ac=ab.$length)?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+ac]);ae="";af=ad;ag=0;case 5:if(!(ag=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ag]);if(ah>0){ae=ae+(",");}aj=ai.String();$s=7;case 7:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ae=ae+(aj);ag++;$s=5;continue;case 6:aa=aa+(" "+ae);ac++;$s=3;continue;case 4:w=$append(w,aa);y++;$s=1;continue;case 2:$s=-1;return[w,$ifaceNil];}return;}var $f={$blk:AB,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.PlusBuildLines=AB;AC=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;c=a;if($assertType(c,AM,true)[1]){e=c.$val;i=$assertType(e.X,AL,true);j=i[1];if(j&&!b){return e;}return AC(e.X,!b);}else if($assertType(c,AL,true)[1]){f=c.$val;if(b){return new H.ptr(f);}return f;}else if($assertType(c,AF,true)[1]){g=c.$val;k=AC(g.X,b);l=AC(g.Y,b);if(b){return O(k,l);}if($interfaceIsEqual(k,g.X)&&$interfaceIsEqual(l,g.Y)){return g;}return L(k,l);}else if($assertType(c,AG,true)[1]){h=c.$val;m=AC(h.X,b);n=AC(h.Y,b);if(b){return L(m,n);}if($interfaceIsEqual(m,h.X)&&$interfaceIsEqual(n,h.Y)){return h;}return O(m,n);}else{d=c;return d;}};AD=function(a,b){var a,b,c,d,e;c=$assertType(b,AF,true);d=c[0];e=c[1];if(e){a=AD(a,d.X);a=AD(a,d.Y);return a;}return $append(a,b);};AE=function(a,b){var a,b,c,d,e;c=$assertType(b,AG,true);d=c[0];e=c[1];if(e){a=AE(a,d.X);a=AE(a,d.Y);return a;}return $append(a,b);};AL.methods=[{prop:"isExpr",name:"isExpr",pkg:"go/build/constraint",typ:$funcType([],[],false)},{prop:"Eval",name:"Eval",pkg:"",typ:$funcType([AO],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];AM.methods=[{prop:"isExpr",name:"isExpr",pkg:"go/build/constraint",typ:$funcType([],[],false)},{prop:"Eval",name:"Eval",pkg:"",typ:$funcType([AO],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];AF.methods=[{prop:"isExpr",name:"isExpr",pkg:"go/build/constraint",typ:$funcType([],[],false)},{prop:"Eval",name:"Eval",pkg:"",typ:$funcType([AO],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];AG.methods=[{prop:"isExpr",name:"isExpr",pkg:"go/build/constraint",typ:$funcType([],[],false)},{prop:"Eval",name:"Eval",pkg:"",typ:$funcType([AO],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];AH.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];AP.methods=[{prop:"or",name:"or",pkg:"go/build/constraint",typ:$funcType([],[E],false)},{prop:"and",name:"and",pkg:"go/build/constraint",typ:$funcType([],[E],false)},{prop:"not",name:"not",pkg:"go/build/constraint",typ:$funcType([],[E],false)},{prop:"atom",name:"atom",pkg:"go/build/constraint",typ:$funcType([],[E],false)},{prop:"lex",name:"lex",pkg:"go/build/constraint",typ:$funcType([],[],false)}];E.init([{prop:"Eval",name:"Eval",pkg:"",typ:$funcType([AO],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"isExpr",name:"isExpr",pkg:"go/build/constraint",typ:$funcType([],[],false)}]);F.init("",[{prop:"Tag",name:"Tag",embedded:false,exported:true,typ:$String,tag:""}]);H.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:E,tag:""}]);J.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:E,tag:""},{prop:"Y",name:"Y",embedded:false,exported:true,typ:E,tag:""}]);M.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:E,tag:""},{prop:"Y",name:"Y",embedded:false,exported:true,typ:E,tag:""}]);P.init("",[{prop:"Offset",name:"Offset",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Err",name:"Err",embedded:false,exported:true,typ:$String,tag:""}]);U.init("go/build/constraint",[{prop:"s",name:"s",embedded:false,exported:false,typ:$String,tag:""},{prop:"i",name:"i",embedded:false,exported:false,typ:$Int,tag:""},{prop:"tok",name:"tok",embedded:false,exported:false,typ:$String,tag:""},{prop:"isTag",name:"isTag",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:$Int,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}Q=A.New("not a build constraint");AA=A.New("expression too complex for // +build lines");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["text/tabwriter"]=(function(){var $pkg={},$init,A,B,C,D,E,K,L,M,N,O,P,Q,R,F,G,H,I,J;A=$packages["io"];B=$packages["unicode/utf8"];C=$pkg.cell=$newType(0,$kindStruct,"tabwriter.cell",true,"text/tabwriter",false,function(size_,width_,htab_){this.$val=this;if(arguments.length===0){this.size=0;this.width=0;this.htab=false;return;}this.size=size_;this.width=width_;this.htab=htab_;});D=$pkg.Writer=$newType(0,$kindStruct,"tabwriter.Writer",true,"text/tabwriter",true,function(output_,minwidth_,tabwidth_,padding_,padbytes_,flags_,buf_,pos_,cell_,endChar_,lines_,widths_){this.$val=this;if(arguments.length===0){this.output=$ifaceNil;this.minwidth=0;this.tabwidth=0;this.padding=0;this.padbytes=O.zero();this.flags=0;this.buf=K.nil;this.pos=0;this.cell=new C.ptr(0,0,false);this.endChar=0;this.lines=P.nil;this.widths=Q.nil;return;}this.output=output_;this.minwidth=minwidth_;this.tabwidth=tabwidth_;this.padding=padding_;this.padbytes=padbytes_;this.flags=flags_;this.buf=buf_;this.pos=pos_;this.cell=cell_;this.endChar=endChar_;this.lines=lines_;this.widths=widths_;});E=$pkg.osError=$newType(0,$kindStruct,"tabwriter.osError",true,"text/tabwriter",false,function(err_){this.$val=this;if(arguments.length===0){this.err=$ifaceNil;return;}this.err=err_;});K=$sliceType($Uint8);L=$sliceType(C);M=$ptrType(L);N=$ptrType($error);O=$arrayType($Uint8,8);P=$sliceType(L);Q=$sliceType($Int);R=$ptrType(D);D.ptr.prototype.addLine=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;b=this;c=b.lines.$length+1>>0;if(c<=b.lines.$capacity){b.lines=$subslice(b.lines,0,c);(f=b.lines,g=c-1>>0,((g<0||g>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]=$subslice((d=b.lines,e=c-1>>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e])),0,0)));}else{b.lines=$append(b.lines,L.nil);}if(!a){h=b.lines.$length;if(h>=2){k=(i=b.lines,j=h-2>>0,((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j])).$length;if(k>(l=b.lines,m=h-1>>0,((m<0||m>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m])).$capacity){(n=b.lines,o=h-1>>0,((o<0||o>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]=$makeSlice(L,0,k)));}}}};D.prototype.addLine=function(a){return this.$val.addLine(a);};D.ptr.prototype.reset=function(){var a;a=this;a.buf=$subslice(a.buf,0,0);a.pos=0;C.copy(a.cell,new C.ptr(0,0,false));a.endChar=0;a.lines=$subslice(a.lines,0,0);a.widths=$subslice(a.widths,0,0);a.addLine(true);};D.prototype.reset=function(){return this.$val.reset();};D.ptr.prototype.Init=function(a,b,c,d,e,f){var a,b,c,d,e,f,g,h,i,j,k;g=this;if(b<0||c<0||d<0){$panic(new $String("negative minwidth, tabwidth, or padding"));}g.output=a;g.minwidth=b;g.tabwidth=c;g.padding=d;h=g.padbytes;i=0;while(true){if(!(i<8)){break;}j=i;(k=g.padbytes,((j<0||j>=k.length)?($throwRuntimeError("index out of range"),undefined):k[j]=e));i++;}if(e===9){f=(f&~(4))>>>0;}g.flags=f;g.reset();return g;};D.prototype.Init=function(a,b,c,d,e,f){return this.$val.Init(a,b,c,d,e,f);};D.ptr.prototype.write0=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;d=b.output.Write(a);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];if(!((e===a.$length))&&$interfaceIsEqual(f,$ifaceNil)){f=A.ErrShortWrite;}if(!($interfaceIsEqual(f,$ifaceNil))){$panic((g=new E.ptr(f),new g.constructor.elem(g)));}$s=-1;return;}return;}var $f={$blk:D.ptr.prototype.write0,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};D.prototype.write0=function(a){return this.$val.write0(a);};D.ptr.prototype.writeN=function(a,b){var{a,b,c,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;case 1:if(!(b>a.$length)){$s=2;continue;}$r=c.write0(a);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=b-(a.$length)>>0;$s=1;continue;case 2:$r=c.write0($subslice(a,0,b));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:D.ptr.prototype.writeN,$c:true,$r,a,b,c,$s};return $f;};D.prototype.writeN=function(a,b){return this.$val.writeN(a,b);};D.ptr.prototype.writePadding=function(a,b,c){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if((d.padbytes[0]===9)||c){$s=1;continue;}$s=2;continue;case 1:if(d.tabwidth===0){$s=-1;return;}b=$imul((e=(((b+d.tabwidth>>0)-1>>0))/d.tabwidth,(e===e&&e!==1/0&&e!==-1/0)?e>>0:$throwRuntimeError("integer divide by zero")),d.tabwidth);f=b-a>>0;if(f<0){$panic(new $String("internal error"));}$r=d.writeN(G,(g=(((f+d.tabwidth>>0)-1>>0))/d.tabwidth,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero")));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 2:$r=d.writeN($subslice(new K(d.padbytes),0),b-a>>0);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:D.ptr.prototype.writePadding,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};D.prototype.writePadding=function(a,b,c){return this.$val.writePadding(a,b,c);};D.ptr.prototype.writeLines=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=0;e=this;d=a;f=b;case 1:if(!(f=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]));i=!((((e.flags&16)>>>0)===0));j=h;k=0;case 3:if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]),C);if(l>0&&!((((e.flags&32)>>>0)===0))){$s=5;continue;}$s=6;continue;case 5:$r=e.write0(H);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:if(m.size===0){$s=8;continue;}$s=9;continue;case 8:if(l=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+l])),i);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:$s=10;continue;case 9:i=false;if(((e.flags&4)>>>0)===0){$s=14;continue;}$s=15;continue;case 14:$r=e.write0($subslice(e.buf,d,(d+m.size>>0)));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=d+(m.size)>>0;if(l=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+l])),false);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 19:$s=16;continue;case 15:if(l=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+l])),false);$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 22:$r=e.write0($subslice(e.buf,d,(d+m.size>>0)));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=d+(m.size)>>0;case 16:case 10:k++;$s=3;continue;case 4:if((f+1>>0)===e.lines.$length){$s=25;continue;}$s=26;continue;case 25:$r=e.write0($subslice(e.buf,d,(d+e.cell.size>>0)));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=d+(e.cell.size)>>0;$s=27;continue;case 26:$r=e.write0(F);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 27:f=f+(1)>>0;$s=1;continue;case 2:$s=-1;return d;}return;}var $f={$blk:D.ptr.prototype.writeLines,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};D.prototype.writeLines=function(a,b,c){return this.$val.writeLines(a,b,c);};D.ptr.prototype.format=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=0;e=this;d=a;f=e.widths.$length;g=b;case 1:if(!(g=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+g]));if(f>=(i.$length-1>>0)){g=g+(1)>>0;$s=1;continue;}j=e.writeLines(d,b,g);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}d=j;b=g;k=e.minwidth;l=true;while(true){if(!(g=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+g]));if(f>=(i.$length-1>>0)){break;}n=$clone(((f<0||f>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+f]),C);o=n.width+e.padding>>0;if(o>k){k=o;}if(n.width>0||n.htab){l=false;}g=g+(1)>>0;}if(l&&!((((e.flags&8)>>>0)===0))){k=0;}e.widths=$append(e.widths,k);p=e.format(d,b,g);$s=4;case 4:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}d=p;e.widths=$subslice(e.widths,0,(e.widths.$length-1>>0));b=g;g=g+(1)>>0;$s=1;continue;case 2:q=e.writeLines(d,b,c);$s=5;case 5:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}d=q;r=d;$s=6;case 6:return r;}return;}var $f={$blk:D.ptr.prototype.format,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};D.prototype.format=function(a,b,c){return this.$val.format(a,b,c);};D.ptr.prototype.append=function(a){var a,b;b=this;b.buf=$appendSlice(b.buf,a);b.cell.size=b.cell.size+(a.$length)>>0;};D.prototype.append=function(a){return this.$val.append(a);};D.ptr.prototype.updateWidth=function(){var a;a=this;a.cell.width=a.cell.width+(B.RuneCount($subslice(a.buf,a.pos)))>>0;a.pos=a.buf.$length;};D.prototype.updateWidth=function(){return this.$val.updateWidth();};D.ptr.prototype.startEscape=function(a){var a,b,c;b=this;c=a;if(c===(255)){b.endChar=255;}else if(c===(60)){b.endChar=62;}else if(c===(38)){b.endChar=59;}};D.prototype.startEscape=function(a){return this.$val.startEscape(a);};D.ptr.prototype.endEscape=function(){var a,b;a=this;b=a.endChar;if(b===(255)){a.updateWidth();if(((a.flags&2)>>>0)===0){a.cell.width=a.cell.width-(2)>>0;}}else if(b===(62)){}else if(b===(59)){a.cell.width=a.cell.width+(1)>>0;}a.pos=a.buf.$length;a.endChar=0;};D.prototype.endEscape=function(){return this.$val.endEscape();};D.ptr.prototype.terminateCell=function(a){var a,b,c,d;b=this;b.cell.htab=a;d=(c=b.lines,$indexPtr(c.$array,c.$offset+(b.lines.$length-1>>0),M));d.$set($append(d.$get(),b.cell));C.copy(b.cell,new C.ptr(0,0,false));return d.$get().$length;};D.prototype.terminateCell=function(a){return this.$val.terminateCell(a);};D.ptr.prototype.handlePanic=function(a,b){var a,b,c,d,e,f,g;c=this;d=$recover();if(!($interfaceIsEqual(d,$ifaceNil))){if(b==="Flush"){c.reset();}e=$assertType(d,E,true);f=$clone(e[0],E);g=e[1];if(g){a.$set(f.err);return;}$panic(new $String("tabwriter: panic during "+b));}};D.prototype.handlePanic=function(a,b){return this.$val.handlePanic(a,b);};D.ptr.prototype.Flush=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.flush();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:D.ptr.prototype.Flush,$c:true,$r,a,b,c,$s};return $f;};D.prototype.Flush=function(){return this.$val.Flush();};D.ptr.prototype.flush=function(){var{a,b,c,$s,$deferred,$r,$c}=$restore(this,{});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=[a];a[0]=$ifaceNil;b=this;$deferred.push([$methodVal(b,"handlePanic"),[(a.$ptr||(a.$ptr=new N(function(){return this.$target[0];},function($v){this.$target[0]=$v;},a))),"Flush"]]);$r=b.flushNoDefers();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}a[0]=$ifaceNil;c=a[0];$s=2;case 2:return c;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return a[0];}if($curGoroutine.asleep){var $f={$blk:D.ptr.prototype.flush,$c:true,$r,a,b,c,$s,$deferred};return $f;}}};D.prototype.flush=function(){return this.$val.flush();};D.ptr.prototype.flushNoDefers=function(){var{a,b,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.cell.size>0){if(!((a.endChar===0))){a.endEscape();}a.terminateCell(false);}b=a.format(0,0,a.lines.$length);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}b;a.reset();$s=-1;return;}return;}var $f={$blk:D.ptr.prototype.flushNoDefers,$c:true,$r,a,b,$s};return $f;};D.prototype.flushNoDefers=function(){return this.$val.flushNoDefers();};D.ptr.prototype.Write=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=0;b[0]=$ifaceNil;d=this;$deferred.push([$methodVal(d,"handlePanic"),[(b.$ptr||(b.$ptr=new N(function(){return this.$target[0];},function($v){this.$target[0]=$v;},b))),"Write"]]);c=0;e=a;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(d.endChar===0){$s=3;continue;}$s=4;continue;case 3:i=h;if((i===(9))||(i===(11))||(i===(10))||(i===(12))){$s=7;continue;}if(i===(255)){$s=8;continue;}if((i===(60))||(i===(38))){$s=9;continue;}$s=10;continue;case 7:d.append($subslice(a,c,g));d.updateWidth();c=g+1>>0;j=d.terminateCell(h===9);if((h===10)||(h===12)){$s=11;continue;}$s=12;continue;case 11:d.addLine(h===12);if((h===12)||(j===1)){$s=13;continue;}$s=14;continue;case 13:$r=d.flushNoDefers();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if((h===12)&&!((((d.flags&32)>>>0)===0))){$s=16;continue;}$s=17;continue;case 16:$r=d.write0(I);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:case 14:case 12:$s=10;continue;case 8:d.append($subslice(a,c,g));d.updateWidth();c=g;if(!((((d.flags&2)>>>0)===0))){c=c+(1)>>0;}d.startEscape(255);$s=10;continue;case 9:if(!((((d.flags&1)>>>0)===0))){d.append($subslice(a,c,g));d.updateWidth();c=g;d.startEscape(h);}case 10:case 6:$s=5;continue;case 4:if(h===d.endChar){k=g+1>>0;if((h===255)&&!((((d.flags&2)>>>0)===0))){k=g;}d.append($subslice(a,c,k));c=g+1>>0;d.endEscape();}case 5:f++;$s=1;continue;case 2:d.append($subslice(a,c));c=a.$length;l=[c,b[0]];$s=19;case 19:return l;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[c,b[0]];}if($curGoroutine.asleep){var $f={$blk:D.ptr.prototype.Write,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s,$deferred};return $f;}}};D.prototype.Write=function(a){return this.$val.Write(a);};J=function(a,b,c,d,e,f){var a,b,c,d,e,f;return new D.ptr($ifaceNil,0,0,0,O.zero(),0,K.nil,0,new C.ptr(0,0,false),0,P.nil,Q.nil).Init(a,b,c,d,e,f);};$pkg.NewWriter=J;R.methods=[{prop:"addLine",name:"addLine",pkg:"text/tabwriter",typ:$funcType([$Bool],[],false)},{prop:"reset",name:"reset",pkg:"text/tabwriter",typ:$funcType([],[],false)},{prop:"Init",name:"Init",pkg:"",typ:$funcType([A.Writer,$Int,$Int,$Int,$Uint8,$Uint],[R],false)},{prop:"dump",name:"dump",pkg:"text/tabwriter",typ:$funcType([],[],false)},{prop:"write0",name:"write0",pkg:"text/tabwriter",typ:$funcType([K],[],false)},{prop:"writeN",name:"writeN",pkg:"text/tabwriter",typ:$funcType([K,$Int],[],false)},{prop:"writePadding",name:"writePadding",pkg:"text/tabwriter",typ:$funcType([$Int,$Int,$Bool],[],false)},{prop:"writeLines",name:"writeLines",pkg:"text/tabwriter",typ:$funcType([$Int,$Int,$Int],[$Int],false)},{prop:"format",name:"format",pkg:"text/tabwriter",typ:$funcType([$Int,$Int,$Int],[$Int],false)},{prop:"append",name:"append",pkg:"text/tabwriter",typ:$funcType([K],[],false)},{prop:"updateWidth",name:"updateWidth",pkg:"text/tabwriter",typ:$funcType([],[],false)},{prop:"startEscape",name:"startEscape",pkg:"text/tabwriter",typ:$funcType([$Uint8],[],false)},{prop:"endEscape",name:"endEscape",pkg:"text/tabwriter",typ:$funcType([],[],false)},{prop:"terminateCell",name:"terminateCell",pkg:"text/tabwriter",typ:$funcType([$Bool],[$Int],false)},{prop:"handlePanic",name:"handlePanic",pkg:"text/tabwriter",typ:$funcType([N,$String],[],false)},{prop:"Flush",name:"Flush",pkg:"",typ:$funcType([],[$error],false)},{prop:"flush",name:"flush",pkg:"text/tabwriter",typ:$funcType([],[$error],false)},{prop:"flushNoDefers",name:"flushNoDefers",pkg:"text/tabwriter",typ:$funcType([],[],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([K],[$Int,$error],false)}];C.init("text/tabwriter",[{prop:"size",name:"size",embedded:false,exported:false,typ:$Int,tag:""},{prop:"width",name:"width",embedded:false,exported:false,typ:$Int,tag:""},{prop:"htab",name:"htab",embedded:false,exported:false,typ:$Bool,tag:""}]);D.init("text/tabwriter",[{prop:"output",name:"output",embedded:false,exported:false,typ:A.Writer,tag:""},{prop:"minwidth",name:"minwidth",embedded:false,exported:false,typ:$Int,tag:""},{prop:"tabwidth",name:"tabwidth",embedded:false,exported:false,typ:$Int,tag:""},{prop:"padding",name:"padding",embedded:false,exported:false,typ:$Int,tag:""},{prop:"padbytes",name:"padbytes",embedded:false,exported:false,typ:O,tag:""},{prop:"flags",name:"flags",embedded:false,exported:false,typ:$Uint,tag:""},{prop:"buf",name:"buf",embedded:false,exported:false,typ:K,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:$Int,tag:""},{prop:"cell",name:"cell",embedded:false,exported:false,typ:C,tag:""},{prop:"endChar",name:"endChar",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"lines",name:"lines",embedded:false,exported:false,typ:P,tag:""},{prop:"widths",name:"widths",embedded:false,exported:false,typ:Q,tag:""}]);E.init("text/tabwriter",[{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}F=new K([10]);G=(new K($stringToBytes("\t\t\t\t\t\t\t\t")));H=new K([124]);I=(new K($stringToBytes("---\n")));}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["go/printer"]=(function(){var $pkg={},$init,J,A,B,C,D,E,K,F,N,L,G,H,I,M,O,P,Q,R,AA,AC,AD,AE,AG,AH,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,CY,CZ,DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DO,DP,DQ,DR,DS,DT,DU,DV,AB,S,T,U,V,W,X,Y,Z,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX;J=$packages["bytes"];A=$packages["fmt"];B=$packages["go/ast"];C=$packages["go/build/constraint"];D=$packages["go/token"];E=$packages["io"];K=$packages["math"];F=$packages["os"];N=$packages["sort"];L=$packages["strconv"];G=$packages["strings"];H=$packages["text/tabwriter"];I=$packages["unicode"];M=$packages["unicode/utf8"];O=$pkg.whiteSpace=$newType(1,$kindUint8,"printer.whiteSpace",true,"go/printer",false,null);P=$pkg.pmode=$newType(4,$kindInt,"printer.pmode",true,"go/printer",false,null);Q=$pkg.commentInfo=$newType(0,$kindStruct,"printer.commentInfo",true,"go/printer",false,function(cindex_,comment_,commentOffset_,commentNewline_){this.$val=this;if(arguments.length===0){this.cindex=0;this.comment=BM.nil;this.commentOffset=0;this.commentNewline=false;return;}this.cindex=cindex_;this.comment=comment_;this.commentOffset=commentOffset_;this.commentNewline=commentNewline_;});R=$pkg.printer=$newType(0,$kindStruct,"printer.printer",true,"go/printer",false,function(Config_,fset_,output_,indent_,level_,mode_,endAlignment_,impliedSemi_,lastTok_,prevOpen_,wsbuf_,goBuild_,plusBuild_,pos_,out_,last_,linePtr_,comments_,useNodeComments_,commentInfo_,nodeSizes_,cachedPos_,cachedLine_){this.$val=this;if(arguments.length===0){this.Config=new AD.ptr(0,0,0);this.fset=BS.nil;this.output=AY.nil;this.indent=0;this.level=0;this.mode=0;this.endAlignment=false;this.impliedSemi=false;this.lastTok=0;this.prevOpen=0;this.wsbuf=AZ.nil;this.goBuild=BT.nil;this.plusBuild=BT.nil;this.pos=new D.Position.ptr("",0,0,0);this.out=new D.Position.ptr("",0,0,0);this.last=new D.Position.ptr("",0,0,0);this.linePtr=BE.nil;this.comments=BN.nil;this.useNodeComments=false;this.commentInfo=new Q.ptr(0,BM.nil,0,false);this.nodeSizes=false;this.cachedPos=0;this.cachedLine=0;return;}this.Config=Config_;this.fset=fset_;this.output=output_;this.indent=indent_;this.level=level_;this.mode=mode_;this.endAlignment=endAlignment_;this.impliedSemi=impliedSemi_;this.lastTok=lastTok_;this.prevOpen=prevOpen_;this.wsbuf=wsbuf_;this.goBuild=goBuild_;this.plusBuild=plusBuild_;this.pos=pos_;this.out=out_;this.last=last_;this.linePtr=linePtr_;this.comments=comments_;this.useNodeComments=useNodeComments_;this.commentInfo=commentInfo_;this.nodeSizes=nodeSizes_;this.cachedPos=cachedPos_;this.cachedLine=cachedLine_;});AA=$pkg.trimmer=$newType(0,$kindStruct,"printer.trimmer",true,"go/printer",false,function(output_,state_,space_){this.$val=this;if(arguments.length===0){this.output=$ifaceNil;this.state=0;this.space=AY.nil;return;}this.output=output_;this.state=state_;this.space=space_;});AC=$pkg.Mode=$newType(4,$kindUint,"printer.Mode",true,"go/printer",true,null);AD=$pkg.Config=$newType(0,$kindStruct,"printer.Config",true,"go/printer",true,function(Mode_,Tabwidth_,Indent_){this.$val=this;if(arguments.length===0){this.Mode=0;this.Tabwidth=0;this.Indent=0;return;}this.Mode=Mode_;this.Tabwidth=Tabwidth_;this.Indent=Indent_;});AE=$pkg.CommentedNode=$newType(0,$kindStruct,"printer.CommentedNode",true,"go/printer",true,function(Node_,Comments_){this.$val=this;if(arguments.length===0){this.Node=$ifaceNil;this.Comments=BN.nil;return;}this.Node=Node_;this.Comments=Comments_;});AG=$pkg.exprListMode=$newType(4,$kindUint,"printer.exprListMode",true,"go/printer",false,null);AH=$pkg.paramMode=$newType(4,$kindInt,"printer.paramMode",true,"go/printer",false,null);AY=$sliceType($Uint8);AZ=$sliceType(O);BA=$sliceType($emptyInterface);BB=$ptrType(B.Comment);BC=$ptrType(B.Ident);BD=$ptrType(B.BasicLit);BE=$ptrType($Int);BF=$ptrType(B.Field);BG=$ptrType(B.ImportSpec);BH=$ptrType(B.ValueSpec);BI=$ptrType(B.TypeSpec);BJ=$ptrType(B.GenDecl);BK=$ptrType(B.FuncDecl);BL=$ptrType(B.File);BM=$ptrType(B.CommentGroup);BN=$sliceType(BM);BO=$ptrType(AE);BP=$sliceType(B.Stmt);BQ=$sliceType(B.Decl);BR=$ptrType(B.LabeledStmt);BS=$ptrType(D.FileSet);BT=$sliceType($Int);BU=$ptrType(H.Writer);BV=$sliceType(B.Expr);BW=$ptrType(B.KeyValueExpr);BX=$ptrType(B.StarExpr);BY=$ptrType(B.ArrayType);BZ=$ptrType(B.StructType);CA=$ptrType(B.FuncType);CB=$ptrType(B.InterfaceType);CC=$ptrType(B.MapType);CD=$ptrType(B.ChanType);CE=$ptrType(B.ParenExpr);CF=$ptrType(B.FieldList);CG=$sliceType(BC);CH=$sliceType(BB);CI=$ptrType(B.BinaryExpr);CJ=$ptrType(B.UnaryExpr);CK=$ptrType(B.BadExpr);CL=$ptrType(B.FuncLit);CM=$ptrType(B.SelectorExpr);CN=$ptrType(B.TypeAssertExpr);CO=$ptrType(B.IndexExpr);CP=$ptrType(B.IndexListExpr);CQ=$ptrType(B.SliceExpr);CR=$ptrType(B.CallExpr);CS=$ptrType(B.CompositeLit);CT=$ptrType(B.Ellipsis);CU=$ptrType(B.EmptyStmt);CV=$ptrType(B.BadStmt);CW=$ptrType(B.DeclStmt);CX=$ptrType(B.ExprStmt);CY=$ptrType(B.SendStmt);CZ=$ptrType(B.IncDecStmt);DA=$ptrType(B.AssignStmt);DB=$ptrType(B.GoStmt);DC=$ptrType(B.DeferStmt);DD=$ptrType(B.ReturnStmt);DE=$ptrType(B.BranchStmt);DF=$ptrType(B.BlockStmt);DG=$ptrType(B.IfStmt);DH=$ptrType(B.CaseClause);DI=$ptrType(B.SwitchStmt);DJ=$ptrType(B.TypeSwitchStmt);DK=$ptrType(B.CommClause);DL=$ptrType(B.SelectStmt);DM=$ptrType(B.ForStmt);DN=$ptrType(B.RangeStmt);DO=$sliceType($Bool);DP=$ptrType(B.BadDecl);DQ=$sliceType($String);DR=$ptrType(AD);DS=$mapType(B.Node,$Int);DT=$sliceType(BF);DU=$ptrType(R);DV=$ptrType(AA);R.ptr.prototype.init=function(a,b,c){var a,b,c,d;d=this;AD.copy(d.Config,a);d.fset=b;D.Position.copy(d.pos,new D.Position.ptr("",0,1,1));D.Position.copy(d.out,new D.Position.ptr("",0,1,1));d.wsbuf=$makeSlice(AZ,0,16);d.nodeSizes=c;d.cachedPos=-1;};R.prototype.init=function(a,b,c){return this.$val.init(a,b,c);};R.ptr.prototype.internalError=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(false){$s=1;continue;}$s=2;continue;case 1:c=$clone(b.pos,D.Position).String();$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=A.Print(new BA([new $String(c+": ")]));$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;e=A.Println(a);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;$panic(new $String("go/printer"));case 2:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.internalError,$c:true,$r,a,b,c,d,e,$s};return $f;};R.prototype.internalError=function(a){return this.$val.internalError(a);};R.ptr.prototype.commentsHaveNewline=function(a){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.lineFor((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]).Pos());$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=a;f=0;case 2:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(!(g>0)){i=false;$s=6;continue s;}j=b.lineFor(((g<0||g>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g]).Pos());$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=!((j===d));case 6:if(i){$s=4;continue;}$s=5;continue;case 4:$s=-1;return true;case 5:k=h.Text;if(k.length>=2&&((k.charCodeAt(1)===47)||G.Contains(k,"\n"))){$s=-1;return true;}f++;$s=2;continue;case 3:$unused(d);$s=-1;return false;}return;}var $f={$blk:R.ptr.prototype.commentsHaveNewline,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};R.prototype.commentsHaveNewline=function(a){return this.$val.commentsHaveNewline(a);};R.ptr.prototype.nextComment=function(){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;case 1:if(!(a.commentInfo.cindex=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]));a.commentInfo.cindex=a.commentInfo.cindex+(1)>>0;e=d.List;if(e.$length>0){$s=3;continue;}$s=4;continue;case 3:a.commentInfo.comment=d;f=a.posFor((0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]).Pos());$s=5;case 5:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}a.commentInfo.commentOffset=f.Offset;g=a.commentsHaveNewline(e);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}a.commentInfo.commentNewline=g;$s=-1;return;case 4:$s=1;continue;case 2:a.commentInfo.commentOffset=1073741824;$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.nextComment,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};R.prototype.nextComment=function(){return this.$val.nextComment();};R.ptr.prototype.commentBefore=function(a){var a,b;b=this;return b.commentInfo.commentOffset=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);c=c+(f.Text.length)>>0;e++;}$r=b[0].nextComment();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=1;continue;case 2:g=c;$s=4;case 4:return g;}return;}}catch(err){$err=err;$s=-1;return 0;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.commentSizeBefore,$c:true,$r,a,b,c,d,e,f,g,$s,$deferred};return $f;}}};R.prototype.commentSizeBefore=function(a){return this.$val.commentSizeBefore(a);};R.ptr.prototype.recordLine=function(a){var a,b;b=this;b.linePtr=a;};R.prototype.recordLine=function(a){return this.$val.recordLine(a);};R.ptr.prototype.linesFrom=function(a){var a,b;b=this;return b.out.Line-a>>0;};R.prototype.linesFrom=function(a){return this.$val.linesFrom(a);};R.ptr.prototype.posFor=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.fset.PositionFor(a,false);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:R.ptr.prototype.posFor,$c:true,$r,a,b,c,d,$s};return $f;};R.prototype.posFor=function(a){return this.$val.posFor(a);};R.ptr.prototype.lineFor=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(!((a===b.cachedPos))){$s=1;continue;}$s=2;continue;case 1:b.cachedPos=a;c=b.fset.PositionFor(a,false);$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b.cachedLine=c.Line;case 2:$s=-1;return b.cachedLine;}return;}var $f={$blk:R.ptr.prototype.lineFor,$c:true,$r,a,b,c,$s};return $f;};R.prototype.lineFor=function(a){return this.$val.lineFor(a);};R.ptr.prototype.writeLineDirective=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(a.IsValid()&&(!((b.out.Line===a.Line))||!(b.out.Filename===a.Filename))){$s=1;continue;}$s=2;continue;case 1:b.output=$append(b.output,255);c=b.output;d=A.Sprintf("//line %s:%d\n",new BA([new $String(a.Filename),new $Int(a.Line)]));$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;b.output=$appendSlice(c,e);b.output=$append(b.output,255);b.out.Filename=a.Filename;b.out.Line=a.Line;case 2:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.writeLineDirective,$c:true,$r,a,b,c,d,e,$s};return $f;};R.prototype.writeLineDirective=function(a){return this.$val.writeLineDirective(a);};R.ptr.prototype.writeIndent=function(){var a,b,c;a=this;b=a.Config.Indent+a.indent>>0;c=0;while(true){if(!(c>0;}a.pos.Offset=a.pos.Offset+(b)>>0;a.pos.Column=a.pos.Column+(b)>>0;a.out.Column=a.out.Column+(b)>>0;};R.prototype.writeIndent=function(){return this.$val.writeIndent();};R.ptr.prototype.writeByte=function(a,b){var a,b,c,d,e;c=this;if(c.endAlignment){d=a;if((d===(9))||(d===(11))){a=32;}else if((d===(10))||(d===(12))){a=12;c.endAlignment=false;}}if(c.out.Column===1){c.writeIndent();}e=0;while(true){if(!(e>0;}c.pos.Offset=c.pos.Offset+(b)>>0;if((a===10)||(a===12)){c.pos.Line=c.pos.Line+(b)>>0;c.out.Line=c.out.Line+(b)>>0;c.pos.Column=1;c.out.Column=1;return;}c.pos.Column=c.pos.Column+(b)>>0;c.out.Column=c.out.Column+(b)>>0;};R.prototype.writeByte=function(a,b){return this.$val.writeByte(a,b);};R.ptr.prototype.writeString=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(d.out.Column===1){$s=1;continue;}$s=2;continue;case 1:if(!((((d.Config.Mode&8)>>>0)===0))){$s=3;continue;}$s=4;continue;case 3:$r=d.writeLineDirective($clone(a,D.Position));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:d.writeIndent();case 2:if(a.IsValid()){D.Position.copy(d.pos,a);}if(c){d.output=$append(d.output,255);}if(false){$s=6;continue;}$s=7;continue;case 6:e=d.output;f=A.Sprintf("/*%s*/",new BA([new a.constructor.elem(a)]));$s=8;case 8:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;d.output=$appendSlice(e,g);case 7:d.output=$appendSlice(d.output,b);h=0;i=0;j=0;while(true){if(!(j>0;i=j;d.endAlignment=true;}j=j+(1)>>0;}d.pos.Offset=d.pos.Offset+(b.length)>>0;if(h>0){d.pos.Line=d.pos.Line+(h)>>0;d.out.Line=d.out.Line+(h)>>0;l=b.length-i>>0;d.pos.Column=l;d.out.Column=l;}else{d.pos.Column=d.pos.Column+(b.length)>>0;d.out.Column=d.out.Column+(b.length)>>0;}if(c){d.output=$append(d.output,255);}D.Position.copy(d.last,d.pos);$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.writeString,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};R.prototype.writeString=function(a,b,c){return this.$val.writeString(a,b,c);};R.ptr.prototype.writeCommentPrefix=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if(e.output.$length===0){$s=-1;return;}if(a.IsValid()&&!(a.Filename===e.last.Filename)){e.writeByte(12,2);$s=-1;return;}if((a.Line===e.last.Line)&&(c===BB.nil||!((c.Text.charCodeAt(1)===47)))){$s=1;continue;}$s=2;continue;case 1:f=false;if(c===BB.nil){$s=4;continue;}$s=5;continue;case 4:g=0;h=e.wsbuf;i=0;while(true){if(!(i=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]);l=k;if(l===(32)){(m=e.wsbuf,((j<0||j>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+j]=0));i++;continue;}else if(l===(11)){f=true;i++;continue;}else if(l===(62)){i++;continue;}g=j;break;}$r=e.writeWhitespace(g);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:if(!f){n=9;if(a.Line===b.Line){n=32;}e.writeByte(n,1);}$s=3;continue;case 2:o=false;p=0;q=e.wsbuf;r=0;while(true){if(!(r=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);u=t;if((u===(32))||(u===(11))){(v=e.wsbuf,((s<0||s>=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+s]=0));r++;continue;}else if(u===(62)){r++;continue;}else if(u===(60)){if((s+1>>0)>0,((x<0||x>=w.$length)?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+x]))===60)){r++;continue;}if(!((d===56))&&(a.Column===b.Column)){r++;continue;}}else if((u===(10))||(u===(12))){(y=e.wsbuf,((s<0||s>=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+s]=0));o=c===BB.nil;}p=s;break;}$r=e.writeWhitespace(p);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}z=0;if(a.IsValid()&&e.last.IsValid()){z=a.Line-e.last.Line>>0;if(z<0){z=0;}}if((e.indent===0)&&o){z=z+(1)>>0;}if((z===0)&&!(c===BB.nil)&&(c.Text.charCodeAt(1)===47)){z=1;}if(z>0){e.writeByte(12,W(z));}case 3:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.writeCommentPrefix,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};R.prototype.writeCommentPrefix=function(a,b,c,d){return this.$val.writeCommentPrefix(a,b,c,d);};S=function(a){var a,b;b=0;while(true){if(!(b32){return false;}b=b+(1)>>0;}return true;};T=function(a,b){var a,b,c;c=0;while(true){if(!(c>0;}return $substring(a,0,c);};U=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=G.TrimRightFunc(a,I.IsSpace);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:U,$c:true,$r,a,b,c,$s};return $f;};V=function(a){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;if(a.$length<=1){return;}b="";c=false;if(a.$length>2){d=$subslice(a,1,(a.$length-1>>0));e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(S(g)){(h=1+f>>0,((h<0||h>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+h]=""));}else{if(!c){b=g;c=true;}b=T(b,g);}e++;}}if(!c){j=(i=a.$length-1>>0,((i<0||i>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+i]));b=T(j,j);}k=false;l=G.Cut(b,"*");m=l[0];n=l[2];if(n){b=G.TrimSuffix(m," ");k=true;}else{o=(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]);if(S($substring(o,2))){p=b.length;q=0;while(true){if(!(q<3&&p>0&&(b.charCodeAt((p-1>>0))===32))){break;}p=p-(1)>>0;q=q+(1)>>0;}if((p===b.length)&&p>0&&(b.charCodeAt((p-1>>0))===9)){p=p-(1)>>0;}b=$substring(b,0,p);}else{r=$makeSlice(AY,o.length);s=2;while(true){if(!(s=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]=o.charCodeAt(s));s=s+(1)>>0;}if(s>2&&((2>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+2])===9)){r=$subslice(r,2,s);}else{t=32;u=32;(0>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+0]=t);(1>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+1]=u);r=$subslice(r,0,s);}b=G.TrimSuffix(b,($bytesToString(r)));}}w=(v=a.$length-1>>0,((v<0||v>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+v]));x="*/";y=G.Cut(w,x);z=y[0];if(S(z)){if(k){x=" */";}(aa=a.$length-1>>0,((aa<0||aa>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+aa]=b+x));}else{b=T(b,w);}ab=a;ac=0;while(true){if(!(ac=ab.$length)?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+ac]);if(ad>0&&!(ae==="")){((ad<0||ad>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ad]=$substring(ae,b.length));}ac++;}};R.ptr.prototype.writeComment=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];b[0]=this;c=a.Text;d=b[0].posFor(a.Pos());$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=$clone(d,D.Position);if(G.HasPrefix(c,"//line ")&&(!e.IsValid()||(e.Column===1))){$s=2;continue;}$s=3;continue;case 2:$deferred.push([(function(b){return function(f){var f;b[0].indent=f;};})(b),[b[0].indent]]);b[0].indent=0;case 3:if(c.charCodeAt(1)===47){$s=4;continue;}$s=5;continue;case 4:f=C.IsGoBuild(c);$s=9;case 9:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f){$s=6;continue;}g=C.IsPlusBuild(c);$s=10;case 10:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(g){$s=7;continue;}$s=8;continue;case 6:b[0].goBuild=$append(b[0].goBuild,b[0].output.$length);$s=8;continue;case 7:b[0].plusBuild=$append(b[0].plusBuild,b[0].output.$length);case 8:h=$clone(e,D.Position);i=U(c);$s=11;case 11:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$r=b[0].writeString(h,j,true);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=13;case 13:return;case 5:k=G.Split(c,"\n");if(e.IsValid()&&(e.Column===1)&&b[0].indent>0){l=$subslice(k,1);m=0;while(true){if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);(p=1+n>>0,((p<0||p>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+p]=" "+o));m++;}}V(k);q=k;r=0;case 14:if(!(r=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);if(s>0){b[0].writeByte(12,1);D.Position.copy(e,b[0].pos);}if(t.length>0){$s=16;continue;}$s=17;continue;case 16:u=$clone(e,D.Position);v=U(t);$s=18;case 18:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v;$r=b[0].writeString(u,w,true);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:r++;$s=14;continue;case 15:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.writeComment,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$deferred};return $f;}}};R.prototype.writeComment=function(a){return this.$val.writeComment(a);};R.ptr.prototype.writeCommentSuffix=function(a){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=false;c=false;d=this;e=d.wsbuf;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);i=h;if((i===(32))||(i===(11))){(j=d.wsbuf,((g<0||g>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+g]=0));}else if((i===(62))||(i===(60))){}else if((i===(10))||(i===(12))){if(a){a=false;b=true;}else{if(h===12){c=true;}(k=d.wsbuf,((g<0||g>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+g]=0));}}f++;}$r=d.writeWhitespace(d.wsbuf.$length);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(a){d.writeByte(10,1);b=true;}$s=-1;return[b,c];}return;}var $f={$blk:R.ptr.prototype.writeCommentSuffix,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};R.prototype.writeCommentSuffix=function(a){return this.$val.writeCommentSuffix(a);};R.ptr.prototype.containsLinebreak=function(){var a,b,c,d;a=this;b=a.wsbuf;c=0;while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]);if((d===10)||(d===12)){return true;}c++;}return false;};R.prototype.containsLinebreak=function(){return this.$val.containsLinebreak();};R.ptr.prototype.intersperseComments=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=false;d=false;e=this;f=BB.nil;case 1:if(!(e.commentBefore($clone(a,D.Position)))){$s=2;continue;}g=e.commentInfo.comment.List;h=0;case 3:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);j=e.posFor(i.Pos());$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}$r=e.writeCommentPrefix($clone(j,D.Position),$clone(a,D.Position),f,b);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.writeComment(i);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=i;h++;$s=3;continue;case 4:$r=e.nextComment();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=1;continue;case 2:if(!(f===BB.nil)){$s=9;continue;}$s=10;continue;case 9:k=false;if(!(((e.mode&1)===0)&&(f.Text.charCodeAt(1)===42))){l=false;$s=13;continue s;}m=e.lineFor(f.Pos());$s=14;case 14:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m===a.Line;case 13:if(l&&!((b===52))&&(!((b===54))||(e.prevOpen===49))&&(!((b===55))||(e.prevOpen===50))){$s=11;continue;}$s=12;continue;case 11:if(e.containsLinebreak()&&((e.mode&2)===0)&&(e.level===0)){k=true;}else{e.writeByte(32,1);}case 12:if((f.Text.charCodeAt(1)===47)||(b===1)||(b===56)&&((e.mode&2)===0)){k=true;}o=e.writeCommentSuffix(k);$s=15;case 15:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;c=n[0];d=n[1];p=[c,d];$s=16;case 16:return p;case 10:$r=e.internalError(new BA([new $String("intersperseComments called without pending comments")]));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return[c,d];}return;}var $f={$blk:R.ptr.prototype.intersperseComments,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};R.prototype.intersperseComments=function(a,b){return this.$val.intersperseComments(a,b);};R.ptr.prototype.writeWhitespace=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=0;case 1:if(!(c=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]));f=e;if(f===(0)){$s=4;continue;}if(f===(62)){$s=5;continue;}if(f===(60)){$s=6;continue;}if((f===(10))||(f===(12))){$s=7;continue;}$s=8;continue;case 4:$s=9;continue;case 5:b.indent=b.indent+(1)>>0;$s=9;continue;case 6:b.indent=b.indent-(1)>>0;if(b.indent<0){$s=10;continue;}$s=11;continue;case 10:$r=b.internalError(new BA([new $String("negative indentation:"),new $Int(b.indent)]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.indent=0;case 11:$s=9;continue;case 7:if((c+1>>0)>0,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]))===60)){i=60;j=12;(k=b.wsbuf,((c<0||c>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+c]=i));(l=b.wsbuf,m=c+1>>0,((m<0||m>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]=j));c=c-(1)>>0;c=c+(1)>>0;$s=1;continue;}b.writeByte(((e<<24>>>24)),1);$s=9;continue;case 8:b.writeByte(((e<<24>>>24)),1);case 9:case 3:c=c+(1)>>0;$s=1;continue;case 2:n=$copySlice(b.wsbuf,$subslice(b.wsbuf,a));b.wsbuf=$subslice(b.wsbuf,0,n);$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.writeWhitespace,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};R.prototype.writeWhitespace=function(a){return this.$val.writeWhitespace(a);};W=function(a){var a;if(a>2){a=2;}return a;};X=function(a,b){var a,b,c,d;c=false;d=a;if(d===(5)){c=b===46;}else if(d===(12)){c=b===43;}else if(d===(13)){c=b===45;}else if(d===(15)){c=b===42;}else if(d===(40)){c=(b===45)||(b===60);}else if(d===(17)){c=(b===38)||(b===94);}return c;};R.ptr.prototype.print=function(a){var{a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f="";g=false;h=false;i=b.lastTok;if(i===(0)){}else if((i===(49))||(i===(50))){b.prevOpen=b.lastTok;}else{b.prevOpen=0;}j=e;if($assertType(j,P,true)[1]){$s=3;continue;}if($assertType(j,O,true)[1]){$s=4;continue;}if($assertType(j,BC,true)[1]){$s=5;continue;}if($assertType(j,BD,true)[1]){$s=6;continue;}if($assertType(j,D.Token,true)[1]){$s=7;continue;}if($assertType(j,D.Pos,true)[1]){$s=8;continue;}if($assertType(j,$String,true)[1]){$s=9;continue;}$s=10;continue;case 3:k=j.$val;b.mode=(b.mode^(k))>>0;d++;$s=1;continue;$s=11;continue;case 4:l=j.$val;if(l===0){d++;$s=1;continue;}s=b.wsbuf.$length;if(s===b.wsbuf.$capacity){$s=12;continue;}$s=13;continue;case 12:$r=b.writeWhitespace(s);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s=0;case 13:b.wsbuf=$subslice(b.wsbuf,0,(s+1>>0));(t=b.wsbuf,((s<0||s>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+s]=l));if((l===10)||(l===12)){b.impliedSemi=false;}b.lastTok=0;d++;$s=1;continue;$s=11;continue;case 5:m=j.$val;f=m.Name;h=true;b.lastTok=4;$s=11;continue;case 6:n=j.$val;f=n.Value;g=true;h=true;b.lastTok=n.Kind;$s=11;continue;case 7:o=j.$val;u=new D.Token(o).String();if(X(b.lastTok,u.charCodeAt(0))){$s=15;continue;}$s=16;continue;case 15:if(!((b.wsbuf.$length===0))){$s=17;continue;}$s=18;continue;case 17:$r=b.internalError(new BA([new $String("whitespace buffer not empty")]));$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 18:b.wsbuf=$subslice(b.wsbuf,0,1);(v=b.wsbuf,(0>=v.$length?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+0]=32));case 16:f=u;w=o;if((w===(61))||(w===(65))||(w===(69))||(w===(80))||(w===(37))||(w===(38))||(w===(54))||(w===(55))||(w===(56))){h=true;}b.lastTok=o;$s=11;continue;case 8:p=j.$val;if(new D.Pos(p).IsValid()){$s=20;continue;}$s=21;continue;case 20:x=b.posFor(p);$s=22;case 22:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}D.Position.copy(b.pos,x);case 21:d++;$s=1;continue;$s=11;continue;case 9:q=j.$val;f=q;g=true;h=true;b.lastTok=9;$s=11;continue;case 10:r=j;y=A.Fprintf(F.Stderr,"print: unsupported argument %v (%T)\n",new BA([e,e]));$s=23;case 23:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}y;$panic(new $String("go/printer type"));case 11:z=$clone(b.pos,D.Position);ab=b.flush($clone(z,D.Position),b.lastTok);$s=24;case 24:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;ac=aa[0];ad=aa[1];if(!b.impliedSemi){ae=W(z.Line-b.pos.Line>>0);if(ac&&(ae===2)){ae=1;}if(ae>0){af=10;if(ad){af=12;}b.writeByte(af,ae);h=false;}}if(!(b.linePtr===BE.nil)){b.linePtr.$set(b.out.Line);b.linePtr=BE.nil;}$r=b.writeString($clone(z,D.Position),f,g);$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.impliedSemi=h;d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.print,$c:true,$r,a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};R.prototype.print=function(a){return this.$val.print(a);};R.ptr.prototype.flush=function(a,b){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=false;d=false;e=this;if(e.commentBefore($clone(a,D.Position))){$s=1;continue;}$s=2;continue;case 1:g=e.intersperseComments($clone(a,D.Position),b);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;c=f[0];d=f[1];$s=3;continue;case 2:$r=e.writeWhitespace(e.wsbuf.$length);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return[c,d];}return;}var $f={$blk:R.ptr.prototype.flush,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};R.prototype.flush=function(a,b){return this.$val.flush(a,b);};Y=function(a){var a,b,c,d,e,f,g,h,i;b=a;if($assertType(b,BF,true)[1]){c=b.$val;return c.Doc;}else if($assertType(b,BG,true)[1]){d=b.$val;return d.Doc;}else if($assertType(b,BH,true)[1]){e=b.$val;return e.Doc;}else if($assertType(b,BI,true)[1]){f=b.$val;return f.Doc;}else if($assertType(b,BJ,true)[1]){g=b.$val;return g.Doc;}else if($assertType(b,BK,true)[1]){h=b.$val;return h.Doc;}else if($assertType(b,BL,true)[1]){i=b.$val;return i.Doc;}return BM.nil;};Z=function(a){var a,b,c,d,e,f,g,h,i,j,k,l;b=a;if($assertType(b,BF,true)[1]){c=b.$val;return c.Comment;}else if($assertType(b,BG,true)[1]){d=b.$val;return d.Comment;}else if($assertType(b,BH,true)[1]){e=b.$val;return e.Comment;}else if($assertType(b,BI,true)[1]){f=b.$val;return f.Comment;}else if($assertType(b,BJ,true)[1]){g=b.$val;if(g.Specs.$length>0){return Z((i=g.Specs,j=g.Specs.$length-1>>0,((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j])));}}else if($assertType(b,BL,true)[1]){h=b.$val;if(h.Comments.$length>0){return(k=h.Comments,l=h.Comments.$length-1>>0,((l<0||l>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]));}}return BM.nil;};R.ptr.prototype.printNode=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BN.nil;d=$assertType(a,BO,true);e=d[0];f=d[1];if(f){a=e.Node;c=e.Comments;}if(!(c===BN.nil)){$s=1;continue;}$s=2;continue;case 1:g=$assertType(a,B.Node,true);h=g[0];i=g[1];if(!i){$s=4;continue;}$s=5;continue;case 4:$s=6;continue;case 5:j=h.Pos();$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=h.End();$s=8;case 8:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=Y(h);if(!(n===BM.nil)){k=n.Pos();}o=Z(h);if(!(o===BM.nil)){p=o.End();if(p>m){m=p;}}q=0;while(true){if(!(q=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+q]).End()>0;}r=q;while(true){if(!(r=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+r]).Pos()>0;}if(q=ag.$length)?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+ah]);aj=$assertType(ai,BR,true);ak=aj[1];if(ak){b.indent=1;}ah++;}$r=b.stmtList(aa,0,false);$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=19;continue;case 16:ab=v.$val;$r=b.declList(ab);$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=19;continue;case 17:ac=v.$val;$r=b.file(ac);$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=19;continue;case 18:ad=v;$s=6;continue;case 19:$s=-1;return $ifaceNil;case 6:al=A.Errorf("go/printer: unsupported node type %T",new BA([a]));$s=27;case 27:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al;$s=28;case 28:return am;}return;}var $f={$blk:R.ptr.prototype.printNode,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};R.prototype.printNode=function(a){return this.$val.printNode(a);};AA.ptr.prototype.resetSpace=function(){var a;a=this;a.state=0;a.space=$subslice(a.space,0,0);};AA.prototype.resetSpace=function(){return this.$val.resetSpace();};AA.ptr.prototype.Write=function(a){var{a,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=0;c=$ifaceNil;d=this;e=0;f=0;g=a;h=0;case 1:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if(f===11){f=9;}i=d.state;if(i===(0)){$s=4;continue;}if(i===(1)){$s=5;continue;}if(i===(2)){$s=6;continue;}$s=7;continue;case 4:j=f;if((j===(9))||(j===(32))){$s=10;continue;}if((j===(10))||(j===(12))){$s=11;continue;}if(j===(255)){$s=12;continue;}$s=13;continue;case 10:d.space=$append(d.space,f);$s=14;continue;case 11:d.resetSpace();l=d.output.Write(AB);$s=15;case 15:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;c=k[1];$s=14;continue;case 12:n=d.output.Write(d.space);$s=16;case 16:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;c=m[1];d.state=1;e=b+1>>0;$s=14;continue;case 13:p=d.output.Write(d.space);$s=17;case 17:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;c=o[1];d.state=2;e=b;case 14:case 9:$s=8;continue;case 5:if(f===255){$s=18;continue;}$s=19;continue;case 18:r=d.output.Write($subslice(a,e,b));$s=20;case 20:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;c=q[1];d.resetSpace();case 19:$s=8;continue;case 6:s=f;if((s===(9))||(s===(32))){$s=22;continue;}if((s===(10))||(s===(12))){$s=23;continue;}if(s===(255)){$s=24;continue;}$s=25;continue;case 22:u=d.output.Write($subslice(a,e,b));$s=26;case 26:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;c=t[1];d.resetSpace();d.space=$append(d.space,f);$s=25;continue;case 23:w=d.output.Write($subslice(a,e,b));$s=27;case 27:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}v=w;c=v[1];d.resetSpace();if($interfaceIsEqual(c,$ifaceNil)){$s=28;continue;}$s=29;continue;case 28:y=d.output.Write(AB);$s=30;case 30:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}x=y;c=x[1];case 29:$s=25;continue;case 24:aa=d.output.Write($subslice(a,e,b));$s=31;case 31:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;c=z[1];d.state=1;e=b+1>>0;case 25:case 21:$s=8;continue;case 7:$panic(new $String("unreachable"));case 8:case 3:if(!($interfaceIsEqual(c,$ifaceNil))){$s=-1;return[b,c];}h++;$s=1;continue;case 2:b=a.$length;ab=d.state;if((ab===(1))||(ab===(2))){$s=33;continue;}$s=34;continue;case 33:ad=d.output.Write($subslice(a,e,b));$s=35;case 35:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=ad;c=ac[1];d.resetSpace();case 34:case 32:$s=-1;return[b,c];}return;}var $f={$blk:AA.ptr.prototype.Write,$c:true,$r,a,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AA.prototype.Write=function(a){return this.$val.Write(a);};AD.ptr.prototype.fprint=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=$ifaceNil;f=this;g=new R.ptr(new AD.ptr(0,0,0),BS.nil,AY.nil,0,0,0,false,false,0,0,AZ.nil,BT.nil,BT.nil,new D.Position.ptr("",0,0,0),new D.Position.ptr("",0,0,0),new D.Position.ptr("",0,0,0),BE.nil,BN.nil,false,new Q.ptr(0,BM.nil,0,false),false,0,0);g.init(f,b,d);h=g.printNode(c);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}e=h;if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return e;}g.impliedSemi=false;i=g.flush(new D.Position.ptr("",1073741824,1073741824,0),1);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$r=g.fixGoBuildLines();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}a=new AA.ptr(a,0,AY.nil);if(((f.Mode&1)>>>0)===0){j=f.Tabwidth;k=9;if(!((((f.Mode&4)>>>0)===0))){k=32;}l=8;if(!((((f.Mode&2)>>>0)===0))){j=0;l=(l|(16))>>>0;}a=H.NewWriter(a,j,f.Tabwidth,1,k,l);}n=a.Write(g.output);$s=4;case 4:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;e=m[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return e;}o=$assertType(a,BU,true);p=o[0];if(!(p===BU.nil)){$s=5;continue;}$s=6;continue;case 5:q=p.Flush();$s=7;case 7:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}e=q;case 6:$s=-1;return e;}return;}var $f={$blk:AD.ptr.prototype.fprint,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};AD.prototype.fprint=function(a,b,c,d){return this.$val.fprint(a,b,c,d);};AD.ptr.prototype.Fprint=function(a,b,c){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.fprint(a,b,c,new $global.Map());$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:AD.ptr.prototype.Fprint,$c:true,$r,a,b,c,d,e,f,$s};return $f;};AD.prototype.Fprint=function(a,b,c){return this.$val.Fprint(a,b,c);};R.ptr.prototype.linebreak=function(a,b,c,d){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=0;f=this;g=W(a-f.pos.Line>>0);if(g0){$s=1;continue;}$s=2;continue;case 1:$r=f.print(new BA([new O(c)]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(d){$s=4;continue;}$s=5;continue;case 4:$r=f.print(new BA([new O(12)]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=g-(1)>>0;e=2;case 5:e=e+(g)>>0;case 7:if(!(g>0)){$s=8;continue;}$r=f.print(new BA([new O(10)]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=g-(1)>>0;$s=7;continue;case 8:case 2:$s=-1;return e;}return;}var $f={$blk:R.ptr.prototype.linebreak,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};R.prototype.linebreak=function(a,b,c,d){return this.$val.linebreak(a,b,c,d);};R.ptr.prototype.setComment=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(a===BM.nil||!b.useNodeComments){$s=-1;return;}if(b.comments===BN.nil){$s=1;continue;}if(b.commentInfo.cindex=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])).Pos());$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=b.flush($clone(d,D.Position),0);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;b.comments=$subslice(b.comments,0,1);$r=b.internalError(new BA([new $String("setComment found pending comments")]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:(f=b.comments,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]=a));b.commentInfo.cindex=0;if(b.commentInfo.commentOffset===1073741824){$s=7;continue;}$s=8;continue;case 7:$r=b.nextComment();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.setComment,$c:true,$r,a,b,c,d,e,f,$s};return $f;};R.prototype.setComment=function(a){return this.$val.setComment(a);};R.ptr.prototype.identList=function(a,b){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=$makeSlice(BV,a.$length);e=a;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]=h);f++;}i=0;if(!b){i=2;}$r=c.exprList(0,d,1,i,0,false);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.identList,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};R.prototype.identList=function(a,b){return this.$val.identList(a,b);};R.ptr.prototype.exprList=function(a,b,c,d,e,f){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=this;if(b.$length===0){$s=1;continue;}$s=2;continue;case 1:if(f){$s=3;continue;}$s=4;continue;case 3:h=g.posFor(a);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=$clone(h,D.Position);j=g.posFor(e);$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=$clone(j,D.Position);if(i.IsValid()&&(i.Line===k.Line)){$s=7;continue;}$s=8;continue;case 7:$r=g.print(new BA([new $String("/* contains filtered or unexported fields */")]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=9;continue;case 8:$r=g.print(new BA([new O(10)]));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=g.print(new BA([new O(62),new $String("// contains filtered or unexported fields"),new O(60),new O(10)]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:case 4:$s=-1;return;case 2:l=g.posFor(a);$s=13;case 13:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=$clone(l,D.Position);n=g.posFor(e);$s=14;case 14:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=$clone(n,D.Position);p=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]).Pos();$s=15;case 15:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=g.lineFor(p);$s=16;case 16:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;t=(s=b.$length-1>>0,((s<0||s>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+s])).End();$s=17;case 17:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=g.lineFor(t);$s=18;case 18:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;if(m.IsValid()&&(m.Line===r)&&(r===v)){$s=19;continue;}$s=20;continue;case 19:w=b;x=0;case 21:if(!(x=w.$length)?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+x]);if(y>0){$s=23;continue;}$s=24;continue;case 23:aa=z.Pos();$s=25;case 25:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}$r=g.print(new BA([new D.Pos(aa),new D.Token(52),new O(32)]));$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 24:$r=g.expr0(z,c);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}x++;$s=21;continue;case 22:if(f){$s=28;continue;}$s=29;continue;case 28:$r=g.print(new BA([new D.Token(52),new O(32),new $String("/* contains filtered or unexported fields */")]));$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 29:$s=-1;return;case 20:ab=0;if(((d&2)>>>0)===0){ab=62;}ac=-1;if(!(m.IsValid()&&m.Line0;case 33:if(ad){$s=31;continue;}$s=32;continue;case 31:ab=0;ac=0;case 32:af=0;ag=0;ah=0;ai=m.Line;aj=b;ak=0;case 35:if(!(ak=aj.$length)?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+ak]);an=am.Pos();$s=37;case 37:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}ao=g.lineFor(an);$s=38;case 38:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}r=ao;ap=true;aq=af;ar=g.nodeSize(am,1000000);$s=39;case 39:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}af=ar;as=$assertType(am,BW,true);at=as[0];au=as[1];if(af<=1000000&&m.IsValid()&&o.IsValid()){$s=40;continue;}$s=41;continue;case 40:if(au){$s=43;continue;}$s=44;continue;case 43:av=g.nodeSize(at.Key,1000000);$s=45;case 45:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}af=av;case 44:$s=42;continue;case 41:af=0;case 42:if(aq>0&&af>0){if((ah===0)||aq<=40&&af<=40){ap=false;}else{aw=K.Exp(ag/(ah));ax=(af)/aw;ap=2.5*ax<=1||2.5<=ax;}}ay=00){$s=46;continue;}$s=47;continue;case 46:if(!ay){$s=48;continue;}$s=49;continue;case 48:az=am.Pos();$s=50;case 50:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}$r=g.print(new BA([new D.Pos(az)]));$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 49:$r=g.print(new BA([new D.Token(52)]));$s=52;case 52:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ba=true;if(ay){$s=53;continue;}$s=54;continue;case 53:bb=g.linebreak(r,0,ab,ap||(ac+1>>0)0){ab=0;ac=al;ba=false;}if(bc>1){ag=0;ah=0;}case 54:if(ba){$s=56;continue;}$s=57;continue;case 56:$r=g.print(new BA([new O(32)]));$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 57:case 47:if(b.$length>1&&au&&af>0&&ay){$s=59;continue;}$s=60;continue;case 59:$r=g.expr(at.Key);$s=62;case 62:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=g.print(new BA([new D.Pos(at.Colon),new D.Token(58),new O(11)]));$s=63;case 63:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=g.expr(at.Value);$s=64;case 64:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=61;continue;case 60:$r=g.expr0(am,c);$s=65;case 65:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 61:if(af>0){ag=ag+(K.Log((af)));ah=ah+(1)>>0;}ai=r;ak++;$s=35;continue;case 36:if(!((((d&1)>>>0)===0))&&o.IsValid()&&g.pos.Line>>0)===0)){$s=73;continue;}$s=74;continue;case 73:$r=g.print(new BA([new O(60)]));$s=75;case 75:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 74:$r=g.print(new BA([new O(12)]));$s=76;case 76:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 67:if(f){$s=77;continue;}$s=78;continue;case 77:$r=g.print(new BA([new D.Token(52),new O(10)]));$s=79;case 79:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=g.print(new BA([new $String("// contains filtered or unexported fields"),new O(10)]));$s=80;case 80:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 78:if((ab===0)&&(((d&2)>>>0)===0)){$s=81;continue;}$s=82;continue;case 81:$r=g.print(new BA([new O(60)]));$s=83;case 83:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 82:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.exprList,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};R.prototype.exprList=function(a,b,c,d,e,f){return this.$val.exprList(a,b,c,d,e,f);};R.ptr.prototype.parameters=function(a,b){var{a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=49;e=54;f=d;g=e;if(!((b===0))){h=50;i=55;f=h;g=i;}$r=c.print(new BA([new D.Pos(a.Opening),new D.Token(f)]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(a.List.$length>0){$s=2;continue;}$s=3;continue;case 2:j=c.lineFor(a.Opening);$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=62;m=a.List;n=0;case 5:if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);q=p.Pos();$s=7;case 7:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=c.lineFor(q);$s=8;case 8:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;t=p.End();$s=9;case 9:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=c.lineFor(t);$s=10;case 10:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;w=00){$s=11;continue;}$s=12;continue;case 11:if(!w){$s=13;continue;}$s=14;continue;case 13:x=p.Pos();$s=15;case 15:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}$r=c.print(new BA([new D.Pos(x)]));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:$r=c.print(new BA([new D.Token(52)]));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:if(!(w)){y=false;$s=21;continue s;}z=c.linebreak(s,0,l,true);$s=22;case 22:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}y=z>0;case 21:if(y){$s=18;continue;}if(o>0){$s=19;continue;}$s=20;continue;case 18:l=0;$s=20;continue;case 19:$r=c.print(new BA([new O(32)]));$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 20:if(p.Names.$length>0){$s=24;continue;}$s=25;continue;case 24:$r=c.identList(p.Names,l===62);$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.print(new BA([new O(32)]));$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 25:$r=c.expr(AS(p.Type));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=v;n++;$s=5;continue;case 6:aa=c.lineFor(a.Closing);$s=29;case 29:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa;if(0=ae.$length?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+0])).Type,BX,true);af=ad[0];if(!(af===BX.nil)&&!AI(af.X)){$s=35;continue;}$s=36;continue;case 35:$r=c.print(new BA([new D.Token(52)]));$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 36:case 32:if(l===0){$s=38;continue;}$s=39;continue;case 38:$r=c.print(new BA([new O(60)]));$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 39:case 3:$r=c.print(new BA([new D.Pos(a.Closing),new D.Token(g)]));$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.parameters,$c:true,$r,a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};R.prototype.parameters=function(a,b){return this.$val.parameters(a,b);};AI=function(a){var a,b,c,d,e;b=a;if($assertType(b,BY,true)[1]||$assertType(b,BZ,true)[1]||$assertType(b,CA,true)[1]||$assertType(b,CB,true)[1]||$assertType(b,CC,true)[1]||$assertType(b,CD,true)[1]){c=b;return true;}else if($assertType(b,BX,true)[1]){d=b.$val;return AI(d.X);}else if($assertType(b,CE,true)[1]){e=b.$val;return AI(e.X);}return false;};R.ptr.prototype.signature=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(!(a.TypeParams===CF.nil)){$s=1;continue;}$s=2;continue;case 1:$r=b.parameters(a.TypeParams,1);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(!(a.Params===CF.nil)){$s=4;continue;}$s=5;continue;case 4:$r=b.parameters(a.Params,0);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=6;continue;case 5:$r=b.print(new BA([new D.Token(49),new D.Token(54)]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:c=a.Results;d=c.NumFields();if(d>0){$s=9;continue;}$s=10;continue;case 9:$r=b.print(new BA([new O(32)]));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if((d===1)&&(e=c.List,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])).Names===CG.nil){$s=12;continue;}$s=13;continue;case 12:$r=b.expr(AS((f=c.List,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0])).Type));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 13:$r=b.parameters(c,0);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.signature,$c:true,$r,a,b,c,d,e,f,$s};return $f;};R.prototype.signature=function(a){return this.$val.signature(a);};AJ=function(a,b){var a,b,c,d,e,f,g;c=0;d=a;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(f>0){c=c+(2)>>0;}c=c+(M.RuneCountInString(g.Name))>>0;if(c>=b){break;}e++;}return c;};R.ptr.prototype.isOneLineFieldList=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(!((a.$length===1))){$s=-1;return false;}c=(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]);if(!(c.Tag===BD.nil)||!(c.Comment===BM.nil)){$s=-1;return false;}d=AJ(c.Names,30);if(d>0){d=1;}e=b.nodeSize(c.Type,30);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=-1;return(d+f>>0)<=30;}return;}var $f={$blk:R.ptr.prototype.isOneLineFieldList,$c:true,$r,a,b,c,d,e,f,$s};return $f;};R.prototype.isOneLineFieldList=function(a){return this.$val.isOneLineFieldList(a);};R.ptr.prototype.setLineComment=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.setComment(new B.CommentGroup.ptr(new CH([new B.Comment.ptr(0,a)])));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.setLineComment,$c:true,$r,a,b,$s};return $f;};R.prototype.setLineComment=function(a){return this.$val.setLineComment(a);};R.ptr.prototype.fieldList=function(a,b,c){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=[e];f=this;g=a.Opening;h=a.List;i=a.Closing;if(c){j=true;$s=1;continue s;}k=f.posFor(i);$s=2;case 2:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=f.commentBefore($clone(k,D.Position));$s=3;case 3:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}j=l;case 1:m=j;if(!(new D.Pos(g).IsValid()&&new D.Pos(i).IsValid())){n=false;$s=4;continue s;}o=f.lineFor(g);$s=5;case 5:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=f.lineFor(i);$s=6;case 6:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}n=o===p;case 4:q=n;if(!m&&q){$s=7;continue;}$s=8;continue;case 7:if(h.$length===0){$s=9;continue;}r=f.isOneLineFieldList(h);$s=12;case 12:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}if(r){$s=10;continue;}$s=11;continue;case 9:$r=f.print(new BA([new D.Pos(g),new D.Token(51),new D.Pos(i),new D.Token(56)]));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 10:$r=f.print(new BA([new D.Pos(g),new D.Token(51),new O(32)]));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s=(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]);if(b){$s=15;continue;}$s=16;continue;case 15:t=s.Names;u=0;case 18:if(!(u=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]);if(v>0){$s=20;continue;}$s=21;continue;case 20:$r=f.print(new BA([new D.Token(52),new O(32)]));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 21:$r=f.expr(w);$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}u++;$s=18;continue;case 19:if(s.Names.$length>0){$s=24;continue;}$s=25;continue;case 24:$r=f.print(new BA([new O(32)]));$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 25:$r=f.expr(s.Type);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=17;continue;case 16:if(s.Names.$length>0){$s=28;continue;}$s=29;continue;case 28:y=(x=s.Names,(0>=x.$length?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+0]));$r=f.expr(y);$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f.signature($assertType(s.Type,CA));$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=30;continue;case 29:$r=f.expr(s.Type);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 30:case 17:$r=f.print(new BA([new O(32),new D.Pos(i),new D.Token(56)]));$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 11:case 8:$r=f.print(new BA([new O(32),new D.Pos(g),new D.Token(51),new O(62)]));$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(m||h.$length>0){$s=36;continue;}$s=37;continue;case 36:$r=f.print(new BA([new O(12)]));$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 37:if(b){$s=39;continue;}$s=40;continue;case 39:z=11;if(h.$length===1){z=32;}d[0]=0;aa=h;ab=0;case 42:if(!(ab=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+ab]);if(ac>0){$s=44;continue;}$s=45;continue;case 44:ae=ad.Pos();$s=46;case 46:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=f.lineFor(ae);$s=47;case 47:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=f.linebreak(af,1,0,f.linesFrom(d[0])>0);$s=48;case 48:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ag;case 45:ah=0;$r=f.setComment(ad.Doc);$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f.recordLine((d.$ptr||(d.$ptr=new BE(function(){return this.$target[0];},function($v){this.$target[0]=$v;},d))));if(ad.Names.$length>0){$s=50;continue;}$s=51;continue;case 50:$r=f.identList(ad.Names,false);$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f.print(new BA([new O(z)]));$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f.expr(ad.Type);$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ah=1;$s=52;continue;case 51:$r=f.expr(ad.Type);$s=56;case 56:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ah=2;case 52:if(!(ad.Tag===BD.nil)){$s=57;continue;}$s=58;continue;case 57:if(ad.Names.$length>0&&(z===11)){$s=59;continue;}$s=60;continue;case 59:$r=f.print(new BA([new O(z)]));$s=61;case 61:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 60:$r=f.print(new BA([new O(z)]));$s=62;case 62:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f.expr(ad.Tag);$s=63;case 63:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ah=0;case 58:if(!(ad.Comment===BM.nil)){$s=64;continue;}$s=65;continue;case 64:case 66:if(!(ah>0)){$s=67;continue;}$r=f.print(new BA([new O(z)]));$s=68;case 68:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ah=ah-(1)>>0;$s=66;continue;case 67:$r=f.setComment(ad.Comment);$s=69;case 69:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 65:ab++;$s=42;continue;case 43:if(c){$s=70;continue;}$s=71;continue;case 70:if(h.$length>0){$s=72;continue;}$s=73;continue;case 72:$r=f.print(new BA([new O(12)]));$s=74;case 74:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 73:ai=f.posFor(i);$s=75;case 75:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=f.flush($clone(ai,D.Position),56);$s=76;case 76:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}aj;$r=f.setLineComment("// contains filtered or unexported fields");$s=77;case 77:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 71:$s=41;continue;case 40:e[0]=0;ak=BC.nil;al=h;am=0;case 78:if(!(am=al.$length)?($throwRuntimeError("index out of range"),undefined):al.$array[al.$offset+am]);ap=BC.nil;if(ao.Names.$length>0){ap=(aq=ao.Names,(0>=aq.$length?($throwRuntimeError("index out of range"),undefined):aq.$array[aq.$offset+0]));}if(an>0){$s=80;continue;}$s=81;continue;case 80:ar=1;if(!(ak===BC.nil)&&ap===ak){ar=0;}as=ao.Pos();$s=82;case 82:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=f.lineFor(as);$s=83;case 83:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=f.linebreak(at,ar,0,f.linesFrom(e[0])>0);$s=84;case 84:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}au;case 81:$r=f.setComment(ao.Doc);$s=85;case 85:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f.recordLine((e.$ptr||(e.$ptr=new BE(function(){return this.$target[0];},function($v){this.$target[0]=$v;},e))));if(!(ap===BC.nil)){$s=86;continue;}$s=87;continue;case 86:$r=f.expr(ap);$s=89;case 89:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f.signature($assertType(ao.Type,CA));$s=90;case 90:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ak=BC.nil;$s=88;continue;case 87:$r=f.expr(ao.Type);$s=91;case 91:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ak=BC.nil;case 88:$r=f.setComment(ao.Comment);$s=92;case 92:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}am++;$s=78;continue;case 79:if(c){$s=93;continue;}$s=94;continue;case 93:if(h.$length>0){$s=95;continue;}$s=96;continue;case 95:$r=f.print(new BA([new O(12)]));$s=97;case 97:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 96:av=f.posFor(i);$s=98;case 98:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=f.flush($clone(av,D.Position),56);$s=99;case 99:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}aw;$r=f.setLineComment("// contains filtered or unexported methods");$s=100;case 100:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 94:case 41:$r=f.print(new BA([new O(60),new O(12),new D.Pos(i),new D.Token(56)]));$s=101;case 101:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.fieldList,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};R.prototype.fieldList=function(a,b,c){return this.$val.fieldList(a,b,c);};AK=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;b=false;c=false;d=0;e=new D.Token(a.Op).Precedence();if(e===(4)){b=true;}else if(e===(5)){c=true;}f=a.X;switch(0){default:if($assertType(f,CI,true)[1]){g=f.$val;if(new D.Token(g.Op).Precedence()0){return f+1>>0;}if(d&&e){if(b===1){return 5;}return 4;}if(b===1){return 6;}return 4;};AM=function(a,b){var a,b,c,d,e;c=$assertType(a,CI,true);d=c[0];e=c[1];if(!e||!((b===new D.Token(d.Op).Precedence()))){return 1;}return 0;};AN=function(a){var a;a=a-(1)>>0;if(a<1){a=1;}return a;};R.ptr.prototype.binaryExpr=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=new D.Token(a.Op).Precedence();if(f>0);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(g){$s=7;continue;}$s=8;continue;case 7:$r=e.print(new BA([new O(32)]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:i=e.pos.Line;j=a.Y.Pos();$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=e.lineFor(j);$s=11;case 11:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$r=e.print(new BA([new D.Pos(a.OpPos),new D.Token(a.Op)]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((i===l))&&i>0&&l>0){$s=13;continue;}$s=14;continue;case 13:m=e.linebreak(l,1,h,true);$s=17;case 17:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if(m>0){$s=15;continue;}$s=16;continue;case 15:h=0;g=false;case 16:case 14:if(g){$s=18;continue;}$s=19;continue;case 18:$r=e.print(new BA([new O(32)]));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 19:$r=e.expr1(a.Y,f+1>>0,d+1>>0);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(h===0){$s=22;continue;}$s=23;continue;case 22:$r=e.print(new BA([new O(60)]));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 23:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.binaryExpr,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};R.prototype.binaryExpr=function(a,b,c,d){return this.$val.binaryExpr(a,b,c,d);};AO=function(a){var a,b,c;b=$assertType(a,CI,true);c=b[1];return c;};R.ptr.prototype.expr1=function(a,b,c){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=a.Pos();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$r=d.print(new BA([new D.Pos(e)]));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=a;if($assertType(f,CK,true)[1]){$s=3;continue;}if($assertType(f,BC,true)[1]){$s=4;continue;}if($assertType(f,CI,true)[1]){$s=5;continue;}if($assertType(f,BW,true)[1]){$s=6;continue;}if($assertType(f,BX,true)[1]){$s=7;continue;}if($assertType(f,CJ,true)[1]){$s=8;continue;}if($assertType(f,BD,true)[1]){$s=9;continue;}if($assertType(f,CL,true)[1]){$s=10;continue;}if($assertType(f,CE,true)[1]){$s=11;continue;}if($assertType(f,CM,true)[1]){$s=12;continue;}if($assertType(f,CN,true)[1]){$s=13;continue;}if($assertType(f,CO,true)[1]){$s=14;continue;}if($assertType(f,CP,true)[1]){$s=15;continue;}if($assertType(f,CQ,true)[1]){$s=16;continue;}if($assertType(f,CR,true)[1]){$s=17;continue;}if($assertType(f,CS,true)[1]){$s=18;continue;}if($assertType(f,CT,true)[1]){$s=19;continue;}if($assertType(f,BY,true)[1]){$s=20;continue;}if($assertType(f,BZ,true)[1]){$s=21;continue;}if($assertType(f,CA,true)[1]){$s=22;continue;}if($assertType(f,CB,true)[1]){$s=23;continue;}if($assertType(f,CC,true)[1]){$s=24;continue;}if($assertType(f,CD,true)[1]){$s=25;continue;}$s=26;continue;case 3:g=f.$val;$r=d.print(new BA([new $String("BadExpr")]));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 4:h=f.$val;$r=d.print(new BA([h]));$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 5:i=f.$val;if(c<1){$s=30;continue;}$s=31;continue;case 30:$r=d.internalError(new BA([new $String("depth < 1:"),new $Int(c)]));$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=1;case 31:$r=d.binaryExpr(i,b,AL(i,c),c);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 6:j=f.$val;$r=d.expr(j.Key);$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new D.Pos(j.Colon),new D.Token(58),new O(32)]));$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.expr(j.Value);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 7:k=f.$val;if(6>>0)===0))){m=AP(m);}$r=d.print(new BA([m]));$s=57;case 57:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 10:n=f.$val;ae=n.Type.Pos();$s=58;case 58:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}$r=d.print(new BA([new D.Pos(ae),new D.Token(71)]));$s=59;case 59:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}af=d.out.Column-4>>0;$r=d.signature(n.Type);$s=60;case 60:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ag=n.Type.Pos();$s=61;case 61:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=d.distanceFrom(ag,af);$s=62;case 62:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}$r=d.funcBody(ah,32,n.Body);$s=63;case 63:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 11:o=f.$val;ai=$assertType(o.X,CE,true);aj=ai[1];if(aj){$s=64;continue;}$s=65;continue;case 64:$r=d.expr0(o.X,c);$s=67;case 67:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=66;continue;case 65:$r=d.print(new BA([new D.Token(49)]));$s=68;case 68:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.expr0(o.X,AN(c));$s=69;case 69:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new D.Pos(o.Rparen),new D.Token(54)]));$s=70;case 70:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 66:$s=27;continue;case 12:p=f.$val;ak=d.selectorExpr(p,c,false);$s=71;case 71:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}ak;$s=27;continue;case 13:q=f.$val;$r=d.expr1(q.X,7,c);$s=72;case 72:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new D.Token(53),new D.Pos(q.Lparen),new D.Token(49)]));$s=73;case 73:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(q.Type,$ifaceNil))){$s=74;continue;}$s=75;continue;case 74:$r=d.expr(q.Type);$s=77;case 77:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=76;continue;case 75:$r=d.print(new BA([new D.Token(84)]));$s=78;case 78:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 76:$r=d.print(new BA([new D.Pos(q.Rparen),new D.Token(54)]));$s=79;case 79:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 14:r=f.$val;$r=d.expr1(r.X,7,1);$s=80;case 80:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new D.Pos(r.Lbrack),new D.Token(50)]));$s=81;case 81:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.expr0(r.Index,c+1>>0);$s=82;case 82:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new D.Pos(r.Rbrack),new D.Token(55)]));$s=83;case 83:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 15:s=f.$val;$r=d.expr1(s.X,7,1);$s=84;case 84:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new D.Pos(s.Lbrack),new D.Token(50)]));$s=85;case 85:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.exprList(s.Lbrack,s.Indices,c+1>>0,1,s.Rbrack,false);$s=86;case 86:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new D.Pos(s.Rbrack),new D.Token(55)]));$s=87;case 87:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 16:t=f.$val;$r=d.expr1(t.X,7,1);$s=88;case 88:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new D.Pos(t.Lbrack),new D.Token(50)]));$s=89;case 89:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}al=new BV([t.Low,t.High]);if(!($interfaceIsEqual(t.Max,$ifaceNil))){al=$append(al,t.Max);}am=false;if(c<=1){an=0;ao=false;ap=al;aq=0;while(true){if(!(aq=ap.$length)?($throwRuntimeError("index out of range"),undefined):ap.$array[ap.$offset+aq]);if(!($interfaceIsEqual(ar,$ifaceNil))){an=an+(1)>>0;if(AO(ar)){ao=true;}}aq++;}if(an>1&&ao){am=true;}}as=al;at=0;case 90:if(!(at=as.$length)?($throwRuntimeError("index out of range"),undefined):as.$array[as.$offset+at]);if(au>0){$s=92;continue;}$s=93;continue;case 92:if(!($interfaceIsEqual((aw=au-1>>0,((aw<0||aw>=al.$length)?($throwRuntimeError("index out of range"),undefined):al.$array[al.$offset+aw])),$ifaceNil))&&am){$s=94;continue;}$s=95;continue;case 94:$r=d.print(new BA([new O(32)]));$s=96;case 96:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 95:$r=d.print(new BA([new D.Token(58)]));$s=97;case 97:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(av,$ifaceNil))&&am){$s=98;continue;}$s=99;continue;case 98:$r=d.print(new BA([new O(32)]));$s=100;case 100:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 99:case 93:if(!($interfaceIsEqual(av,$ifaceNil))){$s=101;continue;}$s=102;continue;case 101:$r=d.expr0(av,c+1>>0);$s=103;case 103:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 102:at++;$s=90;continue;case 91:$r=d.print(new BA([new D.Pos(t.Rbrack),new D.Token(55)]));$s=104;case 104:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 17:u=f.$val;if(u.Args.$length>1){c=c+(1)>>0;}ax=false;ay=$assertType(u.Fun,CA,true);az=ay[1];if(az){$s=105;continue;}$s=106;continue;case 105:$r=d.print(new BA([new D.Token(49)]));$s=108;case 108:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ba=d.possibleSelectorExpr(u.Fun,7,c);$s=109;case 109:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}ax=ba;$r=d.print(new BA([new D.Token(54)]));$s=110;case 110:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=107;continue;case 106:bb=d.possibleSelectorExpr(u.Fun,7,c);$s=111;case 111:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}ax=bb;case 107:$r=d.print(new BA([new D.Pos(u.Lparen),new D.Token(49)]));$s=112;case 112:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(new D.Pos(u.Ellipsis).IsValid()){$s=113;continue;}$s=114;continue;case 113:$r=d.exprList(u.Lparen,u.Args,c,0,u.Ellipsis,false);$s=116;case 116:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new D.Pos(u.Ellipsis),new D.Token(48)]));$s=117;case 117:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(new D.Pos(u.Rparen).IsValid())){bc=false;$s=120;continue s;}bd=d.lineFor(u.Ellipsis);$s=121;case 121:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=d.lineFor(u.Rparen);$s=122;case 122:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bc=bd>0;$r=d.print(new BA([new D.Pos(v.Lbrace),new D.Token(51)]));$s=132;case 132:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.exprList(v.Lbrace,v.Elts,1,1,v.Rbrace,v.Incomplete);$s=133;case 133:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bf=2;if(v.Elts.$length>0){bf=bf|(1);}$r=d.print(new BA([new O(62),new O(60),new P(bf),new D.Pos(v.Rbrace),new D.Token(56),new P(bf)]));$s=134;case 134:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d.level=d.level-(1)>>0;$s=27;continue;case 19:w=f.$val;$r=d.print(new BA([new D.Token(48)]));$s=135;case 135:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(w.Elt,$ifaceNil))){$s=136;continue;}$s=137;continue;case 136:$r=d.expr(w.Elt);$s=138;case 138:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 137:$s=27;continue;case 20:x=f.$val;$r=d.print(new BA([new D.Token(50)]));$s=139;case 139:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(x.Len,$ifaceNil))){$s=140;continue;}$s=141;continue;case 140:$r=d.expr(x.Len);$s=142;case 142:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 141:$r=d.print(new BA([new D.Token(55)]));$s=143;case 143:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.expr(x.Elt);$s=144;case 144:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 21:y=f.$val;$r=d.print(new BA([new D.Token(82)]));$s=145;case 145:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.fieldList(y.Fields,true,y.Incomplete);$s=146;case 146:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 22:z=f.$val;$r=d.print(new BA([new D.Token(71)]));$s=147;case 147:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.signature(z);$s=148;case 148:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 23:aa=f.$val;$r=d.print(new BA([new D.Token(76)]));$s=149;case 149:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.fieldList(aa.Methods,false,aa.Incomplete);$s=150;case 150:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 24:ab=f.$val;$r=d.print(new BA([new D.Token(77),new D.Token(50)]));$s=151;case 151:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.expr(ab.Key);$s=152;case 152:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new D.Token(55)]));$s=153;case 153:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.expr(ab.Value);$s=154;case 154:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 25:ac=f.$val;bg=ac.Dir;if(bg===(3)){$s=156;continue;}if(bg===(2)){$s=157;continue;}if(bg===(1)){$s=158;continue;}$s=159;continue;case 156:$r=d.print(new BA([new D.Token(63)]));$s=160;case 160:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=159;continue;case 157:$r=d.print(new BA([new D.Token(36),new D.Token(63)]));$s=161;case 161:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=159;continue;case 158:$r=d.print(new BA([new D.Token(63),new D.Pos(ac.Arrow),new D.Token(36)]));$s=162;case 162:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 159:case 155:$r=d.print(new BA([new O(32)]));$s=163;case 163:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.expr(ac.Value);$s=164;case 164:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 26:ad=f;$panic(new $String("unreachable"));case 27:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.expr1,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};R.prototype.expr1=function(a,b,c){return this.$val.expr1(a,b,c);};AP=function(a){var a,b,c,d,e,f;if(!((a.Kind===5))&&!((a.Kind===6))&&!((a.Kind===7))){return a;}if(a.Value.length<2){return a;}b=a.Value;switch(0){default:c=$substring(b,0,2);if(c===("0X")){b="0x"+$substring(b,2);d=G.LastIndexByte(b,80);if(d>=0){b=$substring(b,0,d)+"p"+$substring(b,(d+1>>0));}}else if(c===("0x")){e=G.LastIndexByte(b,80);if(e===-1){return a;}b=$substring(b,0,e)+"p"+$substring(b,(e+1>>0));}else if(c===("0O")){b="0o"+$substring(b,2);}else if(c===("0o")){return a;}else if(c===("0B")){b="0b"+$substring(b,2);}else if(c===("0b")){return a;}else{f=G.LastIndexByte(b,69);if(f>=0){b=$substring(b,0,f)+"e"+$substring(b,(f+1>>0));break;}if((b.charCodeAt((b.length-1>>0))===105)&&!G.ContainsAny(b,".e")){b=G.TrimLeft(b,"0_");if(b==="i"){b="0i";}}}}return new B.BasicLit.ptr(a.ValuePos,a.Kind,b);};R.ptr.prototype.possibleSelectorExpr=function(a,b,c){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=$assertType(a,CM,true);f=e[0];g=e[1];if(g){$s=1;continue;}$s=2;continue;case 1:h=d.selectorExpr(f,c,true);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=4;case 4:return i;case 2:$r=d.expr1(a,b,c);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;}return;}var $f={$blk:R.ptr.prototype.possibleSelectorExpr,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};R.prototype.possibleSelectorExpr=function(a,b,c){return this.$val.possibleSelectorExpr(a,b,c);};R.ptr.prototype.selectorExpr=function(a,b,c){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;$r=d.expr1(a.X,7,b);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new D.Token(53)]));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=d.lineFor(a.Sel.Pos());$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(d.pos.IsValid()&&d.pos.Line0){$s=1;continue;}$s=2;continue;case 1:$r=e.print(new BA([new O(62)]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:d[0]=0;f=0;g=a;h=0;case 4:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);j=$assertType(i,CU,true);k=j[1];if(!k){$s=6;continue;}$s=7;continue;case 6:if(e.output.$length>0){$s=8;continue;}$s=9;continue;case 8:l=i.Pos();$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=e.lineFor(l);$s=11;case 11:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=e.linebreak(m,1,0,(f===0)||(b===0)||e.linesFrom(d[0])>0);$s=12;case 12:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;case 9:e.recordLine((d.$ptr||(d.$ptr=new BE(function(){return this.$target[0];},function($v){this.$target[0]=$v;},d))));$r=e.stmt(i,c&&(f===(a.$length-1>>0)));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}o=i;while(true){p=$assertType(o,BR,true);q=p[0];if(q===BR.nil){break;}d[0]=d[0]+(1)>>0;o=q.Stmt;}f=f+(1)>>0;case 7:h++;$s=4;continue;case 5:if(b>0){$s=14;continue;}$s=15;continue;case 14:$r=e.print(new BA([new O(60)]));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 15:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.stmtList,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};R.prototype.stmtList=function(a,b,c){return this.$val.stmtList(a,b,c);};R.ptr.prototype.block=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;$r=c.print(new BA([new D.Pos(a.Lbrace),new D.Token(51)]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.stmtList(a.List,b,true);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=c.lineFor(a.Rbrace);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=c.linebreak(d,1,0,true);$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;$r=c.print(new BA([new D.Pos(a.Rbrace),new D.Token(56)]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.block,$c:true,$r,a,b,c,d,e,$s};return $f;};R.prototype.block=function(a,b){return this.$val.block(a,b);};AQ=function(a){var a,b,c,d;b=a;if($assertType(b,BC,true)[1]){c=b.$val;return true;}else if($assertType(b,CM,true)[1]){d=b.$val;return AQ(d.X);}return false;};AR=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=$assertType(a,CE,true);d=c[0];b[0]=c[1];if(b[0]){$s=1;continue;}$s=2;continue;case 1:$r=B.Inspect(d.X,(function(b){return function(e){var e,f,g,h;f=e;if($assertType(f,CE,true)[1]){g=f.$val;return false;}else if($assertType(f,CS,true)[1]){h=f.$val;if(AQ(h.Type)){b[0]=false;}return false;}return true;};})(b));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0]){$s=4;continue;}$s=5;continue;case 4:e=AR(d.X);$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=7;case 7:return f;case 5:case 2:$s=-1;return a;}return;}var $f={$blk:AR,$c:true,$r,a,b,c,d,e,f,$s};return $f;};AS=function(a){var a,b,c,d;b=$assertType(a,CE,true);c=b[0];d=b[1];if(d){return AS(c.X);}return a;};R.ptr.prototype.controlClause=function(a,b,c,d){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;$r=e.print(new BA([new O(32)]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=false;if($interfaceIsEqual(b,$ifaceNil)&&$interfaceIsEqual(d,$ifaceNil)){$s=2;continue;}$s=3;continue;case 2:if(!($interfaceIsEqual(c,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:g=AR(c);$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$r=e.expr(g);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=true;case 6:$s=4;continue;case 3:if(!($interfaceIsEqual(b,$ifaceNil))){$s=9;continue;}$s=10;continue;case 9:$r=e.stmt(b,false);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:$r=e.print(new BA([new D.Token(57),new O(32)]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(c,$ifaceNil))){$s=13;continue;}$s=14;continue;case 13:h=AR(c);$s=15;case 15:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=e.expr(h);$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=true;case 14:if(a){$s=17;continue;}$s=18;continue;case 17:$r=e.print(new BA([new D.Token(57),new O(32)]));$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=false;if(!($interfaceIsEqual(d,$ifaceNil))){$s=20;continue;}$s=21;continue;case 20:$r=e.stmt(d,false);$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=true;case 21:case 18:case 4:if(f){$s=23;continue;}$s=24;continue;case 23:$r=e.print(new BA([new O(32)]));$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 24:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.controlClause,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};R.prototype.controlClause=function(a,b,c,d){return this.$val.controlClause(a,b,c,d);};R.ptr.prototype.indentList=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(a.$length>=2){$s=1;continue;}$s=2;continue;case 1:c=(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]).Pos();$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=b.lineFor(c);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;g=(f=a.$length-1>>0,((f<0||f>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+f])).End();$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=b.lineFor(g);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if(0=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);o=n.Pos();$s=11;case 11:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=b.lineFor(o);$s=12;case 12:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;r=n.End();$s=13;case 13:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=b.lineFor(r);$s=14;case 14:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;if(k>0;}k=t;m++;$s=9;continue;case 10:$s=-1;return j>1;case 8:case 2:$s=-1;return false;}return;}var $f={$blk:R.ptr.prototype.indentList,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};R.prototype.indentList=function(a){return this.$val.indentList(a);};R.ptr.prototype.stmt=function(a,b){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=a.Pos();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$r=c.print(new BA([new D.Pos(d)]));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=a;if($assertType(e,CV,true)[1]){$s=3;continue;}if($assertType(e,CW,true)[1]){$s=4;continue;}if($assertType(e,CU,true)[1]){$s=5;continue;}if($assertType(e,BR,true)[1]){$s=6;continue;}if($assertType(e,CX,true)[1]){$s=7;continue;}if($assertType(e,CY,true)[1]){$s=8;continue;}if($assertType(e,CZ,true)[1]){$s=9;continue;}if($assertType(e,DA,true)[1]){$s=10;continue;}if($assertType(e,DB,true)[1]){$s=11;continue;}if($assertType(e,DC,true)[1]){$s=12;continue;}if($assertType(e,DD,true)[1]){$s=13;continue;}if($assertType(e,DE,true)[1]){$s=14;continue;}if($assertType(e,DF,true)[1]){$s=15;continue;}if($assertType(e,DG,true)[1]){$s=16;continue;}if($assertType(e,DH,true)[1]){$s=17;continue;}if($assertType(e,DI,true)[1]){$s=18;continue;}if($assertType(e,DJ,true)[1]){$s=19;continue;}if($assertType(e,DK,true)[1]){$s=20;continue;}if($assertType(e,DL,true)[1]){$s=21;continue;}if($assertType(e,DM,true)[1]){$s=22;continue;}if($assertType(e,DN,true)[1]){$s=23;continue;}$s=24;continue;case 3:f=e.$val;$r=c.print(new BA([new $String("BadStmt")]));$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 4:g=e.$val;$r=c.decl(g.Decl);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 5:h=e.$val;$s=25;continue;case 6:i=e.$val;$r=c.print(new BA([new O(60)]));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.expr(i.Label);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.print(new BA([new D.Pos(i.Colon),new D.Token(58),new O(62)]));$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ab=$assertType(i.Stmt,CU,true);ac=ab[0];ad=ab[1];if(ad){$s=31;continue;}$s=32;continue;case 31:if(!b){$s=34;continue;}$s=35;continue;case 34:$r=c.print(new BA([new O(10),new D.Pos(ac.Pos()),new D.Token(57)]));$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 35:$s=33;continue;case 32:ae=i.Stmt.Pos();$s=37;case 37:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=c.lineFor(ae);$s=38;case 38:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=c.linebreak(af,1,0,true);$s=39;case 39:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ag;case 33:$r=c.stmt(i.Stmt,b);$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 7:j=e.$val;$r=c.expr0(j.X,1);$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 8:k=e.$val;$r=c.expr0(k.Chan,1);$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.print(new BA([new O(32),new D.Pos(k.Arrow),new D.Token(36),new O(32)]));$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.expr0(k.Value,1);$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 9:l=e.$val;$r=c.expr0(l.X,2);$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.print(new BA([new D.Pos(l.TokPos),new D.Token(l.Tok)]));$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 10:m=e.$val;ah=1;if(m.Lhs.$length>1&&m.Rhs.$length>1){ah=ah+(1)>>0;}ai=m.Pos();$s=47;case 47:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}$r=c.exprList(ai,m.Lhs,ah,0,m.TokPos,false);$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.print(new BA([new O(32),new D.Pos(m.TokPos),new D.Token(m.Tok),new O(32)]));$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.exprList(m.TokPos,m.Rhs,ah,0,0,false);$s=50;case 50:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 11:n=e.$val;$r=c.print(new BA([new D.Token(72),new O(32)]));$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.expr(n.Call);$s=52;case 52:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 12:o=e.$val;$r=c.print(new BA([new D.Token(67),new O(32)]));$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.expr(o.Call);$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 13:p=e.$val;$r=c.print(new BA([new D.Token(80)]));$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(p.Results===BV.nil)){$s=56;continue;}$s=57;continue;case 56:$r=c.print(new BA([new O(32)]));$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aj=c.indentList(p.Results);$s=62;case 62:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}if(aj){$s=59;continue;}$s=60;continue;case 59:$r=c.print(new BA([new O(62)]));$s=63;case 63:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.exprList(0,p.Results,1,2,0,false);$s=64;case 64:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.print(new BA([new O(60)]));$s=65;case 65:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=61;continue;case 60:$r=c.exprList(0,p.Results,1,0,0,false);$s=66;case 66:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 61:case 57:$s=25;continue;case 14:q=e.$val;$r=c.print(new BA([new D.Token(q.Tok)]));$s=67;case 67:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(q.Label===BC.nil)){$s=68;continue;}$s=69;continue;case 68:$r=c.print(new BA([new O(32)]));$s=70;case 70:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.expr(q.Label);$s=71;case 71:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 69:$s=25;continue;case 15:r=e.$val;$r=c.block(r,1);$s=72;case 72:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 16:s=e.$val;$r=c.print(new BA([new D.Token(74)]));$s=73;case 73:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.controlClause(false,s.Init,s.Cond,$ifaceNil);$s=74;case 74:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.block(s.Body,1);$s=75;case 75:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(s.Else,$ifaceNil))){$s=76;continue;}$s=77;continue;case 76:$r=c.print(new BA([new O(32),new D.Token(68),new O(32)]));$s=78;case 78:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ak=s.Else;if($assertType(ak,DF,true)[1]||$assertType(ak,DG,true)[1]){$s=79;continue;}$s=80;continue;case 79:$r=c.stmt(s.Else,b);$s=82;case 82:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=81;continue;case 80:$r=c.print(new BA([new D.Token(51),new O(62),new O(12)]));$s=83;case 83:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.stmt(s.Else,true);$s=84;case 84:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.print(new BA([new O(60),new O(12),new D.Token(56)]));$s=85;case 85:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 81:case 77:$s=25;continue;case 17:t=e.$val;if(!(t.List===BV.nil)){$s=86;continue;}$s=87;continue;case 86:$r=c.print(new BA([new D.Token(62),new O(32)]));$s=89;case 89:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.exprList(t.Pos(),t.List,1,0,t.Colon,false);$s=90;case 90:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=88;continue;case 87:$r=c.print(new BA([new D.Token(66)]));$s=91;case 91:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 88:$r=c.print(new BA([new D.Pos(t.Colon),new D.Token(58)]));$s=92;case 92:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.stmtList(t.Body,1,b);$s=93;case 93:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 18:u=e.$val;$r=c.print(new BA([new D.Token(83)]));$s=94;case 94:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.controlClause(false,u.Init,u.Tag,$ifaceNil);$s=95;case 95:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.block(u.Body,0);$s=96;case 96:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 19:v=e.$val;$r=c.print(new BA([new D.Token(83)]));$s=97;case 97:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(v.Init,$ifaceNil))){$s=98;continue;}$s=99;continue;case 98:$r=c.print(new BA([new O(32)]));$s=100;case 100:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.stmt(v.Init,false);$s=101;case 101:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.print(new BA([new D.Token(57)]));$s=102;case 102:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 99:$r=c.print(new BA([new O(32)]));$s=103;case 103:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.stmt(v.Assign,false);$s=104;case 104:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.print(new BA([new O(32)]));$s=105;case 105:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.block(v.Body,0);$s=106;case 106:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 20:w=e.$val;if(!($interfaceIsEqual(w.Comm,$ifaceNil))){$s=107;continue;}$s=108;continue;case 107:$r=c.print(new BA([new D.Token(62),new O(32)]));$s=110;case 110:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.stmt(w.Comm,false);$s=111;case 111:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=109;continue;case 108:$r=c.print(new BA([new D.Token(66)]));$s=112;case 112:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 109:$r=c.print(new BA([new D.Pos(w.Colon),new D.Token(58)]));$s=113;case 113:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.stmtList(w.Body,1,b);$s=114;case 114:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 21:x=e.$val;$r=c.print(new BA([new D.Token(81),new O(32)]));$s=115;case 115:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}al=x.Body;if(!(al.List.$length===0)){am=false;$s=119;continue s;}an=c.posFor(al.Rbrace);$s=120;case 120:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}ao=c.commentBefore($clone(an,D.Position));$s=121;case 121:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}am=!ao;case 119:if(am){$s=116;continue;}$s=117;continue;case 116:$r=c.print(new BA([new D.Pos(al.Lbrace),new D.Token(51),new D.Pos(al.Rbrace),new D.Token(56)]));$s=122;case 122:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=118;continue;case 117:$r=c.block(al,0);$s=123;case 123:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 118:$s=25;continue;case 22:y=e.$val;$r=c.print(new BA([new D.Token(70)]));$s=124;case 124:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.controlClause(true,y.Init,y.Cond,y.Post);$s=125;case 125:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.block(y.Body,1);$s=126;case 126:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 23:z=e.$val;$r=c.print(new BA([new D.Token(70),new O(32)]));$s=127;case 127:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(z.Key,$ifaceNil))){$s=128;continue;}$s=129;continue;case 128:$r=c.expr(z.Key);$s=130;case 130:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(z.Value,$ifaceNil))){$s=131;continue;}$s=132;continue;case 131:ap=z.Value.Pos();$s=133;case 133:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}$r=c.print(new BA([new D.Pos(ap),new D.Token(52),new O(32)]));$s=134;case 134:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.expr(z.Value);$s=135;case 135:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 132:$r=c.print(new BA([new O(32),new D.Pos(z.TokPos),new D.Token(z.Tok),new O(32)]));$s=136;case 136:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 129:$r=c.print(new BA([new D.Token(79),new O(32)]));$s=137;case 137:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aq=AR(z.X);$s=138;case 138:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}$r=c.expr(aq);$s=139;case 139:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.print(new BA([new O(32)]));$s=140;case 140:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.block(z.Body,1);$s=141;case 141:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=25;continue;case 24:aa=e;$panic(new $String("unreachable"));case 25:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.stmt,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};R.prototype.stmt=function(a,b){return this.$val.stmt(a,b);};AT=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=[b];b[0]=$makeSlice(DO,a.$length);c=(function(b){return function(c,d,e){var c,d,e;if(e){while(true){if(!(c=b[0].$length)?($throwRuntimeError("index out of range"),undefined):b[0].$array[b[0].$offset+c]=true);c=c+(1)>>0;}}};})(b);d=-1;e=false;f=a;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=$assertType(i,BH);if(!(j.Values===BV.nil)){$s=3;continue;}$s=4;continue;case 3:if(d<0){d=h;e=false;}$s=5;continue;case 4:if(d>=0){$s=6;continue;}$s=7;continue;case 6:$r=c(d,h,e);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=-1;case 7:case 5:if(!($interfaceIsEqual(j.Type,$ifaceNil))){e=true;}g++;$s=1;continue;case 2:if(d>=0){$s=9;continue;}$s=10;continue;case 9:$r=c(d,a.$length,e);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:$s=-1;return b[0];}return;}var $f={$blk:AT,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};R.ptr.prototype.valueSpec=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;$r=c.setComment(a.Doc);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.identList(a.Names,false);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=3;if(!($interfaceIsEqual(a.Type,$ifaceNil))||b){$s=3;continue;}$s=4;continue;case 3:$r=c.print(new BA([new O(11)]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=d-(1)>>0;case 4:if(!($interfaceIsEqual(a.Type,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:$r=c.expr(a.Type);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:if(!(a.Values===BV.nil)){$s=9;continue;}$s=10;continue;case 9:$r=c.print(new BA([new O(11),new D.Token(42),new O(32)]));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.exprList(0,a.Values,1,0,0,false);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=d-(1)>>0;case 10:if(!(a.Comment===BM.nil)){$s=13;continue;}$s=14;continue;case 13:case 15:if(!(d>0)){$s=16;continue;}$r=c.print(new BA([new O(11)]));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=d-(1)>>0;$s=15;continue;case 16:$r=c.setComment(a.Comment);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.valueSpec,$c:true,$r,a,b,c,d,$s};return $f;};R.prototype.valueSpec=function(a,b){return this.$val.valueSpec(a,b);};AU=function(a){var a,b,c,d,e,f,g,h;if(!((a.Kind===9))){return a;}b=L.Unquote(a.Value);c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){return a;}if(c===""){return a;}e=c;f=0;while(true){if(!(f?[\\]^{|}`\xEF\xBF\xBD",h)){return a;}f+=g[1];}c=L.Quote(c);if(c===a.Value){return a;}return new B.BasicLit.ptr(a.ValuePos,9,c);};R.ptr.prototype.spec=function(a,b,c){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=a;if($assertType(e,BG,true)[1]){$s=1;continue;}if($assertType(e,BH,true)[1]){$s=2;continue;}if($assertType(e,BI,true)[1]){$s=3;continue;}$s=4;continue;case 1:f=e.$val;$r=d.setComment(f.Doc);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(f.Name===BC.nil)){$s=7;continue;}$s=8;continue;case 7:$r=d.expr(f.Name);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new O(32)]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:$r=d.expr(AU(f.Path));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.setComment(f.Comment);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new D.Pos(f.EndPos)]));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 2:g=e.$val;if(!((b===1))){$s=14;continue;}$s=15;continue;case 14:$r=d.internalError(new BA([new $String("expected n = 1; got"),new $Int(b)]));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 15:$r=d.setComment(g.Doc);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.identList(g.Names,c);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(g.Type,$ifaceNil))){$s=19;continue;}$s=20;continue;case 19:$r=d.print(new BA([new O(32)]));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.expr(g.Type);$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 20:if(!(g.Values===BV.nil)){$s=23;continue;}$s=24;continue;case 23:$r=d.print(new BA([new O(32),new D.Token(42),new O(32)]));$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.exprList(0,g.Values,1,0,0,false);$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 24:$r=d.setComment(g.Comment);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 3:h=e.$val;$r=d.setComment(h.Doc);$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.expr(h.Name);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(h.TypeParams===CF.nil)){$s=30;continue;}$s=31;continue;case 30:$r=d.parameters(h.TypeParams,2);$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 31:if(b===1){$s=33;continue;}$s=34;continue;case 33:$r=d.print(new BA([new O(32)]));$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=35;continue;case 34:$r=d.print(new BA([new O(11)]));$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 35:if(new D.Pos(h.Assign).IsValid()){$s=38;continue;}$s=39;continue;case 38:$r=d.print(new BA([new D.Token(42),new O(32)]));$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 39:$r=d.expr(h.Type);$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.setComment(h.Comment);$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 4:i=e;$panic(new $String("unreachable"));case 5:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.spec,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};R.prototype.spec=function(a,b,c){return this.$val.spec(a,b,c);};R.ptr.prototype.genDecl=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=this;$r=d.setComment(a.Doc);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.print(new BA([new D.Pos(a.Pos()),new D.Token(a.Tok),new O(32)]));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(new D.Pos(a.Lparen).IsValid()||a.Specs.$length>1){$s=3;continue;}if(a.Specs.$length>0){$s=4;continue;}$s=5;continue;case 3:$r=d.print(new BA([new D.Pos(a.Lparen),new D.Token(49)]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=a.Specs.$length;if(e>0){$s=7;continue;}$s=8;continue;case 7:$r=d.print(new BA([new O(62),new O(12)]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(e>1&&((a.Tok===64)||(a.Tok===85))){$s=10;continue;}$s=11;continue;case 10:f=AT(a.Specs);$s=13;case 13:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;b[0]=0;h=a.Specs;i=0;case 14:if(!(i=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]);if(j>0){$s=16;continue;}$s=17;continue;case 16:l=k.Pos();$s=18;case 18:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=d.lineFor(l);$s=19;case 19:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=d.linebreak(m,1,0,d.linesFrom(b[0])>0);$s=20;case 20:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;case 17:d.recordLine((b.$ptr||(b.$ptr=new BE(function(){return this.$target[0];},function($v){this.$target[0]=$v;},b))));$r=d.valueSpec($assertType(k,BH),((j<0||j>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+j]));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i++;$s=14;continue;case 15:$s=12;continue;case 11:c[0]=0;o=a.Specs;p=0;case 22:if(!(p=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]);if(q>0){$s=24;continue;}$s=25;continue;case 24:s=r.Pos();$s=26;case 26:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=d.lineFor(s);$s=27;case 27:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=d.linebreak(t,1,0,d.linesFrom(c[0])>0);$s=28;case 28:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}u;case 25:d.recordLine((c.$ptr||(c.$ptr=new BE(function(){return this.$target[0];},function($v){this.$target[0]=$v;},c))));$r=d.spec(r,e,false);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p++;$s=22;continue;case 23:case 12:$r=d.print(new BA([new O(60),new O(12)]));$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:$r=d.print(new BA([new D.Pos(a.Rparen),new D.Token(54)]));$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 4:$r=d.spec((v=a.Specs,(0>=v.$length?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+0])),1,true);$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.genDecl,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};R.prototype.genDecl=function(a){return this.$val.genDecl(a);};R.ptr.prototype.nodeSize=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=0;e=this;f=(g=$mapIndex(e.nodeSizes,B.Node.keyFor(a)),g!==undefined?[g.v,true]:[0,false]);h=f[0];i=f[1];if(i){d=h;$s=-1;return d;}d=b+1>>0;j=a;(e.nodeSizes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(j),{k:j,v:d});k=new AD.ptr(1,0,0);c[0]=new J.Buffer.ptr(AY.nil,0,0);l=k.fprint(c[0],e.fset,a,e.nodeSizes);$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;if(!($interfaceIsEqual(m,$ifaceNil))){$s=-1;return d;}if(c[0].Len()<=b){n=c[0].Bytes();o=0;while(true){if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]);if(p<32){$s=-1;return d;}o++;}d=c[0].Len();q=a;(e.nodeSizes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(q),{k:q,v:d});}$s=-1;return d;}return;}var $f={$blk:R.ptr.prototype.nodeSize,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};R.prototype.nodeSize=function(a,b){return this.$val.nodeSize(a,b);};R.ptr.prototype.numLines=function(a){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Pos();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(new D.Pos(d).IsValid()){$s=2;continue;}$s=3;continue;case 2:e=a.End();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(new D.Pos(f).IsValid()){$s=5;continue;}$s=6;continue;case 5:g=b.lineFor(f);$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=b.lineFor(d);$s=8;case 8:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=(g-h>>0)+1>>0;$s=9;case 9:return i;case 6:case 3:$s=-1;return 1073741824;}return;}var $f={$blk:R.ptr.prototype.numLines,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};R.prototype.numLines=function(a){return this.$val.numLines(a);};R.ptr.prototype.bodySize=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=a.Pos();e=a.Rbrace;if(!(new D.Pos(d).IsValid()&&new D.Pos(e).IsValid())){f=false;$s=3;continue s;}g=c.lineFor(d);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=c.lineFor(e);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}f=!((g===h));case 3:if(f){$s=1;continue;}$s=2;continue;case 1:$s=-1;return b+1>>0;case 2:if(a.List.$length>5){$s=-1;return b+1>>0;}i=c.posFor(e);$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=c.commentSizeBefore($clone(i,D.Position));$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=a.List;m=0;case 8:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);if(k>b){$s=9;continue;}if(n>0){k=k+(2)>>0;}p=c.nodeSize(o,b);$s=10;case 10:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}k=k+(p)>>0;m++;$s=8;continue;case 9:$s=-1;return k;}return;}var $f={$blk:R.ptr.prototype.bodySize,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};R.prototype.bodySize=function(a,b){return this.$val.bodySize(a,b);};R.ptr.prototype.funcBody=function(a,b,c){var{a,b,c,d,e,f,g,h,i,$s,$deferred,$r,$c}=$restore(this,{a,b,c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=[d];d[0]=this;if(c===DF.nil){$s=1;continue;}$s=2;continue;case 1:$s=3;case 3:return;case 2:$deferred.push([(function(d){return function(e){var e;d[0].level=e;};})(d),[d[0].level]]);d[0].level=0;e=d[0].bodySize(c,100);$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}if((a+e>>0)<=100){$s=4;continue;}$s=5;continue;case 4:$r=d[0].print(new BA([new O(b),new D.Pos(c.Lbrace),new D.Token(51)]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c.List.$length>0){$s=8;continue;}$s=9;continue;case 8:$r=d[0].print(new BA([new O(32)]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=c.List;g=0;case 11:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(h>0){$s=13;continue;}$s=14;continue;case 13:$r=d[0].print(new BA([new D.Token(57),new O(32)]));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:$r=d[0].stmt(i,h===(c.List.$length-1>>0));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g++;$s=11;continue;case 12:$r=d[0].print(new BA([new O(32)]));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:$r=d[0].print(new BA([new P(2),new D.Pos(c.Rbrace),new D.Token(56),new P(2)]));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=19;case 19:return;case 5:if(!((b===0))){$s=20;continue;}$s=21;continue;case 20:$r=d[0].print(new BA([new O(32)]));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 21:$r=d[0].block(c,1);$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:R.ptr.prototype.funcBody,$c:true,$r,a,b,c,d,e,f,g,h,i,$s,$deferred};return $f;}}};R.prototype.funcBody=function(a,b,c){return this.$val.funcBody(a,b,c);};R.ptr.prototype.distanceFrom=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!(new D.Pos(a).IsValid()&&c.pos.IsValid())){d=false;$s=3;continue s;}e=c.posFor(a);$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e.Line===c.pos.Line;case 3:if(d){$s=1;continue;}$s=2;continue;case 1:$s=-1;return c.out.Column-b>>0;case 2:$s=-1;return 1073741824;}return;}var $f={$blk:R.ptr.prototype.distanceFrom,$c:true,$r,a,b,c,d,e,$s};return $f;};R.prototype.distanceFrom=function(a,b){return this.$val.distanceFrom(a,b);};R.ptr.prototype.funcDecl=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.setComment(a.Doc);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=a.Pos();$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$r=b.print(new BA([new D.Pos(c),new D.Token(71),new O(32)]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=b.out.Column-5>>0;if(!(a.Recv===CF.nil)){$s=4;continue;}$s=5;continue;case 4:$r=b.parameters(a.Recv,0);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.print(new BA([new O(32)]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:$r=b.expr(a.Name);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.signature(a.Type);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=a.Pos();$s=10;case 10:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=b.distanceFrom(e,d);$s=11;case 11:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$r=b.funcBody(f,11,a.Body);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.funcDecl,$c:true,$r,a,b,c,d,e,f,$s};return $f;};R.prototype.funcDecl=function(a){return this.$val.funcDecl(a);};R.ptr.prototype.decl=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a;if($assertType(c,DP,true)[1]){$s=1;continue;}if($assertType(c,BJ,true)[1]){$s=2;continue;}if($assertType(c,BK,true)[1]){$s=3;continue;}$s=4;continue;case 1:d=c.$val;$r=b.print(new BA([new D.Pos(d.Pos()),new $String("BadDecl")]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 2:e=c.$val;$r=b.genDecl(e);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 3:f=c.$val;$r=b.funcDecl(f);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 4:g=c;$panic(new $String("unreachable"));case 5:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.decl,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};R.prototype.decl=function(a){return this.$val.decl(a);};AV=function(a){var a,b,c,d,e;b=0;b=0;c=a;if($assertType(c,BJ,true)[1]){d=c.$val;b=d.Tok;}else if($assertType(c,BK,true)[1]){e=c.$val;b=71;}return b;};R.ptr.prototype.declList=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=0;d=a;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=c;c=AV(f);if(b.output.$length>0){$s=3;continue;}$s=4;continue;case 3:h=1;if(!((g===c))||!(Y(f)===BM.nil)){h=2;}i=f.Pos();$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=b.lineFor(i);$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=h;if(!(c===71)){m=false;$s=7;continue s;}n=b.numLines(f);$s=8;case 8:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n>1;case 7:o=m;p=b.linebreak(k,l,0,o);$s=9;case 9:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;case 4:$r=b.decl(f);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.declList,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};R.prototype.declList=function(a){return this.$val.declList(a);};R.ptr.prototype.file=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.setComment(a.Doc);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.print(new BA([new D.Pos(a.Pos()),new D.Token(78),new O(32)]));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.expr(a.Name);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.declList(a.Decls);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.print(new BA([new O(10)]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.file,$c:true,$r,a,b,$s};return $f;};R.prototype.file=function(a){return this.$val.file(a);};R.ptr.prototype.fixGoBuildLines=function(){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if((a.goBuild.$length+a.plusBuild.$length>>0)===0){$s=-1;return;}b=0;c=0;while(true){d=true;while(true){if(!(c=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+c]))===32)||((f=a.output,((c<0||c>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+c]))===9)))){break;}c=c+(1)>>0;}if((c+3>>0)=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+c]))===255)&&((h=a.output,i=c+1>>0,((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]))===47)&&((j=a.output,k=c+2>>0,((k<0||k>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]))===47)){d=false;while(true){if(!(c=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+c]))))){break;}c=c+(1)>>0;}}if(c>=a.output.$length||!AX((m=a.output,((c<0||c>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+c])))){break;}c=c+(1)>>0;if(d){b=c;}}if(a.goBuild.$length>0&&(n=a.goBuild,(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0]))=p.$length?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+0]));}else if(a.plusBuild.$length>0&&(o=a.plusBuild,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0]))=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+0]));}r=$ifaceNil;s=a.goBuild.$length;if(s===(0)){$s=2;continue;}if(s===(1)){$s=3;continue;}$s=4;continue;case 2:t=a.plusBuild;u=0;case 5:if(!(u=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]);x=C.Parse(a.commentTextAt(v));$s=7;case 7:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;y=w[0];z=w[1];if(!($interfaceIsEqual(z,$ifaceNil))){r=$ifaceNil;$s=6;continue;}if($interfaceIsEqual(r,$ifaceNil)){r=y;}else{r=new C.AndExpr.ptr(r,y);}u++;$s=5;continue;case 6:$s=4;continue;case 3:ac=C.Parse(a.commentTextAt((ab=a.goBuild,(0>=ab.$length?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+0]))));$s=8;case 8:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}aa=ac;r=aa[0];case 4:case 1:ad=AY.nil;if($interfaceIsEqual(r,$ifaceNil)){$s=9;continue;}$s=10;continue;case 9:ae=a.goBuild;af=0;while(true){if(!(af=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+af]);ad=$appendSlice(ad,a.lineAt(ag));af++;}ah=a.plusBuild;ai=0;while(true){if(!(ai=ah.$length)?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+ai]);ad=$appendSlice(ad,a.lineAt(aj));ai++;}$s=11;continue;case 10:ad=$append(ad,255);ad=$appendSlice(ad,"//go:build ");ak=ad;al=r.String();$s=12;case 12:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al;ad=$appendSlice(ak,am);ad=$append(ad,255,10);if(a.plusBuild.$length>0){$s=13;continue;}$s=14;continue;case 13:ao=C.PlusBuildLines(r);$s=15;case 15:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}an=ao;ap=an[0];aq=an[1];if(!($interfaceIsEqual(aq,$ifaceNil))){$s=16;continue;}$s=17;continue;case 16:ar=aq.Error();$s=18;case 18:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}ap=new DQ(["// +build error: "+ar]);case 17:as=ap;at=0;while(true){if(!(at=as.$length)?($throwRuntimeError("index out of range"),undefined):as.$array[as.$offset+at]);ad=$append(ad,255);ad=$appendSlice(ad,au);ad=$append(ad,255,10);at++;}case 14:case 11:ad=$append(ad,10);av=$appendSlice(a.goBuild,a.plusBuild);$r=N.Ints(av);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aw=AY.nil;ax=b;ay=av;az=0;while(true){if(!(az=ay.$length)?($throwRuntimeError("index out of range"),undefined):ay.$array[ay.$offset+az]);if(ba>0;az++;}aw=AW(aw,$subslice(a.output,ax));bb=aw.$length;if(bb>=2&&AX((bc=bb-1>>0,((bc<0||bc>=aw.$length)?($throwRuntimeError("index out of range"),undefined):aw.$array[aw.$offset+bc])))&&AX((bd=bb-2>>0,((bd<0||bd>=aw.$length)?($throwRuntimeError("index out of range"),undefined):aw.$array[aw.$offset+bd])))){aw=$subslice(aw,0,(bb-1>>0));}a.output=$subslice(a.output,0,b);a.output=$appendSlice(a.output,ad);a.output=$appendSlice(a.output,aw);$s=-1;return;}return;}var $f={$blk:R.ptr.prototype.fixGoBuildLines,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};R.prototype.fixGoBuildLines=function(){return this.$val.fixGoBuildLines();};AW=function(a,b){var a,b,c,d;if(b.$length>0&&AX((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]))&&((a.$length===0)||a.$length>=2&&AX((c=a.$length-1>>0,((c<0||c>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+c])))&&AX((d=a.$length-2>>0,((d<0||d>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+d]))))){b=$subslice(b,1);}return $appendSlice(a,b);};R.ptr.prototype.lineAt=function(a){var a,b,c,d;b=this;c=a;while(true){if(!(c=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]))))){break;}c=c+(1)>>0;}if(c>0;}return $subslice(b.output,a,c);};R.prototype.lineAt=function(a){return this.$val.lineAt(a);};R.ptr.prototype.commentTextAt=function(a){var a,b,c,d,e,f;b=this;if(a=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]))===255)){a=a+(1)>>0;}d=a;while(true){if(!(d=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+d]))===255))&&!AX((f=b.output,((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]))))){break;}d=d+(1)>>0;}return($bytesToString($subslice(b.output,a,d)));};R.prototype.commentTextAt=function(a){return this.$val.commentTextAt(a);};AX=function(a){var a;return(a===10)||(a===12);};DU.methods=[{prop:"init",name:"init",pkg:"go/printer",typ:$funcType([DR,BS,DS],[],false)},{prop:"internalError",name:"internalError",pkg:"go/printer",typ:$funcType([BA],[],true)},{prop:"commentsHaveNewline",name:"commentsHaveNewline",pkg:"go/printer",typ:$funcType([CH],[$Bool],false)},{prop:"nextComment",name:"nextComment",pkg:"go/printer",typ:$funcType([],[],false)},{prop:"commentBefore",name:"commentBefore",pkg:"go/printer",typ:$funcType([D.Position],[$Bool],false)},{prop:"commentSizeBefore",name:"commentSizeBefore",pkg:"go/printer",typ:$funcType([D.Position],[$Int],false)},{prop:"recordLine",name:"recordLine",pkg:"go/printer",typ:$funcType([BE],[],false)},{prop:"linesFrom",name:"linesFrom",pkg:"go/printer",typ:$funcType([$Int],[$Int],false)},{prop:"posFor",name:"posFor",pkg:"go/printer",typ:$funcType([D.Pos],[D.Position],false)},{prop:"lineFor",name:"lineFor",pkg:"go/printer",typ:$funcType([D.Pos],[$Int],false)},{prop:"writeLineDirective",name:"writeLineDirective",pkg:"go/printer",typ:$funcType([D.Position],[],false)},{prop:"writeIndent",name:"writeIndent",pkg:"go/printer",typ:$funcType([],[],false)},{prop:"writeByte",name:"writeByte",pkg:"go/printer",typ:$funcType([$Uint8,$Int],[],false)},{prop:"writeString",name:"writeString",pkg:"go/printer",typ:$funcType([D.Position,$String,$Bool],[],false)},{prop:"writeCommentPrefix",name:"writeCommentPrefix",pkg:"go/printer",typ:$funcType([D.Position,D.Position,BB,D.Token],[],false)},{prop:"writeComment",name:"writeComment",pkg:"go/printer",typ:$funcType([BB],[],false)},{prop:"writeCommentSuffix",name:"writeCommentSuffix",pkg:"go/printer",typ:$funcType([$Bool],[$Bool,$Bool],false)},{prop:"containsLinebreak",name:"containsLinebreak",pkg:"go/printer",typ:$funcType([],[$Bool],false)},{prop:"intersperseComments",name:"intersperseComments",pkg:"go/printer",typ:$funcType([D.Position,D.Token],[$Bool,$Bool],false)},{prop:"writeWhitespace",name:"writeWhitespace",pkg:"go/printer",typ:$funcType([$Int],[],false)},{prop:"print",name:"print",pkg:"go/printer",typ:$funcType([BA],[],true)},{prop:"flush",name:"flush",pkg:"go/printer",typ:$funcType([D.Position,D.Token],[$Bool,$Bool],false)},{prop:"printNode",name:"printNode",pkg:"go/printer",typ:$funcType([$emptyInterface],[$error],false)},{prop:"linebreak",name:"linebreak",pkg:"go/printer",typ:$funcType([$Int,$Int,O,$Bool],[$Int],false)},{prop:"setComment",name:"setComment",pkg:"go/printer",typ:$funcType([BM],[],false)},{prop:"identList",name:"identList",pkg:"go/printer",typ:$funcType([CG,$Bool],[],false)},{prop:"exprList",name:"exprList",pkg:"go/printer",typ:$funcType([D.Pos,BV,$Int,AG,D.Pos,$Bool],[],false)},{prop:"parameters",name:"parameters",pkg:"go/printer",typ:$funcType([CF,AH],[],false)},{prop:"signature",name:"signature",pkg:"go/printer",typ:$funcType([CA],[],false)},{prop:"isOneLineFieldList",name:"isOneLineFieldList",pkg:"go/printer",typ:$funcType([DT],[$Bool],false)},{prop:"setLineComment",name:"setLineComment",pkg:"go/printer",typ:$funcType([$String],[],false)},{prop:"fieldList",name:"fieldList",pkg:"go/printer",typ:$funcType([CF,$Bool,$Bool],[],false)},{prop:"binaryExpr",name:"binaryExpr",pkg:"go/printer",typ:$funcType([CI,$Int,$Int,$Int],[],false)},{prop:"expr1",name:"expr1",pkg:"go/printer",typ:$funcType([B.Expr,$Int,$Int],[],false)},{prop:"possibleSelectorExpr",name:"possibleSelectorExpr",pkg:"go/printer",typ:$funcType([B.Expr,$Int,$Int],[$Bool],false)},{prop:"selectorExpr",name:"selectorExpr",pkg:"go/printer",typ:$funcType([CM,$Int,$Bool],[$Bool],false)},{prop:"expr0",name:"expr0",pkg:"go/printer",typ:$funcType([B.Expr,$Int],[],false)},{prop:"expr",name:"expr",pkg:"go/printer",typ:$funcType([B.Expr],[],false)},{prop:"stmtList",name:"stmtList",pkg:"go/printer",typ:$funcType([BP,$Int,$Bool],[],false)},{prop:"block",name:"block",pkg:"go/printer",typ:$funcType([DF,$Int],[],false)},{prop:"controlClause",name:"controlClause",pkg:"go/printer",typ:$funcType([$Bool,B.Stmt,B.Expr,B.Stmt],[],false)},{prop:"indentList",name:"indentList",pkg:"go/printer",typ:$funcType([BV],[$Bool],false)},{prop:"stmt",name:"stmt",pkg:"go/printer",typ:$funcType([B.Stmt,$Bool],[],false)},{prop:"valueSpec",name:"valueSpec",pkg:"go/printer",typ:$funcType([BH,$Bool],[],false)},{prop:"spec",name:"spec",pkg:"go/printer",typ:$funcType([B.Spec,$Int,$Bool],[],false)},{prop:"genDecl",name:"genDecl",pkg:"go/printer",typ:$funcType([BJ],[],false)},{prop:"nodeSize",name:"nodeSize",pkg:"go/printer",typ:$funcType([B.Node,$Int],[$Int],false)},{prop:"numLines",name:"numLines",pkg:"go/printer",typ:$funcType([B.Node],[$Int],false)},{prop:"bodySize",name:"bodySize",pkg:"go/printer",typ:$funcType([DF,$Int],[$Int],false)},{prop:"funcBody",name:"funcBody",pkg:"go/printer",typ:$funcType([$Int,O,DF],[],false)},{prop:"distanceFrom",name:"distanceFrom",pkg:"go/printer",typ:$funcType([D.Pos,$Int],[$Int],false)},{prop:"funcDecl",name:"funcDecl",pkg:"go/printer",typ:$funcType([BK],[],false)},{prop:"decl",name:"decl",pkg:"go/printer",typ:$funcType([B.Decl],[],false)},{prop:"declList",name:"declList",pkg:"go/printer",typ:$funcType([BQ],[],false)},{prop:"file",name:"file",pkg:"go/printer",typ:$funcType([BL],[],false)},{prop:"fixGoBuildLines",name:"fixGoBuildLines",pkg:"go/printer",typ:$funcType([],[],false)},{prop:"lineAt",name:"lineAt",pkg:"go/printer",typ:$funcType([$Int],[AY],false)},{prop:"commentTextAt",name:"commentTextAt",pkg:"go/printer",typ:$funcType([$Int],[$String],false)}];DV.methods=[{prop:"resetSpace",name:"resetSpace",pkg:"go/printer",typ:$funcType([],[],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([AY],[$Int,$error],false)}];DR.methods=[{prop:"fprint",name:"fprint",pkg:"go/printer",typ:$funcType([E.Writer,BS,$emptyInterface,DS],[$error],false)},{prop:"Fprint",name:"Fprint",pkg:"",typ:$funcType([E.Writer,BS,$emptyInterface],[$error],false)}];Q.init("go/printer",[{prop:"cindex",name:"cindex",embedded:false,exported:false,typ:$Int,tag:""},{prop:"comment",name:"comment",embedded:false,exported:false,typ:BM,tag:""},{prop:"commentOffset",name:"commentOffset",embedded:false,exported:false,typ:$Int,tag:""},{prop:"commentNewline",name:"commentNewline",embedded:false,exported:false,typ:$Bool,tag:""}]);R.init("go/printer",[{prop:"Config",name:"Config",embedded:true,exported:true,typ:AD,tag:""},{prop:"fset",name:"fset",embedded:false,exported:false,typ:BS,tag:""},{prop:"output",name:"output",embedded:false,exported:false,typ:AY,tag:""},{prop:"indent",name:"indent",embedded:false,exported:false,typ:$Int,tag:""},{prop:"level",name:"level",embedded:false,exported:false,typ:$Int,tag:""},{prop:"mode",name:"mode",embedded:false,exported:false,typ:P,tag:""},{prop:"endAlignment",name:"endAlignment",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"impliedSemi",name:"impliedSemi",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"lastTok",name:"lastTok",embedded:false,exported:false,typ:D.Token,tag:""},{prop:"prevOpen",name:"prevOpen",embedded:false,exported:false,typ:D.Token,tag:""},{prop:"wsbuf",name:"wsbuf",embedded:false,exported:false,typ:AZ,tag:""},{prop:"goBuild",name:"goBuild",embedded:false,exported:false,typ:BT,tag:""},{prop:"plusBuild",name:"plusBuild",embedded:false,exported:false,typ:BT,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:D.Position,tag:""},{prop:"out",name:"out",embedded:false,exported:false,typ:D.Position,tag:""},{prop:"last",name:"last",embedded:false,exported:false,typ:D.Position,tag:""},{prop:"linePtr",name:"linePtr",embedded:false,exported:false,typ:BE,tag:""},{prop:"comments",name:"comments",embedded:false,exported:false,typ:BN,tag:""},{prop:"useNodeComments",name:"useNodeComments",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"commentInfo",name:"commentInfo",embedded:true,exported:false,typ:Q,tag:""},{prop:"nodeSizes",name:"nodeSizes",embedded:false,exported:false,typ:DS,tag:""},{prop:"cachedPos",name:"cachedPos",embedded:false,exported:false,typ:D.Pos,tag:""},{prop:"cachedLine",name:"cachedLine",embedded:false,exported:false,typ:$Int,tag:""}]);AA.init("go/printer",[{prop:"output",name:"output",embedded:false,exported:false,typ:E.Writer,tag:""},{prop:"state",name:"state",embedded:false,exported:false,typ:$Int,tag:""},{prop:"space",name:"space",embedded:false,exported:false,typ:AY,tag:""}]);AD.init("",[{prop:"Mode",name:"Mode",embedded:false,exported:true,typ:AC,tag:""},{prop:"Tabwidth",name:"Tabwidth",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Indent",name:"Indent",embedded:false,exported:true,typ:$Int,tag:""}]);AE.init("",[{prop:"Node",name:"Node",embedded:false,exported:true,typ:$emptyInterface,tag:""},{prop:"Comments",name:"Comments",embedded:false,exported:true,typ:BN,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=J.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}AB=(new AY($stringToBytes("\n")));}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["go/format"]=(function(){var $pkg={},$init,A,G,B,C,D,E,H,F,P,Q,L,I,J,K,N;A=$packages["bytes"];G=$packages["fmt"];B=$packages["go/ast"];C=$packages["go/parser"];D=$packages["go/printer"];E=$packages["go/token"];H=$packages["io"];F=$packages["strings"];P=$ptrType(B.File);Q=$sliceType($Uint8);I=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=P.nil;f=$throwNilPointerError;g=0;h=$ifaceNil;j=C.ParseFile(a,b,c,4);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;e=i[0];h=i[1];if($interfaceIsEqual(h,$ifaceNil)||!d){k=true;$s=4;continue s;}l=h.Error();$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=F.Contains(l,"expected 'package'");$s=6;case 6:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}k=!m;case 4:if(k){$s=2;continue;}$s=3;continue;case 2:$s=-1;return[e,f,g,h];case 3:n=$appendSlice((new Q($stringToBytes("package p;"))),c);p=C.ParseFile(a,b,n,4);$s=7;case 7:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;e=o[0];h=o[1];if($interfaceIsEqual(h,$ifaceNil)){$s=8;continue;}$s=9;continue;case 8:f=(function $b(q,r){var{q,r,s,t,$s,$r,$c}=$restore(this,{q,r});$s=$s||0;s:while(true){switch($s){case 0:q=$subslice(q,(r+10>>0));s=A.TrimSpace(q);$s=1;case 1:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;$s=2;case 2:return t;}return;}var $f={$blk:$b,$c:true,$r,q,r,s,t,$s};return $f;});$s=-1;return[e,f,g,h];case 9:q=h.Error();$s=12;case 12:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=F.Contains(q,"expected declaration");$s=13;case 13:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}if(!r){$s=10;continue;}$s=11;continue;case 10:$s=-1;return[e,f,g,h];case 11:s=$append($appendSlice((new Q($stringToBytes("package p; func _() {"))),c),10,10,125);u=C.ParseFile(a,b,s,4);$s=14;case 14:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;e=t[0];h=t[1];if($interfaceIsEqual(h,$ifaceNil)){f=(function $b(v,w){var{v,w,x,y,$s,$r,$c}=$restore(this,{v,w});$s=$s||0;s:while(true){switch($s){case 0:if(w<0){w=0;}v=$subslice(v,(($imul(2,w))+21>>0));v=$subslice(v,0,(v.$length-2>>0));x=A.TrimSpace(v);$s=1;case 1:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;$s=2;case 2:return y;}return;}var $f={$blk:$b,$c:true,$r,v,w,x,y,$s};return $f;});g=-1;}$s=-1;return[e,f,g,h];}return;}var $f={$blk:I,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};J=function(a,b,c,d,e,f){var{a,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=[g];h=[h];if(c===$throwNilPointerError){$s=1;continue;}$s=2;continue;case 1:g[0]=new A.Buffer.ptr(Q.nil,0,0);i=f.Fprint(g[0],a,b);$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return[Q.nil,j];}$s=-1;return[g[0].Bytes(),$ifaceNil];case 2:k=0;l=0;m=k;n=l;while(true){if(!(n=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+n])))){break;}if(((n<0||n>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+n])===10){m=n+1>>0;}n=n+(1)>>0;}o=Q.nil;o=$appendSlice(o,$subslice(e,0,m));p=0;q=false;r=$subslice(e,m,n);s=0;while(true){if(!(s=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]);u=t;if(u===(32)){q=true;}else if(u===(9)){p=p+(1)>>0;}s++;}if((p===0)&&q){p=1;}v=0;while(true){if(!(v>0;}f.Indent=p+d>>0;h[0]=new A.Buffer.ptr(Q.nil,0,0);w=f.Fprint(h[0],a,b);$s=4;case 4:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;if(!($interfaceIsEqual(x,$ifaceNil))){$s=-1;return[Q.nil,x];}y=c(h[0].Bytes(),f.Indent);$s=5;case 5:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;if(z.$length===0){$s=-1;return[e,$ifaceNil];}o=$appendSlice(o,z);m=e.$length;while(true){if(!(m>0&&K((aa=m-1>>0,((aa<0||aa>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+aa]))))){break;}m=m-(1)>>0;}$s=-1;return[$appendSlice(o,$subslice(e,m)),$ifaceNil];}return;}var $f={$blk:J,$c:true,$r,a,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};K=function(a){var a;return(a===32)||(a===9)||(a===10)||(a===13);};N=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=E.NewFileSet();d=I(b,"",a,true);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];g=c[2];h=c[3];if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return[Q.nil,h];}if(f===$throwNilPointerError){$s=2;continue;}$s=3;continue;case 2:$r=B.SortImports(b,e);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:i=J(b,e,f,g,a,$clone(L,D.Config));$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=6;case 6:return j;}return;}var $f={$blk:N,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};$pkg.Source=N;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}L=new D.Config.ptr(1073741830,8,0);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["container/heap"]=(function(){var $pkg={},$init,A,C,E,G,H,I;A=$packages["sort"];C=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a.Len();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;e=(d=c/2,(d===d&&d!==1/0&&d!==-1/0)?d>>0:$throwRuntimeError("integer divide by zero"))-1>>0;case 2:if(!(e>=0)){$s=3;continue;}f=I(a,e,c);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;e=e-(1)>>0;$s=2;continue;case 3:$s=-1;return;}return;}var $f={$blk:C,$c:true,$r,a,b,c,d,e,f,$s};return $f;};$pkg.Init=C;E=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a.Len();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b-1>>0;$r=a.Swap(0,c);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=I(a,0,c);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;e=a.Pop();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=5;case 5:return f;}return;}var $f={$blk:E,$c:true,$r,a,b,c,d,e,f,$s};return $f;};$pkg.Pop=E;G=function(a,b){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=a;d=b;e=a.Len();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=I(c,d,f);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(!g){$s=1;continue;}$s=2;continue;case 1:$r=H(a,b);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:G,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};$pkg.Fix=G;H=function(a,b){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:case 1:d=(c=((b-1>>0))/2,(c===c&&c!==1/0&&c!==-1/0)?c>>0:$throwRuntimeError("integer divide by zero"));if(d===b){e=true;$s=5;continue s;}f=a.Less(b,d);$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=!f;case 5:if(e){$s=3;continue;}$s=4;continue;case 3:$s=2;continue;case 4:$r=a.Swap(d,b);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=d;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:H,$c:true,$r,a,b,c,d,e,f,$s};return $f;};I=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=b;case 1:e=($imul(2,d))+1>>0;if(e>=c||e<0){$s=2;continue;}f=e;g=e+1>>0;if(!(gb;}return;}var $f={$blk:I,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["encoding/binary"]=(function(){var $pkg={},$init,A,B,C,D,E,M,N,O,W,X,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,J,S,F,G,H,K,L,P,Q,T,U,Y;A=$packages["errors"];B=$packages["io"];C=$packages["math"];D=$packages["reflect"];E=$packages["sync"];M=$pkg.ByteOrder=$newType(8,$kindInterface,"binary.ByteOrder",true,"encoding/binary",true,null);N=$pkg.littleEndian=$newType(0,$kindStruct,"binary.littleEndian",true,"encoding/binary",false,function(){this.$val=this;if(arguments.length===0){return;}});O=$pkg.bigEndian=$newType(0,$kindStruct,"binary.bigEndian",true,"encoding/binary",false,function(){this.$val=this;if(arguments.length===0){return;}});W=$pkg.decoder=$newType(0,$kindStruct,"binary.decoder",true,"encoding/binary",false,function(order_,buf_,offset_){this.$val=this;if(arguments.length===0){this.order=$ifaceNil;this.buf=Z.nil;this.offset=0;return;}this.order=order_;this.buf=buf_;this.offset=offset_;});X=$pkg.encoder=$newType(0,$kindStruct,"binary.encoder",true,"encoding/binary",false,function(order_,buf_,offset_){this.$val=this;if(arguments.length===0){this.order=$ifaceNil;this.buf=Z.nil;this.offset=0;return;}this.order=order_;this.buf=buf_;this.offset=offset_;});Z=$sliceType($Uint8);AA=$ptrType($Bool);AB=$ptrType($Int8);AC=$ptrType($Uint8);AD=$ptrType($Int16);AE=$ptrType($Uint16);AF=$ptrType($Int32);AG=$ptrType($Uint32);AH=$ptrType($Int64);AI=$ptrType($Uint64);AJ=$ptrType($Float32);AK=$ptrType($Float64);AL=$sliceType($Bool);AM=$sliceType($Int8);AN=$sliceType($Int16);AO=$sliceType($Uint16);AP=$sliceType($Int32);AQ=$sliceType($Uint32);AR=$sliceType($Int64);AS=$sliceType($Uint64);AT=$sliceType($Float32);AU=$sliceType($Float64);AV=$ptrType(W);AW=$ptrType(X);F=function(a,b){var a,b,c;c=0;while(true){if(!((b.$high>0||(b.$high===0&&b.$low>=128)))){break;}((c<0||c>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+c]=((((b.$low<<24>>>24))|128)>>>0));b=$shiftRightUint64(b,(7));c=c+(1)>>0;}((c<0||c>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+c]=((b.$low<<24>>>24)));return c+1>>0;};$pkg.PutUvarint=F;G=function(a){var a,b,c,d,e,f,g,h,i;b=new $Uint64(0,0);c=0;d=a;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(f===10){return[new $Uint64(0,0),-((f+1>>0))];}if(g<128){if((f===9)&&g>1){return[new $Uint64(0,0),-((f+1>>0))];}return[(h=$shiftLeft64((new $Uint64(0,g)),c),new $Uint64(b.$high|h.$high,(b.$low|h.$low)>>>0)),f+1>>0];}b=(i=$shiftLeft64((new $Uint64(0,((g&127)>>>0))),c),new $Uint64(b.$high|i.$high,(b.$low|i.$low)>>>0));c=c+(7)>>>0;e++;}return[new $Uint64(0,0),0];};$pkg.Uvarint=G;H=function(a,b){var a,b,c;c=$shiftLeft64((new $Uint64(b.$high,b.$low)),1);if((b.$high<0||(b.$high===0&&b.$low<0))){c=new $Uint64(~c.$high,~c.$low>>>0);}return F(a,c);};$pkg.PutVarint=H;K=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=new $Uint64(0,0);c=0;d=0;case 1:if(!(d<10)){$s=2;continue;}f=a.ReadByte();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return[b,h];}if(g<128){if((d===9)&&g>1){$s=-1;return[b,J];}$s=-1;return[(i=$shiftLeft64((new $Uint64(0,g)),c),new $Uint64(b.$high|i.$high,(b.$low|i.$low)>>>0)),$ifaceNil];}b=(j=$shiftLeft64((new $Uint64(0,((g&127)>>>0))),c),new $Uint64(b.$high|j.$high,(b.$low|j.$low)>>>0));c=c+(7)>>>0;d=d+(1)>>0;$s=1;continue;case 2:$s=-1;return[b,J];}return;}var $f={$blk:K,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};$pkg.ReadUvarint=K;L=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:c=K(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];g=((f=$shiftRightUint64(d,1),new $Int64(f.$high,f.$low)));if(!((h=new $Uint64(d.$high&0,(d.$low&1)>>>0),(h.$high===0&&h.$low===0)))){g=new $Int64(~g.$high,~g.$low>>>0);}$s=-1;return[g,e];}return;}var $f={$blk:L,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};$pkg.ReadVarint=L;N.ptr.prototype.Uint16=function(a){var a;$unused((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]));return((((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])<<16>>>16))|((((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])<<16>>>16))<<8<<16>>>16))>>>0;};N.prototype.Uint16=function(a){return this.$val.Uint16(a);};N.ptr.prototype.PutUint16=function(a,b){var a,b;$unused((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=((b<<24>>>24)));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=(((b>>>8<<16>>>16)<<24>>>24)));};N.prototype.PutUint16=function(a,b){return this.$val.PutUint16(a,b);};N.ptr.prototype.Uint32=function(a){var a;$unused((3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]));return((((((((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])>>>0))|((((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])>>>0))<<8>>>0))>>>0)|((((2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2])>>>0))<<16>>>0))>>>0)|((((3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3])>>>0))<<24>>>0))>>>0;};N.prototype.Uint32=function(a){return this.$val.Uint32(a);};N.ptr.prototype.PutUint32=function(a,b){var a,b;$unused((3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=((b<<24>>>24)));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=(((b>>>8>>>0)<<24>>>24)));(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=(((b>>>16>>>0)<<24>>>24)));(3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]=(((b>>>24>>>0)<<24>>>24)));};N.prototype.PutUint32=function(a,b){return this.$val.PutUint32(a,b);};N.ptr.prototype.Uint64=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;$unused((7>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+7]));return(b=(c=(d=(e=(f=(g=(h=(new $Uint64(0,(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]))),i=$shiftLeft64((new $Uint64(0,(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]))),8),new $Uint64(h.$high|i.$high,(h.$low|i.$low)>>>0)),j=$shiftLeft64((new $Uint64(0,(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]))),16),new $Uint64(g.$high|j.$high,(g.$low|j.$low)>>>0)),k=$shiftLeft64((new $Uint64(0,(3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]))),24),new $Uint64(f.$high|k.$high,(f.$low|k.$low)>>>0)),l=$shiftLeft64((new $Uint64(0,(4>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+4]))),32),new $Uint64(e.$high|l.$high,(e.$low|l.$low)>>>0)),m=$shiftLeft64((new $Uint64(0,(5>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+5]))),40),new $Uint64(d.$high|m.$high,(d.$low|m.$low)>>>0)),n=$shiftLeft64((new $Uint64(0,(6>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+6]))),48),new $Uint64(c.$high|n.$high,(c.$low|n.$low)>>>0)),o=$shiftLeft64((new $Uint64(0,(7>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+7]))),56),new $Uint64(b.$high|o.$high,(b.$low|o.$low)>>>0));};N.prototype.Uint64=function(a){return this.$val.Uint64(a);};N.ptr.prototype.PutUint64=function(a,b){var a,b;$unused((7>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+7]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=((b.$low<<24>>>24)));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=(($shiftRightUint64(b,8).$low<<24>>>24)));(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=(($shiftRightUint64(b,16).$low<<24>>>24)));(3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]=(($shiftRightUint64(b,24).$low<<24>>>24)));(4>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+4]=(($shiftRightUint64(b,32).$low<<24>>>24)));(5>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+5]=(($shiftRightUint64(b,40).$low<<24>>>24)));(6>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+6]=(($shiftRightUint64(b,48).$low<<24>>>24)));(7>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+7]=(($shiftRightUint64(b,56).$low<<24>>>24)));};N.prototype.PutUint64=function(a,b){return this.$val.PutUint64(a,b);};N.ptr.prototype.String=function(){return"LittleEndian";};N.prototype.String=function(){return this.$val.String();};N.ptr.prototype.GoString=function(){return"binary.LittleEndian";};N.prototype.GoString=function(){return this.$val.GoString();};O.ptr.prototype.Uint16=function(a){var a;$unused((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]));return((((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])<<16>>>16))|((((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])<<16>>>16))<<8<<16>>>16))>>>0;};O.prototype.Uint16=function(a){return this.$val.Uint16(a);};O.ptr.prototype.PutUint16=function(a,b){var a,b;$unused((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=(((b>>>8<<16>>>16)<<24>>>24)));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=((b<<24>>>24)));};O.prototype.PutUint16=function(a,b){return this.$val.PutUint16(a,b);};O.ptr.prototype.Uint32=function(a){var a;$unused((3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]));return((((((((3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3])>>>0))|((((2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2])>>>0))<<8>>>0))>>>0)|((((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])>>>0))<<16>>>0))>>>0)|((((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])>>>0))<<24>>>0))>>>0;};O.prototype.Uint32=function(a){return this.$val.Uint32(a);};O.ptr.prototype.PutUint32=function(a,b){var a,b;$unused((3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=(((b>>>24>>>0)<<24>>>24)));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=(((b>>>16>>>0)<<24>>>24)));(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=(((b>>>8>>>0)<<24>>>24)));(3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]=((b<<24>>>24)));};O.prototype.PutUint32=function(a,b){return this.$val.PutUint32(a,b);};O.ptr.prototype.Uint64=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;$unused((7>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+7]));return(b=(c=(d=(e=(f=(g=(h=(new $Uint64(0,(7>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+7]))),i=$shiftLeft64((new $Uint64(0,(6>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+6]))),8),new $Uint64(h.$high|i.$high,(h.$low|i.$low)>>>0)),j=$shiftLeft64((new $Uint64(0,(5>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+5]))),16),new $Uint64(g.$high|j.$high,(g.$low|j.$low)>>>0)),k=$shiftLeft64((new $Uint64(0,(4>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+4]))),24),new $Uint64(f.$high|k.$high,(f.$low|k.$low)>>>0)),l=$shiftLeft64((new $Uint64(0,(3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]))),32),new $Uint64(e.$high|l.$high,(e.$low|l.$low)>>>0)),m=$shiftLeft64((new $Uint64(0,(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]))),40),new $Uint64(d.$high|m.$high,(d.$low|m.$low)>>>0)),n=$shiftLeft64((new $Uint64(0,(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]))),48),new $Uint64(c.$high|n.$high,(c.$low|n.$low)>>>0)),o=$shiftLeft64((new $Uint64(0,(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]))),56),new $Uint64(b.$high|o.$high,(b.$low|o.$low)>>>0));};O.prototype.Uint64=function(a){return this.$val.Uint64(a);};O.ptr.prototype.PutUint64=function(a,b){var a,b;$unused((7>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+7]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=(($shiftRightUint64(b,56).$low<<24>>>24)));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=(($shiftRightUint64(b,48).$low<<24>>>24)));(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=(($shiftRightUint64(b,40).$low<<24>>>24)));(3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]=(($shiftRightUint64(b,32).$low<<24>>>24)));(4>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+4]=(($shiftRightUint64(b,24).$low<<24>>>24)));(5>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+5]=(($shiftRightUint64(b,16).$low<<24>>>24)));(6>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+6]=(($shiftRightUint64(b,8).$low<<24>>>24)));(7>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+7]=((b.$low<<24>>>24)));};O.prototype.PutUint64=function(a,b){return this.$val.PutUint64(a,b);};O.ptr.prototype.String=function(){return"BigEndian";};O.prototype.String=function(){return this.$val.String();};O.ptr.prototype.GoString=function(){return"binary.BigEndian";};O.prototype.GoString=function(){return this.$val.GoString();};P=function(a,b,c){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=Y(c);if(!((d===0))){$s=1;continue;}$s=2;continue;case 1:e=$makeSlice(Z,d);g=B.ReadFull(a,e);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[1];if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return h;}i=c;if($assertType(i,AA,true)[1]){$s=4;continue;}if($assertType(i,AB,true)[1]){$s=5;continue;}if($assertType(i,AC,true)[1]){$s=6;continue;}if($assertType(i,AD,true)[1]){$s=7;continue;}if($assertType(i,AE,true)[1]){$s=8;continue;}if($assertType(i,AF,true)[1]){$s=9;continue;}if($assertType(i,AG,true)[1]){$s=10;continue;}if($assertType(i,AH,true)[1]){$s=11;continue;}if($assertType(i,AI,true)[1]){$s=12;continue;}if($assertType(i,AJ,true)[1]){$s=13;continue;}if($assertType(i,AK,true)[1]){$s=14;continue;}if($assertType(i,AL,true)[1]){$s=15;continue;}if($assertType(i,AM,true)[1]){$s=16;continue;}if($assertType(i,Z,true)[1]){$s=17;continue;}if($assertType(i,AN,true)[1]){$s=18;continue;}if($assertType(i,AO,true)[1]){$s=19;continue;}if($assertType(i,AP,true)[1]){$s=20;continue;}if($assertType(i,AQ,true)[1]){$s=21;continue;}if($assertType(i,AR,true)[1]){$s=22;continue;}if($assertType(i,AS,true)[1]){$s=23;continue;}if($assertType(i,AT,true)[1]){$s=24;continue;}if($assertType(i,AU,true)[1]){$s=25;continue;}$s=26;continue;case 4:j=i.$val;j.$set(!(((0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])===0)));$s=27;continue;case 5:k=i.$val;k.$set((((0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])<<24>>24)));$s=27;continue;case 6:l=i.$val;l.$set((0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]));$s=27;continue;case 7:m=i.$val;ag=b.Uint16(e);$s=28;case 28:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}m.$set(((ag<<16>>16)));$s=27;continue;case 8:n=i.$val;ah=b.Uint16(e);$s=29;case 29:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}n.$set(ah);$s=27;continue;case 9:o=i.$val;ai=b.Uint32(e);$s=30;case 30:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}o.$set(((ai>>0)));$s=27;continue;case 10:p=i.$val;aj=b.Uint32(e);$s=31;case 31:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}p.$set(aj);$s=27;continue;case 11:q=i.$val;al=b.Uint64(e);$s=32;case 32:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}q.$set(((ak=al,new $Int64(ak.$high,ak.$low))));$s=27;continue;case 12:r=i.$val;am=b.Uint64(e);$s=33;case 33:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}r.$set(am);$s=27;continue;case 13:s=i.$val;an=b.Uint32(e);$s=34;case 34:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}ao=C.Float32frombits(an);$s=35;case 35:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}s.$set(ao);$s=27;continue;case 14:t=i.$val;ap=b.Uint64(e);$s=36;case 36:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=C.Float64frombits(ap);$s=37;case 37:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}t.$set(aq);$s=27;continue;case 15:u=i.$val;ar=e;as=0;while(true){if(!(as=ar.$length)?($throwRuntimeError("index out of range"),undefined):ar.$array[ar.$offset+as]);((at<0||at>=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+at]=!((au===0)));as++;}$s=27;continue;case 16:v=i.$val;av=e;aw=0;while(true){if(!(aw=av.$length)?($throwRuntimeError("index out of range"),undefined):av.$array[av.$offset+aw]);((ax<0||ax>=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+ax]=((ay<<24>>24)));aw++;}$s=27;continue;case 17:w=i.$val;$copySlice(w,e);$s=27;continue;case 18:x=i.$val;az=x;ba=0;case 38:if(!(ba=x.$length)?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+bb]=((bc<<16>>16)));ba++;$s=38;continue;case 39:$s=27;continue;case 19:y=i.$val;bd=y;be=0;case 41:if(!(be=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+bf]=bg);be++;$s=41;continue;case 42:$s=27;continue;case 20:z=i.$val;bh=z;bi=0;case 44:if(!(bi=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+bj]=((bk>>0)));bi++;$s=44;continue;case 45:$s=27;continue;case 21:aa=i.$val;bl=aa;bm=0;case 47:if(!(bm=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+bn]=bo);bm++;$s=47;continue;case 48:$s=27;continue;case 22:ab=i.$val;bp=ab;bq=0;case 50:if(!(bq=ab.$length)?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+br]=((bs=bt,new $Int64(bs.$high,bs.$low))));bq++;$s=50;continue;case 51:$s=27;continue;case 23:ac=i.$val;bu=ac;bv=0;case 53:if(!(bv=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+bw]=bx);bv++;$s=53;continue;case 54:$s=27;continue;case 24:ad=i.$val;by=ad;bz=0;case 56:if(!(bz=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ca]=cc);bz++;$s=56;continue;case 57:$s=27;continue;case 25:ae=i.$val;cd=ae;ce=0;case 60:if(!(ce=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+cf]=ch);ce++;$s=60;continue;case 61:$s=27;continue;case 26:af=i;d=0;case 27:if(!((d===0))){$s=-1;return $ifaceNil;}case 2:ci=D.ValueOf(c);$s=64;case 64:if($c){$c=false;ci=ci.$blk();}if(ci&&ci.$blk!==undefined){break s;}cj=ci;ck=-1;cl=$clone(cj,D.Value).Kind();if(cl===(22)){$s=66;continue;}if(cl===(23)){$s=67;continue;}$s=68;continue;case 66:cm=$clone(cj,D.Value).Elem();$s=69;case 69:if($c){$c=false;cm=cm.$blk();}if(cm&&cm.$blk!==undefined){break s;}cj=cm;cn=T($clone(cj,D.Value));$s=70;case 70:if($c){$c=false;cn=cn.$blk();}if(cn&&cn.$blk!==undefined){break s;}ck=cn;$s=68;continue;case 67:co=T($clone(cj,D.Value));$s=71;case 71:if($c){$c=false;co=co.$blk();}if(co&&co.$blk!==undefined){break s;}ck=co;case 68:case 65:if(ck<0){$s=72;continue;}$s=73;continue;case 72:cp=D.TypeOf(c).String();$s=74;case 74:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}cq=A.New("binary.Read: invalid type "+cp);$s=75;case 75:if($c){$c=false;cq=cq.$blk();}if(cq&&cq.$blk!==undefined){break s;}cr=cq;$s=76;case 76:return cr;case 73:cs=new W.ptr(b,$makeSlice(Z,ck),0);cu=B.ReadFull(a,cs.buf);$s=77;case 77:if($c){$c=false;cu=cu.$blk();}if(cu&&cu.$blk!==undefined){break s;}ct=cu;cv=ct[1];if(!($interfaceIsEqual(cv,$ifaceNil))){$s=-1;return cv;}$r=cs.value($clone(cj,D.Value));$s=78;case 78:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;}return;}var $f={$blk:P,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.Read=P;Q=function(a,b,c){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=Y(c);if(!((d===0))){$s=1;continue;}$s=2;continue;case 1:e=$makeSlice(Z,d);f=c;if($assertType(f,AA,true)[1]){$s=3;continue;}if($assertType(f,$Bool,true)[1]){$s=4;continue;}if($assertType(f,AL,true)[1]){$s=5;continue;}if($assertType(f,AB,true)[1]){$s=6;continue;}if($assertType(f,$Int8,true)[1]){$s=7;continue;}if($assertType(f,AM,true)[1]){$s=8;continue;}if($assertType(f,AC,true)[1]){$s=9;continue;}if($assertType(f,$Uint8,true)[1]){$s=10;continue;}if($assertType(f,Z,true)[1]){$s=11;continue;}if($assertType(f,AD,true)[1]){$s=12;continue;}if($assertType(f,$Int16,true)[1]){$s=13;continue;}if($assertType(f,AN,true)[1]){$s=14;continue;}if($assertType(f,AE,true)[1]){$s=15;continue;}if($assertType(f,$Uint16,true)[1]){$s=16;continue;}if($assertType(f,AO,true)[1]){$s=17;continue;}if($assertType(f,AF,true)[1]){$s=18;continue;}if($assertType(f,$Int32,true)[1]){$s=19;continue;}if($assertType(f,AP,true)[1]){$s=20;continue;}if($assertType(f,AG,true)[1]){$s=21;continue;}if($assertType(f,$Uint32,true)[1]){$s=22;continue;}if($assertType(f,AQ,true)[1]){$s=23;continue;}if($assertType(f,AH,true)[1]){$s=24;continue;}if($assertType(f,$Int64,true)[1]){$s=25;continue;}if($assertType(f,AR,true)[1]){$s=26;continue;}if($assertType(f,AI,true)[1]){$s=27;continue;}if($assertType(f,$Uint64,true)[1]){$s=28;continue;}if($assertType(f,AS,true)[1]){$s=29;continue;}if($assertType(f,AJ,true)[1]){$s=30;continue;}if($assertType(f,$Float32,true)[1]){$s=31;continue;}if($assertType(f,AT,true)[1]){$s=32;continue;}if($assertType(f,AK,true)[1]){$s=33;continue;}if($assertType(f,$Float64,true)[1]){$s=34;continue;}if($assertType(f,AU,true)[1]){$s=35;continue;}$s=36;continue;case 3:g=f.$val;if(g.$get()){(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]=1);}else{(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]=0);}$s=36;continue;case 4:h=f.$val;if(h){(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]=1);}else{(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]=0);}$s=36;continue;case 5:i=f.$val;an=i;ao=0;while(true){if(!(ao=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+ao]);if(aq){((ap<0||ap>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+ap]=1);}else{((ap<0||ap>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+ap]=0);}ao++;}$s=36;continue;case 6:j=f.$val;(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]=((j.$get()<<24>>>24)));$s=36;continue;case 7:k=f.$val;(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]=((k<<24>>>24)));$s=36;continue;case 8:l=f.$val;ar=l;as=0;while(true){if(!(as=ar.$length)?($throwRuntimeError("index out of range"),undefined):ar.$array[ar.$offset+as]);((at<0||at>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+at]=((au<<24>>>24)));as++;}$s=36;continue;case 9:m=f.$val;(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]=m.$get());$s=36;continue;case 10:n=f.$val;(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]=n);$s=36;continue;case 11:o=f.$val;e=o;$s=36;continue;case 12:p=f.$val;$r=b.PutUint16(e,((p.$get()<<16>>>16)));$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 13:q=f.$val;$r=b.PutUint16(e,((q<<16>>>16)));$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 14:r=f.$val;av=r;aw=0;case 39:if(!(aw=av.$length)?($throwRuntimeError("index out of range"),undefined):av.$array[av.$offset+aw]);$r=b.PutUint16($subslice(e,($imul(2,ax))),((ay<<16>>>16)));$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aw++;$s=39;continue;case 40:$s=36;continue;case 15:s=f.$val;$r=b.PutUint16(e,s.$get());$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 16:t=f.$val;$r=b.PutUint16(e,t);$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 17:u=f.$val;az=u;ba=0;case 44:if(!(ba=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+ba]);$r=b.PutUint16($subslice(e,($imul(2,bb))),bc);$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ba++;$s=44;continue;case 45:$s=36;continue;case 18:v=f.$val;$r=b.PutUint32(e,((v.$get()>>>0)));$s=47;case 47:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 19:w=f.$val;$r=b.PutUint32(e,((w>>>0)));$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 20:x=f.$val;bd=x;be=0;case 49:if(!(be=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+be]);$r=b.PutUint32($subslice(e,($imul(4,bf))),((bg>>>0)));$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}be++;$s=49;continue;case 50:$s=36;continue;case 21:y=f.$val;$r=b.PutUint32(e,y.$get());$s=52;case 52:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 22:z=f.$val;$r=b.PutUint32(e,z);$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 23:aa=f.$val;bh=aa;bi=0;case 54:if(!(bi=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bi]);$r=b.PutUint32($subslice(e,($imul(4,bj))),bk);$s=56;case 56:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bi++;$s=54;continue;case 55:$s=36;continue;case 24:ab=f.$val;$r=b.PutUint64(e,((bl=ab.$get(),new $Uint64(bl.$high,bl.$low))));$s=57;case 57:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 25:ac=f.$val;$r=b.PutUint64(e,(new $Uint64(ac.$high,ac.$low)));$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 26:ad=f.$val;bm=ad;bn=0;case 59:if(!(bn=bm.$length)?($throwRuntimeError("index out of range"),undefined):bm.$array[bm.$offset+bn]);$r=b.PutUint64($subslice(e,($imul(8,bo))),(new $Uint64(bp.$high,bp.$low)));$s=61;case 61:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bn++;$s=59;continue;case 60:$s=36;continue;case 27:ae=f.$val;$r=b.PutUint64(e,ae.$get());$s=62;case 62:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 28:af=f.$val;$r=b.PutUint64(e,af);$s=63;case 63:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 29:ag=f.$val;bq=ag;br=0;case 64:if(!(br=bq.$length)?($throwRuntimeError("index out of range"),undefined):bq.$array[bq.$offset+br]);$r=b.PutUint64($subslice(e,($imul(8,bs))),bt);$s=66;case 66:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}br++;$s=64;continue;case 65:$s=36;continue;case 30:ah=f.$val;$r=b.PutUint32(e,C.Float32bits(ah.$get()));$s=67;case 67:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 31:ai=f.$val;$r=b.PutUint32(e,C.Float32bits(ai));$s=68;case 68:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 32:aj=f.$val;bu=aj;bv=0;case 69:if(!(bv=bu.$length)?($throwRuntimeError("index out of range"),undefined):bu.$array[bu.$offset+bv]);$r=b.PutUint32($subslice(e,($imul(4,bw))),C.Float32bits(bx));$s=71;case 71:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bv++;$s=69;continue;case 70:$s=36;continue;case 33:ak=f.$val;$r=b.PutUint64(e,C.Float64bits(ak.$get()));$s=72;case 72:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 34:al=f.$val;$r=b.PutUint64(e,C.Float64bits(al));$s=73;case 73:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 35:am=f.$val;by=am;bz=0;case 74:if(!(bz=by.$length)?($throwRuntimeError("index out of range"),undefined):by.$array[by.$offset+bz]);$r=b.PutUint64($subslice(e,($imul(8,ca))),C.Float64bits(cb));$s=76;case 76:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bz++;$s=74;continue;case 75:case 36:cd=a.Write(e);$s=77;case 77:if($c){$c=false;cd=cd.$blk();}if(cd&&cd.$blk!==undefined){break s;}cc=cd;ce=cc[1];$s=-1;return ce;case 2:cf=D.ValueOf(c);$s=78;case 78:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}cg=D.Indirect($clone(cf,D.Value));$s=79;case 79:if($c){$c=false;cg=cg.$blk();}if(cg&&cg.$blk!==undefined){break s;}ch=cg;ci=T($clone(ch,D.Value));$s=80;case 80:if($c){$c=false;ci=ci.$blk();}if(ci&&ci.$blk!==undefined){break s;}cj=ci;if(cj<0){$s=81;continue;}$s=82;continue;case 81:ck=D.TypeOf(c).String();$s=83;case 83:if($c){$c=false;ck=ck.$blk();}if(ck&&ck.$blk!==undefined){break s;}cl=A.New("binary.Write: invalid type "+ck);$s=84;case 84:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}cm=cl;$s=85;case 85:return cm;case 82:cn=$makeSlice(Z,cj);co=new X.ptr(b,cn,0);$r=co.value($clone(ch,D.Value));$s=86;case 86:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cq=a.Write(cn);$s=87;case 87:if($c){$c=false;cq=cq.$blk();}if(cq&&cq.$blk!==undefined){break s;}cp=cq;cr=cp[1];$s=-1;return cr;}return;}var $f={$blk:Q,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.Write=Q;T=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$clone(a,D.Value).Kind();if(b===(23)){$s=2;continue;}if(b===(25)){$s=3;continue;}$s=4;continue;case 2:c=$clone(a,D.Value).Type().Elem();$s=6;case 6:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=U(c);$s=7;case 7:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e>=0){$s=-1;return $imul(e,$clone(a,D.Value).Len());}$s=-1;return-1;case 3:f=$clone(a,D.Value).Type();h=S.Load(f);$s=8;case 8:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;i=g[0];j=g[1];if(j){$s=-1;return $assertType(i,$Int);}k=U(f);$s=9;case 9:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$r=S.Store(f,new $Int(l));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return l;case 4:m=U($clone(a,D.Value).Type());$s=11;case 11:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=12;case 12:return n;case 5:case 1:$s=-1;return 0;}return;}var $f={$blk:T,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};U=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a.Kind();$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if(c===(17)){$s=3;continue;}if(c===(25)){$s=4;continue;}if((c===(1))||(c===(8))||(c===(9))||(c===(10))||(c===(11))||(c===(3))||(c===(4))||(c===(5))||(c===(6))||(c===(13))||(c===(14))||(c===(15))||(c===(16))){$s=5;continue;}$s=6;continue;case 3:d=a.Elem();$s=7;case 7:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=U(d);$s=8;case 8:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(f>=0){$s=9;continue;}$s=10;continue;case 9:g=a.Len();$s=11;case 11:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=$imul(f,g);$s=12;case 12:return h;case 10:$s=6;continue;case 4:i=0;j=0;l=a.NumField();$s=13;case 13:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=j;n=k;case 14:if(!(m>0;m=m+(1)>>0;$s=14;continue;case 15:$s=-1;return i;case 5:r=a.Size();$s=18;case 18:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=((r>>0));$s=19;case 19:return s;case 6:case 1:$s=-1;return-1;}return;}var $f={$blk:U,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};W.ptr.prototype.bool=function(){var a,b,c,d;a=this;d=(b=a.buf,c=a.offset,((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]));a.offset=a.offset+(1)>>0;return!((d===0));};W.prototype.bool=function(){return this.$val.bool();};X.ptr.prototype.bool=function(a){var a,b,c,d,e,f;b=this;if(a){(c=b.buf,d=b.offset,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=1));}else{(e=b.buf,f=b.offset,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]=0));}b.offset=b.offset+(1)>>0;};X.prototype.bool=function(a){return this.$val.bool(a);};W.ptr.prototype.uint8=function(){var a,b,c,d;a=this;d=(b=a.buf,c=a.offset,((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]));a.offset=a.offset+(1)>>0;return d;};W.prototype.uint8=function(){return this.$val.uint8();};X.ptr.prototype.uint8=function(a){var a,b,c,d;b=this;(c=b.buf,d=b.offset,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=a));b.offset=b.offset+(1)>>0;};X.prototype.uint8=function(a){return this.$val.uint8(a);};W.ptr.prototype.uint16=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.order.Uint16($subslice(a.buf,a.offset,(a.offset+2>>0)));$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;a.offset=a.offset+(2)>>0;$s=-1;return c;}return;}var $f={$blk:W.ptr.prototype.uint16,$c:true,$r,a,b,c,$s};return $f;};W.prototype.uint16=function(){return this.$val.uint16();};X.ptr.prototype.uint16=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.order.PutUint16($subslice(b.buf,b.offset,(b.offset+2>>0)),a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.offset=b.offset+(2)>>0;$s=-1;return;}return;}var $f={$blk:X.ptr.prototype.uint16,$c:true,$r,a,b,$s};return $f;};X.prototype.uint16=function(a){return this.$val.uint16(a);};W.ptr.prototype.uint32=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.order.Uint32($subslice(a.buf,a.offset,(a.offset+4>>0)));$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;a.offset=a.offset+(4)>>0;$s=-1;return c;}return;}var $f={$blk:W.ptr.prototype.uint32,$c:true,$r,a,b,c,$s};return $f;};W.prototype.uint32=function(){return this.$val.uint32();};X.ptr.prototype.uint32=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.order.PutUint32($subslice(b.buf,b.offset,(b.offset+4>>0)),a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.offset=b.offset+(4)>>0;$s=-1;return;}return;}var $f={$blk:X.ptr.prototype.uint32,$c:true,$r,a,b,$s};return $f;};X.prototype.uint32=function(a){return this.$val.uint32(a);};W.ptr.prototype.uint64=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.order.Uint64($subslice(a.buf,a.offset,(a.offset+8>>0)));$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;a.offset=a.offset+(8)>>0;$s=-1;return c;}return;}var $f={$blk:W.ptr.prototype.uint64,$c:true,$r,a,b,c,$s};return $f;};W.prototype.uint64=function(){return this.$val.uint64();};X.ptr.prototype.uint64=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.order.PutUint64($subslice(b.buf,b.offset,(b.offset+8>>0)),a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.offset=b.offset+(8)>>0;$s=-1;return;}return;}var $f={$blk:X.ptr.prototype.uint64,$c:true,$r,a,b,$s};return $f;};X.prototype.uint64=function(a){return this.$val.uint64(a);};W.ptr.prototype.int8=function(){var a;a=this;return((a.uint8()<<24>>24));};W.prototype.int8=function(){return this.$val.int8();};X.ptr.prototype.int8=function(a){var a,b;b=this;b.uint8(((a<<24>>>24)));};X.prototype.int8=function(a){return this.$val.int8(a);};W.ptr.prototype.int16=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.uint16();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=((b<<16>>16));$s=2;case 2:return c;}return;}var $f={$blk:W.ptr.prototype.int16,$c:true,$r,a,b,c,$s};return $f;};W.prototype.int16=function(){return this.$val.int16();};X.ptr.prototype.int16=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.uint16(((a<<16>>>16)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:X.ptr.prototype.int16,$c:true,$r,a,b,$s};return $f;};X.prototype.int16=function(a){return this.$val.int16(a);};W.ptr.prototype.int32=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.uint32();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=((b>>0));$s=2;case 2:return c;}return;}var $f={$blk:W.ptr.prototype.int32,$c:true,$r,a,b,c,$s};return $f;};W.prototype.int32=function(){return this.$val.int32();};X.ptr.prototype.int32=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.uint32(((a>>>0)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:X.ptr.prototype.int32,$c:true,$r,a,b,$s};return $f;};X.prototype.int32=function(a){return this.$val.int32(a);};W.ptr.prototype.int64=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;c=a.uint64();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=((b=c,new $Int64(b.$high,b.$low)));$s=2;case 2:return d;}return;}var $f={$blk:W.ptr.prototype.int64,$c:true,$r,a,b,c,d,$s};return $f;};W.prototype.int64=function(){return this.$val.int64();};X.ptr.prototype.int64=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.uint64((new $Uint64(a.$high,a.$low)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:X.ptr.prototype.int64,$c:true,$r,a,b,$s};return $f;};X.prototype.int64=function(a){return this.$val.int64(a);};W.ptr.prototype.value=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=$clone(a,D.Value).Kind();if(c===(17)){$s=2;continue;}if(c===(25)){$s=3;continue;}if(c===(23)){$s=4;continue;}if(c===(1)){$s=5;continue;}if(c===(3)){$s=6;continue;}if(c===(4)){$s=7;continue;}if(c===(5)){$s=8;continue;}if(c===(6)){$s=9;continue;}if(c===(8)){$s=10;continue;}if(c===(9)){$s=11;continue;}if(c===(10)){$s=12;continue;}if(c===(11)){$s=13;continue;}if(c===(13)){$s=14;continue;}if(c===(14)){$s=15;continue;}if(c===(15)){$s=16;continue;}if(c===(16)){$s=17;continue;}$s=18;continue;case 2:d=$clone(a,D.Value).Len();e=0;case 19:if(!(e>0;$s=19;continue;case 20:$s=18;continue;case 3:g=$clone(a,D.Value).Type();h=$clone(a,D.Value).NumField();i=0;case 23:if(!(i>0;$s=23;continue;case 24:$s=18;continue;case 4:n=$clone(a,D.Value).Len();o=0;case 33:if(!(o>0;$s=33;continue;case 34:$s=18;continue;case 5:$clone(a,D.Value).SetBool(b.bool());$s=18;continue;case 6:$clone(a,D.Value).SetInt((new $Int64(0,b.int8())));$s=18;continue;case 7:q=b.int16();$s=37;case 37:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}$r=$clone(a,D.Value).SetInt((new $Int64(0,q)));$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 8:r=b.int32();$s=39;case 39:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}$r=$clone(a,D.Value).SetInt((new $Int64(0,r)));$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 9:s=b.int64();$s=41;case 41:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}$r=$clone(a,D.Value).SetInt(s);$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 10:$clone(a,D.Value).SetUint((new $Uint64(0,b.uint8())));$s=18;continue;case 11:t=b.uint16();$s=43;case 43:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}$r=$clone(a,D.Value).SetUint((new $Uint64(0,t)));$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 12:u=b.uint32();$s=45;case 45:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}$r=$clone(a,D.Value).SetUint((new $Uint64(0,u)));$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 13:v=b.uint64();$s=47;case 47:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}$r=$clone(a,D.Value).SetUint(v);$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 14:w=b.uint32();$s=49;case 49:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=C.Float32frombits(w);$s=50;case 50:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}$r=$clone(a,D.Value).SetFloat((x));$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 15:y=b.uint64();$s=52;case 52:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=C.Float64frombits(y);$s=53;case 53:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}$r=$clone(a,D.Value).SetFloat(z);$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 16:aa=b.uint32();$s=55;case 55:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=C.Float32frombits(aa);$s=56;case 56:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=(ab);ad=b.uint32();$s=57;case 57:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=C.Float32frombits(ad);$s=58;case 58:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=(ae);$r=$clone(a,D.Value).SetComplex(new $Complex128(ac,af));$s=59;case 59:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 17:ag=b.uint64();$s=60;case 60:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=C.Float64frombits(ag);$s=61;case 61:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;aj=b.uint64();$s=62;case 62:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=C.Float64frombits(aj);$s=63;case 63:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak;$r=$clone(a,D.Value).SetComplex(new $Complex128(ai,al));$s=64;case 64:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 18:case 1:$s=-1;return;}return;}var $f={$blk:W.ptr.prototype.value,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};W.prototype.value=function(a){return this.$val.value(a);};X.ptr.prototype.value=function(a){var{a,aa,ab,ac,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=$clone(a,D.Value).Kind();if(c===(17)){$s=2;continue;}if(c===(25)){$s=3;continue;}if(c===(23)){$s=4;continue;}if(c===(1)){$s=5;continue;}if((c===(2))||(c===(3))||(c===(4))||(c===(5))||(c===(6))){$s=6;continue;}if((c===(7))||(c===(8))||(c===(9))||(c===(10))||(c===(11))||(c===(12))){$s=7;continue;}if((c===(13))||(c===(14))){$s=8;continue;}if((c===(15))||(c===(16))){$s=9;continue;}$s=10;continue;case 2:d=$clone(a,D.Value).Len();e=0;case 11:if(!(e>0;$s=11;continue;case 12:$s=10;continue;case 3:g=$clone(a,D.Value).Type();h=$clone(a,D.Value).NumField();i=0;case 15:if(!(i>0;$s=15;continue;case 16:$s=10;continue;case 4:n=$clone(a,D.Value).Len();o=0;case 25:if(!(o>0;$s=25;continue;case 26:$s=10;continue;case 5:b.bool($clone(a,D.Value).Bool());$s=10;continue;case 6:q=$clone(a,D.Value).Type().Kind();$s=30;case 30:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;if(r===(3)){$s=31;continue;}if(r===(4)){$s=32;continue;}if(r===(5)){$s=33;continue;}if(r===(6)){$s=34;continue;}$s=35;continue;case 31:b.int8((((s=$clone(a,D.Value).Int(),s.$low+((s.$high>>31)*4294967296))<<24>>24)));$s=35;continue;case 32:$r=b.int16((((t=$clone(a,D.Value).Int(),t.$low+((t.$high>>31)*4294967296))<<16>>16)));$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=35;continue;case 33:$r=b.int32((((u=$clone(a,D.Value).Int(),u.$low+((u.$high>>31)*4294967296))>>0)));$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=35;continue;case 34:$r=b.int64($clone(a,D.Value).Int());$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 35:case 29:$s=10;continue;case 7:v=$clone(a,D.Value).Type().Kind();$s=40;case 40:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v;if(w===(8)){$s=41;continue;}if(w===(9)){$s=42;continue;}if(w===(10)){$s=43;continue;}if(w===(11)){$s=44;continue;}$s=45;continue;case 41:b.uint8((($clone(a,D.Value).Uint().$low<<24>>>24)));$s=45;continue;case 42:$r=b.uint16((($clone(a,D.Value).Uint().$low<<16>>>16)));$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=45;continue;case 43:$r=b.uint32((($clone(a,D.Value).Uint().$low>>>0)));$s=47;case 47:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=45;continue;case 44:$r=b.uint64($clone(a,D.Value).Uint());$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 45:case 39:$s=10;continue;case 8:x=$clone(a,D.Value).Type().Kind();$s=50;case 50:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;if(y===(13)){$s=51;continue;}if(y===(14)){$s=52;continue;}$s=53;continue;case 51:$r=b.uint32(C.Float32bits(($fround($clone(a,D.Value).Float()))));$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=53;continue;case 52:$r=b.uint64(C.Float64bits($clone(a,D.Value).Float()));$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 53:case 49:$s=10;continue;case 9:z=$clone(a,D.Value).Type().Kind();$s=57;case 57:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;if(aa===(15)){$s=58;continue;}if(aa===(16)){$s=59;continue;}$s=60;continue;case 58:ab=$clone(a,D.Value).Complex();$r=b.uint32(C.Float32bits(($fround(ab.$real))));$s=61;case 61:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.uint32(C.Float32bits(($fround(ab.$imag))));$s=62;case 62:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=60;continue;case 59:ac=$clone(a,D.Value).Complex();$r=b.uint64(C.Float64bits(ac.$real));$s=63;case 63:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.uint64(C.Float64bits(ac.$imag));$s=64;case 64:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 60:case 56:case 10:case 1:$s=-1;return;}return;}var $f={$blk:X.ptr.prototype.value,$c:true,$r,a,aa,ab,ac,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};X.prototype.value=function(a){return this.$val.value(a);};W.ptr.prototype.skip=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=T($clone(a,D.Value));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b.offset=b.offset+(c)>>0;$s=-1;return;}return;}var $f={$blk:W.ptr.prototype.skip,$c:true,$r,a,b,c,$s};return $f;};W.prototype.skip=function(a){return this.$val.skip(a);};X.ptr.prototype.skip=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=T($clone(a,D.Value));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=$subslice(b.buf,b.offset,(b.offset+d>>0));f=e;g=0;while(true){if(!(g=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h]=0);g++;}b.offset=b.offset+(d)>>0;$s=-1;return;}return;}var $f={$blk:X.ptr.prototype.skip,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};X.prototype.skip=function(a){return this.$val.skip(a);};Y=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;b=a;if($assertType(b,$Bool,true)[1]||$assertType(b,$Int8,true)[1]||$assertType(b,$Uint8,true)[1]||$assertType(b,AA,true)[1]||$assertType(b,AB,true)[1]||$assertType(b,AC,true)[1]){c=b;return 1;}else if($assertType(b,AL,true)[1]){d=b.$val;return d.$length;}else if($assertType(b,AM,true)[1]){e=b.$val;return e.$length;}else if($assertType(b,Z,true)[1]){f=b.$val;return f.$length;}else if($assertType(b,$Int16,true)[1]||$assertType(b,$Uint16,true)[1]||$assertType(b,AD,true)[1]||$assertType(b,AE,true)[1]){g=b;return 2;}else if($assertType(b,AN,true)[1]){h=b.$val;return $imul(2,h.$length);}else if($assertType(b,AO,true)[1]){i=b.$val;return $imul(2,i.$length);}else if($assertType(b,$Int32,true)[1]||$assertType(b,$Uint32,true)[1]||$assertType(b,AF,true)[1]||$assertType(b,AG,true)[1]){j=b;return 4;}else if($assertType(b,AP,true)[1]){k=b.$val;return $imul(4,k.$length);}else if($assertType(b,AQ,true)[1]){l=b.$val;return $imul(4,l.$length);}else if($assertType(b,$Int64,true)[1]||$assertType(b,$Uint64,true)[1]||$assertType(b,AH,true)[1]||$assertType(b,AI,true)[1]){m=b;return 8;}else if($assertType(b,AR,true)[1]){n=b.$val;return $imul(8,n.$length);}else if($assertType(b,AS,true)[1]){o=b.$val;return $imul(8,o.$length);}else if($assertType(b,$Float32,true)[1]||$assertType(b,AJ,true)[1]){p=b;return 4;}else if($assertType(b,$Float64,true)[1]||$assertType(b,AK,true)[1]){q=b;return 8;}else if($assertType(b,AT,true)[1]){r=b.$val;return $imul(4,r.$length);}else if($assertType(b,AU,true)[1]){s=b.$val;return $imul(8,s.$length);}return 0;};N.methods=[{prop:"Uint16",name:"Uint16",pkg:"",typ:$funcType([Z],[$Uint16],false)},{prop:"PutUint16",name:"PutUint16",pkg:"",typ:$funcType([Z,$Uint16],[],false)},{prop:"Uint32",name:"Uint32",pkg:"",typ:$funcType([Z],[$Uint32],false)},{prop:"PutUint32",name:"PutUint32",pkg:"",typ:$funcType([Z,$Uint32],[],false)},{prop:"Uint64",name:"Uint64",pkg:"",typ:$funcType([Z],[$Uint64],false)},{prop:"PutUint64",name:"PutUint64",pkg:"",typ:$funcType([Z,$Uint64],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"GoString",name:"GoString",pkg:"",typ:$funcType([],[$String],false)}];O.methods=[{prop:"Uint16",name:"Uint16",pkg:"",typ:$funcType([Z],[$Uint16],false)},{prop:"PutUint16",name:"PutUint16",pkg:"",typ:$funcType([Z,$Uint16],[],false)},{prop:"Uint32",name:"Uint32",pkg:"",typ:$funcType([Z],[$Uint32],false)},{prop:"PutUint32",name:"PutUint32",pkg:"",typ:$funcType([Z,$Uint32],[],false)},{prop:"Uint64",name:"Uint64",pkg:"",typ:$funcType([Z],[$Uint64],false)},{prop:"PutUint64",name:"PutUint64",pkg:"",typ:$funcType([Z,$Uint64],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"GoString",name:"GoString",pkg:"",typ:$funcType([],[$String],false)}];AV.methods=[{prop:"bool",name:"bool",pkg:"encoding/binary",typ:$funcType([],[$Bool],false)},{prop:"uint8",name:"uint8",pkg:"encoding/binary",typ:$funcType([],[$Uint8],false)},{prop:"uint16",name:"uint16",pkg:"encoding/binary",typ:$funcType([],[$Uint16],false)},{prop:"uint32",name:"uint32",pkg:"encoding/binary",typ:$funcType([],[$Uint32],false)},{prop:"uint64",name:"uint64",pkg:"encoding/binary",typ:$funcType([],[$Uint64],false)},{prop:"int8",name:"int8",pkg:"encoding/binary",typ:$funcType([],[$Int8],false)},{prop:"int16",name:"int16",pkg:"encoding/binary",typ:$funcType([],[$Int16],false)},{prop:"int32",name:"int32",pkg:"encoding/binary",typ:$funcType([],[$Int32],false)},{prop:"int64",name:"int64",pkg:"encoding/binary",typ:$funcType([],[$Int64],false)},{prop:"value",name:"value",pkg:"encoding/binary",typ:$funcType([D.Value],[],false)},{prop:"skip",name:"skip",pkg:"encoding/binary",typ:$funcType([D.Value],[],false)}];AW.methods=[{prop:"bool",name:"bool",pkg:"encoding/binary",typ:$funcType([$Bool],[],false)},{prop:"uint8",name:"uint8",pkg:"encoding/binary",typ:$funcType([$Uint8],[],false)},{prop:"uint16",name:"uint16",pkg:"encoding/binary",typ:$funcType([$Uint16],[],false)},{prop:"uint32",name:"uint32",pkg:"encoding/binary",typ:$funcType([$Uint32],[],false)},{prop:"uint64",name:"uint64",pkg:"encoding/binary",typ:$funcType([$Uint64],[],false)},{prop:"int8",name:"int8",pkg:"encoding/binary",typ:$funcType([$Int8],[],false)},{prop:"int16",name:"int16",pkg:"encoding/binary",typ:$funcType([$Int16],[],false)},{prop:"int32",name:"int32",pkg:"encoding/binary",typ:$funcType([$Int32],[],false)},{prop:"int64",name:"int64",pkg:"encoding/binary",typ:$funcType([$Int64],[],false)},{prop:"value",name:"value",pkg:"encoding/binary",typ:$funcType([D.Value],[],false)},{prop:"skip",name:"skip",pkg:"encoding/binary",typ:$funcType([D.Value],[],false)}];M.init([{prop:"PutUint16",name:"PutUint16",pkg:"",typ:$funcType([Z,$Uint16],[],false)},{prop:"PutUint32",name:"PutUint32",pkg:"",typ:$funcType([Z,$Uint32],[],false)},{prop:"PutUint64",name:"PutUint64",pkg:"",typ:$funcType([Z,$Uint64],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Uint16",name:"Uint16",pkg:"",typ:$funcType([Z],[$Uint16],false)},{prop:"Uint32",name:"Uint32",pkg:"",typ:$funcType([Z],[$Uint32],false)},{prop:"Uint64",name:"Uint64",pkg:"",typ:$funcType([Z],[$Uint64],false)}]);N.init("",[]);O.init("",[]);W.init("encoding/binary",[{prop:"order",name:"order",embedded:false,exported:false,typ:M,tag:""},{prop:"buf",name:"buf",embedded:false,exported:false,typ:Z,tag:""},{prop:"offset",name:"offset",embedded:false,exported:false,typ:$Int,tag:""}]);X.init("encoding/binary",[{prop:"order",name:"order",embedded:false,exported:false,typ:M,tag:""},{prop:"buf",name:"buf",embedded:false,exported:false,typ:Z,tag:""},{prop:"offset",name:"offset",embedded:false,exported:false,typ:$Int,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.LittleEndian=new N.ptr();$pkg.BigEndian=new O.ptr();S=new E.Map.ptr(new E.Mutex.ptr(0,0),new $packages["sync/atomic"].Value.ptr($ifaceNil),false,0);J=A.New("binary: varint overflows a 64-bit integer");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["math/rand"]=(function(){var $pkg={},$init,B,A,F,H,I,K,AE,AM,AN,AO,AQ,AR,AS,AT,AU,AV,E,N,AG,AH,AI,AJ,AK,AL,G,J,L,M,AF;B=$packages["github.com/gopherjs/gopherjs/nosync"];A=$packages["math"];F=$pkg.rngSource=$newType(0,$kindStruct,"rand.rngSource",true,"math/rand",false,function(tap_,feed_,vec_){this.$val=this;if(arguments.length===0){this.tap=0;this.feed=0;this.vec=AQ.zero();return;}this.tap=tap_;this.feed=feed_;this.vec=vec_;});H=$pkg.Source=$newType(8,$kindInterface,"rand.Source",true,"math/rand",true,null);I=$pkg.Source64=$newType(8,$kindInterface,"rand.Source64",true,"math/rand",true,null);K=$pkg.Rand=$newType(0,$kindStruct,"rand.Rand",true,"math/rand",true,function(src_,s64_,readVal_,readPos_){this.$val=this;if(arguments.length===0){this.src=$ifaceNil;this.s64=$ifaceNil;this.readVal=new $Int64(0,0);this.readPos=0;return;}this.src=src_;this.s64=s64_;this.readVal=readVal_;this.readPos=readPos_;});AE=$pkg.lockedSource=$newType(0,$kindStruct,"rand.lockedSource",true,"math/rand",false,function(lk_,src_){this.$val=this;if(arguments.length===0){this.lk=new B.Mutex.ptr(false);this.src=AM.nil;return;}this.lk=lk_;this.src=src_;});AM=$ptrType(F);AN=$ptrType(AE);AO=$ptrType(K);AQ=$arrayType($Int64,607);AR=$ptrType($Int8);AS=$sliceType($Int);AT=$ptrType($Int64);AU=$funcType([$Int,$Int],[],false);AV=$sliceType($Uint8);G=function(a){var a,b,c,d,e;c=(b=a/44488,(b===b&&b!==1/0&&b!==-1/0)?b>>0:$throwRuntimeError("integer divide by zero"));e=(d=a%44488,d===d?d:$throwRuntimeError("integer divide by zero"));a=($imul(48271,e))-($imul(3399,c))>>0;if(a<0){a=a+(2147483647)>>0;}return a;};F.ptr.prototype.Seed=function(a){var a,b,c,d,e,f,g,h,i,j;b=this;b.tap=0;b.feed=334;a=$div64(a,new $Int64(0,2147483647),true);if((a.$high<0||(a.$high===0&&a.$low<0))){a=(c=new $Int64(0,2147483647),new $Int64(a.$high+c.$high,a.$low+c.$low));}if((a.$high===0&&a.$low===0)){a=new $Int64(0,89482311);}d=(((a.$low+((a.$high>>31)*4294967296))>>0));e=-20;while(true){if(!(e<607)){break;}d=G(d);if(e>=0){f=new $Int64(0,0);f=$shiftLeft64((new $Int64(0,d)),40);d=G(d);f=(g=$shiftLeft64((new $Int64(0,d)),20),new $Int64(f.$high^g.$high,(f.$low^g.$low)>>>0));d=G(d);f=(h=(new $Int64(0,d)),new $Int64(f.$high^h.$high,(f.$low^h.$low)>>>0));f=(i=((e<0||e>=E.length)?($throwRuntimeError("index out of range"),undefined):E[e]),new $Int64(f.$high^i.$high,(f.$low^i.$low)>>>0));(j=b.vec,((e<0||e>=j.length)?($throwRuntimeError("index out of range"),undefined):j[e]=f));}e=e+(1)>>0;}};F.prototype.Seed=function(a){return this.$val.Seed(a);};F.ptr.prototype.Int63=function(){var a,b,c;a=this;return((b=(c=a.Uint64(),new $Uint64(c.$high&2147483647,(c.$low&4294967295)>>>0)),new $Int64(b.$high,b.$low)));};F.prototype.Int63=function(){return this.$val.Int63();};F.ptr.prototype.Uint64=function(){var a,b,c,d,e,f,g,h,i,j;a=this;a.tap=a.tap-(1)>>0;if(a.tap<0){a.tap=a.tap+(607)>>0;}a.feed=a.feed-(1)>>0;if(a.feed<0){a.feed=a.feed+(607)>>0;}h=(b=(c=a.vec,d=a.feed,((d<0||d>=c.length)?($throwRuntimeError("index out of range"),undefined):c[d])),e=(f=a.vec,g=a.tap,((g<0||g>=f.length)?($throwRuntimeError("index out of range"),undefined):f[g])),new $Int64(b.$high+e.$high,b.$low+e.$low));(i=a.vec,j=a.feed,((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]=h));return(new $Uint64(h.$high,h.$low));};F.prototype.Uint64=function(){return this.$val.Uint64();};J=function(a){var a,b;b=new F.ptr(0,0,AQ.zero());b.Seed(a);return b;};$pkg.NewSource=J;L=function(a){var a,b,c;b=$assertType(a,I,true);c=b[0];return new K.ptr(a,c,new $Int64(0,0),0);};$pkg.New=L;K.ptr.prototype.Seed=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=$assertType(b.src,AN,true);d=c[0];e=c[1];if(e){d.seedPos(a,(b.$ptr_readPos||(b.$ptr_readPos=new AR(function(){return this.$target.readPos;},function($v){this.$target.readPos=$v;},b))));$s=-1;return;}$r=b.src.Seed(a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.readPos=0;$s=-1;return;}return;}var $f={$blk:K.ptr.prototype.Seed,$c:true,$r,a,b,c,d,e,$s};return $f;};K.prototype.Seed=function(a){return this.$val.Seed(a);};K.ptr.prototype.Int63=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.src.Int63();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:K.ptr.prototype.Int63,$c:true,$r,a,b,c,$s};return $f;};K.prototype.Int63=function(){return this.$val.Int63();};K.ptr.prototype.Uint32=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Int63();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=(($shiftRightInt64(b,31).$low>>>0));$s=2;case 2:return c;}return;}var $f={$blk:K.ptr.prototype.Uint32,$c:true,$r,a,b,c,$s};return $f;};K.prototype.Uint32=function(){return this.$val.Uint32();};K.ptr.prototype.Uint64=function(){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(!($interfaceIsEqual(a.s64,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:b=a.s64.Uint64();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=4;case 4:return c;case 2:f=a.Int63();$s=5;case 5:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}i=a.Int63();$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=(d=$shiftRightUint64(((e=f,new $Uint64(e.$high,e.$low))),31),g=$shiftLeft64(((h=i,new $Uint64(h.$high,h.$low))),32),new $Uint64(d.$high|g.$high,(d.$low|g.$low)>>>0));$s=7;case 7:return j;}return;}var $f={$blk:K.ptr.prototype.Uint64,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};K.prototype.Uint64=function(){return this.$val.Uint64();};K.ptr.prototype.Int31=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;c=a.Int63();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=(((b=$shiftRightInt64(c,32),b.$low+((b.$high>>31)*4294967296))>>0));$s=2;case 2:return d;}return;}var $f={$blk:K.ptr.prototype.Int31,$c:true,$r,a,b,c,d,$s};return $f;};K.prototype.Int31=function(){return this.$val.Int31();};K.ptr.prototype.Int=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Int63();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=((b.$low>>>0));$s=-1;return((((c<<1>>>0)>>>1>>>0)>>0));}return;}var $f={$blk:K.ptr.prototype.Int,$c:true,$r,a,b,c,$s};return $f;};K.prototype.Int=function(){return this.$val.Int();};K.ptr.prototype.Int63n=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if((a.$high<0||(a.$high===0&&a.$low<=0))){$panic(new $String("invalid argument to Int63n"));}if((c=(d=new $Int64(a.$high-0,a.$low-1),new $Int64(a.$high&d.$high,(a.$low&d.$low)>>>0)),(c.$high===0&&c.$low===0))){$s=1;continue;}$s=2;continue;case 1:f=b.Int63();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}h=(e=f,g=new $Int64(a.$high-0,a.$low-1),new $Int64(e.$high&g.$high,(e.$low&g.$low)>>>0));$s=4;case 4:return h;case 2:k=((i=(j=$div64(new $Uint64(2147483648,0),(new $Uint64(a.$high,a.$low)),true),new $Uint64(2147483647-j.$high,4294967295-j.$low)),new $Int64(i.$high,i.$low)));l=b.Int63();$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;case 6:if(!((m.$high>k.$high||(m.$high===k.$high&&m.$low>k.$low)))){$s=7;continue;}n=b.Int63();$s=8;case 8:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;$s=6;continue;case 7:$s=-1;return $div64(m,a,true);}return;}var $f={$blk:K.ptr.prototype.Int63n,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};K.prototype.Int63n=function(a){return this.$val.Int63n(a);};K.ptr.prototype.Int31n=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(a<=0){$panic(new $String("invalid argument to Int31n"));}if((a&((a-1>>0)))===0){$s=1;continue;}$s=2;continue;case 1:c=b.Int31();$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c&((a-1>>0));$s=4;case 4:return d;case 2:f=(((2147483647-(e=2147483648%((a>>>0)),e===e?e:$throwRuntimeError("integer divide by zero"))>>>0)>>0));g=b.Int31();$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;case 6:if(!(h>f)){$s=7;continue;}i=b.Int31();$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;$s=6;continue;case 7:$s=-1;return(j=h%a,j===j?j:$throwRuntimeError("integer divide by zero"));}return;}var $f={$blk:K.ptr.prototype.Int31n,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};K.prototype.Int31n=function(a){return this.$val.Int31n(a);};K.ptr.prototype.int31n=function(a){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.Uint32();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=$mul64((new $Uint64(0,d)),(new $Uint64(0,a)));f=((e.$low>>>0));if(f<((a>>>0))){$s=2;continue;}$s=3;continue;case 2:h=(g=((-a>>>0))%((a>>>0)),g===g?g:$throwRuntimeError("integer divide by zero"));case 4:if(!(f>>0));$s=4;continue;case 5:case 3:$s=-1;return(($shiftRightUint64(e,32).$low>>0));}return;}var $f={$blk:K.ptr.prototype.int31n,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};K.prototype.int31n=function(a){return this.$val.int31n(a);};K.ptr.prototype.Intn=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(a<=0){$panic(new $String("invalid argument to Intn"));}if(a<=2147483647){$s=1;continue;}$s=2;continue;case 1:c=b.Int31n(((a>>0)));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=((c>>0));$s=4;case 4:return d;case 2:f=b.Int63n((new $Int64(0,a)));$s=5;case 5:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=(((e=f,e.$low+((e.$high>>31)*4294967296))>>0));$s=6;case 6:return g;}return;}var $f={$blk:K.ptr.prototype.Intn,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};K.prototype.Intn=function(a){return this.$val.Intn(a);};K.ptr.prototype.Float64=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;case 1:b=a.Int63();$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=($flatten64(b))/9.223372036854776e+18;if(c===1){$s=3;continue;}$s=4;continue;case 3:$s=1;continue;case 4:$s=-1;return c;}return;}var $f={$blk:K.ptr.prototype.Float64,$c:true,$r,a,b,c,$s};return $f;};K.prototype.Float64=function(){return this.$val.Float64();};K.ptr.prototype.Float32=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;case 1:b=a.Float64();$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=($fround(b));if(c===1){$s=3;continue;}$s=4;continue;case 3:$s=1;continue;case 4:$s=-1;return c;}return;}var $f={$blk:K.ptr.prototype.Float32,$c:true,$r,a,b,c,$s};return $f;};K.prototype.Float32=function(){return this.$val.Float32();};K.ptr.prototype.Perm=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=$makeSlice(AS,a);d=0;case 1:if(!(d>0);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]));((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=d);d=d+(1)>>0;$s=1;continue;case 2:$s=-1;return c;}return;}var $f={$blk:K.ptr.prototype.Perm,$c:true,$r,a,b,c,d,e,f,$s};return $f;};K.prototype.Perm=function(a){return this.$val.Perm(a);};K.ptr.prototype.Shuffle=function(a,b){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(a<0){$panic(new $String("invalid argument to Shuffle"));}d=a-1>>0;case 1:if(!(d>2147483646)){$s=2;continue;}f=c.Int63n((new $Int64(0,(d+1>>0))));$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=(((e=f,e.$low+((e.$high>>31)*4294967296))>>0));$r=b(d,g);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=d-(1)>>0;$s=1;continue;case 2:case 5:if(!(d>0)){$s=6;continue;}h=c.int31n((((d+1>>0)>>0)));$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=((h>>0));$r=b(d,i);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=d-(1)>>0;$s=5;continue;case 6:$s=-1;return;}return;}var $f={$blk:K.ptr.prototype.Shuffle,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};K.prototype.Shuffle=function(a,b){return this.$val.Shuffle(a,b);};K.ptr.prototype.Read=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=0;c=$ifaceNil;d=this;e=$assertType(d.src,AN,true);f=e[0];g=e[1];if(g){$s=1;continue;}$s=2;continue;case 1:i=f.read(a,(d.$ptr_readVal||(d.$ptr_readVal=new AT(function(){return this.$target.readVal;},function($v){this.$target.readVal=$v;},d))),(d.$ptr_readPos||(d.$ptr_readPos=new AR(function(){return this.$target.readPos;},function($v){this.$target.readPos=$v;},d))));$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;b=h[0];c=h[1];j=[b,c];$s=4;case 4:return j;case 2:l=M(a,d.src,(d.$ptr_readVal||(d.$ptr_readVal=new AT(function(){return this.$target.readVal;},function($v){this.$target.readVal=$v;},d))),(d.$ptr_readPos||(d.$ptr_readPos=new AR(function(){return this.$target.readPos;},function($v){this.$target.readPos=$v;},d))));$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;b=k[0];c=k[1];m=[b,c];$s=6;case 6:return m;}return;}var $f={$blk:K.ptr.prototype.Read,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};K.prototype.Read=function(a){return this.$val.Read(a);};M=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=0;f=$ifaceNil;g=d.$get();h=c.$get();i=$assertType(b,AM,true);j=i[0];e=0;case 1:if(!(e=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]=((h.$low<<24>>>24)));h=$shiftRightInt64(h,(8));g=g-(1)<<24>>24;e=e+(1)>>0;$s=1;continue;case 2:d.$set(g);c.$set(h);$s=-1;return[e,f];}return;}var $f={$blk:M,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};AE.ptr.prototype.Int63=function(){var a,b;a=new $Int64(0,0);b=this;b.lk.Lock();a=b.src.Int63();b.lk.Unlock();return a;};AE.prototype.Int63=function(){return this.$val.Int63();};AE.ptr.prototype.Uint64=function(){var a,b;a=new $Uint64(0,0);b=this;b.lk.Lock();a=b.src.Uint64();b.lk.Unlock();return a;};AE.prototype.Uint64=function(){return this.$val.Uint64();};AE.ptr.prototype.Seed=function(a){var a,b;b=this;b.lk.Lock();b.src.Seed(a);b.lk.Unlock();};AE.prototype.Seed=function(a){return this.$val.Seed(a);};AE.ptr.prototype.seedPos=function(a,b){var a,b,c;c=this;c.lk.Lock();c.src.Seed(a);b.$set(0);c.lk.Unlock();};AE.prototype.seedPos=function(a,b){return this.$val.seedPos(a,b);};AE.ptr.prototype.read=function(a,b,c){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=0;e=$ifaceNil;f=this;f.lk.Lock();h=M(a,f.src,b,c);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;d=g[0];e=g[1];f.lk.Unlock();$s=-1;return[d,e];}return;}var $f={$blk:AE.ptr.prototype.read,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};AE.prototype.read=function(a,b,c){return this.$val.read(a,b,c);};AF=function(a){var a;if(a<0){return((-a>>>0));}return((a>>>0));};K.ptr.prototype.NormFloat64=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;case 1:b=a.Uint32();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=((b>>0));d=c&127;e=(c)*(((d<0||d>=AH.length)?($throwRuntimeError("index out of range"),undefined):AH[d]));if(AF(c)<((d<0||d>=AG.length)?($throwRuntimeError("index out of range"),undefined):AG[d])){$s=-1;return e;}if(d===0){$s=4;continue;}$s=5;continue;case 4:case 6:f=a.Float64();$s=8;case 8:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=A.Log(f);$s=9;case 9:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}e=-g*0.29047645161474317;h=a.Float64();$s=10;case 10:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=A.Log(h);$s=11;case 11:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=-i;if(j+j>=e*e){$s=7;continue;}$s=6;continue;case 7:if(c>0){$s=-1;return 3.442619855899+e;}$s=-1;return-3.442619855899-e;case 5:k=a.Float64();$s=14;case 14:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if($fround(((d<0||d>=AI.length)?($throwRuntimeError("index out of range"),undefined):AI[d])+$fround(($fround(k))*($fround((l=d-1>>0,((l<0||l>=AI.length)?($throwRuntimeError("index out of range"),undefined):AI[l]))-((d<0||d>=AI.length)?($throwRuntimeError("index out of range"),undefined):AI[d])))))<($fround(A.Exp(-0.5*e*e)))){$s=12;continue;}$s=13;continue;case 12:$s=-1;return e;case 13:$s=1;continue;case 2:$s=-1;return 0;}return;}var $f={$blk:K.ptr.prototype.NormFloat64,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};K.prototype.NormFloat64=function(){return this.$val.NormFloat64();};K.ptr.prototype.ExpFloat64=function(){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;case 1:b=a.Uint32();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=(c&255)>>>0;e=(c)*(((d<0||d>=AK.length)?($throwRuntimeError("index out of range"),undefined):AK[d]));if(c<((d<0||d>=AJ.length)?($throwRuntimeError("index out of range"),undefined):AJ[d])){$s=-1;return e;}if(d===0){$s=4;continue;}$s=5;continue;case 4:f=a.Float64();$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=A.Log(f);$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=7.69711747013105-g;$s=8;case 8:return h;case 5:i=a.Float64();$s=11;case 11:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if($fround(((d<0||d>=AL.length)?($throwRuntimeError("index out of range"),undefined):AL[d])+$fround(($fround(i))*($fround((j=d-1>>>0,((j<0||j>=AL.length)?($throwRuntimeError("index out of range"),undefined):AL[j]))-((d<0||d>=AL.length)?($throwRuntimeError("index out of range"),undefined):AL[d])))))<($fround(A.Exp(-e)))){$s=9;continue;}$s=10;continue;case 9:$s=-1;return e;case 10:$s=1;continue;case 2:$s=-1;return 0;}return;}var $f={$blk:K.ptr.prototype.ExpFloat64,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};K.prototype.ExpFloat64=function(){return this.$val.ExpFloat64();};AM.methods=[{prop:"Seed",name:"Seed",pkg:"",typ:$funcType([$Int64],[],false)},{prop:"Int63",name:"Int63",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Uint64",name:"Uint64",pkg:"",typ:$funcType([],[$Uint64],false)}];AO.methods=[{prop:"Seed",name:"Seed",pkg:"",typ:$funcType([$Int64],[],false)},{prop:"Int63",name:"Int63",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Uint32",name:"Uint32",pkg:"",typ:$funcType([],[$Uint32],false)},{prop:"Uint64",name:"Uint64",pkg:"",typ:$funcType([],[$Uint64],false)},{prop:"Int31",name:"Int31",pkg:"",typ:$funcType([],[$Int32],false)},{prop:"Int",name:"Int",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Int63n",name:"Int63n",pkg:"",typ:$funcType([$Int64],[$Int64],false)},{prop:"Int31n",name:"Int31n",pkg:"",typ:$funcType([$Int32],[$Int32],false)},{prop:"int31n",name:"int31n",pkg:"math/rand",typ:$funcType([$Int32],[$Int32],false)},{prop:"Intn",name:"Intn",pkg:"",typ:$funcType([$Int],[$Int],false)},{prop:"Float64",name:"Float64",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Float32",name:"Float32",pkg:"",typ:$funcType([],[$Float32],false)},{prop:"Perm",name:"Perm",pkg:"",typ:$funcType([$Int],[AS],false)},{prop:"Shuffle",name:"Shuffle",pkg:"",typ:$funcType([$Int,AU],[],false)},{prop:"Read",name:"Read",pkg:"",typ:$funcType([AV],[$Int,$error],false)},{prop:"NormFloat64",name:"NormFloat64",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"ExpFloat64",name:"ExpFloat64",pkg:"",typ:$funcType([],[$Float64],false)}];AN.methods=[{prop:"Int63",name:"Int63",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Uint64",name:"Uint64",pkg:"",typ:$funcType([],[$Uint64],false)},{prop:"Seed",name:"Seed",pkg:"",typ:$funcType([$Int64],[],false)},{prop:"seedPos",name:"seedPos",pkg:"math/rand",typ:$funcType([$Int64,AR],[],false)},{prop:"read",name:"read",pkg:"math/rand",typ:$funcType([AV,AT,AR],[$Int,$error],false)}];F.init("math/rand",[{prop:"tap",name:"tap",embedded:false,exported:false,typ:$Int,tag:""},{prop:"feed",name:"feed",embedded:false,exported:false,typ:$Int,tag:""},{prop:"vec",name:"vec",embedded:false,exported:false,typ:AQ,tag:""}]);H.init([{prop:"Int63",name:"Int63",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Seed",name:"Seed",pkg:"",typ:$funcType([$Int64],[],false)}]);I.init([{prop:"Int63",name:"Int63",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Seed",name:"Seed",pkg:"",typ:$funcType([$Int64],[],false)},{prop:"Uint64",name:"Uint64",pkg:"",typ:$funcType([],[$Uint64],false)}]);K.init("math/rand",[{prop:"src",name:"src",embedded:false,exported:false,typ:H,tag:""},{prop:"s64",name:"s64",embedded:false,exported:false,typ:I,tag:""},{prop:"readVal",name:"readVal",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"readPos",name:"readPos",embedded:false,exported:false,typ:$Int8,tag:""}]);AE.init("math/rand",[{prop:"lk",name:"lk",embedded:false,exported:false,typ:B.Mutex,tag:""},{prop:"src",name:"src",embedded:false,exported:false,typ:AM,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=B.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}E=$toNativeArray($kindInt64,[new $Int64(-973649357,3952672746),new $Int64(-1065661887,3130416987),new $Int64(324977939,3414273807),new $Int64(1241840476,2806224363),new $Int64(-1477934308,1997590414),new $Int64(2103305448,2402795971),new $Int64(1663160183,1140819369),new $Int64(1120601685,1788868961),new $Int64(1848035537,1089001426),new $Int64(1235702047,873593504),new $Int64(1911387977,581324885),new $Int64(-1654874170,1609182556),new $Int64(1069394745,1241596776),new $Int64(1895445337,1771189259),new $Int64(-1374618802,3467012610),new $Int64(-140526423,2344407434),new $Int64(-1745367887,782467244),new $Int64(26335124,3404933915),new $Int64(1063924276,618867887),new $Int64(-968700782,520164395),new $Int64(-1591572833,1341358184),new $Int64(-1515085039,665794848),new $Int64(1527227641,3183648150),new $Int64(1781176124,696329606),new $Int64(1789146075,4151988961),new $Int64(-2087444114,998951326),new $Int64(-612324923,1364957564),new $Int64(63173359,4090230633),new $Int64(-1498029007,4009697548),new $Int64(248009524,2569622517),new $Int64(778703922,3742421481),new $Int64(-1109106023,1506914633),new $Int64(1738099768,1983412561),new $Int64(236311649,1436266083),new $Int64(-1111517500,3922894967),new $Int64(-1336974714,1792680179),new $Int64(563141142,1188796351),new $Int64(1349617468,405968250),new $Int64(1044074554,433754187),new $Int64(870549669,4073162024),new $Int64(-1094251604,433121399),new $Int64(2451824,4162580594),new $Int64(-137262572,4132415622),new $Int64(-1536231048,3033822028),new $Int64(2016407895,824682382),new $Int64(2366218,3583765414),new $Int64(-624604839,535386927),new $Int64(1637219058,2286693689),new $Int64(1453075389,2968466525),new $Int64(193683513,1351410206),new $Int64(-283806096,1412813499),new $Int64(492736522,4126267639),new $Int64(512765208,2105529399),new $Int64(2132966268,2413882233),new $Int64(947457634,32226200),new $Int64(1149341356,2032329073),new $Int64(106485445,1356518208),new $Int64(-2067810156,3430061722),new $Int64(-1484435135,3820169661),new $Int64(-1665985194,2981816134),new $Int64(1017155588,4184371017),new $Int64(206574701,2119206761),new $Int64(-852109057,2472200560),new $Int64(-560457548,2853524696),new $Int64(1307803389,1681119904),new $Int64(-174986835,95608918),new $Int64(392686347,3690479145),new $Int64(-1205570926,1397922290),new $Int64(-1159314025,1516129515),new $Int64(-320178155,1547420459),new $Int64(1311333971,1470949486),new $Int64(-1953469798,1336785672),new $Int64(-45086614,4131677129),new $Int64(-1392278100,4246329084),new $Int64(-1142500187,3788585631),new $Int64(-66478285,3080389532),new $Int64(-646438364,2215402037),new $Int64(391002300,1171593935),new $Int64(1408774047,1423855166),new $Int64(-519177718,2276716302),new $Int64(-368453140,2068027241),new $Int64(1369359303,3427553297),new $Int64(189241615,3289637845),new $Int64(1057480830,3486407650),new $Int64(-1512910664,3071877822),new $Int64(1159653919,3363620705),new $Int64(-934256930,4159821533),new $Int64(-76621938,1894661),new $Int64(-674493898,1156868282),new $Int64(348271067,776219088),new $Int64(-501428838,2425634259),new $Int64(1716021749,680510161),new $Int64(-574263456,1310101429),new $Int64(1095885995,2964454134),new $Int64(-325695512,3467098407),new $Int64(1990672920,2109628894),new $Int64(-2139648704,1232604732),new $Int64(-1838070714,3261916179),new $Int64(1699175360,434597899),new $Int64(235436061,1624796439),new $Int64(-1626402839,3589632480),new $Int64(1198416575,864579159),new $Int64(-1938748161,1380889830),new $Int64(619206309,2654509477),new $Int64(1419738251,1468209306),new $Int64(-1744284772,100794388),new $Int64(-1191421458,2991674471),new $Int64(-208666741,2224662036),new $Int64(-173659161,977097250),new $Int64(1351320195,726419512),new $Int64(-183459897,1747974366),new $Int64(-753095183,1556430604),new $Int64(-1049492215,1080776742),new $Int64(-385846958,280794874),new $Int64(117767733,919835643),new $Int64(-967009426,3434019658),new $Int64(-1951414480,2461941785),new $Int64(133215641,3615001066),new $Int64(417204809,3103414427),new $Int64(790056561,3380809712),new $Int64(-1267681408,2724693469),new $Int64(547796833,598827710),new $Int64(-1846559452,3452273442),new $Int64(-75778224,649274915),new $Int64(-801301329,2585724112),new $Int64(-1510934263,3165579553),new $Int64(1185578221,2635894283),new $Int64(-52910178,2053289721),new $Int64(985976581,3169337108),new $Int64(1170569632,144717764),new $Int64(1079216270,1383666384),new $Int64(-124804942,681540375),new $Int64(1375448925,537050586),new $Int64(-1964768344,315246468),new $Int64(226402871,849323088),new $Int64(-885062465,45543944),new $Int64(-946445250,2319052083),new $Int64(-40708194,3613090841),new $Int64(560472520,2992171180),new $Int64(-381863169,2068244785),new $Int64(917538188,4239862634),new $Int64(-1369555809,3892253031),new $Int64(720683925,958186149),new $Int64(-423297785,1877702262),new $Int64(1357886971,837674867),new $Int64(1837048883,1507589294),new $Int64(1905518400,873336795),new $Int64(-1879761037,2764496274),new $Int64(-1806480530,4196182374),new $Int64(-1066765755,550964545),new $Int64(818747069,420611474),new $Int64(-1924830376,204265180),new $Int64(1549974541,1787046383),new $Int64(1215581865,3102292318),new $Int64(418321538,1552199393),new $Int64(1243493047,980542004),new $Int64(267284263,3293718720),new $Int64(1179528763,3771917473),new $Int64(599484404,2195808264),new $Int64(252818753,3894702887),new $Int64(-1367475956,2099949527),new $Int64(1424094358,338442522),new $Int64(490737398,637158004),new $Int64(-1727621530,281976339),new $Int64(574970164,3619802330),new $Int64(-431930823,3084554784),new $Int64(-1264611183,4129772886),new $Int64(-2104399043,1680378557),new $Int64(-1621962591,3339087776),new $Int64(1680500332,4220317857),new $Int64(-1935828963,2959322499),new $Int64(1675600481,1488354890),new $Int64(-834863562,3958162143),new $Int64(-1226511573,2773705983),new $Int64(1876039582,225908689),new $Int64(-1183735113,908216283),new $Int64(-605696219,3574646075),new $Int64(-1827723091,1936937569),new $Int64(1519770881,75492235),new $Int64(816689472,1935193178),new $Int64(2142521206,2018250883),new $Int64(455141620,3943126022),new $Int64(-601399488,3066544345),new $Int64(1932392669,2793082663),new $Int64(-1239009361,3297036421),new $Int64(1640597065,2206987825),new $Int64(-553246738,807894872),new $Int64(-1781325307,766252117),new $Int64(2060649606,3833114345),new $Int64(845619743,1255067973),new $Int64(1201145605,741697208),new $Int64(-1476242608,2810093753),new $Int64(1109032642,4229340371),new $Int64(1462188720,1361684224),new $Int64(-1159399429,1906263026),new $Int64(475781207,3904421704),new $Int64(-623537128,1769075545),new $Int64(1062308525,2621599764),new $Int64(1279509432,3431891480),new $Int64(-1742751146,1871896503),new $Int64(128756421,1412808876),new $Int64(1605404688,952876175),new $Int64(-230443691,1824438899),new $Int64(1662295856,1005035476),new $Int64(-156574141,527508597),new $Int64(1288873303,3066806859),new $Int64(565995893,3244940914),new $Int64(-889746188,209092916),new $Int64(-247669406,1242699167),new $Int64(-713830396,456723774),new $Int64(1776978905,1001252870),new $Int64(1468772157,2026725874),new $Int64(857254202,2137562569),new $Int64(765939740,3183366709),new $Int64(1533887628,2612072960),new $Int64(56977098,1727148468),new $Int64(-1197583895,3803658212),new $Int64(1883670356,479946959),new $Int64(685713571,1562982345),new $Int64(-1946242443,1766109365),new $Int64(700596547,3257093788),new $Int64(-184714929,2365720207),new $Int64(93384808,3742754173),new $Int64(-458385235,2878193673),new $Int64(1096135042,2174002182),new $Int64(-834260953,3573511231),new $Int64(-754572527,1760299077),new $Int64(-1375627191,2260779833),new $Int64(-866019274,1452805722),new $Int64(-1229671918,2940011802),new $Int64(1890251082,1886183802),new $Int64(893897673,2514369088),new $Int64(1644345561,3924317791),new $Int64(-1974867432,500935732),new $Int64(1403501753,676580929),new $Int64(-1565912283,1184984890),new $Int64(-691968413,1271474274),new $Int64(-1828754738,3163791473),new $Int64(2051027584,2842487377),new $Int64(1511537551,2170968612),new $Int64(573262976,3535856740),new $Int64(-2053227187,1488599718),new $Int64(-1180531831,3408913763),new $Int64(-2086531912,2501050084),new $Int64(-875130448,1639124157),new $Int64(-2009482504,4088176393),new $Int64(1574896563,3989947576),new $Int64(-165243708,3414355209),new $Int64(-792329287,2275136352),new $Int64(-2057774345,2151835223),new $Int64(-931144933,1654534827),new $Int64(-679921451,377892833),new $Int64(-482716010,660204544),new $Int64(85706799,390828249),new $Int64(-1422172693,3402783878),new $Int64(-1468634160,3717936603),new $Int64(1113532086,2211058823),new $Int64(1564224320,2692150867),new $Int64(1952770442,1928910388),new $Int64(788716862,3931011137),new $Int64(1083670504,1112701047),new $Int64(-68150572,2452299106),new $Int64(-896164822,2337204777),new $Int64(1774877857,273889282),new $Int64(1798719843,1462008793),new $Int64(2138834788,1554494002),new $Int64(-1194967131,182675323),new $Int64(-1598554764,1882802136),new $Int64(589279648,3700220025),new $Int64(381039426,3083431543),new $Int64(-851859191,3622207527),new $Int64(338126939,432729309),new $Int64(-1667470126,2391914317),new $Int64(-1849558151,235747924),new $Int64(2120733629,3088823825),new $Int64(-745079795,2314658321),new $Int64(1165929723,2957634338),new $Int64(501323675,4117056981),new $Int64(1564699815,1482500298),new $Int64(-740826490,840489337),new $Int64(799522364,3483178565),new $Int64(532129761,2074004656),new $Int64(724246478,3643392642),new $Int64(-665153481,1583624461),new $Int64(-885822954,287473085),new $Int64(1667835381,3136843981),new $Int64(1138806821,1266970974),new $Int64(135185781,1998688839),new $Int64(392094735,1492900209),new $Int64(1031326774,1538112737),new $Int64(-2070568842,2207265429),new $Int64(-1886797613,963263315),new $Int64(1671145500,2295892134),new $Int64(1068469660,2002560897),new $Int64(-356250305,1369254035),new $Int64(33436120,3353312708),new $Int64(57507843,947771099),new $Int64(-1945755145,1747061399),new $Int64(1507240140,2047354631),new $Int64(720000810,4165367136),new $Int64(479265078,3388864963),new $Int64(-952181250,286492130),new $Int64(2045622690,2795735007),new $Int64(-715730566,3703961339),new $Int64(-148436487,1797825479),new $Int64(1429039600,1116589674),new $Int64(-1665420098,2593309206),new $Int64(1329049334,3404995677),new $Int64(-750579440,3453462936),new $Int64(1014767077,3016498634),new $Int64(75698599,1650371545),new $Int64(1592007860,212344364),new $Int64(1127766888,3843932156),new $Int64(-748019856,3573129983),new $Int64(-890581831,665897820),new $Int64(1071492673,1675628772),new $Int64(243225682,2831752928),new $Int64(2120298836,1486294219),new $Int64(-1954407413,268782709),new $Int64(-1002123503,4186179080),new $Int64(624342951,1613720397),new $Int64(857179861,2703686015),new $Int64(-911618704,2205342611),new $Int64(-672703993,1411666394),new $Int64(-1528454899,677744900),new $Int64(-1876628533,4172867247),new $Int64(135494707,2163418403),new $Int64(849547544,2841526879),new $Int64(-1117516959,1082141470),new $Int64(-1770111792,4046134367),new $Int64(51415528,2142943655),new $Int64(-249824333,3124627521),new $Int64(998228909,219992939),new $Int64(-1078790951,1756846531),new $Int64(1283749206,1225118210),new $Int64(-525858006,1647770243),new $Int64(-2035959705,444807907),new $Int64(2036369448,3952076173),new $Int64(53201823,1461839639),new $Int64(315761893,3699250910),new $Int64(702974850,1373688981),new $Int64(734022261,147523747),new $Int64(-2047330906,1211276581),new $Int64(1294440951,2548832680),new $Int64(1144696256,1995631888),new $Int64(-1992983070,2011457303),new $Int64(-1351022674,3057425772),new $Int64(667839456,81484597),new $Int64(-1681980888,3646681560),new $Int64(-1372462725,635548515),new $Int64(602489502,2508044581),new $Int64(-1794220117,1014917157),new $Int64(719992433,3214891315),new $Int64(-1294799037,959582252),new $Int64(226415134,3347040449),new $Int64(-362868096,4102971975),new $Int64(397887437,4078022210),new $Int64(-536803826,2851767182),new $Int64(-1398321012,1540160644),new $Int64(-1549098876,1057290595),new $Int64(-112592988,3907769253),new $Int64(579300318,4248952684),new $Int64(-1054576049,132554364),new $Int64(-1085862414,1029351092),new $Int64(697840928,2583007416),new $Int64(298619124,1486185789),new $Int64(55905697,2871589073),new $Int64(2017643612,723203291),new $Int64(146250550,2494333952),new $Int64(-1082993397,2230939180),new $Int64(-1804568072,3943232912),new $Int64(1768732449,2181367922),new $Int64(-729261111,2889274791),new $Int64(1824032949,2046728161),new $Int64(1653899792,1376052477),new $Int64(1022327048,381236993),new $Int64(-1113097690,3188942166),new $Int64(-74480109,350070824),new $Int64(144881592,61758415),new $Int64(-741824226,3492950336),new $Int64(-2030042720,3093818430),new $Int64(-453590535,2962480613),new $Int64(-1912050708,3154871160),new $Int64(-1636478569,3228564679),new $Int64(610731502,888276216),new $Int64(-946702974,3574998604),new $Int64(-1277068380,1967526716),new $Int64(-1556147941,1554691298),new $Int64(-1573024234,339944798),new $Int64(1223764147,1154515356),new $Int64(1825645307,967516237),new $Int64(1546195135,596588202),new $Int64(-1867600880,3764362170),new $Int64(-1655392592,266611402),new $Int64(-393255880,2047856075),new $Int64(-1000726433,21444105),new $Int64(-949424754,3065563181),new $Int64(-232418803,1140663212),new $Int64(633187674,2323741028),new $Int64(2126290159,3103873707),new $Int64(1008658319,2766828349),new $Int64(-485587503,1970872996),new $Int64(1628585413,3766615585),new $Int64(-595148528,2036813414),new $Int64(-1994877121,3105536507),new $Int64(13954645,3396176938),new $Int64(-721402003,1377154485),new $Int64(-61839181,3807014186),new $Int64(543009040,3710110597),new $Int64(-1751425519,916420443),new $Int64(734556788,2103831255),new $Int64(-1766161494,717331943),new $Int64(-1574598896,3550505941),new $Int64(45939673,378749927),new $Int64(-1997615719,611017331),new $Int64(592130075,758907650),new $Int64(1012992349,154266815),new $Int64(-1040454942,1407468696),new $Int64(-1678191250,970098704),new $Int64(-285057486,1971660656),new $Int64(998365243,3332747885),new $Int64(1947089649,1935189867),new $Int64(1510248801,203520055),new $Int64(-1305165746,3916463034),new $Int64(-388598655,3474113316),new $Int64(1036101639,316544223),new $Int64(-1773744891,1650844677),new $Int64(-907191419,4267565603),new $Int64(-1070275024,2501167616),new $Int64(-1520651863,3929401789),new $Int64(-2091360852,337170252),new $Int64(-960502090,2061966842),new $Int64(-304190848,2508461464),new $Int64(-1941471116,2791377107),new $Int64(1240791848,1227227588),new $Int64(1813978778,1709681848),new $Int64(1153692192,3768820575),new $Int64(-1002297449,2887126398),new $Int64(-1447111334,296561685),new $Int64(700300844,3729960077),new $Int64(-1572311344,372833036),new $Int64(2078875613,2409779288),new $Int64(1829161290,555274064),new $Int64(-1105595719,4239804901),new $Int64(1839403216,3723486978),new $Int64(-1649093095,2145871984),new $Int64(-1582765715,3565480803),new $Int64(-1568653827,2197313814),new $Int64(974785092,3613674566),new $Int64(438638731,3042093666),new $Int64(-96556264,3324034321),new $Int64(869420878,3708873369),new $Int64(946682149,1698090092),new $Int64(1618900382,4213940712),new $Int64(-1843479747,2087477361),new $Int64(-1766167800,2407950639),new $Int64(-1296225558,3942568569),new $Int64(-1223900450,4088074412),new $Int64(723260036,2964773675),new $Int64(-673921829,1539178386),new $Int64(1062961552,2694849566),new $Int64(460977733,2120273838),new $Int64(-1604570740,2484608657),new $Int64(880846449,2956190677),new $Int64(1970902366,4223313749),new $Int64(662161910,3502682327),new $Int64(705634754,4133891139),new $Int64(-1031359300,1166449596),new $Int64(1038247601,3362705993),new $Int64(93734798,3892921029),new $Int64(1876124043,786869787),new $Int64(1057490746,1046342263),new $Int64(242763728,493777327),new $Int64(-853573201,3304827646),new $Int64(616460742,125356352),new $Int64(499300063,74094113),new $Int64(-795586925,2500816079),new $Int64(-490248444,514015239),new $Int64(1377565129,543520454),new $Int64(-2039776725,3614531153),new $Int64(2056746300,2356753985),new $Int64(1390062617,2018141668),new $Int64(131272971,2087974891),new $Int64(-1502927041,3166972343),new $Int64(372256200,1517638666),new $Int64(-935275664,173466846),new $Int64(-695774461,4241513471),new $Int64(-1413550842,2783126920),new $Int64(1972004134,4167264826),new $Int64(29260506,3907395640),new $Int64(-910901561,1539634186),new $Int64(-595957298,178241987),new $Int64(-113277636,182168164),new $Int64(-1102530459,2386154934),new $Int64(1379126408,4077374341),new $Int64(-2114679722,1732699140),new $Int64(-421057745,1041306002),new $Int64(1860414813,2068001749),new $Int64(1005320202,3208962910),new $Int64(844054010,697710380),new $Int64(-1509359403,2228431183),new $Int64(-810313977,3554678728),new $Int64(-750989047,173470263),new $Int64(-85886265,3848297795),new $Int64(-926936977,246236185),new $Int64(-1984190461,2066374846),new $Int64(1771673660,312890749),new $Int64(703378057,3573310289),new $Int64(-598851901,143166754),new $Int64(613554316,2081511079),new $Int64(1197802104,486038032),new $Int64(-1906483789,2982218564),new $Int64(364901986,1000939191),new $Int64(1902782651,2750454885),new $Int64(-671844857,3375313137),new $Int64(-1643868040,881302957),new $Int64(-1508784745,2514186393),new $Int64(-1703622845,360024739),new $Int64(1399671872,292500025),new $Int64(1381210821,2276300752),new $Int64(521803381,4069087683),new $Int64(-1938982667,1637778212),new $Int64(720490469,1676670893),new $Int64(1067262482,3855174429),new $Int64(2114075974,2067248671),new $Int64(-89426259,2884561259),new $Int64(-805741095,2456511185),new $Int64(983726246,561175414),new $Int64(-1719489563,432588903),new $Int64(885133709,4059399550),new $Int64(-93096266,1075014784),new $Int64(-1733832628,2728058415),new $Int64(1839142064,1299703678),new $Int64(1262333188,2347583393),new $Int64(1285481956,2468164145),new $Int64(-1158354011,1140014346),new $Int64(2033889184,1936972070),new $Int64(-1737578993,3870530098),new $Int64(-484494257,1717789158),new $Int64(-232997156,1153452491),new $Int64(-990424416,3948827651),new $Int64(-1357145630,2101413152),new $Int64(1495744672,3854091229),new $Int64(83644069,4215565463),new $Int64(-1385277313,1202710438),new $Int64(-564909037,2072216740),new $Int64(705690639,2066751068),new $Int64(-2113583312,173902580),new $Int64(-741983806,142459001),new $Int64(172391592,1889151926),new $Int64(-498943125,3034199774),new $Int64(1618587731,516490102),new $Int64(93114264,3692577783),new $Int64(-2078821353,2953948865),new $Int64(-320938673,4041040923),new $Int64(-1942517976,592046130),new $Int64(-705643640,384297211),new $Int64(-2051649464,265863924),new $Int64(2101717619,1333136237),new $Int64(1499611781,1406273556),new $Int64(1074670496,426305476),new $Int64(125704633,2750898176),new $Int64(488068495,1633944332),new $Int64(2037723464,3236349343),new $Int64(-1703423246,4013676611),new $Int64(1718532237,2265047407),new $Int64(1433593806,875071080),new $Int64(-343047503,1418843655),new $Int64(2009228711,451657300),new $Int64(1229446621,1866374663),new $Int64(1653472867,1551455622),new $Int64(577191481,3560962459),new $Int64(1669204077,3347903778),new $Int64(-298327194,2675874918),new $Int64(-1831355577,2762991672),new $Int64(530492383,3689068477),new $Int64(844089962,4071997905),new $Int64(1508155730,1381702441),new $Int64(2089931018,2373284878),new $Int64(-864267462,2143983064),new $Int64(308739063,1938207195),new $Int64(1754949306,1188152253),new $Int64(1272345009,615870490),new $Int64(742653194,2662252621),new $Int64(1477718295,3839976789),new $Int64(-2091334213,306752547),new $Int64(-1426688067,2162363077),new $Int64(-57052633,2767224719),new $Int64(-1471624099,2628837712),new $Int64(1678405918,2967771969),new $Int64(1694285728,499792248),new $Int64(-1744131281,4285253508),new $Int64(962357072,2856511070),new $Int64(679471692,2526409716),new $Int64(-1793706473,1240875658),new $Int64(-914893422,2577342868),new $Int64(-1001298215,4136853496),new $Int64(-1477114974,2403540137),new $Int64(1372824515,1371410668),new $Int64(-176562048,371758825),new $Int64(-441063112,1528834084),new $Int64(-71688630,1504757260),new $Int64(-1461820072,699052551),new $Int64(-505543539,3347789870),new $Int64(1951619734,3430604759),new $Int64(2119672219,1935601723),new $Int64(966789690,834676166)]);N=L(new AE.ptr(new B.Mutex.ptr(false),$assertType(J(new $Int64(0,1)),AM)));AG=$toNativeArray($kindUint32,[1991057938,0,1611602771,1826899878,1918584482,1969227037,2001281515,2023368125,2039498179,2051788381,2061460127,2069267110,2075699398,2081089314,2085670119,2089610331,2093034710,2096037586,2098691595,2101053571,2103168620,2105072996,2106796166,2108362327,2109791536,2111100552,2112303493,2113412330,2114437283,2115387130,2116269447,2117090813,2117856962,2118572919,2119243101,2119871411,2120461303,2121015852,2121537798,2122029592,2122493434,2122931299,2123344971,2123736059,2124106020,2124456175,2124787725,2125101763,2125399283,2125681194,2125948325,2126201433,2126441213,2126668298,2126883268,2127086657,2127278949,2127460589,2127631985,2127793506,2127945490,2128088244,2128222044,2128347141,2128463758,2128572095,2128672327,2128764606,2128849065,2128925811,2128994934,2129056501,2129110560,2129157136,2129196237,2129227847,2129251929,2129268426,2129277255,2129278312,2129271467,2129256561,2129233410,2129201800,2129161480,2129112170,2129053545,2128985244,2128906855,2128817916,2128717911,2128606255,2128482298,2128345305,2128194452,2128028813,2127847342,2127648860,2127432031,2127195339,2126937058,2126655214,2126347546,2126011445,2125643893,2125241376,2124799783,2124314271,2123779094,2123187386,2122530867,2121799464,2120980787,2120059418,2119015917,2117825402,2116455471,2114863093,2112989789,2110753906,2108037662,2104664315,2100355223,2094642347,2086670106,2074676188,2054300022,2010539237]);AH=$toNativeArray($kindFloat32,[1.7290404663583558e-09,1.2680928529462676e-10,1.689751810696194e-10,1.9862687883343e-10,2.223243117382978e-10,2.4244936613904144e-10,2.601613091623989e-10,2.761198769629658e-10,2.9073962681813725e-10,3.042996965518796e-10,3.169979556627567e-10,3.289802041894774e-10,3.4035738116777736e-10,3.5121602848242617e-10,3.61625090983253e-10,3.7164057942185025e-10,3.813085680537398e-10,3.906675816178762e-10,3.997501218933053e-10,4.0858399996679395e-10,4.1719308563337165e-10,4.255982233303257e-10,4.3381759295968436e-10,4.4186720948857783e-10,4.497613115272969e-10,4.57512583373898e-10,4.6513240481438345e-10,4.726310454117311e-10,4.800177477726209e-10,4.873009773476156e-10,4.944885056978876e-10,5.015873272284921e-10,5.086040477664255e-10,5.155446070048697e-10,5.224146670812502e-10,5.292193350214802e-10,5.359634958068682e-10,5.426517013518151e-10,5.492881705038144e-10,5.558769555769061e-10,5.624218868405251e-10,5.689264614971989e-10,5.75394121238304e-10,5.818281967329142e-10,5.882316855831959e-10,5.946076964136182e-10,6.009590047817426e-10,6.072883862451306e-10,6.135985053390414e-10,6.19892026598734e-10,6.261713370037114e-10,6.324390455780815e-10,6.386973727678935e-10,6.449488165749528e-10,6.511955974453087e-10,6.574400468473129e-10,6.636843297158634e-10,6.699307220081607e-10,6.761814441702541e-10,6.824387166481927e-10,6.887046488657234e-10,6.949815167800466e-10,7.012714853260604e-10,7.075767749498141e-10,7.13899661608508e-10,7.202424212593428e-10,7.266072743483676e-10,7.329966078550854e-10,7.394128087589991e-10,7.458582640396116e-10,7.523354716987285e-10,7.588469852493063e-10,7.653954137154528e-10,7.719834771435785e-10,7.786139510912449e-10,7.852897221383159e-10,7.920137878869582e-10,7.987892014504894e-10,8.056192379868321e-10,8.125072836762115e-10,8.194568912323064e-10,8.264716688799467e-10,8.3355555791087e-10,8.407127216614185e-10,8.479473234679347e-10,8.552640262671218e-10,8.626675485068347e-10,8.701631637464402e-10,8.777562010564566e-10,8.854524335966119e-10,8.932581896381464e-10,9.011799639857543e-10,9.092249730890956e-10,9.174008219758889e-10,9.25715837318819e-10,9.341788453909317e-10,9.42799727177146e-10,9.515889187738935e-10,9.605578554783278e-10,9.697193048552322e-10,9.790869226478094e-10,9.886760299337993e-10,9.985036131254788e-10,1.008588212947359e-09,1.0189509236369076e-09,1.0296150598776421e-09,1.040606933955246e-09,1.0519566329136865e-09,1.0636980185552147e-09,1.0758701707302976e-09,1.0885182755160372e-09,1.101694735439196e-09,1.115461056855338e-09,1.1298901814171813e-09,1.1450695946990663e-09,1.1611052119775422e-09,1.178127595480305e-09,1.1962995039027646e-09,1.2158286599728285e-09,1.2369856250415978e-09,1.2601323318151003e-09,1.2857697129220469e-09,1.3146201904845611e-09,1.3477839955200466e-09,1.3870635751089821e-09,1.43574030442295e-09,1.5008658760251592e-09,1.6030947680434338e-09]);AI=$toNativeArray($kindFloat32,[1,0.963599681854248,0.9362826943397522,0.9130436182022095,0.8922816514968872,0.8732430338859558,0.8555005788803101,0.8387836217880249,0.8229072093963623,0.8077383041381836,0.7931770086288452,0.7791460752487183,0.7655841708183289,0.7524415850639343,0.7396772503852844,0.7272568941116333,0.7151514887809753,0.7033361196517944,0.6917891502380371,0.6804918646812439,0.6694276928901672,0.6585819721221924,0.6479418277740479,0.6374954581260681,0.6272324919700623,0.6171433925628662,0.6072195172309875,0.5974531769752502,0.5878370404243469,0.5783646702766418,0.5690299868583679,0.5598273873329163,0.550751805305481,0.5417983531951904,0.5329626798629761,0.5242405533790588,0.5156282186508179,0.5071220397949219,0.49871864914894104,0.4904148280620575,0.48220765590667725,0.47409430146217346,0.466072142124176,0.45813870429992676,0.45029163360595703,0.44252872467041016,0.4348478317260742,0.42724698781967163,0.41972434520721436,0.41227802634239197,0.40490642189979553,0.39760786294937134,0.3903807997703552,0.3832238018512726,0.3761354684829712,0.3691144585609436,0.36215949058532715,0.3552693724632263,0.3484429717063904,0.3416791558265686,0.33497685194015503,0.32833510637283325,0.3217529058456421,0.3152293860912323,0.30876362323760986,0.3023548424243927,0.2960021495819092,0.2897048592567444,0.28346219658851624,0.2772735059261322,0.271138072013855,0.2650552988052368,0.25902456045150757,0.25304529070854187,0.24711695313453674,0.24123899638652802,0.23541094362735748,0.22963231801986694,0.22390270233154297,0.21822164952754974,0.21258877217769623,0.20700371265411377,0.20146611332893372,0.1959756463766098,0.19053204357624054,0.18513499200344086,0.17978426814079285,0.1744796335697174,0.16922089457511902,0.16400785744190216,0.1588403731584549,0.15371830761432648,0.14864157140254974,0.14361007511615753,0.13862377405166626,0.13368265330791473,0.12878671288490295,0.12393598258495331,0.11913054436445236,0.11437050998210907,0.10965602099895477,0.1049872562289238,0.10036443918943405,0.09578784555196762,0.09125780314207077,0.08677466958761215,0.08233889937400818,0.07795098423957825,0.07361150532960892,0.06932111829519272,0.06508058309555054,0.06089077144861221,0.05675266310572624,0.05266740173101425,0.048636294901371,0.044660862535238266,0.040742866694927216,0.03688438981771469,0.03308788686990738,0.029356317594647408,0.025693291798233986,0.02210330404341221,0.018592102453112602,0.015167297795414925,0.011839478276669979,0.0086244847625494,0.005548994988203049,0.0026696291752159595]);AJ=$toNativeArray($kindUint32,[3801129273,0,2615860924,3279400049,3571300752,3733536696,3836274812,3906990442,3958562475,3997804264,4028649213,4053523342,4074002619,4091154507,4105727352,4118261130,4129155133,4138710916,4147160435,4154685009,4161428406,4167506077,4173011791,4178022498,4182601930,4186803325,4190671498,4194244443,4197554582,4200629752,4203493986,4206168142,4208670408,4211016720,4213221098,4215295924,4217252177,4219099625,4220846988,4222502074,4224071896,4225562770,4226980400,4228329951,4229616109,4230843138,4232014925,4233135020,4234206673,4235232866,4236216336,4237159604,4238064994,4238934652,4239770563,4240574564,4241348362,4242093539,4242811568,4243503822,4244171579,4244816032,4245438297,4246039419,4246620374,4247182079,4247725394,4248251127,4248760037,4249252839,4249730206,4250192773,4250641138,4251075867,4251497493,4251906522,4252303431,4252688672,4253062674,4253425844,4253778565,4254121205,4254454110,4254777611,4255092022,4255397640,4255694750,4255983622,4256264513,4256537670,4256803325,4257061702,4257313014,4257557464,4257795244,4258026541,4258251531,4258470383,4258683258,4258890309,4259091685,4259287526,4259477966,4259663135,4259843154,4260018142,4260188212,4260353470,4260514019,4260669958,4260821380,4260968374,4261111028,4261249421,4261383632,4261513736,4261639802,4261761900,4261880092,4261994441,4262105003,4262211835,4262314988,4262414513,4262510454,4262602857,4262691764,4262777212,4262859239,4262937878,4263013162,4263085118,4263153776,4263219158,4263281289,4263340187,4263395872,4263448358,4263497660,4263543789,4263586755,4263626565,4263663224,4263696735,4263727099,4263754314,4263778377,4263799282,4263817020,4263831582,4263842955,4263851124,4263856071,4263857776,4263856218,4263851370,4263843206,4263831695,4263816804,4263798497,4263776735,4263751476,4263722676,4263690284,4263654251,4263614520,4263571032,4263523724,4263472530,4263417377,4263358192,4263294892,4263227394,4263155608,4263079437,4262998781,4262913534,4262823581,4262728804,4262629075,4262524261,4262414220,4262298801,4262177846,4262051187,4261918645,4261780032,4261635148,4261483780,4261325704,4261160681,4260988457,4260808763,4260621313,4260425802,4260221905,4260009277,4259787550,4259556329,4259315195,4259063697,4258801357,4258527656,4258242044,4257943926,4257632664,4257307571,4256967906,4256612870,4256241598,4255853155,4255446525,4255020608,4254574202,4254106002,4253614578,4253098370,4252555662,4251984571,4251383021,4250748722,4250079132,4249371435,4248622490,4247828790,4246986404,4246090910,4245137315,4244119963,4243032411,4241867296,4240616155,4239269214,4237815118,4236240596,4234530035,4232664930,4230623176,4228378137,4225897409,4223141146,4220059768,4216590757,4212654085,4208145538,4202926710,4196809522,4189531420,4180713890,4169789475,4155865042,4137444620,4111806704,4073393724,4008685917,3873074895]);AK=$toNativeArray($kindFloat32,[2.0249555365836613e-09,1.4866739783681027e-11,2.4409616689036184e-11,3.1968806074589295e-11,3.844677007314168e-11,4.42282044321729e-11,4.951644302919611e-11,5.443358958023836e-11,5.905943789574764e-11,6.34494193296753e-11,6.764381416113352e-11,7.167294535648239e-11,7.556032188826833e-11,7.932458162551725e-11,8.298078890689453e-11,8.654132271912474e-11,9.001651507523079e-11,9.341507428706208e-11,9.674443190998971e-11,1.0001099254308699e-10,1.0322031424037093e-10,1.0637725422757427e-10,1.0948611461891744e-10,1.1255067711157807e-10,1.1557434870246297e-10,1.1856014781042035e-10,1.2151082917633005e-10,1.2442885610752796e-10,1.2731647680563896e-10,1.3017574518325858e-10,1.330085347417409e-10,1.3581656632677408e-10,1.386014220061682e-10,1.413645728254309e-10,1.4410737880776736e-10,1.4683107507629245e-10,1.4953686899854546e-10,1.522258291641876e-10,1.5489899640730442e-10,1.575573282952547e-10,1.6020171300645814e-10,1.628330109637588e-10,1.6545202707884954e-10,1.68059510752272e-10,1.7065616975120435e-10,1.73242697965037e-10,1.758197337720091e-10,1.783878739169964e-10,1.8094774290045024e-10,1.834998542005195e-10,1.8604476292871652e-10,1.8858298256319017e-10,1.9111498494872592e-10,1.9364125580789704e-10,1.9616222535212557e-10,1.9867835154840918e-10,2.011900368525943e-10,2.0369768372052732e-10,2.062016807302669e-10,2.0870240258208383e-10,2.1120022397624894e-10,2.136955057352452e-10,2.1618855317040442e-10,2.1867974098199738e-10,2.2116936060356807e-10,2.2365774510202385e-10,2.2614519978869652e-10,2.2863201609713002e-10,2.3111849933865614e-10,2.3360494094681883e-10,2.3609159072179864e-10,2.3857874009713953e-10,2.4106666662859766e-10,2.4355562011635357e-10,2.460458781161634e-10,2.485376904282077e-10,2.5103127909709144e-10,2.5352694943414633e-10,2.560248957284017e-10,2.585253955356137e-10,2.610286709003873e-10,2.6353494386732734e-10,2.6604446423661443e-10,2.6855745405285347e-10,2.71074163116225e-10,2.7359478571575835e-10,2.7611959940720965e-10,2.786487707240326e-10,2.8118254946640775e-10,2.8372118543451563e-10,2.8626484516180994e-10,2.8881380620404684e-10,2.9136826285025563e-10,2.9392840938946563e-10,2.96494523377433e-10,2.990667713476114e-10,3.016454031001814e-10,3.042306406797479e-10,3.068226783753403e-10,3.09421765987139e-10,3.12028125559749e-10,3.1464195138219964e-10,3.17263521010247e-10,3.1989300097734485e-10,3.225306410836737e-10,3.2517669112941405e-10,3.2783134540359526e-10,3.3049485370639786e-10,3.3316743808242677e-10,3.3584937608743815e-10,3.385408342548857e-10,3.4124211789610115e-10,3.4395342130011386e-10,3.4667499426710435e-10,3.494071143528288e-10,3.521500313574677e-10,3.54903967325626e-10,3.576691720574843e-10,3.6044595086437425e-10,3.632345535464765e-10,3.660352021483959e-10,3.688482297370399e-10,3.716738583570134e-10,3.7451239331964814e-10,3.773641121807003e-10,3.802292924959261e-10,3.831082673322328e-10,3.8600128648980103e-10,3.8890865527996255e-10,3.9183070676962473e-10,3.9476774627011935e-10,3.977200790927782e-10,4.006880383045086e-10,4.0367195697221803e-10,4.066721681628138e-10,4.0968900494320337e-10,4.127228558914453e-10,4.15774054074447e-10,4.188429603146915e-10,4.2192993543466173e-10,4.25035395767992e-10,4.2815970213716525e-10,4.313032986313914e-10,4.3446651831757777e-10,4.376498607960855e-10,4.408536868893975e-10,4.4407846844229937e-10,4.4732464954400086e-10,4.5059267428371186e-10,4.538830145062178e-10,4.5719619756745544e-10,4.605326675566346e-10,4.638929240741163e-10,4.672775499869886e-10,4.706869893844612e-10,4.74121908400349e-10,4.775827511238617e-10,4.810701836888143e-10,4.845848167178701e-10,4.881271498113904e-10,4.916979601254923e-10,4.952977472605369e-10,4.989272883726414e-10,5.025872495956207e-10,5.062783525744408e-10,5.100013189540675e-10,5.13756870379467e-10,5.175458395179078e-10,5.21369003525507e-10,5.252272505806843e-10,5.29121357839557e-10,5.330522134805449e-10,5.3702081670437e-10,5.41028055689452e-10,5.450749851476644e-10,5.491624932574268e-10,5.532918012640664e-10,5.574638528571541e-10,5.616799247931681e-10,5.659410717839819e-10,5.702485705860738e-10,5.746036979559221e-10,5.790077306500052e-10,5.83462111958255e-10,5.879682296594524e-10,5.925275825546805e-10,5.971417249561739e-10,6.01812211176167e-10,6.065408175714992e-10,6.113292094767075e-10,6.16179329782085e-10,6.21092954844471e-10,6.260721940876124e-10,6.311191569352559e-10,6.362359528111483e-10,6.414249686947926e-10,6.466885360545405e-10,6.520292639144998e-10,6.574497612987784e-10,6.629528592760892e-10,6.685415554485985e-10,6.742187919073217e-10,6.799880103436351e-10,6.858525969377638e-10,6.918161599145378e-10,6.978825850545434e-10,7.040559801829716e-10,7.103406751696184e-10,7.167412219288849e-10,7.232625609532306e-10,7.2990985477972e-10,7.366885990123251e-10,7.436047333442275e-10,7.506645305355164e-10,7.57874762946642e-10,7.652426470272644e-10,7.727759543385559e-10,7.804830115532013e-10,7.883728114777e-10,7.964550685635174e-10,8.047402189070851e-10,8.132396422944055e-10,8.219657177122031e-10,8.309318788590758e-10,8.401527806789488e-10,8.496445214056791e-10,8.594246980742071e-10,8.695127395874636e-10,8.799300732498239e-10,8.90700457834015e-10,9.01850316648023e-10,9.134091816243028e-10,9.254100818978372e-10,9.37890431984556e-10,9.508922538259412e-10,9.64463842123564e-10,9.78660263939446e-10,9.935448019859905e-10,1.0091912860943353e-09,1.0256859805934937e-09,1.0431305819125214e-09,1.0616465484503124e-09,1.0813799855569073e-09,1.1025096391392708e-09,1.1252564435793033e-09,1.149898620766976e-09,1.176793218427008e-09,1.2064089727203964e-09,1.2393785997488749e-09,1.2765849488616254e-09,1.319313880365769e-09,1.36954347862428e-09,1.4305497897382224e-09,1.5083649884672923e-09,1.6160853766322703e-09,1.7921247819074893e-09]);AL=$toNativeArray($kindFloat32,[1,0.9381436705589294,0.900469958782196,0.8717043399810791,0.847785472869873,0.8269932866096497,0.8084216713905334,0.7915276288986206,0.7759568691253662,0.7614634037017822,0.7478685975074768,0.7350381016731262,0.7228676676750183,0.7112747430801392,0.7001926302909851,0.6895664930343628,0.6793505549430847,0.669506311416626,0.6600008606910706,0.6508058309555054,0.6418967247009277,0.633251965045929,0.62485271692276,0.6166821718215942,0.608725368976593,0.6009689569473267,0.5934008955955505,0.5860103368759155,0.5787873864173889,0.5717230439186096,0.5648092031478882,0.5580382943153381,0.5514034032821655,0.5448982119560242,0.5385168790817261,0.5322538614273071,0.526104211807251,0.5200631618499756,0.5141264200210571,0.5082897543907166,0.5025495290756226,0.4969019889831543,0.4913438558578491,0.4858720004558563,0.48048335313796997,0.4751752018928528,0.4699448347091675,0.4647897481918335,0.4597076177597046,0.4546961486339569,0.4497532546520233,0.44487687945365906,0.4400651156902313,0.4353161156177521,0.4306281507015228,0.42599955201148987,0.42142874002456665,0.4169141948223114,0.4124544560909271,0.40804818272590637,0.4036940038204193,0.39939069747924805,0.3951369822025299,0.39093172550201416,0.38677382469177246,0.38266217708587646,0.378595769405365,0.37457355856895447,0.37059465050697327,0.366658091545105,0.362762987613678,0.358908474445343,0.35509374737739563,0.35131800174713135,0.3475804924964905,0.34388044476509094,0.34021714329719543,0.33658990263938904,0.3329980671405792,0.3294409513473511,0.32591795921325684,0.32242849469184875,0.3189719021320343,0.3155476748943329,0.31215524673461914,0.3087940812110901,0.30546361207962036,0.30216339230537415,0.29889291524887085,0.29565170407295227,0.2924392819404602,0.2892552316188812,0.28609907627105713,0.2829704284667969,0.27986884117126465,0.2767939269542694,0.2737452983856201,0.2707225978374481,0.26772540807724,0.26475343108177185,0.2618062496185303,0.258883535861969,0.2559850215911865,0.25311028957366943,0.25025907158851624,0.24743106961250305,0.2446259707212448,0.24184346199035645,0.23908329010009766,0.23634515702724457,0.2336287796497345,0.23093391954898834,0.22826029360294342,0.22560766339302063,0.22297576069831848,0.22036437690258026,0.21777324378490448,0.21520215272903442,0.212650865316391,0.21011915802955627,0.20760682225227356,0.20511364936828613,0.20263944566249847,0.20018397271633148,0.19774706661701202,0.1953285187482834,0.19292815029621124,0.19054576754570007,0.18818120658397675,0.18583425879478455,0.18350479006767273,0.18119260668754578,0.17889754474163055,0.17661945521831512,0.17435817420482635,0.1721135377883911,0.16988539695739746,0.16767361760139465,0.16547803580760956,0.16329853236675262,0.16113494336605072,0.1589871346950531,0.15685498714447021,0.15473836660385132,0.15263713896274567,0.1505511850118637,0.1484803706407547,0.14642459154129028,0.1443837285041809,0.14235764741897583,0.1403462439775467,0.13834942877292633,0.136367067694664,0.13439907133579254,0.1324453204870224,0.1305057406425476,0.12858019769191742,0.12666863203048706,0.12477091699838638,0.12288697808980942,0.1210167184472084,0.11916005611419678,0.11731690168380737,0.11548716574907303,0.11367076635360718,0.11186762899160385,0.11007767915725708,0.1083008274435997,0.10653700679540634,0.10478614270687103,0.1030481606721878,0.10132300108671188,0.0996105819940567,0.09791085124015808,0.09622374176979065,0.09454918652772903,0.09288713335990906,0.09123751521110535,0.08960027992725372,0.08797537535429001,0.08636274188756943,0.0847623273730278,0.08317409455776215,0.08159798383712769,0.08003395050764084,0.07848194986581802,0.07694194465875626,0.07541389018297195,0.07389774918556213,0.07239348441362381,0.070901058614254,0.06942043453454971,0.06795158982276917,0.06649449467658997,0.06504911929368973,0.06361543387174606,0.06219341605901718,0.06078304722905159,0.0593843050301075,0.05799717456102371,0.05662164092063904,0.05525768920779228,0.05390531197190285,0.05256449431180954,0.05123523622751236,0.04991753399372101,0.04861138388514519,0.047316793352365494,0.04603376239538193,0.044762298464775085,0.04350241273641586,0.04225412383675575,0.04101744294166565,0.039792392402887344,0.03857899457216263,0.03737728297710419,0.03618728369474411,0.03500903770327568,0.03384258225560188,0.0326879620552063,0.031545232981443405,0.030414443463087082,0.0292956605553627,0.028188949450850487,0.027094384655356407,0.02601204626262188,0.024942025542259216,0.023884421214461327,0.022839335724711418,0.021806888282299042,0.020787203684449196,0.019780423492193222,0.018786700442433357,0.017806200310587883,0.016839107498526573,0.015885621309280396,0.014945968054234982,0.01402039173990488,0.013109165243804455,0.012212592177093029,0.011331013403832912,0.010464809834957123,0.009614413604140282,0.008780314587056637,0.007963077165186405,0.007163353264331818,0.0063819061033427715,0.005619642324745655,0.004877655766904354,0.004157294984906912,0.003460264764726162,0.0027887988835573196,0.0021459676790982485,0.001536299823783338,0.0009672692976891994,0.0004541343660093844]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["math/big"]=(function(){var $pkg={},$init,K,D,E,F,B,G,A,J,I,C,H,S,AE,AH,BG,BH,BQ,BY,BZ,CB,CC,CD,CK,DO,DP,DR,DS,DT,DV,DW,DX,DY,DZ,EA,EB,EC,ED,EE,EF,L,O,AB,AC,AD,AF,AI,AJ,AK,AL,AP,AX,AY,BB,BI,BW,DN,M,N,P,R,T,U,V,W,X,Y,Z,AA,AG,AM,AN,AO,AQ,AR,AS,AT,AU,AV,AW,AZ,BA,BC,BD,BE,BF,BJ,BK,BL,BM,BN,BO,BP,BR,BS,BT,BU,CA,CE,CF,CG,CH,CI,CJ,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,CY,CZ,DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DM;K=$packages["bytes"];D=$packages["encoding/binary"];E=$packages["errors"];F=$packages["fmt"];B=$packages["github.com/gopherjs/gopherjs/nosync"];G=$packages["io"];A=$packages["math"];J=$packages["math/bits"];I=$packages["math/rand"];C=$packages["strconv"];H=$packages["strings"];S=$pkg.Rat=$newType(0,$kindStruct,"big.Rat",true,"math/big",true,function(a_,b_){this.$val=this;if(arguments.length===0){this.a=new BH.ptr(false,AH.nil);this.b=new BH.ptr(false,AH.nil);return;}this.a=a_;this.b=b_;});AE=$pkg.divisor=$newType(0,$kindStruct,"big.divisor",true,"math/big",false,function(bbb_,nbits_,ndigits_){this.$val=this;if(arguments.length===0){this.bbb=AH.nil;this.nbits=0;this.ndigits=0;return;}this.bbb=bbb_;this.nbits=nbits_;this.ndigits=ndigits_;});AH=$pkg.nat=$newType(12,$kindSlice,"big.nat",true,"math/big",false,null);BG=$pkg.byteReader=$newType(0,$kindStruct,"big.byteReader",true,"math/big",false,function(ScanState_){this.$val=this;if(arguments.length===0){this.ScanState=$ifaceNil;return;}this.ScanState=ScanState_;});BH=$pkg.Int=$newType(0,$kindStruct,"big.Int",true,"math/big",true,function(neg_,abs_){this.$val=this;if(arguments.length===0){this.neg=false;this.abs=AH.nil;return;}this.neg=neg_;this.abs=abs_;});BQ=$pkg.Word=$newType(4,$kindUintptr,"big.Word",true,"math/big",true,null);BY=$pkg.Float=$newType(0,$kindStruct,"big.Float",true,"math/big",true,function(prec_,mode_,acc_,form_,neg_,mant_,exp_){this.$val=this;if(arguments.length===0){this.prec=0;this.mode=0;this.acc=0;this.form=0;this.neg=false;this.mant=AH.nil;this.exp=0;return;}this.prec=prec_;this.mode=mode_;this.acc=acc_;this.form=form_;this.neg=neg_;this.mant=mant_;this.exp=exp_;});BZ=$pkg.ErrNaN=$newType(0,$kindStruct,"big.ErrNaN",true,"math/big",true,function(msg_){this.$val=this;if(arguments.length===0){this.msg="";return;}this.msg=msg_;});CB=$pkg.form=$newType(1,$kindUint8,"big.form",true,"math/big",false,null);CC=$pkg.RoundingMode=$newType(1,$kindUint8,"big.RoundingMode",true,"math/big",true,null);CD=$pkg.Accuracy=$newType(1,$kindInt8,"big.Accuracy",true,"math/big",true,null);CK=$pkg.decimal=$newType(0,$kindStruct,"big.decimal",true,"math/big",false,function(mant_,exp_){this.$val=this;if(arguments.length===0){this.mant=DW.nil;this.exp=0;return;}this.mant=mant_;this.exp=exp_;});DO=$ptrType(BY);DP=$structType("math/big",[{prop:"Once",name:"Once",embedded:true,exported:true,typ:B.Once,tag:""},{prop:"v",name:"v",embedded:false,exported:false,typ:DO,tag:""}]);DR=$arrayType(AE,64);DS=$structType("math/big",[{prop:"Mutex",name:"Mutex",embedded:true,exported:true,typ:B.Mutex,tag:""},{prop:"table",name:"table",embedded:false,exported:false,typ:DR,tag:""}]);DT=$sliceType($emptyInterface);DV=$ptrType(S);DW=$sliceType($Uint8);DX=$ptrType(BH);DY=$sliceType(BQ);DZ=$ptrType(AH);EA=$sliceType(DZ);EB=$sliceType(AE);EC=$ptrType(BQ);ED=$arrayType(AH,16);EE=$ptrType(I.Rand);EF=$ptrType(CK);M=function(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=L.Once.Do((function $b(){var{b,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=CA(3);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}L.v=b;$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,b,$s};return $f;}));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return L.v;}return;}var $f={$blk:M,$c:true,$r,$s};return $f;};BY.ptr.prototype.Sqrt=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=b.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(c.prec===0){c.prec=b.prec;}d=b.Sign();$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(d===-1){$s=4;continue;}$s=5;continue;case 4:$panic((e=new BZ.ptr("square root of negative operand"),new e.constructor.elem(e)));case 5:if(!((b.form===1))){c.acc=0;c.form=b.form;c.neg=b.neg;$s=-1;return c;}f=c.prec;g=b.MantExp(c);$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;c.prec=f;j=(i=h%2,i===i?i:$throwRuntimeError("integer divide by zero"));if(j===(0)){}else if(j===(1)){c.exp=c.exp+(1)>>0;}else if(j===(-1)){c.exp=c.exp-(1)>>0;}$r=c.sqrtInverse(c);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=c.SetMantExp(c,(k=h/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero")));$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=10;case 10:return m;}return;}var $f={$blk:BY.ptr.prototype.Sqrt,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BY.prototype.Sqrt=function(b){return this.$val.Sqrt(b);};BY.ptr.prototype.sqrtInverse=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];e=[e];f=this;d[0]=N(f.prec);e[0]=N(f.prec);g=M();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}c[0]=g;h=(function(b,c,d,e){return function $b(h){var{h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:d[0].prec=h.prec;e[0].prec=h.prec;i=d[0].Mul(h,h);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;j=d[0].Mul(b[0],d[0]);$s=2;case 2:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;k=e[0].Sub(c[0],d[0]);$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;l=d[0].Mul(h,e[0]);$s=4;case 4:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;d[0].exp=d[0].exp-(1)>>0;m=h.Set(d[0]);$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=6;case 6:return n;}return;}var $f={$blk:$b,$c:true,$r,h,i,j,k,l,m,n,$s};return $f;};})(b,c,d,e);j=b[0].Float64();$s=2;case 2:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];l=N(f.prec);m=l.SetFloat64(1/A.Sqrt(k));$s=3;case 3:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;n=f.prec+32>>>0;case 4:if(!(l.prec>>0;o=h(l);$s=6;case 6:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}l=o;$s=4;continue;case 5:p=f.Mul(b[0],l);$s=7;case 7:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;$s=-1;return;}return;}var $f={$blk:BY.ptr.prototype.sqrtInverse,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};BY.prototype.sqrtInverse=function(b){return this.$val.sqrtInverse(b);};N=function(b){var b,c,d;c=new BY.ptr(0,0,0,0,false,AH.nil,0);c.mant=c.mant.make($imul((((d=b/32,(d===d&&d!==1/0&&d!==-1/0)?d>>>0:$throwRuntimeError("integer divide by zero"))>>0)),2));return c;};CC.prototype.String=function(){var b,c;b=this.$val;if(b>=6){return"RoundingMode("+C.FormatInt((new $Int64(0,b)),10)+")";}return $substring("ToNearestEvenToNearestAwayToZeroAwayFromZeroToNegativeInfToPositiveInf",((b<0||b>=O.length)?($throwRuntimeError("index out of range"),undefined):O[b]),(c=b+1<<24>>>24,((c<0||c>=O.length)?($throwRuntimeError("index out of range"),undefined):O[c])));};$ptrType(CC).prototype.String=function(){return new CC(this.$get()).String();};S.ptr.prototype.GobEncode=function(){var b,c,d,e,f,g;b=this;if(b===DV.nil){return[DW.nil,$ifaceNil];}c=$makeSlice(DW,(5+($imul(((b.a.abs.$length+b.b.abs.$length>>0)),4))>>0));d=b.b.abs.bytes(c);e=b.a.abs.bytes($subslice(c,0,d));f=d-e>>0;if(!((((((f>>>0))>>0))===f))){return[DW.nil,E.New("Rat.GobEncode: numerator too large")];}$clone(D.BigEndian,D.bigEndian).PutUint32($subslice(c,(e-4>>0),e),((f>>>0)));e=e-(5)>>0;g=2;if(b.a.neg){g=(g|(1))>>>0;}((e<0||e>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+e]=g);return[$subslice(c,e),$ifaceNil];};S.prototype.GobEncode=function(){return this.$val.GobEncode();};S.ptr.prototype.GobDecode=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b.$length===0){S.copy(c,new S.ptr(new BH.ptr(false,AH.nil),new BH.ptr(false,AH.nil)));$s=-1;return $ifaceNil;}if(b.$length<5){$s=-1;return E.New("Rat.GobDecode: buffer too small");}d=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]);if(!(((d>>>1<<24>>>24)===1))){$s=1;continue;}$s=2;continue;case 1:e=F.Errorf("Rat.GobDecode: encoding version %d not supported",new DT([new $Uint8((d>>>1<<24>>>24))]));$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=4;case 4:return f;case 2:g=5+$clone(D.BigEndian,D.bigEndian).Uint32($subslice(b,1,5))>>>0;if(b.$length<((g>>0))){$s=-1;return E.New("Rat.GobDecode: buffer too small");}c.a.neg=!((((d&1)>>>0)===0));c.a.abs=c.a.abs.setBytes($subslice(b,5,g));c.b.abs=c.b.abs.setBytes($subslice(b,g));$s=-1;return $ifaceNil;}return;}var $f={$blk:S.ptr.prototype.GobDecode,$c:true,$r,b,c,d,e,f,g,$s};return $f;};S.prototype.GobDecode=function(b){return this.$val.GobDecode(b);};S.ptr.prototype.MarshalText=function(){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=DW.nil;c=$ifaceNil;d=this;if(d.IsInt()){$s=1;continue;}$s=2;continue;case 1:f=d.a.MarshalText();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;b=e[0];c=e[1];g=[b,c];$s=4;case 4:return g;case 2:i=d.marshal();$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=$ifaceNil;b=h;c=j;k=[b,c];$s=6;case 6:return k;}return;}var $f={$blk:S.ptr.prototype.MarshalText,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};S.prototype.MarshalText=function(){return this.$val.MarshalText();};S.ptr.prototype.UnmarshalText=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=c.SetString(($bytesToString(b)));$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[1];if(!f){$s=2;continue;}$s=3;continue;case 2:g=F.Errorf("math/big: cannot unmarshal %q into a *big.Rat",new DT([b]));$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=5;case 5:return h;case 3:$s=-1;return $ifaceNil;}return;}var $f={$blk:S.ptr.prototype.UnmarshalText,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};S.prototype.UnmarshalText=function(b){return this.$val.UnmarshalText(b);};P=function(b){var b;return H.ContainsRune("+-/0123456789.eE",b);};S.ptr.prototype.Scan=function(b,c){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;f=b.Token(true,P);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return h;}if(!H.ContainsRune("efgEFGv",c)){$s=-1;return E.New("Rat.Scan: invalid verb");}j=d.SetString(($bytesToString(g)));$s=2;case 2:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[1];if(!k){$s=-1;return E.New("Rat.Scan: invalid syntax");}$s=-1;return $ifaceNil;}return;}var $f={$blk:S.ptr.prototype.Scan,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};S.prototype.Scan=function(b,c){return this.$val.Scan(b,c);};S.ptr.prototype.SetString=function(b){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b.length===0){$s=-1;return[DV.nil,false];}d=H.Index(b,"/");if(d>=0){$s=1;continue;}$s=2;continue;case 1:f=c.a.SetString($substring(b,0,d),0);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[1];if(!g){$s=-1;return[DV.nil,false];}h=H.NewReader($substring(b,(d+1>>0)));i=$ifaceNil;k=c.b.abs.scan(h,0,false);$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;c.b.abs=j[0];i=j[3];if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return[DV.nil,false];}l=h.ReadByte();i=l[1];if(!($interfaceIsEqual(i,G.EOF))){$s=-1;return[DV.nil,false];}if(c.b.abs.$length===0){$s=-1;return[DV.nil,false];}m=c.norm();$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=[m,true];$s=6;case 6:return n;case 2:o=H.NewReader(b);q=BF(o);$s=7;case 7:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p[0];s=p[1];if(!($interfaceIsEqual(s,$ifaceNil))){$s=-1;return[DV.nil,false];}t=0;u=0;w=c.a.abs.scan(o,0,true);$s=8;case 8:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}v=w;c.a.abs=v[0];t=v[1];u=v[2];s=v[3];if(!($interfaceIsEqual(s,$ifaceNil))){$s=-1;return[DV.nil,false];}x=new $Int64(0,0);y=0;aa=R(o,true,true);$s=9;case 9:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;x=z[0];y=z[1];s=z[2];if(!($interfaceIsEqual(s,$ifaceNil))){$s=-1;return[DV.nil,false];}ab=o.ReadByte();s=ab[1];if(!($interfaceIsEqual(s,G.EOF))){$s=-1;return[DV.nil,false];}if(c.a.abs.$length===0){$s=-1;return[c,true];}ac=new $Int64(0,0);ad=new $Int64(0,0);ae=ac;af=ad;if(u<0){ag=(new $Int64(0,u));ah=t;if(ah===(10)){af=ag;ae=ag;}else if(ah===(2)){ae=ag;}else if(ah===(8)){ae=$mul64(ag,new $Int64(0,3));}else if(ah===(16)){ae=$mul64(ag,new $Int64(0,4));}else{$panic(new $String("unexpected mantissa base"));}}ai=y;if(ai===(10)){af=(aj=x,new $Int64(af.$high+aj.$high,af.$low+aj.$low));ae=(ak=x,new $Int64(ae.$high+ak.$high,ae.$low+ak.$low));}else if(ai===(2)){ae=(al=x,new $Int64(ae.$high+al.$high,ae.$low+al.$low));}else{$panic(new $String("unexpected exponent base"));}if(!((af.$high===0&&af.$low===0))){$s=10;continue;}$s=11;continue;case 10:am=af;if((am.$high<0||(am.$high===0&&am.$low<0))){am=new $Int64(-am.$high,-am.$low);if((am.$high<0||(am.$high===0&&am.$low<0))){$s=-1;return[DV.nil,false];}}if((am.$high>0||(am.$high===0&&am.$low>1000000))){$s=-1;return[DV.nil,false];}an=c.b.abs.expNN(AK,(AH.nil).setWord(((am.$low>>>0))),AH.nil);$s=13;case 13:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}ao=an;if((af.$high>0||(af.$high===0&&af.$low>0))){$s=14;continue;}$s=15;continue;case 14:ap=c.a.abs.mul(c.a.abs,ao);$s=17;case 17:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}c.a.abs=ap;c.b.abs=c.b.abs.setWord(1);$s=16;continue;case 15:c.b.abs=ao;case 16:$s=12;continue;case 11:c.b.abs=c.b.abs.setWord(1);case 12:if((ae.$high<-1||(ae.$high===-1&&ae.$low<4284967296))||(ae.$high>0||(ae.$high===0&&ae.$low>10000000))){$s=-1;return[DV.nil,false];}if((ae.$high>0||(ae.$high===0&&ae.$low>0))){c.a.abs=c.a.abs.shl(c.a.abs,((ae.$low>>>0)));}else if((ae.$high<0||(ae.$high===0&&ae.$low<0))){c.b.abs=c.b.abs.shl(c.b.abs,((new $Int64(-ae.$high,-ae.$low).$low>>>0)));}c.a.neg=r&&c.a.abs.$length>0;aq=c.norm();$s=18;case 18:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=[aq,true];$s=19;case 19:return ar;}return;}var $f={$blk:S.ptr.prototype.SetString,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};S.prototype.SetString=function(b){return this.$val.SetString(b);};R=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=new $Int64(0,0);f=0;g=$ifaceNil;i=b.ReadByte();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[0];g=h[1];if(!($interfaceIsEqual(g,$ifaceNil))){if($interfaceIsEqual(g,G.EOF)){g=$ifaceNil;}k=new $Int64(0,0);l=10;m=g;e=k;f=l;g=m;$s=-1;return[e,f,g];}n=j;if((n===(101))||(n===(69))){$s=3;continue;}if((n===(112))||(n===(80))){$s=4;continue;}$s=5;continue;case 3:f=10;$s=6;continue;case 4:if(c){f=2;$s=2;continue;}o=b.UnreadByte();$s=7;case 7:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;p=new $Int64(0,0);q=10;r=$ifaceNil;e=p;f=q;g=r;$s=-1;return[e,f,g];case 5:s=b.UnreadByte();$s=8;case 8:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;t=new $Int64(0,0);u=10;v=$ifaceNil;e=t;f=u;g=v;$s=-1;return[e,f,g];case 6:case 2:w=DW.nil;y=b.ReadByte();$s=9;case 9:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}x=y;j=x[0];g=x[1];if($interfaceIsEqual(g,$ifaceNil)&&((j===43)||(j===45))){$s=10;continue;}$s=11;continue;case 10:if(j===45){w=$append(w,45);}aa=b.ReadByte();$s=12;case 12:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;j=z[0];g=z[1];case 11:ab=46;ac=false;ad=false;case 13:if(!($interfaceIsEqual(g,$ifaceNil))){$s=14;continue;}if(48<=j&&j<=57){$s=15;continue;}if((j===95)&&d){$s=16;continue;}$s=17;continue;case 15:w=$append(w,j);ab=48;ad=true;$s=18;continue;case 16:if(!((ab===48))){ac=true;}ab=95;$s=18;continue;case 17:ae=b.UnreadByte();$s=19;case 19:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ae;$s=14;continue;case 18:ag=b.ReadByte();$s=20;case 20:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;j=af[0];g=af[1];$s=13;continue;case 14:if($interfaceIsEqual(g,G.EOF)){g=$ifaceNil;}if($interfaceIsEqual(g,$ifaceNil)&&!ad){g=AB;}if($interfaceIsEqual(g,$ifaceNil)){ah=C.ParseInt(($bytesToString(w)),10,64);e=ah[0];g=ah[1];}if($interfaceIsEqual(g,$ifaceNil)&&(ac||(ab===95))){g=AC;}$s=-1;return[e,f,g];}return;}var $f={$blk:R,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};S.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.marshal();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=($bytesToString(c));$s=2;case 2:return d;}return;}var $f={$blk:S.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};S.prototype.String=function(){return this.$val.String();};S.ptr.prototype.marshal=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=DW.nil;d=b.a.Append(c,10);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;c=$append(c,47);if(!((b.b.abs.$length===0))){$s=2;continue;}$s=3;continue;case 2:e=b.b.Append(c,10);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}c=e;$s=4;continue;case 3:c=$append(c,49);case 4:$s=-1;return c;}return;}var $f={$blk:S.ptr.prototype.marshal,$c:true,$r,b,c,d,e,$s};return $f;};S.prototype.marshal=function(){return this.$val.marshal();};S.ptr.prototype.RatString=function(){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(b.IsInt()){$s=1;continue;}$s=2;continue;case 1:c=b.a.String();$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=4;case 4:return d;case 2:e=b.String();$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=6;case 6:return f;}return;}var $f={$blk:S.ptr.prototype.RatString,$c:true,$r,b,c,d,e,f,$s};return $f;};S.prototype.RatString=function(){return this.$val.RatString();};S.ptr.prototype.FloatString=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=DW.nil;if(c.IsInt()){$s=1;continue;}$s=2;continue;case 1:e=c.a.Append(d,10);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;if(b>0){d=$append(d,46);f=b;while(true){if(!(f>0)){break;}d=$append(d,48);f=f-(1)>>0;}}$s=-1;return($bytesToString(d));case 2:h=(AH.nil).div((AH.nil),c.a.abs,c.b.abs);$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;i=g[0];j=g[1];k=AI;if(b>0){$s=5;continue;}$s=6;continue;case 5:l=(AH.nil).expNN(AL,(AH.nil).setUint64((new $Uint64(0,b))),AH.nil);$s=7;case 7:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;case 6:m=j.mul(j,k);$s=8;case 8:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}j=m;o=j.div((AH.nil),j,c.b.abs);$s=9;case 9:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;j=n[0];p=n[1];q=p.add(p,p);$s=10;case 10:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;if(c.b.abs.cmp(p)<=0){$s=11;continue;}$s=12;continue;case 11:r=j.add(j,AI);$s=13;case 13:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}j=r;if(j.cmp(k)>=0){$s=14;continue;}$s=15;continue;case 14:s=(AH.nil).add(i,AI);$s=16;case 16:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}i=s;t=(AH.nil).sub(j,k);$s=17;case 17:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}j=t;case 15:case 12:if(c.a.neg){d=$append(d,45);}u=d;v=i.utoa(10);$s=18;case 18:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v;d=$appendSlice(u,w);if(b>0){$s=19;continue;}$s=20;continue;case 19:d=$append(d,46);x=j.utoa(10);$s=21;case 21:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;z=b-y.$length>>0;while(true){if(!(z>0)){break;}d=$append(d,48);z=z-(1)>>0;}d=$appendSlice(d,y);case 20:$s=-1;return($bytesToString(d));}return;}var $f={$blk:S.ptr.prototype.FloatString,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};S.prototype.FloatString=function(b){return this.$val.FloatString(b);};T=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=new S.ptr(new BH.ptr(false,AH.nil),new BH.ptr(false,AH.nil)).SetFrac64(b,c);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:T,$c:true,$r,b,c,d,e,$s};return $f;};$pkg.NewRat=T;S.ptr.prototype.SetFloat64=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=A.Float64bits(b);e=new $Uint64(d.$high&1048575,(d.$low&4294967295)>>>0);g=(((f=$shiftRightUint64(d,52),new $Uint64(f.$high&0,(f.$low&2047)>>>0)).$low>>0));h=g;if(h===(2047)){$s=-1;return DV.nil;}else if(h===(0)){g=g-(1022)>>0;}else{e=(i=new $Uint64(1048576,0),new $Uint64(e.$high|i.$high,(e.$low|i.$low)>>>0));g=g-(1023)>>0;}j=52-g>>0;while(true){if(!((k=new $Uint64(e.$high&0,(e.$low&1)>>>0),(k.$high===0&&k.$low===0))&&j>0)){break;}e=$shiftRightUint64(e,(1));j=j-(1)>>0;}c.a.SetUint64(e);c.a.neg=b<0;c.b.Set(BI);if(j>0){c.b.Lsh(c.b,((j>>>0)));}else{c.a.Lsh(c.a,((-j>>>0)));}l=c.norm();$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=2;case 2:return m;}return;}var $f={$blk:S.ptr.prototype.SetFloat64,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};S.prototype.SetFloat64=function(b){return this.$val.SetFloat64(b);};U=function(b,c){var{aa,ab,ac,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=0;e=false;f=b.bitLen();if(f===0){g=0;h=true;d=g;e=h;$s=-1;return[d,e];}i=c.bitLen();if(i===0){$panic(new $String("division by zero"));}j=f-i>>0;k=AH.nil;l=AH.nil;m=k;n=l;m=m.set(b);n=n.set(c);o=25-j>>0;if(o>0){m=m.shl(m,((o>>>0)));}else if(o<0){n=n.shl(n,((-o>>>0)));}p=AH.nil;r=p.div(m,m,n);$s=1;case 1:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;p=q[0];s=q[1];t=BK(p);u=s.$length>0;if((t>>>25>>>0)===1){if(((t&1)>>>0)===1){u=true;}t=(v=(1),v<32?(t>>>v):0)>>>0;j=j+(1)>>0;}if(!(((t>>>24>>>0)===1))){$s=2;continue;}$s=3;continue;case 2:w=F.Sprintf("expected exactly %d bits of result",new DT([new $Int(25)]));$s=4;case 4:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}$panic(new $String(w));case 3:if(-149<=j&&j<=-126){x=(((-126-((j-1>>0))>>0)>>>0));z=(t&((((y=x,y<32?(1<>>0)-1>>>0)))>>>0;u=u||!((z===0));t=(aa=(x),aa<32?(t>>>aa):0)>>>0;j=-125;}e=!u;if(!((((t&1)>>>0)===0))){e=false;if(u||!((((t&2)>>>0)===0))){t=t+(1)>>>0;if(t>=33554432){t=(ab=(1),ab<32?(t>>>ab):0)>>>0;j=j+(1)>>0;}}}t=(ac=(1),ac<32?(t>>>ac):0)>>>0;d=($fround(A.Ldexp((t),j-24>>0)));if(A.IsInf((d),0)){e=false;}$s=-1;return[d,e];}return;}var $f={$blk:U,$c:true,$r,aa,ab,ac,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};V=function(b,c){var{aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=0;e=false;f=b.bitLen();if(f===0){g=0;h=true;d=g;e=h;$s=-1;return[d,e];}i=c.bitLen();if(i===0){$panic(new $String("division by zero"));}j=f-i>>0;k=AH.nil;l=AH.nil;m=k;n=l;m=m.set(b);n=n.set(c);o=54-j>>0;if(o>0){m=m.shl(m,((o>>>0)));}else if(o<0){n=n.shl(n,((-o>>>0)));}p=AH.nil;r=p.div(m,m,n);$s=1;case 1:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;p=q[0];s=q[1];t=BL(p);u=s.$length>0;if((v=$shiftRightUint64(t,54),(v.$high===0&&v.$low===1))){if((w=new $Uint64(t.$high&0,(t.$low&1)>>>0),(w.$high===0&&w.$low===1))){u=true;}t=$shiftRightUint64(t,(1));j=j+(1)>>0;}if(!((x=$shiftRightUint64(t,53),(x.$high===0&&x.$low===1)))){$s=2;continue;}$s=3;continue;case 2:y=F.Sprintf("expected exactly %d bits of result",new DT([new $Int(54)]));$s=4;case 4:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}$panic(new $String(y));case 3:if(-1074<=j&&j<=-1022){z=(((-1022-((j-1>>0))>>0)>>>0));ac=(aa=(ab=$shiftLeft64(new $Uint64(0,1),z),new $Uint64(ab.$high-0,ab.$low-1)),new $Uint64(t.$high&aa.$high,(t.$low&aa.$low)>>>0));u=u||!((ac.$high===0&&ac.$low===0));t=$shiftRightUint64(t,(z));j=-1021;}e=!u;if(!((ad=new $Uint64(t.$high&0,(t.$low&1)>>>0),(ad.$high===0&&ad.$low===0)))){e=false;if(u||!((ae=new $Uint64(t.$high&0,(t.$low&2)>>>0),(ae.$high===0&&ae.$low===0)))){t=(af=new $Uint64(0,1),new $Uint64(t.$high+af.$high,t.$low+af.$low));if((t.$high>4194304||(t.$high===4194304&&t.$low>=0))){t=$shiftRightUint64(t,(1));j=j+(1)>>0;}}}t=$shiftRightUint64(t,(1));d=A.Ldexp(($flatten64(t)),j-53>>0);if(A.IsInf(d,0)){e=false;}$s=-1;return[d,e];}return;}var $f={$blk:V,$c:true,$r,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};S.ptr.prototype.Float32=function(){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=0;c=false;d=this;e=d.b.abs;if(e.$length===0){e=AI;}g=U(d.a.abs,e);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;b=f[0];c=f[1];if(d.a.neg){b=-b;}$s=-1;return[b,c];}return;}var $f={$blk:S.ptr.prototype.Float32,$c:true,$r,b,c,d,e,f,g,$s};return $f;};S.prototype.Float32=function(){return this.$val.Float32();};S.ptr.prototype.Float64=function(){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=0;c=false;d=this;e=d.b.abs;if(e.$length===0){e=AI;}g=V(d.a.abs,e);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;b=f[0];c=f[1];if(d.a.neg){b=-b;}$s=-1;return[b,c];}return;}var $f={$blk:S.ptr.prototype.Float64,$c:true,$r,b,c,d,e,f,g,$s};return $f;};S.prototype.Float64=function(){return this.$val.Float64();};S.ptr.prototype.SetFrac=function(b,c){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;d.a.neg=!(b.neg===c.neg);e=c.abs;if(e.$length===0){$panic(new $String("division by zero"));}if(d.a===c||AR(d.a.abs,e)){e=(AH.nil).set(e);}d.a.abs=d.a.abs.set(b.abs);d.b.abs=d.b.abs.set(e);f=d.norm();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=2;case 2:return g;}return;}var $f={$blk:S.ptr.prototype.SetFrac,$c:true,$r,b,c,d,e,f,g,$s};return $f;};S.prototype.SetFrac=function(b,c){return this.$val.SetFrac(b,c);};S.ptr.prototype.SetFrac64=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if((c.$high===0&&c.$low===0)){$panic(new $String("division by zero"));}d.a.SetInt64(b);if((c.$high<0||(c.$high===0&&c.$low<0))){c=new $Int64(-c.$high,-c.$low);d.a.neg=!d.a.neg;}d.b.abs=d.b.abs.setUint64((new $Uint64(c.$high,c.$low)));e=d.norm();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:S.ptr.prototype.SetFrac64,$c:true,$r,b,c,d,e,f,$s};return $f;};S.prototype.SetFrac64=function(b,c){return this.$val.SetFrac64(b,c);};S.ptr.prototype.SetInt=function(b){var b,c;c=this;c.a.Set(b);c.b.abs=c.b.abs.setWord(1);return c;};S.prototype.SetInt=function(b){return this.$val.SetInt(b);};S.ptr.prototype.SetInt64=function(b){var b,c;c=this;c.a.SetInt64(b);c.b.abs=c.b.abs.setWord(1);return c;};S.prototype.SetInt64=function(b){return this.$val.SetInt64(b);};S.ptr.prototype.SetUint64=function(b){var b,c;c=this;c.a.SetUint64(b);c.b.abs=c.b.abs.setWord(1);return c;};S.prototype.SetUint64=function(b){return this.$val.SetUint64(b);};S.ptr.prototype.Set=function(b){var b,c;c=this;if(!(c===b)){c.a.Set(b.a);c.b.Set(b.b);}if(c.b.abs.$length===0){c.b.abs=c.b.abs.setWord(1);}return c;};S.prototype.Set=function(b){return this.$val.Set(b);};S.ptr.prototype.Abs=function(b){var b,c;c=this;c.Set(b);c.a.neg=false;return c;};S.prototype.Abs=function(b){return this.$val.Abs(b);};S.ptr.prototype.Neg=function(b){var b,c;c=this;c.Set(b);c.a.neg=c.a.abs.$length>0&&!c.a.neg;return c;};S.prototype.Neg=function(b){return this.$val.Neg(b);};S.ptr.prototype.Inv=function(b){var b,c,d,e;c=this;if(b.a.abs.$length===0){$panic(new $String("division by zero"));}c.Set(b);d=c.b.abs;e=c.a.abs;c.a.abs=d;c.b.abs=e;return c;};S.prototype.Inv=function(b){return this.$val.Inv(b);};S.ptr.prototype.Sign=function(){var b;b=this;return b.a.Sign();};S.prototype.Sign=function(){return this.$val.Sign();};S.ptr.prototype.IsInt=function(){var b;b=this;return(b.b.abs.$length===0)||(b.b.abs.cmp(AI)===0);};S.prototype.IsInt=function(){return this.$val.IsInt();};S.ptr.prototype.Num=function(){var b;b=this;return b.a;};S.prototype.Num=function(){return this.$val.Num();};S.ptr.prototype.Denom=function(){var b;b=this;if(b.b.abs.$length===0){return new BH.ptr(false,new AH([1]));}return b.b;};S.prototype.Denom=function(){return this.$val.Denom();};S.ptr.prototype.norm=function(){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if((b.a.abs.$length===0)){$s=2;continue;}if((b.b.abs.$length===0)){$s=3;continue;}$s=4;continue;case 2:b.a.neg=false;b.b.abs=b.b.abs.setWord(1);$s=5;continue;case 3:b.b.abs=b.b.abs.setWord(1);$s=5;continue;case 4:c=b.a.neg;b.a.neg=false;b.b.neg=false;d=BJ(new $Int64(0,0)).lehmerGCD(DX.nil,DX.nil,b.a,b.b);$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(!((e.Cmp(BI)===0))){$s=7;continue;}$s=8;continue;case 7:g=b.a.abs.div(AH.nil,b.a.abs,e.abs);$s=9;case 9:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;b.a.abs=f[0];i=b.b.abs.div(AH.nil,b.b.abs,e.abs);$s=10;case 10:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;b.b.abs=h[0];case 8:b.a.neg=c;case 5:case 1:$s=-1;return b;}return;}var $f={$blk:S.ptr.prototype.norm,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};S.prototype.norm=function(){return this.$val.norm();};W=function(b,c,d){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:if((c.$length===0)&&(d.$length===0)){$s=-1;return b.setWord(1);}else if((c.$length===0)){$s=-1;return b.set(d);}else if((d.$length===0)){$s=-1;return b.set(c);}e=b.mul(c,d);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:W,$c:true,$r,b,c,d,e,f,$s};return $f;};BH.ptr.prototype.scaleDenom=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(c.$length===0){d.Set(b);$s=-1;return;}e=d.abs.mul(b.abs,c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d.abs=e;d.neg=b.neg;$s=-1;return;}return;}var $f={$blk:BH.ptr.prototype.scaleDenom,$c:true,$r,b,c,d,e,$s};return $f;};BH.prototype.scaleDenom=function(b,c){return this.$val.scaleDenom(b,c);};S.ptr.prototype.Cmp=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;e=new BH.ptr(false,AH.nil);f=new BH.ptr(false,AH.nil);g=$clone(e,BH);c[0]=$clone(f,BH);$r=g.scaleDenom(d.a,b.b.abs);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].scaleDenom(b.a,d.b.abs);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return g.Cmp(c[0]);}return;}var $f={$blk:S.ptr.prototype.Cmp,$c:true,$r,b,c,d,e,f,g,$s};return $f;};S.prototype.Cmp=function(b){return this.$val.Cmp(b);};S.ptr.prototype.Add=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=[e];f=this;g=new BH.ptr(false,AH.nil);h=new BH.ptr(false,AH.nil);d[0]=$clone(g,BH);e[0]=$clone(h,BH);$r=d[0].scaleDenom(b.a,c.b.abs);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e[0].scaleDenom(c.a,b.b.abs);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=f.a.Add(d[0],e[0]);$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;j=W(f.b.abs,b.b.abs,c.b.abs);$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}f.b.abs=j;k=f.norm();$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=6;case 6:return l;}return;}var $f={$blk:S.ptr.prototype.Add,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};S.prototype.Add=function(b,c){return this.$val.Add(b,c);};S.ptr.prototype.Sub=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=[e];f=this;g=new BH.ptr(false,AH.nil);h=new BH.ptr(false,AH.nil);d[0]=$clone(g,BH);e[0]=$clone(h,BH);$r=d[0].scaleDenom(b.a,c.b.abs);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e[0].scaleDenom(c.a,b.b.abs);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=f.a.Sub(d[0],e[0]);$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;j=W(f.b.abs,b.b.abs,c.b.abs);$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}f.b.abs=j;k=f.norm();$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=6;case 6:return l;}return;}var $f={$blk:S.ptr.prototype.Sub,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};S.prototype.Sub=function(b,c){return this.$val.Sub(b,c);};S.ptr.prototype.Mul=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(b===c){$s=1;continue;}$s=2;continue;case 1:d.a.neg=false;e=d.a.abs.sqr(b.a.abs);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d.a.abs=e;if(b.b.abs.$length===0){$s=4;continue;}$s=5;continue;case 4:d.b.abs=d.b.abs.setWord(1);$s=6;continue;case 5:f=d.b.abs.sqr(b.b.abs);$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}d.b.abs=f;case 6:$s=-1;return d;case 2:g=d.a.Mul(b.a,c.a);$s=8;case 8:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;h=W(d.b.abs,b.b.abs,c.b.abs);$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}d.b.abs=h;i=d.norm();$s=10;case 10:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=11;case 11:return j;}return;}var $f={$blk:S.ptr.prototype.Mul,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};S.prototype.Mul=function(b,c){return this.$val.Mul(b,c);};S.ptr.prototype.Quo=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(c.a.abs.$length===0){$panic(new $String("division by zero"));}e=new BH.ptr(false,AH.nil);f=new BH.ptr(false,AH.nil);g=$clone(e,BH);h=$clone(f,BH);$r=g.scaleDenom(b.a,c.b.abs);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=h.scaleDenom(c.a,b.b.abs);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d.a.abs=g.abs;d.b.abs=h.abs;d.a.neg=!(g.neg===h.neg);i=d.norm();$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=4;case 4:return j;}return;}var $f={$blk:S.ptr.prototype.Quo,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};S.prototype.Quo=function(b,c){return this.$val.Quo(b,c);};BH.ptr.prototype.ProbablyPrime=function(b){var{aa,ab,ac,ad,ae,af,ag,ah,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b<0){$panic(new $String("negative n for ProbablyPrime"));}if(c.neg||(c.abs.$length===0)){$s=-1;return false;}e=(d=c.abs,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]));if((c.abs.$length===1)&&e<64){$s=-1;return!((f=(g=$shiftLeft64(new $Uint64(0,1),e),new $Uint64(673221152&g.$high,(2693408940&g.$low)>>>0)),(f.$high===0&&f.$low===0)));}if(((e&1)>>>0)===0){$s=-1;return false;}h=0;i=0;j=h;k=i;l=32;if(l===(32)){j=((c.abs.modW(4127218095)>>>0));k=((c.abs.modW(3948078067)>>>0));}else if(l===(64)){m=c.abs.modW(820596253);j=(((n=m%4127218095,n===n?n:$throwRuntimeError("integer divide by zero"))>>>0));k=(((o=m%3948078067,o===o?o:$throwRuntimeError("integer divide by zero"))>>>0));}else{$panic(new $String("math/big: invalid word size"));}if(((p=j%3,p===p?p:$throwRuntimeError("integer divide by zero"))===0)||((q=j%5,q===q?q:$throwRuntimeError("integer divide by zero"))===0)||((r=j%7,r===r?r:$throwRuntimeError("integer divide by zero"))===0)||((s=j%11,s===s?s:$throwRuntimeError("integer divide by zero"))===0)||((t=j%13,t===t?t:$throwRuntimeError("integer divide by zero"))===0)||((u=j%17,u===u?u:$throwRuntimeError("integer divide by zero"))===0)||((v=j%19,v===v?v:$throwRuntimeError("integer divide by zero"))===0)||((w=j%23,w===w?w:$throwRuntimeError("integer divide by zero"))===0)||((x=j%37,x===x?x:$throwRuntimeError("integer divide by zero"))===0)||((y=k%29,y===y?y:$throwRuntimeError("integer divide by zero"))===0)||((z=k%31,z===z?z:$throwRuntimeError("integer divide by zero"))===0)||((aa=k%41,aa===aa?aa:$throwRuntimeError("integer divide by zero"))===0)||((ab=k%43,ab===ab?ab:$throwRuntimeError("integer divide by zero"))===0)||((ac=k%47,ac===ac?ac:$throwRuntimeError("integer divide by zero"))===0)||((ad=k%53,ad===ad?ad:$throwRuntimeError("integer divide by zero"))===0)){$s=-1;return false;}af=c.abs.probablyPrimeMillerRabin(b+1>>0,true);$s=2;case 2:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}if(!(af)){ae=false;$s=1;continue s;}ag=c.abs.probablyPrimeLucas();$s=3;case 3:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ae=ag;case 1:ah=ae;$s=4;case 4:return ah;}return;}var $f={$blk:BH.ptr.prototype.ProbablyPrime,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BH.prototype.ProbablyPrime=function(b){return this.$val.ProbablyPrime(b);};AH.prototype.probablyPrimeMillerRabin=function(b,c){var{aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=(AH.nil).sub(d,AI);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=f.trailingZeroBits();h=(AH.nil).shr(f,g);i=(AH.nil).sub(f,AJ);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;l=I.New(I.NewSource(((k=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]),new $Int64(0,k.constructor===Number?k:1)))));m=AH.nil;n=AH.nil;o=AH.nil;p=m;q=n;r=o;s=j.bitLen();t=0;case 3:if(!(t>0))&&c){$s=5;continue;}$s=6;continue;case 5:p=p.set(AJ);$s=7;continue;case 6:u=p.random(l,j,s);$s=8;case 8:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}p=u;v=p.add(p,AJ);$s=9;case 9:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}p=v;case 7:w=q.expNN(p,h,d);$s=10;case 10:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}q=w;if((q.cmp(AI)===0)||(q.cmp(f)===0)){t=t+(1)>>0;$s=3;continue;}x=1;case 11:if(!(x>0;$s=3;continue s;}if(q.cmp(AI)===0){$s=-1;return false;}x=x+(1)>>>0;$s=11;continue;case 12:$s=-1;return false;case 4:$s=-1;return true;}return;}var $f={$blk:AH.prototype.probablyPrimeMillerRabin,$c:true,$r,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$ptrType(AH).prototype.probablyPrimeMillerRabin=function(b,c){return this.$get().probablyPrimeMillerRabin(b,c);};AH.prototype.probablyPrimeLucas=function(){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if((b.$length===0)||(b.cmp(AI)===0)){$s=-1;return false;}if((((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])&1)>>>0)===0){$s=-1;return b.cmp(AJ)===0;}c=3;d=new AH([1]);e=(AH.nil);f=new BH.ptr(false,d);g=new BH.ptr(false,b);case 1:if(c>10000){$s=3;continue;}$s=4;continue;case 3:h=g.String();$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$panic(new $String("math/big: internal error: cannot find (D/n) = -1 for "+h));case 4:(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]=(($imul(c,c)>>>0)-4>>>0));i=BP(f,g);$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(j===-1){$s=2;continue;}if(j===0){$s=-1;return(b.$length===1)&&((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])===(c+2>>>0));}if(c===40){$s=7;continue;}$s=8;continue;case 7:k=e.sqrt(b);$s=9;case 9:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}e=k;l=e.sqr(e);$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}e=l;if(e.cmp(b)===0){$s=-1;return false;}case 8:c=c+(1)>>>0;$s=1;continue;case 2:m=(AH.nil).add(b,AI);$s=11;case 11:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=((n.trailingZeroBits()>>0));n=n.shr(n,((o>>>0)));p=(AH.nil).sub(b,AJ);$s=12;case 12:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;r=(AH.nil).setWord(c);s=(AH.nil).setWord(2);t=(AH.nil).setWord(c);u=(AH.nil);v=(n.bitLen());case 13:if(!(v>=0)){$s=14;continue;}if(!((n.bit(((v>>>0)))===0))){$s=15;continue;}$s=16;continue;case 15:w=e.mul(s,t);$s=18;case 18:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}e=w;x=e.add(e,b);$s=19;case 19:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}e=x;y=e.sub(e,r);$s=20;case 20:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}e=y;aa=u.div(s,e,b);$s=21;case 21:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;u=z[0];s=z[1];ab=e.sqr(t);$s=22;case 22:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}e=ab;ac=e.add(e,q);$s=23;case 23:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}e=ac;ae=u.div(t,e,b);$s=24;case 24:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ad=ae;u=ad[0];t=ad[1];$s=17;continue;case 16:af=e.mul(s,t);$s=25;case 25:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}e=af;ag=e.add(e,b);$s=26;case 26:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}e=ag;ah=e.sub(e,r);$s=27;case 27:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}e=ah;aj=u.div(t,e,b);$s=28;case 28:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ai=aj;u=ai[0];t=ai[1];ak=e.sqr(s);$s=29;case 29:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}e=ak;al=e.add(e,q);$s=30;case 30:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}e=al;an=u.div(s,e,b);$s=31;case 31:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}am=an;u=am[0];s=am[1];case 17:v=v-(1)>>0;$s=13;continue;case 14:if((s.cmp(AJ)===0)||(s.cmp(q)===0)){$s=32;continue;}$s=33;continue;case 32:ao=e.mul(s,r);$s=34;case 34:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=ao;aq=u.shl(t,1);if(ap.cmp(aq)<0){ar=aq;as=ap;ap=ar;aq=as;}at=ap.sub(ap,aq);$s=35;case 35:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}ap=at;au=t;t=AH.nil;$unused(t);aw=aq.div(au,ap,b);$s=36;case 36:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}av=aw;aq=av[0];au=av[1];if(au.$length===0){$s=-1;return true;}case 33:ax=0;case 37:if(!(ax<(o-1>>0))){$s=38;continue;}if(s.$length===0){$s=-1;return true;}if((s.$length===1)&&((0>=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+0])===2)){$s=-1;return false;}ay=e.sqr(s);$s=39;case 39:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}e=ay;az=e.sub(e,AJ);$s=40;case 40:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}e=az;bb=u.div(s,e,b);$s=41;case 41:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}ba=bb;u=ba[0];s=ba[1];ax=ax+(1)>>0;$s=37;continue;case 38:$s=-1;return false;}return;}var $f={$blk:AH.prototype.probablyPrimeLucas,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$ptrType(AH).prototype.probablyPrimeLucas=function(){return this.$get().probablyPrimeLucas();};AH.prototype.div=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=AH.nil;f=AH.nil;g=this;if(d.$length===0){$panic(new $String("division by zero"));}if(c.cmp(d)<0){e=$subslice(g,0,0);f=b.set(c);$s=-1;return[e,f];}if(d.$length===1){h=0;i=g.divW(c,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]));e=i[0];h=i[1];f=b.setWord(h);$s=-1;return[e,f];}k=g.divLarge(b,c,d);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;e=j[0];f=j[1];$s=-1;return[e,f];}return;}var $f={$blk:AH.prototype.div,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};$ptrType(AH).prototype.div=function(b,c,d){return this.$get().div(b,c,d);};AH.prototype.divW=function(b,c){var b,c,d,e,f,g;d=AH.nil;e=0;f=this;g=b.$length;if((c===0)){$panic(new $String("division by zero"));}else if((c===1)){d=f.set(b);return[d,e];}else if((g===0)){d=$subslice(f,0,0);return[d,e];}f=f.make(g);e=X($convertSliceType(f,DY),0,$convertSliceType(b,DY),c);d=f.norm();return[d,e];};$ptrType(AH).prototype.divW=function(b,c){return this.$get().divW(b,c);};AH.prototype.modW=function(b){var b,c,d,e;c=0;d=this;e=AH.nil;e=e.make(d.$length);c=X($convertSliceType(e,DY),0,$convertSliceType(d,DY),b);return c;};$ptrType(AH).prototype.modW=function(b){return this.$get().modW(b);};X=function(b,c,d,e){var b,c,d,e,f,g,h,i,j,k,l;f=0;f=c;if(d.$length===1){g=J.Div(((f>>>0)),(((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])>>>0)),((e>>>0)));h=g[0];i=g[1];(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]=((h>>>0)));f=((i>>>0));return f;}j=DM(e);k=b.$length-1>>0;while(true){if(!(k>=0)){break;}l=DL(f,((k<0||k>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+k]),e,j);((k<0||k>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+k]=l[0]);f=l[1];k=k-(1)>>0;}f=f;return f;};AH.prototype.divLarge=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=AH.nil;f=AH.nil;g=this;h=d.$length;i=c.$length-h>>0;k=DA((j=h-1>>0,((j<0||j>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+j])));l=AZ(h);$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=m.$get();CU($convertSliceType(n,DY),$convertSliceType(d,DY),k);b=b.make(c.$length+1>>0);(o=c.$length,((o<0||o>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+o]=CU($convertSliceType($subslice(b,0,c.$length),DY),$convertSliceType(c,DY),k)));if(AR(g,b)){g=AH.nil;}e=g.make(i+1>>0);if(h<100){$s=2;continue;}$s=3;continue;case 2:$r=e.divBasic(b,n);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=4;continue;case 3:$r=e.divRecursive(b,n);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:BA(m);e=e.norm();CV($convertSliceType(b,DY),$convertSliceType(b,DY),k);f=b.norm();p=e;q=f;e=p;f=q;$s=-1;return[e,f];}return;}var $f={$blk:AH.prototype.divLarge,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};$ptrType(AH).prototype.divLarge=function(b,c,d){return this.$get().divLarge(b,c,d);};AH.prototype.divBasic=function(b,c){var{aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=c.$length;f=b.$length-e>>0;g=AZ(e+1>>0);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=h.$get();k=(j=e-1>>0,((j<0||j>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+j]));l=DM(k);m=f;while(true){if(!(m>=0)){break;}n=4294967295;o=0;if((m+e>>0)>0,((p<0||p>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+p]));}if(!((o===k))){q=0;r=DL(o,(s=(m+e>>0)-1>>0,((s<0||s>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+s])),k,l);n=r[0];q=r[1];u=(t=e-2>>0,((t<0||t>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+t]));v=CP(n,u);w=v[0];x=v[1];z=(y=(m+e>>0)-2>>0,((y<0||y>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+y]));while(true){if(!(Y(w,x,q,z))){break;}n=n-(1)>>>0;aa=q;q=q+(k)>>>0;if(q=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+e]=CW($convertSliceType($subslice(i,0,e),DY),$convertSliceType(c,DY),n,0));ac=i.$length;if((m+ac>>0)>b.$length&&(((e<0||e>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+e])===0)){ac=ac-(1)>>0;}ad=CR($convertSliceType($subslice(b,m,(m+ac>>0)),DY),$convertSliceType($subslice(b,m),DY),$convertSliceType(i,DY));if(!((ad===0))){ae=CQ($convertSliceType($subslice(b,m,(m+e>>0)),DY),$convertSliceType($subslice(b,m),DY),$convertSliceType(c,DY));if(e>0;((af<0||af>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+af]=(((af<0||af>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+af])+(ae)>>>0));}n=n-(1)>>>0;}if((m===f)&&(f===d.$length)&&(n===0)){m=m-(1)>>0;continue;}((m<0||m>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+m]=n);m=m-(1)>>0;}BA(h);$s=-1;return;}return;}var $f={$blk:AH.prototype.divBasic,$c:true,$r,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$ptrType(AH).prototype.divBasic=function(b,c){return this.$get().divBasic(b,c);};Y=function(b,c,d,e){var b,c,d,e;return b>d||(b===d)&&c>e;};AH.prototype.divRecursive=function(b,c){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=$imul(2,J.Len(((c.$length>>>0))));f=AZ($imul(3,c.$length));$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=$makeSlice(EA,e);d.clear();$r=d.divRecursiveStep(b,c,0,g,h);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=h;j=0;while(true){if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);if(!(k===DZ.nil)){BA(k);}j++;}BA(g);$s=-1;return;}return;}var $f={$blk:AH.prototype.divRecursive,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};$ptrType(AH).prototype.divRecursive=function(b,c){return this.$get().divRecursive(b,c);};AH.prototype.divRecursiveStep=function(b,c,d,e,f){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=this;b=b.norm();c=c.norm();if(b.$length===0){g.clear();$s=-1;return;}h=c.$length;if(h<100){$s=1;continue;}$s=2;continue;case 1:$r=g.divBasic(b,c);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 2:i=b.$length-h>>0;if(i<0){$s=-1;return;}k=(j=h/2,(j===j&&j!==1/0&&j!==-1/0)?j>>0:$throwRuntimeError("integer divide by zero"));if(((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d])===DZ.nil){$s=4;continue;}$s=5;continue;case 4:l=AZ(h);$s=7;case 7:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]=l);$s=6;continue;case 5:((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]).$set(((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]).make(k+1>>0));case 6:m=i;case 8:if(!(m>k)){$s=9;continue;}n=(k-1>>0);o=$subslice(b,(m-k>>0));p=((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]).$get();p.clear();$r=p.divRecursiveStep($subslice(o,n,(k+h>>0)),$subslice(c,n),d+1>>0,e,f);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=p.norm();q=e.make($imul(3,h));q.clear();r=q.mul(p,$subslice(c,0,n));$s=11;case 11:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;s=0;case 12:if(!(s<2)){$s=13;continue;}t=q.cmp(o.norm());if(t<=0){$s=13;continue;}u=CT($convertSliceType(p,DY),$convertSliceType(p,DY),1);$s=14;case 14:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}u;v=CR($convertSliceType($subslice(q,0,n),DY),$convertSliceType($subslice(q,0,n),DY),$convertSliceType($subslice(c,0,n),DY));if(q.$length>n){$s=15;continue;}$s=16;continue;case 15:w=CT($convertSliceType($subslice(q,n),DY),$convertSliceType($subslice(q,n),DY),v);$s=17;case 17:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}w;case 16:$r=AS($subslice(o,n),$subslice(c,n),0);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s=s+(1)>>0;$s=12;continue;case 13:if(q.cmp(o.norm())>0){$panic(new $String("impossible"));}x=CR($convertSliceType($subslice(o,0,q.$length),DY),$convertSliceType($subslice(o,0,q.$length),DY),$convertSliceType(q,DY));if(x>0){$s=19;continue;}$s=20;continue;case 19:y=CT($convertSliceType($subslice(o,q.$length),DY),$convertSliceType($subslice(o,q.$length),DY),x);$s=21;case 21:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}y;case 20:$r=AS(g,p,m-k>>0);$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=m-(k)>>0;$s=8;continue;case 9:z=k-1>>0;aa=((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]).$get();aa.clear();$r=aa.divRecursiveStep($subslice(b,z).norm(),$subslice(c,z),d+1>>0,e,f);$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aa=aa.norm();ab=e.make($imul(3,h));ab.clear();ac=ab.mul(aa,$subslice(c,0,z));$s=24;case 24:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ab=ac;ad=0;case 25:if(!(ad<2)){$s=26;continue;}ae=ab.cmp(b.norm());if(ae>0){$s=27;continue;}$s=28;continue;case 27:af=CT($convertSliceType(aa,DY),$convertSliceType(aa,DY),1);$s=29;case 29:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}af;ag=CR($convertSliceType($subslice(ab,0,z),DY),$convertSliceType($subslice(ab,0,z),DY),$convertSliceType($subslice(c,0,z),DY));if(ab.$length>z){$s=30;continue;}$s=31;continue;case 30:ah=CT($convertSliceType($subslice(ab,z),DY),$convertSliceType($subslice(ab,z),DY),ag);$s=32;case 32:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ah;case 31:$r=AS($subslice(b,z),$subslice(c,z),0);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 28:ad=ad+(1)>>0;$s=25;continue;case 26:if(ab.cmp(b.norm())>0){$panic(new $String("impossible"));}ai=CR($convertSliceType($subslice(b,0,ab.$length),DY),$convertSliceType($subslice(b,0,ab.$length),DY),$convertSliceType(ab,DY));if(ai>0){$s=34;continue;}$s=35;continue;case 34:aj=CT($convertSliceType($subslice(b,ab.$length),DY),$convertSliceType($subslice(b,ab.$length),DY),ai);$s=36;case 36:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ai=aj;case 35:if(ai>0){$panic(new $String("impossible"));}$r=AS(g,aa.norm(),0);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AH.prototype.divRecursiveStep,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$ptrType(AH).prototype.divRecursiveStep=function(b,c,d,e,f){return this.$get().divRecursiveStep(b,c,d,e,f);};Z=function(b){var b,c,d,e,f,g,h;c=0;d=0;e=b;f=1;c=e;d=f;h=(g=4294967295/b,(g===g&&g!==1/0&&g!==-1/0)?g>>>0:$throwRuntimeError("integer divide by zero"));while(true){if(!(c<=h)){break;}c=$imul(c,(b))>>>0;d=d+(1)>>0;}return[c,d];};AA=function(b,c){var b,c,d;d=0;d=1;while(true){if(!(c>0)){break;}if(!(((c&1)===0))){d=$imul(d,(b))>>>0;}b=$imul(b,(b))>>>0;c=(c>>$min((1),31))>>0;}return d;};AH.prototype.scan=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=AH.nil;f=0;g=0;h=$ifaceNil;i=this;j=(c===0)||!d&&2<=c&&c<=62||d&&((c===2)||(c===8)||(c===10)||(c===16));if(!j){$s=1;continue;}$s=2;continue;case 1:k=F.Sprintf("invalid number base %d",new DT([new $Int(c)]));$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}$panic(new $String(k));case 2:l=46;m=false;o=b.ReadByte();$s=4;case 4:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;p=n[0];h=n[1];q=c;r=0;f=q;s=r;if(c===0){$s=5;continue;}$s=6;continue;case 5:f=10;if($interfaceIsEqual(h,$ifaceNil)&&(p===48)){$s=7;continue;}$s=8;continue;case 7:l=48;g=1;u=b.ReadByte();$s=9;case 9:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;p=t[0];h=t[1];if($interfaceIsEqual(h,$ifaceNil)){$s=10;continue;}$s=11;continue;case 10:v=p;if((v===(98))||(v===(66))){w=2;x=98;f=w;s=x;}else if((v===(111))||(v===(79))){y=8;z=111;f=y;s=z;}else if((v===(120))||(v===(88))){aa=16;ab=120;f=aa;s=ab;}else if(!d){ac=8;ad=48;f=ac;s=ad;}if(!((s===0))){$s=12;continue;}$s=13;continue;case 12:g=0;if(!((s===48))){$s=14;continue;}$s=15;continue;case 14:af=b.ReadByte();$s=16;case 16:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ae=af;p=ae[0];h=ae[1];case 15:case 13:case 11:case 8:case 6:i=$subslice(i,0,0);ag=((f>>>0));ah=Z(ag);ai=ah[0];aj=ah[1];ak=0;al=0;am=-1;case 17:if(!($interfaceIsEqual(h,$ifaceNil))){$s=18;continue;}if((p===46)&&d){$s=19;continue;}if((p===95)&&(c===0)){$s=20;continue;}$s=21;continue;case 19:d=false;if(l===95){m=true;}l=46;am=g;$s=22;continue;case 20:if(!((l===48))){m=true;}l=95;$s=22;continue;case 21:an=0;if(48<=p&&p<=57){an=(((p-48<<24>>>24)>>>0));}else if(97<=p&&p<=122){an=((((p-97<<24>>>24)+10<<24>>>24)>>>0));}else if(65<=p&&p<=90){if(f<=36){an=((((p-65<<24>>>24)+10<<24>>>24)>>>0));}else{an=((((p-65<<24>>>24)+36<<24>>>24)>>>0));}}else{an=63;}if(an>=ag){$s=23;continue;}$s=24;continue;case 23:ao=b.UnreadByte();$s=25;case 25:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ao;$s=18;continue;case 24:l=48;g=g+(1)>>0;ak=($imul(ak,ag)>>>0)+an>>>0;al=al+(1)>>0;if(al===aj){i=i.mulAddWW(i,ai,ak);ak=0;al=0;}case 22:aq=b.ReadByte();$s=26;case 26:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ap=aq;p=ap[0];h=ap[1];$s=17;continue;case 18:if($interfaceIsEqual(h,G.EOF)){h=$ifaceNil;}if($interfaceIsEqual(h,$ifaceNil)&&(m||(l===95))){h=AC;}if(g===0){if(s===48){ar=$subslice(i,0,0);as=10;at=1;au=h;e=ar;f=as;g=at;h=au;$s=-1;return[e,f,g,h];}h=AB;}if(al>0){i=i.mulAddWW(i,AA(ag,al),ak);}e=i.norm();if(am>=0){g=am-g>>0;}$s=-1;return[e,f,g,h];}return;}var $f={$blk:AH.prototype.scan,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$ptrType(AH).prototype.scan=function(b,c,d){return this.$get().scan(b,c,d);};AH.prototype.utoa=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.itoa(false,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:AH.prototype.utoa,$c:true,$r,b,c,d,e,$s};return $f;};$ptrType(AH).prototype.utoa=function(b){return this.$get().utoa(b);};AH.prototype.itoa=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(c<2||c>62){$panic(new $String("invalid base"));}if(d.$length===0){$s=-1;return(new DW($stringToBytes("0")));}e=(((d.bitLen())/A.Log2((c))>>0))+1>>0;if(b){e=e+(1)>>0;}f=$makeSlice(DW,e);g=((c>>>0));if(g===((g&(-g>>>0))>>>0)){$s=1;continue;}$s=2;continue;case 1:h=((J.TrailingZeros(((g>>>0)))>>>0));j=((((i=h,i<32?(1<>>0)-1>>>0));k=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]);l=32;m=1;while(true){if(!(m=h)){break;}e=e-(1)>>0;((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charCodeAt(((k&j)>>>0)));k=(n=(h),n<32?(k>>>n):0)>>>0;l=l-(h)>>>0;}if(l===0){k=((m<0||m>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+m]);l=32;}else{k=(k|(((o=l,o<32?(((m<0||m>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+m])<>>0)))>>>0;e=e-(1)>>0;((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charCodeAt(((k&j)>>>0)));k=(p=((h-l>>>0)),p<32?(((m<0||m>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+m])>>>p):0)>>>0;l=32-((h-l>>>0))>>>0;}m=m+(1)>>0;}while(true){if(!(!((k===0)))){break;}e=e-(1)>>0;((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charCodeAt(((k&j)>>>0)));k=(q=(h),q<32?(k>>>q):0)>>>0;}$s=3;continue;case 2:r=Z(g);s=r[0];t=r[1];u=AG(d.$length,g,t,s);$s=4;case 4:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;w=(AH.nil).set(d);$r=w.convertWords(f,g,t,s,v);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=0;while(true){if(!(((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e])===48)){break;}e=e+(1)>>0;}case 3:if(b){e=e-(1)>>0;((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]=45);}$s=-1;return $subslice(f,e);}return;}var $f={$blk:AH.prototype.itoa,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};$ptrType(AH).prototype.itoa=function(b,c){return this.$get().itoa(b,c);};AH.prototype.convertWords=function(b,c,d,e,f){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$r,$c}=$restore(this,{b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=this;if(!(f===EB.nil)){$s=1;continue;}$s=2;continue;case 1:h=AH.nil;i=f.$length-1>>0;case 3:if(!(g.$length>AD)){$s=4;continue;}j=g.bitLen();k=j>>1>>0;while(true){if(!(i>0&&(l=i-1>>0,((l<0||l>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+l])).nbits>k)){break;}i=i-(1)>>0;}if(((i<0||i>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+i]).nbits>=j&&((i<0||i>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+i]).bbb.cmp(g)>=0){i=i-(1)>>0;if(i<0){$panic(new $String("internal inconsistency"));}}n=g.div(h,g,((i<0||i>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+i]).bbb);$s=5;case 5:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;g=m[0];h=m[1];o=b.$length-((i<0||i>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+i]).ndigits>>0;$r=h.convertWords($subslice(b,o),c,d,e,$subslice(f,0,i));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=$subslice(b,0,o);$s=3;continue;case 4:case 2:p=b.$length;q=0;if(c===10){while(true){if(!(g.$length>0)){break;}r=g.divW(g,e);g=r[0];q=r[1];s=0;while(true){if(!(s0)){break;}p=p-(1)>>0;u=(t=q/10,(t===t&&t!==1/0&&t!==-1/0)?t>>>0:$throwRuntimeError("integer divide by zero"));((p<0||p>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+p]=(48+(((q-($imul(u,10)>>>0)>>>0)<<24>>>24))<<24>>>24));q=u;s=s+(1)>>0;}}}else{while(true){if(!(g.$length>0)){break;}v=g.divW(g,e);g=v[0];q=v[1];w=0;while(true){if(!(w0)){break;}p=p-(1)>>0;((p<0||p>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+p]="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charCodeAt((x=q%c,x===x?x:$throwRuntimeError("integer divide by zero"))));q=(y=q/(c),(y===y&&y!==1/0&&y!==-1/0)?y>>>0:$throwRuntimeError("integer divide by zero"));w=w+(1)>>0;}}}while(true){if(!(p>0)){break;}p=p-(1)>>0;((p<0||p>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+p]=48);}$s=-1;return;}return;}var $f={$blk:AH.prototype.convertWords,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s};return $f;};$ptrType(AH).prototype.convertWords=function(b,c,d,e,f){return this.$get().convertWords(b,c,d,e,f);};AH.prototype.expWW=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.expNN((AH.nil).setWord(b),(AH.nil).setWord(c),AH.nil);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:AH.prototype.expWW,$c:true,$r,b,c,d,e,f,$s};return $f;};$ptrType(AH).prototype.expWW=function(b,c){return this.$get().expWW(b,c);};AG=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:if((AD===0)||b<=AD){$s=-1;return EB.nil;}f=1;g=AD;while(true){if(!(g<(b>>1>>0)&&f<64)){break;}f=f+(1)>>0;g=(h=(1),h<32?(g<>0;}i=EB.nil;if(c===10){AF.Mutex.Lock();i=$subslice(new EB(AF.table),0,f);}else{i=$makeSlice(EB,f);}if((j=f-1>>0,((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j])).ndigits===0){$s=1;continue;}$s=2;continue;case 1:k=AH.nil;l=0;case 3:if(!(l=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).ndigits===0){$s=5;continue;}$s=6;continue;case 5:if(l===0){$s=7;continue;}$s=8;continue;case 7:m=(AH.nil).expWW(e,((AD>>>0)));$s=10;case 10:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]).bbb=m;(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]).ndigits=$imul(d,AD);$s=9;continue;case 8:o=(AH.nil).sqr((n=l-1>>0,((n<0||n>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+n])).bbb);$s=11;case 11:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).bbb=o;((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).ndigits=$imul(2,(p=l-1>>0,((p<0||p>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+p])).ndigits);case 9:k=(AH.nil).set(((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).bbb);while(true){if(!(CW($convertSliceType(k,DY),$convertSliceType(k,DY),c,0)===0)){break;}((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).bbb=((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).bbb.set(k);((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).ndigits=((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).ndigits+(1)>>0;}((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).nbits=((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]).bbb.bitLen();case 6:l=l+(1)>>0;$s=3;continue;case 4:case 2:if(c===10){AF.Mutex.Unlock();}$s=-1;return i;}return;}var $f={$blk:AG,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};AH.prototype.clear=function(){var b,c,d,e;b=this;c=b;d=0;while(true){if(!(d=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]=0);d++;}};$ptrType(AH).prototype.clear=function(){return this.$get().clear();};AH.prototype.norm=function(){var b,c,d;b=this;c=b.$length;while(true){if(!(c>0&&((d=c-1>>0,((d<0||d>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+d]))===0))){break;}c=c-(1)>>0;}return $subslice(b,0,c);};$ptrType(AH).prototype.norm=function(){return this.$get().norm();};AH.prototype.make=function(b){var b,c;c=this;if(b<=c.$capacity){return $subslice(c,0,b);}if(b===1){return $makeSlice(AH,1);}return $makeSlice(AH,b,(b+4>>0));};$ptrType(AH).prototype.make=function(b){return this.$get().make(b);};AH.prototype.setWord=function(b){var b,c;c=this;if(b===0){return $subslice(c,0,0);}c=c.make(1);(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]=b);return c;};$ptrType(AH).prototype.setWord=function(b){return this.$get().setWord(b);};AH.prototype.setUint64=function(b){var b,c,d,e;c=this;d=((b.$low>>>0));if((e=(new $Uint64(0,d.constructor===Number?d:1)),(e.$high===b.$high&&e.$low===b.$low))){return c.setWord(d);}c=c.make(2);(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1]=(($shiftRightUint64(b,32).$low>>>0)));(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]=((b.$low>>>0)));return c;};$ptrType(AH).prototype.setUint64=function(b){return this.$get().setUint64(b);};AH.prototype.set=function(b){var b,c;c=this;c=c.make(b.$length);$copySlice(c,b);return c;};$ptrType(AH).prototype.set=function(b){return this.$get().set(b);};AH.prototype.add=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=b.$length;f=c.$length;if(e>0);i=CQ($convertSliceType($subslice(d,0,f),DY),$convertSliceType(b,DY),$convertSliceType(c,DY));if(e>f){$s=8;continue;}$s=9;continue;case 8:j=CS($convertSliceType($subslice(d,f,e),DY),$convertSliceType($subslice(b,f),DY),i);$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;case 9:((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]=i);$s=-1;return d.norm();}return;}var $f={$blk:AH.prototype.add,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};$ptrType(AH).prototype.add=function(b,c){return this.$get().add(b,c);};AH.prototype.sub=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=b.$length;f=c.$length;if(ef){$s=1;continue;}$s=2;continue;case 1:h=CT($convertSliceType($subslice(d,f),DY),$convertSliceType($subslice(b,f),DY),g);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;case 2:if(!((g===0))){$panic(new $String("underflow"));}$s=-1;return d.norm();}return;}var $f={$blk:AH.prototype.sub,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};$ptrType(AH).prototype.sub=function(b,c){return this.$get().sub(b,c);};AH.prototype.cmp=function(b){var b,c,d,e,f,g;c=0;d=this;e=d.$length;f=b.$length;if(!((e===f))||(e===0)){if(ef){c=1;}return c;}g=e-1>>0;while(true){if(!(g>0&&(((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g])===((g<0||g>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+g])))){break;}g=g-(1)>>0;}if(((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g])<((g<0||g>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+g])){c=-1;}else if(((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g])>((g<0||g>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+g])){c=1;}return c;};$ptrType(AH).prototype.cmp=function(b){return this.$get().cmp(b);};AH.prototype.mulAddWW=function(b,c,d){var b,c,d,e,f;e=this;f=b.$length;if((f===0)||(c===0)){return e.setWord(d);}e=e.make(f+1>>0);((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]=CW($convertSliceType($subslice(e,0,f),DY),$convertSliceType(b,DY),c,d));return e.norm();};$ptrType(AH).prototype.mulAddWW=function(b,c,d){return this.$get().mulAddWW(b,c,d);};AM=function(b,c,d){var b,c,d,e,f,g,h,i;$subslice(b,0,(c.$length+d.$length>>0)).clear();e=d;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(!((h===0))){(i=c.$length+g>>0,((i<0||i>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+i]=CX($convertSliceType($subslice(b,g,(g+c.$length>>0)),DY),$convertSliceType(c,DY),h)));}f++;}};AH.prototype.montgomery=function(b,c,d,e,f){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;g=this;if(!((b.$length===f))||!((c.$length===f))||!((d.$length===f))){$panic(new $String("math/big: mismatched montgomery number lengths"));}g=g.make($imul(f,2));g.clear();h=0;i=0;while(true){if(!(i=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i]);k=CX($convertSliceType($subslice(g,i,(f+i>>0)),DY),$convertSliceType(b,DY),j);l=$imul(((i<0||i>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+i]),e)>>>0;m=CX($convertSliceType($subslice(g,i,(f+i>>0)),DY),$convertSliceType(d,DY),l);n=h+k>>>0;o=n+m>>>0;(p=f+i>>0,((p<0||p>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+p]=o));if(n>0;}if(!((h===0))){CR($convertSliceType($subslice(g,0,f),DY),$convertSliceType($subslice(g,f),DY),$convertSliceType(d,DY));}else{$copySlice($subslice(g,0,f),$subslice(g,f));}return $subslice(g,0,f);};$ptrType(AH).prototype.montgomery=function(b,c,d,e,f){return this.$get().montgomery(b,c,d,e,f);};AN=function(b,c,d){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=CQ($convertSliceType($subslice(b,0,d),DY),$convertSliceType(b,DY),$convertSliceType(c,DY));if(!((e===0))){$s=1;continue;}$s=2;continue;case 1:f=CS($convertSliceType($subslice(b,d,(d+(d>>1>>0)>>0)),DY),$convertSliceType($subslice(b,d),DY),e);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;case 2:$s=-1;return;}return;}var $f={$blk:AN,$c:true,$r,b,c,d,e,f,$s};return $f;};AO=function(b,c,d){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=CR($convertSliceType($subslice(b,0,d),DY),$convertSliceType(b,DY),$convertSliceType(c,DY));if(!((e===0))){$s=1;continue;}$s=2;continue;case 1:f=CT($convertSliceType($subslice(b,d,(d+(d>>1>>0)>>0)),DY),$convertSliceType($subslice(b,d),DY),e);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;case 2:$s=-1;return;}return;}var $f={$blk:AO,$c:true,$r,b,c,d,e,f,$s};return $f;};AQ=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=d.$length;if(!(((e&1)===0))||e>1>>0;g=$subslice(c,f);h=$subslice(c,0,f);i=g;j=h;k=$subslice(d,f);l=$subslice(d,0,f);m=k;n=l;$r=AQ(b,j,n);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AQ($subslice(b,e),i,m);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}o=1;p=$subslice(b,($imul(2,e)),(($imul(2,e))+f>>0));if(!((CR($convertSliceType(p,DY),$convertSliceType(i,DY),$convertSliceType(j,DY))===0))){o=-o;CR($convertSliceType(p,DY),$convertSliceType(j,DY),$convertSliceType(i,DY));}q=$subslice(b,(($imul(2,e))+f>>0),($imul(3,e)));if(!((CR($convertSliceType(q,DY),$convertSliceType(n,DY),$convertSliceType(m,DY))===0))){o=-o;CR($convertSliceType(q,DY),$convertSliceType(m,DY),$convertSliceType(n,DY));}r=$subslice(b,($imul(e,3)));$r=AQ(r,p,q);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s=$subslice(b,($imul(e,4)));$copySlice(s,$subslice(b,0,($imul(e,2))));$r=AN($subslice(b,f),s,e);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AN($subslice(b,f),$subslice(s,e),e);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(o>0){$s=6;continue;}$s=7;continue;case 6:$r=AN($subslice(b,f),r,e);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 7:$r=AO($subslice(b,f),r,e);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:$s=-1;return;}return;}var $f={$blk:AQ,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};AR=function(b,c){var b,c,d,e;return b.$capacity>0&&c.$capacity>0&&(d=$subslice(b,0,b.$capacity),$indexPtr(d.$array,d.$offset+(b.$capacity-1>>0),EC))===(e=$subslice(c,0,c.$capacity),$indexPtr(e.$array,e.$offset+(c.$capacity-1>>0),EC));};AS=function(b,c,d){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=c.$length;if(e>0){$s=1;continue;}$s=2;continue;case 1:f=CQ($convertSliceType($subslice(b,d,(d+e>>0)),DY),$convertSliceType($subslice(b,d),DY),$convertSliceType(c,DY));if(!((f===0))){$s=3;continue;}$s=4;continue;case 3:g=d+e>>0;if(gc){return b;}return c;};AU=function(b,c){var b,c,d,e;d=0;while(true){if(!(b>c)){break;}b=(b>>$min((1),31))>>0;d=d+(1)>>>0;}return(e=d,e<32?(b<>0;};AH.prototype.mul=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=b.$length;f=c.$length;if(e=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]),0);case 5:case 1:if(AR(d,b)||AR(d,c)){d=AH.nil;}if(f>0);AM(d,b,c);$s=-1;return d.norm();}i=AU(f,AP);j=$subslice(b,0,i);k=$subslice(c,0,i);d=d.make(AT($imul(6,i),e+f>>0));$r=AQ(d,j,k);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=$subslice(d,0,(e+f>>0));$subslice(d,($imul(2,i))).clear();if(ii){t=$subslice(t,0,i);}t=t.norm();u=n.mul(t,r);$s=16;case 16:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}n=u;$r=AS(d,n,s);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}v=n.mul(t,p);$s=18;case 18:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}n=v;$r=AS(d,n,s+i>>0);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s=s+(i)>>0;$s=14;continue;case 15:BA(m);case 10:$s=-1;return d.norm();}return;}var $f={$blk:AH.prototype.mul,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};$ptrType(AH).prototype.mul=function(b,c){return this.$get().mul(b,c);};AV=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=c.$length;e=AZ($imul(2,d));$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=f.$get();g.clear();h=CP((0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]),(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]));(1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1]=h[0]);(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]=h[1]);i=1;while(true){if(!(i=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i]);k=CP(j,j);(l=($imul(2,i))+1>>0,((l<0||l>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+l]=k[0]));(m=$imul(2,i),((m<0||m>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+m]=k[1]));(n=$imul(2,i),((n<0||n>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+n]=CX($convertSliceType($subslice(g,i,($imul(2,i))),DY),$convertSliceType($subslice(c,0,i),DY),j)));i=i+(1)>>0;}(o=($imul(2,d))-1>>0,((o<0||o>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+o]=CU($convertSliceType($subslice(g,1,(($imul(2,d))-1>>0)),DY),$convertSliceType($subslice(g,1,(($imul(2,d))-1>>0)),DY),1)));CQ($convertSliceType(b,DY),$convertSliceType(b,DY),$convertSliceType(g,DY));BA(f);$s=-1;return;}return;}var $f={$blk:AV,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};AW=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=c.$length;if(!(((d&1)===0))||d>1>>0;f=$subslice(c,e);g=$subslice(c,0,e);h=f;i=g;$r=AW(b,i);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AW($subslice(b,d),h);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=$subslice(b,($imul(2,d)),(($imul(2,d))+e>>0));if(!((CR($convertSliceType(j,DY),$convertSliceType(h,DY),$convertSliceType(i,DY))===0))){CR($convertSliceType(j,DY),$convertSliceType(i,DY),$convertSliceType(h,DY));}k=$subslice(b,($imul(d,3)));$r=AW(k,j);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=$subslice(b,($imul(d,4)));$copySlice(l,$subslice(b,0,($imul(d,2))));$r=AN($subslice(b,e),l,d);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AN($subslice(b,e),$subslice(l,d),d);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AO($subslice(b,e),k,d);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AW,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};AH.prototype.sqr=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b.$length;if((d===0)){$s=-1;return $subslice(c,0,0);}else if((d===1)){e=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]);c=c.make(2);f=CP(e,e);(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1]=f[0]);(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]=f[1]);$s=-1;return c.norm();}if(AR(c,b)){c=AH.nil;}if(dc.$high||(b.$high===c.$high&&b.$low>c.$low))){$s=3;continue;}if((b.$high===c.$high&&b.$low===c.$low)){$s=4;continue;}if((e=new $Uint64(b.$high+0,b.$low+1),(e.$high===c.$high&&e.$low===c.$low))){$s=5;continue;}$s=6;continue;case 2:$s=-1;return d.setUint64(new $Uint64(0,0));case 3:$s=-1;return d.setUint64(new $Uint64(0,1));case 4:$s=-1;return d.setUint64(b);case 5:f=d.mul((AH.nil).setUint64(b),(AH.nil).setUint64(c));$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=8;case 8:return g;case 6:case 1:h=$div64((new $Uint64(b.$high+c.$high,b.$low+c.$low)),new $Uint64(0,2),false);i=(AH.nil).mulRange(b,h);$s=9;case 9:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=(AH.nil).mulRange(new $Uint64(h.$high+0,h.$low+1),c);$s=10;case 10:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;m=d.mul(j,l);$s=11;case 11:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=12;case 12:return n;}return;}var $f={$blk:AH.prototype.mulRange,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};$ptrType(AH).prototype.mulRange=function(b,c){return this.$get().mulRange(b,c);};AZ=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=DZ.nil;d=BB.Get();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(!($interfaceIsEqual(e,$ifaceNil))){c=$assertType(e,DZ);}if(c===DZ.nil){c=$newDataPointer(AH.nil,DZ);}c.$set(c.make(b));$s=-1;return c;}return;}var $f={$blk:AZ,$c:true,$r,b,c,d,e,$s};return $f;};BA=function(b){var b;BB.Put(b);};AH.prototype.bitLen=function(){var b,c;b=this;c=b.$length-1>>0;if(c>=0){return($imul(c,32))+J.Len(((((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])>>>0)))>>0;}return 0;};$ptrType(AH).prototype.bitLen=function(){return this.$get().bitLen();};AH.prototype.trailingZeroBits=function(){var b,c;b=this;if(b.$length===0){return 0;}c=0;while(true){if(!(((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])===0)){break;}c=c+(1)>>>0;}return(c*32>>>0)+((J.TrailingZeros(((((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])>>>0)))>>>0))>>>0;};$ptrType(AH).prototype.trailingZeroBits=function(){return this.$get().trailingZeroBits();};BC=function(b,c){var b,c;return(b.$length===c.$length)&&b.$length>0&&$indexPtr(b.$array,b.$offset+0,EC)===$indexPtr(c.$array,c.$offset+0,EC);};AH.prototype.shl=function(b,c){var b,c,d,e,f,g,h;d=this;if(c===0){if(BC(d,b)){return d;}if(!AR(d,b)){return d.set(b);}}e=b.$length;if(e===0){return $subslice(d,0,0);}g=e+(((f=c/32,(f===f&&f!==1/0&&f!==-1/0)?f>>>0:$throwRuntimeError("integer divide by zero"))>>0))>>0;d=d.make(g+1>>0);((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]=CU($convertSliceType($subslice(d,(g-e>>0),g),DY),$convertSliceType(b,DY),(h=c%32,h===h?h:$throwRuntimeError("integer divide by zero"))));$subslice(d,0,(g-e>>0)).clear();return d.norm();};$ptrType(AH).prototype.shl=function(b,c){return this.$get().shl(b,c);};AH.prototype.shr=function(b,c){var b,c,d,e,f,g,h;d=this;if(c===0){if(BC(d,b)){return d;}if(!AR(d,b)){return d.set(b);}}e=b.$length;g=e-(((f=c/32,(f===f&&f!==1/0&&f!==-1/0)?f>>>0:$throwRuntimeError("integer divide by zero"))>>0))>>0;if(g<=0){return $subslice(d,0,0);}d=d.make(g);CV($convertSliceType(d,DY),$convertSliceType($subslice(b,(e-g>>0)),DY),(h=c%32,h===h?h:$throwRuntimeError("integer divide by zero")));return d.norm();};$ptrType(AH).prototype.shr=function(b,c){return this.$get().shr(b,c);};AH.prototype.setBit=function(b,c,d){var b,c,d,e,f,g,h,i,j,k,l;e=this;g=(((f=c/32,(f===f&&f!==1/0&&f!==-1/0)?f>>>0:$throwRuntimeError("integer divide by zero"))>>0));j=(h=((i=c%32,i===i?i:$throwRuntimeError("integer divide by zero"))),h<32?(1<>>0;k=b.$length;l=d;if(l===(0)){e=e.make(k);$copySlice(e,b);if(g>=k){return e;}((g<0||g>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+g]=((((g<0||g>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+g])&~(j))>>>0));return e.norm();}else if(l===(1)){if(g>=k){e=e.make(g+1>>0);$subslice(e,k).clear();}else{e=e.make(k);}$copySlice(e,b);((g<0||g>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+g]=((((g<0||g>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+g])|(j))>>>0));return e;}$panic(new $String("set bit is not 0 or 1"));};$ptrType(AH).prototype.setBit=function(b,c,d){return this.$get().setBit(b,c,d);};AH.prototype.bit=function(b){var b,c,d,e,f,g;c=this;e=(d=b/32,(d===d&&d!==1/0&&d!==-1/0)?d>>>0:$throwRuntimeError("integer divide by zero"));if(e>=((c.$length>>>0))){return 0;}return((((((f=((g=b%32,g===g?g:$throwRuntimeError("integer divide by zero"))),f<32?(((e<0||e>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+e])>>>f):0)>>>0)&1)>>>0)>>>0));};$ptrType(AH).prototype.bit=function(b){return this.$get().bit(b);};AH.prototype.sticky=function(b){var b,c,d,e,f,g,h,i,j;c=this;e=(d=b/32,(d===d&&d!==1/0&&d!==-1/0)?d>>>0:$throwRuntimeError("integer divide by zero"));if(e>=((c.$length>>>0))){if(c.$length===0){return 0;}return 1;}f=$subslice(c,0,e);g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(!((h===0))){return 1;}g++;}if(!((((i=((32-(j=b%32,j===j?j:$throwRuntimeError("integer divide by zero"))>>>0)),i<32?(((e<0||e>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+e])<>>0)===0))){return 1;}return 0;};$ptrType(AH).prototype.sticky=function(b){return this.$get().sticky(b);};AH.prototype.and=function(b,c){var b,c,d,e,f,g;d=this;e=b.$length;f=c.$length;if(e>f){e=f;}d=d.make(e);g=0;while(true){if(!(g=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]=((((g<0||g>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+g])&((g<0||g>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+g]))>>>0));g=g+(1)>>0;}return d.norm();};$ptrType(AH).prototype.and=function(b,c){return this.$get().and(b,c);};AH.prototype.andNot=function(b,c){var b,c,d,e,f,g;d=this;e=b.$length;f=c.$length;if(f>e){f=e;}d=d.make(e);g=0;while(true){if(!(g=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]=((((g<0||g>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+g])&~((g<0||g>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+g]))>>>0));g=g+(1)>>0;}$copySlice($subslice(d,f,e),$subslice(b,f,e));return d.norm();};$ptrType(AH).prototype.andNot=function(b,c){return this.$get().andNot(b,c);};AH.prototype.or=function(b,c){var b,c,d,e,f,g,h,i,j;d=this;e=b.$length;f=c.$length;g=b;if(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+j]=((((j<0||j>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+j])|((j<0||j>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+j]))>>>0));j=j+(1)>>0;}$copySlice($subslice(d,f,e),$subslice(g,f,e));return d.norm();};$ptrType(AH).prototype.or=function(b,c){return this.$get().or(b,c);};AH.prototype.xor=function(b,c){var b,c,d,e,f,g,h,i,j;d=this;e=b.$length;f=c.$length;g=b;if(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+j]=((((j<0||j>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+j])^((j<0||j>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+j]))>>>0));j=j+(1)>>0;}$copySlice($subslice(d,f,e),$subslice(g,f,e));return d.norm();};$ptrType(AH).prototype.xor=function(b,c){return this.$get().xor(b,c);};AH.prototype.random=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if(AR(e,c)){e=AH.nil;}e=e.make(c.$length);g=(((f=d%32,f===f?f:$throwRuntimeError("integer divide by zero"))>>>0));if(g===0){g=32;}i=(((((h=g,h<32?(1<>>0))-1>>>0));case 1:j=32;if(j===(32)){$s=4;continue;}if(j===(64)){$s=5;continue;}$s=6;continue;case 4:k=e;l=0;case 8:if(!(l=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+m]=((n>>>0)));l++;$s=8;continue;case 9:$s=7;continue;case 5:o=e;p=0;case 11:if(!(p=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+q]=((((r>>>0))|0)>>>0));p++;$s=11;continue;case 12:$s=7;continue;case 6:$panic(new $String("unknown word size"));case 7:case 3:s=c.$length-1>>0;((s<0||s>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+s]=((((s<0||s>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+s])&(i))>>>0));if(e.cmp(c)<0){$s=2;continue;}$s=1;continue;case 2:$s=-1;return e.norm();}return;}var $f={$blk:AH.prototype.random,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};$ptrType(AH).prototype.random=function(b,c,d){return this.$get().random(b,c,d);};AH.prototype.expNN=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if(AR(e,b)||AR(e,c)){e=AH.nil;}if((d.$length===1)&&((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])===1)){$s=-1;return e.setWord(0);}if(c.$length===0){$s=-1;return e.setWord(1);}if((c.$length===1)&&((0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])===1)&&!((d.$length===0))){$s=1;continue;}$s=2;continue;case 1:g=(AH.nil).div(e,b,d);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;e=f[1];$s=-1;return e;case 2:if(!((d.$length===0))){e=e.make(d.$length);}e=e.set(b);if(b.cmp(AI)>0&&c.$length>1&&d.$length>0){$s=4;continue;}$s=5;continue;case 4:if((((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])&1)>>>0)===1){$s=6;continue;}$s=7;continue;case 6:h=e.expNNMontgomery(b,c,d);$s=8;case 8:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=9;case 9:return i;case 7:j=e.expNNWindowed(b,c,d);$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=11;case 11:return k;case 5:m=(l=c.$length-1>>0,((l<0||l>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+l]));n=DA(m)+1>>>0;m=(o=(n),o<32?(m<>>0;p=AH.nil;q=32-((n>>0))>>0;r=AH.nil;s=AH.nil;t=r;u=s;v=0;case 12:if(!(v>>0)===0))){$s=15;continue;}$s=16;continue;case 15:z=t.mul(e,b);$s=17;case 17:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}t=z;aa=e;ab=t;t=aa;e=ab;case 16:if(!((d.$length===0))){$s=18;continue;}$s=19;continue;case 18:ad=t.div(u,e,d);$s=20;case 20:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=ad;t=ac[0];u=ac[1];ae=p;af=e;ag=t;ah=u;t=ae;u=af;p=ag;e=ah;case 19:m=(ai=(1),ai<32?(m<>>0;v=v+(1)>>0;$s=12;continue;case 13:aj=c.$length-2>>0;case 21:if(!(aj>=0)){$s=22;continue;}m=((aj<0||aj>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+aj]);ak=0;case 23:if(!(ak<32)){$s=24;continue;}al=t.sqr(e);$s=25;case 25:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}t=al;am=e;an=t;t=am;e=an;if(!((((m&2147483648)>>>0)===0))){$s=26;continue;}$s=27;continue;case 26:ao=t.mul(e,b);$s=28;case 28:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}t=ao;ap=e;aq=t;t=ap;e=aq;case 27:if(!((d.$length===0))){$s=29;continue;}$s=30;continue;case 29:as=t.div(u,e,d);$s=31;case 31:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}ar=as;t=ar[0];u=ar[1];at=p;au=e;av=t;aw=u;t=at;u=au;p=av;e=aw;case 30:m=(ax=(1),ax<32?(m<>>0;ak=ak+(1)>>0;$s=23;continue;case 24:aj=aj-(1)>>0;$s=21;continue;case 22:$s=-1;return e.norm();}return;}var $f={$blk:AH.prototype.expNN,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$ptrType(AH).prototype.expNN=function(b,c,d){return this.$get().expNN(b,c,d);};AH.prototype.expNNWindowed=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=AH.nil;g=AH.nil;h=f;i=g;j=ED.zero();j[0]=AI;j[1]=b;k=2;case 1:if(!(k<16)){$s=2;continue;}l=$indexPtr(j,(m=k/2,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero")),DZ);n=$indexPtr(j,k,DZ);o=$indexPtr(j,(k+1>>0),DZ);p=l;q=n;r=o;s=q.sqr(p.$get());$s=3;case 3:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}q.$set(s);u=h.div(i,q.$get(),d);$s=4;case 4:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;h=t[0];i=t[1];v=i;w=q.$get();q.$set(v);i=w;x=r.mul(q.$get(),b);$s=5;case 5:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}r.$set(x);z=h.div(i,r.$get(),d);$s=6;case 6:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}y=z;h=y[0];i=y[1];aa=i;ab=r.$get();r.$set(aa);i=ab;k=k+(2)>>0;$s=1;continue;case 2:e=e.setWord(1);ac=c.$length-1>>0;case 7:if(!(ac>=0)){$s=8;continue;}ad=((ac<0||ac>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+ac]);ae=0;case 9:if(!(ae<32)){$s=10;continue;}if(!((ac===(c.$length-1>>0)))||!((ae===0))){$s=11;continue;}$s=12;continue;case 11:af=h.sqr(e);$s=13;case 13:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}h=af;ag=e;ah=h;h=ag;e=ah;aj=h.div(i,e,d);$s=14;case 14:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ai=aj;h=ai[0];i=ai[1];ak=i;al=e;e=ak;i=al;am=h.sqr(e);$s=15;case 15:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}h=am;an=e;ao=h;h=an;e=ao;aq=h.div(i,e,d);$s=16;case 16:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ap=aq;h=ap[0];i=ap[1];ar=i;as=e;e=ar;i=as;at=h.sqr(e);$s=17;case 17:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}h=at;au=e;av=h;h=au;e=av;ax=h.div(i,e,d);$s=18;case 18:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}aw=ax;h=aw[0];i=aw[1];ay=i;az=e;e=ay;i=az;ba=h.sqr(e);$s=19;case 19:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}h=ba;bb=e;bc=h;h=bb;e=bc;be=h.div(i,e,d);$s=20;case 20:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bd=be;h=bd[0];i=bd[1];bf=i;bg=e;e=bf;i=bg;case 12:bi=h.mul(e,(bh=ad>>>28>>>0,((bh<0||bh>=j.length)?($throwRuntimeError("index out of range"),undefined):j[bh])));$s=21;case 21:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}h=bi;bj=e;bk=h;h=bj;e=bk;bm=h.div(i,e,d);$s=22;case 22:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bl=bm;h=bl[0];i=bl[1];bn=i;bo=e;e=bn;i=bo;ad=(bp=(4),bp<32?(ad<>>0;ae=ae+(4)>>0;$s=9;continue;case 10:ac=ac-(1)>>0;$s=7;continue;case 8:$s=-1;return e.norm();}return;}var $f={$blk:AH.prototype.expNNWindowed,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$ptrType(AH).prototype.expNNWindowed=function(b,c,d){return this.$get().expNNWindowed(b,c,d);};AH.prototype.expNNMontgomery=function(b,c,d){var{aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=d.$length;if(b.$length>f){$s=1;continue;}$s=2;continue;case 1:h=(AH.nil).div(AH.nil,b,d);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;b=g[1];case 2:if(b.$length=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])>>>0;k=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])-1>>>0;l=1;while(true){if(!(l<32)){break;}k=$imul(k,(k))>>>0;j=$imul(j,(((k+1>>>0))))>>>0;l=(m=(1),m<32?(l<>0;}j=-j>>>0;n=(AH.nil).setWord(1);o=(AH.nil).shl(n,((($imul(($imul(2,f)),32))>>>0)));q=(AH.nil).div(n,o,d);$s=4;case 4:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;n=p[1];if(n.$length=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+0]=1);s=ED.zero();s[0]=s[0].montgomery(r,n,d,j,f);s[1]=s[1].montgomery(b,n,d,j,f);t=2;while(true){if(!(t<16)){break;}((t<0||t>=s.length)?($throwRuntimeError("index out of range"),undefined):s[t]=((t<0||t>=s.length)?($throwRuntimeError("index out of range"),undefined):s[t]).montgomery((u=t-1>>0,((u<0||u>=s.length)?($throwRuntimeError("index out of range"),undefined):s[u])),s[1],d,j,f));t=t+(1)>>0;}e=e.make(f);$copySlice(e,s[0]);o=o.make(f);v=c.$length-1>>0;while(true){if(!(v>=0)){break;}w=((v<0||v>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+v]);x=0;while(true){if(!(x<32)){break;}if(!((v===(c.$length-1>>0)))||!((x===0))){o=o.montgomery(e,e,d,j,f);e=e.montgomery(o,o,d,j,f);o=o.montgomery(e,e,d,j,f);e=e.montgomery(o,o,d,j,f);}o=o.montgomery(e,(y=w>>>28>>>0,((y<0||y>=s.length)?($throwRuntimeError("index out of range"),undefined):s[y])),d,j,f);z=o;aa=e;e=z;o=aa;w=(ab=(4),ab<32?(w<>>0;x=x+(4)>>0;}v=v-(1)>>0;}o=o.montgomery(e,r,d,j,f);if(o.cmp(d)>=0){$s=5;continue;}$s=6;continue;case 5:ac=o.sub(o,d);$s=7;case 7:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}o=ac;if(o.cmp(d)>=0){$s=8;continue;}$s=9;continue;case 8:ae=(AH.nil).div(AH.nil,o,d);$s=10;case 10:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ad=ae;o=ad[1];case 9:case 6:$s=-1;return o.norm();}return;}var $f={$blk:AH.prototype.expNNMontgomery,$c:true,$r,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$ptrType(AH).prototype.expNNMontgomery=function(b,c,d){return this.$get().expNNMontgomery(b,c,d);};AH.prototype.bytes=function(b){var b,c,d,e,f,g,h,i;c=0;d=this;c=b.$length;e=d;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);h=0;while(true){if(!(h<4)){break;}c=c-(1)>>0;if(c>=0){((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]=((g<<24>>>24)));}else if(!((((g<<24>>>24))===0))){$panic(new $String("math/big: buffer too small to fit value"));}g=(i=(8),i<32?(g>>>i):0)>>>0;h=h+(1)>>0;}f++;}if(c<0){c=0;}while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])===0))){break;}c=c+(1)>>0;}return c;};$ptrType(AH).prototype.bytes=function(b){return this.$get().bytes(b);};BD=function(b){var b;if(false){return(($clone(D.BigEndian,D.bigEndian).Uint64(b).$low>>>0));}return(($clone(D.BigEndian,D.bigEndian).Uint32(b)>>>0));};AH.prototype.setBytes=function(b){var b,c,d,e,f,g,h,i,j,k;c=this;c=c.make((d=(((b.$length+4>>0)-1>>0))/4,(d===d&&d!==1/0&&d!==-1/0)?d>>0:$throwRuntimeError("integer divide by zero")));e=b.$length;f=0;while(true){if(!(e>=4)){break;}((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=BD($subslice(b,(e-4>>0),e)));e=e-(4)>>0;f=f+(1)>>0;}if(e>0){g=0;h=0;while(true){if(!(e>0)){break;}g=(g|(((i=h,i<32?((((j=e-1>>0,((j<0||j>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+j]))>>>0))<>>0)))>>>0;e=e-(1)>>0;h=h+(8)>>>0;}(k=c.$length-1>>0,((k<0||k>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+k]=g));}return c.norm();};$ptrType(AH).prototype.setBytes=function(b){return this.$get().setBytes(b);};AH.prototype.sqrt=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b.cmp(AI)<=0){$s=-1;return c.set(b);}if(AR(c,b)){c=AH.nil;}d=AH.nil;e=AH.nil;f=d;g=e;f=c;f=f.setUint64(new $Uint64(0,1));f=f.shl(f,(h=(((b.bitLen()+1>>0)>>>0))/2,(h===h&&h!==1/0&&h!==-1/0)?h>>>0:$throwRuntimeError("integer divide by zero")));i=0;case 1:k=g.div(AH.nil,b,f);$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;g=j[0];l=g.add(g,f);$s=4;case 4:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}g=l;g=g.shr(g,1);if(g.cmp(f)>=0){if((i&1)===0){$s=-1;return f;}$s=-1;return c.set(f);}m=g;n=f;f=m;g=n;i=i+(1)>>0;$s=1;continue;case 2:$s=-1;return AH.nil;}return;}var $f={$blk:AH.prototype.sqrt,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};$ptrType(AH).prototype.sqrt=function(b){return this.$get().sqrt(b);};BH.ptr.prototype.GobEncode=function(){var b,c,d,e;b=this;if(b===DX.nil){return[DW.nil,$ifaceNil];}c=$makeSlice(DW,(1+($imul(b.abs.$length,4))>>0));d=b.abs.bytes(c)-1>>0;e=2;if(b.neg){e=(e|(1))>>>0;}((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=e);return[$subslice(c,d),$ifaceNil];};BH.prototype.GobEncode=function(){return this.$val.GobEncode();};BH.ptr.prototype.GobDecode=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b.$length===0){BH.copy(c,new BH.ptr(false,AH.nil));$s=-1;return $ifaceNil;}d=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]);if(!(((d>>>1<<24>>>24)===1))){$s=1;continue;}$s=2;continue;case 1:e=F.Errorf("Int.GobDecode: encoding version %d not supported",new DT([new $Uint8((d>>>1<<24>>>24))]));$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=4;case 4:return f;case 2:c.neg=!((((d&1)>>>0)===0));c.abs=c.abs.setBytes($subslice(b,1));$s=-1;return $ifaceNil;}return;}var $f={$blk:BH.ptr.prototype.GobDecode,$c:true,$r,b,c,d,e,f,$s};return $f;};BH.prototype.GobDecode=function(b){return this.$val.GobDecode(b);};BH.ptr.prototype.MarshalText=function(){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=DW.nil;c=$ifaceNil;d=this;if(d===DX.nil){e=(new DW($stringToBytes("")));f=$ifaceNil;b=e;c=f;$s=-1;return[b,c];}h=d.abs.itoa(d.neg,10);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;i=$ifaceNil;b=g;c=i;j=[b,c];$s=2;case 2:return j;}return;}var $f={$blk:BH.ptr.prototype.MarshalText,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};BH.prototype.MarshalText=function(){return this.$val.MarshalText();};BH.ptr.prototype.UnmarshalText=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=c.setFromScanner(K.NewReader(b),0);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[1];if(!f){$s=2;continue;}$s=3;continue;case 2:g=F.Errorf("math/big: cannot unmarshal %q into a *big.Int",new DT([b]));$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=5;case 5:return h;case 3:$s=-1;return $ifaceNil;}return;}var $f={$blk:BH.ptr.prototype.UnmarshalText,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};BH.prototype.UnmarshalText=function(b){return this.$val.UnmarshalText(b);};BH.ptr.prototype.MarshalJSON=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.MarshalText();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:BH.ptr.prototype.MarshalJSON,$c:true,$r,b,c,d,$s};return $f;};BH.prototype.MarshalJSON=function(){return this.$val.MarshalJSON();};BH.ptr.prototype.UnmarshalJSON=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(($bytesToString(b))==="null"){$s=-1;return $ifaceNil;}d=c.UnmarshalText(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:BH.ptr.prototype.UnmarshalJSON,$c:true,$r,b,c,d,e,$s};return $f;};BH.prototype.UnmarshalJSON=function(b){return this.$val.UnmarshalJSON(b);};BH.ptr.prototype.Text=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(c===DX.nil){$s=-1;return"";}d=c.abs.itoa(c.neg,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=($bytesToString(d));$s=2;case 2:return e;}return;}var $f={$blk:BH.ptr.prototype.Text,$c:true,$r,b,c,d,e,$s};return $f;};BH.prototype.Text=function(b){return this.$val.Text(b);};BH.ptr.prototype.Append=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(d===DX.nil){$s=-1;return $appendSlice(b,"");}e=b;f=d.abs.itoa(d.neg,c);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=$appendSlice(e,g);$s=2;case 2:return h;}return;}var $f={$blk:BH.ptr.prototype.Append,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};BH.prototype.Append=function(b,c){return this.$val.Append(b,c);};BH.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.Text(10);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:BH.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};BH.prototype.String=function(){return this.$val.String();};BE=function(b,c,d){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:if(c.length>0){$s=1;continue;}$s=2;continue;case 1:e=(new DW($stringToBytes(c)));case 3:if(!(d>0)){$s=4;continue;}f=b.Write(e);$s=5;case 5:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;d=d-(1)>>0;$s=3;continue;case 4:case 2:$s=-1;return;}return;}var $f={$blk:BE,$c:true,$r,b,c,d,e,f,$s};return $f;};BH.ptr.prototype.Format=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=0;f=c;if(f===(98)){$s=2;continue;}if((f===(111))||(f===(79))){$s=3;continue;}if((f===(100))||(f===(115))||(f===(118))){$s=4;continue;}if((f===(120))||(f===(88))){$s=5;continue;}$s=6;continue;case 2:e=2;$s=7;continue;case 3:e=8;$s=7;continue;case 4:e=10;$s=7;continue;case 5:e=16;$s=7;continue;case 6:g=b;h=new $Int32(c);i=d.String();$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=new $String(i);k=F.Fprintf(g,"%%!%c(big.Int=%s)",new DT([h,j]));$s=9;case 9:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;$s=-1;return;case 7:case 1:if(d===DX.nil){$s=10;continue;}$s=11;continue;case 10:l=F.Fprint(b,new DT([new $String("")]));$s=12;case 12:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;$s=-1;return;case 11:m="";if(d.neg){$s=14;continue;}n=b.Flag(43);$s=18;case 18:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}if(n){$s=15;continue;}o=b.Flag(32);$s=19;case 19:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(o){$s=16;continue;}$s=17;continue;case 14:m="-";$s=17;continue;case 15:m="+";$s=17;continue;case 16:m=" ";case 17:case 13:p="";q=b.Flag(35);$s=22;case 22:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}if(q){$s=20;continue;}$s=21;continue;case 20:r=c;if(r===(98)){p="0b";}else if(r===(111)){p="0";}else if(r===(120)){p="0x";}else if(r===(88)){p="0X";}case 21:if(c===79){p="0o";}s=d.abs.utoa(e);$s=23;case 23:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;if(c===88){u=t;v=0;while(true){if(!(v=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v]);if(97<=x&&x<=122){((w<0||w>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+w]=(65+((x-97<<24>>>24))<<24>>>24));}v++;}}y=0;z=0;aa=0;ac=b.Precision();$s=24;case 24:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ab=ac;ad=ab[0];ae=ab[1];if(ae){if(t.$length>0;}else if((t.$length===1)&&((0>=t.$length?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+0])===48)&&(ad===0)){$s=-1;return;}}af=((m.length+p.length>>0)+z>>0)+t.$length>>0;ah=b.Width();$s=25;case 25:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ag=ah;ai=ag[0];aj=ag[1];if(aj&&af>0;al=b.Flag(45);$s=33;case 33:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}if(al){$s=29;continue;}am=b.Flag(48);$s=34;case 34:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}if(am&&!ae){$s=30;continue;}$s=31;continue;case 29:aa=ak;$s=32;continue;case 30:z=ak;$s=32;continue;case 31:y=ak;case 32:case 28:case 27:$r=BE(b," ",y);$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=BE(b,m,1);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=BE(b,p,1);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=BE(b,"0",z);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}an=b.Write(t);$s=39;case 39:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}an;$r=BE(b," ",aa);$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BH.ptr.prototype.Format,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BH.prototype.Format=function(b,c){return this.$val.Format(b,c);};BH.ptr.prototype.scan=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;f=BF(b);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return[DX.nil,0,h];}j=d.abs.scan(b,c,false);$s=2;case 2:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;d.abs=i[0];c=i[1];h=i[3];if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return[DX.nil,c,h];}d.neg=d.abs.$length>0&&g;$s=-1;return[d,c,$ifaceNil];}return;}var $f={$blk:BH.ptr.prototype.scan,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};BH.prototype.scan=function(b,c){return this.$val.scan(b,c);};BF=function(b){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=false;d=$ifaceNil;e=0;g=b.ReadByte();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;e=f[0];d=f[1];if(!($interfaceIsEqual(d,$ifaceNil))){h=false;i=d;c=h;d=i;$s=-1;return[c,d];}j=e;if(j===(45)){$s=3;continue;}if(j===(43)){$s=4;continue;}$s=5;continue;case 3:c=true;$s=6;continue;case 4:$s=6;continue;case 5:k=b.UnreadByte();$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;case 6:case 2:$s=-1;return[c,d];}return;}var $f={$blk:BF,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};BG.ptr.prototype.ReadByte=function(){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;d=b.ScanState.ReadRune();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];g=c[2];if(!((f===1))&&$interfaceIsEqual(g,$ifaceNil)){$s=2;continue;}$s=3;continue;case 2:h=F.Errorf("invalid rune %#U",new DT([new $Int32(e)]));$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;case 3:$s=-1;return[((e<<24>>>24)),g];}return;}var $f={$blk:BG.ptr.prototype.ReadByte,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};BG.prototype.ReadByte=function(){return this.$val.ReadByte();};BG.ptr.prototype.UnreadByte=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.ScanState.UnreadRune();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:BG.ptr.prototype.UnreadByte,$c:true,$r,b,c,d,$s};return $f;};BG.prototype.UnreadByte=function(){return this.$val.UnreadByte();};BH.ptr.prototype.Scan=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;$r=b.SkipSpace();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=0;f=c;if(f===(98)){e=2;}else if(f===(111)){e=8;}else if(f===(100)){e=10;}else if((f===(120))||(f===(88))){e=16;}else if((f===(115))||(f===(118))){}else{$s=-1;return E.New("Int.Scan: invalid verb");}i=d.scan((h=new BG.ptr(b),new h.constructor.elem(h)),e);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}g=i;j=g[2];$s=-1;return j;}return;}var $f={$blk:BH.ptr.prototype.Scan,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};BH.prototype.Scan=function(b,c){return this.$val.Scan(b,c);};BH.ptr.prototype.Sign=function(){var b;b=this;if(b.abs.$length===0){return 0;}if(b.neg){return-1;}return 1;};BH.prototype.Sign=function(){return this.$val.Sign();};BH.ptr.prototype.SetInt64=function(b){var b,c,d;c=this;d=false;if((b.$high<0||(b.$high===0&&b.$low<0))){d=true;b=new $Int64(-b.$high,-b.$low);}c.abs=c.abs.setUint64((new $Uint64(b.$high,b.$low)));c.neg=d;return c;};BH.prototype.SetInt64=function(b){return this.$val.SetInt64(b);};BH.ptr.prototype.SetUint64=function(b){var b,c;c=this;c.abs=c.abs.setUint64(b);c.neg=false;return c;};BH.prototype.SetUint64=function(b){return this.$val.SetUint64(b);};BJ=function(b){var b;return new BH.ptr(false,AH.nil).SetInt64(b);};$pkg.NewInt=BJ;BH.ptr.prototype.Set=function(b){var b,c;c=this;if(!(c===b)){c.abs=c.abs.set(b.abs);c.neg=b.neg;}return c;};BH.prototype.Set=function(b){return this.$val.Set(b);};BH.ptr.prototype.Bits=function(){var b;b=this;return $convertSliceType(b.abs,DY);};BH.prototype.Bits=function(){return this.$val.Bits();};BH.ptr.prototype.SetBits=function(b){var b,c;c=this;c.abs=($convertSliceType(b,AH)).norm();c.neg=false;return c;};BH.prototype.SetBits=function(b){return this.$val.SetBits(b);};BH.ptr.prototype.Abs=function(b){var b,c;c=this;c.Set(b);c.neg=false;return c;};BH.prototype.Abs=function(b){return this.$val.Abs(b);};BH.ptr.prototype.Neg=function(b){var b,c;c=this;c.Set(b);c.neg=c.abs.$length>0&&!c.neg;return c;};BH.prototype.Neg=function(b){return this.$val.Neg(b);};BH.ptr.prototype.Add=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=b.neg;if(b.neg===c.neg){$s=1;continue;}$s=2;continue;case 1:f=d.abs.add(b.abs,c.abs);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}d.abs=f;$s=3;continue;case 2:if(b.abs.cmp(c.abs)>=0){$s=5;continue;}$s=6;continue;case 5:g=d.abs.sub(b.abs,c.abs);$s=8;case 8:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}d.abs=g;$s=7;continue;case 6:e=!e;h=d.abs.sub(c.abs,b.abs);$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}d.abs=h;case 7:case 3:d.neg=d.abs.$length>0&&e;$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.Add,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};BH.prototype.Add=function(b,c){return this.$val.Add(b,c);};BH.ptr.prototype.Sub=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=b.neg;if(!(b.neg===c.neg)){$s=1;continue;}$s=2;continue;case 1:f=d.abs.add(b.abs,c.abs);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}d.abs=f;$s=3;continue;case 2:if(b.abs.cmp(c.abs)>=0){$s=5;continue;}$s=6;continue;case 5:g=d.abs.sub(b.abs,c.abs);$s=8;case 8:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}d.abs=g;$s=7;continue;case 6:e=!e;h=d.abs.sub(c.abs,b.abs);$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}d.abs=h;case 7:case 3:d.neg=d.abs.$length>0&&e;$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.Sub,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};BH.prototype.Sub=function(b,c){return this.$val.Sub(b,c);};BH.ptr.prototype.Mul=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(b===c){$s=1;continue;}$s=2;continue;case 1:e=d.abs.sqr(b.abs);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d.abs=e;d.neg=false;$s=-1;return d;case 2:f=d.abs.mul(b.abs,c.abs);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}d.abs=f;d.neg=d.abs.$length>0&&!(b.neg===c.neg);$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.Mul,$c:true,$r,b,c,d,e,f,$s};return $f;};BH.prototype.Mul=function(b,c){return this.$val.Mul(b,c);};BH.ptr.prototype.MulRange=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if((b.$high>c.$high||(b.$high===c.$high&&b.$low>c.$low))){$s=-1;return d.SetInt64(new $Int64(0,1));}else if((b.$high<0||(b.$high===0&&b.$low<=0))&&(c.$high>0||(c.$high===0&&c.$low>=0))){$s=-1;return d.SetInt64(new $Int64(0,0));}e=false;if((b.$high<0||(b.$high===0&&b.$low<0))){e=(f=(g=new $Int64(c.$high-b.$high,c.$low-b.$low),new $Int64(g.$high&0,(g.$low&1)>>>0)),(f.$high===0&&f.$low===0));h=new $Int64(-c.$high,-c.$low);i=new $Int64(-b.$high,-b.$low);b=h;c=i;}j=d.abs.mulRange((new $Uint64(b.$high,b.$low)),(new $Uint64(c.$high,c.$low)));$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}d.abs=j;d.neg=e;$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.MulRange,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};BH.prototype.MulRange=function(b,c){return this.$val.MulRange(b,c);};BH.ptr.prototype.Binomial=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=[e];f=this;if((g=$div64(b,new $Int64(0,2),false),(g.$high0&&!(b.neg===c.neg);$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.Quo,$c:true,$r,b,c,d,e,f,$s};return $f;};BH.prototype.Quo=function(b,c){return this.$val.Quo(b,c);};BH.ptr.prototype.Rem=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;f=(AH.nil).div(d.abs,b.abs,c.abs);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;d.abs=e[1];d.neg=d.abs.$length>0&&b.neg;$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.Rem,$c:true,$r,b,c,d,e,f,$s};return $f;};BH.prototype.Rem=function(b,c){return this.$val.Rem(b,c);};BH.ptr.prototype.QuoRem=function(b,c,d){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;g=e.abs.div(d.abs,b.abs,c.abs);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;e.abs=f[0];d.abs=f[1];h=e.abs.$length>0&&!(b.neg===c.neg);i=d.abs.$length>0&&b.neg;e.neg=h;d.neg=i;$s=-1;return[e,d];}return;}var $f={$blk:BH.ptr.prototype.QuoRem,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};BH.prototype.QuoRem=function(b,c,d){return this.$val.QuoRem(b,c,d);};BH.ptr.prototype.Div=function(b,c){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=this;f=c.neg;d[0]=new BH.ptr(false,AH.nil);g=e.QuoRem(b,c,d[0]);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;if(d[0].neg){$s=2;continue;}$s=3;continue;case 2:if(f){$s=4;continue;}$s=5;continue;case 4:h=e.Add(e,BI);$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;$s=6;continue;case 5:i=e.Sub(e,BI);$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;case 6:case 3:$s=-1;return e;}return;}var $f={$blk:BH.ptr.prototype.Div,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};BH.prototype.Div=function(b,c){return this.$val.Div(b,c);};BH.ptr.prototype.Mod=function(b,c){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=c;if(d===c||AR(d.abs,c.abs)){e=new BH.ptr(false,AH.nil).Set(c);}f=new BH.ptr(false,AH.nil);g=f.QuoRem(b,c,d);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;if(d.neg){$s=2;continue;}$s=3;continue;case 2:if(e.neg){$s=4;continue;}$s=5;continue;case 4:h=d.Sub(d,e);$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;$s=6;continue;case 5:i=d.Add(d,e);$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;case 6:case 3:$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.Mod,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};BH.prototype.Mod=function(b,c){return this.$val.Mod(b,c);};BH.ptr.prototype.DivMod=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=c;if(e===c||AR(e.abs,c.abs)){f=new BH.ptr(false,AH.nil).Set(c);}g=e.QuoRem(b,c,d);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;if(d.neg){$s=2;continue;}$s=3;continue;case 2:if(f.neg){$s=4;continue;}$s=5;continue;case 4:h=e.Add(e,BI);$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;i=d.Sub(d,f);$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$s=6;continue;case 5:j=e.Sub(e,BI);$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;k=d.Add(d,f);$s=10;case 10:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;case 6:case 3:$s=-1;return[e,d];}return;}var $f={$blk:BH.ptr.prototype.DivMod,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};BH.prototype.DivMod=function(b,c,d){return this.$val.DivMod(b,c,d);};BH.ptr.prototype.Cmp=function(b){var b,c,d;c=0;d=this;if(d===b){}else if(d.neg===b.neg){c=d.abs.cmp(b.abs);if(d.neg){c=-c;}}else if(d.neg){c=-1;}else{c=1;}return c;};BH.prototype.Cmp=function(b){return this.$val.Cmp(b);};BH.ptr.prototype.CmpAbs=function(b){var b,c;c=this;return c.abs.cmp(b.abs);};BH.prototype.CmpAbs=function(b){return this.$val.CmpAbs(b);};BK=function(b){var b;if(b.$length===0){return 0;}return(((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])>>>0));};BL=function(b){var b,c,d,e,f;if(b.$length===0){return new $Uint64(0,0);}d=((c=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]),new $Uint64(0,c.constructor===Number?c:1)));if(true&&b.$length>1){return(e=$shiftLeft64(((f=(1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1]),new $Uint64(0,f.constructor===Number?f:1))),32),new $Uint64(e.$high|d.$high,(e.$low|d.$low)>>>0));}return d;};BH.ptr.prototype.Int64=function(){var b,c,d;b=this;d=((c=BL(b.abs),new $Int64(c.$high,c.$low)));if(b.neg){d=new $Int64(-d.$high,-d.$low);}return d;};BH.prototype.Int64=function(){return this.$val.Int64();};BH.ptr.prototype.Uint64=function(){var b;b=this;return BL(b.abs);};BH.prototype.Uint64=function(){return this.$val.Uint64();};BH.ptr.prototype.IsInt64=function(){var b,c,d,e;b=this;if(b.abs.$length<=2){d=((c=BL(b.abs),new $Int64(c.$high,c.$low)));return(d.$high>0||(d.$high===0&&d.$low>=0))||b.neg&&(e=new $Int64(-d.$high,-d.$low),(d.$high===e.$high&&d.$low===e.$low));}return false;};BH.prototype.IsInt64=function(){return this.$val.IsInt64();};BH.ptr.prototype.IsUint64=function(){var b;b=this;return!b.neg&&b.abs.$length<=2;};BH.prototype.IsUint64=function(){return this.$val.IsUint64();};BH.ptr.prototype.SetString=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.setFromScanner(H.NewReader(b),c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:BH.ptr.prototype.SetString,$c:true,$r,b,c,d,e,f,$s};return $f;};BH.prototype.SetString=function(b,c){return this.$val.SetString(b,c);};BH.ptr.prototype.setFromScanner=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;f=d.scan(b,c);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[2];if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return[DX.nil,false];}i=b.ReadByte();$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[1];if(!($interfaceIsEqual(j,G.EOF))){$s=-1;return[DX.nil,false];}$s=-1;return[d,true];}return;}var $f={$blk:BH.ptr.prototype.setFromScanner,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};BH.prototype.setFromScanner=function(b,c){return this.$val.setFromScanner(b,c);};BH.ptr.prototype.SetBytes=function(b){var b,c;c=this;c.abs=c.abs.setBytes(b);c.neg=false;return c;};BH.prototype.SetBytes=function(b){return this.$val.SetBytes(b);};BH.ptr.prototype.Bytes=function(){var b,c;b=this;c=$makeSlice(DW,($imul(b.abs.$length,4)));return $subslice(c,b.abs.bytes(c));};BH.prototype.Bytes=function(){return this.$val.Bytes();};BH.ptr.prototype.FillBytes=function(b){var b,c,d,e,f;c=this;d=b;e=0;while(true){if(!(e=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]=0);e++;}c.abs.bytes(b);return b;};BH.prototype.FillBytes=function(b){return this.$val.FillBytes(b);};BH.ptr.prototype.BitLen=function(){var b;b=this;return b.abs.bitLen();};BH.prototype.BitLen=function(){return this.$val.BitLen();};BH.ptr.prototype.TrailingZeroBits=function(){var b;b=this;return b.abs.trailingZeroBits();};BH.prototype.TrailingZeroBits=function(){return this.$val.TrailingZeroBits();};BH.ptr.prototype.Exp=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=b.abs;if(c.neg){$s=1;continue;}$s=2;continue;case 1:if(d===DX.nil||(d.abs.$length===0)){$s=-1;return e.SetInt64(new $Int64(0,1));}g=new BH.ptr(false,AH.nil).ModInverse(b,d);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(h===DX.nil){$s=-1;return DX.nil;}f=h.abs;case 2:i=c.abs;j=AH.nil;if(!(d===DX.nil)){j=d.abs;}k=e.abs.expNN(f,i,j);$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}e.abs=k;e.neg=e.abs.$length>0&&b.neg&&i.$length>0&&((((0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])&1)>>>0)===1);if(e.neg&&j.$length>0){$s=5;continue;}$s=6;continue;case 5:l=e.abs.sub(j,e.abs);$s=7;case 7:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}e.abs=l;e.neg=false;case 6:$s=-1;return e;}return;}var $f={$blk:BH.ptr.prototype.Exp,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};BH.prototype.Exp=function(b,c,d){return this.$val.Exp(b,c,d);};BH.ptr.prototype.GCD=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;if((d.abs.$length===0)||(e.abs.$length===0)){g=d.abs.$length;h=e.abs.$length;i=d.neg;j=e.neg;k=g;l=h;m=i;n=j;if(k===0){f.Set(e);}else{f.Set(d);}f.neg=false;if(!(b===DX.nil)){if(k===0){b.SetUint64(new $Uint64(0,0));}else{b.SetUint64(new $Uint64(0,1));b.neg=m;}}if(!(c===DX.nil)){if(l===0){c.SetUint64(new $Uint64(0,0));}else{c.SetUint64(new $Uint64(0,1));c.neg=n;}}$s=-1;return f;}o=f.lehmerGCD(b,c,d,e);$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;$s=2;case 2:return p;}return;}var $f={$blk:BH.ptr.prototype.GCD,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};BH.prototype.GCD=function(b,c,d,e){return this.$val.GCD(b,c,d,e);};BM=function(b,c){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;d=0;e=0;f=0;g=0;h=false;i=0;j=0;k=0;l=0;m=i;n=j;o=k;p=l;q=c.abs.$length;r=b.abs.$length;u=DA((s=b.abs,t=r-1>>0,((t<0||t>=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t])));m=(((v=u,v<32?((w=b.abs,x=r-1>>0,((x<0||x>=w.$length)?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+x]))<>>0)|((y=((32-u>>>0)),y<32?((z=b.abs,aa=r-2>>0,((aa<0||aa>=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+aa]))>>>y):0)>>>0))>>>0;if((r===q)){n=(((ab=u,ab<32?((ac=c.abs,ad=r-1>>0,((ad<0||ad>=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+ad]))<>>0)|((ae=((32-u>>>0)),ae<32?((af=c.abs,ag=r-2>>0,((ag<0||ag>=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ag]))>>>ae):0)>>>0))>>>0;}else if((r===(q+1>>0))){n=(ah=((32-u>>>0)),ah<32?((ai=c.abs,aj=r-2>>0,((aj<0||aj>=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+aj]))>>>ah):0)>>>0;}else{n=0;}h=false;ak=0;al=1;am=0;d=ak;e=al;o=am;an=0;ao=0;ap=1;f=an;g=ao;p=ap;while(true){if(!(n>=p&&(m-n>>>0)>=(g+p>>>0))){break;}aq=(ar=m/n,(ar===ar&&ar!==1/0&&ar!==-1/0)?ar>>>0:$throwRuntimeError("integer divide by zero"));as=(at=m%n,at===at?at:$throwRuntimeError("integer divide by zero"));au=aq;av=as;aw=n;ax=av;m=aw;n=ax;ay=e;az=o;ba=e+($imul(au,o)>>>0)>>>0;d=ay;e=az;o=ba;bb=g;bc=p;bd=g+($imul(au,p)>>>0)>>>0;f=bb;g=bc;p=bd;h=!h;}return[d,e,f,g,h];};BN=function(b,c,d,e,f,g,h,i,j,k,l){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{b,c,d,e,f,g,h,i,j,k,l});$s=$s||0;s:while(true){switch($s){case 0:g.abs=g.abs.setWord(h);f.abs=f.abs.setWord(j);g.neg=!l;f.neg=l;m=g.Mul(b,g);$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;n=f.Mul(c,f);$s=2;case 2:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;e.abs=e.abs.setWord(i);d.abs=d.abs.setWord(k);e.neg=l;d.neg=!l;o=e.Mul(b,e);$s=3;case 3:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;p=d.Mul(c,d);$s=4;case 4:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;q=b.Add(g,f);$s=5;case 5:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;r=c.Add(e,d);$s=6;case 6:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;$s=-1;return;}return;}var $f={$blk:BN,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};BO=function(b,c,d,e,f,g,h,i,j){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{b,c,d,e,f,g,h,i,j});$s=$s||0;s:while(true){switch($s){case 0:l=f.QuoRem(b,c,g);$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;f=k[0];g=k[1];m=$clone(c,BH);n=$clone(g,BH);o=$clone(b,BH);BH.copy(b,m);BH.copy(c,n);BH.copy(g,o);if(j){$s=2;continue;}$s=3;continue;case 2:i.Set(e);p=h.Mul(e,f);$s=4;case 4:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;q=e.Sub(d,h);$s=5;case 5:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;d.Set(i);case 3:$s=-1;return;}return;}var $f={$blk:BO,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};BH.ptr.prototype.lehmerGCD=function(b,c,d,e){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;g=DX.nil;h=DX.nil;i=DX.nil;j=DX.nil;k=g;l=h;m=i;n=j;k=new BH.ptr(false,AH.nil).Abs(d);l=new BH.ptr(false,AH.nil).Abs(e);o=!(b===DX.nil)||!(c===DX.nil);if(o){m=new BH.ptr(false,AH.nil).SetInt64(new $Int64(0,1));n=new BH.ptr(false,AH.nil);}p=new BH.ptr(false,AH.nil);q=new BH.ptr(false,AH.nil);r=new BH.ptr(false,AH.nil);s=new BH.ptr(false,AH.nil);if(k.abs.cmp(l.abs)<0){t=l;u=k;k=t;l=u;v=m;w=n;n=v;m=w;}case 1:if(!(l.abs.$length>1)){$s=2;continue;}x=BM(k,l);y=x[0];z=x[1];aa=x[2];ab=x[3];ac=x[4];if(!((aa===0))){$s=3;continue;}$s=4;continue;case 3:$r=BN(k,l,p,q,r,s,y,z,aa,ab,ac);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(o){$s=7;continue;}$s=8;continue;case 7:$r=BN(m,n,p,q,r,s,y,z,aa,ab,ac);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:$s=5;continue;case 4:$r=BO(k,l,m,n,p,q,r,s,o);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:$s=1;continue;case 2:if(l.abs.$length>0){$s=11;continue;}$s=12;continue;case 11:if(k.abs.$length>1){$s=13;continue;}$s=14;continue;case 13:$r=BO(k,l,m,n,p,q,r,s,o);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:if(l.abs.$length>0){$s=16;continue;}$s=17;continue;case 16:ad=(ae=k.abs,(0>=ae.$length?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+0]));af=(ag=l.abs,(0>=ag.$length?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+0]));ah=ad;ai=af;if(o){$s=18;continue;}$s=19;continue;case 18:aj=0;ak=0;al=0;am=0;an=aj;ao=ak;ap=al;aq=am;ar=1;as=0;an=ar;ao=as;at=0;au=1;ap=at;aq=au;av=true;while(true){if(!(!((ai===0)))){break;}aw=(ax=ah/ai,(ax===ax&&ax!==1/0&&ax!==-1/0)?ax>>>0:$throwRuntimeError("integer divide by zero"));ay=(az=ah%ai,az===az?az:$throwRuntimeError("integer divide by zero"));ba=aw;bb=ay;bc=ai;bd=bb;ah=bc;ai=bd;be=ao;bf=an+($imul(ba,ao)>>>0)>>>0;an=be;ao=bf;bg=aq;bh=ap+($imul(ba,aq)>>>0)>>>0;ap=bg;aq=bh;av=!av;}s.abs=s.abs.setWord(an);r.abs=r.abs.setWord(ap);s.neg=!av;r.neg=av;bi=s.Mul(m,s);$s=21;case 21:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bi;bj=r.Mul(n,r);$s=22;case 22:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bj;bk=m.Add(s,r);$s=23;case 23:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}bk;$s=20;continue;case 19:while(true){if(!(!((ai===0)))){break;}bl=ai;bm=(bn=ah%ai,bn===bn?bn:$throwRuntimeError("integer divide by zero"));ah=bl;ai=bm;}case 20:(bo=k.abs,(0>=bo.$length?($throwRuntimeError("index out of range"),undefined):bo.$array[bo.$offset+0]=ah));case 17:case 12:bp=d.neg;if(!(c===DX.nil)){$s=24;continue;}$s=25;continue;case 24:if(c===e){l.Set(e);}else{l=e;}bq=c.Mul(d,m);$s=26;case 26:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}bq;if(bp){c.neg=!c.neg;}br=c.Sub(k,c);$s=27;case 27:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}br;bs=c.Div(c,l);$s=28;case 28:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}bs;case 25:if(!(b===DX.nil)){BH.copy(b,m);if(bp){b.neg=!b.neg;}}BH.copy(f,k);$s=-1;return f;}return;}var $f={$blk:BH.ptr.prototype.lehmerGCD,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BH.prototype.lehmerGCD=function(b,c,d,e){return this.$val.lehmerGCD(b,c,d,e);};BH.ptr.prototype.Rand=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;d.neg=false;if(c.neg||(c.abs.$length===0)){d.abs=AH.nil;$s=-1;return d;}e=d.abs.random(b,c.abs,c.abs.bitLen());$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d.abs=e;$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.Rand,$c:true,$r,b,c,d,e,$s};return $f;};BH.prototype.Rand=function(b,c){return this.$val.Rand(b,c);};BH.ptr.prototype.ModInverse=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=this;if(c.neg){f=new BH.ptr(false,AH.nil);c=f.Neg(c);}if(b.neg){$s=1;continue;}$s=2;continue;case 1:g=new BH.ptr(false,AH.nil);h=g.Mod(b,c);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}b=h;case 2:i=new BH.ptr(false,AH.nil);j=new BH.ptr(false,AH.nil);k=$clone(i,BH);d[0]=$clone(j,BH);l=k.GCD(d[0],DX.nil,b,c);$s=4;case 4:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;if(!((k.Cmp(BI)===0))){$s=-1;return DX.nil;}if(d[0].neg){$s=5;continue;}$s=6;continue;case 5:m=e.Add(d[0],c);$s=8;case 8:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;$s=7;continue;case 6:e.Set(d[0]);case 7:$s=-1;return e;}return;}var $f={$blk:BH.ptr.prototype.ModInverse,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BH.prototype.ModInverse=function(b,c){return this.$val.ModInverse(b,c);};BP=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=[e];f=[f];if((c.abs.$length===0)||((((g=c.abs,(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]))&1)>>>0)===0)){$s=1;continue;}$s=2;continue;case 1:h=F.Sprintf("big: invalid 2nd argument to Int.Jacobi: need odd integer but got %s",new DT([c]));$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$panic(new $String(h));case 2:i=new BH.ptr(false,AH.nil);j=new BH.ptr(false,AH.nil);k=new BH.ptr(false,AH.nil);d[0]=$clone(i,BH);e[0]=$clone(j,BH);f[0]=$clone(k,BH);d[0].Set(b);e[0].Set(c);l=1;if(e[0].neg){if(d[0].neg){l=-1;}e[0].neg=false;}case 4:if(e[0].Cmp(BI)===0){$s=-1;return l;}if(d[0].abs.$length===0){$s=-1;return 0;}m=d[0].Mod(d[0],e[0]);$s=6;case 6:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;if(d[0].abs.$length===0){$s=-1;return 0;}n=d[0].abs.trailingZeroBits();if(!((((n&1)>>>0)===0))){p=((o=e[0].abs,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0]))&7)>>>0;if((p===3)||(p===5)){l=-l;}}q=f[0].Rsh(d[0],n);$s=7;case 7:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;if(((((r=e[0].abs,(0>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+0]))&3)>>>0)===3)&&((((s=f[0].abs,(0>=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+0]))&3)>>>0)===3)){l=-l;}d[0].Set(e[0]);e[0].Set(f[0]);$s=4;continue;case 5:$s=-1;return 0;}return;}var $f={$blk:BP,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};$pkg.Jacobi=BP;BH.ptr.prototype.modSqrt3Mod4Prime=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=new BH.ptr(false,AH.nil).Add(c,BI);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=f.Rsh(f,2);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;h=d.Exp(b,f,c);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.modSqrt3Mod4Prime,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};BH.prototype.modSqrt3Mod4Prime=function(b,c){return this.$val.modSqrt3Mod4Prime(b,c);};BH.ptr.prototype.modSqrt5Mod8Prime=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=new BH.ptr(false,AH.nil).Rsh(c,3);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=new BH.ptr(false,AH.nil).Lsh(b,1);h=new BH.ptr(false,AH.nil).Exp(g,f,c);$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=new BH.ptr(false,AH.nil).Mul(i,i);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=k.Mod(k,c);$s=4;case 4:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;m=k.Mul(k,g);$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;n=k.Mod(k,c);$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;o=k.Sub(k,BI);$s=7;case 7:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;p=k.Mul(k,b);$s=8;case 8:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;q=k.Mod(k,c);$s=9;case 9:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;r=k.Mul(k,i);$s=10;case 10:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;s=d.Mod(k,c);$s=11;case 11:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.modSqrt5Mod8Prime,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};BH.prototype.modSqrt5Mod8Prime=function(b,c){return this.$val.modSqrt5Mod8Prime(b,c);};BH.ptr.prototype.modSqrtTonelliShanks=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=[e];f=[f];g=[g];h=[h];i=[i];j=this;g[0]=new BH.ptr(false,AH.nil);k=g[0].Sub(c,BI);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;l=g[0].abs.trailingZeroBits();m=g[0].Rsh(g[0],l);$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;f[0]=new BH.ptr(false,AH.nil);f[0].SetInt64(new $Int64(0,2));case 3:n=BP(f[0],c);$s=5;case 5:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}if(!(!((n===-1)))){$s=4;continue;}o=f[0].Add(f[0],BI);$s=6;case 6:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;$s=3;continue;case 4:p=new BH.ptr(false,AH.nil);q=new BH.ptr(false,AH.nil);r=new BH.ptr(false,AH.nil);s=new BH.ptr(false,AH.nil);i[0]=$clone(p,BH);d[0]=$clone(q,BH);e[0]=$clone(r,BH);h[0]=$clone(s,BH);t=i[0].Add(g[0],BI);$s=7;case 7:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t;u=i[0].Rsh(i[0],1);$s=8;case 8:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}u;v=i[0].Exp(b,i[0],c);$s=9;case 9:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}v;w=d[0].Exp(b,g[0],c);$s=10;case 10:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}w;x=e[0].Exp(f[0],g[0],c);$s=11;case 11:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}x;y=l;case 12:z=0;h[0].Set(d[0]);case 14:if(!(!((h[0].Cmp(BI)===0)))){$s=15;continue;}aa=h[0].Mul(h[0],h[0]);$s=16;case 16:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa.Mod(h[0],c);$s=17;case 17:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ab;z=z+(1)>>>0;$s=14;continue;case 15:if(z===0){$s=-1;return j.Set(i[0]);}ac=h[0].SetInt64(new $Int64(0,0)).SetBit(h[0],((((y-z>>>0)-1>>>0)>>0)),1);$s=18;case 18:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac.Exp(e[0],h[0],c);$s=19;case 19:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ad;ae=e[0].Mul(h[0],h[0]);$s=20;case 20:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae.Mod(e[0],c);$s=21;case 21:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}af;ag=i[0].Mul(i[0],h[0]);$s=22;case 22:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag.Mod(i[0],c);$s=23;case 23:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ah;ai=d[0].Mul(d[0],e[0]);$s=24;case 24:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai.Mod(d[0],c);$s=25;case 25:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}aj;y=z;$s=12;continue;case 13:$s=-1;return DX.nil;}return;}var $f={$blk:BH.ptr.prototype.modSqrtTonelliShanks,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BH.prototype.modSqrtTonelliShanks=function(b,c){return this.$val.modSqrtTonelliShanks(b,c);};BH.ptr.prototype.ModSqrt=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=BP(b,c);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(f===(-1)){$s=-1;return DX.nil;}else if(f===(0)){$s=-1;return d.SetInt64(new $Int64(0,0));}else if(f===(1)){$s=1;continue;}case 1:if(b.neg||b.Cmp(c)>=0){$s=3;continue;}$s=4;continue;case 3:g=new BH.ptr(false,AH.nil).Mod(b,c);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}b=g;case 4:if(((h=(i=c.abs,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]))%4,h===h?h:$throwRuntimeError("integer divide by zero"))===3)){$s=7;continue;}if(((j=(k=c.abs,(0>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0]))%8,j===j?j:$throwRuntimeError("integer divide by zero"))===5)){$s=8;continue;}$s=9;continue;case 7:l=d.modSqrt3Mod4Prime(b,c);$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=12;case 12:return m;case 8:n=d.modSqrt5Mod8Prime(b,c);$s=13;case 13:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;$s=14;case 14:return o;case 9:p=d.modSqrtTonelliShanks(b,c);$s=15;case 15:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=16;case 16:return q;case 10:case 6:$s=-1;return DX.nil;}return;}var $f={$blk:BH.ptr.prototype.ModSqrt,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};BH.prototype.ModSqrt=function(b,c){return this.$val.ModSqrt(b,c);};BH.ptr.prototype.Lsh=function(b,c){var b,c,d;d=this;d.abs=d.abs.shl(b.abs,c);d.neg=b.neg;return d;};BH.prototype.Lsh=function(b,c){return this.$val.Lsh(b,c);};BH.ptr.prototype.Rsh=function(b,c){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(b.neg){$s=1;continue;}$s=2;continue;case 1:e=d.abs.sub(b.abs,AI);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;f=f.shr(f,c);g=f.add(f,AI);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}d.abs=g;d.neg=true;$s=-1;return d;case 2:d.abs=d.abs.shr(b.abs,c);d.neg=false;$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.Rsh,$c:true,$r,b,c,d,e,f,g,$s};return $f;};BH.prototype.Rsh=function(b,c){return this.$val.Rsh(b,c);};BH.ptr.prototype.Bit=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b===0){if(c.abs.$length>0){$s=-1;return(((((d=c.abs,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]))&1)>>>0)>>>0));}$s=-1;return 0;}if(b<0){$panic(new $String("negative bit index"));}if(c.neg){$s=1;continue;}$s=2;continue;case 1:e=(AH.nil).sub(c.abs,AI);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=-1;return(f.bit(((b>>>0)))^1)>>>0;case 2:$s=-1;return c.abs.bit(((b>>>0)));}return;}var $f={$blk:BH.ptr.prototype.Bit,$c:true,$r,b,c,d,e,f,$s};return $f;};BH.prototype.Bit=function(b){return this.$val.Bit(b);};BH.ptr.prototype.SetBit=function(b,c,d){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if(c<0){$panic(new $String("negative bit index"));}if(b.neg){$s=1;continue;}$s=2;continue;case 1:f=e.abs.sub(b.abs,AI);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;g=g.setBit(g,((c>>>0)),(d^1)>>>0);h=g.add(g,AI);$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}e.abs=h;e.neg=e.abs.$length>0;$s=-1;return e;case 2:e.abs=e.abs.setBit(b.abs,((c>>>0)),d);e.neg=false;$s=-1;return e;}return;}var $f={$blk:BH.ptr.prototype.SetBit,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};BH.prototype.SetBit=function(b,c,d){return this.$val.SetBit(b,c,d);};BH.ptr.prototype.And=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(b.neg===c.neg){$s=1;continue;}$s=2;continue;case 1:if(b.neg){$s=3;continue;}$s=4;continue;case 3:e=(AH.nil).sub(b.abs,AI);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=(AH.nil).sub(c.abs,AI);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=d.abs.add(d.abs.or(f,h),AI);$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}d.abs=i;d.neg=true;$s=-1;return d;case 4:d.abs=d.abs.and(b.abs,c.abs);d.neg=false;$s=-1;return d;case 2:if(b.neg){j=c;k=b;b=j;c=k;}l=(AH.nil).sub(c.abs,AI);$s=8;case 8:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;d.abs=d.abs.andNot(b.abs,m);d.neg=false;$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.And,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BH.prototype.And=function(b,c){return this.$val.And(b,c);};BH.ptr.prototype.AndNot=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(b.neg===c.neg){$s=1;continue;}$s=2;continue;case 1:if(b.neg){$s=3;continue;}$s=4;continue;case 3:e=(AH.nil).sub(b.abs,AI);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=(AH.nil).sub(c.abs,AI);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;d.abs=d.abs.andNot(h,f);d.neg=false;$s=-1;return d;case 4:d.abs=d.abs.andNot(b.abs,c.abs);d.neg=false;$s=-1;return d;case 2:if(b.neg){$s=7;continue;}$s=8;continue;case 7:i=(AH.nil).sub(b.abs,AI);$s=9;case 9:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=d.abs.add(d.abs.or(j,c.abs),AI);$s=10;case 10:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}d.abs=k;d.neg=true;$s=-1;return d;case 8:l=(AH.nil).sub(c.abs,AI);$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;d.abs=d.abs.and(b.abs,m);d.neg=false;$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.AndNot,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BH.prototype.AndNot=function(b,c){return this.$val.AndNot(b,c);};BH.ptr.prototype.Or=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(b.neg===c.neg){$s=1;continue;}$s=2;continue;case 1:if(b.neg){$s=3;continue;}$s=4;continue;case 3:e=(AH.nil).sub(b.abs,AI);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=(AH.nil).sub(c.abs,AI);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=d.abs.add(d.abs.and(f,h),AI);$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}d.abs=i;d.neg=true;$s=-1;return d;case 4:d.abs=d.abs.or(b.abs,c.abs);d.neg=false;$s=-1;return d;case 2:if(b.neg){j=c;k=b;b=j;c=k;}l=(AH.nil).sub(c.abs,AI);$s=8;case 8:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=d.abs.add(d.abs.andNot(m,b.abs),AI);$s=9;case 9:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}d.abs=n;d.neg=true;$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.Or,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};BH.prototype.Or=function(b,c){return this.$val.Or(b,c);};BH.ptr.prototype.Xor=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(b.neg===c.neg){$s=1;continue;}$s=2;continue;case 1:if(b.neg){$s=3;continue;}$s=4;continue;case 3:e=(AH.nil).sub(b.abs,AI);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=(AH.nil).sub(c.abs,AI);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;d.abs=d.abs.xor(f,h);d.neg=false;$s=-1;return d;case 4:d.abs=d.abs.xor(b.abs,c.abs);d.neg=false;$s=-1;return d;case 2:if(b.neg){i=c;j=b;b=i;c=j;}k=(AH.nil).sub(c.abs,AI);$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;m=d.abs.add(d.abs.xor(b.abs,l),AI);$s=8;case 8:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}d.abs=m;d.neg=true;$s=-1;return d;}return;}var $f={$blk:BH.ptr.prototype.Xor,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BH.prototype.Xor=function(b,c){return this.$val.Xor(b,c);};BH.ptr.prototype.Not=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b.neg){$s=1;continue;}$s=2;continue;case 1:d=c.abs.sub(b.abs,AI);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c.abs=d;c.neg=false;$s=-1;return c;case 2:e=c.abs.add(b.abs,AI);$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}c.abs=e;c.neg=true;$s=-1;return c;}return;}var $f={$blk:BH.ptr.prototype.Not,$c:true,$r,b,c,d,e,$s};return $f;};BH.prototype.Not=function(b){return this.$val.Not(b);};BH.ptr.prototype.Sqrt=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b.neg){$panic(new $String("square root of negative number"));}c.neg=false;d=c.abs.sqrt(b.abs);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c.abs=d;$s=-1;return c;}return;}var $f={$blk:BH.ptr.prototype.Sqrt,$c:true,$r,b,c,d,$s};return $f;};BH.prototype.Sqrt=function(b){return this.$val.Sqrt(b);};BY.ptr.prototype.Text=function(b,c){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=10;if(c>0){e=e+(c)>>0;}f=d.Append($makeSlice(DW,0,e),b,c);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=($bytesToString(f));$s=2;case 2:return g;}return;}var $f={$blk:BY.ptr.prototype.Text,$c:true,$r,b,c,d,e,f,g,$s};return $f;};BY.prototype.Text=function(b,c){return this.$val.Text(b,c);};BY.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.Text(103,10);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:BY.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};BY.prototype.String=function(){return this.$val.String();};BY.ptr.prototype.Append=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=[e];f=this;if(f.neg){b=$append(b,45);}if(f.form===2){if(!f.neg){b=$append(b,43);}$s=-1;return $appendSlice(b,"Inf");}g=c;if(g===(98)){$s=2;continue;}if(g===(112)){$s=3;continue;}if(g===(120)){$s=4;continue;}$s=5;continue;case 2:h=f.fmtB(b);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=7;case 7:return i;case 3:j=f.fmtP(b);$s=8;case 8:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=9;case 9:return k;case 4:l=f.fmtX(b,d);$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=11;case 11:return m;case 5:case 1:e[0]=new CK.ptr(DW.nil,0);if(f.form===1){$s=12;continue;}$s=13;continue;case 12:$r=e[0].init(f.mant,((f.exp>>0))-f.mant.bitLen()>>0);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:n=false;if(d<0){$s=15;continue;}$s=16;continue;case 15:n=true;$r=BR(e[0],f);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}o=c;if((o===(101))||(o===(69))){d=e[0].mant.$length-1>>0;}else if(o===(102)){d=AT(e[0].mant.$length-e[0].exp>>0,0);}else if((o===(103))||(o===(71))){d=e[0].mant.$length;}$s=17;continue;case 16:p=c;if((p===(101))||(p===(69))){e[0].round(1+d>>0);}else if(p===(102)){e[0].round(e[0].exp+d>>0);}else if((p===(103))||(p===(71))){if(d===0){d=1;}e[0].round(d);}case 17:q=c;if((q===(101))||(q===(69))){$s=-1;return BS(b,c,d,$clone(e[0],CK));}else if(q===(102)){$s=-1;return BT(b,d,$clone(e[0],CK));}else if((q===(103))||(q===(71))){r=d;if(r>e[0].mant.$length&&e[0].mant.$length>=e[0].exp){r=e[0].mant.$length;}if(n){r=6;}s=e[0].exp-1>>0;if(s<-4||s>=r){if(d>e[0].mant.$length){d=e[0].mant.$length;}$s=-1;return BS(b,(c+101<<24>>>24)-103<<24>>>24,d-1>>0,$clone(e[0],CK));}if(d>e[0].exp){d=e[0].mant.$length;}$s=-1;return BT(b,AT(d-e[0].exp>>0,0),$clone(e[0],CK));}if(f.neg){b=$subslice(b,0,(b.$length-1>>0));}$s=-1;return $append(b,37,c);}return;}var $f={$blk:BY.ptr.prototype.Append,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};BY.prototype.Append=function(b,c,d){return this.$val.Append(b,c,d);};BR=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:if(b.mant.$length===0){$s=-1;return;}d=(AH.nil).set(c.mant);e=((c.exp>>0))-d.bitLen()>>0;f=d.bitLen()-(((c.prec+1>>>0)>>0))>>0;if(f<0){d=d.shl(d,((-f>>>0)));}else if(f>0){d=d.shr(d,((f>>>0)));}e=e+(f)>>0;g=new CK.ptr(DW.nil,0);h=AH.nil;i=h.sub(d,AI);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$r=g.init(i,e);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=new CK.ptr(DW.nil,0);k=h.add(d,AI);$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}$r=j.init(k,e);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=(((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])&2)>>>0)===0;m=b.mant;n=0;while(true){if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);q=g.at(o);r=j.at(o);s=!((q===p))||l&&((o+1>>0)===g.mant.$length);t=!((p===r))&&(l||(p+1<<24>>>24)>0)>0);$s=-1;return;}else if(s){b.roundDown(o+1>>0);$s=-1;return;}else if(t){b.roundUp(o+1>>0);$s=-1;return;}n++;}$s=-1;return;}return;}var $f={$blk:BR,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};BS=function(b,c,d,e){var b,c,d,e,f,g,h,i,j,k;f=48;if(e.mant.$length>0){f=(g=e.mant,(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]));}b=$append(b,f);if(d>0){b=$append(b,46);h=1;i=BU(e.mant.$length,d+1>>0);if(h>0;}}b=$append(b,c);j=new $Int64(0,0);if(e.mant.$length>0){j=(k=(new $Int64(0,e.exp)),new $Int64(k.$high-0,k.$low-1));}if((j.$high<0||(j.$high===0&&j.$low<0))){f=45;j=new $Int64(-j.$high,-j.$low);}else{f=43;}b=$append(b,f);if((j.$high<0||(j.$high===0&&j.$low<10))){b=$append(b,48);}return C.AppendInt(b,j,10);};BT=function(b,c,d){var b,c,d,e,f;if(d.exp>0){e=BU(d.mant.$length,d.exp);b=$appendSlice(b,$subslice(d.mant,0,e));while(true){if(!(e>0;}}else{b=$append(b,48);}if(c>0){b=$append(b,46);f=0;while(true){if(!(f>0));f=f+(1)>>0;}}return b;};BY.ptr.prototype.fmtB=function(b){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(c.form===0){$s=-1;return $append(b,48);}if(false&&!((c.form===1))){$panic(new $String("non-finite float"));}d=c.mant;e=$imul(((c.mant.$length>>>0)),32)>>>0;if(e>>0)>>>0)));}else if(e>c.prec){d=(AH.nil).shr(d,(((e-c.prec>>>0)>>>0)));}f=b;g=d.utoa(10);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;b=$appendSlice(f,h);b=$append(b,112);k=(i=(new $Int64(0,c.exp)),j=(new $Int64(0,c.prec)),new $Int64(i.$high-j.$high,i.$low-j.$low));if((k.$high>0||(k.$high===0&&k.$low>=0))){b=$append(b,43);}$s=-1;return C.AppendInt(b,k,10);}return;}var $f={$blk:BY.ptr.prototype.fmtB,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};BY.prototype.fmtB=function(b){return this.$val.fmtB(b);};BY.ptr.prototype.fmtX=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(d.form===0){b=$appendSlice(b,"0x0");if(c>0){b=$append(b,46);e=0;while(true){if(!(e>0;}}b=$appendSlice(b,"p+00");$s=-1;return b;}if(false&&!((d.form===1))){$panic(new $String("non-finite float"));}f=0;if(c<0){f=1+((g=(((d.MinPrec()-1>>>0)+3>>>0))/4,(g===g&&g!==1/0&&g!==-1/0)?g>>>0:$throwRuntimeError("integer divide by zero"))*4>>>0)>>>0;}else{f=1+(4*((c>>>0))>>>0)>>>0;}h=new BY.ptr(0,0,0,0,false,AH.nil,0).SetPrec(f);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h.SetMode(d.mode);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i.Set(d);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}d=j;k=d.mant;l=((d.mant.$length>>>0))*32>>>0;if(l>>0);}else if(l>f){k=(AH.nil).shr(k,l-f>>>0);}n=(m=(new $Int64(0,d.exp)),new $Int64(m.$high-0,m.$low-1));o=k.utoa(16);$s=4;case 4:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;if(false&&!(((0>=p.$length?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+0])===49))){$panic(new $String("incorrect mantissa: "+($bytesToString(p))));}b=$appendSlice(b,"0x1");if(p.$length>1){b=$append(b,46);b=$appendSlice(b,$subslice(p,1));}b=$append(b,112);if((n.$high>0||(n.$high===0&&n.$low>=0))){b=$append(b,43);}else{n=new $Int64(-n.$high,-n.$low);b=$append(b,45);}if((n.$high<0||(n.$high===0&&n.$low<10))){b=$append(b,48);}$s=-1;return C.AppendInt(b,n,10);}return;}var $f={$blk:BY.ptr.prototype.fmtX,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};BY.prototype.fmtX=function(b,c){return this.$val.fmtX(b,c);};BY.ptr.prototype.fmtP=function(b){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(c.form===0){$s=-1;return $append(b,48);}if(false&&!((c.form===1))){$panic(new $String("non-finite float"));}d=c.mant;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e])===0))){break;}e=e+(1)>>0;}d=$subslice(d,e);b=$appendSlice(b,"0x.");f=b;g=d.utoa(16);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=K.TrimRight(g,"0");$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;b=$appendSlice(f,i);b=$append(b,112);if(c.exp>=0){b=$append(b,43);}$s=-1;return C.AppendInt(b,(new $Int64(0,c.exp)),10);}return;}var $f={$blk:BY.ptr.prototype.fmtP,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};BY.prototype.fmtP=function(b){return this.$val.fmtP(b);};BU=function(b,c){var b,c;if(b>>24)),g);$s=11;case 11:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;if(o.$length===0){o=(new DW($stringToBytes("?")));}q="";if(((0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0])===45)){$s=13;continue;}if(((0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0])===43)){$s=14;continue;}r=b.Flag(43);$s=18;case 18:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}if(r){$s=15;continue;}s=b.Flag(32);$s=19;case 19:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}if(s){$s=16;continue;}$s=17;continue;case 13:q="-";o=$subslice(o,1);$s=17;continue;case 14:q="+";t=b.Flag(32);$s=22;case 22:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}if(t){$s=20;continue;}$s=21;continue;case 20:q=" ";case 21:o=$subslice(o,1);$s=17;continue;case 15:q="+";$s=17;continue;case 16:q=" ";case 17:case 12:u=0;w=b.Width();$s=23;case 23:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}v=w;x=v[0];y=v[1];if(y&&x>(q.length+o.$length>>0)){u=(x-q.length>>0)-o.$length>>0;}z=b.Flag(48);$s=29;case 29:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}if(z&&!d.IsInf()){$s=25;continue;}aa=b.Flag(45);$s=30;case 30:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}if(aa){$s=26;continue;}$s=27;continue;case 25:$r=BE(b,q,1);$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=BE(b,"0",u);$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ab=b.Write(o);$s=33;case 33:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ab;$s=28;continue;case 26:$r=BE(b,q,1);$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ac=b.Write(o);$s=35;case 35:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ac;$r=BE(b," ",u);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=28;continue;case 27:$r=BE(b," ",u);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=BE(b,q,1);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ad=b.Write(o);$s=39;case 39:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ad;case 28:case 24:$s=-1;return;}return;}var $f={$blk:BY.ptr.prototype.Format,$c:true,$r,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BY.prototype.Format=function(b,c){return this.$val.Format(b,c);};BY.ptr.prototype.GobEncode=function(){var b,c,d,e,f,g;b=this;if(b===DO.nil){return[DW.nil,$ifaceNil];}c=6;d=0;if(b.form===1){d=(((e=((b.prec+31>>>0))/32,(e===e&&e!==1/0&&e!==-1/0)?e>>>0:$throwRuntimeError("integer divide by zero"))>>0));if(b.mant.$length>0))>>0;}f=$makeSlice(DW,c);(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]=1);g=((((((((b.mode&7)>>>0)<<24>>>24))<<5<<24>>>24)|((((((b.acc+1<<24>>24))&3)<<24>>>24))<<3<<24>>>24))>>>0)|(((((b.form&3)>>>0)<<24>>>24))<<1<<24>>>24))>>>0;if(b.neg){g=(g|(1))>>>0;}(1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1]=g);$clone(D.BigEndian,D.bigEndian).PutUint32($subslice(f,2),b.prec);if(b.form===1){$clone(D.BigEndian,D.bigEndian).PutUint32($subslice(f,6),((b.exp>>>0)));$subslice(b.mant,(b.mant.$length-d>>0)).bytes($subslice(f,10));}return[f,$ifaceNil];};BY.prototype.GobEncode=function(){return this.$val.GobEncode();};BY.ptr.prototype.GobDecode=function(b){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b.$length===0){BY.copy(c,new BY.ptr(0,0,0,0,false,AH.nil,0));$s=-1;return $ifaceNil;}if(b.$length<6){$s=-1;return E.New("Float.GobDecode: buffer too small");}if(!(((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])===1))){$s=1;continue;}$s=2;continue;case 1:d=F.Errorf("Float.GobDecode: encoding version %d not supported",new DT([new $Uint8((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]))]));$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=4;case 4:return e;case 2:f=c.prec;g=c.mode;h=(1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1]);c.mode=((((((h>>>5<<24>>>24))&7)>>>0)<<24>>>24));c.acc=((((((h>>>3<<24>>>24))&3)>>>0)<<24>>24))-1<<24>>24;c.form=((((((h>>>1<<24>>>24))&3)>>>0)<<24>>>24));c.neg=!((((h&1)>>>0)===0));c.prec=$clone(D.BigEndian,D.bigEndian).Uint32($subslice(b,2));if(c.form===1){if(b.$length<10){$s=-1;return E.New("Float.GobDecode: buffer too small for finite form float");}c.exp=(($clone(D.BigEndian,D.bigEndian).Uint32($subslice(b,6))>>0));c.mant=c.mant.setBytes($subslice(b,10));}if(!((f===0))){$s=5;continue;}$s=6;continue;case 5:c.mode=g;i=c.SetPrec(((f>>>0)));$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;case 6:$s=-1;return $ifaceNil;}return;}var $f={$blk:BY.ptr.prototype.GobDecode,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};BY.prototype.GobDecode=function(b){return this.$val.GobDecode(b);};BY.ptr.prototype.MarshalText=function(){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=DW.nil;c=$ifaceNil;d=this;if(d===DO.nil){e=(new DW($stringToBytes("")));f=$ifaceNil;b=e;c=f;$s=-1;return[b,c];}g=DW.nil;i=d.Append(g,103,-1);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=$ifaceNil;b=h;c=j;k=[b,c];$s=2;case 2:return k;}return;}var $f={$blk:BY.ptr.prototype.MarshalText,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};BY.prototype.MarshalText=function(){return this.$val.MarshalText();};BY.ptr.prototype.UnmarshalText=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=c.Parse(($bytesToString(b)),0);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[2];if(!($interfaceIsEqual(f,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:g=F.Errorf("math/big: cannot unmarshal %q into a *big.Float (%v)",new DT([b,f]));$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;case 3:$s=-1;return f;}return;}var $f={$blk:BY.ptr.prototype.UnmarshalText,$c:true,$r,b,c,d,e,f,g,$s};return $f;};BY.prototype.UnmarshalText=function(b){return this.$val.UnmarshalText(b);};BY.ptr.prototype.SetString=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=c.Parse(b,0);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[2];if($interfaceIsEqual(g,$ifaceNil)){$s=-1;return[f,true];}$s=-1;return[DO.nil,false];}return;}var $f={$blk:BY.ptr.prototype.SetString,$c:true,$r,b,c,d,e,f,g,$s};return $f;};BY.prototype.SetString=function(b){return this.$val.SetString(b);};BY.ptr.prototype.scan=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=DO.nil;e=0;f=$ifaceNil;g=this;h=g.prec;if(h===0){h=64;}g.form=0;j=BF(b);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;g.neg=i[0];f=i[1];if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[d,e,f];}k=0;m=g.mant.scan(b,c,true);$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;g.mant=l[0];e=l[1];k=l[2];f=l[3];if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[d,e,f];}n=new $Int64(0,0);o=0;q=R(b,true,c===0);$s=3;case 3:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;n=p[0];o=p[1];f=p[2];if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[d,e,f];}if(g.mant.$length===0){g.prec=h;g.acc=0;g.form=0;d=g;$s=-1;return[d,e,f];}t=(r=$mul64((new $Int64(0,g.mant.$length)),new $Int64(0,32)),s=CF(g.mant),new $Int64(r.$high-s.$high,r.$low-s.$low));u=new $Int64(0,0);if(k<0){v=(new $Int64(0,k));w=e;if(w===(10)){u=v;t=(x=v,new $Int64(t.$high+x.$high,t.$low+x.$low));}else if(w===(2)){t=(y=v,new $Int64(t.$high+y.$high,t.$low+y.$low));}else if(w===(8)){t=(z=$mul64(v,new $Int64(0,3)),new $Int64(t.$high+z.$high,t.$low+z.$low));}else if(w===(16)){t=(aa=$mul64(v,new $Int64(0,4)),new $Int64(t.$high+aa.$high,t.$low+aa.$low));}else{$panic(new $String("unexpected mantissa base"));}}ab=o;if(ab===(10)){u=(ac=n,new $Int64(u.$high+ac.$high,u.$low+ac.$low));t=(ad=n,new $Int64(t.$high+ad.$high,t.$low+ad.$low));}else if(ab===(2)){t=(ae=n,new $Int64(t.$high+ae.$high,t.$low+ae.$low));}else{$panic(new $String("unexpected exponent base"));}if((-1>31)*4294967296))>>0));d=g;$s=6;continue;case 5:af=F.Errorf("exponent overflow",new DT([]));$s=7;case 7:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}f=af;$s=-1;return[d,e,f];case 6:if((u.$high===0&&u.$low===0)){$s=8;continue;}$s=9;continue;case 8:$r=g.round(0);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return[d,e,f];case 9:ag=new BY.ptr(0,0,0,0,false,AH.nil,0).SetPrec(g.Prec()+64>>>0);$s=11;case 11:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag;if((u.$high<0||(u.$high===0&&u.$low<0))){$s=12;continue;}$s=13;continue;case 12:ai=g;ak=ah.pow5(((aj=new $Int64(-u.$high,-u.$low),new $Uint64(aj.$high,aj.$low))));$s=15;case 15:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak;am=g.Quo(ai,al);$s=16;case 16:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}am;$s=14;continue;case 13:an=g;ao=ah.pow5((new $Uint64(u.$high,u.$low)));$s=17;case 17:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=ao;aq=g.Mul(an,ap);$s=18;case 18:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}aq;case 14:$s=-1;return[d,e,f];}return;}var $f={$blk:BY.ptr.prototype.scan,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BY.prototype.scan=function(b,c){return this.$val.scan(b,c);};BY.ptr.prototype.pow5=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if((b.$high<0||(b.$high===0&&b.$low<=27))){$s=1;continue;}$s=2;continue;case 1:d=c.SetUint64((($flatten64(b)<0||$flatten64(b)>=BW.length)?($throwRuntimeError("index out of range"),undefined):BW[$flatten64(b)]));$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=4;case 4:return e;case 2:f=c.SetUint64(BW[27]);$s=5;case 5:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;b=(g=new $Uint64(0,27),new $Uint64(b.$high-g.$high,b.$low-g.$low));h=new BY.ptr(0,0,0,0,false,AH.nil,0).SetPrec(c.Prec()+64>>>0);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h.SetUint64(new $Uint64(0,5));$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;case 8:if(!((b.$high>0||(b.$high===0&&b.$low>0)))){$s=9;continue;}if(!((k=new $Uint64(b.$high&0,(b.$low&1)>>>0),(k.$high===0&&k.$low===0)))){$s=10;continue;}$s=11;continue;case 10:l=c.Mul(c,j);$s=12;case 12:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;case 11:m=j.Mul(j,j);$s=13;case 13:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;b=$shiftRightUint64(b,(1));$s=8;continue;case 9:$s=-1;return c;}return;}var $f={$blk:BY.ptr.prototype.pow5,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BY.prototype.pow5=function(b){return this.$val.pow5(b);};BY.ptr.prototype.Parse=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=DO.nil;e=0;f=$ifaceNil;g=this;if((b.length===3)&&(b==="Inf"||b==="inf")){d=g.SetInf(false);$s=-1;return[d,e,f];}if((b.length===4)&&((b.charCodeAt(0)===43)||(b.charCodeAt(0)===45))&&($substring(b,1)==="Inf"||$substring(b,1)==="inf")){d=g.SetInf(b.charCodeAt(0)===45);$s=-1;return[d,e,f];}h=H.NewReader(b);j=g.scan(h,c);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;d=i[0];e=i[1];f=i[2];if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[d,e,f];}k=h.ReadByte();l=k[0];m=k[1];if($interfaceIsEqual(m,$ifaceNil)){$s=2;continue;}if(!($interfaceIsEqual(m,G.EOF))){$s=3;continue;}$s=4;continue;case 2:n=F.Errorf("expected end of string, found %q",new DT([new $Uint8(l)]));$s=5;case 5:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}f=n;$s=4;continue;case 3:f=m;case 4:$s=-1;return[d,e,f];}return;}var $f={$blk:BY.ptr.prototype.Parse,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};BY.prototype.Parse=function(b,c){return this.$val.Parse(b,c);};BY.ptr.prototype.Scan=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;$r=b.SkipSpace();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=d.scan((f=new BG.ptr(b),new f.constructor.elem(f)),0);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}e=g;h=e[2];$s=-1;return h;}return;}var $f={$blk:BY.ptr.prototype.Scan,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};BY.prototype.Scan=function(b,c){return this.$val.Scan(b,c);};BZ.ptr.prototype.Error=function(){var b;b=this;return b.msg;};BZ.prototype.Error=function(){return this.$val.Error();};CA=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:if(A.IsNaN(b)){$panic((c=new BZ.ptr("NewFloat(NaN)"),new c.constructor.elem(c)));}d=new BY.ptr(0,0,0,0,false,AH.nil,0).SetFloat64(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:CA,$c:true,$r,b,c,d,e,$s};return $f;};$pkg.NewFloat=CA;BY.ptr.prototype.SetPrec=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;c.acc=0;if(b===0){c.prec=0;if(c.form===1){c.acc=CE(c.neg);c.form=0;}$s=-1;return c;}if(b>4294967295){b=4294967295;}d=c.prec;c.prec=((b>>>0));if(c.prec>>0));};BY.prototype.Prec=function(){return this.$val.Prec();};BY.ptr.prototype.MinPrec=function(){var b;b=this;if(!((b.form===1))){return 0;}return(((b.mant.$length>>>0))*32>>>0)-b.mant.trailingZeroBits()>>>0;};BY.prototype.MinPrec=function(){return this.$val.MinPrec();};BY.ptr.prototype.Mode=function(){var b;b=this;return b.mode;};BY.prototype.Mode=function(){return this.$val.Mode();};BY.ptr.prototype.Acc=function(){var b;b=this;return b.acc;};BY.prototype.Acc=function(){return this.$val.Acc();};BY.ptr.prototype.Sign=function(){var{b,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=b.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(b.form===0){$s=-1;return 0;}if(b.neg){$s=-1;return-1;}$s=-1;return 1;}return;}var $f={$blk:BY.ptr.prototype.Sign,$c:true,$r,b,$s};return $f;};BY.prototype.Sign=function(){return this.$val.Sign();};BY.ptr.prototype.MantExp=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=0;d=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=d.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(d.form===1){c=((d.exp>>0));}if(!(b===DO.nil)){$s=4;continue;}$s=5;continue;case 4:e=b.Copy(d);$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;if(b.form===1){b.exp=0;}case 5:$s=-1;return c;}return;}var $f={$blk:BY.ptr.prototype.MantExp,$c:true,$r,b,c,d,e,$s};return $f;};BY.prototype.MantExp=function(b){return this.$val.MantExp(b);};BY.ptr.prototype.setExpAndRound=function(b,c){var{b,c,d,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if((b.$high<-1||(b.$high===-1&&b.$low<2147483648))){d.acc=CE(d.neg);d.form=0;$s=-1;return;}if((b.$high>0||(b.$high===0&&b.$low>2147483647))){d.acc=CE(!d.neg);d.form=2;$s=-1;return;}d.form=1;d.exp=(((b.$low+((b.$high>>31)*4294967296))>>0));$r=d.round(c);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BY.ptr.prototype.setExpAndRound,$c:true,$r,b,c,d,$s};return $f;};BY.prototype.setExpAndRound=function(b,c){return this.$val.setExpAndRound(b,c);};BY.ptr.prototype.SetMantExp=function(b,c){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=d.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.validate();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:e=d.Copy(b);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;if(d.form===1){$s=6;continue;}$s=7;continue;case 6:$r=d.setExpAndRound((f=(new $Int64(0,d.exp)),g=(new $Int64(0,c)),new $Int64(f.$high+g.$high,f.$low+g.$low)),0);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:$s=-1;return d;}return;}var $f={$blk:BY.ptr.prototype.SetMantExp,$c:true,$r,b,c,d,e,f,g,$s};return $f;};BY.prototype.SetMantExp=function(b,c){return this.$val.SetMantExp(b,c);};BY.ptr.prototype.Signbit=function(){var b;b=this;return b.neg;};BY.prototype.Signbit=function(){return this.$val.Signbit();};BY.ptr.prototype.IsInf=function(){var b;b=this;return b.form===2;};BY.prototype.IsInf=function(){return this.$val.IsInf();};BY.ptr.prototype.IsInt=function(){var{b,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=b.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(!((b.form===1))){$s=-1;return b.form===0;}if(b.exp<=0){$s=-1;return false;}$s=-1;return b.prec<=((b.exp>>>0))||b.MinPrec()<=((b.exp>>>0));}return;}var $f={$blk:BY.ptr.prototype.IsInt,$c:true,$r,b,$s};return $f;};BY.prototype.IsInt=function(){return this.$val.IsInt();};BY.ptr.prototype.validate=function(){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(true){$panic(new $String("validate called but debugFloat is not set"));}if(!((b.form===1))){$s=-1;return;}c=b.mant.$length;if(c===0){$panic(new $String("nonzero finite number with empty mantissa"));}if((((d=b.mant,e=c-1>>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]))&2147483648)>>>0)===0){$s=1;continue;}$s=2;continue;case 1:h=new BQ((f=b.mant,g=c-1>>0,((g<0||g>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g])));i=b.Text(112,0);$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=new $String(i);k=F.Sprintf("msb not set in last word %#x of %s",new DT([h,j]));$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}$panic(new $String(k));case 2:if(b.prec===0){$panic(new $String("zero precision finite number"));}$s=-1;return;}return;}var $f={$blk:BY.ptr.prototype.validate,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};BY.prototype.validate=function(){return this.$val.validate();};BY.ptr.prototype.round=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=c.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:c.acc=0;if(!((c.form===1))){$s=-1;return;}d=((c.mant.$length>>>0));e=$imul(d,32)>>>0;if(e<=c.prec){$s=-1;return;}f=((((e-c.prec>>>0)-1>>>0)>>>0));g=(c.mant.bit(f)&1)>>>0;if((b===0)&&((g===0)||(c.mode===0))){b=c.mant.sticky(f);}b=(b&(1))>>>0;i=(h=((c.prec+31>>>0))/32,(h===h&&h!==1/0&&h!==-1/0)?h>>>0:$throwRuntimeError("integer divide by zero"));if(d>i){$copySlice(c.mant,$subslice(c.mant,(d-i>>>0)));c.mant=$subslice(c.mant,0,i);}j=($imul(i,32)>>>0)-c.prec>>>0;l=(k=j,k<32?(1<>>0;if(!((((g|b)>>>0)===0))){$s=4;continue;}$s=5;continue;case 4:m=false;n=c.mode;if(n===(4)){m=c.neg;}else if(n===(2)){}else if(n===(0)){m=!((g===0))&&(!((b===0))||!(((((o=c.mant,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0]))&l)>>>0)===0)));}else if(n===(1)){m=!((g===0));}else if(n===(3)){m=true;}else if(n===(5)){m=!c.neg;}else{$panic(new $String("unreachable"));}c.acc=CE(!(m===c.neg));if(m){$s=6;continue;}$s=7;continue;case 6:p=CS($convertSliceType(c.mant,DY),$convertSliceType(c.mant,DY),l);$s=10;case 10:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}if(!((p===0))){$s=8;continue;}$s=9;continue;case 8:if(c.exp>=2147483647){c.form=2;$s=-1;return;}c.exp=c.exp+(1)>>0;CV($convertSliceType(c.mant,DY),$convertSliceType(c.mant,DY),1);q=i-1>>>0;(s=c.mant,((q<0||q>=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+q]=(((r=c.mant,((q<0||q>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+q]))|(2147483648))>>>0)));case 9:case 7:case 5:(u=c.mant,(0>=u.$length?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+0]=(((t=c.mant,(0>=t.$length?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+0]))&~((l-1>>>0)))>>>0)));if(false){$s=11;continue;}$s=12;continue;case 11:$r=c.validate();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:$s=-1;return;}return;}var $f={$blk:BY.ptr.prototype.round,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};BY.prototype.round=function(b){return this.$val.round(b);};BY.ptr.prototype.setBits64=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(d.prec===0){d.prec=64;}d.acc=0;d.neg=b;if((c.$high===0&&c.$low===0)){d.form=0;$s=-1;return d;}d.form=1;e=J.LeadingZeros64(c);d.mant=d.mant.setUint64($shiftLeft64(c,((e>>>0))));d.exp=(((64-e>>0)>>0));if(d.prec<64){$s=1;continue;}$s=2;continue;case 1:$r=d.round(0);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return d;}return;}var $f={$blk:BY.ptr.prototype.setBits64,$c:true,$r,b,c,d,e,$s};return $f;};BY.prototype.setBits64=function(b,c){return this.$val.setBits64(b,c);};BY.ptr.prototype.SetUint64=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.setBits64(false,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:BY.ptr.prototype.SetUint64,$c:true,$r,b,c,d,e,$s};return $f;};BY.prototype.SetUint64=function(b){return this.$val.SetUint64(b);};BY.ptr.prototype.SetInt64=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b;if((d.$high<0||(d.$high===0&&d.$low<0))){d=new $Int64(-d.$high,-d.$low);}e=c.setBits64((b.$high<0||(b.$high===0&&b.$low<0)),(new $Uint64(d.$high,d.$low)));$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:BY.ptr.prototype.SetInt64,$c:true,$r,b,c,d,e,f,$s};return $f;};BY.prototype.SetInt64=function(b){return this.$val.SetInt64(b);};BY.ptr.prototype.SetFloat64=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(c.prec===0){c.prec=53;}if(A.IsNaN(b)){$panic((d=new BZ.ptr("Float.SetFloat64(NaN)"),new d.constructor.elem(d)));}c.acc=0;c.neg=A.Signbit(b);if(b===0){c.form=0;$s=-1;return c;}if(A.IsInf(b,0)){c.form=2;$s=-1;return c;}c.form=1;e=A.Frexp(b);f=e[0];g=e[1];c.mant=c.mant.setUint64((h=$shiftLeft64(A.Float64bits(f),11),new $Uint64(2147483648|h.$high,(0|h.$low)>>>0)));c.exp=((g>>0));if(c.prec<53){$s=1;continue;}$s=2;continue;case 1:$r=c.round(0);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return c;}return;}var $f={$blk:BY.ptr.prototype.SetFloat64,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};BY.prototype.SetFloat64=function(b){return this.$val.SetFloat64(b);};CF=function(b){var b,c,d,e,f;if(false&&((b.$length===0)||((c=b.$length-1>>0,((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]))===0))){$panic(new $String("msw of mantissa is 0"));}e=DA((d=b.$length-1>>0,((d<0||d>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+d])));if(e>0){f=CU($convertSliceType(b,DY),$convertSliceType(b,DY),e);if(false&&!((f===0))){$panic(new $String("nlz or shlVU incorrect"));}}return(new $Int64(0,e));};BY.ptr.prototype.SetInt=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=((b.BitLen()>>>0));if(c.prec===0){c.prec=CJ(d,64);}c.acc=0;c.neg=b.neg;if(b.abs.$length===0){c.form=0;$s=-1;return c;}c.mant=c.mant.set(b.abs);CF(c.mant);$r=c.setExpAndRound((new $Int64(0,d)),0);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c;}return;}var $f={$blk:BY.ptr.prototype.SetInt,$c:true,$r,b,c,d,$s};return $f;};BY.prototype.SetInt=function(b){return this.$val.SetInt(b);};BY.ptr.prototype.SetRat=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=[d];e=this;if(b.IsInt()){$s=1;continue;}$s=2;continue;case 1:f=e.SetInt(b.Num());$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=4;case 4:return g;case 2:h=new BY.ptr(0,0,0,0,false,AH.nil,0);i=new BY.ptr(0,0,0,0,false,AH.nil,0);c[0]=$clone(h,BY);d[0]=$clone(i,BY);j=c[0].SetInt(b.Num());$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;k=d[0].SetInt(b.Denom());$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;if(e.prec===0){e.prec=CJ(c[0].prec,d[0].prec);}l=e.Quo(c[0],d[0]);$s=7;case 7:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=8;case 8:return m;}return;}var $f={$blk:BY.ptr.prototype.SetRat,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BY.prototype.SetRat=function(b){return this.$val.SetRat(b);};BY.ptr.prototype.SetInf=function(b){var b,c;c=this;c.acc=0;c.form=2;c.neg=b;return c;};BY.prototype.SetInf=function(b){return this.$val.SetInf(b);};BY.ptr.prototype.Set=function(b){var{b,c,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=b.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:c.acc=0;if(!(c===b)){$s=4;continue;}$s=5;continue;case 4:c.form=b.form;c.neg=b.neg;if(b.form===1){c.exp=b.exp;c.mant=c.mant.set(b.mant);}if(c.prec===0){$s=6;continue;}if(c.prec>0;if(c<0){return 0;}if(false&&(((((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])&2147483648)>>>0)===0)){$panic(new $String("x not normalized"));}d=32;if(d===(32)){return((((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])>>>0));}else if(d===(64)){return((0>>>0));}$panic(new $String("unreachable"));};CH=function(b){var b,c,d,e,f,g,h,i,j;c=b.$length-1>>0;if(c<0){return new $Uint64(0,0);}if(false&&(((((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])&2147483648)>>>0)===0)){$panic(new $String("x not normalized"));}d=32;if(d===(32)){f=$shiftLeft64(((e=((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]),new $Uint64(0,e.constructor===Number?e:1))),32);if(c>0){f=(g=((h=(i=c-1>>0,((i<0||i>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+i])),new $Uint64(0,h.constructor===Number?h:1))),new $Uint64(f.$high|g.$high,(f.$low|g.$low)>>>0));}return f;}else if(d===(64)){return((j=((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]),new $Uint64(0,j.constructor===Number?j:1)));}$panic(new $String("unreachable"));};BY.ptr.prototype.Uint64=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=b.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:c=b.form;if(c===(1)){if(b.neg){$s=-1;return[new $Uint64(0,0),1];}if(b.exp<=0){$s=-1;return[new $Uint64(0,0),-1];}if(b.exp<=64){d=$shiftRightUint64(CH(b.mant),((64-((b.exp>>>0))>>>0)));if(b.MinPrec()<=64){$s=-1;return[d,0];}$s=-1;return[d,-1];}$s=-1;return[new $Uint64(4294967295,4294967295),-1];}else if(c===(0)){$s=-1;return[new $Uint64(0,0),0];}else if(c===(2)){if(b.neg){$s=-1;return[new $Uint64(0,0),1];}$s=-1;return[new $Uint64(4294967295,4294967295),-1];}$panic(new $String("unreachable"));$s=-1;return[new $Uint64(0,0),0];}return;}var $f={$blk:BY.ptr.prototype.Uint64,$c:true,$r,b,c,d,$s};return $f;};BY.prototype.Uint64=function(){return this.$val.Uint64();};BY.ptr.prototype.Int64=function(){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=b.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:c=b.form;if(c===(1)){d=CE(b.neg);if(b.exp<=0){$s=-1;return[new $Int64(0,0),d];}if(b.exp<=63){f=((e=$shiftRightUint64(CH(b.mant),((64-((b.exp>>>0))>>>0))),new $Int64(e.$high,e.$low)));if(b.neg){f=new $Int64(-f.$high,-f.$low);}if(b.MinPrec()<=((b.exp>>>0))){$s=-1;return[f,0];}$s=-1;return[f,d];}if(b.neg){if((b.exp===64)&&(b.MinPrec()===1)){d=0;}$s=-1;return[new $Int64(-2147483648,0),d];}$s=-1;return[new $Int64(2147483647,4294967295),-1];}else if(c===(0)){$s=-1;return[new $Int64(0,0),0];}else if(c===(2)){if(b.neg){$s=-1;return[new $Int64(-2147483648,0),1];}$s=-1;return[new $Int64(2147483647,4294967295),-1];}$panic(new $String("unreachable"));$s=-1;return[new $Int64(0,0),0];}return;}var $f={$blk:BY.ptr.prototype.Int64,$c:true,$r,b,c,d,e,f,$s};return $f;};BY.prototype.Int64=function(){return this.$val.Int64();};BY.ptr.prototype.Float32=function(){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=b.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:c=b.form;if(c===(1)){$s=5;continue;}if(c===(0)){$s=6;continue;}if(c===(2)){$s=7;continue;}$s=8;continue;case 5:d=b.exp-1>>0;e=24;if(d<-126){e=150+((d>>0))>>0;if(e<0||(e===0)&&(b.mant.sticky((((b.mant.$length>>>0))*32>>>0)-1>>>0)===0)){if(b.neg){f=0;$s=-1;return[-f,1];}$s=-1;return[0,-1];}if(e===0){if(b.neg){$s=-1;return[-1.401298464324817e-45,-1];}$s=-1;return[1.401298464324817e-45,1];}}g=new BY.ptr(0,0,0,0,false,AH.nil,0);g.prec=((e>>>0));h=g.Set(b);$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;d=g.exp-1>>0;if((g.form===2)||d>127){if(b.neg){$s=-1;return[($fround(A.Inf(-1))),-1];}$s=-1;return[($fround(A.Inf(1))),1];}i=0;j=0;k=0;l=i;m=j;n=k;if(b.neg){l=2147483648;}if(d<-126){e=150+((d>>0))>>0;n=(o=(((32-e>>0)>>>0)),o<32?(CG(g.mant)>>>o):0)>>>0;}else{m=(((d+127>>0)>>>0))<<23>>>0;n=((CG(g.mant)>>>8>>>0)&8388607)>>>0;}$s=-1;return[A.Float32frombits((((l|m)>>>0)|n)>>>0),g.acc];case 6:if(b.neg){p=0;$s=-1;return[-p,0];}$s=-1;return[0,0];case 7:if(b.neg){$s=-1;return[($fround(A.Inf(-1))),0];}$s=-1;return[($fround(A.Inf(1))),0];case 8:case 4:$panic(new $String("unreachable"));$s=-1;return[0,0];}return;}var $f={$blk:BY.ptr.prototype.Float32,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};BY.prototype.Float32=function(){return this.$val.Float32();};BY.ptr.prototype.Float64=function(){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=b.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:c=b.form;if(c===(1)){$s=5;continue;}if(c===(0)){$s=6;continue;}if(c===(2)){$s=7;continue;}$s=8;continue;case 5:d=b.exp-1>>0;e=53;if(d<-1022){e=1075+((d>>0))>>0;if(e<0||(e===0)&&(b.mant.sticky((((b.mant.$length>>>0))*32>>>0)-1>>>0)===0)){if(b.neg){f=0;$s=-1;return[-f,1];}$s=-1;return[0,-1];}if(e===0){if(b.neg){$s=-1;return[-5e-324,-1];}$s=-1;return[5e-324,1];}}g=new BY.ptr(0,0,0,0,false,AH.nil,0);g.prec=((e>>>0));h=g.Set(b);$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;d=g.exp-1>>0;if((g.form===2)||d>1023){if(b.neg){$s=-1;return[A.Inf(-1),-1];}$s=-1;return[A.Inf(1),1];}i=new $Uint64(0,0);j=new $Uint64(0,0);k=new $Uint64(0,0);l=i;m=j;n=k;if(b.neg){l=new $Uint64(2147483648,0);}if(d<-1022){e=1075+((d>>0))>>0;n=$shiftRightUint64(CH(g.mant),(((64-e>>0)>>>0)));}else{m=$shiftLeft64((new $Uint64(0,(d+1023>>0))),52);n=(o=$shiftRightUint64(CH(g.mant),11),new $Uint64(o.$high&1048575,(o.$low&4294967295)>>>0));}$s=-1;return[A.Float64frombits((p=new $Uint64(l.$high|m.$high,(l.$low|m.$low)>>>0),new $Uint64(p.$high|n.$high,(p.$low|n.$low)>>>0))),g.acc];case 6:if(b.neg){q=0;$s=-1;return[-q,0];}$s=-1;return[0,0];case 7:if(b.neg){$s=-1;return[A.Inf(-1),0];}$s=-1;return[A.Inf(1),0];case 8:case 4:$panic(new $String("unreachable"));$s=-1;return[0,0];}return;}var $f={$blk:BY.ptr.prototype.Float64,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};BY.prototype.Float64=function(){return this.$val.Float64();};BY.ptr.prototype.Int=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=c.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(b===DX.nil&&c.form<=1){b=new BH.ptr(false,AH.nil);}d=c.form;if(d===(1)){e=CE(c.neg);if(c.exp<=0){$s=-1;return[b.SetInt64(new $Int64(0,0)),e];}f=((c.mant.$length>>>0))*32>>>0;g=((c.exp>>>0));if(c.MinPrec()<=g){e=0;}if(b===DX.nil){b=new BH.ptr(false,AH.nil);}b.neg=c.neg;if(g>f){b.abs=b.abs.shl(c.mant,g-f>>>0);}else if(g>>0);}else{b.abs=b.abs.set(c.mant);}$s=-1;return[b,e];}else if(d===(0)){$s=-1;return[b.SetInt64(new $Int64(0,0)),0];}else if(d===(2)){$s=-1;return[DX.nil,CE(c.neg)];}$panic(new $String("unreachable"));$s=-1;return[DX.nil,0];}return;}var $f={$blk:BY.ptr.prototype.Int,$c:true,$r,b,c,d,e,f,g,$s};return $f;};BY.prototype.Int=function(b){return this.$val.Int(b);};BY.ptr.prototype.Rat=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=c.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(b===DV.nil&&c.form<=1){b=new S.ptr(new BH.ptr(false,AH.nil),new BH.ptr(false,AH.nil));}d=c.form;if(d===(1)){$s=5;continue;}if(d===(0)){$s=6;continue;}if(d===(2)){$s=7;continue;}$s=8;continue;case 5:e=$imul(((c.mant.$length>>0)),32);b.a.neg=c.neg;if(c.exp>e){$s=10;continue;}if(c.exp>0)>>>0)));b.b.abs=$subslice(b.b.abs,0,0);$s=13;continue;case 11:b.a.abs=b.a.abs.set(c.mant);f=b.b.abs.setUint64(new $Uint64(0,1));b.b.abs=f.shl(f,(((e-c.exp>>0)>>>0)));g=b.norm();$s=14;case 14:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;$s=13;continue;case 12:b.a.abs=b.a.abs.set(c.mant);b.b.abs=$subslice(b.b.abs,0,0);case 13:case 9:$s=-1;return[b,0];case 6:$s=-1;return[b.SetInt64(new $Int64(0,0)),0];case 7:$s=-1;return[DV.nil,CE(c.neg)];case 8:case 4:$panic(new $String("unreachable"));$s=-1;return[DV.nil,0];}return;}var $f={$blk:BY.ptr.prototype.Rat,$c:true,$r,b,c,d,e,f,g,$s};return $f;};BY.prototype.Rat=function(b){return this.$val.Rat(b);};BY.ptr.prototype.Abs=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.Set(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;c.neg=false;$s=-1;return c;}return;}var $f={$blk:BY.ptr.prototype.Abs,$c:true,$r,b,c,d,$s};return $f;};BY.prototype.Abs=function(b){return this.$val.Abs(b);};BY.ptr.prototype.Neg=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.Set(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;c.neg=!c.neg;$s=-1;return c;}return;}var $f={$blk:BY.ptr.prototype.Neg,$c:true,$r,b,c,d,$s};return $f;};BY.prototype.Neg=function(b){return this.$val.Neg(b);};CI=function(b,c){var b,c;if(true){$panic(new $String("validateBinaryOperands called but debugFloat is not set"));}if(b.mant.$length===0){$panic(new $String("empty mantissa for x"));}if(c.mant.$length===0){$panic(new $String("empty mantissa for y"));}};BY.ptr.prototype.uadd=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(false){CI(b,c);}g=(e=(new $Int64(0,b.exp)),f=$mul64((new $Int64(0,b.mant.$length)),new $Int64(0,32)),new $Int64(e.$high-f.$high,e.$low-f.$low));j=(h=(new $Int64(0,c.exp)),i=$mul64((new $Int64(0,c.mant.$length)),new $Int64(0,32)),new $Int64(h.$high-i.$high,h.$low-i.$low));k=AR(d.mant,b.mant)||AR(d.mant,c.mant);if((g.$highj.$high||(g.$high===j.$high&&g.$low>j.$low))){$s=3;continue;}$s=4;continue;case 2:if(k){$s=6;continue;}$s=7;continue;case 6:l=(AH.nil).shl(c.mant,((new $Int64(j.$high-g.$high,j.$low-g.$low).$low>>>0)));m=d.mant.add(b.mant,l);$s=9;case 9:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}d.mant=m;$s=8;continue;case 7:d.mant=d.mant.shl(c.mant,((new $Int64(j.$high-g.$high,j.$low-g.$low).$low>>>0)));n=d.mant.add(b.mant,d.mant);$s=10;case 10:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}d.mant=n;case 8:$s=5;continue;case 3:if(k){$s=11;continue;}$s=12;continue;case 11:o=(AH.nil).shl(b.mant,((new $Int64(g.$high-j.$high,g.$low-j.$low).$low>>>0)));p=d.mant.add(o,c.mant);$s=14;case 14:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}d.mant=p;$s=13;continue;case 12:d.mant=d.mant.shl(b.mant,((new $Int64(g.$high-j.$high,g.$low-j.$low).$low>>>0)));q=d.mant.add(d.mant,c.mant);$s=15;case 15:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}d.mant=q;case 13:g=j;$s=5;continue;case 4:r=d.mant.add(b.mant,c.mant);$s=16;case 16:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}d.mant=r;case 5:case 1:$r=d.setExpAndRound((s=(t=$mul64((new $Int64(0,d.mant.$length)),new $Int64(0,32)),new $Int64(g.$high+t.$high,g.$low+t.$low)),u=CF(d.mant),new $Int64(s.$high-u.$high,s.$low-u.$low)),0);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BY.ptr.prototype.uadd,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};BY.prototype.uadd=function(b,c){return this.$val.uadd(b,c);};BY.ptr.prototype.usub=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(false){CI(b,c);}g=(e=(new $Int64(0,b.exp)),f=$mul64((new $Int64(0,b.mant.$length)),new $Int64(0,32)),new $Int64(e.$high-f.$high,e.$low-f.$low));j=(h=(new $Int64(0,c.exp)),i=$mul64((new $Int64(0,c.mant.$length)),new $Int64(0,32)),new $Int64(h.$high-i.$high,h.$low-i.$low));k=AR(d.mant,b.mant)||AR(d.mant,c.mant);if((g.$highj.$high||(g.$high===j.$high&&g.$low>j.$low))){$s=3;continue;}$s=4;continue;case 2:if(k){$s=6;continue;}$s=7;continue;case 6:l=(AH.nil).shl(c.mant,((new $Int64(j.$high-g.$high,j.$low-g.$low).$low>>>0)));m=l.sub(b.mant,l);$s=9;case 9:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}d.mant=m;$s=8;continue;case 7:d.mant=d.mant.shl(c.mant,((new $Int64(j.$high-g.$high,j.$low-g.$low).$low>>>0)));n=d.mant.sub(b.mant,d.mant);$s=10;case 10:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}d.mant=n;case 8:$s=5;continue;case 3:if(k){$s=11;continue;}$s=12;continue;case 11:o=(AH.nil).shl(b.mant,((new $Int64(g.$high-j.$high,g.$low-j.$low).$low>>>0)));p=o.sub(o,c.mant);$s=14;case 14:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}d.mant=p;$s=13;continue;case 12:d.mant=d.mant.shl(b.mant,((new $Int64(g.$high-j.$high,g.$low-j.$low).$low>>>0)));q=d.mant.sub(d.mant,c.mant);$s=15;case 15:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}d.mant=q;case 13:g=j;$s=5;continue;case 4:r=d.mant.sub(b.mant,c.mant);$s=16;case 16:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}d.mant=r;case 5:case 1:if(d.mant.$length===0){d.acc=0;d.form=0;d.neg=false;$s=-1;return;}$r=d.setExpAndRound((s=(t=$mul64((new $Int64(0,d.mant.$length)),new $Int64(0,32)),new $Int64(g.$high+t.$high,g.$low+t.$low)),u=CF(d.mant),new $Int64(s.$high-u.$high,s.$low-u.$low)),0);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BY.ptr.prototype.usub,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};BY.prototype.usub=function(b,c){return this.$val.usub(b,c);};BY.ptr.prototype.umul=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(false){CI(b,c);}g=(e=(new $Int64(0,b.exp)),f=(new $Int64(0,c.exp)),new $Int64(e.$high+f.$high,e.$low+f.$low));if(b===c){$s=1;continue;}$s=2;continue;case 1:h=d.mant.sqr(b.mant);$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}d.mant=h;$s=3;continue;case 2:i=d.mant.mul(b.mant,c.mant);$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}d.mant=i;case 3:$r=d.setExpAndRound((j=CF(d.mant),new $Int64(g.$high-j.$high,g.$low-j.$low)),0);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BY.ptr.prototype.umul,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};BY.prototype.umul=function(b,c){return this.$val.umul(b,c);};BY.ptr.prototype.uquo=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(false){CI(b,c);}f=(((e=d.prec/32,(e===e&&e!==1/0&&e!==-1/0)?e>>>0:$throwRuntimeError("integer divide by zero"))>>0))+1>>0;g=b.mant;h=(f-b.mant.$length>>0)+c.mant.$length>>0;if(h>0){g=$makeSlice(AH,(b.mant.$length+h>>0));$copySlice($subslice(g,h),b.mant);}i=g.$length-c.mant.$length>>0;j=AH.nil;l=d.mant.div(AH.nil,g,c.mant);$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;d.mant=k[0];j=k[1];q=(m=(n=(new $Int64(0,b.exp)),o=(new $Int64(0,c.exp)),new $Int64(n.$high-o.$high,n.$low-o.$low)),p=$mul64((new $Int64(0,(i-d.mant.$length>>0))),new $Int64(0,32)),new $Int64(m.$high-p.$high,m.$low-p.$low));r=0;if(j.$length>0){r=1;}$r=d.setExpAndRound((s=CF(d.mant),new $Int64(q.$high-s.$high,q.$low-s.$low)),r);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BY.ptr.prototype.uquo,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};BY.prototype.uquo=function(b,c){return this.$val.uquo(b,c);};BY.ptr.prototype.ucmp=function(b){var b,c,d,e,f,g,h,i,j,k;c=this;if(false){CI(c,b);}if(c.expb.exp){return 1;}d=c.mant.$length;e=b.mant.$length;while(true){if(!(d>0||e>0)){break;}f=0;g=0;h=f;i=g;if(d>0){d=d-(1)>>0;h=(j=c.mant,((d<0||d>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+d]));}if(e>0){e=e-(1)>>0;i=(k=b.mant,((e<0||e>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+e]));}if(hi){return 1;}}return 0;};BY.prototype.ucmp=function(b){return this.$val.ucmp(b);};BY.ptr.prototype.Add=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=b.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.validate();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(d.prec===0){d.prec=CJ(b.prec,c.prec);}if((b.form===1)&&(c.form===1)){$s=5;continue;}$s=6;continue;case 5:e=c.neg;d.neg=b.neg;if(b.neg===e){$s=7;continue;}$s=8;continue;case 7:$r=d.uadd(b,c);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=9;continue;case 8:if(b.ucmp(c)>0){$s=11;continue;}$s=12;continue;case 11:$r=d.usub(b,c);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=13;continue;case 12:d.neg=!d.neg;$r=d.usub(c,b);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:case 9:if((d.form===0)&&(d.mode===4)&&(d.acc===0)){d.neg=true;}$s=-1;return d;case 6:if((b.form===2)&&(c.form===2)&&!(b.neg===c.neg)){d.acc=0;d.form=0;d.neg=false;$panic((f=new BZ.ptr("addition of infinities with opposite signs"),new f.constructor.elem(f)));}if((b.form===0)&&(c.form===0)){d.acc=0;d.form=0;d.neg=b.neg&&c.neg;$s=-1;return d;}if((b.form===2)||(c.form===0)){$s=16;continue;}$s=17;continue;case 16:g=d.Set(b);$s=18;case 18:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=19;case 19:return h;case 17:i=d.Set(c);$s=20;case 20:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=21;case 21:return j;}return;}var $f={$blk:BY.ptr.prototype.Add,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};BY.prototype.Add=function(b,c){return this.$val.Add(b,c);};BY.ptr.prototype.Sub=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=b.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.validate();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(d.prec===0){d.prec=CJ(b.prec,c.prec);}if((b.form===1)&&(c.form===1)){$s=5;continue;}$s=6;continue;case 5:e=c.neg;d.neg=b.neg;if(!(b.neg===e)){$s=7;continue;}$s=8;continue;case 7:$r=d.uadd(b,c);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=9;continue;case 8:if(b.ucmp(c)>0){$s=11;continue;}$s=12;continue;case 11:$r=d.usub(b,c);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=13;continue;case 12:d.neg=!d.neg;$r=d.usub(c,b);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:case 9:if((d.form===0)&&(d.mode===4)&&(d.acc===0)){d.neg=true;}$s=-1;return d;case 6:if((b.form===2)&&(c.form===2)&&b.neg===c.neg){d.acc=0;d.form=0;d.neg=false;$panic((f=new BZ.ptr("subtraction of infinities with equal signs"),new f.constructor.elem(f)));}if((b.form===0)&&(c.form===0)){d.acc=0;d.form=0;d.neg=b.neg&&!c.neg;$s=-1;return d;}if((b.form===2)||(c.form===0)){$s=16;continue;}$s=17;continue;case 16:g=d.Set(b);$s=18;case 18:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=19;case 19:return h;case 17:i=d.Neg(c);$s=20;case 20:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=21;case 21:return j;}return;}var $f={$blk:BY.ptr.prototype.Sub,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};BY.prototype.Sub=function(b,c){return this.$val.Sub(b,c);};BY.ptr.prototype.Mul=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=b.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.validate();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(d.prec===0){d.prec=CJ(b.prec,c.prec);}d.neg=!(b.neg===c.neg);if((b.form===1)&&(c.form===1)){$s=5;continue;}$s=6;continue;case 5:$r=d.umul(b,c);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return d;case 6:d.acc=0;if((b.form===0)&&(c.form===2)||(b.form===2)&&(c.form===0)){d.form=0;d.neg=false;$panic((e=new BZ.ptr("multiplication of zero with infinity"),new e.constructor.elem(e)));}if((b.form===2)||(c.form===2)){d.form=2;$s=-1;return d;}d.form=0;$s=-1;return d;}return;}var $f={$blk:BY.ptr.prototype.Mul,$c:true,$r,b,c,d,e,$s};return $f;};BY.prototype.Mul=function(b,c){return this.$val.Mul(b,c);};BY.ptr.prototype.Quo=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=b.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.validate();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(d.prec===0){d.prec=CJ(b.prec,c.prec);}d.neg=!(b.neg===c.neg);if((b.form===1)&&(c.form===1)){$s=5;continue;}$s=6;continue;case 5:$r=d.uquo(b,c);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return d;case 6:d.acc=0;if((b.form===0)&&(c.form===0)||(b.form===2)&&(c.form===2)){d.form=0;d.neg=false;$panic((e=new BZ.ptr("division of zero by zero or infinity by infinity"),new e.constructor.elem(e)));}if((b.form===0)||(c.form===2)){d.form=0;$s=-1;return d;}d.form=2;$s=-1;return d;}return;}var $f={$blk:BY.ptr.prototype.Quo,$c:true,$r,b,c,d,e,$s};return $f;};BY.prototype.Quo=function(b,c){return this.$val.Quo(b,c);};BY.ptr.prototype.Cmp=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=c.validate();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.validate();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:d=c.ord();e=b.ord();if(de){$s=-1;return 1;}f=d;if(f===(-1)){$s=-1;return b.ucmp(c);}else if(f===(1)){$s=-1;return c.ucmp(b);}$s=-1;return 0;}return;}var $f={$blk:BY.ptr.prototype.Cmp,$c:true,$r,b,c,d,e,f,$s};return $f;};BY.prototype.Cmp=function(b){return this.$val.Cmp(b);};BY.ptr.prototype.ord=function(){var b,c,d;b=this;c=0;d=b.form;if(d===(1)){c=1;}else if(d===(0)){return 0;}else if(d===(2)){c=2;}if(b.neg){c=-c;}return c;};BY.prototype.ord=function(){return this.$val.ord();};CJ=function(b,c){var b,c;if(b>c){return b;}return c;};CK.ptr.prototype.at=function(b){var b,c,d;c=this;if(0<=b&&b=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));}return 48;};CK.prototype.at=function(b){return this.$val.at(b);};CK.ptr.prototype.init=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(b.$length===0){d.mant=$subslice(d.mant,0,0);d.exp=0;$s=-1;return;}if(c<0){e=b.trailingZeroBits();f=((-c>>>0));if(f>=e){f=e;}b=(AH.nil).shr(b,f);c=c+(((f>>0)))>>0;}if(c>0){b=(AH.nil).shl(b,((c>>>0)));c=0;}g=b.utoa(10);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=h.$length;d.exp=i;while(true){if(!(i>0&&((j=i-1>>0,((j<0||j>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+j]))===48))){break;}i=i-(1)>>0;}d.mant=$appendSlice($subslice(d.mant,0,0),$subslice(h,0,i));if(c<0){while(true){if(!(c<-28)){break;}CL(d,28);c=c+(28)>>0;}CL(d,((-c>>>0)));}$s=-1;return;}return;}var $f={$blk:CK.ptr.prototype.init,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};CK.prototype.init=function(b,c){return this.$val.init(b,c);};CL=function(b,c){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;d=0;e=0;while(true){if(!((((f=c,f<32?(e>>>f):0)>>>0)===0)&&d=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+d]))>>>0));d=d+(1)>>0;e=(($imul(e,10)>>>0)+h>>>0)-48>>>0;}if(e===0){b.mant=$subslice(b.mant,0,0);return;}while(true){if(!(((i=c,i<32?(e>>>i):0)>>>0)===0)){break;}d=d+(1)>>0;e=$imul(e,(10))>>>0;}b.exp=b.exp+((1-d>>0))>>0;j=0;l=((k=c,k<32?(1<>>0)-1>>>0;while(true){if(!(d=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+d]))>>>0));d=d+(1)>>0;p=(o=c,o<32?(e>>>o):0)>>>0;e=(e&(l))>>>0;(q=b.mant,((j<0||j>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+j]=(((p+48>>>0)<<24>>>24))));j=j+(1)>>0;e=(($imul(e,10)>>>0)+n>>>0)-48>>>0;}while(true){if(!(e>0&&j>>r):0)>>>0;e=(e&(l))>>>0;(t=b.mant,((j<0||j>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+j]=(((s+48>>>0)<<24>>>24))));j=j+(1)>>0;e=$imul(e,10)>>>0;}b.mant=$subslice(b.mant,0,j);while(true){if(!(e>0)){break;}v=(u=c,u<32?(e>>>u):0)>>>0;e=(e&(l))>>>0;b.mant=$append(b.mant,(((v+48>>>0)<<24>>>24)));e=$imul(e,10)>>>0;}CO(b);};CK.ptr.prototype.String=function(){var b,c;b=this;if(b.mant.$length===0){return"0";}c=DW.nil;if(b.exp<=0){c=$makeSlice(DW,0,((2+(-b.exp)>>0)+b.mant.$length>>0));c=$appendSlice(c,"0.");c=CM(c,-b.exp);c=$appendSlice(c,b.mant);}else if(b.exp>0));c=$appendSlice(c,$subslice(b.mant,0,b.exp));c=$append(c,46);c=$appendSlice(c,$subslice(b.mant,b.exp));}else{c=$makeSlice(DW,0,b.exp);c=$appendSlice(c,b.mant);c=CM(c,b.exp-b.mant.$length>>0);}return($bytesToString(c));};CK.prototype.String=function(){return this.$val.String();};CM=function(b,c){var b,c;while(true){if(!(c>0)){break;}b=$append(b,48);c=c-(1)>>0;}return b;};CN=function(b,c){var b,c,d,e,f,g;if(((d=b.mant,((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]))===53)&&((c+1>>0)===b.mant.$length)){return c>0&&!(((((((e=b.mant,f=c-1>>0,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]))-48<<24>>>24))&1)>>>0)===0));}return(g=b.mant,((c<0||c>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+c]))>=53;};CK.ptr.prototype.round=function(b){var b,c;c=this;if(b<0||b>=c.mant.$length){return;}if(CN(c,b)){c.roundUp(b);}else{c.roundDown(b);}};CK.prototype.round=function(b){return this.$val.round(b);};CK.ptr.prototype.roundUp=function(b){var b,c,d,e,f,g,h,i;c=this;if(b<0||b>=c.mant.$length){return;}while(true){if(!(b>0&&(d=c.mant,e=b-1>>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]))>=57)){break;}b=b-(1)>>0;}if(b===0){(f=c.mant,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]=49));c.mant=$subslice(c.mant,0,1);c.exp=c.exp+(1)>>0;return;}g=b-1>>0;(i=c.mant,((g<0||g>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+g]=((h=c.mant,((g<0||g>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+g]))+(1)<<24>>>24)));c.mant=$subslice(c.mant,0,b);};CK.prototype.roundUp=function(b){return this.$val.roundUp(b);};CK.ptr.prototype.roundDown=function(b){var b,c;c=this;if(b<0||b>=c.mant.$length){return;}c.mant=$subslice(c.mant,0,b);CO(c);};CK.prototype.roundDown=function(b){return this.$val.roundDown(b);};CO=function(b){var b,c,d,e;c=b.mant.$length;while(true){if(!(c>0&&((d=b.mant,e=c-1>>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]))===48))){break;}c=c-(1)>>0;}b.mant=$subslice(b.mant,0,c);if(c===0){b.exp=0;}};CP=function(b,c){var b,c,d,e,f;d=0;e=0;f=CY(b,c);d=f[0];e=f[1];return[d,e];};CQ=function(b,c,d){var b,c,d,e;e=0;e=DB(b,c,d);return e;};CR=function(b,c,d){var b,c,d,e;e=0;e=DC(b,c,d);return e;};CS=function(b,c,d){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=0;f=DD;if(b.$length>32){f=DE;}g=f(b,c,d);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}e=g;h=e;$s=2;case 2:return h;}return;}var $f={$blk:CS,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};CT=function(b,c,d){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=0;f=DF;if(b.$length>32){f=DG;}g=f(b,c,d);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}e=g;h=e;$s=2;case 2:return h;}return;}var $f={$blk:CT,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};CU=function(b,c,d){var b,c,d,e;e=0;e=DH(b,c,d);return e;};CV=function(b,c,d){var b,c,d,e;e=0;e=DI(b,c,d);return e;};CW=function(b,c,d,e){var b,c,d,e,f;f=0;f=DJ(b,c,d,e);return f;};CX=function(b,c,d){var b,c,d,e;e=0;e=DK(b,c,d);return e;};CY=function(b,c){var b,c,d,e,f,g,h,i,j;d=0;e=0;f=J.Mul(((b>>>0)),((c>>>0)));g=f[0];h=f[1];i=((g>>>0));j=((h>>>0));d=i;e=j;return[d,e];};CZ=function(b,c,d){var b,c,d,e,f,g,h,i,j,k,l,m;e=0;f=0;g=J.Mul(((b>>>0)),((c>>>0)));h=g[0];i=g[1];j=0;k=J.Add(i,((d>>>0)),0);i=k[0];j=k[1];l=(((h+j>>>0)>>>0));m=((i>>>0));e=l;f=m;return[e,f];};DA=function(b){var b;return((J.LeadingZeros(((b>>>0)))>>>0));};DB=function(b,c,d){var b,c,d,e,f,g,h,i;e=0;f=0;while(true){if(!(f=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f])>>>0)),((((f<0||f>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f])>>>0)),((e>>>0)));h=g[0];i=g[1];((f<0||f>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]=((h>>>0)));e=((i>>>0));f=f+(1)>>0;}return e;};DC=function(b,c,d){var b,c,d,e,f,g,h,i;e=0;f=0;while(true){if(!(f=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f])>>>0)),((((f<0||f>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f])>>>0)),((e>>>0)));h=g[0];i=g[1];((f<0||f>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]=((h>>>0)));e=((i>>>0));f=f+(1)>>0;}return e;};DD=function(b,c,d){var b,c,d,e,f,g,h,i;e=0;e=d;f=0;while(true){if(!(f=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f])>>>0)),((e>>>0)),0);h=g[0];i=g[1];((f<0||f>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]=((h>>>0)));e=((i>>>0));f=f+(1)>>0;}return e;};DE=function(b,c,d){var b,c,d,e,f,g,h,i;e=0;e=d;f=0;while(true){if(!(f=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f])>>>0)),((e>>>0)),0);h=g[0];i=g[1];((f<0||f>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]=((h>>>0)));e=((i>>>0));f=f+(1)>>0;}return e;};DF=function(b,c,d){var b,c,d,e,f,g,h,i;e=0;e=d;f=0;while(true){if(!(f=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f])>>>0)),((e>>>0)),0);h=g[0];i=g[1];((f<0||f>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]=((h>>>0)));e=((i>>>0));f=f+(1)>>0;}return e;};DG=function(b,c,d){var b,c,d,e,f,g,h,i;e=0;e=d;f=0;while(true){if(!(f=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f])>>>0)),((e>>>0)),0);h=g[0];i=g[1];((f<0||f>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]=((h>>>0)));e=((i>>>0));f=f+(1)>>0;}return e;};DH=function(b,c,d){var b,c,d,e,f,g,h,i,j,k,l,m;e=0;if(d===0){$copySlice(b,c);return e;}if(b.$length===0){return e;}d=(d&(31))>>>0;f=32-d>>>0;f=(f&(31))>>>0;e=(g=f,g<32?((h=b.$length-1>>0,((h<0||h>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+h]))>>>g):0)>>>0;i=b.$length-1>>0;while(true){if(!(i>0)){break;}((i<0||i>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+i]=((((j=d,j<32?(((i<0||i>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i])<>>0)|((k=f,k<32?((l=i-1>>0,((l<0||l>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+l]))>>>k):0)>>>0))>>>0));i=i-(1)>>0;}(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]=((m=d,m<32?((0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])<>>0));return e;};DI=function(b,c,d){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;e=0;if(d===0){$copySlice(b,c);return e;}if(b.$length===0){return e;}if(!((c.$length===b.$length))){$panic(new $String("len(x) != len(z)"));}d=(d&(31))>>>0;f=32-d>>>0;f=(f&(31))>>>0;e=(g=f,g<32?((0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])<>>0;h=1;while(true){if(!(h>0,((l<0||l>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+l]=((((i=d,i<32?((j=h-1>>0,((j<0||j>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+j]))>>>i):0)>>>0)|((k=f,k<32?(((h<0||h>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+h])<>>0))>>>0)));h=h+(1)>>0;}(o=b.$length-1>>0,((o<0||o>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+o]=((m=d,m<32?((n=b.$length-1>>0,((n<0||n>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+n]))>>>m):0)>>>0)));return e;};DJ=function(b,c,d,e){var b,c,d,e,f,g,h;f=0;f=e;g=0;while(true){if(!(g=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+g]),d,f);f=h[0];((g<0||g>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+g]=h[1]);g=g+(1)>>0;}return f;};DK=function(b,c,d){var b,c,d,e,f,g,h,i,j,k,l,m,n;e=0;f=0;while(true){if(!(f=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]),d,((f<0||f>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]));h=g[0];i=g[1];j=J.Add(((i>>>0)),((e>>>0)),0);k=j[0];l=j[1];m=((l>>>0));n=((k>>>0));e=m;((f<0||f>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]=n);e=e+(h)>>>0;f=f+(1)>>0;}return e;};DL=function(b,c,d,e){var aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;f=0;g=0;h=DA(d);if(!((h===0))){b=(((i=h,i<32?(b<>>0)|((j=((32-h>>>0)),j<32?(c>>>j):0)>>>0))>>>0;c=(k=(h),k<32?(c<>>0;d=(l=(h),l<32?(d<>>0;}m=((d>>>0));n=J.Mul(((e>>>0)),((b>>>0)));o=n[0];p=n[1];q=J.Add(p,((c>>>0)),0);r=q[1];s=J.Add(o,((b>>>0)),r);o=s[0];t=o;u=J.Mul(m,t);v=u[0];w=u[1];x=J.Sub(((c>>>0)),w,0);y=x[0];z=x[1];aa=J.Sub(((b>>>0)),v,z);ab=aa[0];if(!((ab===0))){t=t+(1)>>>0;y=y-(m)>>>0;}if(y>=m){t=t+(1)>>>0;y=y-(m)>>>0;}ac=((t>>>0));ad=((((ae=h,ae<32?(y>>>ae):0)>>>0)>>>0));f=ac;g=ad;return[f,g];};DM=function(b){var b,c,d,e,f,g,h;d=((((c=DA(b),c<32?(b<>>0)>>>0));e=~d>>>0;f=4294967295;g=J.Div(e,f,d);h=g[0];return((h>>>0));};CD.prototype.String=function(){var b,c;b=this.$val;b=b-(-1)<<24>>24;if(b<0||b>=3){return"Accuracy("+C.FormatInt((new $Int64(0,(b+-1<<24>>24))),10)+")";}return $substring("BelowExactAbove",((b<0||b>=DN.length)?($throwRuntimeError("index out of range"),undefined):DN[b]),(c=b+1<<24>>24,((c<0||c>=DN.length)?($throwRuntimeError("index out of range"),undefined):DN[c])));};$ptrType(CD).prototype.String=function(){return new CD(this.$get()).String();};DV.methods=[{prop:"GobEncode",name:"GobEncode",pkg:"",typ:$funcType([],[DW,$error],false)},{prop:"GobDecode",name:"GobDecode",pkg:"",typ:$funcType([DW],[$error],false)},{prop:"MarshalText",name:"MarshalText",pkg:"",typ:$funcType([],[DW,$error],false)},{prop:"UnmarshalText",name:"UnmarshalText",pkg:"",typ:$funcType([DW],[$error],false)},{prop:"Scan",name:"Scan",pkg:"",typ:$funcType([F.ScanState,$Int32],[$error],false)},{prop:"SetString",name:"SetString",pkg:"",typ:$funcType([$String],[DV,$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"marshal",name:"marshal",pkg:"math/big",typ:$funcType([],[DW],false)},{prop:"RatString",name:"RatString",pkg:"",typ:$funcType([],[$String],false)},{prop:"FloatString",name:"FloatString",pkg:"",typ:$funcType([$Int],[$String],false)},{prop:"SetFloat64",name:"SetFloat64",pkg:"",typ:$funcType([$Float64],[DV],false)},{prop:"Float32",name:"Float32",pkg:"",typ:$funcType([],[$Float32,$Bool],false)},{prop:"Float64",name:"Float64",pkg:"",typ:$funcType([],[$Float64,$Bool],false)},{prop:"SetFrac",name:"SetFrac",pkg:"",typ:$funcType([DX,DX],[DV],false)},{prop:"SetFrac64",name:"SetFrac64",pkg:"",typ:$funcType([$Int64,$Int64],[DV],false)},{prop:"SetInt",name:"SetInt",pkg:"",typ:$funcType([DX],[DV],false)},{prop:"SetInt64",name:"SetInt64",pkg:"",typ:$funcType([$Int64],[DV],false)},{prop:"SetUint64",name:"SetUint64",pkg:"",typ:$funcType([$Uint64],[DV],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([DV],[DV],false)},{prop:"Abs",name:"Abs",pkg:"",typ:$funcType([DV],[DV],false)},{prop:"Neg",name:"Neg",pkg:"",typ:$funcType([DV],[DV],false)},{prop:"Inv",name:"Inv",pkg:"",typ:$funcType([DV],[DV],false)},{prop:"Sign",name:"Sign",pkg:"",typ:$funcType([],[$Int],false)},{prop:"IsInt",name:"IsInt",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Num",name:"Num",pkg:"",typ:$funcType([],[DX],false)},{prop:"Denom",name:"Denom",pkg:"",typ:$funcType([],[DX],false)},{prop:"norm",name:"norm",pkg:"math/big",typ:$funcType([],[DV],false)},{prop:"Cmp",name:"Cmp",pkg:"",typ:$funcType([DV],[$Int],false)},{prop:"Add",name:"Add",pkg:"",typ:$funcType([DV,DV],[DV],false)},{prop:"Sub",name:"Sub",pkg:"",typ:$funcType([DV,DV],[DV],false)},{prop:"Mul",name:"Mul",pkg:"",typ:$funcType([DV,DV],[DV],false)},{prop:"Quo",name:"Quo",pkg:"",typ:$funcType([DV,DV],[DV],false)}];AH.methods=[{prop:"probablyPrimeMillerRabin",name:"probablyPrimeMillerRabin",pkg:"math/big",typ:$funcType([$Int,$Bool],[$Bool],false)},{prop:"probablyPrimeLucas",name:"probablyPrimeLucas",pkg:"math/big",typ:$funcType([],[$Bool],false)},{prop:"div",name:"div",pkg:"math/big",typ:$funcType([AH,AH,AH],[AH,AH],false)},{prop:"divW",name:"divW",pkg:"math/big",typ:$funcType([AH,BQ],[AH,BQ],false)},{prop:"modW",name:"modW",pkg:"math/big",typ:$funcType([BQ],[BQ],false)},{prop:"divLarge",name:"divLarge",pkg:"math/big",typ:$funcType([AH,AH,AH],[AH,AH],false)},{prop:"divBasic",name:"divBasic",pkg:"math/big",typ:$funcType([AH,AH],[],false)},{prop:"divRecursive",name:"divRecursive",pkg:"math/big",typ:$funcType([AH,AH],[],false)},{prop:"divRecursiveStep",name:"divRecursiveStep",pkg:"math/big",typ:$funcType([AH,AH,$Int,DZ,EA],[],false)},{prop:"scan",name:"scan",pkg:"math/big",typ:$funcType([G.ByteScanner,$Int,$Bool],[AH,$Int,$Int,$error],false)},{prop:"utoa",name:"utoa",pkg:"math/big",typ:$funcType([$Int],[DW],false)},{prop:"itoa",name:"itoa",pkg:"math/big",typ:$funcType([$Bool,$Int],[DW],false)},{prop:"convertWords",name:"convertWords",pkg:"math/big",typ:$funcType([DW,BQ,$Int,BQ,EB],[],false)},{prop:"expWW",name:"expWW",pkg:"math/big",typ:$funcType([BQ,BQ],[AH],false)},{prop:"clear",name:"clear",pkg:"math/big",typ:$funcType([],[],false)},{prop:"norm",name:"norm",pkg:"math/big",typ:$funcType([],[AH],false)},{prop:"make",name:"make",pkg:"math/big",typ:$funcType([$Int],[AH],false)},{prop:"setWord",name:"setWord",pkg:"math/big",typ:$funcType([BQ],[AH],false)},{prop:"setUint64",name:"setUint64",pkg:"math/big",typ:$funcType([$Uint64],[AH],false)},{prop:"set",name:"set",pkg:"math/big",typ:$funcType([AH],[AH],false)},{prop:"add",name:"add",pkg:"math/big",typ:$funcType([AH,AH],[AH],false)},{prop:"sub",name:"sub",pkg:"math/big",typ:$funcType([AH,AH],[AH],false)},{prop:"cmp",name:"cmp",pkg:"math/big",typ:$funcType([AH],[$Int],false)},{prop:"mulAddWW",name:"mulAddWW",pkg:"math/big",typ:$funcType([AH,BQ,BQ],[AH],false)},{prop:"montgomery",name:"montgomery",pkg:"math/big",typ:$funcType([AH,AH,AH,BQ,$Int],[AH],false)},{prop:"mul",name:"mul",pkg:"math/big",typ:$funcType([AH,AH],[AH],false)},{prop:"sqr",name:"sqr",pkg:"math/big",typ:$funcType([AH],[AH],false)},{prop:"mulRange",name:"mulRange",pkg:"math/big",typ:$funcType([$Uint64,$Uint64],[AH],false)},{prop:"bitLen",name:"bitLen",pkg:"math/big",typ:$funcType([],[$Int],false)},{prop:"trailingZeroBits",name:"trailingZeroBits",pkg:"math/big",typ:$funcType([],[$Uint],false)},{prop:"shl",name:"shl",pkg:"math/big",typ:$funcType([AH,$Uint],[AH],false)},{prop:"shr",name:"shr",pkg:"math/big",typ:$funcType([AH,$Uint],[AH],false)},{prop:"setBit",name:"setBit",pkg:"math/big",typ:$funcType([AH,$Uint,$Uint],[AH],false)},{prop:"bit",name:"bit",pkg:"math/big",typ:$funcType([$Uint],[$Uint],false)},{prop:"sticky",name:"sticky",pkg:"math/big",typ:$funcType([$Uint],[$Uint],false)},{prop:"and",name:"and",pkg:"math/big",typ:$funcType([AH,AH],[AH],false)},{prop:"andNot",name:"andNot",pkg:"math/big",typ:$funcType([AH,AH],[AH],false)},{prop:"or",name:"or",pkg:"math/big",typ:$funcType([AH,AH],[AH],false)},{prop:"xor",name:"xor",pkg:"math/big",typ:$funcType([AH,AH],[AH],false)},{prop:"random",name:"random",pkg:"math/big",typ:$funcType([EE,AH,$Int],[AH],false)},{prop:"expNN",name:"expNN",pkg:"math/big",typ:$funcType([AH,AH,AH],[AH],false)},{prop:"expNNWindowed",name:"expNNWindowed",pkg:"math/big",typ:$funcType([AH,AH,AH],[AH],false)},{prop:"expNNMontgomery",name:"expNNMontgomery",pkg:"math/big",typ:$funcType([AH,AH,AH],[AH],false)},{prop:"bytes",name:"bytes",pkg:"math/big",typ:$funcType([DW],[$Int],false)},{prop:"setBytes",name:"setBytes",pkg:"math/big",typ:$funcType([DW],[AH],false)},{prop:"sqrt",name:"sqrt",pkg:"math/big",typ:$funcType([AH],[AH],false)}];BG.methods=[{prop:"ReadByte",name:"ReadByte",pkg:"",typ:$funcType([],[$Uint8,$error],false)},{prop:"UnreadByte",name:"UnreadByte",pkg:"",typ:$funcType([],[$error],false)}];DX.methods=[{prop:"scaleDenom",name:"scaleDenom",pkg:"math/big",typ:$funcType([DX,AH],[],false)},{prop:"ProbablyPrime",name:"ProbablyPrime",pkg:"",typ:$funcType([$Int],[$Bool],false)},{prop:"GobEncode",name:"GobEncode",pkg:"",typ:$funcType([],[DW,$error],false)},{prop:"GobDecode",name:"GobDecode",pkg:"",typ:$funcType([DW],[$error],false)},{prop:"MarshalText",name:"MarshalText",pkg:"",typ:$funcType([],[DW,$error],false)},{prop:"UnmarshalText",name:"UnmarshalText",pkg:"",typ:$funcType([DW],[$error],false)},{prop:"MarshalJSON",name:"MarshalJSON",pkg:"",typ:$funcType([],[DW,$error],false)},{prop:"UnmarshalJSON",name:"UnmarshalJSON",pkg:"",typ:$funcType([DW],[$error],false)},{prop:"Text",name:"Text",pkg:"",typ:$funcType([$Int],[$String],false)},{prop:"Append",name:"Append",pkg:"",typ:$funcType([DW,$Int],[DW],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Format",name:"Format",pkg:"",typ:$funcType([F.State,$Int32],[],false)},{prop:"scan",name:"scan",pkg:"math/big",typ:$funcType([G.ByteScanner,$Int],[DX,$Int,$error],false)},{prop:"Scan",name:"Scan",pkg:"",typ:$funcType([F.ScanState,$Int32],[$error],false)},{prop:"Sign",name:"Sign",pkg:"",typ:$funcType([],[$Int],false)},{prop:"SetInt64",name:"SetInt64",pkg:"",typ:$funcType([$Int64],[DX],false)},{prop:"SetUint64",name:"SetUint64",pkg:"",typ:$funcType([$Uint64],[DX],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([DX],[DX],false)},{prop:"Bits",name:"Bits",pkg:"",typ:$funcType([],[DY],false)},{prop:"SetBits",name:"SetBits",pkg:"",typ:$funcType([DY],[DX],false)},{prop:"Abs",name:"Abs",pkg:"",typ:$funcType([DX],[DX],false)},{prop:"Neg",name:"Neg",pkg:"",typ:$funcType([DX],[DX],false)},{prop:"Add",name:"Add",pkg:"",typ:$funcType([DX,DX],[DX],false)},{prop:"Sub",name:"Sub",pkg:"",typ:$funcType([DX,DX],[DX],false)},{prop:"Mul",name:"Mul",pkg:"",typ:$funcType([DX,DX],[DX],false)},{prop:"MulRange",name:"MulRange",pkg:"",typ:$funcType([$Int64,$Int64],[DX],false)},{prop:"Binomial",name:"Binomial",pkg:"",typ:$funcType([$Int64,$Int64],[DX],false)},{prop:"Quo",name:"Quo",pkg:"",typ:$funcType([DX,DX],[DX],false)},{prop:"Rem",name:"Rem",pkg:"",typ:$funcType([DX,DX],[DX],false)},{prop:"QuoRem",name:"QuoRem",pkg:"",typ:$funcType([DX,DX,DX],[DX,DX],false)},{prop:"Div",name:"Div",pkg:"",typ:$funcType([DX,DX],[DX],false)},{prop:"Mod",name:"Mod",pkg:"",typ:$funcType([DX,DX],[DX],false)},{prop:"DivMod",name:"DivMod",pkg:"",typ:$funcType([DX,DX,DX],[DX,DX],false)},{prop:"Cmp",name:"Cmp",pkg:"",typ:$funcType([DX],[$Int],false)},{prop:"CmpAbs",name:"CmpAbs",pkg:"",typ:$funcType([DX],[$Int],false)},{prop:"Int64",name:"Int64",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Uint64",name:"Uint64",pkg:"",typ:$funcType([],[$Uint64],false)},{prop:"IsInt64",name:"IsInt64",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsUint64",name:"IsUint64",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"SetString",name:"SetString",pkg:"",typ:$funcType([$String,$Int],[DX,$Bool],false)},{prop:"setFromScanner",name:"setFromScanner",pkg:"math/big",typ:$funcType([G.ByteScanner,$Int],[DX,$Bool],false)},{prop:"SetBytes",name:"SetBytes",pkg:"",typ:$funcType([DW],[DX],false)},{prop:"Bytes",name:"Bytes",pkg:"",typ:$funcType([],[DW],false)},{prop:"FillBytes",name:"FillBytes",pkg:"",typ:$funcType([DW],[DW],false)},{prop:"BitLen",name:"BitLen",pkg:"",typ:$funcType([],[$Int],false)},{prop:"TrailingZeroBits",name:"TrailingZeroBits",pkg:"",typ:$funcType([],[$Uint],false)},{prop:"Exp",name:"Exp",pkg:"",typ:$funcType([DX,DX,DX],[DX],false)},{prop:"GCD",name:"GCD",pkg:"",typ:$funcType([DX,DX,DX,DX],[DX],false)},{prop:"lehmerGCD",name:"lehmerGCD",pkg:"math/big",typ:$funcType([DX,DX,DX,DX],[DX],false)},{prop:"Rand",name:"Rand",pkg:"",typ:$funcType([EE,DX],[DX],false)},{prop:"ModInverse",name:"ModInverse",pkg:"",typ:$funcType([DX,DX],[DX],false)},{prop:"modSqrt3Mod4Prime",name:"modSqrt3Mod4Prime",pkg:"math/big",typ:$funcType([DX,DX],[DX],false)},{prop:"modSqrt5Mod8Prime",name:"modSqrt5Mod8Prime",pkg:"math/big",typ:$funcType([DX,DX],[DX],false)},{prop:"modSqrtTonelliShanks",name:"modSqrtTonelliShanks",pkg:"math/big",typ:$funcType([DX,DX],[DX],false)},{prop:"ModSqrt",name:"ModSqrt",pkg:"",typ:$funcType([DX,DX],[DX],false)},{prop:"Lsh",name:"Lsh",pkg:"",typ:$funcType([DX,$Uint],[DX],false)},{prop:"Rsh",name:"Rsh",pkg:"",typ:$funcType([DX,$Uint],[DX],false)},{prop:"Bit",name:"Bit",pkg:"",typ:$funcType([$Int],[$Uint],false)},{prop:"SetBit",name:"SetBit",pkg:"",typ:$funcType([DX,$Int,$Uint],[DX],false)},{prop:"And",name:"And",pkg:"",typ:$funcType([DX,DX],[DX],false)},{prop:"AndNot",name:"AndNot",pkg:"",typ:$funcType([DX,DX],[DX],false)},{prop:"Or",name:"Or",pkg:"",typ:$funcType([DX,DX],[DX],false)},{prop:"Xor",name:"Xor",pkg:"",typ:$funcType([DX,DX],[DX],false)},{prop:"Not",name:"Not",pkg:"",typ:$funcType([DX],[DX],false)},{prop:"Sqrt",name:"Sqrt",pkg:"",typ:$funcType([DX],[DX],false)}];DO.methods=[{prop:"Sqrt",name:"Sqrt",pkg:"",typ:$funcType([DO],[DO],false)},{prop:"sqrtInverse",name:"sqrtInverse",pkg:"math/big",typ:$funcType([DO],[],false)},{prop:"Text",name:"Text",pkg:"",typ:$funcType([$Uint8,$Int],[$String],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Append",name:"Append",pkg:"",typ:$funcType([DW,$Uint8,$Int],[DW],false)},{prop:"fmtB",name:"fmtB",pkg:"math/big",typ:$funcType([DW],[DW],false)},{prop:"fmtX",name:"fmtX",pkg:"math/big",typ:$funcType([DW,$Int],[DW],false)},{prop:"fmtP",name:"fmtP",pkg:"math/big",typ:$funcType([DW],[DW],false)},{prop:"Format",name:"Format",pkg:"",typ:$funcType([F.State,$Int32],[],false)},{prop:"GobEncode",name:"GobEncode",pkg:"",typ:$funcType([],[DW,$error],false)},{prop:"GobDecode",name:"GobDecode",pkg:"",typ:$funcType([DW],[$error],false)},{prop:"MarshalText",name:"MarshalText",pkg:"",typ:$funcType([],[DW,$error],false)},{prop:"UnmarshalText",name:"UnmarshalText",pkg:"",typ:$funcType([DW],[$error],false)},{prop:"SetString",name:"SetString",pkg:"",typ:$funcType([$String],[DO,$Bool],false)},{prop:"scan",name:"scan",pkg:"math/big",typ:$funcType([G.ByteScanner,$Int],[DO,$Int,$error],false)},{prop:"pow5",name:"pow5",pkg:"math/big",typ:$funcType([$Uint64],[DO],false)},{prop:"Parse",name:"Parse",pkg:"",typ:$funcType([$String,$Int],[DO,$Int,$error],false)},{prop:"Scan",name:"Scan",pkg:"",typ:$funcType([F.ScanState,$Int32],[$error],false)},{prop:"SetPrec",name:"SetPrec",pkg:"",typ:$funcType([$Uint],[DO],false)},{prop:"SetMode",name:"SetMode",pkg:"",typ:$funcType([CC],[DO],false)},{prop:"Prec",name:"Prec",pkg:"",typ:$funcType([],[$Uint],false)},{prop:"MinPrec",name:"MinPrec",pkg:"",typ:$funcType([],[$Uint],false)},{prop:"Mode",name:"Mode",pkg:"",typ:$funcType([],[CC],false)},{prop:"Acc",name:"Acc",pkg:"",typ:$funcType([],[CD],false)},{prop:"Sign",name:"Sign",pkg:"",typ:$funcType([],[$Int],false)},{prop:"MantExp",name:"MantExp",pkg:"",typ:$funcType([DO],[$Int],false)},{prop:"setExpAndRound",name:"setExpAndRound",pkg:"math/big",typ:$funcType([$Int64,$Uint],[],false)},{prop:"SetMantExp",name:"SetMantExp",pkg:"",typ:$funcType([DO,$Int],[DO],false)},{prop:"Signbit",name:"Signbit",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsInf",name:"IsInf",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsInt",name:"IsInt",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"validate",name:"validate",pkg:"math/big",typ:$funcType([],[],false)},{prop:"round",name:"round",pkg:"math/big",typ:$funcType([$Uint],[],false)},{prop:"setBits64",name:"setBits64",pkg:"math/big",typ:$funcType([$Bool,$Uint64],[DO],false)},{prop:"SetUint64",name:"SetUint64",pkg:"",typ:$funcType([$Uint64],[DO],false)},{prop:"SetInt64",name:"SetInt64",pkg:"",typ:$funcType([$Int64],[DO],false)},{prop:"SetFloat64",name:"SetFloat64",pkg:"",typ:$funcType([$Float64],[DO],false)},{prop:"SetInt",name:"SetInt",pkg:"",typ:$funcType([DX],[DO],false)},{prop:"SetRat",name:"SetRat",pkg:"",typ:$funcType([DV],[DO],false)},{prop:"SetInf",name:"SetInf",pkg:"",typ:$funcType([$Bool],[DO],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([DO],[DO],false)},{prop:"Copy",name:"Copy",pkg:"",typ:$funcType([DO],[DO],false)},{prop:"Uint64",name:"Uint64",pkg:"",typ:$funcType([],[$Uint64,CD],false)},{prop:"Int64",name:"Int64",pkg:"",typ:$funcType([],[$Int64,CD],false)},{prop:"Float32",name:"Float32",pkg:"",typ:$funcType([],[$Float32,CD],false)},{prop:"Float64",name:"Float64",pkg:"",typ:$funcType([],[$Float64,CD],false)},{prop:"Int",name:"Int",pkg:"",typ:$funcType([DX],[DX,CD],false)},{prop:"Rat",name:"Rat",pkg:"",typ:$funcType([DV],[DV,CD],false)},{prop:"Abs",name:"Abs",pkg:"",typ:$funcType([DO],[DO],false)},{prop:"Neg",name:"Neg",pkg:"",typ:$funcType([DO],[DO],false)},{prop:"uadd",name:"uadd",pkg:"math/big",typ:$funcType([DO,DO],[],false)},{prop:"usub",name:"usub",pkg:"math/big",typ:$funcType([DO,DO],[],false)},{prop:"umul",name:"umul",pkg:"math/big",typ:$funcType([DO,DO],[],false)},{prop:"uquo",name:"uquo",pkg:"math/big",typ:$funcType([DO,DO],[],false)},{prop:"ucmp",name:"ucmp",pkg:"math/big",typ:$funcType([DO],[$Int],false)},{prop:"Add",name:"Add",pkg:"",typ:$funcType([DO,DO],[DO],false)},{prop:"Sub",name:"Sub",pkg:"",typ:$funcType([DO,DO],[DO],false)},{prop:"Mul",name:"Mul",pkg:"",typ:$funcType([DO,DO],[DO],false)},{prop:"Quo",name:"Quo",pkg:"",typ:$funcType([DO,DO],[DO],false)},{prop:"Cmp",name:"Cmp",pkg:"",typ:$funcType([DO],[$Int],false)},{prop:"ord",name:"ord",pkg:"math/big",typ:$funcType([],[$Int],false)}];BZ.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];CC.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];CD.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];EF.methods=[{prop:"at",name:"at",pkg:"math/big",typ:$funcType([$Int],[$Uint8],false)},{prop:"init",name:"init",pkg:"math/big",typ:$funcType([AH,$Int],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"round",name:"round",pkg:"math/big",typ:$funcType([$Int],[],false)},{prop:"roundUp",name:"roundUp",pkg:"math/big",typ:$funcType([$Int],[],false)},{prop:"roundDown",name:"roundDown",pkg:"math/big",typ:$funcType([$Int],[],false)}];S.init("math/big",[{prop:"a",name:"a",embedded:false,exported:false,typ:BH,tag:""},{prop:"b",name:"b",embedded:false,exported:false,typ:BH,tag:""}]);AE.init("math/big",[{prop:"bbb",name:"bbb",embedded:false,exported:false,typ:AH,tag:""},{prop:"nbits",name:"nbits",embedded:false,exported:false,typ:$Int,tag:""},{prop:"ndigits",name:"ndigits",embedded:false,exported:false,typ:$Int,tag:""}]);AH.init(BQ);BG.init("",[{prop:"ScanState",name:"ScanState",embedded:true,exported:true,typ:F.ScanState,tag:""}]);BH.init("math/big",[{prop:"neg",name:"neg",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"abs",name:"abs",embedded:false,exported:false,typ:AH,tag:""}]);BY.init("math/big",[{prop:"prec",name:"prec",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"mode",name:"mode",embedded:false,exported:false,typ:CC,tag:""},{prop:"acc",name:"acc",embedded:false,exported:false,typ:CD,tag:""},{prop:"form",name:"form",embedded:false,exported:false,typ:CB,tag:""},{prop:"neg",name:"neg",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"mant",name:"mant",embedded:false,exported:false,typ:AH,tag:""},{prop:"exp",name:"exp",embedded:false,exported:false,typ:$Int32,tag:""}]);BZ.init("math/big",[{prop:"msg",name:"msg",embedded:false,exported:false,typ:$String,tag:""}]);CK.init("math/big",[{prop:"mant",name:"mant",embedded:false,exported:false,typ:DW,tag:""},{prop:"exp",name:"exp",embedded:false,exported:false,typ:$Int,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=K.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}L=new DP.ptr(new B.Once.ptr(false,false),DO.nil);AF=new DS.ptr(new B.Mutex.ptr(false),DR.zero());BB=new B.Pool.ptr(DT.nil,$throwNilPointerError);O=$toNativeArray($kindUint8,[0,13,26,32,44,57,70]);AB=E.New("number has no digits");AC=E.New("'_' must separate successive digits");AD=8;AI=new AH([1]);AJ=new AH([2]);AK=new AH([5]);AL=new AH([10]);AP=40;AX=20;AY=260;BI=new BH.ptr(false,AI);BW=$toNativeArray($kindUint64,[new $Uint64(0,1),new $Uint64(0,5),new $Uint64(0,25),new $Uint64(0,125),new $Uint64(0,625),new $Uint64(0,3125),new $Uint64(0,15625),new $Uint64(0,78125),new $Uint64(0,390625),new $Uint64(0,1953125),new $Uint64(0,9765625),new $Uint64(0,48828125),new $Uint64(0,244140625),new $Uint64(0,1220703125),new $Uint64(1,1808548329),new $Uint64(7,452807053),new $Uint64(35,2264035265),new $Uint64(177,2730241733),new $Uint64(888,766306777),new $Uint64(4440,3831533885),new $Uint64(22204,1977800241),new $Uint64(111022,1299066613),new $Uint64(555111,2200365769),new $Uint64(2775557,2411894253),new $Uint64(13877787,3469536673),new $Uint64(69388939,167814181),new $Uint64(346944695,839070905),new $Uint64(1734723475,4195354525)]);DN=$toNativeArray($kindUint8,[0,5,10,15]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["go/constant"]=(function(){var $pkg={},$init,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,CD,CE,CF,CG,CH,CI,CJ,CK,AG,CC,b,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AS,AT,AU,AV,AW,AX,AY,AZ,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,CA,CB;A=$packages["fmt"];B=$packages["go/token"];C=$packages["math"];D=$packages["math/big"];E=$packages["math/bits"];F=$packages["strconv"];G=$packages["strings"];H=$packages["sync"];I=$packages["unicode/utf8"];J=$pkg.Kind=$newType(4,$kindInt,"constant.Kind",true,"go/constant",true,null);K=$pkg.Value=$newType(8,$kindInterface,"constant.Value",true,"go/constant",true,null);L=$pkg.unknownVal=$newType(0,$kindStruct,"constant.unknownVal",true,"go/constant",false,function(){this.$val=this;if(arguments.length===0){return;}});M=$pkg.boolVal=$newType(1,$kindBool,"constant.boolVal",true,"go/constant",false,null);N=$pkg.stringVal=$newType(0,$kindStruct,"constant.stringVal",true,"go/constant",false,function(mu_,s_,l_,r_){this.$val=this;if(arguments.length===0){this.mu=new H.Mutex.ptr(0,0);this.s="";this.l=CD.nil;this.r=CD.nil;return;}this.mu=mu_;this.s=s_;this.l=l_;this.r=r_;});O=$pkg.int64Val=$newType(8,$kindInt64,"constant.int64Val",true,"go/constant",false,null);P=$pkg.intVal=$newType(0,$kindStruct,"constant.intVal",true,"go/constant",false,function(val_){this.$val=this;if(arguments.length===0){this.val=CH.nil;return;}this.val=val_;});Q=$pkg.ratVal=$newType(0,$kindStruct,"constant.ratVal",true,"go/constant",false,function(val_){this.$val=this;if(arguments.length===0){this.val=CI.nil;return;}this.val=val_;});R=$pkg.floatVal=$newType(0,$kindStruct,"constant.floatVal",true,"go/constant",false,function(val_){this.$val=this;if(arguments.length===0){this.val=CG.nil;return;}this.val=val_;});S=$pkg.complexVal=$newType(0,$kindStruct,"constant.complexVal",true,"go/constant",false,function(re_,im_){this.$val=this;if(arguments.length===0){this.re=$ifaceNil;this.im=$ifaceNil;return;}this.re=re_;this.im=im_;});CD=$ptrType(N);CE=$sliceType($String);CF=$sliceType($emptyInterface);CG=$ptrType(D.Float);CH=$ptrType(D.Int);CI=$ptrType(D.Rat);CJ=$sliceType($Uint8);CK=$sliceType(D.Word);L.ptr.prototype.Kind=function(){return 0;};L.prototype.Kind=function(){return this.$val.Kind();};M.prototype.Kind=function(){return 1;};$ptrType(M).prototype.Kind=function(){return new M(this.$get()).Kind();};N.ptr.prototype.Kind=function(){return 2;};N.prototype.Kind=function(){return this.$val.Kind();};O.prototype.Kind=function(){return 3;};$ptrType(O).prototype.Kind=function(){return this.$get().Kind();};P.ptr.prototype.Kind=function(){return 3;};P.prototype.Kind=function(){return this.$val.Kind();};Q.ptr.prototype.Kind=function(){return 4;};Q.prototype.Kind=function(){return this.$val.Kind();};R.ptr.prototype.Kind=function(){return 4;};R.prototype.Kind=function(){return this.$val.Kind();};S.ptr.prototype.Kind=function(){return 5;};S.prototype.Kind=function(){return this.$val.Kind();};L.ptr.prototype.String=function(){return"unknown";};L.prototype.String=function(){return this.$val.String();};M.prototype.String=function(){var c;c=this.$val;return F.FormatBool((c));};$ptrType(M).prototype.String=function(){return new M(this.$get()).String();};N.ptr.prototype.String=function(){var{c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.string();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=F.Quote(d);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(I.RuneCountInString(f)>72){g=0;h=0;while(true){if(!(h<69)){break;}i=I.DecodeRuneInString($substring(f,g));j=i[1];g=g+(j)>>0;h=h+(1)>>0;}f=$substring(f,0,g)+"...";}$s=-1;return f;}return;}var $f={$blk:N.ptr.prototype.String,$c:true,$r,c,d,e,f,g,h,i,j,$s};return $f;};N.prototype.String=function(){return this.$val.String();};N.ptr.prototype.string=function(){var{c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;$r=c.mu.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(c.l===CD.nil)){$s=2;continue;}$s=3;continue;case 2:d=c.appendReverse(CE.nil);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=T(d);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=G.Join(e,"");$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}c.s=f;c.l=CD.nil;c.r=CD.nil;case 3:g=c.s;$r=c.mu.Unlock();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return g;}return;}var $f={$blk:N.ptr.prototype.string,$c:true,$r,c,d,e,f,g,$s};return $f;};N.prototype.string=function(){return this.$val.string();};T=function(c){var c,d,e,f,g,h,i;d=c.$length;e=0;while(true){if(!((e+e>>0)>0)-e>>0,((g<0||g>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+g]));h=((e<0||e>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+e]);((e<0||e>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+e]=f);(i=(d-1>>0)-e>>0,((i<0||i>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i]=h));e=e+(1)>>0;}return c;};N.ptr.prototype.appendReverse=function(c){var{c,d,e,f,g,h,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d;case 1:if(!(!(e.r===CD.nil))){$s=2;continue;}$r=e.r.mu.Lock();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=e.r.appendReverse(c);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}c=f;$r=e.r.mu.Unlock();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=e.l;if(!(e===d)){$s=6;continue;}$s=7;continue;case 6:$r=e.mu.Unlock();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:$r=g.mu.Lock();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=g;$s=1;continue;case 2:h=e.s;if(!(e===d)){$s=10;continue;}$s=11;continue;case 10:$r=e.mu.Unlock();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:$s=-1;return $append(c,h);}return;}var $f={$blk:N.ptr.prototype.appendReverse,$c:true,$r,c,d,e,f,g,h,$s};return $f;};N.prototype.appendReverse=function(c){return this.$val.appendReverse(c);};O.prototype.String=function(){var c;c=this;return F.FormatInt((new $Int64(c.$high,c.$low)),10);};$ptrType(O).prototype.String=function(){return this.$get().String();};P.ptr.prototype.String=function(){var{c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.val.String();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:P.ptr.prototype.String,$c:true,$r,c,d,e,$s};return $f;};P.prototype.String=function(){return this.$val.String();};Q.ptr.prototype.String=function(){var{c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=AC($clone(c,Q));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=$clone(d,R).String();$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=3;case 3:return f;}return;}var $f={$blk:Q.ptr.prototype.String,$c:true,$r,c,d,e,f,$s};return $f;};Q.prototype.String=function(){return this.$val.String();};R.ptr.prototype.String=function(){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;e=d.val;if(e.IsInf()){$s=1;continue;}$s=2;continue;case 1:f=e.String();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=4;case 4:return g;case 2:i=e.Float64();$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[0];k=e.Sign();$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if((k===0)===((j===0))&&!C.IsInf(j,0)){$s=6;continue;}$s=7;continue;case 6:l=A.Sprintf("%.6g",new CF([new $Float64(j)]));$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=10;case 10:return m;case 7:c[0]=new D.Float.ptr(0,0,0,0,false,D.nat.nil,0);n=e.MantExp(c[0]);$s=11;case 11:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;q=c[0].Float64();$s=12;case 12:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p[0];s=(o)*0.3010299956639812;t=(new $Int64(0,s));r=r*(C.Pow(10,s-($flatten64(t))));u=C.Abs(r);if(u<0.9999995){r=r*(10);t=(v=new $Int64(0,1),new $Int64(t.$high-v.$high,t.$low-v.$low));}else if(u>=10){r=r/(10);t=(w=new $Int64(0,1),new $Int64(t.$high+w.$high,t.$low+w.$low));}x=A.Sprintf("%.6ge%+d",new CF([new $Float64(r),t]));$s=13;case 13:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;$s=14;case 14:return y;}return;}var $f={$blk:R.ptr.prototype.String,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s};return $f;};R.prototype.String=function(){return this.$val.String();};S.ptr.prototype.String=function(){var{c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=A.Sprintf("(%s + %si)",new CF([c.re,c.im]));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:S.ptr.prototype.String,$c:true,$r,c,d,e,$s};return $f;};S.prototype.String=function(){return this.$val.String();};L.ptr.prototype.ExactString=function(){var c;c=this;return $clone(c,L).String();};L.prototype.ExactString=function(){return this.$val.ExactString();};M.prototype.ExactString=function(){var c;c=this.$val;return new M(c).String();};$ptrType(M).prototype.ExactString=function(){return new M(this.$get()).ExactString();};N.ptr.prototype.ExactString=function(){var{c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.string();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=F.Quote(d);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=3;case 3:return f;}return;}var $f={$blk:N.ptr.prototype.ExactString,$c:true,$r,c,d,e,f,$s};return $f;};N.prototype.ExactString=function(){return this.$val.ExactString();};O.prototype.ExactString=function(){var c;c=this;return c.String();};$ptrType(O).prototype.ExactString=function(){return this.$get().ExactString();};P.ptr.prototype.ExactString=function(){var{c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=$clone(c,P).String();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:P.ptr.prototype.ExactString,$c:true,$r,c,d,e,$s};return $f;};P.prototype.ExactString=function(){return this.$val.ExactString();};Q.ptr.prototype.ExactString=function(){var{c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.val;if(d.IsInt()){$s=1;continue;}$s=2;continue;case 1:e=d.Num().String();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=4;case 4:return f;case 2:g=d.String();$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=6;case 6:return h;}return;}var $f={$blk:Q.ptr.prototype.ExactString,$c:true,$r,c,d,e,f,g,h,$s};return $f;};Q.prototype.ExactString=function(){return this.$val.ExactString();};R.ptr.prototype.ExactString=function(){var{c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.val.Text(112,0);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:R.ptr.prototype.ExactString,$c:true,$r,c,d,e,$s};return $f;};R.prototype.ExactString=function(){return this.$val.ExactString();};S.ptr.prototype.ExactString=function(){var{c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.re.ExactString();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=new $String(d);f=c.im.ExactString();$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=new $String(f);h=A.Sprintf("(%s + %si)",new CF([e,g]));$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=4;case 4:return i;}return;}var $f={$blk:S.ptr.prototype.ExactString,$c:true,$r,c,d,e,f,g,h,i,$s};return $f;};S.prototype.ExactString=function(){return this.$val.ExactString();};U=function(){return new D.Int.ptr(false,D.nat.nil);};V=function(){return new D.Rat.ptr(new D.Int.ptr(false,D.nat.nil),new D.Int.ptr(false,D.nat.nil));};W=function(){var{c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=new D.Float.ptr(0,0,0,0,false,D.nat.nil,0).SetPrec(512);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:W,$c:true,$r,c,d,$s};return $f;};X=function(c){var c;return new P.ptr(U().SetInt64((new $Int64(c.$high,c.$low))));};Y=function(c){var c;return new Q.ptr(V().SetInt64((new $Int64(c.$high,c.$low))));};Z=function(c){var{c,d,e,f,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=W();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.SetInt64((new $Int64(c.$high,c.$low)));$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=new R.ptr(e);$s=3;case 3:return f;}return;}var $f={$blk:Z,$c:true,$r,c,d,e,f,$s};return $f;};AA=function(c){var c;return new Q.ptr(V().SetInt(c.val));};AB=function(c){var{c,d,e,f,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=W();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.SetInt(c.val);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=new R.ptr(e);$s=3;case 3:return f;}return;}var $f={$blk:AB,$c:true,$r,c,d,e,f,$s};return $f;};AC=function(c){var{c,d,e,f,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=W();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.SetRat(c.val);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=new R.ptr(e);$s=3;case 3:return f;}return;}var $f={$blk:AC,$c:true,$r,c,d,e,f,$s};return $f;};AD=function(c){var c;return new S.ptr(c,new O(0,0));};AE=function(c){var c,d,e;if(c.IsInt64()){return((d=c.Int64(),new O(d.$high,d.$low)));}return(e=new P.ptr(c),new e.constructor.elem(e));};AF=function(c){var{c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c.Num();e=c.Denom();if(AK(d)&&AK(e)){$s=-1;return(f=new Q.ptr(c),new f.constructor.elem(f));}h=W();$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h.SetRat(c);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=(g=new R.ptr(i),new g.constructor.elem(g));$s=3;case 3:return j;}return;}var $f={$blk:AF,$c:true,$r,c,d,e,f,g,h,i,j,$s};return $f;};AH=function(c){var{c,d,e,f,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c.Sign();$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(d===0){$s=1;continue;}$s=2;continue;case 1:$s=-1;return new AG.constructor.elem(AG);case 2:if(c.IsInf()){$s=-1;return(e=new L.ptr(),new e.constructor.elem(e));}$s=-1;return(f=new R.ptr(c),new f.constructor.elem(f));}return;}var $f={$blk:AH,$c:true,$r,c,d,e,f,$s};return $f;};AI=function(c,d){var{c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{c,d});$s=$s||0;s:while(true){switch($s){case 0:f=c.Kind();$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f===0){e=true;$s=3;continue s;}g=d.Kind();$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}e=g===0;case 3:if(e){$s=1;continue;}$s=2;continue;case 1:$s=-1;return(h=new L.ptr(),new h.constructor.elem(h));case 2:$s=-1;return(i=new S.ptr(c,d),new i.constructor.elem(i));}return;}var $f={$blk:AI,$c:true,$r,c,d,e,f,g,h,i,$s};return $f;};AJ=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:e=W();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e.SetString(c);$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}d=f;g=d[0];h=d[1];if(h){$s=3;continue;}$s=4;continue;case 3:i=AM(g);$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(i){$s=5;continue;}$s=6;continue;case 5:j=g.Sign();$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j===0){$s=8;continue;}$s=9;continue;case 8:c="0";case 9:l=V().SetString(c);$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];if(n){$s=-1;return(o=new Q.ptr(m),new o.constructor.elem(o));}case 6:p=AH(g);$s=12;case 12:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=13;case 13:return q;case 4:$s=-1;return $ifaceNil;}return;}var $f={$blk:AJ,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};AK=function(c){var c;return c.BitLen()<4096;};AL=function(c){var c,d,e;if(C.IsInf(c,0)){return false;}d=C.Frexp(c);e=d[1];return-40960&&(c.charCodeAt((q-1>>0))===105)){$s=11;continue;}$s=12;continue;case 11:r=AJ($substring(c,0,(q-1>>0)));$s=13;case 13:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;if(!($interfaceIsEqual(s,$ifaceNil))){$s=14;continue;}$s=15;continue;case 14:t=AI(new O(0,0),s);$s=16;case 16:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;$s=17;case 17:return u;case 15:case 12:$s=8;continue;case 5:v=c.length;if(v>=2){w=F.UnquoteChar($substring(c,1,(v-1>>0)),39);x=w[0];y=w[3];if($interfaceIsEqual(y,$ifaceNil)){$s=-1;return AQ((new $Int64(0,x)));}}$s=8;continue;case 6:z=F.Unquote(c);aa=z[0];ab=z[1];if($interfaceIsEqual(ab,$ifaceNil)){$s=-1;return AP(aa);}$s=8;continue;case 7:ac=A.Sprintf("%v is not a valid token",new CF([new B.Token(d)]));$s=18;case 18:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}$panic(new $String(ac));case 8:case 1:$s=-1;return(ad=new L.ptr(),new ad.constructor.elem(ad));}return;}var $f={$blk:AT,$c:true,$r,aa,ab,ac,ad,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.MakeFromLiteral=AT;AU=function(c){var{c,d,e,f,g,h,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,M,true)[1]){$s=1;continue;}if($assertType(d,L,true)[1]){$s=2;continue;}$s=3;continue;case 1:e=d.$val;$s=-1;return(e);case 2:f=$clone(d.$val,L);$s=-1;return false;case 3:g=d;h=A.Sprintf("%v not a Bool",new CF([g]));$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$panic(new $String(h));case 4:$s=-1;return false;}return;}var $f={$blk:AU,$c:true,$r,c,d,e,f,g,h,$s};return $f;};$pkg.BoolVal=AU;AV=function(c){var{c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,CD,true)[1]){$s=1;continue;}if($assertType(d,L,true)[1]){$s=2;continue;}$s=3;continue;case 1:e=d.$val;h=e.string();$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=6;case 6:return i;case 2:f=$clone(d.$val,L);$s=-1;return"";case 3:g=d;j=A.Sprintf("%v not a String",new CF([g]));$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}$panic(new $String(j));case 4:$s=-1;return"";}return;}var $f={$blk:AV,$c:true,$r,c,d,e,f,g,h,i,j,$s};return $f;};$pkg.StringVal=AV;AW=function(c){var{c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,O,true)[1]){$s=1;continue;}if($assertType(d,P,true)[1]){$s=2;continue;}if($assertType(d,L,true)[1]){$s=3;continue;}$s=4;continue;case 1:e=d.$val;$s=-1;return[(new $Int64(e.$high,e.$low)),true];case 2:f=$clone(d.$val,P);$s=-1;return[f.val.Int64(),false];case 3:g=$clone(d.$val,L);$s=-1;return[new $Int64(0,0),false];case 4:h=d;i=A.Sprintf("%v not an Int",new CF([h]));$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$panic(new $String(i));case 5:$s=-1;return[new $Int64(0,0),false];}return;}var $f={$blk:AW,$c:true,$r,c,d,e,f,g,h,i,$s};return $f;};$pkg.Int64Val=AW;AX=function(c){var{c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,O,true)[1]){$s=1;continue;}if($assertType(d,P,true)[1]){$s=2;continue;}if($assertType(d,L,true)[1]){$s=3;continue;}$s=4;continue;case 1:e=d.$val;$s=-1;return[(new $Uint64(e.$high,e.$low)),(e.$high>0||(e.$high===0&&e.$low>=0))];case 2:f=$clone(d.$val,P);$s=-1;return[f.val.Uint64(),f.val.IsUint64()];case 3:g=$clone(d.$val,L);$s=-1;return[new $Uint64(0,0),false];case 4:h=d;i=A.Sprintf("%v not an Int",new CF([h]));$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$panic(new $String(i));case 5:$s=-1;return[new $Uint64(0,0),false];}return;}var $f={$blk:AX,$c:true,$r,c,d,e,f,g,h,i,$s};return $f;};$pkg.Uint64Val=AX;AY=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,O,true)[1]){$s=1;continue;}if($assertType(d,P,true)[1]){$s=2;continue;}if($assertType(d,Q,true)[1]){$s=3;continue;}if($assertType(d,R,true)[1]){$s=4;continue;}if($assertType(d,L,true)[1]){$s=5;continue;}$s=6;continue;case 1:e=d.$val;k=($flatten64(e));$s=-1;return[k,(l=(new O(0,k)),(l.$high===e.$high&&l.$low===e.$low))];case 2:f=$clone(d.$val,P);n=W();$s=8;case 8:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n.SetInt(f.val);$s=9;case 9:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o.Float32();$s=10;case 10:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}m=p;q=m[0];r=m[1];$s=-1;return[q,r===0];case 3:g=$clone(d.$val,Q);s=g.val.Float32();$s=11;case 11:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;$s=12;case 12:return t;case 4:h=$clone(d.$val,R);v=h.val.Float32();$s=13;case 13:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=v;w=u[0];x=u[1];$s=-1;return[w,x===0];case 5:i=$clone(d.$val,L);$s=-1;return[0,false];case 6:j=d;y=A.Sprintf("%v not a Float",new CF([j]));$s=14;case 14:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}$panic(new $String(y));case 7:$s=-1;return[0,false];}return;}var $f={$blk:AY,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s};return $f;};$pkg.Float32Val=AY;AZ=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,O,true)[1]){$s=1;continue;}if($assertType(d,P,true)[1]){$s=2;continue;}if($assertType(d,Q,true)[1]){$s=3;continue;}if($assertType(d,R,true)[1]){$s=4;continue;}if($assertType(d,L,true)[1]){$s=5;continue;}$s=6;continue;case 1:e=d.$val;k=($flatten64((new $Int64(e.$high,e.$low))));$s=-1;return[k,(l=(new O(0,k)),(l.$high===e.$high&&l.$low===e.$low))];case 2:f=$clone(d.$val,P);n=W();$s=8;case 8:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n.SetInt(f.val);$s=9;case 9:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o.Float64();$s=10;case 10:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}m=p;q=m[0];r=m[1];$s=-1;return[q,r===0];case 3:g=$clone(d.$val,Q);s=g.val.Float64();$s=11;case 11:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;$s=12;case 12:return t;case 4:h=$clone(d.$val,R);v=h.val.Float64();$s=13;case 13:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=v;w=u[0];x=u[1];$s=-1;return[w,x===0];case 5:i=$clone(d.$val,L);$s=-1;return[0,false];case 6:j=d;y=A.Sprintf("%v not a Float",new CF([j]));$s=14;case 14:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}$panic(new $String(y));case 7:$s=-1;return[0,false];}return;}var $f={$blk:AZ,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s};return $f;};$pkg.Float64Val=AZ;BB=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,$Bool,true)[1]){$s=1;continue;}if($assertType(d,$String,true)[1]){$s=2;continue;}if($assertType(d,$Int64,true)[1]){$s=3;continue;}if($assertType(d,CH,true)[1]){$s=4;continue;}if($assertType(d,CI,true)[1]){$s=5;continue;}if($assertType(d,CG,true)[1]){$s=6;continue;}$s=7;continue;case 1:e=d.$val;$s=-1;return new M((e));case 2:f=d.$val;$s=-1;return new N.ptr(new H.Mutex.ptr(0,0),f,CD.nil,CD.nil);case 3:g=d.$val;$s=-1;return(new O(g.$high,g.$low));case 4:h=d.$val;$s=-1;return AE(h);case 5:i=d.$val;l=AF(i);$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=10;case 10:return m;case 6:j=d.$val;n=AH(j);$s=11;case 11:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;$s=12;case 12:return o;case 7:k=d;$s=-1;return(p=new L.ptr(),new p.constructor.elem(p));case 8:$s=-1;return $ifaceNil;}return;}var $f={$blk:BB,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};$pkg.Make=BB;BC=function(c){var{c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,O,true)[1]){$s=1;continue;}if($assertType(d,P,true)[1]){$s=2;continue;}if($assertType(d,L,true)[1]){$s=3;continue;}$s=4;continue;case 1:e=d.$val;i=(new $Uint64(e.$high,e.$low));if((e.$high<0||(e.$high===0&&e.$low<0))){i=((j=new O(-e.$high,-e.$low),new $Uint64(j.$high,j.$low)));}$s=-1;return 64-E.LeadingZeros64(i)>>0;case 2:f=$clone(d.$val,P);$s=-1;return f.val.BitLen();case 3:g=$clone(d.$val,L);$s=-1;return 0;case 4:h=d;k=A.Sprintf("%v not an Int",new CF([h]));$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}$panic(new $String(k));case 5:$s=-1;return 0;}return;}var $f={$blk:BC,$c:true,$r,c,d,e,f,g,h,i,j,k,$s};return $f;};$pkg.BitLen=BC;BD=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,O,true)[1]){$s=1;continue;}if($assertType(d,P,true)[1]){$s=2;continue;}if($assertType(d,Q,true)[1]){$s=3;continue;}if($assertType(d,R,true)[1]){$s=4;continue;}if($assertType(d,S,true)[1]){$s=5;continue;}if($assertType(d,L,true)[1]){$s=6;continue;}$s=7;continue;case 1:e=d.$val;if((e.$high<0||(e.$high===0&&e.$low<0))){$s=-1;return-1;}else if((e.$high>0||(e.$high===0&&e.$low>0))){$s=-1;return 1;}$s=-1;return 0;case 2:f=$clone(d.$val,P);$s=-1;return f.val.Sign();case 3:g=$clone(d.$val,Q);$s=-1;return g.val.Sign();case 4:h=$clone(d.$val,R);l=h.val.Sign();$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=10;case 10:return m;case 5:i=$clone(d.$val,S);n=BD(i.re);$s=11;case 11:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=BD(i.im);$s=12;case 12:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=n|o;$s=13;case 13:return p;case 6:j=$clone(d.$val,L);$s=-1;return 1;case 7:k=d;q=A.Sprintf("%v not numeric",new CF([k]));$s=14;case 14:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}$panic(new $String(q));case 8:$s=-1;return 0;}return;}var $f={$blk:BD,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};$pkg.Sign=BD;BE=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=new P.ptr(CH.nil);e=c;if($assertType(e,O,true)[1]){$s=1;continue;}if($assertType(e,P,true)[1]){$s=2;continue;}$s=3;continue;case 1:f=e.$val;P.copy(d,X(f));$s=4;continue;case 2:g=$clone(e.$val,P);P.copy(d,g);$s=4;continue;case 3:h=e;i=A.Sprintf("%v not an Int",new CF([h]));$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$panic(new $String(i));case 4:j=d.val.Bits();k=$makeSlice(CJ,($imul(j.$length,4)));l=0;m=j;n=0;while(true){if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);p=0;while(true){if(!(p<4)){break;}((l<0||l>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]=((o<<24>>>24)));o=(q=(8),q<32?(o>>>q):0)>>>0;l=l+(1)>>0;p=p+(1)>>0;}n++;}while(true){if(!(l>0&&((r=l-1>>0,((r<0||r>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+r]))===0))){break;}l=l-(1)>>0;}$s=-1;return $subslice(k,0,l);}return;}var $f={$blk:BE,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};$pkg.Bytes=BE;BF=function(c){var c,d,e,f,g,h,i,j,k,l,m;e=$makeSlice(CK,(d=((c.$length+3>>0))/4,(d===d&&d!==1/0&&d!==-1/0)?d>>0:$throwRuntimeError("integer divide by zero")));f=0;g=0;h=0;i=c;j=0;while(true){if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);g=(g|(((l=h,l<32?(((k>>>0))<>>0)))>>>0;h=h+(8)>>>0;if(h===32){((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]=g);f=f+(1)>>0;g=0;h=0;}j++;}if(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]=g);f=f+(1)>>0;}while(true){if(!(f>0&&((m=f-1>>0,((m<0||m>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+m]))===0))){break;}f=f-(1)>>0;}return AE(U().SetBits($subslice(e,0,f)));};$pkg.MakeFromBytes=BF;BG=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,O,true)[1]||$assertType(d,P,true)[1]){$s=1;continue;}if($assertType(d,Q,true)[1]){$s=2;continue;}if($assertType(d,R,true)[1]){$s=3;continue;}if($assertType(d,L,true)[1]){$s=4;continue;}$s=5;continue;case 1:e=d;$s=-1;return e;case 2:f=$clone(d.$val,Q);$s=-1;return AE(f.val.Num());case 3:g=$clone(d.$val,R);j=AM(g.val);$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=7;continue;}$s=8;continue;case 7:l=g.val.Rat(CI.nil);$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];$s=-1;return AE(m.Num());case 8:$s=6;continue;case 4:h=$clone(d.$val,L);$s=6;continue;$s=6;continue;case 5:i=d;n=A.Sprintf("%v not Int or Float",new CF([i]));$s=11;case 11:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$panic(new $String(n));case 6:$s=-1;return(o=new L.ptr(),new o.constructor.elem(o));}return;}var $f={$blk:BG,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};$pkg.Num=BG;BH=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,O,true)[1]||$assertType(d,P,true)[1]){$s=1;continue;}if($assertType(d,Q,true)[1]){$s=2;continue;}if($assertType(d,R,true)[1]){$s=3;continue;}if($assertType(d,L,true)[1]){$s=4;continue;}$s=5;continue;case 1:e=d;$s=-1;return new O(0,1);case 2:f=$clone(d.$val,Q);$s=-1;return AE(f.val.Denom());case 3:g=$clone(d.$val,R);j=AM(g.val);$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=7;continue;}$s=8;continue;case 7:l=g.val.Rat(CI.nil);$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];$s=-1;return AE(m.Denom());case 8:$s=6;continue;case 4:h=$clone(d.$val,L);$s=6;continue;$s=6;continue;case 5:i=d;n=A.Sprintf("%v not Int or Float",new CF([i]));$s=11;case 11:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$panic(new $String(n));case 6:$s=-1;return(o=new L.ptr(),new o.constructor.elem(o));}return;}var $f={$blk:BH,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};$pkg.Denom=BH;BI=function(c){var{c,d,e,f,g,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,L,true)[1]){$s=1;continue;}if($assertType(d,O,true)[1]||$assertType(d,P,true)[1]||$assertType(d,Q,true)[1]||$assertType(d,R,true)[1]){$s=2;continue;}$s=3;continue;case 1:$s=-1;return c;case 2:e=AI(new O(0,0),c);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=6;case 6:return f;case 3:g=A.Sprintf("%v not Int or Float",new CF([c]));$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$panic(new $String(g));case 4:$s=-1;return $ifaceNil;}return;}var $f={$blk:BI,$c:true,$r,c,d,e,f,g,$s};return $f;};$pkg.MakeImag=BI;BJ=function(c){var{c,d,e,f,g,h,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,L,true)[1]||$assertType(d,O,true)[1]||$assertType(d,P,true)[1]||$assertType(d,Q,true)[1]||$assertType(d,R,true)[1]){$s=1;continue;}if($assertType(d,S,true)[1]){$s=2;continue;}$s=3;continue;case 1:e=d;$s=-1;return e;case 2:f=$clone(d.$val,S);$s=-1;return f.re;case 3:g=d;h=A.Sprintf("%v not numeric",new CF([g]));$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$panic(new $String(h));case 4:$s=-1;return $ifaceNil;}return;}var $f={$blk:BJ,$c:true,$r,c,d,e,f,g,h,$s};return $f;};$pkg.Real=BJ;BK=function(c){var{c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,L,true)[1]){$s=1;continue;}if($assertType(d,O,true)[1]||$assertType(d,P,true)[1]||$assertType(d,Q,true)[1]||$assertType(d,R,true)[1]){$s=2;continue;}if($assertType(d,S,true)[1]){$s=3;continue;}$s=4;continue;case 1:e=$clone(d.$val,L);$s=-1;return new e.constructor.elem(e);case 2:f=d;$s=-1;return new O(0,0);case 3:g=$clone(d.$val,S);$s=-1;return g.im;case 4:h=d;i=A.Sprintf("%v not numeric",new CF([h]));$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$panic(new $String(i));case 5:$s=-1;return $ifaceNil;}return;}var $f={$blk:BK,$c:true,$r,c,d,e,f,g,h,i,$s};return $f;};$pkg.Imag=BK;BL=function(c){var{aa,ab,ac,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,O,true)[1]||$assertType(d,P,true)[1]){$s=1;continue;}if($assertType(d,Q,true)[1]){$s=2;continue;}if($assertType(d,R,true)[1]){$s=3;continue;}if($assertType(d,S,true)[1]){$s=4;continue;}$s=5;continue;case 1:e=d;$s=-1;return e;case 2:f=$clone(d.$val,Q);if(f.val.IsInt()){$s=-1;return AE(f.val.Num());}$s=5;continue;case 3:g=$clone(d.$val,R);i=AM(g.val);$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(i){$s=6;continue;}$s=7;continue;case 6:j=U();l=g.val.Int(j);$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[1];if(m===0){$s=-1;return AE(j);}n=new D.Float.ptr(0,0,0,0,false,D.nat.nil,0);o=n.SetPrec(508);$s=10;case 10:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;n.SetMode(2);p=n.Set(g.val);$s=11;case 11:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;r=n.Int(j);$s=12;case 12:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;s=q[1];if(s===0){$s=-1;return AE(j);}n.SetMode(3);t=n.Set(g.val);$s=13;case 13:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t;v=n.Int(j);$s=14;case 14:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=v;w=u[1];if(w===0){$s=-1;return AE(j);}case 7:$s=5;continue;case 4:h=$clone(d.$val,S);x=BM(new h.constructor.elem(h));$s=15;case 15:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;z=y.Kind();$s=18;case 18:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}if(z===4){$s=16;continue;}$s=17;continue;case 16:aa=BL(y);$s=19;case 19:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa;$s=20;case 20:return ab;case 17:case 5:$s=-1;return(ac=new L.ptr(),new ac.constructor.elem(ac));}return;}var $f={$blk:BL,$c:true,$r,aa,ab,ac,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.ToInt=BL;BM=function(c){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,O,true)[1]){$s=1;continue;}if($assertType(d,P,true)[1]){$s=2;continue;}if($assertType(d,Q,true)[1]||$assertType(d,R,true)[1]){$s=3;continue;}if($assertType(d,S,true)[1]){$s=4;continue;}$s=5;continue;case 1:e=d.$val;$s=-1;return(i=Y(e),new i.constructor.elem(i));case 2:f=$clone(d.$val,P);if(AK(f.val)){$s=-1;return(j=AA($clone(f,P)),new j.constructor.elem(j));}l=AB($clone(f,P));$s=6;case 6:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=(k=l,new k.constructor.elem(k));$s=7;case 7:return m;case 3:g=d;$s=-1;return g;case 4:h=$clone(d.$val,S);n=BD(h.im);$s=10;case 10:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}if(n===0){$s=8;continue;}$s=9;continue;case 8:o=BM(h.re);$s=11;case 11:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;$s=12;case 12:return p;case 9:case 5:$s=-1;return(q=new L.ptr(),new q.constructor.elem(q));}return;}var $f={$blk:BM,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};$pkg.ToFloat=BM;BN=function(c){var c,d,e,f,g,h;d=c;if($assertType(d,O,true)[1]||$assertType(d,P,true)[1]||$assertType(d,Q,true)[1]||$assertType(d,R,true)[1]){e=d;return(g=AD(e),new g.constructor.elem(g));}else if($assertType(d,S,true)[1]){f=$clone(d.$val,S);return new f.constructor.elem(f);}return(h=new L.ptr(),new h.constructor.elem(h));};$pkg.ToComplex=BN;BO=function(c){var c;return(-10){$s=32;continue;}$s=33;continue;case 32:aj=ab.AndNot(ab,U().Lsh(D.NewInt(new $Int64(-1,4294967295)),e));$s=34;case 34:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}aj;case 33:$s=-1;return AE(ab);case 5:ak=d;if($assertType(ak,L,true)[1]){al=$clone(ak.$val,L);$s=-1;return new al.constructor.elem(al);}else if($assertType(ak,M,true)[1]){am=ak.$val;$s=-1;return new M(!am);}case 6:case 1:case 31:an=A.Sprintf("invalid unary operation %s%v",new CF([new B.Token(c),d]));$s=35;case 35:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}$panic(new $String(an));$s=-1;return $ifaceNil;}return;}var $f={$blk:BQ,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.UnaryOp=BQ;BR=function(c){var c,d;d=c;if($assertType(d,L,true)[1]){return 0;}else if($assertType(d,M,true)[1]||$assertType(d,CD,true)[1]){return 1;}else if($assertType(d,O,true)[1]){return 2;}else if($assertType(d,P,true)[1]){return 3;}else if($assertType(d,Q,true)[1]){return 4;}else if($assertType(d,R,true)[1]){return 5;}else if($assertType(d,S,true)[1]){return 6;}else{return-1;}};BS=function(c,d){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{c,d});$s=$s||0;s:while(true){switch($s){case 0:e=$ifaceNil;f=$ifaceNil;g=BR(c);h=BR(d);i=g;j=h;if(ij){$s=3;continue;}$s=4;continue;case 2:l=BT(c,d);$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;c=k[0];d=k[1];$s=4;continue;case 3:n=BT(d,c);$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;d=m[0];c=m[1];case 4:case 1:o=c;p=d;e=o;f=p;$s=-1;return[e,f];}return;}var $f={$blk:BS,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};BT=function(c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{c,d});$s=$s||0;s:while(true){switch($s){case 0:e=$ifaceNil;f=$ifaceNil;g=d;if($assertType(g,P,true)[1]){$s=1;continue;}if($assertType(g,Q,true)[1]){$s=2;continue;}if($assertType(g,R,true)[1]){$s=3;continue;}if($assertType(g,S,true)[1]){$s=4;continue;}$s=5;continue;case 1:h=c;if($assertType(h,O,true)[1]){i=h.$val;j=(k=X(i),new k.constructor.elem(k));l=d;e=j;f=l;$s=-1;return[e,f];}$s=5;continue;case 2:m=c;if($assertType(m,O,true)[1]){n=m.$val;p=(q=Y(n),new q.constructor.elem(q));r=d;e=p;f=r;$s=-1;return[e,f];}else if($assertType(m,P,true)[1]){o=$clone(m.$val,P);s=(t=AA($clone(o,P)),new t.constructor.elem(t));u=d;e=s;f=u;$s=-1;return[e,f];}$s=5;continue;case 3:v=c;if($assertType(v,O,true)[1]){$s=6;continue;}if($assertType(v,P,true)[1]){$s=7;continue;}if($assertType(v,Q,true)[1]){$s=8;continue;}$s=9;continue;case 6:w=v.$val;ab=Z(w);$s=10;case 10:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}z=(aa=ab,new aa.constructor.elem(aa));ac=d;e=z;f=ac;ad=[e,f];$s=11;case 11:return ad;case 7:x=$clone(v.$val,P);ag=AB($clone(x,P));$s=12;case 12:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ae=(af=ag,new af.constructor.elem(af));ah=d;e=ae;f=ah;ai=[e,f];$s=13;case 13:return ai;case 8:y=$clone(v.$val,Q);al=AC($clone(y,Q));$s=14;case 14:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}aj=(ak=al,new ak.constructor.elem(ak));am=d;e=aj;f=am;an=[e,f];$s=15;case 15:return an;case 9:$s=5;continue;case 4:ao=(ap=AD(c),new ap.constructor.elem(ap));aq=d;e=ao;f=aq;$s=-1;return[e,f];case 5:ar=c;as=c;e=ar;f=as;$s=-1;return[e,f];}return;}var $f={$blk:BT,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BU=function(c,d,e){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{c,d,e});$s=$s||0;s:while(true){switch($s){case 0:g=BS(c,e);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];j=h;if($assertType(j,L,true)[1]){$s=2;continue;}if($assertType(j,M,true)[1]){$s=3;continue;}if($assertType(j,O,true)[1]){$s=4;continue;}if($assertType(j,P,true)[1]){$s=5;continue;}if($assertType(j,Q,true)[1]){$s=6;continue;}if($assertType(j,R,true)[1]){$s=7;continue;}if($assertType(j,S,true)[1]){$s=8;continue;}if($assertType(j,CD,true)[1]){$s=9;continue;}$s=10;continue;case 2:k=$clone(j.$val,L);$s=-1;return new k.constructor.elem(k);case 3:l=j.$val;s=$assertType(i,M);t=d;if(t===(34)){$s=-1;return new M(l&&s);}else if(t===(35)){$s=-1;return new M(l||s);}$s=10;continue;case 4:m=j.$val;u=(new $Int64(m.$high,m.$low));w=((v=$assertType(i,O),new $Int64(v.$high,v.$low)));x=new $Int64(0,0);y=d;if(y===(12)){$s=12;continue;}if(y===(13)){$s=13;continue;}if(y===(14)){$s=14;continue;}if(y===(15)){$s=15;continue;}if(y===(26)){$s=16;continue;}if(y===(16)){$s=17;continue;}if(y===(17)){$s=18;continue;}if(y===(18)){$s=19;continue;}if(y===(19)){$s=20;continue;}if(y===(22)){$s=21;continue;}$s=22;continue;case 12:if(!BP(u)||!BP(w)){$s=24;continue;}$s=25;continue;case 24:z=U().Add(D.NewInt(u),D.NewInt(w));$s=26;case 26:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=AE(z);$s=27;case 27:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa;$s=28;case 28:return ab;case 25:x=new $Int64(u.$high+w.$high,u.$low+w.$low);$s=23;continue;case 13:if(!BP(u)||!BP(w)){$s=29;continue;}$s=30;continue;case 29:ac=U().Sub(D.NewInt(u),D.NewInt(w));$s=31;case 31:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=AE(ac);$s=32;case 32:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;$s=33;case 33:return ae;case 30:x=new $Int64(u.$high-w.$high,u.$low-w.$low);$s=23;continue;case 14:if(!BO(u)||!BO(w)){$s=34;continue;}$s=35;continue;case 34:af=U().Mul(D.NewInt(u),D.NewInt(w));$s=36;case 36:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=AE(af);$s=37;case 37:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag;$s=38;case 38:return ah;case 35:x=$mul64(u,w);$s=23;continue;case 15:ai=D.NewRat(u,w);$s=39;case 39:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=AF(ai);$s=40;case 40:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=aj;$s=41;case 41:return ak;case 16:x=$div64(u,w,false);$s=23;continue;case 17:x=$div64(u,w,true);$s=23;continue;case 18:x=new $Int64(u.$high&w.$high,(u.$low&w.$low)>>>0);$s=23;continue;case 19:x=new $Int64(u.$high|w.$high,(u.$low|w.$low)>>>0);$s=23;continue;case 20:x=new $Int64(u.$high^w.$high,(u.$low^w.$low)>>>0);$s=23;continue;case 21:x=new $Int64(u.$high&~w.$high,(u.$low&~w.$low)>>>0);$s=23;continue;case 22:$s=42;continue;case 23:case 11:$s=-1;return(new O(x.$high,x.$low));case 5:n=$clone(j.$val,P);al=n.val;am=$assertType(i,P).val;an=U();ao=d;if(ao===(12)){$s=44;continue;}if(ao===(13)){$s=45;continue;}if(ao===(14)){$s=46;continue;}if(ao===(15)){$s=47;continue;}if(ao===(26)){$s=48;continue;}if(ao===(16)){$s=49;continue;}if(ao===(17)){$s=50;continue;}if(ao===(18)){$s=51;continue;}if(ao===(19)){$s=52;continue;}if(ao===(22)){$s=53;continue;}$s=54;continue;case 44:ap=an.Add(al,am);$s=56;case 56:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ap;$s=55;continue;case 45:aq=an.Sub(al,am);$s=57;case 57:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}aq;$s=55;continue;case 46:ar=an.Mul(al,am);$s=58;case 58:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}ar;$s=55;continue;case 47:as=V().SetFrac(al,am);$s=59;case 59:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=AF(as);$s=60;case 60:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=at;$s=61;case 61:return au;case 48:av=an.Quo(al,am);$s=62;case 62:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}av;$s=55;continue;case 49:aw=an.Rem(al,am);$s=63;case 63:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}aw;$s=55;continue;case 50:ax=an.And(al,am);$s=64;case 64:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ax;$s=55;continue;case 51:ay=an.Or(al,am);$s=65;case 65:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}ay;$s=55;continue;case 52:az=an.Xor(al,am);$s=66;case 66:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}az;$s=55;continue;case 53:ba=an.AndNot(al,am);$s=67;case 67:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}ba;$s=55;continue;case 54:$s=42;continue;case 55:case 43:$s=-1;return AE(an);case 6:o=$clone(j.$val,Q);bb=o.val;bc=$assertType(i,Q).val;bd=V();be=d;if(be===(12)){$s=69;continue;}if(be===(13)){$s=70;continue;}if(be===(14)){$s=71;continue;}if(be===(15)){$s=72;continue;}$s=73;continue;case 69:bf=bd.Add(bb,bc);$s=75;case 75:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bf;$s=74;continue;case 70:bg=bd.Sub(bb,bc);$s=76;case 76:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bg;$s=74;continue;case 71:bh=bd.Mul(bb,bc);$s=77;case 77:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bh;$s=74;continue;case 72:bi=bd.Quo(bb,bc);$s=78;case 78:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bi;$s=74;continue;case 73:$s=42;continue;case 74:case 68:bj=AF(bd);$s=79;case 79:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bk=bj;$s=80;case 80:return bk;case 7:p=$clone(j.$val,R);bl=p.val;bm=$assertType(i,R).val;bn=W();$s=81;case 81:if($c){$c=false;bn=bn.$blk();}if(bn&&bn.$blk!==undefined){break s;}bo=bn;bp=d;if(bp===(12)){$s=83;continue;}if(bp===(13)){$s=84;continue;}if(bp===(14)){$s=85;continue;}if(bp===(15)){$s=86;continue;}$s=87;continue;case 83:bq=bo.Add(bl,bm);$s=89;case 89:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}bq;$s=88;continue;case 84:br=bo.Sub(bl,bm);$s=90;case 90:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}br;$s=88;continue;case 85:bs=bo.Mul(bl,bm);$s=91;case 91:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}bs;$s=88;continue;case 86:bt=bo.Quo(bl,bm);$s=92;case 92:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}bt;$s=88;continue;case 87:$s=42;continue;case 88:case 82:bu=AH(bo);$s=93;case 93:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}bv=bu;$s=94;case 94:return bv;case 8:q=$clone(j.$val,S);bw=$clone($assertType(i,S),S);bx=q.re;by=q.im;bz=bx;ca=by;cb=bw.re;cc=bw.im;cd=cb;ce=cc;cf=$ifaceNil;cg=$ifaceNil;ch=cf;ci=cg;cj=d;if(cj===(12)){$s=96;continue;}if(cj===(13)){$s=97;continue;}if(cj===(14)){$s=98;continue;}if(cj===(15)){$s=99;continue;}$s=100;continue;case 96:ck=BV(bz,cd);$s=102;case 102:if($c){$c=false;ck=ck.$blk();}if(ck&&ck.$blk!==undefined){break s;}ch=ck;cl=BV(ca,ce);$s=103;case 103:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}ci=cl;$s=101;continue;case 97:cm=BW(bz,cd);$s=104;case 104:if($c){$c=false;cm=cm.$blk();}if(cm&&cm.$blk!==undefined){break s;}ch=cm;cn=BW(ca,ce);$s=105;case 105:if($c){$c=false;cn=cn.$blk();}if(cn&&cn.$blk!==undefined){break s;}ci=cn;$s=101;continue;case 98:co=BX(bz,cd);$s=106;case 106:if($c){$c=false;co=co.$blk();}if(co&&co.$blk!==undefined){break s;}cp=co;cq=BX(ca,ce);$s=107;case 107:if($c){$c=false;cq=cq.$blk();}if(cq&&cq.$blk!==undefined){break s;}cr=cq;cs=BX(ca,cd);$s=108;case 108:if($c){$c=false;cs=cs.$blk();}if(cs&&cs.$blk!==undefined){break s;}ct=cs;cu=BX(bz,ce);$s=109;case 109:if($c){$c=false;cu=cu.$blk();}if(cu&&cu.$blk!==undefined){break s;}cv=cu;cw=BW(cp,cr);$s=110;case 110:if($c){$c=false;cw=cw.$blk();}if(cw&&cw.$blk!==undefined){break s;}ch=cw;cx=BV(ct,cv);$s=111;case 111:if($c){$c=false;cx=cx.$blk();}if(cx&&cx.$blk!==undefined){break s;}ci=cx;$s=101;continue;case 99:cy=BX(bz,cd);$s=112;case 112:if($c){$c=false;cy=cy.$blk();}if(cy&&cy.$blk!==undefined){break s;}cz=cy;da=BX(ca,ce);$s=113;case 113:if($c){$c=false;da=da.$blk();}if(da&&da.$blk!==undefined){break s;}db=da;dc=BX(ca,cd);$s=114;case 114:if($c){$c=false;dc=dc.$blk();}if(dc&&dc.$blk!==undefined){break s;}dd=dc;de=BX(bz,ce);$s=115;case 115:if($c){$c=false;de=de.$blk();}if(de&&de.$blk!==undefined){break s;}df=de;dg=BX(cd,cd);$s=116;case 116:if($c){$c=false;dg=dg.$blk();}if(dg&&dg.$blk!==undefined){break s;}dh=dg;di=BX(ce,ce);$s=117;case 117:if($c){$c=false;di=di.$blk();}if(di&&di.$blk!==undefined){break s;}dj=di;dk=BV(dh,dj);$s=118;case 118:if($c){$c=false;dk=dk.$blk();}if(dk&&dk.$blk!==undefined){break s;}dl=dk;dm=BV(cz,db);$s=119;case 119:if($c){$c=false;dm=dm.$blk();}if(dm&&dm.$blk!==undefined){break s;}ch=dm;dn=BY(ch,dl);$s=120;case 120:if($c){$c=false;dn=dn.$blk();}if(dn&&dn.$blk!==undefined){break s;}ch=dn;dp=BW(dd,df);$s=121;case 121:if($c){$c=false;dp=dp.$blk();}if(dp&&dp.$blk!==undefined){break s;}ci=dp;dq=BY(ci,dl);$s=122;case 122:if($c){$c=false;dq=dq.$blk();}if(dq&&dq.$blk!==undefined){break s;}ci=dq;$s=101;continue;case 100:$s=42;continue;case 101:case 95:dr=AI(ch,ci);$s=123;case 123:if($c){$c=false;dr=dr.$blk();}if(dr&&dr.$blk!==undefined){break s;}ds=dr;$s=124;case 124:return ds;case 9:r=j.$val;if(d===12){$s=-1;return new N.ptr(new H.Mutex.ptr(0,0),"",r,$assertType(i,CD));}case 10:case 42:dt=A.Sprintf("invalid binary operation %v %s %v",new CF([c,new B.Token(d),e]));$s=125;case 125:if($c){$c=false;dt=dt.$blk();}if(dt&&dt.$blk!==undefined){break s;}$panic(new $String(dt));$s=-1;return $ifaceNil;}return;}var $f={$blk:BU,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.BinaryOp=BU;BV=function(c,d){var{c,d,e,f,$s,$r,$c}=$restore(this,{c,d});$s=$s||0;s:while(true){switch($s){case 0:e=BU(c,12,d);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:BV,$c:true,$r,c,d,e,f,$s};return $f;};BW=function(c,d){var{c,d,e,f,$s,$r,$c}=$restore(this,{c,d});$s=$s||0;s:while(true){switch($s){case 0:e=BU(c,13,d);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:BW,$c:true,$r,c,d,e,f,$s};return $f;};BX=function(c,d){var{c,d,e,f,$s,$r,$c}=$restore(this,{c,d});$s=$s||0;s:while(true){switch($s){case 0:e=BU(c,14,d);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:BX,$c:true,$r,c,d,e,f,$s};return $f;};BY=function(c,d){var{c,d,e,f,$s,$r,$c}=$restore(this,{c,d});$s=$s||0;s:while(true){switch($s){case 0:e=BU(c,15,d);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:BY,$c:true,$r,c,d,e,f,$s};return $f;};BZ=function(c,d,e){var{c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=c;if($assertType(f,L,true)[1]){$s=1;continue;}if($assertType(f,O,true)[1]){$s=2;continue;}if($assertType(f,P,true)[1]){$s=3;continue;}$s=4;continue;case 1:g=$clone(f.$val,L);$s=-1;return new g.constructor.elem(g);case 2:h=f.$val;if(e===0){$s=-1;return h;}j=d;if(j===(20)){k=X(h).val;$s=-1;return AE(k.Lsh(k,e));}else if(j===(21)){$s=-1;return $shiftRightInt64(h,e);}$s=4;continue;case 3:i=$clone(f.$val,P);if(e===0){$s=-1;return new i.constructor.elem(i);}l=U();m=d;if(m===(20)){$s=6;continue;}if(m===(21)){$s=7;continue;}$s=8;continue;case 6:$s=-1;return AE(l.Lsh(i.val,e));case 7:n=l.Rsh(i.val,e);$s=9;case 9:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=AE(n);$s=10;case 10:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;$s=11;case 11:return p;case 8:case 5:case 4:q=A.Sprintf("invalid shift %v %s %d",new CF([c,new B.Token(d),new $Uint(e)]));$s=12;case 12:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}$panic(new $String(q));$s=-1;return $ifaceNil;}return;}var $f={$blk:BZ,$c:true,$r,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};$pkg.Shift=BZ;CA=function(c,d){var{c,d,e,f,$s,$r,$c}=$restore(this,{c,d});$s=$s||0;s:while(true){switch($s){case 0:e=d;if(e===(39)){$s=-1;return c===0;}else if(e===(44)){$s=-1;return!((c===0));}else if(e===(40)){$s=-1;return c<0;}else if(e===(45)){$s=-1;return c<=0;}else if(e===(41)){$s=-1;return c>0;}else if(e===(46)){$s=-1;return c>=0;}f=A.Sprintf("invalid comparison %v %s 0",new CF([new $Int(c),new B.Token(d)]));$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$panic(new $String(f));$s=-1;return false;}return;}var $f={$blk:CA,$c:true,$r,c,d,e,f,$s};return $f;};CB=function(c,d,e){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{c,d,e});$s=$s||0;s:while(true){switch($s){case 0:g=BS(c,e);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];j=h;if($assertType(j,L,true)[1]){$s=2;continue;}if($assertType(j,M,true)[1]){$s=3;continue;}if($assertType(j,O,true)[1]){$s=4;continue;}if($assertType(j,P,true)[1]){$s=5;continue;}if($assertType(j,Q,true)[1]){$s=6;continue;}if($assertType(j,R,true)[1]){$s=7;continue;}if($assertType(j,S,true)[1]){$s=8;continue;}if($assertType(j,CD,true)[1]){$s=9;continue;}$s=10;continue;case 2:k=$clone(j.$val,L);$s=-1;return false;case 3:l=j.$val;s=$assertType(i,M);t=d;if(t===(39)){$s=-1;return l===s;}else if(t===(44)){$s=-1;return!(l===s);}$s=10;continue;case 4:m=j.$val;u=$assertType(i,O);v=d;if(v===(39)){$s=-1;return(m.$high===u.$high&&m.$low===u.$low);}else if(v===(44)){$s=-1;return!((m.$high===u.$high&&m.$low===u.$low));}else if(v===(40)){$s=-1;return(m.$highu.$high||(m.$high===u.$high&&m.$low>u.$low));}else if(v===(46)){$s=-1;return(m.$high>u.$high||(m.$high===u.$high&&m.$low>=u.$low));}$s=10;continue;case 5:n=$clone(j.$val,P);w=CA(n.val.Cmp($assertType(i,P).val),d);$s=11;case 11:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;$s=12;case 12:return x;case 6:o=$clone(j.$val,Q);y=o.val.Cmp($assertType(i,Q).val);$s=13;case 13:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=CA(y,d);$s=14;case 14:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;$s=15;case 15:return aa;case 7:p=$clone(j.$val,R);ab=p.val.Cmp($assertType(i,R).val);$s=16;case 16:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=CA(ab,d);$s=17;case 17:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;$s=18;case 18:return ad;case 8:q=$clone(j.$val,S);ae=$clone($assertType(i,S),S);af=CB(q.re,39,ae.re);$s=19;case 19:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;ah=CB(q.im,39,ae.im);$s=20;case 20:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;aj=d;if(aj===(39)){$s=-1;return ag&&ai;}else if(aj===(44)){$s=-1;return!ag||!ai;}$s=10;continue;case 9:r=j.$val;ak=r.string();$s=21;case 21:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak;am=$assertType(i,CD).string();$s=22;case 22:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am;ao=d;if(ao===(39)){$s=-1;return al===an;}else if(ao===(44)){$s=-1;return!(al===an);}else if(ao===(40)){$s=-1;return alan;}else if(ao===(46)){$s=-1;return al>=an;}case 10:ap=A.Sprintf("invalid comparison %v %s %v",new CF([c,new B.Token(d),e]));$s=23;case 23:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}$panic(new $String(ap));$s=-1;return false;}return;}var $f={$blk:CB,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.Compare=CB;J.prototype.String=function(){var c,d;c=this.$val;if(c<0||c>=6){return"Kind("+F.FormatInt((new $Int64(0,c)),10)+")";}return $substring("UnknownBoolStringIntFloatComplex",((c<0||c>=CC.length)?($throwRuntimeError("index out of range"),undefined):CC[c]),(d=c+1>>0,((d<0||d>=CC.length)?($throwRuntimeError("index out of range"),undefined):CC[d])));};$ptrType(J).prototype.String=function(){return new J(this.$get()).String();};J.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];L.methods=[{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[J],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"ExactString",name:"ExactString",pkg:"",typ:$funcType([],[$String],false)},{prop:"implementsValue",name:"implementsValue",pkg:"go/constant",typ:$funcType([],[],false)}];M.methods=[{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[J],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"ExactString",name:"ExactString",pkg:"",typ:$funcType([],[$String],false)},{prop:"implementsValue",name:"implementsValue",pkg:"go/constant",typ:$funcType([],[],false)}];CD.methods=[{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[J],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"string",name:"string",pkg:"go/constant",typ:$funcType([],[$String],false)},{prop:"appendReverse",name:"appendReverse",pkg:"go/constant",typ:$funcType([CE],[CE],false)},{prop:"ExactString",name:"ExactString",pkg:"",typ:$funcType([],[$String],false)},{prop:"implementsValue",name:"implementsValue",pkg:"go/constant",typ:$funcType([],[],false)}];O.methods=[{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[J],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"ExactString",name:"ExactString",pkg:"",typ:$funcType([],[$String],false)},{prop:"implementsValue",name:"implementsValue",pkg:"go/constant",typ:$funcType([],[],false)}];P.methods=[{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[J],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"ExactString",name:"ExactString",pkg:"",typ:$funcType([],[$String],false)},{prop:"implementsValue",name:"implementsValue",pkg:"go/constant",typ:$funcType([],[],false)}];Q.methods=[{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[J],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"ExactString",name:"ExactString",pkg:"",typ:$funcType([],[$String],false)},{prop:"implementsValue",name:"implementsValue",pkg:"go/constant",typ:$funcType([],[],false)}];R.methods=[{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[J],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"ExactString",name:"ExactString",pkg:"",typ:$funcType([],[$String],false)},{prop:"implementsValue",name:"implementsValue",pkg:"go/constant",typ:$funcType([],[],false)}];S.methods=[{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[J],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"ExactString",name:"ExactString",pkg:"",typ:$funcType([],[$String],false)},{prop:"implementsValue",name:"implementsValue",pkg:"go/constant",typ:$funcType([],[],false)}];K.init([{prop:"ExactString",name:"ExactString",pkg:"",typ:$funcType([],[$String],false)},{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[J],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"implementsValue",name:"implementsValue",pkg:"go/constant",typ:$funcType([],[],false)}]);L.init("",[]);N.init("go/constant",[{prop:"mu",name:"mu",embedded:false,exported:false,typ:H.Mutex,tag:""},{prop:"s",name:"s",embedded:false,exported:false,typ:$String,tag:""},{prop:"l",name:"l",embedded:false,exported:false,typ:CD,tag:""},{prop:"r",name:"r",embedded:false,exported:false,typ:CD,tag:""}]);P.init("go/constant",[{prop:"val",name:"val",embedded:false,exported:false,typ:CH,tag:""}]);Q.init("go/constant",[{prop:"val",name:"val",embedded:false,exported:false,typ:CI,tag:""}]);R.init("go/constant",[{prop:"val",name:"val",embedded:false,exported:false,typ:CG,tag:""}]);S.init("go/constant",[{prop:"re",name:"re",embedded:false,exported:false,typ:K,tag:""},{prop:"im",name:"im",embedded:false,exported:false,typ:K,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=W();$s=10;case 10:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}AG=new R.ptr(b);CC=$toNativeArray($kindUint8,[0,7,11,17,20,25,32]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["regexp/syntax"]=(function(){var $pkg={},$init,E,A,B,C,D,G,H,K,L,N,Q,AO,AP,AQ,AR,BC,BP,BV,BX,BY,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,M,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,BD,BU,CA,CB,F,I,J,P,R,S,T,U,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BQ,BR,BS,BT,BW,BZ;E=$packages["sort"];A=$packages["strconv"];B=$packages["strings"];C=$packages["unicode"];D=$packages["unicode/utf8"];G=$pkg.Regexp=$newType(0,$kindStruct,"syntax.Regexp",true,"regexp/syntax",true,function(Op_,Flags_,Sub_,Sub0_,Rune_,Rune0_,Min_,Max_,Cap_,Name_){this.$val=this;if(arguments.length===0){this.Op=0;this.Flags=0;this.Sub=CH.nil;this.Sub0=CI.zero();this.Rune=CD.nil;this.Rune0=CJ.zero();this.Min=0;this.Max=0;this.Cap=0;this.Name="";return;}this.Op=Op_;this.Flags=Flags_;this.Sub=Sub_;this.Sub0=Sub0_;this.Rune=Rune_;this.Rune0=Rune0_;this.Min=Min_;this.Max=Max_;this.Cap=Cap_;this.Name=Name_;});H=$pkg.Op=$newType(1,$kindUint8,"syntax.Op",true,"regexp/syntax",true,null);K=$pkg.Prog=$newType(0,$kindStruct,"syntax.Prog",true,"regexp/syntax",true,function(Inst_,Start_,NumCap_){this.$val=this;if(arguments.length===0){this.Inst=CP.nil;this.Start=0;this.NumCap=0;return;}this.Inst=Inst_;this.Start=Start_;this.NumCap=NumCap_;});L=$pkg.InstOp=$newType(1,$kindUint8,"syntax.InstOp",true,"regexp/syntax",true,null);N=$pkg.EmptyOp=$newType(1,$kindUint8,"syntax.EmptyOp",true,"regexp/syntax",true,null);Q=$pkg.Inst=$newType(0,$kindStruct,"syntax.Inst",true,"regexp/syntax",true,function(Op_,Out_,Arg_,Rune_){this.$val=this;if(arguments.length===0){this.Op=0;this.Out=0;this.Arg=0;this.Rune=CD.nil;return;}this.Op=Op_;this.Out=Out_;this.Arg=Arg_;this.Rune=Rune_;});AO=$pkg.Error=$newType(0,$kindStruct,"syntax.Error",true,"regexp/syntax",true,function(Code_,Expr_){this.$val=this;if(arguments.length===0){this.Code="";this.Expr="";return;}this.Code=Code_;this.Expr=Expr_;});AP=$pkg.ErrorCode=$newType(8,$kindString,"syntax.ErrorCode",true,"regexp/syntax",true,null);AQ=$pkg.Flags=$newType(2,$kindUint16,"syntax.Flags",true,"regexp/syntax",true,null);AR=$pkg.parser=$newType(0,$kindStruct,"syntax.parser",true,"regexp/syntax",false,function(flags_,stack_,free_,numCap_,wholeRegexp_,tmpClass_,numRegexp_,height_){this.$val=this;if(arguments.length===0){this.flags=0;this.stack=CH.nil;this.free=CG.nil;this.numCap=0;this.wholeRegexp="";this.tmpClass=CD.nil;this.numRegexp=0;this.height=false;return;}this.flags=flags_;this.stack=stack_;this.free=free_;this.numCap=numCap_;this.wholeRegexp=wholeRegexp_;this.tmpClass=tmpClass_;this.numRegexp=numRegexp_;this.height=height_;});BC=$pkg.charGroup=$newType(0,$kindStruct,"syntax.charGroup",true,"regexp/syntax",false,function(sign_,class$1_){this.$val=this;if(arguments.length===0){this.sign=0;this.class$1=CD.nil;return;}this.sign=sign_;this.class$1=class$1_;});BP=$pkg.ranges=$newType(0,$kindStruct,"syntax.ranges",true,"regexp/syntax",false,function(p_){this.$val=this;if(arguments.length===0){this.p=CM.nil;return;}this.p=p_;});BV=$pkg.patchList=$newType(0,$kindStruct,"syntax.patchList",true,"regexp/syntax",false,function(head_,tail_){this.$val=this;if(arguments.length===0){this.head=0;this.tail=0;return;}this.head=head_;this.tail=tail_;});BX=$pkg.frag=$newType(0,$kindStruct,"syntax.frag",true,"regexp/syntax",false,function(i_,out_,nullable_){this.$val=this;if(arguments.length===0){this.i=0;this.out=new BV.ptr(0,0);this.nullable=false;return;}this.i=i_;this.out=out_;this.nullable=nullable_;});BY=$pkg.compiler=$newType(0,$kindStruct,"syntax.compiler",true,"regexp/syntax",false,function(p_){this.$val=this;if(arguments.length===0){this.p=CO.nil;return;}this.p=p_;});CC=$sliceType($String);CD=$sliceType($Int32);CE=$sliceType(C.Range16);CF=$sliceType(C.Range32);CG=$ptrType(G);CH=$sliceType(CG);CI=$arrayType(CG,1);CJ=$arrayType($Int32,2);CK=$ptrType(B.Builder);CL=$sliceType($Uint8);CM=$ptrType(CD);CN=$ptrType(C.RangeTable);CO=$ptrType(K);CP=$sliceType(Q);CQ=$ptrType(Q);CR=$ptrType(AO);CS=$ptrType(AR);CT=$mapType(CG,$Int);CU=$ptrType(BY);G.ptr.prototype.Simplify=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;a=this;if(a===CG.nil){return CG.nil;}b=a.Op;if((b===(13))||(b===(18))||(b===(19))){c=a;d=a.Sub;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);h=g.Simplify();if(c===a&&!(h===g)){c=new G.ptr(0,0,CH.nil,CI.zero(),CD.nil,CJ.zero(),0,0,0,"");G.copy(c,a);c.Rune=CD.nil;c.Sub=$appendSlice($subslice(new CH(c.Sub0),0,0),$subslice(a.Sub,0,f));}if(!(c===a)){c.Sub=$append(c.Sub,h);}e++;}return c;}else if((b===(14))||(b===(15))||(b===(16))){j=(i=a.Sub,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])).Simplify();return F(a.Op,a.Flags,j,a);}else if(b===(17)){if((a.Min===0)&&(a.Max===0)){return new G.ptr(2,0,CH.nil,CI.zero(),CD.nil,CJ.zero(),0,0,0,"");}l=(k=a.Sub,(0>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0])).Simplify();if(a.Max===-1){if(a.Min===0){return F(14,a.Flags,l,CG.nil);}if(a.Min===1){return F(15,a.Flags,l,CG.nil);}m=new G.ptr(18,0,CH.nil,CI.zero(),CD.nil,CJ.zero(),0,0,0,"");m.Sub=$subslice(new CH(m.Sub0),0,0);n=0;while(true){if(!(n<(a.Min-1>>0))){break;}m.Sub=$append(m.Sub,l);n=n+(1)>>0;}m.Sub=$append(m.Sub,F(15,a.Flags,l,CG.nil));return m;}if((a.Min===1)&&(a.Max===1)){return l;}o=CG.nil;if(a.Min>0){o=new G.ptr(18,0,CH.nil,CI.zero(),CD.nil,CJ.zero(),0,0,0,"");o.Sub=$subslice(new CH(o.Sub0),0,0);p=0;while(true){if(!(p>0;}}if(a.Max>a.Min){q=F(16,a.Flags,l,CG.nil);r=a.Min+1>>0;while(true){if(!(r>0;}if(o===CG.nil){return q;}o.Sub=$append(o.Sub,q);}if(!(o===CG.nil)){return o;}return new G.ptr(1,0,CH.nil,CI.zero(),CD.nil,CJ.zero(),0,0,0,"");}return a;};G.prototype.Simplify=function(){return this.$val.Simplify();};F=function(a,b,c,d){var a,b,c,d,e;if(c.Op===2){return c;}if((a===c.Op)&&(((b&32)>>>0)===((c.Flags&32)>>>0))){return c;}if(!(d===CG.nil)&&(d.Op===a)&&(((d.Flags&32)>>>0)===((b&32)>>>0))&&c===(e=d.Sub,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]))){return d;}d=new G.ptr(a,b,CH.nil,CI.zero(),CD.nil,CJ.zero(),0,0,0,"");d.Sub=$append($subslice(new CH(d.Sub0),0,0),c);return d;};G.ptr.prototype.Equal=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;b=this;if(b===CG.nil||a===CG.nil){return b===a;}if(!((b.Op===a.Op))){return false;}c=b.Op;if(c===(10)){if(!((((b.Flags&256)>>>0)===((a.Flags&256)>>>0)))){return false;}}else if((c===(3))||(c===(4))){if(!((b.Rune.$length===a.Rune.$length))){return false;}d=b.Rune;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(!((g===(h=a.Rune,((f<0||f>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+f]))))){return false;}e++;}}else if((c===(19))||(c===(18))){if(!((b.Sub.$length===a.Sub.$length))){return false;}i=b.Sub;j=0;while(true){if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);if(!l.Equal((m=a.Sub,((k<0||k>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+k])))){return false;}j++;}}else if((c===(14))||(c===(15))||(c===(16))){if(!((((b.Flags&32)>>>0)===((a.Flags&32)>>>0)))||!(n=b.Sub,(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0])).Equal((o=a.Sub,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0])))){return false;}}else if(c===(17)){if(!((((b.Flags&32)>>>0)===((a.Flags&32)>>>0)))||!((b.Min===a.Min))||!((b.Max===a.Max))||!(p=b.Sub,(0>=p.$length?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+0])).Equal((q=a.Sub,(0>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+0])))){return false;}}else if(c===(13)){if(!((b.Cap===a.Cap))||!(b.Name===a.Name)||!(r=b.Sub,(0>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+0])).Equal((s=a.Sub,(0>=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+0])))){return false;}}return true;};G.prototype.Equal=function(a){return this.$val.Equal(a);};I=function(a,b){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;switch(0){default:c=b.Op;if(c===(1)){a.WriteString("[^\\x00-\\x{10FFFF}]");}else if(c===(2)){a.WriteString("(?:)");}else if(c===(3)){if(!((((b.Flags&1)>>>0)===0))){a.WriteString("(?i:");}d=b.Rune;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);J(a,f,false);e++;}if(!((((b.Flags&1)>>>0)===0))){a.WriteString(")");}}else if(c===(4)){if(!(((g=b.Rune.$length%2,g===g?g:$throwRuntimeError("integer divide by zero"))===0))){a.WriteString("[invalid char class]");break;}a.WriteRune(91);if(b.Rune.$length===0){a.WriteString("^\\x00-\\x{10FFFF}");}else if(((h=b.Rune,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]))===0)&&((i=b.Rune,j=b.Rune.$length-1>>0,((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]))===1114111)&&b.Rune.$length>2){a.WriteRune(94);k=1;while(true){if(!(k<(b.Rune.$length-1>>0))){break;}l=(m=b.Rune,((k<0||k>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+k]))+1>>0;n=(o=b.Rune,p=k+1>>0,((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]))-1>>0;q=l;r=n;J(a,q,q===45);if(!((q===r))){a.WriteRune(45);J(a,r,r===45);}k=k+(2)>>0;}}else{s=0;while(true){if(!(s=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+s]));v=(w=b.Rune,x=s+1>>0,((x<0||x>=w.$length)?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+x]));y=t;z=v;J(a,y,y===45);if(!((y===z))){a.WriteRune(45);J(a,z,z===45);}s=s+(2)>>0;}}a.WriteRune(93);}else if(c===(5)){a.WriteString("(?-s:.)");}else if(c===(6)){a.WriteString("(?s:.)");}else if(c===(7)){a.WriteString("(?m:^)");}else if(c===(8)){a.WriteString("(?m:$)");}else if(c===(9)){a.WriteString("\\A");}else if(c===(10)){if(!((((b.Flags&256)>>>0)===0))){a.WriteString("(?-m:$)");}else{a.WriteString("\\z");}}else if(c===(11)){a.WriteString("\\b");}else if(c===(12)){a.WriteString("\\B");}else if(c===(13)){if(!(b.Name==="")){a.WriteString("(?P<");a.WriteString(b.Name);a.WriteRune(62);}else{a.WriteRune(40);}if(!(((aa=b.Sub,(0>=aa.$length?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+0])).Op===2))){I(a,(ab=b.Sub,(0>=ab.$length?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+0])));}a.WriteRune(41);}else if((c===(14))||(c===(15))||(c===(16))||(c===(17))){ad=(ac=b.Sub,(0>=ac.$length?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+0]));if(ad.Op>13||(ad.Op===3)&&ad.Rune.$length>1){a.WriteString("(?:");I(a,ad);a.WriteString(")");}else{I(a,ad);}ae=b.Op;if(ae===(14)){a.WriteRune(42);}else if(ae===(15)){a.WriteRune(43);}else if(ae===(16)){a.WriteRune(63);}else if(ae===(17)){a.WriteRune(123);a.WriteString(A.Itoa(b.Min));if(!((b.Max===b.Min))){a.WriteRune(44);if(b.Max>=0){a.WriteString(A.Itoa(b.Max));}}a.WriteRune(125);}if(!((((b.Flags&32)>>>0)===0))){a.WriteRune(63);}}else if(c===(18)){af=b.Sub;ag=0;while(true){if(!(ag=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ag]);if(ah.Op===19){a.WriteString("(?:");I(a,ah);a.WriteString(")");}else{I(a,ah);}ag++;}}else if(c===(19)){ai=b.Sub;aj=0;while(true){if(!(aj=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+aj]);if(ak>0){a.WriteRune(124);}I(a,al);aj++;}}else{a.WriteString(">0)))+">");}}};G.ptr.prototype.String=function(){var a,b;a=this;b=new B.Builder.ptr(CK.nil,CL.nil);I(b,a);return b.String();};G.prototype.String=function(){return this.$val.String();};J=function(a,b,c){var a,b,c,d,e;if(C.IsPrint(b)){if(B.ContainsRune("\\.+*?()|[]{}^$",b)||c){a.WriteRune(92);}a.WriteRune(b);return;}switch(0){default:d=b;if(d===(7)){a.WriteString("\\a");}else if(d===(12)){a.WriteString("\\f");}else if(d===(10)){a.WriteString("\\n");}else if(d===(13)){a.WriteString("\\r");}else if(d===(9)){a.WriteString("\\t");}else if(d===(11)){a.WriteString("\\v");}else{if(b<256){a.WriteString("\\x");e=A.FormatInt((new $Int64(0,b)),16);if(e.length===1){a.WriteRune(48);}a.WriteString(e);break;}a.WriteString("\\x{");a.WriteString(A.FormatInt((new $Int64(0,b)),16));a.WriteString("}");}}};G.ptr.prototype.MaxCap=function(){var a,b,c,d,e,f;a=this;b=0;if(a.Op===13){b=a.Cap;}c=a.Sub;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=e.MaxCap();if(b>0));a.capNames(b);return b;};G.prototype.CapNames=function(){return this.$val.CapNames();};G.ptr.prototype.capNames=function(a){var a,b,c,d,e,f;b=this;if(b.Op===13){(c=b.Cap,((c<0||c>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+c]=b.Name));}d=b.Sub;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);f.capNames(a);e++;}};G.prototype.capNames=function(a){return this.$val.capNames(a);};L.prototype.String=function(){var a;a=this.$val;if(((a>>>0))>=((M.$length>>>0))){return"";}return((a<0||a>=M.$length)?($throwRuntimeError("index out of range"),undefined):M.$array[M.$offset+a]);};$ptrType(L).prototype.String=function(){return new L(this.$get()).String();};P=function(a){var a;return 65<=a&&a<=90||97<=a&&a<=122||48<=a&&a<=57||(a===95);};$pkg.IsWordChar=P;K.ptr.prototype.String=function(){var a,b;a=this;b=new B.Builder.ptr(CK.nil,CL.nil);S(b,a);return b.String();};K.prototype.String=function(){return this.$val.String();};K.ptr.prototype.skipNop=function(a){var a,b,c,d,e,f;b=this;d=(c=b.Inst,((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]));while(true){if(!((d.Op===6)||(d.Op===2))){break;}d=(e=b.Inst,f=d.Out,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));}return d;};K.prototype.skipNop=function(a){return this.$val.skipNop(a);};Q.ptr.prototype.op=function(){var a,b,c;a=this;b=a.Op;c=b;if((c===(8))||(c===(9))||(c===(10))){b=7;}return b;};Q.prototype.op=function(){return this.$val.op();};K.ptr.prototype.Prefix=function(){var a,b,c,d,e,f,g,h,i,j,k;a="";b=false;c=this;d=c.skipNop(((c.Start>>>0)));if(!((d.op()===7))||!((d.Rune.$length===1))){e="";f=d.Op===4;a=e;b=f;return[a,b];}g=new B.Builder.ptr(CK.nil,CL.nil);while(true){if(!((d.op()===7)&&(d.Rune.$length===1)&&(((((d.Arg<<16>>>16))&1)>>>0)===0)&&!(((h=d.Rune,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]))===65533)))){break;}g.WriteRune((i=d.Rune,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])));d=c.skipNop(d.Out);}j=g.String();k=d.Op===4;a=j;b=k;return[a,b];};K.prototype.Prefix=function(){return this.$val.Prefix();};K.ptr.prototype.StartCond=function(){var a,b,c,d,e,f,g;a=this;b=0;c=((a.Start>>>0));e=(d=a.Inst,((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]));Loop:while(true){f=e.Op;if(f===(3)){b=(b|(((e.Arg<<24>>>24))))>>>0;}else if(f===(5)){return 255;}else if((f===(2))||(f===(6))){}else{break Loop;}c=e.Out;e=(g=a.Inst,((c<0||c>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+c]));}return b;};K.prototype.StartCond=function(){return this.$val.StartCond();};Q.ptr.prototype.MatchRune=function(a){var a,b;b=this;return!((b.MatchRunePos(a)===-1));};Q.prototype.MatchRune=function(a){return this.$val.MatchRune(a);};Q.ptr.prototype.MatchRunePos=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;b=this;c=b.Rune;d=c.$length;if(d===(0)){return-1;}else if(d===(1)){e=(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]);if(a===e){return 0;}if(!((((((b.Arg<<16>>>16))&1)>>>0)===0))){f=C.SimpleFold(e);while(true){if(!(!((f===e)))){break;}if(a===f){return 0;}f=C.SimpleFold(f);}}return-1;}else if(d===(2)){if(a>=(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])&&a<=(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1])){return 0;}return-1;}else if((d===(4))||(d===(6))||(d===(8))){g=0;while(true){if(!(g=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+g])){return-1;}if(a<=(h=g+1>>0,((h<0||h>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+h]))){return(i=g/2,(i===i&&i!==1/0&&i!==-1/0)?i>>0:$throwRuntimeError("integer divide by zero"));}g=g+(2)>>0;}return-1;}j=0;l=(k=c.$length/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero"));while(true){if(!(j>0))/2,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero"))>>0;p=(o=$imul(2,n),((o<0||o>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+o]));if(p<=a){if(a<=(q=($imul(2,n))+1>>0,((q<0||q>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+q]))){return n;}j=n+1>>0;}else{l=n;}}return-1;};Q.prototype.MatchRunePos=function(a){return this.$val.MatchRunePos(a);};Q.ptr.prototype.MatchEmptyWidth=function(a,b){var a,b,c,d;c=this;d=((c.Arg<<24>>>24));if(d===(1)){return(a===10)||(a===-1);}else if(d===(2)){return(b===10)||(b===-1);}else if(d===(4)){return a===-1;}else if(d===(8)){return b===-1;}else if(d===(16)){return!(P(a)===P(b));}else if(d===(32)){return P(a)===P(b);}$panic(new $String("unknown empty width arg"));};Q.prototype.MatchEmptyWidth=function(a,b){return this.$val.MatchEmptyWidth(a,b);};Q.ptr.prototype.String=function(){var a,b;a=this;b=new B.Builder.ptr(CK.nil,CL.nil);U(b,a);return b.String();};Q.prototype.String=function(){return this.$val.String();};R=function(a,b){var a,b,c,d,e;c=b;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);a.WriteString(e);d++;}};S=function(a,b){var a,b,c,d,e,f,g,h;c=b.Inst;d=0;while(true){if(!(d=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]));h=A.Itoa(e);if(h.length<3){a.WriteString($substring(" ",h.length));}if(e===b.Start){h=h+("*");}R(a,new CC([h,"\t"]));U(a,g);R(a,new CC(["\n"]));d++;}};T=function(a){var a;return A.FormatUint((new $Uint64(0,a)),10);};U=function(a,b){var a,b,c;c=b.Op;if(c===(0)){R(a,new CC(["alt -> ",T(b.Out),", ",T(b.Arg)]));}else if(c===(1)){R(a,new CC(["altmatch -> ",T(b.Out),", ",T(b.Arg)]));}else if(c===(2)){R(a,new CC(["cap ",T(b.Arg)," -> ",T(b.Out)]));}else if(c===(3)){R(a,new CC(["empty ",T(b.Arg)," -> ",T(b.Out)]));}else if(c===(4)){R(a,new CC(["match"]));}else if(c===(5)){R(a,new CC(["fail"]));}else if(c===(6)){R(a,new CC(["nop -> ",T(b.Out)]));}else if(c===(7)){if(b.Rune===CD.nil){R(a,new CC(["rune "]));}R(a,new CC(["rune ",A.QuoteToASCII(($runesToString(b.Rune)))]));if(!((((((b.Arg<<16>>>16))&1)>>>0)===0))){R(a,new CC(["/i"]));}R(a,new CC([" -> ",T(b.Out)]));}else if(c===(8)){R(a,new CC(["rune1 ",A.QuoteToASCII(($runesToString(b.Rune)))," -> ",T(b.Out)]));}else if(c===(9)){R(a,new CC(["any -> ",T(b.Out)]));}else if(c===(10)){R(a,new CC(["anynotnl -> ",T(b.Out)]));}};AO.ptr.prototype.Error=function(){var a;a=this;return"error parsing regexp: "+new AP(a.Code).String()+": `"+a.Expr+"`";};AO.prototype.Error=function(){return this.$val.Error();};AP.prototype.String=function(){var a;a=this.$val;return(a);};$ptrType(AP).prototype.String=function(){return new AP(this.$get()).String();};AR.ptr.prototype.newRegexp=function(a){var a,b,c;b=this;c=b.free;if(!(c===CG.nil)){b.free=c.Sub0[0];G.copy(c,new G.ptr(0,0,CH.nil,CI.zero(),CD.nil,CJ.zero(),0,0,0,""));}else{c=new G.ptr(0,0,CH.nil,CI.zero(),CD.nil,CJ.zero(),0,0,0,"");b.numRegexp=b.numRegexp+(1)>>0;}c.Op=a;return c;};AR.prototype.newRegexp=function(a){return this.$val.newRegexp(a);};AR.ptr.prototype.reuse=function(a){var a,b;b=this;if(!(b.height===false)){$mapDelete(b.height,CG.keyFor(a));}a.Sub0[0]=b.free;b.free=a;};AR.prototype.reuse=function(a){return this.$val.reuse(a);};AR.ptr.prototype.checkHeight=function(a){var a,b,c,d,e;b=this;if(b.numRegexp<1000){return;}if(b.height===false){b.height=new $global.Map();c=b.stack;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);b.checkHeight(e);d++;}}if(b.calcHeight(a,true)>1000){$panic(new AP("regexp/syntax: internal error"));}};AR.prototype.checkHeight=function(a){return this.$val.checkHeight(a);};AR.ptr.prototype.calcHeight=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m;c=this;if(!b){d=(e=$mapIndex(c.height,CG.keyFor(a)),e!==undefined?[e.v,true]:[0,false]);f=d[0];g=d[1];if(g){return f;}}h=1;i=a.Sub;j=0;while(true){if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);l=c.calcHeight(k,false);if(h<(1+l>>0)){h=1+l>>0;}j++;}m=a;(c.height||$throwRuntimeError("assignment to entry in nil map")).set(CG.keyFor(m),{k:m,v:h});return h;};AR.prototype.calcHeight=function(a,b){return this.$val.calcHeight(a,b);};AR.ptr.prototype.push=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;b=this;if((a.Op===4)&&(a.Rune.$length===2)&&((c=a.Rune,(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]))===(d=a.Rune,(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1])))){if(b.maybeConcat((s=a.Rune,(0>=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+0])),(b.flags&~1)<<16>>>16)){return CG.nil;}a.Op=3;a.Rune=$subslice(a.Rune,0,1);a.Flags=(b.flags&~1)<<16>>>16;}else if((a.Op===4)&&(a.Rune.$length===4)&&((e=a.Rune,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]))===(f=a.Rune,(1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])))&&((g=a.Rune,(2>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+2]))===(h=a.Rune,(3>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+3])))&&(C.SimpleFold((i=a.Rune,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])))===(j=a.Rune,(2>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+2])))&&(C.SimpleFold((k=a.Rune,(2>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+2])))===(l=a.Rune,(0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0])))||(a.Op===4)&&(a.Rune.$length===2)&&(((m=a.Rune,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0]))+1>>0)===(n=a.Rune,(1>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1])))&&(C.SimpleFold((o=a.Rune,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0])))===(p=a.Rune,(1>=p.$length?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+1])))&&(C.SimpleFold((q=a.Rune,(1>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+1])))===(r=a.Rune,(0>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+0])))){if(b.maybeConcat((t=a.Rune,(0>=t.$length?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+0])),(b.flags|1)>>>0)){return CG.nil;}a.Op=3;a.Rune=$subslice(a.Rune,0,1);a.Flags=(b.flags|1)>>>0;}else{b.maybeConcat(-1,0);}b.stack=$append(b.stack,a);b.checkHeight(a);return a;};AR.prototype.push=function(a){return this.$val.push(a);};AR.ptr.prototype.maybeConcat=function(a,b){var a,b,c,d,e,f,g,h,i,j,k;c=this;d=c.stack.$length;if(d<2){return false;}g=(e=c.stack,f=d-1>>0,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));j=(h=c.stack,i=d-2>>0,((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]));if(!((g.Op===3))||!((j.Op===3))||!((((g.Flags&1)>>>0)===((j.Flags&1)>>>0)))){return false;}j.Rune=$appendSlice(j.Rune,g.Rune);if(a>=0){g.Rune=$subslice(new CD(g.Rune0),0,1);(k=g.Rune,(0>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0]=a));g.Flags=b;return true;}c.stack=$subslice(c.stack,0,(d-1>>0));c.reuse(g);return false;};AR.prototype.maybeConcat=function(a,b){return this.$val.maybeConcat(a,b);};AR.ptr.prototype.literal=function(a){var a,b,c;b=this;c=b.newRegexp(3);c.Flags=b.flags;if(!((((b.flags&1)>>>0)===0))){a=AS(a);}c.Rune0[0]=a;c.Rune=$subslice(new CD(c.Rune0),0,1);b.push(c);};AR.prototype.literal=function(a){return this.$val.literal(a);};AS=function(a){var a,b,c;if(a<65||a>125251){return a;}b=a;c=a;a=C.SimpleFold(a);while(true){if(!(!((a===c)))){break;}if(b>a){b=a;}a=C.SimpleFold(a);}return b;};AR.ptr.prototype.op=function(a){var a,b,c;b=this;c=b.newRegexp(a);c.Flags=b.flags;return b.push(c);};AR.prototype.op=function(a){return this.$val.op(a);};AR.ptr.prototype.repeat=function(a,b,c,d,e,f){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;g=this;h=g.flags;if(!((((g.flags&64)>>>0)===0))){if(e.length>0&&(e.charCodeAt(0)===63)){e=$substring(e,1);h=(h^(32))<<16>>>16;}if(!(f==="")){return["",new AO.ptr("invalid nested repetition operator",$substring(f,0,(f.length-e.length>>0)))];}}i=g.stack.$length;if(i===0){return["",new AO.ptr("missing argument to repetition operator",$substring(d,0,(d.length-e.length>>0)))];}l=(j=g.stack,k=i-1>>0,((k<0||k>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]));if(l.Op>=128){return["",new AO.ptr("missing argument to repetition operator",$substring(d,0,(d.length-e.length>>0)))];}m=g.newRegexp(a);m.Min=b;m.Max=c;m.Flags=h;m.Sub=$subslice(new CH(m.Sub0),0,1);(n=m.Sub,(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0]=l));(o=g.stack,p=i-1>>0,((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=m));g.checkHeight(m);if((a===17)&&(b>=2||c>=2)&&!AT(m,1000)){return["",new AO.ptr("invalid repeat count",$substring(d,0,(d.length-e.length>>0)))];}return[e,$ifaceNil];};AR.prototype.repeat=function(a,b,c,d,e,f){return this.$val.repeat(a,b,c,d,e,f);};AT=function(a,b){var a,b,c,d,e,f,g;if(a.Op===17){c=a.Max;if(c===0){return true;}if(c<0){c=a.Min;}if(c>b){return false;}if(c>0){b=(d=b/(c),(d===d&&d!==1/0&&d!==-1/0)?d>>0:$throwRuntimeError("integer divide by zero"));}}e=a.Sub;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(!AT(g,b)){return false;}f++;}return true;};AR.ptr.prototype.concat=function(){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;a.maybeConcat(-1,0);b=a.stack.$length;while(true){if(!(b>0&&(c=a.stack,d=b-1>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).Op<128)){break;}b=b-(1)>>0;}e=$subslice(a.stack,b);a.stack=$subslice(a.stack,0,b);if(e.$length===0){$s=-1;return a.push(a.newRegexp(2));}f=a.collapse(e,18);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=a.push(f);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=3;case 3:return h;}return;}var $f={$blk:AR.ptr.prototype.concat,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};AR.prototype.concat=function(){return this.$val.concat();};AR.ptr.prototype.alternate=function(){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.stack.$length;while(true){if(!(b>0&&(c=a.stack,d=b-1>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).Op<128)){break;}b=b-(1)>>0;}e=$subslice(a.stack,b);a.stack=$subslice(a.stack,0,b);if(e.$length>0){$s=1;continue;}$s=2;continue;case 1:$r=AU((f=e.$length-1>>0,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f])));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(e.$length===0){$s=-1;return a.push(a.newRegexp(1));}g=a.collapse(e,19);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=a.push(g);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=6;case 6:return i;}return;}var $f={$blk:AR.ptr.prototype.alternate,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};AR.prototype.alternate=function(){return this.$val.alternate();};AU=function(a){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a.Op;if(b===(4)){$s=2;continue;}$s=3;continue;case 2:c=BF((a.$ptr_Rune||(a.$ptr_Rune=new CM(function(){return this.$target.Rune;},function($v){this.$target.Rune=$v;},a))));$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}a.Rune=c;if((a.Rune.$length===2)&&((d=a.Rune,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]))===0)&&((e=a.Rune,(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]))===1114111)){a.Rune=CD.nil;a.Op=6;$s=-1;return;}if((a.Rune.$length===4)&&((f=a.Rune,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]))===0)&&((g=a.Rune,(1>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+1]))===9)&&((h=a.Rune,(2>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+2]))===11)&&((i=a.Rune,(3>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+3]))===1114111)){a.Rune=CD.nil;a.Op=5;$s=-1;return;}if((a.Rune.$capacity-a.Rune.$length>>0)>100){a.Rune=$appendSlice($subslice(new CD(a.Rune0),0,0),a.Rune);}case 3:case 1:$s=-1;return;}return;}var $f={$blk:AU,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};AR.ptr.prototype.collapse=function(a,b){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(a.$length===1){$s=-1;return(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]);}d=c.newRegexp(b);d.Sub=$subslice(new CH(d.Sub0),0,0);e=a;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(g.Op===b){d.Sub=$appendSlice(d.Sub,g.Sub);c.reuse(g);}else{d.Sub=$append(d.Sub,g);}f++;}if(b===19){$s=1;continue;}$s=2;continue;case 1:h=c.factor(d.Sub);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}d.Sub=h;if(d.Sub.$length===1){i=d;d=(j=d.Sub,(0>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+0]));c.reuse(i);}case 2:$s=-1;return d;}return;}var $f={$blk:AR.ptr.prototype.collapse,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};AR.prototype.collapse=function(a,b){return this.$val.collapse(a,b);};AR.ptr.prototype.factor=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(a.$length<2){$s=-1;return a;}c=CD.nil;d=0;e=0;f=$subslice(a,0,0);g=0;case 1:if(!(g<=a.$length)){$s=2;continue;}h=CD.nil;i=0;if(g=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g]));h=j[0];i=j[1];if(i===d){k=0;while(true){if(!(k=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+k])===((k<0||k>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+k])))){break;}k=k+(1)>>0;}if(k>0){c=$subslice(c,0,k);g=g+(1)>>0;$s=1;continue;}}}if(g===e){$s=3;continue;}if(g===(e+1>>0)){$s=4;continue;}$s=5;continue;case 3:$s=6;continue;case 4:f=$append(f,((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]));$s=6;continue;case 5:l=b.newRegexp(3);l.Flags=d;l.Rune=$appendSlice($subslice(l.Rune,0,0),c);m=e;while(true){if(!(m=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+m]=b.removeLeadingString(((m<0||m>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+m]),c.$length));m=m+(1)>>0;}n=b.collapse($subslice(a,e,g),19);$s=7;case 7:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;p=b.newRegexp(18);p.Sub=$append($subslice(p.Sub,0,0),l,o);f=$append(f,p);case 6:e=g;c=h;d=i;g=g+(1)>>0;$s=1;continue;case 2:a=f;e=0;f=$subslice(a,0,0);q=CG.nil;r=0;case 8:if(!(r<=a.$length)){$s=9;continue;}s=CG.nil;if(r=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+r]));if(!(q===CG.nil)&&q.Equal(s)&&(AZ(q)||((q.Op===17)&&(q.Min===q.Max)&&AZ((t=q.Sub,(0>=t.$length?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+0])))))){r=r+(1)>>0;$s=8;continue;}}if(r===e){$s=10;continue;}if(r===(e+1>>0)){$s=11;continue;}$s=12;continue;case 10:$s=13;continue;case 11:f=$append(f,((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]));$s=13;continue;case 12:u=q;v=e;while(true){if(!(v=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+v]=b.removeLeadingRegexp(((v<0||v>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+v]),w));v=v+(1)>>0;}x=b.collapse($subslice(a,e,r),19);$s=14;case 14:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;z=b.newRegexp(18);z.Sub=$append($subslice(z.Sub,0,0),u,y);f=$append(f,z);case 13:e=r;q=s;r=r+(1)>>0;$s=8;continue;case 9:a=f;e=0;f=$subslice(a,0,0);aa=0;case 15:if(!(aa<=a.$length)){$s=16;continue;}if(aa=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+aa]))){aa=aa+(1)>>0;$s=15;continue;}if(aa===e){$s=17;continue;}if(aa===(e+1>>0)){$s=18;continue;}$s=19;continue;case 17:$s=20;continue;case 18:f=$append(f,((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]));$s=20;continue;case 19:ab=e;ac=e+1>>0;while(true){if(!(ac=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ab]).Op<((ac<0||ac>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ac]).Op||(((ab<0||ab>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ab]).Op===((ac<0||ac>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ac]).Op)&&((ab<0||ab>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ab]).Rune.$length<((ac<0||ac>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ac]).Rune.$length){ab=ac;}ac=ac+(1)>>0;}ad=((ab<0||ab>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ab]);ae=((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]);((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]=ad);((ab<0||ab>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ab]=ae);af=e+1>>0;while(true){if(!(af=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]),((af<0||af>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+af]));b.reuse(((af<0||af>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+af]));af=af+(1)>>0;}$r=AU(((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=$append(f,((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]));case 20:if(aa=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+aa]));}e=aa+1>>0;aa=aa+(1)>>0;$s=15;continue;case 16:a=f;e=0;f=$subslice(a,0,0);ag=a;ah=0;while(true){if(!(ah>0)=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ai]).Op===2)&&((aj=ai+1>>0,((aj<0||aj>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+aj])).Op===2)){ah++;continue;}f=$append(f,((ai<0||ai>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ai]));ah++;}a=f;$s=-1;return a;}return;}var $f={$blk:AR.ptr.prototype.factor,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AR.prototype.factor=function(a){return this.$val.factor(a);};AR.ptr.prototype.leadingString=function(a){var a,b,c;b=this;if((a.Op===18)&&a.Sub.$length>0){a=(c=a.Sub,(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]));}if(!((a.Op===3))){return[CD.nil,0];}return[a.Rune,(a.Flags&1)>>>0];};AR.prototype.leadingString=function(a){return this.$val.leadingString(a);};AR.ptr.prototype.removeLeadingString=function(a,b){var a,b,c,d,e,f,g,h,i;c=this;if((a.Op===18)&&a.Sub.$length>0){e=(d=a.Sub,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]));e=c.removeLeadingString(e,b);(f=a.Sub,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]=e));if(e.Op===2){c.reuse(e);g=a.Sub.$length;if((g===(0))||(g===(1))){a.Op=2;a.Sub=CH.nil;}else if(g===(2)){h=a;a=(i=a.Sub,(1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]));c.reuse(h);}else{$copySlice(a.Sub,$subslice(a.Sub,1));a.Sub=$subslice(a.Sub,0,(a.Sub.$length-1>>0));}}return a;}if(a.Op===3){a.Rune=$subslice(a.Rune,0,$copySlice(a.Rune,$subslice(a.Rune,b)));if(a.Rune.$length===0){a.Op=2;}}return a;};AR.prototype.removeLeadingString=function(a,b){return this.$val.removeLeadingString(a,b);};AR.ptr.prototype.leadingRegexp=function(a){var a,b,c,d;b=this;if(a.Op===2){return CG.nil;}if((a.Op===18)&&a.Sub.$length>0){d=(c=a.Sub,(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]));if(d.Op===2){return CG.nil;}return d;}return a;};AR.prototype.leadingRegexp=function(a){return this.$val.leadingRegexp(a);};AR.ptr.prototype.removeLeadingRegexp=function(a,b){var a,b,c,d,e,f,g;c=this;if((a.Op===18)&&a.Sub.$length>0){if(b){c.reuse((d=a.Sub,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])));}a.Sub=$subslice(a.Sub,0,$copySlice(a.Sub,$subslice(a.Sub,1)));e=a.Sub.$length;if(e===(0)){a.Op=2;a.Sub=CH.nil;}else if(e===(1)){f=a;a=(g=a.Sub,(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]));c.reuse(f);}return a;}if(b){c.reuse(a);}return c.newRegexp(2);};AR.prototype.removeLeadingRegexp=function(a,b){return this.$val.removeLeadingRegexp(a,b);};AV=function(a,b){var a,b,c,d,e,f,g;c=new G.ptr(3,0,CH.nil,CI.zero(),CD.nil,CJ.zero(),0,0,0,"");c.Flags=b;c.Rune=$subslice(new CD(c.Rune0),0,0);d=a;e=0;while(true){if(!(e=c.Rune.$capacity){c.Rune=(new CD($stringToRunes(a)));break;}c.Rune=$append(c.Rune,g);e+=f[1];}return c;};AW=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=AX(a,b);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:AW,$c:true,$r,a,b,c,d,$s};return $f;};$pkg.Parse=AW;AX=function(a,b){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a,b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=[a];c=[c];d=CG.nil;c[0]=$ifaceNil;$deferred.push([(function(a,c){return function(){var e,f;e=$recover();f=e;if($interfaceIsEqual(f,$ifaceNil)){}else if($interfaceIsEqual(f,new AP(("regexp/syntax: internal error")))){c[0]=new AO.ptr("regexp/syntax: internal error",a[0]);}else{$panic(e);}};})(a,c),[]]);if(!((((b&2)>>>0)===0))){$s=1;continue;}$s=2;continue;case 1:e=BQ(a[0]);if(!($interfaceIsEqual(e,$ifaceNil))){$s=3;continue;}$s=4;continue;case 3:f=CG.nil;g=e;d=f;c[0]=g;h=[d,c[0]];$s=5;case 5:return h;case 4:i=AV(a[0],b);j=$ifaceNil;d=i;c[0]=j;k=[d,c[0]];$s=6;case 6:return k;case 2:l=new AR.ptr(0,CH.nil,CG.nil,0,"",CD.nil,0,false);m=0;n=0;o="";l.flags=b;l.wholeRegexp=a[0];p=a[0];case 7:if(!(!(p===""))){$s=8;continue;}q="";r=p.charCodeAt(0);if(r===(40)){$s=10;continue;}if(r===(124)){$s=11;continue;}if(r===(41)){$s=12;continue;}if(r===(94)){$s=13;continue;}if(r===(36)){$s=14;continue;}if(r===(46)){$s=15;continue;}if(r===(91)){$s=16;continue;}if((r===(42))||(r===(43))||(r===(63))){$s=17;continue;}if(r===(123)){$s=18;continue;}if(r===(92)){$s=19;continue;}$s=20;continue;case 10:if(!((((l.flags&64)>>>0)===0))&&p.length>=2&&(p.charCodeAt(1)===63)){$s=22;continue;}$s=23;continue;case 22:s=l.parsePerlFlags(p);p=s[0];c[0]=s[1];if(!($interfaceIsEqual(c[0],$ifaceNil))){$s=24;continue;}$s=25;continue;case 24:t=CG.nil;u=c[0];d=t;c[0]=u;v=[d,c[0]];$s=26;case 26:return v;case 25:$s=9;continue;case 23:l.numCap=l.numCap+(1)>>0;l.op(128).Cap=l.numCap;p=$substring(p,1);$s=21;continue;case 11:w=l.parseVerticalBar();$s=27;case 27:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}c[0]=w;if(!($interfaceIsEqual(c[0],$ifaceNil))){$s=28;continue;}$s=29;continue;case 28:x=CG.nil;y=c[0];d=x;c[0]=y;z=[d,c[0]];$s=30;case 30:return z;case 29:p=$substring(p,1);$s=21;continue;case 12:aa=l.parseRightParen();$s=31;case 31:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}c[0]=aa;if(!($interfaceIsEqual(c[0],$ifaceNil))){$s=32;continue;}$s=33;continue;case 32:ab=CG.nil;ac=c[0];d=ab;c[0]=ac;ad=[d,c[0]];$s=34;case 34:return ad;case 33:p=$substring(p,1);$s=21;continue;case 13:if(!((((l.flags&16)>>>0)===0))){l.op(9);}else{l.op(7);}p=$substring(p,1);$s=21;continue;case 14:if(!((((l.flags&16)>>>0)===0))){ae=l.op(10);ae.Flags=(ae.Flags|(256))>>>0;}else{l.op(8);}p=$substring(p,1);$s=21;continue;case 15:if(!((((l.flags&8)>>>0)===0))){l.op(6);}else{l.op(5);}p=$substring(p,1);$s=21;continue;case 16:ag=l.parseClass(p);$s=35;case 35:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;p=af[0];c[0]=af[1];if(!($interfaceIsEqual(c[0],$ifaceNil))){$s=36;continue;}$s=37;continue;case 36:ah=CG.nil;ai=c[0];d=ah;c[0]=ai;aj=[d,c[0]];$s=38;case 38:return aj;case 37:$s=21;continue;case 17:ak=p;al=p.charCodeAt(0);if(al===(42)){n=14;}else if(al===(43)){n=15;}else if(al===(63)){n=16;}am=$substring(p,1);an=l.repeat(n,0,0,ak,am,o);am=an[0];c[0]=an[1];if(!($interfaceIsEqual(c[0],$ifaceNil))){$s=39;continue;}$s=40;continue;case 39:ao=CG.nil;ap=c[0];d=ao;c[0]=ap;aq=[d,c[0]];$s=41;case 41:return aq;case 40:q=ak;p=am;$s=21;continue;case 18:n=17;ar=p;as=l.parseRepeat(p);at=as[0];au=as[1];av=as[2];aw=as[3];if(!aw){l.literal(123);p=$substring(p,1);$s=9;continue;}if(at<0||at>1000||au>1000||au>=0&&at>au){$s=42;continue;}$s=43;continue;case 42:ax=CG.nil;ay=new AO.ptr("invalid repeat count",$substring(ar,0,(ar.length-av.length>>0)));d=ax;c[0]=ay;az=[d,c[0]];$s=44;case 44:return az;case 43:ba=l.repeat(n,at,au,ar,av,o);av=ba[0];c[0]=ba[1];if(!($interfaceIsEqual(c[0],$ifaceNil))){$s=45;continue;}$s=46;continue;case 45:bb=CG.nil;bc=c[0];d=bb;c[0]=bc;bd=[d,c[0]];$s=47;case 47:return bd;case 46:q=ar;p=av;$s=21;continue;case 19:if(!((((l.flags&64)>>>0)===0))&&p.length>=2){$s=48;continue;}$s=49;continue;case 48:be=p.charCodeAt(1);if(be===(65)){$s=51;continue;}if(be===(98)){$s=52;continue;}if(be===(66)){$s=53;continue;}if(be===(67)){$s=54;continue;}if(be===(81)){$s=55;continue;}if(be===(122)){$s=56;continue;}$s=57;continue;case 51:l.op(9);p=$substring(p,2);$s=9;continue s;$s=57;continue;case 52:l.op(11);p=$substring(p,2);$s=9;continue s;$s=57;continue;case 53:l.op(12);p=$substring(p,2);$s=9;continue s;$s=57;continue;case 54:bf=CG.nil;bg=new AO.ptr("invalid escape sequence",$substring(p,0,2));d=bf;c[0]=bg;bh=[d,c[0]];$s=58;case 58:return bh;case 55:bi="";bj=B.Cut($substring(p,2),"\\E");bi=bj[0];p=bj[1];case 59:if(!(!(bi===""))){$s=60;continue;}bk=BR(bi);bl=bk[0];bm=bk[1];bn=bk[2];if(!($interfaceIsEqual(bn,$ifaceNil))){$s=61;continue;}$s=62;continue;case 61:bo=CG.nil;bp=bn;d=bo;c[0]=bp;bq=[d,c[0]];$s=63;case 63:return bq;case 62:l.literal(bl);bi=bm;$s=59;continue;case 60:$s=9;continue s;$s=57;continue;case 56:l.op(10);p=$substring(p,2);$s=9;continue s;case 57:case 50:case 49:br=l.newRegexp(4);br.Flags=l.flags;if(p.length>=2&&((p.charCodeAt(1)===112)||(p.charCodeAt(1)===80))){$s=64;continue;}$s=65;continue;case 64:bt=l.parseUnicodeClass(p,$subslice(new CD(br.Rune0),0,0));$s=66;case 66:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}bs=bt;bu=bs[0];bv=bs[1];bw=bs[2];if(!($interfaceIsEqual(bw,$ifaceNil))){$s=67;continue;}$s=68;continue;case 67:bx=CG.nil;by=bw;d=bx;c[0]=by;bz=[d,c[0]];$s=69;case 69:return bz;case 68:if(!(bu===CD.nil)){br.Rune=bu;p=bv;l.push(br);$s=9;continue s;}case 65:cb=l.parsePerlClassEscape(p,$subslice(new CD(br.Rune0),0,0));$s=70;case 70:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}ca=cb;cc=ca[0];cd=ca[1];if(!(cc===CD.nil)){br.Rune=cc;p=cd;l.push(br);$s=9;continue s;}l.reuse(br);ce=l.parseEscape(p);m=ce[0];p=ce[1];c[0]=ce[2];if(!($interfaceIsEqual(c[0],$ifaceNil))){$s=71;continue;}$s=72;continue;case 71:cf=CG.nil;cg=c[0];d=cf;c[0]=cg;ch=[d,c[0]];$s=73;case 73:return ch;case 72:l.literal(m);$s=21;continue;case 20:ci=BR(p);m=ci[0];p=ci[1];c[0]=ci[2];if(!($interfaceIsEqual(c[0],$ifaceNil))){$s=74;continue;}$s=75;continue;case 74:cj=CG.nil;ck=c[0];d=cj;c[0]=ck;cl=[d,c[0]];$s=76;case 76:return cl;case 75:l.literal(m);case 21:case 9:o=q;$s=7;continue;case 8:cm=l.concat();$s=77;case 77:if($c){$c=false;cm=cm.$blk();}if(cm&&cm.$blk!==undefined){break s;}cm;cn=l.swapVerticalBar();$s=80;case 80:if($c){$c=false;cn=cn.$blk();}if(cn&&cn.$blk!==undefined){break s;}if(cn){$s=78;continue;}$s=79;continue;case 78:l.stack=$subslice(l.stack,0,(l.stack.$length-1>>0));case 79:co=l.alternate();$s=81;case 81:if($c){$c=false;co=co.$blk();}if(co&&co.$blk!==undefined){break s;}co;cp=l.stack.$length;if(!((cp===1))){$s=82;continue;}$s=83;continue;case 82:cq=CG.nil;cr=new AO.ptr("missing closing )",a[0]);d=cq;c[0]=cr;cs=[d,c[0]];$s=84;case 84:return cs;case 83:ct=(cu=l.stack,(0>=cu.$length?($throwRuntimeError("index out of range"),undefined):cu.$array[cu.$offset+0]));cv=$ifaceNil;d=ct;c[0]=cv;cw=[d,c[0]];$s=85;case 85:return cw;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[d,c[0]];}if($curGoroutine.asleep){var $f={$blk:AX,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};AR.ptr.prototype.parseRepeat=function(a){var a,b,c,d,e,f,g,h,i;b=0;c=0;d="";e=false;f=this;if(a===""||!((a.charCodeAt(0)===123))){return[b,c,d,e];}a=$substring(a,1);g=false;h=f.parseInt(a);b=h[0];a=h[1];g=h[2];if(!g){return[b,c,d,e];}if(a===""){return[b,c,d,e];}if(!((a.charCodeAt(0)===44))){c=b;}else{a=$substring(a,1);if(a===""){return[b,c,d,e];}if(a.charCodeAt(0)===125){c=-1;}else{i=f.parseInt(a);c=i[0];a=i[1];g=i[2];if(!g){return[b,c,d,e];}else if(c<0){b=-1;}}}if(a===""||!((a.charCodeAt(0)===125))){return[b,c,d,e];}d=$substring(a,1);e=true;return[b,c,d,e];};AR.prototype.parseRepeat=function(a){return this.$val.parseRepeat(a);};AR.ptr.prototype.parsePerlFlags=function(a){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b="";c=$ifaceNil;d=this;e=a;if(e.length>4&&(e.charCodeAt(2)===80)&&(e.charCodeAt(3)===60)){f=B.IndexRune(e,62);if(f<0){c=BQ(e);if(!($interfaceIsEqual(c,$ifaceNil))){g="";h=c;b=g;c=h;return[b,c];}i="";j=new AO.ptr("invalid named capture",a);b=i;c=j;return[b,c];}k=$substring(e,0,(f+1>>0));l=$substring(e,4,f);c=BQ(l);if(!($interfaceIsEqual(c,$ifaceNil))){m="";n=c;b=m;c=n;return[b,c];}if(!AY(l)){o="";p=new AO.ptr("invalid named capture",k);b=o;c=p;return[b,c];}d.numCap=d.numCap+(1)>>0;q=d.op(128);q.Cap=d.numCap;q.Name=l;r=$substring(e,(f+1>>0));s=$ifaceNil;b=r;c=s;return[b,c];}t=0;e=$substring(e,2);u=d.flags;v=1;w=false;Loop:while(true){if(!(!(e===""))){break;}x=BR(e);t=x[0];e=x[1];c=x[2];if(!($interfaceIsEqual(c,$ifaceNil))){y="";z=c;b=y;c=z;return[b,c];}aa=t;if(aa===(105)){u=(u|(1))>>>0;w=true;}else if(aa===(109)){u=(u&~(16))<<16>>>16;w=true;}else if(aa===(115)){u=(u|(8))>>>0;w=true;}else if(aa===(85)){u=(u|(32))>>>0;w=true;}else if(aa===(45)){if(v<0){break Loop;}v=-1;u=~u<<16>>>16;w=false;}else if((aa===(58))||(aa===(41))){if(v<0){if(!w){break Loop;}u=~u<<16>>>16;}if(t===58){d.op(128);}d.flags=u;ab=e;ac=$ifaceNil;b=ab;c=ac;return[b,c];}else{break Loop;}}ad="";ae=new AO.ptr("invalid or unsupported Perl syntax",$substring(a,0,(a.length-e.length>>0)));b=ad;c=ae;return[b,c];};AR.prototype.parsePerlFlags=function(a){return this.$val.parsePerlFlags(a);};AY=function(a){var a,b,c,d,e;if(a===""){return false;}b=a;c=0;while(true){if(!(c=2&&(a.charCodeAt(0)===48)&&48<=a.charCodeAt(1)&&a.charCodeAt(1)<=57){return[b,c,d];}f=a;while(true){if(!(!(a==="")&&48<=a.charCodeAt(0)&&a.charCodeAt(0)<=57)){break;}a=$substring(a,1);}c=a;d=true;f=$substring(f,0,(f.length-a.length>>0));g=0;while(true){if(!(g=100000000){b=-1;break;}b=(($imul(b,10))+((f.charCodeAt(g)>>0))>>0)-48>>0;g=g+(1)>>0;}return[b,c,d];};AR.prototype.parseInt=function(a){return this.$val.parseInt(a);};AZ=function(a){var a;return(a.Op===3)&&(a.Rune.$length===1)||(a.Op===4)||(a.Op===5)||(a.Op===6);};BA=function(a,b){var a,b,c,d,e,f,g,h;c=a.Op;if(c===(3)){return(a.Rune.$length===1)&&((d=a.Rune,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]))===b);}else if(c===(4)){e=0;while(true){if(!(e=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]))<=b&&b<=(g=a.Rune,h=e+1>>0,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]))){return true;}e=e+(2)>>0;}return false;}else if(c===(5)){return!((b===10));}else if(c===(6)){return true;}return false;};AR.ptr.prototype.parseVerticalBar=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.concat();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}b;c=a.swapVerticalBar();$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}if(!c){$s=2;continue;}$s=3;continue;case 2:a.op(129);case 3:$s=-1;return $ifaceNil;}return;}var $f={$blk:AR.ptr.prototype.parseVerticalBar,$c:true,$r,a,b,c,$s};return $f;};AR.prototype.parseVerticalBar=function(){return this.$val.parseVerticalBar();};BB=function(a,b){var a,b,c,d,e,f,g,h;switch(0){default:c=a.Op;if(c===(6)){}else if(c===(5)){if(BA(b,10)){a.Op=6;}}else if(c===(4)){if(b.Op===3){a.Rune=BG(a.Rune,(d=b.Rune,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])),b.Flags);}else{a.Rune=BJ(a.Rune,b.Rune);}}else if(c===(3)){if(((e=b.Rune,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]))===(f=a.Rune,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0])))&&(b.Flags===a.Flags)){break;}a.Op=4;a.Rune=BG($subslice(a.Rune,0,0),(g=a.Rune,(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0])),a.Flags);a.Rune=BG(a.Rune,(h=b.Rune,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0])),b.Flags);}}};AR.ptr.prototype.swapVerticalBar=function(){var{a,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.stack.$length;if(b>=3&&((c=a.stack,d=b-2>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).Op===129)&&AZ((e=a.stack,f=b-1>>0,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f])))&&AZ((g=a.stack,h=b-3>>0,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h])))){k=(i=a.stack,j=b-1>>0,((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]));n=(l=a.stack,m=b-3>>0,((m<0||m>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]));if(k.Op>n.Op){o=n;p=k;k=o;n=p;(q=a.stack,r=b-3>>0,((r<0||r>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]=n));}BB(n,k);a.reuse(k);a.stack=$subslice(a.stack,0,(b-1>>0));$s=-1;return true;}if(b>=2){$s=1;continue;}$s=2;continue;case 1:u=(s=a.stack,t=b-1>>0,((t<0||t>=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]));x=(v=a.stack,w=b-2>>0,((w<0||w>=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w]));if(x.Op===129){$s=3;continue;}$s=4;continue;case 3:if(b>=3){$s=5;continue;}$s=6;continue;case 5:$r=AU((y=a.stack,z=b-3>>0,((z<0||z>=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+z])));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:(aa=a.stack,ab=b-2>>0,((ab<0||ab>=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+ab]=u));(ac=a.stack,ad=b-1>>0,((ad<0||ad>=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+ad]=x));$s=-1;return true;case 4:case 2:$s=-1;return false;}return;}var $f={$blk:AR.ptr.prototype.swapVerticalBar,$c:true,$r,a,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AR.prototype.swapVerticalBar=function(){return this.$val.swapVerticalBar();};AR.ptr.prototype.parseRightParen=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.concat();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}b;c=a.swapVerticalBar();$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}if(c){$s=2;continue;}$s=3;continue;case 2:a.stack=$subslice(a.stack,0,(a.stack.$length-1>>0));case 3:d=a.alternate();$s=5;case 5:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;e=a.stack.$length;if(e<2){$s=-1;return new AO.ptr("unexpected )",a.wholeRegexp);}h=(f=a.stack,g=e-1>>0,((g<0||g>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]));k=(i=a.stack,j=e-2>>0,((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]));a.stack=$subslice(a.stack,0,(e-2>>0));if(!((k.Op===128))){$s=-1;return new AO.ptr("unexpected )",a.wholeRegexp);}a.flags=k.Flags;if(k.Cap===0){a.push(h);}else{k.Op=13;k.Sub=$subslice(new CH(k.Sub0),0,1);(l=k.Sub,(0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0]=h));a.push(k);}$s=-1;return $ifaceNil;}return;}var $f={$blk:AR.ptr.prototype.parseRightParen,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};AR.prototype.parseRightParen=function(){return this.$val.parseRightParen();};AR.ptr.prototype.parseEscape=function(a){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b=0;c="";d=$ifaceNil;e=this;f=$substring(a,1);if(f===""){g=0;h="";i=new AO.ptr("trailing backslash at end of expression","");b=g;c=h;d=i;return[b,c,d];}j=BR(f);k=j[0];f=j[1];d=j[2];if(!($interfaceIsEqual(d,$ifaceNil))){l=0;m="";n=d;b=l;c=m;d=n;return[b,c,d];}Switch:switch(0){default:o=k;if((o===(49))||(o===(50))||(o===(51))||(o===(52))||(o===(53))||(o===(54))||(o===(55))){if(f===""||f.charCodeAt(0)<48||f.charCodeAt(0)>55){break;}b=k-48>>0;p=1;while(true){if(!(p<3)){break;}if(f===""||f.charCodeAt(0)<48||f.charCodeAt(0)>55){break;}b=(($imul(b,8))+((f.charCodeAt(0)>>0))>>0)-48>>0;f=$substring(f,1);p=p+(1)>>0;}q=b;r=f;s=$ifaceNil;b=q;c=r;d=s;return[b,c,d];}else if(o===(48)){b=k-48>>0;p=1;while(true){if(!(p<3)){break;}if(f===""||f.charCodeAt(0)<48||f.charCodeAt(0)>55){break;}b=(($imul(b,8))+((f.charCodeAt(0)>>0))>>0)-48>>0;f=$substring(f,1);p=p+(1)>>0;}t=b;u=f;v=$ifaceNil;b=t;c=u;d=v;return[b,c,d];}else if(o===(120)){if(f===""){break;}w=BR(f);k=w[0];f=w[1];d=w[2];if(!($interfaceIsEqual(d,$ifaceNil))){x=0;y="";z=d;b=x;c=y;d=z;return[b,c,d];}if(k===123){aa=0;b=0;while(true){if(f===""){break Switch;}ab=BR(f);k=ab[0];f=ab[1];d=ab[2];if(!($interfaceIsEqual(d,$ifaceNil))){ac=0;ad="";ae=d;b=ac;c=ad;d=ae;return[b,c,d];}if(k===125){break;}af=BT(k);if(af<0){break Switch;}b=($imul(b,16))+af>>0;if(b>1114111){break Switch;}aa=aa+(1)>>0;}if(aa===0){break Switch;}ag=b;ah=f;ai=$ifaceNil;b=ag;c=ah;d=ai;return[b,c,d];}aj=BT(k);ak=BR(f);k=ak[0];f=ak[1];d=ak[2];if(!($interfaceIsEqual(d,$ifaceNil))){al=0;am="";an=d;b=al;c=am;d=an;return[b,c,d];}ao=BT(k);if(aj<0||ao<0){break;}ap=($imul(aj,16))+ao>>0;aq=f;ar=$ifaceNil;b=ap;c=aq;d=ar;return[b,c,d];}else if(o===(97)){as=7;at=f;au=d;b=as;c=at;d=au;return[b,c,d];}else if(o===(102)){av=12;aw=f;ax=d;b=av;c=aw;d=ax;return[b,c,d];}else if(o===(110)){ay=10;az=f;ba=d;b=ay;c=az;d=ba;return[b,c,d];}else if(o===(114)){bb=13;bc=f;bd=d;b=bb;c=bc;d=bd;return[b,c,d];}else if(o===(116)){be=9;bf=f;bg=d;b=be;c=bf;d=bg;return[b,c,d];}else if(o===(118)){bh=11;bi=f;bj=d;b=bh;c=bi;d=bj;return[b,c,d];}else if(k<128&&!BS(k)){bk=k;bl=f;bm=$ifaceNil;b=bk;c=bl;d=bm;return[b,c,d];}}bn=0;bo="";bp=new AO.ptr("invalid escape sequence",$substring(a,0,(a.length-f.length>>0)));b=bn;c=bo;d=bp;return[b,c,d];};AR.prototype.parseEscape=function(a){return this.$val.parseEscape(a);};AR.ptr.prototype.parseClassChar=function(a,b){var a,b,c,d,e,f,g,h,i,j,k;c=0;d="";e=$ifaceNil;f=this;if(a===""){g=0;h="";i=new AO.ptr("missing closing ]",b);c=g;d=h;e=i;return[c,d,e];}if(a.charCodeAt(0)===92){j=f.parseEscape(a);c=j[0];d=j[1];e=j[2];return[c,d,e];}k=BR(a);c=k[0];d=k[1];e=k[2];return[c,d,e];};AR.prototype.parseClassChar=function(a,b){return this.$val.parseClassChar(a,b);};AR.ptr.prototype.parsePerlClassEscape=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=CD.nil;d="";e=this;if((((e.flags&64)>>>0)===0)||a.length<2||!((a.charCodeAt(0)===92))){$s=-1;return[c,d];}g=$clone((f=$mapIndex(Y,$String.keyFor($substring(a,0,2))),f!==undefined?f.v:new BC.ptr(0,CD.nil)),BC);if(g.sign===0){$s=-1;return[c,d];}i=e.appendGroup(b,$clone(g,BC));$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=$substring(a,2);c=h;d=j;k=[c,d];$s=2;case 2:return k;}return;}var $f={$blk:AR.ptr.prototype.parsePerlClassEscape,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};AR.prototype.parsePerlClassEscape=function(a,b){return this.$val.parsePerlClassEscape(a,b);};AR.ptr.prototype.parseNamedClass=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=CD.nil;d="";e=$ifaceNil;f=this;if(a.length<2||!((a.charCodeAt(0)===91))||!((a.charCodeAt(1)===58))){$s=-1;return[c,d,e];}g=B.Index($substring(a,2),":]");if(g<0){$s=-1;return[c,d,e];}g=g+(2)>>0;h=$substring(a,0,(g+2>>0));i=$substring(a,(g+2>>0));j=h;a=i;l=$clone((k=$mapIndex(AN,$String.keyFor(j)),k!==undefined?k.v:new BC.ptr(0,CD.nil)),BC);if(l.sign===0){m=CD.nil;n="";o=new AO.ptr("invalid character class range",j);c=m;d=n;e=o;$s=-1;return[c,d,e];}q=f.appendGroup(b,$clone(l,BC));$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=a;s=$ifaceNil;c=p;d=r;e=s;t=[c,d,e];$s=2;case 2:return t;}return;}var $f={$blk:AR.ptr.prototype.parseNamedClass,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};AR.prototype.parseNamedClass=function(a,b){return this.$val.parseNamedClass(a,b);};AR.ptr.prototype.appendGroup=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(((c.flags&1)>>>0)===0){$s=1;continue;}$s=2;continue;case 1:if(b.sign<0){a=BL(a,b.class$1);}else{a=BJ(a,b.class$1);}$s=3;continue;case 2:d=$subslice(c.tmpClass,0,0);d=BK(d,b.class$1);c.tmpClass=d;e=BF((c.$ptr_tmpClass||(c.$ptr_tmpClass=new CM(function(){return this.$target.tmpClass;},function($v){this.$target.tmpClass=$v;},c))));$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;if(b.sign<0){a=BL(a,d);}else{a=BJ(a,d);}case 3:$s=-1;return a;}return;}var $f={$blk:AR.ptr.prototype.appendGroup,$c:true,$r,a,b,c,d,e,$s};return $f;};AR.prototype.appendGroup=function(a,b){return this.$val.appendGroup(a,b);};BE=function(a){var a,b,c,d,e,f,g;if(a==="Any"){return[BD,BD];}c=(b=$mapIndex(C.Categories,$String.keyFor(a)),b!==undefined?b.v:CN.nil);if(!(c===CN.nil)){return[c,(d=$mapIndex(C.FoldCategory,$String.keyFor(a)),d!==undefined?d.v:CN.nil)];}f=(e=$mapIndex(C.Scripts,$String.keyFor(a)),e!==undefined?e.v:CN.nil);if(!(f===CN.nil)){return[f,(g=$mapIndex(C.FoldScript,$String.keyFor(a)),g!==undefined?g.v:CN.nil)];}return[CN.nil,CN.nil];};AR.ptr.prototype.parseUnicodeClass=function(a,b){var{a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=CD.nil;d="";e=$ifaceNil;f=this;if((((f.flags&128)>>>0)===0)||a.length<2||!((a.charCodeAt(0)===92))||!((a.charCodeAt(1)===112))&&!((a.charCodeAt(1)===80))){$s=-1;return[c,d,e];}g=1;if(a.charCodeAt(1)===80){g=-1;}h=$substring(a,2);i=BR(h);j=i[0];h=i[1];e=i[2];if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[c,d,e];}k="";l="";m=k;n=l;if(!((j===123))){m=$substring(a,0,(a.length-h.length>>0));n=$substring(m,2);}else{o=B.IndexRune(a,125);if(o<0){e=BQ(a);if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[c,d,e];}p=CD.nil;q="";r=new AO.ptr("invalid character class range",a);c=p;d=q;e=r;$s=-1;return[c,d,e];}s=$substring(a,0,(o+1>>0));t=$substring(a,(o+1>>0));m=s;h=t;n=$substring(a,3,o);e=BQ(n);if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[c,d,e];}}if(!(n==="")&&(n.charCodeAt(0)===94)){g=-g;n=$substring(n,1);}u=BE(n);v=u[0];w=u[1];if(v===CN.nil){x=CD.nil;y="";z=new AO.ptr("invalid character class range",m);c=x;d=y;e=z;$s=-1;return[c,d,e];}if((((f.flags&1)>>>0)===0)||w===CN.nil){$s=1;continue;}$s=2;continue;case 1:if(g>0){b=BM(b,v);}else{b=BN(b,v);}$s=3;continue;case 2:aa=$subslice(f.tmpClass,0,0);aa=BM(aa,v);aa=BM(aa,w);f.tmpClass=aa;ab=BF((f.$ptr_tmpClass||(f.$ptr_tmpClass=new CM(function(){return this.$target.tmpClass;},function($v){this.$target.tmpClass=$v;},f))));$s=4;case 4:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;if(g>0){b=BJ(b,aa);}else{b=BL(b,aa);}case 3:ac=b;ad=h;ae=$ifaceNil;c=ac;d=ad;e=ae;$s=-1;return[c,d,e];}return;}var $f={$blk:AR.ptr.prototype.parseUnicodeClass,$c:true,$r,a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AR.prototype.parseUnicodeClass=function(a,b){return this.$val.parseUnicodeClass(a,b);};AR.ptr.prototype.parseClass=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b="";c=$ifaceNil;d=this;e=$substring(a,1);f=d.newRegexp(4);f.Flags=d.flags;f.Rune=$subslice(new CD(f.Rune0),0,0);g=1;if(!(e==="")&&(e.charCodeAt(0)===94)){g=-1;e=$substring(e,1);if(((d.flags&4)>>>0)===0){f.Rune=$append(f.Rune,10,10);}}h=f.Rune;i=true;case 1:if(!(e===""||!((e.charCodeAt(0)===93))||i)){$s=2;continue;}if(!(e==="")&&(e.charCodeAt(0)===45)&&(((d.flags&64)>>>0)===0)&&!i&&((e.length===1)||!((e.charCodeAt(1)===93)))){j=D.DecodeRuneInString($substring(e,1));k=j[1];l="";m=new AO.ptr("invalid character class range",$substring(e,0,(1+k>>0)));b=l;c=m;$s=-1;return[b,c];}i=false;if(e.length>2&&(e.charCodeAt(0)===91)&&(e.charCodeAt(1)===58)){$s=3;continue;}$s=4;continue;case 3:o=d.parseNamedClass(e,h);$s=5;case 5:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;p=n[0];q=n[1];r=n[2];if(!($interfaceIsEqual(r,$ifaceNil))){s="";t=r;b=s;c=t;$s=-1;return[b,c];}if(!(p===CD.nil)){u=p;v=q;h=u;e=v;$s=1;continue;}case 4:x=d.parseUnicodeClass(e,h);$s=6;case 6:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;y=w[0];z=w[1];aa=w[2];if(!($interfaceIsEqual(aa,$ifaceNil))){ab="";ac=aa;b=ab;c=ac;$s=-1;return[b,c];}if(!(y===CD.nil)){ad=y;ae=z;h=ad;e=ae;$s=1;continue;}ag=d.parsePerlClassEscape(e,h);$s=7;case 7:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;ah=af[0];ai=af[1];if(!(ah===CD.nil)){aj=ah;ak=ai;h=aj;e=ak;$s=1;continue;}al=e;am=0;an=0;ao=am;ap=an;aq=d.parseClassChar(e,a);ao=aq[0];e=aq[1];aa=aq[2];if(!($interfaceIsEqual(aa,$ifaceNil))){ar="";as=aa;b=ar;c=as;$s=-1;return[b,c];}ap=ao;if(e.length>=2&&(e.charCodeAt(0)===45)&&!((e.charCodeAt(1)===93))){e=$substring(e,1);at=d.parseClassChar(e,a);ap=at[0];e=at[1];aa=at[2];if(!($interfaceIsEqual(aa,$ifaceNil))){au="";av=aa;b=au;c=av;$s=-1;return[b,c];}if(ap>0));aw="";ax=new AO.ptr("invalid character class range",al);b=aw;c=ax;$s=-1;return[b,c];}}if(((d.flags&1)>>>0)===0){h=BH(h,ao,ap);}else{h=BI(h,ao,ap);}$s=1;continue;case 2:e=$substring(e,1);f.Rune=h;ay=BF((f.$ptr_Rune||(f.$ptr_Rune=new CM(function(){return this.$target.Rune;},function($v){this.$target.Rune=$v;},f))));$s=8;case 8:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}h=ay;if(g<0){h=BO(h);}f.Rune=h;d.push(f);az=e;ba=$ifaceNil;b=az;c=ba;$s=-1;return[b,c];}return;}var $f={$blk:AR.ptr.prototype.parseClass,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AR.prototype.parseClass=function(a){return this.$val.parseClass(a);};BF=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:$r=E.Sort((b=new BP.ptr(a),new b.constructor.elem(b)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=a.$get();if(c.$length<2){$s=-1;return c;}d=2;e=2;while(true){if(!(e=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+e]);g=(h=e+1>>0,((h<0||h>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+h]));i=f;j=g;if(i<=((k=d-1>>0,((k<0||k>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+k]))+1>>0)){if(j>(l=d-1>>0,((l<0||l>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+l]))){(m=d-1>>0,((m<0||m>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+m]=j));}e=e+(2)>>0;continue;}((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=i);(n=d+1>>0,((n<0||n>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+n]=j));d=d+(2)>>0;e=e+(2)>>0;}$s=-1;return $subslice(c,0,d);}return;}var $f={$blk:BF,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};BG=function(a,b,c){var a,b,c;if(!((((c&1)>>>0)===0))){return BI(a,b,b);}return BH(a,b,b);};BH=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m;d=a.$length;e=2;while(true){if(!(e<=4)){break;}if(d>=e){f=(g=d-e>>0,((g<0||g>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g]));h=(i=(d-e>>0)+1>>0,((i<0||i>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+i]));j=f;k=h;if(b<=(k+1>>0)&&j<=(c+1>>0)){if(b>0,((l<0||l>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+l]=b));}if(c>k){(m=(d-e>>0)+1>>0,((m<0||m>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+m]=c));}return a;}}e=e+(2)>>0;}return $append(a,b,c);};BI=function(a,b,c){var a,b,c,d,e;if(b<=65&&c>=125251){return BH(a,b,c);}if(c<65||b>125251){return BH(a,b,c);}if(b<65){a=BH(a,b,64);b=65;}if(c>125251){a=BH(a,125252,c);c=125251;}d=b;while(true){if(!(d<=c)){break;}a=BH(a,d,d);e=C.SimpleFold(d);while(true){if(!(!((e===d)))){break;}a=BH(a,e,e);e=C.SimpleFold(e);}d=d+(1)>>0;}return a;};BJ=function(a,b){var a,b,c,d;c=0;while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]),(d=c+1>>0,((d<0||d>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+d])));c=c+(2)>>0;}return a;};BK=function(a,b){var a,b,c,d;c=0;while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]),(d=c+1>>0,((d<0||d>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+d])));c=c+(2)>>0;}return a;};BL=function(a,b){var a,b,c,d,e,f,g,h,i;c=0;d=0;while(true){if(!(d=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+d]);f=(g=d+1>>0,((g<0||g>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+g]));h=e;i=f;if(c<=(h-1>>0)){a=BH(a,c,h-1>>0);}c=i+1>>0;d=d+(2)>>0;}if(c<=1114111){a=BH(a,c,1114111);}return a;};BM=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;c=b.R16;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]),C.Range16);f=((e.Lo>>0));g=((e.Hi>>0));h=((e.Stride>>0));i=f;j=g;k=h;if(k===1){a=BH(a,i,j);d++;continue;}l=i;while(true){if(!(l<=j)){break;}a=BH(a,l,l);l=l+(k)>>0;}d++;}m=b.R32;n=0;while(true){if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]),C.Range32);p=((o.Lo>>0));q=((o.Hi>>0));r=((o.Stride>>0));s=p;t=q;u=r;if(u===1){a=BH(a,s,t);n++;continue;}v=s;while(true){if(!(v<=t)){break;}a=BH(a,v,v);v=v+(u)>>0;}n++;}return a;};BN=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;c=0;d=b.R16;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]),C.Range16);g=((f.Lo>>0));h=((f.Hi>>0));i=((f.Stride>>0));j=g;k=h;l=i;if(l===1){if(c<=(j-1>>0)){a=BH(a,c,j-1>>0);}c=k+1>>0;e++;continue;}m=j;while(true){if(!(m<=k)){break;}if(c<=(m-1>>0)){a=BH(a,c,m-1>>0);}c=m+1>>0;m=m+(l)>>0;}e++;}n=b.R32;o=0;while(true){if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]),C.Range32);q=((p.Lo>>0));r=((p.Hi>>0));s=((p.Stride>>0));t=q;u=r;v=s;if(v===1){if(c<=(t-1>>0)){a=BH(a,c,t-1>>0);}c=u+1>>0;o++;continue;}w=t;while(true){if(!(w<=u)){break;}if(c<=(w-1>>0)){a=BH(a,c,w-1>>0);}c=w+1>>0;w=w+(v)>>0;}o++;}if(c<=1114111){a=BH(a,c,1114111);}return a;};BO=function(a){var a,b,c,d,e,f,g,h,i,j;b=0;c=0;d=0;while(true){if(!(d=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+d]);f=(g=d+1>>0,((g<0||g>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g]));h=e;i=f;if(b<=(h-1>>0)){((c<0||c>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+c]=b);(j=c+1>>0,((j<0||j>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+j]=(h-1>>0)));c=c+(2)>>0;}b=i+1>>0;d=d+(2)>>0;}a=$subslice(a,0,c);if(b<=1114111){a=$append(a,b,1114111);}return a;};BP.ptr.prototype.Less=function(a,b){var a,b,c,d,e,f;c=this;d=c.p.$get();a=$imul(a,(2));b=$imul(b,(2));return((a<0||a>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+a])<((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b])||(((a<0||a>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+a])===((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]))&&(e=a+1>>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]))>(f=b+1>>0,((f<0||f>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f]));};BP.prototype.Less=function(a,b){return this.$val.Less(a,b);};BP.ptr.prototype.Len=function(){var a,b;a=this;return(b=a.p.$get().$length/2,(b===b&&b!==1/0&&b!==-1/0)?b>>0:$throwRuntimeError("integer divide by zero"));};BP.prototype.Len=function(){return this.$val.Len();};BP.ptr.prototype.Swap=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l;c=this;d=c.p.$get();a=$imul(a,(2));b=$imul(b,(2));e=((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]);f=(g=b+1>>0,((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]));h=((a<0||a>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+a]);i=(j=a+1>>0,((j<0||j>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+j]));((a<0||a>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+a]=e);(k=a+1>>0,((k<0||k>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+k]=f));((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]=h);(l=b+1>>0,((l<0||l>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+l]=i));};BP.prototype.Swap=function(a,b){return this.$val.Swap(a,b);};BQ=function(a){var a,b,c,d;while(true){if(!(!(a===""))){break;}b=D.DecodeRuneInString(a);c=b[0];d=b[1];if((c===65533)&&(d===1)){return new AO.ptr("invalid UTF-8",a);}a=$substring(a,d);}return $ifaceNil;};BR=function(a){var a,b,c,d,e,f,g,h,i,j,k,l;b=0;c="";d=$ifaceNil;e=D.DecodeRuneInString(a);b=e[0];f=e[1];if((b===65533)&&(f===1)){g=0;h="";i=new AO.ptr("invalid UTF-8",a);b=g;c=h;d=i;return[b,c,d];}j=b;k=$substring(a,f);l=$ifaceNil;b=j;c=k;d=l;return[b,c,d];};BS=function(a){var a;return 48<=a&&a<=57||65<=a&&a<=90||97<=a&&a<=122;};BT=function(a){var a;if(48<=a&&a<=57){return a-48>>0;}if(97<=a&&a<=102){return(a-97>>0)+10>>0;}if(65<=a&&a<=70){return(a-65>>0)+10>>0;}return-1;};H.prototype.String=function(){var a,b;a=this.$val;if(1<=a&&a<=19){a=a-(1)<<24>>>24;return $substring("NoMatchEmptyMatchLiteralCharClassAnyCharNotNLAnyCharBeginLineEndLineBeginTextEndTextWordBoundaryNoWordBoundaryCaptureStarPlusQuestRepeatConcatAlternate",((a<0||a>=BU.length)?($throwRuntimeError("index out of range"),undefined):BU[a]),(b=a+1<<24>>>24,((b<0||b>=BU.length)?($throwRuntimeError("index out of range"),undefined):BU[b])));}else if((a===128)){return"opPseudo";}else{return"Op("+A.FormatInt((new $Int64(0,a)),10)+")";}};$ptrType(H).prototype.String=function(){return new H(this.$get()).String();};BW=function(a){var a;return new BV.ptr(a,a);};BV.ptr.prototype.patch=function(a,b){var a,b,c,d,e,f,g;c=this;d=c.head;while(true){if(!(!((d===0)))){break;}g=(e=a.Inst,f=d>>>1>>>0,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));if(((d&1)>>>0)===0){d=g.Out;g.Out=b;}else{d=g.Arg;g.Arg=b;}}};BV.prototype.patch=function(a,b){return this.$val.patch(a,b);};BV.ptr.prototype.append=function(a,b){var a,b,c,d,e,f;c=this;if(c.head===0){return b;}if(b.head===0){return c;}f=(d=a.Inst,e=c.tail>>>1>>>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]));if(((c.tail&1)>>>0)===0){f.Out=b.head;}else{f.Arg=b.head;}return new BV.ptr(c.head,b.tail);};BV.prototype.append=function(a,b){return this.$val.append(a,b);};BZ=function(a){var a,b,c;b=new BY.ptr(CO.nil);b.init();c=$clone(b.compile(a),BX);$clone(c.out,BV).patch(b.p,b.inst(4).i);b.p.Start=((c.i>>0));return[b.p,$ifaceNil];};$pkg.Compile=BZ;BY.ptr.prototype.init=function(){var a;a=this;a.p=new K.ptr(CP.nil,0,0);a.p.NumCap=2;a.inst(5);};BY.prototype.init=function(){return this.$val.init();};BY.ptr.prototype.compile=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;b=this;c=a.Op;if(c===(1)){return b.fail();}else if(c===(2)){return b.nop();}else if(c===(3)){if(a.Rune.$length===0){return b.nop();}d=new BX.ptr(0,new BV.ptr(0,0),false);e=a.Rune;f=0;while(true){if(!(f>0)),a.Flags),BX);if(g===0){BX.copy(d,h);}else{BX.copy(d,b.cat($clone(d,BX),$clone(h,BX)));}f++;}return d;}else if(c===(4)){return b.rune(a.Rune,a.Flags);}else if(c===(5)){return b.rune(CA,0);}else if(c===(6)){return b.rune(CB,0);}else if(c===(7)){return b.empty(1);}else if(c===(8)){return b.empty(2);}else if(c===(9)){return b.empty(4);}else if(c===(10)){return b.empty(8);}else if(c===(11)){return b.empty(16);}else if(c===(12)){return b.empty(32);}else if(c===(13)){i=$clone(b.cap((((a.Cap<<1>>0)>>>0))),BX);k=$clone(b.compile((j=a.Sub,(0>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+0]))),BX);l=$clone(b.cap(((((a.Cap<<1>>0)|1)>>>0))),BX);return b.cat($clone(b.cat($clone(i,BX),$clone(k,BX)),BX),$clone(l,BX));}else if(c===(14)){return b.star($clone(b.compile((m=a.Sub,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0]))),BX),!((((a.Flags&32)>>>0)===0)));}else if(c===(15)){return b.plus($clone(b.compile((n=a.Sub,(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0]))),BX),!((((a.Flags&32)>>>0)===0)));}else if(c===(16)){return b.quest($clone(b.compile((o=a.Sub,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0]))),BX),!((((a.Flags&32)>>>0)===0)));}else if(c===(18)){if(a.Sub.$length===0){return b.nop();}p=new BX.ptr(0,new BV.ptr(0,0),false);q=a.Sub;r=0;while(true){if(!(r=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);if(s===0){BX.copy(p,b.compile(t));}else{BX.copy(p,b.cat($clone(p,BX),$clone(b.compile(t),BX)));}r++;}return p;}else if(c===(19)){u=new BX.ptr(0,new BV.ptr(0,0),false);v=a.Sub;w=0;while(true){if(!(w=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w]);BX.copy(u,b.alt($clone(u,BX),$clone(b.compile(x),BX)));w++;}return u;}$panic(new $String("regexp: unhandled case in compile"));};BY.prototype.compile=function(a){return this.$val.compile(a);};BY.ptr.prototype.inst=function(a){var a,b,c;b=this;c=new BX.ptr(((b.p.Inst.$length>>>0)),new BV.ptr(0,0),true);b.p.Inst=$append(b.p.Inst,new Q.ptr(a,0,0,CD.nil));return c;};BY.prototype.inst=function(a){return this.$val.inst(a);};BY.ptr.prototype.nop=function(){var a,b;a=this;b=$clone(a.inst(6),BX);BV.copy(b.out,BW(b.i<<1>>>0));return b;};BY.prototype.nop=function(){return this.$val.nop();};BY.ptr.prototype.fail=function(){var a;a=this;return new BX.ptr(0,new BV.ptr(0,0),false);};BY.prototype.fail=function(){return this.$val.fail();};BY.ptr.prototype.cap=function(a){var a,b,c,d,e;b=this;c=$clone(b.inst(2),BX);BV.copy(c.out,BW(c.i<<1>>>0));(d=b.p.Inst,e=c.i,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e])).Arg=a;if(b.p.NumCap<(((a>>0))+1>>0)){b.p.NumCap=((a>>0))+1>>0;}return c;};BY.prototype.cap=function(a){return this.$val.cap(a);};BY.ptr.prototype.cat=function(a,b){var a,b,c;c=this;if((a.i===0)||(b.i===0)){return new BX.ptr(0,new BV.ptr(0,0),false);}$clone(a.out,BV).patch(c.p,b.i);return new BX.ptr(a.i,$clone(b.out,BV),a.nullable&&b.nullable);};BY.prototype.cat=function(a,b){return this.$val.cat(a,b);};BY.ptr.prototype.alt=function(a,b){var a,b,c,d,e,f,g;c=this;if(a.i===0){return b;}if(b.i===0){return a;}d=$clone(c.inst(0),BX);g=(e=c.p.Inst,f=d.i,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));g.Out=a.i;g.Arg=b.i;BV.copy(d.out,$clone(a.out,BV).append(c.p,$clone(b.out,BV)));d.nullable=a.nullable||b.nullable;return d;};BY.prototype.alt=function(a,b){return this.$val.alt(a,b);};BY.ptr.prototype.quest=function(a,b){var a,b,c,d,e,f,g;c=this;d=$clone(c.inst(0),BX);g=(e=c.p.Inst,f=d.i,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));if(b){g.Arg=a.i;BV.copy(d.out,BW(d.i<<1>>>0));}else{g.Out=a.i;BV.copy(d.out,BW(((d.i<<1>>>0)|1)>>>0));}BV.copy(d.out,$clone(d.out,BV).append(c.p,$clone(a.out,BV)));return d;};BY.prototype.quest=function(a,b){return this.$val.quest(a,b);};BY.ptr.prototype.loop=function(a,b){var a,b,c,d,e,f,g;c=this;d=$clone(c.inst(0),BX);g=(e=c.p.Inst,f=d.i,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));if(b){g.Arg=a.i;BV.copy(d.out,BW(d.i<<1>>>0));}else{g.Out=a.i;BV.copy(d.out,BW(((d.i<<1>>>0)|1)>>>0));}$clone(a.out,BV).patch(c.p,d.i);return d;};BY.prototype.loop=function(a,b){return this.$val.loop(a,b);};BY.ptr.prototype.star=function(a,b){var a,b,c;c=this;if(a.nullable){return c.quest($clone(c.plus($clone(a,BX),b),BX),b);}return c.loop($clone(a,BX),b);};BY.prototype.star=function(a,b){return this.$val.star(a,b);};BY.ptr.prototype.plus=function(a,b){var a,b,c;c=this;return new BX.ptr(a.i,$clone(c.loop($clone(a,BX),b).out,BV),a.nullable);};BY.prototype.plus=function(a,b){return this.$val.plus(a,b);};BY.ptr.prototype.empty=function(a){var a,b,c,d,e;b=this;c=$clone(b.inst(3),BX);(d=b.p.Inst,e=c.i,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e])).Arg=((a>>>0));BV.copy(c.out,BW(c.i<<1>>>0));return c;};BY.prototype.empty=function(a){return this.$val.empty(a);};BY.ptr.prototype.rune=function(a,b){var a,b,c,d,e,f,g;c=this;d=$clone(c.inst(7),BX);d.nullable=false;g=(e=c.p.Inst,f=d.i,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));g.Rune=a;b=(b&(1))>>>0;if(!((a.$length===1))||(C.SimpleFold((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]))===(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]))){b=(b&~(1))<<16>>>16;}g.Arg=((b>>>0));BV.copy(d.out,BW(d.i<<1>>>0));if((((b&1)>>>0)===0)&&((a.$length===1)||(a.$length===2)&&((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])===(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])))){g.Op=8;}else if((a.$length===2)&&((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])===0)&&((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])===1114111)){g.Op=9;}else if((a.$length===4)&&((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])===0)&&((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])===9)&&((2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2])===11)&&((3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3])===1114111)){g.Op=10;}return d;};BY.prototype.rune=function(a,b){return this.$val.rune(a,b);};CG.methods=[{prop:"Simplify",name:"Simplify",pkg:"",typ:$funcType([],[CG],false)},{prop:"Equal",name:"Equal",pkg:"",typ:$funcType([CG],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"MaxCap",name:"MaxCap",pkg:"",typ:$funcType([],[$Int],false)},{prop:"CapNames",name:"CapNames",pkg:"",typ:$funcType([],[CC],false)},{prop:"capNames",name:"capNames",pkg:"regexp/syntax",typ:$funcType([CC],[],false)}];H.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];CO.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"skipNop",name:"skipNop",pkg:"regexp/syntax",typ:$funcType([$Uint32],[CQ],false)},{prop:"Prefix",name:"Prefix",pkg:"",typ:$funcType([],[$String,$Bool],false)},{prop:"StartCond",name:"StartCond",pkg:"",typ:$funcType([],[N],false)}];L.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];CQ.methods=[{prop:"op",name:"op",pkg:"regexp/syntax",typ:$funcType([],[L],false)},{prop:"MatchRune",name:"MatchRune",pkg:"",typ:$funcType([$Int32],[$Bool],false)},{prop:"MatchRunePos",name:"MatchRunePos",pkg:"",typ:$funcType([$Int32],[$Int],false)},{prop:"MatchEmptyWidth",name:"MatchEmptyWidth",pkg:"",typ:$funcType([$Int32,$Int32],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];CR.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];AP.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];CS.methods=[{prop:"newRegexp",name:"newRegexp",pkg:"regexp/syntax",typ:$funcType([H],[CG],false)},{prop:"reuse",name:"reuse",pkg:"regexp/syntax",typ:$funcType([CG],[],false)},{prop:"checkHeight",name:"checkHeight",pkg:"regexp/syntax",typ:$funcType([CG],[],false)},{prop:"calcHeight",name:"calcHeight",pkg:"regexp/syntax",typ:$funcType([CG,$Bool],[$Int],false)},{prop:"push",name:"push",pkg:"regexp/syntax",typ:$funcType([CG],[CG],false)},{prop:"maybeConcat",name:"maybeConcat",pkg:"regexp/syntax",typ:$funcType([$Int32,AQ],[$Bool],false)},{prop:"literal",name:"literal",pkg:"regexp/syntax",typ:$funcType([$Int32],[],false)},{prop:"op",name:"op",pkg:"regexp/syntax",typ:$funcType([H],[CG],false)},{prop:"repeat",name:"repeat",pkg:"regexp/syntax",typ:$funcType([H,$Int,$Int,$String,$String,$String],[$String,$error],false)},{prop:"concat",name:"concat",pkg:"regexp/syntax",typ:$funcType([],[CG],false)},{prop:"alternate",name:"alternate",pkg:"regexp/syntax",typ:$funcType([],[CG],false)},{prop:"collapse",name:"collapse",pkg:"regexp/syntax",typ:$funcType([CH,H],[CG],false)},{prop:"factor",name:"factor",pkg:"regexp/syntax",typ:$funcType([CH],[CH],false)},{prop:"leadingString",name:"leadingString",pkg:"regexp/syntax",typ:$funcType([CG],[CD,AQ],false)},{prop:"removeLeadingString",name:"removeLeadingString",pkg:"regexp/syntax",typ:$funcType([CG,$Int],[CG],false)},{prop:"leadingRegexp",name:"leadingRegexp",pkg:"regexp/syntax",typ:$funcType([CG],[CG],false)},{prop:"removeLeadingRegexp",name:"removeLeadingRegexp",pkg:"regexp/syntax",typ:$funcType([CG,$Bool],[CG],false)},{prop:"parseRepeat",name:"parseRepeat",pkg:"regexp/syntax",typ:$funcType([$String],[$Int,$Int,$String,$Bool],false)},{prop:"parsePerlFlags",name:"parsePerlFlags",pkg:"regexp/syntax",typ:$funcType([$String],[$String,$error],false)},{prop:"parseInt",name:"parseInt",pkg:"regexp/syntax",typ:$funcType([$String],[$Int,$String,$Bool],false)},{prop:"parseVerticalBar",name:"parseVerticalBar",pkg:"regexp/syntax",typ:$funcType([],[$error],false)},{prop:"swapVerticalBar",name:"swapVerticalBar",pkg:"regexp/syntax",typ:$funcType([],[$Bool],false)},{prop:"parseRightParen",name:"parseRightParen",pkg:"regexp/syntax",typ:$funcType([],[$error],false)},{prop:"parseEscape",name:"parseEscape",pkg:"regexp/syntax",typ:$funcType([$String],[$Int32,$String,$error],false)},{prop:"parseClassChar",name:"parseClassChar",pkg:"regexp/syntax",typ:$funcType([$String,$String],[$Int32,$String,$error],false)},{prop:"parsePerlClassEscape",name:"parsePerlClassEscape",pkg:"regexp/syntax",typ:$funcType([$String,CD],[CD,$String],false)},{prop:"parseNamedClass",name:"parseNamedClass",pkg:"regexp/syntax",typ:$funcType([$String,CD],[CD,$String,$error],false)},{prop:"appendGroup",name:"appendGroup",pkg:"regexp/syntax",typ:$funcType([CD,BC],[CD],false)},{prop:"parseUnicodeClass",name:"parseUnicodeClass",pkg:"regexp/syntax",typ:$funcType([$String,CD],[CD,$String,$error],false)},{prop:"parseClass",name:"parseClass",pkg:"regexp/syntax",typ:$funcType([$String],[$String,$error],false)}];BP.methods=[{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)}];BV.methods=[{prop:"patch",name:"patch",pkg:"regexp/syntax",typ:$funcType([CO,$Uint32],[],false)},{prop:"append",name:"append",pkg:"regexp/syntax",typ:$funcType([CO,BV],[BV],false)}];CU.methods=[{prop:"init",name:"init",pkg:"regexp/syntax",typ:$funcType([],[],false)},{prop:"compile",name:"compile",pkg:"regexp/syntax",typ:$funcType([CG],[BX],false)},{prop:"inst",name:"inst",pkg:"regexp/syntax",typ:$funcType([L],[BX],false)},{prop:"nop",name:"nop",pkg:"regexp/syntax",typ:$funcType([],[BX],false)},{prop:"fail",name:"fail",pkg:"regexp/syntax",typ:$funcType([],[BX],false)},{prop:"cap",name:"cap",pkg:"regexp/syntax",typ:$funcType([$Uint32],[BX],false)},{prop:"cat",name:"cat",pkg:"regexp/syntax",typ:$funcType([BX,BX],[BX],false)},{prop:"alt",name:"alt",pkg:"regexp/syntax",typ:$funcType([BX,BX],[BX],false)},{prop:"quest",name:"quest",pkg:"regexp/syntax",typ:$funcType([BX,$Bool],[BX],false)},{prop:"loop",name:"loop",pkg:"regexp/syntax",typ:$funcType([BX,$Bool],[BX],false)},{prop:"star",name:"star",pkg:"regexp/syntax",typ:$funcType([BX,$Bool],[BX],false)},{prop:"plus",name:"plus",pkg:"regexp/syntax",typ:$funcType([BX,$Bool],[BX],false)},{prop:"empty",name:"empty",pkg:"regexp/syntax",typ:$funcType([N],[BX],false)},{prop:"rune",name:"rune",pkg:"regexp/syntax",typ:$funcType([CD,AQ],[BX],false)}];G.init("",[{prop:"Op",name:"Op",embedded:false,exported:true,typ:H,tag:""},{prop:"Flags",name:"Flags",embedded:false,exported:true,typ:AQ,tag:""},{prop:"Sub",name:"Sub",embedded:false,exported:true,typ:CH,tag:""},{prop:"Sub0",name:"Sub0",embedded:false,exported:true,typ:CI,tag:""},{prop:"Rune",name:"Rune",embedded:false,exported:true,typ:CD,tag:""},{prop:"Rune0",name:"Rune0",embedded:false,exported:true,typ:CJ,tag:""},{prop:"Min",name:"Min",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Max",name:"Max",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Cap",name:"Cap",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""}]);K.init("",[{prop:"Inst",name:"Inst",embedded:false,exported:true,typ:CP,tag:""},{prop:"Start",name:"Start",embedded:false,exported:true,typ:$Int,tag:""},{prop:"NumCap",name:"NumCap",embedded:false,exported:true,typ:$Int,tag:""}]);Q.init("",[{prop:"Op",name:"Op",embedded:false,exported:true,typ:L,tag:""},{prop:"Out",name:"Out",embedded:false,exported:true,typ:$Uint32,tag:""},{prop:"Arg",name:"Arg",embedded:false,exported:true,typ:$Uint32,tag:""},{prop:"Rune",name:"Rune",embedded:false,exported:true,typ:CD,tag:""}]);AO.init("",[{prop:"Code",name:"Code",embedded:false,exported:true,typ:AP,tag:""},{prop:"Expr",name:"Expr",embedded:false,exported:true,typ:$String,tag:""}]);AR.init("regexp/syntax",[{prop:"flags",name:"flags",embedded:false,exported:false,typ:AQ,tag:""},{prop:"stack",name:"stack",embedded:false,exported:false,typ:CH,tag:""},{prop:"free",name:"free",embedded:false,exported:false,typ:CG,tag:""},{prop:"numCap",name:"numCap",embedded:false,exported:false,typ:$Int,tag:""},{prop:"wholeRegexp",name:"wholeRegexp",embedded:false,exported:false,typ:$String,tag:""},{prop:"tmpClass",name:"tmpClass",embedded:false,exported:false,typ:CD,tag:""},{prop:"numRegexp",name:"numRegexp",embedded:false,exported:false,typ:$Int,tag:""},{prop:"height",name:"height",embedded:false,exported:false,typ:CT,tag:""}]);BC.init("regexp/syntax",[{prop:"sign",name:"sign",embedded:false,exported:false,typ:$Int,tag:""},{prop:"class$1",name:"class",embedded:false,exported:false,typ:CD,tag:""}]);BP.init("regexp/syntax",[{prop:"p",name:"p",embedded:false,exported:false,typ:CM,tag:""}]);BV.init("regexp/syntax",[{prop:"head",name:"head",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"tail",name:"tail",embedded:false,exported:false,typ:$Uint32,tag:""}]);BX.init("regexp/syntax",[{prop:"i",name:"i",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"out",name:"out",embedded:false,exported:false,typ:BV,tag:""},{prop:"nullable",name:"nullable",embedded:false,exported:false,typ:$Bool,tag:""}]);BY.init("regexp/syntax",[{prop:"p",name:"p",embedded:false,exported:false,typ:CO,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=E.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}M=new CC(["InstAlt","InstAltMatch","InstCapture","InstEmptyWidth","InstMatch","InstFail","InstNop","InstRune","InstRune1","InstRuneAny","InstRuneAnyNotNL"]);V=new CD([48,57]);W=new CD([9,10,12,13,32,32]);X=new CD([48,57,65,90,95,95,97,122]);Y=$makeMap($String.keyFor,[{k:"\\d",v:new BC.ptr(1,V)},{k:"\\D",v:new BC.ptr(-1,V)},{k:"\\s",v:new BC.ptr(1,W)},{k:"\\S",v:new BC.ptr(-1,W)},{k:"\\w",v:new BC.ptr(1,X)},{k:"\\W",v:new BC.ptr(-1,X)}]);Z=new CD([48,57,65,90,97,122]);AA=new CD([65,90,97,122]);AB=new CD([0,127]);AC=new CD([9,9,32,32]);AD=new CD([0,31,127,127]);AE=new CD([48,57]);AF=new CD([33,126]);AG=new CD([97,122]);AH=new CD([32,126]);AI=new CD([33,47,58,64,91,96,123,126]);AJ=new CD([9,13,32,32]);AK=new CD([65,90]);AL=new CD([48,57,65,90,95,95,97,122]);AM=new CD([48,57,65,70,97,102]);AN=$makeMap($String.keyFor,[{k:"[:alnum:]",v:new BC.ptr(1,Z)},{k:"[:^alnum:]",v:new BC.ptr(-1,Z)},{k:"[:alpha:]",v:new BC.ptr(1,AA)},{k:"[:^alpha:]",v:new BC.ptr(-1,AA)},{k:"[:ascii:]",v:new BC.ptr(1,AB)},{k:"[:^ascii:]",v:new BC.ptr(-1,AB)},{k:"[:blank:]",v:new BC.ptr(1,AC)},{k:"[:^blank:]",v:new BC.ptr(-1,AC)},{k:"[:cntrl:]",v:new BC.ptr(1,AD)},{k:"[:^cntrl:]",v:new BC.ptr(-1,AD)},{k:"[:digit:]",v:new BC.ptr(1,AE)},{k:"[:^digit:]",v:new BC.ptr(-1,AE)},{k:"[:graph:]",v:new BC.ptr(1,AF)},{k:"[:^graph:]",v:new BC.ptr(-1,AF)},{k:"[:lower:]",v:new BC.ptr(1,AG)},{k:"[:^lower:]",v:new BC.ptr(-1,AG)},{k:"[:print:]",v:new BC.ptr(1,AH)},{k:"[:^print:]",v:new BC.ptr(-1,AH)},{k:"[:punct:]",v:new BC.ptr(1,AI)},{k:"[:^punct:]",v:new BC.ptr(-1,AI)},{k:"[:space:]",v:new BC.ptr(1,AJ)},{k:"[:^space:]",v:new BC.ptr(-1,AJ)},{k:"[:upper:]",v:new BC.ptr(1,AK)},{k:"[:^upper:]",v:new BC.ptr(-1,AK)},{k:"[:word:]",v:new BC.ptr(1,AL)},{k:"[:^word:]",v:new BC.ptr(-1,AL)},{k:"[:xdigit:]",v:new BC.ptr(1,AM)},{k:"[:^xdigit:]",v:new BC.ptr(-1,AM)}]);BD=new C.RangeTable.ptr(new CE([new C.Range16.ptr(0,65535,1)]),new CF([new C.Range32.ptr(65536,1114111,1)]),0);BU=$toNativeArray($kindUint8,[0,7,17,24,33,45,52,61,68,77,84,96,110,117,121,125,130,136,142,151]);CA=new CD([0,9,11,1114111]);CB=new CD([0,1114111]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["regexp"]=(function(){var $pkg={},$init,A,F,B,C,I,D,E,G,H,J,T,U,V,W,AF,AG,AK,AR,AW,AX,AY,AZ,BA,BB,BD,BI,BJ,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,CY,CZ,DA,DB,DC,DD,DE,DF,DG,N,O,AA,AM,AN,AS,AT,BE,BH,BK,K,M,P,Q,S,AC,AE,AH,AI,AJ,AL,AO,AP,AQ,AU,AV,BC,BF,BG,BL,BM,BN,BO;A=$packages["bytes"];F=$packages["github.com/gopherjs/gopherjs/nosync"];B=$packages["io"];C=$packages["regexp/syntax"];I=$packages["sort"];D=$packages["strconv"];E=$packages["strings"];G=$packages["unicode"];H=$packages["unicode/utf8"];J=$pkg.Regexp=$newType(0,$kindStruct,"regexp.Regexp",true,"regexp",true,function(expr_,prog_,onepass_,numSubexp_,maxBitStateLen_,subexpNames_,prefix_,prefixBytes_,prefixRune_,prefixEnd_,mpool_,matchcap_,prefixComplete_,cond_,minInputLen_,longest_){this.$val=this;if(arguments.length===0){this.expr="";this.prog=BW.nil;this.onepass=BX.nil;this.numSubexp=0;this.maxBitStateLen=0;this.subexpNames=BY.nil;this.prefix="";this.prefixBytes=BZ.nil;this.prefixRune=0;this.prefixEnd=0;this.mpool=0;this.matchcap=0;this.prefixComplete=false;this.cond=0;this.minInputLen=0;this.longest=false;return;}this.expr=expr_;this.prog=prog_;this.onepass=onepass_;this.numSubexp=numSubexp_;this.maxBitStateLen=maxBitStateLen_;this.subexpNames=subexpNames_;this.prefix=prefix_;this.prefixBytes=prefixBytes_;this.prefixRune=prefixRune_;this.prefixEnd=prefixEnd_;this.mpool=mpool_;this.matchcap=matchcap_;this.prefixComplete=prefixComplete_;this.cond=cond_;this.minInputLen=minInputLen_;this.longest=longest_;});T=$pkg.input=$newType(8,$kindInterface,"regexp.input",true,"regexp",false,null);U=$pkg.inputString=$newType(0,$kindStruct,"regexp.inputString",true,"regexp",false,function(str_){this.$val=this;if(arguments.length===0){this.str="";return;}this.str=str_;});V=$pkg.inputBytes=$newType(0,$kindStruct,"regexp.inputBytes",true,"regexp",false,function(str_){this.$val=this;if(arguments.length===0){this.str=BZ.nil;return;}this.str=str_;});W=$pkg.inputReader=$newType(0,$kindStruct,"regexp.inputReader",true,"regexp",false,function(r_,atEOT_,pos_){this.$val=this;if(arguments.length===0){this.r=$ifaceNil;this.atEOT=false;this.pos=0;return;}this.r=r_;this.atEOT=atEOT_;this.pos=pos_;});AF=$pkg.onePassProg=$newType(0,$kindStruct,"regexp.onePassProg",true,"regexp",false,function(Inst_,Start_,NumCap_){this.$val=this;if(arguments.length===0){this.Inst=CO.nil;this.Start=0;this.NumCap=0;return;}this.Inst=Inst_;this.Start=Start_;this.NumCap=NumCap_;});AG=$pkg.onePassInst=$newType(0,$kindStruct,"regexp.onePassInst",true,"regexp",false,function(Inst_,Next_){this.$val=this;if(arguments.length===0){this.Inst=new C.Inst.ptr(0,0,0,BT.nil);this.Next=BU.nil;return;}this.Inst=Inst_;this.Next=Next_;});AK=$pkg.queueOnePass=$newType(0,$kindStruct,"regexp.queueOnePass",true,"regexp",false,function(sparse_,dense_,size_,nextIndex_){this.$val=this;if(arguments.length===0){this.sparse=BU.nil;this.dense=BU.nil;this.size=0;this.nextIndex=0;return;}this.sparse=sparse_;this.dense=dense_;this.size=size_;this.nextIndex=nextIndex_;});AR=$pkg.runeSlice=$newType(12,$kindSlice,"regexp.runeSlice",true,"regexp",false,null);AW=$pkg.queue=$newType(0,$kindStruct,"regexp.queue",true,"regexp",false,function(sparse_,dense_){this.$val=this;if(arguments.length===0){this.sparse=BU.nil;this.dense=CB.nil;return;}this.sparse=sparse_;this.dense=dense_;});AX=$pkg.entry=$newType(0,$kindStruct,"regexp.entry",true,"regexp",false,function(pc_,t_){this.$val=this;if(arguments.length===0){this.pc=0;this.t=CC.nil;return;}this.pc=pc_;this.t=t_;});AY=$pkg.thread=$newType(0,$kindStruct,"regexp.thread",true,"regexp",false,function(inst_,cap_){this.$val=this;if(arguments.length===0){this.inst=CT.nil;this.cap=CE.nil;return;}this.inst=inst_;this.cap=cap_;});AZ=$pkg.machine=$newType(0,$kindStruct,"regexp.machine",true,"regexp",false,function(re_,p_,q0_,q1_,pool_,matched_,matchcap_,inputs_){this.$val=this;if(arguments.length===0){this.re=BV.nil;this.p=BW.nil;this.q0=new AW.ptr(BU.nil,CB.nil);this.q1=new AW.ptr(BU.nil,CB.nil);this.pool=CD.nil;this.matched=false;this.matchcap=CE.nil;this.inputs=new BA.ptr(new V.ptr(BZ.nil),new U.ptr(""),new W.ptr($ifaceNil,false,0));return;}this.re=re_;this.p=p_;this.q0=q0_;this.q1=q1_;this.pool=pool_;this.matched=matched_;this.matchcap=matchcap_;this.inputs=inputs_;});BA=$pkg.inputs=$newType(0,$kindStruct,"regexp.inputs",true,"regexp",false,function(bytes_,string_,reader_){this.$val=this;if(arguments.length===0){this.bytes=new V.ptr(BZ.nil);this.string=new U.ptr("");this.reader=new W.ptr($ifaceNil,false,0);return;}this.bytes=bytes_;this.string=string_;this.reader=reader_;});BB=$pkg.lazyFlag=$newType(8,$kindUint64,"regexp.lazyFlag",true,"regexp",false,null);BD=$pkg.onePassMachine=$newType(0,$kindStruct,"regexp.onePassMachine",true,"regexp",false,function(inputs_,matchcap_){this.$val=this;if(arguments.length===0){this.inputs=new BA.ptr(new V.ptr(BZ.nil),new U.ptr(""),new W.ptr($ifaceNil,false,0));this.matchcap=CE.nil;return;}this.inputs=inputs_;this.matchcap=matchcap_;});BI=$pkg.job=$newType(0,$kindStruct,"regexp.job",true,"regexp",false,function(pc_,arg_,pos_){this.$val=this;if(arguments.length===0){this.pc=0;this.arg=false;this.pos=0;return;}this.pc=pc_;this.arg=arg_;this.pos=pos_;});BJ=$pkg.bitState=$newType(0,$kindStruct,"regexp.bitState",true,"regexp",false,function(end_,cap_,matchcap_,jobs_,visited_,inputs_){this.$val=this;if(arguments.length===0){this.end=0;this.cap=CE.nil;this.matchcap=CE.nil;this.jobs=CX.nil;this.visited=BU.nil;this.inputs=new BA.ptr(new V.ptr(BZ.nil),new U.ptr(""),new W.ptr($ifaceNil,false,0));return;}this.end=end_;this.cap=cap_;this.matchcap=matchcap_;this.jobs=jobs_;this.visited=visited_;this.inputs=inputs_;});BP=$sliceType($emptyInterface);BQ=$arrayType(F.Pool,5);BR=$arrayType($Uint8,16);BS=$arrayType($Int,0);BT=$sliceType($Int32);BU=$sliceType($Uint32);BV=$ptrType(J);BW=$ptrType(C.Prog);BX=$ptrType(AF);BY=$sliceType($String);BZ=$sliceType($Uint8);CA=$ptrType(AZ);CB=$sliceType(AX);CC=$ptrType(AY);CD=$sliceType(CC);CE=$sliceType($Int);CF=$arrayType($Int,2);CG=$arrayType($Int,4);CH=$sliceType(BZ);CI=$sliceType(CE);CJ=$sliceType(CH);CK=$sliceType(BY);CL=$ptrType(E.Builder);CM=$ptrType(AK);CN=$ptrType($Int);CO=$sliceType(AG);CP=$ptrType($Uint32);CQ=$sliceType(BT);CR=$ptrType(BT);CS=$sliceType($Bool);CT=$ptrType(C.Inst);CU=$ptrType(BB);CV=$ptrType(BD);CW=$ptrType(BJ);CX=$sliceType(BI);CY=$funcType([$String],[$String],false);CZ=$funcType([BZ,CE],[BZ],false);DA=$funcType([BZ],[BZ],false);DB=$funcType([CE],[],false);DC=$ptrType(U);DD=$ptrType(V);DE=$ptrType(W);DF=$ptrType(AW);DG=$ptrType(BA);J.ptr.prototype.String=function(){var a;a=this;return a.expr;};J.prototype.String=function(){return this.$val.String();};J.ptr.prototype.Copy=function(){var a,b;a=this;b=$clone(a,J);return b;};J.prototype.Copy=function(){return this.$val.Copy();};K=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=M(a,212,false);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:K,$c:true,$r,a,b,c,$s};return $f;};$pkg.Compile=K;J.ptr.prototype.Longest=function(){var a;a=this;a.longest=true;};J.prototype.Longest=function(){return this.$val.Longest();};M=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:e=C.Parse(a,b);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return[BV.nil,g];}h=f.MaxCap();i=f.CapNames();f=f.Simplify();j=C.Compile(f);k=j[0];g=j[1];if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return[BV.nil,g];}l=k.NumCap;if(l<2){l=2;}m=AV(k);$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=new J.ptr(a,k,m,h,0,i,"",BZ.nil,0,0,0,l,false,k.StartCond(),P(f),c);if(n.onepass===BX.nil){o=k.Prefix();n.prefix=o[0];n.prefixComplete=o[1];n.maxBitStateLen=BN(k);}else{p=AH(k);n.prefix=p[0];n.prefixComplete=p[1];n.prefixEnd=p[2];}if(!(n.prefix==="")){n.prefixBytes=(new BZ($stringToBytes(n.prefix)));q=H.DecodeRuneInString(n.prefix);n.prefixRune=q[0];}r=k.Inst.$length;s=0;while(true){if(!(!((((s<0||s>=N.length)?($throwRuntimeError("index out of range"),undefined):N[s])===0))&&((s<0||s>=N.length)?($throwRuntimeError("index out of range"),undefined):N[s])>0;}n.mpool=s;$s=-1;return[n,$ifaceNil];}return;}var $f={$blk:M,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};J.ptr.prototype.get=function(){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;d=(c=a.mpool,((c<0||c>=O.length)?($throwRuntimeError("index out of range"),undefined):O[c])).Get();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}b=$assertType(d,CA,true);e=b[0];f=b[1];if(!f){e=new AZ.ptr(BV.nil,BW.nil,new AW.ptr(BU.nil,CB.nil),new AW.ptr(BU.nil,CB.nil),CD.nil,false,CE.nil,new BA.ptr(new V.ptr(BZ.nil),new U.ptr(""),new W.ptr($ifaceNil,false,0)));}e.re=a;e.p=a.prog;if(e.matchcap.$capacity=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);i.cap=$makeSlice(CE,a.matchcap);h++;}}k=(j=a.mpool,((j<0||j>=N.length)?($throwRuntimeError("index out of range"),undefined):N[j]));if(k===0){k=a.prog.Inst.$length;}if(e.q0.sparse.$length=O.length)?($throwRuntimeError("index out of range"),undefined):O[c])).Put(a);};J.prototype.put=function(a){return this.$val.put(a);};P=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;b=a.Op;if((b===(6))||(b===(5))||(b===(4))){return 1;}else if(b===(3)){c=0;d=a.Rune;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(f===65533){c=c+(1)>>0;}else{c=c+(H.RuneLen(f))>>0;}e++;}return c;}else if((b===(13))||(b===(15))){return P((g=a.Sub,(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0])));}else if(b===(17)){return $imul(a.Min,P((h=a.Sub,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]))));}else if(b===(18)){i=0;j=a.Sub;k=0;while(true){if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);i=i+(P(l))>>0;k++;}return i;}else if(b===(19)){n=P((m=a.Sub,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0])));o=0;p=$subslice(a.Sub,1);q=0;while(true){if(!(q=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);o=P(r);if(o=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(a===f){return e;}d++;}}return-1;};J.prototype.SubexpIndex=function(a){return this.$val.SubexpIndex(a);};U.ptr.prototype.step=function(a){var a,b,c;b=this;if(a>0)),1];}return H.DecodeRuneInString($substring(b.str,a));}return[-1,0];};U.prototype.step=function(a){return this.$val.step(a);};U.ptr.prototype.canCheckPrefix=function(){var a;a=this;return true;};U.prototype.canCheckPrefix=function(){return this.$val.canCheckPrefix();};U.ptr.prototype.hasPrefix=function(a){var a,b;b=this;return E.HasPrefix(b.str,a.prefix);};U.prototype.hasPrefix=function(a){return this.$val.hasPrefix(a);};U.ptr.prototype.index=function(a,b){var a,b,c;c=this;return E.Index($substring(c.str,b),a.prefix);};U.prototype.index=function(a,b){return this.$val.index(a,b);};U.ptr.prototype.context=function(a){var a,b,c,d,e,f,g,h;b=this;c=-1;d=-1;e=c;f=d;if((((a-1>>0)>>>0))<((b.str.length>>>0))){e=((b.str.charCodeAt((a-1>>0))>>0));if(e>=128){g=H.DecodeLastRuneInString($substring(b.str,0,a));e=g[0];}}if(((a>>>0))<((b.str.length>>>0))){f=((b.str.charCodeAt(a)>>0));if(f>=128){h=H.DecodeRuneInString($substring(b.str,a));f=h[0];}}return BC(e,f);};U.prototype.context=function(a){return this.$val.context(a);};V.ptr.prototype.step=function(a){var a,b,c,d;b=this;if(a=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]));if(d<128){return[((d>>0)),1];}return H.DecodeRune($subslice(b.str,a));}return[-1,0];};V.prototype.step=function(a){return this.$val.step(a);};V.ptr.prototype.canCheckPrefix=function(){var a;a=this;return true;};V.prototype.canCheckPrefix=function(){return this.$val.canCheckPrefix();};V.ptr.prototype.hasPrefix=function(a){var a,b;b=this;return A.HasPrefix(b.str,a.prefixBytes);};V.prototype.hasPrefix=function(a){return this.$val.hasPrefix(a);};V.ptr.prototype.index=function(a,b){var a,b,c;c=this;return A.Index($subslice(c.str,b),a.prefixBytes);};V.prototype.index=function(a,b){return this.$val.index(a,b);};V.ptr.prototype.context=function(a){var a,b,c,d,e,f,g,h,i,j,k;b=this;c=-1;d=-1;e=c;f=d;if((((a-1>>0)>>>0))<((b.str.$length>>>0))){e=(((g=b.str,h=a-1>>0,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]))>>0));if(e>=128){i=H.DecodeLastRune($subslice(b.str,0,a));e=i[0];}}if(((a>>>0))<((b.str.$length>>>0))){f=(((j=b.str,((a<0||a>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+a]))>>0));if(f>=128){k=H.DecodeRune($subslice(b.str,a));f=k[0];}}return BC(e,f);};V.prototype.context=function(a){return this.$val.context(a);};W.ptr.prototype.step=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(!b.atEOT&&!((a===b.pos))){$s=-1;return[-1,0];}d=b.r.ReadRune();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];g=c[2];if(!($interfaceIsEqual(g,$ifaceNil))){b.atEOT=true;$s=-1;return[-1,0];}b.pos=b.pos+(f)>>0;$s=-1;return[e,f];}return;}var $f={$blk:W.ptr.prototype.step,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};W.prototype.step=function(a){return this.$val.step(a);};W.ptr.prototype.canCheckPrefix=function(){var a;a=this;return false;};W.prototype.canCheckPrefix=function(){return this.$val.canCheckPrefix();};W.ptr.prototype.hasPrefix=function(a){var a,b;b=this;return false;};W.prototype.hasPrefix=function(a){return this.$val.hasPrefix(a);};W.ptr.prototype.index=function(a,b){var a,b,c;c=this;return-1;};W.prototype.index=function(a,b){return this.$val.index(a,b);};W.ptr.prototype.context=function(a){var a,b;b=this;return new BB(0,0);};W.prototype.context=function(a){return this.$val.context(a);};J.ptr.prototype.LiteralPrefix=function(){var a,b,c,d,e;a="";b=false;c=this;d=c.prefix;e=c.prefixComplete;a=d;b=e;return[a,b];};J.prototype.LiteralPrefix=function(){return this.$val.LiteralPrefix();};J.ptr.prototype.MatchReader=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.doMatch(a,BZ.nil,"");$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:J.ptr.prototype.MatchReader,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.MatchReader=function(a){return this.$val.MatchReader(a);};J.ptr.prototype.MatchString=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.doMatch($ifaceNil,BZ.nil,a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:J.ptr.prototype.MatchString,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.MatchString=function(a){return this.$val.MatchString(a);};J.ptr.prototype.Match=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.doMatch($ifaceNil,a,"");$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:J.ptr.prototype.Match,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.Match=function(a){return this.$val.Match(a);};J.ptr.prototype.ReplaceAllString=function(a,b){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=[c];c[0]=this;d=2;if(E.Contains(b[0],"$")){d=$imul(2,((c[0].numSubexp+1>>0)));}e=c[0].replaceAll(BZ.nil,a[0],d,(function(a,b,c){return function(e,f){var e,f;return c[0].expand(e,b[0],BZ.nil,a[0],f);};})(a,b,c));$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=-1;return($bytesToString(f));}return;}var $f={$blk:J.ptr.prototype.ReplaceAllString,$c:true,$r,a,b,c,d,e,f,$s};return $f;};J.prototype.ReplaceAllString=function(a,b){return this.$val.ReplaceAllString(a,b);};J.ptr.prototype.ReplaceAllLiteralString=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=this;d=c.replaceAll(BZ.nil,a,2,(function(b){return function(d,e){var d,e;return $appendSlice(d,b[0]);};})(b));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=($bytesToString(d));$s=2;case 2:return e;}return;}var $f={$blk:J.ptr.prototype.ReplaceAllLiteralString,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.ReplaceAllLiteralString=function(a,b){return this.$val.ReplaceAllLiteralString(a,b);};J.ptr.prototype.ReplaceAllStringFunc=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=this;d=c.replaceAll(BZ.nil,a[0],2,(function(a,b){return function $b(d,e){var{d,e,f,g,h,i,$s,$r,$c}=$restore(this,{d,e});$s=$s||0;s:while(true){switch($s){case 0:f=d;g=b[0]($substring(a[0],(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])));$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=$appendSlice(f,h);$s=2;case 2:return i;}return;}var $f={$blk:$b,$c:true,$r,d,e,f,g,h,i,$s};return $f;};})(a,b));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=-1;return($bytesToString(e));}return;}var $f={$blk:J.ptr.prototype.ReplaceAllStringFunc,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.ReplaceAllStringFunc=function(a,b){return this.$val.ReplaceAllStringFunc(a,b);};J.ptr.prototype.replaceAll=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=0;g=0;h=BZ.nil;i=0;if(!(a===BZ.nil)){i=a.$length;}else{i=b.length;}if(c>e.prog.NumCap){c=e.prog.NumCap;}j=CF.zero();case 1:if(!(g<=i)){$s=2;continue;}k=e.doExecute($ifaceNil,a,b,g,c,$subslice(new CE(j),0,0));$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(l.$length===0){$s=2;continue;}if(!(a===BZ.nil)){h=$appendSlice(h,$subslice(a,f,(0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0])));}else{h=$appendSlice(h,$substring(b,f,(0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0])));}if((1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1])>f||((0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0])===0)){$s=4;continue;}$s=5;continue;case 4:m=d(h,l);$s=6;case 6:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}h=m;case 5:f=(1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1]);n=0;if(!(a===BZ.nil)){o=H.DecodeRune($subslice(a,g));n=o[1];}else{p=H.DecodeRuneInString($substring(b,g));n=p[1];}if((g+n>>0)>(1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1])){g=g+(n)>>0;}else if((g+1>>0)>(1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1])){g=g+(1)>>0;}else{g=(1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1]);}$s=1;continue;case 2:if(!(a===BZ.nil)){h=$appendSlice(h,$subslice(a,f));}else{h=$appendSlice(h,$substring(b,f));}$s=-1;return h;}return;}var $f={$blk:J.ptr.prototype.replaceAll,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};J.prototype.replaceAll=function(a,b,c,d){return this.$val.replaceAll(a,b,c,d);};J.ptr.prototype.ReplaceAll=function(a,b){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=[c];d=[d];c[0]=this;e=2;if(A.IndexByte(b[0],36)>=0){e=$imul(2,((c[0].numSubexp+1>>0)));}d[0]="";f=c[0].replaceAll(a[0],"",e,(function(a,b,c,d){return function(f,g){var f,g;if(!((d[0].length===b[0].$length))){d[0]=($bytesToString(b[0]));}return c[0].expand(f,d[0],a[0],"",g);};})(a,b,c,d));$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=-1;return g;}return;}var $f={$blk:J.ptr.prototype.ReplaceAll,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};J.prototype.ReplaceAll=function(a,b){return this.$val.ReplaceAll(a,b);};J.ptr.prototype.ReplaceAllLiteral=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=this;d=c.replaceAll(a,"",2,(function(b){return function(d,e){var d,e;return $appendSlice(d,b[0]);};})(b));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:J.ptr.prototype.ReplaceAllLiteral,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.ReplaceAllLiteral=function(a,b){return this.$val.ReplaceAllLiteral(a,b);};J.ptr.prototype.ReplaceAllFunc=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=this;d=c.replaceAll(a[0],"",2,(function(a,b){return function $b(d,e){var{d,e,f,g,h,i,$s,$r,$c}=$restore(this,{d,e});$s=$s||0;s:while(true){switch($s){case 0:f=d;g=b[0]($subslice(a[0],(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])));$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=$appendSlice(f,h);$s=2;case 2:return i;}return;}var $f={$blk:$b,$c:true,$r,d,e,f,g,h,i,$s};return $f;};})(a,b));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:J.ptr.prototype.ReplaceAllFunc,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.ReplaceAllFunc=function(a,b){return this.$val.ReplaceAllFunc(a,b);};AC=function(){var a,b,c,d,e,f,g;a=(new BZ($stringToBytes("\\.+*?()|[]{}^$")));b=0;while(true){if(!(b=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+b]);e=(d=c%16,d===d?d:$throwRuntimeError("integer divide by zero"));((e<0||e>=AA.length)?($throwRuntimeError("index out of range"),undefined):AA[e]=((((e<0||e>=AA.length)?($throwRuntimeError("index out of range"),undefined):AA[e])|(((f=((g=c/16,(g===g&&g!==1/0&&g!==-1/0)?g>>>0:$throwRuntimeError("integer divide by zero"))),f<32?(1<>>24)))>>>0));b++;}};J.ptr.prototype.pad=function(a){var a,b,c;b=this;if(a===CE.nil){return CE.nil;}c=$imul(((1+b.numSubexp>>0)),2);while(true){if(!(a.$length=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1])===j){if((0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0])===l){o=false;}p=0;if(b===BZ.nil){q=H.DecodeRuneInString($substring(a,j,f));p=q[1];}else{r=H.DecodeRune($subslice(b,j,f));p=r[1];}if(p>0){j=j+(p)>>0;}else{j=f+1>>0;}}else{j=(1>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1]);}l=(1>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1]);if(o){$s=4;continue;}$s=5;continue;case 4:$r=d(e.pad(n));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=k+(1)>>0;case 5:$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:J.ptr.prototype.allMatches,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};J.prototype.allMatches=function(a,b,c,d){return this.$val.allMatches(a,b,c,d);};J.ptr.prototype.Find=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=CF.zero();d=b.doExecute($ifaceNil,a,"",0,2,$subslice(new CE(c),0,0));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===CE.nil){$s=-1;return BZ.nil;}$s=-1;return $subslice(a,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]));}return;}var $f={$blk:J.ptr.prototype.Find,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.Find=function(a){return this.$val.Find(a);};J.ptr.prototype.FindIndex=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=CE.nil;c=this;d=c.doExecute($ifaceNil,a,"",0,2,CE.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===CE.nil){b=CE.nil;$s=-1;return b;}b=$subslice(e,0,2);$s=-1;return b;}return;}var $f={$blk:J.ptr.prototype.FindIndex,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.FindIndex=function(a){return this.$val.FindIndex(a);};J.ptr.prototype.FindString=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=CF.zero();d=b.doExecute($ifaceNil,BZ.nil,a,0,2,$subslice(new CE(c),0,0));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===CE.nil){$s=-1;return"";}$s=-1;return $substring(a,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]));}return;}var $f={$blk:J.ptr.prototype.FindString,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.FindString=function(a){return this.$val.FindString(a);};J.ptr.prototype.FindStringIndex=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=CE.nil;c=this;d=c.doExecute($ifaceNil,BZ.nil,a,0,2,CE.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===CE.nil){b=CE.nil;$s=-1;return b;}b=$subslice(e,0,2);$s=-1;return b;}return;}var $f={$blk:J.ptr.prototype.FindStringIndex,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.FindStringIndex=function(a){return this.$val.FindStringIndex(a);};J.ptr.prototype.FindReaderIndex=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=CE.nil;c=this;d=c.doExecute(a,BZ.nil,"",0,2,CE.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===CE.nil){b=CE.nil;$s=-1;return b;}b=$subslice(e,0,2);$s=-1;return b;}return;}var $f={$blk:J.ptr.prototype.FindReaderIndex,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.FindReaderIndex=function(a){return this.$val.FindReaderIndex(a);};J.ptr.prototype.FindSubmatch=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=CG.zero();d=b.doExecute($ifaceNil,a,"",0,b.prog.NumCap,$subslice(new CE(c),0,0));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===CE.nil){$s=-1;return CH.nil;}f=$makeSlice(CH,(1+b.numSubexp>>0));g=f;h=0;while(true){if(!(h=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+j]))>=0){((i<0||i>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+i]=$subslice(a,(k=$imul(2,i),((k<0||k>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+k])),(l=($imul(2,i))+1>>0,((l<0||l>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+l])),(m=($imul(2,i))+1>>0,((m<0||m>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+m]))));}h++;}$s=-1;return f;}return;}var $f={$blk:J.ptr.prototype.FindSubmatch,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};J.prototype.FindSubmatch=function(a){return this.$val.FindSubmatch(a);};J.ptr.prototype.Expand=function(a,b,c,d){var a,b,c,d,e;e=this;return e.expand(a,($bytesToString(b)),c,"",d);};J.prototype.Expand=function(a,b,c,d){return this.$val.Expand(a,b,c,d);};J.ptr.prototype.ExpandString=function(a,b,c,d){var a,b,c,d,e;e=this;return e.expand(a,b,BZ.nil,c,d);};J.prototype.ExpandString=function(a,b,c,d){return this.$val.ExpandString(a,b,c,d);};J.ptr.prototype.expand=function(a,b,c,d,e){var a,aa,ab,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;f=this;while(true){if(!(b.length>0)){break;}g=E.Cut(b,"$");h=g[0];i=g[1];j=g[2];if(!j){break;}a=$appendSlice(a,h);b=i;if(!(b==="")&&(b.charCodeAt(0)===36)){a=$append(a,36);b=$substring(b,1);continue;}k=AE(b);l=k[0];m=k[1];n=k[2];j=k[3];if(!j){a=$append(a,36);continue;}b=n;if(m>=0){if((($imul(2,m))+1>>0)=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+o]))>=0){if(!(c===BZ.nil)){a=$appendSlice(a,$subslice(c,(p=$imul(2,m),((p<0||p>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+p])),(q=($imul(2,m))+1>>0,((q<0||q>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+q]))));}else{a=$appendSlice(a,$substring(d,(r=$imul(2,m),((r<0||r>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+r])),(s=($imul(2,m))+1>>0,((s<0||s>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+s]))));}}}else{t=f.subexpNames;u=0;while(true){if(!(u=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]);if(l===w&&(($imul(2,v))+1>>0)=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+x]))>=0){if(!(c===BZ.nil)){a=$appendSlice(a,$subslice(c,(y=$imul(2,v),((y<0||y>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+y])),(z=($imul(2,v))+1>>0,((z<0||z>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+z]))));}else{a=$appendSlice(a,$substring(d,(aa=$imul(2,v),((aa<0||aa>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+aa])),(ab=($imul(2,v))+1>>0,((ab<0||ab>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+ab]))));}break;}u++;}}}a=$appendSlice(a,b);return a;};J.prototype.expand=function(a,b,c,d,e){return this.$val.expand(a,b,c,d,e);};AE=function(a){var a,b,c,d,e,f,g,h,i,j,k;b="";c=0;d="";e=false;if(a===""){return[b,c,d,e];}f=false;if(a.charCodeAt(0)===123){f=true;a=$substring(a,1);}g=0;while(true){if(!(g>0;}if(g===0){return[b,c,d,e];}b=$substring(a,0,g);if(f){if(g>=a.length||!((a.charCodeAt(g)===125))){return[b,c,d,e];}g=g+(1)>>0;}c=0;k=0;while(true){if(!(k=100000000){c=-1;break;}c=(($imul(c,10))+((b.charCodeAt(k)>>0))>>0)-48>>0;k=k+(1)>>0;}if((b.charCodeAt(0)===48)&&b.length>1){c=-1;}d=$substring(a,g);e=true;return[b,c,d,e];};J.ptr.prototype.FindSubmatchIndex=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.doExecute($ifaceNil,a,"",0,b.prog.NumCap,CE.nil);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=b.pad(c);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=3;case 3:return e;}return;}var $f={$blk:J.ptr.prototype.FindSubmatchIndex,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.FindSubmatchIndex=function(a){return this.$val.FindSubmatchIndex(a);};J.ptr.prototype.FindStringSubmatch=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=CG.zero();d=b.doExecute($ifaceNil,BZ.nil,a,0,b.prog.NumCap,$subslice(new CE(c),0,0));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===CE.nil){$s=-1;return BY.nil;}f=$makeSlice(BY,(1+b.numSubexp>>0));g=f;h=0;while(true){if(!(h=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+j]))>=0){((i<0||i>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+i]=$substring(a,(k=$imul(2,i),((k<0||k>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+k])),(l=($imul(2,i))+1>>0,((l<0||l>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+l]))));}h++;}$s=-1;return f;}return;}var $f={$blk:J.ptr.prototype.FindStringSubmatch,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};J.prototype.FindStringSubmatch=function(a){return this.$val.FindStringSubmatch(a);};J.ptr.prototype.FindStringSubmatchIndex=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.doExecute($ifaceNil,BZ.nil,a,0,b.prog.NumCap,CE.nil);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=b.pad(c);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=3;case 3:return e;}return;}var $f={$blk:J.ptr.prototype.FindStringSubmatchIndex,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.FindStringSubmatchIndex=function(a){return this.$val.FindStringSubmatchIndex(a);};J.ptr.prototype.FindReaderSubmatchIndex=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.doExecute(a,BZ.nil,"",0,b.prog.NumCap,CE.nil);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=b.pad(c);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=3;case 3:return e;}return;}var $f={$blk:J.ptr.prototype.FindReaderSubmatchIndex,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.FindReaderSubmatchIndex=function(a){return this.$val.FindReaderSubmatchIndex(a);};J.ptr.prototype.FindAll=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:a=[a];c=[c];d=this;if(b<0){b=a[0].$length+1>>0;}c[0]=CH.nil;$r=d.allMatches("",a[0],b,(function(a,c){return function(e){var e;if(c[0]===CH.nil){c[0]=$makeSlice(CH,0,10);}c[0]=$append(c[0],$subslice(a[0],(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])));};})(a,c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c[0];}return;}var $f={$blk:J.ptr.prototype.FindAll,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.FindAll=function(a,b){return this.$val.FindAll(a,b);};J.ptr.prototype.FindAllIndex=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;if(b<0){b=a.$length+1>>0;}c[0]=CI.nil;$r=d.allMatches("",a,b,(function(c){return function(e){var e;if(c[0]===CI.nil){c[0]=$makeSlice(CI,0,10);}c[0]=$append(c[0],$subslice(e,0,2));};})(c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c[0];}return;}var $f={$blk:J.ptr.prototype.FindAllIndex,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.FindAllIndex=function(a,b){return this.$val.FindAllIndex(a,b);};J.ptr.prototype.FindAllString=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:a=[a];c=[c];d=this;if(b<0){b=a[0].length+1>>0;}c[0]=BY.nil;$r=d.allMatches(a[0],BZ.nil,b,(function(a,c){return function(e){var e;if(c[0]===BY.nil){c[0]=$makeSlice(BY,0,10);}c[0]=$append(c[0],$substring(a[0],(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])));};})(a,c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c[0];}return;}var $f={$blk:J.ptr.prototype.FindAllString,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.FindAllString=function(a,b){return this.$val.FindAllString(a,b);};J.ptr.prototype.FindAllStringIndex=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;if(b<0){b=a.length+1>>0;}c[0]=CI.nil;$r=d.allMatches(a,BZ.nil,b,(function(c){return function(e){var e;if(c[0]===CI.nil){c[0]=$makeSlice(CI,0,10);}c[0]=$append(c[0],$subslice(e,0,2));};})(c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c[0];}return;}var $f={$blk:J.ptr.prototype.FindAllStringIndex,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.FindAllStringIndex=function(a,b){return this.$val.FindAllStringIndex(a,b);};J.ptr.prototype.FindAllSubmatch=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:a=[a];c=[c];d=this;if(b<0){b=a[0].$length+1>>0;}c[0]=CJ.nil;$r=d.allMatches("",a[0],b,(function(a,c){return function(e){var e,f,g,h,i,j,k,l,m,n;if(c[0]===CJ.nil){c[0]=$makeSlice(CJ,0,10);}g=$makeSlice(CH,(f=e.$length/2,(f===f&&f!==1/0&&f!==-1/0)?f>>0:$throwRuntimeError("integer divide by zero")));h=g;i=0;while(true){if(!(i=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+k]))>=0){((j<0||j>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+j]=$subslice(a[0],(l=$imul(2,j),((l<0||l>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+l])),(m=($imul(2,j))+1>>0,((m<0||m>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+m])),(n=($imul(2,j))+1>>0,((n<0||n>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+n]))));}i++;}c[0]=$append(c[0],g);};})(a,c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c[0];}return;}var $f={$blk:J.ptr.prototype.FindAllSubmatch,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.FindAllSubmatch=function(a,b){return this.$val.FindAllSubmatch(a,b);};J.ptr.prototype.FindAllSubmatchIndex=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;if(b<0){b=a.$length+1>>0;}c[0]=CI.nil;$r=d.allMatches("",a,b,(function(c){return function(e){var e;if(c[0]===CI.nil){c[0]=$makeSlice(CI,0,10);}c[0]=$append(c[0],e);};})(c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c[0];}return;}var $f={$blk:J.ptr.prototype.FindAllSubmatchIndex,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.FindAllSubmatchIndex=function(a,b){return this.$val.FindAllSubmatchIndex(a,b);};J.ptr.prototype.FindAllStringSubmatch=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:a=[a];c=[c];d=this;if(b<0){b=a[0].length+1>>0;}c[0]=CK.nil;$r=d.allMatches(a[0],BZ.nil,b,(function(a,c){return function(e){var e,f,g,h,i,j,k,l,m;if(c[0]===CK.nil){c[0]=$makeSlice(CK,0,10);}g=$makeSlice(BY,(f=e.$length/2,(f===f&&f!==1/0&&f!==-1/0)?f>>0:$throwRuntimeError("integer divide by zero")));h=g;i=0;while(true){if(!(i=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+k]))>=0){((j<0||j>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+j]=$substring(a[0],(l=$imul(2,j),((l<0||l>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+l])),(m=($imul(2,j))+1>>0,((m<0||m>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+m]))));}i++;}c[0]=$append(c[0],g);};})(a,c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c[0];}return;}var $f={$blk:J.ptr.prototype.FindAllStringSubmatch,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.FindAllStringSubmatch=function(a,b){return this.$val.FindAllStringSubmatch(a,b);};J.ptr.prototype.FindAllStringSubmatchIndex=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;if(b<0){b=a.length+1>>0;}c[0]=CI.nil;$r=d.allMatches(a,BZ.nil,b,(function(c){return function(e){var e;if(c[0]===CI.nil){c[0]=$makeSlice(CI,0,10);}c[0]=$append(c[0],e);};})(c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c[0];}return;}var $f={$blk:J.ptr.prototype.FindAllStringSubmatchIndex,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.FindAllStringSubmatchIndex=function(a,b){return this.$val.FindAllStringSubmatchIndex(a,b);};J.ptr.prototype.Split=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b===0){$s=-1;return BY.nil;}if(c.expr.length>0&&(a.length===0)){$s=-1;return new BY([""]);}d=c.FindAllStringIndex(a,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=$makeSlice(BY,0,e.$length);g=0;h=0;i=e;j=0;while(true){if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);if(b>0&&f.$length>=(b-1>>0)){break;}h=(0>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0]);if(!(((1>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+1])===0))){f=$append(f,$substring(a,g,h));}g=(1>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+1]);j++;}if(!((h===a.length))){f=$append(f,$substring(a,g));}$s=-1;return f;}return;}var $f={$blk:J.ptr.prototype.Split,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};J.prototype.Split=function(a,b){return this.$val.Split(a,b);};AH=function(a){var a,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b="";c=false;d=0;g=(e=a.Inst,f=a.Start,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));if(!((g.Op===3))||((((((g.Arg<<24>>>24)))&4)>>>0)===0)){h="";i=g.Op===4;j=((a.Start>>>0));b=h;c=i;d=j;return[b,c,d];}d=g.Out;g=(k=a.Inst,((d<0||d>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+d]));while(true){if(!(g.Op===6)){break;}d=g.Out;g=(l=a.Inst,((d<0||d>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+d]));}if(!((AJ(g)===7))||!((g.Rune.$length===1))){m="";n=g.Op===4;o=((a.Start>>>0));b=m;c=n;d=o;return[b,c,d];}p=new E.Builder.ptr(CL.nil,BZ.nil);while(true){if(!((AJ(g)===7)&&(g.Rune.$length===1)&&(((((g.Arg<<16>>>16))&1)>>>0)===0)&&!(((q=g.Rune,(0>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+0]))===65533)))){break;}p.WriteRune((r=g.Rune,(0>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+0])));s=g.Out;t=(u=a.Inst,v=g.Out,((v<0||v>=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v]));d=s;g=t;}if((g.Op===3)&&!((((((g.Arg<<24>>>24))&8)>>>0)===0))&&((w=a.Inst,x=g.Out,((x<0||x>=w.$length)?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+x])).Op===4)){c=true;}y=p.String();z=c;aa=d;b=y;c=z;d=aa;return[b,c,d];};AI=function(a,b){var a,b,c,d;c=a.Inst.MatchRunePos(b);if(c>=0){return(d=a.Next,((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]));}if(a.Inst.Op===1){return a.Inst.Out;}return 0;};AJ=function(a){var a,b,c;b=a.Op;c=b;if((c===(8))||(c===(9))||(c===(10))){b=7;}return b;};AK.ptr.prototype.empty=function(){var a;a=this;return a.nextIndex>=a.size;};AK.prototype.empty=function(){return this.$val.empty();};AK.ptr.prototype.next=function(){var a,b,c,d;a=0;b=this;a=(c=b.dense,d=b.nextIndex,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]));b.nextIndex=b.nextIndex+(1)>>>0;return a;};AK.prototype.next=function(){return this.$val.next();};AK.ptr.prototype.clear=function(){var a;a=this;a.size=0;a.nextIndex=0;};AK.prototype.clear=function(){return this.$val.clear();};AK.ptr.prototype.contains=function(a){var a,b,c,d,e,f;b=this;if(a>=((b.sparse.$length>>>0))){return false;}return(c=b.sparse,((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]))=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+a])),((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]))===a);};AK.prototype.contains=function(a){return this.$val.contains(a);};AK.ptr.prototype.insert=function(a){var a,b;b=this;if(!b.contains(a)){b.insertNew(a);}};AK.prototype.insert=function(a){return this.$val.insert(a);};AK.ptr.prototype.insertNew=function(a){var a,b,c,d,e;b=this;if(a>=((b.sparse.$length>>>0))){return;}(c=b.sparse,((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]=b.size));(d=b.dense,e=b.size,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]=a));b.size=b.size+(1)>>>0;};AK.prototype.insertNew=function(a){return this.$val.insertNew(a);};AL=function(a){var a,b;b=CM.nil;b=new AK.ptr($makeSlice(BU,a),$makeSlice(BU,a),0,0);return b;};AO=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$deferred,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=[e];f=[f];g=[g];h=[h];i=[i];j=[j];k=a.$get().$length;l=b.$get().$length;if(!(((k&1)===0))||!(((l&1)===0))){$panic(new $String("mergeRuneSets odd length []rune"));}m=0;n=0;f[0]=m;j[0]=n;g[0]=$makeSlice(BT,0);h[0]=$makeSlice(BU,0);i[0]=true;$deferred.push([(function(e,f,g,h,i,j){return function(){if(!i[0]){g[0]=BT.nil;h[0]=BU.nil;}};})(e,f,g,h,i,j),[]]);e[0]=-1;o=(function(e,f,g,h,i,j){return function(o,p,q){var o,p,q,r,s,t,u,v,w;if(e[0]>0&&(r=p.$get(),s=o.$get(),((s<0||s>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]))<=((e[0]<0||e[0]>=g[0].$length)?($throwRuntimeError("index out of range"),undefined):g[0].$array[g[0].$offset+e[0]])){return false;}g[0]=$append(g[0],(t=p.$get(),u=o.$get(),((u<0||u>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u])),(v=p.$get(),w=o.$get()+1>>0,((w<0||w>=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w])));o.$set(o.$get()+(2)>>0);e[0]=e[0]+(2)>>0;h[0]=$append(h[0],q);return true;};})(e,f,g,h,i,j);case 1:if(!(f[0]=l){$s=4;continue;}if(f[0]>=k){$s=5;continue;}if((p=b.$get(),((j[0]<0||j[0]>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+j[0]]))<(q=a.$get(),((f[0]<0||f[0]>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+f[0]]))){$s=6;continue;}$s=7;continue;case 4:r=o((f.$ptr||(f.$ptr=new CN(function(){return this.$target[0];},function($v){this.$target[0]=$v;},f))),a,c);$s=9;case 9:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}i[0]=r;$s=8;continue;case 5:s=o((j.$ptr||(j.$ptr=new CN(function(){return this.$target[0];},function($v){this.$target[0]=$v;},j))),b,d);$s=10;case 10:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}i[0]=s;$s=8;continue;case 6:t=o((j.$ptr||(j.$ptr=new CN(function(){return this.$target[0];},function($v){this.$target[0]=$v;},j))),b,d);$s=11;case 11:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}i[0]=t;$s=8;continue;case 7:u=o((f.$ptr||(f.$ptr=new CN(function(){return this.$target[0];},function($v){this.$target[0]=$v;},f))),a,c);$s=12;case 12:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}i[0]=u;case 8:case 3:if(!i[0]){$s=13;continue;}$s=14;continue;case 13:v=[AM,AN];$s=15;case 15:return v;case 14:$s=1;continue;case 2:w=[g[0],h[0]];$s=16;case 16:return w;}return;}}catch(err){$err=err;$s=-1;return[BT.nil,BU.nil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:AO,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$deferred};return $f;}}};AP=function(a,b){var a,b,c,d,e,f,g,h,i,j;c=b.Inst;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]),C.Inst);g=f.Op;if((g===(0))||(g===(1))||(g===(7))){}else if((g===(2))||(g===(3))||(g===(6))||(g===(4))||(g===(5))){(h=a.Inst,((e<0||e>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+e])).Next=BU.nil;}else if((g===(8))||(g===(9))||(g===(10))){(i=a.Inst,((e<0||e>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+e])).Next=BU.nil;AG.copy((j=a.Inst,((e<0||e>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+e])),new AG.ptr($clone(f,C.Inst),BU.nil));}d++;}};AQ=function(a){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b=new AF.ptr($makeSlice(CO,a.Inst.$length),a.Start,a.NumCap);c=a.Inst;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]),C.Inst);AG.copy((g=b.Inst,((e<0||e>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+e])),new AG.ptr($clone(f,C.Inst),BU.nil));d++;}h=b.Inst;i=0;while(true){if(!(i=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+j])).Inst.Op;if((l===(0))||(l===(1))){o=(m=(n=b.Inst,((j<0||j>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+j])),(m.$ptr_Out||(m.$ptr_Out=new CP(function(){return this.$target.Inst.Out;},function($v){this.$target.Inst.Out=$v;},m))));r=(p=(q=b.Inst,((j<0||j>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+j])),(p.$ptr_Arg||(p.$ptr_Arg=new CP(function(){return this.$target.Inst.Arg;},function($v){this.$target.Inst.Arg=$v;},p))));u=$clone((s=b.Inst,t=r.$get(),((t<0||t>=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t])),AG);if(!((u.Inst.Op===0)||(u.Inst.Op===1))){v=o;w=r;r=v;o=w;AG.copy(u,(x=b.Inst,y=r.$get(),((y<0||y>=x.$length)?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+y])));if(!((u.Inst.Op===0)||(u.Inst.Op===1))){i++;continue;}}ab=$clone((z=b.Inst,aa=o.$get(),((aa<0||aa>=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+aa])),AG);if((ab.Inst.Op===0)||(ab.Inst.Op===1)){i++;continue;}af=(ac=(ad=b.Inst,ae=r.$get(),((ae<0||ae>=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ae])),(ac.$ptr_Out||(ac.$ptr_Out=new CP(function(){return this.$target.Inst.Out;},function($v){this.$target.Inst.Out=$v;},ac))));aj=(ag=(ah=b.Inst,ai=r.$get(),((ai<0||ai>=ah.$length)?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+ai])),(ag.$ptr_Arg||(ag.$ptr_Arg=new CP(function(){return this.$target.Inst.Arg;},function($v){this.$target.Inst.Arg=$v;},ag))));ak=false;if(u.Inst.Out===((j>>>0))){ak=true;}else if(u.Inst.Arg===((j>>>0))){ak=true;al=aj;am=af;af=al;aj=am;}if(ak){af.$set(o.$get());}if(o.$get()===af.$get()){r.$set(aj.$get());}}else{i++;continue;}i++;}return b;};AR.prototype.Len=function(){var a;a=this;return a.$length;};$ptrType(AR).prototype.Len=function(){return this.$get().Len();};AR.prototype.Less=function(a,b){var a,b,c;c=this;return((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a])<((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]);};$ptrType(AR).prototype.Less=function(a,b){return this.$get().Less(a,b);};AR.prototype.Swap=function(a,b){var a,b,c,d,e;c=this;d=((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]);e=((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]);((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]=d);((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]=e);};$ptrType(AR).prototype.Swap=function(a,b){return this.$get().Swap(a,b);};AU=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=[c];d=[d];e=[e];if(a[0].Inst.$length>=1000){$s=-1;return BX.nil;}c[0]=AL(a[0].Inst.$length);e[0]=AL(a[0].Inst.$length);b[0]=$throwNilPointerError;d[0]=$makeSlice(CQ,a[0].Inst.$length);b[0]=(function(a,b,c,d,e){return function $b(f,g){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=false;h=true;j=(i=a[0].Inst,((f<0||f>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+f]));if(e[0].contains(f)){$s=-1;return h;}e[0].insert(f);k=j.Inst.Op;if((k===(0))||(k===(1))){$s=2;continue;}if((k===(2))||(k===(6))){$s=3;continue;}if(k===(3)){$s=4;continue;}if((k===(4))||(k===(5))){$s=5;continue;}if(k===(7)){$s=6;continue;}if(k===(8)){$s=7;continue;}if(k===(9)){$s=8;continue;}if(k===(10)){$s=9;continue;}$s=10;continue;case 2:m=b[0](j.Inst.Out,g);$s=12;case 12:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if(!(m)){l=false;$s=11;continue s;}n=b[0](j.Inst.Arg,g);$s=13;case 13:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}l=n;case 11:h=l;p=(o=j.Inst.Out,((o<0||o>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+o]));r=(q=j.Inst.Arg,((q<0||q>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+q]));if(p&&r){h=false;$s=1;continue;}if(r){s=j.Inst.Arg;t=j.Inst.Out;j.Inst.Out=s;j.Inst.Arg=t;u=r;v=p;p=u;r=v;}if(p){((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=true);j.Inst.Op=1;}x=AO($indexPtr(d[0].$array,d[0].$offset+j.Inst.Out,CR),$indexPtr(d[0].$array,d[0].$offset+j.Inst.Arg,CR),j.Inst.Out,j.Inst.Arg);$s=14;case 14:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=w[0]);j.Next=w[1];if(j.Next.$length>0&&((y=j.Next,(0>=y.$length?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+0]))===4294967295)){h=false;$s=1;continue;}$s=10;continue;case 3:z=b[0](j.Inst.Out,g);$s=15;case 15:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}h=z;((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=(aa=j.Inst.Out,((aa<0||aa>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+aa])));((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=$appendSlice(new BT([]),(ab=j.Inst.Out,((ab<0||ab>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+ab]))));j.Next=$makeSlice(BU,((ac=((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]).$length/2,(ac===ac&&ac!==1/0&&ac!==-1/0)?ac>>0:$throwRuntimeError("integer divide by zero"))+1>>0));ad=j.Next;ae=0;while(true){if(!(ae=ag.$length)?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+af]=j.Inst.Out));ae++;}$s=10;continue;case 4:ah=b[0](j.Inst.Out,g);$s=16;case 16:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}h=ah;((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=(ai=j.Inst.Out,((ai<0||ai>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+ai])));((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=$appendSlice(new BT([]),(aj=j.Inst.Out,((aj<0||aj>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+aj]))));j.Next=$makeSlice(BU,((ak=((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]).$length/2,(ak===ak&&ak!==1/0&&ak!==-1/0)?ak>>0:$throwRuntimeError("integer divide by zero"))+1>>0));al=j.Next;am=0;while(true){if(!(am=ao.$length)?($throwRuntimeError("index out of range"),undefined):ao.$array[ao.$offset+an]=j.Inst.Out));am++;}$s=10;continue;case 5:((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=(j.Inst.Op===4));$s=10;continue;case 6:((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=false);if(j.Next.$length>0){$s=1;continue;}c[0].insert(j.Inst.Out);if(j.Inst.Rune.$length===0){((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=new BT([]));j.Next=new BU([j.Inst.Out]);$s=1;continue;}ap=$makeSlice(BT,0);if((j.Inst.Rune.$length===1)&&!((((((j.Inst.Arg<<16>>>16))&1)>>>0)===0))){$s=17;continue;}$s=18;continue;case 17:ar=(aq=j.Inst.Rune,(0>=aq.$length?($throwRuntimeError("index out of range"),undefined):aq.$array[aq.$offset+0]));ap=$append(ap,ar,ar);as=G.SimpleFold(ar);while(true){if(!(!((as===ar)))){break;}ap=$append(ap,as,as);as=G.SimpleFold(as);}$r=I.Sort(($convertSliceType(ap,AR)));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=19;continue;case 18:ap=$appendSlice(ap,j.Inst.Rune);case 19:((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=ap);j.Next=$makeSlice(BU,((at=((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]).$length/2,(at===at&&at!==1/0&&at!==-1/0)?at>>0:$throwRuntimeError("integer divide by zero"))+1>>0));au=j.Next;av=0;while(true){if(!(av=ax.$length)?($throwRuntimeError("index out of range"),undefined):ax.$array[ax.$offset+aw]=j.Inst.Out));av++;}j.Inst.Op=7;$s=10;continue;case 7:((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=false);if(j.Next.$length>0){$s=1;continue;}c[0].insert(j.Inst.Out);ay=new BT([]);if(!((((((j.Inst.Arg<<16>>>16))&1)>>>0)===0))){$s=21;continue;}$s=22;continue;case 21:ba=(az=j.Inst.Rune,(0>=az.$length?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+0]));ay=$append(ay,ba,ba);bb=G.SimpleFold(ba);while(true){if(!(!((bb===ba)))){break;}ay=$append(ay,bb,bb);bb=G.SimpleFold(bb);}$r=I.Sort(($convertSliceType(ay,AR)));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 22:ay=$append(ay,(bc=j.Inst.Rune,(0>=bc.$length?($throwRuntimeError("index out of range"),undefined):bc.$array[bc.$offset+0])),(bd=j.Inst.Rune,(0>=bd.$length?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+0])));case 23:((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=ay);j.Next=$makeSlice(BU,((be=((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]).$length/2,(be===be&&be!==1/0&&be!==-1/0)?be>>0:$throwRuntimeError("integer divide by zero"))+1>>0));bf=j.Next;bg=0;while(true){if(!(bg=bi.$length)?($throwRuntimeError("index out of range"),undefined):bi.$array[bi.$offset+bh]=j.Inst.Out));bg++;}j.Inst.Op=7;$s=10;continue;case 8:((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=false);if(j.Next.$length>0){$s=1;continue;}c[0].insert(j.Inst.Out);((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=$appendSlice(new BT([]),AT));j.Next=new BU([j.Inst.Out]);$s=10;continue;case 9:((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=false);if(j.Next.$length>0){$s=1;continue;}c[0].insert(j.Inst.Out);((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=$appendSlice(new BT([]),AS));j.Next=$makeSlice(BU,((bj=((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]).$length/2,(bj===bj&&bj!==1/0&&bj!==-1/0)?bj>>0:$throwRuntimeError("integer divide by zero"))+1>>0));bk=j.Next;bl=0;while(true){if(!(bl=bn.$length)?($throwRuntimeError("index out of range"),undefined):bn.$array[bn.$offset+bm]=j.Inst.Out));bl++;}case 10:case 1:$s=-1;return h;}return;}var $f={$blk:$b,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};})(a,b,c,d,e);c[0].clear();c[0].insert(((a[0].Start>>>0)));f=$makeSlice(CS,a[0].Inst.$length);case 1:if(!(!c[0].empty())){$s=2;continue;}e[0].clear();g=c[0].next();h=b[0](g,f);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(!h){$s=3;continue;}$s=4;continue;case 3:a[0]=BX.nil;$s=2;continue;case 4:$s=1;continue;case 2:if(!(a[0]===BX.nil)){i=a[0].Inst;j=0;while(true){if(!(j=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+k])).Inst.Rune=((k<0||k>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+k]);j++;}}$s=-1;return a[0];}return;}var $f={$blk:AU,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};AV=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=BX.nil;if(a.Start===0){b=BX.nil;$s=-1;return b;}if(!(((c=a.Inst,d=a.Start,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).Op===3))||!(((((((e=a.Inst,f=a.Start,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f])).Arg<<24>>>24))&4)>>>0)===4))){b=BX.nil;$s=-1;return b;}g=a.Inst;h=0;while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]),C.Inst);l=(j=a.Inst,k=i.Out,((k<0||k>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k])).Op;m=i.Op;if((m===(0))||(m===(1))){if((l===4)||((n=a.Inst,o=i.Arg,((o<0||o>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o])).Op===4)){b=BX.nil;$s=-1;return b;}}else if(m===(3)){if(l===4){if(((((i.Arg<<24>>>24))&8)>>>0)===8){h++;continue;}b=BX.nil;$s=-1;return b;}}else if(l===4){b=BX.nil;$s=-1;return b;}h++;}b=AQ(a);p=AU(b);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}b=p;if(!(b===BX.nil)){AP(b,a);}b=b;$s=-1;return b;}return;}var $f={$blk:AV,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};BA.ptr.prototype.newBytes=function(a){var a,b;b=this;b.bytes.str=a;return b.bytes;};BA.prototype.newBytes=function(a){return this.$val.newBytes(a);};BA.ptr.prototype.newString=function(a){var a,b;b=this;b.string.str=a;return b.string;};BA.prototype.newString=function(a){return this.$val.newString(a);};BA.ptr.prototype.newReader=function(a){var a,b;b=this;b.reader.r=a;b.reader.atEOT=false;b.reader.pos=0;return b.reader;};BA.prototype.newReader=function(a){return this.$val.newReader(a);};BA.ptr.prototype.clear=function(){var a;a=this;if(!(a.bytes.str===BZ.nil)){a.bytes.str=BZ.nil;}else if(!($interfaceIsEqual(a.reader.r,$ifaceNil))){a.reader.r=$ifaceNil;}else{a.string.str="";}};BA.prototype.clear=function(){return this.$val.clear();};BA.ptr.prototype.init=function(a,b,c){var a,b,c,d;d=this;if(!($interfaceIsEqual(a,$ifaceNil))){return[d.newReader(a),0];}if(!(b===BZ.nil)){return[d.newBytes(b),b.$length];}return[d.newString(c),c.length];};BA.prototype.init=function(a,b,c){return this.$val.init(a,b,c);};AZ.ptr.prototype.init=function(a){var a,b,c,d,e;b=this;c=b.pool;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);e.cap=$subslice(e.cap,0,a);d++;}b.matchcap=$subslice(b.matchcap,0,a);};AZ.prototype.init=function(a){return this.$val.init(a);};AZ.ptr.prototype.alloc=function(a){var a,b,c,d,e,f;b=this;c=CC.nil;d=b.pool.$length;if(d>0){c=(e=b.pool,f=d-1>>0,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));b.pool=$subslice(b.pool,0,(d-1>>0));}else{c=new AY.ptr(CT.nil,CE.nil);c.cap=$makeSlice(CE,b.matchcap.$length,b.matchcap.$capacity);}c.inst=a;return c;};AZ.prototype.alloc=function(a){return this.$val.alloc(a);};BC=function(a,b){var a,b,c,d,e;return((c=(d=$shiftLeft64((new $Uint64(0,a)),32),e=(new $Uint64(0,((b>>>0)))),new $Uint64(d.$high|e.$high,(d.$low|e.$low)>>>0)),new BB(c.$high,c.$low)));};BB.prototype.match=function(a){var a,b,c,d;b=this;if(a===0){return true;}c=(($shiftRightUint64(b,32).$low>>0));if(!((((a&1)>>>0)===0))){if(!((c===10))&&c>=0){return false;}a=(a&~(1))<<24>>>24;}if(!((((a&4)>>>0)===0))){if(c>=0){return false;}a=(a&~(4))<<24>>>24;}if(a===0){return true;}d=((b.$low>>0));if(!((((a&2)>>>0)===0))){if(!((d===10))&&d>=0){return false;}a=(a&~(2))<<24>>>24;}if(!((((a&8)>>>0)===0))){if(d>=0){return false;}a=(a&~(8))<<24>>>24;}if(a===0){return true;}if(!(C.IsWordChar(c)===C.IsWordChar(d))){a=(a&~(16))<<24>>>24;}else{a=(a&~(32))<<24>>>24;}return a===0;};$ptrType(BB).prototype.match=function(a){return this.$get().match(a);};AZ.ptr.prototype.match=function(a,b){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;e=d.re.cond;if(e===255){$s=-1;return false;}d.matched=false;f=d.matchcap;g=0;while(true){if(!(g=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+h]=-1));g++;}j=d.q0;k=d.q1;l=j;m=k;n=-1;o=-1;p=n;q=o;r=0;s=0;t=r;u=s;w=a.step(b);$s=1;case 1:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}v=w;p=v[0];t=v[1];if(!((p===-1))){$s=2;continue;}$s=3;continue;case 2:y=a.step(b+t>>0);$s=4;case 4:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}x=y;q=x[0];u=x[1];case 3:c[0]=new BB(0,0);if(b===0){$s=5;continue;}$s=6;continue;case 5:c[0]=BC(-1,p);$s=7;continue;case 6:z=a.context(b);$s=8;case 8:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}c[0]=z;case 7:case 9:if(l.dense.$length===0){$s=11;continue;}$s=12;continue;case 11:if(!((((e&4)>>>0)===0))&&!((b===0))){$s=10;continue;}if(d.matched){$s=10;continue;}if(!(d.re.prefix.length>0&&!((q===d.re.prefixRune)))){aa=false;$s=15;continue s;}ab=a.canCheckPrefix();$s=16;case 16:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;case 15:if(aa){$s=13;continue;}$s=14;continue;case 13:ac=a.index(d.re,b);$s=17;case 17:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;if(ad<0){$s=10;continue;}b=b+(ad)>>0;af=a.step(b);$s=18;case 18:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ae=af;p=ae[0];t=ae[1];ah=a.step(b+t>>0);$s=19;case 19:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ag=ah;q=ag[0];u=ag[1];case 14:case 12:if(!d.matched){if(d.matchcap.$length>0){(ai=d.matchcap,(0>=ai.$length?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+0]=b));}d.add(l,((d.p.Start>>>0)),b,d.matchcap,(c.$ptr||(c.$ptr=new CU(function(){return this.$target[0];},function($v){this.$target[0]=$v;},c))),CC.nil);}c[0]=BC(p,q);d.step(l,m,b,b+t>>0,p,(c.$ptr||(c.$ptr=new CU(function(){return this.$target[0];},function($v){this.$target[0]=$v;},c))));if(t===0){$s=10;continue;}if((d.matchcap.$length===0)&&d.matched){$s=10;continue;}b=b+(t)>>0;aj=q;ak=u;p=aj;t=ak;if(!((p===-1))){$s=20;continue;}$s=21;continue;case 20:am=a.step(b+t>>0);$s=22;case 22:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}al=am;q=al[0];u=al[1];case 21:an=m;ao=l;l=an;m=ao;$s=9;continue;case 10:d.clear(m);$s=-1;return d.matched;}return;}var $f={$blk:AZ.ptr.prototype.match,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AZ.prototype.match=function(a,b){return this.$val.match(a,b);};AZ.ptr.prototype.clear=function(a){var a,b,c,d,e;b=this;c=a.dense;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]),AX);if(!(e.t===CC.nil)){b.pool=$append(b.pool,e.t);}d++;}a.dense=$subslice(a.dense,0,0);};AZ.prototype.clear=function(a){return this.$val.clear(a);};AZ.ptr.prototype.step=function(a,b,c,d,e,f){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;g=this;h=g.re.longest;i=0;while(true){if(!(i=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+i]));l=k.t;if(l===CC.nil){i=i+(1)>>0;continue;}if(h&&g.matched&&l.cap.$length>0&&(m=g.matchcap,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0]))<(n=l.cap,(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0]))){g.pool=$append(g.pool,l);i=i+(1)>>0;continue;}o=l.inst;p=false;q=o.Op;if(q===(4)){if(l.cap.$length>0&&(!h||!g.matched||(r=g.matchcap,(1>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+1]))=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+1]=c));$copySlice(g.matchcap,l.cap);}if(!h){t=$subslice(a.dense,(i+1>>0));u=0;while(true){if(!(u=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]),AX);if(!(v.t===CC.nil)){g.pool=$append(g.pool,v.t);}u++;}a.dense=$subslice(a.dense,0,0);}g.matched=true;}else if(q===(7)){p=o.MatchRune(e);}else if(q===(8)){p=e===(w=o.Rune,(0>=w.$length?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+0]));}else if(q===(9)){p=true;}else if(q===(10)){p=!((e===10));}else{$panic(new $String("bad inst"));}if(p){l=g.add(b,o.Out,d,l.cap,f,l);}if(!(l===CC.nil)){g.pool=$append(g.pool,l);}i=i+(1)>>0;}a.dense=$subslice(a.dense,0,0);};AZ.prototype.step=function(a,b,c,d,e,f){return this.$val.step(a,b,c,d,e,f);};AZ.ptr.prototype.add=function(a,b,c,d,e,f){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s;$s=$s||0;s:while(true){switch($s){case 0:g=this;case 1:if(b===0){$s=-1;return f;}i=(h=a.sparse,((b<0||b>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+b]));if(i<((a.dense.$length>>>0))&&((j=a.dense,((i<0||i>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+i])).pc===b)){$s=-1;return f;}k=a.dense.$length;a.dense=$subslice(a.dense,0,(k+1>>0));m=(l=a.dense,((k<0||k>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+k]));m.t=CC.nil;m.pc=b;(n=a.sparse,((b<0||b>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+b]=((k>>>0))));p=(o=g.p.Inst,((b<0||b>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+b]));q=p.Op;if(q===(5)){$s=3;continue;}if((q===(0))||(q===(1))){$s=4;continue;}if(q===(3)){$s=5;continue;}if(q===(6)){$s=6;continue;}if(q===(2)){$s=7;continue;}if((q===(4))||(q===(7))||(q===(8))||(q===(9))||(q===(10))){$s=8;continue;}$s=9;continue;case 3:$s=10;continue;case 4:f=g.add(a,p.Out,c,d,e,f);b=p.Arg;$s=1;continue;$s=10;continue;case 5:if(e.match(((p.Arg<<24>>>24)))){$s=11;continue;}$s=12;continue;case 11:b=p.Out;$s=1;continue;case 12:$s=10;continue;case 6:b=p.Out;$s=1;continue;$s=10;continue;case 7:if(((p.Arg>>0))=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+r]));(t=p.Arg,((t<0||t>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+t]=c));g.add(a,p.Out,c,d,e,CC.nil);(u=p.Arg,((u<0||u>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+u]=s));$s=15;continue;case 14:b=p.Out;$s=1;continue;case 15:$s=10;continue;case 8:if(f===CC.nil){f=g.alloc(p);}else{f.inst=p;}if(d.$length>0&&!((v=f.cap,$indexPtr(v.$array,v.$offset+0,CN))===$indexPtr(d.$array,d.$offset+0,CN))){$copySlice(f.cap,d);}m.t=f;f=CC.nil;$s=10;continue;case 9:$panic(new $String("unhandled"));case 10:case 2:$s=-1;return f;}return;}};AZ.prototype.add=function(a,b,c,d,e,f){return this.$val.add(a,b,c,d,e,f);};BF=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=BE.Get();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}a=$assertType(b,CV,true);c=a[0];d=a[1];if(!d){c=new BD.ptr(new BA.ptr(new V.ptr(BZ.nil),new U.ptr(""),new W.ptr($ifaceNil,false,0)),CE.nil);}$s=-1;return c;}return;}var $f={$blk:BF,$c:true,$r,a,b,c,d,$s};return $f;};BG=function(a){var a;a.inputs.clear();BE.Put(a);};J.ptr.prototype.doOnePass=function(a,b,c,d,e,f){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=[g];h=this;i=h.cond;if(i===255){$s=-1;return CE.nil;}j=BF();$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(k.matchcap.$capacity=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+o]=-1));n++;}q=k.inputs.init(a,b,c);r=q[0];s=-1;t=-1;u=s;v=t;w=0;x=0;y=w;z=x;ab=r.step(d);$s=2;case 2:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;u=aa[0];y=aa[1];if(!((u===-1))){$s=3;continue;}$s=4;continue;case 3:ad=r.step(d+y>>0);$s=5;case 5:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=ad;v=ac[0];z=ac[1];case 4:ae=new BB(0,0);if(d===0){$s=6;continue;}$s=7;continue;case 6:ae=BC(-1,u);$s=8;continue;case 7:af=r.context(d);$s=9;case 9:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ae=af;case 8:ag=h.onepass.Start;g[0]=$clone((ah=h.onepass.Inst,((ag<0||ag>=ah.$length)?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+ag])),AG);if(!((d===0)&&ae.match(((g[0].Inst.Arg<<24>>>24)))&&h.prefix.length>0)){ai=false;$s=12;continue s;}aj=r.canCheckPrefix();$s=13;case 13:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ai=aj;case 12:if(ai){$s=10;continue;}$s=11;continue;case 10:ak=r.hasPrefix(h);$s=16;case 16:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}if(!ak){$s=14;continue;}$s=15;continue;case 14:$s=17;continue;case 15:d=d+(h.prefix.length)>>0;am=r.step(d);$s=18;case 18:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}al=am;u=al[0];y=al[1];ao=r.step(d+y>>0);$s=19;case 19:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}an=ao;v=an[0];z=an[1];ap=r.context(d);$s=20;case 20:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ae=ap;ag=((h.prefixEnd>>0));case 11:case 21:AG.copy(g[0],(aq=h.onepass.Inst,((ag<0||ag>=aq.$length)?($throwRuntimeError("index out of range"),undefined):aq.$array[aq.$offset+ag])));ag=((g[0].Inst.Out>>0));ar=g[0].Inst.Op;if(ar===(4)){$s=24;continue;}if(ar===(7)){$s=25;continue;}if(ar===(8)){$s=26;continue;}if(ar===(9)){$s=27;continue;}if(ar===(10)){$s=28;continue;}if((ar===(0))||(ar===(1))){$s=29;continue;}if(ar===(5)){$s=30;continue;}if(ar===(6)){$s=31;continue;}if(ar===(3)){$s=32;continue;}if(ar===(2)){$s=33;continue;}$s=34;continue;case 24:l=true;if(k.matchcap.$length>0){(as=k.matchcap,(0>=as.$length?($throwRuntimeError("index out of range"),undefined):as.$array[as.$offset+0]=0));(at=k.matchcap,(1>=at.$length?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+1]=d));}$s=17;continue;$s=35;continue;case 25:if(!g[0].Inst.MatchRune(u)){$s=36;continue;}$s=37;continue;case 36:$s=17;continue;case 37:$s=35;continue;case 26:if(!((u===(au=g[0].Inst.Rune,(0>=au.$length?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+0]))))){$s=38;continue;}$s=39;continue;case 38:$s=17;continue;case 39:$s=35;continue;case 27:$s=35;continue;case 28:if(u===10){$s=40;continue;}$s=41;continue;case 40:$s=17;continue;case 41:$s=35;continue;case 29:ag=((AI(g[0],u)>>0));$s=21;continue;$s=35;continue;case 30:$s=17;continue;$s=35;continue;case 31:$s=21;continue;$s=35;continue;case 32:if(!ae.match(((g[0].Inst.Arg<<24>>>24)))){$s=42;continue;}$s=43;continue;case 42:$s=17;continue;case 43:$s=21;continue;$s=35;continue;case 33:if(((g[0].Inst.Arg>>0))=av.$length)?($throwRuntimeError("index out of range"),undefined):av.$array[av.$offset+aw]=d));}$s=21;continue;$s=35;continue;case 34:$panic(new $String("bad inst"));case 35:case 23:if(y===0){$s=22;continue;}ae=BC(u,v);d=d+(y)>>0;ax=v;ay=z;u=ax;y=ay;if(!((u===-1))){$s=44;continue;}$s=45;continue;case 44:ba=r.step(d+y>>0);$s=46;case 46:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}az=ba;v=az[0];z=az[1];case 45:$s=21;continue;case 22:case 17:if(!l){BG(k);$s=-1;return CE.nil;}f=$appendSlice(f,k.matchcap);BG(k);$s=-1;return f;}return;}var $f={$blk:J.ptr.prototype.doOnePass,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};J.prototype.doOnePass=function(a,b,c,d,e,f){return this.$val.doOnePass(a,b,c,d,e,f);};J.ptr.prototype.doMatch=function(a,b,c){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.doExecute(a,b,c,0,0,CE.nil);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=!(e===CE.nil);$s=2;case 2:return f;}return;}var $f={$blk:J.ptr.prototype.doMatch,$c:true,$r,a,b,c,d,e,f,$s};return $f;};J.prototype.doMatch=function(a,b,c){return this.$val.doMatch(a,b,c);};J.ptr.prototype.doExecute=function(a,b,c,d,e,f){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{a,b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=this;if(f===CE.nil){f=$subslice(new CE(BH),0,0,0);}if($interfaceIsEqual(a,$ifaceNil)&&(b.$length+c.length>>0)>0)>0:$throwRuntimeError("integer divide by zero"));};BO=function(a){var a;return a.Inst.$length<=500;};BJ.ptr.prototype.reset=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=this;d.end=b;if(d.jobs.$capacity===0){d.jobs=$makeSlice(CX,0,256);}else{d.jobs=$subslice(d.jobs,0,0);}f=(e=(((($imul(a.Inst.$length,((b+1>>0))))+32>>0)-1>>0))/32,(e===e&&e!==1/0&&e!==-1/0)?e>>0:$throwRuntimeError("integer divide by zero"));if(d.visited.$capacity=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+i]=0));h++;}}if(d.cap.$capacity=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+m]=-1));l++;}if(d.matchcap.$capacity=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+q]=-1));p++;}};BJ.prototype.reset=function(a,b,c){return this.$val.reset(a,b,c);};BJ.ptr.prototype.shouldVisit=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m;c=this;d=(((($imul(((a>>0)),((c.end+1>>0))))+b>>0)>>>0));if(!(((((e=c.visited,f=(g=d/32,(g===g&&g!==1/0&&g!==-1/0)?g>>>0:$throwRuntimeError("integer divide by zero")),((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]))&(((h=(((d&31)>>>0)),h<32?(1<>>0)))>>>0)===0))){return false;}j=(i=d/32,(i===i&&i!==1/0&&i!==-1/0)?i>>>0:$throwRuntimeError("integer divide by zero"));(m=c.visited,((j<0||j>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+j]=(((k=c.visited,((j<0||j>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+j]))|(((l=(((d&31)>>>0)),l<32?(1<>>0)))>>>0)));return true;};BJ.prototype.shouldVisit=function(a,b){return this.$val.shouldVisit(a,b);};BJ.ptr.prototype.push=function(a,b,c,d){var a,b,c,d,e,f;e=this;if(!(((f=a.prog.Inst,((b<0||b>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+b])).Op===5))&&(d||e.shouldVisit(b,c))){e.jobs=$append(e.jobs,new BI.ptr(b,d,c));}};BJ.prototype.push=function(a,b,c,d){return this.$val.push(a,b,c,d);};J.ptr.prototype.tryBacktrack=function(a,b,c,d){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=e.longest;a.push(e,c,d,false);case 1:if(!(a.jobs.$length>0)){$s=2;continue;}g=a.jobs.$length-1>>0;i=(h=a.jobs,((g<0||g>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+g])).pc;k=(j=a.jobs,((g<0||g>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+g])).pos;m=(l=a.jobs,((g<0||g>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+g])).arg;a.jobs=$subslice(a.jobs,0,g);$s=3;continue;case 4:if(!a.shouldVisit(i,k)){$s=1;continue;}case 3:o=$clone((n=e.prog.Inst,((i<0||i>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+i])),C.Inst);p=o.Op;if(p===(5)){$s=6;continue;}if(p===(0)){$s=7;continue;}if(p===(1)){$s=8;continue;}if(p===(7)){$s=9;continue;}if(p===(8)){$s=10;continue;}if(p===(10)){$s=11;continue;}if(p===(9)){$s=12;continue;}if(p===(2)){$s=13;continue;}if(p===(3)){$s=14;continue;}if(p===(6)){$s=15;continue;}if(p===(4)){$s=16;continue;}$s=17;continue;case 6:$panic(new $String("unexpected InstFail"));$s=18;continue;case 7:if(m){$s=19;continue;}$s=20;continue;case 19:m=false;i=o.Arg;$s=4;continue;$s=21;continue;case 20:a.push(e,i,k,true);i=o.Out;$s=4;continue;case 21:$s=18;continue;case 8:s=(q=e.prog.Inst,r=o.Out,((r<0||r>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r])).Op;if((s===(7))||(s===(8))||(s===(9))||(s===(10))){$s=23;continue;}$s=24;continue;case 23:a.push(e,o.Arg,k,false);i=o.Arg;k=a.end;$s=4;continue;case 24:case 22:a.push(e,o.Out,a.end,false);i=o.Out;$s=4;continue;$s=18;continue;case 9:u=b.step(k);$s=25;case 25:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;v=t[0];w=t[1];if(!o.MatchRune(v)){$s=1;continue;}k=k+(w)>>0;i=o.Out;$s=4;continue;$s=18;continue;case 10:y=b.step(k);$s=26;case 26:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}x=y;z=x[0];aa=x[1];if(!((z===(ab=o.Rune,(0>=ab.$length?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+0]))))){$s=1;continue;}k=k+(aa)>>0;i=o.Out;$s=4;continue;$s=18;continue;case 11:ad=b.step(k);$s=27;case 27:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=ad;ae=ac[0];af=ac[1];if((ae===10)||(ae===-1)){$s=1;continue;}k=k+(af)>>0;i=o.Out;$s=4;continue;$s=18;continue;case 12:ah=b.step(k);$s=28;case 28:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ag=ah;ai=ag[0];aj=ag[1];if(ai===-1){$s=1;continue;}k=k+(aj)>>0;i=o.Out;$s=4;continue;$s=18;continue;case 13:if(m){$s=29;continue;}$s=30;continue;case 29:(ak=a.cap,al=o.Arg,((al<0||al>=ak.$length)?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+al]=k));$s=1;continue;$s=31;continue;case 30:if(o.Arg<((a.cap.$length>>>0))){a.push(e,i,(am=a.cap,an=o.Arg,((an<0||an>=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+an])),true);(ao=a.cap,ap=o.Arg,((ap<0||ap>=ao.$length)?($throwRuntimeError("index out of range"),undefined):ao.$array[ao.$offset+ap]=k));}i=o.Out;$s=4;continue;case 31:$s=18;continue;case 14:aq=b.context(k);$s=32;case 32:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;if(!ar.match(((o.Arg<<24>>>24)))){$s=1;continue;}i=o.Out;$s=4;continue;$s=18;continue;case 15:i=o.Out;$s=4;continue;$s=18;continue;case 16:if(a.cap.$length===0){$s=-1;return true;}if(a.cap.$length>1){(as=a.cap,(1>=as.$length?($throwRuntimeError("index out of range"),undefined):as.$array[as.$offset+1]=k));}au=(at=a.matchcap,(1>=at.$length?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+1]));if((au===-1)||(f&&k>0&&k>au)){$copySlice(a.matchcap,a.cap);}if(!f){$s=-1;return true;}if(k===a.end){$s=-1;return true;}$s=1;continue;$s=18;continue;case 17:$panic(new $String("bad inst"));case 18:case 5:$s=1;continue;case 2:$s=-1;return f&&a.matchcap.$length>1&&(av=a.matchcap,(1>=av.$length?($throwRuntimeError("index out of range"),undefined):av.$array[av.$offset+1]))>=0;}return;}var $f={$blk:J.ptr.prototype.tryBacktrack,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};J.prototype.tryBacktrack=function(a,b,c,d){return this.$val.tryBacktrack(a,b,c,d);};J.ptr.prototype.backtrack=function(a,b,c,d,e){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{a,b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;g=f.cond;if(g===255){$s=-1;return CE.nil;}if(!((((g&4)>>>0)===0))&&!((c===0))){$s=-1;return CE.nil;}h=BL();$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=i.inputs.init($ifaceNil,a,b);k=j[0];l=j[1];i.reset(f.prog,l,d);if(!((((g&4)>>>0)===0))){$s=2;continue;}$s=3;continue;case 2:if(i.cap.$length>0){(m=i.cap,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0]=c));}n=f.tryBacktrack(i,k,((f.prog.Start>>>0)),c);$s=7;case 7:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}if(!n){$s=5;continue;}$s=6;continue;case 5:BM(i);$s=-1;return CE.nil;case 6:$s=4;continue;case 3:o=-1;case 8:if(!(c<=l&&!((o===0)))){$s=9;continue;}if(f.prefix.length>0){$s=10;continue;}$s=11;continue;case 10:p=k.index(f,c);$s=12;case 12:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;if(q<0){BM(i);$s=-1;return CE.nil;}c=c+(q)>>0;case 11:if(i.cap.$length>0){(r=i.cap,(0>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+0]=c));}s=f.tryBacktrack(i,k,((f.prog.Start>>>0)),c);$s=15;case 15:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}if(s){$s=13;continue;}$s=14;continue;case 13:$s=16;continue;case 14:u=k.step(c);$s=17;case 17:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;o=t[1];c=c+(o)>>0;$s=8;continue;case 9:BM(i);$s=-1;return CE.nil;case 4:case 16:e=$appendSlice(e,i.matchcap);BM(i);$s=-1;return e;}return;}var $f={$blk:J.ptr.prototype.backtrack,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};J.prototype.backtrack=function(a,b,c,d,e){return this.$val.backtrack(a,b,c,d,e);};BV.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Copy",name:"Copy",pkg:"",typ:$funcType([],[BV],false)},{prop:"Longest",name:"Longest",pkg:"",typ:$funcType([],[],false)},{prop:"get",name:"get",pkg:"regexp",typ:$funcType([],[CA],false)},{prop:"put",name:"put",pkg:"regexp",typ:$funcType([CA],[],false)},{prop:"NumSubexp",name:"NumSubexp",pkg:"",typ:$funcType([],[$Int],false)},{prop:"SubexpNames",name:"SubexpNames",pkg:"",typ:$funcType([],[BY],false)},{prop:"SubexpIndex",name:"SubexpIndex",pkg:"",typ:$funcType([$String],[$Int],false)},{prop:"LiteralPrefix",name:"LiteralPrefix",pkg:"",typ:$funcType([],[$String,$Bool],false)},{prop:"MatchReader",name:"MatchReader",pkg:"",typ:$funcType([B.RuneReader],[$Bool],false)},{prop:"MatchString",name:"MatchString",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"Match",name:"Match",pkg:"",typ:$funcType([BZ],[$Bool],false)},{prop:"ReplaceAllString",name:"ReplaceAllString",pkg:"",typ:$funcType([$String,$String],[$String],false)},{prop:"ReplaceAllLiteralString",name:"ReplaceAllLiteralString",pkg:"",typ:$funcType([$String,$String],[$String],false)},{prop:"ReplaceAllStringFunc",name:"ReplaceAllStringFunc",pkg:"",typ:$funcType([$String,CY],[$String],false)},{prop:"replaceAll",name:"replaceAll",pkg:"regexp",typ:$funcType([BZ,$String,$Int,CZ],[BZ],false)},{prop:"ReplaceAll",name:"ReplaceAll",pkg:"",typ:$funcType([BZ,BZ],[BZ],false)},{prop:"ReplaceAllLiteral",name:"ReplaceAllLiteral",pkg:"",typ:$funcType([BZ,BZ],[BZ],false)},{prop:"ReplaceAllFunc",name:"ReplaceAllFunc",pkg:"",typ:$funcType([BZ,DA],[BZ],false)},{prop:"pad",name:"pad",pkg:"regexp",typ:$funcType([CE],[CE],false)},{prop:"allMatches",name:"allMatches",pkg:"regexp",typ:$funcType([$String,BZ,$Int,DB],[],false)},{prop:"Find",name:"Find",pkg:"",typ:$funcType([BZ],[BZ],false)},{prop:"FindIndex",name:"FindIndex",pkg:"",typ:$funcType([BZ],[CE],false)},{prop:"FindString",name:"FindString",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"FindStringIndex",name:"FindStringIndex",pkg:"",typ:$funcType([$String],[CE],false)},{prop:"FindReaderIndex",name:"FindReaderIndex",pkg:"",typ:$funcType([B.RuneReader],[CE],false)},{prop:"FindSubmatch",name:"FindSubmatch",pkg:"",typ:$funcType([BZ],[CH],false)},{prop:"Expand",name:"Expand",pkg:"",typ:$funcType([BZ,BZ,BZ,CE],[BZ],false)},{prop:"ExpandString",name:"ExpandString",pkg:"",typ:$funcType([BZ,$String,$String,CE],[BZ],false)},{prop:"expand",name:"expand",pkg:"regexp",typ:$funcType([BZ,$String,BZ,$String,CE],[BZ],false)},{prop:"FindSubmatchIndex",name:"FindSubmatchIndex",pkg:"",typ:$funcType([BZ],[CE],false)},{prop:"FindStringSubmatch",name:"FindStringSubmatch",pkg:"",typ:$funcType([$String],[BY],false)},{prop:"FindStringSubmatchIndex",name:"FindStringSubmatchIndex",pkg:"",typ:$funcType([$String],[CE],false)},{prop:"FindReaderSubmatchIndex",name:"FindReaderSubmatchIndex",pkg:"",typ:$funcType([B.RuneReader],[CE],false)},{prop:"FindAll",name:"FindAll",pkg:"",typ:$funcType([BZ,$Int],[CH],false)},{prop:"FindAllIndex",name:"FindAllIndex",pkg:"",typ:$funcType([BZ,$Int],[CI],false)},{prop:"FindAllString",name:"FindAllString",pkg:"",typ:$funcType([$String,$Int],[BY],false)},{prop:"FindAllStringIndex",name:"FindAllStringIndex",pkg:"",typ:$funcType([$String,$Int],[CI],false)},{prop:"FindAllSubmatch",name:"FindAllSubmatch",pkg:"",typ:$funcType([BZ,$Int],[CJ],false)},{prop:"FindAllSubmatchIndex",name:"FindAllSubmatchIndex",pkg:"",typ:$funcType([BZ,$Int],[CI],false)},{prop:"FindAllStringSubmatch",name:"FindAllStringSubmatch",pkg:"",typ:$funcType([$String,$Int],[CK],false)},{prop:"FindAllStringSubmatchIndex",name:"FindAllStringSubmatchIndex",pkg:"",typ:$funcType([$String,$Int],[CI],false)},{prop:"Split",name:"Split",pkg:"",typ:$funcType([$String,$Int],[BY],false)},{prop:"doOnePass",name:"doOnePass",pkg:"regexp",typ:$funcType([B.RuneReader,BZ,$String,$Int,$Int,CE],[CE],false)},{prop:"doMatch",name:"doMatch",pkg:"regexp",typ:$funcType([B.RuneReader,BZ,$String],[$Bool],false)},{prop:"doExecute",name:"doExecute",pkg:"regexp",typ:$funcType([B.RuneReader,BZ,$String,$Int,$Int,CE],[CE],false)},{prop:"tryBacktrack",name:"tryBacktrack",pkg:"regexp",typ:$funcType([CW,T,$Uint32,$Int],[$Bool],false)},{prop:"backtrack",name:"backtrack",pkg:"regexp",typ:$funcType([BZ,$String,$Int,$Int,CE],[CE],false)}];DC.methods=[{prop:"step",name:"step",pkg:"regexp",typ:$funcType([$Int],[$Int32,$Int],false)},{prop:"canCheckPrefix",name:"canCheckPrefix",pkg:"regexp",typ:$funcType([],[$Bool],false)},{prop:"hasPrefix",name:"hasPrefix",pkg:"regexp",typ:$funcType([BV],[$Bool],false)},{prop:"index",name:"index",pkg:"regexp",typ:$funcType([BV,$Int],[$Int],false)},{prop:"context",name:"context",pkg:"regexp",typ:$funcType([$Int],[BB],false)}];DD.methods=[{prop:"step",name:"step",pkg:"regexp",typ:$funcType([$Int],[$Int32,$Int],false)},{prop:"canCheckPrefix",name:"canCheckPrefix",pkg:"regexp",typ:$funcType([],[$Bool],false)},{prop:"hasPrefix",name:"hasPrefix",pkg:"regexp",typ:$funcType([BV],[$Bool],false)},{prop:"index",name:"index",pkg:"regexp",typ:$funcType([BV,$Int],[$Int],false)},{prop:"context",name:"context",pkg:"regexp",typ:$funcType([$Int],[BB],false)}];DE.methods=[{prop:"step",name:"step",pkg:"regexp",typ:$funcType([$Int],[$Int32,$Int],false)},{prop:"canCheckPrefix",name:"canCheckPrefix",pkg:"regexp",typ:$funcType([],[$Bool],false)},{prop:"hasPrefix",name:"hasPrefix",pkg:"regexp",typ:$funcType([BV],[$Bool],false)},{prop:"index",name:"index",pkg:"regexp",typ:$funcType([BV,$Int],[$Int],false)},{prop:"context",name:"context",pkg:"regexp",typ:$funcType([$Int],[BB],false)}];CM.methods=[{prop:"empty",name:"empty",pkg:"regexp",typ:$funcType([],[$Bool],false)},{prop:"next",name:"next",pkg:"regexp",typ:$funcType([],[$Uint32],false)},{prop:"clear",name:"clear",pkg:"regexp",typ:$funcType([],[],false)},{prop:"contains",name:"contains",pkg:"regexp",typ:$funcType([$Uint32],[$Bool],false)},{prop:"insert",name:"insert",pkg:"regexp",typ:$funcType([$Uint32],[],false)},{prop:"insertNew",name:"insertNew",pkg:"regexp",typ:$funcType([$Uint32],[],false)}];AR.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)}];CA.methods=[{prop:"init",name:"init",pkg:"regexp",typ:$funcType([$Int],[],false)},{prop:"alloc",name:"alloc",pkg:"regexp",typ:$funcType([CT],[CC],false)},{prop:"match",name:"match",pkg:"regexp",typ:$funcType([T,$Int],[$Bool],false)},{prop:"clear",name:"clear",pkg:"regexp",typ:$funcType([DF],[],false)},{prop:"step",name:"step",pkg:"regexp",typ:$funcType([DF,DF,$Int,$Int,$Int32,CU],[],false)},{prop:"add",name:"add",pkg:"regexp",typ:$funcType([DF,$Uint32,$Int,CE,CU,CC],[CC],false)}];DG.methods=[{prop:"newBytes",name:"newBytes",pkg:"regexp",typ:$funcType([BZ],[T],false)},{prop:"newString",name:"newString",pkg:"regexp",typ:$funcType([$String],[T],false)},{prop:"newReader",name:"newReader",pkg:"regexp",typ:$funcType([B.RuneReader],[T],false)},{prop:"clear",name:"clear",pkg:"regexp",typ:$funcType([],[],false)},{prop:"init",name:"init",pkg:"regexp",typ:$funcType([B.RuneReader,BZ,$String],[T,$Int],false)}];BB.methods=[{prop:"match",name:"match",pkg:"regexp",typ:$funcType([C.EmptyOp],[$Bool],false)}];CW.methods=[{prop:"reset",name:"reset",pkg:"regexp",typ:$funcType([BW,$Int,$Int],[],false)},{prop:"shouldVisit",name:"shouldVisit",pkg:"regexp",typ:$funcType([$Uint32,$Int],[$Bool],false)},{prop:"push",name:"push",pkg:"regexp",typ:$funcType([BV,$Uint32,$Int,$Bool],[],false)}];J.init("regexp",[{prop:"expr",name:"expr",embedded:false,exported:false,typ:$String,tag:""},{prop:"prog",name:"prog",embedded:false,exported:false,typ:BW,tag:""},{prop:"onepass",name:"onepass",embedded:false,exported:false,typ:BX,tag:""},{prop:"numSubexp",name:"numSubexp",embedded:false,exported:false,typ:$Int,tag:""},{prop:"maxBitStateLen",name:"maxBitStateLen",embedded:false,exported:false,typ:$Int,tag:""},{prop:"subexpNames",name:"subexpNames",embedded:false,exported:false,typ:BY,tag:""},{prop:"prefix",name:"prefix",embedded:false,exported:false,typ:$String,tag:""},{prop:"prefixBytes",name:"prefixBytes",embedded:false,exported:false,typ:BZ,tag:""},{prop:"prefixRune",name:"prefixRune",embedded:false,exported:false,typ:$Int32,tag:""},{prop:"prefixEnd",name:"prefixEnd",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"mpool",name:"mpool",embedded:false,exported:false,typ:$Int,tag:""},{prop:"matchcap",name:"matchcap",embedded:false,exported:false,typ:$Int,tag:""},{prop:"prefixComplete",name:"prefixComplete",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"cond",name:"cond",embedded:false,exported:false,typ:C.EmptyOp,tag:""},{prop:"minInputLen",name:"minInputLen",embedded:false,exported:false,typ:$Int,tag:""},{prop:"longest",name:"longest",embedded:false,exported:false,typ:$Bool,tag:""}]);T.init([{prop:"canCheckPrefix",name:"canCheckPrefix",pkg:"regexp",typ:$funcType([],[$Bool],false)},{prop:"context",name:"context",pkg:"regexp",typ:$funcType([$Int],[BB],false)},{prop:"hasPrefix",name:"hasPrefix",pkg:"regexp",typ:$funcType([BV],[$Bool],false)},{prop:"index",name:"index",pkg:"regexp",typ:$funcType([BV,$Int],[$Int],false)},{prop:"step",name:"step",pkg:"regexp",typ:$funcType([$Int],[$Int32,$Int],false)}]);U.init("regexp",[{prop:"str",name:"str",embedded:false,exported:false,typ:$String,tag:""}]);V.init("regexp",[{prop:"str",name:"str",embedded:false,exported:false,typ:BZ,tag:""}]);W.init("regexp",[{prop:"r",name:"r",embedded:false,exported:false,typ:B.RuneReader,tag:""},{prop:"atEOT",name:"atEOT",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:$Int,tag:""}]);AF.init("",[{prop:"Inst",name:"Inst",embedded:false,exported:true,typ:CO,tag:""},{prop:"Start",name:"Start",embedded:false,exported:true,typ:$Int,tag:""},{prop:"NumCap",name:"NumCap",embedded:false,exported:true,typ:$Int,tag:""}]);AG.init("",[{prop:"Inst",name:"Inst",embedded:true,exported:true,typ:C.Inst,tag:""},{prop:"Next",name:"Next",embedded:false,exported:true,typ:BU,tag:""}]);AK.init("regexp",[{prop:"sparse",name:"sparse",embedded:false,exported:false,typ:BU,tag:""},{prop:"dense",name:"dense",embedded:false,exported:false,typ:BU,tag:""},{prop:"size",name:"size",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"nextIndex",name:"nextIndex",embedded:false,exported:false,typ:$Uint32,tag:""}]);AR.init($Int32);AW.init("regexp",[{prop:"sparse",name:"sparse",embedded:false,exported:false,typ:BU,tag:""},{prop:"dense",name:"dense",embedded:false,exported:false,typ:CB,tag:""}]);AX.init("regexp",[{prop:"pc",name:"pc",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"t",name:"t",embedded:false,exported:false,typ:CC,tag:""}]);AY.init("regexp",[{prop:"inst",name:"inst",embedded:false,exported:false,typ:CT,tag:""},{prop:"cap",name:"cap",embedded:false,exported:false,typ:CE,tag:""}]);AZ.init("regexp",[{prop:"re",name:"re",embedded:false,exported:false,typ:BV,tag:""},{prop:"p",name:"p",embedded:false,exported:false,typ:BW,tag:""},{prop:"q0",name:"q0",embedded:false,exported:false,typ:AW,tag:""},{prop:"q1",name:"q1",embedded:false,exported:false,typ:AW,tag:""},{prop:"pool",name:"pool",embedded:false,exported:false,typ:CD,tag:""},{prop:"matched",name:"matched",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"matchcap",name:"matchcap",embedded:false,exported:false,typ:CE,tag:""},{prop:"inputs",name:"inputs",embedded:false,exported:false,typ:BA,tag:""}]);BA.init("regexp",[{prop:"bytes",name:"bytes",embedded:false,exported:false,typ:V,tag:""},{prop:"string",name:"string",embedded:false,exported:false,typ:U,tag:""},{prop:"reader",name:"reader",embedded:false,exported:false,typ:W,tag:""}]);BD.init("regexp",[{prop:"inputs",name:"inputs",embedded:false,exported:false,typ:BA,tag:""},{prop:"matchcap",name:"matchcap",embedded:false,exported:false,typ:CE,tag:""}]);BI.init("regexp",[{prop:"pc",name:"pc",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"arg",name:"arg",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:$Int,tag:""}]);BJ.init("regexp",[{prop:"end",name:"end",embedded:false,exported:false,typ:$Int,tag:""},{prop:"cap",name:"cap",embedded:false,exported:false,typ:CE,tag:""},{prop:"matchcap",name:"matchcap",embedded:false,exported:false,typ:CE,tag:""},{prop:"jobs",name:"jobs",embedded:false,exported:false,typ:CX,tag:""},{prop:"visited",name:"visited",embedded:false,exported:false,typ:BU,tag:""},{prop:"inputs",name:"inputs",embedded:false,exported:false,typ:BA,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}O=BQ.zero();AA=BR.zero();BE=new F.Pool.ptr(BP.nil,$throwNilPointerError);BH=BS.zero();BK=new F.Pool.ptr(BP.nil,$throwNilPointerError);N=$toNativeArray($kindInt,[128,512,2048,16384,0]);AM=new BT([]);AN=new BU([4294967295]);AS=new BT([0,9,11,1114111]);AT=new BT([0,1114111]);AC();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["go/types"]=(function(){var $pkg={},$init,H,Q,P,A,B,G,I,S,C,M,R,D,J,E,F,N,L,O,K,T,W,X,AJ,AP,AR,AX,AZ,BC,BD,BJ,BN,BT,BY,CA,CB,CE,CJ,CL,CN,CQ,CT,CW,DA,DB,DD,DF,DG,DM,DP,DQ,DS,DU,DY,EA,FD,FH,FJ,FL,FN,FP,FQ,FS,FT,FV,FX,FZ,GC,GG,GI,GK,GM,GR,GV,GW,GX,GY,HB,HC,HF,HJ,HM,HU,HV,IB,IC,ID,IF,II,IK,IS,JI,JP,JQ,JS,JV,JY,JZ,KA,KB,KC,KD,KI,KJ,KL,KM,KN,KO,KP,KQ,KR,KS,KU,KX,KY,LF,LG,LH,LL,LN,LO,LP,LQ,LR,LS,LU,LV,LW,LX,QS,ME,MF,MI,MJ,MM,MN,MP,MQ,MR,MS,MT,MU,MV,MW,MX,MY,MZ,NA,NB,NC,ND,NE,NF,NG,NH,NI,NJ,NK,NL,NM,NN,NO,NP,NQ,NR,NS,NT,NU,NV,NW,NX,NY,NZ,OA,OB,OC,OD,OE,OF,OG,OH,OI,OJ,OK,OL,OM,ON,OO,OP,OQ,OR,OS,OT,OU,OV,OW,OX,OY,OZ,PA,PB,PC,PD,PE,PF,PG,PH,PI,PJ,PK,PL,PM,PN,PO,PP,PQ,PR,PS,PT,PU,PV,PW,PX,PY,PZ,QA,QB,QC,QD,QE,QF,QG,QH,QI,QJ,QK,QL,QM,QN,QO,QP,QQ,QR,QT,QU,QV,QW,QX,QY,QZ,RA,RB,RC,RD,RE,RF,RG,RH,RI,RJ,RK,RL,RM,RN,RO,RP,RQ,RR,RS,RT,RU,RV,RW,RX,RY,RZ,SA,SB,SC,SD,SE,SF,SG,SH,SI,SJ,SK,SL,SM,SN,SO,SP,SQ,SR,SS,ST,SU,SV,SW,SX,SY,SZ,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR,TS,TT,TU,TV,TW,TX,TY,TZ,UA,UB,UC,UD,UE,UF,UG,UH,UI,UJ,UK,UL,UM,UN,UO,V,Y,Z,AA,AB,AC,AD,AE,AG,AK,BO,MG,BU,MH,BW,MK,CM,DH,DI,DK,FM,GZ,ML,HW,MO,IL,IT,IW,IX,JG,KV,LA,a,U,AF,AH,AI,AL,AN,AO,AQ,AS,AT,AU,AV,AW,AY,BA,BB,BE,BF,BG,BH,BI,BK,BL,BM,BP,BQ,BR,BS,BV,BX,BZ,CC,CD,CF,CG,CH,CI,CK,CO,CP,CR,CS,CU,CV,CX,CY,CZ,DC,DE,DJ,DL,DN,DO,DR,DT,DV,DW,DX,DZ,EB,EC,ED,EE,EF,EG,EH,EI,EJ,EK,EL,EM,EN,EO,EP,EQ,ER,ES,ET,EU,EV,EW,EX,EY,EZ,FA,FB,FC,FE,FF,FG,FI,FK,FO,FR,FU,FW,FY,GA,GD,GE,GF,GH,GJ,GL,GN,GO,GP,GQ,GS,GT,GU,HA,HD,HE,HG,HH,HI,HK,HL,HO,HP,HQ,HR,HS,HT,HX,HY,HZ,IA,IE,IG,IH,IJ,IM,IN,IO,IP,IQ,IR,IU,IV,IY,IZ,JA,JB,JC,JD,JE,JF,JH,JJ,JM,JN,JO,JR,JT,JU,JW,JX,KE,KF,KG,KH,KK,KT,KW,KZ,LB,LC,LD,LE,LI,LJ,LK,LM,MC,MD;H=$packages["bytes"];Q=$packages["container/heap"];P=$packages["errors"];A=$packages["fmt"];B=$packages["go/ast"];G=$packages["go/constant"];I=$packages["go/internal/typeparams"];S=$packages["go/parser"];C=$packages["go/token"];M=$packages["io"];R=$packages["math"];D=$packages["regexp"];J=$packages["sort"];E=$packages["strconv"];F=$packages["strings"];N=$packages["sync"];L=$packages["sync/atomic"];O=$packages["unicode"];K=$packages["unicode/utf8"];T=$pkg.version=$newType(0,$kindStruct,"types.version",true,"go/types",false,function(major_,minor_){this.$val=this;if(arguments.length===0){this.major=0;this.minor=0;return;}this.major=major_;this.minor=minor_;});W=$pkg.typeInfo=$newType(4,$kindUint,"types.typeInfo",true,"go/types",false,null);X=$pkg.tparamEnv=$newType(0,$kindStruct,"types.tparamEnv",true,"go/types",false,function(tmap_,link_){this.$val=this;if(arguments.length===0){this.tmap=false;this.link=NC.nil;return;}this.tmap=tmap_;this.link=link_;});AJ=$pkg.builtinId=$newType(4,$kindInt,"types.builtinId",true,"go/types",false,null);AP=$pkg.Union=$newType(0,$kindStruct,"types.Union",true,"go/types",true,function(terms_){this.$val=this;if(arguments.length===0){this.terms=NS.nil;return;}this.terms=terms_;});AR=$pkg.Term=$newType(0,$kindStruct,"types.Term",true,"go/types",true,function(tilde_,typ_){this.$val=this;if(arguments.length===0){this.tilde=false;this.typ=$ifaceNil;return;}this.tilde=tilde_;this.typ=typ_;});AX=$pkg.unifier=$newType(0,$kindStruct,"types.unifier",true,"go/types",false,function(exact_,x_,y_,types_,depth_){this.$val=this;if(arguments.length===0){this.exact=false;this.x=new AZ.ptr(NV.nil,NL.nil,NW.nil);this.y=new AZ.ptr(NV.nil,NL.nil,NW.nil);this.types=MS.nil;this.depth=0;return;}this.exact=exact_;this.x=x_;this.y=y_;this.types=types_;this.depth=depth_;});AZ=$pkg.tparamsList=$newType(0,$kindStruct,"types.tparamsList",true,"go/types",false,function(unifier_,tparams_,indices_){this.$val=this;if(arguments.length===0){this.unifier=NV.nil;this.tparams=NL.nil;this.indices=NW.nil;return;}this.unifier=unifier_;this.tparams=tparams_;this.indices=indices_;});BC=$pkg.term=$newType(0,$kindStruct,"types.term",true,"go/types",false,function(tilde_,typ_){this.$val=this;if(arguments.length===0){this.tilde=false;this.typ=$ifaceNil;return;}this.tilde=tilde_;this.typ=typ_;});BD=$pkg.Qualifier=$newType(4,$kindFunc,"types.Qualifier",true,"go/types",true,null);BJ=$pkg.typeWriter=$newType(0,$kindStruct,"types.typeWriter",true,"go/types",false,function(buf_,seen_,qf_,ctxt_,tparams_,debug_){this.$val=this;if(arguments.length===0){this.buf=SP.nil;this.seen=false;this.qf=$throwNilPointerError;this.ctxt=OZ.nil;this.tparams=OX.nil;this.debug=false;return;}this.buf=buf_;this.seen=seen_;this.qf=qf_;this.ctxt=ctxt_;this.tparams=tparams_;this.debug=debug_;});BN=$pkg._TypeSet=$newType(0,$kindStruct,"types._TypeSet",true,"go/types",false,function(methods_,terms_,comparable_){this.$val=this;if(arguments.length===0){this.methods=MJ.nil;this.terms=CL.nil;this.comparable=false;return;}this.methods=methods_;this.terms=terms_;this.comparable=comparable_;});BT=$pkg.byUniqueMethodName=$newType(12,$kindSlice,"types.byUniqueMethodName",true,"go/types",false,null);BY=$pkg.TypeParam=$newType(0,$kindStruct,"types.TypeParam",true,"go/types",true,function(check_,id_,obj_,index_,bound_){this.$val=this;if(arguments.length===0){this.check=MQ.nil;this.id=new $Uint64(0,0);this.obj=MR.nil;this.index=0;this.bound=$ifaceNil;return;}this.check=check_;this.id=id_;this.obj=obj_;this.index=index_;this.bound=bound_;});CA=$pkg.TypeParamList=$newType(0,$kindStruct,"types.TypeParamList",true,"go/types",true,function(tparams_){this.$val=this;if(arguments.length===0){this.tparams=NL.nil;return;}this.tparams=tparams_;});CB=$pkg.TypeList=$newType(0,$kindStruct,"types.TypeList",true,"go/types",true,function(types_){this.$val=this;if(arguments.length===0){this.types=MS.nil;return;}this.types=types_;});CE=$pkg.Type=$newType(8,$kindInterface,"types.Type",true,"go/types",true,null);CJ=$pkg.Tuple=$newType(0,$kindStruct,"types.Tuple",true,"go/types",true,function(vars_){this.$val=this;if(arguments.length===0){this.vars=NO.nil;return;}this.vars=vars_;});CL=$pkg.termlist=$newType(12,$kindSlice,"types.termlist",true,"go/types",false,null);CN=$pkg.substMap=$newType(4,$kindMap,"types.substMap",true,"go/types",false,null);CQ=$pkg.subster=$newType(0,$kindStruct,"types.subster",true,"go/types",false,function(pos_,smap_,check_,ctxt_){this.$val=this;if(arguments.length===0){this.pos=0;this.smap=false;this.check=MQ.nil;this.ctxt=OZ.nil;return;}this.pos=pos_;this.smap=smap_;this.check=check_;this.ctxt=ctxt_;});CT=$pkg.Struct=$newType(0,$kindStruct,"types.Struct",true,"go/types",true,function(fields_,tags_){this.$val=this;if(arguments.length===0){this.fields=NO.nil;this.tags=NB.nil;return;}this.fields=fields_;this.tags=tags_;});CW=$pkg.stmtContext=$newType(4,$kindUint,"types.stmtContext",true,"go/types",false,null);DA=$pkg.valueMap=$newType(4,$kindMap,"types.valueMap",true,"go/types",false,null);DB=$pkg.valueType=$newType(0,$kindStruct,"types.valueType",true,"go/types",false,function(pos_,typ_){this.$val=this;if(arguments.length===0){this.pos=0;this.typ=$ifaceNil;return;}this.pos=pos_;this.typ=typ_;});DD=$pkg.Slice=$newType(0,$kindStruct,"types.Slice",true,"go/types",true,function(elem_){this.$val=this;if(arguments.length===0){this.elem=$ifaceNil;return;}this.elem=elem_;});DF=$pkg.Sizes=$newType(8,$kindInterface,"types.Sizes",true,"go/types",true,null);DG=$pkg.StdSizes=$newType(0,$kindStruct,"types.StdSizes",true,"go/types",true,function(WordSize_,MaxAlign_){this.$val=this;if(arguments.length===0){this.WordSize=new $Int64(0,0);this.MaxAlign=new $Int64(0,0);return;}this.WordSize=WordSize_;this.MaxAlign=MaxAlign_;});DM=$pkg.Signature=$newType(0,$kindStruct,"types.Signature",true,"go/types",true,function(rparams_,tparams_,scope_,recv_,params_,results_,variadic_){this.$val=this;if(arguments.length===0){this.rparams=OX.nil;this.tparams=OX.nil;this.scope=ME.nil;this.recv=NN.nil;this.params=NM.nil;this.results=NM.nil;this.variadic=false;return;}this.rparams=rparams_;this.tparams=tparams_;this.scope=scope_;this.recv=recv_;this.params=params_;this.results=results_;this.variadic=variadic_;});DP=$pkg.SelectionKind=$newType(4,$kindInt,"types.SelectionKind",true,"go/types",true,null);DQ=$pkg.Selection=$newType(0,$kindStruct,"types.Selection",true,"go/types",true,function(kind_,recv_,obj_,index_,indirect_){this.$val=this;if(arguments.length===0){this.kind=0;this.recv=$ifaceNil;this.obj=$ifaceNil;this.index=NW.nil;this.indirect=false;return;}this.kind=kind_;this.recv=recv_;this.obj=obj_;this.index=index_;this.indirect=indirect_;});DS=$pkg.Scope=$newType(0,$kindStruct,"types.Scope",true,"go/types",true,function(parent_,children_,number_,elems_,pos_,end_,comment_,isFunc_){this.$val=this;if(arguments.length===0){this.parent=ME.nil;this.children=QN.nil;this.number=0;this.elems=false;this.pos=0;this.end=0;this.comment="";this.isFunc=false;return;}this.parent=parent_;this.children=children_;this.number=number_;this.elems=elems_;this.pos=pos_;this.end=end_;this.comment=comment_;this.isFunc=isFunc_;});DU=$pkg.lazyObject=$newType(0,$kindStruct,"types.lazyObject",true,"go/types",false,function(parent_,resolve_,obj_,once_){this.$val=this;if(arguments.length===0){this.parent=ME.nil;this.resolve=$throwNilPointerError;this.obj=$ifaceNil;this.once=new N.Once.ptr(0,new N.Mutex.ptr(0,0));return;}this.parent=parent_;this.resolve=resolve_;this.obj=obj_;this.once=once_;});DY=$pkg.declInfo=$newType(0,$kindStruct,"types.declInfo",true,"go/types",false,function(file_,lhs_,vtyp_,init_,inherited_,tdecl_,fdecl_,deps_){this.$val=this;if(arguments.length===0){this.file=ME.nil;this.lhs=NO.nil;this.vtyp=$ifaceNil;this.init=$ifaceNil;this.inherited=false;this.tdecl=QV.nil;this.fdecl=QQ.nil;this.deps=false;return;}this.file=file_;this.lhs=lhs_;this.vtyp=vtyp_;this.init=init_;this.inherited=inherited_;this.tdecl=tdecl_;this.fdecl=fdecl_;this.deps=deps_;});EA=$pkg.inSourceOrder=$newType(12,$kindSlice,"types.inSourceOrder",true,"go/types",false,null);FD=$pkg.ifacePair=$newType(0,$kindStruct,"types.ifacePair",true,"go/types",false,function(x_,y_,prev_){this.$val=this;if(arguments.length===0){this.x=NH.nil;this.y=NH.nil;this.prev=NX.nil;return;}this.x=x_;this.y=y_;this.prev=prev_;});FH=$pkg.Pointer=$newType(0,$kindStruct,"types.Pointer",true,"go/types",true,function(base_){this.$val=this;if(arguments.length===0){this.base=$ifaceNil;return;}this.base=base_;});FJ=$pkg.Package=$newType(0,$kindStruct,"types.Package",true,"go/types",true,function(path_,name_,scope_,complete_,imports_,fake_,cgo_){this.$val=this;if(arguments.length===0){this.path="";this.name="";this.scope=ME.nil;this.complete=false;this.imports=QY.nil;this.fake=false;this.cgo=false;return;}this.path=path_;this.name=name_;this.scope=scope_;this.complete=complete_;this.imports=imports_;this.fake=fake_;this.cgo=cgo_;});FL=$pkg.operandMode=$newType(1,$kindUint8,"types.operandMode",true,"go/types",false,null);FN=$pkg.operand=$newType(0,$kindStruct,"types.operand",true,"go/types",false,function(mode_,expr_,typ_,val_,id_){this.$val=this;if(arguments.length===0){this.mode=0;this.expr=$ifaceNil;this.typ=$ifaceNil;this.val=$ifaceNil;this.id=0;return;}this.mode=mode_;this.expr=expr_;this.typ=typ_;this.val=val_;this.id=id_;});FP=$pkg.objset=$newType(4,$kindMap,"types.objset",true,"go/types",false,null);FQ=$pkg.Object=$newType(8,$kindInterface,"types.Object",true,"go/types",true,null);FS=$pkg.object=$newType(0,$kindStruct,"types.object",true,"go/types",false,function(parent_,pos_,pkg_,name_,typ_,order__,color__,scopePos__){this.$val=this;if(arguments.length===0){this.parent=ME.nil;this.pos=0;this.pkg=MF.nil;this.name="";this.typ=$ifaceNil;this.order_=0;this.color_=0;this.scopePos_=0;return;}this.parent=parent_;this.pos=pos_;this.pkg=pkg_;this.name=name_;this.typ=typ_;this.order_=order__;this.color_=color__;this.scopePos_=scopePos__;});FT=$pkg.color=$newType(4,$kindUint32,"types.color",true,"go/types",false,null);FV=$pkg.PkgName=$newType(0,$kindStruct,"types.PkgName",true,"go/types",true,function(object_,imported_,used_){this.$val=this;if(arguments.length===0){this.object=new FS.ptr(ME.nil,0,MF.nil,"",$ifaceNil,0,0,0);this.imported=MF.nil;this.used=false;return;}this.object=object_;this.imported=imported_;this.used=used_;});FX=$pkg.Const=$newType(0,$kindStruct,"types.Const",true,"go/types",true,function(object_,val_){this.$val=this;if(arguments.length===0){this.object=new FS.ptr(ME.nil,0,MF.nil,"",$ifaceNil,0,0,0);this.val=$ifaceNil;return;}this.object=object_;this.val=val_;});FZ=$pkg.TypeName=$newType(0,$kindStruct,"types.TypeName",true,"go/types",true,function(object_){this.$val=this;if(arguments.length===0){this.object=new FS.ptr(ME.nil,0,MF.nil,"",$ifaceNil,0,0,0);return;}this.object=object_;});GC=$pkg.Var=$newType(0,$kindStruct,"types.Var",true,"go/types",true,function(object_,embedded_,isField_,used_){this.$val=this;if(arguments.length===0){this.object=new FS.ptr(ME.nil,0,MF.nil,"",$ifaceNil,0,0,0);this.embedded=false;this.isField=false;this.used=false;return;}this.object=object_;this.embedded=embedded_;this.isField=isField_;this.used=used_;});GG=$pkg.Func=$newType(0,$kindStruct,"types.Func",true,"go/types",true,function(object_,hasPtrRecv__){this.$val=this;if(arguments.length===0){this.object=new FS.ptr(ME.nil,0,MF.nil,"",$ifaceNil,0,0,0);this.hasPtrRecv_=false;return;}this.object=object_;this.hasPtrRecv_=hasPtrRecv__;});GI=$pkg.Label=$newType(0,$kindStruct,"types.Label",true,"go/types",true,function(object_,used_){this.$val=this;if(arguments.length===0){this.object=new FS.ptr(ME.nil,0,MF.nil,"",$ifaceNil,0,0,0);this.used=false;return;}this.object=object_;this.used=used_;});GK=$pkg.Builtin=$newType(0,$kindStruct,"types.Builtin",true,"go/types",true,function(object_,id_){this.$val=this;if(arguments.length===0){this.object=new FS.ptr(ME.nil,0,MF.nil,"",$ifaceNil,0,0,0);this.id=0;return;}this.object=object_;this.id=id_;});GM=$pkg.Nil=$newType(0,$kindStruct,"types.Nil",true,"go/types",true,function(object_){this.$val=this;if(arguments.length===0){this.object=new FS.ptr(ME.nil,0,MF.nil,"",$ifaceNil,0,0,0);return;}this.object=object_;});GR=$pkg.Named=$newType(0,$kindStruct,"types.Named",true,"go/types",true,function(check_,obj_,orig_,fromRHS_,underlying_,tparams_,targs_,methods_,resolver_,once_){this.$val=this;if(arguments.length===0){this.check=MQ.nil;this.obj=MR.nil;this.orig=NI.nil;this.fromRHS=$ifaceNil;this.underlying=$ifaceNil;this.tparams=OX.nil;this.targs=NK.nil;this.methods=PA.nil;this.resolver=$throwNilPointerError;this.once=new N.Once.ptr(0,new N.Mutex.ptr(0,0));return;}this.check=check_;this.obj=obj_;this.orig=orig_;this.fromRHS=fromRHS_;this.underlying=underlying_;this.tparams=tparams_;this.targs=targs_;this.methods=methods_;this.resolver=resolver_;this.once=once_;});GV=$pkg.monoGraph=$newType(0,$kindStruct,"types.monoGraph",true,"go/types",false,function(vertices_,edges_,canon_,nameIdx_){this.$val=this;if(arguments.length===0){this.vertices=SH.nil;this.edges=SI.nil;this.canon=false;this.nameIdx=false;return;}this.vertices=vertices_;this.edges=edges_;this.canon=canon_;this.nameIdx=nameIdx_;});GW=$pkg.monoVertex=$newType(0,$kindStruct,"types.monoVertex",true,"go/types",false,function(weight_,pre_,len_,obj_){this.$val=this;if(arguments.length===0){this.weight=0;this.pre=0;this.len=0;this.obj=MR.nil;return;}this.weight=weight_;this.pre=pre_;this.len=len_;this.obj=obj_;});GX=$pkg.monoEdge=$newType(0,$kindStruct,"types.monoEdge",true,"go/types",false,function(dst_,src_,weight_,pos_,typ_){this.$val=this;if(arguments.length===0){this.dst=0;this.src=0;this.weight=0;this.pos=0;this.typ=$ifaceNil;return;}this.dst=dst_;this.src=src_;this.weight=weight_;this.pos=pos_;this.typ=typ_;});GY=$pkg.MethodSet=$newType(0,$kindStruct,"types.MethodSet",true,"go/types",true,function(list_){this.$val=this;if(arguments.length===0){this.list=MN.nil;return;}this.list=list_;});HB=$pkg.methodSet=$newType(4,$kindMap,"types.methodSet",true,"go/types",false,null);HC=$pkg.methodList=$newType(0,$kindStruct,"types.methodList",true,"go/types",false,function(methods_,guards_){this.$val=this;if(arguments.length===0){this.methods=MJ.nil;this.guards=RD.nil;return;}this.methods=methods_;this.guards=guards_;});HF=$pkg.Map=$newType(0,$kindStruct,"types.Map",true,"go/types",true,function(key_,elem_){this.$val=this;if(arguments.length===0){this.key=$ifaceNil;this.elem=$ifaceNil;return;}this.key=key_;this.elem=elem_;});HJ=$pkg.embeddedType=$newType(0,$kindStruct,"types.embeddedType",true,"go/types",false,function(typ_,index_,indirect_,multiples_){this.$val=this;if(arguments.length===0){this.typ=$ifaceNil;this.index=NW.nil;this.indirect=false;this.multiples=false;return;}this.typ=typ_;this.index=index_;this.indirect=indirect_;this.multiples=multiples_;});HM=$pkg.instanceLookup=$newType(0,$kindStruct,"types.instanceLookup",true,"go/types",false,function(m_){this.$val=this;if(arguments.length===0){this.m=false;return;}this.m=m_;});HU=$pkg.block=$newType(0,$kindStruct,"types.block",true,"go/types",false,function(parent_,lstmt_,labels_){this.$val=this;if(arguments.length===0){this.parent=RF.nil;this.lstmt=PS.nil;this.labels=false;return;}this.parent=parent_;this.lstmt=lstmt_;this.labels=labels_;});HV=$pkg.Interface=$newType(0,$kindStruct,"types.Interface",true,"go/types",true,function(check_,obj_,methods_,embeddeds_,embedPos_,implicit_,complete_,tset_){this.$val=this;if(arguments.length===0){this.check=MQ.nil;this.obj=MR.nil;this.methods=MJ.nil;this.embeddeds=MS.nil;this.embedPos=MU.nil;this.implicit=false;this.complete=false;this.tset=MV.nil;return;}this.check=check_;this.obj=obj_;this.methods=methods_;this.embeddeds=embeddeds_;this.embedPos=embedPos_;this.implicit=implicit_;this.complete=complete_;this.tset=tset_;});IB=$pkg.dependency=$newType(8,$kindInterface,"types.dependency",true,"go/types",false,null);IC=$pkg.graphNode=$newType(0,$kindStruct,"types.graphNode",true,"go/types",false,function(obj_,pred_,succ_,index_,ndeps_){this.$val=this;if(arguments.length===0){this.obj=$ifaceNil;this.pred=false;this.succ=false;this.index=0;this.ndeps=0;return;}this.obj=obj_;this.pred=pred_;this.succ=succ_;this.index=index_;this.ndeps=ndeps_;});ID=$pkg.nodeSet=$newType(4,$kindMap,"types.nodeSet",true,"go/types",false,null);IF=$pkg.nodeQueue=$newType(12,$kindSlice,"types.nodeQueue",true,"go/types",false,null);II=$pkg.tpWalker=$newType(0,$kindStruct,"types.tpWalker",true,"go/types",false,function(seen_,tparams_){this.$val=this;if(arguments.length===0){this.seen=false;this.tparams=NL.nil;return;}this.seen=seen_;this.tparams=tparams_;});IK=$pkg.cycleFinder=$newType(0,$kindStruct,"types.cycleFinder",true,"go/types",false,function(tparams_,types_,seen_){this.$val=this;if(arguments.length===0){this.tparams=NL.nil;this.types=MS.nil;this.seen=false;return;}this.tparams=tparams_;this.types=types_;this.seen=seen_;});IS=$pkg.opPredicates=$newType(4,$kindMap,"types.opPredicates",true,"go/types",false,null);JI=$pkg.exprKind=$newType(4,$kindInt,"types.exprKind",true,"go/types",false,null);JP=$pkg.positioner=$newType(8,$kindInterface,"types.positioner",true,"go/types",false,null);JQ=$pkg.posSpan=$newType(0,$kindStruct,"types.posSpan",true,"go/types",false,function(start_,pos_,end_){this.$val=this;if(arguments.length===0){this.start=0;this.pos=0;this.end=0;return;}this.start=start_;this.pos=pos_;this.end=end_;});JS=$pkg.atPos=$newType(4,$kindInt,"types.atPos",true,"go/types",false,null);JV=$pkg.errorCode=$newType(4,$kindInt,"types.errorCode",true,"go/types",false,null);JY=$pkg.decl=$newType(8,$kindInterface,"types.decl",true,"go/types",false,null);JZ=$pkg.importDecl=$newType(0,$kindStruct,"types.importDecl",true,"go/types",false,function(spec_){this.$val=this;if(arguments.length===0){this.spec=RW.nil;return;}this.spec=spec_;});KA=$pkg.constDecl=$newType(0,$kindStruct,"types.constDecl",true,"go/types",false,function(spec_,iota_,typ_,init_,inherited_){this.$val=this;if(arguments.length===0){this.spec=QR.nil;this.iota=0;this.typ=$ifaceNil;this.init=NQ.nil;this.inherited=false;return;}this.spec=spec_;this.iota=iota_;this.typ=typ_;this.init=init_;this.inherited=inherited_;});KB=$pkg.varDecl=$newType(0,$kindStruct,"types.varDecl",true,"go/types",false,function(spec_){this.$val=this;if(arguments.length===0){this.spec=QR.nil;return;}this.spec=spec_;});KC=$pkg.typeDecl=$newType(0,$kindStruct,"types.typeDecl",true,"go/types",false,function(spec_){this.$val=this;if(arguments.length===0){this.spec=QV.nil;return;}this.spec=spec_;});KD=$pkg.funcDecl=$newType(0,$kindStruct,"types.funcDecl",true,"go/types",false,function(decl_){this.$val=this;if(arguments.length===0){this.decl=QQ.nil;return;}this.decl=decl_;});KI=$pkg.Context=$newType(0,$kindStruct,"types.Context",true,"go/types",true,function(mu_,typeMap_,nextID_,originIDs_){this.$val=this;if(arguments.length===0){this.mu=new N.Mutex.ptr(0,0);this.typeMap=false;this.nextID=0;this.originIDs=false;return;}this.mu=mu_;this.typeMap=typeMap_;this.nextID=nextID_;this.originIDs=originIDs_;});KJ=$pkg.ctxtEntry=$newType(0,$kindStruct,"types.ctxtEntry",true,"go/types",false,function(orig_,targs_,instance_){this.$val=this;if(arguments.length===0){this.orig=$ifaceNil;this.targs=MS.nil;this.instance=$ifaceNil;return;}this.orig=orig_;this.targs=targs_;this.instance=instance_;});KL=$pkg.exprInfo=$newType(0,$kindStruct,"types.exprInfo",true,"go/types",false,function(isLhs_,mode_,typ_,val_){this.$val=this;if(arguments.length===0){this.isLhs=false;this.mode=0;this.typ=MY.nil;this.val=$ifaceNil;return;}this.isLhs=isLhs_;this.mode=mode_;this.typ=typ_;this.val=val_;});KM=$pkg.environment=$newType(0,$kindStruct,"types.environment",true,"go/types",false,function(decl_,scope_,pos_,iota_,errpos_,inTParamList_,sig_,isPanic_,hasLabel_,hasCallOrRecv_){this.$val=this;if(arguments.length===0){this.decl=PK.nil;this.scope=ME.nil;this.pos=0;this.iota=$ifaceNil;this.errpos=$ifaceNil;this.inTParamList=false;this.sig=OC.nil;this.isPanic=false;this.hasLabel=false;this.hasCallOrRecv=false;return;}this.decl=decl_;this.scope=scope_;this.pos=pos_;this.iota=iota_;this.errpos=errpos_;this.inTParamList=inTParamList_;this.sig=sig_;this.isPanic=isPanic_;this.hasLabel=hasLabel_;this.hasCallOrRecv=hasCallOrRecv_;});KN=$pkg.importKey=$newType(0,$kindStruct,"types.importKey",true,"go/types",false,function(path_,dir_){this.$val=this;if(arguments.length===0){this.path="";this.dir="";return;}this.path=path_;this.dir=dir_;});KO=$pkg.dotImportKey=$newType(0,$kindStruct,"types.dotImportKey",true,"go/types",false,function(scope_,name_){this.$val=this;if(arguments.length===0){this.scope=ME.nil;this.name="";return;}this.scope=scope_;this.name=name_;});KP=$pkg.action=$newType(0,$kindStruct,"types.action",true,"go/types",false,function(f_,desc_){this.$val=this;if(arguments.length===0){this.f=$throwNilPointerError;this.desc=SC.nil;return;}this.f=f_;this.desc=desc_;});KQ=$pkg.actionDesc=$newType(0,$kindStruct,"types.actionDesc",true,"go/types",false,function(pos_,format_,args_){this.$val=this;if(arguments.length===0){this.pos=$ifaceNil;this.format="";this.args=NA.nil;return;}this.pos=pos_;this.format=format_;this.args=args_;});KR=$pkg.Checker=$newType(0,$kindStruct,"types.Checker",true,"go/types",true,function(conf_,ctxt_,fset_,pkg_,Info_,version_,nextID_,objMap_,impMap_,infoMap_,pkgPathMap_,seenPkgMap_,files_,imports_,dotImportMap_,recvTParamMap_,brokenAliases_,unionTypeSets_,mono_,firstErr_,methods_,untyped_,delayed_,objPath_,cleaners_,environment_,indent_){this.$val=this;if(arguments.length===0){this.conf=RR.nil;this.ctxt=OZ.nil;this.fset=NY.nil;this.pkg=MF.nil;this.Info=SD.nil;this.version=new T.ptr(0,0);this.nextID=new $Uint64(0,0);this.objMap=false;this.impMap=false;this.infoMap=false;this.pkgPathMap=false;this.seenPkgMap=false;this.files=SF.nil;this.imports=SG.nil;this.dotImportMap=false;this.recvTParamMap=false;this.brokenAliases=false;this.unionTypeSets=false;this.mono=new GV.ptr(SH.nil,SI.nil,false,false);this.firstErr=$ifaceNil;this.methods=false;this.untyped=false;this.delayed=SJ.nil;this.objPath=ND.nil;this.cleaners=SK.nil;this.environment=new KM.ptr(PK.nil,ME.nil,0,$ifaceNil,$ifaceNil,false,OC.nil,false,false,false);this.indent=0;return;}this.conf=conf_;this.ctxt=ctxt_;this.fset=fset_;this.pkg=pkg_;this.Info=Info_;this.version=version_;this.nextID=nextID_;this.objMap=objMap_;this.impMap=impMap_;this.infoMap=infoMap_;this.pkgPathMap=pkgPathMap_;this.seenPkgMap=seenPkgMap_;this.files=files_;this.imports=imports_;this.dotImportMap=dotImportMap_;this.recvTParamMap=recvTParamMap_;this.brokenAliases=brokenAliases_;this.unionTypeSets=unionTypeSets_;this.mono=mono_;this.firstErr=firstErr_;this.methods=methods_;this.untyped=untyped_;this.delayed=delayed_;this.objPath=objPath_;this.cleaners=cleaners_;this.environment=environment_;this.indent=indent_;});KS=$pkg.cleaner=$newType(8,$kindInterface,"types.cleaner",true,"go/types",false,null);KU=$pkg.bailout=$newType(0,$kindStruct,"types.bailout",true,"go/types",false,function(){this.$val=this;if(arguments.length===0){return;}});KX=$pkg.Chan=$newType(0,$kindStruct,"types.Chan",true,"go/types",true,function(dir_,elem_){this.$val=this;if(arguments.length===0){this.dir=0;this.elem=$ifaceNil;return;}this.dir=dir_;this.elem=elem_;});KY=$pkg.ChanDir=$newType(4,$kindInt,"types.ChanDir",true,"go/types",true,null);LF=$pkg.BasicKind=$newType(4,$kindInt,"types.BasicKind",true,"go/types",true,null);LG=$pkg.BasicInfo=$newType(4,$kindInt,"types.BasicInfo",true,"go/types",true,null);LH=$pkg.Basic=$newType(0,$kindStruct,"types.Basic",true,"go/types",true,function(kind_,info_,name_){this.$val=this;if(arguments.length===0){this.kind=0;this.info=0;this.name="";return;}this.kind=kind_;this.info=info_;this.name=name_;});LL=$pkg.Array=$newType(0,$kindStruct,"types.Array",true,"go/types",true,function(len_,elem_){this.$val=this;if(arguments.length===0){this.len=new $Int64(0,0);this.elem=$ifaceNil;return;}this.len=len_;this.elem=elem_;});LN=$pkg.Error=$newType(0,$kindStruct,"types.Error",true,"go/types",true,function(Fset_,Pos_,Msg_,Soft_,go116code_,go116start_,go116end_){this.$val=this;if(arguments.length===0){this.Fset=NY.nil;this.Pos=0;this.Msg="";this.Soft=false;this.go116code=0;this.go116start=0;this.go116end=0;return;}this.Fset=Fset_;this.Pos=Pos_;this.Msg=Msg_;this.Soft=Soft_;this.go116code=go116code_;this.go116start=go116start_;this.go116end=go116end_;});LO=$pkg.ArgumentError=$newType(0,$kindStruct,"types.ArgumentError",true,"go/types",true,function(Index_,Err_){this.$val=this;if(arguments.length===0){this.Index=0;this.Err=$ifaceNil;return;}this.Index=Index_;this.Err=Err_;});LP=$pkg.Importer=$newType(8,$kindInterface,"types.Importer",true,"go/types",true,null);LQ=$pkg.ImportMode=$newType(4,$kindInt,"types.ImportMode",true,"go/types",true,null);LR=$pkg.ImporterFrom=$newType(8,$kindInterface,"types.ImporterFrom",true,"go/types",true,null);LS=$pkg.Config=$newType(0,$kindStruct,"types.Config",true,"go/types",true,function(Context_,GoVersion_,IgnoreFuncBodies_,FakeImportC_,go115UsesCgo_,Error_,Importer_,Sizes_,DisableUnusedImportCheck_){this.$val=this;if(arguments.length===0){this.Context=OZ.nil;this.GoVersion="";this.IgnoreFuncBodies=false;this.FakeImportC=false;this.go115UsesCgo=false;this.Error=$throwNilPointerError;this.Importer=$ifaceNil;this.Sizes=$ifaceNil;this.DisableUnusedImportCheck=false;return;}this.Context=Context_;this.GoVersion=GoVersion_;this.IgnoreFuncBodies=IgnoreFuncBodies_;this.FakeImportC=FakeImportC_;this.go115UsesCgo=go115UsesCgo_;this.Error=Error_;this.Importer=Importer_;this.Sizes=Sizes_;this.DisableUnusedImportCheck=DisableUnusedImportCheck_;});LU=$pkg.Info=$newType(0,$kindStruct,"types.Info",true,"go/types",true,function(Types_,Instances_,Defs_,Uses_,Implicits_,Selections_,Scopes_,InitOrder_){this.$val=this;if(arguments.length===0){this.Types=false;this.Instances=false;this.Defs=false;this.Uses=false;this.Implicits=false;this.Selections=false;this.Scopes=false;this.InitOrder=RT.nil;return;}this.Types=Types_;this.Instances=Instances_;this.Defs=Defs_;this.Uses=Uses_;this.Implicits=Implicits_;this.Selections=Selections_;this.Scopes=Scopes_;this.InitOrder=InitOrder_;});LV=$pkg.TypeAndValue=$newType(0,$kindStruct,"types.TypeAndValue",true,"go/types",true,function(mode_,Type_,Value_){this.$val=this;if(arguments.length===0){this.mode=0;this.Type=$ifaceNil;this.Value=$ifaceNil;return;}this.mode=mode_;this.Type=Type_;this.Value=Value_;});LW=$pkg.Instance=$newType(0,$kindStruct,"types.Instance",true,"go/types",true,function(TypeArgs_,Type_){this.$val=this;if(arguments.length===0){this.TypeArgs=NK.nil;this.Type=$ifaceNil;return;}this.TypeArgs=TypeArgs_;this.Type=Type_;});LX=$pkg.Initializer=$newType(0,$kindStruct,"types.Initializer",true,"go/types",true,function(Lhs_,Rhs_){this.$val=this;if(arguments.length===0){this.Lhs=NO.nil;this.Rhs=$ifaceNil;return;}this.Lhs=Lhs_;this.Rhs=Rhs_;});QS=$newType(0,$kindStruct,"types.methodInfo",true,"go/types",false,function(obj_,ptr_,recv_){this.$val=this;if(arguments.length===0){this.obj=MI.nil;this.ptr=false;this.recv=OF.nil;return;}this.obj=obj_;this.ptr=ptr_;this.recv=recv_;});ME=$ptrType(DS);MF=$ptrType(FJ);MI=$ptrType(GG);MJ=$sliceType(MI);MM=$ptrType(DQ);MN=$sliceType(MM);MP=$ptrType(BC);MQ=$ptrType(KR);MR=$ptrType(FZ);MS=$sliceType(CE);MT=$sliceType(C.Pos);MU=$ptrType(MT);MV=$ptrType(BN);MW=$structType("go/types",[{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"nargs",name:"nargs",embedded:false,exported:false,typ:$Int,tag:""},{prop:"variadic",name:"variadic",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"kind",name:"kind",embedded:false,exported:false,typ:JI,tag:""}]);MX=$structType("go/types",[{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"kind",name:"kind",embedded:false,exported:false,typ:LF,tag:""},{prop:"val",name:"val",embedded:false,exported:false,typ:G.Value,tag:""}]);MY=$ptrType(LH);MZ=$sliceType(MY);NA=$sliceType($emptyInterface);NB=$sliceType($String);NC=$ptrType(X);ND=$sliceType(FQ);NE=$ptrType(LL);NF=$ptrType(CT);NG=$ptrType(AP);NH=$ptrType(HV);NI=$ptrType(GR);NJ=$ptrType(BY);NK=$ptrType(CB);NL=$sliceType(NJ);NM=$ptrType(CJ);NN=$ptrType(GC);NO=$sliceType(NN);NP=$ptrType(GK);NQ=$sliceType(B.Expr);NR=$ptrType(AR);NS=$sliceType(NR);NT=$ptrType(B.UnaryExpr);NU=$ptrType(B.BinaryExpr);NV=$ptrType(AX);NW=$sliceType($Int);NX=$ptrType(FD);NY=$ptrType(C.FileSet);NZ=$sliceType($Uint8);OA=$ptrType(DD);OB=$ptrType(FH);OC=$ptrType(DM);OD=$ptrType(HF);OE=$ptrType(KX);OF=$ptrType(B.Ident);OG=$ptrType(FV);OH=$ptrType(FX);OI=$ptrType(GM);OJ=$ptrType($String);OK=$ptrType(B.BadExpr);OL=$ptrType(B.SelectorExpr);OM=$ptrType(B.IndexExpr);ON=$ptrType(B.IndexListExpr);OO=$ptrType(B.ParenExpr);OP=$ptrType(B.ArrayType);OQ=$ptrType(B.Ellipsis);OR=$ptrType(B.StructType);OS=$ptrType(B.StarExpr);OT=$ptrType(B.FuncType);OU=$ptrType(B.InterfaceType);OV=$ptrType(B.MapType);OW=$ptrType(B.ChanType);OX=$ptrType(CA);OY=$ptrType(B.FieldList);OZ=$ptrType(KI);PA=$ptrType(HC);PB=$ptrType(FN);PC=$sliceType(PB);PD=$ptrType(G.Value);PE=$arrayType($Uint8,96);PF=$ptrType(FP);PG=$ptrType($Uint32);PH=$sliceType($Bool);PI=$sliceType(MP);PJ=$ptrType(B.BasicLit);PK=$ptrType(DY);PL=$ptrType(B.EmptyStmt);PM=$sliceType(B.Stmt);PN=$ptrType(B.CaseClause);PO=$ptrType(B.CommClause);PP=$sliceType(DB);PQ=$ptrType(B.BadStmt);PR=$ptrType(B.DeclStmt);PS=$ptrType(B.LabeledStmt);PT=$ptrType(B.ExprStmt);PU=$ptrType(B.SendStmt);PV=$ptrType(B.IncDecStmt);PW=$ptrType(B.AssignStmt);PX=$ptrType(B.GoStmt);PY=$ptrType(B.DeferStmt);PZ=$ptrType(B.ReturnStmt);QA=$ptrType(B.BranchStmt);QB=$ptrType(B.BlockStmt);QC=$ptrType(B.IfStmt);QD=$ptrType(B.SwitchStmt);QE=$ptrType(B.TypeSwitchStmt);QF=$ptrType(B.SelectStmt);QG=$ptrType(B.ForStmt);QH=$ptrType(B.RangeStmt);QI=$ptrType(B.Object);QJ=$ptrType(B.TypeAssertExpr);QK=$sliceType($Int64);QL=$ptrType(DG);QM=$ptrType(OX);QN=$sliceType(ME);QO=$ptrType(DU);QP=$ptrType(B.CallExpr);QQ=$ptrType(B.FuncDecl);QR=$ptrType(B.ValueSpec);QT=$sliceType(QS);QU=$ptrType(C.File);QV=$ptrType(B.TypeSpec);QW=$sliceType(OF);QX=$sliceType(MR);QY=$sliceType(MF);QZ=$ptrType(GI);RA=$ptrType(F.Builder);RB=$sliceType(HJ);RC=$sliceType(N.Once);RD=$ptrType(RC);RE=$sliceType(NI);RF=$ptrType(HU);RG=$sliceType(QA);RH=$ptrType(B.GenDecl);RI=$ptrType(IF);RJ=$ptrType(IC);RK=$ptrType(ID);RL=$sliceType(RJ);RM=$arrayType($Int64,3);RN=$ptrType(B.KeyValueExpr);RO=$ptrType(B.FuncLit);RP=$ptrType(B.CompositeLit);RQ=$ptrType(B.SliceExpr);RR=$ptrType(LS);RS=$ptrType(LX);RT=$sliceType(RS);RU=$ptrType($error);RV=$ptrType(B.BadDecl);RW=$ptrType(B.ImportSpec);RX=$ptrType(B.CommentGroup);RY=$ptrType(B.Field);RZ=$sliceType(RY);SA=$sliceType(OH);SB=$sliceType(KJ);SC=$ptrType(KQ);SD=$ptrType(LU);SE=$ptrType(B.File);SF=$sliceType(SE);SG=$sliceType(OG);SH=$sliceType(GW);SI=$sliceType(GX);SJ=$sliceType(KP);SK=$sliceType(KS);SL=$ptrType(I.IndexExpr);SM=$sliceType(FN);SN=$arrayType(CE,2);SO=$ptrType(AZ);SP=$ptrType(H.Buffer);SQ=$ptrType(BJ);SR=$mapType(CE,$Bool);SS=$funcType([MP],[$Bool],false);ST=$funcType([CE],[$Bool],false);SU=$ptrType(CQ);SV=$funcType([],[FQ],false);SW=$funcType([FQ,FQ],[],false);SX=$mapType($String,FQ);SY=$mapType(FQ,$Bool);SZ=$ptrType(FS);TA=$funcType([OZ,NI],[OX,CE,PA],false);TB=$ptrType(GV);TC=$mapType(NJ,NJ);TD=$mapType(MR,$Int);TE=$ptrType(GY);TF=$funcType([],[MI],false);TG=$ptrType(HM);TH=$mapType(NI,RE);TI=$mapType($String,PS);TJ=$ptrType(II);TK=$ptrType(IK);TL=$mapType($String,SB);TM=$mapType(CE,$Int);TN=$ptrType(KM);TO=$mapType(QP,$Bool);TP=$ptrType(KP);TQ=$funcType([],[],false);TR=$mapType(CE,B.Expr);TS=$sliceType(B.Decl);TT=$funcType([JY],[],false);TU=$funcType([CE],[CE],false);TV=$mapType(FQ,PK);TW=$mapType(KN,MF);TX=$mapType(NI,W);TY=$mapType($String,$Bool);TZ=$mapType($String,TY);UA=$mapType(MF,$Bool);UB=$mapType(KO,OG);UC=$mapType(OF,NJ);UD=$mapType(MR,$Bool);UE=$mapType(NG,MV);UF=$mapType(MR,MJ);UG=$mapType(B.Expr,KL);UH=$ptrType(LO);UI=$funcType([$error],[],false);UJ=$mapType(B.Expr,LV);UK=$mapType(OF,LW);UL=$mapType(OF,FQ);UM=$mapType(B.Node,FQ);UN=$mapType(OL,MM);UO=$mapType(B.Node,ME);KR.ptr.prototype.langCompat=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b.Value;if(d.length<=2||c.allowVersion(c.pkg,1,13)){$s=-1;return;}if(F.Contains(d,"_")){$s=1;continue;}$s=2;continue;case 1:$r=c.errorf(b,71,"underscores in numeric literals requires go1.13 or later",new NA([]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 2:if(!((d.charCodeAt(0)===48))){$s=-1;return;}e=d.charCodeAt(1);if((e===98)||(e===66)){$s=4;continue;}$s=5;continue;case 4:$r=c.errorf(b,71,"binary literals requires go1.13 or later",new NA([]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 5:if((e===111)||(e===79)){$s=7;continue;}$s=8;continue;case 7:$r=c.errorf(b,71,"0o/0O-style octal literals requires go1.13 or later",new NA([]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 8:if(!((b.Kind===5))&&((e===120)||(e===88))){$s=10;continue;}$s=11;continue;case 10:$r=c.errorf(b,71,"hexadecimal floating-point literals requires go1.13 or later",new NA([]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.langCompat,$c:true,$r,b,c,d,e,$s};return $f;};KR.prototype.langCompat=function(b){return this.$val.langCompat(b);};KR.ptr.prototype.allowVersion=function(b,c,d){var b,c,d,e,f,g,h,i;e=this;if(!(b===e.pkg)){return true;}f=e.version.major;g=e.version.minor;h=f;i=g;return(h===0)&&(i===0)||h>c||(h===c)&&i>=d;};KR.prototype.allowVersion=function(b,c,d){return this.$val.allowVersion(b,c,d);};U=function(b){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=new T.ptr(0,0);d=$ifaceNil;if(b===""){$s=-1;return[c,d];}e=V.FindStringSubmatch(b);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(f===NB.nil){$s=2;continue;}$s=3;continue;case 2:g=A.Errorf("should be something like \"go1.12\"",new NA([]));$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}d=g;$s=-1;return[c,d];case 3:h=E.Atoi((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1]));c.major=h[0];d=h[1];if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return[c,d];}i=E.Atoi((2>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+2]));c.minor=i[0];d=i[1];$s=-1;return[c,d];}return;}var $f={$blk:U,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};KR.ptr.prototype.validType=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.validType0(b,NC.nil,ND.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.validType,$c:true,$r,b,c,d,$s};return $f;};KR.prototype.validType=function(b){return this.$val.validType(b);};KR.ptr.prototype.validType0=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=b;if(f===$ifaceNil){$s=1;continue;}if($assertType(f,NE,true)[1]){$s=2;continue;}if($assertType(f,NF,true)[1]){$s=3;continue;}if($assertType(f,NG,true)[1]){$s=4;continue;}if($assertType(f,NH,true)[1]){$s=5;continue;}if($assertType(f,NI,true)[1]){$s=6;continue;}if($assertType(f,NJ,true)[1]){$s=7;continue;}$s=8;continue;case 1:g=f;if(false){$panic(new $String("validType0(nil)"));}$s=8;continue;case 2:h=f.$val;n=e.validType0(h.elem,c,d);$s=9;case 9:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;$s=10;case 10:return o;case 3:i=f.$val;p=i.fields;q=0;case 11:if(!(q=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);s=e.validType0(r.object.typ,c,d);$s=15;case 15:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}if(s===3){$s=13;continue;}$s=14;continue;case 13:$s=-1;return 3;case 14:q++;$s=11;continue;case 12:$s=8;continue;case 4:j=f.$val;t=j.terms;u=0;case 16:if(!(u=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]);w=e.validType0(v.typ,c,d);$s=20;case 20:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}if(w===3){$s=18;continue;}$s=19;continue;case 18:$s=-1;return 3;case 19:u++;$s=16;continue;case 17:$s=8;continue;case 5:k=f.$val;x=k.embeddeds;y=0;case 21:if(!(y=x.$length)?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+y]);aa=e.validType0(z,c,d);$s=25;case 25:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}if(aa===3){$s=23;continue;}$s=24;continue;case 23:$s=-1;return 3;case 24:y++;$s=21;continue;case 22:$s=8;continue;case 6:l=f.$val;if($interfaceIsEqual(l.underlying,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){ab=l;(e.infoMap||$throwRuntimeError("assignment to entry in nil map")).set(NI.keyFor(ab),{k:ab,v:3});$s=-1;return 3;}ad=(ac=$mapIndex(e.infoMap,NI.keyFor(l)),ac!==undefined?ac.v:0);if(ad===(0)){$s=27;continue;}if(ad===(1)){$s=28;continue;}$s=29;continue;case 27:ae=l;(e.infoMap||$throwRuntimeError("assignment to entry in nil map")).set(NI.keyFor(ae),{k:ae,v:1});ag=l.orig.fromRHS;ah=c.push(l);$s=30;case 30:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;aj=$append(d,l.obj);ak=e.validType0(ag,ai,aj);$s=31;case 31:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}af=l;(e.infoMap||$throwRuntimeError("assignment to entry in nil map")).set(NI.keyFor(af),{k:af,v:ak});$s=29;continue;case 28:al=l;(e.infoMap||$throwRuntimeError("assignment to entry in nil map")).set(NI.keyFor(al),{k:al,v:3});JM(l.obj.object.pkg===e.pkg);l.underlying=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);am=d;an=0;case 32:if(!(an=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+an]);if($interfaceIsEqual(ap,l.obj)){$s=34;continue;}$s=35;continue;case 34:$r=e.cycleError($subslice(d,ao));$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return 3;case 35:an++;$s=32;continue;case 33:$panic(new $String("cycle start not found"));case 29:case 26:$s=-1;return(aq=$mapIndex(e.infoMap,NI.keyFor(l)),aq!==undefined?aq.v:0);case 7:m=f.$val;if(!(c===NC.nil)){$s=37;continue;}$s=38;continue;case 37:as=(ar=$mapIndex(c.tmap,NJ.keyFor(m)),ar!==undefined?ar.v:$ifaceNil);if(!($interfaceIsEqual(as,$ifaceNil))){$s=39;continue;}$s=40;continue;case 39:at=e.validType0(as,c.link,d);$s=41;case 41:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=at;$s=42;case 42:return au;case 40:case 38:case 8:$s=-1;return 2;}return;}var $f={$blk:KR.ptr.prototype.validType0,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.validType0=function(b,c,d){return this.$val.validType0(b,c,d);};X.ptr.prototype.push=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b.TypeArgs();if(d===NK.nil){$s=-1;return NC.nil;}e=b.TypeParams();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=d.Len();h=f.Len();i=g;j=h;if(i>j){i=j;}k=((i<0||i>2147483647)?$throwRuntimeError("makemap: size out of range"):new $global.Map());l=0;while(true){if(!(l>0;}$s=-1;return new X.ptr(k,c);}return;}var $f={$blk:X.ptr.prototype.push,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};X.prototype.push=function(b){return this.$val.push(b);};AF=function(){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=$pkg.Typ;c=0;case 1:if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]);$r=AO(GA(0,MF.nil,d.name,d));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c++;$s=1;continue;case 2:e=AE;f=0;case 4:if(!(f<2)){$s=5;continue;}g=((f<0||f>=e.length)?($throwRuntimeError("index out of range"),undefined):e[f]);$r=AO(GA(0,MF.nil,g.name,g));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f++;$s=4;continue;case 5:$r=AO(GA(0,MF.nil,"any",new HV.ptr(MQ.nil,MR.nil,MJ.nil,MS.nil,MU.nil,false,true,BO)));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=GA(0,MF.nil,"error",$ifaceNil);h.object.setColor(1);i=GS(h,$ifaceNil,MJ.nil);j=GD(0,MF.nil,"",i);k=GD(0,MF.nil,"",(17>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+17]));l=DO(j,NL.nil,NL.nil,NM.nil,CK(new NO([k])),false);m=GH(0,MF.nil,"Error",l);n=new HV.ptr(MQ.nil,h,new MJ([m]),MS.nil,MU.nil,false,true,MV.nil);o=BP(MQ.nil,0,n);$s=8;case 8:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;$r=i.SetUnderlying(n);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AO(h);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=GA(0,MF.nil,"comparable",$ifaceNil);p.object.setColor(1);q=GS(p,$ifaceNil,MJ.nil);r=new HV.ptr(MQ.nil,p,MJ.nil,MS.nil,MU.nil,false,true,new BN.ptr(MJ.nil,CM,true));$r=q.SetUnderlying(r);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AO(p);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AF,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};AH=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=AG;c=0;case 1:if(!(c<3)){$s=2;continue;}d=$clone(((c<0||c>=b.length)?($throwRuntimeError("index out of range"),undefined):b[c]),MX);$r=AO(FY(0,MF.nil,d.name,(e=d.kind,((e<0||e>=$pkg.Typ.$length)?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+e])),d.val));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:AH,$c:true,$r,b,c,d,e,$s};return $f;};AI=function(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=AO(new GM.ptr(new FS.ptr(ME.nil,0,MF.nil,"nil",(25>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+25]),0,1,0)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AI,$c:true,$r,$s};return $f;};AL=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=AK;c=0;case 1:if(!(c<22)){$s=2;continue;}d=c;e=((d>>0));if((e===20)||(e===21)){c++;$s=1;continue;}$r=AO(GL(e));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:AL,$c:true,$r,b,c,d,e,$s};return $f;};AN=function(){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$pkg.Universe=DT(ME.nil,0,0,"universe");b=FK("unsafe","unsafe");$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$pkg.Unsafe=b;$pkg.Unsafe.complete=true;$r=AF();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AH();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AI();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AL();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=$pkg.Universe.Lookup("iota");$s=6;case 6:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}Y=c;d=$pkg.Universe.Lookup("byte");$s=7;case 7:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.Type();$s=8;case 8:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}Z=e;f=$pkg.Universe.Lookup("rune");$s=9;case 9:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f.Type();$s=10;case 10:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}AA=g;h=$pkg.Universe.Lookup("any");$s=11;case 11:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}AB=h;i=$pkg.Universe.Lookup("error");$s=12;case 12:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i.Type();$s=13;case 13:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}AC=j;k=$pkg.Universe.Lookup("comparable");$s=14;case 14:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}AD=k;$s=-1;return;}return;}var $f={$blk:AN,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};AO=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=b.color();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$r=JM(c===1);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=b.Name();$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(F.Contains(e," ")){$s=-1;return;}g=b.Type();$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=$assertType(g,NI,true);h=f[0];if(!(h===NI.nil)){h.obj=$assertType(b,MR);}i=$pkg.Universe;j=b.Exported();$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=5;continue;}$s=6;continue;case 5:i=$pkg.Unsafe.scope;k=b;if($assertType(k,MR,true)[1]){l=k.$val;l.object.pkg=$pkg.Unsafe;}else if($assertType(k,NP,true)[1]){m=k.$val;m.object.pkg=$pkg.Unsafe;}else{n=k;JN();}case 6:o=i.Insert(b);$s=10;case 10:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(!($interfaceIsEqual(o,$ifaceNil))){$s=8;continue;}$s=9;continue;case 8:$panic(new $String("double declaration of predeclared identifier"));case 9:$s=-1;return;}return;}var $f={$blk:AO,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};AQ=function(b){var b;if(b.$length===0){$panic(new $String("empty union"));}return new AP.ptr(b);};$pkg.NewUnion=AQ;AP.ptr.prototype.Len=function(){var b;b=this;return b.terms.$length;};AP.prototype.Len=function(){return this.$val.Len();};AP.ptr.prototype.Term=function(b){var b,c,d;c=this;return(d=c.terms,((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));};AP.prototype.Term=function(b){return this.$val.Term(b);};AP.ptr.prototype.Underlying=function(){var b;b=this;return b;};AP.prototype.Underlying=function(){return this.$val.Underlying();};AP.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BF(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:AP.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};AP.prototype.String=function(){return this.$val.String();};AS=function(b,c){var b,c;return new AR.ptr(b,c);};$pkg.NewTerm=AS;AR.ptr.prototype.Tilde=function(){var b;b=this;return b.tilde;};AR.prototype.Tilde=function(){return this.$val.Tilde();};AR.ptr.prototype.Type=function(){var b;b=this;return b.typ;};AR.prototype.Type=function(){return this.$val.Type();};AR.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=($pointerOfStructConversion(b,MP)).String();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:AR.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};AR.prototype.String=function(){return this.$val.String();};AT=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:b=[b];d=[d];e=[e];f=AW(NQ.nil,c);g=f[0];e[0]=f[1];JM(g.$length===(e[0].$length-1>>0));d[0]=NS.nil;h=$ifaceNil;i=e[0];j=0;case 1:if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);m=AU(b[0],l);$s=3;case 3:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;if((e[0].$length===1)&&!n.tilde){$s=-1;return n.typ;}if(d[0].$length>=100){$s=4;continue;}$s=5;continue;case 4:if(!($interfaceIsEqual(h,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0])))){$s=7;continue;}$s=8;continue;case 7:$r=b[0].errorf(l,141,"cannot handle more than %d union terms (implementation limitation)",new NA([new $Int(100)]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 8:$s=6;continue;case 5:d[0]=$append(d[0],n);h=new AP.ptr(d[0]);case 6:if(k>0){$s=10;continue;}$s=11;continue;case 10:$r=b[0].recordTypeAndValue((o=k-1>>0,((o<0||o>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+o])),3,h,$ifaceNil);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:j++;$s=1;continue;case 2:if($interfaceIsEqual(h,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=-1;return h;}b[0].later((function(b,d,e){return function $b(){var{aa,ab,ac,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:p=d[0];q=0;case 1:if(!(q=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);if($interfaceIsEqual(s.typ,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){q++;$s=1;continue;}t=CF(s.typ);$s=3;case 3:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;v=$assertType(u,NH,true);w=v[0];if(s.tilde){$s=4;continue;}$s=5;continue;case 4:if(!(w===NH.nil)){$s=6;continue;}$s=7;continue;case 6:$r=b[0].errorf(((r<0||r>=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+r]),141,"invalid use of ~ (%s is an interface)",new NA([s.typ]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}q++;$s=1;continue;case 7:x=MC(u,s.typ);$s=11;case 11:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}if(!x){$s=9;continue;}$s=10;continue;case 9:$r=b[0].errorf(((r<0||r>=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+r]),141,"invalid use of ~ (underlying type of %s is %s)",new NA([s.typ,u]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}q++;$s=1;continue;case 10:case 5:if(!(w===NH.nil)){$s=13;continue;}$s=14;continue;case 13:y=w.typeSet();$s=15;case 15:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;if(!((z.NumMethods()===0))){$s=17;continue;}aa=AD.Type();$s=21;case 21:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}if($interfaceIsEqual(s.typ,aa)){$s=18;continue;}if(z.comparable){$s=19;continue;}$s=20;continue;case 17:$r=b[0].errorf(((r<0||r>=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+r]),141,"cannot use %s in union (%s contains methods)",new NA([s,s]));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 18:$r=b[0].error(((r<0||r>=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+r]),141,"cannot use comparable in union");$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 19:$r=b[0].errorf(((r<0||r>=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+r]),141,"cannot use %s in union (%s embeds comparable)",new NA([s,s]));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 20:case 16:q++;$s=1;continue;case 14:ab=AV($subslice(d[0],0,r),s);$s=25;case 25:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;if(ac>=0){$s=26;continue;}$s=27;continue;case 26:$r=b[0].softErrorf(((r<0||r>=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+r]),141,"overlapping terms %s and %s",new NA([s,((ac<0||ac>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+ac])]));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 27:q++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,aa,ab,ac,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};})(b,d,e));$s=-1;return h;}return;}var $f={$blk:AT,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};AU=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=c;e=false;f=$assertType(d,NT,true);g=f[0];if(!(g===NT.nil)&&(g.Op===88)){d=g.X;e=true;}h=b.typ(d);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if(EY(i)){$s=2;continue;}$s=3;continue;case 2:$r=b.error(d,144,"cannot embed a type parameter");$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 3:j=AS(e,i);if(e){$s=5;continue;}$s=6;continue;case 5:$r=b.recordTypeAndValue(c,3,new AP.ptr(new NS([j])),$ifaceNil);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:$s=-1;return j;}return;}var $f={$blk:AU,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};AV=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=EX(c.typ);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$r=JM(!d);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=b;f=0;case 3:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);i=EX(h.typ);$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(i){$s=5;continue;}$s=6;continue;case 5:f++;$s=3;continue;case 6:if(false){if(h===NR.nil||$interfaceIsEqual(h.typ,$ifaceNil)||c===NR.nil||$interfaceIsEqual(c.typ,$ifaceNil)){$panic(new $String("empty or top union term"));}}j=($pointerOfStructConversion(h,MP)).disjoint(($pointerOfStructConversion(c,MP)));$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(!j){$s=8;continue;}$s=9;continue;case 8:$s=-1;return g;case 9:f++;$s=3;continue;case 4:$s=-1;return-1;}return;}var $f={$blk:AV,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};AW=function(b,c){var b,c,d,e,f,g,h,i,j;d=NQ.nil;e=NQ.nil;f=$assertType(c,NU,true);g=f[0];if(!(g===NU.nil)&&(g.Op===18)){h=AW(b,g.X);d=h[0];e=h[1];d=$append(d,g);c=g.Y;}i=d;j=$append(e,c);d=i;e=j;return[d,e];};AY=function(b){var b,c;c=new AX.ptr(b,new AZ.ptr(NV.nil,NL.nil,NW.nil),new AZ.ptr(NV.nil,NL.nil,NW.nil),MS.nil,0);c.x.unifier=c;c.y.unifier=c;return c;};AX.ptr.prototype.unify=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.nify(b,c,NX.nil);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:AX.ptr.prototype.unify,$c:true,$r,b,c,d,e,f,$s};return $f;};AX.prototype.unify=function(b,c){return this.$val.unify(b,c);};AX.ptr.prototype.tracef=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=JO(NY.nil,$throwNilPointerError,true,b,c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=A.Println(new NA([new $String(F.Repeat(". ",d.depth)+e)]));$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;$s=-1;return;}return;}var $f={$blk:AX.ptr.prototype.tracef,$c:true,$r,b,c,d,e,f,$s};return $f;};AX.prototype.tracef=function(b,c){return this.$val.tracef(b,c);};AZ.ptr.prototype.String=function(){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=this;b[0]=new H.Buffer.ptr(NZ.nil,0,0);d=BK(b[0],$throwNilPointerError);$r=d.byte$(91);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=c.tparams;f=0;case 2:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(g>0){$s=4;continue;}$s=5;continue;case 4:$r=d.string(", ");$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:$r=d.typ(h);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.string(": ");$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.typ(c.at(g));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f++;$s=2;continue;case 3:$r=d.byte$(93);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b[0].String();}return;}var $f={$blk:AZ.ptr.prototype.String,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};AZ.prototype.String=function(){return this.$val.String();};AZ.ptr.prototype.init=function(b){var b,c,d,e,f,g;c=this;if(b.$length===0){return;}if(false){d=b;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);JM(f===g.index);e++;}}c.tparams=b;c.indices=$makeSlice(NW,b.$length);};AZ.prototype.init=function(b){return this.$val.init(b);};AX.ptr.prototype.join=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=d.tracef("%s \xE2\x87\x84 %s",new NA([(e=d.x.tparams,((b<0||b>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+b])),(f=d.y.tparams,((c<0||c>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+c]))]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:h=(g=d.x.indices,((b<0||b>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+b]));j=(i=d.y.indices,((c<0||c>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+c]));switch(0){default:if((h===0)&&(j===0)){d.types=$append(d.types,$ifaceNil);(k=d.x.indices,((b<0||b>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+b]=-d.types.$length));(l=d.y.indices,((c<0||c>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+c]=-d.types.$length));}else if((h===0)){(m=d.x.indices,((b<0||b>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+b]=j));}else if((j===0)){(n=d.y.indices,((c<0||c>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+c]=h));}else if((h===j)){break;}else if(h>0&&j>0){$s=-1;return false;}else if(h>0){d.y.setIndex(c,h);}else{d.x.setIndex(b,j);}}$s=-1;return true;}return;}var $f={$blk:AX.ptr.prototype.join,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};AX.prototype.join=function(b,c){return this.$val.join(b,c);};AZ.ptr.prototype.index=function(b){var b,c,d,e,f;c=this;d=$assertType(b,NJ,true);e=d[0];f=d[1];if(f){return BA(c.tparams,e);}return-1;};AZ.prototype.index=function(b){return this.$val.index(b);};BA=function(b,c){var b,c,d;d=c.index;if(0<=d&&d=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+d])===c){return d;}return-1;};AZ.ptr.prototype.setIndex=function(b,c){var b,c,d,e,f,g,h,i,j,k;d=this;f=(e=d.indices,((b<0||b>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+b]));JM(!((f===0))&&!((c===0)));g=d.indices;h=0;while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if(j===f){(k=d.indices,((i<0||i>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+i]=c));}h++;}};AZ.prototype.setIndex=function(b,c){return this.$val.setIndex(b,c);};AZ.ptr.prototype.at=function(b){var b,c,d,e,f,g;c=this;e=(d=c.indices,((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));if(e>0){return(f=c.unifier.types,g=e-1>>0,((g<0||g>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]));}return $ifaceNil;};AZ.prototype.at=function(b){return this.$val.at(b);};AZ.ptr.prototype.set=function(b,c){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;JM(!($interfaceIsEqual(c,$ifaceNil)));e=d.unifier;if(false){$s=1;continue;}$s=2;continue;case 1:$r=e.tracef("%s \xE2\x9E\x9E %s",new NA([(f=d.tparams,((b<0||b>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+b])),c]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:h=(g=d.indices,((b<0||b>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+b]));if(h<0){(i=e.types,j=-h-1>>0,((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]=c));d.setIndex(b,-h);}else if((h===0)){e.types=$append(e.types,c);(k=d.indices,((b<0||b>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+b]=e.types.$length));}else{$panic(new $String("type already set"));}$s=-1;return;}return;}var $f={$blk:AZ.ptr.prototype.set,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};AZ.prototype.set=function(b,c){return this.$val.set(b,c);};AZ.ptr.prototype.unknowns=function(){var b,c,d,e,f;b=this;c=0;d=b.indices;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(f<=0){c=c+(1)>>0;}e++;}return c;};AZ.prototype.unknowns=function(){return this.$val.unknowns();};AZ.ptr.prototype.types=function(){var b,c,d,e,f,g,h;b=MS.nil;c=0;d=this;b=$makeSlice(MS,d.tparams.$length);c=-1;e=d.tparams;f=0;while(true){if(!(f=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+g]=h);if(c<0&&$interfaceIsEqual(h,$ifaceNil)){c=g;}f++;}return[b,c];};AZ.prototype.types=function(){return this.$val.types();};AX.ptr.prototype.nifyEq=function(b,c,d){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if($interfaceIsEqual(b,c)){f=true;$s=1;continue s;}g=e.nify(b,c,d);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;case 1:h=f;$s=3;case 3:return h;}return;}var $f={$blk:AX.ptr.prototype.nifyEq,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};AX.prototype.nifyEq=function(b,c,d){return this.$val.nifyEq(b,c,d);};AX.ptr.prototype.nify=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];e=[e];f=[f];e[0]=false;f[0]=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=f[0].tracef("%s \xE2\x89\xA1 %s",new NA([b[0],c[0]]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(f[0].depth>=50){$s=4;continue;}$s=5;continue;case 4:if(false){$s=6;continue;}$s=7;continue;case 6:$r=f[0].tracef("depth %d >= %d",new NA([new $Int(f[0].depth),new $Int(50)]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:if(false){$panic(new $String("unification reached recursion depth limit"));}e[0]=false;g=e[0];$s=9;case 9:return g;case 5:f[0].depth=f[0].depth+(1)>>0;$deferred.push([(function(b,c,e,f){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:f[0].depth=f[0].depth-(1)>>0;if(false&&!e[0]){$s=1;continue;}$s=2;continue;case 1:$r=f[0].tracef("%s \xE2\x89\xA2 %s",new NA([b[0],c[0]]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,e,f),[]]);if(!f[0].exact){$s=10;continue;}$s=11;continue;case 10:h=$assertType(b[0],NI,true);i=h[0];if(!(i===NI.nil)&&!EU(c[0])){$s=12;continue;}$s=13;continue;case 12:if(false){$s=15;continue;}$s=16;continue;case 15:$r=f[0].tracef("under %s \xE2\x89\xA1 %s",new NA([i,c[0]]));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 16:j=i.under();$s=18;case 18:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=f[0].nify(j,c[0],d);$s=19;case 19:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}e[0]=k;l=e[0];$s=20;case 20:return l;case 13:m=$assertType(c[0],NI,true);n=m[0];if(!(n===NI.nil)&&!EU(b[0])){$s=21;continue;}$s=22;continue;case 21:if(false){$s=23;continue;}$s=24;continue;case 23:$r=f[0].tracef("%s \xE2\x89\xA1 under %s",new NA([b[0],n]));$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 24:o=b[0];p=n.under();$s=26;case 26:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;r=d;s=f[0].nify(o,q,r);$s=27;case 27:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}e[0]=s;t=e[0];$s=28;case 28:return t;case 22:case 14:case 11:u=f[0].x.index(b[0]);v=f[0].y.index(c[0]);w=u;x=v;if(w>=0&&x>=0){$s=30;continue;}if(w>=0){$s=31;continue;}if(x>=0){$s=32;continue;}$s=33;continue;case 30:y=f[0].join(w,x);$s=36;case 36:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}if(y){$s=34;continue;}$s=35;continue;case 34:e[0]=true;z=e[0];$s=37;case 37:return z;case 35:aa=f[0].nifyEq(f[0].x.at(w),f[0].y.at(x),d);$s=38;case 38:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}e[0]=aa;ab=e[0];$s=39;case 39:return ab;case 31:ac=f[0].x.at(w);if(!($interfaceIsEqual(ac,$ifaceNil))){$s=40;continue;}$s=41;continue;case 40:ad=f[0].nifyEq(ac,c[0],d);$s=42;case 42:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}e[0]=ad;ae=e[0];$s=43;case 43:return ae;case 41:$r=f[0].x.set(w,c[0]);$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e[0]=true;af=e[0];$s=45;case 45:return af;case 32:ag=f[0].y.at(x);if(!($interfaceIsEqual(ag,$ifaceNil))){$s=46;continue;}$s=47;continue;case 46:ah=f[0].nifyEq(b[0],ag,d);$s=48;case 48:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}e[0]=ah;ai=e[0];$s=49;case 49:return ai;case 47:$r=f[0].y.set(x,b[0]);$s=50;case 50:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e[0]=true;aj=e[0];$s=51;case 51:return aj;case 33:case 29:if(true&&!f[0].exact){$s=52;continue;}$s=53;continue;case 52:if(EY(b[0])&&!EU(c[0])){$s=54;continue;}if(EY(c[0])&&!EU(b[0])){$s=55;continue;}$s=56;continue;case 54:ak=CG(b[0]);$s=57;case 57:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak;if(!($interfaceIsEqual(al,$ifaceNil))){$s=58;continue;}$s=59;continue;case 58:if(false){$s=60;continue;}$s=61;continue;case 60:$r=f[0].tracef("core %s \xE2\x89\xA1 %s",new NA([b[0],c[0]]));$s=62;case 62:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 61:am=f[0].nify(al,c[0],d);$s=63;case 63:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}e[0]=am;an=e[0];$s=64;case 64:return an;case 59:$s=56;continue;case 55:ao=CG(c[0]);$s=65;case 65:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=ao;if(!($interfaceIsEqual(ap,$ifaceNil))){$s=66;continue;}$s=67;continue;case 66:if(false){$s=68;continue;}$s=69;continue;case 68:$r=f[0].tracef("%s \xE2\x89\xA1 core %s",new NA([b[0],c[0]]));$s=70;case 70:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 69:aq=f[0].nify(b[0],ap,d);$s=71;case 71:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}e[0]=aq;ar=e[0];$s=72;case 72:return ar;case 67:case 56:case 53:as=b[0];if($assertType(as,MY,true)[1]){$s=73;continue;}if($assertType(as,NE,true)[1]){$s=74;continue;}if($assertType(as,OA,true)[1]){$s=75;continue;}if($assertType(as,NF,true)[1]){$s=76;continue;}if($assertType(as,OB,true)[1]){$s=77;continue;}if($assertType(as,NM,true)[1]){$s=78;continue;}if($assertType(as,OC,true)[1]){$s=79;continue;}if($assertType(as,NH,true)[1]){$s=80;continue;}if($assertType(as,OD,true)[1]){$s=81;continue;}if($assertType(as,OE,true)[1]){$s=82;continue;}if($assertType(as,NI,true)[1]){$s=83;continue;}if($assertType(as,NJ,true)[1]){$s=84;continue;}if(as===$ifaceNil){$s=85;continue;}$s=86;continue;case 73:at=as.$val;bh=$assertType(c[0],MY,true);bi=bh[0];bj=bh[1];if(bj){$s=88;continue;}$s=89;continue;case 88:e[0]=at.kind===bi.kind;bk=e[0];$s=90;case 90:return bk;case 89:$s=87;continue;case 74:au=as.$val;bl=$assertType(c[0],NE,true);bm=bl[0];bn=bl[1];if(bn){$s=91;continue;}$s=92;continue;case 91:if(!((bp=au.len,(bp.$high<0||(bp.$high===0&&bp.$low<0)))||(bq=bm.len,(bq.$high<0||(bq.$high===0&&bq.$low<0)))||(br=au.len,bs=bm.len,(br.$high===bs.$high&&br.$low===bs.$low)))){bo=false;$s=93;continue s;}bt=f[0].nify(au.elem,bm.elem,d);$s=94;case 94:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}bo=bt;case 93:e[0]=bo;bu=e[0];$s=95;case 95:return bu;case 92:$s=87;continue;case 75:av=as.$val;bv=$assertType(c[0],OA,true);bw=bv[0];bx=bv[1];if(bx){$s=96;continue;}$s=97;continue;case 96:by=f[0].nify(av.elem,bw.elem,d);$s=98;case 98:if($c){$c=false;by=by.$blk();}if(by&&by.$blk!==undefined){break s;}e[0]=by;bz=e[0];$s=99;case 99:return bz;case 97:$s=87;continue;case 76:aw=as.$val;ca=$assertType(c[0],NF,true);cb=ca[0];cc=ca[1];if(cc){$s=100;continue;}$s=101;continue;case 100:if(aw.NumFields()===cb.NumFields()){$s=102;continue;}$s=103;continue;case 102:cd=aw.fields;ce=0;case 104:if(!(ce=cd.$length)?($throwRuntimeError("index out of range"),undefined):cd.$array[cd.$offset+ce]);ci=(ch=cb.fields,((cf<0||cf>=ch.$length)?($throwRuntimeError("index out of range"),undefined):ch.$array[ch.$offset+cf]));if(!(cg.embedded===ci.embedded)||!(aw.Tag(cf)===cb.Tag(cf))||!cg.object.sameId(ci.object.pkg,ci.object.name)){cj=true;$s=108;continue s;}ck=f[0].nify(cg.object.typ,ci.object.typ,d);$s=109;case 109:if($c){$c=false;ck=ck.$blk();}if(ck&&ck.$blk!==undefined){break s;}cj=!ck;case 108:if(cj){$s=106;continue;}$s=107;continue;case 106:e[0]=false;cl=e[0];$s=110;case 110:return cl;case 107:ce++;$s=104;continue;case 105:e[0]=true;cm=e[0];$s=111;case 111:return cm;case 103:case 101:$s=87;continue;case 77:ax=as.$val;cn=$assertType(c[0],OB,true);co=cn[0];cp=cn[1];if(cp){$s=112;continue;}$s=113;continue;case 112:cq=f[0].nify(ax.base,co.base,d);$s=114;case 114:if($c){$c=false;cq=cq.$blk();}if(cq&&cq.$blk!==undefined){break s;}e[0]=cq;cr=e[0];$s=115;case 115:return cr;case 113:$s=87;continue;case 78:ay=as.$val;cs=$assertType(c[0],NM,true);ct=cs[0];cu=cs[1];if(cu){$s=116;continue;}$s=117;continue;case 116:if(ay.Len()===ct.Len()){$s=118;continue;}$s=119;continue;case 118:if(!(ay===NM.nil)){$s=120;continue;}$s=121;continue;case 120:cv=ay.vars;cw=0;case 122:if(!(cw=cv.$length)?($throwRuntimeError("index out of range"),undefined):cv.$array[cv.$offset+cw]);da=(cz=ct.vars,((cx<0||cx>=cz.$length)?($throwRuntimeError("index out of range"),undefined):cz.$array[cz.$offset+cx]));db=f[0].nify(cy.object.typ,da.object.typ,d);$s=126;case 126:if($c){$c=false;db=db.$blk();}if(db&&db.$blk!==undefined){break s;}if(!db){$s=124;continue;}$s=125;continue;case 124:e[0]=false;dc=e[0];$s=127;case 127:return dc;case 125:cw++;$s=122;continue;case 123:case 121:e[0]=true;dd=e[0];$s=128;case 128:return dd;case 119:case 117:$s=87;continue;case 79:az=as.$val;de=$assertType(c[0],OC,true);df=de[0];dg=de[1];if(dg){$s=129;continue;}$s=130;continue;case 129:if(!(az.variadic===df.variadic)){di=false;$s=132;continue s;}dj=f[0].nify(az.params,df.params,d);$s=133;case 133:if($c){$c=false;dj=dj.$blk();}if(dj&&dj.$blk!==undefined){break s;}di=dj;case 132:if(!(di)){dh=false;$s=131;continue s;}dk=f[0].nify(az.results,df.results,d);$s=134;case 134:if($c){$c=false;dk=dk.$blk();}if(dk&&dk.$blk!==undefined){break s;}dh=dk;case 131:e[0]=dh;dl=e[0];$s=135;case 135:return dl;case 130:$s=87;continue;case 80:ba=as.$val;dm=$assertType(c[0],NH,true);dn=dm[0];dp=dm[1];if(dp){$s=136;continue;}$s=137;continue;case 136:dq=ba.typeSet();$s=138;case 138:if($c){$c=false;dq=dq.$blk();}if(dq&&dq.$blk!==undefined){break s;}dr=dq;ds=dn.typeSet();$s=139;case 139:if($c){$c=false;ds=ds.$blk();}if(ds&&ds.$blk!==undefined){break s;}dt=ds;if(!(dr.comparable===dt.comparable)){$s=140;continue;}$s=141;continue;case 140:e[0]=false;du=e[0];$s=142;case 142:return du;case 141:dv=dr.terms.equal(dt.terms);$s=145;case 145:if($c){$c=false;dv=dv.$blk();}if(dv&&dv.$blk!==undefined){break s;}if(!dv){$s=143;continue;}$s=144;continue;case 143:e[0]=false;dw=e[0];$s=146;case 146:return dw;case 144:dx=dr.methods;dy=dt.methods;if(dx.$length===dy.$length){$s=147;continue;}$s=148;continue;case 147:dz=new FD.ptr(ba,dn,d);case 149:if(!(!(d===NX.nil))){$s=150;continue;}if(d.identical(dz)){$s=151;continue;}$s=152;continue;case 151:e[0]=true;ea=e[0];$s=153;case 153:return ea;case 152:d=d.prev;$s=149;continue;case 150:if(false){$s=154;continue;}$s=155;continue;case 154:$r=BS(dx);$s=156;case 156:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=BS(dy);$s=157;case 157:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 155:eb=dx;ec=0;case 158:if(!(ec=eb.$length)?($throwRuntimeError("index out of range"),undefined):eb.$array[eb.$offset+ec]);ef=((ed<0||ed>=dy.$length)?($throwRuntimeError("index out of range"),undefined):dy.$array[dy.$offset+ed]);if(!(ee.object.Id()===ef.object.Id())){eg=true;$s=162;continue s;}eh=f[0].nify(ee.object.typ,ef.object.typ,dz);$s=163;case 163:if($c){$c=false;eh=eh.$blk();}if(eh&&eh.$blk!==undefined){break s;}eg=!eh;case 162:if(eg){$s=160;continue;}$s=161;continue;case 160:e[0]=false;ei=e[0];$s=164;case 164:return ei;case 161:ec++;$s=158;continue;case 159:e[0]=true;ej=e[0];$s=165;case 165:return ej;case 148:case 137:$s=87;continue;case 81:bb=as.$val;ek=$assertType(c[0],OD,true);el=ek[0];em=ek[1];if(em){$s=166;continue;}$s=167;continue;case 166:eo=f[0].nify(bb.key,el.key,d);$s=169;case 169:if($c){$c=false;eo=eo.$blk();}if(eo&&eo.$blk!==undefined){break s;}if(!(eo)){en=false;$s=168;continue s;}ep=f[0].nify(bb.elem,el.elem,d);$s=170;case 170:if($c){$c=false;ep=ep.$blk();}if(ep&&ep.$blk!==undefined){break s;}en=ep;case 168:e[0]=en;eq=e[0];$s=171;case 171:return eq;case 167:$s=87;continue;case 82:bc=as.$val;er=$assertType(c[0],OE,true);es=er[0];et=er[1];if(et){$s=172;continue;}$s=173;continue;case 172:if(!(!f[0].exact||(bc.dir===es.dir))){eu=false;$s=174;continue s;}ev=f[0].nify(bc.elem,es.elem,d);$s=175;case 175:if($c){$c=false;ev=ev.$blk();}if(ev&&ev.$blk!==undefined){break s;}eu=ev;case 174:e[0]=eu;ew=e[0];$s=176;case 176:return ew;case 173:$s=87;continue;case 83:bd=as.$val;ex=$assertType(c[0],NI,true);ey=ex[0];ez=ex[1];if(ez){$s=177;continue;}$s=178;continue;case 177:fa=bd.targs.list();fb=ey.targs.list();if(!((fa.$length===fb.$length))){$s=179;continue;}$s=180;continue;case 179:e[0]=false;fc=e[0];$s=181;case 181:return fc;case 180:if(bd.obj.object.pkg===ey.obj.object.pkg&&bd.obj.object.name===ey.obj.object.name){$s=182;continue;}$s=183;continue;case 182:fd=fa;fe=0;case 184:if(!(fe=fd.$length)?($throwRuntimeError("index out of range"),undefined):fd.$array[fd.$offset+fe]);fh=f[0].nify(fg,((ff<0||ff>=fb.$length)?($throwRuntimeError("index out of range"),undefined):fb.$array[fb.$offset+ff]),d);$s=188;case 188:if($c){$c=false;fh=fh.$blk();}if(fh&&fh.$blk!==undefined){break s;}if(!fh){$s=186;continue;}$s=187;continue;case 186:e[0]=false;fi=e[0];$s=189;case 189:return fi;case 187:fe++;$s=184;continue;case 185:e[0]=true;fj=e[0];$s=190;case 190:return fj;case 183:case 178:$s=87;continue;case 84:be=as.$val;e[0]=$interfaceIsEqual(be,c[0]);fk=e[0];$s=191;case 191:return fk;case 85:bf=as;$s=87;continue;case 86:bg=as;fl=JO(NY.nil,$throwNilPointerError,true,"u.nify(%s, %s), u.x.tparams = %s",new NA([bg,c[0],f[0].x.tparams]));$s=192;case 192:if($c){$c=false;fl=fl.$blk();}if(fl&&fl.$blk!==undefined){break s;}$panic(new $String(fl));case 87:e[0]=false;fm=e[0];$s=193;case 193:return fm;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return e[0];}if($curGoroutine.asleep){var $f={$blk:AX.ptr.prototype.nify,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};AX.prototype.nify=function(b,c,d){return this.$val.nify(b,c,d);};KR.ptr.prototype.ident=function(b,c,d,e){var{aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;b.mode=0;b.expr=c;h=f.environment.scope.LookupParent(c.Name,f.environment.pos);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;i=g[0];j=g[1];k=j;if($interfaceIsEqual(k,$ifaceNil)){$s=3;continue;}if($interfaceIsEqual(k,(AB))||$interfaceIsEqual(k,(AD))){$s=4;continue;}$s=5;continue;case 3:if(c.Name==="_"){$s=6;continue;}$s=7;continue;case 6:m=(l=$mapIndex(f.recvTParamMap,OF.keyFor(c)),l!==undefined?l.v:NJ.nil);if(!(m===NJ.nil)){$s=9;continue;}$s=10;continue;case 9:b.mode=3;b.typ=m;$s=11;continue;case 10:$r=f.error(c,35,"cannot use _ as value or type");$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:$s=8;continue;case 7:$r=f.errorf(c,75,"undeclared name: %s",new NA([new $String(c.Name)]));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:$s=-1;return;case 4:if(!f.allowVersion(f.pkg,1,18)){$s=14;continue;}$s=15;continue;case 14:$r=f.errorf(c,75,"undeclared name: %s (requires version go1.18 or later)",new NA([new $String(c.Name)]));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 15:case 5:case 2:f.recordUse(c,j);n=j.Type();$s=17;case 17:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;p=$assertType(j,MR,true);q=p[1];if($interfaceIsEqual(o,$ifaceNil)||q&&e){$s=18;continue;}$s=19;continue;case 18:$r=f.objDecl(j,d);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}r=j.Type();$s=21;case 21:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}o=r;case 19:JM(!($interfaceIsEqual(o,$ifaceNil)));s=j.Name();$s=22;case 22:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}u=(t=$mapIndex(f.dotImportMap,KO.keyFor(new KO.ptr(i,s))),t!==undefined?t.v:OG.nil);if(!(u===OG.nil)){u.used=true;}v=j;if($assertType(v,OG,true)[1]){$s=23;continue;}if($assertType(v,OH,true)[1]){$s=24;continue;}if($assertType(v,MR,true)[1]){$s=25;continue;}if($assertType(v,NN,true)[1]){$s=26;continue;}if($assertType(v,MI,true)[1]){$s=27;continue;}if($assertType(v,NP,true)[1]){$s=28;continue;}if($assertType(v,OI,true)[1]){$s=29;continue;}$s=30;continue;case 23:w=v.$val;$r=f.errorf(c,4,"use of package %s not in selector",new NA([new $String(w.object.name)]));$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 24:x=v.$val;f.addDeclDep(x);if($interfaceIsEqual(o,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=-1;return;}if($interfaceIsEqual(x,Y)){$s=33;continue;}$s=34;continue;case 33:if($interfaceIsEqual(f.environment.iota,$ifaceNil)){$s=36;continue;}$s=37;continue;case 36:$r=f.errorf(c,36,"cannot use iota outside constant declaration",new NA([]));$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 37:b.val=f.environment.iota;$s=35;continue;case 34:b.val=x.val;case 35:JM(!($interfaceIsEqual(b.val,$ifaceNil)));b.mode=4;$s=31;continue;case 25:y=v.$val;if(f.isBrokenAlias(y)){$s=39;continue;}$s=40;continue;case 39:$r=f.errorf(c,11,"invalid use of type alias %s in recursive type (see issue #50729)",new NA([new $String(y.object.name)]));$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 40:b.mode=3;$s=31;continue;case 26:z=v.$val;if(z.object.pkg===f.pkg){z.used=true;}f.addDeclDep(z);if($interfaceIsEqual(o,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=-1;return;}b.mode=5;$s=31;continue;case 27:aa=v.$val;f.addDeclDep(aa);b.mode=7;$s=31;continue;case 28:ab=v.$val;b.id=ab.id;b.mode=2;$s=31;continue;case 29:ac=v.$val;b.mode=7;$s=31;continue;case 30:ad=v;JN();case 31:b.typ=o;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.ident,$c:true,$r,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.ident=function(b,c,d,e){return this.$val.ident(b,c,d,e);};KR.ptr.prototype.typ=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.definedType(b,NI.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:KR.ptr.prototype.typ,$c:true,$r,b,c,d,e,$s};return $f;};KR.prototype.typ=function(b){return this.$val.typ(b);};KR.ptr.prototype.varType=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.definedType(b,NI.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;c.validVarType(b,e);$s=-1;return e;}return;}var $f={$blk:KR.ptr.prototype.varType,$c:true,$r,b,c,d,e,$s};return $f;};KR.prototype.varType=function(b){return this.$val.varType(b);};KR.ptr.prototype.validVarType=function(b,c){var b,c,d;d=this;if(EY(c)){return;}d.later((function $b(){var{e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:f=CF(c);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=$assertType(f,NH,true);g=e[0];if(!(g===NH.nil)){$s=2;continue;}$s=3;continue;case 2:h=d;i=b.Pos();$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=g;l=BP(h,j,k);$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;if(!m.IsMethodSet()){$s=6;continue;}$s=7;continue;case 6:if(m.comparable){$s=8;continue;}$s=9;continue;case 8:$r=d.softErrorf(b,142,"interface is (or embeds) comparable",new NA([]));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=10;continue;case 9:$r=d.softErrorf(b,142,"interface contains type constraints",new NA([]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:case 7:case 3:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,e,f,g,h,i,j,k,l,m,$s};return $f;}));};KR.prototype.validVarType=function(b,c){return this.$val.validVarType(b,c);};KR.ptr.prototype.definedType=function(b,c){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.typInternal(b,c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;JM(EV(f));g=EZ(f);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(g){$s=2;continue;}$s=3;continue;case 2:$r=d.errorf(b,137,"cannot use generic type %s without instantiation",new NA([f]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 3:$r=d.recordTypeAndValue(b,3,f,$ifaceNil);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return f;}return;}var $f={$blk:KR.ptr.prototype.definedType,$c:true,$r,b,c,d,e,f,g,$s};return $f;};KR.prototype.definedType=function(b,c){return this.$val.definedType(b,c);};KR.ptr.prototype.genericType=function(b,c){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.typInternal(b,NI.nil);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;JM(EV(f));if(!(!($interfaceIsEqual(f,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))))){g=false;$s=4;continue s;}h=EZ(f);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=!h;case 4:if(g){$s=2;continue;}$s=3;continue;case 2:if(!(c===OJ.nil)){$s=6;continue;}$s=7;continue;case 6:i=d.sprintf("%s is not a generic type",new NA([f]));$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}c.$set(i);case 7:f=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 3:$r=d.recordTypeAndValue(b,3,f,$ifaceNil);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return f;}return;}var $f={$blk:KR.ptr.prototype.genericType,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};KR.prototype.genericType=function(b,c){return this.$val.genericType(b,c);};BB=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=A.Sprintf("%T",new NA([b]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=F.ReplaceAll(c,"types.","");$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=3;case 3:return e;}return;}var $f={$blk:BB,$c:true,$r,b,c,d,e,$s};return $f;};KR.ptr.prototype.typInternal=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b,c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];d=[d];e=[e];f=[f];g=[g];h=[h];i=[i];d[0]=$ifaceNil;e[0]=this;if(false){$s=1;continue;}$s=2;continue;case 1:j=b[0].Pos();$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}$r=e[0].trace(j,"-- type %s",new NA([b[0]]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e[0].indent=e[0].indent+(1)>>0;$deferred.push([(function(b,d,e,f,g,h,i){return function $b(){var{k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:e[0].indent=e[0].indent-(1)>>0;k=$ifaceNil;if(!($interfaceIsEqual(d[0],$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:l=GU(d[0]);$s=3;case 3:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;case 2:if($interfaceIsEqual(d[0],k)){$s=4;continue;}$s=5;continue;case 4:m=b[0].Pos();$s=7;case 7:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=d[0];p=BB(d[0]);$s=8;case 8:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=new $String(p);$r=e[0].trace(n,"=> %s // %s",new NA([o,q]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=6;continue;case 5:r=b[0].Pos();$s=10;case 10:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;t=d[0];u=k;v=BB(d[0]);$s=11;case 11:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=new $String(v);$r=e[0].trace(s,"=> %s (under = %s) // %s",new NA([t,u,w]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};})(b,d,e,f,g,h,i),[]]);case 2:k=b[0];if($assertType(k,OK,true)[1]){$s=5;continue;}if($assertType(k,OF,true)[1]){$s=6;continue;}if($assertType(k,OL,true)[1]){$s=7;continue;}if($assertType(k,OM,true)[1]||$assertType(k,ON,true)[1]){$s=8;continue;}if($assertType(k,OO,true)[1]){$s=9;continue;}if($assertType(k,OP,true)[1]){$s=10;continue;}if($assertType(k,OQ,true)[1]){$s=11;continue;}if($assertType(k,OR,true)[1]){$s=12;continue;}if($assertType(k,OS,true)[1]){$s=13;continue;}if($assertType(k,OT,true)[1]){$s=14;continue;}if($assertType(k,OU,true)[1]){$s=15;continue;}if($assertType(k,OV,true)[1]){$s=16;continue;}if($assertType(k,OW,true)[1]){$s=17;continue;}$s=18;continue;case 5:l=k.$val;$s=19;continue;case 6:m=k.$val;h[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=e[0].ident(h[0],m,c,true);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}y=h[0].mode;if(y===(3)){$s=22;continue;}if(y===(0)){$s=23;continue;}if(y===(1)){$s=24;continue;}$s=25;continue;case 22:z=h[0].typ;c.setUnderlying(z);d[0]=z;aa=d[0];$s=27;case 27:return aa;case 23:$s=26;continue;case 24:$r=e[0].errorf(h[0],25,"%s used as type",new NA([h[0]]));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=26;continue;case 25:$r=e[0].errorf(h[0],25,"%s is not a type",new NA([h[0]]));$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 26:case 21:$s=19;continue;case 7:n=k.$val;i[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=e[0].selector(i[0],n,c);$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ab=i[0].mode;if(ab===(3)){$s=32;continue;}if(ab===(0)){$s=33;continue;}if(ab===(1)){$s=34;continue;}$s=35;continue;case 32:ac=i[0].typ;c.setUnderlying(ac);d[0]=ac;ad=d[0];$s=37;case 37:return ad;case 33:$s=36;continue;case 34:$r=e[0].errorf(i[0],25,"%s used as type",new NA([i[0]]));$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 35:$r=e[0].errorf(i[0],25,"%s is not a type",new NA([i[0]]));$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 36:case 31:$s=19;continue;case 8:o=k;ae=I.UnpackIndexExpr(o);if(!e[0].allowVersion(e[0].pkg,1,18)){$s=40;continue;}$s=41;continue;case 40:ag=JR(o,ae.IndexListExpr.Lbrack);$s=42;case 42:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}$r=e[0].softErrorf((af=ag,new af.constructor.elem(af)),135,"type instantiation requires go1.18 or later",new NA([]));$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 41:ah=e[0].instantiatedType(ae,c);$s=44;case 44:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}d[0]=ah;ai=d[0];$s=45;case 45:return ai;case 9:p=k.$val;aj=e[0].definedType(p.X,c);$s=46;case 46:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}d[0]=aj;ak=d[0];$s=47;case 47:return ak;case 10:q=k.$val;if($interfaceIsEqual(q.Len,$ifaceNil)){$s=48;continue;}$s=49;continue;case 48:al=new DD.ptr($ifaceNil);c.setUnderlying(al);am=e[0].varType(q.Elt);$s=50;case 50:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}al.elem=am;d[0]=al;an=d[0];$s=51;case 51:return an;case 49:ao=new LL.ptr(new $Int64(0,0),$ifaceNil);c.setUnderlying(ao);ap=e[0].arrayLength(q.Len);$s=52;case 52:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ao.len=ap;aq=e[0].varType(q.Elt);$s=53;case 53:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ao.elem=aq;if((ar=ao.len,(ar.$high>0||(ar.$high===0&&ar.$low>=0)))){$s=54;continue;}$s=55;continue;case 54:d[0]=ao;as=d[0];$s=56;case 56:return as;case 55:$s=19;continue;case 11:r=k.$val;$r=e[0].error(r,81,"invalid use of '...'");$s=57;case 57:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e[0].use(new NQ([r.Elt]));$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=19;continue;case 12:s=k.$val;at=new CT.ptr(NO.nil,NB.nil);c.setUnderlying(at);$r=e[0].structType(at,s);$s=59;case 59:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d[0]=at;au=d[0];$s=60;case 60:return au;case 13:t=k.$val;av=new FH.ptr($ifaceNil);av.base=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);c.setUnderlying(av);aw=e[0].varType(t.X);$s=61;case 61:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}av.base=aw;d[0]=av;ax=d[0];$s=62;case 62:return ax;case 14:u=k.$val;ay=new DM.ptr(OX.nil,OX.nil,ME.nil,NN.nil,NM.nil,NM.nil,false);c.setUnderlying(ay);$r=e[0].funcType(ay,OY.nil,u);$s=63;case 63:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d[0]=ay;az=d[0];$s=64;case 64:return az;case 15:v=k.$val;ba=e[0].newInterface();c.setUnderlying(ba);if(!(c===NI.nil)){ba.obj=c.obj;}$r=e[0].interfaceType(ba,v,c);$s=65;case 65:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d[0]=ba;bb=d[0];$s=66;case 66:return bb;case 16:f[0]=k.$val;g[0]=new HF.ptr($ifaceNil,$ifaceNil);c.setUnderlying(g[0]);bc=e[0].varType(f[0].Key);$s=67;case 67:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}g[0].key=bc;bd=e[0].varType(f[0].Value);$s=68;case 68:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}g[0].elem=bd;e[0].later((function(b,d,e,f,g,h,i){return function $b(){var{be,bf,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:be=FA(g[0].key);$s=3;case 3:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}if(!be){$s=1;continue;}$s=2;continue;case 1:bf="";if(EY(g[0].key)){bf=" (missing comparable constraint)";}$r=e[0].errorf(f[0].Key,28,"incomparable map key type %s%s",new NA([g[0].key,new $String(bf)]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,be,bf,$s};return $f;};})(b,d,e,f,g,h,i));d[0]=g[0];be=d[0];$s=69;case 69:return be;case 17:w=k.$val;bf=new KX.ptr(0,$ifaceNil);c.setUnderlying(bf);bg=0;bh=w.Dir;if(bh===(3)){$s=71;continue;}if(bh===(1)){$s=72;continue;}if(bh===(2)){$s=73;continue;}$s=74;continue;case 71:$s=75;continue;case 72:bg=1;$s=75;continue;case 73:bg=2;$s=75;continue;case 74:$r=e[0].invalidAST(w,"unknown channel direction %d",new NA([new B.ChanDir(w.Dir)]));$s=76;case 76:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 75:case 70:bf.dir=bg;bi=e[0].varType(w.Value);$s=77;case 77:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bf.elem=bi;d[0]=bf;bj=d[0];$s=78;case 78:return bj;case 18:x=k;$r=e[0].errorf(b[0],25,"%s is not a type",new NA([b[0]]));$s=79;case 79:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 19:bk=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);c.setUnderlying(bk);d[0]=bk;bl=d[0];$s=80;case 80:return bl;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return d[0];}if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.typInternal,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};KR.prototype.typInternal=function(b,c){return this.$val.typInternal(b,c);};KR.ptr.prototype.instantiatedType=function(b,c){var{aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b,c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];d=[d];e=[e];f=[f];g=[g];h=[h];i=[i];i[0]=$ifaceNil;d[0]=this;j=b[0].IndexListExpr.X.Pos();$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}g[0]=j;if(false){$s=2;continue;}$s=3;continue;case 2:$r=d[0].trace(g[0],"-- instantiating %s with %s",new NA([b[0].IndexListExpr.X,b[0].IndexListExpr.Indices]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d[0].indent=d[0].indent+(1)>>0;$deferred.push([(function(b,d,e,f,g,h,i){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d[0].indent=d[0].indent-(1)>>0;$r=d[0].trace(g[0],"=> %s",new NA([i[0]]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,d,e,f,g,h,i),[]]);case 3:h[0]="";k=d[0].genericType(b[0].IndexListExpr.X,(h.$ptr||(h.$ptr=new OJ(function(){return this.$target[0];},function($v){this.$target[0]=$v;},h))));$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(!(h[0]==="")){$s=6;continue;}$s=7;continue;case 6:$r=d[0].invalidOp(b[0].Orig,136,"%s (%s)",new NA([b[0].Orig,new $String(h[0])]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:if($interfaceIsEqual(l,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=9;continue;}$s=10;continue;case 9:i[0]=l;m=i[0];$s=11;case 11:return m;case 10:n=$assertType(l,NI,true);o=n[0];if(o===NI.nil){$s=12;continue;}$s=13;continue;case 12:p=b[0].IndexListExpr.Pos();$s=14;case 14:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=new C.Pos(p);r=l;s=A.Sprintf("%v: cannot instantiate %v",new NA([q,r]));$s=15;case 15:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}$panic(new $String(s));case 13:t=d[0].typeList(b[0].IndexListExpr.Indices);$s=16;case 16:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;if(u===MS.nil){$s=17;continue;}$s=18;continue;case 17:c.setUnderlying((0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]));i[0]=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);v=i[0];$s=19;case 19:return v;case 18:e[0]=d[0].bestContext(OZ.nil);w=e[0].instanceHash(o,u);$s=20;case 20:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;z=e[0].lookup(x,o,u);$s=21;case 21:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}y=$assertType(z,NI,true);f[0]=y[0];if(f[0]===NI.nil){$s=22;continue;}$s=23;continue;case 22:aa=b[0].IndexListExpr.Pos();$s=24;case 24:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=GA(aa,o.obj.object.pkg,o.obj.object.name,$ifaceNil);$s=25;case 25:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;f[0]=d[0].newNamed(ac,o,$ifaceNil,OX.nil,PA.nil);f[0].targs=CC(u);ad=e[0].update(x,o,u,f[0]);$s=26;case 26:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}f[0]=$assertType(ad,NI);case 23:c.setUnderlying(f[0]);f[0].resolver=(function(b,d,e,f,g,h,i){return function $b(ae,af){var{ae,af,ag,ah,ai,aj,ak,al,am,an,$s,$r,$c}=$restore(this,{ae,af});$s=$s||0;s:while(true){switch($s){case 0:ag=af.orig.TypeParams();$s=1;case 1:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag.list();$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;aj=af.targs.list();if(false&&aj.$lengthaj.$length){af.targs=CC(al);}case 4:am=GT(ae,af,g[0]);$s=6;case 6:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am;$s=7;case 7:return an;}return;}var $f={$blk:$b,$c:true,$r,ae,af,ag,ah,ai,aj,ak,al,am,an,$s};return $f;};})(b,d,e,f,g,h,i);d[0].later((function(b,d,e,f,g,h,i){return function $b(){var{ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:ae=f[0].resolve(e[0]);$s=1;case 1:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ae;f[0].resolver=$throwNilPointerError;d[0].recordInstance(b[0].Orig,f[0].TypeArgs().list(),f[0]);af=d[0].validateTArgLen(g[0],f[0].tparams.Len(),f[0].targs.Len());$s=4;case 4:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}if(af){$s=2;continue;}$s=3;continue;case 2:ah=d[0].verify(g[0],f[0].tparams.list(),f[0].targs.list());$s=5;case 5:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ag=ah;ai=ag[0];aj=ag[1];if(!($interfaceIsEqual(aj,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:ak=b[0].IndexListExpr.Pos();$s=9;case 9:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak;if(ai=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+ai])).Pos();$s=12;case 12:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}al=an;case 11:ao=new JS(((al>>0)));ap=aj.Error();$s=13;case 13:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap;$r=d[0].softErrorf(ao,139,aq,new NA([]));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 7:$r=d[0].mono.recordInstance(d[0].pkg,g[0],f[0].tparams.list(),f[0].targs.list(),b[0].IndexListExpr.Indices);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:case 3:$r=d[0].validType(f[0]);$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,$s};return $f;};})(b,d,e,f,g,h,i));i[0]=f[0];ae=i[0];$s=27;case 27:return ae;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return i[0];}if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.instantiatedType,$c:true,$r,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};KR.prototype.instantiatedType=function(b,c){return this.$val.instantiatedType(b,c);};KR.ptr.prototype.arrayLength=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;e=$assertType(b,OF,true);f=e[0];if(!(f===OF.nil)){$s=1;continue;}$s=2;continue;case 1:g=d.environment.lookup(f.Name);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if($interfaceIsEqual(h,$ifaceNil)){$s=4;continue;}$s=5;continue;case 4:$r=d.errorf(f,26,"undeclared name %s for array length",new NA([new $String(f.Name)]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return new $Int64(-1,4294967295);case 5:i=$assertType(h,OH,true);j=i[1];if(!j){$s=7;continue;}$s=8;continue;case 7:$r=d.errorf(f,26,"invalid array length %s",new NA([new $String(f.Name)]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return new $Int64(-1,4294967295);case 8:case 2:c[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=d.expr(c[0],b);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((c[0].mode===4))){$s=11;continue;}$s=12;continue;case 11:if(!((c[0].mode===0))){$s=13;continue;}$s=14;continue;case 13:$r=d.errorf(c[0],26,"array length %s must be constant",new NA([c[0]]));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:$s=-1;return new $Int64(-1,4294967295);case 12:if(EW(c[0].typ)){k=true;$s=18;continue s;}l=ED(c[0].typ);$s=19;case 19:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;case 18:if(k){$s=16;continue;}$s=17;continue;case 16:m=G.ToInt(c[0].val);$s=20;case 20:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=n.Kind();$s=23;case 23:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(o===3){$s=21;continue;}$s=22;continue;case 21:p=JF(n,d,(2>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+2]),PD.nil);$s=26;case 26:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}if(p){$s=24;continue;}$s=25;continue;case 24:r=G.Int64Val(n);$s=27;case 27:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;s=q[0];t=q[1];if(t&&(s.$high>0||(s.$high===0&&s.$low>=0))){$s=-1;return s;}$r=d.errorf(c[0],26,"invalid array length %s",new NA([c[0]]));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return new $Int64(-1,4294967295);case 25:case 22:case 17:$r=d.errorf(c[0],26,"array length %s must be integer",new NA([c[0]]));$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return new $Int64(-1,4294967295);}return;}var $f={$blk:KR.ptr.prototype.arrayLength,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};KR.prototype.arrayLength=function(b){return this.$val.arrayLength(b);};KR.ptr.prototype.typeList=function(b){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=$makeSlice(MS,b.$length);e=b;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);i=c.varType(h);$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if($interfaceIsEqual(j,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){d=MS.nil;}if(!(d===MS.nil)){((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]=j);}f++;$s=1;continue;case 2:$s=-1;return d;}return;}var $f={$blk:KR.ptr.prototype.typeList,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};KR.prototype.typeList=function(b){return this.$val.typeList(b);};BC.ptr.prototype.String=function(){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(b===MP.nil){$s=2;continue;}if($interfaceIsEqual(b.typ,$ifaceNil)){$s=3;continue;}if(b.tilde){$s=4;continue;}$s=5;continue;case 2:$s=-1;return"\xE2\x88\x85";case 3:$s=-1;return"\xF0\x9D\x93\xA4";case 4:c=b.typ.String();$s=7;case 7:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d="~"+c;$s=8;case 8:return d;case 5:e=b.typ.String();$s=9;case 9:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=10;case 10:return f;case 6:case 1:$s=-1;return"";}return;}var $f={$blk:BC.ptr.prototype.String,$c:true,$r,b,c,d,e,f,$s};return $f;};BC.prototype.String=function(){return this.$val.String();};BC.ptr.prototype.equal=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(c===MP.nil||b===MP.nil){$s=-1;return c===b;}else if($interfaceIsEqual(c.typ,$ifaceNil)||$interfaceIsEqual(b.typ,$ifaceNil)){$s=-1;return $interfaceIsEqual(c.typ,b.typ);}if(!(c.tilde===b.tilde)){d=false;$s=1;continue s;}e=MC(c.typ,b.typ);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;case 1:f=d;$s=3;case 3:return f;}return;}var $f={$blk:BC.ptr.prototype.equal,$c:true,$r,b,c,d,e,f,$s};return $f;};BC.prototype.equal=function(b){return this.$val.equal(b);};BC.ptr.prototype.union=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=MP.nil;d=MP.nil;e=this;if(e===MP.nil&&b===MP.nil){f=MP.nil;g=MP.nil;c=f;d=g;$s=-1;return[c,d];}else if(e===MP.nil){h=b;i=MP.nil;c=h;d=i;$s=-1;return[c,d];}else if(b===MP.nil){j=e;k=MP.nil;c=j;d=k;$s=-1;return[c,d];}else if($interfaceIsEqual(e.typ,$ifaceNil)){l=e;m=MP.nil;c=l;d=m;$s=-1;return[c,d];}else if($interfaceIsEqual(b.typ,$ifaceNil)){n=b;o=MP.nil;c=n;d=o;$s=-1;return[c,d];}p=e.disjoint(b);$s=3;case 3:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}if(p){$s=1;continue;}$s=2;continue;case 1:q=e;r=b;c=q;d=r;$s=-1;return[c,d];case 2:if(e.tilde||!b.tilde){s=e;t=MP.nil;c=s;d=t;$s=-1;return[c,d];}u=b;v=MP.nil;c=u;d=v;$s=-1;return[c,d];}return;}var $f={$blk:BC.ptr.prototype.union,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};BC.prototype.union=function(b){return this.$val.union(b);};BC.ptr.prototype.intersect=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(c===MP.nil||b===MP.nil){$s=-1;return MP.nil;}else if($interfaceIsEqual(c.typ,$ifaceNil)){$s=-1;return b;}else if($interfaceIsEqual(b.typ,$ifaceNil)){$s=-1;return c;}d=c.disjoint(b);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(d){$s=1;continue;}$s=2;continue;case 1:$s=-1;return MP.nil;case 2:if(!c.tilde||b.tilde){$s=-1;return c;}$s=-1;return b;}return;}var $f={$blk:BC.ptr.prototype.intersect,$c:true,$r,b,c,d,$s};return $f;};BC.prototype.intersect=function(b){return this.$val.intersect(b);};BC.ptr.prototype.includes=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(c===MP.nil){$s=-1;return false;}else if($interfaceIsEqual(c.typ,$ifaceNil)){$s=-1;return true;}d=b;if(c.tilde){$s=1;continue;}$s=2;continue;case 1:e=CF(d);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;case 2:f=MC(c.typ,d);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=5;case 5:return g;}return;}var $f={$blk:BC.ptr.prototype.includes,$c:true,$r,b,c,d,e,f,g,$s};return $f;};BC.prototype.includes=function(b){return this.$val.includes(b);};BC.ptr.prototype.subsetOf=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(c===MP.nil){$s=-1;return true;}else if(b===MP.nil){$s=-1;return false;}else if($interfaceIsEqual(b.typ,$ifaceNil)){$s=-1;return true;}else if($interfaceIsEqual(c.typ,$ifaceNil)){$s=-1;return false;}d=c.disjoint(b);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(d){$s=1;continue;}$s=2;continue;case 1:$s=-1;return false;case 2:$s=-1;return!c.tilde||b.tilde;}return;}var $f={$blk:BC.ptr.prototype.subsetOf,$c:true,$r,b,c,d,$s};return $f;};BC.prototype.subsetOf=function(b){return this.$val.subsetOf(b);};BC.ptr.prototype.disjoint=function(b){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(false&&($interfaceIsEqual(c.typ,$ifaceNil)||$interfaceIsEqual(b.typ,$ifaceNil))){$panic(new $String("invalid argument(s)"));}d=c.typ;if(b.tilde){$s=1;continue;}$s=2;continue;case 1:e=CF(d);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;case 2:f=b.typ;if(c.tilde){$s=4;continue;}$s=5;continue;case 4:g=CF(f);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;case 5:h=MC(d,f);$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=!h;$s=8;case 8:return i;}return;}var $f={$blk:BC.ptr.prototype.disjoint,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};BC.prototype.disjoint=function(b){return this.$val.disjoint(b);};BE=function(b){var b;if(b===MF.nil){return $throwNilPointerError;}return(function(c){var c;if(b===c){return"";}return c.Path();});};$pkg.RelativeTo=BE;BF=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=BG(b,c,false);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:BF,$c:true,$r,b,c,d,e,$s};return $f;};$pkg.TypeString=BF;BG=function(b,c,d){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=[e];e[0]=new H.Buffer.ptr(NZ.nil,0,0);f=BK(e[0],c);f.debug=d;$r=f.typ(b);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return e[0].String();}return;}var $f={$blk:BG,$c:true,$r,b,c,d,e,f,$s};return $f;};BH=function(b,c,d){var{b,c,d,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:$r=BK(b,d).typ(c);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BH,$c:true,$r,b,c,d,$s};return $f;};$pkg.WriteType=BH;BI=function(b,c,d){var{b,c,d,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:$r=BK(b,d).signature(c);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BI,$c:true,$r,b,c,d,$s};return $f;};$pkg.WriteSignature=BI;BK=function(b,c){var b,c;return new BJ.ptr(b,new $global.Map(),c,OZ.nil,OX.nil,false);};BL=function(b,c){var b,c;JM(!(c===OZ.nil));return new BJ.ptr(b,new $global.Map(),$throwNilPointerError,c,OX.nil,false);};BJ.ptr.prototype.byte$=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!(c.ctxt===OZ.nil)){$s=1;continue;}$s=2;continue;case 1:if(b===32){b=35;}d=c.buf.WriteByte(b);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;$s=-1;return;case 2:e=c.buf.WriteByte(b);$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;if((b===44)||(b===59)){$s=5;continue;}$s=6;continue;case 5:f=c.buf.WriteByte(32);$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;case 6:$s=-1;return;}return;}var $f={$blk:BJ.ptr.prototype.byte$,$c:true,$r,b,c,d,e,f,$s};return $f;};BJ.prototype.byte$=function(b){return this.$val.byte$(b);};BJ.ptr.prototype.string=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.buf.WriteString(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;$s=-1;return;}return;}var $f={$blk:BJ.ptr.prototype.string,$c:true,$r,b,c,d,$s};return $f;};BJ.prototype.string=function(b){return this.$val.string(b);};BJ.ptr.prototype.error=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!(c.ctxt===OZ.nil)){$panic(new $String(b));}d=c.buf.WriteString("<"+b+">");$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;$s=-1;return;}return;}var $f={$blk:BJ.ptr.prototype.error,$c:true,$r,b,c,d,$s};return $f;};BJ.prototype.error=function(b){return this.$val.error(b);};BJ.ptr.prototype.typ=function(b){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=this;if((d=$mapIndex(c.seen,CE.keyFor(b)),d!==undefined?d.v:false)){$s=1;continue;}$s=2;continue;case 1:e=BB(b);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$r=c.error("cycle to "+e);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;case 5:return;case 2:f=b;(c.seen||$throwRuntimeError("assignment to entry in nil map")).set(CE.keyFor(f),{k:f,v:true});$deferred.push([function(g,h){$mapDelete(g,CE.keyFor(h));},[c.seen,b]]);i=b;if(i===$ifaceNil){$s=6;continue;}if($assertType(i,MY,true)[1]){$s=7;continue;}if($assertType(i,NE,true)[1]){$s=8;continue;}if($assertType(i,OA,true)[1]){$s=9;continue;}if($assertType(i,NF,true)[1]){$s=10;continue;}if($assertType(i,OB,true)[1]){$s=11;continue;}if($assertType(i,NM,true)[1]){$s=12;continue;}if($assertType(i,OC,true)[1]){$s=13;continue;}if($assertType(i,NG,true)[1]){$s=14;continue;}if($assertType(i,NH,true)[1]){$s=15;continue;}if($assertType(i,OD,true)[1]){$s=16;continue;}if($assertType(i,OE,true)[1]){$s=17;continue;}if($assertType(i,NI,true)[1]){$s=18;continue;}if($assertType(i,NJ,true)[1]){$s=19;continue;}$s=20;continue;case 6:j=i;$r=c.error("nil");$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 7:k=i.$val;if(C.IsExported(k.name)){$s=23;continue;}$s=24;continue;case 23:z=$pkg.Unsafe.scope.Lookup(k.name);$s=25;case 25:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}y=$assertType(z,MR,true);aa=y[0];if(!(aa===MR.nil)){$s=26;continue;}$s=27;continue;case 26:$r=c.typeName(aa);$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 27:case 24:$r=c.string(k.name);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 8:l=i.$val;$r=c.byte$(91);$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.string(E.FormatInt(l.len,10));$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.byte$(93);$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.typ(l.elem);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 9:m=i.$val;$r=c.string("[]");$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.typ(m.elem);$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 10:n=i.$val;$r=c.string("struct{");$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ab=n.fields;ac=0;case 37:if(!(ac=ab.$length)?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+ac]);if(ad>0){$s=39;continue;}$s=40;continue;case 39:$r=c.byte$(59);$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 40:if(!ae.embedded){$s=42;continue;}$s=43;continue;case 42:$r=c.string(ae.object.name);$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.byte$(32);$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 43:$r=c.typ(ae.object.typ);$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}af=n.Tag(ad);if(!(af==="")){$s=47;continue;}$s=48;continue;case 47:$r=c.byte$(32);$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.string(E.Quote(af));$s=50;case 50:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 48:ac++;$s=37;continue;case 38:$r=c.byte$(125);$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 11:o=i.$val;$r=c.byte$(42);$s=52;case 52:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.typ(o.base);$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 12:p=i.$val;$r=c.tuple(p,false);$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 13:q=i.$val;$r=c.string("func");$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.signature(q);$s=56;case 56:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 14:r=i.$val;if(r.Len()===0){$s=57;continue;}$s=58;continue;case 57:$r=c.error("empty union");$s=59;case 59:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 58:ag=r.terms;ah=0;case 60:if(!(ah=ag.$length)?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+ah]);if(ai>0){$s=62;continue;}$s=63;continue;case 62:$r=c.byte$(124);$s=64;case 64:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 63:if(aj.tilde){$s=65;continue;}$s=66;continue;case 65:$r=c.byte$(126);$s=67;case 67:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 66:$r=c.typ(aj.typ);$s=68;case 68:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ah++;$s=60;continue;case 61:$s=21;continue;case 15:s=i.$val;if(c.ctxt===OZ.nil){$s=69;continue;}$s=70;continue;case 69:ak=AB.Type();$s=73;case 73:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}if($interfaceIsEqual(s,ak)){$s=71;continue;}$s=72;continue;case 71:$r=c.string("any");$s=74;case 74:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 72:al=AD.Type();$s=77;case 77:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}if($interfaceIsEqual(s,$assertType(al,NI).underlying)){$s=75;continue;}$s=76;continue;case 75:$r=c.string("interface{comparable}");$s=78;case 78:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 76:case 70:if(s.implicit){$s=79;continue;}$s=80;continue;case 79:if((s.methods.$length===0)&&(s.embeddeds.$length===1)){$s=81;continue;}$s=82;continue;case 81:$r=c.typ((am=s.embeddeds,(0>=am.$length?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+0])));$s=83;case 83:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 82:$r=c.string("/* implicit */ ");$s=84;case 84:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 80:$r=c.string("interface{");$s=85;case 85:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}an=true;if(!(c.ctxt===OZ.nil)){$s=86;continue;}$s=87;continue;case 86:ao=s.typeSet();$s=89;case 89:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$r=c.typeSet(ao);$s=90;case 90:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=88;continue;case 87:ap=s.methods;aq=0;case 91:if(!(aq=ap.$length)?($throwRuntimeError("index out of range"),undefined):ap.$array[ap.$offset+aq]);if(!an){$s=93;continue;}$s=94;continue;case 93:$r=c.byte$(59);$s=95;case 95:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 94:an=false;$r=c.string(ar.object.name);$s=96;case 96:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.signature($assertType(ar.object.typ,OC));$s=97;case 97:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aq++;$s=91;continue;case 92:as=s.embeddeds;at=0;case 98:if(!(at=as.$length)?($throwRuntimeError("index out of range"),undefined):as.$array[as.$offset+at]);if(!an){$s=100;continue;}$s=101;continue;case 100:$r=c.byte$(59);$s=102;case 102:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 101:an=false;$r=c.typ(au);$s=103;case 103:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}at++;$s=98;continue;case 99:case 88:$r=c.byte$(125);$s=104;case 104:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 16:t=i.$val;$r=c.string("map[");$s=105;case 105:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.typ(t.key);$s=106;case 106:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.byte$(93);$s=107;case 107:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.typ(t.elem);$s=108;case 108:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 17:u=i.$val;av="";aw=false;ax=u.dir;if(ax===(0)){$s=110;continue;}if(ax===(1)){$s=111;continue;}if(ax===(2)){$s=112;continue;}$s=113;continue;case 110:av="chan ";ay=$assertType(u.elem,OE,true);az=ay[0];if(!(az===OE.nil)&&(az.dir===2)){aw=true;}$s=114;continue;case 111:av="chan<- ";$s=114;continue;case 112:av="<-chan ";$s=114;continue;case 113:$r=c.error("unknown channel direction");$s=115;case 115:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 114:case 109:$r=c.string(av);$s=116;case 116:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(aw){$s=117;continue;}$s=118;continue;case 117:$r=c.byte$(40);$s=119;case 119:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 118:$r=c.typ(u.elem);$s=120;case 120:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(aw){$s=121;continue;}$s=122;continue;case 121:$r=c.byte$(41);$s=123;case 123:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 122:$s=21;continue;case 18:v=i.$val;if(!(c.ctxt===OZ.nil)){$s=124;continue;}$s=125;continue;case 124:ba=c.ctxt.getID(v);$s=126;case 126:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=E.Itoa(ba);$s=127;case 127:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}$r=c.string(bb);$s=128;case 128:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 125:$r=c.typeName(v.obj);$s=129;case 129:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(v.targs===NK.nil)){$s=130;continue;}if(!(c.ctxt===OZ.nil)){bc=false;$s=133;continue s;}bd=v.TypeParams();$s=134;case 134:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=bd.Len();$s=135;case 135:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bc=!((be===0));case 133:if(bc){$s=131;continue;}$s=132;continue;case 130:$r=c.typeList(v.targs.list());$s=136;case 136:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=132;continue;case 131:bf=v.TypeParams();$s=137;case 137:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bg=bf.list();$s=138;case 138:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}$r=c.tParamList(bg);$s=139;case 139:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 132:$s=21;continue;case 19:w=i.$val;if(w.obj===MR.nil){$s=140;continue;}$s=141;continue;case 140:$r=c.error("unnamed type parameter");$s=142;case 142:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 141:bh=BA(c.tparams.list(),w);if(bh>=0){$s=143;continue;}$s=144;continue;case 143:bi=A.Sprintf("$%d",new NA([new $Int(bh)]));$s=146;case 146:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}$r=c.string(bi);$s=147;case 147:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=145;continue;case 144:$r=c.string(w.obj.object.name);$s=148;case 148:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c.debug||!(c.ctxt===OZ.nil)){$s=149;continue;}$s=150;continue;case 149:$r=c.string(BM(w.id));$s=151;case 151:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 150:case 145:$s=21;continue;case 20:x=i;bj=x.String();$s=152;case 152:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}$r=c.string(bj);$s=153;case 153:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 21:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:BJ.ptr.prototype.typ,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};BJ.prototype.typ=function(b){return this.$val.typ(b);};BJ.ptr.prototype.typeSet=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;JM(!(c.ctxt===OZ.nil));d=true;e=b.methods;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(!d){$s=3;continue;}$s=4;continue;case 3:$r=c.byte$(59);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:d=false;$r=c.string(g.object.name);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.signature($assertType(g.object.typ,OC));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f++;$s=1;continue;case 2:if(b.terms.isAll()){$s=9;continue;}if(b.terms.isEmpty()){$s=10;continue;}$s=11;continue;case 9:$s=12;continue;case 10:h=b.terms.String();$s=13;case 13:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=c.string(h);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=12;continue;case 11:i=NB.nil;j=b.terms;k=0;case 15:if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);l[0]=new H.Buffer.ptr(NZ.nil,0,0);if(m.tilde){$s=17;continue;}$s=18;continue;case 17:n=l[0].WriteByte(126);$s=19;case 19:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;case 18:$r=BL(l[0],c.ctxt).typ(m.typ);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=$append(i,l[0].String());k++;$s=15;continue;case 16:$r=J.Strings(i);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!d){$s=22;continue;}$s=23;continue;case 22:$r=c.byte$(59);$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 23:$r=c.string(F.Join(i,"|"));$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:case 8:$s=-1;return;}return;}var $f={$blk:BJ.ptr.prototype.typeSet,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};BJ.prototype.typeSet=function(b){return this.$val.typeSet(b);};BJ.ptr.prototype.typeList=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;$r=c.byte$(91);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=b;e=0;case 2:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(f>0){$s=4;continue;}$s=5;continue;case 4:$r=c.byte$(44);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:$r=c.typ(g);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e++;$s=2;continue;case 3:$r=c.byte$(93);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BJ.ptr.prototype.typeList,$c:true,$r,b,c,d,e,f,g,$s};return $f;};BJ.prototype.typeList=function(b){return this.$val.typeList(b);};BJ.ptr.prototype.tParamList=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;$r=c.byte$(91);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=$ifaceNil;e=b;f=0;case 2:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(h===NJ.nil){$s=4;continue;}$s=5;continue;case 4:$r=c.error("nil type parameter");$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f++;$s=2;continue;case 5:if(g>0){$s=7;continue;}$s=8;continue;case 7:if(!($interfaceIsEqual(h.bound,d))){$s=9;continue;}$s=10;continue;case 9:$r=c.byte$(32);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.typ(d);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:$r=c.byte$(44);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:d=h.bound;$r=c.typ(h);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f++;$s=2;continue;case 3:if(!($interfaceIsEqual(d,$ifaceNil))){$s=15;continue;}$s=16;continue;case 15:$r=c.byte$(32);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.typ(d);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 16:$r=c.byte$(93);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BJ.ptr.prototype.tParamList,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};BJ.prototype.tParamList=function(b){return this.$val.tParamList(b);};BJ.ptr.prototype.typeName=function(b){var{b,c,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!(b.object.pkg===MF.nil)){$s=1;continue;}$s=2;continue;case 1:$r=GO(c.buf,b.object.pkg,c.qf);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$r=c.string(b.object.name);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BJ.ptr.prototype.typeName,$c:true,$r,b,c,$s};return $f;};BJ.prototype.typeName=function(b){return this.$val.typeName(b);};BJ.ptr.prototype.tuple=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;$r=d.byte$(40);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(b===NM.nil)){$s=2;continue;}$s=3;continue;case 2:e=b.vars;f=0;case 4:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(g>0){$s=6;continue;}$s=7;continue;case 6:$r=d.byte$(44);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:if(d.ctxt===OZ.nil&&!(h.object.name==="")){$s=9;continue;}$s=10;continue;case 9:$r=d.string(h.object.name);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.byte$(32);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:i=h.object.typ;if(c&&(g===(b.vars.$length-1>>0))){$s=13;continue;}$s=14;continue;case 13:j=$assertType(i,OA,true);k=j[0];l=j[1];if(l){$s=15;continue;}$s=16;continue;case 15:$r=d.string("...");$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=k.elem;$s=17;continue;case 16:n=CF(i);$s=19;case 19:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=$assertType(n,MY,true);o=m[0];if(o===MY.nil||!((o.kind===17))){$s=20;continue;}$s=21;continue;case 20:$r=d.error("expected string type");$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f++;$s=4;continue;case 21:$r=d.typ(i);$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.string("...");$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f++;$s=4;continue;case 17:case 14:$r=d.typ(i);$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f++;$s=4;continue;case 5:case 3:$r=d.byte$(41);$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BJ.ptr.prototype.tuple,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};BJ.prototype.tuple=function(b,c){return this.$val.tuple(b,c);};BJ.ptr.prototype.signature=function(b){var{b,c,d,e,f,$s,$deferred,$r,$c}=$restore(this,{b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];c[0]=this;if(!((b.TypeParams().Len()===0))){$s=1;continue;}$s=2;continue;case 1:if(!(c[0].ctxt===OZ.nil)){$s=3;continue;}$s=4;continue;case 3:JM(c[0].tparams===OX.nil);c[0].tparams=b.TypeParams();$deferred.push([(function(c){return function(){c[0].tparams=OX.nil;};})(c),[]]);case 4:$r=c[0].tParamList(b.TypeParams().list());$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$r=c[0].tuple(b.params,b.variadic);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=b.results.Len();if(d===0){$s=7;continue;}$s=8;continue;case 7:$s=9;case 9:return;case 8:$r=c[0].byte$(32);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if((d===1)&&(!(c[0].ctxt===OZ.nil)||(e=b.results.vars,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])).object.name==="")){$s=11;continue;}$s=12;continue;case 11:$r=c[0].typ((f=b.results.vars,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0])).object.typ);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;case 14:return;case 12:$r=c[0].tuple(b.results,false);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:BJ.ptr.prototype.signature,$c:true,$r,b,c,d,e,f,$s,$deferred};return $f;}}};BJ.prototype.signature=function(b){return this.$val.signature(b);};BM=function(b){var b,c,d;c=PE.zero();d=96;while(true){d=d-(3)>>0;K.EncodeRune($subslice(new NZ(c),d),8320+(($div64(b,new $Uint64(0,10),true).$low>>0))>>0);b=$div64(b,(new $Uint64(0,10)),false);if((b.$high===0&&b.$low===0)){break;}}return($bytesToString($subslice(new NZ(c),d)));};BN.ptr.prototype.IsEmpty=function(){var b;b=this;return b.terms.isEmpty();};BN.prototype.IsEmpty=function(){return this.$val.IsEmpty();};BN.ptr.prototype.IsAll=function(){var b;b=this;return b.IsMethodSet()&&(b.methods.$length===0);};BN.prototype.IsAll=function(){return this.$val.IsAll();};BN.ptr.prototype.IsMethodSet=function(){var b;b=this;return!b.comparable&&b.terms.isAll();};BN.prototype.IsMethodSet=function(){return this.$val.IsMethodSet();};BN.ptr.prototype.IsComparable=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=this;if(c.terms.isAll()){$s=-1;return c.comparable;}d=c.is((function(b){return function $b(d){var{d,e,f,g,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:if(!(!(d===MP.nil))){e=false;$s=1;continue s;}f=FB(d.typ,false,b[0],$throwNilPointerError);$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;case 1:g=e;$s=3;case 3:return g;}return;}var $f={$blk:$b,$c:true,$r,d,e,f,g,$s};return $f;};})(b));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:BN.ptr.prototype.IsComparable,$c:true,$r,b,c,d,e,$s};return $f;};BN.prototype.IsComparable=function(b){return this.$val.IsComparable(b);};BN.ptr.prototype.NumMethods=function(){var b;b=this;return b.methods.$length;};BN.prototype.NumMethods=function(){return this.$val.NumMethods();};BN.ptr.prototype.Method=function(b){var b,c,d;c=this;return(d=c.methods,((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));};BN.prototype.Method=function(b){return this.$val.Method(b);};BN.ptr.prototype.LookupMethod=function(b,c,d){var b,c,d,e;e=this;return HT(e.methods,b,c,d);};BN.prototype.LookupMethod=function(b,c,d){return this.$val.LookupMethod(b,c,d);};BN.ptr.prototype.String=function(){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(b.IsEmpty()){$s=-1;return"\xE2\x88\x85";}else if(b.IsAll()){$s=-1;return"\xF0\x9D\x93\xA4";}c=b.methods.$length>0;d=b.hasTerms();e=new H.Buffer.ptr(NZ.nil,0,0);f=e.WriteByte(123);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;if(b.comparable){$s=2;continue;}$s=3;continue;case 2:g=e.WriteString("comparable");$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;if(c||d){$s=5;continue;}$s=6;continue;case 5:h=e.WriteString("; ");$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 6:case 3:i=b.methods;j=0;case 8:if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);if(k>0){$s=10;continue;}$s=11;continue;case 10:m=e.WriteString("; ");$s=12;case 12:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;case 11:n=l.String();$s=13;case 13:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=e.WriteString(n);$s=14;case 14:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;j++;$s=8;continue;case 9:if(c&&d){$s=15;continue;}$s=16;continue;case 15:p=e.WriteString("; ");$s=17;case 17:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;case 16:if(d){$s=18;continue;}$s=19;continue;case 18:q=b.terms.String();$s=20;case 20:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=e.WriteString(q);$s=21;case 21:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;case 19:s=e.WriteString("}");$s=22;case 22:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;$s=-1;return e.String();}return;}var $f={$blk:BN.ptr.prototype.String,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};BN.prototype.String=function(){return this.$val.String();};BN.ptr.prototype.hasTerms=function(){var b;b=this;return!b.terms.isEmpty()&&!b.terms.isAll();};BN.prototype.hasTerms=function(){return this.$val.hasTerms();};BN.ptr.prototype.subsetOf=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.terms.subsetOf(b.terms);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:BN.ptr.prototype.subsetOf,$c:true,$r,b,c,d,e,$s};return $f;};BN.prototype.subsetOf=function(b){return this.$val.subsetOf(b);};BN.ptr.prototype.is=function(b){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!c.hasTerms()){$s=1;continue;}$s=2;continue;case 1:d=b(MP.nil);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=4;case 4:return e;case 2:f=c.terms;g=0;case 5:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);JM(!($interfaceIsEqual(h.typ,$ifaceNil)));i=b(h);$s=9;case 9:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(!i){$s=7;continue;}$s=8;continue;case 7:$s=-1;return false;case 8:g++;$s=5;continue;case 6:$s=-1;return true;}return;}var $f={$blk:BN.ptr.prototype.is,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};BN.prototype.is=function(b){return this.$val.is(b);};BN.ptr.prototype.underIs=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!c.hasTerms()){$s=1;continue;}$s=2;continue;case 1:d=b($ifaceNil);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=4;case 4:return e;case 2:f=c.terms;g=0;case 5:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);JM(!($interfaceIsEqual(h.typ,$ifaceNil)));i=h.typ;if(!h.tilde){$s=7;continue;}$s=8;continue;case 7:j=CF(i);$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;case 8:if(false){$s=10;continue;}$s=11;continue;case 10:k=i;l=CF(i);$s=12;case 12:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=MC(k,m);$s=13;case 13:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$r=JM(n);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:o=b(i);$s=17;case 17:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(!o){$s=15;continue;}$s=16;continue;case 15:$s=-1;return false;case 16:g++;$s=5;continue;case 6:$s=-1;return true;}return;}var $f={$blk:BN.ptr.prototype.underIs,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};BN.prototype.underIs=function(b){return this.$val.underIs(b);};BP=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];d=[d];e=[e];f=[f];g=[g];h=[h];if(!(d[0].tset===MV.nil)){$s=1;continue;}$s=2;continue;case 1:i=d[0].tset;$s=3;case 3:return i;case 2:if(!d[0].complete){$s=4;continue;}$s=5;continue;case 4:j=BO;$s=6;case 6:return j;case 5:if(!(b[0]===MQ.nil)&&false){$s=7;continue;}$s=8;continue;case 7:if(!new C.Pos(c[0]).IsValid()&&d[0].methods.$length>0){c[0]=(k=d[0].methods,(0>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0])).object.pos;}$r=b[0].trace(c[0],"type set for %s",new NA([d[0]]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b[0].indent=b[0].indent+(1)>>0;$deferred.push([(function(b,c,d,e,f,g,h){return function $b(){var{l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b[0].indent=b[0].indent-(1)>>0;l=c[0];m=d[0].typeSet();$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$r=b[0].trace(l,"=> %s ",new NA([n]));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,l,m,n,$s};return $f;};})(b,c,d,e,f,g,h),[]]);case 8:d[0].tset=new BN.ptr(MJ.nil,CM,false);l=false;if(!(b[0]===MQ.nil)){if(b[0].unionTypeSets===false){b[0].unionTypeSets=new $global.Map();}l=b[0].unionTypeSets;}else{l=new $global.Map();}h[0]=MJ.nil;g[0]=false;e[0]=MJ.nil;f[0]=new $global.Map();m=(function(b,c,d,e,f,g,h){return function $b(m,n,o){var{m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{m,n,o});$s=$s||0;s:while(true){switch($s){case 0:m=[m];n=[n];p=[p];q=(g.$ptr||(g.$ptr=new PF(function(){return this.$target[0];},function($v){this.$target[0]=$v;},g))).insert(n[0]);$s=2;case 2:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p[0]=q;if($interfaceIsEqual(p[0],$ifaceNil)){$s=3;continue;}if(o){$s=4;continue;}$s=5;continue;case 3:e[0]=$append(e[0],n[0]);r=n[0];(f[0]||$throwRuntimeError("assignment to entry in nil map")).set(MI.keyFor(r),{k:r,v:m[0]});$s=6;continue;case 4:if(b[0]===MQ.nil){$s=7;continue;}$s=8;continue;case 7:s=A.Sprintf("%v: duplicate method %s",new NA([new C.Pos(n[0].object.pos),new $String(n[0].object.name)]));$s=9;case 9:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}$panic(new $String(s));case 8:$r=b[0].errorf(new JS(((m[0]>>0))),10,"duplicate method %s",new NA([new $String(n[0].object.name)]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b[0].errorf(new JS((((t=$mapIndex(f[0],MI.keyFor($assertType(p[0],MI))),t!==undefined?t.v:0)>>0))),10,"\tother declaration of %s",new NA([new $String(n[0].object.name)]));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=6;continue;case 5:if(b[0]===MQ.nil){h[0]=$append(h[0],n[0],$assertType(p[0],MI));$s=1;continue;}b[0].later((function(b,c,d,e,f,g,h,m,n,p){return function $b(){var{u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:if(!b[0].allowVersion(n[0].object.pkg,1,14)){u=true;$s=3;continue s;}v=n[0].object.typ;w=p[0].Type();$s=4;case 4:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;y=MC(v,x);$s=5;case 5:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}u=!y;case 3:if(u){$s=1;continue;}$s=2;continue;case 1:$r=b[0].errorf(new JS(((m[0]>>0))),10,"duplicate method %s",new NA([new $String(n[0].object.name)]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b[0].errorf(new JS((((z=$mapIndex(f[0],MI.keyFor($assertType(p[0],MI))),z!==undefined?z.v:0)>>0))),10,"\tother declaration of %s",new NA([new $String(n[0].object.name)]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,u,v,w,x,y,z,$s};return $f;};})(b,c,d,e,f,g,h,m,n,p));case 6:case 1:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,m,n,o,p,q,r,s,t,$s};return $f;};})(b,c,d,e,f,g,h);n=d[0].methods;o=0;case 10:if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]);$r=m(p.object.pos,p,true);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}o++;$s=10;continue;case 11:q=CM;r=false;s=d[0].embeddeds;t=0;case 13:if(!(t=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]);w=0;if(!(d[0].embedPos===MU.nil)){w=(x=d[0].embedPos.$get(),((u<0||u>=x.$length)?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+u]));}y=false;z=CL.nil;ab=CF(v);$s=15;case 15:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;if($assertType(aa,NH,true)[1]){$s=16;continue;}if($assertType(aa,NG,true)[1]){$s=17;continue;}$s=18;continue;case 16:ac=aa.$val;JM(!EY(v));af=BP(b[0],w,ac);$s=20;case 20:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;if(!(!(b[0]===MQ.nil))){ah=false;$s=23;continue s;}ai=b[0].isImportedConstraint(v);$s=24;case 24:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ah=ai;case 23:if(ah&&!b[0].allowVersion(b[0].pkg,1,18)){$s=21;continue;}$s=22;continue;case 21:$r=b[0].errorf(new JS(((w>>0))),135,"embedding constraint interface %s requires go1.18 or later",new NA([v]));$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}t++;$s=13;continue;case 22:y=ag.comparable;aj=ag.methods;ak=0;case 26:if(!(ak=aj.$length)?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+ak]);$r=m(w,al,false);$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ak++;$s=26;continue;case 27:z=ag.terms;$s=19;continue;case 17:ad=aa.$val;if(!(b[0]===MQ.nil)&&!b[0].allowVersion(b[0].pkg,1,18)){$s=29;continue;}$s=30;continue;case 29:$r=b[0].errorf(new JS(((w>>0))),29,"embedding interface element %s requires go1.18 or later",new NA([ad]));$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}t++;$s=13;continue;case 30:am=BV(b[0],l,w,ad);$s=32;case 32:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am;if(an===BU){t++;$s=13;continue;}JM(!an.comparable);JM(an.methods.$length===0);z=an.terms;$s=19;continue;case 18:ae=aa;if($interfaceIsEqual(ae,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){t++;$s=13;continue;}if(!(b[0]===MQ.nil)&&!b[0].allowVersion(b[0].pkg,1,18)){$s=33;continue;}$s=34;continue;case 33:$r=b[0].errorf(new JS(((w>>0))),29,"embedding non-interface type %s requires go1.18 or later",new NA([v]));$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}t++;$s=13;continue;case 34:z=new CL([new BC.ptr(false,v)]);case 19:ap=BQ(q,r,z,y);$s=36;case 36:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ao=ap;q=ao[0];r=ao[1];t++;$s=13;continue;case 14:d[0].embedPos=MU.nil;aq=0;case 37:if(!(aq=h[0].$length)?($throwRuntimeError("index out of range"),undefined):h[0].$array[h[0].$offset+aq]);at=(as=aq+1>>0,((as<0||as>=h[0].$length)?($throwRuntimeError("index out of range"),undefined):h[0].$array[h[0].$offset+as]));au=MC(ar.object.typ,at.object.typ);$s=41;case 41:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}if(!au){$s=39;continue;}$s=40;continue;case 39:av=A.Sprintf("%v: duplicate method %s",new NA([new C.Pos(ar.object.pos),new $String(ar.object.name)]));$s=42;case 42:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}$panic(new $String(av));case 40:aq=aq+(2)>>0;$s=37;continue;case 38:d[0].tset.comparable=r;if(!((e[0].$length===0))){$s=43;continue;}$s=44;continue;case 43:$r=BR(e[0]);$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d[0].tset.methods=e[0];case 44:d[0].tset.terms=q;aw=d[0].tset;$s=46;case 46:return aw;}return;}}catch(err){$err=err;$s=-1;return MV.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:BP,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};BQ=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=b.intersect(d);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=c||e;if(h&&!g.isAll()){$s=2;continue;}$s=3;continue;case 2:i=0;j=g;k=0;case 4:if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);JM(!($interfaceIsEqual(l.typ,$ifaceNil)));m=FA(l.typ);$s=8;case 8:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if(m){$s=6;continue;}$s=7;continue;case 6:((i<0||i>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+i]=l);i=i+(1)>>0;case 7:k++;$s=4;continue;case 5:g=$subslice(g,0,i);if(!g.isAll()){h=false;}case 3:JM(!h||g.isAll());$s=-1;return[g,h];}return;}var $f={$blk:BQ,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BR=function(b){var{b,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:$r=J.Sort(($convertSliceType(b,BT)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BR,$c:true,$r,b,$s};return $f;};BS=function(b){var{b,c,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:if(true){$panic(new $String("assertSortedMethods called outside debug mode"));}c=J.IsSorted(($convertSliceType(b,BT)));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}if(!c){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("methods not sorted"));case 2:$s=-1;return;}return;}var $f={$blk:BS,$c:true,$r,b,c,$s};return $f;};BT.prototype.Len=function(){var b;b=this;return b.$length;};$ptrType(BT).prototype.Len=function(){return this.$get().Len();};BT.prototype.Less=function(b,c){var b,c,d;d=this;return((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]).object.Id()<((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]).object.Id();};$ptrType(BT).prototype.Less=function(b,c){return this.$get().Less(b,c);};BT.prototype.Swap=function(b,c){var b,c,d,e,f;d=this;e=((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]);f=((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]);((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]=e);((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]=f);};$ptrType(BT).prototype.Swap=function(b,c){return this.$get().Swap(b,c);};BV=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=(g=$mapIndex(c,NG.keyFor(e)),g!==undefined?[g.v,true]:[MV.nil,false]);h=f[0];if(!(h===MV.nil)){$s=-1;return h;}i=e;(c||$throwRuntimeError("assignment to entry in nil map")).set(NG.keyFor(i),{k:i,v:new BN.ptr(MJ.nil,CL.nil,false)});j=CL.nil;k=e.terms;l=0;case 1:if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);n=CL.nil;o=CF(m.typ);$s=3;case 3:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=$assertType(p,NH,true);r=q[0];if(!(r===NH.nil)){$s=4;continue;}if($interfaceIsEqual(p,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=5;continue;}$s=6;continue;case 4:JM(!EY(m.typ));s=BP(b,d,r);$s=8;case 8:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}n=s.terms;$s=7;continue;case 5:l++;$s=1;continue;$s=7;continue;case 6:if(!(m.tilde)){t=false;$s=11;continue s;}u=MC(m.typ,p);$s=12;case 12:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=!u;case 11:if(t){$s=9;continue;}$s=10;continue;case 9:m=NR.nil;case 10:n=new CL([($pointerOfStructConversion(m,MP))]);case 7:v=j.union(n);$s=13;case 13:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}j=v;if(j.$length>100){$s=14;continue;}$s=15;continue;case 14:if(!(b===MQ.nil)){$s=16;continue;}$s=17;continue;case 16:$r=b.errorf(new JS(((d>>0))),141,"cannot handle more than %d union terms (implementation limitation)",new NA([new $Int(100)]));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:w=e;(c||$throwRuntimeError("assignment to entry in nil map")).set(NG.keyFor(w),{k:w,v:BU});$s=-1;return(x=$mapIndex(c,NG.keyFor(e)),x!==undefined?x.v:MV.nil);case 15:l++;$s=1;continue;case 2:(y=$mapIndex(c,NG.keyFor(e)),y!==undefined?y.v:MV.nil).terms=j;$s=-1;return(z=$mapIndex(c,NG.keyFor(e)),z!==undefined?z.v:MV.nil);}return;}var $f={$blk:BV,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BX=function(){return(new $Uint64(0,L.AddUint32((MK||(MK=new PG(function(){return BW;},function($v){BW=$v;}))),1)));};BZ=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=(MQ.nil).newTypeParam(b,c);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:BZ,$c:true,$r,b,c,d,e,$s};return $f;};$pkg.NewTypeParam=BZ;KR.ptr.prototype.newTypeParam=function(b,c){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=BX();if(!(d===MQ.nil)){d.nextID=(f=d.nextID,g=new $Uint64(0,1),new $Uint64(f.$high+g.$high,f.$low+g.$low));e=d.nextID;}h=new BY.ptr(d,e,b,-1,c);if($interfaceIsEqual(b.object.typ,$ifaceNil)){b.object.typ=h;}if(!(d===MQ.nil)){$s=1;continue;}if(!($interfaceIsEqual(c,$ifaceNil))){$s=2;continue;}$s=3;continue;case 1:d.needsCleanup(h);$s=3;continue;case 2:i=h.iface();$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;case 3:$s=-1;return h;}return;}var $f={$blk:KR.ptr.prototype.newTypeParam,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};KR.prototype.newTypeParam=function(b,c){return this.$val.newTypeParam(b,c);};BY.ptr.prototype.Index=function(){var b;b=this;return b.index;};BY.prototype.Index=function(){return this.$val.Index();};BY.ptr.prototype.Obj=function(){var b;b=this;return b.obj;};BY.prototype.Obj=function(){return this.$val.Obj();};BY.ptr.prototype.Constraint=function(){var b;b=this;return b.bound;};BY.prototype.Constraint=function(){return this.$val.Constraint();};BY.ptr.prototype.SetConstraint=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if($interfaceIsEqual(b,$ifaceNil)){$panic(new $String("nil constraint"));}c.bound=b;d=c.iface();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;$s=-1;return;}return;}var $f={$blk:BY.ptr.prototype.SetConstraint,$c:true,$r,b,c,d,$s};return $f;};BY.prototype.SetConstraint=function(b){return this.$val.SetConstraint(b);};BY.ptr.prototype.Underlying=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.iface();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:BY.ptr.prototype.Underlying,$c:true,$r,b,c,d,$s};return $f;};BY.prototype.Underlying=function(){return this.$val.Underlying();};BY.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BF(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:BY.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};BY.prototype.String=function(){return this.$val.String();};BY.ptr.prototype.cleanup=function(){var{b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.iface();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}c;b.check=MQ.nil;$s=-1;return;}return;}var $f={$blk:BY.ptr.prototype.cleanup,$c:true,$r,b,c,$s};return $f;};BY.prototype.cleanup=function(){return this.$val.cleanup();};BY.ptr.prototype.iface=function(){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.bound;d=NH.nil;f=CF(c);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;if($assertType(e,MY,true)[1]){$s=2;continue;}if($assertType(e,NH,true)[1]){$s=3;continue;}$s=4;continue;case 2:g=e.$val;if(g===(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0])){$s=-1;return HW;}$s=4;continue;case 3:h=e.$val;if(EY(c)){$s=-1;return HW;}d=h;case 4:if(d===NH.nil){$s=5;continue;}$s=6;continue;case 5:i=HY(MJ.nil,new MS([c]));$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}d=i;d.implicit=true;b.bound=d;case 6:if(d.tset===MV.nil){$s=8;continue;}$s=9;continue;case 8:j=b.obj.object.pos;k=$assertType(c,NI,true);l=k[0];if(!(l===NI.nil)){j=l.obj.object.pos;}m=BP(b.check,j,d);$s=10;case 10:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;case 9:$s=-1;return d;}return;}var $f={$blk:BY.ptr.prototype.iface,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BY.prototype.iface=function(){return this.$val.iface();};BY.ptr.prototype.is=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.iface();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.typeSet();$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e.is(b);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=4;case 4:return g;}return;}var $f={$blk:BY.ptr.prototype.is,$c:true,$r,b,c,d,e,f,g,$s};return $f;};BY.prototype.is=function(b){return this.$val.is(b);};BY.ptr.prototype.underIs=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.iface();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.typeSet();$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e.underIs(b);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=4;case 4:return g;}return;}var $f={$blk:BY.ptr.prototype.underIs,$c:true,$r,b,c,d,e,f,g,$s};return $f;};BY.prototype.underIs=function(b){return this.$val.underIs(b);};CA.ptr.prototype.Len=function(){var b;b=this;return b.list().$length;};CA.prototype.Len=function(){return this.$val.Len();};CA.ptr.prototype.At=function(b){var b,c,d;c=this;return(d=c.tparams,((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));};CA.prototype.At=function(b){return this.$val.At(b);};CA.ptr.prototype.list=function(){var b;b=this;if(b===OX.nil){return NL.nil;}return b.tparams;};CA.prototype.list=function(){return this.$val.list();};CC=function(b){var b;if(b.$length===0){return NK.nil;}return new CB.ptr(b);};CB.ptr.prototype.Len=function(){var b;b=this;return b.list().$length;};CB.prototype.Len=function(){return this.$val.Len();};CB.ptr.prototype.At=function(b){var b,c,d;c=this;return(d=c.types,((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));};CB.prototype.At=function(b){return this.$val.At(b);};CB.ptr.prototype.list=function(){var b;b=this;if(b===NK.nil){return MS.nil;}return b.types;};CB.prototype.list=function(){return this.$val.list();};CD=function(b){var b,c,d,e,f;if(b.$length===0){return OX.nil;}c=b;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(f.index>=0){$panic(new $String("type parameter bound more than once"));}f.index=e;d++;}return new CA.ptr(b);};CF=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=$assertType(b,NI,true);d=c[0];if(!(d===NI.nil)){$s=1;continue;}$s=2;continue;case 1:e=d.under();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=4;case 4:return f;case 2:g=b.Underlying();$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=6;case 6:return h;}return;}var $f={$blk:CF,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};CG=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=$assertType(b,NJ,true);e=d[0];if(e===NJ.nil){$s=1;continue;}$s=2;continue;case 1:f=CF(b);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=4;case 4:return g;case 2:c[0]=$ifaceNil;h=e.underIs((function(c){return function $b(h){var{h,i,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:if($interfaceIsEqual(h,$ifaceNil)){$s=-1;return false;}if(!($interfaceIsEqual(c[0],$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:i=CI(c[0],h);$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;if($interfaceIsEqual(h,$ifaceNil)){$s=-1;return false;}case 2:c[0]=h;$s=-1;return true;}return;}var $f={$blk:$b,$c:true,$r,h,i,$s};return $f;};})(c));$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(h){$s=5;continue;}$s=6;continue;case 5:$s=-1;return c[0];case 6:$s=-1;return $ifaceNil;}return;}var $f={$blk:CG,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};CH=function(b){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=[d];e=$assertType(b,NJ,true);f=e[0];if(f===NJ.nil){$s=1;continue;}$s=2;continue;case 1:g=CF(b);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=4;case 4:return h;case 2:d[0]=$ifaceNil;c[0]=false;i=f.underIs((function(c,d){return function $b(i){var{i,j,k,$s,$r,$c}=$restore(this,{i});$s=$s||0;s:while(true){switch($s){case 0:if($interfaceIsEqual(i,$ifaceNil)){$s=-1;return false;}j=EI(i);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=1;continue;}$s=2;continue;case 1:i=DE(Z);c[0]=true;case 2:if(!($interfaceIsEqual(d[0],$ifaceNil))){$s=4;continue;}$s=5;continue;case 4:k=CI(d[0],i);$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}i=k;if($interfaceIsEqual(i,$ifaceNil)){$s=-1;return false;}case 5:d[0]=i;$s=-1;return true;}return;}var $f={$blk:$b,$c:true,$r,i,j,k,$s};return $f;};})(c,d));$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(i){$s=5;continue;}$s=6;continue;case 5:if(c[0]){$s=-1;return(17>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+17]);}$s=-1;return d[0];case 6:$s=-1;return $ifaceNil;}return;}var $f={$blk:CH,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};CI=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=MC(b,c);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(d){$s=1;continue;}$s=2;continue;case 1:$s=-1;return b;case 2:e=$assertType(b,OE,true);f=e[0];if(!(f===OE.nil)){$s=4;continue;}$s=5;continue;case 4:g=$assertType(c,OE,true);h=g[0];if(!(!(h===OE.nil))){i=false;$s=8;continue s;}j=MC(f.elem,h.elem);$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;case 8:if(i){$s=6;continue;}$s=7;continue;case 6:if((f.dir===0)){$s=-1;return h;}else if((h.dir===0)){$s=-1;return f;}case 7:case 5:$s=-1;return $ifaceNil;}return;}var $f={$blk:CI,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};CK=function(b){var b;if(b.$length>0){return new CJ.ptr(b);}return NM.nil;};$pkg.NewTuple=CK;CJ.ptr.prototype.Len=function(){var b;b=this;if(!(b===NM.nil)){return b.vars.$length;}return 0;};CJ.prototype.Len=function(){return this.$val.Len();};CJ.ptr.prototype.At=function(b){var b,c,d;c=this;return(d=c.vars,((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));};CJ.prototype.At=function(b){return this.$val.At(b);};CJ.ptr.prototype.Underlying=function(){var b;b=this;return b;};CJ.prototype.Underlying=function(){return this.$val.Underlying();};CJ.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BF(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:CJ.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};CJ.prototype.String=function(){return this.$val.String();};CL.prototype.String=function(){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(b.$length===0){$s=-1;return"\xE2\x88\x85";}c=new H.Buffer.ptr(NZ.nil,0,0);d=b;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(f>0){$s=3;continue;}$s=4;continue;case 3:h=c.WriteString(" \xE2\x88\xAA ");$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 4:i=g.String();$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=c.WriteString(i);$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;e++;$s=1;continue;case 2:$s=-1;return c.String();}return;}var $f={$blk:CL.prototype.String,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};$ptrType(CL).prototype.String=function(){return this.$get().String();};CL.prototype.isEmpty=function(){var b,c,d,e;b=this;c=b;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(!(e===MP.nil)){return false;}d++;}return true;};$ptrType(CL).prototype.isEmpty=function(){return this.$get().isEmpty();};CL.prototype.isAll=function(){var b,c,d,e;b=this;c=b;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(!(e===MP.nil)&&$interfaceIsEqual(e.typ,$ifaceNil)){return true;}d++;}return false;};$ptrType(CL).prototype.isAll=function(){return this.$get().isAll();};CL.prototype.norm=function(){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=$makeSlice(PH,b.$length);d=CL.nil;e=b;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(h===MP.nil||((g<0||g>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+g])){f++;$s=1;continue;}i=g+1>>0;case 3:if(!(i=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+i]);if(j===MP.nil||((i<0||i>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i])){i=i+(1)>>0;$s=3;continue;}l=h.union(j);$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];if(n===MP.nil){if($interfaceIsEqual(m.typ,$ifaceNil)){$s=-1;return CM;}h=m;((i<0||i>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i]=true);}i=i+(1)>>0;$s=3;continue;case 4:d=$append(d,h);f++;$s=1;continue;case 2:$s=-1;return d;}return;}var $f={$blk:CL.prototype.norm,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};$ptrType(CL).prototype.norm=function(){return this.$get().norm();};CL.prototype.union=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=$appendSlice(c,$convertSliceType(b,PI)).norm();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:CL.prototype.union,$c:true,$r,b,c,d,e,$s};return $f;};$ptrType(CL).prototype.union=function(b){return this.$get().union(b);};CL.prototype.intersect=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(c.isEmpty()||b.isEmpty()){$s=-1;return CL.nil;}d=CL.nil;e=c;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);h=b;i=0;case 3:if(!(i=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]);k=g.intersect(j);$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(!(l===MP.nil)){d=$append(d,l);}i++;$s=3;continue;case 4:f++;$s=1;continue;case 2:m=d.norm();$s=6;case 6:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=7;case 7:return n;}return;}var $f={$blk:CL.prototype.intersect,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};$ptrType(CL).prototype.intersect=function(b){return this.$get().intersect(b);};CL.prototype.equal=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=c.subsetOf(b);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}if(!(e)){d=false;$s=1;continue s;}f=b.subsetOf(c);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}d=f;case 1:g=d;$s=4;case 4:return g;}return;}var $f={$blk:CL.prototype.equal,$c:true,$r,b,c,d,e,f,g,$s};return $f;};$ptrType(CL).prototype.equal=function(b){return this.$get().equal(b);};CL.prototype.includes=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=f.includes(b);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(g){$s=3;continue;}$s=4;continue;case 3:$s=-1;return true;case 4:e++;$s=1;continue;case 2:$s=-1;return false;}return;}var $f={$blk:CL.prototype.includes,$c:true,$r,b,c,d,e,f,g,$s};return $f;};$ptrType(CL).prototype.includes=function(b){return this.$get().includes(b);};CL.prototype.supersetOf=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=b.subsetOf(f);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(g){$s=3;continue;}$s=4;continue;case 3:$s=-1;return true;case 4:e++;$s=1;continue;case 2:$s=-1;return false;}return;}var $f={$blk:CL.prototype.supersetOf,$c:true,$r,b,c,d,e,f,g,$s};return $f;};$ptrType(CL).prototype.supersetOf=function(b){return this.$get().supersetOf(b);};CL.prototype.subsetOf=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b.isEmpty()){$s=-1;return c.isEmpty();}d=c;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=b.supersetOf(f);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(!g){$s=3;continue;}$s=4;continue;case 3:$s=-1;return false;case 4:e++;$s=1;continue;case 2:$s=-1;return true;}return;}var $f={$blk:CL.prototype.subsetOf,$c:true,$r,b,c,d,e,f,g,$s};return $f;};$ptrType(CL).prototype.subsetOf=function(b){return this.$get().subsetOf(b);};CO=function(b,c){var b,c,d,e,f,g,h,i,j;JM(b.$length===c.$length);e=(d=b.$length,((d<0||d>2147483647)?$throwRuntimeError("makemap: size out of range"):new $global.Map()));f=b;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=i;(e||$throwRuntimeError("assignment to entry in nil map")).set(NJ.keyFor(j),{k:j,v:((h<0||h>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+h])});g++;}return e;};CP=function(b,c){var b,c,d,e,f,g,h,i,j;JM(b.$length===c.$length);e=(d=b.$length,((d<0||d>2147483647)?$throwRuntimeError("makemap: size out of range"):new $global.Map()));f=b;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=i;(e||$throwRuntimeError("assignment to entry in nil map")).set(NJ.keyFor(j),{k:j,v:((h<0||h>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+h])});g++;}return e;};CN.prototype.empty=function(){var b;b=this.$val;return(b?b.size:0)===0;};$ptrType(CN).prototype.empty=function(){return new CN(this.$get()).empty();};CN.prototype.lookup=function(b){var b,c,d,e;c=this.$val;e=(d=$mapIndex(c,NJ.keyFor(b)),d!==undefined?d.v:$ifaceNil);if(!($interfaceIsEqual(e,$ifaceNil))){return e;}return b;};$ptrType(CN).prototype.lookup=function(b){return new CN(this.$get()).lookup(b);};KR.ptr.prototype.subst=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;if(new CN(d).empty()){$s=-1;return c;}g=c;if($assertType(g,MY,true)[1]){h=g.$val;$s=-1;return c;}else if($assertType(g,NJ,true)[1]){i=g.$val;$s=-1;return new CN(d).lookup(i);}j=new CQ.ptr(b,d,f,f.bestContext(e));k=j.typ(c);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=2;case 2:return l;}return;}var $f={$blk:KR.ptr.prototype.subst,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};KR.prototype.subst=function(b,c,d,e){return this.$val.subst(b,c,d,e);};CQ.ptr.prototype.typ=function(b){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];c[0]=this;d=b;if(d===$ifaceNil){$s=1;continue;}if($assertType(d,MY,true)[1]){$s=2;continue;}if($assertType(d,NE,true)[1]){$s=3;continue;}if($assertType(d,OA,true)[1]){$s=4;continue;}if($assertType(d,NF,true)[1]){$s=5;continue;}if($assertType(d,OB,true)[1]){$s=6;continue;}if($assertType(d,NM,true)[1]){$s=7;continue;}if($assertType(d,OC,true)[1]){$s=8;continue;}if($assertType(d,NG,true)[1]){$s=9;continue;}if($assertType(d,NH,true)[1]){$s=10;continue;}if($assertType(d,OD,true)[1]){$s=11;continue;}if($assertType(d,OE,true)[1]){$s=12;continue;}if($assertType(d,NI,true)[1]){$s=13;continue;}if($assertType(d,NJ,true)[1]){$s=14;continue;}$s=15;continue;case 1:e=d;$panic(new $String("nil typ"));$s=16;continue;case 2:f=d.$val;$s=16;continue;case 3:g=d.$val;t=c[0].typOrNil(g.elem);$s=17;case 17:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;if(!($interfaceIsEqual(u,g.elem))){$s=18;continue;}$s=19;continue;case 18:v=new LL.ptr(g.len,u);$s=20;case 20:return v;case 19:$s=16;continue;case 4:h=d.$val;w=c[0].typOrNil(h.elem);$s=21;case 21:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;if(!($interfaceIsEqual(x,h.elem))){$s=22;continue;}$s=23;continue;case 22:y=new DD.ptr(x);$s=24;case 24:return y;case 23:$s=16;continue;case 5:i=d.$val;aa=c[0].varList(i.fields);$s=25;case 25:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;ab=z[0];ac=z[1];if(ac){$s=26;continue;}$s=27;continue;case 26:ad=new CT.ptr(ab,i.tags);ad.markComplete();ae=ad;$s=28;case 28:return ae;case 27:$s=16;continue;case 6:j=d.$val;af=c[0].typ(j.base);$s=29;case 29:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;if(!($interfaceIsEqual(ag,j.base))){$s=30;continue;}$s=31;continue;case 30:ah=new FH.ptr(ag);$s=32;case 32:return ah;case 31:$s=16;continue;case 7:k=d.$val;ai=c[0].tuple(k);$s=33;case 33:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai;$s=34;case 34:return aj;case 8:l=d.$val;ak=l.recv;al=c[0].tuple(l.params);$s=35;case 35:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al;an=c[0].tuple(l.results);$s=36;case 36:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}ao=an;if(!(am===l.params)||!(ao===l.results)){$s=37;continue;}$s=38;continue;case 37:ap=new DM.ptr(l.rparams,l.tparams,ME.nil,ak,am,ao,l.variadic);$s=39;case 39:return ap;case 38:$s=16;continue;case 9:m=d.$val;ar=c[0].termlist(m.terms);$s=40;case 40:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}aq=ar;as=aq[0];at=aq[1];if(at){$s=41;continue;}$s=42;continue;case 41:au=new AP.ptr(as);$s=43;case 43:return au;case 42:$s=16;continue;case 10:n=d.$val;aw=c[0].funcList(n.methods);$s=44;case 44:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}av=aw;ax=av[0];ay=av[1];ba=c[0].typeList(n.embeddeds);$s=45;case 45:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}az=ba;bb=az[0];bc=az[1];if(ay||bc){$s=46;continue;}$s=47;continue;case 46:bd=c[0].check.newInterface();bd.embeddeds=bb;bd.implicit=n.implicit;bd.complete=n.complete;be=CS(ax,n,bd);bd.methods=be[0];bf=bd;$s=48;case 48:return bf;case 47:$s=16;continue;case 11:o=d.$val;bg=c[0].typ(o.key);$s=49;case 49:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=bg;bi=c[0].typ(o.elem);$s=50;case 50:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bj=bi;if(!($interfaceIsEqual(bh,o.key))||!($interfaceIsEqual(bj,o.elem))){$s=51;continue;}$s=52;continue;case 51:bk=new HF.ptr(bh,bj);$s=53;case 53:return bk;case 52:$s=16;continue;case 12:p=d.$val;bl=c[0].typ(p.elem);$s=54;case 54:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}bm=bl;if(!($interfaceIsEqual(bm,p.elem))){$s=55;continue;}$s=56;continue;case 55:bn=new KX.ptr(p.dir,bm);$s=57;case 57:return bn;case 56:$s=16;continue;case 13:q=d.$val;bo=(function(c){return function(bo,bp){var bo,bp;};})(c);if(!(c[0].check===MQ.nil)&&false){$s=58;continue;}$s=59;continue;case 58:c[0].check.indent=c[0].check.indent+(1)>>0;$deferred.push([(function(c){return function(){c[0].check.indent=c[0].check.indent-(1)>>0;};})(c),[]]);bo=(function(c){return function $b(bp,bq){var{bp,bq,$s,$r,$c}=$restore(this,{bp,bq});$s=$s||0;s:while(true){switch($s){case 0:$r=c[0].check.trace(c[0].pos,bp,bq);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,bp,bq,$s};return $f;};})(c);case 59:bp=q.orig.TypeParams();$s=62;case 62:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}bq=bp.Len();$s=63;case 63:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}if(bq===0){$s=60;continue;}$s=61;continue;case 60:$r=bo(">>> %s is not parameterized",new NA([q]));$s=64;case 64:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}br=q;$s=65;case 65:return br;case 61:bs=MS.nil;bt=q.orig.TypeParams();$s=68;case 68:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}bu=bt.Len();$s=69;case 69:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}if(!((q.targs.Len()===bu))){$s=66;continue;}$s=67;continue;case 66:bv=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);$s=70;case 70:return bv;case 67:$r=bo(">>> %s already instantiated",new NA([q]));$s=71;case 71:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bw=q.targs.list();bx=0;case 72:if(!(bx=bw.$length)?($throwRuntimeError("index out of range"),undefined):bw.$array[bw.$offset+bx]);$r=bo(">>> %d targ = %s",new NA([new $Int(by),bz]));$s=74;case 74:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ca=c[0].typ(bz);$s=75;case 75:if($c){$c=false;ca=ca.$blk();}if(ca&&ca.$blk!==undefined){break s;}cb=ca;if(!($interfaceIsEqual(cb,bz))){$s=76;continue;}$s=77;continue;case 76:$r=bo(">>> substituted %d targ %s => %s",new NA([new $Int(by),bz,cb]));$s=78;case 78:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(bs===MS.nil){$s=79;continue;}$s=80;continue;case 79:cc=q.orig.TypeParams();$s=81;case 81:if($c){$c=false;cc=cc.$blk();}if(cc&&cc.$blk!==undefined){break s;}cd=cc.Len();$s=82;case 82:if($c){$c=false;cd=cd.$blk();}if(cd&&cd.$blk!==undefined){break s;}bs=$makeSlice(MS,cd);$copySlice(bs,q.targs.list());case 80:((by<0||by>=bs.$length)?($throwRuntimeError("index out of range"),undefined):bs.$array[bs.$offset+by]=cb);case 77:bx++;$s=72;continue;case 73:if(bs===MS.nil){$s=83;continue;}$s=84;continue;case 83:$r=bo(">>> nothing to substitute in %s",new NA([q]));$s=85;case 85:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ce=q;$s=86;case 86:return ce;case 84:cf=c[0].ctxt.instanceHash(q.orig,bs);$s=87;case 87:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}cg=cf;$r=bo(">>> new type hash: %s",new NA([new $String(cg)]));$s=88;case 88:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ch=c[0].ctxt.lookup(cg,q.orig,bs);$s=89;case 89:if($c){$c=false;ch=ch.$blk();}if(ch&&ch.$blk!==undefined){break s;}ci=ch;if(!($interfaceIsEqual(ci,$ifaceNil))){$s=90;continue;}$s=91;continue;case 90:$r=bo(">>> found %s",new NA([ci]));$s=92;case 92:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cj=ci;$s=93;case 93:return cj;case 91:ck=q.orig.resolve(c[0].ctxt);$s=94;case 94:if($c){$c=false;ck=ck.$blk();}if(ck&&ck.$blk!==undefined){break s;}ck;cl=c[0].check.instance(c[0].pos,q.orig,bs,c[0].ctxt);$s=95;case 95:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}cm=cl;$s=96;case 96:return cm;case 14:r=d.$val;cn=new CN(c[0].smap).lookup(r);$s=97;case 97:return cn;case 15:s=d;$panic(new $String("unimplemented"));case 16:co=b;$s=98;case 98:return co;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:CQ.ptr.prototype.typ,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};CQ.prototype.typ=function(b){return this.$val.typ(b);};CQ.ptr.prototype.typOrNil=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if($interfaceIsEqual(b,$ifaceNil)){$s=-1;return(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);}d=c.typ(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:CQ.ptr.prototype.typOrNil,$c:true,$r,b,c,d,e,$s};return $f;};CQ.prototype.typOrNil=function(b){return this.$val.typOrNil(b);};CQ.ptr.prototype.var_=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!(b===NN.nil)){$s=1;continue;}$s=2;continue;case 1:d=c.typ(b.object.typ);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(!($interfaceIsEqual(e,b.object.typ))){$s=-1;return CR(b,e);}case 2:$s=-1;return b;}return;}var $f={$blk:CQ.ptr.prototype.var_,$c:true,$r,b,c,d,e,$s};return $f;};CQ.prototype.var_=function(b){return this.$val.var_(b);};CR=function(b,c){var b,c,d;d=$clone(b,GC);d.object.typ=c;return d;};CQ.ptr.prototype.tuple=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!(b===NM.nil)){$s=1;continue;}$s=2;continue;case 1:e=c.varList(b.vars);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];if(g){$s=-1;return new CJ.ptr(f);}case 2:$s=-1;return b;}return;}var $f={$blk:CQ.ptr.prototype.tuple,$c:true,$r,b,c,d,e,f,g,$s};return $f;};CQ.prototype.tuple=function(b){return this.$val.tuple(b);};CQ.ptr.prototype.varList=function(b){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=NO.nil;d=false;e=this;c=b;f=b;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=e.var_(i);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!(k===i)){if(!d){l=$makeSlice(NO,b.$length);$copySlice(l,c);c=l;d=true;}((h<0||h>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+h]=k);}g++;$s=1;continue;case 2:$s=-1;return[c,d];}return;}var $f={$blk:CQ.ptr.prototype.varList,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};CQ.prototype.varList=function(b){return this.$val.varList(b);};CQ.ptr.prototype.func_=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;if(!(b===MI.nil)){$s=1;continue;}$s=2;continue;case 1:e=d.typ(b.object.typ);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,b.object.typ))){c[0]=$clone(b,GG);c[0].object.typ=f;$s=-1;return c[0];}case 2:$s=-1;return b;}return;}var $f={$blk:CQ.ptr.prototype.func_,$c:true,$r,b,c,d,e,f,$s};return $f;};CQ.prototype.func_=function(b){return this.$val.func_(b);};CQ.ptr.prototype.funcList=function(b){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=MJ.nil;d=false;e=this;c=b;f=b;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=e.func_(i);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!(k===i)){if(!d){l=$makeSlice(MJ,b.$length);$copySlice(l,c);c=l;d=true;}((h<0||h>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+h]=k);}g++;$s=1;continue;case 2:$s=-1;return[c,d];}return;}var $f={$blk:CQ.ptr.prototype.funcList,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};CQ.prototype.funcList=function(b){return this.$val.funcList(b);};CQ.ptr.prototype.typeList=function(b){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=MS.nil;d=false;e=this;c=b;f=b;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=e.typ(i);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!($interfaceIsEqual(k,i))){if(!d){l=$makeSlice(MS,b.$length);$copySlice(l,c);c=l;d=true;}((h<0||h>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+h]=k);}g++;$s=1;continue;case 2:$s=-1;return[c,d];}return;}var $f={$blk:CQ.ptr.prototype.typeList,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};CQ.prototype.typeList=function(b){return this.$val.typeList(b);};CQ.ptr.prototype.termlist=function(b){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=NS.nil;d=false;e=this;c=b;f=b;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=e.typ(i.typ);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!($interfaceIsEqual(k,i.typ))){if(!d){l=$makeSlice(NS,b.$length);$copySlice(l,c);c=l;d=true;}((h<0||h>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+h]=AS(i.tilde,k));}g++;$s=1;continue;case 2:$s=-1;return[c,d];}return;}var $f={$blk:CQ.ptr.prototype.termlist,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};CQ.prototype.termlist=function(b){return this.$val.termlist(b);};CS=function(b,c,d){var b,c,d,e,f,g,h,i,j,k,l;e=MJ.nil;f=false;e=b;g=b;h=0;while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);l=$assertType(k.object.Type(),OC);if(!(l.recv===NN.nil)&&$interfaceIsEqual(l.recv.object.Type(),c)){if(!f){e=$makeSlice(MJ,b.$length);$copySlice(e,b);f=true;}i[0]=$clone(l,DM);i[0].recv=CR(l.recv,d);((j<0||j>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+j]=GH(k.object.pos,k.object.pkg,k.object.name,i[0]));}h++;}return[e,f];};CU=function(b,c){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=false;e=b;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(!(!(g.object.name==="_"))){h=false;$s=5;continue s;}j=(i||(i=new PF(function(){return d;},function($v){d=$v;}))).insert(g);$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}h=!($interfaceIsEqual(j,$ifaceNil));case 5:if(h){$s=3;continue;}$s=4;continue;case 3:$panic(new $String("multiple fields with the same name"));case 4:f++;$s=1;continue;case 2:if(c.$length>b.$length){$panic(new $String("more tags than fields"));}k=new CT.ptr(b,c);k.markComplete();$s=-1;return k;}return;}var $f={$blk:CU,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};$pkg.NewStruct=CU;CT.ptr.prototype.NumFields=function(){var b;b=this;return b.fields.$length;};CT.prototype.NumFields=function(){return this.$val.NumFields();};CT.ptr.prototype.Field=function(b){var b,c,d;c=this;return(d=c.fields,((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));};CT.prototype.Field=function(b){return this.$val.Field(b);};CT.ptr.prototype.Tag=function(b){var b,c,d;c=this;if(b=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));}return"";};CT.prototype.Tag=function(b){return this.$val.Tag(b);};CT.ptr.prototype.Underlying=function(){var b;b=this;return b;};CT.prototype.Underlying=function(){return this.$val.Underlying();};CT.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BF(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:CT.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};CT.prototype.String=function(){return this.$val.String();};CT.ptr.prototype.markComplete=function(){var b;b=this;if(b.fields===NO.nil){b.fields=$makeSlice(NO,0);}};CT.prototype.markComplete=function(){return this.$val.markComplete();};KR.ptr.prototype.structType=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=[e];f=[f];g=[g];h=[h];i=[i];j=[j];e[0]=this;k=c.Fields;if(k===OY.nil){b.markComplete();$s=-1;return;}f[0]=NO.nil;i[0]=NB.nil;g[0]=false;j[0]=$ifaceNil;h[0]="";d[0]=(function(d,e,f,g,h,i,j){return function $b(l,m,n){var{l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{l,m,n});$s=$s||0;s:while(true){switch($s){case 0:if(!(h[0]==="")&&i[0]===NB.nil){i[0]=$makeSlice(NB,f[0].$length);}if(!(i[0]===NB.nil)){i[0]=$append(i[0],h[0]);}o=l.Name;p=GF(n,e[0].pkg,o,j[0],m);if(o==="_"){q=true;$s=3;continue s;}r=e[0].declareInSet((g.$ptr||(g.$ptr=new PF(function(){return this.$target[0];},function($v){this.$target[0]=$v;},g))),n,p);$s=4;case 4:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;case 3:if(q){$s=1;continue;}$s=2;continue;case 1:f[0]=$append(f[0],p);e[0].recordDef(l,p);case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,l,m,n,o,p,q,r,$s};return $f;};})(d,e,f,g,h,i,j);l=(function(d,e,f,g,h,i,j){return function $b(l,m){var{l,m,$s,$r,$c}=$restore(this,{l,m});$s=$s||0;s:while(true){switch($s){case 0:j[0]=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);h[0]="";$r=d[0](l,true,m);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,l,m,$s};return $f;};})(d,e,f,g,h,i,j);m=k.List;n=0;case 1:if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);r=e[0].varType(q.Type);$s=3;case 3:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}j[0]=r;s=e[0].tag(q.Tag);$s=4;case 4:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}h[0]=s;if(q.Names.$length>0){$s=5;continue;}$s=6;continue;case 5:t=q.Names;u=0;case 8:if(!(u=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]);$r=d[0](v,false,v.Pos());$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}u++;$s=8;continue;case 9:$s=7;continue;case 6:w=q.Type.Pos();$s=11;case 11:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;y=CV(q.Type);if(y===OF.nil){$s=12;continue;}$s=13;continue;case 12:$r=e[0].invalidAST(q.Type,"embedded field type %s has no name",new NA([q.Type]));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}y=B.NewIdent("_");y.NamePos=x;$r=l(y,x);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n++;$s=1;continue;case 13:$r=d[0](y,true,x);$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p[0]=j[0];o[0]=q.Type;e[0].later((function(d,e,f,g,h,i,j,o,p){return function $b(){var{aa,ab,ac,ad,ae,af,ag,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:z=HP(p[0]);aa=z[0];ab=z[1];ad=CF(aa);$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=ad;if($assertType(ac,MY,true)[1]){$s=2;continue;}if($assertType(ac,OB,true)[1]){$s=3;continue;}if($assertType(ac,NH,true)[1]){$s=4;continue;}$s=5;continue;case 2:ae=ac.$val;if($interfaceIsEqual(aa,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=-1;return;}if(ae.kind===18){$s=6;continue;}$s=7;continue;case 6:$r=e[0].error(o[0],30,"embedded field type cannot be unsafe.Pointer");$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:$s=5;continue;case 3:af=ac.$val;$r=e[0].error(o[0],30,"embedded field type cannot be a pointer");$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 4:ag=ac.$val;if(EY(aa)){$s=10;continue;}$s=11;continue;case 10:$r=e[0].error(o[0],144,"embedded field type cannot be a (pointer to a) type parameter");$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 11:if(ab){$s=13;continue;}$s=14;continue;case 13:$r=e[0].error(o[0],30,"embedded field type cannot be a pointer to an interface");$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:case 5:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,aa,ab,ac,ad,ae,af,ag,z,$s};return $f;};})(d,e,f,g,h,i,j,o,p)).describef(o[0],"check embedded type %s",new NA([p[0]]));case 7:n++;$s=1;continue;case 2:b.fields=f[0];b.tags=i[0];b.markComplete();$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.structType,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s};return $f;};KR.prototype.structType=function(b,c){return this.$val.structType(b,c);};CV=function(b){var b,c,d,e,f,g,h,i,j;c=b;if($assertType(c,OF,true)[1]){d=c.$val;return d;}else if($assertType(c,OS,true)[1]){e=c.$val;i=$assertType(e.X,OS,true);j=i[1];if(!j){return CV(e.X);}}else if($assertType(c,OL,true)[1]){f=c.$val;return f.Sel;}else if($assertType(c,OM,true)[1]){g=c.$val;return CV(g.X);}else if($assertType(c,ON,true)[1]){h=c.$val;return CV(h.X);}return OF.nil;};KR.ptr.prototype.declareInSet=function(b,c,d){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=b.insert(d);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:h=new JS(((c>>0)));i=d.Name();$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=new $String(i);$r=e.errorf(h,10,"%s redeclared",new NA([j]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.reportAltDecl(g);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 3:$s=-1;return true;}return;}var $f={$blk:KR.ptr.prototype.declareInSet,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};KR.prototype.declareInSet=function(b,c,d){return this.$val.declareInSet(b,c,d);};KR.ptr.prototype.tag=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!(b===PJ.nil)){$s=1;continue;}$s=2;continue;case 1:if(b.Kind===9){d=E.Unquote(b.Value);e=d[0];f=d[1];if($interfaceIsEqual(f,$ifaceNil)){$s=-1;return e;}}$r=c.invalidAST(b,"incorrect tag syntax: %q",new NA([new $String(b.Value)]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return"";}return;}var $f={$blk:KR.ptr.prototype.tag,$c:true,$r,b,c,d,e,f,$s};return $f;};KR.prototype.tag=function(b){return this.$val.tag(b);};KR.ptr.prototype.funcBody=function(b,c,d,e,f){var{b,c,d,e,f,g,h,$s,$deferred,$r,$c}=$restore(this,{b,c,d,e,f});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=[e];g=[g];g[0]=this;if(g[0].conf.IgnoreFuncBodies){$panic(new $String("function body not ignored"));}if(false){$s=1;continue;}$s=2;continue;case 1:$r=g[0].trace(e[0].Pos(),"--- %s: %s",new NA([new $String(c),d]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([(function(e,g){return function $b(){var{h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:h=e[0].End();$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=g[0].trace(h,"--- ",new NA([]));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,h,$s};return $f;};})(e,g),[]]);case 2:d.scope.pos=e[0].Pos();h=e[0].End();$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}d.scope.end=h;$deferred.push([(function(e,g){return function(i,j){var i,j;KM.copy(g[0].environment,i);g[0].indent=j;};})(e,g),[$clone(g[0].environment,KM),g[0].indent]]);KM.copy(g[0].environment,new KM.ptr(b,d.scope,0,f,$ifaceNil,false,d,false,false,false));g[0].indent=0;$r=g[0].stmtList(0,e[0].List);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(g[0].environment.hasLabel){$s=6;continue;}$s=7;continue;case 6:$r=g[0].labels(e[0]);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:if(d.results.Len()>0&&!g[0].isTerminating(e[0],"")){$s=9;continue;}$s=10;continue;case 9:$r=g[0].error(new JS(((e[0].Rbrace>>0))),102,"missing return");$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:$r=g[0].usage(d.scope);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.funcBody,$c:true,$r,b,c,d,e,f,g,h,$s,$deferred};return $f;}}};KR.prototype.funcBody=function(b,c,d,e,f){return this.$val.funcBody(b,c,d,e,f);};KR.ptr.prototype.usage=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;c[0]=NO.nil;e=b.elems;f=0;g=e?e.keys():undefined;h=e?e.size:0;case 1:if(!(f=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+p]).object.pos<((q<0||q>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+q]).object.pos;};})(c));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=c[0];q=0;case 5:if(!(q=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);$r=d.softErrorf(r,101,"%s declared but not used",new NA([new $String(r.object.name)]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}q++;$s=5;continue;case 6:s=b.children;t=0;case 8:if(!(t=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]);if(!u.isFunc){$s=10;continue;}$s=11;continue;case 10:$r=d.usage(u);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:t++;$s=8;continue;case 9:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.usage,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};KR.prototype.usage=function(b){return this.$val.usage(b);};KR.ptr.prototype.simpleStmt=function(b){var{b,c,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!($interfaceIsEqual(b,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:$r=c.stmt(0,b);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.simpleStmt,$c:true,$r,b,c,$s};return $f;};KR.prototype.simpleStmt=function(b){return this.$val.simpleStmt(b);};CX=function(b){var b,c,d,e,f;c=b.$length;while(true){if(!(c>0)){break;}d=$assertType((e=c-1>>0,((e<0||e>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e])),PL,true);f=d[1];if(!f){return $subslice(b,0,c);}c=c-(1)>>0;}return PM.nil;};KR.ptr.prototype.stmtList=function(b,c){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=!((((b&4)>>>0)===0));f=(b&~4)>>>0;c=CX(c);g=c;h=0;case 1:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);k=f;if(e&&((i+1>>0)===c.$length)){k=(k|(4))>>>0;}$r=d.stmt(k,j);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.stmtList,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};KR.prototype.stmtList=function(b,c){return this.$val.stmtList(b,c);};KR.ptr.prototype.multipleDefaults=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=$ifaceNil;e=b;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);h=$ifaceNil;i=g;if($assertType(i,PN,true)[1]){$s=3;continue;}if($assertType(i,PO,true)[1]){$s=4;continue;}$s=5;continue;case 3:j=i.$val;if(j.List.$length===0){h=g;}$s=6;continue;case 4:k=i.$val;if($interfaceIsEqual(k.Comm,$ifaceNil)){h=g;}$s=6;continue;case 5:l=i;$r=c.invalidAST(g,"case/communication clause expected",new NA([]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:if(!($interfaceIsEqual(h,$ifaceNil))){$s=8;continue;}$s=9;continue;case 8:if(!($interfaceIsEqual(d,$ifaceNil))){$s=10;continue;}$s=11;continue;case 10:m=h;o=d.Pos();$s=13;case 13:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=c.fset.Position(o);$s=14;case 14:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=(n=p,new n.constructor.elem(n));$r=c.errorf(m,114,"multiple defaults (first at %s)",new NA([q]));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=12;continue;case 11:d=h;case 12:case 9:f++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.multipleDefaults,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};KR.prototype.multipleDefaults=function(b){return this.$val.multipleDefaults(b);};KR.ptr.prototype.openScope=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.environment.scope;f=b.Pos();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=b.End();$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=c;k=DT(e,g,i,j);$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;d.recordScope(b,l);d.environment.scope=l;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.openScope,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};KR.prototype.openScope=function(b,c){return this.$val.openScope(b,c);};KR.ptr.prototype.closeScope=function(){var b;b=this;b.environment.scope=b.environment.scope.Parent();};KR.prototype.closeScope=function(){return this.$val.closeScope();};CY=function(b){var b;if(23<=b&&b<=33){return b+-11>>0;}return 0;};KR.ptr.prototype.suspendedCall=function(b,c){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=this;d[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);f="";g=0;h=e.rawExpr(d[0],c,$ifaceNil,false);$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if(i===(0)){f="requires function call, not conversion";g=129;if(b==="go"){g=130;}}else if(i===(1)){f="discards result of";g=128;}else if(i===(2)){$s=-1;return;}else{JN();}case 1:$r=e.errorf(d[0],g,"%s %s %s",new NA([new $String(b),new $String(f),d[0]]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.suspendedCall,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};KR.prototype.suspendedCall=function(b,c){return this.$val.suspendedCall(b,c);};CZ=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:if($interfaceIsEqual(b,$ifaceNil)){$s=-1;return $ifaceNil;}c=b.Kind();$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(d===(3)){$s=3;continue;}if(d===(4)){$s=4;continue;}if(d===(2)){$s=5;continue;}$s=6;continue;case 3:f=G.Int64Val(b);$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if(h){$s=-1;return g;}j=G.Uint64Val(b);$s=8;case 8:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];l=i[1];if(l){$s=-1;return k;}$s=6;continue;case 4:n=G.Float64Val(b);$s=9;case 9:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=m[0];p=m[1];if(p){$s=-1;return new $Float64(o);}$s=6;continue;case 5:q=G.StringVal(b);$s=10;case 10:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=new $String(q);$s=11;case 11:return r;case 6:case 1:$s=-1;return $ifaceNil;}return;}var $f={$blk:CZ,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};KR.ptr.prototype.caseValues=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=c;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);i[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=e.expr(i[0],j);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if((b.mode===0)||(i[0].mode===0)){g++;$s=1;continue s;}$r=e.convertUntyped(i[0],b.typ);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(i[0].mode===0){g++;$s=1;continue s;}h[0]=$clone(i[0],FN);$r=e.comparison(h[0],b,39,true);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(h[0].mode===0){g++;$s=1;continue s;}if(!((i[0].mode===4))){g++;$s=1;continue s;}k=CZ(i[0].val);$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(!($interfaceIsEqual(l,$ifaceNil))){$s=7;continue;}$s=8;continue;case 7:m=(n=$mapIndex(d,$emptyInterface.keyFor(l)),n!==undefined?n.v:PP.nil);o=0;case 9:if(!(o=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+o]),DB);q=MC(i[0].typ,p.typ);$s=13;case 13:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}if(q){$s=11;continue;}$s=12;continue;case 11:$r=e.errorf(i[0],113,"duplicate case %s in expression switch",new NA([i[0]]));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.error(new JS(((p.pos>>0))),113,"\tprevious case");$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g++;$s=1;continue s;case 12:o++;$s=9;continue;case 10:s=i[0].Pos();$s=16;case 16:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=l;(d||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(r),{k:r,v:$append((t=$mapIndex(d,$emptyInterface.keyFor(l)),t!==undefined?t.v:PP.nil),new DB.ptr(s,i[0].typ))});case 8:g++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.caseValues,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};KR.prototype.caseValues=function(b,c,d){return this.$val.caseValues(b,c,d);};KR.ptr.prototype.isNil=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=$assertType(LE(b),OF,true);e=d[0];if(!(e===OF.nil)){$s=1;continue;}$s=2;continue;case 1:g=c.environment.lookup(e.Name);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=$assertType(g,OI,true);h=f[1];$s=-1;return h;case 2:$s=-1;return false;}return;}var $f={$blk:KR.ptr.prototype.isNil,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};KR.prototype.isNil=function(b){return this.$val.isNil(b);};KR.ptr.prototype.caseTypes=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=[e];f=$ifaceNil;g=this;e[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);h=c;i=0;case 1:if(!(i=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]);k=g.isNil(j);$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(k){$s=3;continue;}$s=4;continue;case 3:f=$ifaceNil;$r=g.expr(e[0],j);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 4:l=g.varType(j);$s=8;case 8:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}f=l;if($interfaceIsEqual(f,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){i++;$s=1;continue s;}case 5:m=d;n=0;o=m?m.keys():undefined;p=m?m.size:0;case 9:if(!(n>>0;p=c;if($assertType(p,PQ,true)[1]||$assertType(p,PL,true)[1]){$s=3;continue;}if($assertType(p,PR,true)[1]){$s=4;continue;}if($assertType(p,PS,true)[1]){$s=5;continue;}if($assertType(p,PT,true)[1]){$s=6;continue;}if($assertType(p,PU,true)[1]){$s=7;continue;}if($assertType(p,PV,true)[1]){$s=8;continue;}if($assertType(p,PW,true)[1]){$s=9;continue;}if($assertType(p,PX,true)[1]){$s=10;continue;}if($assertType(p,PY,true)[1]){$s=11;continue;}if($assertType(p,PZ,true)[1]){$s=12;continue;}if($assertType(p,QA,true)[1]){$s=13;continue;}if($assertType(p,QB,true)[1]){$s=14;continue;}if($assertType(p,QC,true)[1]){$s=15;continue;}if($assertType(p,QD,true)[1]){$s=16;continue;}if($assertType(p,QE,true)[1]){$s=17;continue;}if($assertType(p,QF,true)[1]){$s=18;continue;}if($assertType(p,QG,true)[1]){$s=19;continue;}if($assertType(p,QH,true)[1]){$s=20;continue;}$s=21;continue;case 3:q=p;$s=22;continue;case 4:r=p.$val;$r=e[0].declStmt(r.Decl);$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 5:s=p.$val;e[0].environment.hasLabel=true;$r=e[0].stmt(b,s.Stmt);$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 6:t=p.$val;g[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);aj=e[0].rawExpr(g[0],t.X,$ifaceNil,false);$s=25;case 25:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=aj;al="";am=0;an=g[0].mode;if(an===(2)){$s=27;continue;}if(an===(3)){$s=28;continue;}$s=29;continue;case 27:al="must be called";am=82;$s=30;continue;case 28:al="is not an expression";am=42;$s=30;continue;case 29:if(ak===2){$s=31;continue;}$s=32;continue;case 31:$s=33;case 33:return;case 32:al="is not used";am=100;case 30:case 26:$r=e[0].errorf(g[0],am,"%s %s",new NA([g[0],new $String(al)]));$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 7:u=p.$val;ao=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);ap=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);d[0]=$clone(ao,FN);f[0]=$clone(ap,FN);$r=e[0].expr(d[0],u.Chan);$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e[0].expr(f[0],u.Value);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if((d[0].mode===0)||(f[0].mode===0)){$s=37;continue;}$s=38;continue;case 37:$s=39;case 39:return;case 38:aq=CG(d[0].typ);$s=40;case 40:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;if($interfaceIsEqual(ar,$ifaceNil)){$s=41;continue;}$s=42;continue;case 41:at=JR(u,u.Arrow);$s=43;case 43:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}$r=e[0].invalidOp((as=at,new as.constructor.elem(as)),59,"cannot send to %s: no core type",new NA([d[0]]));$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=45;case 45:return;case 42:au=$assertType(ar,OE,true);av=au[0];if(av===OE.nil){$s=46;continue;}$s=47;continue;case 46:ax=JR(u,u.Arrow);$s=48;case 48:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}$r=e[0].invalidOp((aw=ax,new aw.constructor.elem(aw)),59,"cannot send to non-channel %s",new NA([d[0]]));$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=50;case 50:return;case 47:if(av.dir===2){$s=51;continue;}$s=52;continue;case 51:az=JR(u,u.Arrow);$s=53;case 53:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}$r=e[0].invalidOp((ay=az,new ay.constructor.elem(ay)),59,"cannot send to receive-only channel %s",new NA([d[0]]));$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=55;case 55:return;case 52:$r=e[0].assignment(f[0],av.elem,"send");$s=56;case 56:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 8:v=p.$val;ba=0;bb=v.Tok;if(bb===(37)){$s=58;continue;}if(bb===(38)){$s=59;continue;}$s=60;continue;case 58:ba=12;$s=61;continue;case 59:ba=13;$s=61;continue;case 60:bd=JR(v,v.TokPos);$s=62;case 62:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}$r=e[0].invalidAST((bc=bd,new bc.constructor.elem(bc)),"unknown inc/dec operation %s",new NA([new C.Token(v.Tok)]));$s=63;case 63:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=64;case 64:return;case 61:case 57:h[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=e[0].expr(h[0],v.X);$s=65;case 65:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(h[0].mode===0){$s=66;continue;}$s=67;continue;case 66:$s=68;case 68:return;case 67:be=EP(h[0].typ);$s=71;case 71:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}if(!be){$s=69;continue;}$s=70;continue;case 69:$r=e[0].invalidOp(v.X,48,"%s%s (non-numeric type %s)",new NA([v.X,new C.Token(v.Tok),h[0].typ]));$s=72;case 72:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=73;case 73:return;case 70:bf=v.X.Pos();$s=74;case 74:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bg=new B.BasicLit.ptr(bf,5,"1");$r=e[0].binary(h[0],$ifaceNil,v.X,bg,ba,v.TokPos);$s=75;case 75:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(h[0].mode===0){$s=76;continue;}$s=77;continue;case 76:$s=78;case 78:return;case 77:bh=e[0].assignVar(v.X,h[0]);$s=79;case 79:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bh;$s=22;continue;case 9:w=p.$val;bi=w.Tok;if((bi===(42))||(bi===(47))){$s=81;continue;}$s=82;continue;case 81:if(w.Lhs.$length===0){$s=84;continue;}$s=85;continue;case 84:$r=e[0].invalidAST(w,"missing lhs in assignment",new NA([]));$s=86;case 86:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=87;case 87:return;case 85:if(w.Tok===47){$s=88;continue;}$s=89;continue;case 88:bk=JR(w,w.TokPos);$s=91;case 91:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}$r=e[0].shortVarDecl((bj=bk,new bj.constructor.elem(bj)),w.Lhs,w.Rhs);$s=92;case 92:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=90;continue;case 89:$r=e[0].assignVars(w.Lhs,w.Rhs);$s=93;case 93:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 90:$s=83;continue;case 82:if(!((w.Lhs.$length===1))||!((w.Rhs.$length===1))){$s=94;continue;}$s=95;continue;case 94:bm=JR(w,w.TokPos);$s=96;case 96:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}$r=e[0].errorf((bl=bm,new bl.constructor.elem(bl)),20,"assignment operation %s requires single-valued expressions",new NA([new C.Token(w.Tok)]));$s=97;case 97:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=98;case 98:return;case 95:bn=CY(w.Tok);if(bn===0){$s=99;continue;}$s=100;continue;case 99:$r=e[0].invalidAST(new JS(((w.TokPos>>0))),"unknown assignment operation %s",new NA([new C.Token(w.Tok)]));$s=101;case 101:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=102;case 102:return;case 100:i[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=e[0].binary(i[0],$ifaceNil,(bo=w.Lhs,(0>=bo.$length?($throwRuntimeError("index out of range"),undefined):bo.$array[bo.$offset+0])),(bp=w.Rhs,(0>=bp.$length?($throwRuntimeError("index out of range"),undefined):bp.$array[bp.$offset+0])),bn,w.TokPos);$s=103;case 103:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(i[0].mode===0){$s=104;continue;}$s=105;continue;case 104:$s=106;case 106:return;case 105:br=e[0].assignVar((bq=w.Lhs,(0>=bq.$length?($throwRuntimeError("index out of range"),undefined):bq.$array[bq.$offset+0])),i[0]);$s=107;case 107:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}br;case 83:case 80:$s=22;continue;case 10:x=p.$val;$r=e[0].suspendedCall("go",x.Call);$s=108;case 108:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 11:y=p.$val;$r=e[0].suspendedCall("defer",y.Call);$s=109;case 109:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 12:z=p.$val;bs=e[0].environment.sig.results;if((z.Results.$length===0)&&bs.Len()>0&&!((bt=bs.vars,(0>=bt.$length?($throwRuntimeError("index out of range"),undefined):bt.$array[bt.$offset+0])).object.name==="")){$s=110;continue;}$s=111;continue;case 110:bu=bs.vars;bv=0;case 113:if(!(bv=bu.$length)?($throwRuntimeError("index out of range"),undefined):bu.$array[bu.$offset+bv]);bx=e[0].environment.lookup(bw.object.name);$s=115;case 115:if($c){$c=false;bx=bx.$blk();}if(bx&&bx.$blk!==undefined){break s;}by=bx;if(!($interfaceIsEqual(by,$ifaceNil))&&!($interfaceIsEqual(by,bw))){$s=116;continue;}$s=117;continue;case 116:$r=e[0].errorf(z,104,"result parameter %s not in scope at return",new NA([new $String(bw.object.name)]));$s=118;case 118:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e[0].errorf(by,104,"\tinner declaration of %s",new NA([bw]));$s=119;case 119:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 117:bv++;$s=113;continue;case 114:$s=112;continue;case 111:bz=NO.nil;if(bs.Len()>0){bz=bs.vars;}$r=e[0].initVars(bz,z.Results,z);$s=120;case 120:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 112:$s=22;continue;case 13:aa=p.$val;if(!(aa.Label===OF.nil)){$s=121;continue;}$s=122;continue;case 121:e[0].environment.hasLabel=true;$s=123;case 123:return;case 122:ca=aa.Tok;if(ca===(61)){$s=125;continue;}if(ca===(65)){$s=126;continue;}if(ca===(69)){$s=127;continue;}$s=128;continue;case 125:if(((b&1)>>>0)===0){$s=130;continue;}$s=131;continue;case 130:$r=e[0].error(aa,110,"break not in for, switch, or select statement");$s=132;case 132:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 131:$s=129;continue;case 126:if(((b&2)>>>0)===0){$s=133;continue;}$s=134;continue;case 133:$r=e[0].error(aa,111,"continue not in for statement");$s=135;case 135:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 134:$s=129;continue;case 127:if(((b&4)>>>0)===0){$s=136;continue;}$s=137;continue;case 136:cb="fallthrough statement out of place";cc=112;if(!((((b&8)>>>0)===0))){cb="cannot fallthrough final case in switch";}$r=e[0].error(aa,cc,cb);$s=138;case 138:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 137:$s=129;continue;case 128:$r=e[0].invalidAST(aa,"branch statement: %s",new NA([new C.Token(aa.Tok)]));$s=139;case 139:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 129:case 124:$s=22;continue;case 14:ab=p.$val;$r=e[0].openScope(ab,"block");$s=140;case 140:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(e[0],"closeScope"),[]]);$r=e[0].stmtList(o,ab.List);$s=141;case 141:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 15:ac=p.$val;$r=e[0].openScope(ac,"if");$s=142;case 142:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(e[0],"closeScope"),[]]);$r=e[0].simpleStmt(ac.Init);$s=143;case 143:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=e[0].expr(j[0],ac.Cond);$s=144;case 144:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(!((j[0].mode===0)))){cd=false;$s=147;continue s;}ce=EM(j[0].typ);$s=148;case 148:if($c){$c=false;ce=ce.$blk();}if(ce&&ce.$blk!==undefined){break s;}cd=!ce;case 147:if(cd){$s=145;continue;}$s=146;continue;case 145:$r=e[0].error(ac.Cond,105,"non-boolean condition in if statement");$s=149;case 149:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 146:$r=e[0].stmt(o,ac.Body);$s=150;case 150:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cf=ac.Else;if(cf===$ifaceNil||$assertType(cf,PQ,true)[1]){$s=151;continue;}if($assertType(cf,QC,true)[1]||$assertType(cf,QB,true)[1]){$s=152;continue;}$s=153;continue;case 151:$s=154;continue;case 152:$r=e[0].stmt(o,ac.Else);$s=155;case 155:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=154;continue;case 153:$r=e[0].invalidAST(ac.Else,"invalid else branch in if statement",new NA([]));$s=156;case 156:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 154:$s=22;continue;case 16:ad=p.$val;o=(o|(1))>>>0;$r=e[0].openScope(ad,"switch");$s=157;case 157:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(e[0],"closeScope"),[]]);$r=e[0].simpleStmt(ad.Init);$s=158;case 158:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);if(!($interfaceIsEqual(ad.Tag,$ifaceNil))){$s=159;continue;}$s=160;continue;case 159:$r=e[0].expr(k[0],ad.Tag);$s=162;case 162:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e[0].assignment(k[0],$ifaceNil,"switch expression");$s=163;case 163:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(!((k[0].mode===0)))){ch=false;$s=167;continue s;}ci=FA(k[0].typ);$s=168;case 168:if($c){$c=false;ci=ci.$blk();}if(ci&&ci.$blk!==undefined){break s;}ch=!ci;case 167:if(!(ch)){cg=false;$s=166;continue s;}cj=FC(k[0].typ);$s=169;case 169:if($c){$c=false;cj=cj.$blk();}if(cj&&cj.$blk!==undefined){break s;}cg=!cj;case 166:if(cg){$s=164;continue;}$s=165;continue;case 164:$r=e[0].errorf(k[0],117,"cannot switch on %s (%s is not comparable)",new NA([k[0],k[0].typ]));$s=170;case 170:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k[0].mode=0;case 165:$s=161;continue;case 160:k[0].mode=4;k[0].typ=(1>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+1]);k[0].val=G.MakeBool(true);k[0].expr=new B.Ident.ptr(ad.Body.Lbrace,"true",QI.nil);case 161:$r=e[0].multipleDefaults(ad.Body.List);$s=171;case 171:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ck=new $global.Map();cl=ad.Body.List;cm=0;case 172:if(!(cm=cl.$length)?($throwRuntimeError("index out of range"),undefined):cl.$array[cl.$offset+cm]);cp=$assertType(co,PN,true);cq=cp[0];if(cq===PN.nil){$s=174;continue;}$s=175;continue;case 174:$r=e[0].invalidAST(co,"incorrect expression switch case",new NA([]));$s=176;case 176:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cm++;$s=172;continue;case 175:$r=e[0].caseValues(k[0],cq.List,ck);$s=177;case 177:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e[0].openScope(cq,"case");$s=178;case 178:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cr=o;if((cn+1>>0)>>0;}else{cr=(cr|(8))>>>0;}$r=e[0].stmtList(cr,cq.Body);$s=179;case 179:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e[0].closeScope();cm++;$s=172;continue;case 173:$s=22;continue;case 17:ae=p.$val;o=(o|(1))>>>0;$r=e[0].openScope(ae,"type switch");$s=180;case 180:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(e[0],"closeScope"),[]]);$r=e[0].simpleStmt(ae.Init);$s=181;case 181:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cs=OF.nil;ct=$ifaceNil;cu=ae.Assign;if($assertType(cu,PT,true)[1]){$s=182;continue;}if($assertType(cu,PW,true)[1]){$s=183;continue;}$s=184;continue;case 182:cv=cu.$val;ct=cv.X;$s=185;continue;case 183:cw=cu.$val;if(!((cw.Lhs.$length===1))||!((cw.Tok===47))||!((cw.Rhs.$length===1))){$s=186;continue;}$s=187;continue;case 186:$r=e[0].invalidAST(ae,"incorrect form of type switch guard",new NA([]));$s=188;case 188:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=189;case 189:return;case 187:cy=$assertType((cz=cw.Lhs,(0>=cz.$length?($throwRuntimeError("index out of range"),undefined):cz.$array[cz.$offset+0])),OF,true);cs=cy[0];if(cs===OF.nil){$s=190;continue;}$s=191;continue;case 190:$r=e[0].invalidAST(ae,"incorrect form of type switch guard",new NA([]));$s=192;case 192:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=193;case 193:return;case 191:if(cs.Name==="_"){$s=194;continue;}$s=195;continue;case 194:$r=e[0].softErrorf(cs,19,"no new variable on left side of :=",new NA([]));$s=197;case 197:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cs=OF.nil;$s=196;continue;case 195:e[0].recordDef(cs,$ifaceNil);case 196:ct=(da=cw.Rhs,(0>=da.$length?($throwRuntimeError("index out of range"),undefined):da.$array[da.$offset+0]));$s=185;continue;case 184:cx=cu;$r=e[0].invalidAST(ae,"incorrect form of type switch guard",new NA([]));$s=198;case 198:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=199;case 199:return;case 185:db=$assertType(ct,QJ,true);dc=db[0];if(dc===QJ.nil||!($interfaceIsEqual(dc.Type,$ifaceNil))){$s=200;continue;}$s=201;continue;case 200:$r=e[0].invalidAST(ae,"incorrect form of type switch guard",new NA([]));$s=202;case 202:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=203;case 203:return;case 201:l[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=e[0].expr(l[0],dc.X);$s=204;case 204:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(l[0].mode===0){$s=205;continue;}$s=206;continue;case 205:$s=207;case 207:return;case 206:dd=PB.nil;if(EY(l[0].typ)){$s=208;continue;}$s=209;continue;case 208:$r=e[0].errorf(l[0],116,"cannot use type switch on type parameter value %s",new NA([l[0]]));$s=211;case 211:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=210;continue;case 209:df=CF(l[0].typ);$s=212;case 212:if($c){$c=false;df=df.$blk();}if(df&&df.$blk!==undefined){break s;}de=$assertType(df,NH,true);dg=de[1];if(dg){$s=213;continue;}$s=214;continue;case 213:dd=l[0];$s=215;continue;case 214:$r=e[0].errorf(l[0],116,"%s is not an interface",new NA([l[0]]));$s=216;case 216:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 215:case 210:$r=e[0].multipleDefaults(ae.Body.List);$s=217;case 217:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}dh=NO.nil;di=new $global.Map();dj=ae.Body.List;dk=0;case 218:if(!(dk=dj.$length)?($throwRuntimeError("index out of range"),undefined):dj.$array[dj.$offset+dk]);dm=$assertType(dl,PN,true);dn=dm[0];if(dn===PN.nil){$s=220;continue;}$s=221;continue;case 220:$r=e[0].invalidAST(dl,"incorrect type switch case",new NA([]));$s=222;case 222:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}dk++;$s=218;continue;case 221:dp=e[0].caseTypes(dd,dn.List,di);$s=223;case 223:if($c){$c=false;dp=dp.$blk();}if(dp&&dp.$blk!==undefined){break s;}dq=dp;$r=e[0].openScope(dn,"case");$s=224;case 224:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(cs===OF.nil)){$s=225;continue;}$s=226;continue;case 225:if(!((dn.List.$length===1))||$interfaceIsEqual(dq,$ifaceNil)){dq=l[0].typ;}dr=GD(cs.Pos(),e[0].pkg,cs.Name,dq);ds=dn.Pos()+7>>0;dt=dn.List.$length;if(dt>0){$s=227;continue;}$s=228;continue;case 227:dw=(du=dn.List,dv=dt-1>>0,((dv<0||dv>=du.$length)?($throwRuntimeError("index out of range"),undefined):du.$array[du.$offset+dv])).End();$s=229;case 229:if($c){$c=false;dw=dw.$blk();}if(dw&&dw.$blk!==undefined){break s;}ds=dw;case 228:$r=e[0].declare(e[0].environment.scope,OF.nil,dr,ds);$s=230;case 230:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e[0].recordImplicit(dn,dr);dh=$append(dh,dr);case 226:$r=e[0].stmtList(o,dn.Body);$s=231;case 231:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e[0].closeScope();dk++;$s=218;continue;case 219:if(!(cs===OF.nil)){$s=232;continue;}$s=233;continue;case 232:dx=false;dy=dh;dz=0;while(true){if(!(dz=dy.$length)?($throwRuntimeError("index out of range"),undefined):dy.$array[dy.$offset+dz]);if(ea.used){dx=true;}ea.used=true;dz++;}if(!dx){$s=234;continue;}$s=235;continue;case 234:$r=e[0].softErrorf(cs,101,"%s declared but not used",new NA([new $String(cs.Name)]));$s=236;case 236:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 235:case 233:$s=22;continue;case 18:af=p.$val;o=(o|(1))>>>0;$r=e[0].multipleDefaults(af.Body.List);$s=237;case 237:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}eb=af.Body.List;ec=0;case 238:if(!(ec=eb.$length)?($throwRuntimeError("index out of range"),undefined):eb.$array[eb.$offset+ec]);ee=$assertType(ed,PO,true);ef=ee[0];if(ef===PO.nil){ec++;$s=238;continue;}eg=false;eh=$ifaceNil;ei=ef.Comm;if(ei===$ifaceNil||$assertType(ei,PU,true)[1]){ej=ei;eg=true;}else if($assertType(ei,PW,true)[1]){ek=ei.$val;if(ek.Rhs.$length===1){eh=(em=ek.Rhs,(0>=em.$length?($throwRuntimeError("index out of range"),undefined):em.$array[em.$offset+0]));}}else if($assertType(ei,PT,true)[1]){el=ei.$val;eh=el.X;}if(!($interfaceIsEqual(eh,$ifaceNil))){en=$assertType(LE(eh),NT,true);eo=en[0];if(!(eo===NT.nil)&&(eo.Op===36)){eg=true;}}if(!eg){$s=240;continue;}$s=241;continue;case 240:$r=e[0].error(ef.Comm,118,"select case must be send or receive (possibly with assignment)");$s=242;case 242:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ec++;$s=238;continue;case 241:$r=e[0].openScope(ed,"case");$s=243;case 243:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(ef.Comm,$ifaceNil))){$s=244;continue;}$s=245;continue;case 244:$r=e[0].stmt(o,ef.Comm);$s=246;case 246:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 245:$r=e[0].stmtList(o,ef.Body);$s=247;case 247:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e[0].closeScope();ec++;$s=238;continue;case 239:$s=22;continue;case 19:ag=p.$val;o=(o|(3))>>>0;$r=e[0].openScope(ag,"for");$s=248;case 248:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(e[0],"closeScope"),[]]);$r=e[0].simpleStmt(ag.Init);$s=249;case 249:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(ag.Cond,$ifaceNil))){$s=250;continue;}$s=251;continue;case 250:m[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=e[0].expr(m[0],ag.Cond);$s=252;case 252:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(!((m[0].mode===0)))){ep=false;$s=255;continue s;}eq=EM(m[0].typ);$s=256;case 256:if($c){$c=false;eq=eq.$blk();}if(eq&&eq.$blk!==undefined){break s;}ep=!eq;case 255:if(ep){$s=253;continue;}$s=254;continue;case 253:$r=e[0].error(ag.Cond,105,"non-boolean condition in for statement");$s=257;case 257:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 254:case 251:$r=e[0].simpleStmt(ag.Post);$s=258;case 258:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}er=$assertType(ag.Post,PW,true);es=er[0];if(!(es===PW.nil)&&(es.Tok===47)){$s=259;continue;}$s=260;continue;case 259:$r=e[0].softErrorf(es,106,"cannot declare in post statement",new NA([]));$s=261;case 261:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e[0].use(es.Lhs);$s=262;case 262:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 260:$r=e[0].stmt(o,ag.Body);$s=263;case 263:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 20:ah=p.$val;o=(o|(3))>>>0;n[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=e[0].expr(n[0],ah.X);$s=264;case 264:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}et=$ifaceNil;eu=$ifaceNil;ev=et;ew=eu;if(!((n[0].mode===0))){$s=265;continue;}$s=266;continue;case 265:ex="";ey=CG(n[0].typ);$s=267;case 267:if($c){$c=false;ey=ey.$blk();}if(ey&&ey.$blk!==undefined){break s;}ez=ey;fa=ez;if(fa===$ifaceNil){$s=268;continue;}if($assertType(fa,OE,true)[1]){$s=269;continue;}$s=270;continue;case 268:fb=fa;fd=e[0].sprintf("%s has no core type",new NA([n[0].typ]));$s=271;case 271:if($c){$c=false;fd=fd.$blk();}if(fd&&fd.$blk!==undefined){break s;}ex=fd;$s=270;continue;case 269:fc=fa.$val;if(!($interfaceIsEqual(ah.Value,$ifaceNil))){$s=272;continue;}$s=273;continue;case 272:$r=e[0].softErrorf(ah.Value,108,"range over %s permits only one iteration variable",new NA([n[0]]));$s=274;case 274:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 273:if(fc.dir===1){ex="receive from send-only channel";}case 270:ff=DC(ez);$s=275;case 275:if($c){$c=false;ff=ff.$blk();}if(ff&&ff.$blk!==undefined){break s;}fe=ff;ev=fe[0];ew=fe[1];if($interfaceIsEqual(ev,$ifaceNil)||!(ex==="")){$s=276;continue;}$s=277;continue;case 276:if(ex===""){$s=278;continue;}$s=279;continue;case 278:$r=e[0].softErrorf(n[0],109,"cannot range over %s",new NA([n[0]]));$s=281;case 281:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=280;continue;case 279:$r=e[0].softErrorf(n[0],109,"cannot range over %s (%s)",new NA([n[0],new $String(ex)]));$s=282;case 282:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 280:case 277:case 266:$r=e[0].openScope(ah,"range");$s=283;case 283:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(e[0],"closeScope"),[]]);fg=$toNativeArray($kindInterface,[ah.Key,ah.Value]);fh=$toNativeArray($kindInterface,[ev,ew]);if(ah.Tok===47){$s=284;continue;}$s=285;continue;case 284:fi=NO.nil;fj=fg;fk=0;case 287:if(!(fk<2)){$s=288;continue;}fl=fk;fm=((fk<0||fk>=fj.length)?($throwRuntimeError("index out of range"),undefined):fj[fk]);if($interfaceIsEqual(fm,$ifaceNil)){fk++;$s=287;continue;}fn=NN.nil;fo=$assertType(fm,OF,true);fp=fo[0];if(!(fp===OF.nil)){$s=289;continue;}$s=290;continue;case 289:fq=fp.Name;fn=GD(fp.Pos(),e[0].pkg,fq,$ifaceNil);e[0].recordDef(fp,fn);if(!(fq==="_")){fi=$append(fi,fn);}$s=291;continue;case 290:$r=e[0].invalidAST(fm,"cannot declare %s",new NA([fm]));$s=292;case 292:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}fr=fm.Pos();$s=293;case 293:if($c){$c=false;fr=fr.$blk();}if(fr&&fr.$blk!==undefined){break s;}fs=GD(fr,e[0].pkg,"_",$ifaceNil);$s=294;case 294:if($c){$c=false;fs=fs.$blk();}if(fs&&fs.$blk!==undefined){break s;}fn=fs;case 291:ft=((fl<0||fl>=fh.length)?($throwRuntimeError("index out of range"),undefined):fh[fl]);if(!($interfaceIsEqual(ft,$ifaceNil))){$s=295;continue;}$s=296;continue;case 295:n[0].mode=7;n[0].expr=fm;n[0].typ=ft;fu=e[0].initVar(fn,n[0],"range clause");$s=298;case 298:if($c){$c=false;fu=fu.$blk();}if(fu&&fu.$blk!==undefined){break s;}fu;$s=297;continue;case 296:fn.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);fn.used=true;case 297:fk++;$s=287;continue;case 288:if(fi.$length>0){$s=299;continue;}$s=300;continue;case 299:fv=ah.Body.Pos();fw=fi;fx=0;case 302:if(!(fx=fw.$length)?($throwRuntimeError("index out of range"),undefined):fw.$array[fw.$offset+fx]);$r=e[0].declare(e[0].environment.scope,OF.nil,fy,fv);$s=304;case 304:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}fx++;$s=302;continue;case 303:$s=301;continue;case 300:ga=JR(ah,ah.TokPos);$s=305;case 305:if($c){$c=false;ga=ga.$blk();}if(ga&&ga.$blk!==undefined){break s;}$r=e[0].error((fz=ga,new fz.constructor.elem(fz)),19,"no new variables on left side of :=");$s=306;case 306:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 301:$s=286;continue;case 285:gb=fg;gc=0;case 307:if(!(gc<2)){$s=308;continue;}gd=gc;ge=((gc<0||gc>=gb.length)?($throwRuntimeError("index out of range"),undefined):gb[gc]);if($interfaceIsEqual(ge,$ifaceNil)){gc++;$s=307;continue;}gf=((gd<0||gd>=fh.length)?($throwRuntimeError("index out of range"),undefined):fh[gd]);if(!($interfaceIsEqual(gf,$ifaceNil))){$s=309;continue;}$s=310;continue;case 309:n[0].mode=7;n[0].expr=ge;n[0].typ=gf;gg=e[0].assignVar(ge,n[0]);$s=311;case 311:if($c){$c=false;gg=gg.$blk();}if(gg&&gg.$blk!==undefined){break s;}gg;case 310:gc++;$s=307;continue;case 308:case 286:$r=e[0].stmt(o,ah.Body);$s=312;case 312:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 21:ai=p;$r=e[0].invalidAST(ai,"invalid statement",new NA([]));$s=313;case 313:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 22:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.stmt,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};KR.prototype.stmt=function(b,c){return this.$val.stmt(b,c);};DC=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=$ifaceNil;d=$ifaceNil;f=LD(b);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;if($assertType(e,MY,true)[1]){$s=2;continue;}if($assertType(e,NE,true)[1]){$s=3;continue;}if($assertType(e,OA,true)[1]){$s=4;continue;}if($assertType(e,OD,true)[1]){$s=5;continue;}if($assertType(e,OE,true)[1]){$s=6;continue;}$s=7;continue;case 2:g=e.$val;l=EI(g);$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}if(l){$s=8;continue;}$s=9;continue;case 8:m=(2>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+2]);n=AA;c=m;d=n;$s=-1;return[c,d];case 9:$s=7;continue;case 3:h=e.$val;o=(2>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+2]);p=h.elem;c=o;d=p;$s=-1;return[c,d];case 4:i=e.$val;q=(2>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+2]);r=i.elem;c=q;d=r;$s=-1;return[c,d];case 5:j=e.$val;s=j.key;t=j.elem;c=s;d=t;$s=-1;return[c,d];case 6:k=e.$val;u=k.elem;v=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);c=u;d=v;$s=-1;return[c,d];case 7:$s=-1;return[c,d];}return;}var $f={$blk:DC,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};DE=function(b){var b;return new DD.ptr(b);};$pkg.NewSlice=DE;DD.ptr.prototype.Elem=function(){var b;b=this;return b.elem;};DD.prototype.Elem=function(){return this.$val.Elem();};DD.ptr.prototype.Underlying=function(){var b;b=this;return b;};DD.prototype.Underlying=function(){return this.$val.Underlying();};DD.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BF(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:DD.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};DD.prototype.String=function(){return this.$val.String();};DG.ptr.prototype.Alignof=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=CF(b);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;if($assertType(d,NE,true)[1]){$s=2;continue;}if($assertType(d,NF,true)[1]){$s=3;continue;}if($assertType(d,OA,true)[1]||$assertType(d,NH,true)[1]){$s=4;continue;}if($assertType(d,MY,true)[1]){$s=5;continue;}if($assertType(d,NJ,true)[1]||$assertType(d,NG,true)[1]){$s=6;continue;}$s=7;continue;case 2:f=d.$val;k=c.Alignof(f.elem);$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=9;case 9:return l;case 3:g=d.$val;m=new $Int64(0,1);n=g.fields;o=0;case 10:if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]);q=c.Alignof(p.object.typ);$s=12;case 12:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;if((r.$high>m.$high||(r.$high===m.$high&&r.$low>m.$low))){m=r;}o++;$s=10;continue;case 11:$s=-1;return m;case 4:h=d;JM(!EY(b));$s=-1;return c.WordSize;case 5:i=d.$val;if(!(((i.Info()&32)===0))){$s=-1;return c.WordSize;}$s=7;continue;case 6:j=d;JN();case 7:s=c.Sizeof(b);$s=13;case 13:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;if((t.$high<0||(t.$high===0&&t.$low<1))){$s=-1;return new $Int64(0,1);}u=EG(b);$s=16;case 16:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}if(u){$s=14;continue;}$s=15;continue;case 14:t=$div64(t,(new $Int64(0,2)),false);case 15:if((v=c.MaxAlign,(t.$high>v.$high||(t.$high===v.$high&&t.$low>v.$low)))){$s=-1;return c.MaxAlign;}$s=-1;return t;}return;}var $f={$blk:DG.ptr.prototype.Alignof,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};DG.prototype.Alignof=function(b){return this.$val.Alignof(b);};DG.ptr.prototype.Offsetsof=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=$makeSlice(QK,b.$length);e=new $Int64(0,0);f=b;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=c.Alignof(i.object.typ);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;e=DL(e,k);((h<0||h>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+h]=e);m=c.Sizeof(i.object.typ);$s=4;case 4:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}e=(l=m,new $Int64(e.$high+l.$high,e.$low+l.$low));g++;$s=1;continue;case 2:$s=-1;return d;}return;}var $f={$blk:DG.ptr.prototype.Offsetsof,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};DG.prototype.Offsetsof=function(b){return this.$val.Offsetsof(b);};DG.ptr.prototype.Sizeof=function(b){var{aa,ab,ac,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=CF(b);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;if($assertType(d,MY,true)[1]){$s=2;continue;}if($assertType(d,NE,true)[1]){$s=3;continue;}if($assertType(d,OA,true)[1]){$s=4;continue;}if($assertType(d,NF,true)[1]){$s=5;continue;}if($assertType(d,NH,true)[1]){$s=6;continue;}if($assertType(d,NJ,true)[1]||$assertType(d,NG,true)[1]){$s=7;continue;}$s=8;continue;case 2:f=d.$val;JM(EV(b));l=f.kind;if(((l>>0))<17){m=((l<0||l>=DH.length)?($throwRuntimeError("index out of range"),undefined):DH[l]);if(m>0){$s=-1;return(new $Int64(0,m));}}if(l===17){$s=-1;return $mul64(c.WordSize,new $Int64(0,2));}$s=8;continue;case 3:g=d.$val;n=g.len;if((n.$high<0||(n.$high===0&&n.$low<=0))){$s=-1;return new $Int64(0,0);}o=c.Alignof(g.elem);$s=9;case 9:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=c.Sizeof(g.elem);$s=10;case 10:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;$s=-1;return(s=$mul64(DL(r,p),(new $Int64(n.$high-0,n.$low-1))),new $Int64(s.$high+r.$high,s.$low+r.$low));case 4:h=d.$val;$s=-1;return $mul64(c.WordSize,new $Int64(0,3));case 5:i=d.$val;t=i.NumFields();if(t===0){$s=-1;return new $Int64(0,0);}u=c.Offsetsof(i.fields);$s=11;case 11:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;ab=c.Sizeof((z=i.fields,aa=t-1>>0,((aa<0||aa>=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+aa])).object.typ);$s=12;case 12:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=(w=(x=t-1>>0,((x<0||x>=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+x])),y=ab,new $Int64(w.$high+y.$high,w.$low+y.$low));$s=13;case 13:return ac;case 6:j=d.$val;JM(!EY(b));$s=-1;return $mul64(c.WordSize,new $Int64(0,2));case 7:k=d;JN();case 8:$s=-1;return c.WordSize;}return;}var $f={$blk:DG.ptr.prototype.Sizeof,$c:true,$r,aa,ab,ac,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};DG.prototype.Sizeof=function(b){return this.$val.Sizeof(b);};DJ=function(b,c){var b,c,d,e,f,g,h,i;d=false;e=b;if(e===("gc")){d=DI;}else if(e===("gccgo")){d=IL;}else{return $ifaceNil;}f=(g=$mapIndex(d,$String.keyFor(c)),g!==undefined?[g.v,true]:[QL.nil,false]);h=f[0];i=f[1];if(!i){return $ifaceNil;}return h;};$pkg.SizesFor=DJ;LS.ptr.prototype.alignof=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.Sizes;if(!($interfaceIsEqual(d,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:e=d.Alignof(b);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if((f.$high>0||(f.$high===0&&f.$low>=1))){$s=-1;return f;}$panic(new $String("Config.Sizes.Alignof returned an alignment < 1"));case 2:g=DK.Alignof(b);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=5;case 5:return h;}return;}var $f={$blk:LS.ptr.prototype.alignof,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};LS.prototype.alignof=function(b){return this.$val.alignof(b);};LS.ptr.prototype.offsetsof=function(b){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=QK.nil;if(b.NumFields()>0){$s=1;continue;}$s=2;continue;case 1:e=c.Sizes;if(!($interfaceIsEqual(e,$ifaceNil))){$s=3;continue;}$s=4;continue;case 3:f=e.Offsetsof(b.fields);$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}d=f;if(!((d.$length===b.NumFields()))){$panic(new $String("Config.Sizes.Offsetsof returned the wrong number of offsets"));}g=d;h=0;while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if((i.$high<0||(i.$high===0&&i.$low<0))){$panic(new $String("Config.Sizes.Offsetsof returned an offset < 0"));}h++;}$s=5;continue;case 4:j=DK.Offsetsof(b.fields);$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}d=j;case 5:case 2:$s=-1;return d;}return;}var $f={$blk:LS.ptr.prototype.offsetsof,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};LS.prototype.offsetsof=function(b){return this.$val.offsetsof(b);};LS.ptr.prototype.offsetof=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=new $Int64(0,0);f=c;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);i=CF(b);$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=$assertType(i,NF);m=d.offsetsof(j);$s=4;case 4:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}e=(k=(l=m,((h<0||h>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+h])),new $Int64(e.$high+k.$high,e.$low+k.$low));b=(n=j.fields,((h<0||h>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+h])).object.typ;g++;$s=1;continue;case 2:$s=-1;return e;}return;}var $f={$blk:LS.ptr.prototype.offsetof,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};LS.prototype.offsetof=function(b,c){return this.$val.offsetof(b,c);};LS.ptr.prototype.sizeof=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.Sizes;if(!($interfaceIsEqual(d,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:e=d.Sizeof(b);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if((f.$high>0||(f.$high===0&&f.$low>=0))){$s=-1;return f;}$panic(new $String("Config.Sizes.Sizeof returned a size < 0"));case 2:g=DK.Sizeof(b);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=5;case 5:return h;}return;}var $f={$blk:LS.ptr.prototype.sizeof,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};LS.prototype.sizeof=function(b){return this.$val.sizeof(b);};DL=function(b,c){var b,c,d,e,f;e=(d=new $Int64(b.$high+c.$high,b.$low+c.$low),new $Int64(d.$high-0,d.$low-1));return(f=$div64(e,c,true),new $Int64(e.$high-f.$high,e.$low-f.$low));};DN=function(b,c,d,e){var b,c,d,e;return DO(b,NL.nil,NL.nil,c,d,e);};$pkg.NewSignature=DN;DO=function(b,c,d,e,f,g){var b,c,d,e,f,g,h,i,j,k;if(g){h=e.Len();if(h===0){$panic(new $String("variadic function must have at least one parameter"));}i=$assertType(e.At(h-1>>0).object.typ,OA,true);j=i[1];if(!j){$panic(new $String("variadic parameter must be of unnamed slice type"));}}k=new DM.ptr(OX.nil,OX.nil,ME.nil,b,e,f,g);if(!((c.$length===0))){if(b===NN.nil){$panic(new $String("function with receiver type parameters must have a receiver"));}k.rparams=CD(c);}if(!((d.$length===0))){if(!(b===NN.nil)){$panic(new $String("function with type parameters cannot have a receiver"));}k.tparams=CD(d);}return k;};$pkg.NewSignatureType=DO;DM.ptr.prototype.Recv=function(){var b;b=this;return b.recv;};DM.prototype.Recv=function(){return this.$val.Recv();};DM.ptr.prototype.TypeParams=function(){var b;b=this;return b.tparams;};DM.prototype.TypeParams=function(){return this.$val.TypeParams();};DM.ptr.prototype.RecvTypeParams=function(){var b;b=this;return b.rparams;};DM.prototype.RecvTypeParams=function(){return this.$val.RecvTypeParams();};DM.ptr.prototype.Params=function(){var b;b=this;return b.params;};DM.prototype.Params=function(){return this.$val.Params();};DM.ptr.prototype.Results=function(){var b;b=this;return b.results;};DM.prototype.Results=function(){return this.$val.Results();};DM.ptr.prototype.Variadic=function(){var b;b=this;return b.variadic;};DM.prototype.Variadic=function(){return this.$val.Variadic();};DM.ptr.prototype.Underlying=function(){var b;b=this;return b;};DM.prototype.Underlying=function(){return this.$val.Underlying();};DM.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BF(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:DM.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};DM.prototype.String=function(){return this.$val.String();};KR.ptr.prototype.funcType=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];e=[e];f=[f];e[0]=this;$r=e[0].openScope(d,"function");$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e[0].environment.scope.isFunc=true;e[0].recordScope(d,e[0].environment.scope);b[0].scope=e[0].environment.scope;$deferred.push([$methodVal(e[0],"closeScope"),[]]);if(!(c===OY.nil)&&c.List.$length>0){$s=2;continue;}$s=3;continue;case 2:i=e[0].unpackRecv((h=c.List,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0])).Type,true);$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}g=i;j=g[1];k=g[2];if(k.$length>0){$s=5;continue;}$s=6;continue;case 5:l=e[0].declareTypeParams(NL.nil,k);$s=7;case 7:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;b[0].rparams=CD(m);n=k;o=0;while(true){if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]);if(q.Name==="_"){if(e[0].recvTParamMap===false){e[0].recvTParamMap=new $global.Map();}r=q;(e[0].recvTParamMap||$throwRuntimeError("assignment to entry in nil map")).set(OF.keyFor(r),{k:r,v:((p<0||p>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+p])});}o++;}s=NL.nil;if(!(j===OF.nil)){$s=8;continue;}$s=9;continue;case 8:u=e[0].genericType(j,OJ.nil);$s=10;case 10:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=$assertType(u,NI,true);v=t[0];if(!(v===NI.nil)){$s=11;continue;}$s=12;continue;case 11:w=v.TypeParams();$s=13;case 13:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w.list();$s=14;case 14:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}s=x;case 12:case 9:if(m.$length===s.$length){$s=15;continue;}if(m.$length=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+aa]);ad=((ab<0||ab>=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+ab]);e[0].mono.recordCanon(ac,ad);ae=e[0].subst(ac.obj.object.pos,ad.bound,y,OZ.nil);$s=20;case 20:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ac.bound=ae;aa++;$s=18;continue;case 19:$s=17;continue;case 16:af=LK(m.$length,"type parameter");$s=21;case 21:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;$r=e[0].errorf(c,31,"got %s, but receiver base type declares %d",new NA([new $String(ag),new $Int(s.$length)]));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:case 6:case 3:if(!(d.TypeParams===OY.nil)){$s=23;continue;}$s=24;continue;case 23:$r=e[0].collectTypeParams((b[0].$ptr_tparams||(b[0].$ptr_tparams=new QM(function(){return this.$target.tparams;},function($v){this.$target.tparams=$v;},b[0]))),d.TypeParams);$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(c===OY.nil)){$s=26;continue;}$s=27;continue;case 26:$r=e[0].errorf(d.TypeParams,143,"methods cannot have type parameters",new NA([]));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 27:case 24:ah=DT(e[0].environment.scope,0,0,"function body (temp. scope)");aj=e[0].collectParams(ah,c,false);$s=29;case 29:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ai=aj;ak=ai[0];am=e[0].collectParams(ah,d.Params,true);$s=30;case 30:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}al=am;an=al[0];ao=al[1];aq=e[0].collectParams(ah,d.Results,false);$s=31;case 31:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ap=aq;ar=ap[0];$r=ah.squash((function(b,e,f){return function $b(as,at){var{as,at,au,av,aw,$s,$r,$c}=$restore(this,{as,at});$s=$s||0;s:while(true){switch($s){case 0:au=as;av=as.Name();$s=1;case 1:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=new $String(av);$r=e[0].errorf(au,10,"%s redeclared in this block",new NA([aw]));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e[0].reportAltDecl(at);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,as,at,au,av,aw,$s};return $f;};})(b,e,f));$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(c===OY.nil)){$s=33;continue;}$s=34;continue;case 33:f[0]=NN.nil;as=ak.$length;if(as===(0)){$s=36;continue;}if(as===(1)){$s=37;continue;}$s=38;continue;case 36:f[0]=GE(0,MF.nil,"",(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]));$s=39;continue;case 37:f[0]=(0>=ak.$length?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+0]);$s=39;continue;case 38:$r=e[0].error((at=ak.$length-1>>0,((at<0||at>=ak.$length)?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+at])),32,"method must have exactly one receiver");$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f[0]=(0>=ak.$length?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+0]);case 39:case 35:b[0].recv=f[0];e[0].later((function(b,e,f){return function $b(){var{au,av,aw,ax,ay,az,ba,bb,bc,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:au=[au];av=HP(f[0].object.typ);aw=av[0];if(!($interfaceIsEqual(aw,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0])))){$s=1;continue;}$s=2;continue;case 1:au[0]="";ax=aw;if($assertType(ax,NI,true)[1]){$s=3;continue;}if($assertType(ax,MY,true)[1]){$s=4;continue;}$s=5;continue;case 3:ay=ax.$val;bb=ay.resolve(e[0].bestContext(OZ.nil));$s=7;case 7:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bb;if(!(ay.TypeArgs()===NK.nil)&&b[0].RecvTypeParams()===OX.nil){$s=8;continue;}$s=9;continue;case 8:$r=e[0].errorf(f[0],32,"cannot define methods on instantiated type %s",new NA([f[0].object.typ]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=6;continue;case 9:if(!(ay.obj.object.pkg===e[0].pkg)){$s=11;continue;}$s=12;continue;case 11:au[0]="type not defined in this package";if(false){$s=14;continue;}$s=15;continue;case 14:$r=e[0].errorf(f[0],32,"cannot define new methods on non-local type %s",new NA([f[0].object.typ]));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}au[0]="";case 15:$s=13;continue;case 12:bc=IY(ay,(function(au,b,e,f){return function(bc){var bc,bd,be,bf;bd=bc;if($assertType(bd,MY,true)[1]){be=bd.$val;if(be.kind===18){au[0]="unsafe.Pointer";return false;}}else if($assertType(bd,OB,true)[1]||$assertType(bd,NH,true)[1]){bf=bd;au[0]="pointer or interface type";return false;}return true;};})(au,b,e,f));$s=17;case 17:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bc;case 13:$s=6;continue;case 4:az=ax.$val;au[0]="basic or unnamed type";if(false){$s=18;continue;}$s=19;continue;case 18:$r=e[0].errorf(f[0],32,"cannot define new methods on non-local type %s",new NA([f[0].object.typ]));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}au[0]="";case 19:$s=6;continue;case 5:ba=ax;$r=e[0].errorf(f[0],32,"invalid receiver type %s",new NA([f[0].object.typ]));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:if(!(au[0]==="")){$s=22;continue;}$s=23;continue;case 22:$r=e[0].errorf(f[0],32,"invalid receiver type %s (%s)",new NA([f[0].object.typ,new $String(au[0])]));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 23:case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,au,av,aw,ax,ay,az,ba,bb,bc,$s};return $f;};})(b,e,f)).describef(f[0],"validate receiver %s",new NA([f[0]]));case 34:b[0].params=CK(an);b[0].results=CK(ar);b[0].variadic=ao;$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.funcType,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};KR.prototype.funcType=function(b,c,d){return this.$val.funcType(b,c,d);};KR.ptr.prototype.collectParams=function(b,c,d){var{aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=NO.nil;f=false;g=this;if(c===OY.nil){$s=-1;return[e,f];}h=false;i=false;j=h;k=i;l=c.List;m=0;case 1:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);p=o.Type;q=$assertType(p,OQ,true);r=q[0];if(!(r===OQ.nil)){$s=3;continue;}$s=4;continue;case 3:p=r.Elt;if(d&&(n===(c.List.$length-1>>0))&&o.Names.$length<=1){$s=5;continue;}$s=6;continue;case 5:f=true;$s=7;continue;case 6:$r=g.softErrorf(r,79,"can only use ... with final parameter in list",new NA([]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:case 4:s=g.varType(p);$s=9;case 9:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;if(o.Names.$length>0){$s=10;continue;}$s=11;continue;case 10:u=o.Names;v=0;case 13:if(!(v=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v]);if(w.Name===""){$s=15;continue;}$s=16;continue;case 15:$r=g.invalidAST(w,"anonymous parameter",new NA([]));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 16:x=GE(w.Pos(),g.pkg,w.Name,t);$r=g.declare(b,w,x,b.pos);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=$append(e,x);v++;$s=13;continue;case 14:j=true;$s=12;continue;case 11:y=p.Pos();$s=19;case 19:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=GE(y,g.pkg,"",t);$s=20;case 20:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;g.recordImplicit(o,aa);e=$append(e,aa);k=true;case 12:m++;$s=1;continue;case 2:if(j&&k){$s=21;continue;}$s=22;continue;case 21:$r=g.invalidAST(c,"list contains both named and anonymous parameters",new NA([]));$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 22:if(f){$s=24;continue;}$s=25;continue;case 24:ac=(ab=e.$length-1>>0,((ab<0||ab>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+ab]));ac.object.typ=new DD.ptr(ac.object.typ);$r=g.recordTypeAndValue((ad=c.List,ae=c.List.$length-1>>0,((ae<0||ae>=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ae])).Type,3,ac.object.typ,$ifaceNil);$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 25:$s=-1;return[e,f];}return;}var $f={$blk:KR.ptr.prototype.collectParams,$c:true,$r,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.collectParams=function(b,c,d){return this.$val.collectParams(b,c,d);};DQ.ptr.prototype.Kind=function(){var b;b=this;return b.kind;};DQ.prototype.Kind=function(){return this.$val.Kind();};DQ.ptr.prototype.Recv=function(){var b;b=this;return b.recv;};DQ.prototype.Recv=function(){return this.$val.Recv();};DQ.ptr.prototype.Obj=function(){var b;b=this;return b.obj;};DQ.prototype.Obj=function(){return this.$val.Obj();};DQ.ptr.prototype.Type=function(){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];e=[e];f=this;g=f.kind;if(g===(1)){d[0]=$clone($assertType($assertType(f.obj,MI).object.typ,OC),DM);c[0]=$clone(d[0].recv,GC);c[0].object.typ=f.recv;d[0].recv=c[0];$s=-1;return d[0];}else if(g===(2)){e[0]=$clone($assertType($assertType(f.obj,MI).object.typ,OC),DM);b[0]=$clone(e[0].recv,GC);e[0].recv=NN.nil;b[0].object.typ=f.recv;h=NO.nil;if(!(e[0].params===NM.nil)){h=e[0].params.vars;}e[0].params=CK($appendSlice(new NO([b[0]]),h));$s=-1;return e[0];}i=f.obj.Type();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=2;case 2:return j;}return;}var $f={$blk:DQ.ptr.prototype.Type,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};DQ.prototype.Type=function(){return this.$val.Type();};DQ.ptr.prototype.Index=function(){var b;b=this;return b.index;};DQ.prototype.Index=function(){return this.$val.Index();};DQ.ptr.prototype.Indirect=function(){var b;b=this;return b.indirect;};DQ.prototype.Indirect=function(){return this.$val.Indirect();};DQ.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=DR(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:DQ.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};DQ.prototype.String=function(){return this.$val.String();};DR=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e="";f=b.kind;if(f===(0)){e="field ";}else if(f===(1)){e="method ";}else if(f===(2)){e="method expr ";}else{JN();}d[0]=new H.Buffer.ptr(NZ.nil,0,0);g=d[0].WriteString(e);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;h=d[0].WriteByte(40);$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;$r=BH(d[0],b.Recv(),c);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=d[0];j=b.obj.Name();$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=new $String(j);l=A.Fprintf(i,") %s",new NA([k]));$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;m=b.Type();$s=6;case 6:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;if(b.kind===0){$s=7;continue;}$s=8;continue;case 7:o=d[0].WriteByte(32);$s=10;case 10:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;$r=BH(d[0],n,c);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=9;continue;case 8:$r=BI(d[0],$assertType(n,OC),c);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:$s=-1;return d[0].String();}return;}var $f={$blk:DR,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};$pkg.SelectionString=DR;DT=function(b,c,d,e){var b,c,d,e,f;f=new DS.ptr(b,QN.nil,0,false,c,d,e,false);if(!(b===ME.nil)&&!(b===$pkg.Universe)){b.children=$append(b.children,f);f.number=b.children.$length;}return f;};$pkg.NewScope=DT;DS.ptr.prototype.Parent=function(){var b;b=this;return b.parent;};DS.prototype.Parent=function(){return this.$val.Parent();};DS.ptr.prototype.Len=function(){var b;b=this;return(b.elems?b.elems.size:0);};DS.prototype.Len=function(){return this.$val.Len();};DS.ptr.prototype.Names=function(){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=$makeSlice(NB,(b.elems?b.elems.size:0));d=0;e=b.elems;f=0;g=e?e.keys():undefined;h=e?e.size:0;while(true){if(!(f=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=k);d=d+(1)>>0;f++;}$r=J.Strings(c);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c;}return;}var $f={$blk:DS.ptr.prototype.Names,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};DS.prototype.Names=function(){return this.$val.Names();};DS.ptr.prototype.NumChildren=function(){var b;b=this;return b.children.$length;};DS.prototype.NumChildren=function(){return this.$val.NumChildren();};DS.ptr.prototype.Child=function(b){var b,c,d;c=this;return(d=c.children,((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));};DS.prototype.Child=function(b){return this.$val.Child(b);};DS.ptr.prototype.Lookup=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=DV(b,(d=$mapIndex(c.elems,$String.keyFor(b)),d!==undefined?d.v:$ifaceNil));$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:DS.ptr.prototype.Lookup,$c:true,$r,b,c,d,e,f,$s};return $f;};DS.prototype.Lookup=function(b){return this.$val.Lookup(b);};DS.ptr.prototype.LookupParent=function(b,c){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;case 1:if(!(!(d===ME.nil))){$s=2;continue;}e=d.Lookup(b);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!(!($interfaceIsEqual(f,$ifaceNil)))){g=false;$s=6;continue s;}if(!new C.Pos(c).IsValid()){h=true;$s=7;continue s;}i=f.scopePos();$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i<=c;case 7:g=h;case 6:if(g){$s=4;continue;}$s=5;continue;case 4:$s=-1;return[d,f];case 5:d=d.parent;$s=1;continue;case 2:$s=-1;return[ME.nil,$ifaceNil];}return;}var $f={$blk:DS.ptr.prototype.LookupParent,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};DS.prototype.LookupParent=function(b,c){return this.$val.LookupParent(b,c);};DS.ptr.prototype.Insert=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b.Name();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=c.Lookup(e);$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}c.insert(e,b);h=b.Parent();$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(h===ME.nil){$s=3;continue;}$s=4;continue;case 3:$r=b.setParent(c);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:$s=-1;return $ifaceNil;}return;}var $f={$blk:DS.ptr.prototype.Insert,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};DS.prototype.Insert=function(b){return this.$val.Insert(b);};DS.ptr.prototype.insert=function(b,c){var b,c,d,e;d=this;if(d.elems===false){d.elems=new $global.Map();}e=b;(d.elems||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(e),{k:e,v:c});};DS.prototype.insert=function(b,c){return this.$val.insert(b,c);};DS.ptr.prototype.squash=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.parent;JM(!(d===ME.nil));e=c.elems;f=0;g=e?e.keys():undefined;h=e?e.size:0;case 1:if(!(f=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);if(t===c){p=s;break;}r++;}JM(p>=0);u=d.children.$length-1>>0;(w=d.children,((p<0||p>=w.$length)?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+p]=(v=d.children,((u<0||u>=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+u]))));d.children=$subslice(d.children,0,u);d.children=$appendSlice(d.children,c.children);c.children=QN.nil;c.elems=false;$s=-1;return;}return;}var $f={$blk:DS.ptr.prototype.squash,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};DS.prototype.squash=function(b){return this.$val.squash(b);};DS.ptr.prototype.Pos=function(){var b;b=this;return b.pos;};DS.prototype.Pos=function(){return this.$val.Pos();};DS.ptr.prototype.End=function(){var b;b=this;return b.end;};DS.prototype.End=function(){return this.$val.End();};DS.ptr.prototype.Contains=function(b){var b,c;c=this;return c.pos<=b&&b=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=f.Innermost(b);if(!(g===ME.nil)){return g;}e++;}}if(c.Contains(b)){h=c.children;i=0;while(true){if(!(i=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]);if(j.Contains(b)){return j.Innermost(b);}i++;}return c;}return ME.nil;};DS.prototype.Innermost=function(b){return this.$val.Innermost(b);};DS.ptr.prototype.WriteTo=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=F.Repeat(". ",c);g=A.Fprintf(b,"%s%s scope %p {\n",new NA([new $String(f),new $String(e.comment),e]));$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;h=f+". ";j=e.Names();$s=2;case 2:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=0;case 3:if(!(k=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+k]);m=b;n=new $String(h);o=e.Lookup(l);$s=5;case 5:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=A.Fprintf(m,"%s%s\n",new NA([n,p]));$s=6;case 6:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;k++;$s=3;continue;case 4:if(d){$s=7;continue;}$s=8;continue;case 7:r=e.children;s=0;case 9:if(!(s=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]);$r=t.WriteTo(b,c+1>>0,d);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s++;$s=9;continue;case 10:case 8:u=A.Fprintf(b,"%s}\n",new NA([new $String(f)]));$s=12;case 12:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}u;$s=-1;return;}return;}var $f={$blk:DS.ptr.prototype.WriteTo,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};DS.prototype.WriteTo=function(b,c,d){return this.$val.WriteTo(b,c,d);};DS.ptr.prototype.String=function(){var{b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=this;b[0]=new H.Buffer.ptr(NZ.nil,0,0);$r=c.WriteTo(b[0],0,false);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b[0].String();}return;}var $f={$blk:DS.ptr.prototype.String,$c:true,$r,b,c,$s};return $f;};DS.prototype.String=function(){return this.$val.String();};DV=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:b=[b];d=[d];e=$assertType(c,QO,true);d[0]=e[0];f=e[1];if(f){$s=1;continue;}$s=2;continue;case 1:$r=d[0].once.Do((function(b,d){return function $b(){var{g,h,i,j,k,l,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:g=d[0].resolve();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=$assertType(h,QO,true);j=i[1];if(j){$panic(new $String("recursive lazy object"));}k=h.Name();$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(!(k===b[0])){$s=2;continue;}$s=3;continue;case 2:$panic(new $String("lazy object has unexpected name"));case 3:l=h.Parent();$s=7;case 7:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}if(l===ME.nil){$s=5;continue;}$s=6;continue;case 5:$r=h.setParent(d[0].parent);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:d[0].obj=h;$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,g,h,i,j,k,l,$s};return $f;};})(b,d));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=d[0].obj;case 2:$s=-1;return c;}return;}var $f={$blk:DV,$c:true,$r,b,c,d,e,f,$s};return $f;};DU.ptr.prototype.Parent=function(){$panic(new $String("unreachable"));};DU.prototype.Parent=function(){return this.$val.Parent();};DU.ptr.prototype.Pos=function(){$panic(new $String("unreachable"));};DU.prototype.Pos=function(){return this.$val.Pos();};DU.ptr.prototype.Pkg=function(){$panic(new $String("unreachable"));};DU.prototype.Pkg=function(){return this.$val.Pkg();};DU.ptr.prototype.Name=function(){$panic(new $String("unreachable"));};DU.prototype.Name=function(){return this.$val.Name();};DU.ptr.prototype.Type=function(){$panic(new $String("unreachable"));};DU.prototype.Type=function(){return this.$val.Type();};DU.ptr.prototype.Exported=function(){$panic(new $String("unreachable"));};DU.prototype.Exported=function(){return this.$val.Exported();};DU.ptr.prototype.Id=function(){$panic(new $String("unreachable"));};DU.prototype.Id=function(){return this.$val.Id();};DU.ptr.prototype.String=function(){$panic(new $String("unreachable"));};DU.prototype.String=function(){return this.$val.String();};DU.ptr.prototype.order=function(){$panic(new $String("unreachable"));};DU.prototype.order=function(){return this.$val.order();};DU.ptr.prototype.color=function(){$panic(new $String("unreachable"));};DU.prototype.color=function(){return this.$val.color();};DU.ptr.prototype.setOrder=function(b){var b;$panic(new $String("unreachable"));};DU.prototype.setOrder=function(b){return this.$val.setOrder(b);};DU.ptr.prototype.setColor=function(b){var b;$panic(new $String("unreachable"));};DU.prototype.setColor=function(b){return this.$val.setColor(b);};DU.ptr.prototype.setParent=function(b){var b;$panic(new $String("unreachable"));};DU.prototype.setParent=function(b){return this.$val.setParent(b);};DU.ptr.prototype.sameId=function(b,c){var b,c;$panic(new $String("unreachable"));};DU.prototype.sameId=function(b,c){return this.$val.sameId(b,c);};DU.ptr.prototype.scopePos=function(){$panic(new $String("unreachable"));};DU.prototype.scopePos=function(){return this.$val.scopePos();};DU.ptr.prototype.setScopePos=function(b){var b;$panic(new $String("unreachable"));};DU.prototype.setScopePos=function(b){return this.$val.setScopePos(b);};KR.ptr.prototype.isTerminating=function(b,c){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;d=this;e=b;if($assertType(e,PQ,true)[1]||$assertType(e,PR,true)[1]||$assertType(e,PL,true)[1]||$assertType(e,PU,true)[1]||$assertType(e,PV,true)[1]||$assertType(e,PW,true)[1]||$assertType(e,PX,true)[1]||$assertType(e,PY,true)[1]||$assertType(e,QH,true)[1]){g=e;}else if($assertType(e,PS,true)[1]){h=e.$val;return d.isTerminating(h.Stmt,h.Label.Name);}else if($assertType(e,PT,true)[1]){i=e.$val;r=$assertType(LE(i.X),QP,true);s=r[0];t=r[1];if(t&&(u=$mapIndex(d.environment.isPanic,QP.keyFor(s)),u!==undefined?u.v:false)){return true;}}else if($assertType(e,PZ,true)[1]){j=e.$val;return true;}else if($assertType(e,QA,true)[1]){k=e.$val;if((k.Tok===73)||(k.Tok===69)){return true;}}else if($assertType(e,QB,true)[1]){l=e.$val;return d.isTerminatingList(l.List,"");}else if($assertType(e,QC,true)[1]){m=e.$val;if(!($interfaceIsEqual(m.Else,$ifaceNil))&&d.isTerminating(m.Body,"")&&d.isTerminating(m.Else,"")){return true;}}else if($assertType(e,QD,true)[1]){n=e.$val;return d.isTerminatingSwitch(n.Body,c);}else if($assertType(e,QE,true)[1]){o=e.$val;return d.isTerminatingSwitch(o.Body,c);}else if($assertType(e,QF,true)[1]){p=e.$val;v=p.Body.List;w=0;while(true){if(!(w=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w]);y=$assertType(x,PO);if(!d.isTerminatingList(y.Body,"")||DX(y.Body,c,true)){return false;}w++;}return true;}else if($assertType(e,QG,true)[1]){q=e.$val;if($interfaceIsEqual(q.Cond,$ifaceNil)&&!DW(q.Body,c,true)){return true;}}else{f=e;JN();}return false;};KR.prototype.isTerminating=function(b,c){return this.$val.isTerminating(b,c);};KR.ptr.prototype.isTerminatingList=function(b,c){var b,c,d,e,f,g;d=this;e=b.$length-1>>0;while(true){if(!(e>=0)){break;}f=$assertType(((e<0||e>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]),PL,true);g=f[1];if(!g){return d.isTerminating(((e<0||e>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]),c);}e=e-(1)>>0;}return false;};KR.prototype.isTerminatingList=function(b,c){return this.$val.isTerminatingList(b,c);};KR.ptr.prototype.isTerminatingSwitch=function(b,c){var b,c,d,e,f,g,h,i;d=this;e=false;f=b.List;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);i=$assertType(h,PN);if(i.List===NQ.nil){e=true;}if(!d.isTerminatingList(i.Body,"")||DX(i.Body,c,true)){return false;}g++;}return e;};KR.prototype.isTerminatingSwitch=function(b,c){return this.$val.isTerminatingSwitch(b,c);};DW=function(b,c,d){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;e=b;if($assertType(e,PQ,true)[1]||$assertType(e,PR,true)[1]||$assertType(e,PL,true)[1]||$assertType(e,PT,true)[1]||$assertType(e,PU,true)[1]||$assertType(e,PV,true)[1]||$assertType(e,PW,true)[1]||$assertType(e,PX,true)[1]||$assertType(e,PY,true)[1]||$assertType(e,PZ,true)[1]){g=e;}else if($assertType(e,PS,true)[1]){h=e.$val;return DW(h.Stmt,c,d);}else if($assertType(e,QA,true)[1]){i=e.$val;if(i.Tok===61){if(i.Label===OF.nil){return d;}if(i.Label.Name===c){return true;}}}else if($assertType(e,QB,true)[1]){j=e.$val;return DX(j.List,c,d);}else if($assertType(e,QC,true)[1]){k=e.$val;if(DW(k.Body,c,d)||!($interfaceIsEqual(k.Else,$ifaceNil))&&DW(k.Else,c,d)){return true;}}else if($assertType(e,PN,true)[1]){l=e.$val;return DX(l.Body,c,d);}else if($assertType(e,QD,true)[1]){m=e.$val;if(!(c==="")&&DW(m.Body,c,false)){return true;}}else if($assertType(e,QE,true)[1]){n=e.$val;if(!(c==="")&&DW(n.Body,c,false)){return true;}}else if($assertType(e,PO,true)[1]){o=e.$val;return DX(o.Body,c,d);}else if($assertType(e,QF,true)[1]){p=e.$val;if(!(c==="")&&DW(p.Body,c,false)){return true;}}else if($assertType(e,QG,true)[1]){q=e.$val;if(!(c==="")&&DW(q.Body,c,false)){return true;}}else if($assertType(e,QH,true)[1]){r=e.$val;if(!(c==="")&&DW(r.Body,c,false)){return true;}}else{f=e;JN();}return false;};DX=function(b,c,d){var b,c,d,e,f,g;e=b;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(DW(g,c,d)){return true;}f++;}return false;};DY.ptr.prototype.hasInitializer=function(){var b;b=this;return!($interfaceIsEqual(b.init,$ifaceNil))||!(b.fdecl===QQ.nil)&&!(b.fdecl.Body===QB.nil);};DY.prototype.hasInitializer=function(){return this.$val.hasInitializer();};DY.ptr.prototype.addDep=function(b){var b,c,d,e;c=this;d=c.deps;if(d===false){d=new $global.Map();c.deps=d;}e=b;(d||$throwRuntimeError("assignment to entry in nil map")).set(FQ.keyFor(e),{k:e,v:true});};DY.prototype.addDep=function(b){return this.$val.addDep(b);};KR.ptr.prototype.arityMatch=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=b.Names.$length;f=b.Values.$length;if(!(c===QR.nil)){f=c.Values.$length;}if(c===QR.nil&&(f===0)){$s=2;continue;}if(ef&&(!(c===QR.nil)||!((f===1)))){$s=4;continue;}$s=5;continue;case 2:if($interfaceIsEqual(b.Type,$ifaceNil)){$s=6;continue;}$s=7;continue;case 6:$r=d.errorf(b,17,"missing type or init expr",new NA([]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:$s=5;continue;case 3:if(e=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+e]));$r=d.errorf(h,17,"extra init expr %s",new NA([h]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 10:i=b;k=d.fset.Position(c.Pos());$s=13;case 13:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=(j=k,new j.constructor.elem(j));$r=d.errorf(i,17,"extra init expr at %s",new NA([l]));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:$s=5;continue;case 4:n=(m=b.Names,((f<0||f>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+f]));$r=d.errorf(n,17,"missing init expr for %s",new NA([n]));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:case 1:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.arityMatch,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};KR.prototype.arityMatch=function(b,c){return this.$val.arityMatch(b,c);};DZ=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=E.Unquote(b);d=c[0];e=c[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return["",e];}if(d===""){$s=1;continue;}$s=2;continue;case 1:f=A.Errorf("empty string",new NA([]));$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=["",f];$s=4;case 4:return g;case 2:h=d;i=0;case 5:if(!(i?[\\]^{|}`\xEF\xBF\xBD",k)){$s=7;continue;}$s=8;continue;case 7:l=A.Errorf("invalid character %#U",new NA([new $Int32(k)]));$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=[d,l];$s=10;case 10:return m;case 8:i+=j[1];$s=5;continue;case 6:$s=-1;return[d,$ifaceNil];}return;}var $f={$blk:DZ,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};KR.ptr.prototype.declarePkgObj=function(b,c,d){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=c.Name();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$r=JM(b.Name===f);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b.Name==="init"){$s=3;continue;}$s=4;continue;case 3:$r=e.errorf(b,39,"cannot declare init - must be func",new NA([]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 4:if(b.Name==="main"&&e.pkg.name==="main"){$s=6;continue;}$s=7;continue;case 6:$r=e.errorf(b,40,"cannot declare main - must be func",new NA([]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 7:$r=e.declare(e.pkg.scope,b,c,0);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=c;(e.objMap||$throwRuntimeError("assignment to entry in nil map")).set(FQ.keyFor(g),{k:g,v:d});$r=c.setOrder((((e.objMap?e.objMap.size:0)>>>0)));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.declarePkgObj,$c:true,$r,b,c,d,e,f,g,$s};return $f;};KR.prototype.declarePkgObj=function(b,c,d){return this.$val.declarePkgObj(b,c,d);};KR.ptr.prototype.filename=function(b){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=(d=c.files,((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));f=e.Pos();if(new C.Pos(f).IsValid()){$s=1;continue;}$s=2;continue;case 1:g=c.fset.File(f);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g.Name();$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=5;case 5:return i;case 2:j=A.Sprintf("file[%d]",new NA([new $Int(b)]));$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=7;case 7:return k;}return;}var $f={$blk:KR.ptr.prototype.filename,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};KR.prototype.filename=function(b){return this.$val.filename(b);};KR.ptr.prototype.importPackage=function(b,c,d){var{aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=new KN.ptr(c,d);h=(g=$mapIndex(e.impMap,KN.keyFor(f)),g!==undefined?g.v:MF.nil);if(!(h===MF.nil)){$s=-1;return h;}if(c==="C"&&(e.conf.FakeImportC||e.conf.go115UsesCgo)){$s=1;continue;}$s=2;continue;case 1:i=FK("C","C");$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;h.fake=true;h.cgo=e.conf.go115UsesCgo;$s=3;continue;case 2:j=$ifaceNil;k=e.conf.Importer;if($interfaceIsEqual(k,$ifaceNil)){$s=5;continue;}$s=6;continue;case 5:l=A.Errorf("Config.Importer not installed",new NA([]));$s=8;case 8:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}j=l;$s=7;continue;case 6:m=$assertType(k,LR,true);n=m[0];o=m[1];if(o){$s=9;continue;}$s=10;continue;case 9:q=n.ImportFrom(c,d,0);$s=12;case 12:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;h=p[0];j=p[1];if(h===MF.nil&&$interfaceIsEqual(j,$ifaceNil)){$s=13;continue;}$s=14;continue;case 13:r=A.Errorf("Config.Importer.ImportFrom(%s, %s, 0) returned nil but no error",new NA([new $String(c),new $String(d)]));$s=15;case 15:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}j=r;case 14:$s=11;continue;case 10:t=k.Import(c);$s=16;case 16:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;h=s[0];j=s[1];if(h===MF.nil&&$interfaceIsEqual(j,$ifaceNil)){$s=17;continue;}$s=18;continue;case 17:u=A.Errorf("Config.Importer.Import(%s) returned nil but no error",new NA([new $String(c)]));$s=19;case 19:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}j=u;case 18:case 11:case 7:if($interfaceIsEqual(j,$ifaceNil)&&!(h===MF.nil)&&(h.name==="_"||h.name==="")){$s=20;continue;}$s=21;continue;case 20:v=A.Errorf("invalid package name: %q",new NA([new $String(h.name)]));$s=22;case 22:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}j=v;h=MF.nil;case 21:if(!($interfaceIsEqual(j,$ifaceNil))){$s=23;continue;}$s=24;continue;case 23:$r=e.errorf(b,6,"could not import %s (%s)",new NA([new $String(c),j]));$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(h===MF.nil){$s=26;continue;}$s=27;continue;case 26:w=c;x=w.length;if(x>0&&(w.charCodeAt((x-1>>0))===47)){w=$substring(w,0,(x-1>>0));}y=F.LastIndex(w,"/");if(y>=0){w=$substring(w,(y+1>>0));}z=FK(c,w);$s=28;case 28:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}h=z;case 27:h.fake=true;case 24:case 3:if(h.complete||h.fake){aa=$clone(f,KN);(e.impMap||$throwRuntimeError("assignment to entry in nil map")).set(KN.keyFor(aa),{k:aa,v:h});if(!(e.pkgPathMap===false)){e.markImports(h);}$s=-1;return h;}$s=-1;return MF.nil;}return;}var $f={$blk:KR.ptr.prototype.importPackage,$c:true,$r,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.importPackage=function(b,c,d){return this.$val.importPackage(b,c,d);};KR.ptr.prototype.collectObjects=function(){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];e=[e];b[0]=this;d[0]=b[0].pkg;e[0]=new $global.Map();f=d[0].imports;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);i=h;(e[0]||$throwRuntimeError("assignment to entry in nil map")).set(MF.keyFor(i),{k:i,v:true});g++;}c[0]=QT.nil;j=QN.nil;k=b[0].files;l=0;case 1:if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);b[0].recordDef(p.Name,$ifaceNil);q=p.Pos();s=p.End();$s=3;case 3:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;t=q;u=r;v=b[0].fset.File(p.Pos());$s=4;case 4:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v;if(!(w===QU.nil)){x=((w.Base()>>0));y=(((w.Base()+w.Size()>>0)>>0));t=x;u=y;}z=b[0].pkg.scope;aa=t;ab=u;ac=b[0].filename(o);$s=5;case 5:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;ae=DT(z,aa,ab,ad);$s=6;case 6:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}n[0]=ae;j=$append(j,n[0]);b[0].recordScope(p,n[0]);af=b[0].fset.Position(p.Name.Pos());$s=7;case 7:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=EB(af.Filename);$s=8;case 8:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}m[0]=ag;$r=b[0].walkDecls(p.Decls,(function(b,c,d,e,m,n){return function $b(ah){var{ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,$s,$r,$c}=$restore(this,{ah});$s=$s||0;s:while(true){switch($s){case 0:ai=ah;if($assertType(ai,JZ,true)[1]){$s=1;continue;}if($assertType(ai,KA,true)[1]){$s=2;continue;}if($assertType(ai,KB,true)[1]){$s=3;continue;}if($assertType(ai,KC,true)[1]){$s=4;continue;}if($assertType(ai,KD,true)[1]){$s=5;continue;}$s=6;continue;case 1:aj=$clone(ai.$val,JZ);ap=DZ(aj.spec.Path.Value);$s=7;case 7:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ao=ap;aq=ao[0];ar=ao[1];if(!($interfaceIsEqual(ar,$ifaceNil))){$s=8;continue;}$s=9;continue;case 8:$r=b[0].errorf(aj.spec.Path,5,"invalid import path (%s)",new NA([ar]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 9:as=b[0].importPackage(aj.spec.Path,aq,m[0]);$s=11;case 11:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=as;if(at===MF.nil){$s=-1;return;}au=at.name;if(!(aj.spec.Name===OF.nil)){$s=12;continue;}$s=13;continue;case 12:au=aj.spec.Name.Name;if(aq==="C"){$s=14;continue;}$s=15;continue;case 14:$r=b[0].errorf(aj.spec.Name,7,"cannot rename import \"C\"",new NA([]));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 15:case 13:if(au==="init"){$s=17;continue;}$s=18;continue;case 17:$r=b[0].errorf(aj.spec,39,"cannot import package as init - init must be a func",new NA([]));$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 18:if(!(av=$mapIndex(e[0],MF.keyFor(at)),av!==undefined?av.v:false)){aw=at;(e[0]||$throwRuntimeError("assignment to entry in nil map")).set(MF.keyFor(aw),{k:aw,v:true});d[0].imports=$append(d[0].imports,at);}ax=FW(aj.spec.Pos(),d[0],au,at);if(!(aj.spec.Name===OF.nil)){b[0].recordDef(aj.spec.Name,ax);}else{b[0].recordImplicit(aj.spec,ax);}if(aq==="C"){ax.used=true;}b[0].imports=$append(b[0].imports,ax);if(au==="."){$s=20;continue;}$s=21;continue;case 20:if(b[0].dotImportMap===false){b[0].dotImportMap=new $global.Map();}ay=at.scope.elems;az=0;ba=ay?ay.keys():undefined;bb=ay?ay.size:0;case 23:if(!(az=bm.$length)?($throwRuntimeError("index out of range"),undefined):bm.$array[bm.$offset+bn]);bq=FY(bp.Pos(),d[0],bp.Name,$ifaceNil,G.MakeInt64((new $Int64(0,ak.iota))));br=$ifaceNil;if(bo=bs.$length)?($throwRuntimeError("index out of range"),undefined):bs.$array[bs.$offset+bo]));}bt=new DY.ptr(n[0],NO.nil,ak.typ,br,ak.inherited,QV.nil,QQ.nil,false);$r=b[0].declarePkgObj(bp,bq,bt);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bn++;$s=35;continue;case 36:$s=6;continue;case 3:al=$clone(ai.$val,KB);bu=$makeSlice(NO,al.spec.Names.$length);bv=PK.nil;if(al.spec.Values.$length===1){bv=new DY.ptr(n[0],bu,al.spec.Type,(bw=al.spec.Values,(0>=bw.$length?($throwRuntimeError("index out of range"),undefined):bw.$array[bw.$offset+0])),false,QV.nil,QQ.nil,false);}bx=al.spec.Names;by=0;case 38:if(!(by=bx.$length)?($throwRuntimeError("index out of range"),undefined):bx.$array[bx.$offset+by]);cb=GD(ca.Pos(),d[0],ca.Name,$ifaceNil);((bz<0||bz>=bu.$length)?($throwRuntimeError("index out of range"),undefined):bu.$array[bu.$offset+bz]=cb);cc=bv;if(cc===PK.nil){cd=$ifaceNil;if(bz=ce.$length)?($throwRuntimeError("index out of range"),undefined):ce.$array[ce.$offset+bz]));}cc=new DY.ptr(n[0],NO.nil,al.spec.Type,cd,false,QV.nil,QQ.nil,false);}$r=b[0].declarePkgObj(ca,cb,cc);$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}by++;$s=38;continue;case 39:$s=6;continue;case 4:am=$clone(ai.$val,KC);if(!((am.spec.TypeParams.NumFields()===0))&&!b[0].allowVersion(d[0],1,18)){$s=41;continue;}$s=42;continue;case 41:$r=b[0].softErrorf((cf=am.spec.TypeParams.List,(0>=cf.$length?($throwRuntimeError("index out of range"),undefined):cf.$array[cf.$offset+0])),135,"type parameters require go1.18 or later",new NA([]));$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 42:cg=GA(am.spec.Name.Pos(),d[0],am.spec.Name.Name,$ifaceNil);$r=b[0].declarePkgObj(am.spec.Name,cg,new DY.ptr(n[0],NO.nil,$ifaceNil,$ifaceNil,false,am.spec,QQ.nil,false));$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=6;continue;case 5:an=$clone(ai.$val,KD);ch=an.decl.Name.Name;ci=GH(an.decl.Name.Pos(),d[0],ch,OC.nil);cj=false;if(an.decl.Recv.NumFields()===0){$s=45;continue;}$s=46;continue;case 45:if(!(an.decl.Recv===OY.nil)){$s=48;continue;}$s=49;continue;case 48:$r=b[0].error(an.decl.Recv,31,"method is missing receiver");$s=50;case 50:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 49:if(ch==="init"||(ch==="main"&&b[0].pkg.name==="main")){$s=51;continue;}$s=52;continue;case 51:ck=39;if(ch==="main"){ck=40;}if(!((an.decl.Type.TypeParams.NumFields()===0))){$s=53;continue;}$s=54;continue;case 53:$r=b[0].softErrorf((cl=an.decl.Type.TypeParams.List,(0>=cl.$length?($throwRuntimeError("index out of range"),undefined):cl.$array[cl.$offset+0])),ck,"func %s must have no type parameters",new NA([new $String(ch)]));$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cj=true;case 54:cm=an.decl.Type;if(!((cm.Params.NumFields()===0))||!(cm.Results===OY.nil)){$s=56;continue;}$s=57;continue;case 56:$r=b[0].softErrorf(an.decl,ck,"func %s must have no arguments and no return values",new NA([new $String(ch)]));$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 57:case 52:if(ch==="init"){$s=59;continue;}$s=60;continue;case 59:ci.object.parent=d[0].scope;b[0].recordDef(an.decl.Name,ci);if(an.decl.Body===QB.nil){$s=62;continue;}$s=63;continue;case 62:$r=b[0].softErrorf(ci,37,"missing function body",new NA([]));$s=64;case 64:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 63:$s=61;continue;case 60:$r=b[0].declare(d[0].scope,an.decl.Name,ci,0);$s=65;case 65:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 61:$s=47;continue;case 46:cp=b[0].unpackRecv((co=an.decl.Recv.List,(0>=co.$length?($throwRuntimeError("index out of range"),undefined):co.$array[co.$offset+0])).Type,false);$s=66;case 66:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}cn=cp;cq=cn[0];cr=cn[1];if(!(cr===OF.nil)&&!(ch==="_")){c[0]=$append(c[0],new QS.ptr(ci,cq,cr));}b[0].recordDef(an.decl.Name,ci);case 47:if(!((an.decl.Type.TypeParams.NumFields()===0))&&!b[0].allowVersion(d[0],1,18)&&!cj){$s=67;continue;}$s=68;continue;case 67:$r=b[0].softErrorf((cs=an.decl.Type.TypeParams.List,(0>=cs.$length?($throwRuntimeError("index out of range"),undefined):cs.$array[cs.$offset+0])),135,"type parameters require go1.18 or later",new NA([]));$s=69;case 69:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 68:ct=new DY.ptr(n[0],NO.nil,$ifaceNil,$ifaceNil,false,QV.nil,an.decl,false);cu=ci;(b[0].objMap||$throwRuntimeError("assignment to entry in nil map")).set(FQ.keyFor(cu),{k:cu,v:ct});ci.object.setOrder((((b[0].objMap?b[0].objMap.size:0)>>>0)));case 6:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,$s};return $f;};})(b,c,d,e,m,n));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l++;$s=1;continue;case 2:ah=j;ai=0;case 10:if(!(ai=ah.$length)?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+ai]);ak=aj.elems;al=0;am=ak?ak.keys():undefined;an=ak?ak.size:0;case 12:if(!(al=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+bj]);bm=b[0].resolveBaseTypeName(bk.ptr,bk.recv);$s=30;case 30:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bl=bm;bn=bl[0];bo=bl[1];if(!(bo===MR.nil)){bk.obj.hasPtrRecv_=bn;bp=bo;(b[0].methods||$throwRuntimeError("assignment to entry in nil map")).set(MR.keyFor(bp),{k:bp,v:$append((bq=$mapIndex(b[0].methods,MR.keyFor(bo)),bq!==undefined?bq.v:MJ.nil),bk.obj)});}bi++;$s=28;continue;case 29:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.collectObjects,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.collectObjects=function(){return this.$val.collectObjects();};KR.ptr.prototype.unpackRecv=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=false;e=OF.nil;f=QW.nil;g=this;L:while(true){h=b;if($assertType(h,OO,true)[1]){i=h.$val;b=i.X;}else if($assertType(h,OS,true)[1]){j=h.$val;d=true;b=j.X;}else{k=h;break L;}}l=b;if($assertType(l,OM,true)[1]||$assertType(l,ON,true)[1]){$s=1;continue;}$s=2;continue;case 1:m=I.UnpackIndexExpr(b);b=m.IndexListExpr.X;if(c){$s=3;continue;}$s=4;continue;case 3:n=m.IndexListExpr.Indices;o=0;case 5:if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]);q=OF.nil;r=p;if($assertType(r,OF,true)[1]){$s=7;continue;}if($assertType(r,OK,true)[1]){$s=8;continue;}if(r===$ifaceNil){$s=9;continue;}$s=10;continue;case 7:s=r.$val;q=s;$s=11;continue;case 8:t=r.$val;$s=11;continue;case 9:u=r;$r=g.invalidAST(m.Orig,"parameterized receiver contains nil parameters",new NA([]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 10:v=r;$r=g.errorf(v,131,"receiver type parameter %s must be an identifier",new NA([v]));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:if(q===OF.nil){$s=14;continue;}$s=15;continue;case 14:w=p.Pos();$s=16;case 16:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}q=new B.Ident.ptr(w,"_",QI.nil);case 15:f=$append(f,q);o++;$s=5;continue;case 6:case 4:case 2:x=$assertType(b,OF,true);y=x[0];if(!(y===OF.nil)){e=y;}$s=-1;return[d,e,f];}return;}var $f={$blk:KR.ptr.prototype.unpackRecv,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s};return $f;};KR.prototype.unpackRecv=function(b,c){return this.$val.unpackRecv(b,c);};KR.ptr.prototype.resolveBaseTypeName=function(b,c){var{aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=false;e=MR.nil;f=this;d=b;g=false;h=c;case 1:h=LE(h);i=$assertType(h,OS,true);j=i[0];if(!(j===OS.nil)){if(d){k=false;l=MR.nil;d=k;e=l;$s=-1;return[d,e];}d=true;h=LE(j.X);}m=$assertType(h,OF,true);n=m[0];if(n===OF.nil){o=false;p=MR.nil;d=o;e=p;$s=-1;return[d,e];}q=f.pkg.scope.Lookup(n.Name);$s=3;case 3:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;if($interfaceIsEqual(r,$ifaceNil)){s=false;t=MR.nil;d=s;e=t;$s=-1;return[d,e];}u=$assertType(r,MR,true);v=u[0];if(v===MR.nil){w=false;x=MR.nil;d=w;e=x;$s=-1;return[d,e];}if((y=$mapIndex(g,MR.keyFor(v)),y!==undefined?y.v:false)){z=false;aa=MR.nil;d=z;e=aa;$s=-1;return[d,e];}ac=(ab=$mapIndex(f.objMap,FQ.keyFor(v)),ab!==undefined?ab.v:PK.nil).tdecl;if(!new C.Pos(ac.Assign).IsValid()){ad=d;ae=v;d=ad;e=ae;$s=-1;return[d,e];}h=ac.Type;if(g===false){g=new $global.Map();}af=v;(g||$throwRuntimeError("assignment to entry in nil map")).set(MR.keyFor(af),{k:af,v:true});$s=1;continue;case 2:$s=-1;return[d,e];}return;}var $f={$blk:KR.ptr.prototype.resolveBaseTypeName,$c:true,$r,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.resolveBaseTypeName=function(b,c){return this.$val.resolveBaseTypeName(b,c);};KR.ptr.prototype.packageObjects=function(){var{aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=$makeSlice(ND,(b.objMap?b.objMap.size:0));d=0;e=b.objMap;f=0;g=e?e.keys():undefined;h=e?e.size:0;while(true){if(!(f=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=k);d=d+(1)>>0;f++;}$r=J.Sort(($convertSliceType(c,EA)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=c;m=0;case 2:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);o=$assertType(n,MR,true);p=o[0];if(!(p===MR.nil)&&!($interfaceIsEqual(p.object.typ,$ifaceNil))){$s=4;continue;}$s=5;continue;case 4:$r=b.collectMethods(p);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:m++;$s=2;continue;case 3:q=QX.nil;r=ND.nil;s=c;t=0;case 7:if(!(t=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]);v=$assertType(u,MR,true);w=v[0];if(!(w===MR.nil)){$s=9;continue;}$s=10;continue;case 9:if(new C.Pos((x=$mapIndex(b.objMap,FQ.keyFor(w)),x!==undefined?x.v:PK.nil).tdecl.Assign).IsValid()){$s=12;continue;}$s=13;continue;case 12:q=$append(q,w);$s=14;continue;case 13:$r=b.objDecl(u,NI.nil);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:$s=11;continue;case 10:r=$append(r,u);case 11:t++;$s=7;continue;case 8:y=q;z=0;case 16:if(!(z=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+z]);$r=b.objDecl(aa,NI.nil);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}z++;$s=16;continue;case 17:ab=r;ac=0;case 19:if(!(ac=ab.$length)?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+ac]);$r=b.objDecl(ad,NI.nil);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ac++;$s=19;continue;case 20:b.methods=false;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.packageObjects,$c:true,$r,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.packageObjects=function(){return this.$val.packageObjects();};EA.prototype.Len=function(){var b;b=this;return b.$length;};$ptrType(EA).prototype.Len=function(){return this.$get().Len();};EA.prototype.Less=function(b,c){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]).order();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]).order();$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]);f=((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]);((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]=e);((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]=f);};$ptrType(EA).prototype.Swap=function(b,c){return this.$get().Swap(b,c);};KR.ptr.prototype.unusedImports=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(b.conf.IgnoreFuncBodies){$s=-1;return;}c=b.imports;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(!e.used&&!(e.object.name==="_")){$s=3;continue;}$s=4;continue;case 3:$r=b.errorUnusedPkg(e);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.unusedImports,$c:true,$r,b,c,d,e,$s};return $f;};KR.prototype.unusedImports=function(){return this.$val.unusedImports();};KR.ptr.prototype.errorUnusedPkg=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b.imported.path;e=d;f=F.LastIndex(e,"/");if(f>=0){e=$substring(e,(f+1>>0));}if(b.object.name===""||b.object.name==="."||b.object.name===e){$s=1;continue;}$s=2;continue;case 1:$r=c.softErrorf(b,8,"%q imported but not used",new NA([new $String(d)]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=3;continue;case 2:$r=c.softErrorf(b,8,"%q imported but not used as %s",new NA([new $String(d),new $String(b.object.name)]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.errorUnusedPkg,$c:true,$r,b,c,d,e,f,$s};return $f;};KR.prototype.errorUnusedPkg=function(b){return this.$val.errorUnusedPkg(b);};EB=function(b){var b,c;c=F.LastIndexAny(b,"/\\");if(c>0){return $substring(b,0,c);}return".";};EC=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=EL(b,1);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EC,$c:true,$r,b,c,d,$s};return $f;};ED=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=EL(b,2);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:ED,$c:true,$r,b,c,d,$s};return $f;};EE=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=EL(b,4);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EE,$c:true,$r,b,c,d,$s};return $f;};EF=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=EL(b,8);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EF,$c:true,$r,b,c,d,$s};return $f;};EG=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=EL(b,16);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EG,$c:true,$r,b,c,d,$s};return $f;};EH=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=EL(b,26);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EH,$c:true,$r,b,c,d,$s};return $f;};EI=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=EL(b,32);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EI,$c:true,$r,b,c,d,$s};return $f;};EJ=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=EL(b,10);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EJ,$c:true,$r,b,c,d,$s};return $f;};EK=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=EL(b,59);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EK,$c:true,$r,b,c,d,$s};return $f;};EL=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:e=CF(b);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=$assertType(e,MY,true);f=d[0];$s=-1;return!(f===MY.nil)&&!(((f.info&c)===0));}return;}var $f={$blk:EL,$c:true,$r,b,c,d,e,f,$s};return $f;};EM=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=ET(b,1);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EM,$c:true,$r,b,c,d,$s};return $f;};EN=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=ET(b,2);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EN,$c:true,$r,b,c,d,$s};return $f;};EO=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=ET(b,4);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EO,$c:true,$r,b,c,d,$s};return $f;};EP=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=ET(b,26);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EP,$c:true,$r,b,c,d,$s};return $f;};EQ=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=ET(b,32);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EQ,$c:true,$r,b,c,d,$s};return $f;};ER=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=ET(b,42);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:ER,$c:true,$r,b,c,d,$s};return $f;};ES=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=ET(b,58);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:ES,$c:true,$r,b,c,d,$s};return $f;};ET=function(b,c){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=$assertType(b,NJ,true);e=d[0];if(!(e===NJ.nil)){$s=1;continue;}$s=2;continue;case 1:f=e.is((function(c){return function $b(f){var{f,g,h,i,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:if(!(!(f===MP.nil))){g=false;$s=1;continue s;}h=EL(f.typ,c[0]);$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;case 1:i=g;$s=3;case 3:return i;}return;}var $f={$blk:$b,$c:true,$r,f,g,h,i,$s};return $f;};})(c));$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=4;case 4:return g;case 2:h=EL(b,c[0]);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=6;case 6:return i;}return;}var $f={$blk:ET,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};EU=function(b){var b,c;c=b;if($assertType(c,MY,true)[1]||$assertType(c,NI,true)[1]||$assertType(c,NJ,true)[1]){return true;}return false;};EV=function(b){var b,c,d;c=$assertType(b,MY,true);d=c[0];return d===MY.nil||((d.info&64)===0);};EW=function(b){var b;return!EV(b);};EX=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=CF(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=$assertType(d,NH,true);e=c[1];$s=-1;return e;}return;}var $f={$blk:EX,$c:true,$r,b,c,d,e,$s};return $f;};$pkg.IsInterface=EX;EY=function(b){var b,c,d;c=$assertType(b,NJ,true);d=c[1];return d;};EZ=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=$assertType(b,NI,true);d=c[0];if(!(!(d===NI.nil)&&!(d.obj===MR.nil)&&d.targs===NK.nil)){e=false;$s=1;continue s;}f=d.TypeParams();$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=!(f===OX.nil);case 1:g=e;$s=3;case 3:return g;}return;}var $f={$blk:EZ,$c:true,$r,b,c,d,e,f,g,$s};return $f;};FA=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=FB(b,true,false,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:FA,$c:true,$r,b,c,d,$s};return $f;};$pkg.Comparable=FA;FB=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:if((f=$mapIndex(d,CE.keyFor(b)),f!==undefined?f.v:false)){$s=-1;return true;}if(d===false){d=new $global.Map();}g=b;(d||$throwRuntimeError("assignment to entry in nil map")).set(CE.keyFor(g),{k:g,v:true});i=CF(b);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;if($assertType(h,MY,true)[1]){$s=2;continue;}if($assertType(h,OB,true)[1]||$assertType(h,OE,true)[1]){$s=3;continue;}if($assertType(h,NF,true)[1]){$s=4;continue;}if($assertType(h,NE,true)[1]){$s=5;continue;}if($assertType(h,NH,true)[1]){$s=6;continue;}$s=7;continue;case 2:j=h.$val;$s=-1;return!((j.kind===25));case 3:k=h;$s=-1;return true;case 4:l=h.$val;o=l.fields;p=0;case 8:if(!(p=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]);r=FB(q.object.typ,c,d,$throwNilPointerError);$s=12;case 12:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}if(!r){$s=10;continue;}$s=11;continue;case 10:if(!(e===$throwNilPointerError)){$s=13;continue;}$s=14;continue;case 13:$r=e("struct containing %s cannot be compared",new NA([q.object.typ]));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:$s=-1;return false;case 11:p++;$s=8;continue;case 9:$s=-1;return true;case 5:m=h.$val;s=FB(m.elem,c,d,$throwNilPointerError);$s=18;case 18:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}if(!s){$s=16;continue;}$s=17;continue;case 16:if(!(e===$throwNilPointerError)){$s=19;continue;}$s=20;continue;case 19:$r=e("%s cannot be compared",new NA([m]));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 20:$s=-1;return false;case 17:$s=-1;return true;case 6:n=h.$val;if(c&&!EY(b)){t=true;$s=22;continue s;}u=n.typeSet();$s=23;case 23:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u.IsComparable(d);$s=24;case 24:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}t=v;case 22:w=t;$s=25;case 25:return w;case 7:$s=-1;return false;}return;}var $f={$blk:FB,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};FC=function(b){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=CF(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;if($assertType(c,MY,true)[1]){$s=2;continue;}if($assertType(c,OA,true)[1]||$assertType(c,OB,true)[1]||$assertType(c,OC,true)[1]||$assertType(c,OD,true)[1]||$assertType(c,OE,true)[1]){$s=3;continue;}if($assertType(c,NH,true)[1]){$s=4;continue;}$s=5;continue;case 2:e=c.$val;$s=-1;return e.kind===18;case 3:f=c;$s=-1;return true;case 4:g=c.$val;if(!EY(b)){h=true;$s=6;continue s;}i=g.typeSet();$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i.underIs((function $b(j){var{j,k,l,m,$s,$r,$c}=$restore(this,{j});$s=$s||0;s:while(true){switch($s){case 0:if(!(!($interfaceIsEqual(j,$ifaceNil)))){k=false;$s=1;continue s;}l=FC(j);$s=2;case 2:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;case 1:m=k;$s=3;case 3:return m;}return;}var $f={$blk:$b,$c:true,$r,j,k,l,m,$s};return $f;}));$s=8;case 8:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}h=j;case 6:k=h;$s=9;case 9:return k;case 5:$s=-1;return false;}return;}var $f={$blk:FC,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};FD.ptr.prototype.identical=function(b){var b,c;c=this;return c.x===b.x&&c.y===b.y||c.x===b.y&&c.y===b.x;};FD.prototype.identical=function(b){return this.$val.identical(b);};FE=function(b,c,d,e){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:if($interfaceIsEqual(b,c)){$s=-1;return true;}f=b;if($assertType(f,MY,true)[1]){$s=1;continue;}if($assertType(f,NE,true)[1]){$s=2;continue;}if($assertType(f,OA,true)[1]){$s=3;continue;}if($assertType(f,NF,true)[1]){$s=4;continue;}if($assertType(f,OB,true)[1]){$s=5;continue;}if($assertType(f,NM,true)[1]){$s=6;continue;}if($assertType(f,OC,true)[1]){$s=7;continue;}if($assertType(f,NG,true)[1]){$s=8;continue;}if($assertType(f,NH,true)[1]){$s=9;continue;}if($assertType(f,OD,true)[1]){$s=10;continue;}if($assertType(f,OE,true)[1]){$s=11;continue;}if($assertType(f,NI,true)[1]){$s=12;continue;}if($assertType(f,NJ,true)[1]){$s=13;continue;}if(f===$ifaceNil){$s=14;continue;}$s=15;continue;case 1:g=f.$val;v=$assertType(c,MY,true);w=v[0];x=v[1];if(x){$s=-1;return g.kind===w.kind;}$s=16;continue;case 2:h=f.$val;y=$assertType(c,NE,true);z=y[0];aa=y[1];if(aa){$s=17;continue;}$s=18;continue;case 17:if(!((ac=h.len,(ac.$high<0||(ac.$high===0&&ac.$low<0)))||(ad=z.len,(ad.$high<0||(ad.$high===0&&ad.$low<0)))||(ae=h.len,af=z.len,(ae.$high===af.$high&&ae.$low===af.$low)))){ab=false;$s=19;continue s;}ag=FE(h.elem,z.elem,d,e);$s=20;case 20:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ab=ag;case 19:ah=ab;$s=21;case 21:return ah;case 18:$s=16;continue;case 3:i=f.$val;ai=$assertType(c,OA,true);aj=ai[0];ak=ai[1];if(ak){$s=22;continue;}$s=23;continue;case 22:al=FE(i.elem,aj.elem,d,e);$s=24;case 24:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al;$s=25;case 25:return am;case 23:$s=16;continue;case 4:j=f.$val;an=$assertType(c,NF,true);ao=an[0];ap=an[1];if(ap){$s=26;continue;}$s=27;continue;case 26:if(j.NumFields()===ao.NumFields()){$s=28;continue;}$s=29;continue;case 28:aq=j.fields;ar=0;case 30:if(!(ar=aq.$length)?($throwRuntimeError("index out of range"),undefined):aq.$array[aq.$offset+ar]);av=(au=ao.fields,((as<0||as>=au.$length)?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+as]));if(!(at.embedded===av.embedded)||d&&!(j.Tag(as)===ao.Tag(as))||!at.object.sameId(av.object.pkg,av.object.name)){aw=true;$s=34;continue s;}ax=FE(at.object.typ,av.object.typ,d,e);$s=35;case 35:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}aw=!ax;case 34:if(aw){$s=32;continue;}$s=33;continue;case 32:$s=-1;return false;case 33:ar++;$s=30;continue;case 31:$s=-1;return true;case 29:case 27:$s=16;continue;case 5:k=f.$val;ay=$assertType(c,OB,true);az=ay[0];ba=ay[1];if(ba){$s=36;continue;}$s=37;continue;case 36:bb=FE(k.base,az.base,d,e);$s=38;case 38:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=bb;$s=39;case 39:return bc;case 37:$s=16;continue;case 6:l=f.$val;bd=$assertType(c,NM,true);be=bd[0];bf=bd[1];if(bf){$s=40;continue;}$s=41;continue;case 40:if(l.Len()===be.Len()){$s=42;continue;}$s=43;continue;case 42:if(!(l===NM.nil)){$s=44;continue;}$s=45;continue;case 44:bg=l.vars;bh=0;case 46:if(!(bh=bg.$length)?($throwRuntimeError("index out of range"),undefined):bg.$array[bg.$offset+bh]);bl=(bk=be.vars,((bi<0||bi>=bk.$length)?($throwRuntimeError("index out of range"),undefined):bk.$array[bk.$offset+bi]));bm=FE(bj.object.typ,bl.object.typ,d,e);$s=50;case 50:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}if(!bm){$s=48;continue;}$s=49;continue;case 48:$s=-1;return false;case 49:bh++;$s=46;continue;case 47:case 45:$s=-1;return true;case 43:case 41:$s=16;continue;case 7:m=f.$val;bn=$assertType(c,OC,true);bo=bn[0];if(bo===OC.nil){$s=-1;return false;}if(!((m.TypeParams().Len()===bo.TypeParams().Len()))){$s=-1;return false;}bp=bo.params;bq=bo.results;if(m.TypeParams().Len()>0){$s=51;continue;}$s=52;continue;case 51:br=m.TypeParams().list();bs=bo.TypeParams().list();bt=MS.nil;bu=br;bv=0;while(true){if(!(bv=bz.$length)?($throwRuntimeError("index out of range"),undefined):bz.$array[bz.$offset+ca]);cd=by.subst(0,((cb<0||cb>=bs.$length)?($throwRuntimeError("index out of range"),undefined):bs.$array[bs.$offset+cb]).bound,bx,OZ.nil);$s=55;case 55:if($c){$c=false;cd=cd.$blk();}if(cd&&cd.$blk!==undefined){break s;}ce=cd;cf=FE(cc.bound,ce,d,e);$s=58;case 58:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}if(!cf){$s=56;continue;}$s=57;continue;case 56:$s=-1;return false;case 57:ca++;$s=53;continue;case 54:cg=by.subst(0,bo.params,bx,OZ.nil);$s=59;case 59:if($c){$c=false;cg=cg.$blk();}if(cg&&cg.$blk!==undefined){break s;}bp=$assertType(cg,NM);ch=by.subst(0,bo.results,bx,OZ.nil);$s=60;case 60:if($c){$c=false;ch=ch.$blk();}if(ch&&ch.$blk!==undefined){break s;}bq=$assertType(ch,NM);case 52:if(!(m.variadic===bo.variadic)){cj=false;$s=62;continue s;}ck=FE(m.params,bp,d,e);$s=63;case 63:if($c){$c=false;ck=ck.$blk();}if(ck&&ck.$blk!==undefined){break s;}cj=ck;case 62:if(!(cj)){ci=false;$s=61;continue s;}cl=FE(m.results,bq,d,e);$s=64;case 64:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}ci=cl;case 61:cm=ci;$s=65;case 65:return cm;case 8:n=f.$val;cn=$assertType(c,NG,true);co=cn[0];if(!(co===NG.nil)){$s=66;continue;}$s=67;continue;case 66:cp=new $global.Map();cq=BV(MQ.nil,cp,0,n);$s=68;case 68:if($c){$c=false;cq=cq.$blk();}if(cq&&cq.$blk!==undefined){break s;}cr=cq;cs=BV(MQ.nil,cp,0,co);$s=69;case 69:if($c){$c=false;cs=cs.$blk();}if(cs&&cs.$blk!==undefined){break s;}ct=cs;cu=cr.terms.equal(ct.terms);$s=70;case 70:if($c){$c=false;cu=cu.$blk();}if(cu&&cu.$blk!==undefined){break s;}cv=cu;$s=71;case 71:return cv;case 67:$s=16;continue;case 9:o=f.$val;cw=$assertType(c,NH,true);cx=cw[0];cy=cw[1];if(cy){$s=72;continue;}$s=73;continue;case 72:cz=o.typeSet();$s=74;case 74:if($c){$c=false;cz=cz.$blk();}if(cz&&cz.$blk!==undefined){break s;}da=cz;db=cx.typeSet();$s=75;case 75:if($c){$c=false;db=db.$blk();}if(db&&db.$blk!==undefined){break s;}dc=db;if(!(da.comparable===dc.comparable)){$s=-1;return false;}dd=da.terms.equal(dc.terms);$s=78;case 78:if($c){$c=false;dd=dd.$blk();}if(dd&&dd.$blk!==undefined){break s;}if(!dd){$s=76;continue;}$s=77;continue;case 76:$s=-1;return false;case 77:de=da.methods;df=dc.methods;if(de.$length===df.$length){$s=79;continue;}$s=80;continue;case 79:dg=new FD.ptr(o,cx,e);while(true){if(!(!(e===NX.nil))){break;}if(e.identical(dg)){$s=-1;return true;}e=e.prev;}if(false){$s=81;continue;}$s=82;continue;case 81:$r=BS(de);$s=83;case 83:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=BS(df);$s=84;case 84:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 82:dh=de;di=0;case 85:if(!(di=dh.$length)?($throwRuntimeError("index out of range"),undefined):dh.$array[dh.$offset+di]);dl=((dj<0||dj>=df.$length)?($throwRuntimeError("index out of range"),undefined):df.$array[df.$offset+dj]);if(!(dk.object.Id()===dl.object.Id())){dm=true;$s=89;continue s;}dn=FE(dk.object.typ,dl.object.typ,d,dg);$s=90;case 90:if($c){$c=false;dn=dn.$blk();}if(dn&&dn.$blk!==undefined){break s;}dm=!dn;case 89:if(dm){$s=87;continue;}$s=88;continue;case 87:$s=-1;return false;case 88:di++;$s=85;continue;case 86:$s=-1;return true;case 80:case 73:$s=16;continue;case 10:p=f.$val;dp=$assertType(c,OD,true);dq=dp[0];dr=dp[1];if(dr){$s=91;continue;}$s=92;continue;case 91:dt=FE(p.key,dq.key,d,e);$s=94;case 94:if($c){$c=false;dt=dt.$blk();}if(dt&&dt.$blk!==undefined){break s;}if(!(dt)){ds=false;$s=93;continue s;}du=FE(p.elem,dq.elem,d,e);$s=95;case 95:if($c){$c=false;du=du.$blk();}if(du&&du.$blk!==undefined){break s;}ds=du;case 93:dv=ds;$s=96;case 96:return dv;case 92:$s=16;continue;case 11:q=f.$val;dw=$assertType(c,OE,true);dx=dw[0];dy=dw[1];if(dy){$s=97;continue;}$s=98;continue;case 97:if(!(q.dir===dx.dir)){dz=false;$s=99;continue s;}ea=FE(q.elem,dx.elem,d,e);$s=100;case 100:if($c){$c=false;ea=ea.$blk();}if(ea&&ea.$blk!==undefined){break s;}dz=ea;case 99:eb=dz;$s=101;case 101:return eb;case 98:$s=16;continue;case 12:r=f.$val;ec=$assertType(c,NI,true);ed=ec[0];ee=ec[1];if(ee){$s=102;continue;}$s=103;continue;case 102:ef=r.TypeArgs().list();eg=ed.TypeArgs().list();if(!((ef.$length===eg.$length))){$s=-1;return false;}if(ef.$length>0){$s=104;continue;}$s=105;continue;case 104:eh=MC(r.orig,ed.orig);$s=108;case 108:if($c){$c=false;eh=eh.$blk();}if(eh&&eh.$blk!==undefined){break s;}if(!eh){$s=106;continue;}$s=107;continue;case 106:$s=-1;return false;case 107:ei=ef;ej=0;case 109:if(!(ej=ei.$length)?($throwRuntimeError("index out of range"),undefined):ei.$array[ei.$offset+ej]);em=MC(el,((ek<0||ek>=eg.$length)?($throwRuntimeError("index out of range"),undefined):eg.$array[eg.$offset+ek]));$s=113;case 113:if($c){$c=false;em=em.$blk();}if(em&&em.$blk!==undefined){break s;}if(!em){$s=111;continue;}$s=112;continue;case 111:$s=-1;return false;case 112:ej++;$s=109;continue;case 110:$s=-1;return true;case 105:$s=-1;return r.obj===ed.obj;case 103:$s=16;continue;case 13:s=f.$val;$s=16;continue;case 14:t=f;$s=16;continue;case 15:u=f;JN();case 16:$s=-1;return false;}return;}var $f={$blk:FE,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};FF=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:if(!((c.$length===e.$length))){$s=-1;return false;}f=c;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=MC(i,((h<0||h>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h]));$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(!j){$s=3;continue;}$s=4;continue;case 3:$s=-1;return false;case 4:g++;$s=1;continue;case 2:k=MC(b,d);$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=7;case 7:return l;}return;}var $f={$blk:FF,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};FG=function(b){var b,c,d,e,f;c=$assertType(b,MY,true);d=c[0];e=c[1];if(e){f=d.kind;if(f===(19)){return(1>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+1]);}else if(f===(20)){return(2>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+2]);}else if(f===(21)){return AA;}else if(f===(22)){return(14>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+14]);}else if(f===(23)){return(16>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+16]);}else if(f===(24)){return(17>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+17]);}}return b;};$pkg.Default=FG;FI=function(b){var b;return new FH.ptr(b);};$pkg.NewPointer=FI;FH.ptr.prototype.Elem=function(){var b;b=this;return b.base;};FH.prototype.Elem=function(){return this.$val.Elem();};FH.ptr.prototype.Underlying=function(){var b;b=this;return b;};FH.prototype.Underlying=function(){return this.$val.Underlying();};FH.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BF(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:FH.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};FH.prototype.String=function(){return this.$val.String();};FK=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=$pkg.Universe;e=A.Sprintf("package %q",new NA([new $String(b)]));$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=DT(d,0,0,f);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=-1;return new FJ.ptr(b,c,h,false,QY.nil,false,false);}return;}var $f={$blk:FK,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};$pkg.NewPackage=FK;FJ.ptr.prototype.Path=function(){var b;b=this;return b.path;};FJ.prototype.Path=function(){return this.$val.Path();};FJ.ptr.prototype.Name=function(){var b;b=this;return b.name;};FJ.prototype.Name=function(){return this.$val.Name();};FJ.ptr.prototype.SetName=function(b){var b,c;c=this;c.name=b;};FJ.prototype.SetName=function(b){return this.$val.SetName(b);};FJ.ptr.prototype.Scope=function(){var b;b=this;return b.scope;};FJ.prototype.Scope=function(){return this.$val.Scope();};FJ.ptr.prototype.Complete=function(){var b;b=this;return b.complete;};FJ.prototype.Complete=function(){return this.$val.Complete();};FJ.ptr.prototype.MarkComplete=function(){var b;b=this;b.complete=true;};FJ.prototype.MarkComplete=function(){return this.$val.MarkComplete();};FJ.ptr.prototype.Imports=function(){var b;b=this;return b.imports;};FJ.prototype.Imports=function(){return this.$val.Imports();};FJ.ptr.prototype.SetImports=function(b){var b,c;c=this;c.imports=b;};FJ.prototype.SetImports=function(b){return this.$val.SetImports(b);};FJ.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=A.Sprintf("package %s (%q)",new NA([new $String(b.name),new $String(b.path)]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:FJ.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};FJ.prototype.String=function(){return this.$val.String();};FN.ptr.prototype.Pos=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if($interfaceIsEqual(b.expr,$ifaceNil)){$s=-1;return 0;}c=b.expr.Pos();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:FN.ptr.prototype.Pos,$c:true,$r,b,c,d,$s};return $f;};FN.prototype.Pos=function(){return this.$val.Pos();};FO=function(b,c){var{aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];if((b.mode===7)&&$interfaceIsEqual(b.typ,(25>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+25]))){$s=-1;return"nil";}d[0]=new H.Buffer.ptr(NZ.nil,0,0);e="";if(!($interfaceIsEqual(b.expr,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:f=IM(b.expr);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;$s=3;continue;case 2:g=b.mode;if(g===(2)){$s=6;continue;}if(g===(3)){$s=7;continue;}if(g===(4)){$s=8;continue;}$s=9;continue;case 6:e=(h=b.id,((h<0||h>=AK.length)?($throwRuntimeError("index out of range"),undefined):AK[h])).name;$s=9;continue;case 7:i=BF(b.typ,c);$s=10;case 10:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}e=i;$s=9;continue;case 8:j=b.val.String();$s=11;case 11:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}e=j;case 9:case 5:case 3:if(!(e==="")){$s=12;continue;}$s=13;continue;case 12:k=d[0].WriteString(e);$s=14;case 14:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;l=d[0].WriteString(" (");$s=15;case 15:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;case 13:m=false;n=b.mode;if((n===(0))||(n===(1))||(n===(2))||(n===(3))){$s=17;continue;}if(!($interfaceIsEqual(b.typ,$ifaceNil))){$s=18;continue;}$s=19;continue;case 17:$s=19;continue;case 18:if(EW(b.typ)){$s=20;continue;}$s=21;continue;case 20:o=d[0].WriteString($assertType(b.typ,MY).name);$s=22;case 22:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;p=d[0].WriteByte(32);$s=23;case 23:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;$s=16;continue;case 21:m=true;case 19:case 16:r=d[0].WriteString((q=b.mode,((q<0||q>=FM.length)?($throwRuntimeError("index out of range"),undefined):FM[q])));$s=24;case 24:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;if(b.mode===4){$s=25;continue;}$s=26;continue;case 25:s=b.val.String();$s=27;case 27:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;if(!(t===e)){$s=28;continue;}$s=29;continue;case 28:u=d[0].WriteByte(32);$s=30;case 30:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}u;v=d[0].WriteString(t);$s=31;case 31:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}v;case 29:case 26:if(m){$s=32;continue;}$s=33;continue;case 32:if(!($interfaceIsEqual(b.typ,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0])))){$s=34;continue;}$s=35;continue;case 34:w="";x=EZ(b.typ);$s=40;case 40:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}if(x){$s=37;continue;}$s=38;continue;case 37:w=" of parameterized type ";$s=39;continue;case 38:w=" of type ";case 39:y=d[0].WriteString(w);$s=41;case 41:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}y;$r=BH(d[0],b.typ,c);$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}z=$assertType(b.typ,NJ,true);aa=z[0];if(!(aa===NJ.nil)){$s=43;continue;}$s=44;continue;case 43:ab=d[0].WriteString(" constrained by ");$s=45;case 45:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ab;$r=BH(d[0],aa.bound,c);$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 44:$s=36;continue;case 35:ac=d[0].WriteString(" with invalid type");$s=47;case 47:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ac;case 36:case 33:if(!(e==="")){$s=48;continue;}$s=49;continue;case 48:ad=d[0].WriteByte(41);$s=50;case 50:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ad;case 49:$s=-1;return d[0].String();}return;}var $f={$blk:FO,$c:true,$r,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};FN.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=FO(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:FN.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};FN.prototype.String=function(){return this.$val.String();};FN.ptr.prototype.setConst=function(b,c){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=0;f=b;if(f===(5)){e=20;}else if(f===(6)){e=22;}else if(f===(7)){e=23;}else if(f===(8)){e=21;}else if(f===(9)){e=24;}else{JN();}g=G.MakeFromLiteral(c,b,0);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=h.Kind();$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(i===0){$s=2;continue;}$s=3;continue;case 2:d.mode=0;d.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);$s=-1;return;case 3:d.mode=4;d.typ=((e<0||e>=$pkg.Typ.$length)?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+e]);d.val=h;$s=-1;return;}return;}var $f={$blk:FN.ptr.prototype.setConst,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};FN.prototype.setConst=function(b,c){return this.$val.setConst(b,c);};FN.ptr.prototype.isNil=function(){var b;b=this;return(b.mode===7)&&$interfaceIsEqual(b.typ,(25>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+25]));};FN.prototype.isNil=function(){return this.$val.isNil();};FN.ptr.prototype.assignableTo=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];e=[e];f=[f];g=[g];h=[h];i=[i];j=[j];k=[k];l=[l];m=[m];l[0]=this;if((l[0].mode===0)||$interfaceIsEqual(c[0],(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=-1;return[true,0];}n=l[0].typ;o=MC(n,c[0]);$s=3;case 3:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(o){$s=1;continue;}$s=2;continue;case 1:$s=-1;return[true,0];case 2:p=CF(n);$s=4;case 4:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;r=CF(c[0]);$s=5;case 5:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;t=$assertType(n,NJ,true);f[0]=t[0];u=$assertType(c[0],NJ,true);e[0]=u[0];if(EW(q)){$s=6;continue;}$s=7;continue;case 6:JM(f[0]===NJ.nil);if(!(e[0]===NJ.nil)){$s=8;continue;}$s=9;continue;case 8:v=e[0].is((function(b,c,d,e,f,g,h,i,j,k,l,m){return function $b(v){var{v,w,x,y,$s,$r,$c}=$restore(this,{v});$s=$s||0;s:while(true){switch($s){case 0:if(v===MP.nil){$s=-1;return false;}x=b[0].implicitTypeAndValue(l[0],v.typ);$s=1;case 1:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;y=w[0];$s=-1;return!($interfaceIsEqual(y,$ifaceNil));}return;}var $f={$blk:$b,$c:true,$r,v,w,x,y,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m));$s=10;case 10:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=[v,23];$s=11;case 11:return w;case 9:y=b[0].implicitTypeAndValue(l[0],c[0]);$s=12;case 12:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}x=y;z=x[0];$s=-1;return[!($interfaceIsEqual(z,$ifaceNil)),23];case 7:aa=MC(q,s);$s=15;case 15:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}if(aa&&(!EU(n)||!EU(c[0]))&&f[0]===NJ.nil&&e[0]===NJ.nil){$s=13;continue;}$s=14;continue;case 13:$s=-1;return[true,0];case 14:ab=$assertType(s,NH,true);ac=ab[1];if(ac&&e[0]===NJ.nil){ad=true;$s=18;continue s;}ae=HO(s);$s=19;case 19:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ad=ae;case 18:if(ad){$s=16;continue;}$s=17;continue;case 16:af=b[0].implements$(n,c[0]);$s=20;case 20:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;if(!($interfaceIsEqual(ag,$ifaceNil))){$s=21;continue;}$s=22;continue;case 21:if(!(d[0]===OJ.nil)){$s=23;continue;}$s=24;continue;case 23:ah=ag.Error();$s=25;case 25:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}d[0].$set(ah);case 24:$s=-1;return[false,21];case 22:$s=-1;return[true,0];case 17:ai=$assertType(q,NH,true);aj=ai[0];if(!(aj===NH.nil)&&f[0]===NJ.nil){$s=26;continue;}$s=27;continue;case 26:ak=b[0].implements$(c[0],n);$s=30;case 30:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}if($interfaceIsEqual(ak,$ifaceNil)){$s=28;continue;}$s=29;continue;case 28:if(!(d[0]===OJ.nil)){d[0].$set("need type assertion");}$s=-1;return[false,23];case 29:case 27:al=$assertType(q,OE,true);am=al[0];an=al[1];if(an&&(am.dir===0)){$s=31;continue;}$s=32;continue;case 31:ao=$assertType(s,OE,true);ap=ao[0];aq=ao[1];if(!(aq)){ar=false;$s=35;continue s;}as=MC(am.elem,ap.elem);$s=36;case 36:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}ar=as;case 35:if(ar){$s=33;continue;}$s=34;continue;case 33:$s=-1;return[!EU(n)||!EU(c[0]),22];case 34:case 32:if(f[0]===NJ.nil&&e[0]===NJ.nil){$s=-1;return[false,23];}i[0]=(function(b,c,d,e,f,g,h,i,j,k,l,m){return function $b(at,au){var{at,au,av,aw,$s,$r,$c}=$restore(this,{at,au});$s=$s||0;s:while(true){switch($s){case 0:if(!(b[0]===MQ.nil)&&!(d[0]===OJ.nil)){$s=1;continue;}$s=2;continue;case 1:av=b[0].sprintf(at,au);$s=3;case 3:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=av;if(!(d[0].$get()==="")){aw=aw+("\n\t"+d[0].$get());}d[0].$set(aw);case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,at,au,av,aw,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m);if(!EU(n)&&!(e[0]===NJ.nil)){$s=37;continue;}$s=38;continue;case 37:j[0]=false;g[0]=23;at=e[0].is((function(b,c,d,e,f,g,h,i,j,k,l,m){return function $b(at){var{at,au,av,$s,$r,$c}=$restore(this,{at});$s=$s||0;s:while(true){switch($s){case 0:if(at===MP.nil){$s=-1;return false;}av=l[0].assignableTo(b[0],at.typ,d[0]);$s=1;case 1:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}au=av;j[0]=au[0];g[0]=au[1];if(!j[0]){$s=2;continue;}$s=3;continue;case 2:$r=i[0]("cannot assign %s to %s (in %s)",new NA([l[0].typ,at.typ,e[0]]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 3:$s=-1;return true;}return;}var $f={$blk:$b,$c:true,$r,at,au,av,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m));$s=39;case 39:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}at;$s=-1;return[j[0],g[0]];case 38:if(!(f[0]===NJ.nil)&&!EU(c[0])){$s=40;continue;}$s=41;continue;case 40:m[0]=$clone(l[0],FN);k[0]=false;h[0]=23;au=f[0].is((function(b,c,d,e,f,g,h,i,j,k,l,m){return function $b(au){var{au,av,aw,$s,$r,$c}=$restore(this,{au});$s=$s||0;s:while(true){switch($s){case 0:if(au===MP.nil){$s=-1;return false;}m[0].typ=au.typ;aw=m[0].assignableTo(b[0],c[0],d[0]);$s=1;case 1:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}av=aw;k[0]=av[0];h[0]=av[1];if(!k[0]){$s=2;continue;}$s=3;continue;case 2:$r=i[0]("cannot assign %s (in %s) to %s",new NA([au.typ,f[0],c[0]]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 3:$s=-1;return true;}return;}var $f={$blk:$b,$c:true,$r,au,av,aw,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m));$s=42;case 42:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}au;$s=-1;return[k[0],h[0]];case 41:$s=-1;return[false,23];}return;}var $f={$blk:FN.ptr.prototype.assignableTo,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};FN.prototype.assignableTo=function(b,c,d){return this.$val.assignableTo(b,c,d);};$ptrType(FP).prototype.insert=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b.Id();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;g=(f=$mapIndex((c.$get()),$String.keyFor(e)),f!==undefined?f.v:$ifaceNil);if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}if(c.$get()===false){c.$set(new $global.Map());}h=e;(c.$get()||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(h),{k:h,v:b});$s=-1;return $ifaceNil;}return;}var $f={$blk:$ptrType(FP).prototype.insert,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};FR=function(b,c){var b,c,d;if(C.IsExported(c)){return c;}d="_";if(!(b===MF.nil)&&!(b.path==="")){d=b.path;}return d+"."+c;};$pkg.Id=FR;FT.prototype.String=function(){var b,c;b=this.$val;c=b;if(c===(0)){return"white";}else if(c===(1)){return"black";}else{return"grey";}};$ptrType(FT).prototype.String=function(){return new FT(this.$get()).String();};FU=function(b){var b;if(!($interfaceIsEqual(b,$ifaceNil))){return 1;}return 0;};FS.ptr.prototype.Parent=function(){var b;b=this;return b.parent;};FS.prototype.Parent=function(){return this.$val.Parent();};FS.ptr.prototype.Pos=function(){var b;b=this;return b.pos;};FS.prototype.Pos=function(){return this.$val.Pos();};FS.ptr.prototype.Pkg=function(){var b;b=this;return b.pkg;};FS.prototype.Pkg=function(){return this.$val.Pkg();};FS.ptr.prototype.Name=function(){var b;b=this;return b.name;};FS.prototype.Name=function(){return this.$val.Name();};FS.ptr.prototype.Type=function(){var b;b=this;return b.typ;};FS.prototype.Type=function(){return this.$val.Type();};FS.ptr.prototype.Exported=function(){var b;b=this;return C.IsExported(b.name);};FS.prototype.Exported=function(){return this.$val.Exported();};FS.ptr.prototype.Id=function(){var b;b=this;return FR(b.pkg,b.name);};FS.prototype.Id=function(){return this.$val.Id();};FS.ptr.prototype.String=function(){var b;b=this;$panic(new $String("abstract"));};FS.prototype.String=function(){return this.$val.String();};FS.ptr.prototype.order=function(){var b;b=this;return b.order_;};FS.prototype.order=function(){return this.$val.order();};FS.ptr.prototype.color=function(){var b;b=this;return b.color_;};FS.prototype.color=function(){return this.$val.color();};FS.ptr.prototype.scopePos=function(){var b;b=this;return b.scopePos_;};FS.prototype.scopePos=function(){return this.$val.scopePos();};FS.ptr.prototype.setParent=function(b){var b,c;c=this;c.parent=b;};FS.prototype.setParent=function(b){return this.$val.setParent(b);};FS.ptr.prototype.setOrder=function(b){var b,c;c=this;JM(b>0);c.order_=b;};FS.prototype.setOrder=function(b){return this.$val.setOrder(b);};FS.ptr.prototype.setColor=function(b){var b,c;c=this;JM(!((b===0)));c.color_=b;};FS.prototype.setColor=function(b){return this.$val.setColor(b);};FS.ptr.prototype.setScopePos=function(b){var b,c;c=this;c.scopePos_=b;};FS.prototype.setScopePos=function(b){return this.$val.setScopePos(b);};FS.ptr.prototype.sameId=function(b,c){var b,c,d;d=this;if(!(c===d.name)){return false;}if(d.Exported()){return true;}if(b===MF.nil||d.pkg===MF.nil){return b===d.pkg;}return b.path===d.pkg.path;};FS.prototype.sameId=function(b,c){return this.$val.sameId(b,c);};FW=function(b,c,d,e){var b,c,d,e;return new FV.ptr(new FS.ptr(ME.nil,b,c,d,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]),0,1,0),e,false);};$pkg.NewPkgName=FW;FV.ptr.prototype.Imported=function(){var b;b=this;return b.imported;};FV.prototype.Imported=function(){return this.$val.Imported();};FY=function(b,c,d,e,f){var b,c,d,e,f;return new FX.ptr(new FS.ptr(ME.nil,b,c,d,e,0,FU(e),0),f);};$pkg.NewConst=FY;FX.ptr.prototype.Val=function(){var b;b=this;return b.val;};FX.prototype.Val=function(){return this.$val.Val();};GA=function(b,c,d,e){var b,c,d,e;return new FZ.ptr(new FS.ptr(ME.nil,b,c,d,e,0,FU(e),0));};$pkg.NewTypeName=GA;FZ.ptr.prototype.IsAlias=function(){var b,c,d,e,f,g,h;b=this;c=b.object.typ;if(c===$ifaceNil){d=c;return false;}else if($assertType(c,MY,true)[1]){e=c.$val;if(b.object.pkg===$pkg.Unsafe){return false;}return!(b.object.pkg===MF.nil)||!(e.name===b.object.name)||$interfaceIsEqual(e,Z)||$interfaceIsEqual(e,AA);}else if($assertType(c,NI,true)[1]){f=c.$val;return!(b===f.obj);}else if($assertType(c,NJ,true)[1]){g=c.$val;return!(b===g.obj);}else{h=c;return true;}};FZ.prototype.IsAlias=function(){return this.$val.IsAlias();};GD=function(b,c,d,e){var b,c,d,e;return new GC.ptr(new FS.ptr(ME.nil,b,c,d,e,0,FU(e),0),false,false,false);};$pkg.NewVar=GD;GE=function(b,c,d,e){var b,c,d,e;return new GC.ptr(new FS.ptr(ME.nil,b,c,d,e,0,FU(e),0),false,false,true);};$pkg.NewParam=GE;GF=function(b,c,d,e,f){var b,c,d,e,f;return new GC.ptr(new FS.ptr(ME.nil,b,c,d,e,0,FU(e),0),f,true,false);};$pkg.NewField=GF;GC.ptr.prototype.Anonymous=function(){var b;b=this;return b.embedded;};GC.prototype.Anonymous=function(){return this.$val.Anonymous();};GC.ptr.prototype.Embedded=function(){var b;b=this;return b.embedded;};GC.prototype.Embedded=function(){return this.$val.Embedded();};GC.ptr.prototype.IsField=function(){var b;b=this;return b.isField;};GC.prototype.IsField=function(){return this.$val.IsField();};GH=function(b,c,d,e){var b,c,d,e,f;f=$ifaceNil;if(!(e===OC.nil)){f=e;}return new GG.ptr(new FS.ptr(ME.nil,b,c,d,f,0,FU(f),0),false);};$pkg.NewFunc=GH;GG.ptr.prototype.FullName=function(){var{b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=this;b[0]=new H.Buffer.ptr(NZ.nil,0,0);$r=GQ(b[0],c,$throwNilPointerError);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b[0].String();}return;}var $f={$blk:GG.ptr.prototype.FullName,$c:true,$r,b,c,$s};return $f;};GG.prototype.FullName=function(){return this.$val.FullName();};GG.ptr.prototype.Scope=function(){var b;b=this;return $assertType(b.object.typ,OC).scope;};GG.prototype.Scope=function(){return this.$val.Scope();};GG.ptr.prototype.hasPtrRecv=function(){var b,c,d,e,f;b=this;c=$assertType(b.object.typ,OC,true);d=c[0];if(!(d===OC.nil)&&!(d.recv===NN.nil)){e=HP(d.recv.object.typ);f=e[1];return f;}return b.hasPtrRecv_;};GG.prototype.hasPtrRecv=function(){return this.$val.hasPtrRecv();};GJ=function(b,c,d){var b,c,d;return new GI.ptr(new FS.ptr(ME.nil,b,c,d,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]),0,1,0),false);};$pkg.NewLabel=GJ;GL=function(b){var b;return new GK.ptr(new FS.ptr(ME.nil,0,MF.nil,((b<0||b>=AK.length)?($throwRuntimeError("index out of range"),undefined):AK[b]).name,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]),0,1,0),b);};GN=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=MR.nil;f=c.Type();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=c;if($assertType(h,OG,true)[1]){$s=2;continue;}if($assertType(h,OH,true)[1]){$s=3;continue;}if($assertType(h,MR,true)[1]){$s=4;continue;}if($assertType(h,NN,true)[1]){$s=5;continue;}if($assertType(h,MI,true)[1]){$s=6;continue;}if($assertType(h,QZ,true)[1]){$s=7;continue;}if($assertType(h,NP,true)[1]){$s=8;continue;}if($assertType(h,OI,true)[1]){$s=9;continue;}$s=10;continue;case 2:i=h.$val;r=A.Fprintf(b,"package %s",new NA([new $String(i.object.Name())]));$s=12;case 12:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;s=i.imported.path;if(!(s==="")&&!(s===i.object.name)){$s=13;continue;}$s=14;continue;case 13:t=A.Fprintf(b," (%q)",new NA([new $String(s)]));$s=15;case 15:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t;case 14:$s=-1;return;case 3:j=h.$val;u=b.WriteString("const");$s=16;case 16:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}u;$s=11;continue;case 4:k=h.$val;e=k;v=b.WriteString("type");$s=17;case 17:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}v;if(EY(g)){$s=18;continue;}$s=19;continue;case 18:w=b.WriteString(" parameter");$s=20;case 20:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}w;case 19:$s=11;continue;case 5:l=h.$val;if(l.isField){$s=21;continue;}$s=22;continue;case 21:x=b.WriteString("field");$s=24;case 24:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}x;$s=23;continue;case 22:y=b.WriteString("var");$s=25;case 25:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}y;case 23:$s=11;continue;case 6:m=h.$val;z=b.WriteString("func ");$s=26;case 26:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}z;$r=GQ(b,m,d);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(g,$ifaceNil))){$s=28;continue;}$s=29;continue;case 28:$r=BI(b,$assertType(g,OC),d);$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 29:$s=-1;return;case 7:n=h.$val;aa=b.WriteString("label");$s=31;case 31:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}aa;g=$ifaceNil;$s=11;continue;case 8:o=h.$val;ab=b.WriteString("builtin");$s=32;case 32:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ab;g=$ifaceNil;$s=11;continue;case 9:p=h.$val;ac=b.WriteString("nil");$s=33;case 33:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ac;$s=-1;return;case 10:q=h;ad=A.Sprintf("writeObject(%T)",new NA([q]));$s=34;case 34:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}$panic(new $String(ad));case 11:ae=b.WriteByte(32);$s=35;case 35:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ae;ag=c.Pkg();$s=39;case 39:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}if(!(!(ag===MF.nil))){af=false;$s=38;continue s;}ah=c.Pkg();$s=40;case 40:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=c.Name();$s=41;case 41:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ah.scope.Lookup(ai);$s=42;case 42:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}af=$interfaceIsEqual(aj,c);case 38:if(af){$s=36;continue;}$s=37;continue;case 36:ak=b;al=c.Pkg();$s=43;case 43:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al;an=d;$r=GO(ak,am,an);$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 37:ao=c.Name();$s=45;case 45:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=b.WriteString(ao);$s=46;case 46:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ap;if($interfaceIsEqual(g,$ifaceNil)){$s=-1;return;}if(!(e===MR.nil)){$s=47;continue;}$s=48;continue;case 47:aq=g;if($assertType(aq,MY,true)[1]){$s=49;continue;}if($assertType(aq,NI,true)[1]){$s=50;continue;}$s=51;continue;case 49:ar=aq.$val;$s=-1;return;case 50:as=aq.$val;at=as.TypeParams();$s=54;case 54:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=at.Len();$s=55;case 55:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}if(au>0){$s=52;continue;}$s=53;continue;case 52:av=as.TypeParams();$s=56;case 56:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=av.list();$s=57;case 57:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}$r=BK(b,d).tParamList(aw);$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 53:case 51:if(e.IsAlias()){$s=59;continue;}$s=60;continue;case 59:ax=b.WriteString(" =");$s=62;case 62:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ax;$s=61;continue;case 60:ay=$assertType(g,NJ,true);az=ay[0];if(!(az===NJ.nil)){$s=63;continue;}$s=64;continue;case 63:g=az.bound;$s=65;continue;case 64:ba=CF(g);$s=66;case 66:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}g=ba;case 65:case 61:case 48:if($interfaceIsEqual(c,AB)){$s=67;continue;}$s=68;continue;case 67:bb=MC(g,HW);$s=69;case 69:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}$r=JM(bb);$s=70;case 70:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=HW;case 68:bc=b.WriteByte(32);$s=71;case 71:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bc;$r=BH(b,g,d);$s=72;case 72:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:GN,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};GO=function(b,c,d){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:if(c===MF.nil){$s=-1;return;}e="";if(!(d===$throwNilPointerError)){$s=1;continue;}$s=2;continue;case 1:f=d(c);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;$s=3;continue;case 2:e=c.Path();case 3:if(!(e==="")){$s=5;continue;}$s=6;continue;case 5:g=b.WriteString(e);$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;h=b.WriteByte(46);$s=8;case 8:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 6:$s=-1;return;}return;}var $f={$blk:GO,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};GP=function(b,c){var{b,c,d,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];d[0]=new H.Buffer.ptr(NZ.nil,0,0);$r=GN(d[0],b,c);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return d[0].String();}return;}var $f={$blk:GP,$c:true,$r,b,c,d,$s};return $f;};$pkg.ObjectString=GP;FV.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=GP(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:FV.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};FV.prototype.String=function(){return this.$val.String();};FX.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=GP(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:FX.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};FX.prototype.String=function(){return this.$val.String();};FZ.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=GP(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:FZ.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};FZ.prototype.String=function(){return this.$val.String();};GC.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=GP(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:GC.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};GC.prototype.String=function(){return this.$val.String();};GG.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=GP(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:GG.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};GG.prototype.String=function(){return this.$val.String();};GI.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=GP(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:GI.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};GI.prototype.String=function(){return this.$val.String();};GK.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=GP(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:GK.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};GK.prototype.String=function(){return this.$val.String();};GM.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=GP(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:GM.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};GM.prototype.String=function(){return this.$val.String();};GQ=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:if(!($interfaceIsEqual(c.object.typ,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:e=$assertType(c.object.typ,OC);f=e.Recv();if(!(f===NN.nil)){$s=3;continue;}if(!(c.object.pkg===MF.nil)){$s=4;continue;}$s=5;continue;case 3:g=b.WriteByte(40);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;h=$assertType(f.object.Type(),NH,true);i=h[1];if(i){$s=7;continue;}$s=8;continue;case 7:j=b.WriteString("interface");$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;$s=9;continue;case 8:$r=BH(b,f.object.Type(),d);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:k=b.WriteByte(41);$s=12;case 12:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;l=b.WriteByte(46);$s=13;case 13:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;$s=5;continue;case 4:$r=GO(b,c.object.pkg,d);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:case 2:m=b.WriteString(c.object.name);$s=15;case 15:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;$s=-1;return;}return;}var $f={$blk:GQ,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};GS=function(b,c,d){var b,c,d,e,f;e=$assertType(c,NI,true);f=e[1];if(f){$panic(new $String("underlying type must not be *Named"));}return(MQ.nil).newNamed(b,NI.nil,c,OX.nil,HD(d));};$pkg.NewNamed=GS;GR.ptr.prototype.resolve=function(b){var{b,c,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];c[0]=this;if(c[0].resolver===$throwNilPointerError){$s=-1;return c[0];}$r=c[0].once.Do((function(b,c){return function $b(){var{d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:e=c[0].resolver(b[0],c[0]);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;c[0].tparams=d[0];c[0].underlying=d[1];c[0].methods=d[2];c[0].fromRHS=c[0].underlying;$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,d,e,$s};return $f;};})(b,c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c[0];}return;}var $f={$blk:GR.ptr.prototype.resolve,$c:true,$r,b,c,$s};return $f;};GR.prototype.resolve=function(b){return this.$val.resolve(b);};KR.ptr.prototype.newNamed=function(b,c,d,e,f){var b,c,d,e,f,g,h;g=this;h=new GR.ptr(g,b,c,d,d,e,NK.nil,f,$throwNilPointerError,new N.Once.ptr(0,new N.Mutex.ptr(0,0)));if(h.orig===NI.nil){h.orig=h;}if($interfaceIsEqual(b.object.typ,$ifaceNil)){b.object.typ=h;}if(!(g===MQ.nil)){g.needsCleanup(h);}return h;};KR.prototype.newNamed=function(b,c,d,e,f){return this.$val.newNamed(b,c,d,e,f);};GR.ptr.prototype.cleanup=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.underlying;if(c===$ifaceNil){$s=1;continue;}if($assertType(c,NI,true)[1]){$s=2;continue;}$s=3;continue;case 1:if(b.resolver===$throwNilPointerError){$panic(new $String("nil underlying"));}$s=3;continue;case 2:d=b.under();$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;case 3:b.check=MQ.nil;$s=-1;return;}return;}var $f={$blk:GR.ptr.prototype.cleanup,$c:true,$r,b,c,d,$s};return $f;};GR.prototype.cleanup=function(){return this.$val.cleanup();};GR.ptr.prototype.Obj=function(){var b;b=this;return b.orig.obj;};GR.prototype.Obj=function(){return this.$val.Obj();};GR.ptr.prototype.Origin=function(){var b;b=this;return b.orig;};GR.prototype.Origin=function(){return this.$val.Origin();};GR.ptr.prototype.TypeParams=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.resolve(OZ.nil);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.tparams;$s=2;case 2:return d;}return;}var $f={$blk:GR.ptr.prototype.TypeParams,$c:true,$r,b,c,d,$s};return $f;};GR.prototype.TypeParams=function(){return this.$val.TypeParams();};GR.ptr.prototype.SetTypeParams=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;JM(c.targs.Len()===0);d=c.resolve(OZ.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d.tparams=CD(b);$s=-1;return;}return;}var $f={$blk:GR.ptr.prototype.SetTypeParams,$c:true,$r,b,c,d,$s};return $f;};GR.prototype.SetTypeParams=function(b){return this.$val.SetTypeParams(b);};GR.ptr.prototype.TypeArgs=function(){var b;b=this;return b.targs;};GR.prototype.TypeArgs=function(){return this.$val.TypeArgs();};GR.ptr.prototype.NumMethods=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.resolve(OZ.nil);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.methods.Len();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=3;case 3:return e;}return;}var $f={$blk:GR.ptr.prototype.NumMethods,$c:true,$r,b,c,d,e,$s};return $f;};GR.prototype.NumMethods=function(){return this.$val.NumMethods();};GR.ptr.prototype.Method=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];c[0]=this;d=c[0].resolve(OZ.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;e=c[0].methods.At(b[0],(function(b,c){return function $b(){var{e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:e=c[0].instantiateMethod(b[0]);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:$b,$c:true,$r,e,f,$s};return $f;};})(b,c));$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=3;case 3:return f;}return;}var $f={$blk:GR.ptr.prototype.Method,$c:true,$r,b,c,d,e,f,$s};return $f;};GR.prototype.Method=function(b){return this.$val.Method(b);};GR.ptr.prototype.instantiateMethod=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;JM(d.TypeArgs().Len()>0);e=d.orig.Method(b);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;JM(!(f===MI.nil));g=d.check;if(!(g===MQ.nil)){$s=2;continue;}$s=3;continue;case 2:$r=g.objDecl(f,NI.nil);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:h=$assertType(f.object.typ,OC);i=HP(h.Recv().object.Type());j=i[0];if($interfaceIsEqual(j,d)){$s=-1;return f;}k=h;if(h.RecvTypeParams().Len()===d.targs.Len()){$s=5;continue;}$s=6;continue;case 5:l=g.bestContext(OZ.nil);m=CO(h.RecvTypeParams().list(),d.targs.list());n=g.subst(f.object.pos,h,m,l);$s=7;case 7:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}k=$assertType(n,OC);case 6:if(k===h){c[0]=$clone(h,DM);k=c[0];}o=$ifaceNil;if(f.hasPtrRecv()){o=FI(d);}else{o=d;}k.recv=CR(h.recv,o);$s=-1;return GH(f.object.pos,f.object.pkg,f.object.name,k);}return;}var $f={$blk:GR.ptr.prototype.instantiateMethod,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};GR.prototype.instantiateMethod=function(b){return this.$val.instantiateMethod(b);};GR.ptr.prototype.SetUnderlying=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;JM(c.targs.Len()===0);if($interfaceIsEqual(b,$ifaceNil)){$panic(new $String("underlying type must not be nil"));}d=$assertType(b,NI,true);e=d[1];if(e){$panic(new $String("underlying type must not be *Named"));}f=c.resolve(OZ.nil);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f.underlying=b;if($interfaceIsEqual(c.fromRHS,$ifaceNil)){c.fromRHS=b;}$s=-1;return;}return;}var $f={$blk:GR.ptr.prototype.SetUnderlying,$c:true,$r,b,c,d,e,f,$s};return $f;};GR.prototype.SetUnderlying=function(b){return this.$val.SetUnderlying(b);};GR.ptr.prototype.AddMethod=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;JM(c.targs.Len()===0);d=c.resolve(OZ.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;if(c.methods===PA.nil){c.methods=HD(MJ.nil);}c.methods.Add(b);$s=-1;return;}return;}var $f={$blk:GR.ptr.prototype.AddMethod,$c:true,$r,b,c,d,$s};return $f;};GR.prototype.AddMethod=function(b){return this.$val.AddMethod(b);};GR.ptr.prototype.Underlying=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.resolve(OZ.nil);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.underlying;$s=2;case 2:return d;}return;}var $f={$blk:GR.ptr.prototype.Underlying,$c:true,$r,b,c,d,$s};return $f;};GR.prototype.Underlying=function(){return this.$val.Underlying();};GR.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BF(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:GR.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};GR.prototype.String=function(){return this.$val.String();};GR.ptr.prototype.under=function(){var{aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.Underlying();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=NI.nil;f=d;if(f===$ifaceNil){g=f;$panic(new $String("nil underlying"));}else if($assertType(f,NI,true)[1]){i=f.$val;e=i;}else{h=f;$s=-1;return d;}if(b.check===MQ.nil){$panic(new $String("Named.check == nil but type is incomplete"));}j=b.check;k=b;l=new $global.Map();m=ND.nil;case 2:n=k;(l||$throwRuntimeError("assignment to entry in nil map")).set(NI.keyFor(n),{k:n,v:(l?l.size:0)});m=$append(m,k.obj);k=e;o=(p=$mapIndex(l,NI.keyFor(k)),p!==undefined?[p.v,true]:[0,false]);q=o[0];r=o[1];if(r){$s=4;continue;}$s=5;continue;case 4:$r=j.cycleError($subslice(m,q));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);$s=3;continue;case 5:s=k.Underlying();$s=7;case 7:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}d=s;t=d;if(t===$ifaceNil){u=t;d=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);$s=3;continue s;}else if($assertType(t,NI,true)[1]){w=t.$val;e=w;}else{v=t;$s=3;continue s;}$s=2;continue;case 3:x=l;y=0;z=x?x.keys():undefined;aa=x?x.size:0;while(true){if(!(y=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 4:w=c.orig.tparams;x=f;y=HE(c.orig.methods.Len());e=w;f=x;g=y;$s=-1;return[e,f,g];}return;}var $f={$blk:GT,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s};return $f;};GU=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=$assertType(b,NI,true);d=c[0];if(!(d===NI.nil)){$s=-1;return d.underlying;}e=b.Underlying();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:GU,$c:true,$r,b,c,d,e,f,$s};return $f;};KR.ptr.prototype.monomorph=function(){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=true;case 1:if(!(c)){$s=2;continue;}c=false;d=b.mono.edges;e=0;case 3:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]),GX);j=(h=b.mono.vertices,i=g.src,((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]));m=(k=b.mono.vertices,l=g.dst,((l<0||l>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]));n=j.weight+g.weight>>0;if(n<=m.weight){e++;$s=3;continue;}m.pre=f;m.len=j.len+1>>0;if(m.len===b.mono.vertices.$length){$s=5;continue;}$s=6;continue;case 5:$r=b.reportInstanceLoop(g.dst);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 6:m.weight=n;c=true;e++;$s=3;continue;case 4:$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.monomorph,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};KR.prototype.monomorph=function(){return this.$val.monomorph();};KR.ptr.prototype.reportInstanceLoop=function(b){var{aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=NW.nil;e=$makeSlice(PH,c.mono.vertices.$length);while(true){if(!(!((b<0||b>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+b]))){break;}d=$append(d,b);((b<0||b>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+b]=true);b=(f=c.mono.edges,g=(h=c.mono.vertices,((b<0||b>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+b])).pre,((g<0||g>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g])).src;}while(true){if(!(!(((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])===b)))){break;}d=$subslice(d,1);}j=(i=c.mono.vertices,((b<0||b>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+b])).obj;$r=c.errorf(j,140,"instantiation cycle:",new NA([]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=BE(c.pkg);l=d;m=0;case 2:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);r=$clone((o=c.mono.edges,p=(q=c.mono.vertices,((n<0||n>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+n])).pre,((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p])),GX);u=(s=c.mono.vertices,t=r.dst,((t<0||t>=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t])).obj;v=u.object.Type();if($assertType(v,NI,true)[1]){$s=4;continue;}if($assertType(v,NJ,true)[1]){$s=5;continue;}$s=6;continue;case 4:w=new JS(((r.pos>>0)));x=new $String(u.object.Name());y=BF(r.typ,k);$s=8;case 8:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=new $String(y);$r=c.errorf(w,140,"\t%s implicitly parameterized by %s",new NA([x,z]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 5:aa=new JS(((r.pos>>0)));ab=new $String(u.object.Name());ac=BF(r.typ,k);$s=10;case 10:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=new $String(ac);$r=c.errorf(aa,140,"\t%s instantiated as %s",new NA([ab,ad]));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 6:$panic(new $String("unexpected type"));case 7:m++;$s=2;continue;case 3:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.reportInstanceLoop,$c:true,$r,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.reportInstanceLoop=function(b){return this.$val.reportInstanceLoop(b);};GV.ptr.prototype.recordCanon=function(b,c){var b,c,d,e;d=this;if(d.canon===false){d.canon=new $global.Map();}e=b;(d.canon||$throwRuntimeError("assignment to entry in nil map")).set(NJ.keyFor(e),{k:e,v:c});};GV.prototype.recordCanon=function(b,c){return this.$val.recordCanon(b,c);};GV.ptr.prototype.recordInstance=function(b,c,d,e,f){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=this;h=d;i=0;case 1:if(!(i=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]);l=c;if(j=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+j]).Pos();$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;case 4:$r=g.assign(b,l,k,((j<0||j>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+j]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:GV.ptr.prototype.recordInstance,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};GV.prototype.recordInstance=function(b,c,d,e,f){return this.$val.recordInstance(b,c,d,e,f);};GV.ptr.prototype.assign=function(b,c,d,e){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];e=[e];f=[f];g=[g];h=[h];h[0]=this;if(!(d[0].Obj().object.Pkg()===b[0])){$s=-1;return;}g[0]=(function(b,c,d,e,f,g,h){return function(i,j){var i,j,k;k=1;if($interfaceIsEqual(j,e[0])){k=0;}h[0].addEdge(h[0].typeParamVertex(d[0]),i,k,c[0],e[0]);};})(b,c,d,e,f,g,h);f[0]=$throwNilPointerError;f[0]=(function(b,c,d,e,f,g,h){return function $b(i){var{aa,ab,ac,ad,ae,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{i});$s=$s||0;s:while(true){switch($s){case 0:j=i;if($assertType(j,NJ,true)[1]){$s=1;continue;}if($assertType(j,NI,true)[1]){$s=2;continue;}if($assertType(j,NE,true)[1]){$s=3;continue;}if($assertType(j,MY,true)[1]){$s=4;continue;}if($assertType(j,OE,true)[1]){$s=5;continue;}if($assertType(j,OD,true)[1]){$s=6;continue;}if($assertType(j,OB,true)[1]){$s=7;continue;}if($assertType(j,OA,true)[1]){$s=8;continue;}if($assertType(j,NH,true)[1]){$s=9;continue;}if($assertType(j,OC,true)[1]){$s=10;continue;}if($assertType(j,NF,true)[1]){$s=11;continue;}$s=12;continue;case 1:l=j.$val;JM(l.Obj().object.Pkg()===b[0]);$r=g[0](h[0].typeParamVertex(l),l);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=13;continue;case 2:m=j.$val;w=h[0].localNamedVertex(b[0],m.Origin());if(w>=0){$s=15;continue;}$s=16;continue;case 15:$r=g[0](w,m);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 16:x=m.TypeArgs();y=0;case 18:if(!(y>0;$s=18;continue;case 19:$s=13;continue;case 3:n=j.$val;$r=f[0](n.Elem());$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=13;continue;case 4:o=j.$val;$s=13;continue;case 5:p=j.$val;$r=f[0](p.Elem());$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=13;continue;case 6:q=j.$val;$r=f[0](q.Key());$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f[0](q.Elem());$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=13;continue;case 7:r=j.$val;$r=f[0](r.Elem());$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=13;continue;case 8:s=j.$val;$r=f[0](s.Elem());$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=13;continue;case 9:t=j.$val;z=0;case 27:aa=t.NumMethods();$s=29;case 29:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}if(!(z>0;$s=27;continue;case 28:$s=13;continue;case 10:u=j.$val;ad=(function(b,c,d,e,f,g,h){return function $b(ad){var{ad,ae,$s,$r,$c}=$restore(this,{ad});$s=$s||0;s:while(true){switch($s){case 0:ae=0;case 1:if(!(ae>0;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ad,ae,$s};return $f;};})(b,c,d,e,f,g,h);$r=ad(u.Params());$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=ad(u.Results());$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=13;continue;case 11:v=j.$val;ae=0;case 35:if(!(ae>0;$s=35;continue;case 36:$s=13;continue;case 12:k=j;$panic(new $String("unexpected type"));case 13:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,aa,ab,ac,ad,ae,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};})(b,c,d,e,f,g,h);$r=f[0](e[0]);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:GV.ptr.prototype.assign,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};GV.prototype.assign=function(b,c,d,e){return this.$val.assign(b,c,d,e);};GV.ptr.prototype.localNamedVertex=function(b,c){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;d=this;e=c.Obj();if(!(e.object.Pkg()===b)){return-1;}f=b.Scope();if(e.object.Parent()===f){return-1;}g=(h=$mapIndex(d.nameIdx,MR.keyFor(e)),h!==undefined?[h.v,true]:[0,false]);i=g[0];j=g[1];if(j){return i;}k=-1;l=e.object.Parent();while(true){if(!(!(l===f))){break;}m=l.elems;n=0;o=m?m.keys():undefined;p=m?m.size:0;while(true){if(!(n=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);h=A.Fprintf(b[0],"\t%s\n",new NA([g]));$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;f++;$s=2;continue;case 3:i=A.Fprintln(b[0],new NA([new $String("}")]));$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$s=-1;return b[0].String();}return;}var $f={$blk:GY.ptr.prototype.String,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};GY.prototype.String=function(){return this.$val.String();};GY.ptr.prototype.Len=function(){var b;b=this;return b.list.$length;};GY.prototype.Len=function(){return this.$val.Len();};GY.ptr.prototype.At=function(b){var b,c,d;c=this;return(d=c.list,((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));};GY.prototype.At=function(b){return this.$val.At(b);};GY.ptr.prototype.Lookup=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=[e];e[0]=this;if(e[0].Len()===0){$s=-1;return MM.nil;}d[0]=FR(b,c);f=J.Search(e[0].list.$length,(function(d,e){return function $b(f){var{f,g,h,i,j,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:h=(g=e[0].list,((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]));i=h.obj.Id();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i>=d[0];$s=2;case 2:return j;}return;}var $f={$blk:$b,$c:true,$r,f,g,h,i,j,$s};return $f;};})(d,e));$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(g=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+g]));j=i.obj.Id();$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j===d[0]){$s=4;continue;}$s=5;continue;case 4:$s=-1;return i;case 5:case 3:$s=-1;return MM.nil;}return;}var $f={$blk:GY.ptr.prototype.Lookup,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};GY.prototype.Lookup=function(b,c){return this.$val.Lookup(b,c);};HA=function(b){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=false;e=HP(b);f=e[0];g=e[1];if(!(g)){h=false;$s=3;continue s;}i=EX(f);$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;case 3:if(h){$s=1;continue;}$s=2;continue;case 1:$s=-1;return GZ;case 2:j=new RB([new HJ.ptr(f,NW.nil,g,false)]);k=new HM.ptr(false);case 5:if(!(j.$length>0)){$s=6;continue;}l=RB.nil;m=false;n=false;o=j;p=0;case 7:if(!(p=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]),HJ);r=q.typ;s=$assertType(r,NI,true);t=s[0];if(!(t===NI.nil)){$s=9;continue;}$s=10;continue;case 9:u=k.lookup(t);$s=11;case 11:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;if(!(v===NI.nil)){p++;$s=7;continue;}k.add(t);w=0;case 12:x=t.NumMethods();$s=14;case 14:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}if(!(w>0;$s=12;continue;case 13:case 10:ab=CF(r);$s=17;case 17:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;if($assertType(aa,NF,true)[1]){$s=18;continue;}if($assertType(aa,NH,true)[1]){$s=19;continue;}$s=20;continue;case 18:ac=aa.$val;ae=ac.fields;af=0;while(true){if(!(af=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+af]);if(m===false){m=new $global.Map();}ai=ah.object.Id();(m||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(ai),{k:ai,v:true});if(ah.embedded){aj=HP(ah.object.typ);ak=aj[0];al=aj[1];l=$append(l,new HJ.ptr(ak,HR(q.index,ag),q.indirect||al,q.multiples));}af++;}$s=20;continue;case 19:ad=aa.$val;am=ad.typeSet();$s=21;case 21:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=new HB(n).add(am.methods,q.index,true,q.multiples);$s=22;case 22:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}n=an;case 20:p++;$s=7;continue;case 8:ao=n;ap=0;aq=ao?ao.keys():undefined;ar=ao?ao.size:0;while(true){if(!(ap=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+bu]).obj.Id();$s=1;case 1:if($c){$c=false;bw=bw.$blk();}if(bw&&bw.$blk!==undefined){break s;}bx=((bv<0||bv>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+bv]).obj.Id();$s=2;case 2:if($c){$c=false;bx=bx.$blk();}if(bx&&bx.$blk!==undefined){break s;}by=bw=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);f=new HB(f).addOne(j,HR(c,i),d,e);h++;}return f;};$ptrType(HB).prototype.add=function(b,c,d,e){return new HB(this.$get()).add(b,c,d,e);};HB.prototype.addOne=function(b,c,d,e){var b,c,d,e,f,g,h,i,j,k,l;f=this.$val;if(f===false){f=new $global.Map();}g=b.object.Id();if(!e){h=(i=$mapIndex(f,$String.keyFor(g)),i!==undefined?[i.v,true]:[MM.nil,false]);j=h[1];if(!j&&(d||!b.hasPtrRecv())){k=g;(f||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(k),{k:k,v:new DQ.ptr(1,$ifaceNil,b,c,d)});return f;}}l=g;(f||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(l),{k:l,v:MM.nil});return f;};$ptrType(HB).prototype.addOne=function(b,c,d,e){return new HB(this.$get()).addOne(b,c,d,e);};HD=function(b){var b;return new HC.ptr(b,RD.nil);};HE=function(b){var b,c,d;c=$makeSlice(RC,b);return new HC.ptr($makeSlice(MJ,b),(d||(d=new RD(function(){return c;},function($v){c=$convertSliceType($v,RC);}))));};HC.ptr.prototype.isLazy=function(){var b;b=this;return!(b===PA.nil)&&!(b.guards===RD.nil);};HC.prototype.isLazy=function(){return this.$val.isLazy();};HC.ptr.prototype.Add=function(b){var b,c,d,e;c=this;JM(!c.isLazy());d=HT(c.methods,b.object.pkg,b.object.name,false);e=d[0];if(e<0){c.methods=$append(c.methods,b);}};HC.prototype.Add=function(b){return this.$val.Add(b);};HC.ptr.prototype.Lookup=function(b,c,d){var b,c,d,e;e=this;JM(!e.isLazy());if(e===PA.nil){return[-1,MI.nil];}return HT(e.methods,b,c,d);};HC.prototype.Lookup=function(b,c,d){return this.$val.Lookup(b,c,d);};HC.ptr.prototype.Len=function(){var b;b=this;if(b===PA.nil){return 0;}return b.methods.$length;};HC.prototype.Len=function(){return this.$val.Len();};HC.ptr.prototype.At=function(b,c){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];d[0]=this;if(!d[0].isLazy()){$s=-1;return(e=d[0].methods,((b[0]<0||b[0]>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+b[0]]));}JM(!(c[0]===$throwNilPointerError));$r=(f=d[0].guards.$get(),((b[0]<0||b[0]>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+b[0]])).Do((function(b,c,d){return function $b(){var{g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:g=c[0]();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}(h=d[0].methods,((b[0]<0||b[0]>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+b[0]]=g));$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,g,h,$s};return $f;};})(b,c,d));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return(g=d[0].methods,((b[0]<0||b[0]>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+b[0]]));}return;}var $f={$blk:HC.ptr.prototype.At,$c:true,$r,b,c,d,e,f,g,$s};return $f;};HC.prototype.At=function(b,c){return this.$val.At(b,c);};HG=function(b,c){var b,c;return new HF.ptr(b,c);};$pkg.NewMap=HG;HF.ptr.prototype.Key=function(){var b;b=this;return b.key;};HF.prototype.Key=function(){return this.$val.Key();};HF.ptr.prototype.Elem=function(){var b;b=this;return b.elem;};HF.prototype.Elem=function(){return this.$val.Elem();};HF.ptr.prototype.Underlying=function(){var b;b=this;return b;};HF.prototype.Underlying=function(){return this.$val.Underlying();};HF.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BF(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:HF.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};HF.prototype.String=function(){return this.$val.String();};HH=function(b,c,d,e){var{aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=$ifaceNil;g=NW.nil;h=false;if($interfaceIsEqual(b,$ifaceNil)){$panic(new $String("LookupFieldOrMethod on nil type"));}i=$assertType(b,NI,true);j=i[0];if(!(j===NI.nil)){$s=1;continue;}$s=2;continue;case 1:l=j.Underlying();$s=3;case 3:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=$assertType(l,OB,true);m=k[0];if(!(m===OB.nil)){$s=4;continue;}$s=5;continue;case 4:o=HI(m,false,d,e,false);$s=6;case 6:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;f=n[0];g=n[1];h=n[2];p=$assertType(f,MI,true);q=p[1];if(q){r=$ifaceNil;s=NW.nil;t=false;f=r;g=s;h=t;$s=-1;return[f,g,h];}$s=-1;return[f,g,h];case 5:case 2:v=HI(b,c,d,e,false);$s=7;case 7:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=v;f=u[0];g=u[1];h=u[2];if(false&&$interfaceIsEqual(f,$ifaceNil)&&EY(b)){$s=8;continue;}$s=9;continue;case 8:w=CG(b);$s=10;case 10:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;if(!($interfaceIsEqual(x,$ifaceNil))){$s=11;continue;}$s=12;continue;case 11:z=HI(x,c,d,e,false);$s=13;case 13:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}y=z;f=y[0];g=y[1];h=y[2];aa=$assertType(f,NN,true);ab=aa[1];if(!ab){ac=$ifaceNil;ad=NW.nil;ae=false;f=ac;g=ad;h=ae;}case 12:case 9:$s=-1;return[f,g,h];}return;}var $f={$blk:HH,$c:true,$r,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.LookupFieldOrMethod=HH;HI=function(b,c,d,e,f){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=$ifaceNil;h=NW.nil;i=false;if(e==="_"){$s=-1;return[g,h,i];}j=HP(b);k=j[0];l=j[1];if(l){$s=1;continue;}$s=2;continue;case 1:n=CF(k);$s=3;case 3:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=$assertType(n,NH,true);o=m[1];if(o){$s=-1;return[g,h,i];}case 2:p=new RB([new HJ.ptr(k,NW.nil,l,false)]);q=new HM.ptr(false);case 4:if(!(p.$length>0)){$s=5;continue;}r=RB.nil;s=p;t=0;case 6:if(!(t=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]),HJ);v=u.typ;w=$assertType(v,NI,true);x=w[0];if(!(x===NI.nil)){$s=8;continue;}$s=9;continue;case 8:y=q.lookup(x);$s=10;case 10:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;if(!(z===NI.nil)){t++;$s=6;continue;}q.add(x);aa=x.resolve(OZ.nil);$s=11;case 11:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}aa;ac=x.lookupMethod(d,e,f);$s=12;case 12:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ab=ac;ad=ab[0];ae=ab[1];if(!(ae===MI.nil)){h=HR(u.index,ad);if(!($interfaceIsEqual(g,$ifaceNil))||u.multiples){af=$ifaceNil;ag=h;ah=false;g=af;h=ag;i=ah;$s=-1;return[g,h,i];}g=ae;i=u.indirect;t++;$s=6;continue;}case 9:aj=CF(v);$s=13;case 13:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ai=aj;if($assertType(ai,NF,true)[1]){$s=14;continue;}if($assertType(ai,NH,true)[1]){$s=15;continue;}$s=16;continue;case 14:ak=ai.$val;am=ak.fields;an=0;while(true){if(!(an=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+an]);if(ap.object.sameId(d,e)){JM(!($interfaceIsEqual(ap.object.typ,$ifaceNil)));h=HR(u.index,ao);if(!($interfaceIsEqual(g,$ifaceNil))||u.multiples){aq=$ifaceNil;ar=h;as=false;g=aq;h=ar;i=as;$s=-1;return[g,h,i];}g=ap;i=u.indirect;an++;continue;}if($interfaceIsEqual(g,$ifaceNil)&&ap.embedded){at=HP(ap.object.typ);au=at[0];av=at[1];r=$append(r,new HJ.ptr(au,HR(u.index,ao),u.indirect||av,u.multiples));}an++;}$s=16;continue;case 15:al=ai.$val;ax=al.typeSet();$s=17;case 17:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax.LookupMethod(d,e,f);$s=18;case 18:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}aw=ay;az=aw[0];ba=aw[1];if(!(ba===MI.nil)){JM(!($interfaceIsEqual(ba.object.typ,$ifaceNil)));h=HR(u.index,az);if(!($interfaceIsEqual(g,$ifaceNil))||u.multiples){bb=$ifaceNil;bc=h;bd=false;g=bb;h=bc;i=bd;$s=-1;return[g,h,i];}g=ba;i=u.indirect;}case 16:t++;$s=6;continue;case 7:if(!($interfaceIsEqual(g,$ifaceNil))){be=$assertType(g,MI,true);bf=be[0];if(!(bf===MI.nil)){if(bf.hasPtrRecv()&&!i&&!c){bg=$ifaceNil;bh=NW.nil;bi=true;g=bg;h=bh;i=bi;$s=-1;return[g,h,i];}}$s=-1;return[g,h,i];}bj=HK(r);$s=19;case 19:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}p=bj;$s=4;continue;case 5:bk=$ifaceNil;bl=NW.nil;bm=false;g=bk;h=bl;i=bm;$s=-1;return[g,h,i];}return;}var $f={$blk:HI,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};HK=function(b){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:if(b.$length<=1){$s=-1;return b;}c=0;d=new $global.Map();e=b;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]),HJ);i=HL(d,g.typ);$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[0];k=h[1];if(k){((j<0||j>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+j]).multiples=true;}else{l=g.typ;(d||$throwRuntimeError("assignment to entry in nil map")).set(CE.keyFor(l),{k:l,v:c});HJ.copy(((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]),g);c=c+(1)>>0;}f++;$s=1;continue;case 2:$s=-1;return $subslice(b,0,c);}return;}var $f={$blk:HK,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};HL=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=(e=$mapIndex(b,CE.keyFor(c)),e!==undefined?[e.v,true]:[0,false]);f=d[0];g=d[1];if(g){$s=-1;return[f,true];}h=b;i=0;j=h?h.keys():undefined;k=h?h.size:0;case 1:if(!(i=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f]);h=MC(b,g);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(h){$s=3;continue;}$s=4;continue;case 3:$s=-1;return g;case 4:f++;$s=1;continue;case 2:$s=-1;return NI.nil;}return;}var $f={$blk:HM.ptr.prototype.lookup,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};HM.prototype.lookup=function(b){return this.$val.lookup(b);};HM.ptr.prototype.add=function(b){var b,c,d,e,f;c=this;if(c.m===false){c.m=new $global.Map();}e=(d=$mapIndex(c.m,NI.keyFor(b.Origin())),d!==undefined?d.v:RE.nil);f=b.Origin();(c.m||$throwRuntimeError("assignment to entry in nil map")).set(NI.keyFor(f),{k:f,v:$append(e,b)});};HM.prototype.add=function(b){return this.$val.add(b);};KR.ptr.prototype.missingMethod=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=MI.nil;f=MI.nil;g=this;h=c.NumMethods();$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(h===0){$s=1;continue;}$s=2;continue;case 1:$s=-1;return[e,f];case 2:j=CF(b);$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=$assertType(j,NH,true);k=i[0];if(!(k===NH.nil)){$s=5;continue;}$s=6;continue;case 5:l=k.typeSet();$s=7;case 7:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;o=c.typeSet();$s=8;case 8:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o.methods;p=0;case 9:if(!(p=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+p]);r=m.LookupMethod(q.object.pkg,q.object.name,false);s=r[1];if(s===MI.nil){if(!d){p++;$s=9;continue;}t=q;u=MI.nil;e=t;f=u;$s=-1;return[e,f];}v=MC(s.object.typ,q.object.typ);$s=13;case 13:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}if(!v){$s=11;continue;}$s=12;continue;case 11:w=q;x=s;e=w;f=x;$s=-1;return[e,f];case 12:p++;$s=9;continue;case 10:$s=-1;return[e,f];case 6:z=c.typeSet();$s=14;case 14:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}y=z.methods;aa=0;case 15:if(!(aa=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+aa]);ad=HI(b,false,ab.object.pkg,ab.object.name,false);$s=17;case 17:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=ad;ae=ac[0];af=!($interfaceIsEqual(ae,$ifaceNil));if(!af){$s=18;continue;}$s=19;continue;case 18:ah=HI(FI(b),false,ab.object.pkg,ab.object.name,false);$s=20;case 20:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ag=ah;ae=ag[0];if($interfaceIsEqual(ae,$ifaceNil)){$s=21;continue;}$s=22;continue;case 21:aj=HI(b,false,ab.object.pkg,ab.object.name,true);$s=23;case 23:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ai=aj;ae=ai[0];case 22:case 19:ak=$assertType(ae,MI,true);al=ak[0];if(al===MI.nil){am=ab;an=MI.nil;e=am;f=an;$s=-1;return[e,f];}if(!(g===MQ.nil)){$s=24;continue;}$s=25;continue;case 24:$r=g.objDecl(al,NI.nil);$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 25:if(!af){ao=true;$s=29;continue s;}ap=MC(al.object.typ,ab.object.typ);$s=30;case 30:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ao=!ap;case 29:if(ao){$s=27;continue;}$s=28;continue;case 27:aq=ab;ar=al;e=aq;f=ar;$s=-1;return[e,f];case 28:aa++;$s=15;continue;case 16:$s=-1;return[e,f];}return;}var $f={$blk:KR.ptr.prototype.missingMethod,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.missingMethod=function(b,c,d){return this.$val.missingMethod(b,c,d);};KR.ptr.prototype.missingMethodReason=function(b,c,d,e){var{aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;g="";if(!(f===MQ.nil)&&false){g=d.object.Name()+" method";}else{g="method "+d.object.Name();}if(!(e===MI.nil)){$s=1;continue;}$s=2;continue;case 1:if(!(d.object.Name()===e.object.Name())){$s=3;continue;}$s=4;continue;case 3:h=new $String(g);i=f.funcString(e);$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=new $String(i);k=f.funcString(d);$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=new $String(k);m=f.sprintf("(missing %s)\n\t\thave %s\n\t\twant %s",new NA([h,j,l]));$s=7;case 7:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=8;case 8:return n;case 4:o=MC(d.object.typ,e.object.typ);$s=11;case 11:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(o){$s=9;continue;}$s=10;continue;case 9:p=f.sprintf("(%s has pointer receiver)",new NA([new $String(g)]));$s=12;case 12:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=13;case 13:return q;case 10:r=new $String(g);s=f.funcString(e);$s=14;case 14:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=new $String(s);u=f.funcString(d);$s=15;case 15:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=new $String(u);w=f.sprintf("(wrong type for %s)\n\t\thave %s\n\t\twant %s",new NA([r,t,v]));$s=16;case 16:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;$s=17;case 17:return x;case 2:y=HO(b);$s=20;case 20:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}if(y){$s=18;continue;}$s=19;continue;case 18:z=f.interfacePtrError(b);$s=21;case 21:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa="("+z+")";$s=22;case 22:return aa;case 19:ab=HO(c);$s=25;case 25:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}if(ab){$s=23;continue;}$s=24;continue;case 23:ac=f.interfacePtrError(c);$s=26;case 26:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad="("+ac+")";$s=27;case 27:return ad;case 24:ae=f.sprintf("(missing %s)",new NA([new $String(g)]));$s=28;case 28:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;$s=29;case 29:return af;}return;}var $f={$blk:KR.ptr.prototype.missingMethodReason,$c:true,$r,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.missingMethodReason=function(b,c,d,e){return this.$val.missingMethodReason(b,c,d,e);};HO=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=CF(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=$assertType(d,OB,true);e=c[0];if(!(!(e===OB.nil))){f=false;$s=2;continue s;}g=EX(e.base);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;case 2:h=f;$s=4;case 4:return h;}return;}var $f={$blk:HO,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};KR.ptr.prototype.interfacePtrError=function(b){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=HO(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$r=JM(d);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=CF(b);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=$assertType(f,OB,true);g=e[0];if(EY(g.base)){$s=4;continue;}$s=5;continue;case 4:h=c.sprintf("type %s is pointer to type parameter, not type parameter",new NA([b]));$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=7;case 7:return i;case 5:j=c.sprintf("type %s is pointer to interface, not interface",new NA([b]));$s=8;case 8:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=9;case 9:return k;}return;}var $f={$blk:KR.ptr.prototype.interfacePtrError,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};KR.prototype.interfacePtrError=function(b){return this.$val.interfacePtrError(b);};KR.ptr.prototype.funcString=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=H.NewBufferString(b.object.name);e=$throwNilPointerError;if(!(c===MQ.nil)){e=$methodVal(c,"qualifier");}$r=BI(d,$assertType(b.object.typ,OC),e);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return d.String();}return;}var $f={$blk:KR.ptr.prototype.funcString,$c:true,$r,b,c,d,e,$s};return $f;};KR.prototype.funcString=function(b){return this.$val.funcString(b);};KR.ptr.prototype.assertableTo=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=MI.nil;e=MI.nil;f=this;g=EX(c);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(g){$s=1;continue;}$s=2;continue;case 1:$s=-1;return[d,e];case 2:i=f.missingMethod(c,b,false);$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;d=h[0];e=h[1];j=[d,e];$s=5;case 5:return j;}return;}var $f={$blk:KR.ptr.prototype.assertableTo,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};KR.prototype.assertableTo=function(b,c){return this.$val.assertableTo(b,c);};HP=function(b){var b,c,d;c=$assertType(b,OB,true);d=c[0];if(!(d===OB.nil)){if($interfaceIsEqual(d.base,$ifaceNil)){if(false){$panic(new $String("pointer with nil base type (possibly due to an invalid cyclic declaration)"));}return[(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]),true];}return[d.base,true];}return[b,false];};HQ=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=CF(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=$assertType(d,OB,true);e=c[0];if(!(e===OB.nil)){$s=2;continue;}$s=3;continue;case 2:g=CF(e.base);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=$assertType(g,NF,true);h=f[1];if(h){$s=-1;return e.base;}case 3:$s=-1;return b;}return;}var $f={$blk:HQ,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};HR=function(b,c){var b,c,d;d=NW.nil;d=$appendSlice(d,b);return $append(d,c);};HS=function(b,c,d){var b,c,d,e,f,g,h;if(!(d==="_")){e=b;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(h.object.sameId(c,d)){return g;}f++;}}return-1;};HT=function(b,c,d,e){var b,c,d,e,f,g,h,i;if(!(d==="_")){f=b;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if((i.object.name===d||e&&F.EqualFold(i.object.name,d))&&i.object.sameId(c,i.object.name)){return[h,i];}g++;}}return[-1,MI.nil];};KR.ptr.prototype.labels=function(b){var{aa,ab,ac,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=ME.nil;e=b.Pos();f=b.End();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=DT(d,e,g,"label");$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=c.blockBranches(i,RF.nil,PS.nil,b.List);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=k;m=0;case 4:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);o="";p=0;q=n.Label.Name;r=i.Lookup(q);$s=6;case 6:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;if(!($interfaceIsEqual(s,$ifaceNil))){o="goto %s jumps into block";$assertType(s,QZ).used=true;p=124;}else{o="label %s not declared";p=119;}$r=c.errorf(n.Label,p,o,new NA([new $String(q)]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m++;$s=4;continue;case 5:t=i.elems;u=0;v=t?t.keys():undefined;w=t?t.size:0;case 8:if(!(u=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]);if(q===t){return true;}s++;}}return false;};})(b,d,f,g,h,i,j,k,l,m,n);h[0]=(function(b,d,f,g,h,i,j,k,l,m,n){return function $b(q,r){var{q,r,s,t,u,$s,$r,$c}=$restore(this,{q,r});$s=$s||0;s:while(true){switch($s){case 0:s=j[0];t=i[0].blockBranches(b[0],f[0],q,r);$s=1;case 1:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;j[0]=$appendSlice(s,u);$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,q,r,s,t,u,$s};return $f;};})(b,d,f,g,h,i,j,k,l,m,n);m[0]=$throwNilPointerError;m[0]=(function(b,d,f,g,h,i,j,k,l,m,n){return function $b(q){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{q});$s=$s||0;s:while(true){switch($s){case 0:r=q;if($assertType(r,PR,true)[1]){$s=1;continue;}if($assertType(r,PS,true)[1]){$s=2;continue;}if($assertType(r,QA,true)[1]){$s=3;continue;}if($assertType(r,PW,true)[1]){$s=4;continue;}if($assertType(r,QB,true)[1]){$s=5;continue;}if($assertType(r,QC,true)[1]){$s=6;continue;}if($assertType(r,PN,true)[1]){$s=7;continue;}if($assertType(r,QD,true)[1]){$s=8;continue;}if($assertType(r,QE,true)[1]){$s=9;continue;}if($assertType(r,PO,true)[1]){$s=10;continue;}if($assertType(r,QF,true)[1]){$s=11;continue;}if($assertType(r,QG,true)[1]){$s=12;continue;}if($assertType(r,QH,true)[1]){$s=13;continue;}$s=14;continue;case 1:s=r.$val;af=$assertType(s.Decl,RH,true);ag=af[0];if(!(ag===RH.nil)&&(ag.Tok===85)){$s=15;continue;}$s=16;continue;case 15:$r=l[0](ag.Pos());$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 16:$s=14;continue;case 2:t=r.$val;ah=t.Label.Name;if(!(ah==="_")){$s=18;continue;}$s=19;continue;case 18:ai=GJ(t.Label.Pos(),i[0].pkg,ah);aj=b[0].Insert(ai);$s=20;case 20:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=aj;if(!($interfaceIsEqual(ak,$ifaceNil))){$s=21;continue;}$s=22;continue;case 21:$r=i[0].softErrorf(ai,120,"label %s already declared",new NA([new $String(ah)]));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=i[0].reportAltDecl(ak);$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 22:f[0].insert(t);i[0].recordDef(t.Label,ai);case 23:al=0;am=j[0];an=0;case 26:if(!(an=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+an]);if(ao.Label.Name===ah){$s=28;continue;}$s=29;continue;case 28:ai.used=true;i[0].recordUse(ao.Label,ai);ap=k[0](ao);$s=33;case 33:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}if(ap){$s=31;continue;}$s=32;continue;case 31:aq=ao.Label;ar=new $String(ah);as=i[0].fset.Position(n[0]);$s=34;case 34:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=new $Int(as.Line);$r=i[0].softErrorf(aq,123,"goto %s jumps over variable declaration at line %d",new NA([ar,at]));$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 32:$s=30;continue;case 29:((al<0||al>=j[0].$length)?($throwRuntimeError("index out of range"),undefined):j[0].$array[j[0].$offset+al]=ao);al=al+(1)>>0;case 30:an++;$s=26;continue;case 27:j[0]=$subslice(j[0],0,al);d[0]=t;case 19:$r=m[0](t.Stmt);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 3:u=r.$val;if(u.Label===OF.nil){$s=-1;return;}au=u.Label.Name;av=u.Tok;if(av===(61)){$s=38;continue;}if(av===(65)){$s=39;continue;}if(av===(73)){$s=40;continue;}$s=41;continue;case 38:aw=false;ax=f[0].enclosingTarget(au);if(!(ax===PS.nil)){ay=ax.Stmt;if($assertType(ay,QD,true)[1]||$assertType(ay,QE,true)[1]||$assertType(ay,QF,true)[1]||$assertType(ay,QG,true)[1]||$assertType(ay,QH,true)[1]){aw=true;}}if(!aw){$s=43;continue;}$s=44;continue;case 43:$r=i[0].errorf(u.Label,121,"invalid break label %s",new NA([new $String(au)]));$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 44:$s=42;continue;case 39:az=false;ba=f[0].enclosingTarget(au);if(!(ba===PS.nil)){bb=ba.Stmt;if($assertType(bb,QG,true)[1]||$assertType(bb,QH,true)[1]){az=true;}}if(!az){$s=46;continue;}$s=47;continue;case 46:$r=i[0].errorf(u.Label,121,"invalid continue label %s",new NA([new $String(au)]));$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 47:$s=42;continue;case 40:if(f[0].gotoTarget(au)===PS.nil){j[0]=$append(j[0],u);$s=-1;return;}$s=42;continue;case 41:$r=i[0].invalidAST(u,"branch statement: %s %s",new NA([new C.Token(u.Tok),new $String(au)]));$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 42:case 37:bc=b[0].Lookup(au);$s=50;case 50:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;$assertType(bd,QZ).used=true;i[0].recordUse(u.Label,bd);$s=14;continue;case 4:v=r.$val;if(v.Tok===47){$s=51;continue;}$s=52;continue;case 51:be=v.Pos();$s=53;case 53:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}$r=l[0](be);$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 52:$s=14;continue;case 5:w=r.$val;$r=h[0](d[0],w.List);$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 6:x=r.$val;$r=m[0](x.Body);$s=56;case 56:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(x.Else,$ifaceNil))){$s=57;continue;}$s=58;continue;case 57:$r=m[0](x.Else);$s=59;case 59:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 58:$s=14;continue;case 7:y=r.$val;$r=h[0](PS.nil,y.Body);$s=60;case 60:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 8:z=r.$val;$r=m[0](z.Body);$s=61;case 61:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 9:aa=r.$val;$r=m[0](aa.Body);$s=62;case 62:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 10:ab=r.$val;$r=h[0](PS.nil,ab.Body);$s=63;case 63:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 11:ac=r.$val;$r=m[0](ac.Body);$s=64;case 64:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 12:ad=r.$val;$r=m[0](ad.Body);$s=65;case 65:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 13:ae=r.$val;$r=m[0](ae.Body);$s=66;case 66:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,q,r,s,t,u,v,w,x,y,z,$s};return $f;};})(b,d,f,g,h,i,j,k,l,m,n);q=e;r=0;case 1:if(!(r=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);$r=m[0](s);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}r++;$s=1;continue;case 2:$s=-1;return j[0];}return;}var $f={$blk:KR.ptr.prototype.blockBranches,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};KR.prototype.blockBranches=function(b,c,d,e){return this.$val.blockBranches(b,c,d,e);};HV.ptr.prototype.typeSet=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BP(b.check,0,b);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:HV.ptr.prototype.typeSet,$c:true,$r,b,c,d,$s};return $f;};HV.prototype.typeSet=function(){return this.$val.typeSet();};HX=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=$makeSlice(MS,c.$length);e=c;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]=h);f++;}i=HY(b,d);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=2;case 2:return j;}return;}var $f={$blk:HX,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};$pkg.NewInterface=HX;HY=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:if((b.$length===0)&&(c.$length===0)){$s=-1;return HW;}d=(MQ.nil).newInterface();e=b;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);h=$assertType(g.object.typ,OC);if(h.recv===NN.nil){h.recv=GD(g.object.pos,g.object.pkg,"",d);}f++;}$r=BR(b);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d.methods=b;d.embeddeds=c;d.complete=true;$s=-1;return d;}return;}var $f={$blk:HY,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};$pkg.NewInterfaceType=HY;KR.ptr.prototype.newInterface=function(){var b,c;b=this;c=new HV.ptr(b,MR.nil,MJ.nil,MS.nil,MU.nil,false,false,MV.nil);if(!(b===MQ.nil)){b.needsCleanup(c);}return c;};KR.prototype.newInterface=function(){return this.$val.newInterface();};HV.ptr.prototype.MarkImplicit=function(){var b;b=this;b.implicit=true;};HV.prototype.MarkImplicit=function(){return this.$val.MarkImplicit();};HV.ptr.prototype.NumExplicitMethods=function(){var b;b=this;return b.methods.$length;};HV.prototype.NumExplicitMethods=function(){return this.$val.NumExplicitMethods();};HV.ptr.prototype.ExplicitMethod=function(b){var b,c,d;c=this;return(d=c.methods,((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));};HV.prototype.ExplicitMethod=function(b){return this.$val.ExplicitMethod(b);};HV.ptr.prototype.NumEmbeddeds=function(){var b;b=this;return b.embeddeds.$length;};HV.prototype.NumEmbeddeds=function(){return this.$val.NumEmbeddeds();};HV.ptr.prototype.Embedded=function(b){var b,c,d,e,f;c=this;d=$assertType((e=c.embeddeds,((b<0||b>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+b])),NI,true);f=d[0];return f;};HV.prototype.Embedded=function(b){return this.$val.Embedded(b);};HV.ptr.prototype.EmbeddedType=function(b){var b,c,d;c=this;return(d=c.embeddeds,((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));};HV.prototype.EmbeddedType=function(b){return this.$val.EmbeddedType(b);};HV.ptr.prototype.NumMethods=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.typeSet();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.NumMethods();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=3;case 3:return e;}return;}var $f={$blk:HV.ptr.prototype.NumMethods,$c:true,$r,b,c,d,e,$s};return $f;};HV.prototype.NumMethods=function(){return this.$val.NumMethods();};HV.ptr.prototype.Method=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.typeSet();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.Method(b);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=3;case 3:return f;}return;}var $f={$blk:HV.ptr.prototype.Method,$c:true,$r,b,c,d,e,f,$s};return $f;};HV.prototype.Method=function(b){return this.$val.Method(b);};HV.ptr.prototype.Empty=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.typeSet();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.IsAll();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=3;case 3:return e;}return;}var $f={$blk:HV.ptr.prototype.Empty,$c:true,$r,b,c,d,e,$s};return $f;};HV.prototype.Empty=function(){return this.$val.Empty();};HV.ptr.prototype.IsComparable=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.typeSet();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.IsComparable(false);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=3;case 3:return e;}return;}var $f={$blk:HV.ptr.prototype.IsComparable,$c:true,$r,b,c,d,e,$s};return $f;};HV.prototype.IsComparable=function(){return this.$val.IsComparable();};HV.ptr.prototype.IsMethodSet=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.typeSet();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.IsMethodSet();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=3;case 3:return e;}return;}var $f={$blk:HV.ptr.prototype.IsMethodSet,$c:true,$r,b,c,d,e,$s};return $f;};HV.prototype.IsMethodSet=function(){return this.$val.IsMethodSet();};HV.ptr.prototype.IsImplicit=function(){var b;b=this;return b.implicit;};HV.prototype.IsImplicit=function(){return this.$val.IsImplicit();};HV.ptr.prototype.Complete=function(){var{b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(!b.complete){b.complete=true;}c=b.typeSet();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}c;$s=-1;return b;}return;}var $f={$blk:HV.ptr.prototype.Complete,$c:true,$r,b,c,$s};return $f;};HV.prototype.Complete=function(){return this.$val.Complete();};HV.ptr.prototype.Underlying=function(){var b;b=this;return b;};HV.prototype.Underlying=function(){return this.$val.Underlying();};HV.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BF(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:HV.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};HV.prototype.String=function(){return this.$val.String();};HV.ptr.prototype.cleanup=function(){var b;b=this;b.check=MQ.nil;b.embedPos=MU.nil;};HV.prototype.cleanup=function(){return this.$val.cleanup();};KR.ptr.prototype.interfaceType=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];e=[e];e[0]=this;f=(function(b,c,e){return function(f,g){var f,g;b[0].embeddeds=$append(b[0].embeddeds,g);if(b[0].embedPos===MU.nil){b[0].embedPos=$newDataPointer(MT.nil,MU);}b[0].embedPos.$set($append(b[0].embedPos.$get(),f));};})(b,c,e);g=c[0].Methods.List;h=0;case 1:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if(i.Names.$length===0){$s=3;continue;}$s=4;continue;case 3:j=i.Type.Pos();$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=AT(e[0],i.Type);$s=6;case 6:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$r=f(k,m);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h++;$s=1;continue;case 4:o=(n=i.Names,(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0]));if(o.Name==="_"){$s=8;continue;}$s=9;continue;case 8:$r=e[0].errorf(o,27,"invalid method name _",new NA([]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h++;$s=1;continue;case 9:p=e[0].typ(i.Type);$s=11;case 11:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;r=$assertType(q,OC,true);s=r[0];if(s===OC.nil){$s=12;continue;}$s=13;continue;case 12:if(!($interfaceIsEqual(q,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0])))){$s=14;continue;}$s=15;continue;case 14:$r=e[0].invalidAST(i.Type,"%s is not a method signature",new NA([q]));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 15:h++;$s=1;continue;case 13:if(!(s.tparams===OX.nil)){$s=17;continue;}$s=18;continue;case 17:t=i.Type;u=$assertType(i.Type,OT,true);v=u[0];if(!(v===OT.nil)&&!(v.TypeParams===OY.nil)){t=v.TypeParams;}$r=e[0].errorf(t,143,"methods cannot have type parameters",new NA([]));$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 18:w=b[0];if(!(d===NI.nil)){w=d;}s.recv=GD(o.Pos(),e[0].pkg,"",w);x=GH(o.Pos(),e[0].pkg,o.Name,s);e[0].recordDef(o,x);b[0].methods=$append(b[0].methods,x);h++;$s=1;continue;case 2:b[0].complete=true;if((b[0].methods.$length===0)&&(b[0].embeddeds.$length===0)){b[0].tset=BO;$s=-1;return;}$r=BR(b[0].methods);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e[0].later((function(b,c,e){return function $b(){var{y,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=BP(e[0],c[0].Pos(),b[0]);$s=1;case 1:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}y;$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,y,$s};return $f;};})(b,c,e)).describef(c[0],"compute type set for %s",new NA([b[0]]));$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.interfaceType,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s};return $f;};KR.prototype.interfaceType=function(b,c,d){return this.$val.interfaceType(b,c,d);};HZ=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:if(e){$s=1;continue;}$s=2;continue;case 1:f=NL.nil;g=c;if($assertType(g,NI,true)[1]){$s=3;continue;}if($assertType(g,OC,true)[1]){$s=4;continue;}$s=5;continue;case 3:h=g.$val;j=h.TypeParams();$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j.list();$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}f=k;$s=5;continue;case 4:i=g.$val;f=i.TypeParams().list();case 5:if(!((d.$length===f.$length))){$s=8;continue;}$s=9;continue;case 8:l=A.Errorf("got %d type arguments but %s has %d type parameters",new NA([new $Int(d.$length),c,new $Int(f.$length)]));$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=[$ifaceNil,l];$s=11;case 11:return m;case 9:o=(MQ.nil).verify(0,f,d);$s=12;case 12:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;p=n[0];q=n[1];if(!($interfaceIsEqual(q,$ifaceNil))){$s=-1;return[$ifaceNil,new LO.ptr(p,q)];}case 2:r=(MQ.nil).instance(0,c,d,b);$s=13;case 13:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;$s=-1;return[s,$ifaceNil];}return;}var $f={$blk:HZ,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};$pkg.Instantiate=HZ;KR.ptr.prototype.instance=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:b=[b];f=[f];g=$ifaceNil;h=this;i="";if(!(e===OZ.nil)){$s=1;continue;}$s=2;continue;case 1:j=e.instanceHash(c,d);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=e.lookup(i,c,d);$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(!($interfaceIsEqual(l,$ifaceNil))){g=l;$s=-1;return g;}case 2:m=c;if($assertType(m,NI,true)[1]){$s=5;continue;}if($assertType(m,OC,true)[1]){$s=6;continue;}$s=7;continue;case 5:n=m.$val;q=GA(b[0],n.obj.object.pkg,n.obj.object.name,$ifaceNil);r=h.newNamed(q,n,$ifaceNil,OX.nil,PA.nil);r.targs=CC(d);r.resolver=(function(b,f){return function $b(s,t){var{s,t,u,v,$s,$r,$c}=$restore(this,{s,t});$s=$s||0;s:while(true){switch($s){case 0:u=GT(s,t,b[0]);$s=1;case 1:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;$s=2;case 2:return v;}return;}var $f={$blk:$b,$c:true,$r,s,t,u,v,$s};return $f;};})(b,f);g=r;$s=8;continue;case 6:o=m.$val;s=o.TypeParams();t=h.validateTArgLen(b[0],s.Len(),d.$length);$s=11;case 11:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}if(!t){$s=9;continue;}$s=10;continue;case 9:g=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);$s=-1;return g;case 10:if(s.Len()===0){g=o;$s=-1;return g;}u=h.subst(b[0],o,CO(s.list(),d),e);$s=12;case 12:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=$assertType(u,OC);if(v===o){f[0]=$clone(v,DM);v=f[0];}v.tparams=OX.nil;g=v;$s=8;continue;case 7:p=m;w=A.Sprintf("%v: cannot instantiate %v",new NA([new C.Pos(b[0]),p]));$s=13;case 13:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}$panic(new $String(w));case 8:if(!(e===OZ.nil)){$s=14;continue;}$s=15;continue;case 14:x=e.update(i,c,d,g);$s=16;case 16:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}g=x;case 15:g=g;$s=-1;return g;}return;}var $f={$blk:KR.ptr.prototype.instance,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s};return $f;};KR.prototype.instance=function(b,c,d,e){return this.$val.instance(b,c,d,e);};KR.ptr.prototype.validateTArgLen=function(b,c,d){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if(!((d===c))){$s=1;continue;}$s=2;continue;case 1:if(!(e===MQ.nil)){$s=3;continue;}$s=4;continue;case 3:$r=e.errorf(new JS(((b>>0))),137,"got %d arguments but %d type parameters",new NA([new $Int(d),new $Int(c)]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 4:f=A.Sprintf("%v: got %d arguments but %d type parameters",new NA([new C.Pos(b),new $Int(d),new $Int(c)]));$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$panic(new $String(f));case 2:$s=-1;return true;}return;}var $f={$blk:KR.ptr.prototype.validateTArgLen,$c:true,$r,b,c,d,e,f,$s};return $f;};KR.prototype.validateTArgLen=function(b,c,d){return this.$val.validateTArgLen(b,c,d);};KR.ptr.prototype.verify=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=CO(c,d);g=c;h=0;case 1:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);k=j.iface();$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;l=e.subst(b,j.bound,f,OZ.nil);$s=4;case 4:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=e.implements$(((i<0||i>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+i]),m);$s=5;case 5:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;if(!($interfaceIsEqual(o,$ifaceNil))){$s=-1;return[i,o];}h++;$s=1;continue;case 2:$s=-1;return[-1,$ifaceNil];}return;}var $f={$blk:KR.ptr.prototype.verify,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};KR.prototype.verify=function(b,c,d){return this.$val.verify(b,c,d);};KR.ptr.prototype.implements$=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:b=[b];d=[d];e=[e];e[0]=this;f=CF(b[0]);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=CF(c);$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if($interfaceIsEqual(g,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))||$interfaceIsEqual(i,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=-1;return $ifaceNil;}j=$assertType(g,OB,true);k=j[0];if(!(!(k===OB.nil))){l=false;$s=5;continue s;}m=CF(k.base);$s=6;case 6:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=$interfaceIsEqual(m,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]));case 5:if(l){$s=3;continue;}$s=4;continue;case 3:$s=-1;return $ifaceNil;case 4:n=(function(b,d,e){return function $b(n,o){var{n,o,p,q,r,$s,$r,$c}=$restore(this,{n,o});$s=$s||0;s:while(true){switch($s){case 0:p=e[0].sprintf(n,o);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=P.New(p);$s=2;case 2:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;$s=3;case 3:return r;}return;}var $f={$blk:$b,$c:true,$r,n,o,p,q,r,$s};return $f;};})(b,d,e);o=$assertType(i,NH,true);p=o[0];if(p===NH.nil){$s=7;continue;}$s=8;continue;case 7:q="";r=HO(i);$s=12;case 12:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}if(r){$s=9;continue;}$s=10;continue;case 9:s=e[0].sprintf("type %s is pointer to interface, not interface",new NA([c]));$s=13;case 13:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}q=s;$s=11;continue;case 10:t=e[0].sprintf("%s is not an interface",new NA([c]));$s=14;case 14:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}q=t;case 11:u=n("%s does not implement %s (%s)",new NA([b[0],c,new $String(q)]));$s=15;case 15:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;$s=16;case 16:return v;case 8:w=p.Empty();$s=19;case 19:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}if(w){$s=17;continue;}$s=18;continue;case 17:$s=-1;return $ifaceNil;case 18:x=$assertType(g,NH,true);y=x[0];if(!(!(y===NH.nil))){z=false;$s=22;continue s;}aa=y.typeSet();$s=23;case 23:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa.IsEmpty();$s=24;case 24:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}z=ab;case 22:if(z){$s=20;continue;}$s=21;continue;case 20:$s=-1;return $ifaceNil;case 21:ac=p.typeSet();$s=27;case 27:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac.IsEmpty();$s=28;case 28:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}if(ad){$s=25;continue;}$s=26;continue;case 25:ae=n("cannot implement %s (empty type set)",new NA([c]));$s=29;case 29:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;$s=30;case 30:return af;case 26:ah=e[0].missingMethod(b[0],p,true);$s=31;case 31:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ag=ah;ai=ag[0];aj=ag[1];if(!(ai===MI.nil)){$s=32;continue;}$s=33;continue;case 32:ak=b[0];al=c;am=e[0].missingMethodReason(b[0],c,ai,aj);$s=34;case 34:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=new $String(am);ao=n("%s does not implement %s %s",new NA([ak,al,an]));$s=35;case 35:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=ao;$s=36;case 36:return ap;case 33:aq=$ifaceNil;as=p.IsComparable();$s=40;case 40:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}if(!(as)){ar=false;$s=39;continue s;}at=FB(b[0],false,false,$throwNilPointerError);$s=41;case 41:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}ar=!at;case 39:if(ar){$s=37;continue;}$s=38;continue;case 37:au=n("%s does not implement comparable",new NA([b[0]]));$s=42;case 42:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}aq=au;case 38:av=p.typeSet();$s=45;case 45:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=av.hasTerms();$s=46;case 46:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}if(!aw){$s=43;continue;}$s=44;continue;case 43:$s=-1;return aq;case 44:if(!(y===NH.nil)){$s=47;continue;}$s=48;continue;case 47:ax=y.typeSet();$s=51;case 51:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=p.typeSet();$s=52;case 52:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ax.subsetOf(ay);$s=53;case 53:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}if(!az){$s=49;continue;}$s=50;continue;case 49:ba=n("%s does not implement %s",new NA([b[0],c]));$s=54;case 54:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba;$s=55;case 55:return bb;case 50:$s=-1;return aq;case 48:d[0]=$ifaceNil;bc=p.typeSet();$s=58;case 58:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc.is((function(b,d,e){return function $b(bd){var{bd,be,bf,bg,bh,bi,bj,bk,bl,$s,$r,$c}=$restore(this,{bd});$s=$s||0;s:while(true){switch($s){case 0:be=bd.includes(b[0]);$s=3;case 3:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}if(!be){$s=1;continue;}$s=2;continue;case 1:if(!($interfaceIsEqual(d[0],$ifaceNil)&&!bd.tilde)){bf=false;$s=6;continue s;}bg=bd.typ;bh=CF(bd.typ);$s=7;case 7:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bi=bh;bj=MC(bg,bi);$s=8;case 8:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bf=bj;case 6:if(bf){$s=4;continue;}$s=5;continue;case 4:bk=$clone(bd,BC);bk.tilde=true;bl=bk.includes(b[0]);$s=11;case 11:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}if(bl){$s=9;continue;}$s=10;continue;case 9:d[0]=bd.typ;case 10:case 5:$s=-1;return true;case 2:$s=-1;return false;}return;}var $f={$blk:$b,$c:true,$r,bd,be,bf,bg,bh,bi,bj,bk,bl,$s};return $f;};})(b,d,e));$s=59;case 59:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}if(bd){$s=56;continue;}$s=57;continue;case 56:if(!($interfaceIsEqual(d[0],$ifaceNil))){$s=60;continue;}$s=61;continue;case 60:be=n("%s does not implement %s (possibly missing ~ for %s in constraint %s)",new NA([b[0],c,d[0],c]));$s=63;case 63:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bf=be;$s=64;case 64:return bf;case 61:bg=n("%s does not implement %s",new NA([b[0],c]));$s=65;case 65:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=bg;$s=66;case 66:return bh;case 62:case 57:$s=-1;return aq;}return;}var $f={$blk:KR.ptr.prototype.implements$,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.implements$=function(b,c){return this.$val.implements$(b,c);};KR.ptr.prototype.initOrder=function(){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=this;c.Info.InitOrder=$subslice(c.Info.InitOrder,0,0);d=IE(c.objMap);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}b[0]=($convertSliceType(d,IF));$r=Q.Init((b.$ptr||(b.$ptr=new RI(function(){return this.$target[0];},function($v){this.$target[0]=$v;},b))));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(false){$s=3;continue;}$s=4;continue;case 3:e=A.Printf("Computing initialization order for %s\n\n",new NA([c.pkg]));$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;f=A.Println(new NA([new $String("Object dependency graph:")]));$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;g=c.objMap;h=0;i=g?g.keys():undefined;j=g?g.size:0;case 7:if(!(h0){$s=11;continue;}$s=12;continue;case 11:q=p.Name();$s=14;case 14:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=new $String(q);s=A.Printf("\t%s depends on\n",new NA([r]));$s=15;case 15:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;t=n.deps;u=0;v=t?t.keys():undefined;w=t?t.size:0;case 16:if(!(u=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+aj]);al=ak.obj.Name();$s=26;case 26:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=new $String(al);an=new $Int(ak.ndeps);ao=A.Printf("\t%s depends on %d nodes\n",new NA([am,an]));$s=27;case 27:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ao;ap=ak.pred;aq=0;ar=ap?ap.keys():undefined;as=ap?ap.size:0;case 28:if(!(aq0)){$s=35;continue;}bc=Q.Pop((b.$ptr||(b.$ptr=new RI(function(){return this.$target[0];},function($v){this.$target[0]=$v;},b))));$s=36;case 36:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=$assertType(bc,RJ);if(false){$s=37;continue;}$s=38;continue;case 37:be=bd.obj.Name();$s=39;case 39:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bf=new $String(be);bg=bd.obj.order();$s=40;case 40:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=new $Uint32(bg);bi=new $Int(bd.ndeps);bj=A.Printf("\t%s (src pos %d) depends on %d nodes now\n",new NA([bf,bh,bi]));$s=41;case 41:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bj;case 38:if(bd.ndeps>0){$s=42;continue;}$s=43;continue;case 42:bk=IA(c.objMap,bd.obj,bd.obj,new $global.Map());if(!(bk===ND.nil)){$s=44;continue;}$s=45;continue;case 44:$r=c.reportCycle(bk);$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 45:case 43:bl=bd.pred;bm=0;bn=bl?bl.keys():undefined;bo=bl?bl.size:0;case 47:if(!(bm>0;$r=Q.Fix((b.$ptr||(b.$ptr=new RI(function(){return this.$target[0];},function($v){this.$target[0]=$v;},b))),br.index);$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bm++;$s=47;continue;case 48:bs=$assertType(bd.obj,NN,true);bt=bs[0];bv=(bu=$mapIndex(c.objMap,FQ.keyFor(bt)),bu!==undefined?bu.v:PK.nil);if(bt===NN.nil||!bv.hasInitializer()){$s=34;continue;}if((bw=$mapIndex(bb,PK.keyFor(bv)),bw!==undefined?bw.v:false)){$s=34;continue;}bx=bv;(bb||$throwRuntimeError("assignment to entry in nil map")).set(PK.keyFor(bx),{k:bx,v:true});by=bv.lhs;if(by===NO.nil){by=new NO([bt]);}bz=new LX.ptr(by,bv.init);c.Info.InitOrder=$append(c.Info.InitOrder,bz);$s=34;continue;case 35:if(false){$s=50;continue;}$s=51;continue;case 50:ca=A.Println(NA.nil);$s=52;case 52:if($c){$c=false;ca=ca.$blk();}if(ca&&ca.$blk!==undefined){break s;}ca;cb=A.Println(new NA([new $String("Initialization order:")]));$s=53;case 53:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}cb;cc=c.Info.InitOrder;cd=0;case 54:if(!(cd=cc.$length)?($throwRuntimeError("index out of range"),undefined):cc.$array[cc.$offset+cd]);cf=A.Printf("\t%s\n",new NA([ce]));$s=56;case 56:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}cf;cd++;$s=54;continue;case 55:cg=A.Println(NA.nil);$s=57;case 57:if($c){$c=false;cg=cg.$blk();}if(cg&&cg.$blk!==undefined){break s;}cg;case 51:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.initOrder,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.initOrder=function(){return this.$val.initOrder();};IA=function(b,c,d,e){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;if((f=$mapIndex(e,FQ.keyFor(c)),f!==undefined?f.v:false)){return ND.nil;}g=c;(e||$throwRuntimeError("assignment to entry in nil map")).set(FQ.keyFor(g),{k:g,v:true});h=(i=$mapIndex(b,FQ.keyFor(c)),i!==undefined?i.v:PK.nil).deps;j=0;k=h?h.keys():undefined;l=h?h.size:0;while(true){if(!(j=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]);e=d;f=d.Name();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=new $String(f);$r=c.errorf(e,9,"initialization cycle for %s",new NA([g]));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=b.$length-1>>0;case 3:if(!(h>=0)){$s=4;continue;}i=d;j=d.Name();$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=new $String(j);$r=c.errorf(i,9,"\t%s refers to",new NA([k]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=((h<0||h>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+h]);h=h-(1)>>0;$s=3;continue;case 4:l=d;m=d.Name();$s=7;case 7:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=new $String(m);$r=c.errorf(l,9,"\t%s",new NA([n]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.reportCycle,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};KR.prototype.reportCycle=function(b){return this.$val.reportCycle(b);};IC.ptr.prototype.cost=function(){var b;b=this;return $imul((b.pred?b.pred.size:0),(b.succ?b.succ.size:0));};IC.prototype.cost=function(){return this.$val.cost();};$ptrType(ID).prototype.add=function(b){var b,c,d;c=this;if(c.$get()===false){c.$set(new $global.Map());}d=b;(c.$get()||$throwRuntimeError("assignment to entry in nil map")).set(RJ.keyFor(d),{k:d,v:true});};IE=function(b){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=new $global.Map();e=b;f=0;g=e?e.keys():undefined;h=e?e.size:0;while(true){if(!(f=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+au]).cost()<((av<0||av>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+av]).cost();};})(c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}au=c[0];av=0;while(true){if(!(av=au.$length)?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+av]);ax=aw.pred;ay=0;az=ax?ax.keys():undefined;ba=ax?ax.size:0;while(true){if(!(ay=bs.$length)?($throwRuntimeError("index out of range"),undefined):bs.$array[bs.$offset+bt]);bv.index=bu;bv.ndeps=(bv.succ?bv.succ.size:0);bt++;}$s=-1;return ak;}return;}var $f={$blk:IE,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};IF.prototype.Len=function(){var b;b=this;return b.$length;};$ptrType(IF).prototype.Len=function(){return this.$get().Len();};IF.prototype.Swap=function(b,c){var b,c,d,e,f,g,h,i,j,k,l;d=this;e=((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]);f=((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]);g=e;h=f;i=h;j=g;((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]=i);((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]=j);k=c;l=b;g.index=k;h.index=l;};$ptrType(IF).prototype.Swap=function(b,c){return this.$get().Swap(b,c);};IF.prototype.Less=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]);f=((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]);g=e;h=f;if(g.ndeps>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]));f.index=-1;b.$set($subslice((b.$get()),0,(c-1>>0)));return f;};KR.ptr.prototype.infer=function(b,c,d,e,f){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b,c,d,e,f});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];g=[g];h=[h];i=[i];h[0]=MS.nil;g[0]=this;if(false){$s=1;continue;}$s=2;continue;case 1:$deferred.push([(function(c,g,h,i){return function(){var j,k,l;JM(h[0]===MS.nil||(h[0].$length===c[0].$length));j=h[0];k=0;while(true){if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);JM(!($interfaceIsEqual(l,$ifaceNil)));k++;}};})(c,g,h,i),[]]);case 2:if(false){$s=3;continue;}$s=4;continue;case 3:$r=g[0].dump("-- inferA %s%s \xE2\x9E\x9E %s",new NA([c[0],e,d]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([(function(c,g,h,i){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=g[0].dump("=> inferA %s \xE2\x9E\x9E %s",new NA([c[0],h[0]]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(c,g,h,i),[]]);case 4:j=c[0].$length;JM(j>0&&d.$length<=j);JM(e.Len()===f.$length);if(d.$length===j){$s=6;continue;}$s=7;continue;case 6:h[0]=d;k=h[0];$s=8;case 8:return k;case 7:if(true){$s=9;continue;}$s=10;continue;case 9:l=!(g[0].environment.sig===OC.nil)&&g[0].environment.sig.tparams.Len()>0&&(0>=c[0].$length?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+0])===g[0].environment.sig.tparams.At(0);if(l){$s=11;continue;}$s=12;continue;case 11:m=$makeSlice(NL,c[0].$length);n=c[0];o=0;case 13:if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]);r=GA(q.Obj().object.Pos(),q.Obj().object.Pkg(),q.Obj().object.Name(),$ifaceNil);s=BZ(r,$ifaceNil);$s=15;case 15:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}((p<0||p>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+p]=s);((p<0||p>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+p]).index=q.index;o++;$s=13;continue;case 14:t=CP(c[0],m);u=c[0];v=0;case 16:if(!(v=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v]);y=b.Pos();$s=18;case 18:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=g[0].subst(y,x.bound,t,OZ.nil);$s=19;case 19:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}((w<0||w>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+w]).bound=z;v++;$s=16;continue;case 17:c[0]=m;aa=b.Pos();$s=20;case 20:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=g[0].subst(aa,e,t,OZ.nil);$s=21;case 21:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}e=$assertType(ab,NM);case 12:case 10:ac=f.$length;if(ac>=2&&false){ad=NW.nil;ae=NW.nil;af=ad;ag=ae;ah=f;ai=0;while(true){if(!(ai=ah.$length)?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+ai]);if(EU(ak.typ)){af=$append(af,aj);}else{ag=$append(ag,aj);}ai++;}if(!((af.$length===0))&&!((ag.$length===0))){al=$makeSlice(NO,ac);am=$makeSlice(PC,ac);an=0;ao=af;ap=0;while(true){if(!(ap=ao.$length)?($throwRuntimeError("index out of range"),undefined):ao.$array[ao.$offset+ap]);((an<0||an>=al.$length)?($throwRuntimeError("index out of range"),undefined):al.$array[al.$offset+an]=e.At(aq));((an<0||an>=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+an]=((aq<0||aq>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+aq]));an=an+(1)>>0;ap++;}ar=ag;as=0;while(true){if(!(as=ar.$length)?($throwRuntimeError("index out of range"),undefined):ar.$array[ar.$offset+as]);((an<0||an>=al.$length)?($throwRuntimeError("index out of range"),undefined):al.$array[al.$offset+an]=e.At(at));((an<0||an>=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+an]=((at<0||at>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+at]));an=an+(1)>>0;as++;}e=CK(al);f=am;}}if(d.$length0){$s=22;continue;}$s=23;continue;case 22:av=CO(c[0],d);aw=g[0].subst(0,e,av,OZ.nil);$s=24;case 24:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}e=$assertType(aw,NM);case 23:i[0]=AY(false);i[0].x.init(c[0]);ax=d;ay=0;case 25:if(!(ay=ax.$length)?($throwRuntimeError("index out of range"),undefined):ax.$array[ax.$offset+ay]);if(!($interfaceIsEqual(ba,$ifaceNil))){$s=27;continue;}$s=28;continue;case 27:$r=i[0].x.set(az,ba);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 28:ay++;$s=25;continue;case 26:bb=(function(c,g,h,i){return function $b(bb,bc,bd,be){var{bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,$s,$r,$c}=$restore(this,{bb,bc,bd,be});$s=$s||0;s:while(true){switch($s){case 0:bf=i[0].x.types();bg=bf[0];bh=bf[1];if(bh===0){$s=1;continue;}$s=2;continue;case 1:bi=true;bj=bg;bk=0;while(true){if(!(bk=bj.$length)?($throwRuntimeError("index out of range"),undefined):bj.$array[bj.$offset+bk]);if(!($interfaceIsEqual(bl,$ifaceNil))){bi=false;break;}bk++;}if(bi){$s=3;continue;}$s=4;continue;case 3:$r=g[0].errorf(be,138,"%s %s of %s does not match %s (cannot infer %s)",new NA([new $String(bb),bd,be.expr,bc,new $String(IG(c[0]))]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 4:case 2:bm=CO(c[0],bg);bn=be.Pos();$s=6;case 6:if($c){$c=false;bn=bn.$blk();}if(bn&&bn.$blk!==undefined){break s;}bo=g[0].subst(bn,bc,bm,OZ.nil);$s=7;case 7:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=bo;if(!($interfaceIsEqual(bp,bc))){$s=8;continue;}$s=9;continue;case 8:$r=g[0].errorf(be,138,"%s %s of %s does not match inferred type %s for %s",new NA([new $String(bb),bd,be.expr,bp,bc]));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=10;continue;case 9:$r=g[0].errorf(be,138,"%s %s of %s does not match %s",new NA([new $String(bb),bd,be.expr,bc]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,$s};return $f;};})(c,g,h,i);bc=NW.nil;bd=f;be=0;case 30:if(!(be=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+be]);bh=e.At(bf);bi=IH(c[0],bh.object.typ);$s=34;case 34:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}if(bi){$s=32;continue;}$s=33;continue;case 32:if(bg.mode===0){be++;$s=30;continue;}bj=bg.typ;if(EV(bj)){$s=35;continue;}$s=36;continue;case 35:bk=i[0].unify(bh.object.typ,bj);$s=40;case 40:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}if(!bk){$s=38;continue;}$s=39;continue;case 38:$r=bb("type",bh.object.typ,bj,bg);$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h[0]=MS.nil;bl=h[0];$s=42;case 42:return bl;case 39:$s=37;continue;case 36:bm=$assertType(bh.object.typ,NJ,true);bn=bm[1];if(bn){bc=$append(bc,bf);}case 37:case 33:be++;$s=30;continue;case 31:bo=0;bp=i[0].x.types();d=bp[0];bo=bp[1];if(bo<0){$s=43;continue;}$s=44;continue;case 43:h[0]=d;bq=h[0];$s=45;case 45:return bq;case 44:bs=g[0].inferB(b,c[0],d);$s=46;case 46:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}br=bs;d=br[0];bo=br[1];if(d===MS.nil||bo<0){$s=47;continue;}$s=48;continue;case 47:h[0]=d;bt=h[0];$s=49;case 49:return bt;case 48:bu=bc;bv=0;case 50:if(!(bv=bu.$length)?($throwRuntimeError("index out of range"),undefined):bu.$array[bu.$offset+bv]);bx=$assertType(e.At(bw).object.typ,NJ);if($interfaceIsEqual((by=bx.index,((by<0||by>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+by])),$ifaceNil)){$s=52;continue;}$s=53;continue;case 52:bz=((bw<0||bw>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+bw]);ca=FG(bz.typ);if(!(EV(ca))){cb=false;$s=56;continue s;}cc=i[0].unify(bx,ca);$s=57;case 57:if($c){$c=false;cc=cc.$blk();}if(cc&&cc.$blk!==undefined){break s;}cb=!cc;case 56:if(cb){$s=54;continue;}$s=55;continue;case 54:$r=bb("default type",bx,ca,bz);$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h[0]=MS.nil;cd=h[0];$s=59;case 59:return cd;case 55:case 53:bv++;$s=50;continue;case 51:ce=i[0].x.types();d=ce[0];bo=ce[1];if(bo<0){$s=60;continue;}$s=61;continue;case 60:h[0]=d;cf=h[0];$s=62;case 62:return cf;case 61:ch=g[0].inferB(b,c[0],d);$s=63;case 63:if($c){$c=false;ch=ch.$blk();}if(ch&&ch.$blk!==undefined){break s;}cg=ch;d=cg[0];bo=cg[1];if(d===MS.nil||bo<0){$s=64;continue;}$s=65;continue;case 64:h[0]=d;ci=h[0];$s=66;case 66:return ci;case 65:JM(bo>=0&&$interfaceIsEqual(((bo<0||bo>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+bo]),$ifaceNil));cj=((bo<0||bo>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+bo]);$r=g[0].errorf(b,138,"cannot infer %s (%v)",new NA([new $String(cj.obj.object.name),new C.Pos(cj.obj.object.pos)]));$s=67;case 67:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h[0]=MS.nil;ck=h[0];$s=68;case 68:return ck;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return h[0];}if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.infer,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};KR.prototype.infer=function(b,c,d,e,f){return this.$val.infer(b,c,d,e,f);};IG=function(b){var b,c,d,e,f,g,h,i,j;c=b.$length;d=c;if(d===(0)){return"";}else if(d===(1)){return(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]).obj.object.name;}else if(d===(2)){return(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]).obj.object.name+" and "+(1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1]).obj.object.name;}e=new F.Builder.ptr(RA.nil,NZ.nil);f=$subslice(b,0,(c-1>>0));g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(h>0){e.WriteString(", ");}e.WriteString(i.obj.object.name);g++;}e.WriteString(", and ");e.WriteString((j=c-1>>0,((j<0||j>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+j])).obj.object.name);return e.String();};IH=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=new II.ptr(new $global.Map(),b);e=d.isParameterized(c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:IH,$c:true,$r,b,c,d,e,f,$s};return $f;};II.ptr.prototype.isParameterized=function(b){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];d=[d];c[0]=false;d[0]=this;e=(f=$mapIndex(d[0].seen,CE.keyFor(b[0])),f!==undefined?[f.v,true]:[false,false]);g=e[0];h=e[1];if(h){$s=1;continue;}$s=2;continue;case 1:c[0]=g;i=c[0];$s=3;case 3:return i;case 2:j=b[0];(d[0].seen||$throwRuntimeError("assignment to entry in nil map")).set(CE.keyFor(j),{k:j,v:false});$deferred.push([(function(b,c,d){return function(){var k;k=b[0];(d[0].seen||$throwRuntimeError("assignment to entry in nil map")).set(CE.keyFor(k),{k:k,v:c[0]});};})(b,c,d),[]]);k=b[0];if(k===$ifaceNil||$assertType(k,MY,true)[1]){$s=4;continue;}if($assertType(k,NE,true)[1]){$s=5;continue;}if($assertType(k,OA,true)[1]){$s=6;continue;}if($assertType(k,NF,true)[1]){$s=7;continue;}if($assertType(k,OB,true)[1]){$s=8;continue;}if($assertType(k,NM,true)[1]){$s=9;continue;}if($assertType(k,OC,true)[1]){$s=10;continue;}if($assertType(k,NH,true)[1]){$s=11;continue;}if($assertType(k,OD,true)[1]){$s=12;continue;}if($assertType(k,OE,true)[1]){$s=13;continue;}if($assertType(k,NI,true)[1]){$s=14;continue;}if($assertType(k,NJ,true)[1]){$s=15;continue;}$s=16;continue;case 4:l=k;$s=17;continue;$s=17;continue;case 5:m=k.$val;y=d[0].isParameterized(m.elem);$s=18;case 18:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}c[0]=y;z=c[0];$s=19;case 19:return z;case 6:n=k.$val;aa=d[0].isParameterized(n.elem);$s=20;case 20:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}c[0]=aa;ab=c[0];$s=21;case 21:return ab;case 7:o=k.$val;ac=o.fields;ad=0;case 22:if(!(ad=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+ad]);af=d[0].isParameterized(ae.object.typ);$s=26;case 26:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}if(af){$s=24;continue;}$s=25;continue;case 24:c[0]=true;ag=c[0];$s=27;case 27:return ag;case 25:ad++;$s=22;continue;case 23:$s=17;continue;case 8:p=k.$val;ah=d[0].isParameterized(p.base);$s=28;case 28:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}c[0]=ah;ai=c[0];$s=29;case 29:return ai;case 9:q=k.$val;aj=q.Len();ak=0;case 30:if(!(ak>0;$s=30;continue;case 31:$s=17;continue;case 10:r=k.$val;ao=d[0].isParameterized(r.params);$s=37;case 37:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}if(ao){an=true;$s=36;continue s;}ap=d[0].isParameterized(r.results);$s=38;case 38:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}an=ap;case 36:c[0]=an;aq=c[0];$s=39;case 39:return aq;case 11:s=k.$val;ar=s.typeSet();$s=40;case 40:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=ar;at=as.methods;au=0;case 41:if(!(au=at.$length)?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+au]);aw=d[0].isParameterized(av.object.typ);$s=45;case 45:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}if(aw){$s=43;continue;}$s=44;continue;case 43:c[0]=true;ax=c[0];$s=46;case 46:return ax;case 44:au++;$s=41;continue;case 42:ay=as.is((function(b,c,d){return function $b(ay){var{ay,az,ba,bb,$s,$r,$c}=$restore(this,{ay});$s=$s||0;s:while(true){switch($s){case 0:if(!(!(ay===MP.nil))){az=false;$s=1;continue s;}ba=d[0].isParameterized(ay.typ);$s=2;case 2:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}az=ba;case 1:bb=az;$s=3;case 3:return bb;}return;}var $f={$blk:$b,$c:true,$r,ay,az,ba,bb,$s};return $f;};})(b,c,d));$s=47;case 47:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}c[0]=ay;az=c[0];$s=48;case 48:return az;case 12:t=k.$val;bb=d[0].isParameterized(t.key);$s=50;case 50:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}if(bb){ba=true;$s=49;continue s;}bc=d[0].isParameterized(t.elem);$s=51;case 51:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}ba=bc;case 49:c[0]=ba;bd=c[0];$s=52;case 52:return bd;case 13:u=k.$val;be=d[0].isParameterized(u.elem);$s=53;case 53:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}c[0]=be;bf=c[0];$s=54;case 54:return bf;case 14:v=k.$val;bg=d[0].isParameterizedTypeList(v.targs.list());$s=55;case 55:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}c[0]=bg;bh=c[0];$s=56;case 56:return bh;case 15:w=k.$val;c[0]=BA(d[0].tparams,w)>=0;bi=c[0];$s=57;case 57:return bi;case 16:x=k;JN();case 17:c[0]=false;bj=c[0];$s=58;case 58:return bj;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return c[0];}if($curGoroutine.asleep){var $f={$blk:II.ptr.prototype.isParameterized,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};II.prototype.isParameterized=function(b){return this.$val.isParameterized(b);};II.ptr.prototype.isParameterizedTypeList=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=c.isParameterized(f);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(g){$s=3;continue;}$s=4;continue;case 3:$s=-1;return true;case 4:e++;$s=1;continue;case 2:$s=-1;return false;}return;}var $f={$blk:II.ptr.prototype.isParameterizedTypeList,$c:true,$r,b,c,d,e,f,g,$s};return $f;};II.prototype.isParameterizedTypeList=function(b){return this.$val.isParameterizedTypeList(b);};KR.ptr.prototype.inferB=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];e=[e];f=[f];f[0]=MS.nil;g=0;e[0]=this;JM(c[0].$length>=d.$length&&d.$length>0);if(false){$s=1;continue;}$s=2;continue;case 1:$r=e[0].dump("-- inferB %s \xE2\x9E\x9E %s",new NA([c[0],d]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([(function(c,e,f){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=e[0].dump("=> inferB %s \xE2\x9E\x9E %s",new NA([c[0],f[0]]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(c,e,f),[]]);case 2:h=AY(false);h.x.init(c[0]);AZ.copy(h.y,h.x);i=d;j=0;case 4:if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);if(!($interfaceIsEqual(l,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:$r=h.x.set(k,l);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:j++;$s=4;continue;case 5:m=h.x.unknowns();case 9:if(!(m>0)){$s=10;continue;}n=m;o=c[0];p=0;case 11:if(!(p=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]);t=IJ(r);$s=13;case 13:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;u=s[0];v=s[1];if(!(u===MP.nil)){$s=14;continue;}$s=15;continue;case 14:w=h.x.at(q);if(!($interfaceIsEqual(w,$ifaceNil))){$s=17;continue;}if(v&&!u.tilde){$s=18;continue;}$s=19;continue;case 17:if(u.tilde&&!EY(w)){$s=21;continue;}$s=22;continue;case 21:x=CF(w);$s=23;case 23:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;case 22:y=h.unify(w,u.typ);$s=26;case 26:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}if(!y){$s=24;continue;}$s=25;continue;case 24:z="";if(u.tilde){z="~";}$r=e[0].errorf(b,139,"%s does not match %s%s",new NA([r,new $String(z),u.typ]));$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aa=MS.nil;ab=0;f[0]=aa;g=ab;ac=[f[0],g];$s=28;case 28:return ac;case 25:$s=20;continue;case 18:$r=h.x.set(q,u.typ);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 19:p++;$s=11;continue;case 20:case 16:n=h.x.unknowns();if(n===0){$s=12;continue;}case 15:p++;$s=11;continue;case 12:JM(n<=m);if(n===m){$s=10;continue;}m=n;$s=9;continue;case 10:ad=h.x.types();f[0]=ad[0];if(false){ae=d;af=0;while(true){if(!(af=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+af]);JM($interfaceIsEqual(ah,$ifaceNil)||$interfaceIsEqual(((ag<0||ag>=f[0].$length)?($throwRuntimeError("index out of range"),undefined):f[0].$array[f[0].$offset+ag]),ah));af++;}}ai=new IK.ptr(c[0],f[0],new $global.Map());aj=c[0];ak=0;case 30:if(!(ak=aj.$length)?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+ak]);$r=ai.typ(al);$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ak++;$s=30;continue;case 31:am=NW.nil;an=f[0];ao=0;while(true){if(!(ao=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+ao]);if(!($interfaceIsEqual(aq,$ifaceNil))&&(ap>=d.$length||$interfaceIsEqual(((ap<0||ap>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+ap]),$ifaceNil))){am=$append(am,ap);}ao++;}case 33:if(!(am.$length>0)){$s=34;continue;}ar=CO(c[0],f[0]);as=0;at=am;au=0;case 35:if(!(au=at.$length)?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+au]);aw=((av<0||av>=f[0].$length)?($throwRuntimeError("index out of range"),undefined):f[0].$array[f[0].$offset+av]);ax=e[0].subst(0,aw,ar,OZ.nil);$s=37;case 37:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;if(!($interfaceIsEqual(ay,aw))){((av<0||av>=f[0].$length)?($throwRuntimeError("index out of range"),undefined):f[0].$array[f[0].$offset+av]=ay);((as<0||as>=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+as]=av);as=as+(1)>>0;}au++;$s=35;continue;case 36:am=$subslice(am,0,as);$s=33;continue;case 34:az=f[0];ba=0;case 38:if(!(ba=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+ba]);if(!(!($interfaceIsEqual(bc,$ifaceNil)))){bd=false;$s=42;continue s;}be=IH(c[0],bc);$s=43;case 43:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bd=be;case 42:if(bd){$s=40;continue;}$s=41;continue;case 40:((bb<0||bb>=f[0].$length)?($throwRuntimeError("index out of range"),undefined):f[0].$array[f[0].$offset+bb]=$ifaceNil);case 41:ba++;$s=38;continue;case 39:g=-1;bf=f[0];bg=0;while(true){if(!(bg=bf.$length)?($throwRuntimeError("index out of range"),undefined):bf.$array[bf.$offset+bg]);if($interfaceIsEqual(bi,$ifaceNil)){g=bh;break;}bg++;}bj=[f[0],g];$s=44;case 44:return bj;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[f[0],g];}if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.inferB,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};KR.prototype.inferB=function(b,c,d){return this.$val.inferB(b,c,d);};IJ=function(b){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=[d];e=[e];c[0]=0;d[0]=MP.nil;e[0]=false;f=b.is((function(c,d,e){return function(f){var f;if(f===MP.nil){JM(c[0]===0);return false;}c[0]=c[0]+(1)>>0;d[0]=f;if(f.tilde){e[0]=true;}return true;};})(c,d,e));$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;if(c[0]===1){$s=2;continue;}$s=3;continue;case 2:if(false){$s=4;continue;}$s=5;continue;case 4:if(!(false)){g=false;$s=6;continue s;}h=CF(d[0].typ);$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=CG(b);$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}g=$interfaceIsEqual(h,i);case 6:$r=JM(g);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:$s=-1;return[d[0],true];case 3:j=CG(b);$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return[new BC.ptr(e[0],k),false];}$s=-1;return[MP.nil,false];}return;}var $f={$blk:IJ,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};IK.ptr.prototype.typ=function(b){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=this;if((d=$mapIndex(c.seen,CE.keyFor(b)),d!==undefined?d.v:false)){$s=1;continue;}$s=2;continue;case 1:e=$assertType(b,NJ,true);f=e[0];if(!(f===NJ.nil)){g=BA(c.tparams,f);if(g>=0){(h=c.types,((g<0||g>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+g]=$ifaceNil));}}$s=3;case 3:return;case 2:i=b;(c.seen||$throwRuntimeError("assignment to entry in nil map")).set(CE.keyFor(i),{k:i,v:true});$deferred.push([function(j,k){$mapDelete(j,CE.keyFor(k));},[c.seen,b]]);l=b;if($assertType(l,MY,true)[1]){$s=4;continue;}if($assertType(l,NE,true)[1]){$s=5;continue;}if($assertType(l,OA,true)[1]){$s=6;continue;}if($assertType(l,NF,true)[1]){$s=7;continue;}if($assertType(l,OB,true)[1]){$s=8;continue;}if($assertType(l,OC,true)[1]){$s=9;continue;}if($assertType(l,NG,true)[1]){$s=10;continue;}if($assertType(l,NH,true)[1]){$s=11;continue;}if($assertType(l,OD,true)[1]){$s=12;continue;}if($assertType(l,OE,true)[1]){$s=13;continue;}if($assertType(l,NI,true)[1]){$s=14;continue;}if($assertType(l,NJ,true)[1]){$s=15;continue;}$s=16;continue;case 4:m=l.$val;$s=17;continue;case 5:n=l.$val;$r=c.typ(n.elem);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=17;continue;case 6:o=l.$val;$r=c.typ(o.elem);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=17;continue;case 7:p=l.$val;$r=c.varList(p.fields);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=17;continue;case 8:q=l.$val;$r=c.typ(q.base);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=17;continue;case 9:r=l.$val;if(!(r.params===NM.nil)){$s=22;continue;}$s=23;continue;case 22:$r=c.varList(r.params.vars);$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 23:if(!(r.results===NM.nil)){$s=25;continue;}$s=26;continue;case 25:$r=c.varList(r.results.vars);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 26:$s=17;continue;case 10:s=l.$val;z=s.terms;aa=0;case 28:if(!(aa=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+aa]);$r=c.typ(ab.typ);$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aa++;$s=28;continue;case 29:$s=17;continue;case 11:t=l.$val;ac=t.methods;ad=0;case 31:if(!(ad=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+ad]);$r=c.typ(ae.object.typ);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ad++;$s=31;continue;case 32:af=t.embeddeds;ag=0;case 34:if(!(ag=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ag]);$r=c.typ(ah);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ag++;$s=34;continue;case 35:$s=17;continue;case 12:u=l.$val;$r=c.typ(u.key);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.typ(u.elem);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=17;continue;case 13:v=l.$val;$r=c.typ(v.elem);$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=17;continue;case 14:w=l.$val;ai=w.TypeArgs().list();aj=0;case 40:if(!(aj=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+aj]);$r=c.typ(ak);$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aj++;$s=40;continue;case 41:$s=17;continue;case 15:x=l.$val;al=BA(c.tparams,x);if(al>=0&&!($interfaceIsEqual((am=c.types,((al<0||al>=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+al])),$ifaceNil))){$s=43;continue;}$s=44;continue;case 43:$r=c.typ((an=c.types,((al<0||al>=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+al])));$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 44:$s=17;continue;case 16:y=l;ao=A.Sprintf("unexpected %T",new NA([b]));$s=46;case 46:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$panic(new $String(ao));case 17:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:IK.ptr.prototype.typ,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};IK.prototype.typ=function(b){return this.$val.typ(b);};IK.ptr.prototype.varList=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);$r=c.typ(f.object.typ);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:IK.ptr.prototype.varList,$c:true,$r,b,c,d,e,f,$s};return $f;};IK.prototype.varList=function(b){return this.$val.varList(b);};KR.ptr.prototype.indexExpr=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:b=[b];d=[d];e=[e];f=[f];g=[g];h=[h];i=[i];j=false;k=this;$r=k.exprOrType(b[0],c.IndexListExpr.X,true);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=b[0].mode;if(l===(0)){$s=3;continue;}if(l===(3)){$s=4;continue;}if(l===(7)){$s=5;continue;}$s=6;continue;case 3:$r=k.use(c.IndexListExpr.Indices);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=false;$s=-1;return j;case 4:b[0].mode=0;m=k.varType(c.Orig);$s=8;case 8:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}b[0].typ=m;if(!($interfaceIsEqual(b[0].typ,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0])))){b[0].mode=3;}j=false;$s=-1;return j;case 5:o=CF(b[0].typ);$s=9;case 9:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=$assertType(o,OC,true);p=n[0];if(!(p===OC.nil)&&p.TypeParams().Len()>0){j=true;$s=-1;return j;}case 6:case 2:$r=k.nonGeneric(b[0]);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){j=false;$s=-1;return j;}q=false;h[0]=new $Int64(-1,4294967295);s=CF(b[0].typ);$s=11;case 11:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;if($assertType(r,MY,true)[1]){$s=12;continue;}if($assertType(r,NE,true)[1]){$s=13;continue;}if($assertType(r,OB,true)[1]){$s=14;continue;}if($assertType(r,OA,true)[1]){$s=15;continue;}if($assertType(r,OD,true)[1]){$s=16;continue;}if($assertType(r,NH,true)[1]){$s=17;continue;}$s=18;continue;case 12:t=r.$val;z=EI(t);$s=21;case 21:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}if(z){$s=19;continue;}$s=20;continue;case 19:q=true;if(b[0].mode===4){$s=22;continue;}$s=23;continue;case 22:aa=G.StringVal(b[0].val);$s=24;case 24:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}h[0]=(new $Int64(0,aa.length));case 23:b[0].mode=7;b[0].typ=Z;case 20:$s=18;continue;case 13:u=r.$val;q=true;h[0]=u.len;if(!((b[0].mode===5))){b[0].mode=7;}b[0].typ=u.elem;$s=18;continue;case 14:v=r.$val;ac=CF(v.base);$s=25;case 25:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ab=$assertType(ac,NE,true);ad=ab[0];if(!(ad===NE.nil)){q=true;h[0]=ad.len;b[0].mode=5;b[0].typ=ad.elem;}$s=18;continue;case 15:w=r.$val;q=true;b[0].mode=5;b[0].typ=w.elem;$s=18;continue;case 16:x=r.$val;ae=k.singleIndex(c);$s=26;case 26:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;if($interfaceIsEqual(af,$ifaceNil)){b[0].mode=0;j=false;$s=-1;return j;}f[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=k.expr(f[0],af);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=k.assignment(f[0],x.key,"map index");$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b[0].mode=6;b[0].typ=x.elem;b[0].expr=c.Orig;j=false;$s=-1;return j;case 17:y=r.$val;if(!EY(b[0].typ)){$s=18;continue;}ag=$ifaceNil;ah=$ifaceNil;g[0]=ag;d[0]=ah;i[0]=5;ai=y.typeSet();$s=31;case 31:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai.underIs((function(b,d,e,f,g,h,i){return function $b(aj){var{aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,$s,$r,$c}=$restore(this,{aj});$s=$s||0;s:while(true){switch($s){case 0:ak=new $Int64(-1,4294967295);al=$ifaceNil;am=$ifaceNil;an=al;ao=am;ap=aj;if($assertType(ap,MY,true)[1]){$s=1;continue;}if($assertType(ap,NE,true)[1]){$s=2;continue;}if($assertType(ap,OB,true)[1]){$s=3;continue;}if($assertType(ap,OA,true)[1]){$s=4;continue;}if($assertType(ap,OD,true)[1]){$s=5;continue;}$s=6;continue;case 1:aq=ap.$val;av=EI(aq);$s=9;case 9:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}if(av){$s=7;continue;}$s=8;continue;case 7:ao=Z;i[0]=7;case 8:$s=6;continue;case 2:ar=ap.$val;ak=ar.len;ao=ar.elem;if(!((b[0].mode===5))){i[0]=7;}$s=6;continue;case 3:as=ap.$val;ax=CF(as.base);$s=10;case 10:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}aw=$assertType(ax,NE,true);ay=aw[0];if(!(ay===NE.nil)){ak=ay.len;ao=ay.elem;}$s=6;continue;case 4:at=ap.$val;ao=at.elem;$s=6;continue;case 5:au=ap.$val;an=au.key;ao=au.elem;case 6:if($interfaceIsEqual(ao,$ifaceNil)){$s=-1;return false;}if($interfaceIsEqual(d[0],$ifaceNil)){h[0]=ak;az=an;ba=ao;g[0]=az;d[0]=ba;$s=-1;return true;}bb=MC(g[0],an);$s=13;case 13:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}if(!bb){$s=11;continue;}$s=12;continue;case 11:$s=-1;return false;case 12:bc=MC(d[0],ao);$s=16;case 16:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}if(!bc){$s=14;continue;}$s=15;continue;case 14:$s=-1;return false;case 15:if((ak.$high>0||(ak.$high===0&&ak.$low>=0))&&(ak.$high=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);}ao=k.index(an,h[0]);$s=42;case 42:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ao;j=false;$s=-1;return j;}return;}var $f={$blk:KR.ptr.prototype.indexExpr,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.indexExpr=function(b,c){return this.$val.indexExpr(b,c);};KR.ptr.prototype.sliceExpr=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;$r=d.expr(b,c.X);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b.mode===0){$s=2;continue;}$s=3;continue;case 2:$r=d.use(new NQ([c.Low,c.High,c.Max]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 3:e=false;f=new $Int64(-1,4294967295);h=CH(b.typ);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;if(g===$ifaceNil){$s=6;continue;}if($assertType(g,MY,true)[1]){$s=7;continue;}if($assertType(g,NE,true)[1]){$s=8;continue;}if($assertType(g,OB,true)[1]){$s=9;continue;}if($assertType(g,OA,true)[1]){$s=10;continue;}$s=11;continue;case 6:i=g;$r=d.invalidOp(b,54,"cannot slice %s: %s has no core type",new NA([b,b.typ]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 7:j=g.$val;n=EI(j);$s=15;case 15:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}if(n){$s=13;continue;}$s=14;continue;case 13:if(c.Slice3){$s=16;continue;}$s=17;continue;case 16:o=c.Max;if($interfaceIsEqual(o,$ifaceNil)){o=c;}$r=d.invalidOp(o,55,"3-index slice of string",new NA([]));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 17:e=true;if(b.mode===4){$s=19;continue;}$s=20;continue;case 19:p=G.StringVal(b.val);$s=21;case 21:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}f=(new $Int64(0,p.length));case 20:if(EW(b.typ)){b.typ=(17>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+17]);}case 14:$s=11;continue;case 8:k=g.$val;e=true;f=k.len;if(!((b.mode===5))){$s=22;continue;}$s=23;continue;case 22:$r=d.invalidOp(b,54,"cannot slice %s (value not addressable)",new NA([b]));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 23:b.typ=new DD.ptr(k.elem);$s=11;continue;case 9:l=g.$val;r=CF(l.base);$s=25;case 25:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=$assertType(r,NE,true);s=q[0];if(!(s===NE.nil)){e=true;f=s.len;b.typ=new DD.ptr(s.elem);}$s=11;continue;case 10:m=g.$val;e=true;case 11:if(!e){$s=26;continue;}$s=27;continue;case 26:$r=d.invalidOp(b,54,"cannot slice %s",new NA([b]));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 27:b.mode=7;if(c.Slice3&&($interfaceIsEqual(c.High,$ifaceNil)||$interfaceIsEqual(c.Max,$ifaceNil))){$s=29;continue;}$s=30;continue;case 29:u=JR(c,c.Rbrack);$s=31;case 31:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}$r=d.invalidAST((t=u,new t.constructor.elem(t)),"2nd and 3rd index required in 3-index slice",new NA([]));$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 30:v=RM.zero();w=new NQ([c.Low,c.High,c.Max]);x=0;case 33:if(!(x=w.$length)?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+x]);aa=new $Int64(-1,4294967295);if(!($interfaceIsEqual(z,$ifaceNil))){$s=36;continue;}if((y===0)){$s=37;continue;}if((f.$high>0||(f.$high===0&&f.$low>=0))){$s=38;continue;}$s=39;continue;case 36:ab=new $Int64(-1,4294967295);if((f.$high>0||(f.$high===0&&f.$low>=0))){ab=new $Int64(f.$high+0,f.$low+1);}ad=d.index(z,ab);$s=40;case 40:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=ad;ae=ac[1];if((ae.$high>0||(ae.$high===0&&ae.$low>=0))){aa=ae;}$s=39;continue;case 37:aa=new $Int64(0,0);$s=39;continue;case 38:aa=f;case 39:case 35:((y<0||y>=v.length)?($throwRuntimeError("index out of range"),undefined):v[y]=aa);x++;$s=33;continue;case 34:af=$subslice(new QK(v),0,2);ag=0;case 41:if(!(ag=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ag]);if((ai.$high>0||(ai.$high===0&&ai.$low>0))){$s=43;continue;}$s=44;continue;case 43:aj=$subslice(new QK(v),(ah+1>>0));ak=0;case 45:if(!(ak=aj.$length)?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+ak]);if((am.$high>0||(am.$high===0&&am.$low>=0))&&(am.$high>0)+al>>0,((ao<0||ao>=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+ao]));$r=d.errorf(ap,53,"invalid slice indices: %d < %d",new NA([am,ai]));$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=42;continue s;case 48:ak++;$s=45;continue;case 46:case 44:ag++;$s=41;continue;case 42:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.sliceExpr,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.sliceExpr=function(b,c){return this.$val.sliceExpr(b,c);};KR.ptr.prototype.singleIndex=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b.IndexListExpr.Indices.$length===0){$s=1;continue;}$s=2;continue;case 1:$r=c.invalidAST(b.Orig,"index expression %v with 0 indices",new NA([b]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 2:if(b.IndexListExpr.Indices.$length>1){$s=4;continue;}$s=5;continue;case 4:$r=c.invalidOp((d=b.IndexListExpr.Indices,(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1])),52,"more than one index",new NA([]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:$s=-1;return(e=b.IndexListExpr.Indices,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]));}return;}var $f={$blk:KR.ptr.prototype.singleIndex,$c:true,$r,b,c,d,e,$s};return $f;};KR.prototype.singleIndex=function(b){return this.$val.singleIndex(b);};KR.ptr.prototype.index=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=$ifaceNil;f=new $Int64(0,0);g=this;e=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);f=new $Int64(-1,4294967295);d[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=g.expr(d[0],b);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=g.isValidIndex(d[0],52,"index",false);$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(!h){$s=2;continue;}$s=3;continue;case 2:$s=-1;return[e,f];case 3:if(!((d[0].mode===4))){i=d[0].typ;j=new $Int64(-1,4294967295);e=i;f=j;$s=-1;return[e,f];}k=d[0].val.Kind();$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(k===0){$s=5;continue;}$s=6;continue;case 5:$s=-1;return[e,f];case 6:m=G.Int64Val(d[0].val);$s=8;case 8:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;n=l[0];o=l[1];JM(o);if((c.$high>0||(c.$high===0&&c.$low>=0))&&(n.$high>c.$high||(n.$high===c.$high&&n.$low>=c.$low))){$s=9;continue;}$s=10;continue;case 9:$r=g.invalidArg(d[0],52,"index %s is out of bounds",new NA([d[0]]));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return[e,f];case 10:p=d[0].typ;q=n;e=p;f=q;$s=-1;return[e,f];}return;}var $f={$blk:KR.ptr.prototype.index,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};KR.prototype.index=function(b,c){return this.$val.index(b,c);};KR.ptr.prototype.isValidIndex=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;if(b.mode===0){$s=-1;return false;}$r=f.convertUntyped(b,(2>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+2]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b.mode===0){$s=-1;return false;}g=EN(b.typ);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(!g){$s=2;continue;}$s=3;continue;case 2:$r=f.invalidArg(b,c,"%s %s must be integer",new NA([new $String(d),b]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 3:if(b.mode===4){$s=6;continue;}$s=7;continue;case 6:if(!(!e)){h=false;$s=10;continue s;}i=G.Sign(b.val);$s=11;case 11:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i<0;case 10:if(h){$s=8;continue;}$s=9;continue;case 8:$r=f.invalidArg(b,c,"%s %s must not be negative",new NA([new $String(d),b]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 9:j=JF(b.val,f,(2>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+2]),(b.$ptr_val||(b.$ptr_val=new PD(function(){return this.$target.val;},function($v){this.$target.val=$v;},b))));$s=15;case 15:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(!j){$s=13;continue;}$s=14;continue;case 13:$r=f.invalidArg(b,c,"%s %s overflows int",new NA([new $String(d),b]));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 14:case 7:$s=-1;return true;}return;}var $f={$blk:KR.ptr.prototype.isValidIndex,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};KR.prototype.isValidIndex=function(b,c,d,e){return this.$val.isValidIndex(b,c,d,e);};KR.ptr.prototype.indexedElts=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;g=(f=b.$length,((f<0||f>2147483647)?$throwRuntimeError("makemap: size out of range"):new $global.Map()));h=new $Int64(0,0);i=new $Int64(0,0);j=h;k=i;l=b;m=0;case 1:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);p=false;q=o;r=$assertType(o,RN,true);s=r[0];if(!(s===RN.nil)){$s=3;continue;}if((d.$high>0||(d.$high===0&&d.$low>=0))&&(j.$high>d.$high||(j.$high===d.$high&&j.$low>=d.$low))){$s=4;continue;}$s=5;continue;case 3:u=e.index(s.Key,d);$s=7;case 7:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;v=t[0];w=t[1];if(!($interfaceIsEqual(v,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0])))){$s=8;continue;}$s=9;continue;case 8:if((w.$high>0||(w.$high===0&&w.$low>=0))){$s=10;continue;}$s=11;continue;case 10:j=w;p=true;$s=12;continue;case 11:$r=e.errorf(o,62,"index %s must be integer constant",new NA([s.Key]));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:case 9:q=s.Value;$s=6;continue;case 4:$r=e.errorf(o,63,"index %d is out of bounds (>= %d)",new NA([j,d]));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=6;continue;case 5:p=true;case 6:if(p){$s=15;continue;}$s=16;continue;case 15:if((x=$mapIndex(g,$Int64.keyFor(j)),x!==undefined?x.v:false)){$s=17;continue;}$s=18;continue;case 17:$r=e.errorf(o,60,"duplicate index %d in array or slice literal",new NA([j]));$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 18:y=j;(g||$throwRuntimeError("assignment to entry in nil map")).set($Int64.keyFor(y),{k:y,v:true});case 16:j=(z=new $Int64(0,1),new $Int64(j.$high+z.$high,j.$low+z.$low));if((j.$high>k.$high||(j.$high===k.$high&&j.$low>k.$low))){k=j;}n[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=e.exprWithHint(n[0],q,c);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.assignment(n[0],c,"array or slice literal");$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m++;$s=1;continue;case 2:$s=-1;return k;}return;}var $f={$blk:KR.ptr.prototype.indexedElts,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.indexedElts=function(b,c,d){return this.$val.indexedElts(b,c,d);};IM=function(b){var{b,c,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];c[0]=new H.Buffer.ptr(NZ.nil,0,0);$r=IN(c[0],b);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c[0].String();}return;}var $f={$blk:IM,$c:true,$r,b,c,$s};return $f;};$pkg.ExprString=IM;IN=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=c;if($assertType(d,OF,true)[1]){$s=1;continue;}if($assertType(d,OQ,true)[1]){$s=2;continue;}if($assertType(d,PJ,true)[1]){$s=3;continue;}if($assertType(d,RO,true)[1]){$s=4;continue;}if($assertType(d,RP,true)[1]){$s=5;continue;}if($assertType(d,OO,true)[1]){$s=6;continue;}if($assertType(d,OL,true)[1]){$s=7;continue;}if($assertType(d,OM,true)[1]||$assertType(d,ON,true)[1]){$s=8;continue;}if($assertType(d,RQ,true)[1]){$s=9;continue;}if($assertType(d,QJ,true)[1]){$s=10;continue;}if($assertType(d,QP,true)[1]){$s=11;continue;}if($assertType(d,OS,true)[1]){$s=12;continue;}if($assertType(d,NT,true)[1]){$s=13;continue;}if($assertType(d,NU,true)[1]){$s=14;continue;}if($assertType(d,OP,true)[1]){$s=15;continue;}if($assertType(d,OR,true)[1]){$s=16;continue;}if($assertType(d,OT,true)[1]){$s=17;continue;}if($assertType(d,OU,true)[1]){$s=18;continue;}if($assertType(d,OV,true)[1]){$s=19;continue;}if($assertType(d,OW,true)[1]){$s=20;continue;}$s=21;continue;case 1:f=d.$val;z=b.WriteString(f.Name);$s=23;case 23:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}z;$s=22;continue;case 2:g=d.$val;aa=b.WriteString("...");$s=24;case 24:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}aa;if(!($interfaceIsEqual(g.Elt,$ifaceNil))){$s=25;continue;}$s=26;continue;case 25:$r=IN(b,g.Elt);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 26:$s=22;continue;case 3:h=d.$val;ab=b.WriteString(h.Value);$s=28;case 28:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ab;$s=22;continue;case 4:i=d.$val;ac=b.WriteByte(40);$s=29;case 29:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ac;$r=IN(b,i.Type);$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ad=b.WriteString(" literal)");$s=31;case 31:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ad;$s=22;continue;case 5:j=d.$val;ae=b.WriteByte(40);$s=32;case 32:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ae;$r=IN(b,j.Type);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}af=b.WriteString(" literal)");$s=34;case 34:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}af;$s=22;continue;case 6:k=d.$val;ag=b.WriteByte(40);$s=35;case 35:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ag;$r=IN(b,k.X);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ah=b.WriteByte(41);$s=37;case 37:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ah;$s=22;continue;case 7:l=d.$val;$r=IN(b,l.X);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ai=b.WriteByte(46);$s=39;case 39:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ai;aj=b.WriteString(l.Sel.Name);$s=40;case 40:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}aj;$s=22;continue;case 8:m=d;ak=I.UnpackIndexExpr(m);$r=IN(b,ak.IndexListExpr.X);$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}al=b.WriteByte(91);$s=42;case 42:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}al;$r=IR(b,ak.IndexListExpr.Indices);$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}am=b.WriteByte(93);$s=44;case 44:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}am;$s=22;continue;case 9:n=d.$val;$r=IN(b,n.X);$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}an=b.WriteByte(91);$s=46;case 46:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}an;if(!($interfaceIsEqual(n.Low,$ifaceNil))){$s=47;continue;}$s=48;continue;case 47:$r=IN(b,n.Low);$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 48:ao=b.WriteByte(58);$s=50;case 50:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ao;if(!($interfaceIsEqual(n.High,$ifaceNil))){$s=51;continue;}$s=52;continue;case 51:$r=IN(b,n.High);$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 52:if(n.Slice3){$s=54;continue;}$s=55;continue;case 54:ap=b.WriteByte(58);$s=56;case 56:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ap;if(!($interfaceIsEqual(n.Max,$ifaceNil))){$s=57;continue;}$s=58;continue;case 57:$r=IN(b,n.Max);$s=59;case 59:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 58:case 55:aq=b.WriteByte(93);$s=60;case 60:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}aq;$s=22;continue;case 10:o=d.$val;$r=IN(b,o.X);$s=61;case 61:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ar=b.WriteString(".(");$s=62;case 62:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}ar;$r=IN(b,o.Type);$s=63;case 63:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}as=b.WriteByte(41);$s=64;case 64:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}as;$s=22;continue;case 11:p=d.$val;$r=IN(b,p.Fun);$s=65;case 65:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}at=b.WriteByte(40);$s=66;case 66:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}at;$r=IR(b,p.Args);$s=67;case 67:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(new C.Pos(p.Ellipsis).IsValid()){$s=68;continue;}$s=69;continue;case 68:au=b.WriteString("...");$s=70;case 70:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}au;case 69:av=b.WriteByte(41);$s=71;case 71:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}av;$s=22;continue;case 12:q=d.$val;aw=b.WriteByte(42);$s=72;case 72:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}aw;$r=IN(b,q.X);$s=73;case 73:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 13:r=d.$val;ax=b.WriteString(new C.Token(r.Op).String());$s=74;case 74:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ax;$r=IN(b,r.X);$s=75;case 75:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 14:s=d.$val;$r=IN(b,s.X);$s=76;case 76:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ay=b.WriteByte(32);$s=77;case 77:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}ay;az=b.WriteString(new C.Token(s.Op).String());$s=78;case 78:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}az;ba=b.WriteByte(32);$s=79;case 79:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}ba;$r=IN(b,s.Y);$s=80;case 80:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 15:t=d.$val;bb=b.WriteByte(91);$s=81;case 81:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bb;if(!($interfaceIsEqual(t.Len,$ifaceNil))){$s=82;continue;}$s=83;continue;case 82:$r=IN(b,t.Len);$s=84;case 84:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 83:bc=b.WriteByte(93);$s=85;case 85:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bc;$r=IN(b,t.Elt);$s=86;case 86:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 16:u=d.$val;bd=b.WriteString("struct{");$s=87;case 87:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}bd;$r=IP(b,u.Fields.List,"; ",false);$s=88;case 88:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}be=b.WriteByte(125);$s=89;case 89:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}be;$s=22;continue;case 17:v=d.$val;bf=b.WriteString("func");$s=90;case 90:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bf;$r=IO(b,v);$s=91;case 91:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 18:w=d.$val;bg=b.WriteString("interface{");$s=92;case 92:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bg;$r=IP(b,w.Methods.List,"; ",true);$s=93;case 93:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bh=b.WriteByte(125);$s=94;case 94:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bh;$s=22;continue;case 19:x=d.$val;bi=b.WriteString("map[");$s=95;case 95:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bi;$r=IN(b,x.Key);$s=96;case 96:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bj=b.WriteByte(93);$s=97;case 97:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bj;$r=IN(b,x.Value);$s=98;case 98:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 20:y=d.$val;bk="";bl=y.Dir;if(bl===(1)){bk="chan<- ";}else if(bl===(2)){bk="<-chan ";}else{bk="chan ";}bm=b.WriteString(bk);$s=99;case 99:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bm;$r=IN(b,y.Value);$s=100;case 100:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=22;continue;case 21:e=d;bn=A.Sprintf("(ast: %T)",new NA([e]));$s=101;case 101:if($c){$c=false;bn=bn.$blk();}if(bn&&bn.$blk!==undefined){break s;}bo=b.WriteString(bn);$s=102;case 102:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bo;case 22:$s=-1;return;}return;}var $f={$blk:IN,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.WriteExpr=IN;IO=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=b.WriteByte(40);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;$r=IP(b,c.Params.List,", ",false);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=b.WriteByte(41);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;f=c.Results;g=f.NumFields();if(g===0){$s=-1;return;}h=b.WriteByte(32);$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;if((g===1)&&((i=f.List,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])).Names.$length===0)){$s=5;continue;}$s=6;continue;case 5:$r=IN(b,(j=f.List,(0>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+0])).Type);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 6:k=b.WriteByte(40);$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;$r=IP(b,f.List,", ",false);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=b.WriteByte(41);$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;$s=-1;return;}return;}var $f={$blk:IO,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};IP=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=c;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(h>0){$s=3;continue;}$s=4;continue;case 3:j=b.WriteString(d);$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;case 4:$r=IQ(b,i.Names);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=$assertType(i.Type,OT,true);l=k[0];if(!(l===OT.nil)&&e){$s=7;continue;}$s=8;continue;case 7:$r=IO(b,l);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g++;$s=1;continue;case 8:if(i.Names.$length>0){$s=10;continue;}$s=11;continue;case 10:m=b.WriteByte(32);$s=12;case 12:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;case 11:$r=IN(b,i.Type);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:IP,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};IQ=function(b,c){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=c;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(f>0){$s=3;continue;}$s=4;continue;case 3:h=b.WriteString(", ");$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 4:i=b.WriteString(g.Name);$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;e++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:IQ,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};IR=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=c;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(f>0){$s=3;continue;}$s=4;continue;case 3:h=b.WriteString(", ");$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 4:$r=IN(b,g);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:IR,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};IU=function(){IT=$makeMap(C.Token.keyFor,[{k:12,v:EP},{k:13,v:EP},{k:19,v:EN},{k:43,v:EM}]);};KR.ptr.prototype.op=function(b,c,d){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;g=(f=$mapIndex(b,C.Token.keyFor(d)),f!==undefined?f.v:$throwNilPointerError);if(!(g===$throwNilPointerError)){$s=1;continue;}$s=2;continue;case 1:h=g(c.typ);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(!h){$s=4;continue;}$s=5;continue;case 4:$r=e.invalidOp(c,45,"operator %s not defined on %s",new NA([new C.Token(d),c]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 5:$s=3;continue;case 2:$r=e.invalidAST(c,"unknown operator %s",new NA([new C.Token(d)]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 3:$s=-1;return true;}return;}var $f={$blk:KR.ptr.prototype.op,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};KR.prototype.op=function(b,c,d){return this.$val.op(b,c,d);};KR.ptr.prototype.overflow=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;JM(b.mode===4);f=b.val.Kind();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f===0){$s=1;continue;}$s=2;continue;case 1:$r=e.errorf(new JS(((d>>0))),14,"constant result is not representable",new NA([]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 2:if(EV(b.typ)){$s=5;continue;}$s=6;continue;case 5:g=b;h=CF(b.typ);$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=$assertType(h,MY);$r=e.representable(g,i);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 6:k=b.val.Kind();$s=12;case 12:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(!(k===3)){j=false;$s=11;continue s;}l=G.BitLen(b.val);$s=13;case 13:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}j=l>512;case 11:if(j){$s=9;continue;}$s=10;continue;case 9:$r=e.errorf(new JS(((d>>0))),14,"constant %s overflow",new NA([new $String(IV(b.expr))]));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.val=G.MakeUnknown();case 10:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.overflow,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};KR.prototype.overflow=function(b,c,d){return this.$val.overflow(b,c,d);};IV=function(b){var b,c,d,e,f,g;c=b;if($assertType(c,NU,true)[1]){d=c.$val;if(((d.Op>>0))<21){return(f=d.Op,((f<0||f>=IX.length)?($throwRuntimeError("index out of range"),undefined):IX[f]));}}else if($assertType(c,NT,true)[1]){e=c.$val;if(((e.Op>>0))<20){return(g=e.Op,((g<0||g>=IW.length)?($throwRuntimeError("index out of range"),undefined):IW[g]));}}return"";};IY=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=$assertType(b,NJ,true);e=d[0];if(!(e===NJ.nil)){$s=1;continue;}$s=2;continue;case 1:f=e.underIs(c);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=4;case 4:return g;case 2:h=CF(b);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=c(h);$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=7;case 7:return j;}return;}var $f={$blk:IY,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};KR.ptr.prototype.unary=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;$r=d.expr(b,c.X);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b.mode===0){$s=-1;return;}e=c.Op;if(e===(17)){$s=3;continue;}if(e===(36)){$s=4;continue;}$s=5;continue;case 3:f=$assertType(LE(c.X),RP,true);g=f[1];if(!g&&!((b.mode===5))){$s=6;continue;}$s=7;continue;case 6:$r=d.invalidOp(b,49,"cannot take address of %s",new NA([b]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 7:b.mode=7;b.typ=new FH.ptr(b.typ);$s=-1;return;case 4:h=CG(b.typ);$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if($interfaceIsEqual(i,$ifaceNil)){$s=10;continue;}$s=11;continue;case 10:$r=d.invalidOp(b,58,"cannot receive from %s: no core type",new NA([b]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 11:j=$assertType(i,OE,true);k=j[0];if(k===OE.nil){$s=13;continue;}$s=14;continue;case 13:$r=d.invalidOp(b,58,"cannot receive from non-channel %s",new NA([b]));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 14:if(k.dir===1){$s=16;continue;}$s=17;continue;case 16:$r=d.invalidOp(b,58,"cannot receive from send-only channel %s",new NA([b]));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 17:b.mode=8;b.typ=k.elem;d.environment.hasCallOrRecv=true;$s=-1;return;case 5:case 2:l=d.op(IT,b,c.Op);$s=21;case 21:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}if(!l){$s=19;continue;}$s=20;continue;case 19:b.mode=0;$s=-1;return;case 20:if(b.mode===4){$s=22;continue;}$s=23;continue;case 22:m=b.val.Kind();$s=26;case 26:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if(m===0){$s=24;continue;}$s=25;continue;case 24:$s=-1;return;case 25:n=0;o=EE(b.typ);$s=29;case 29:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(o){$s=27;continue;}$s=28;continue;case 27:p=d.conf.sizeof(b.typ);$s=30;case 30:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}n=(($mul64(p,new $Int64(0,8)).$low>>>0));case 28:q=G.UnaryOp(c.Op,b.val,n);$s=31;case 31:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}b.val=q;b.expr=c;r=b;s=c.Op;t=b.Pos();$s=32;case 32:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;$r=d.overflow(r,s,u);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 23:b.mode=7;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.unary,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};KR.prototype.unary=function(b,c){return this.$val.unary(b,c);};IZ=function(b){var b;return(b===20)||(b===21);};JA=function(b){var b,c;c=b;if((c===(39))||(c===(44))||(c===(40))||(c===(45))||(c===(41))||(c===(46))){return true;}return false;};JB=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=G.Float32Val(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=(e);$s=-1;return!R.IsInf(f,0);}return;}var $f={$blk:JB,$c:true,$r,b,c,d,e,f,$s};return $f;};JC=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=G.Float32Val(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=(e);if(!R.IsInf(f,0)){$s=2;continue;}$s=3;continue;case 2:g=G.MakeFloat64(f);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=5;case 5:return h;case 3:$s=-1;return $ifaceNil;}return;}var $f={$blk:JC,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};JD=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=G.Float64Val(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];$s=-1;return!R.IsInf(e,0);}return;}var $f={$blk:JD,$c:true,$r,b,c,d,e,$s};return $f;};JE=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=G.Float64Val(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];if(!R.IsInf(e,0)){$s=2;continue;}$s=3;continue;case 2:f=G.MakeFloat64(e);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=5;case 5:return g;case 3:$s=-1;return $ifaceNil;}return;}var $f={$blk:JE,$c:true,$r,b,c,d,e,f,g,$s};return $f;};JF=function(b,c,d,e){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=b.Kind();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f===0){$s=1;continue;}$s=2;continue;case 1:$s=-1;return true;case 2:g=RR.nil;if(!(c===MQ.nil)){g=c.conf;}h=ED(d);$s=11;case 11:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(h){$s=5;continue;}i=EF(d);$s=12;case 12:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(i){$s=6;continue;}j=EG(d);$s=13;case 13:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=7;continue;}k=EI(d);$s=14;case 14:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(k){$s=8;continue;}l=EC(d);$s=15;case 15:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}if(l){$s=9;continue;}$s=10;continue;case 5:m=G.ToInt(b);$s=16;case 16:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=n.Kind();$s=19;case 19:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(!((o===3))){$s=17;continue;}$s=18;continue;case 17:$s=-1;return false;case 18:if(!(e===PD.nil)){e.$set(n);}q=G.Int64Val(n);$s=20;case 20:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p[0];s=p[1];if(s){$s=21;continue;}$s=22;continue;case 21:t=d.kind;if(t===(2)){$s=24;continue;}if(t===(3)){$s=25;continue;}if(t===(4)){$s=26;continue;}if(t===(5)){$s=27;continue;}if((t===(6))||(t===(20))){$s=28;continue;}if((t===(7))||(t===(12))){$s=29;continue;}if(t===(8)){$s=30;continue;}if(t===(9)){$s=31;continue;}if(t===(10)){$s=32;continue;}if(t===(11)){$s=33;continue;}$s=34;continue;case 24:u=g.sizeof(d);$s=36;case 36:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=((u.$low>>>0))*8>>>0;$s=-1;return(w=$shiftLeft64(new $Int64(-1,4294967295),((v-1>>>0))),(w.$high>>0))),new $Int64(y.$high-0,y.$low-1)),(r.$high>>0))*8>>>0;if(aa<64){$s=-1;return(0>>0))*8>>>0;ai=G.Sign(n);$s=45;case 45:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai>=0&&ae<=((ah>>0));$s=46;case 46:return aj;case 41:ak=G.Sign(n);$s=47;case 47:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak>=0&&ae<=64;$s=48;case 48:return al;case 42:$s=-1;return true;case 43:case 38:$s=10;continue;case 6:am=G.ToFloat(b);$s=49;case 49:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am;ao=an.Kind();$s=52;case 52:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}if(!((ao===4))){$s=50;continue;}$s=51;continue;case 50:$s=-1;return false;case 51:ap=d.kind;if(ap===(13)){$s=54;continue;}if(ap===(14)){$s=55;continue;}if(ap===(22)){$s=56;continue;}$s=57;continue;case 54:if(e===PD.nil){$s=59;continue;}$s=60;continue;case 59:aq=JB(an);$s=61;case 61:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;$s=62;case 62:return ar;case 60:as=JC(an);$s=63;case 63:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=as;if(!($interfaceIsEqual(at,$ifaceNil))){e.$set(at);$s=-1;return true;}$s=58;continue;case 55:if(e===PD.nil){$s=64;continue;}$s=65;continue;case 64:au=JD(an);$s=66;case 66:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=au;$s=67;case 67:return av;case 65:aw=JE(an);$s=68;case 68:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ax=aw;if(!($interfaceIsEqual(ax,$ifaceNil))){e.$set(ax);$s=-1;return true;}$s=58;continue;case 56:$s=-1;return true;case 57:JN();case 58:case 53:$s=10;continue;case 7:ay=G.ToComplex(b);az=ay.Kind();$s=71;case 71:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}if(!((az===5))){$s=69;continue;}$s=70;continue;case 69:$s=-1;return false;case 70:ba=d.kind;if(ba===(15)){$s=73;continue;}if(ba===(16)){$s=74;continue;}if(ba===(23)){$s=75;continue;}$s=76;continue;case 73:if(e===PD.nil){$s=78;continue;}$s=79;continue;case 78:bc=G.Real(ay);$s=81;case 81:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=JB(bc);$s=82;case 82:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}if(!(bd)){bb=false;$s=80;continue s;}be=G.Imag(ay);$s=83;case 83:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bf=JB(be);$s=84;case 84:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bb=bf;case 80:bg=bb;$s=85;case 85:return bg;case 79:bh=G.Real(ay);$s=86;case 86:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bi=JC(bh);$s=87;case 87:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bj=bi;bk=G.Imag(ay);$s=88;case 88:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}bl=JC(bk);$s=89;case 89:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}bm=bl;if(!($interfaceIsEqual(bj,$ifaceNil))&&!($interfaceIsEqual(bm,$ifaceNil))){$s=90;continue;}$s=91;continue;case 90:bn=bj;bo=G.MakeImag(bm);$s=92;case 92:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=bo;bq=G.BinaryOp(bn,12,bp);$s=93;case 93:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}e.$set(bq);$s=-1;return true;case 91:$s=77;continue;case 74:if(e===PD.nil){$s=94;continue;}$s=95;continue;case 94:bs=G.Real(ay);$s=97;case 97:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}bt=JD(bs);$s=98;case 98:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}if(!(bt)){br=false;$s=96;continue s;}bu=G.Imag(ay);$s=99;case 99:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}bv=JD(bu);$s=100;case 100:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}br=bv;case 96:bw=br;$s=101;case 101:return bw;case 95:bx=G.Real(ay);$s=102;case 102:if($c){$c=false;bx=bx.$blk();}if(bx&&bx.$blk!==undefined){break s;}by=JE(bx);$s=103;case 103:if($c){$c=false;by=by.$blk();}if(by&&by.$blk!==undefined){break s;}bz=by;ca=G.Imag(ay);$s=104;case 104:if($c){$c=false;ca=ca.$blk();}if(ca&&ca.$blk!==undefined){break s;}cb=JE(ca);$s=105;case 105:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}cc=cb;if(!($interfaceIsEqual(bz,$ifaceNil))&&!($interfaceIsEqual(cc,$ifaceNil))){$s=106;continue;}$s=107;continue;case 106:cd=bz;ce=G.MakeImag(cc);$s=108;case 108:if($c){$c=false;ce=ce.$blk();}if(ce&&ce.$blk!==undefined){break s;}cf=ce;cg=G.BinaryOp(cd,12,cf);$s=109;case 109:if($c){$c=false;cg=cg.$blk();}if(cg&&cg.$blk!==undefined){break s;}e.$set(cg);$s=-1;return true;case 107:$s=77;continue;case 75:$s=-1;return true;case 76:JN();case 77:case 72:$s=10;continue;case 8:ch=b.Kind();$s=110;case 110:if($c){$c=false;ch=ch.$blk();}if(ch&&ch.$blk!==undefined){break s;}ci=ch===2;$s=111;case 111:return ci;case 9:cj=b.Kind();$s=112;case 112:if($c){$c=false;cj=cj.$blk();}if(cj&&cj.$blk!==undefined){break s;}ck=cj===1;$s=113;case 113:return ck;case 10:case 4:$s=-1;return false;}return;}var $f={$blk:JF,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.ptr.prototype.representable=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;f=d.representation(b,c);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if(!((h===0))){$s=2;continue;}$s=3;continue;case 2:$r=d.invalidConversion(h,b,c);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 3:JM(!($interfaceIsEqual(g,$ifaceNil)));b.val=g;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.representable,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};KR.prototype.representable=function(b,c){return this.$val.representable(b,c);};KR.ptr.prototype.representation=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=this;JM(b.mode===4);d[0]=b.val;f=JF(b.val,e,c,(d.$ptr||(d.$ptr=new PD(function(){return this.$target[0];},function($v){this.$target[0]=$v;},d))));$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(!f){$s=1;continue;}$s=2;continue;case 1:h=EH(b.typ);$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(!(h)){g=false;$s=6;continue s;}i=EH(c);$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}g=i;case 6:if(g){$s=4;continue;}$s=5;continue;case 4:k=ED(b.typ);$s=13;case 13:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(!(!k)){j=false;$s=12;continue s;}l=ED(c);$s=14;case 14:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}j=l;case 12:if(j){$s=9;continue;}$s=10;continue;case 9:$s=-1;return[$ifaceNil,43];case 10:$s=-1;return[$ifaceNil,44];case 11:case 5:$s=-1;return[$ifaceNil,14];case 2:$s=-1;return[d[0],0];}return;}var $f={$blk:KR.ptr.prototype.representation,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};KR.prototype.representation=function(b,c){return this.$val.representation(b,c);};KR.ptr.prototype.invalidConversion=function(b,c,d){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f="cannot convert %s to %s";g=b;if(g===(43)){f="%s truncated to %s";}else if(g===(44)){f="%s overflows %s";}$r=e.errorf(c,b,f,new NA([c,d]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.invalidConversion,$c:true,$r,b,c,d,e,f,g,$s};return $f;};KR.prototype.invalidConversion=function(b,c,d){return this.$val.invalidConversion(b,c,d);};KR.ptr.prototype.updateExprType=function(b,c,d){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;$r=e.updateExprType0($ifaceNil,b,c,d);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.updateExprType,$c:true,$r,b,c,d,e,$s};return $f;};KR.prototype.updateExprType=function(b,c,d){return this.$val.updateExprType(b,c,d);};KR.ptr.prototype.updateExprType0=function(b,c,d,e){var{aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=[f];g=this;h=(i=$mapIndex(g.untyped,B.Expr.keyFor(c)),i!==undefined?[i.v,true]:[new KL.ptr(false,0,MY.nil,$ifaceNil),false]);j=$clone(h[0],KL);k=h[1];if(!k){$s=-1;return;}l=c;if($assertType(l,OK,true)[1]||$assertType(l,RO,true)[1]||$assertType(l,RP,true)[1]||$assertType(l,OM,true)[1]||$assertType(l,RQ,true)[1]||$assertType(l,QJ,true)[1]||$assertType(l,OS,true)[1]||$assertType(l,RN,true)[1]||$assertType(l,OP,true)[1]||$assertType(l,OR,true)[1]||$assertType(l,OT,true)[1]||$assertType(l,OU,true)[1]||$assertType(l,OV,true)[1]||$assertType(l,OW,true)[1]){$s=1;continue;}if($assertType(l,QP,true)[1]){$s=2;continue;}if($assertType(l,OF,true)[1]||$assertType(l,PJ,true)[1]||$assertType(l,OL,true)[1]){$s=3;continue;}if($assertType(l,OO,true)[1]){$s=4;continue;}if($assertType(l,NT,true)[1]){$s=5;continue;}if($assertType(l,NU,true)[1]){$s=6;continue;}$s=7;continue;case 1:m=l;if(false){$s=9;continue;}$s=10;continue;case 9:t=m.Pos();$s=11;case 11:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=new C.Pos(t);v=m;w=j.typ;x=d;$r=g.dump("%v: found old type(%s): %s (new: %s)",new NA([u,v,w,x]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}JN();case 10:$s=-1;return;case 2:n=l.$val;$s=8;continue;case 3:o=l;$s=8;continue;case 4:p=l.$val;$r=g.updateExprType0(p,p.X,d,e);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 5:q=l.$val;if(!($interfaceIsEqual(j.val,$ifaceNil))){$s=8;continue;}$r=g.updateExprType0(q,q.X,d,e);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 6:r=l.$val;if(!($interfaceIsEqual(j.val,$ifaceNil))){$s=8;continue;}if(JA(r.Op)){$s=15;continue;}if(IZ(r.Op)){$s=16;continue;}$s=17;continue;case 15:$s=18;continue;case 16:$r=g.updateExprType0(r,r.X,d,e);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 17:$r=g.updateExprType0(r,r.X,d,e);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=g.updateExprType0(r,r.Y,d,e);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 18:$s=8;continue;case 7:s=l;JN();case 8:if(!e&&EW(d)){$s=22;continue;}$s=23;continue;case 22:y=CF(d);$s=24;case 24:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}j.typ=$assertType(y,MY);z=c;(g.untyped||$throwRuntimeError("assignment to entry in nil map")).set(B.Expr.keyFor(z),{k:z,v:$clone(j,KL)});$s=-1;return;case 23:$mapDelete(g.untyped,B.Expr.keyFor(c));if(j.isLhs){$s=25;continue;}$s=26;continue;case 25:aa=EN(d);$s=29;case 29:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}if(!aa){$s=27;continue;}$s=28;continue;case 27:if(false){$s=30;continue;}$s=31;continue;case 30:$r=g.invalidOp(c,57,"%s (shift of type %s)",new NA([b,d]));$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=32;continue;case 31:$r=g.invalidOp(c,57,"shifted operand %s (type %s) must be integer",new NA([c,d]));$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 32:$s=-1;return;case 28:case 26:if(!($interfaceIsEqual(j.val,$ifaceNil))){$s=35;continue;}$s=36;continue;case 35:f[0]=new FN.ptr(j.mode,c,j.typ,j.val,0);$r=g.convertUntyped(f[0],d);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(f[0].mode===0){$s=-1;return;}case 36:$r=g.recordTypeAndValue(c,j.mode,d,j.val);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.updateExprType0,$c:true,$r,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.updateExprType0=function(b,c,d,e){return this.$val.updateExprType0(b,c,d,e);};KR.ptr.prototype.updateExprVal=function(b,c){var b,c,d,e,f,g,h,i;d=this;e=(f=$mapIndex(d.untyped,B.Expr.keyFor(b)),f!==undefined?[f.v,true]:[new KL.ptr(false,0,MY.nil,$ifaceNil),false]);g=$clone(e[0],KL);h=e[1];if(h){g.val=c;i=b;(d.untyped||$throwRuntimeError("assignment to entry in nil map")).set(B.Expr.keyFor(i),{k:i,v:$clone(g,KL)});}};KR.prototype.updateExprVal=function(b,c){return this.$val.updateExprVal(b,c);};KR.ptr.prototype.convertUntyped=function(b,c){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;f=d.implicitTypeAndValue(b,c);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];i=e[2];if(!((i===0))){$s=2;continue;}$s=3;continue;case 2:j=c;if(!EY(c)){$s=4;continue;}$s=5;continue;case 4:k=GU(c);$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;case 5:$r=d.invalidConversion(i,b,j);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 3:if(!($interfaceIsEqual(h,$ifaceNil))){b.val=h;d.updateExprVal(b.expr,h);}if(!($interfaceIsEqual(g,b.typ))){$s=8;continue;}$s=9;continue;case 8:b.typ=g;$r=d.updateExprType(b.expr,g,false);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.convertUntyped,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};KR.prototype.convertUntyped=function(b,c){return this.$val.convertUntyped(b,c);};KR.ptr.prototype.implicitTypeAndValue=function(b,c){var{aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:b=[b];d=[d];d[0]=this;if((b[0].mode===0)||EV(b[0].typ)||$interfaceIsEqual(c,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=-1;return[b[0].typ,$ifaceNil,0];}if(EW(c)){$s=1;continue;}$s=2;continue;case 1:e=$assertType(b[0].typ,MY).kind;f=$assertType(c,MY).kind;h=EH(b[0].typ);$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(!(h)){g=false;$s=6;continue s;}i=EH(c);$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}g=i;case 6:if(g){$s=3;continue;}if(!((e===f))){$s=4;continue;}$s=5;continue;case 3:if(e=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+25]),$ifaceNil,0];case 23:$s=-1;return[$ifaceNil,$ifaceNil,97];case 24:case 18:$s=14;continue;case 11:m=j.$val;if(EY(c)){$s=37;continue;}$s=38;continue;case 37:y=m.typeSet();$s=41;case 41:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y.underIs((function(b,d){return function $b(z){var{aa,ab,ac,z,$s,$r,$c}=$restore(this,{z});$s=$s||0;s:while(true){switch($s){case 0:if($interfaceIsEqual(z,$ifaceNil)){$s=-1;return false;}ab=d[0].implicitTypeAndValue(b[0],z);$s=1;case 1:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;ac=aa[0];$s=-1;return!($interfaceIsEqual(ac,$ifaceNil));}return;}var $f={$blk:$b,$c:true,$r,aa,ab,ac,z,$s};return $f;};})(b,d));$s=42;case 42:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}if(!z){$s=39;continue;}$s=40;continue;case 39:$s=-1;return[$ifaceNil,$ifaceNil,97];case 40:if(b[0].isNil()){$s=-1;return[(25>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+25]),$ifaceNil,0];}$s=14;continue;case 38:if(b[0].isNil()){$s=-1;return[(25>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+25]),$ifaceNil,0];}aa=m.Empty();$s=45;case 45:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}if(!aa){$s=43;continue;}$s=44;continue;case 43:$s=-1;return[$ifaceNil,$ifaceNil,97];case 44:$s=-1;return[FG(b[0].typ),$ifaceNil,0];case 12:n=j;if(!b[0].isNil()){$s=-1;return[$ifaceNil,$ifaceNil,97];}$s=-1;return[(25>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+25]),$ifaceNil,0];case 13:o=j;$s=-1;return[$ifaceNil,$ifaceNil,97];case 14:$s=-1;return[c,$ifaceNil,0];}return;}var $f={$blk:KR.ptr.prototype.implicitTypeAndValue,$c:true,$r,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.implicitTypeAndValue=function(b,c){return this.$val.implicitTypeAndValue(b,c);};KR.ptr.prototype.comparison=function(b,c,d,e){var{aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;if(e){d=39;}g=b;h="";i=46;k=b.assignableTo(f,c.typ,OJ.nil);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];if(!l){$s=2;continue;}$s=3;continue;case 2:n=c.assignableTo(f,b.typ,OJ.nil);$s=4;case 4:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;l=m[0];case 3:if(!l){$s=5;continue;}$s=6;continue;case 5:g=c;if(true){g=b;}o=f.sprintf("mismatched types %s and %s",new NA([b.typ,c.typ]));$s=7;case 7:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}h=o;$s=8;continue;case 6:i=45;p=d;if((p===(39))||(p===(44))){$s=10;continue;}if((p===(40))||(p===(45))||(p===(41))||(p===(46))){$s=11;continue;}$s=12;continue;case 10:if(b.isNil()||c.isNil()){$s=15;continue;}q=FA(b.typ);$s=19;case 19:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}if(!q){$s=16;continue;}r=FA(c.typ);$s=20;case 20:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}if(!r){$s=17;continue;}$s=18;continue;case 15:s=b.typ;if(b.isNil()){s=c.typ;}t=FC(s);$s=23;case 23:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}if(!t){$s=21;continue;}$s=22;continue;case 21:g=c;$s=8;continue;case 22:$s=18;continue;case 16:g=b;u=f.incomparableCause(b.typ);$s=24;case 24:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}h=u;$s=8;continue;$s=18;continue;case 17:g=c;v=f.incomparableCause(c.typ);$s=25;case 25:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}h=v;$s=8;continue;case 18:case 14:$s=13;continue;case 11:w=ER(b.typ);$s=30;case 30:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}if(!w){$s=27;continue;}x=ER(c.typ);$s=31;case 31:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}if(!x){$s=28;continue;}$s=29;continue;case 27:g=b;$s=8;continue;$s=29;continue;case 28:g=c;$s=8;continue;case 29:case 26:$s=13;continue;case 12:JN();case 13:case 9:if((b.mode===4)&&(c.mode===4)){$s=32;continue;}$s=33;continue;case 32:y=G.Compare(b.val,d,c.val);$s=35;case 35:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=G.MakeBool(y);$s=36;case 36:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}b.val=z;$s=34;continue;case 33:b.mode=7;$r=f.updateExprType(b.expr,FG(b.typ),true);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f.updateExprType(c.expr,FG(c.typ),true);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 34:b.typ=(19>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+19]);$s=-1;return;case 8:if(h===""){$s=39;continue;}$s=40;continue;case 39:if(EY(b.typ)||EY(c.typ)){$s=41;continue;}$s=42;continue;case 41:if(!EY(b.typ)){g=c;}aa=f.sprintf("type parameter %s is not comparable with %s",new NA([g.typ,new C.Token(d)]));$s=44;case 44:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}h=aa;$s=43;continue;case 42:ab=new C.Token(d);ac=f.kindString(g.typ);$s=45;case 45:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=new $String(ac);ae=f.sprintf("operator %s not defined on %s",new NA([ab,ad]));$s=46;case 46:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}h=ae;case 43:case 40:if(e){$s=47;continue;}$s=48;continue;case 47:$r=f.errorf(b,i,"invalid case %s in switch on %s (%s)",new NA([b.expr,c.expr,new $String(h)]));$s=50;case 50:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=49;continue;case 48:if(false){$s=51;continue;}$s=52;continue;case 51:$r=f.invalidOp(g,i,"%s %s %s (%s)",new NA([b.expr,new C.Token(d),c.expr,new $String(h)]));$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=53;continue;case 52:$r=f.invalidOp(g,i,"cannot compare %s %s %s (%s)",new NA([b.expr,new C.Token(d),c.expr,new $String(h)]));$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 53:case 49:b.mode=0;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.comparison,$c:true,$r,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.comparison=function(b,c,d,e){return this.$val.comparison(b,c,d,e);};KR.ptr.prototype.incomparableCause=function(b){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=[d];d[0]=this;f=CF(b);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;if($assertType(e,OA,true)[1]||$assertType(e,OC,true)[1]||$assertType(e,OD,true)[1]){$s=2;continue;}$s=3;continue;case 2:g=d[0].kindString(b);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g+" can only be compared to nil";$s=5;case 5:return h;case 3:c[0]="";i=FB(b,true,false,(function(c,d){return function $b(i,j){var{i,j,k,$s,$r,$c}=$restore(this,{i,j});$s=$s||0;s:while(true){switch($s){case 0:k=d[0].sprintf(i,j);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}c[0]=k;$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,i,j,k,$s};return $f;};})(c,d));$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$s=-1;return c[0];}return;}var $f={$blk:KR.ptr.prototype.incomparableCause,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};KR.prototype.incomparableCause=function(b){return this.$val.incomparableCause(b);};KR.ptr.prototype.kindString=function(b){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=CF(b);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;if($assertType(d,NE,true)[1]){$s=2;continue;}if($assertType(d,OA,true)[1]){$s=3;continue;}if($assertType(d,NF,true)[1]){$s=4;continue;}if($assertType(d,OB,true)[1]){$s=5;continue;}if($assertType(d,OC,true)[1]){$s=6;continue;}if($assertType(d,NH,true)[1]){$s=7;continue;}if($assertType(d,OD,true)[1]){$s=8;continue;}if($assertType(d,OE,true)[1]){$s=9;continue;}$s=10;continue;case 2:$s=-1;return"array";case 3:$s=-1;return"slice";case 4:$s=-1;return"struct";case 5:$s=-1;return"pointer";case 6:$s=-1;return"func";case 7:if(EY(b)){$s=12;continue;}$s=13;continue;case 12:f=c.sprintf("type parameter %s",new NA([b]));$s=14;case 14:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=15;case 15:return g;case 13:$s=-1;return"interface";case 8:$s=-1;return"map";case 9:$s=-1;return"chan";case 10:h=c.sprintf("%s",new NA([b]));$s=16;case 16:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=17;case 17:return i;case 11:$s=-1;return"";}return;}var $f={$blk:KR.ptr.prototype.kindString,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};KR.prototype.kindString=function(b){return this.$val.kindString(b);};KR.ptr.prototype.shift=function(b,c,d,e){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;g=$ifaceNil;if(b.mode===4){$s=1;continue;}$s=2;continue;case 1:h=G.ToInt(b.val);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;case 2:j=EN(b.typ);$s=8;case 8:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){i=true;$s=7;continue s;}if(!(EW(b.typ)&&!($interfaceIsEqual(g,$ifaceNil)))){k=false;$s=9;continue s;}l=g.Kind();$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l===3;case 9:i=k;case 7:if(i){$s=4;continue;}$s=5;continue;case 4:$s=6;continue;case 5:$r=f.invalidOp(b,57,"shifted operand %s must be integer",new NA([b]));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 6:if(c.mode===4){$s=12;continue;}$s=13;continue;case 12:m=G.ToInt(c.val);$s=15;case 15:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;p=n.Kind();$s=19;case 19:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}if(!(p===3)){o=false;$s=18;continue s;}q=G.Sign(n);$s=20;case 20:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}o=q<0;case 18:if(o){$s=16;continue;}$s=17;continue;case 16:$r=f.invalidOp(c,56,"negative shift count %s",new NA([c]));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 17:if(EW(c.typ)){$s=22;continue;}$s=23;continue;case 22:$r=f.representable(c,(7>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+7]));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c.mode===0){b.mode=0;$s=-1;return;}case 23:$s=14;continue;case 13:r=EN(c.typ);$s=30;case 30:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}if(r){$s=26;continue;}if(EW(c.typ)){$s=27;continue;}$s=28;continue;case 26:s=EO(c.typ);$s=33;case 33:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}if(!s&&!f.allowVersion(f.pkg,1,13)){$s=31;continue;}$s=32;continue;case 31:$r=f.invalidOp(c,56,"signed shift count %s requires go1.13 or later",new NA([c]));$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 32:$s=29;continue;case 27:$r=f.convertUntyped(c,(7>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+7]));$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c.mode===0){b.mode=0;$s=-1;return;}$s=29;continue;case 28:$r=f.invalidOp(c,56,"shift count %s must be integer",new NA([c]));$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 29:case 25:case 14:if(b.mode===4){$s=37;continue;}$s=38;continue;case 37:if(c.mode===4){$s=39;continue;}$s=40;continue;case 39:u=b.val.Kind();$s=44;case 44:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}if(u===0){t=true;$s=43;continue s;}v=c.val.Kind();$s=45;case 45:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}t=v===0;case 43:if(t){$s=41;continue;}$s=42;continue;case 41:b.val=G.MakeUnknown();w=ED(b.typ);$s=48;case 48:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}if(!w){$s=46;continue;}$s=47;continue;case 46:b.typ=(20>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+20]);case 47:$s=-1;return;case 42:y=G.Uint64Val(c.val);$s=49;case 49:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}x=y;z=x[0];aa=x[1];if(!aa||(z.$high>0||(z.$high===0&&z.$low>1074))){$s=50;continue;}$s=51;continue;case 50:$r=f.invalidOp(c,56,"invalid shift count %s",new NA([c]));$s=52;case 52:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 51:ab=ED(b.typ);$s=55;case 55:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}if(!ab){$s=53;continue;}$s=54;continue;case 53:b.typ=(20>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+20]);case 54:ac=G.Shift(g,e,((z.$low>>>0)));$s=56;case 56:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}b.val=ac;b.expr=d;ad=b.Pos();$s=57;case 57:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;af=$assertType(d,NU,true);ag=af[0];if(!(ag===NU.nil)){ae=ag.OpPos;}$r=f.overflow(b,e,ae);$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 40:if(EW(b.typ)){ah=(ai=$mapIndex(f.untyped,B.Expr.keyFor(b.expr)),ai!==undefined?[ai.v,true]:[new KL.ptr(false,0,MY.nil,$ifaceNil),false]);aj=$clone(ah[0],KL);ak=ah[1];if(ak){aj.isLhs=true;al=b.expr;(f.untyped||$throwRuntimeError("assignment to entry in nil map")).set(B.Expr.keyFor(al),{k:al,v:$clone(aj,KL)});}b.mode=7;$s=-1;return;}case 38:am=EN(b.typ);$s=61;case 61:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}if(!am){$s=59;continue;}$s=60;continue;case 59:$r=f.invalidOp(b,57,"shifted operand %s must be integer",new NA([b]));$s=62;case 62:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 60:b.mode=7;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.shift,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.shift=function(b,c,d,e){return this.$val.shift(b,c,d,e);};JH=function(){JG=$makeMap(C.Token.keyFor,[{k:12,v:ES},{k:13,v:EP},{k:14,v:EP},{k:15,v:EP},{k:16,v:EN},{k:17,v:EN},{k:18,v:EN},{k:19,v:EN},{k:22,v:EN},{k:34,v:EM},{k:35,v:EM}]);};KR.ptr.prototype.binary=function(b,c,d,e,f,g){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e,f,g});$s=$s||0;s:while(true){switch($s){case 0:h=[h];i=this;h[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=i.expr(b,d);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=i.expr(h[0],e);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b.mode===0){$s=-1;return;}if(h[0].mode===0){b.mode=0;b.expr=h[0].expr;$s=-1;return;}if(IZ(f)){$s=3;continue;}$s=4;continue;case 3:$r=i.shift(b,h[0],c,f);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 4:j=(function(h){return function $b(j,k){var{j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{j,k});$s=$s||0;s:while(true){switch($s){case 0:m=EX(j.typ);$s=4;case 4:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if(m&&!EY(j.typ)){l=true;$s=3;continue s;}n=EX(k.typ);$s=5;case 5:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}l=n&&!EY(k.typ);case 3:if(l){$s=1;continue;}$s=2;continue;case 1:$s=-1;return true;case 2:o=EM(j.typ);$s=8;case 8:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=EM(k.typ);$s=9;case 9:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}if(!(o===p)){$s=6;continue;}$s=7;continue;case 6:$s=-1;return false;case 7:q=EQ(j.typ);$s=12;case 12:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=EQ(k.typ);$s=13;case 13:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}if(!(q===r)){$s=10;continue;}$s=11;continue;case 10:$s=-1;return false;case 11:if(!(j.isNil())){s=false;$s=16;continue s;}t=FC(k.typ);$s=17;case 17:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=!t;case 16:if(s){$s=14;continue;}$s=15;continue;case 14:$s=-1;return false;case 15:if(!(k.isNil())){u=false;$s=20;continue s;}v=FC(j.typ);$s=21;case 21:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=!v;case 20:if(u){$s=18;continue;}$s=19;continue;case 18:$s=-1;return false;case 19:$s=-1;return true;}return;}var $f={$blk:$b,$c:true,$r,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};})(h);k=j(b,h[0]);$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(k){$s=6;continue;}$s=7;continue;case 6:$r=i.convertUntyped(b,h[0].typ);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b.mode===0){$s=-1;return;}$r=i.convertUntyped(h[0],b.typ);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(h[0].mode===0){b.mode=0;$s=-1;return;}case 7:if(JA(f)){$s=11;continue;}$s=12;continue;case 11:$r=i.comparison(b,h[0],f,false);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 12:l=MC(b.typ,h[0].typ);$s=16;case 16:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}if(!l){$s=14;continue;}$s=15;continue;case 14:if(!($interfaceIsEqual(b.typ,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0])))&&!($interfaceIsEqual(h[0].typ,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0])))){$s=17;continue;}$s=18;continue;case 17:m=b;if(!($interfaceIsEqual(c,$ifaceNil))){m=c;}if(!($interfaceIsEqual(c,$ifaceNil))){$s=19;continue;}$s=20;continue;case 19:$r=i.invalidOp(m,46,"%s (mismatched types %s and %s)",new NA([c,b.typ,h[0].typ]));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 20:$r=i.invalidOp(m,46,"%s %s= %s (mismatched types %s and %s)",new NA([d,new C.Token(f),e,b.typ,h[0].typ]));$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 21:case 18:b.mode=0;$s=-1;return;case 15:n=i.op(JG,b,f);$s=26;case 26:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}if(!n){$s=24;continue;}$s=25;continue;case 24:b.mode=0;$s=-1;return;case 25:if((f===15)||(f===16)){$s=27;continue;}$s=28;continue;case 27:if(b.mode===4){p=true;$s=32;continue s;}q=EN(b.typ);$s=33;case 33:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;case 32:if(!((p)&&(h[0].mode===4))){o=false;$s=31;continue s;}r=G.Sign(h[0].val);$s=34;case 34:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}o=r===0;case 31:if(o){$s=29;continue;}$s=30;continue;case 29:$r=i.invalidOp(h[0],47,"division by zero",new NA([]));$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 30:if(!((b.mode===4)&&(h[0].mode===4))){s=false;$s=38;continue s;}t=EG(b.typ);$s=39;case 39:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;case 38:if(s){$s=36;continue;}$s=37;continue;case 36:v=G.Real(h[0].val);$s=40;case 40:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=v;x=G.Imag(h[0].val);$s=41;case 41:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;y=u;z=w;ab=G.BinaryOp(y,14,y);$s=42;case 42:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;ad=G.BinaryOp(z,14,z);$s=43;case 43:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=ad;ae=aa;af=ac;ah=G.Sign(ae);$s=47;case 47:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}if(!(ah===0)){ag=false;$s=46;continue s;}ai=G.Sign(af);$s=48;case 48:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ag=ai===0;case 46:if(ag){$s=44;continue;}$s=45;continue;case 44:$r=i.invalidOp(h[0],47,"division by zero",new NA([]));$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 45:case 37:case 28:if((b.mode===4)&&(h[0].mode===4)){$s=50;continue;}$s=51;continue;case 50:ak=b.val.Kind();$s=55;case 55:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}if(ak===0){aj=true;$s=54;continue s;}al=h[0].val.Kind();$s=56;case 56:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}aj=al===0;case 54:if(aj){$s=52;continue;}$s=53;continue;case 52:b.val=G.MakeUnknown();$s=-1;return;case 53:if(!(f===15)){am=false;$s=59;continue s;}an=ED(b.typ);$s=60;case 60:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}am=an;case 59:if(am){$s=57;continue;}$s=58;continue;case 57:f=26;case 58:ao=G.BinaryOp(b.val,f,h[0].val);$s=61;case 61:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}b.val=ao;b.expr=c;$r=i.overflow(b,f,g);$s=62;case 62:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 51:b.mode=7;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.binary,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.binary=function(b,c,d,e,f,g){return this.$val.binary(b,c,d,e,f,g);};KR.ptr.prototype.rawExpr=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,$s,$deferred,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];f=[f];f[0]=this;if(false){$s=1;continue;}$s=2;continue;case 1:g=c[0].Pos();$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$r=f[0].trace(g,"expr %s",new NA([c[0]]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f[0].indent=f[0].indent+(1)>>0;$deferred.push([(function(b,c,f){return function $b(){var{h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:f[0].indent=f[0].indent-(1)>>0;h=c[0].Pos();$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=f[0].trace(h,"=> %s",new NA([b[0]]));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,h,$s};return $f;};})(b,c,f),[]]);case 2:h=f[0].exprInternal(b[0],c[0],d);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if(!e){$s=6;continue;}$s=7;continue;case 6:$r=f[0].nonGeneric(b[0]);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:$r=f[0].record(b[0]);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=i;$s=10;case 10:return j;}return;}}catch(err){$err=err;$s=-1;return 0;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.rawExpr,$c:true,$r,b,c,d,e,f,g,h,i,j,$s,$deferred};return $f;}}};KR.prototype.rawExpr=function(b,c,d,e){return this.$val.rawExpr(b,c,d,e);};KR.ptr.prototype.nonGeneric=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if((b.mode===0)||(b.mode===1)){$s=-1;return;}d="";e=b.typ;if($assertType(e,NI,true)[1]){$s=1;continue;}if($assertType(e,OC,true)[1]){$s=2;continue;}$s=3;continue;case 1:f=e.$val;h=EZ(f);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(h){$s=4;continue;}$s=5;continue;case 4:d="type";case 5:$s=3;continue;case 2:g=e.$val;if(!(g.tparams===OX.nil)){d="function";}case 3:if(!(d==="")){$s=7;continue;}$s=8;continue;case 7:$r=c.errorf(b.expr,137,"cannot use generic %s %s without instantiation",new NA([new $String(d),b.expr]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;b.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 8:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.nonGeneric,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};KR.prototype.nonGeneric=function(b){return this.$val.nonGeneric(b);};KR.ptr.prototype.exprInternal=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:b=[b];e=[e];f=[f];g=[g];h=[h];i=[i];j=[j];f[0]=this;b[0].mode=0;b[0].typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);k=c;if($assertType(k,OK,true)[1]){$s=1;continue;}if($assertType(k,OF,true)[1]){$s=2;continue;}if($assertType(k,OQ,true)[1]){$s=3;continue;}if($assertType(k,PJ,true)[1]){$s=4;continue;}if($assertType(k,RO,true)[1]){$s=5;continue;}if($assertType(k,RP,true)[1]){$s=6;continue;}if($assertType(k,OO,true)[1]){$s=7;continue;}if($assertType(k,OL,true)[1]){$s=8;continue;}if($assertType(k,OM,true)[1]||$assertType(k,ON,true)[1]){$s=9;continue;}if($assertType(k,RQ,true)[1]){$s=10;continue;}if($assertType(k,QJ,true)[1]){$s=11;continue;}if($assertType(k,QP,true)[1]){$s=12;continue;}if($assertType(k,OS,true)[1]){$s=13;continue;}if($assertType(k,NT,true)[1]){$s=14;continue;}if($assertType(k,NU,true)[1]){$s=15;continue;}if($assertType(k,RN,true)[1]){$s=16;continue;}if($assertType(k,OP,true)[1]||$assertType(k,OR,true)[1]||$assertType(k,OT,true)[1]||$assertType(k,OU,true)[1]||$assertType(k,OV,true)[1]||$assertType(k,OW,true)[1]){$s=17;continue;}$s=18;continue;case 1:l=k.$val;$s=20;continue;$s=19;continue;case 2:m=k.$val;$r=f[0].ident(b[0],m,NI.nil,false);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=19;continue;case 3:n=k.$val;$r=f[0].error(n,77,"invalid use of '...'");$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;$s=19;continue;case 4:o=k.$val;ac=o.Kind;if((ac===(5))||(ac===(6))||(ac===(7))){$s=24;continue;}$s=25;continue;case 24:$r=f[0].langCompat(o);$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(o.Value.length>10000){$s=27;continue;}$s=28;continue;case 27:$r=f[0].errorf(o,14,"excessively long constant: %s... (%d chars)",new NA([new $String($substring(o.Value,0,10)),new $Int(o.Value.length)]));$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 28:case 25:case 23:$r=b[0].setConst(o.Kind,o.Value);$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=31;continue;}$s=32;continue;case 31:$r=f[0].errorf(o,14,"malformed constant: %s",new NA([new $String(o.Value)]));$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 32:$s=19;continue;case 5:h[0]=k.$val;ae=f[0].typ(h[0].Type);$s=34;case 34:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ad=$assertType(ae,OC,true);j[0]=ad[0];af=ad[1];if(af){$s=35;continue;}$s=36;continue;case 35:if(!f[0].conf.IgnoreFuncBodies&&!(h[0].Body===QB.nil)){g[0]=f[0].environment.decl;i[0]=f[0].environment.iota;f[0].later((function(b,e,f,g,h,i,j){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=f[0].funcBody(g[0],"",j[0],h[0].Body,i[0]);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,e,f,g,h,i,j));}b[0].mode=7;b[0].typ=j[0];$s=37;continue;case 36:$r=f[0].invalidAST(h[0],"invalid function literal %s",new NA([h[0]]));$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 37:$s=19;continue;case 6:p=k.$val;ag=$ifaceNil;ah=$ifaceNil;ai=ag;aj=ah;if(!($interfaceIsEqual(p.Type,$ifaceNil))){$s=40;continue;}if(!($interfaceIsEqual(d,$ifaceNil))){$s=41;continue;}$s=42;continue;case 40:ak=$assertType(p.Type,OP,true);al=ak[0];if(!(al===OP.nil)&&!($interfaceIsEqual(al.Len,$ifaceNil))){$s=44;continue;}$s=45;continue;case 44:am=$assertType(al.Len,OQ,true);an=am[0];if(!(an===OQ.nil)&&$interfaceIsEqual(an.Elt,$ifaceNil)){$s=46;continue;}$s=47;continue;case 46:ao=f[0].varType(al.Elt);$s=48;case 48:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ai=new LL.ptr(new $Int64(-1,4294967295),ao);aj=ai;$s=39;continue;case 47:case 45:ap=f[0].typ(p.Type);$s=49;case 49:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ai=ap;aj=ai;$s=43;continue;case 41:ai=d;ar=CG(ai);$s=50;case 50:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=HP(ar);$s=51;case 51:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}aq=as;aj=aq[0];if($interfaceIsEqual(aj,$ifaceNil)){$s=52;continue;}$s=53;continue;case 52:$r=f[0].errorf(p,71,"invalid composite literal element type %s: no core type",new NA([ai]));$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 53:$s=43;continue;case 42:$r=f[0].error(p,70,"missing type in composite literal");$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 43:case 39:au=CG(aj);$s=56;case 56:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}at=au;if($assertType(at,NF,true)[1]){$s=57;continue;}if($assertType(at,NE,true)[1]){$s=58;continue;}if($assertType(at,OA,true)[1]){$s=59;continue;}if($assertType(at,OD,true)[1]){$s=60;continue;}$s=61;continue;case 57:av=at.$val;if(av.fields===NO.nil){$s=63;continue;}$s=64;continue;case 63:$r=f[0].error(p,11,"illegal cycle in type declaration");$s=65;case 65:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 64:if(p.Elts.$length===0){$s=62;continue;}ba=av.fields;bb=$assertType((bc=p.Elts,(0>=bc.$length?($throwRuntimeError("index out of range"),undefined):bc.$array[bc.$offset+0])),RN,true);bd=bb[1];if(bd){$s=66;continue;}$s=67;continue;case 66:be=$makeSlice(PH,ba.$length);bf=p.Elts;bg=0;case 69:if(!(bg=bf.$length)?($throwRuntimeError("index out of range"),undefined):bf.$array[bf.$offset+bg]);bi=$assertType(bh,RN,true);bj=bi[0];if(bj===RN.nil){$s=71;continue;}$s=72;continue;case 71:$r=f[0].error(bh,64,"mixture of field:value and value elements in struct literal");$s=73;case 73:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bg++;$s=69;continue;case 72:bk=$assertType(bj.Key,OF,true);bl=bk[0];$r=f[0].expr(b[0],bj.Value);$s=74;case 74:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(bl===OF.nil){$s=75;continue;}$s=76;continue;case 75:$r=f[0].errorf(bj,69,"invalid field name %s in struct literal",new NA([bj.Key]));$s=77;case 77:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bg++;$s=69;continue;case 76:bm=HS(av.fields,f[0].pkg,bl.Name);if(bm<0){$s=78;continue;}$s=79;continue;case 78:$r=f[0].errorf(bj,66,"unknown field %s in struct literal",new NA([new $String(bl.Name)]));$s=80;case 80:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bg++;$s=69;continue;case 79:bn=((bm<0||bm>=ba.$length)?($throwRuntimeError("index out of range"),undefined):ba.$array[ba.$offset+bm]);f[0].recordUse(bl,bn);bo=bn.object.typ;$r=f[0].assignment(b[0],bo,"struct literal");$s=81;case 81:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(((bm<0||bm>=be.$length)?($throwRuntimeError("index out of range"),undefined):be.$array[be.$offset+bm])){$s=82;continue;}$s=83;continue;case 82:$r=f[0].errorf(bj,67,"duplicate field name %s in struct literal",new NA([new $String(bl.Name)]));$s=84;case 84:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bg++;$s=69;continue;case 83:((bm<0||bm>=be.$length)?($throwRuntimeError("index out of range"),undefined):be.$array[be.$offset+bm]=true);bg++;$s=69;continue;case 70:$s=68;continue;case 67:bp=p.Elts;bq=0;case 85:if(!(bq=bp.$length)?($throwRuntimeError("index out of range"),undefined):bp.$array[bp.$offset+bq]);bt=$assertType(bs,RN,true);bu=bt[0];if(!(bu===RN.nil)){$s=87;continue;}$s=88;continue;case 87:$r=f[0].error(bu,64,"mixture of field:value and value elements in struct literal");$s=89;case 89:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bq++;$s=85;continue;case 88:$r=f[0].expr(b[0],bs);$s=90;case 90:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(br>=ba.$length){$s=91;continue;}$s=92;continue;case 91:$r=f[0].error(b[0],65,"too many values in struct literal");$s=93;case 93:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=86;continue;case 92:bv=((br<0||br>=ba.$length)?($throwRuntimeError("index out of range"),undefined):ba.$array[ba.$offset+br]);if(!bv.object.Exported()&&!(bv.object.pkg===f[0].pkg)){$s=94;continue;}$s=95;continue;case 94:$r=f[0].errorf(b[0],68,"implicit assignment to unexported field %s in %s literal",new NA([new $String(bv.object.name),ai]));$s=96;case 96:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bq++;$s=85;continue;case 95:bw=bv.object.typ;$r=f[0].assignment(b[0],bw,"struct literal");$s=97;case 97:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bq++;$s=85;continue;case 86:if(p.Elts.$length2147483647)?$throwRuntimeError("makemap: size out of range"):new $global.Map()));cf=p.Elts;cg=0;case 118:if(!(cg=cf.$length)?($throwRuntimeError("index out of range"),undefined):cf.$array[cf.$offset+cg]);ci=$assertType(ch,RN,true);cj=ci[0];if(cj===RN.nil){$s=120;continue;}$s=121;continue;case 120:$r=f[0].error(ch,61,"missing key in map literal");$s=122;case 122:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cg++;$s=118;continue;case 121:$r=f[0].exprWithHint(b[0],cj.Key,ay.key);$s=123;case 123:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f[0].assignment(b[0],ay.key,"map literal");$s=124;case 124:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){cg++;$s=118;continue;}if(b[0].mode===4){$s=125;continue;}$s=126;continue;case 125:ck=false;cl=JJ(b[0].val);$s=127;case 127:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}cm=cl;cn=EX(ay.key);$s=131;case 131:if($c){$c=false;cn=cn.$blk();}if(cn&&cn.$blk!==undefined){break s;}if(cn){$s=128;continue;}$s=129;continue;case 128:co=(cp=$mapIndex(ce,$emptyInterface.keyFor(cm)),cp!==undefined?cp.v:MS.nil);cq=0;case 132:if(!(cq=co.$length)?($throwRuntimeError("index out of range"),undefined):co.$array[co.$offset+cq]);cs=MC(cr,b[0].typ);$s=136;case 136:if($c){$c=false;cs=cs.$blk();}if(cs&&cs.$blk!==undefined){break s;}if(cs){$s=134;continue;}$s=135;continue;case 134:ck=true;$s=133;continue;case 135:cq++;$s=132;continue;case 133:ct=cm;(ce||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(ct),{k:ct,v:$append((cu=$mapIndex(ce,$emptyInterface.keyFor(cm)),cu!==undefined?cu.v:MS.nil),b[0].typ)});$s=130;continue;case 129:cv=(cw=$mapIndex(ce,$emptyInterface.keyFor(cm)),cw!==undefined?[cw.v,true]:[MS.nil,false]);ck=cv[1];cx=cm;(ce||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(cx),{k:cx,v:MS.nil});case 130:if(ck){$s=137;continue;}$s=138;continue;case 137:$r=f[0].errorf(b[0],60,"duplicate key %s in map literal",new NA([b[0].val]));$s=139;case 139:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cg++;$s=118;continue;case 138:case 126:$r=f[0].exprWithHint(b[0],cj.Value,ay.elem);$s=140;case 140:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f[0].assignment(b[0],ay.elem,"map literal");$s=141;case 141:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cg++;$s=118;continue;case 119:$s=62;continue;case 61:az=at;cy=p.Elts;cz=0;case 142:if(!(cz=cy.$length)?($throwRuntimeError("index out of range"),undefined):cy.$array[cy.$offset+cz]);db=$assertType(da,RN,true);dc=db[0];if(!(dc===RN.nil)){da=dc.Value;}$r=f[0].use(new NQ([da]));$s=144;case 144:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cz++;$s=142;continue;case 143:if(!($interfaceIsEqual(az,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0])))){$s=145;continue;}$s=146;continue;case 145:$r=f[0].errorf(p,71,"invalid composite literal type %s",new NA([ai]));$s=147;case 147:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 146:case 62:b[0].mode=7;b[0].typ=ai;$s=19;continue;case 7:q=k.$val;dd=f[0].rawExpr(b[0],q.X,$ifaceNil,false);$s=148;case 148:if($c){$c=false;dd=dd.$blk();}if(dd&&dd.$blk!==undefined){break s;}de=dd;b[0].expr=q;$s=-1;return de;case 8:r=k.$val;$r=f[0].selector(b[0],r,NI.nil);$s=149;case 149:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=19;continue;case 9:s=k;df=I.UnpackIndexExpr(s);dg=f[0].indexExpr(b[0],df);$s=152;case 152:if($c){$c=false;dg=dg.$blk();}if(dg&&dg.$blk!==undefined){break s;}if(dg){$s=150;continue;}$s=151;continue;case 150:$r=f[0].funcInst(b[0],df);$s=153;case 153:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 151:if(b[0].mode===0){$s=154;continue;}$s=155;continue;case 154:$s=20;continue;case 155:$s=19;continue;case 10:t=k.$val;$r=f[0].sliceExpr(b[0],t);$s=156;case 156:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=157;continue;}$s=158;continue;case 157:$s=20;continue;case 158:$s=19;continue;case 11:u=k.$val;$r=f[0].expr(b[0],u.X);$s=159;case 159:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=160;continue;}$s=161;continue;case 160:$s=20;continue;case 161:if(EY(b[0].typ)){$s=162;continue;}$s=163;continue;case 162:$r=f[0].invalidOp(b[0],94,"cannot use type assertion on type parameter value %s",new NA([b[0]]));$s=164;case 164:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 163:di=CF(b[0].typ);$s=165;case 165:if($c){$c=false;di=di.$blk();}if(di&&di.$blk!==undefined){break s;}dh=$assertType(di,NH,true);dj=dh[1];if(!dj){$s=166;continue;}$s=167;continue;case 166:$r=f[0].invalidOp(b[0],94,"%s is not an interface",new NA([b[0]]));$s=168;case 168:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 167:if($interfaceIsEqual(u.Type,$ifaceNil)){$s=169;continue;}$s=170;continue;case 169:$r=f[0].error(u,115,"use of .(type) outside type switch");$s=171;case 171:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 170:dk=f[0].varType(u.Type);$s=172;case 172:if($c){$c=false;dk=dk.$blk();}if(dk&&dk.$blk!==undefined){break s;}dl=dk;if($interfaceIsEqual(dl,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=173;continue;}$s=174;continue;case 173:$s=20;continue;case 174:$r=f[0].typeAssertion(u,b[0],dl,false);$s=175;case 175:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b[0].mode=8;b[0].typ=dl;$s=19;continue;case 12:v=k.$val;dm=f[0].callExpr(b[0],v);$s=176;case 176:if($c){$c=false;dm=dm.$blk();}if(dm&&dm.$blk!==undefined){break s;}dn=dm;$s=177;case 177:return dn;case 13:w=k.$val;$r=f[0].exprOrType(b[0],w.X,false);$s=178;case 178:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}dp=b[0].mode;if(dp===(0)){$s=180;continue;}if(dp===(3)){$s=181;continue;}$s=182;continue;case 180:$s=20;continue;$s=183;continue;case 181:f[0].validVarType(w.X,b[0].typ);b[0].typ=new FH.ptr(b[0].typ);$s=183;continue;case 182:e[0]=$ifaceNil;dq=IY(b[0].typ,(function(b,e,f,g,h,i,j){return function $b(dq){var{dq,dr,ds,dt,du,$s,$r,$c}=$restore(this,{dq});$s=$s||0;s:while(true){switch($s){case 0:dr=$assertType(dq,OB,true);ds=dr[0];if(ds===OB.nil){$s=1;continue;}$s=2;continue;case 1:$r=f[0].invalidOp(b[0],50,"cannot indirect %s",new NA([b[0]]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 2:if(!(!($interfaceIsEqual(e[0],$ifaceNil)))){dt=false;$s=6;continue s;}du=MC(ds.base,e[0]);$s=7;case 7:if($c){$c=false;du=du.$blk();}if(du&&du.$blk!==undefined){break s;}dt=!du;case 6:if(dt){$s=4;continue;}$s=5;continue;case 4:$r=f[0].invalidOp(b[0],50,"pointers of %s must have identical base types",new NA([b[0]]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 5:e[0]=ds.base;$s=-1;return true;}return;}var $f={$blk:$b,$c:true,$r,dq,dr,ds,dt,du,$s};return $f;};})(b,e,f,g,h,i,j));$s=186;case 186:if($c){$c=false;dq=dq.$blk();}if(dq&&dq.$blk!==undefined){break s;}if(!dq){$s=184;continue;}$s=185;continue;case 184:$s=20;continue;case 185:b[0].mode=5;b[0].typ=e[0];case 183:case 179:$s=19;continue;case 14:x=k.$val;$r=f[0].unary(b[0],x);$s=187;case 187:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=188;continue;}$s=189;continue;case 188:$s=20;continue;case 189:if(x.Op===36){b[0].expr=x;$s=-1;return 2;}$s=19;continue;case 15:y=k.$val;$r=f[0].binary(b[0],y,y.X,y.Y,y.Op,y.OpPos);$s=190;case 190:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=191;continue;}$s=192;continue;case 191:$s=20;continue;case 192:$s=19;continue;case 16:z=k.$val;$r=f[0].invalidAST(z,"no key:value expected",new NA([]));$s=193;case 193:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;$s=19;continue;case 17:aa=k;b[0].mode=3;dr=f[0].typ(aa);$s=194;case 194:if($c){$c=false;dr=dr.$blk();}if(dr&&dr.$blk!==undefined){break s;}b[0].typ=dr;$s=19;continue;case 18:ab=k;dt=ab.Pos();$s=195;case 195:if($c){$c=false;dt=dt.$blk();}if(dt&&dt.$blk!==undefined){break s;}du=f[0].fset.Position(dt);$s=196;case 196:if($c){$c=false;du=du.$blk();}if(du&&du.$blk!==undefined){break s;}dv=(ds=du,new ds.constructor.elem(ds));dw=ab;dx=A.Sprintf("%s: unknown expression type %T",new NA([dv,dw]));$s=197;case 197:if($c){$c=false;dx=dx.$blk();}if(dx&&dx.$blk!==undefined){break s;}$panic(new $String(dx));case 19:b[0].expr=c;$s=-1;return 1;case 20:b[0].mode=0;b[0].expr=c;$s=-1;return 2;}return;}var $f={$blk:KR.ptr.prototype.exprInternal,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.exprInternal=function(b,c,d){return this.$val.exprInternal(b,c,d);};JJ=function(b){var{aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=b.Kind();$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(d===(1)){$s=3;continue;}if(d===(2)){$s=4;continue;}if(d===(3)){$s=5;continue;}if(d===(4)){$s=6;continue;}if(d===(5)){$s=7;continue;}$s=8;continue;case 3:e=G.BoolVal(b);$s=9;case 9:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=new $Bool(e);$s=10;case 10:return f;case 4:g=G.StringVal(b);$s=11;case 11:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=new $String(g);$s=12;case 12:return h;case 5:j=G.Int64Val(b);$s=13;case 13:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];l=i[1];if(l){$s=-1;return k;}n=G.Uint64Val(b);$s=14;case 14:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=m[0];p=m[1];if(p){$s=-1;return o;}$s=8;continue;case 6:r=G.Float64Val(b);$s=15;case 15:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;s=q[0];$s=-1;return new $Float64(s);case 7:u=G.Real(b);$s=16;case 16:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=G.Float64Val(u);$s=17;case 17:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}t=v;w=t[0];y=G.Imag(b);$s=18;case 18:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=G.Float64Val(y);$s=19;case 19:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}x=z;aa=x[0];$s=-1;return new $Complex128(w,aa);case 8:case 1:$s=-1;return b;}return;}var $f={$blk:JJ,$c:true,$r,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.ptr.prototype.typeAssertion=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;h=CF(c.typ);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=f.assertableTo($assertType(h,NH),d);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}g=i;j=g[0];k=g[1];if(j===MI.nil){$s=-1;return;}l=f.missingMethodReason(d,c.typ,j,k);$s=3;case 3:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;if(e){$s=4;continue;}$s=5;continue;case 4:$r=f.errorf(b,95,"impossible type switch case: %s\n\t%s cannot have dynamic type %s %s",new NA([b,c,d,new $String(m)]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 5:$r=f.errorf(b,95,"impossible type assertion: %s\n\t%s does not implement %s %s",new NA([b,d,c.typ,new $String(m)]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.typeAssertion,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};KR.prototype.typeAssertion=function(b,c,d,e){return this.$val.typeAssertion(b,c,d,e);};KR.ptr.prototype.expr=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.rawExpr(b,c,$ifaceNil,false);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;$r=d.exclude(b,14);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.singleValue(b);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.expr,$c:true,$r,b,c,d,e,$s};return $f;};KR.prototype.expr=function(b,c){return this.$val.expr(b,c);};KR.ptr.prototype.multiExpr=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.rawExpr(b,c,$ifaceNil,false);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;$r=d.exclude(b,14);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.multiExpr,$c:true,$r,b,c,d,e,$s};return $f;};KR.prototype.multiExpr=function(b,c){return this.$val.multiExpr(b,c);};KR.ptr.prototype.exprWithHint=function(b,c,d){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;JM(!($interfaceIsEqual(d,$ifaceNil)));f=e.rawExpr(b,c,d,false);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;$r=e.exclude(b,14);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.singleValue(b);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.exprWithHint,$c:true,$r,b,c,d,e,f,$s};return $f;};KR.prototype.exprWithHint=function(b,c,d){return this.$val.exprWithHint(b,c,d);};KR.ptr.prototype.exprOrType=function(b,c,d){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=e.rawExpr(b,c,$ifaceNil,d);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;$r=e.exclude(b,2);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.singleValue(b);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.exprOrType,$c:true,$r,b,c,d,e,f,$s};return $f;};KR.prototype.exprOrType=function(b,c,d){return this.$val.exprOrType(b,c,d);};KR.ptr.prototype.exclude=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(!((((c&(((e=b.mode,e<32?(1<>>0)))>>>0)===0))){$s=1;continue;}$s=2;continue;case 1:f="";g=0;h=b.mode;if(h===(1)){if(!((((c&8)>>>0)===0))){f="%s used as value";}else{f="%s used as value or type";}g=41;}else if(h===(2)){f="%s must be called";g=82;}else if(h===(3)){f="%s is not an expression";g=42;}else{JN();}$r=d.errorf(b,g,f,new NA([b]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;case 2:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.exclude,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};KR.prototype.exclude=function(b,c){return this.$val.exclude(b,c);};KR.ptr.prototype.singleValue=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b.mode===7){$s=1;continue;}$s=2;continue;case 1:d=$assertType(b.typ,NM,true);e=d[0];f=d[1];if(f){$s=3;continue;}$s=4;continue;case 3:JM(!((e.Len()===1)));if(false){$s=5;continue;}$s=6;continue;case 5:$r=c.errorf(b,41,"multiple-value %s in single-value context",new NA([b]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 6:$r=c.errorf(b,41,"%d-valued %s where single value is expected",new NA([new $Int(e.Len()),b]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:b.mode=0;case 4:case 2:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.singleValue,$c:true,$r,b,c,d,e,f,$s};return $f;};KR.prototype.singleValue=function(b){return this.$val.singleValue(b);};JM=function(b){var b;if(!b){$panic(new $String("assertion failed"));}};JN=function(){$panic(new $String("unreachable"));};KR.ptr.prototype.qualifier=function(b){var b,c,d,e;c=this;if(!(b===c.pkg)){if(c.pkgPathMap===false){c.pkgPathMap=new $global.Map();c.seenPkgMap=new $global.Map();c.markImports(c.pkg);}if(((d=$mapIndex(c.pkgPathMap,$String.keyFor(b.name)),d!==undefined?d.v:false)?(e=$mapIndex(c.pkgPathMap,$String.keyFor(b.name)),e!==undefined?e.v:false).size:0)>1){return E.Quote(b.path);}return b.name;}return"";};KR.prototype.qualifier=function(b){return this.$val.qualifier(b);};KR.ptr.prototype.markImports=function(b){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=this;if((d=$mapIndex(c.seenPkgMap,MF.keyFor(b)),d!==undefined?d.v:false)){return;}e=b;(c.seenPkgMap||$throwRuntimeError("assignment to entry in nil map")).set(MF.keyFor(e),{k:e,v:true});f=(g=$mapIndex(c.pkgPathMap,$String.keyFor(b.name)),g!==undefined?[g.v,true]:[false,false]);h=f[0];i=f[1];if(!i){h=new $global.Map();j=b.name;(c.pkgPathMap||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(j),{k:j,v:h});}k=b.path;(h||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(k),{k:k,v:true});l=b.imports;m=0;while(true){if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);c.markImports(n);m++;}};KR.prototype.markImports=function(b){return this.$val.markImports(b);};KR.ptr.prototype.sprintf=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=NY.nil;f=$throwNilPointerError;if(!(d===MQ.nil)){e=d.fset;f=$methodVal(d,"qualifier");}g=JO(e,f,false,b,c);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=2;case 2:return h;}return;}var $f={$blk:KR.ptr.prototype.sprintf,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};KR.prototype.sprintf=function(b,c){return this.$val.sprintf(b,c);};JO=function(b,c,d,e,f){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=f;h=0;case 1:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);l=k;if(l===$ifaceNil){$s=3;continue;}if($assertType(l,FN,true)[1]){$s=4;continue;}if($assertType(l,PB,true)[1]){$s=5;continue;}if($assertType(l,C.Pos,true)[1]){$s=6;continue;}if($assertType(l,B.Expr,true)[1]){$s=7;continue;}if($assertType(l,NQ,true)[1]){$s=8;continue;}if($assertType(l,FQ,true)[1]){$s=9;continue;}if($assertType(l,CE,true)[1]){$s=10;continue;}if($assertType(l,MS,true)[1]){$s=11;continue;}if($assertType(l,NL,true)[1]){$s=12;continue;}$s=13;continue;case 3:m=l;k=new $String("");$s=13;continue;case 4:n=$clone(l.$val,FN);$panic(new $String("got operand instead of *operand"));$s=13;continue;case 5:o=l.$val;w=FO(o,c);$s=14;case 14:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}k=new $String(w);$s=13;continue;case 6:p=l.$val;if(!(b===NY.nil)){$s=15;continue;}$s=16;continue;case 15:x=b.Position(p);$s=17;case 17:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=$clone(x,C.Position).String();$s=18;case 18:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}k=new $String(y);case 16:$s=13;continue;case 7:q=l;z=IM(q);$s=19;case 19:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}k=new $String(z);$s=13;continue;case 8:r=l.$val;i[0]=new H.Buffer.ptr(NZ.nil,0,0);aa=i[0].WriteByte(91);$s=20;case 20:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}aa;$r=IR(i[0],r);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ab=i[0].WriteByte(93);$s=22;case 22:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ab;k=new $String(i[0].String());$s=13;continue;case 9:s=l;ac=GP(s,c);$s=23;case 23:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}k=new $String(ac);$s=13;continue;case 10:t=l;ad=BG(t,c,d);$s=24;case 24:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}k=new $String(ad);$s=13;continue;case 11:u=l.$val;ae=new H.Buffer.ptr(NZ.nil,0,0);af=ae.WriteByte(91);$s=25;case 25:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}af;ag=u;ah=0;case 26:if(!(ah=ag.$length)?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+ah]);if(ai>0){$s=28;continue;}$s=29;continue;case 28:ak=ae.WriteString(", ");$s=30;case 30:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}ak;case 29:al=BG(aj,c,d);$s=31;case 31:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=ae.WriteString(al);$s=32;case 32:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}am;ah++;$s=26;continue;case 27:an=ae.WriteByte(93);$s=33;case 33:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}an;k=new $String(ae.String());$s=13;continue;case 12:v=l.$val;ao=new H.Buffer.ptr(NZ.nil,0,0);ap=ao.WriteByte(91);$s=34;case 34:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ap;aq=v;ar=0;case 35:if(!(ar=aq.$length)?($throwRuntimeError("index out of range"),undefined):aq.$array[aq.$offset+ar]);if(as>0){$s=37;continue;}$s=38;continue;case 37:au=ao.WriteString(", ");$s=39;case 39:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}au;case 38:av=BG(at,c,d);$s=40;case 40:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=ao.WriteString(av);$s=41;case 41:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}aw;ar++;$s=35;continue;case 36:ax=ao.WriteByte(93);$s=42;case 42:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ax;k=new $String(ao.String());case 13:((j<0||j>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+j]=k);h++;$s=1;continue;case 2:ay=A.Sprintf(e,f);$s=43;case 43:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;$s=44;case 44:return az;}return;}var $f={$blk:JO,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.ptr.prototype.trace=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;g=e.fset.Position(b);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=(f=g,new f.constructor.elem(f));i=new $String(F.Repeat(". ",e.indent));j=JO(e.fset,$methodVal(e,"qualifier"),true,c,d);$s=2;case 2:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=new $String(j);l=A.Printf("%s:\t%s%s\n",new NA([h,i,k]));$s=3;case 3:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.trace,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};KR.prototype.trace=function(b,c,d){return this.$val.trace(b,c,d);};KR.ptr.prototype.dump=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=JO(d.fset,$methodVal(d,"qualifier"),true,b,c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=A.Println(new NA([new $String(e)]));$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.dump,$c:true,$r,b,c,d,e,f,$s};return $f;};KR.prototype.dump=function(b,c){return this.$val.dump(b,c);};KR.ptr.prototype.err=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;if($interfaceIsEqual(b,$ifaceNil)){$s=-1;return;}c[0]=new LN.ptr(NY.nil,0,"",false,0,0,0);e=P.As(b,c[0]);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=f&&(F.Index(c[0].Msg,"invalid operand")>0||F.Index(c[0].Msg,"invalid type")>0);if(!($interfaceIsEqual(d.firstErr,$ifaceNil))&&g){$s=-1;return;}if(f){$s=2;continue;}$s=3;continue;case 2:c[0].Msg=JU(c[0].Msg);if(!($interfaceIsEqual(d.environment.errpos,$ifaceNil))){$s=4;continue;}$s=5;continue;case 4:h=JT(d.environment.errpos);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=$clone(h,JQ);c[0].Pos=i.pos;c[0].go116start=i.start;c[0].go116end=i.end;case 5:b=new c[0].constructor.elem(c[0]);case 3:if($interfaceIsEqual(d.firstErr,$ifaceNil)){d.firstErr=b;}if(false){$s=7;continue;}$s=8;continue;case 7:j=c[0].Pos;k=c[0].Msg;if(!f){$s=9;continue;}$s=10;continue;case 9:l=b.Error();$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;j=0;case 10:$r=d.trace(j,"ERROR: %s",new NA([new $String(k)]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:m=d.conf.Error;if(m===$throwNilPointerError){$panic((n=new KU.ptr(),new n.constructor.elem(n)));}$r=m(b);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.err,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};KR.prototype.err=function(b){return this.$val.err(b);};KR.ptr.prototype.newError=function(b,c,d,e){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;g=JT(b);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=$clone(g,JQ);$s=-1;return(i=new LN.ptr(f.fset,h.pos,e,d,c,h.start,h.end),new i.constructor.elem(i));}return;}var $f={$blk:KR.ptr.prototype.newError,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};KR.prototype.newError=function(b,c,d,e){return this.$val.newError(b,c,d,e);};KR.ptr.prototype.newErrorf=function(b,c,d,e,f){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=this;h=g.sprintf(e,f);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=g.newError(b,c,d,i);$s=2;case 2:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=3;case 3:return k;}return;}var $f={$blk:KR.ptr.prototype.newErrorf,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};KR.prototype.newErrorf=function(b,c,d,e,f){return this.$val.newErrorf(b,c,d,e,f);};KR.ptr.prototype.error=function(b,c,d){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=e.newError(b,c,false,d);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$r=e.err(f);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.error,$c:true,$r,b,c,d,e,f,$s};return $f;};KR.prototype.error=function(b,c,d){return this.$val.error(b,c,d);};KR.ptr.prototype.errorf=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;g=b;h=c;i=f.sprintf(d,e);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$r=f.error(g,h,j);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.errorf,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};KR.prototype.errorf=function(b,c,d,e){return this.$val.errorf(b,c,d,e);};KR.ptr.prototype.softErrorf=function(b,c,d,e){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;g=f.newErrorf(b,c,true,d,e);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$r=f.err(g);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.softErrorf,$c:true,$r,b,c,d,e,f,g,$s};return $f;};KR.prototype.softErrorf=function(b,c,d,e){return this.$val.softErrorf(b,c,d,e);};KR.ptr.prototype.invalidAST=function(b,c,d){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;$r=e.errorf(b,0,"invalid AST: "+c,d);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.invalidAST,$c:true,$r,b,c,d,e,$s};return $f;};KR.prototype.invalidAST=function(b,c,d){return this.$val.invalidAST(b,c,d);};KR.ptr.prototype.invalidArg=function(b,c,d,e){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;$r=f.errorf(b,c,"invalid argument: "+d,e);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.invalidArg,$c:true,$r,b,c,d,e,f,$s};return $f;};KR.prototype.invalidArg=function(b,c,d,e){return this.$val.invalidArg(b,c,d,e);};KR.ptr.prototype.invalidOp=function(b,c,d,e){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;$r=f.errorf(b,c,"invalid operation: "+d,e);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.invalidOp,$c:true,$r,b,c,d,e,f,$s};return $f;};KR.prototype.invalidOp=function(b,c,d,e){return this.$val.invalidOp(b,c,d,e);};JQ.ptr.prototype.Pos=function(){var b;b=this;return b.pos;};JQ.prototype.Pos=function(){return this.$val.Pos();};JR=function(b,c){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:e=b.Pos();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;g=b.End();$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=d;i=f;if(false){JM(h<=c&&c>0));};$ptrType(JS).prototype.Pos=function(){return new JS(this.$get()).Pos();};JT=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=b;if(c===$ifaceNil){$s=1;continue;}if($assertType(c,JQ,true)[1]){$s=2;continue;}if($assertType(c,B.Node,true)[1]){$s=3;continue;}if($assertType(c,PB,true)[1]){$s=4;continue;}$s=5;continue;case 1:d=c;$panic(new $String("nil positioner"));$s=6;continue;case 2:e=$clone(c.$val,JQ);$s=-1;return e;case 3:f=c;i=f.Pos();$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=f.End();$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=new JQ.ptr(j,j,k);$s=9;case 9:return l;case 4:g=c.$val;if(!($interfaceIsEqual(g.expr,$ifaceNil))){$s=10;continue;}$s=11;continue;case 10:m=g.Pos();$s=12;case 12:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=g.expr.End();$s=13;case 13:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=new JQ.ptr(n,n,o);$s=14;case 14:return p;case 11:$s=-1;return new JQ.ptr(0,0,0);case 5:h=c;q=b.Pos();$s=15;case 15:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;$s=-1;return new JQ.ptr(r,r,r);case 6:$s=-1;return new JQ.ptr(0,0,0);}return;}var $f={$blk:JT,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};JU=function(b){var b,c,d,e,f,g;c=new F.Builder.ptr(RA.nil,NZ.nil);d=b;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(f>0){c=c+("->");}h=g.Name();$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}c=c+(h);e++;$s=1;continue;case 2:$s=-1;return c;}return;}var $f={$blk:JW,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};KR.ptr.prototype.objDecl=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b,c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];d=[d];d[0]=this;if(!(false)){e=false;$s=3;continue s;}f=b[0].Type();$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=$interfaceIsEqual(f,$ifaceNil);case 3:if(e){$s=1;continue;}$s=2;continue;case 1:if(d[0].indent===0){$s=5;continue;}$s=6;continue;case 5:g=A.Println(NA.nil);$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;case 6:h=b[0].Pos();$s=8;case 8:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=b[0];k=b[0].color();$s=9;case 9:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=new FT(k);m=JW(d[0].objPath);$s=10;case 10:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=new $String(m);$r=d[0].trace(i,"-- checking %s (%s, objPath = %s)",new NA([j,l,n]));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d[0].indent=d[0].indent+(1)>>0;$deferred.push([(function(b,d){return function $b(){var{o,p,q,r,s,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d[0].indent=d[0].indent-(1)>>0;o=b[0].Pos();$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=b[0];r=b[0].color();$s=2;case 2:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=new FT(r);$r=d[0].trace(p,"=> %s (%s)",new NA([q,s]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,o,p,q,r,s,$s};return $f;};})(b,d),[]]);case 2:p=b[0].color();$s=15;case 15:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}if(!(p===0)){o=false;$s=14;continue s;}q=b[0].Type();$s=16;case 16:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}o=!($interfaceIsEqual(q,$ifaceNil));case 14:if(o){$s=12;continue;}$s=13;continue;case 12:$r=b[0].setColor(1);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;case 18:return;case 13:r=b[0].color();$s=20;case 20:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;if(s===(0)){$s=21;continue;}if(s===(1)){$s=22;continue;}if(s===(2)){$s=23;continue;}$s=24;continue;case 21:t=b[0].Type();$s=26;case 26:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}$r=JM($interfaceIsEqual(t,$ifaceNil));$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b[0].setColor(2+((d[0].push(b[0])>>>0))>>>0);$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([(function(b,d){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=d[0].pop().setColor(1);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,d),[]]);$s=25;continue;case 22:u=b[0].Type();$s=29;case 29:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}$r=JM(!($interfaceIsEqual(u,$ifaceNil)));$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=31;case 31:return;case 23:v=b[0];if($assertType(v,OH,true)[1]){$s=32;continue;}if($assertType(v,NN,true)[1]){$s=33;continue;}if($assertType(v,MR,true)[1]){$s=34;continue;}if($assertType(v,MI,true)[1]){$s=35;continue;}$s=36;continue;case 32:w=v.$val;ab=d[0].validCycle(w);$s=40;case 40:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}if(!ab||$interfaceIsEqual(w.object.typ,$ifaceNil)){$s=38;continue;}$s=39;continue;case 38:w.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 39:$s=37;continue;case 33:x=v.$val;ac=d[0].validCycle(x);$s=43;case 43:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}if(!ac||$interfaceIsEqual(x.object.typ,$ifaceNil)){$s=41;continue;}$s=42;continue;case 41:x.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 42:$s=37;continue;case 34:y=v.$val;ad=d[0].validCycle(y);$s=46;case 46:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}if(!ad){$s=44;continue;}$s=45;continue;case 44:y.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 45:$s=37;continue;case 35:z=v.$val;ae=d[0].validCycle(z);$s=49;case 49:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}if(!ae){$s=47;continue;}$s=48;continue;case 47:case 48:$s=37;continue;case 36:aa=v;JN();case 37:af=b[0].Type();$s=50;case 50:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}$r=JM(!($interfaceIsEqual(af,$ifaceNil)));$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=52;case 52:return;case 24:ag=b[0];if($assertType(ag,OH,true)[1]){$s=53;continue;}if($assertType(ag,NN,true)[1]){$s=54;continue;}if($assertType(ag,MR,true)[1]){$s=55;continue;}if($assertType(ag,MI,true)[1]){$s=56;continue;}$s=57;continue;case 53:w=ag.$val;ah=d[0].validCycle(w);$s=61;case 61:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}if(!ah||$interfaceIsEqual(w.object.typ,$ifaceNil)){$s=59;continue;}$s=60;continue;case 59:w.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 60:$s=58;continue;case 54:x=ag.$val;ai=d[0].validCycle(x);$s=64;case 64:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}if(!ai||$interfaceIsEqual(x.object.typ,$ifaceNil)){$s=62;continue;}$s=63;continue;case 62:x.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 63:$s=58;continue;case 55:y=ag.$val;aj=d[0].validCycle(y);$s=67;case 67:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}if(!aj){$s=65;continue;}$s=66;continue;case 65:y.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 66:$s=58;continue;case 56:z=ag.$val;ak=d[0].validCycle(z);$s=70;case 70:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}if(!ak){$s=68;continue;}$s=69;continue;case 68:case 69:$s=58;continue;case 57:aa=ag;JN();case 58:al=b[0].Type();$s=71;case 71:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}$r=JM(!($interfaceIsEqual(al,$ifaceNil)));$s=72;case 72:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=73;case 73:return;case 25:case 19:an=(am=$mapIndex(d[0].objMap,FQ.keyFor(b[0])),am!==undefined?am.v:PK.nil);if(an===PK.nil){$s=74;continue;}$s=75;continue;case 74:ao=b[0].Pos();$s=76;case 76:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=new C.Pos(ao);aq=b[0];$r=d[0].dump("%v: %s should have been declared",new NA([ap,aq]));$s=77;case 77:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}JN();case 75:$deferred.push([(function(b,d){return function(ar){var ar;KM.copy(d[0].environment,ar);};})(b,d),[$clone(d[0].environment,KM)]]);KM.copy(d[0].environment,new KM.ptr(PK.nil,an.file,0,$ifaceNil,$ifaceNil,false,OC.nil,false,false,false));ar=b[0];if($assertType(ar,OH,true)[1]){$s=78;continue;}if($assertType(ar,NN,true)[1]){$s=79;continue;}if($assertType(ar,MR,true)[1]){$s=80;continue;}if($assertType(ar,MI,true)[1]){$s=81;continue;}$s=82;continue;case 78:as=ar.$val;d[0].environment.decl=an;$r=d[0].constDecl(as,an.vtyp,an.init,an.inherited);$s=84;case 84:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=83;continue;case 79:at=ar.$val;d[0].environment.decl=an;$r=d[0].varDecl(at,an.lhs,an.vtyp,an.init);$s=85;case 85:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=83;continue;case 80:au=ar.$val;$r=d[0].typeDecl(au,an.tdecl,c);$s=86;case 86:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d[0].collectMethods(au);$s=87;case 87:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=83;continue;case 81:av=ar.$val;$r=d[0].funcDecl(av,an);$s=88;case 88:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=83;continue;case 82:aw=ar;JN();case 83:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.objDecl,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};KR.prototype.objDecl=function(b,c){return this.$val.objDecl(b,c);};KR.ptr.prototype.validCycle=function(b){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];d=[d];d[0]=false;c[0]=this;if(false){$s=1;continue;}$s=2;continue;case 1:f=(e=$mapIndex(c[0].objMap,FQ.keyFor(b[0])),e!==undefined?e.v:PK.nil);g=!(f===PK.nil)&&(f.fdecl===QQ.nil||f.fdecl.Recv===OY.nil);h=b[0].Parent();$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h===c[0].pkg.scope;if(!(i===g)){$s=4;continue;}$s=5;continue;case 4:j=b[0].Pos();$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=new C.Pos(j);l=b[0];m=new $Bool(i);n=new $Bool(g);$r=c[0].dump("%v: inconsistent object map for %s (isPkgObj = %v, inObjMap = %v)",new NA([k,l,m,n]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}JN();case 5:case 2:o=b[0].color();$s=8;case 8:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}$r=JM(o>=2);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=b[0].color();$s=10;case 10:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p-2>>>0;r=$subslice(c[0].objPath,q);s=false;t=0;u=0;v=r;w=0;case 11:if(!(w=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w]);y=x;if($assertType(y,OH,true)[1]||$assertType(y,NN,true)[1]){$s=13;continue;}if($assertType(y,MR,true)[1]){$s=14;continue;}if($assertType(y,MI,true)[1]){$s=15;continue;}$s=16;continue;case 13:z=y;t=t+(1)>>0;$s=17;continue;case 14:aa=y.$val;if(!(c[0].environment.inTParamList)){ad=false;$s=20;continue s;}ae=EZ(aa.object.typ);$s=21;case 21:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ad=ae;case 20:if(ad){$s=18;continue;}$s=19;continue;case 18:s=true;$s=12;continue s;case 19:af=false;ah=(ag=$mapIndex(c[0].objMap,FQ.keyFor(aa)),ag!==undefined?ag.v:PK.nil);if(!(ah===PK.nil)){af=new C.Pos(ah.tdecl.Assign).IsValid();}else{af=aa.IsAlias();}if(!af){u=u+(1)>>0;}$s=17;continue;case 15:ab=y.$val;$s=17;continue;case 16:ac=y;JN();case 17:w++;$s=11;continue;case 12:if(false){$s=22;continue;}$s=23;continue;case 22:ai=b[0].Pos();$s=24;case 24:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai;ak=JW(r);$s=25;case 25:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=new $String(ak);am=b[0].Name();$s=26;case 26:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=new $String(am);ao=new $Int(r.$length);$r=c[0].trace(aj,"## cycle detected: objPath = %s->%s (len = %d)",new NA([al,an,ao]));$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(s){$s=28;continue;}$s=29;continue;case 28:ap=b[0].Pos();$s=31;case 31:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}$r=c[0].trace(ap,"## cycle contains: generic type in a type parameter list",new NA([]));$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=30;continue;case 29:aq=b[0].Pos();$s=33;case 33:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}$r=c[0].trace(aq,"## cycle contains: %d values, %d type definitions",new NA([new $Int(t),new $Int(u)]));$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 30:$deferred.push([(function(b,c,d){return function $b(){var{ar,as,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:if(d[0]){$s=1;continue;}$s=2;continue;case 1:ar=b[0].Pos();$s=4;case 4:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}$r=c[0].trace(ar,"=> cycle is valid",new NA([]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=3;continue;case 2:as=b[0].Pos();$s=6;case 6:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}$r=c[0].trace(as,"=> error: cycle is invalid",new NA([]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ar,as,$s};return $f;};})(b,c,d),[]]);case 23:if(!s){$s=35;continue;}$s=36;continue;case 35:if(t===r.$length){$s=37;continue;}$s=38;continue;case 37:d[0]=true;ar=d[0];$s=39;case 39:return ar;case 38:if((t===0)&&u>0){$s=40;continue;}$s=41;continue;case 40:d[0]=true;as=d[0];$s=42;case 42:return as;case 41:case 36:$r=c[0].cycleError(r);$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d[0]=false;at=d[0];$s=44;case 44:return at;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return d[0];}if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.validCycle,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};KR.prototype.validCycle=function(b){return this.$val.validCycle(b);};KR.ptr.prototype.cycleError=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=JX(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=((e<0||e>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]);g=$assertType(f,MR,true);h=g[0];if(!(h===MR.nil)&&h.IsAlias()){c.validAlias(h,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]));}if(!(h===MR.nil)&&false){$s=2;continue;}$s=3;continue;case 2:i=f;j=f.Name();$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=new $String(j);$r=c.errorf(i,11,"invalid recursive type %s",new NA([k]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=4;continue;case 3:l=f;m=f.Name();$s=7;case 7:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=new $String(m);$r=c.errorf(l,11,"illegal cycle in declaration of %s",new NA([n]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:o=b;p=0;case 9:if(!(p>0;if(e>=b.$length){e=0;}f=((e<0||e>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]);p++;$s=9;continue;case 10:t=f;u=f.Name();$s=13;case 13:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=new $String(u);$r=c.errorf(t,11,"\t%s",new NA([v]));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.cycleError,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};KR.prototype.cycleError=function(b){return this.$val.cycleError(b);};JX=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=0;e=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]).Pos();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=c;g=d;h=$subslice(b,1);i=0;case 2:if(!(i=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]);l=k.Pos();$s=6;case 6:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}if(l>0;o=k.Pos();$s=7;case 7:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;f=m;g=n;case 5:i++;$s=2;continue;case 3:$s=-1;return f;}return;}var $f={$blk:JX,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};JZ.ptr.prototype.node=function(){var b;b=this;return b.spec;};JZ.prototype.node=function(){return this.$val.node();};KA.ptr.prototype.node=function(){var b;b=this;return b.spec;};KA.prototype.node=function(){return this.$val.node();};KB.ptr.prototype.node=function(){var b;b=this;return b.spec;};KB.prototype.node=function(){return this.$val.node();};KC.ptr.prototype.node=function(){var b;b=this;return b.spec;};KC.prototype.node=function(){return this.$val.node();};KD.ptr.prototype.node=function(){var b;b=this;return b.decl;};KD.prototype.node=function(){return this.$val.node();};KR.ptr.prototype.walkDecls=function(b,c){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=b;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);$r=d.walkDecl(g,c);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.walkDecls,$c:true,$r,b,c,d,e,f,g,$s};return $f;};KR.prototype.walkDecls=function(b,c){return this.$val.walkDecls(b,c);};KR.ptr.prototype.walkDecl=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=b;if($assertType(e,RV,true)[1]){$s=1;continue;}if($assertType(e,RH,true)[1]){$s=2;continue;}if($assertType(e,QQ,true)[1]){$s=3;continue;}$s=4;continue;case 1:f=e.$val;$s=5;continue;case 2:g=e.$val;j=QR.nil;k=g.Specs;l=0;case 6:if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);o=n;if($assertType(o,RW,true)[1]){$s=8;continue;}if($assertType(o,QR,true)[1]){$s=9;continue;}if($assertType(o,QV,true)[1]){$s=10;continue;}$s=11;continue;case 8:p=o.$val;$r=c((t=new JZ.ptr(p),new t.constructor.elem(t)));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=12;continue;case 9:q=o.$val;u=g.Tok;if(u===(64)){$s=15;continue;}if(u===(85)){$s=16;continue;}$s=17;continue;case 15:v=true;if(!($interfaceIsEqual(q.Type,$ifaceNil))||q.Values.$length>0){j=q;v=false;}else if(j===QR.nil){j=new B.ValueSpec.ptr(RX.nil,QW.nil,$ifaceNil,NQ.nil,RX.nil);v=false;}$r=d.arityMatch(q,j);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c((w=new KA.ptr(q,m,j.Type,j.Values,v),new w.constructor.elem(w)));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 16:$r=d.arityMatch(q,QR.nil);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c((x=new KB.ptr(q),new x.constructor.elem(x)));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 17:$r=d.invalidAST(q,"invalid token %s",new NA([new C.Token(g.Tok)]));$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 18:case 14:$s=12;continue;case 10:r=o.$val;$r=c((y=new KC.ptr(r),new y.constructor.elem(y)));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=12;continue;case 11:s=o;$r=d.invalidAST(s,"unknown ast.Spec node %T",new NA([s]));$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:l++;$s=6;continue;case 7:$s=5;continue;case 3:h=e.$val;$r=c((z=new KD.ptr(h),new z.constructor.elem(z)));$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 4:i=e;$r=d.invalidAST(i,"unknown ast.Decl node %T",new NA([i]));$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.walkDecl,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.walkDecl=function(b,c){return this.$val.walkDecl(b,c);};KR.ptr.prototype.constDecl=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,$s,$deferred,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);f=[f];g=[g];f[0]=this;JM($interfaceIsEqual(b.object.typ,$ifaceNil));$deferred.push([(function(f,g){return function(h,i){var h,i;f[0].environment.iota=h;f[0].environment.errpos=i;};})(f,g),[f[0].environment.iota,f[0].environment.errpos]]);f[0].environment.iota=b.val;f[0].environment.errpos=$ifaceNil;b.val=G.MakeUnknown();if(!($interfaceIsEqual(c,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:h=f[0].typ(c);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=EK(i);$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(!j){$s=4;continue;}$s=5;continue;case 4:k=CF(i);$s=9;case 9:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(!($interfaceIsEqual(k,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0])))){$s=7;continue;}$s=8;continue;case 7:$r=f[0].errorf(c,15,"invalid constant type %s",new NA([i]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:b.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);$s=11;case 11:return;case 5:b.object.typ=i;case 2:g[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);if(!($interfaceIsEqual(d,$ifaceNil))){$s=12;continue;}$s=13;continue;case 12:if(e){f[0].environment.errpos=new JS(((b.object.pos>>0)));}$r=f[0].expr(g[0],d);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:$r=f[0].initConst(b,g[0]);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.constDecl,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s,$deferred};return $f;}}};KR.prototype.constDecl=function(b,c,d,e){return this.$val.constDecl(b,c,d,e);};KR.ptr.prototype.varDecl=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=[f];g=this;JM($interfaceIsEqual(b.object.typ,$ifaceNil));if(!($interfaceIsEqual(d,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:h=g.varType(d);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}b.object.typ=h;case 2:if($interfaceIsEqual(e,$ifaceNil)){if($interfaceIsEqual(d,$ifaceNil)){b.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);}$s=-1;return;}if(c===NO.nil||(c.$length===1)){$s=4;continue;}$s=5;continue;case 4:JM(c===NO.nil||(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0])===b);f[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=g.expr(f[0],e);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=g.initVar(b,f[0],"variable declaration");$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$s=-1;return;case 5:if(false){j=false;k=c;l=0;while(true){if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);if(b===m){j=true;break;}l++;}if(!j){$panic(new $String("inconsistent lhs"));}}if(!($interfaceIsEqual(d,$ifaceNil))){n=c;o=0;while(true){if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]);p.object.typ=b.object.typ;o++;}}$r=g.initVars(c,new NQ([e]),$ifaceNil);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.varDecl,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};KR.prototype.varDecl=function(b,c,d,e){return this.$val.varDecl(b,c,d,e);};KR.ptr.prototype.isImportedConstraint=function(b){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=$assertType(b,NI,true);e=d[0];if(e===NI.nil||e.obj.object.pkg===c.pkg||e.obj.object.pkg===MF.nil){$s=-1;return false;}g=e.under();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=$assertType(g,NH,true);h=f[0];if(!(!(h===NH.nil))){i=false;$s=2;continue s;}j=h.IsMethodSet();$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=!j;case 2:k=i;$s=4;case 4:return k;}return;}var $f={$blk:KR.ptr.prototype.isImportedConstraint,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};KR.prototype.isImportedConstraint=function(b){return this.$val.isImportedConstraint(b);};KR.ptr.prototype.typeDecl=function(b,c,d){var{b,c,d,e,f,g,h,i,j,$s,$deferred,$r,$c}=$restore(this,{b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];e=[e];f=[f];e[0]=this;JM($interfaceIsEqual(b[0].object.typ,$ifaceNil));f[0]=$ifaceNil;e[0].later((function(b,c,e,f){return function $b(){var{g,h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:g=$assertType(b[0].object.typ,NI,true);h=g[0];if(!(h===NI.nil)){$s=1;continue;}$s=2;continue;case 1:$r=e[0].validType(h);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:i=e[0].isImportedConstraint(f[0]);$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(i&&!e[0].allowVersion(e[0].pkg,1,18)){$s=4;continue;}$s=5;continue;case 4:$r=e[0].errorf(c[0].Type,135,"using type constraint %s requires go1.18 or later",new NA([f[0]]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,g,h,i,$s};return $f;};})(b,c,e,f)).describef(b[0],"validType(%s)",new NA([new $String(b[0].object.Name())]));g=new C.Pos(c[0].Assign).IsValid();if(g&&!((c[0].TypeParams.NumFields()===0))){$s=1;continue;}$s=2;continue;case 1:$r=e[0].error(new JS(((c[0].Assign>>0))),131,"generic type cannot be alias");$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=false;case 2:if(g){$s=4;continue;}$s=5;continue;case 4:if(!e[0].allowVersion(e[0].pkg,1,9)){$s=6;continue;}$s=7;continue;case 6:$r=e[0].errorf(new JS(((c[0].Assign>>0))),131,"type aliases requires go1.9 or later",new NA([]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:e[0].brokenAlias(b[0]);h=e[0].varType(c[0].Type);$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}f[0]=h;e[0].validAlias(b[0],f[0]);$s=10;case 10:return;case 5:i=e[0].newNamed(b[0],NI.nil,$ifaceNil,OX.nil,PA.nil);d.setUnderlying(i);if(!(c[0].TypeParams===OY.nil)){$s=11;continue;}$s=12;continue;case 11:$r=e[0].openScope(c[0],"type parameters");$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(e[0],"closeScope"),[]]);$r=e[0].collectTypeParams((i.$ptr_tparams||(i.$ptr_tparams=new QM(function(){return this.$target.tparams;},function($v){this.$target.tparams=$v;},i))),c[0].TypeParams);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:j=e[0].definedType(c[0].Type,i);$s=15;case 15:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}f[0]=j;JM(!($interfaceIsEqual(f[0],$ifaceNil)));i.fromRHS=f[0];if($interfaceIsEqual(i.underlying,$ifaceNil)){i.underlying=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);}if(EY(f[0])){$s=16;continue;}$s=17;continue;case 16:$r=e[0].error(c[0].Type,144,"cannot use a type parameter as RHS in type declaration");$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i.underlying=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 17:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.typeDecl,$c:true,$r,b,c,d,e,f,g,h,i,j,$s,$deferred};return $f;}}};KR.prototype.typeDecl=function(b,c,d){return this.$val.typeDecl(b,c,d);};KR.ptr.prototype.collectTypeParams=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$deferred,$r,$c}=$restore(this,{b,c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=[d];d[0]=this;e=NL.nil;f=c.List;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);i=d[0].declareTypeParams(e,h.Names);$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}e=i;g++;$s=1;continue;case 2:b.$set(CD(e));JM(!d[0].environment.inTParamList);d[0].environment.inTParamList=true;$deferred.push([(function(d){return function(){d[0].environment.inTParamList=false;};})(d),[]]);j=0;k=c.List;l=0;case 4:if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);n=$ifaceNil;if(!($interfaceIsEqual(m.Type,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:o=d[0].bound(m.Type);$s=9;case 9:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;if(EY(n)){$s=10;continue;}$s=11;continue;case 10:$r=d[0].error(m.Type,144,"cannot use a type parameter as constraint");$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 11:$s=8;continue;case 7:n=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);case 8:p=m.Names;q=0;while(true){if(!(q>0,((s<0||s>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+s])).bound=n;q++;}j=j+(m.Names.$length)>>0;l++;$s=4;continue;case 5:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.collectTypeParams,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$deferred};return $f;}}};KR.prototype.collectTypeParams=function(b,c){return this.$val.collectTypeParams(b,c);};KR.ptr.prototype.bound=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=false;e=b;if($assertType(e,NT,true)[1]){f=e.$val;d=f.Op===88;}else if($assertType(e,NU,true)[1]){g=e.$val;d=g.Op===18;}if(d){$s=1;continue;}$s=2;continue;case 1:b=new B.InterfaceType.ptr(0,new B.FieldList.ptr(0,new RZ([new B.Field.ptr(RX.nil,QW.nil,b,PJ.nil,RX.nil)]),0),false);h=c.typ(b);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=$assertType(i,NH,true);k=j[0];if(!(k===NH.nil)){k.implicit=true;}$s=-1;return i;case 2:l=c.typ(b);$s=4;case 4:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=5;case 5:return m;}return;}var $f={$blk:KR.ptr.prototype.bound,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};KR.prototype.bound=function(b){return this.$val.bound(b);};KR.ptr.prototype.declareTypeParams=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=c;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);h=GA(g.Pos(),d.pkg,g.Name,$ifaceNil);i=d.newTypeParam(h,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]));$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$r=d.declare(d.environment.scope,g,h,d.environment.scope.pos);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=$append(b,j);f++;$s=1;continue;case 2:if(false&&c.$length>0){$s=5;continue;}$s=6;continue;case 5:$r=d.trace((0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]).Pos(),"type params = %v",new NA([$subslice(b,(b.$length-c.$length>>0))]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:$s=-1;return b;}return;}var $f={$blk:KR.ptr.prototype.declareTypeParams,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};KR.prototype.declareTypeParams=function(b,c){return this.$val.declareTypeParams(b,c);};KR.ptr.prototype.collectMethods=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=[d];d[0]=this;f=(e=$mapIndex(d[0].methods,MR.keyFor(b)),e!==undefined?e.v:MJ.nil);if(f===MJ.nil){$s=-1;return;}$mapDelete(d[0].methods,MR.keyFor(b));JM(!new C.Pos((g=$mapIndex(d[0].objMap,FQ.keyFor(b)),g!==undefined?g.v:PK.nil).tdecl.Assign).IsValid());h=false;i=$assertType(b.object.typ,NI,true);c[0]=i[0];if(!(c[0]===NI.nil)){$s=1;continue;}$s=2;continue;case 1:JM(c[0].targs.Len()===0);d[0].later((function(c,d){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=d[0].checkFieldUniqueness(c[0]);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(c,d)).describef(b,"verifying field uniqueness for %v",new NA([c[0]]));j=0;case 3:if(!(j>0;$s=3;continue;case 4:case 2:o=f;p=0;case 8:if(!(p=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]);JM(!(q.object.name==="_"));r=(m||(m=new PF(function(){return h;},function($v){h=$v;}))).insert(q);$s=10;case 10:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;if(!($interfaceIsEqual(s,$ifaceNil))){$s=11;continue;}$s=12;continue;case 11:$r=d[0].errorf(q,34,"method %s already declared for %s",new NA([new $String(q.object.name),b]));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d[0].reportAltDecl(s);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p++;$s=8;continue;case 12:if(!(c[0]===NI.nil)){$s=15;continue;}$s=16;continue;case 15:t=c[0].resolve(OZ.nil);$s=17;case 17:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t;$r=c[0].AddMethod(q);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 16:p++;$s=8;continue;case 9:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.collectMethods,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};KR.prototype.collectMethods=function(b){return this.$val.collectMethods(b);};KR.ptr.prototype.checkFieldUniqueness=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=b.under();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=$assertType(e,NF,true);f=d[0];if(!(f===NF.nil)){$s=2;continue;}$s=3;continue;case 2:g=false;h=0;case 4:if(!(h>0;$s=4;continue;case 5:m=f.fields;n=0;case 9:if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);if(!(o.object.name==="_")){$s=11;continue;}$s=12;continue;case 11:p=(k||(k=new PF(function(){return g;},function($v){g=$v;}))).insert(o);$s=13;case 13:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;if(!($interfaceIsEqual(q,$ifaceNil))){$s=14;continue;}$s=15;continue;case 14:$unused($assertType(q,MI));$r=c.errorf(q,33,"field and method with the same name %s",new NA([new $String(o.object.name)]));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.reportAltDecl(o);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 15:case 12:n++;$s=9;continue;case 10:case 3:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.checkFieldUniqueness,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};KR.prototype.checkFieldUniqueness=function(b){return this.$val.checkFieldUniqueness(b);};KR.ptr.prototype.funcDecl=function(b,c){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];e=[e];f=[f];d[0]=this;JM($interfaceIsEqual(b[0].object.typ,$ifaceNil));JM($interfaceIsEqual(d[0].environment.iota,$ifaceNil));f[0]=new DM.ptr(OX.nil,OX.nil,ME.nil,NN.nil,NM.nil,NM.nil,false);b[0].object.typ=f[0];g=b[0].object.color_;b[0].object.color_=1;e[0]=c[0].fdecl;$r=d[0].funcType(f[0],e[0].Recv,e[0].Type);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b[0].object.color_=g;if(e[0].Type.TypeParams.NumFields()>0&&e[0].Body===QB.nil){$s=2;continue;}$s=3;continue;case 2:$r=d[0].softErrorf(e[0].Name,131,"parameterized function is missing function body",new NA([]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:if(!d[0].conf.IgnoreFuncBodies&&!(e[0].Body===QB.nil)){d[0].later((function(b,c,d,e,f){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=d[0].funcBody(c[0],b[0].object.name,f[0],e[0].Body,$ifaceNil);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,d,e,f));}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.funcDecl,$c:true,$r,b,c,d,e,f,g,$s};return $f;};KR.prototype.funcDecl=function(b,c){return this.$val.funcDecl(b,c);};KR.ptr.prototype.declStmt=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=[d];c[0]=this;d[0]=c[0].pkg;$r=c[0].walkDecl(b,(function(c,d){return function $b(e){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{e});$s=$s||0;s:while(true){switch($s){case 0:f=e;if($assertType(f,KA,true)[1]){$s=1;continue;}if($assertType(f,KB,true)[1]){$s=2;continue;}if($assertType(f,KC,true)[1]){$s=3;continue;}$s=4;continue;case 1:g=$clone(f.$val,KA);k=c[0].delayed.$length;l=$makeSlice(SA,g.spec.Names.$length);m=g.spec.Names;n=0;case 6:if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);q=FY(p.Pos(),d[0],p.Name,$ifaceNil,G.MakeInt64((new $Int64(0,g.iota))));((o<0||o>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+o]=q);r=$ifaceNil;if(o=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+o]));}$r=c[0].constDecl(q,g.typ,r,g.inherited);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n++;$s=6;continue;case 7:$r=c[0].processDelayed(k);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}t=g.spec.End();$s=10;case 10:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;v=g.spec.Names;w=0;case 11:if(!(w=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w]);$r=c[0].declare(c[0].environment.scope,y,((x<0||x>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+x]),u);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}w++;$s=11;continue;case 12:$s=5;continue;case 2:h=$clone(f.$val,KB);z=c[0].delayed.$length;aa=$makeSlice(NO,h.spec.Names.$length);ab=h.spec.Names;ac=0;while(true){if(!(ac=ab.$length)?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+ac]);((ad<0||ad>=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+ad]=GD(ae.Pos(),d[0],ae.Name,$ifaceNil));ac++;}af=aa;ag=0;case 14:if(!(ag=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ag]);aj=NO.nil;ak=$ifaceNil;al=h.spec.Values.$length;if(al===(h.spec.Names.$length)){ak=(am=h.spec.Values,((ah<0||ah>=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+ah]));}else if(al===(1)){aj=aa;ak=(an=h.spec.Values,(0>=an.$length?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+0]));}else if(ah=ao.$length)?($throwRuntimeError("index out of range"),undefined):ao.$array[ao.$offset+ah]));}$r=c[0].varDecl(ai,aj,h.spec.Type,ak);$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(h.spec.Values.$length===1){if(false){ap=aa;aq=0;while(true){if(!(aq=ap.$length)?($throwRuntimeError("index out of range"),undefined):ap.$array[ap.$offset+aq]);JM(!($interfaceIsEqual(ar.object.typ,$ifaceNil)));aq++;}}$s=15;continue;}ag++;$s=14;continue;case 15:$r=c[0].processDelayed(z);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}as=h.spec.End();$s=18;case 18:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=as;au=h.spec.Names;av=0;case 19:if(!(av=au.$length)?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+av]);$r=c[0].declare(c[0].environment.scope,ax,((aw<0||aw>=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+aw]),at);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}av++;$s=19;continue;case 20:$s=5;continue;case 3:i=$clone(f.$val,KC);ay=GA(i.spec.Name.Pos(),d[0],i.spec.Name.Name,$ifaceNil);az=i.spec.Name.Pos();$r=c[0].declare(c[0].environment.scope,i.spec.Name,ay,az);$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ay.object.setColor(2+((c[0].push(ay)>>>0))>>>0);$r=c[0].typeDecl(ay,i.spec,NI.nil);$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].pop().setColor(1);$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 4:j=f;ba=j.node();$s=25;case 25:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba;bc=j.node();$s=26;case 26:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;$r=c[0].invalidAST(bb,"unknown ast.Decl node %T",new NA([bd]));$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};})(c,d));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.declStmt,$c:true,$r,b,c,d,$s};return $f;};KR.prototype.declStmt=function(b){return this.$val.declStmt(b);};KR.ptr.prototype.conversion=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];e=[e];f=[f];e[0]=this;g=b[0].mode===4;f[0]=(function(b,c,d,e,f){return function $b(h,i){var{h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{h,i});$s=$s||0;s:while(true){switch($s){case 0:k=CF(h);$s=2;case 2:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=$assertType(k,MY,true);l=j[0];if(l===MY.nil){$s=3;continue;}m=JF(b[0].val,e[0],l,i);$s=7;case 7:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if(m){$s=4;continue;}o=ED(b[0].typ);$s=9;case 9:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(!(o)){n=false;$s=8;continue s;}p=EI(l);$s=10;case 10:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}n=p;case 8:if(n){$s=5;continue;}$s=6;continue;case 3:$s=6;continue;case 4:$s=-1;return true;case 5:q=65533;s=G.Uint64Val(b[0].val);$s=11;case 11:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;t=r[0];u=r[1];if(u&&(t.$high<0||(t.$high===0&&t.$low<=1114111))){q=((t.$low>>0));}if(!(i===PD.nil)){i.$set(G.MakeString(($encodeRune(q))));}$s=-1;return true;case 6:case 1:$s=-1;return false;}return;}var $f={$blk:$b,$c:true,$r,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};})(b,c,d,e,f);h=false;d[0]="";if(!(g)){i=false;$s=6;continue s;}j=EK(c[0]);$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;case 6:if(i){$s=2;continue;}if(g&&EY(c[0])){$s=3;continue;}k=b[0].convertibleTo(e[0],c[0],(d.$ptr||(d.$ptr=new OJ(function(){return this.$target[0];},function($v){this.$target[0]=$v;},d))));$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(k){$s=4;continue;}$s=5;continue;case 2:l=f[0](c[0],(b[0].$ptr_val||(b[0].$ptr_val=new PD(function(){return this.$target.val;},function($v){this.$target.val=$v;},b[0]))));$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}h=l;$s=5;continue;case 3:m=$assertType(c[0],NJ).underIs((function(b,c,d,e,f){return function $b(m){var{m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:if($interfaceIsEqual(m,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:n=e[0].sprintf("%s does not contain specific types",new NA([c[0]]));$s=3;case 3:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}d[0]=n;$s=-1;return false;case 2:p=EI(b[0].typ);$s=7;case 7:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}if(!(p)){o=false;$s=6;continue s;}q=KH(m);$s=8;case 8:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}o=q;case 6:if(o){$s=4;continue;}$s=5;continue;case 4:$s=-1;return true;case 5:r=f[0](m,PD.nil);$s=11;case 11:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}if(!r){$s=9;continue;}$s=10;continue;case 9:s=e[0].sprintf("cannot convert %s to %s (in %s)",new NA([b[0],m,c[0]]));$s=12;case 12:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}d[0]=s;$s=-1;return false;case 10:$s=-1;return true;}return;}var $f={$blk:$b,$c:true,$r,m,n,o,p,q,r,s,$s};return $f;};})(b,c,d,e,f));$s=10;case 10:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}h=m;b[0].mode=7;$s=5;continue;case 4:h=true;b[0].mode=7;case 5:case 1:if(!h){$s=11;continue;}$s=12;continue;case 11:if(false){$s=13;continue;}$s=14;continue;case 13:if(!(d[0]==="")){$s=16;continue;}$s=17;continue;case 16:$r=e[0].errorf(b[0],96,"cannot convert %s to type %s:\n\t%s",new NA([b[0],c[0],new $String(d[0])]));$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 17:$r=e[0].errorf(b[0],96,"cannot convert %s to type %s",new NA([b[0],c[0]]));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 18:$s=15;continue;case 14:if(!(d[0]==="")){$s=21;continue;}$s=22;continue;case 21:$r=e[0].errorf(b[0],96,"cannot convert %s to %s (%s)",new NA([b[0],c[0],new $String(d[0])]));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 22:$r=e[0].errorf(b[0],96,"cannot convert %s to %s",new NA([b[0],c[0]]));$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 23:case 15:b[0].mode=0;$s=-1;return;case 12:if(EW(b[0].typ)){$s=26;continue;}$s=27;continue;case 26:n=c[0];p=EX(c[0]);$s=32;case 32:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}if(p&&!EY(c[0])){o=true;$s=31;continue s;}if(!(g)){q=false;$s=33;continue s;}r=EK(c[0]);$s=34;case 34:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=!r;case 33:o=q;case 31:if(o||b[0].isNil()){$s=28;continue;}if(!(b[0].mode===4)){t=false;$s=36;continue s;}u=ED(b[0].typ);$s=37;case 37:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;case 36:if(!(t)){s=false;$s=35;continue s;}v=EQ(c[0]);$s=38;case 38:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}s=v;case 35:if(s){$s=29;continue;}$s=30;continue;case 28:n=FG(b[0].typ);$s=30;continue;case 29:n=b[0].typ;case 30:$r=e[0].updateExprType(b[0].expr,n,true);$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 27:b[0].typ=c[0];$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.conversion,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};KR.prototype.conversion=function(b,c){return this.$val.conversion(b,c);};FN.ptr.prototype.convertibleTo=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];e=[e];f=[f];g=[g];h=[h];i=[i];j=[j];h[0]=this;l=h[0].assignableTo(b[0],c[0],d[0]);$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];if(m){$s=-1;return true;}n=h[0].typ;o=CF(n);$s=2;case 2:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=CF(c[0]);$s=3;case 3:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;s=$assertType(n,NJ,true);f[0]=s[0];t=$assertType(c[0],NJ,true);e[0]=t[0];u=MD(p,r);$s=6;case 6:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}if(u&&f[0]===NJ.nil&&e[0]===NJ.nil){$s=4;continue;}$s=5;continue;case 4:$s=-1;return true;case 5:v=$assertType(n,OB,true);w=v[0];x=v[1];if(x){$s=7;continue;}$s=8;continue;case 7:y=$assertType(c[0],OB,true);z=y[0];aa=y[1];if(aa){$s=9;continue;}$s=10;continue;case 9:ab=CF(w.base);$s=13;case 13:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;ad=CF(z.base);$s=14;case 14:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;af=MD(ac,ae);$s=15;case 15:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}if(af&&!EY(w.base)&&!EY(z.base)){$s=11;continue;}$s=12;continue;case 11:$s=-1;return true;case 12:case 10:case 8:ah=EJ(p);$s=19;case 19:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}if(!(ah)){ag=false;$s=18;continue s;}ai=EJ(r);$s=20;case 20:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ag=ai;case 18:if(ag){$s=16;continue;}$s=17;continue;case 16:$s=-1;return true;case 17:ak=EG(p);$s=24;case 24:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}if(!(ak)){aj=false;$s=23;continue s;}al=EG(r);$s=25;case 25:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}aj=al;case 23:if(aj){$s=21;continue;}$s=22;continue;case 21:$s=-1;return true;case 22:ao=ED(p);$s=30;case 30:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}if(ao){an=true;$s=29;continue s;}ap=KH(p);$s=31;case 31:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}an=ap;case 29:if(!(an)){am=false;$s=28;continue s;}aq=EI(r);$s=32;case 32:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}am=aq;case 28:if(am){$s=26;continue;}$s=27;continue;case 26:$s=-1;return true;case 27:as=EI(p);$s=36;case 36:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}if(!(as)){ar=false;$s=35;continue s;}at=KH(r);$s=37;case 37:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}ar=at;case 35:if(ar){$s=33;continue;}$s=34;continue;case 33:$s=-1;return true;case 34:aw=KG(p);$s=42;case 42:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}if(aw){av=true;$s=41;continue s;}ax=KE(p);$s=43;case 43:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}av=ax;case 41:if(!(av)){au=false;$s=40;continue s;}ay=KF(r);$s=44;case 44:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}au=ay;case 40:if(au){$s=38;continue;}$s=39;continue;case 38:$s=-1;return true;case 39:ba=KF(p);$s=48;case 48:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}if(!(ba)){az=false;$s=47;continue s;}bc=KG(r);$s=50;case 50:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}if(bc){bb=true;$s=49;continue s;}bd=KE(r);$s=51;case 51:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}bb=bd;case 49:az=bb;case 47:if(az){$s=45;continue;}$s=46;continue;case 45:$s=-1;return true;case 46:be=$assertType(p,OA,true);bf=be[0];if(!(bf===OA.nil)){$s=52;continue;}$s=53;continue;case 52:bg=$assertType(r,OB,true);bh=bg[0];if(!(bh===OB.nil)){$s=54;continue;}$s=55;continue;case 54:bj=CF(bh.Elem());$s=56;case 56:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bi=$assertType(bj,NE,true);bk=bi[0];if(!(bk===NE.nil)){$s=57;continue;}$s=58;continue;case 57:bl=MC(bf.Elem(),bk.Elem());$s=61;case 61:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}if(bl){$s=59;continue;}$s=60;continue;case 59:if(b[0]===MQ.nil||b[0].allowVersion(b[0].pkg,1,17)){$s=-1;return true;}if(!(d[0]===OJ.nil)){d[0].$set("conversion of slices to array pointers requires go1.17 or later");}case 60:case 58:case 55:case 53:if(f[0]===NJ.nil&&e[0]===NJ.nil){$s=-1;return false;}g[0]=(function(b,c,d,e,f,g,h,i,j){return function $b(bm,bn){var{bm,bn,bo,bp,$s,$r,$c}=$restore(this,{bm,bn});$s=$s||0;s:while(true){switch($s){case 0:if(!(b[0]===MQ.nil)&&!(d[0]===OJ.nil)){$s=1;continue;}$s=2;continue;case 1:bo=b[0].sprintf(bm,bn);$s=3;case 3:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=bo;if(!(d[0].$get()==="")){bp=bp+("\n\t"+d[0].$get());}d[0].$set(bp);case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,bm,bn,bo,bp,$s};return $f;};})(b,c,d,e,f,g,h,i,j);if(!(f[0]===NJ.nil)&&!(e[0]===NJ.nil)){$s=63;continue;}if(!(f[0]===NJ.nil)){$s=64;continue;}if(!(e[0]===NJ.nil)){$s=65;continue;}$s=66;continue;case 63:i[0]=$clone(h[0],FN);bm=f[0].is((function(b,c,d,e,f,g,h,i,j){return function $b(bm){var{bm,bn,bo,$s,$r,$c}=$restore(this,{bm});$s=$s||0;s:while(true){switch($s){case 0:bm=[bm];if(bm[0]===MP.nil){$s=-1;return false;}i[0].typ=bm[0].typ;bn=e[0].is((function(b,bm,c,d,e,f,g,h,i,j){return function $b(bn){var{bn,bo,$s,$r,$c}=$restore(this,{bn});$s=$s||0;s:while(true){switch($s){case 0:if(bn===MP.nil){$s=-1;return false;}bo=i[0].convertibleTo(b[0],bn.typ,d[0]);$s=3;case 3:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}if(!bo){$s=1;continue;}$s=2;continue;case 1:$r=g[0]("cannot convert %s (in %s) to %s (in %s)",new NA([bm[0].typ,f[0],bn.typ,e[0]]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 2:$s=-1;return true;}return;}var $f={$blk:$b,$c:true,$r,bn,bo,$s};return $f;};})(b,bm,c,d,e,f,g,h,i,j));$s=1;case 1:if($c){$c=false;bn=bn.$blk();}if(bn&&bn.$blk!==undefined){break s;}bo=bn;$s=2;case 2:return bo;}return;}var $f={$blk:$b,$c:true,$r,bm,bn,bo,$s};return $f;};})(b,c,d,e,f,g,h,i,j));$s=67;case 67:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bn=bm;$s=68;case 68:return bn;case 64:j[0]=$clone(h[0],FN);bo=f[0].is((function(b,c,d,e,f,g,h,i,j){return function $b(bo){var{bo,bp,$s,$r,$c}=$restore(this,{bo});$s=$s||0;s:while(true){switch($s){case 0:if(bo===MP.nil){$s=-1;return false;}j[0].typ=bo.typ;bp=j[0].convertibleTo(b[0],c[0],d[0]);$s=3;case 3:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}if(!bp){$s=1;continue;}$s=2;continue;case 1:$r=g[0]("cannot convert %s (in %s) to %s",new NA([bo.typ,f[0],c[0]]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 2:$s=-1;return true;}return;}var $f={$blk:$b,$c:true,$r,bo,bp,$s};return $f;};})(b,c,d,e,f,g,h,i,j));$s=69;case 69:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=bo;$s=70;case 70:return bp;case 65:bq=e[0].is((function(b,c,d,e,f,g,h,i,j){return function $b(bq){var{bq,br,$s,$r,$c}=$restore(this,{bq});$s=$s||0;s:while(true){switch($s){case 0:if(bq===MP.nil){$s=-1;return false;}br=h[0].convertibleTo(b[0],bq.typ,d[0]);$s=3;case 3:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}if(!br){$s=1;continue;}$s=2;continue;case 1:$r=g[0]("cannot convert %s to %s (in %s)",new NA([h[0].typ,bq.typ,e[0]]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 2:$s=-1;return true;}return;}var $f={$blk:$b,$c:true,$r,bq,br,$s};return $f;};})(b,c,d,e,f,g,h,i,j));$s=71;case 71:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}br=bq;$s=72;case 72:return br;case 66:case 62:$s=-1;return false;}return;}var $f={$blk:FN.ptr.prototype.convertibleTo,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};FN.prototype.convertibleTo=function(b,c,d){return this.$val.convertibleTo(b,c,d);};KE=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=CF(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=$assertType(d,MY,true);e=c[0];$s=-1;return!(e===MY.nil)&&(e.kind===12);}return;}var $f={$blk:KE,$c:true,$r,b,c,d,e,$s};return $f;};KF=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=CF(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=$assertType(d,MY,true);e=c[0];$s=-1;return!(e===MY.nil)&&(e.kind===18);}return;}var $f={$blk:KF,$c:true,$r,b,c,d,e,$s};return $f;};KG=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=CF(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=$assertType(d,OB,true);e=c[1];$s=-1;return e;}return;}var $f={$blk:KG,$c:true,$r,b,c,d,e,$s};return $f;};KH=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=CF(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=$assertType(d,OA,true);e=c[0];if(!(e===OA.nil)){$s=2;continue;}$s=3;continue;case 2:g=CF(e.elem);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=$assertType(g,MY,true);h=f[0];$s=-1;return!(h===MY.nil)&&((h.kind===8)||(h.kind===5));case 3:$s=-1;return false;}return;}var $f={$blk:KH,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};KK=function(){return new KI.ptr(new N.Mutex.ptr(0,0),new $global.Map(),0,new $global.Map());};$pkg.NewContext=KK;KI.ptr.prototype.instanceHash=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=this;JM(!(e===OZ.nil));JM(!($interfaceIsEqual(b,$ifaceNil)));d[0]=new H.Buffer.ptr(NZ.nil,0,0);f=BL(d[0],e);g=e.getID(b);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=E.Itoa(g);$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=f.string(h);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f.typ(b);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c.$length>0){$s=5;continue;}$s=6;continue;case 5:$r=f.typeList(c);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:$s=-1;return F.Replace(d[0].String()," ","#",-1);}return;}var $f={$blk:KI.ptr.prototype.instanceHash,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};KI.prototype.instanceHash=function(b,c){return this.$val.instanceHash(b,c);};KI.ptr.prototype.lookup=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$deferred,$r,$c}=$restore(this,{b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=this;$r=e.mu.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(e.mu,"Unlock"),[]]);f=(g=$mapIndex(e.typeMap,$String.keyFor(b)),g!==undefined?g.v:SB.nil);h=0;case 2:if(!(h=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+h]),KJ);j=FF(c,d,i.orig,i.targs);$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=4;continue;}$s=5;continue;case 4:k=i.instance;$s=7;case 7:return k;case 5:if(false){$s=8;continue;}$s=9;continue;case 8:l=A.Sprintf("non-identical instances: (orig: %s, targs: %v) and %s",new NA([c,d,i.instance]));$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}$panic(new $String(l));case 9:h++;$s=2;continue;case 3:m=$ifaceNil;$s=11;case 11:return m;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:KI.ptr.prototype.lookup,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s,$deferred};return $f;}}};KI.prototype.lookup=function(b,c,d){return this.$val.lookup(b,c,d);};KI.ptr.prototype.update=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);f=this;JM(!($interfaceIsEqual(e,$ifaceNil)));$r=f.mu.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(f.mu,"Unlock"),[]]);g=(h=$mapIndex(f.typeMap,$String.keyFor(b)),h!==undefined?h.v:SB.nil);i=0;case 2:if(!(i=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+i]),KJ);if($interfaceIsEqual(e,$ifaceNil)){k=true;$s=6;continue s;}l=MC(e,j.instance);$s=7;case 7:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;case 6:if(k){$s=4;continue;}$s=5;continue;case 4:m=j.instance;$s=8;case 8:return m;case 5:if(false){$s=9;continue;}$s=10;continue;case 9:n=A.Sprintf("%s and %s are not identical",new NA([e,j.instance]));$s=11;case 11:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$panic(new $String(n));case 10:i++;$s=2;continue;case 3:o=b;(f.typeMap||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(o),{k:o,v:$append((p=$mapIndex(f.typeMap,$String.keyFor(b)),p!==undefined?p.v:SB.nil),new KJ.ptr(c,d,e))});q=e;$s=12;case 12:return q;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:KI.ptr.prototype.update,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred};return $f;}}};KI.prototype.update=function(b,c,d,e){return this.$val.update(b,c,d,e);};KI.ptr.prototype.getID=function(b){var{b,c,d,e,f,g,h,i,$s,$deferred,$r,$c}=$restore(this,{b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=this;$r=c.mu.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(c.mu,"Unlock"),[]]);d=(e=$mapIndex(c.originIDs,CE.keyFor(b)),e!==undefined?[e.v,true]:[0,false]);f=d[0];g=d[1];if(!g){f=c.nextID;h=b;(c.originIDs||$throwRuntimeError("assignment to entry in nil map")).set(CE.keyFor(h),{k:h,v:f});c.nextID=c.nextID+(1)>>0;}i=f;$s=2;case 2:return i;}return;}}catch(err){$err=err;$s=-1;return 0;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:KI.ptr.prototype.getID,$c:true,$r,b,c,d,e,f,g,h,i,$s,$deferred};return $f;}}};KI.prototype.getID=function(b){return this.$val.getID(b);};KM.ptr.prototype.lookup=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=c.scope.LookupParent(b,c.pos);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[1];$s=-1;return f;}return;}var $f={$blk:KM.ptr.prototype.lookup,$c:true,$r,b,c,d,e,f,$s};return $f;};KM.prototype.lookup=function(b){return this.$val.lookup(b);};KP.ptr.prototype.describef=function(b,c,d){var b,c,d,e;e=this;if(false){e.desc=new KQ.ptr(b,c,d);}};KP.prototype.describef=function(b,c,d){return this.$val.describef(b,c,d);};KR.ptr.prototype.addDeclDep=function(b){var b,c,d,e,f,g;c=this;d=c.environment.decl;if(d===PK.nil){return;}e=(f=$mapIndex(c.objMap,FQ.keyFor(b)),f!==undefined?[f.v,true]:[PK.nil,false]);g=e[1];if(!g){return;}d.addDep(b);};KR.prototype.addDeclDep=function(b){return this.$val.addDeclDep(b);};KR.ptr.prototype.brokenAlias=function(b){var b,c,d;c=this;if(c.brokenAliases===false){c.brokenAliases=new $global.Map();}d=b;(c.brokenAliases||$throwRuntimeError("assignment to entry in nil map")).set(MR.keyFor(d),{k:d,v:true});b.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);};KR.prototype.brokenAlias=function(b){return this.$val.brokenAlias(b);};KR.ptr.prototype.validAlias=function(b,c){var b,c,d;d=this;$mapDelete(d.brokenAliases,MR.keyFor(b));b.object.typ=c;};KR.prototype.validAlias=function(b,c){return this.$val.validAlias(b,c);};KR.ptr.prototype.isBrokenAlias=function(b){var b,c,d;c=this;return $interfaceIsEqual(b.object.typ,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))&&(d=$mapIndex(c.brokenAliases,MR.keyFor(b)),d!==undefined?d.v:false);};KR.prototype.isBrokenAlias=function(b){return this.$val.isBrokenAlias(b);};KR.ptr.prototype.rememberUntyped=function(b,c,d,e,f){var b,c,d,e,f,g,h,i;g=this;h=g.untyped;if(h===false){h=new $global.Map();g.untyped=h;}i=b;(h||$throwRuntimeError("assignment to entry in nil map")).set(B.Expr.keyFor(i),{k:i,v:new KL.ptr(c,d,e,f)});};KR.prototype.rememberUntyped=function(b,c,d,e,f){return this.$val.rememberUntyped(b,c,d,e,f);};KR.ptr.prototype.later=function(b){var b,c,d,e;c=this;d=c.delayed.$length;c.delayed=$append(c.delayed,new KP.ptr(b,SC.nil));return(e=c.delayed,((d<0||d>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+d]));};KR.prototype.later=function(b){return this.$val.later(b);};KR.ptr.prototype.push=function(b){var b,c;c=this;c.objPath=$append(c.objPath,b);return c.objPath.$length-1>>0;};KR.prototype.push=function(b){return this.$val.push(b);};KR.ptr.prototype.pop=function(){var b,c,d,e,f;b=this;c=b.objPath.$length-1>>0;e=(d=b.objPath,((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]));(f=b.objPath,((c<0||c>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+c]=$ifaceNil));b.objPath=$subslice(b.objPath,0,c);return e;};KR.prototype.pop=function(){return this.$val.pop();};KR.ptr.prototype.needsCleanup=function(b){var b,c;c=this;c.cleaners=$append(c.cleaners,b);};KR.prototype.needsCleanup=function(b){return this.$val.needsCleanup(b);};KT=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:if(b===RR.nil){b=new LS.ptr(OZ.nil,"",false,false,false,$throwNilPointerError,$ifaceNil,$ifaceNil,false);}if(e===SD.nil){e=new LU.ptr(false,false,false,false,false,false,false,RT.nil);}g=U(b.GoVersion);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=$clone(f[0],T);i=f[1];if(!($interfaceIsEqual(i,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:j=A.Sprintf("invalid Go version %q (%v)",new NA([new $String(b.GoVersion),i]));$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}$panic(new $String(j));case 3:$s=-1;return new KR.ptr(b,b.Context,c,d,e,$clone(h,T),new $Uint64(0,0),new $global.Map(),new $global.Map(),new $global.Map(),false,false,SF.nil,SG.nil,false,false,false,false,new GV.ptr(SH.nil,SI.nil,false,false),$ifaceNil,false,false,SJ.nil,ND.nil,SK.nil,new KM.ptr(PK.nil,ME.nil,0,$ifaceNil,$ifaceNil,false,OC.nil,false,false,false),0);}return;}var $f={$blk:KT,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};$pkg.NewChecker=KT;KR.ptr.prototype.initFiles=function(b){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;c.files=SF.nil;c.imports=SG.nil;c.dotImportMap=false;c.firstErr=$ifaceNil;c.methods=false;c.untyped=false;c.delayed=SJ.nil;c.objPath=ND.nil;c.cleaners=SK.nil;d=c.pkg;e=b;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);h=g.Name.Name;i=d.name;if(i===("")){$s=4;continue;}if(i===(h)){$s=5;continue;}$s=6;continue;case 4:if(!(h==="_")){$s=8;continue;}$s=9;continue;case 8:d.name=h;$s=10;continue;case 9:$r=c.errorf(g.Name,2,"invalid package name _",new NA([]));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:c.files=$append(c.files,g);$s=7;continue;case 5:c.files=$append(c.files,g);$s=7;continue;case 6:$r=c.errorf(new JS(((g.Package>>0))),3,"package %s; expected %s",new NA([new $String(h),new $String(d.name)]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:case 3:f++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.initFiles,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};KR.prototype.initFiles=function(b){return this.$val.initFiles(b);};KR.ptr.prototype.handleBailout=function(b){var b,c,d,e,f;c=this;d=$recover();if(d===$ifaceNil||$assertType(d,KU,true)[1]){e=d;b.$set(c.firstErr);}else{f=d;$panic(f);}};KR.prototype.handleBailout=function(b){return this.$val.handleBailout(b);};KR.ptr.prototype.Files=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.checkFiles(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:KR.ptr.prototype.Files,$c:true,$r,b,c,d,e,$s};return $f;};KR.prototype.Files=function(b){return this.$val.Files(b);};KR.ptr.prototype.checkFiles=function(b){var{b,c,d,e,f,g,$s,$deferred,$r,$c}=$restore(this,{b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];c[0]=$ifaceNil;d=this;if(d.conf.FakeImportC&&d.conf.go115UsesCgo){$s=1;continue;}$s=2;continue;case 1:c[0]=KV;e=c[0];$s=3;case 3:return e;case 2:$deferred.push([$methodVal(d,"handleBailout"),[(c.$ptr||(c.$ptr=new RU(function(){return this.$target[0];},function($v){this.$target[0]=$v;},c)))]]);f=(function(c){return function $b(f){var{f,g,h,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:if(false){$s=1;continue;}$s=2;continue;case 1:g=A.Println(NA.nil);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;h=A.Println(new NA([new $String(f)]));$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,f,g,h,$s};return $f;};})(c);$r=f("== initFiles ==");$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.initFiles(b);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f("== collectObjects ==");$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.collectObjects();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f("== packageObjects ==");$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.packageObjects();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f("== processDelayed ==");$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.processDelayed(0);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f("== cleanup ==");$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.cleanup();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f("== initOrder ==");$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.initOrder();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!d.conf.DisableUnusedImportCheck){$s=16;continue;}$s=17;continue;case 16:$r=f("== unusedImports ==");$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.unusedImports();$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:$r=f("== recordUntyped ==");$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.recordUntyped();$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if($interfaceIsEqual(d.firstErr,$ifaceNil)){$s=22;continue;}$s=23;continue;case 22:$r=d.monomorph();$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 23:d.pkg.complete=true;d.imports=SG.nil;d.dotImportMap=false;d.pkgPathMap=false;d.seenPkgMap=false;d.recvTParamMap=false;d.brokenAliases=false;d.unionTypeSets=false;d.ctxt=OZ.nil;g=c[0];$s=25;case 25:return g;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return c[0];}if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.checkFiles,$c:true,$r,b,c,d,e,f,g,$s,$deferred};return $f;}}};KR.prototype.checkFiles=function(b){return this.$val.checkFiles(b);};KR.ptr.prototype.processDelayed=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b;case 1:if(!(d=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+d]));if(false&&!(f.desc===SC.nil)){$s=3;continue;}$s=4;continue;case 3:g=A.Println(NA.nil);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;h=f.desc.pos.Pos();$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=c.trace(h,"-- "+f.desc.format,f.desc.args);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:$r=f.f();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=d+(1)>>0;$s=1;continue;case 2:JM(b<=c.delayed.$length);c.delayed=$subslice(c.delayed,0,b);$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.processDelayed,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};KR.prototype.processDelayed=function(b){return this.$val.processDelayed(b);};KR.ptr.prototype.cleanup=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=0;case 1:if(!(c=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c])).cleanup();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=c+(1)>>0;$s=1;continue;case 2:b.cleaners=SK.nil;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.cleanup,$c:true,$r,b,c,d,$s};return $f;};KR.prototype.cleanup=function(){return this.$val.cleanup();};KR.ptr.prototype.record=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=$ifaceNil;e=$ifaceNil;f=b.mode;if(f===(0)){d=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);}else if(f===(1)){d=(NM.nil);}else if(f===(4)){d=b.typ;e=b.val;}else{d=b.typ;}JM(!($interfaceIsEqual(b.expr,$ifaceNil))&&!($interfaceIsEqual(d,$ifaceNil)));if(EW(d)){$s=1;continue;}$s=2;continue;case 1:c.rememberUntyped(b.expr,false,b.mode,$assertType(d,MY),e);$s=3;continue;case 2:$r=c.recordTypeAndValue(b.expr,b.mode,d,e);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.record,$c:true,$r,b,c,d,e,f,$s};return $f;};KR.prototype.record=function(b){return this.$val.record(b);};KR.ptr.prototype.recordUntyped=function(){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(true&&b.Info.Types===false){$s=-1;return;}c=b.untyped;d=0;e=c?c.keys():undefined;f=c?c.size:0;case 1:if(!(d=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){g=true;$s=3;continue s;}h=ET(d,59);$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;case 3:$r=JM(g);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:i=f.Info.Types;if(!(i===false)){j=b;(i||$throwRuntimeError("assignment to entry in nil map")).set(B.Expr.keyFor(j),{k:j,v:new LV.ptr(c,d,e)});}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.recordTypeAndValue,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};KR.prototype.recordTypeAndValue=function(b,c,d,e){return this.$val.recordTypeAndValue(b,c,d,e);};KR.ptr.prototype.recordBuiltinType=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;case 1:$r=d.recordTypeAndValue(b,2,c,$ifaceNil);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=b;if($assertType(e,OF,true)[1]||$assertType(e,OL,true)[1]){f=e;$s=-1;return;}else if($assertType(e,OO,true)[1]){g=e.$val;b=g.X;}else{h=e;JN();}$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.recordBuiltinType,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};KR.prototype.recordBuiltinType=function(b,c){return this.$val.recordBuiltinType(b,c);};KR.ptr.prototype.recordCommaOkTypes=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;JM(!($interfaceIsEqual(b,$ifaceNil)));if($interfaceIsEqual(c[0],$ifaceNil)||$interfaceIsEqual(c[1],$ifaceNil)){$s=-1;return;}if(!(EV(c[0])&&EV(c[1]))){e=false;$s=1;continue s;}f=EC(c[1]);$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f||$interfaceIsEqual(c[1],AC);case 1:$r=JM(e);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=d.Info.Types;if(!(g===false)){$s=4;continue;}$s=5;continue;case 4:case 6:i=$clone((h=$mapIndex(g,B.Expr.keyFor(b)),h!==undefined?h.v:new LV.ptr(0,$ifaceNil,$ifaceNil)),LV);JM(!($interfaceIsEqual(i.Type,$ifaceNil)));j=b.Pos();$s=8;case 8:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;i.Type=CK(new NO([GD(k,d.pkg,"",c[0]),GD(k,d.pkg,"",c[1])]));l=b;(g||$throwRuntimeError("assignment to entry in nil map")).set(B.Expr.keyFor(l),{k:l,v:$clone(i,LV)});m=$assertType(b,OO,true);n=m[0];if(n===OO.nil){$s=7;continue;}b=n.X;$s=6;continue;case 7:case 5:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.recordCommaOkTypes,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};KR.prototype.recordCommaOkTypes=function(b,c){return this.$val.recordCommaOkTypes(b,c);};KR.ptr.prototype.recordInstance=function(b,c,d){var b,c,d,e,f,g,h;e=this;f=KW(b);JM(!(f===OF.nil));JM(!($interfaceIsEqual(d,$ifaceNil)));g=e.Info.Instances;if(!(g===false)){h=f;(g||$throwRuntimeError("assignment to entry in nil map")).set(OF.keyFor(h),{k:h,v:new LW.ptr(CC(c),d)});}};KR.prototype.recordInstance=function(b,c,d){return this.$val.recordInstance(b,c,d);};KW=function(b){var b,c,d,e,f,g,h,i,j;c=$ifaceNil;d=b;if($assertType(d,OM,true)[1]){e=d.$val;c=e.X;}else if($assertType(d,ON,true)[1]){f=d.$val;c=f.X;}else if($assertType(d,OL,true)[1]||$assertType(d,OF,true)[1]){g=d;c=g;}h=c;if($assertType(h,OF,true)[1]){i=h.$val;return i;}else if($assertType(h,OL,true)[1]){j=h.$val;return j.Sel;}$panic(new $String("instantiated ident not found"));};KR.ptr.prototype.recordDef=function(b,c){var b,c,d,e,f;d=this;JM(!(b===OF.nil));e=d.Info.Defs;if(!(e===false)){f=b;(e||$throwRuntimeError("assignment to entry in nil map")).set(OF.keyFor(f),{k:f,v:c});}};KR.prototype.recordDef=function(b,c){return this.$val.recordDef(b,c);};KR.ptr.prototype.recordUse=function(b,c){var b,c,d,e,f;d=this;JM(!(b===OF.nil));JM(!($interfaceIsEqual(c,$ifaceNil)));e=d.Info.Uses;if(!(e===false)){f=b;(e||$throwRuntimeError("assignment to entry in nil map")).set(OF.keyFor(f),{k:f,v:c});}};KR.prototype.recordUse=function(b,c){return this.$val.recordUse(b,c);};KR.ptr.prototype.recordImplicit=function(b,c){var b,c,d,e,f;d=this;JM(!($interfaceIsEqual(b,$ifaceNil)));JM(!($interfaceIsEqual(c,$ifaceNil)));e=d.Info.Implicits;if(!(e===false)){f=b;(e||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(f),{k:f,v:c});}};KR.prototype.recordImplicit=function(b,c){return this.$val.recordImplicit(b,c);};KR.ptr.prototype.recordSelection=function(b,c,d,e,f,g){var b,c,d,e,f,g,h,i,j;h=this;JM(!($interfaceIsEqual(e,$ifaceNil))&&($interfaceIsEqual(d,$ifaceNil)||f.$length>0));h.recordUse(b.Sel,e);i=h.Info.Selections;if(!(i===false)){j=b;(i||$throwRuntimeError("assignment to entry in nil map")).set(OL.keyFor(j),{k:j,v:new DQ.ptr(c,d,e,f,g)});}};KR.prototype.recordSelection=function(b,c,d,e,f,g){return this.$val.recordSelection(b,c,d,e,f,g);};KR.ptr.prototype.recordScope=function(b,c){var b,c,d,e,f;d=this;JM(!($interfaceIsEqual(b,$ifaceNil)));JM(!(c===ME.nil));e=d.Info.Scopes;if(!(e===false)){f=b;(e||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(f),{k:f,v:c});}};KR.prototype.recordScope=function(b,c){return this.$val.recordScope(b,c);};KZ=function(b,c){var b,c;return new KX.ptr(b,c);};$pkg.NewChan=KZ;KX.ptr.prototype.Dir=function(){var b;b=this;return b.dir;};KX.prototype.Dir=function(){return this.$val.Dir();};KX.ptr.prototype.Elem=function(){var b;b=this;return b.elem;};KX.prototype.Elem=function(){return this.$val.Elem();};KX.ptr.prototype.Underlying=function(){var b;b=this;return b;};KX.prototype.Underlying=function(){return this.$val.Underlying();};KX.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BF(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:KX.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};KX.prototype.String=function(){return this.$val.String();};KR.ptr.prototype.funcInst=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(!d.allowVersion(d.pkg,1,18)){$s=1;continue;}$s=2;continue;case 1:f=JR(c.Orig,c.IndexListExpr.Lbrack);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$r=d.softErrorf((e=f,new e.constructor.elem(e)),135,"function instantiation requires go1.18 or later",new NA([]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:g=d.typeList(c.IndexListExpr.Indices);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(h===MS.nil){b.mode=0;b.expr=c.Orig;$s=-1;return;}JM(h.$length===c.IndexListExpr.Indices.$length);i=$assertType(b.typ,OC);j=h.$length;k=i.TypeParams().Len();l=j;m=k;if(l>m){$s=6;continue;}$s=7;continue;case 6:$r=d.errorf((n=c.IndexListExpr.Indices,o=l-1>>0,((o<0||o>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o])),137,"got %d type arguments but want %d",new NA([new $Int(l),new $Int(m)]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;b.expr=c.Orig;$s=-1;return;case 7:if(l>0;$deferred.push([(function(b,c,d,e,f,g){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:f[0].indent=f[0].indent-(1)>>0;$r=f[0].trace(b[0],"=> %s (under = %s)",new NA([g[0],g[0].Underlying()]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,d,e,f,g),[]]);case 2:h=f[0].instance(b[0],c[0],d[0],f[0].bestContext(OZ.nil));$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=$assertType(h,OC);JM(e[0].$length<=d[0].$length);f[0].later((function(b,c,d,e,f,g){return function $b(){var{j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=c[0].TypeParams().list();l=f[0].verify(b[0],j,d[0]);$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];if(!($interfaceIsEqual(n,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:o=b[0];if(m=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+m]).Pos();$s=7;case 7:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;case 6:$r=f[0].softErrorf(new JS(((o>>0))),139,"%s",new NA([n]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=4;continue;case 3:$r=f[0].mono.recordInstance(f[0].pkg,b[0],j,d[0],e[0]);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,j,k,l,m,n,o,p,$s};return $f;};})(b,c,d,e,f,g));g[0]=i;j=g[0];$s=5;case 5:return j;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return g[0];}if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.instantiateSignature,$c:true,$r,b,c,d,e,f,g,h,i,j,$s,$deferred};return $f;}}};KR.prototype.instantiateSignature=function(b,c,d,e){return this.$val.instantiateSignature(b,c,d,e);};KR.ptr.prototype.callExpr=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=I.UnpackIndexExpr(c.Fun);if(!(e===SL.nil)){$s=1;continue;}$s=2;continue;case 1:f=d.indexExpr(b,e);$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f){$s=4;continue;}$s=5;continue;case 4:JM(b.mode===7);$s=6;continue;case 5:e=SL.nil;case 6:b.expr=c.Fun;$r=d.record(b);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=3;continue;case 2:$r=d.exprOrType(b,c.Fun,true);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:g=b.mode;if(g===(0)){$s=11;continue;}if(g===(3)){$s=12;continue;}if(g===(2)){$s=13;continue;}$s=14;continue;case 11:$r=d.use(c.Args);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.expr=c;$s=-1;return 2;case 12:$r=d.nonGeneric(b);$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b.mode===0){$s=-1;return 0;}h=b.typ;b.mode=0;i=c.Args.$length;j=i;if(j===(0)){$s=18;continue;}if(j===(1)){$s=19;continue;}$s=20;continue;case 18:l=JR(c,c.Rparen);$s=22;case 22:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}$r=d.errorf((k=l,new k.constructor.elem(k)),126,"missing argument in conversion to %s",new NA([h]));$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=21;continue;case 19:$r=d.expr(b,(m=c.Args,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0])));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((b.mode===0))){$s=25;continue;}$s=26;continue;case 25:if(new C.Pos(c.Ellipsis).IsValid()){$s=27;continue;}$s=28;continue;case 27:$r=d.errorf((n=c.Args,(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0])),77,"invalid use of ... in conversion to %s",new NA([h]));$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=17;continue;case 28:p=CF(h);$s=30;case 30:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=$assertType(p,NH,true);q=o[0];if(!(q===NH.nil)&&!EY(h)){$s=31;continue;}$s=32;continue;case 31:r=q.IsMethodSet();$s=35;case 35:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}if(!r){$s=33;continue;}$s=34;continue;case 33:$r=d.errorf(c,142,"cannot use interface %s in conversion (contains specific type constraints or is comparable)",new NA([h]));$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=17;continue;case 34:case 32:$r=d.conversion(b,h);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 26:$s=21;continue;case 20:$r=d.use(c.Args);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.errorf((s=c.Args,t=i-1>>0,((t<0||t>=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t])),126,"too many arguments in conversion to %s",new NA([h]));$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 21:case 17:b.expr=c;$s=-1;return 0;case 13:u=b.id;v=d.builtin(b,c,u);$s=42;case 42:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}if(!v){$s=40;continue;}$s=41;continue;case 40:b.mode=0;case 41:b.expr=c;if(!((b.mode===0))&&!((b.mode===4))){d.environment.hasCallOrRecv=true;}$s=-1;return((u<0||u>=AK.length)?($throwRuntimeError("index out of range"),undefined):AK[u]).kind;case 14:case 10:w=b.mode===10;y=CG(b.typ);$s=43;case 43:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}x=$assertType(y,OC,true);z=x[0];if(z===OC.nil){$s=44;continue;}$s=45;continue;case 44:$r=d.invalidOp(b,127,"cannot call non-function %s",new NA([b]));$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;b.expr=c;$s=-1;return 2;case 45:aa=NQ.nil;ab=MS.nil;if(!(e===SL.nil)){$s=47;continue;}$s=48;continue;case 47:aa=e.IndexListExpr.Indices;ac=d.typeList(aa);$s=49;case 49:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ab=ac;if(ab===MS.nil){$s=50;continue;}$s=51;continue;case 50:$r=d.use(c.Args);$s=52;case 52:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;b.expr=c;$s=-1;return 2;case 51:JM(ab.$length===aa.$length);ad=ab.$length;ae=z.TypeParams().Len();af=ad;ag=ae;if(af>ag){$s=53;continue;}$s=54;continue;case 53:$r=d.errorf(((ag<0||ag>=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+ag]),137,"got %d type arguments but want %d",new NA([new $Int(af),new $Int(ag)]));$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.use(c.Args);$s=56;case 56:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;b.expr=c;$s=-1;return 2;case 54:case 48:ai=d.exprList(c.Args,false);$s=57;case 57:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ah=ai;aj=ah[0];ak=z.TypeParams().Len()>0;al=d.arguments$(c,z,ab,aj,aa);$s=58;case 58:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}z=al;if(ak&&(z.TypeParams().Len()===0)){$s=59;continue;}$s=60;continue;case 59:$r=d.recordTypeAndValue(c.Fun,7,z,$ifaceNil);$s=61;case 61:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 60:am=z.results.Len();if(am===(0)){b.mode=1;}else if(am===(1)){if(w){b.mode=9;}else{b.mode=7;}b.typ=(an=z.results.vars,(0>=an.$length?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+0])).object.typ;}else{b.mode=7;b.typ=z.results;}b.expr=c;d.environment.hasCallOrRecv=true;if(!((b.mode===7)&&z.TypeParams().Len()>0)){ao=false;$s=64;continue s;}ap=IH(z.TypeParams().list(),b.typ);$s=65;case 65:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ao=ap;case 64:if(ao){$s=62;continue;}$s=63;continue;case 62:b.mode=0;case 63:$s=-1;return 2;}return;}var $f={$blk:KR.ptr.prototype.callExpr,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.callExpr=function(b,c){return this.$val.callExpr(b,c);};KR.ptr.prototype.exprList=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=PC.nil;f=false;g=this;h=b.$length;if(h===(0)){$s=2;continue;}if(h===(1)){$s=3;continue;}$s=4;continue;case 2:$s=5;continue;case 3:i=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]);d[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=g.multiExpr(d[0],i);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=$assertType(d[0].typ,NM,true);k=j[0];l=j[1];if(l&&!((d[0].mode===0))){e=$makeSlice(PC,k.Len());m=k.vars;n=0;while(true){if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);((o<0||o>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+o]=new FN.ptr(7,i,p.object.typ,$ifaceNil,0));n++;}$s=1;continue;}e=new PC([d[0]]);if(c&&((d[0].mode===6)||(d[0].mode===8)||(d[0].mode===9))){q=new FN.ptr(7,i,(19>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+19]),$ifaceNil,0);if(d[0].mode===9){q.typ=AC;}e=$append(e,q);f=true;}$s=5;continue;case 4:e=$makeSlice(PC,b.$length);r=b;s=0;case 7:if(!(s=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]);t[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=g.expr(t[0],v);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}((u<0||u>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+u]=t[0]);s++;$s=7;continue;case 8:case 5:case 1:$s=-1;return[e,f];}return;}var $f={$blk:KR.ptr.prototype.exprList,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};KR.prototype.exprList=function(b,c){return this.$val.exprList(b,c);};KR.ptr.prototype.arguments$=function(b,c,d,e,f){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=OC.nil;h=this;g=c;i=e;j=0;case 1:if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);l=k.mode;if(l===(3)){$s=4;continue;}if(l===(0)){$s=5;continue;}$s=6;continue;case 4:$r=h.errorf(k,0,"%s used as value",new NA([k]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return g;case 5:$s=-1;return g;case 6:case 3:j++;$s=1;continue;case 2:m=e.$length;n=c.params.Len();o=new C.Pos(b.Ellipsis).IsValid();p=c.params;q=false;if(c.variadic){$s=8;continue;}$s=9;continue;case 8:if(o){$s=11;continue;}$s=12;continue;case 11:if((b.Args.$length===1)&&m>1){$s=14;continue;}$s=15;continue;case 14:s=JR(b,b.Ellipsis);$s=16;case 16:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}$r=h.errorf((r=s,new r.constructor.elem(r)),81,"cannot use ... with %d-valued %s",new NA([new $Int(m),(t=b.Args,(0>=t.$length?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+0]))]));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return g;case 15:$s=13;continue;case 12:if(m>=(n-1>>0)){u=$makeSlice(NO,(n-1>>0));$copySlice(u,c.params.vars);x=(v=c.params.vars,w=n-1>>0,((w<0||w>=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w]));y=$assertType(x.object.typ,OA).elem;while(true){if(!(u.$length>0;}case 13:$s=10;continue;case 9:if(o){$s=18;continue;}$s=19;continue;case 18:aa=JR(b,b.Ellipsis);$s=20;case 20:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}$r=h.errorf((z=aa,new z.constructor.elem(z)),78,"cannot use ... in call to non-variadic %s",new NA([b.Fun]));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return g;case 19:case 10:if(!((m===n))){$s=22;continue;}$s=23;continue;case 22:ab=b;ac="not enough";if(m>n){ab=((n<0||n>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+n]).expr;ac="too many";}else{ab=new JS(((b.Rparen>>0)));}ad=NO.nil;if(!(c.params===NM.nil)){ad=c.params.vars;}ae=ab;af=new $String(ac);ag=b.Fun;ah=h.typesSummary(LI(e),false);$s=24;case 24:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=new $String(ah);aj=h.typesSummary(LJ(ad),c.variadic);$s=25;case 25:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=new $String(aj);$r=h.errorf(ae,126,"%s arguments in call to %s\n\thave %s\n\twant %s",new NA([af,ag,ai,ak]));$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return g;case 23:if(c.TypeParams().Len()>0){$s=27;continue;}$s=28;continue;case 27:if(!h.allowVersion(h.pkg,1,18)){$s=29;continue;}$s=30;continue;case 29:al=b.Fun;if($assertType(al,OM,true)[1]||$assertType(al,ON,true)[1]){$s=31;continue;}$s=32;continue;case 31:am=I.UnpackIndexExpr(b.Fun);ao=JR(b.Fun,am.IndexListExpr.Lbrack);$s=34;case 34:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$r=h.softErrorf((an=ao,new an.constructor.elem(an)),135,"function instantiation requires go1.18 or later",new NA([]));$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=33;continue;case 32:aq=JR(b,b.Lparen);$s=36;case 36:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}$r=h.softErrorf((ap=aq,new ap.constructor.elem(ap)),135,"implicit function instantiation requires go1.18 or later",new NA([]));$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 33:case 30:ar=h.infer(b,c.TypeParams().list(),d,p,e);$s=38;case 38:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=ar;if(as===MS.nil){$s=-1;return g;}at=b.Pos();$s=39;case 39:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=h.instantiateSignature(at,c,as,f);$s=40;case 40:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}g=au;JM(g.TypeParams().Len()===0);h.recordInstance(b.Fun,as,g);if(q){$s=41;continue;}$s=42;continue;case 41:av=b.Pos();$s=44;case 44:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=h.subst(av,p,CO(c.TypeParams().list(),as),OZ.nil);$s=45;case 45:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}p=$assertType(aw,NM);$s=43;continue;case 42:p=g.params;case 43:case 28:if(e.$length>0){$s=46;continue;}$s=47;continue;case 46:ax=h.sprintf("argument to %s",new NA([b.Fun]));$s=48;case 48:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;az=e;ba=0;case 49:if(!(ba=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+ba]);$r=h.assignment(bc,(bd=p.vars,((bb<0||bb>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bb])).object.typ,ay);$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ba++;$s=49;continue;case 50:case 47:$s=-1;return g;}return;}var $f={$blk:KR.ptr.prototype.arguments$,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.arguments$=function(b,c,d,e,f){return this.$val.arguments$(b,c,d,e,f);};KR.ptr.prototype.selector=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=[e];f=this;g=$ifaceNil;h=NW.nil;i=false;j=c.Sel.Name;k=$assertType(c.X,OF,true);l=k[0];m=k[1];if(m){$s=1;continue;}$s=2;continue;case 1:n=f.environment.lookup(l.Name);$s=3;case 3:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;p=$assertType(o,OG,true);q=p[0];if(!(q===OG.nil)){$s=4;continue;}$s=5;continue;case 4:JM(q.object.pkg===f.pkg);f.recordUse(l,q);q.used=true;r=q.imported;s=$ifaceNil;t=7;if(r.cgo){$s=6;continue;}$s=7;continue;case 6:if(j==="malloc"){j="_CMalloc";}else{t=10;}u=LA;v=0;case 9:if(!(v<8)){$s=10;continue;}w=((v<0||v>=u.length)?($throwRuntimeError("index out of range"),undefined):u[v]);y=f.environment.scope.LookupParent(w+j,f.environment.pos);$s=11;case 11:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}x=y;s=x[1];if(!($interfaceIsEqual(s,$ifaceNil))){$s=10;continue;}v++;$s=9;continue;case 10:if($interfaceIsEqual(s,$ifaceNil)){$s=12;continue;}$s=13;continue;case 12:$r=f.errorf(c.Sel,73,"%s not declared by package C",new NA([new $String(j)]));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=15;continue;case 13:$r=f.objDecl(s,NI.nil);$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 7:z=r.scope.Lookup(j);$s=17;case 17:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}s=z;if($interfaceIsEqual(s,$ifaceNil)){$s=18;continue;}$s=19;continue;case 18:if(!r.fake){$s=20;continue;}$s=21;continue;case 20:$r=f.errorf(c.Sel,73,"%s not declared by package %s",new NA([new $String(j),new $String(r.name)]));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 21:$s=15;continue;case 19:aa=s.Exported();$s=25;case 25:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}if(!aa){$s=23;continue;}$s=24;continue;case 23:$r=f.errorf(c.Sel,74,"%s not exported by package %s",new NA([new $String(j),new $String(r.name)]));$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 24:case 8:f.recordUse(c.Sel,s);ab=s;if($assertType(ab,OH,true)[1]){$s=27;continue;}if($assertType(ab,MR,true)[1]){$s=28;continue;}if($assertType(ab,NN,true)[1]){$s=29;continue;}if($assertType(ab,MI,true)[1]){$s=30;continue;}if($assertType(ab,NP,true)[1]){$s=31;continue;}$s=32;continue;case 27:ac=ab.$val;JM(!($interfaceIsEqual(ac.Val(),$ifaceNil)));b.mode=4;b.typ=ac.object.typ;b.val=ac.val;$s=33;continue;case 28:ad=ab.$val;b.mode=3;b.typ=ad.object.typ;$s=33;continue;case 29:ae=ab.$val;b.mode=5;b.typ=ae.object.typ;if(r.cgo&&F.HasPrefix(ae.object.name,"_Cvar_")){b.typ=$assertType(b.typ,OB).base;}$s=33;continue;case 30:af=ab.$val;b.mode=t;b.typ=af.object.typ;if(r.cgo&&F.HasPrefix(af.object.name,"_Cmacro_")){b.mode=7;b.typ=(ai=$assertType(b.typ,OC).results.vars,(0>=ai.$length?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+0])).object.typ;}$s=33;continue;case 31:ag=ab.$val;b.mode=2;b.typ=ag.object.typ;b.id=ag.id;$s=33;continue;case 32:ah=ab;$r=f.dump("%v: unexpected object %v",new NA([new C.Pos(c.Sel.Pos()),ah]));$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}JN();case 33:b.expr=c;$s=-1;return;case 5:case 2:$r=f.exprOrType(b,c.X,false);$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aj=b.mode;if(aj===(3)){$s=37;continue;}if(aj===(2)){$s=38;continue;}if(aj===(0)){$s=39;continue;}$s=40;continue;case 37:if(!(d===NI.nil)&&$interfaceIsEqual(b.typ,d)){$s=41;continue;}$s=42;continue;case 41:$r=f.cycleError(new ND([d.obj]));$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=15;continue;case 42:$s=40;continue;case 38:$r=f.errorf(c.Sel,82,"cannot select on %s",new NA([b]));$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=15;continue;$s=40;continue;case 39:$s=15;continue;case 40:case 36:al=HH(b.typ,b.mode===5,f.pkg,j);$s=45;case 45:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}ak=al;g=ak[0];h=ak[1];i=ak[2];if($interfaceIsEqual(g,$ifaceNil)){$s=46;continue;}$s=47;continue;case 46:am=CF(b.typ);$s=50;case 50:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}if($interfaceIsEqual(am,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=48;continue;}$s=49;continue;case 48:$s=15;continue;case 49:if(!(h===NW.nil)){$s=51;continue;}$s=52;continue;case 51:$r=f.errorf(c.Sel,72,"ambiguous selector %s.%s",new NA([b.expr,new $String(j)]));$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=15;continue;case 52:if(i){$s=54;continue;}$s=55;continue;case 54:$r=f.errorf(c.Sel,125,"cannot call pointer method %s on %s",new NA([new $String(j),b.typ]));$s=56;case 56:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=15;continue;case 55:an="";ao=HO(b.typ);$s=60;case 60:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}if(ao){$s=57;continue;}$s=58;continue;case 57:ap=f.interfacePtrError(b.typ);$s=61;case 61:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}an=ap;$s=59;continue;case 58:aq=f.sprintf("type %s has no field or method %s",new NA([b.typ,new $String(j)]));$s=62;case 62:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}an=aq;if(j.length>0){$s=63;continue;}$s=64;continue;case 63:ar="";as=((j.charCodeAt(0)>>0));if(O.IsUpper(as)){ar=($encodeRune(O.ToLower(as)))+$substring(j,1);}else{ar=($encodeRune(O.ToUpper(as)))+$substring(j,1);}au=HH(b.typ,b.mode===5,f.pkg,ar);$s=65;case 65:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}at=au;g=at[0];if(!($interfaceIsEqual(g,$ifaceNil))){an=an+(", but does have "+ar);}case 64:case 59:$r=f.errorf(c.Sel,76,"%s.%s undefined (%s)",new NA([b.expr,new $String(j),new $String(an)]));$s=66;case 66:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=15;continue;case 47:av=$assertType(g,MI,true);aw=av[0];if(!(aw===MI.nil)){$s=67;continue;}$s=68;continue;case 67:$r=f.objDecl(aw,NI.nil);$s=69;case 69:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 68:if(b.mode===3){$s=70;continue;}$s=71;continue;case 70:ax=$assertType(g,MI,true);ay=ax[0];if(ay===MI.nil){$s=73;continue;}$s=74;continue;case 73:$r=f.errorf(c.Sel,76,"%s.%s undefined (type %s has no method %s)",new NA([b.expr,new $String(j),b.typ,new $String(j)]));$s=75;case 75:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=15;continue;case 74:f.recordSelection(c,2,b.typ,ay,h,i);az=$assertType(ay.object.typ,OC);if(az.recv===NN.nil){$s=76;continue;}$s=77;continue;case 76:$r=f.error(c,11,"illegal cycle in method declaration");$s=78;case 78:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=15;continue;case 77:ba=NO.nil;if(!(az.params===NM.nil)){ba=az.params.vars;}bb="";if(ba.$length>0&&!((0>=ba.$length?($throwRuntimeError("index out of range"),undefined):ba.$array[ba.$offset+0]).object.name==="")){bb=az.recv.object.name;if(bb===""){bb="_";}}ba=$appendSlice(new NO([GD(az.recv.object.pos,az.recv.object.pkg,bb,b.typ)]),ba);b.mode=7;b.typ=new DM.ptr(OX.nil,az.tparams,ME.nil,NN.nil,CK(ba),az.results,az.variadic);f.addDeclDep(ay);$s=72;continue;case 71:bc=g;if($assertType(bc,NN,true)[1]){$s=79;continue;}if($assertType(bc,MI,true)[1]){$s=80;continue;}$s=81;continue;case 79:bd=bc.$val;f.recordSelection(c,0,b.typ,bd,h,i);if((b.mode===5)||i){b.mode=5;}else{b.mode=7;}b.typ=bd.object.typ;$s=82;continue;case 80:be=bc.$val;f.recordSelection(c,1,b.typ,be,h,i);bg=true;if(!bg&&false){$s=83;continue;}$s=84;continue;case 83:bh=b.typ;if(b.mode===5){$s=85;continue;}$s=86;continue;case 85:bi=$assertType(bh,OB,true);bj=bi[1];if(!(!bj)){bk=false;$s=89;continue s;}bl=EX(bh);$s=90;case 90:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}bk=!bl;case 89:if(bk){$s=87;continue;}$s=88;continue;case 87:bh=new FH.ptr(bh);case 88:case 86:bm=HA(bh);$s=91;case 91:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bn=bm;bo=bn.Lookup(f.pkg,j);$s=92;case 92:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=bo;if(bp===MM.nil||!($interfaceIsEqual(bp.obj,be))){$s=93;continue;}$s=94;continue;case 93:bq=c.Pos();$s=95;case 95:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}br=new C.Pos(bq);bs=bh;bt=new $String(be.object.name);bu=bp;$r=f.dump("%v: (%s).%v -> %s",new NA([br,bs,bt,bu]));$s=96;case 96:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f.dump("%s\n",new NA([bn]));$s=97;case 97:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$panic(new $String("method sets and lookup don't agree"));case 94:case 84:b.mode=7;e[0]=$clone($assertType(be.object.typ,OC),DM);e[0].recv=NN.nil;b.typ=e[0];f.addDeclDep(be);$s=82;continue;case 81:bf=bc;JN();case 82:case 72:b.expr=c;$s=-1;return;case 15:b.mode=0;b.expr=c;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.selector,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.selector=function(b,c,d){return this.$val.selector(b,c,d);};KR.ptr.prototype.use=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;c[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);e=b;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(!($interfaceIsEqual(g,$ifaceNil))){$s=3;continue;}$s=4;continue;case 3:h=d.rawExpr(c[0],g,$ifaceNil,false);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 4:f++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.use,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};KR.prototype.use=function(b){return this.$val.use(b);};KR.ptr.prototype.useLHS=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;c[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);e=b;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);h=NN.nil;i=false;j=$assertType(LE(g),OF,true);k=j[0];if(!(k===OF.nil)){$s=3;continue;}$s=4;continue;case 3:if(k.Name==="_"){f++;$s=1;continue;}m=d.environment.scope.LookupParent(k.Name,0);$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;n=l[1];if(!($interfaceIsEqual(n,$ifaceNil))){o=$assertType(n,NN,true);p=o[0];if(!(p===NN.nil)&&p.object.pkg===d.pkg){h=p;i=h.used;}}case 4:q=d.rawExpr(c[0],g,$ifaceNil,false);$s=6;case 6:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;if(!(h===NN.nil)){h.used=i;}f++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.useLHS,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};KR.prototype.useLHS=function(b){return this.$val.useLHS(b);};KR.ptr.prototype.builtin=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];d=[d];e=[e];f=[f];g=[g];h=[h];i=[i];j=[j];k=[k];l=[l];m=false;e[0]=this;n=$clone(((d[0]<0||d[0]>=AK.length)?($throwRuntimeError("index out of range"),undefined):AK[d[0]]),MW);if(new C.Pos(c.Ellipsis).IsValid()&&!((d[0]===0))){$s=1;continue;}$s=2;continue;case 1:$r=e[0].invalidOp(new JS(((c.Ellipsis>>0))),81,"invalid use of ... with built-in %s",new NA([new $String(n.name)]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e[0].use(c.Args);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}o=m;$s=5;case 5:return o;case 2:if((d[0]===7)||(d[0]===1)){$s=6;continue;}$s=7;continue;case 6:$deferred.push([(function(b,d,e,f,g,h,i,j,k,l){return function(p){var p;e[0].environment.hasCallOrRecv=p;};})(b,d,e,f,g,h,i,j,k,l),[e[0].environment.hasCallOrRecv]]);e[0].environment.hasCallOrRecv=false;case 7:p=$throwNilPointerError;q=c.Args.$length;r=d[0];if((r===(8))||(r===(9))||(r===(17))||(r===(21))){$s=9;continue;}$s=10;continue;case 9:$s=11;continue;case 10:t=e[0].exprList(c.Args,false);$s=12;case 12:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;h[0]=s[0];p=(function(b,d,e,f,g,h,i,j,k,l){return function(u,v){var u,v;FN.copy(u,((v<0||v>=h[0].$length)?($throwRuntimeError("index out of range"),undefined):h[0].$array[h[0].$offset+v]));};})(b,d,e,f,g,h,i,j,k,l);q=h[0].$length;if(q>0){$s=13;continue;}$s=14;continue;case 13:$r=p(b[0],0);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=16;continue;}$s=17;continue;case 16:u=m;$s=18;case 18:return u;case 17:case 14:case 11:case 8:v="";if(qn.nargs){v="too many";}if(!(v==="")){$s=19;continue;}$s=20;continue;case 19:x=JR(c,c.Rparen);$s=21;case 21:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}$r=e[0].invalidOp((w=x,new w.constructor.elem(w)),126,"%s arguments for %s (expected %d, found %d)",new NA([new $String(v),c,new $Int(n.nargs),new $Int(q)]));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}y=m;$s=23;case 23:return y;case 20:z=d[0];if(z===(0)){$s=25;continue;}if((z===(1))||(z===(7))){$s=26;continue;}if(z===(2)){$s=27;continue;}if(z===(3)){$s=28;continue;}if(z===(4)){$s=29;continue;}if(z===(5)){$s=30;continue;}if((z===(6))||(z===(13))){$s=31;continue;}if(z===(8)){$s=32;continue;}if(z===(9)){$s=33;continue;}if(z===(10)){$s=34;continue;}if((z===(11))||(z===(12))){$s=35;continue;}if(z===(14)){$s=36;continue;}if(z===(15)){$s=37;continue;}if(z===(16)){$s=38;continue;}if(z===(17)){$s=39;continue;}if(z===(18)){$s=40;continue;}if(z===(19)){$s=41;continue;}if(z===(20)){$s=42;continue;}if(z===(21)){$s=43;continue;}$s=44;continue;case 25:aa=b[0].typ;ab=$ifaceNil;ad=CG(aa);$s=46;case 46:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,OA,true);ae=ac[0];if(!(ae===OA.nil)){$s=47;continue;}$s=48;continue;case 47:ab=ae.elem;$s=49;continue;case 48:af="";if(b[0].isNil()){$s=51;continue;}if(EY(aa)){$s=52;continue;}$s=53;continue;case 51:af="have untyped nil";$s=54;continue;case 52:ag=CG(aa);$s=55;case 55:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag;if(!($interfaceIsEqual(ah,$ifaceNil))){$s=56;continue;}$s=57;continue;case 56:ai=e[0].sprintf("%s has core type %s",new NA([b[0],ah]));$s=59;case 59:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}af=ai;$s=58;continue;case 57:aj=e[0].sprintf("%s has no core type",new NA([b[0]]));$s=60;case 60:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}af=aj;case 58:$s=54;continue;case 53:ak=e[0].sprintf("have %s",new NA([b[0]]));$s=61;case 61:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}af=ak;case 54:case 50:$r=e[0].errorf(b[0],83,"first argument to append must be a slice; %s",new NA([new $String(af)]));$s=62;case 62:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}al=m;$s=63;case 63:return al;case 49:am=new SM([$clone(b[0],FN)]);if((q===2)&&new C.Pos(c.Ellipsis).IsValid()){$s=64;continue;}$s=65;continue;case 64:ao=b[0].assignableTo(e[0],DE(Z),OJ.nil);$s=66;case 66:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}an=ao;ap=an[0];if(ap){$s=67;continue;}$s=68;continue;case 67:$r=p(b[0],1);$s=69;case 69:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=70;continue;}$s=71;continue;case 70:aq=m;$s=72;case 72:return aq;case 71:ar=CH(b[0].typ);$s=73;case 73:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=ar;if(!(!($interfaceIsEqual(as,$ifaceNil)))){at=false;$s=76;continue s;}au=EI(as);$s=77;case 77:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}at=au;case 76:if(at){$s=74;continue;}$s=75;continue;case 74:if(!(e[0].Info.Types===false)){$s=78;continue;}$s=79;continue;case 78:av=LC(aa,new MS([aa,b[0].typ]));av.variadic=true;$r=e[0].recordBuiltinType(c.Fun,av);$s=80;case 80:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 79:b[0].mode=7;b[0].typ=aa;$s=24;continue;case 75:am=$append(am,b[0]);case 68:case 65:aw=LC(aa,new MS([aa,DE(ab)]));aw.variadic=true;ax=PC.nil;ay=am;az=0;while(true){if(!(az=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+ba]));az++;}bb=am.$length;case 81:if(!(bb>0;$s=81;continue;case 82:bd=e[0].arguments$(c,aw,MS.nil,ax,NQ.nil);$s=84;case 84:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}bd;b[0].mode=7;b[0].typ=aa;if(!(e[0].Info.Types===false)){$s=85;continue;}$s=86;continue;case 85:$r=e[0].recordBuiltinType(c.Fun,aw);$s=87;case 87:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 86:$s=45;continue;case 26:be=0;bf=$ifaceNil;bh=CF(b[0].typ);$s=88;case 88:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bi=LD(bh);$s=89;case 89:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bg=bi;if($assertType(bg,MY,true)[1]){$s=90;continue;}if($assertType(bg,NE,true)[1]){$s=91;continue;}if($assertType(bg,OA,true)[1]||$assertType(bg,OE,true)[1]){$s=92;continue;}if($assertType(bg,OD,true)[1]){$s=93;continue;}if($assertType(bg,NH,true)[1]){$s=94;continue;}$s=95;continue;case 90:bj=bg.$val;bo=EI(bj);$s=98;case 98:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}if(bo&&(d[0]===7)){$s=96;continue;}$s=97;continue;case 96:if(b[0].mode===4){$s=99;continue;}$s=100;continue;case 99:be=4;bp=G.StringVal(b[0].val);$s=102;case 102:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}bq=G.MakeInt64((new $Int64(0,bp.length)));$s=103;case 103:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}bf=bq;$s=101;continue;case 100:be=7;case 101:case 97:$s=95;continue;case 91:bk=bg.$val;be=7;if(!e[0].environment.hasCallOrRecv){be=4;if((br=bk.len,(br.$high>0||(br.$high===0&&br.$low>=0)))){bf=G.MakeInt64(bk.len);}else{bf=G.MakeUnknown();}}$s=95;continue;case 92:bl=bg;be=7;$s=95;continue;case 93:bm=bg.$val;if(d[0]===7){be=7;}$s=95;continue;case 94:bn=bg.$val;if(!EY(b[0].typ)){$s=95;continue;}bs=bn.typeSet();$s=106;case 106:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}bt=bs.underIs((function(b,d,e,f,g,h,i,j,k,l){return function $b(bt){var{bt,bu,bv,bw,bx,by,bz,$s,$r,$c}=$restore(this,{bt});$s=$s||0;s:while(true){switch($s){case 0:bv=LD(bt);$s=1;case 1:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}bu=bv;if($assertType(bu,MY,true)[1]){$s=2;continue;}if($assertType(bu,NE,true)[1]||$assertType(bu,OA,true)[1]||$assertType(bu,OE,true)[1]){$s=3;continue;}if($assertType(bu,OD,true)[1]){$s=4;continue;}$s=5;continue;case 2:bw=bu.$val;bz=EI(bw);$s=8;case 8:if($c){$c=false;bz=bz.$blk();}if(bz&&bz.$blk!==undefined){break s;}if(bz&&(d[0]===7)){$s=6;continue;}$s=7;continue;case 6:$s=-1;return true;case 7:$s=5;continue;case 3:bx=bu;$s=-1;return true;case 4:by=bu.$val;if(d[0]===7){$s=-1;return true;}case 5:$s=-1;return false;}return;}var $f={$blk:$b,$c:true,$r,bt,bu,bv,bw,bx,by,bz,$s};return $f;};})(b,d,e,f,g,h,i,j,k,l));$s=107;case 107:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}if(bt){$s=104;continue;}$s=105;continue;case 104:be=7;case 105:case 95:if(!(be===0)){bu=false;$s=110;continue s;}bv=CF(b[0].typ);$s=111;case 111:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}bu=!($interfaceIsEqual(bv,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0])));case 110:if(bu){$s=108;continue;}$s=109;continue;case 108:bw=84;if(d[0]===7){bw=90;}$r=e[0].invalidArg(b[0],bw,"%s for %s",new NA([b[0],new $String(n.name)]));$s=112;case 112:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bx=m;$s=113;case 113:return bx;case 109:if(!(e[0].Info.Types===false)&&!((be===4))){$s=114;continue;}$s=115;continue;case 114:$r=e[0].recordBuiltinType(c.Fun,LC((2>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+2]),new MS([b[0].typ])));$s=116;case 116:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 115:b[0].mode=be;b[0].typ=(2>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+2]);b[0].val=bf;$s=45;continue;case 27:by=IY(b[0].typ,(function(b,d,e,f,g,h,i,j,k,l){return function $b(by){var{by,bz,ca,$s,$r,$c}=$restore(this,{by});$s=$s||0;s:while(true){switch($s){case 0:bz=$assertType(by,OE,true);ca=bz[0];if(ca===OE.nil){$s=1;continue;}$s=2;continue;case 1:$r=e[0].invalidOp(b[0],85,"cannot close non-channel %s",new NA([b[0]]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 2:if(ca.dir===2){$s=4;continue;}$s=5;continue;case 4:$r=e[0].invalidOp(b[0],85,"cannot close receive-only channel %s",new NA([b[0]]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 5:$s=-1;return true;}return;}var $f={$blk:$b,$c:true,$r,by,bz,ca,$s};return $f;};})(b,d,e,f,g,h,i,j,k,l));$s=119;case 119:if($c){$c=false;by=by.$blk();}if(by&&by.$blk!==undefined){break s;}if(!by){$s=117;continue;}$s=118;continue;case 117:bz=m;$s=120;case 120:return bz;case 118:b[0].mode=1;if(!(e[0].Info.Types===false)){$s=121;continue;}$s=122;continue;case 121:$r=e[0].recordBuiltinType(c.Fun,LC($ifaceNil,new MS([b[0].typ])));$s=123;case 123:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 122:$s=45;continue;case 28:i[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=p(i[0],1);$s=124;case 124:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(i[0].mode===0){$s=125;continue;}$s=126;continue;case 125:ca=m;$s=127;case 127:return ca;case 126:cb=0;if(EW(b[0].typ)){cb=cb|(1);}if(EW(i[0].typ)){cb=cb|(2);}cc=cb;if(cc===(0)){$s=129;continue;}if(cc===(1)){$s=130;continue;}if(cc===(2)){$s=131;continue;}if(cc===(3)){$s=132;continue;}$s=133;continue;case 129:$s=133;continue;case 130:$r=e[0].convertUntyped(b[0],i[0].typ);$s=134;case 134:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=133;continue;case 131:$r=e[0].convertUntyped(i[0],b[0].typ);$s=135;case 135:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=133;continue;case 132:if((b[0].mode===4)&&(i[0].mode===4)){$s=136;continue;}$s=137;continue;case 136:cd=(function(b,d,e,f,g,h,i,j,k,l){return function $b(cd){var{cd,ce,cf,cg,ch,$s,$r,$c}=$restore(this,{cd});$s=$s||0;s:while(true){switch($s){case 0:cf=EH(cd.typ);$s=4;case 4:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}if(!(cf)){ce=false;$s=3;continue s;}cg=G.Imag(cd.val);$s=5;case 5:if($c){$c=false;cg=cg.$blk();}if(cg&&cg.$blk!==undefined){break s;}ch=G.Sign(cg);$s=6;case 6:if($c){$c=false;ch=ch.$blk();}if(ch&&ch.$blk!==undefined){break s;}ce=ch===0;case 3:if(ce){$s=1;continue;}$s=2;continue;case 1:cd.typ=(22>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+22]);case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,cd,ce,cf,cg,ch,$s};return $f;};})(b,d,e,f,g,h,i,j,k,l);$r=cd(b[0]);$s=139;case 139:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=cd(i[0]);$s=140;case 140:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=138;continue;case 137:$r=e[0].convertUntyped(b[0],(14>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+14]));$s=141;case 141:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e[0].convertUntyped(i[0],(14>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+14]));$s=142;case 142:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 138:case 133:case 128:if((b[0].mode===0)||(i[0].mode===0)){$s=143;continue;}$s=144;continue;case 143:ce=m;$s=145;case 145:return ce;case 144:cf=MC(b[0].typ,i[0].typ);$s=148;case 148:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}if(!cf){$s=146;continue;}$s=147;continue;case 146:$r=e[0].invalidArg(b[0],87,"mismatched types %s and %s",new NA([b[0].typ,i[0].typ]));$s=149;case 149:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cg=m;$s=150;case 150:return cg;case 147:ch=(function(b,d,e,f,g,h,i,j,k,l){return function $b(ch){var{ch,ci,cj,ck,cl,$s,$r,$c}=$restore(this,{ch});$s=$s||0;s:while(true){switch($s){case 0:JM(!EY(ch));cj=CF(ch);$s=1;case 1:if($c){$c=false;cj=cj.$blk();}if(cj&&cj.$blk!==undefined){break s;}ci=$assertType(cj,MY,true);ck=ci[0];if(!(ck===MY.nil)){cl=ck.kind;if(cl===(13)){$s=-1;return(15>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+15]);}else if(cl===(14)){$s=-1;return(16>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+16]);}else if(cl===(22)){$s=-1;return(23>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+23]);}}$s=-1;return $ifaceNil;}return;}var $f={$blk:$b,$c:true,$r,ch,ci,cj,ck,cl,$s};return $f;};})(b,d,e,f,g,h,i,j,k,l);ci=e[0].applyTypeFunc(ch,b[0],d[0]);$s=151;case 151:if($c){$c=false;ci=ci.$blk();}if(ci&&ci.$blk!==undefined){break s;}cj=ci;if($interfaceIsEqual(cj,$ifaceNil)){$s=152;continue;}$s=153;continue;case 152:$r=e[0].invalidArg(b[0],87,"arguments have type %s, expected floating-point",new NA([b[0].typ]));$s=154;case 154:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ck=m;$s=155;case 155:return ck;case 153:if((b[0].mode===4)&&(i[0].mode===4)){$s=156;continue;}$s=157;continue;case 156:cl=G.ToFloat(b[0].val);$s=159;case 159:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}cm=cl;cn=G.ToFloat(i[0].val);$s=160;case 160:if($c){$c=false;cn=cn.$blk();}if(cn&&cn.$blk!==undefined){break s;}co=G.MakeImag(cn);$s=161;case 161:if($c){$c=false;co=co.$blk();}if(co&&co.$blk!==undefined){break s;}cp=co;cq=G.BinaryOp(cm,12,cp);$s=162;case 162:if($c){$c=false;cq=cq.$blk();}if(cq&&cq.$blk!==undefined){break s;}b[0].val=cq;$s=158;continue;case 157:b[0].mode=7;case 158:if(!(e[0].Info.Types===false)&&!((b[0].mode===4))){$s=163;continue;}$s=164;continue;case 163:$r=e[0].recordBuiltinType(c.Fun,LC(cj,new MS([b[0].typ,b[0].typ])));$s=165;case 165:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 164:b[0].typ=cj;$s=45;continue;case 29:cs=CG(b[0].typ);$s=166;case 166:if($c){$c=false;cs=cs.$blk();}if(cs&&cs.$blk!==undefined){break s;}cr=$assertType(cs,OA,true);ct=cr[0];j[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=p(j[0],1);$s=167;case 167:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(j[0].mode===0){$s=168;continue;}$s=169;continue;case 168:cu=m;$s=170;case 170:return cu;case 169:cv=CH(j[0].typ);$s=171;case 171:if($c){$c=false;cv=cv.$blk();}if(cv&&cv.$blk!==undefined){break s;}cw=cv;if(!(!($interfaceIsEqual(cw,$ifaceNil)))){cx=false;$s=174;continue s;}cy=EI(cw);$s=175;case 175:if($c){$c=false;cy=cy.$blk();}if(cy&&cy.$blk!==undefined){break s;}cx=cy;case 174:if(cx){$s=172;continue;}$s=173;continue;case 172:cw=DE(Z);case 173:cz=$assertType(cw,OA,true);da=cz[0];if(ct===OA.nil||da===OA.nil){$s=176;continue;}$s=177;continue;case 176:$r=e[0].invalidArg(b[0],86,"copy expects slice arguments; found %s and %s",new NA([b[0],j[0]]));$s=178;case 178:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}db=m;$s=179;case 179:return db;case 177:dc=MC(ct.elem,da.elem);$s=182;case 182:if($c){$c=false;dc=dc.$blk();}if(dc&&dc.$blk!==undefined){break s;}if(!dc){$s=180;continue;}$s=181;continue;case 180:$r=e[0].errorf(b[0],86,"arguments to copy %s and %s have different element types %s and %s",new NA([b[0],j[0],ct.elem,da.elem]));$s=183;case 183:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}dd=m;$s=184;case 184:return dd;case 181:if(!(e[0].Info.Types===false)){$s=185;continue;}$s=186;continue;case 185:$r=e[0].recordBuiltinType(c.Fun,LC((2>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+2]),new MS([b[0].typ,j[0].typ])));$s=187;case 187:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 186:b[0].mode=7;b[0].typ=(2>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+2]);$s=45;continue;case 30:de=b[0].typ;f[0]=$ifaceNil;df=IY(de,(function(b,d,e,f,g,h,i,j,k,l){return function $b(df){var{df,dg,dh,di,dj,$s,$r,$c}=$restore(this,{df});$s=$s||0;s:while(true){switch($s){case 0:dg=$assertType(df,OD,true);dh=dg[0];if(dh===OD.nil){$s=1;continue;}$s=2;continue;case 1:$r=e[0].invalidArg(b[0],88,"%s is not a map",new NA([b[0]]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 2:if(!(!($interfaceIsEqual(f[0],$ifaceNil)))){di=false;$s=6;continue s;}dj=MC(dh.key,f[0]);$s=7;case 7:if($c){$c=false;dj=dj.$blk();}if(dj&&dj.$blk!==undefined){break s;}di=!dj;case 6:if(di){$s=4;continue;}$s=5;continue;case 4:$r=e[0].invalidArg(b[0],88,"maps of %s must have identical key types",new NA([b[0]]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return false;case 5:f[0]=dh.key;$s=-1;return true;}return;}var $f={$blk:$b,$c:true,$r,df,dg,dh,di,dj,$s};return $f;};})(b,d,e,f,g,h,i,j,k,l));$s=190;case 190:if($c){$c=false;df=df.$blk();}if(df&&df.$blk!==undefined){break s;}if(!df){$s=188;continue;}$s=189;continue;case 188:dg=m;$s=191;case 191:return dg;case 189:$r=p(b[0],1);$s=192;case 192:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=193;continue;}$s=194;continue;case 193:dh=m;$s=195;case 195:return dh;case 194:$r=e[0].assignment(b[0],f[0],"argument to delete");$s=196;case 196:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=197;continue;}$s=198;continue;case 197:di=m;$s=199;case 199:return di;case 198:b[0].mode=1;if(!(e[0].Info.Types===false)){$s=200;continue;}$s=201;continue;case 200:$r=e[0].recordBuiltinType(c.Fun,LC($ifaceNil,new MS([de,f[0]])));$s=202;case 202:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 201:$s=45;continue;case 31:if(EW(b[0].typ)){$s=203;continue;}$s=204;continue;case 203:if(b[0].mode===4){$s=205;continue;}$s=206;continue;case 205:dj=EH(b[0].typ);$s=210;case 210:if($c){$c=false;dj=dj.$blk();}if(dj&&dj.$blk!==undefined){break s;}if(dj){$s=208;continue;}$s=209;continue;case 208:b[0].typ=(23>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+23]);case 209:$s=207;continue;case 206:$r=e[0].convertUntyped(b[0],(16>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+16]));$s=211;case 211:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=212;continue;}$s=213;continue;case 212:dk=m;$s=214;case 214:return dk;case 213:case 207:case 204:dl=(function(b,d,e,f,g,h,i,j,k,l){return function $b(dl){var{dl,dm,dn,dp,dq,$s,$r,$c}=$restore(this,{dl});$s=$s||0;s:while(true){switch($s){case 0:JM(!EY(dl));dn=CF(dl);$s=1;case 1:if($c){$c=false;dn=dn.$blk();}if(dn&&dn.$blk!==undefined){break s;}dm=$assertType(dn,MY,true);dp=dm[0];if(!(dp===MY.nil)){dq=dp.kind;if(dq===(15)){$s=-1;return(13>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+13]);}else if(dq===(16)){$s=-1;return(14>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+14]);}else if(dq===(23)){$s=-1;return(22>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+22]);}}$s=-1;return $ifaceNil;}return;}var $f={$blk:$b,$c:true,$r,dl,dm,dn,dp,dq,$s};return $f;};})(b,d,e,f,g,h,i,j,k,l);dm=e[0].applyTypeFunc(dl,b[0],d[0]);$s=215;case 215:if($c){$c=false;dm=dm.$blk();}if(dm&&dm.$blk!==undefined){break s;}dn=dm;if($interfaceIsEqual(dn,$ifaceNil)){$s=216;continue;}$s=217;continue;case 216:dp=89;if(d[0]===13){dp=93;}$r=e[0].invalidArg(b[0],dp,"argument has type %s, expected complex type",new NA([b[0].typ]));$s=218;case 218:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}dq=m;$s=219;case 219:return dq;case 217:if(b[0].mode===4){$s=220;continue;}$s=221;continue;case 220:if(d[0]===13){$s=223;continue;}$s=224;continue;case 223:dr=G.Real(b[0].val);$s=226;case 226:if($c){$c=false;dr=dr.$blk();}if(dr&&dr.$blk!==undefined){break s;}b[0].val=dr;$s=225;continue;case 224:ds=G.Imag(b[0].val);$s=227;case 227:if($c){$c=false;ds=ds.$blk();}if(ds&&ds.$blk!==undefined){break s;}b[0].val=ds;case 225:$s=222;continue;case 221:b[0].mode=7;case 222:if(!(e[0].Info.Types===false)&&!((b[0].mode===4))){$s=228;continue;}$s=229;continue;case 228:$r=e[0].recordBuiltinType(c.Fun,LC(dn,new MS([b[0].typ])));$s=230;case 230:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 229:b[0].typ=dn;$s=45;continue;case 32:du=(dt=c.Args,(0>=dt.$length?($throwRuntimeError("index out of range"),undefined):dt.$array[dt.$offset+0]));dv=e[0].varType(du);$s=231;case 231:if($c){$c=false;dv=dv.$blk();}if(dv&&dv.$blk!==undefined){break s;}dw=dv;if($interfaceIsEqual(dw,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=232;continue;}$s=233;continue;case 232:dx=m;$s=234;case 234:return dx;case 233:dy=0;ea=CG(dw);$s=235;case 235:if($c){$c=false;ea=ea.$blk();}if(ea&&ea.$blk!==undefined){break s;}dz=ea;if($assertType(dz,OA,true)[1]){$s=236;continue;}if($assertType(dz,OD,true)[1]||$assertType(dz,OE,true)[1]){$s=237;continue;}if(dz===$ifaceNil){$s=238;continue;}$s=239;continue;case 236:dy=2;$s=240;continue;case 237:dy=1;$s=240;continue;case 238:$r=e[0].errorf(du,92,"cannot make %s: no core type",new NA([du]));$s=241;case 241:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}eb=m;$s=242;case 242:return eb;case 239:$r=e[0].invalidArg(du,92,"cannot make %s; type must be slice, map, or channel",new NA([du]));$s=243;case 243:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ec=m;$s=244;case 244:return ec;case 240:if(q>0)>0)),new $Int(q)]));$s=247;case 247:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ed=m;$s=248;case 248:return ed;case 246:ee=new MS([dw]);ef=QK.nil;eg=$subslice(c.Args,1);eh=0;case 249:if(!(eh=eg.$length)?($throwRuntimeError("index out of range"),undefined):eg.$array[eg.$offset+eh]);ek=e[0].index(ei,new $Int64(-1,4294967295));$s=251;case 251:if($c){$c=false;ek=ek.$blk();}if(ek&&ek.$blk!==undefined){break s;}ej=ek;el=ej[0];em=ej[1];ee=$append(ee,el);if((em.$high>0||(em.$high===0&&em.$low>=0))){ef=$append(ef,em);}eh++;$s=249;continue;case 250:if((ef.$length===2)&&(en=(0>=ef.$length?($throwRuntimeError("index out of range"),undefined):ef.$array[ef.$offset+0]),eo=(1>=ef.$length?($throwRuntimeError("index out of range"),undefined):ef.$array[ef.$offset+1]),(en.$high>eo.$high||(en.$high===eo.$high&&en.$low>eo.$low)))){$s=252;continue;}$s=253;continue;case 252:$r=e[0].invalidArg((ep=c.Args,(1>=ep.$length?($throwRuntimeError("index out of range"),undefined):ep.$array[ep.$offset+1])),91,"length and capacity swapped",new NA([]));$s=254;case 254:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 253:b[0].mode=7;b[0].typ=dw;if(!(e[0].Info.Types===false)){$s=255;continue;}$s=256;continue;case 255:$r=e[0].recordBuiltinType(c.Fun,LC(b[0].typ,ee));$s=257;case 257:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 256:$s=45;continue;case 33:er=e[0].varType((eq=c.Args,(0>=eq.$length?($throwRuntimeError("index out of range"),undefined):eq.$array[eq.$offset+0])));$s=258;case 258:if($c){$c=false;er=er.$blk();}if(er&&er.$blk!==undefined){break s;}es=er;if($interfaceIsEqual(es,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=259;continue;}$s=260;continue;case 259:et=m;$s=261;case 261:return et;case 260:b[0].mode=7;b[0].typ=new FH.ptr(es);if(!(e[0].Info.Types===false)){$s=262;continue;}$s=263;continue;case 262:$r=e[0].recordBuiltinType(c.Fun,LC(b[0].typ,new MS([es])));$s=264;case 264:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 263:$s=45;continue;case 34:if(!(e[0].environment.sig===OC.nil)&&e[0].environment.sig.results.Len()>0){eu=e[0].environment.isPanic;if(eu===false){eu=new $global.Map();e[0].environment.isPanic=eu;}ev=c;(eu||$throwRuntimeError("assignment to entry in nil map")).set(QP.keyFor(ev),{k:ev,v:true});}$r=e[0].assignment(b[0],HW,"argument to panic");$s=265;case 265:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=266;continue;}$s=267;continue;case 266:ew=m;$s=268;case 268:return ew;case 267:b[0].mode=1;if(!(e[0].Info.Types===false)){$s=269;continue;}$s=270;continue;case 269:$r=e[0].recordBuiltinType(c.Fun,LC($ifaceNil,new MS([HW])));$s=271;case 271:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 270:$s=45;continue;case 35:ex=MS.nil;if(q>0){$s=272;continue;}$s=273;continue;case 272:ex=$makeSlice(MS,q);ey=0;case 274:if(!(ey0){$s=276;continue;}$s=277;continue;case 276:$r=p(b[0],ey);$s=278;case 278:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 277:$r=e[0].assignment(b[0],$ifaceNil,"argument to "+((d[0]<0||d[0]>=AK.length)?($throwRuntimeError("index out of range"),undefined):AK[d[0]]).name);$s=279;case 279:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=280;continue;}$s=281;continue;case 280:ez=m;$s=282;case 282:return ez;case 281:((ey<0||ey>=ex.$length)?($throwRuntimeError("index out of range"),undefined):ex.$array[ex.$offset+ey]=b[0].typ);ey=ey+(1)>>0;$s=274;continue;case 275:case 273:b[0].mode=1;if(!(e[0].Info.Types===false)){$s=283;continue;}$s=284;continue;case 283:$r=e[0].recordBuiltinType(c.Fun,LC($ifaceNil,ex));$s=285;case 285:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 284:$s=45;continue;case 36:b[0].mode=7;b[0].typ=HW;if(!(e[0].Info.Types===false)){$s=286;continue;}$s=287;continue;case 286:$r=e[0].recordBuiltinType(c.Fun,LC(b[0].typ,new MS([])));$s=288;case 288:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 287:$s=45;continue;case 37:if(!e[0].allowVersion(e[0].pkg,1,17)){$s=289;continue;}$s=290;continue;case 289:$r=e[0].errorf(c.Fun,133,"unsafe.Add requires go1.17 or later",new NA([]));$s=291;case 291:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}fa=m;$s=292;case 292:return fa;case 290:$r=e[0].assignment(b[0],(18>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+18]),"argument to unsafe.Add");$s=293;case 293:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=294;continue;}$s=295;continue;case 294:fb=m;$s=296;case 296:return fb;case 295:k[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=p(k[0],1);$s=297;case 297:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}fc=e[0].isValidIndex(k[0],133,"length",true);$s=300;case 300:if($c){$c=false;fc=fc.$blk();}if(fc&&fc.$blk!==undefined){break s;}if(!fc){$s=298;continue;}$s=299;continue;case 298:fd=m;$s=301;case 301:return fd;case 299:b[0].mode=7;b[0].typ=(18>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+18]);if(!(e[0].Info.Types===false)){$s=302;continue;}$s=303;continue;case 302:$r=e[0].recordBuiltinType(c.Fun,LC(b[0].typ,new MS([b[0].typ,k[0].typ])));$s=304;case 304:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 303:$s=45;continue;case 38:$r=e[0].assignment(b[0],$ifaceNil,"argument to unsafe.Alignof");$s=305;case 305:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=306;continue;}$s=307;continue;case 306:fe=m;$s=308;case 308:return fe;case 307:ff=LB(b[0].typ);$s=312;case 312:if($c){$c=false;ff=ff.$blk();}if(ff&&ff.$blk!==undefined){break s;}if(ff){$s=309;continue;}$s=310;continue;case 309:b[0].mode=7;if(!(e[0].Info.Types===false)){$s=313;continue;}$s=314;continue;case 313:$r=e[0].recordBuiltinType(c.Fun,LC((12>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+12]),new MS([b[0].typ])));$s=315;case 315:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 314:$s=311;continue;case 310:b[0].mode=4;fg=e[0].conf.alignof(b[0].typ);$s=316;case 316:if($c){$c=false;fg=fg.$blk();}if(fg&&fg.$blk!==undefined){break s;}fh=G.MakeInt64(fg);$s=317;case 317:if($c){$c=false;fh=fh.$blk();}if(fh&&fh.$blk!==undefined){break s;}b[0].val=fh;case 311:b[0].typ=(12>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+12]);$s=45;continue;case 39:fj=(fi=c.Args,(0>=fi.$length?($throwRuntimeError("index out of range"),undefined):fi.$array[fi.$offset+0]));fk=$assertType(LE(fj),OL,true);fl=fk[0];if(fl===OL.nil){$s=318;continue;}$s=319;continue;case 318:$r=e[0].invalidArg(fj,98,"%s is not a selector expression",new NA([fj]));$s=320;case 320:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e[0].use(new NQ([fj]));$s=321;case 321:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}fm=m;$s=322;case 322:return fm;case 319:$r=e[0].expr(b[0],fl.X);$s=323;case 323:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=324;continue;}$s=325;continue;case 324:fn=m;$s=326;case 326:return fn;case 325:fo=HQ(b[0].typ);$s=327;case 327:if($c){$c=false;fo=fo.$blk();}if(fo&&fo.$blk!==undefined){break s;}fp=fo;fq=fl.Sel.Name;fs=HH(fp,false,e[0].pkg,fq);$s=328;case 328:if($c){$c=false;fs=fs.$blk();}if(fs&&fs.$blk!==undefined){break s;}fr=fs;ft=fr[0];fu=fr[1];fv=fr[2];fw=ft;if(fw===$ifaceNil){$s=329;continue;}if($assertType(fw,MI,true)[1]){$s=330;continue;}$s=331;continue;case 329:$r=e[0].invalidArg(b[0],76,"%s has no single field %s",new NA([fp,new $String(fq)]));$s=332;case 332:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}fx=m;$s=333;case 333:return fx;case 330:$r=e[0].invalidArg(fj,99,"%s is a method value",new NA([fj]));$s=334;case 334:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}fy=m;$s=335;case 335:return fy;case 331:if(fv){$s=336;continue;}$s=337;continue;case 336:$r=e[0].invalidArg(b[0],99,"field %s is embedded via a pointer in %s",new NA([new $String(fq),fp]));$s=338;case 338:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}fz=m;$s=339;case 339:return fz;case 337:e[0].recordSelection(fl,0,fp,ft,fu,false);ga=7;if((b[0].mode===5)||fv){ga=5;}gb=ft.Type();$s=340;case 340:if($c){$c=false;gb=gb.$blk();}if(gb&&gb.$blk!==undefined){break s;}$r=e[0].record(new FN.ptr(ga,fl,gb,$ifaceNil,0));$s=341;case 341:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}gc=LB(fp);$s=345;case 345:if($c){$c=false;gc=gc.$blk();}if(gc&&gc.$blk!==undefined){break s;}if(gc){$s=342;continue;}$s=343;continue;case 342:b[0].mode=7;if(!(e[0].Info.Types===false)){$s=346;continue;}$s=347;continue;case 346:gd=c.Fun;ge=(12>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+12]);gf=ft.Type();$s=348;case 348:if($c){$c=false;gf=gf.$blk();}if(gf&&gf.$blk!==undefined){break s;}gg=gf;gh=LC(ge,new MS([gg]));$s=349;case 349:if($c){$c=false;gh=gh.$blk();}if(gh&&gh.$blk!==undefined){break s;}gi=gh;$r=e[0].recordBuiltinType(gd,gi);$s=350;case 350:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 347:$s=344;continue;case 343:b[0].mode=4;gj=e[0].conf.offsetof(fp,fu);$s=351;case 351:if($c){$c=false;gj=gj.$blk();}if(gj&&gj.$blk!==undefined){break s;}gk=G.MakeInt64(gj);$s=352;case 352:if($c){$c=false;gk=gk.$blk();}if(gk&&gk.$blk!==undefined){break s;}b[0].val=gk;case 344:b[0].typ=(12>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+12]);$s=45;continue;case 40:$r=e[0].assignment(b[0],$ifaceNil,"argument to unsafe.Sizeof");$s=353;case 353:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b[0].mode===0){$s=354;continue;}$s=355;continue;case 354:gl=m;$s=356;case 356:return gl;case 355:gm=LB(b[0].typ);$s=360;case 360:if($c){$c=false;gm=gm.$blk();}if(gm&&gm.$blk!==undefined){break s;}if(gm){$s=357;continue;}$s=358;continue;case 357:b[0].mode=7;if(!(e[0].Info.Types===false)){$s=361;continue;}$s=362;continue;case 361:$r=e[0].recordBuiltinType(c.Fun,LC((12>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+12]),new MS([b[0].typ])));$s=363;case 363:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 362:$s=359;continue;case 358:b[0].mode=4;gn=e[0].conf.sizeof(b[0].typ);$s=364;case 364:if($c){$c=false;gn=gn.$blk();}if(gn&&gn.$blk!==undefined){break s;}go=G.MakeInt64(gn);$s=365;case 365:if($c){$c=false;go=go.$blk();}if(go&&go.$blk!==undefined){break s;}b[0].val=go;case 359:b[0].typ=(12>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+12]);$s=45;continue;case 41:if(!e[0].allowVersion(e[0].pkg,1,17)){$s=366;continue;}$s=367;continue;case 366:$r=e[0].errorf(c.Fun,134,"unsafe.Slice requires go1.17 or later",new NA([]));$s=368;case 368:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}gp=m;$s=369;case 369:return gp;case 367:gr=CF(b[0].typ);$s=370;case 370:if($c){$c=false;gr=gr.$blk();}if(gr&&gr.$blk!==undefined){break s;}gq=$assertType(gr,OB,true);gs=gq[0];if(gs===OB.nil){$s=371;continue;}$s=372;continue;case 371:$r=e[0].invalidArg(b[0],134,"%s is not a pointer",new NA([b[0]]));$s=373;case 373:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}gt=m;$s=374;case 374:return gt;case 372:l[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=p(l[0],1);$s=375;case 375:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}gu=e[0].isValidIndex(l[0],134,"length",false);$s=378;case 378:if($c){$c=false;gu=gu.$blk();}if(gu&&gu.$blk!==undefined){break s;}if(!gu){$s=376;continue;}$s=377;continue;case 376:gv=m;$s=379;case 379:return gv;case 377:b[0].mode=7;b[0].typ=DE(gs.base);if(!(e[0].Info.Types===false)){$s=380;continue;}$s=381;continue;case 380:$r=e[0].recordBuiltinType(c.Fun,LC(b[0].typ,new MS([gs,l[0].typ])));$s=382;case 382:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 381:$s=45;continue;case 42:if(!((b[0].mode===4))){gw=true;$s=385;continue s;}gx=EC(b[0].typ);$s=386;case 386:if($c){$c=false;gx=gx.$blk();}if(gx&&gx.$blk!==undefined){break s;}gw=!gx;case 385:if(gw){$s=383;continue;}$s=384;continue;case 383:$r=e[0].invalidArg(b[0],1,"%s is not a boolean constant",new NA([b[0]]));$s=387;case 387:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}gy=m;$s=388;case 388:return gy;case 384:gz=b[0].val.Kind();$s=391;case 391:if($c){$c=false;gz=gz.$blk();}if(gz&&gz.$blk!==undefined){break s;}if(!((gz===1))){$s=389;continue;}$s=390;continue;case 389:$r=e[0].errorf(b[0],1,"internal error: value of %s should be a boolean constant",new NA([b[0]]));$s=392;case 392:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ha=m;$s=393;case 393:return ha;case 390:hb=G.BoolVal(b[0].val);$s=396;case 396:if($c){$c=false;hb=hb.$blk();}if(hb&&hb.$blk!==undefined){break s;}if(!hb){$s=394;continue;}$s=395;continue;case 394:$r=e[0].errorf(c,1,"%v failed",new NA([c]));$s=397;case 397:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 395:$s=45;continue;case 43:if(q===0){$s=398;continue;}$s=399;continue;case 398:hc=c.Pos();$s=400;case 400:if($c){$c=false;hc=hc.$blk();}if(hc&&hc.$blk!==undefined){break s;}hd=new C.Pos(hc);$r=e[0].dump("%v: trace() without arguments",new NA([hd]));$s=401;case 401:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b[0].mode=1;$s=24;continue;case 399:g[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);he=b[0];hf=c.Args;hg=0;case 402:if(!(hg=hf.$length)?($throwRuntimeError("index out of range"),undefined):hf.$array[hf.$offset+hg]);hi=e[0].rawExpr(he,hh,$ifaceNil,false);$s=404;case 404:if($c){$c=false;hi=hi.$blk();}if(hi&&hi.$blk!==undefined){break s;}hi;hj=he.Pos();$s=405;case 405:if($c){$c=false;hj=hj.$blk();}if(hj&&hj.$blk!==undefined){break s;}hk=new C.Pos(hj);hl=he;$r=e[0].dump("%v: %s",new NA([hk,hl]));$s=406;case 406:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}he=g[0];hg++;$s=402;continue;case 403:$s=45;continue;case 44:JN();case 45:case 24:m=true;hm=m;$s=407;case 407:return hm;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return m;}if($curGoroutine.asleep){var $f={$blk:KR.ptr.prototype.builtin,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};KR.prototype.builtin=function(b,c,d){return this.$val.builtin(b,c,d);};LB=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=CF(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;if($assertType(c,NE,true)[1]){$s=2;continue;}if($assertType(c,NF,true)[1]){$s=3;continue;}if($assertType(c,NH,true)[1]){$s=4;continue;}if($assertType(c,NI,true)[1]||$assertType(c,NG,true)[1]){$s=5;continue;}$s=6;continue;case 2:e=c.$val;i=LB(e.elem);$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=8;case 8:return j;case 3:f=c.$val;k=f.fields;l=0;case 9:if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);n=LB(m.object.typ);$s=13;case 13:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}if(n){$s=11;continue;}$s=12;continue;case 11:$s=-1;return true;case 12:l++;$s=9;continue;case 10:$s=6;continue;case 4:g=c.$val;$s=-1;return EY(b);case 5:h=c;JN();case 6:$s=-1;return false;}return;}var $f={$blk:LB,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};KR.ptr.prototype.applyTypeFunc=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:b=[b];e=[e];f=this;g=$assertType(c.typ,NJ,true);h=g[0];if(!(h===NJ.nil)){$s=1;continue;}$s=2;continue;case 1:e[0]=NS.nil;i=h.is((function(b,e){return function $b(i){var{i,j,k,$s,$r,$c}=$restore(this,{i});$s=$s||0;s:while(true){switch($s){case 0:if(i===MP.nil){$s=-1;return false;}j=b[0](i.typ);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!($interfaceIsEqual(k,$ifaceNil))){e[0]=$append(e[0],AS(i.tilde,k));$s=-1;return true;}$s=-1;return false;}return;}var $f={$blk:$b,$c:true,$r,i,j,k,$s};return $f;};})(b,e));$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(!i){$s=3;continue;}$s=4;continue;case 3:$s=-1;return $ifaceNil;case 4:j=0;k=d;if(k===(13)){j=93;}else if(k===(6)){j=89;}else if(k===(3)){j=87;}else{JN();}$r=f.softErrorf(c,j,"%s not supported as argument to %s for go1.18 (see issue #50937)",new NA([c,new $String(((d<0||d>=AK.length)?($throwRuntimeError("index out of range"),undefined):AK[d]).name)]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=GA(0,f.pkg,h.obj.object.name,$ifaceNil);m=l;n=HY(MJ.nil,new MS([AQ(e[0])]));$s=7;case 7:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;p=f.newTypeParam(m,o);$s=8;case 8:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;q.index=h.index;$s=-1;return q;case 2:r=b[0](c.typ);$s=9;case 9:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;$s=10;case 10:return s;}return;}var $f={$blk:KR.ptr.prototype.applyTypeFunc,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};KR.prototype.applyTypeFunc=function(b,c,d){return this.$val.applyTypeFunc(b,c,d);};LC=function(b,c){var b,c,d,e,f,g,h,i,j;d=$makeSlice(NO,c.$length);e=c;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]=GD(0,MF.nil,"",FG(h)));f++;}i=CK(d);j=NM.nil;if(!($interfaceIsEqual(b,$ifaceNil))){JM(!EW(b));j=CK(new NO([GD(0,MF.nil,"",b)]));}return new DM.ptr(OX.nil,OX.nil,ME.nil,NN.nil,i,j,false);};LD=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=$assertType(b,OB,true);d=c[0];e=c[1];if(e){$s=1;continue;}$s=2;continue;case 1:g=CF(d.base);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=$assertType(g,NE,true);h=f[0];if(!(h===NE.nil)){$s=-1;return h;}case 2:$s=-1;return b;}return;}var $f={$blk:LD,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};LE=function(b){var b,c,d,e;while(true){c=$assertType(b,OO,true);d=c[0];e=c[1];if(!e){return b;}b=d.X;}};LH.ptr.prototype.Kind=function(){var b;b=this;return b.kind;};LH.prototype.Kind=function(){return this.$val.Kind();};LH.ptr.prototype.Info=function(){var b;b=this;return b.info;};LH.prototype.Info=function(){return this.$val.Info();};LH.ptr.prototype.Name=function(){var b;b=this;return b.name;};LH.prototype.Name=function(){return this.$val.Name();};LH.ptr.prototype.Underlying=function(){var b;b=this;return b;};LH.prototype.Underlying=function(){return this.$val.Underlying();};LH.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BF(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:LH.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};LH.prototype.String=function(){return this.$val.String();};KR.ptr.prototype.assignment=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=[e];f=this;$r=f.singleValue(b);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=b.mode;if(g===(0)){$s=3;continue;}if((g===(4))||(g===(5))||(g===(6))||(g===(7))||(g===(8))||(g===(9))){$s=4;continue;}$s=5;continue;case 3:$s=-1;return;case 4:$s=6;continue;case 5:$r=f.errorf(b,0,"cannot assign %s to %s in %s",new NA([b,c,new $String(d)]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 6:case 2:if(EW(b.typ)){$s=8;continue;}$s=9;continue;case 8:h=c;if($interfaceIsEqual(c,$ifaceNil)){i=true;$s=12;continue s;}j=EX(c);$s=13;case 13:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j&&!EY(c);case 12:if(i){$s=10;continue;}$s=11;continue;case 10:if($interfaceIsEqual(c,$ifaceNil)&&$interfaceIsEqual(b.typ,(25>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+25]))){$s=14;continue;}$s=15;continue;case 14:$r=f.errorf(b,16,"use of untyped nil in %s",new NA([new $String(d)]));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 15:h=FG(b.typ);case 11:l=f.implicitTypeAndValue(b,h);$s=17;case 17:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];o=k[2];if(!((o===0))){$s=18;continue;}$s=19;continue;case 18:p=f.sprintf("cannot use %s as %s value in %s",new NA([b,h,new $String(d)]));$s=20;case 20:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;r=o;if(r===(43)){q=q+(" (truncated)");}else if(r===(44)){q=q+(" (overflows)");}else{o=23;}$r=f.error(b,o,q);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.mode=0;$s=-1;return;case 19:if(!($interfaceIsEqual(n,$ifaceNil))){b.val=n;f.updateExprVal(b.expr,n);}if(!($interfaceIsEqual(m,b.typ))){$s=22;continue;}$s=23;continue;case 22:b.typ=m;$r=f.updateExprType(b.expr,m,false);$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 23:case 9:t=CF(b.typ);$s=25;case 25:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=$assertType(t,OC,true);u=s[0];if(!(u===OC.nil)&&u.TypeParams().Len()>0){$s=26;continue;}$s=27;continue;case 26:$r=f.errorf(b,137,"cannot use generic function %s without instantiation in %s",new NA([b,new $String(d)]));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 27:if($interfaceIsEqual(c,$ifaceNil)){$s=-1;return;}e[0]="";w=b.assignableTo(f,c,(e.$ptr||(e.$ptr=new OJ(function(){return this.$target[0];},function($v){this.$target[0]=$v;},e))));$s=29;case 29:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}v=w;x=v[0];y=v[1];if(!x){$s=30;continue;}$s=31;continue;case 30:if(false){$s=32;continue;}$s=33;continue;case 32:if(!(e[0]==="")){$s=35;continue;}$s=36;continue;case 35:$r=f.errorf(b,y,"cannot use %s as type %s in %s:\n\t%s",new NA([b,c,new $String(d),new $String(e[0])]));$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=37;continue;case 36:$r=f.errorf(b,y,"cannot use %s as type %s in %s",new NA([b,c,new $String(d)]));$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 37:$s=34;continue;case 33:if(!(e[0]==="")){$s=40;continue;}$s=41;continue;case 40:$r=f.errorf(b,y,"cannot use %s as %s value in %s: %s",new NA([b,c,new $String(d),new $String(e[0])]));$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=42;continue;case 41:$r=f.errorf(b,y,"cannot use %s as %s value in %s",new NA([b,c,new $String(d)]));$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 42:case 34:b.mode=0;case 31:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.assignment,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s};return $f;};KR.prototype.assignment=function(b,c,d){return this.$val.assignment(b,c,d);};KR.ptr.prototype.initConst=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if((c.mode===0)||$interfaceIsEqual(c.typ,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))||$interfaceIsEqual(b.object.typ,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){if($interfaceIsEqual(b.object.typ,$ifaceNil)){b.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);}$s=-1;return;}if(!((c.mode===4))){$s=1;continue;}$s=2;continue;case 1:$r=d.errorf(c,13,"%s is not constant",new NA([c]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if($interfaceIsEqual(b.object.typ,$ifaceNil)){b.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);}$s=-1;return;case 2:e=EK(c.typ);$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$r=JM(e);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if($interfaceIsEqual(b.object.typ,$ifaceNil)){b.object.typ=c.typ;}$r=d.assignment(c,b.object.typ,"constant declaration");$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c.mode===0){$s=-1;return;}b.val=c.val;$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.initConst,$c:true,$r,b,c,d,e,$s};return $f;};KR.prototype.initConst=function(b,c){return this.$val.initConst(b,c);};KR.ptr.prototype.initVar=function(b,c,d){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if((c.mode===0)||$interfaceIsEqual(c.typ,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))||$interfaceIsEqual(b.object.typ,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){if($interfaceIsEqual(b.object.typ,$ifaceNil)){b.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);}$s=-1;return $ifaceNil;}if($interfaceIsEqual(b.object.typ,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:f=c.typ;if(EW(f)){$s=3;continue;}$s=4;continue;case 3:if($interfaceIsEqual(f,(25>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+25]))){$s=5;continue;}$s=6;continue;case 5:$r=e.errorf(c,16,"use of untyped nil in %s",new NA([new $String(d)]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);$s=-1;return $ifaceNil;case 6:f=FG(f);case 4:b.object.typ=f;case 2:$r=e.assignment(c,b.object.typ,d);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c.mode===0){$s=-1;return $ifaceNil;}$s=-1;return c.typ;}return;}var $f={$blk:KR.ptr.prototype.initVar,$c:true,$r,b,c,d,e,f,$s};return $f;};KR.prototype.initVar=function(b,c,d){return this.$val.initVar(b,c,d);};KR.ptr.prototype.assignVar=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=[e];f=this;if((c.mode===0)||$interfaceIsEqual(c.typ,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=1;continue;}$s=2;continue;case 1:$r=f.useLHS(new NQ([b]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 2:g=$assertType(LE(b),OF,true);h=g[0];if(!(h===OF.nil)&&h.Name==="_"){$s=4;continue;}$s=5;continue;case 4:f.recordDef(h,$ifaceNil);$r=f.assignment(c,$ifaceNil,"assignment to _ identifier");$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c.mode===0){$s=-1;return $ifaceNil;}$s=-1;return c.typ;case 5:i=NN.nil;j=false;if(!(h===OF.nil)){$s=7;continue;}$s=8;continue;case 7:k=f.environment.lookup(h.Name);$s=9;case 9:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(!($interfaceIsEqual(l,$ifaceNil))){m=$assertType(l,NN,true);n=m[0];if(!(n===NN.nil)&&n.object.pkg===f.pkg){i=n;j=i.used;}}case 8:e[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=f.expr(e[0],b);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(i===NN.nil)){i.used=j;}if((e[0].mode===0)||$interfaceIsEqual(e[0].typ,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=-1;return $ifaceNil;}o=e[0].mode;if(o===(0)){$s=12;continue;}if((o===(5))||(o===(6))){$s=13;continue;}$s=14;continue;case 12:$s=-1;return $ifaceNil;case 13:$s=15;continue;case 14:p=$assertType(e[0].expr,OL,true);q=p[0];r=p[1];if(r){$s=16;continue;}$s=17;continue;case 16:d[0]=new FN.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,0);$r=f.expr(d[0],q.X);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(d[0].mode===6){$s=19;continue;}$s=20;continue;case 19:s=e[0];t=IM(e[0].expr);$s=21;case 21:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=new $String(t);$r=f.errorf(s,24,"cannot assign to struct field %s in map",new NA([u]));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 20:case 17:$r=f.errorf(e[0],18,"cannot assign to %s",new NA([e[0]]));$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 15:case 11:$r=f.assignment(c,e[0].typ,"assignment");$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c.mode===0){$s=-1;return $ifaceNil;}$s=-1;return c.typ;}return;}var $f={$blk:KR.ptr.prototype.assignVar,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};KR.prototype.assignVar=function(b,c){return this.$val.assignVar(b,c);};LI=function(b){var b,c,d,e,f;c=MS.nil;d=b;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);c=$append(c,f.typ);e++;}c=c;return c;};LJ=function(b){var b,c,d,e,f;c=MS.nil;d=b;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);c=$append(c,f.object.typ);e++;}c=c;return c;};KR.ptr.prototype.typesSummary=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=NB.nil;f=b;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j="";if($interfaceIsEqual(i,$ifaceNil)){$s=4;continue;}if($interfaceIsEqual(i,(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]))){$s=5;continue;}if(EW(i)){$s=6;continue;}if(c&&(h===(b.$length-1>>0))){$s=7;continue;}$s=8;continue;case 4:j="";$s=8;continue;case 5:j="";$s=8;continue;case 6:k=EH(i);$s=12;case 12:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(k){$s=9;continue;}$s=10;continue;case 9:j="number";$s=11;continue;case 10:j=F.Replace($assertType(i,MY).name,"untyped ","",-1);case 11:$s=8;continue;case 7:l=d.sprintf("...%s",new NA([$assertType(i,OA).elem]));$s=13;case 13:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}j=l;case 8:case 3:if(j===""){$s=14;continue;}$s=15;continue;case 14:m=d.sprintf("%s",new NA([i]));$s=16;case 16:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}j=m;case 15:e=$append(e,j);g++;$s=1;continue;case 2:$s=-1;return"("+F.Join(e,", ")+")";}return;}var $f={$blk:KR.ptr.prototype.typesSummary,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};KR.prototype.typesSummary=function(b,c){return this.$val.typesSummary(b,c);};LK=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:if(!((b===1))){c=c+("s");}d=A.Sprintf("%d %s",new NA([new $Int(b),new $String(c)]));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:LK,$c:true,$r,b,c,d,e,$s};return $f;};KR.ptr.prototype.assignError=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=LK(c,"variable");$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=LK(d,"value");$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]);if(b.$length===1){$s=3;continue;}$s=4;continue;case 3:k=$assertType(LE(j),QP,true);l=k[0];if(!(l===QP.nil)){$s=5;continue;}$s=6;continue;case 5:$r=e.errorf(j,17,"assignment mismatch: %s but %s returns %s",new NA([new $String(g),l.Fun,new $String(i)]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 6:case 4:$r=e.errorf(j,17,"assignment mismatch: %s but %s",new NA([new $String(g),new $String(i)]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.assignError,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};KR.prototype.assignError=function(b,c,d){return this.$val.assignError(b,c,d);};KR.ptr.prototype.initVars=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;g=e.exprList(c,(b.$length===2)&&$interfaceIsEqual(d,$ifaceNil));$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];if(!((b.$length===h.$length))){$s=2;continue;}$s=3;continue;case 2:j=b;k=0;while(true){if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);l.used=true;if($interfaceIsEqual(l.object.typ,$ifaceNil)){l.object.typ=(0>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+0]);}k++;}m=h;n=0;while(true){if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);if(o.mode===0){$s=-1;return;}n++;}if(!($interfaceIsEqual(d,$ifaceNil))){$s=4;continue;}$s=5;continue;case 4:p=d;q="not enough";if(h.$length>b.$length){p=(r=b.$length,((r<0||r>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+r])).expr;q="too many";}else if(h.$length>0){p=(s=h.$length-1>>0,((s<0||s>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+s])).expr;}t=p;u=new $String(q);v=e.typesSummary(LI(h),false);$s=6;case 6:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=new $String(v);x=e.typesSummary(LJ(b),false);$s=7;case 7:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=new $String(x);$r=e.errorf(t,103,"%s return values\n\thave %s\n\twant %s",new NA([u,w,y]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 5:if(false){$s=9;continue;}$s=10;continue;case 9:$r=e.assignError(c,b.$length,h.$length);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 10:$r=e.errorf((0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]),17,"cannot initialize %d variables with %d values",new NA([new $Int(b.$length),new $Int(h.$length)]));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:$s=-1;return;case 3:z="assignment";if(!($interfaceIsEqual(d,$ifaceNil))){z="return statement";}if(i){$s=14;continue;}$s=15;continue;case 14:aa=SN.zero();ab=aa;ac=0;case 16:if(!(ac<2)){$s=17;continue;}ad=ac;ae=e.initVar(((ad<0||ad>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+ad]),((ad<0||ad>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+ad]),z);$s=18;case 18:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}((ad<0||ad>=aa.length)?($throwRuntimeError("index out of range"),undefined):aa[ad]=ae);ac++;$s=16;continue;case 17:$r=e.recordCommaOkTypes((0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]),$clone(aa,SN));$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 15:af=b;ag=0;case 20:if(!(ag=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ag]);aj=e.initVar(ai,((ah<0||ah>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+ah]),z);$s=22;case 22:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}aj;ag++;$s=20;continue;case 21:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.initVars,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.initVars=function(b,c,d){return this.$val.initVars(b,c,d);};KR.ptr.prototype.assignVars=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;f=d.exprList(c,b.$length===2);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if(!((b.$length===g.$length))){$s=2;continue;}$s=3;continue;case 2:$r=d.useLHS(b);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=g;j=0;while(true){if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);if(k.mode===0){$s=-1;return;}j++;}if(false){$s=5;continue;}$s=6;continue;case 5:$r=d.assignError(c,b.$length,g.$length);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 6:$r=d.errorf((0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]),17,"cannot assign %d values to %d variables",new NA([new $Int(g.$length),new $Int(b.$length)]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:$s=-1;return;case 3:if(h){$s=10;continue;}$s=11;continue;case 10:l=SN.zero();m=l;n=0;case 12:if(!(n<2)){$s=13;continue;}o=n;p=d.assignVar(((o<0||o>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+o]),((o<0||o>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+o]));$s=14;case 14:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}((o<0||o>=l.length)?($throwRuntimeError("index out of range"),undefined):l[o]=p);n++;$s=12;continue;case 13:$r=d.recordCommaOkTypes((0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]),$clone(l,SN));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 11:q=b;r=0;case 16:if(!(r=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);u=d.assignVar(t,((s<0||s>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+s]));$s=18;case 18:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}u;r++;$s=16;continue;case 17:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.assignVars,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};KR.prototype.assignVars=function(b,c){return this.$val.assignVars(b,c);};KR.ptr.prototype.shortVarDecl=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=e.delayed.$length;g=e.environment.scope;i=(h=c.$length,((h<0||h>2147483647)?$throwRuntimeError("makemap: size out of range"):new $global.Map()));j=$makeSlice(NO,c.$length);k=$makeSlice(NO,0,c.$length);l=false;m=c;n=0;case 1:if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);q=$assertType(p,OF,true);r=q[0];if(r===OF.nil){$s=3;continue;}$s=4;continue;case 3:$r=e.useLHS(new NQ([p]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.errorf(p,131,"non-name %s on left side of :=",new NA([p]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=true;n++;$s=1;continue;case 4:s=r.Name;if(!(s==="_")){$s=7;continue;}$s=8;continue;case 7:if((t=$mapIndex(i,$String.keyFor(s)),t!==undefined?t.v:false)){$s=9;continue;}$s=10;continue;case 9:$r=e.errorf(p,132,"%s repeated on left side of :=",new NA([p]));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=true;n++;$s=1;continue;case 10:u=s;(i||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(u),{k:u,v:true});case 8:v=g.Lookup(s);$s=12;case 12:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v;if(!($interfaceIsEqual(w,$ifaceNil))){$s=13;continue;}$s=14;continue;case 13:e.recordUse(r,w);x=$assertType(w,NN,true);y=x[0];if(!(y===NN.nil)){$s=15;continue;}$s=16;continue;case 15:((o<0||o>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+o]=y);$s=17;continue;case 16:$r=e.errorf(p,18,"cannot assign to %s",new NA([p]));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=true;case 17:n++;$s=1;continue;case 14:z=GD(r.Pos(),e.pkg,s,$ifaceNil);((o<0||o>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+o]=z);if(!(s==="_")){k=$append(k,z);}e.recordDef(r,z);n++;$s=1;continue;case 2:aa=j;ab=0;case 19:if(!(ab=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+ab]);if(ad===NN.nil){$s=21;continue;}$s=22;continue;case 21:ae=((ac<0||ac>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+ac]).Pos();$s=23;case 23:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=GD(ae,e.pkg,"_",$ifaceNil);$s=24;case 24:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}((ac<0||ac>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+ac]=af);case 22:ab++;$s=19;continue;case 20:$r=e.initVars(j,d,$ifaceNil);$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.processDelayed(f);$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if((k.$length===0)&&!l){$s=27;continue;}$s=28;continue;case 27:$r=e.softErrorf(b,19,"no new variables on left side of :=",new NA([]));$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 28:ah=(ag=d.$length-1>>0,((ag<0||ag>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+ag])).End();$s=30;case 30:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;aj=k;ak=0;case 31:if(!(ak=aj.$length)?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+ak]);$r=e.declare(g,OF.nil,al,ai);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ak++;$s=31;continue;case 32:$s=-1;return;}return;}var $f={$blk:KR.ptr.prototype.shortVarDecl,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};KR.prototype.shortVarDecl=function(b,c,d){return this.$val.shortVarDecl(b,c,d);};LM=function(b,c){var b,c;return new LL.ptr(c,b);};$pkg.NewArray=LM;LL.ptr.prototype.Len=function(){var b;b=this;return b.len;};LL.prototype.Len=function(){return this.$val.Len();};LL.ptr.prototype.Elem=function(){var b;b=this;return b.elem;};LL.prototype.Elem=function(){return this.$val.Elem();};LL.ptr.prototype.Underlying=function(){var b;b=this;return b;};LL.prototype.Underlying=function(){return this.$val.Underlying();};LL.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BF(b,$throwNilPointerError);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:LL.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};LL.prototype.String=function(){return this.$val.String();};LN.ptr.prototype.Error=function(){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;d=b.Fset.Position(b.Pos);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=(c=d,new c.constructor.elem(c));f=new $String(b.Msg);g=A.Sprintf("%s: %s",new NA([e,f]));$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=3;case 3:return h;}return;}var $f={$blk:LN.ptr.prototype.Error,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};LN.prototype.Error=function(){return this.$val.Error();};LO.ptr.prototype.Error=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.Err.Error();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:LO.ptr.prototype.Error,$c:true,$r,b,c,d,$s};return $f;};LO.prototype.Error=function(){return this.$val.Error();};LO.ptr.prototype.Unwrap=function(){var b;b=this;return b.Err;};LO.prototype.Unwrap=function(){return this.$val.Unwrap();};LU.ptr.prototype.TypeOf=function(b){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=(e=$mapIndex(c.Types,B.Expr.keyFor(b)),e!==undefined?[e.v,true]:[new LV.ptr(0,$ifaceNil,$ifaceNil),false]);f=$clone(d[0],LV);g=d[1];if(g){$s=-1;return f.Type;}h=$assertType(b,OF,true);i=h[0];if(!(i===OF.nil)){$s=1;continue;}$s=2;continue;case 1:j=c.ObjectOf(i);if(!($interfaceIsEqual(j,$ifaceNil))){$s=3;continue;}$s=4;continue;case 3:k=j.Type();$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=6;case 6:return l;case 4:case 2:$s=-1;return $ifaceNil;}return;}var $f={$blk:LU.ptr.prototype.TypeOf,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};LU.prototype.TypeOf=function(b){return this.$val.TypeOf(b);};LU.ptr.prototype.ObjectOf=function(b){var b,c,d,e,f;c=this;e=(d=$mapIndex(c.Defs,OF.keyFor(b)),d!==undefined?d.v:$ifaceNil);if(!($interfaceIsEqual(e,$ifaceNil))){return e;}return(f=$mapIndex(c.Uses,OF.keyFor(b)),f!==undefined?f.v:$ifaceNil);};LU.prototype.ObjectOf=function(b){return this.$val.ObjectOf(b);};LV.ptr.prototype.IsVoid=function(){var b;b=this;return b.mode===1;};LV.prototype.IsVoid=function(){return this.$val.IsVoid();};LV.ptr.prototype.IsType=function(){var b;b=this;return b.mode===3;};LV.prototype.IsType=function(){return this.$val.IsType();};LV.ptr.prototype.IsBuiltin=function(){var b;b=this;return b.mode===2;};LV.prototype.IsBuiltin=function(){return this.$val.IsBuiltin();};LV.ptr.prototype.IsValue=function(){var b,c;b=this;c=b.mode;if((c===(4))||(c===(5))||(c===(6))||(c===(7))||(c===(8))||(c===(9))){return true;}return false;};LV.prototype.IsValue=function(){return this.$val.IsValue();};LV.ptr.prototype.IsNil=function(){var b;b=this;return(b.mode===7)&&$interfaceIsEqual(b.Type,(25>=$pkg.Typ.$length?($throwRuntimeError("index out of range"),undefined):$pkg.Typ.$array[$pkg.Typ.$offset+25]));};LV.prototype.IsNil=function(){return this.$val.IsNil();};LV.ptr.prototype.Addressable=function(){var b;b=this;return b.mode===5;};LV.prototype.Addressable=function(){return this.$val.Addressable();};LV.ptr.prototype.Assignable=function(){var b;b=this;return(b.mode===5)||(b.mode===6);};LV.prototype.Assignable=function(){return this.$val.Assignable();};LV.ptr.prototype.HasOk=function(){var b;b=this;return(b.mode===8)||(b.mode===6);};LV.prototype.HasOk=function(){return this.$val.HasOk();};LX.ptr.prototype.String=function(){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=this;b[0]=new H.Buffer.ptr(NZ.nil,0,0);d=c.Lhs;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(f>0){$s=3;continue;}$s=4;continue;case 3:h=b[0].WriteString(", ");$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 4:i=b[0].WriteString(g.object.Name());$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;e++;$s=1;continue;case 2:j=b[0].WriteString(" = ");$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;$r=IN(b[0],c.Rhs);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b[0].String();}return;}var $f={$blk:LX.ptr.prototype.String,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};LX.prototype.String=function(){return this.$val.String();};LS.ptr.prototype.Check=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;g=FK(b,"");$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=KT(f,c,h,e);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i.Files(d);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=[h,j];$s=4;case 4:return k;}return;}var $f={$blk:LS.ptr.prototype.Check,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};LS.prototype.Check=function(b,c,d,e){return this.$val.Check(b,c,d,e);};MC=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=FE(b,c,true,NX.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:MC,$c:true,$r,b,c,d,e,$s};return $f;};$pkg.Identical=MC;MD=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=FE(b,c,false,NX.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:MD,$c:true,$r,b,c,d,e,$s};return $f;};$pkg.IdenticalIgnoreTags=MD;NC.methods=[{prop:"push",name:"push",pkg:"go/types",typ:$funcType([NI],[NC],false)}];NG.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Term",name:"Term",pkg:"",typ:$funcType([$Int],[NR],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];NR.methods=[{prop:"Tilde",name:"Tilde",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];NV.methods=[{prop:"unify",name:"unify",pkg:"go/types",typ:$funcType([CE,CE],[$Bool],false)},{prop:"tracef",name:"tracef",pkg:"go/types",typ:$funcType([$String,NA],[],true)},{prop:"join",name:"join",pkg:"go/types",typ:$funcType([$Int,$Int],[$Bool],false)},{prop:"nifyEq",name:"nifyEq",pkg:"go/types",typ:$funcType([CE,CE,NX],[$Bool],false)},{prop:"nify",name:"nify",pkg:"go/types",typ:$funcType([CE,CE,NX],[$Bool],false)}];SO.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"init",name:"init",pkg:"go/types",typ:$funcType([NL],[],false)},{prop:"index",name:"index",pkg:"go/types",typ:$funcType([CE],[$Int],false)},{prop:"setIndex",name:"setIndex",pkg:"go/types",typ:$funcType([$Int,$Int],[],false)},{prop:"at",name:"at",pkg:"go/types",typ:$funcType([$Int],[CE],false)},{prop:"set",name:"set",pkg:"go/types",typ:$funcType([$Int,CE],[],false)},{prop:"unknowns",name:"unknowns",pkg:"go/types",typ:$funcType([],[$Int],false)},{prop:"types",name:"types",pkg:"go/types",typ:$funcType([],[MS,$Int],false)}];MP.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"equal",name:"equal",pkg:"go/types",typ:$funcType([MP],[$Bool],false)},{prop:"union",name:"union",pkg:"go/types",typ:$funcType([MP],[MP,MP],false)},{prop:"intersect",name:"intersect",pkg:"go/types",typ:$funcType([MP],[MP],false)},{prop:"includes",name:"includes",pkg:"go/types",typ:$funcType([CE],[$Bool],false)},{prop:"subsetOf",name:"subsetOf",pkg:"go/types",typ:$funcType([MP],[$Bool],false)},{prop:"disjoint",name:"disjoint",pkg:"go/types",typ:$funcType([MP],[$Bool],false)}];SQ.methods=[{prop:"byte$",name:"byte",pkg:"go/types",typ:$funcType([$Uint8],[],false)},{prop:"string",name:"string",pkg:"go/types",typ:$funcType([$String],[],false)},{prop:"error",name:"error",pkg:"go/types",typ:$funcType([$String],[],false)},{prop:"typ",name:"typ",pkg:"go/types",typ:$funcType([CE],[],false)},{prop:"typeSet",name:"typeSet",pkg:"go/types",typ:$funcType([MV],[],false)},{prop:"typeList",name:"typeList",pkg:"go/types",typ:$funcType([MS],[],false)},{prop:"tParamList",name:"tParamList",pkg:"go/types",typ:$funcType([NL],[],false)},{prop:"typeName",name:"typeName",pkg:"go/types",typ:$funcType([MR],[],false)},{prop:"tuple",name:"tuple",pkg:"go/types",typ:$funcType([NM,$Bool],[],false)},{prop:"signature",name:"signature",pkg:"go/types",typ:$funcType([OC],[],false)}];MV.methods=[{prop:"IsEmpty",name:"IsEmpty",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsAll",name:"IsAll",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsMethodSet",name:"IsMethodSet",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsComparable",name:"IsComparable",pkg:"",typ:$funcType([SR],[$Bool],false)},{prop:"NumMethods",name:"NumMethods",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Method",name:"Method",pkg:"",typ:$funcType([$Int],[MI],false)},{prop:"LookupMethod",name:"LookupMethod",pkg:"",typ:$funcType([MF,$String,$Bool],[$Int,MI],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"hasTerms",name:"hasTerms",pkg:"go/types",typ:$funcType([],[$Bool],false)},{prop:"subsetOf",name:"subsetOf",pkg:"go/types",typ:$funcType([MV],[$Bool],false)},{prop:"is",name:"is",pkg:"go/types",typ:$funcType([SS],[$Bool],false)},{prop:"underIs",name:"underIs",pkg:"go/types",typ:$funcType([ST],[$Bool],false)}];BT.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)}];NJ.methods=[{prop:"Index",name:"Index",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Obj",name:"Obj",pkg:"",typ:$funcType([],[MR],false)},{prop:"Constraint",name:"Constraint",pkg:"",typ:$funcType([],[CE],false)},{prop:"SetConstraint",name:"SetConstraint",pkg:"",typ:$funcType([CE],[],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"cleanup",name:"cleanup",pkg:"go/types",typ:$funcType([],[],false)},{prop:"iface",name:"iface",pkg:"go/types",typ:$funcType([],[NH],false)},{prop:"is",name:"is",pkg:"go/types",typ:$funcType([SS],[$Bool],false)},{prop:"underIs",name:"underIs",pkg:"go/types",typ:$funcType([ST],[$Bool],false)}];OX.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"At",name:"At",pkg:"",typ:$funcType([$Int],[NJ],false)},{prop:"list",name:"list",pkg:"go/types",typ:$funcType([],[NL],false)}];NK.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"At",name:"At",pkg:"",typ:$funcType([$Int],[CE],false)},{prop:"list",name:"list",pkg:"go/types",typ:$funcType([],[MS],false)}];NM.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"At",name:"At",pkg:"",typ:$funcType([$Int],[NN],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];CL.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"isEmpty",name:"isEmpty",pkg:"go/types",typ:$funcType([],[$Bool],false)},{prop:"isAll",name:"isAll",pkg:"go/types",typ:$funcType([],[$Bool],false)},{prop:"norm",name:"norm",pkg:"go/types",typ:$funcType([],[CL],false)},{prop:"union",name:"union",pkg:"go/types",typ:$funcType([CL],[CL],false)},{prop:"intersect",name:"intersect",pkg:"go/types",typ:$funcType([CL],[CL],false)},{prop:"equal",name:"equal",pkg:"go/types",typ:$funcType([CL],[$Bool],false)},{prop:"includes",name:"includes",pkg:"go/types",typ:$funcType([CE],[$Bool],false)},{prop:"supersetOf",name:"supersetOf",pkg:"go/types",typ:$funcType([MP],[$Bool],false)},{prop:"subsetOf",name:"subsetOf",pkg:"go/types",typ:$funcType([CL],[$Bool],false)}];CN.methods=[{prop:"empty",name:"empty",pkg:"go/types",typ:$funcType([],[$Bool],false)},{prop:"lookup",name:"lookup",pkg:"go/types",typ:$funcType([NJ],[CE],false)}];SU.methods=[{prop:"typ",name:"typ",pkg:"go/types",typ:$funcType([CE],[CE],false)},{prop:"typOrNil",name:"typOrNil",pkg:"go/types",typ:$funcType([CE],[CE],false)},{prop:"var_",name:"var_",pkg:"go/types",typ:$funcType([NN],[NN],false)},{prop:"tuple",name:"tuple",pkg:"go/types",typ:$funcType([NM],[NM],false)},{prop:"varList",name:"varList",pkg:"go/types",typ:$funcType([NO],[NO,$Bool],false)},{prop:"func_",name:"func_",pkg:"go/types",typ:$funcType([MI],[MI],false)},{prop:"funcList",name:"funcList",pkg:"go/types",typ:$funcType([MJ],[MJ,$Bool],false)},{prop:"typeList",name:"typeList",pkg:"go/types",typ:$funcType([MS],[MS,$Bool],false)},{prop:"termlist",name:"termlist",pkg:"go/types",typ:$funcType([NS],[NS,$Bool],false)}];NF.methods=[{prop:"NumFields",name:"NumFields",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Field",name:"Field",pkg:"",typ:$funcType([$Int],[NN],false)},{prop:"Tag",name:"Tag",pkg:"",typ:$funcType([$Int],[$String],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"markComplete",name:"markComplete",pkg:"go/types",typ:$funcType([],[],false)}];OA.methods=[{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[CE],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];QL.methods=[{prop:"Alignof",name:"Alignof",pkg:"",typ:$funcType([CE],[$Int64],false)},{prop:"Offsetsof",name:"Offsetsof",pkg:"",typ:$funcType([NO],[QK],false)},{prop:"Sizeof",name:"Sizeof",pkg:"",typ:$funcType([CE],[$Int64],false)}];OC.methods=[{prop:"Recv",name:"Recv",pkg:"",typ:$funcType([],[NN],false)},{prop:"TypeParams",name:"TypeParams",pkg:"",typ:$funcType([],[OX],false)},{prop:"RecvTypeParams",name:"RecvTypeParams",pkg:"",typ:$funcType([],[OX],false)},{prop:"Params",name:"Params",pkg:"",typ:$funcType([],[NM],false)},{prop:"Results",name:"Results",pkg:"",typ:$funcType([],[NM],false)},{prop:"Variadic",name:"Variadic",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];MM.methods=[{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[DP],false)},{prop:"Recv",name:"Recv",pkg:"",typ:$funcType([],[CE],false)},{prop:"Obj",name:"Obj",pkg:"",typ:$funcType([],[FQ],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[CE],false)},{prop:"Index",name:"Index",pkg:"",typ:$funcType([],[NW],false)},{prop:"Indirect",name:"Indirect",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];ME.methods=[{prop:"Parent",name:"Parent",pkg:"",typ:$funcType([],[ME],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Names",name:"Names",pkg:"",typ:$funcType([],[NB],false)},{prop:"NumChildren",name:"NumChildren",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Child",name:"Child",pkg:"",typ:$funcType([$Int],[ME],false)},{prop:"Lookup",name:"Lookup",pkg:"",typ:$funcType([$String],[FQ],false)},{prop:"LookupParent",name:"LookupParent",pkg:"",typ:$funcType([$String,C.Pos],[ME,FQ],false)},{prop:"Insert",name:"Insert",pkg:"",typ:$funcType([FQ],[FQ],false)},{prop:"_InsertLazy",name:"_InsertLazy",pkg:"go/types",typ:$funcType([$String,SV],[$Bool],false)},{prop:"insert",name:"insert",pkg:"go/types",typ:$funcType([$String,FQ],[],false)},{prop:"squash",name:"squash",pkg:"go/types",typ:$funcType([SW],[],false)},{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"End",name:"End",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"Contains",name:"Contains",pkg:"",typ:$funcType([C.Pos],[$Bool],false)},{prop:"Innermost",name:"Innermost",pkg:"",typ:$funcType([C.Pos],[ME],false)},{prop:"WriteTo",name:"WriteTo",pkg:"",typ:$funcType([M.Writer,$Int,$Bool],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];QO.methods=[{prop:"Parent",name:"Parent",pkg:"",typ:$funcType([],[ME],false)},{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"Pkg",name:"Pkg",pkg:"",typ:$funcType([],[MF],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[CE],false)},{prop:"Exported",name:"Exported",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Id",name:"Id",pkg:"",typ:$funcType([],[$String],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"order",name:"order",pkg:"go/types",typ:$funcType([],[$Uint32],false)},{prop:"color",name:"color",pkg:"go/types",typ:$funcType([],[FT],false)},{prop:"setType",name:"setType",pkg:"go/types",typ:$funcType([CE],[],false)},{prop:"setOrder",name:"setOrder",pkg:"go/types",typ:$funcType([$Uint32],[],false)},{prop:"setColor",name:"setColor",pkg:"go/types",typ:$funcType([FT],[],false)},{prop:"setParent",name:"setParent",pkg:"go/types",typ:$funcType([ME],[],false)},{prop:"sameId",name:"sameId",pkg:"go/types",typ:$funcType([MF,$String],[$Bool],false)},{prop:"scopePos",name:"scopePos",pkg:"go/types",typ:$funcType([],[C.Pos],false)},{prop:"setScopePos",name:"setScopePos",pkg:"go/types",typ:$funcType([C.Pos],[],false)}];PK.methods=[{prop:"hasInitializer",name:"hasInitializer",pkg:"go/types",typ:$funcType([],[$Bool],false)},{prop:"addDep",name:"addDep",pkg:"go/types",typ:$funcType([FQ],[],false)}];EA.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)}];NX.methods=[{prop:"identical",name:"identical",pkg:"go/types",typ:$funcType([NX],[$Bool],false)}];OB.methods=[{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[CE],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];MF.methods=[{prop:"Path",name:"Path",pkg:"",typ:$funcType([],[$String],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetName",name:"SetName",pkg:"",typ:$funcType([$String],[],false)},{prop:"Scope",name:"Scope",pkg:"",typ:$funcType([],[ME],false)},{prop:"Complete",name:"Complete",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"MarkComplete",name:"MarkComplete",pkg:"",typ:$funcType([],[],false)},{prop:"Imports",name:"Imports",pkg:"",typ:$funcType([],[QY],false)},{prop:"SetImports",name:"SetImports",pkg:"",typ:$funcType([QY],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];PB.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"setConst",name:"setConst",pkg:"go/types",typ:$funcType([C.Token,$String],[],false)},{prop:"isNil",name:"isNil",pkg:"go/types",typ:$funcType([],[$Bool],false)},{prop:"assignableTo",name:"assignableTo",pkg:"go/types",typ:$funcType([MQ,CE,OJ],[$Bool,JV],false)},{prop:"convertibleTo",name:"convertibleTo",pkg:"go/types",typ:$funcType([MQ,CE,OJ],[$Bool],false)}];PF.methods=[{prop:"insert",name:"insert",pkg:"go/types",typ:$funcType([FQ],[FQ],false)}];SZ.methods=[{prop:"Parent",name:"Parent",pkg:"",typ:$funcType([],[ME],false)},{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"Pkg",name:"Pkg",pkg:"",typ:$funcType([],[MF],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[CE],false)},{prop:"Exported",name:"Exported",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Id",name:"Id",pkg:"",typ:$funcType([],[$String],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"order",name:"order",pkg:"go/types",typ:$funcType([],[$Uint32],false)},{prop:"color",name:"color",pkg:"go/types",typ:$funcType([],[FT],false)},{prop:"scopePos",name:"scopePos",pkg:"go/types",typ:$funcType([],[C.Pos],false)},{prop:"setParent",name:"setParent",pkg:"go/types",typ:$funcType([ME],[],false)},{prop:"setType",name:"setType",pkg:"go/types",typ:$funcType([CE],[],false)},{prop:"setOrder",name:"setOrder",pkg:"go/types",typ:$funcType([$Uint32],[],false)},{prop:"setColor",name:"setColor",pkg:"go/types",typ:$funcType([FT],[],false)},{prop:"setScopePos",name:"setScopePos",pkg:"go/types",typ:$funcType([C.Pos],[],false)},{prop:"sameId",name:"sameId",pkg:"go/types",typ:$funcType([MF,$String],[$Bool],false)}];FT.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];OG.methods=[{prop:"Imported",name:"Imported",pkg:"",typ:$funcType([],[MF],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];OH.methods=[{prop:"Val",name:"Val",pkg:"",typ:$funcType([],[G.Value],false)},{prop:"isDependency",name:"isDependency",pkg:"go/types",typ:$funcType([],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];MR.methods=[{prop:"IsAlias",name:"IsAlias",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];NN.methods=[{prop:"Anonymous",name:"Anonymous",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Embedded",name:"Embedded",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsField",name:"IsField",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"isDependency",name:"isDependency",pkg:"go/types",typ:$funcType([],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];MI.methods=[{prop:"FullName",name:"FullName",pkg:"",typ:$funcType([],[$String],false)},{prop:"Scope",name:"Scope",pkg:"",typ:$funcType([],[ME],false)},{prop:"hasPtrRecv",name:"hasPtrRecv",pkg:"go/types",typ:$funcType([],[$Bool],false)},{prop:"isDependency",name:"isDependency",pkg:"go/types",typ:$funcType([],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];QZ.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];NP.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];OI.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];NI.methods=[{prop:"resolve",name:"resolve",pkg:"go/types",typ:$funcType([OZ],[NI],false)},{prop:"cleanup",name:"cleanup",pkg:"go/types",typ:$funcType([],[],false)},{prop:"Obj",name:"Obj",pkg:"",typ:$funcType([],[MR],false)},{prop:"Origin",name:"Origin",pkg:"",typ:$funcType([],[NI],false)},{prop:"TypeParams",name:"TypeParams",pkg:"",typ:$funcType([],[OX],false)},{prop:"SetTypeParams",name:"SetTypeParams",pkg:"",typ:$funcType([NL],[],false)},{prop:"TypeArgs",name:"TypeArgs",pkg:"",typ:$funcType([],[NK],false)},{prop:"NumMethods",name:"NumMethods",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Method",name:"Method",pkg:"",typ:$funcType([$Int],[MI],false)},{prop:"instantiateMethod",name:"instantiateMethod",pkg:"go/types",typ:$funcType([$Int],[MI],false)},{prop:"SetUnderlying",name:"SetUnderlying",pkg:"",typ:$funcType([CE],[],false)},{prop:"AddMethod",name:"AddMethod",pkg:"",typ:$funcType([MI],[],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"under",name:"under",pkg:"go/types",typ:$funcType([],[CE],false)},{prop:"setUnderlying",name:"setUnderlying",pkg:"go/types",typ:$funcType([CE],[],false)},{prop:"lookupMethod",name:"lookupMethod",pkg:"go/types",typ:$funcType([MF,$String,$Bool],[$Int,MI],false)}];TB.methods=[{prop:"recordCanon",name:"recordCanon",pkg:"go/types",typ:$funcType([NJ,NJ],[],false)},{prop:"recordInstance",name:"recordInstance",pkg:"go/types",typ:$funcType([MF,C.Pos,NL,MS,NQ],[],false)},{prop:"assign",name:"assign",pkg:"go/types",typ:$funcType([MF,C.Pos,NJ,CE],[],false)},{prop:"localNamedVertex",name:"localNamedVertex",pkg:"go/types",typ:$funcType([MF,NI],[$Int],false)},{prop:"typeParamVertex",name:"typeParamVertex",pkg:"go/types",typ:$funcType([NJ],[$Int],false)},{prop:"addEdge",name:"addEdge",pkg:"go/types",typ:$funcType([$Int,$Int,$Int,C.Pos,CE],[],false)}];TE.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"At",name:"At",pkg:"",typ:$funcType([$Int],[MM],false)},{prop:"Lookup",name:"Lookup",pkg:"",typ:$funcType([MF,$String],[MM],false)}];HB.methods=[{prop:"add",name:"add",pkg:"go/types",typ:$funcType([MJ,NW,$Bool,$Bool],[HB],false)},{prop:"addOne",name:"addOne",pkg:"go/types",typ:$funcType([MI,NW,$Bool,$Bool],[HB],false)}];PA.methods=[{prop:"isLazy",name:"isLazy",pkg:"go/types",typ:$funcType([],[$Bool],false)},{prop:"Add",name:"Add",pkg:"",typ:$funcType([MI],[],false)},{prop:"Lookup",name:"Lookup",pkg:"",typ:$funcType([MF,$String,$Bool],[$Int,MI],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"At",name:"At",pkg:"",typ:$funcType([$Int,TF],[MI],false)}];OD.methods=[{prop:"Key",name:"Key",pkg:"",typ:$funcType([],[CE],false)},{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[CE],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];TG.methods=[{prop:"lookup",name:"lookup",pkg:"go/types",typ:$funcType([NI],[NI],false)},{prop:"add",name:"add",pkg:"go/types",typ:$funcType([NI],[],false)}];RF.methods=[{prop:"insert",name:"insert",pkg:"go/types",typ:$funcType([PS],[],false)},{prop:"gotoTarget",name:"gotoTarget",pkg:"go/types",typ:$funcType([$String],[PS],false)},{prop:"enclosingTarget",name:"enclosingTarget",pkg:"go/types",typ:$funcType([$String],[PS],false)}];NH.methods=[{prop:"typeSet",name:"typeSet",pkg:"go/types",typ:$funcType([],[MV],false)},{prop:"MarkImplicit",name:"MarkImplicit",pkg:"",typ:$funcType([],[],false)},{prop:"NumExplicitMethods",name:"NumExplicitMethods",pkg:"",typ:$funcType([],[$Int],false)},{prop:"ExplicitMethod",name:"ExplicitMethod",pkg:"",typ:$funcType([$Int],[MI],false)},{prop:"NumEmbeddeds",name:"NumEmbeddeds",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Embedded",name:"Embedded",pkg:"",typ:$funcType([$Int],[NI],false)},{prop:"EmbeddedType",name:"EmbeddedType",pkg:"",typ:$funcType([$Int],[CE],false)},{prop:"NumMethods",name:"NumMethods",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Method",name:"Method",pkg:"",typ:$funcType([$Int],[MI],false)},{prop:"Empty",name:"Empty",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsComparable",name:"IsComparable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsMethodSet",name:"IsMethodSet",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsImplicit",name:"IsImplicit",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Complete",name:"Complete",pkg:"",typ:$funcType([],[NH],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"cleanup",name:"cleanup",pkg:"go/types",typ:$funcType([],[],false)}];RJ.methods=[{prop:"cost",name:"cost",pkg:"go/types",typ:$funcType([],[$Int],false)}];RK.methods=[{prop:"add",name:"add",pkg:"go/types",typ:$funcType([RJ],[],false)}];IF.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)}];RI.methods=[{prop:"Push",name:"Push",pkg:"",typ:$funcType([$emptyInterface],[],false)},{prop:"Pop",name:"Pop",pkg:"",typ:$funcType([],[$emptyInterface],false)}];TJ.methods=[{prop:"isParameterized",name:"isParameterized",pkg:"go/types",typ:$funcType([CE],[$Bool],false)},{prop:"isParameterizedTypeList",name:"isParameterizedTypeList",pkg:"go/types",typ:$funcType([MS],[$Bool],false)}];TK.methods=[{prop:"typ",name:"typ",pkg:"go/types",typ:$funcType([CE],[],false)},{prop:"varList",name:"varList",pkg:"go/types",typ:$funcType([NO],[],false)}];JQ.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)}];JS.methods=[{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)}];JZ.methods=[{prop:"node",name:"node",pkg:"go/types",typ:$funcType([],[B.Node],false)}];KA.methods=[{prop:"node",name:"node",pkg:"go/types",typ:$funcType([],[B.Node],false)}];KB.methods=[{prop:"node",name:"node",pkg:"go/types",typ:$funcType([],[B.Node],false)}];KC.methods=[{prop:"node",name:"node",pkg:"go/types",typ:$funcType([],[B.Node],false)}];KD.methods=[{prop:"node",name:"node",pkg:"go/types",typ:$funcType([],[B.Node],false)}];OZ.methods=[{prop:"instanceHash",name:"instanceHash",pkg:"go/types",typ:$funcType([CE,MS],[$String],false)},{prop:"lookup",name:"lookup",pkg:"go/types",typ:$funcType([$String,CE,MS],[CE],false)},{prop:"update",name:"update",pkg:"go/types",typ:$funcType([$String,CE,MS,CE],[CE],false)},{prop:"getID",name:"getID",pkg:"go/types",typ:$funcType([CE],[$Int],false)}];TN.methods=[{prop:"lookup",name:"lookup",pkg:"go/types",typ:$funcType([$String],[FQ],false)}];TP.methods=[{prop:"describef",name:"describef",pkg:"go/types",typ:$funcType([JP,$String,NA],[],true)}];MQ.methods=[{prop:"langCompat",name:"langCompat",pkg:"go/types",typ:$funcType([PJ],[],false)},{prop:"allowVersion",name:"allowVersion",pkg:"go/types",typ:$funcType([MF,$Int,$Int],[$Bool],false)},{prop:"validType",name:"validType",pkg:"go/types",typ:$funcType([NI],[],false)},{prop:"validType0",name:"validType0",pkg:"go/types",typ:$funcType([CE,NC,ND],[W],false)},{prop:"ident",name:"ident",pkg:"go/types",typ:$funcType([PB,OF,NI,$Bool],[],false)},{prop:"typ",name:"typ",pkg:"go/types",typ:$funcType([B.Expr],[CE],false)},{prop:"varType",name:"varType",pkg:"go/types",typ:$funcType([B.Expr],[CE],false)},{prop:"validVarType",name:"validVarType",pkg:"go/types",typ:$funcType([B.Expr,CE],[],false)},{prop:"definedType",name:"definedType",pkg:"go/types",typ:$funcType([B.Expr,NI],[CE],false)},{prop:"genericType",name:"genericType",pkg:"go/types",typ:$funcType([B.Expr,OJ],[CE],false)},{prop:"typInternal",name:"typInternal",pkg:"go/types",typ:$funcType([B.Expr,NI],[CE],false)},{prop:"instantiatedType",name:"instantiatedType",pkg:"go/types",typ:$funcType([SL,NI],[CE],false)},{prop:"arrayLength",name:"arrayLength",pkg:"go/types",typ:$funcType([B.Expr],[$Int64],false)},{prop:"typeList",name:"typeList",pkg:"go/types",typ:$funcType([NQ],[MS],false)},{prop:"newTypeParam",name:"newTypeParam",pkg:"go/types",typ:$funcType([MR,CE],[NJ],false)},{prop:"subst",name:"subst",pkg:"go/types",typ:$funcType([C.Pos,CE,CN,OZ],[CE],false)},{prop:"structType",name:"structType",pkg:"go/types",typ:$funcType([NF,OR],[],false)},{prop:"declareInSet",name:"declareInSet",pkg:"go/types",typ:$funcType([PF,C.Pos,FQ],[$Bool],false)},{prop:"tag",name:"tag",pkg:"go/types",typ:$funcType([PJ],[$String],false)},{prop:"funcBody",name:"funcBody",pkg:"go/types",typ:$funcType([PK,$String,OC,QB,G.Value],[],false)},{prop:"usage",name:"usage",pkg:"go/types",typ:$funcType([ME],[],false)},{prop:"simpleStmt",name:"simpleStmt",pkg:"go/types",typ:$funcType([B.Stmt],[],false)},{prop:"stmtList",name:"stmtList",pkg:"go/types",typ:$funcType([CW,PM],[],false)},{prop:"multipleDefaults",name:"multipleDefaults",pkg:"go/types",typ:$funcType([PM],[],false)},{prop:"openScope",name:"openScope",pkg:"go/types",typ:$funcType([B.Node,$String],[],false)},{prop:"closeScope",name:"closeScope",pkg:"go/types",typ:$funcType([],[],false)},{prop:"suspendedCall",name:"suspendedCall",pkg:"go/types",typ:$funcType([$String,QP],[],false)},{prop:"caseValues",name:"caseValues",pkg:"go/types",typ:$funcType([PB,NQ,DA],[],false)},{prop:"isNil",name:"isNil",pkg:"go/types",typ:$funcType([B.Expr],[$Bool],false)},{prop:"caseTypes",name:"caseTypes",pkg:"go/types",typ:$funcType([PB,NQ,TR],[CE],false)},{prop:"stmt",name:"stmt",pkg:"go/types",typ:$funcType([CW,B.Stmt],[],false)},{prop:"funcType",name:"funcType",pkg:"go/types",typ:$funcType([OC,OY,OT],[],false)},{prop:"collectParams",name:"collectParams",pkg:"go/types",typ:$funcType([ME,OY,$Bool],[NO,$Bool],false)},{prop:"isTerminating",name:"isTerminating",pkg:"go/types",typ:$funcType([B.Stmt,$String],[$Bool],false)},{prop:"isTerminatingList",name:"isTerminatingList",pkg:"go/types",typ:$funcType([PM,$String],[$Bool],false)},{prop:"isTerminatingSwitch",name:"isTerminatingSwitch",pkg:"go/types",typ:$funcType([QB,$String],[$Bool],false)},{prop:"arityMatch",name:"arityMatch",pkg:"go/types",typ:$funcType([QR,QR],[],false)},{prop:"declarePkgObj",name:"declarePkgObj",pkg:"go/types",typ:$funcType([OF,FQ,PK],[],false)},{prop:"filename",name:"filename",pkg:"go/types",typ:$funcType([$Int],[$String],false)},{prop:"importPackage",name:"importPackage",pkg:"go/types",typ:$funcType([JP,$String,$String],[MF],false)},{prop:"collectObjects",name:"collectObjects",pkg:"go/types",typ:$funcType([],[],false)},{prop:"unpackRecv",name:"unpackRecv",pkg:"go/types",typ:$funcType([B.Expr,$Bool],[$Bool,OF,QW],false)},{prop:"resolveBaseTypeName",name:"resolveBaseTypeName",pkg:"go/types",typ:$funcType([$Bool,OF],[$Bool,MR],false)},{prop:"packageObjects",name:"packageObjects",pkg:"go/types",typ:$funcType([],[],false)},{prop:"unusedImports",name:"unusedImports",pkg:"go/types",typ:$funcType([],[],false)},{prop:"errorUnusedPkg",name:"errorUnusedPkg",pkg:"go/types",typ:$funcType([OG],[],false)},{prop:"newNamed",name:"newNamed",pkg:"go/types",typ:$funcType([MR,NI,CE,OX,PA],[NI],false)},{prop:"bestContext",name:"bestContext",pkg:"go/types",typ:$funcType([OZ],[OZ],false)},{prop:"monomorph",name:"monomorph",pkg:"go/types",typ:$funcType([],[],false)},{prop:"reportInstanceLoop",name:"reportInstanceLoop",pkg:"go/types",typ:$funcType([$Int],[],false)},{prop:"missingMethod",name:"missingMethod",pkg:"go/types",typ:$funcType([CE,NH,$Bool],[MI,MI],false)},{prop:"missingMethodReason",name:"missingMethodReason",pkg:"go/types",typ:$funcType([CE,CE,MI,MI],[$String],false)},{prop:"interfacePtrError",name:"interfacePtrError",pkg:"go/types",typ:$funcType([CE],[$String],false)},{prop:"funcString",name:"funcString",pkg:"go/types",typ:$funcType([MI],[$String],false)},{prop:"assertableTo",name:"assertableTo",pkg:"go/types",typ:$funcType([NH,CE],[MI,MI],false)},{prop:"newAssertableTo",name:"newAssertableTo",pkg:"go/types",typ:$funcType([NH,CE],[$error],false)},{prop:"labels",name:"labels",pkg:"go/types",typ:$funcType([QB],[],false)},{prop:"blockBranches",name:"blockBranches",pkg:"go/types",typ:$funcType([ME,RF,PS,PM],[RG],false)},{prop:"newInterface",name:"newInterface",pkg:"go/types",typ:$funcType([],[NH],false)},{prop:"interfaceType",name:"interfaceType",pkg:"go/types",typ:$funcType([NH,OU,NI],[],false)},{prop:"instance",name:"instance",pkg:"go/types",typ:$funcType([C.Pos,CE,MS,OZ],[CE],false)},{prop:"validateTArgLen",name:"validateTArgLen",pkg:"go/types",typ:$funcType([C.Pos,$Int,$Int],[$Bool],false)},{prop:"verify",name:"verify",pkg:"go/types",typ:$funcType([C.Pos,NL,MS],[$Int,$error],false)},{prop:"implements$",name:"implements",pkg:"go/types",typ:$funcType([CE,CE],[$error],false)},{prop:"initOrder",name:"initOrder",pkg:"go/types",typ:$funcType([],[],false)},{prop:"reportCycle",name:"reportCycle",pkg:"go/types",typ:$funcType([ND],[],false)},{prop:"infer",name:"infer",pkg:"go/types",typ:$funcType([JP,NL,MS,NM,PC],[MS],false)},{prop:"inferB",name:"inferB",pkg:"go/types",typ:$funcType([JP,NL,MS],[MS,$Int],false)},{prop:"indexExpr",name:"indexExpr",pkg:"go/types",typ:$funcType([PB,SL],[$Bool],false)},{prop:"sliceExpr",name:"sliceExpr",pkg:"go/types",typ:$funcType([PB,RQ],[],false)},{prop:"singleIndex",name:"singleIndex",pkg:"go/types",typ:$funcType([SL],[B.Expr],false)},{prop:"index",name:"index",pkg:"go/types",typ:$funcType([B.Expr,$Int64],[CE,$Int64],false)},{prop:"isValidIndex",name:"isValidIndex",pkg:"go/types",typ:$funcType([PB,JV,$String,$Bool],[$Bool],false)},{prop:"indexedElts",name:"indexedElts",pkg:"go/types",typ:$funcType([NQ,CE,$Int64],[$Int64],false)},{prop:"op",name:"op",pkg:"go/types",typ:$funcType([IS,PB,C.Token],[$Bool],false)},{prop:"overflow",name:"overflow",pkg:"go/types",typ:$funcType([PB,C.Token,C.Pos],[],false)},{prop:"unary",name:"unary",pkg:"go/types",typ:$funcType([PB,NT],[],false)},{prop:"representable",name:"representable",pkg:"go/types",typ:$funcType([PB,MY],[],false)},{prop:"representation",name:"representation",pkg:"go/types",typ:$funcType([PB,MY],[G.Value,JV],false)},{prop:"invalidConversion",name:"invalidConversion",pkg:"go/types",typ:$funcType([JV,PB,CE],[],false)},{prop:"updateExprType",name:"updateExprType",pkg:"go/types",typ:$funcType([B.Expr,CE,$Bool],[],false)},{prop:"updateExprType0",name:"updateExprType0",pkg:"go/types",typ:$funcType([B.Expr,B.Expr,CE,$Bool],[],false)},{prop:"updateExprVal",name:"updateExprVal",pkg:"go/types",typ:$funcType([B.Expr,G.Value],[],false)},{prop:"convertUntyped",name:"convertUntyped",pkg:"go/types",typ:$funcType([PB,CE],[],false)},{prop:"implicitTypeAndValue",name:"implicitTypeAndValue",pkg:"go/types",typ:$funcType([PB,CE],[CE,G.Value,JV],false)},{prop:"comparison",name:"comparison",pkg:"go/types",typ:$funcType([PB,PB,C.Token,$Bool],[],false)},{prop:"incomparableCause",name:"incomparableCause",pkg:"go/types",typ:$funcType([CE],[$String],false)},{prop:"kindString",name:"kindString",pkg:"go/types",typ:$funcType([CE],[$String],false)},{prop:"shift",name:"shift",pkg:"go/types",typ:$funcType([PB,PB,B.Expr,C.Token],[],false)},{prop:"binary",name:"binary",pkg:"go/types",typ:$funcType([PB,B.Expr,B.Expr,B.Expr,C.Token,C.Pos],[],false)},{prop:"rawExpr",name:"rawExpr",pkg:"go/types",typ:$funcType([PB,B.Expr,CE,$Bool],[JI],false)},{prop:"nonGeneric",name:"nonGeneric",pkg:"go/types",typ:$funcType([PB],[],false)},{prop:"exprInternal",name:"exprInternal",pkg:"go/types",typ:$funcType([PB,B.Expr,CE],[JI],false)},{prop:"typeAssertion",name:"typeAssertion",pkg:"go/types",typ:$funcType([B.Expr,PB,CE,$Bool],[],false)},{prop:"expr",name:"expr",pkg:"go/types",typ:$funcType([PB,B.Expr],[],false)},{prop:"multiExpr",name:"multiExpr",pkg:"go/types",typ:$funcType([PB,B.Expr],[],false)},{prop:"exprWithHint",name:"exprWithHint",pkg:"go/types",typ:$funcType([PB,B.Expr,CE],[],false)},{prop:"exprOrType",name:"exprOrType",pkg:"go/types",typ:$funcType([PB,B.Expr,$Bool],[],false)},{prop:"exclude",name:"exclude",pkg:"go/types",typ:$funcType([PB,$Uint],[],false)},{prop:"singleValue",name:"singleValue",pkg:"go/types",typ:$funcType([PB],[],false)},{prop:"qualifier",name:"qualifier",pkg:"go/types",typ:$funcType([MF],[$String],false)},{prop:"markImports",name:"markImports",pkg:"go/types",typ:$funcType([MF],[],false)},{prop:"sprintf",name:"sprintf",pkg:"go/types",typ:$funcType([$String,NA],[$String],true)},{prop:"trace",name:"trace",pkg:"go/types",typ:$funcType([C.Pos,$String,NA],[],true)},{prop:"dump",name:"dump",pkg:"go/types",typ:$funcType([$String,NA],[],true)},{prop:"err",name:"err",pkg:"go/types",typ:$funcType([$error],[],false)},{prop:"newError",name:"newError",pkg:"go/types",typ:$funcType([JP,JV,$Bool,$String],[$error],false)},{prop:"newErrorf",name:"newErrorf",pkg:"go/types",typ:$funcType([JP,JV,$Bool,$String,NA],[$error],true)},{prop:"error",name:"error",pkg:"go/types",typ:$funcType([JP,JV,$String],[],false)},{prop:"errorf",name:"errorf",pkg:"go/types",typ:$funcType([JP,JV,$String,NA],[],true)},{prop:"softErrorf",name:"softErrorf",pkg:"go/types",typ:$funcType([JP,JV,$String,NA],[],true)},{prop:"invalidAST",name:"invalidAST",pkg:"go/types",typ:$funcType([JP,$String,NA],[],true)},{prop:"invalidArg",name:"invalidArg",pkg:"go/types",typ:$funcType([JP,JV,$String,NA],[],true)},{prop:"invalidOp",name:"invalidOp",pkg:"go/types",typ:$funcType([JP,JV,$String,NA],[],true)},{prop:"reportAltDecl",name:"reportAltDecl",pkg:"go/types",typ:$funcType([FQ],[],false)},{prop:"declare",name:"declare",pkg:"go/types",typ:$funcType([ME,OF,FQ,C.Pos],[],false)},{prop:"objDecl",name:"objDecl",pkg:"go/types",typ:$funcType([FQ,NI],[],false)},{prop:"validCycle",name:"validCycle",pkg:"go/types",typ:$funcType([FQ],[$Bool],false)},{prop:"cycleError",name:"cycleError",pkg:"go/types",typ:$funcType([ND],[],false)},{prop:"walkDecls",name:"walkDecls",pkg:"go/types",typ:$funcType([TS,TT],[],false)},{prop:"walkDecl",name:"walkDecl",pkg:"go/types",typ:$funcType([B.Decl,TT],[],false)},{prop:"constDecl",name:"constDecl",pkg:"go/types",typ:$funcType([OH,B.Expr,B.Expr,$Bool],[],false)},{prop:"varDecl",name:"varDecl",pkg:"go/types",typ:$funcType([NN,NO,B.Expr,B.Expr],[],false)},{prop:"isImportedConstraint",name:"isImportedConstraint",pkg:"go/types",typ:$funcType([CE],[$Bool],false)},{prop:"typeDecl",name:"typeDecl",pkg:"go/types",typ:$funcType([MR,QV,NI],[],false)},{prop:"collectTypeParams",name:"collectTypeParams",pkg:"go/types",typ:$funcType([QM,OY],[],false)},{prop:"bound",name:"bound",pkg:"go/types",typ:$funcType([B.Expr],[CE],false)},{prop:"declareTypeParams",name:"declareTypeParams",pkg:"go/types",typ:$funcType([NL,QW],[NL],false)},{prop:"collectMethods",name:"collectMethods",pkg:"go/types",typ:$funcType([MR],[],false)},{prop:"checkFieldUniqueness",name:"checkFieldUniqueness",pkg:"go/types",typ:$funcType([NI],[],false)},{prop:"funcDecl",name:"funcDecl",pkg:"go/types",typ:$funcType([MI,PK],[],false)},{prop:"declStmt",name:"declStmt",pkg:"go/types",typ:$funcType([B.Decl],[],false)},{prop:"conversion",name:"conversion",pkg:"go/types",typ:$funcType([PB,CE],[],false)},{prop:"addDeclDep",name:"addDeclDep",pkg:"go/types",typ:$funcType([FQ],[],false)},{prop:"brokenAlias",name:"brokenAlias",pkg:"go/types",typ:$funcType([MR],[],false)},{prop:"validAlias",name:"validAlias",pkg:"go/types",typ:$funcType([MR,CE],[],false)},{prop:"isBrokenAlias",name:"isBrokenAlias",pkg:"go/types",typ:$funcType([MR],[$Bool],false)},{prop:"rememberUntyped",name:"rememberUntyped",pkg:"go/types",typ:$funcType([B.Expr,$Bool,FL,MY,G.Value],[],false)},{prop:"later",name:"later",pkg:"go/types",typ:$funcType([TQ],[TP],false)},{prop:"push",name:"push",pkg:"go/types",typ:$funcType([FQ],[$Int],false)},{prop:"pop",name:"pop",pkg:"go/types",typ:$funcType([],[FQ],false)},{prop:"needsCleanup",name:"needsCleanup",pkg:"go/types",typ:$funcType([KS],[],false)},{prop:"initFiles",name:"initFiles",pkg:"go/types",typ:$funcType([SF],[],false)},{prop:"handleBailout",name:"handleBailout",pkg:"go/types",typ:$funcType([RU],[],false)},{prop:"Files",name:"Files",pkg:"",typ:$funcType([SF],[$error],false)},{prop:"checkFiles",name:"checkFiles",pkg:"go/types",typ:$funcType([SF],[$error],false)},{prop:"processDelayed",name:"processDelayed",pkg:"go/types",typ:$funcType([$Int],[],false)},{prop:"cleanup",name:"cleanup",pkg:"go/types",typ:$funcType([],[],false)},{prop:"record",name:"record",pkg:"go/types",typ:$funcType([PB],[],false)},{prop:"recordUntyped",name:"recordUntyped",pkg:"go/types",typ:$funcType([],[],false)},{prop:"recordTypeAndValue",name:"recordTypeAndValue",pkg:"go/types",typ:$funcType([B.Expr,FL,CE,G.Value],[],false)},{prop:"recordBuiltinType",name:"recordBuiltinType",pkg:"go/types",typ:$funcType([B.Expr,OC],[],false)},{prop:"recordCommaOkTypes",name:"recordCommaOkTypes",pkg:"go/types",typ:$funcType([B.Expr,SN],[],false)},{prop:"recordInstance",name:"recordInstance",pkg:"go/types",typ:$funcType([B.Expr,MS,CE],[],false)},{prop:"recordDef",name:"recordDef",pkg:"go/types",typ:$funcType([OF,FQ],[],false)},{prop:"recordUse",name:"recordUse",pkg:"go/types",typ:$funcType([OF,FQ],[],false)},{prop:"recordImplicit",name:"recordImplicit",pkg:"go/types",typ:$funcType([B.Node,FQ],[],false)},{prop:"recordSelection",name:"recordSelection",pkg:"go/types",typ:$funcType([OL,DP,CE,FQ,NW,$Bool],[],false)},{prop:"recordScope",name:"recordScope",pkg:"go/types",typ:$funcType([B.Node,ME],[],false)},{prop:"funcInst",name:"funcInst",pkg:"go/types",typ:$funcType([PB,SL],[],false)},{prop:"instantiateSignature",name:"instantiateSignature",pkg:"go/types",typ:$funcType([C.Pos,OC,MS,NQ],[OC],false)},{prop:"callExpr",name:"callExpr",pkg:"go/types",typ:$funcType([PB,QP],[JI],false)},{prop:"exprList",name:"exprList",pkg:"go/types",typ:$funcType([NQ,$Bool],[PC,$Bool],false)},{prop:"arguments$",name:"arguments",pkg:"go/types",typ:$funcType([QP,OC,MS,PC,NQ],[OC],false)},{prop:"selector",name:"selector",pkg:"go/types",typ:$funcType([PB,OL,NI],[],false)},{prop:"use",name:"use",pkg:"go/types",typ:$funcType([NQ],[],true)},{prop:"useLHS",name:"useLHS",pkg:"go/types",typ:$funcType([NQ],[],true)},{prop:"builtin",name:"builtin",pkg:"go/types",typ:$funcType([PB,QP,AJ],[$Bool],false)},{prop:"applyTypeFunc",name:"applyTypeFunc",pkg:"go/types",typ:$funcType([TU,PB,AJ],[CE],false)},{prop:"assignment",name:"assignment",pkg:"go/types",typ:$funcType([PB,CE,$String],[],false)},{prop:"initConst",name:"initConst",pkg:"go/types",typ:$funcType([OH,PB],[],false)},{prop:"initVar",name:"initVar",pkg:"go/types",typ:$funcType([NN,PB,$String],[CE],false)},{prop:"assignVar",name:"assignVar",pkg:"go/types",typ:$funcType([B.Expr,PB],[CE],false)},{prop:"typesSummary",name:"typesSummary",pkg:"go/types",typ:$funcType([MS,$Bool],[$String],false)},{prop:"assignError",name:"assignError",pkg:"go/types",typ:$funcType([NQ,$Int,$Int],[],false)},{prop:"initVars",name:"initVars",pkg:"go/types",typ:$funcType([NO,NQ,B.Stmt],[],false)},{prop:"assignVars",name:"assignVars",pkg:"go/types",typ:$funcType([NQ,NQ],[],false)},{prop:"shortVarDecl",name:"shortVarDecl",pkg:"go/types",typ:$funcType([JP,NQ,NQ],[],false)}];OE.methods=[{prop:"Dir",name:"Dir",pkg:"",typ:$funcType([],[KY],false)},{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[CE],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];MY.methods=[{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[LF],false)},{prop:"Info",name:"Info",pkg:"",typ:$funcType([],[LG],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];NE.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[CE],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];LN.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];UH.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Unwrap",name:"Unwrap",pkg:"",typ:$funcType([],[$error],false)}];RR.methods=[{prop:"alignof",name:"alignof",pkg:"go/types",typ:$funcType([CE],[$Int64],false)},{prop:"offsetsof",name:"offsetsof",pkg:"go/types",typ:$funcType([NF],[QK],false)},{prop:"offsetof",name:"offsetof",pkg:"go/types",typ:$funcType([CE,NW],[$Int64],false)},{prop:"sizeof",name:"sizeof",pkg:"go/types",typ:$funcType([CE],[$Int64],false)},{prop:"Check",name:"Check",pkg:"",typ:$funcType([$String,NY,SF,SD],[MF,$error],false)}];SD.methods=[{prop:"TypeOf",name:"TypeOf",pkg:"",typ:$funcType([B.Expr],[CE],false)},{prop:"ObjectOf",name:"ObjectOf",pkg:"",typ:$funcType([OF],[FQ],false)}];LV.methods=[{prop:"IsVoid",name:"IsVoid",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsType",name:"IsType",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsBuiltin",name:"IsBuiltin",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsValue",name:"IsValue",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsNil",name:"IsNil",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Addressable",name:"Addressable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Assignable",name:"Assignable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"HasOk",name:"HasOk",pkg:"",typ:$funcType([],[$Bool],false)}];RS.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];T.init("go/types",[{prop:"major",name:"major",embedded:false,exported:false,typ:$Int,tag:""},{prop:"minor",name:"minor",embedded:false,exported:false,typ:$Int,tag:""}]);X.init("go/types",[{prop:"tmap",name:"tmap",embedded:false,exported:false,typ:CN,tag:""},{prop:"link",name:"link",embedded:false,exported:false,typ:NC,tag:""}]);AP.init("go/types",[{prop:"terms",name:"terms",embedded:false,exported:false,typ:NS,tag:""}]);AR.init("go/types",[{prop:"tilde",name:"tilde",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:CE,tag:""}]);AX.init("go/types",[{prop:"exact",name:"exact",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"x",name:"x",embedded:false,exported:false,typ:AZ,tag:""},{prop:"y",name:"y",embedded:false,exported:false,typ:AZ,tag:""},{prop:"types",name:"types",embedded:false,exported:false,typ:MS,tag:""},{prop:"depth",name:"depth",embedded:false,exported:false,typ:$Int,tag:""}]);AZ.init("go/types",[{prop:"unifier",name:"unifier",embedded:false,exported:false,typ:NV,tag:""},{prop:"tparams",name:"tparams",embedded:false,exported:false,typ:NL,tag:""},{prop:"indices",name:"indices",embedded:false,exported:false,typ:NW,tag:""}]);BC.init("go/types",[{prop:"tilde",name:"tilde",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:CE,tag:""}]);BD.init([MF],[$String],false);BJ.init("go/types",[{prop:"buf",name:"buf",embedded:false,exported:false,typ:SP,tag:""},{prop:"seen",name:"seen",embedded:false,exported:false,typ:SR,tag:""},{prop:"qf",name:"qf",embedded:false,exported:false,typ:BD,tag:""},{prop:"ctxt",name:"ctxt",embedded:false,exported:false,typ:OZ,tag:""},{prop:"tparams",name:"tparams",embedded:false,exported:false,typ:OX,tag:""},{prop:"debug",name:"debug",embedded:false,exported:false,typ:$Bool,tag:""}]);BN.init("go/types",[{prop:"methods",name:"methods",embedded:false,exported:false,typ:MJ,tag:""},{prop:"terms",name:"terms",embedded:false,exported:false,typ:CL,tag:""},{prop:"comparable",name:"comparable",embedded:false,exported:false,typ:$Bool,tag:""}]);BT.init(MI);BY.init("go/types",[{prop:"check",name:"check",embedded:false,exported:false,typ:MQ,tag:""},{prop:"id",name:"id",embedded:false,exported:false,typ:$Uint64,tag:""},{prop:"obj",name:"obj",embedded:false,exported:false,typ:MR,tag:""},{prop:"index",name:"index",embedded:false,exported:false,typ:$Int,tag:""},{prop:"bound",name:"bound",embedded:false,exported:false,typ:CE,tag:""}]);CA.init("go/types",[{prop:"tparams",name:"tparams",embedded:false,exported:false,typ:NL,tag:""}]);CB.init("go/types",[{prop:"types",name:"types",embedded:false,exported:false,typ:MS,tag:""}]);CE.init([{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[CE],false)}]);CJ.init("go/types",[{prop:"vars",name:"vars",embedded:false,exported:false,typ:NO,tag:""}]);CL.init(MP);CN.init(NJ,CE);CQ.init("go/types",[{prop:"pos",name:"pos",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"smap",name:"smap",embedded:false,exported:false,typ:CN,tag:""},{prop:"check",name:"check",embedded:false,exported:false,typ:MQ,tag:""},{prop:"ctxt",name:"ctxt",embedded:false,exported:false,typ:OZ,tag:""}]);CT.init("go/types",[{prop:"fields",name:"fields",embedded:false,exported:false,typ:NO,tag:""},{prop:"tags",name:"tags",embedded:false,exported:false,typ:NB,tag:""}]);DA.init($emptyInterface,PP);DB.init("go/types",[{prop:"pos",name:"pos",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:CE,tag:""}]);DD.init("go/types",[{prop:"elem",name:"elem",embedded:false,exported:false,typ:CE,tag:""}]);DF.init([{prop:"Alignof",name:"Alignof",pkg:"",typ:$funcType([CE],[$Int64],false)},{prop:"Offsetsof",name:"Offsetsof",pkg:"",typ:$funcType([NO],[QK],false)},{prop:"Sizeof",name:"Sizeof",pkg:"",typ:$funcType([CE],[$Int64],false)}]);DG.init("",[{prop:"WordSize",name:"WordSize",embedded:false,exported:true,typ:$Int64,tag:""},{prop:"MaxAlign",name:"MaxAlign",embedded:false,exported:true,typ:$Int64,tag:""}]);DM.init("go/types",[{prop:"rparams",name:"rparams",embedded:false,exported:false,typ:OX,tag:""},{prop:"tparams",name:"tparams",embedded:false,exported:false,typ:OX,tag:""},{prop:"scope",name:"scope",embedded:false,exported:false,typ:ME,tag:""},{prop:"recv",name:"recv",embedded:false,exported:false,typ:NN,tag:""},{prop:"params",name:"params",embedded:false,exported:false,typ:NM,tag:""},{prop:"results",name:"results",embedded:false,exported:false,typ:NM,tag:""},{prop:"variadic",name:"variadic",embedded:false,exported:false,typ:$Bool,tag:""}]);DQ.init("go/types",[{prop:"kind",name:"kind",embedded:false,exported:false,typ:DP,tag:""},{prop:"recv",name:"recv",embedded:false,exported:false,typ:CE,tag:""},{prop:"obj",name:"obj",embedded:false,exported:false,typ:FQ,tag:""},{prop:"index",name:"index",embedded:false,exported:false,typ:NW,tag:""},{prop:"indirect",name:"indirect",embedded:false,exported:false,typ:$Bool,tag:""}]);DS.init("go/types",[{prop:"parent",name:"parent",embedded:false,exported:false,typ:ME,tag:""},{prop:"children",name:"children",embedded:false,exported:false,typ:QN,tag:""},{prop:"number",name:"number",embedded:false,exported:false,typ:$Int,tag:""},{prop:"elems",name:"elems",embedded:false,exported:false,typ:SX,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"end",name:"end",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"comment",name:"comment",embedded:false,exported:false,typ:$String,tag:""},{prop:"isFunc",name:"isFunc",embedded:false,exported:false,typ:$Bool,tag:""}]);DU.init("go/types",[{prop:"parent",name:"parent",embedded:false,exported:false,typ:ME,tag:""},{prop:"resolve",name:"resolve",embedded:false,exported:false,typ:SV,tag:""},{prop:"obj",name:"obj",embedded:false,exported:false,typ:FQ,tag:""},{prop:"once",name:"once",embedded:false,exported:false,typ:N.Once,tag:""}]);DY.init("go/types",[{prop:"file",name:"file",embedded:false,exported:false,typ:ME,tag:""},{prop:"lhs",name:"lhs",embedded:false,exported:false,typ:NO,tag:""},{prop:"vtyp",name:"vtyp",embedded:false,exported:false,typ:B.Expr,tag:""},{prop:"init",name:"init",embedded:false,exported:false,typ:B.Expr,tag:""},{prop:"inherited",name:"inherited",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"tdecl",name:"tdecl",embedded:false,exported:false,typ:QV,tag:""},{prop:"fdecl",name:"fdecl",embedded:false,exported:false,typ:QQ,tag:""},{prop:"deps",name:"deps",embedded:false,exported:false,typ:SY,tag:""}]);EA.init(FQ);FD.init("go/types",[{prop:"x",name:"x",embedded:false,exported:false,typ:NH,tag:""},{prop:"y",name:"y",embedded:false,exported:false,typ:NH,tag:""},{prop:"prev",name:"prev",embedded:false,exported:false,typ:NX,tag:""}]);FH.init("go/types",[{prop:"base",name:"base",embedded:false,exported:false,typ:CE,tag:""}]);FJ.init("go/types",[{prop:"path",name:"path",embedded:false,exported:false,typ:$String,tag:""},{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"scope",name:"scope",embedded:false,exported:false,typ:ME,tag:""},{prop:"complete",name:"complete",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"imports",name:"imports",embedded:false,exported:false,typ:QY,tag:""},{prop:"fake",name:"fake",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"cgo",name:"cgo",embedded:false,exported:false,typ:$Bool,tag:""}]);FN.init("go/types",[{prop:"mode",name:"mode",embedded:false,exported:false,typ:FL,tag:""},{prop:"expr",name:"expr",embedded:false,exported:false,typ:B.Expr,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:CE,tag:""},{prop:"val",name:"val",embedded:false,exported:false,typ:G.Value,tag:""},{prop:"id",name:"id",embedded:false,exported:false,typ:AJ,tag:""}]);FP.init($String,FQ);FQ.init([{prop:"Exported",name:"Exported",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Id",name:"Id",pkg:"",typ:$funcType([],[$String],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"Parent",name:"Parent",pkg:"",typ:$funcType([],[ME],false)},{prop:"Pkg",name:"Pkg",pkg:"",typ:$funcType([],[MF],false)},{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[CE],false)},{prop:"color",name:"color",pkg:"go/types",typ:$funcType([],[FT],false)},{prop:"order",name:"order",pkg:"go/types",typ:$funcType([],[$Uint32],false)},{prop:"sameId",name:"sameId",pkg:"go/types",typ:$funcType([MF,$String],[$Bool],false)},{prop:"scopePos",name:"scopePos",pkg:"go/types",typ:$funcType([],[C.Pos],false)},{prop:"setColor",name:"setColor",pkg:"go/types",typ:$funcType([FT],[],false)},{prop:"setOrder",name:"setOrder",pkg:"go/types",typ:$funcType([$Uint32],[],false)},{prop:"setParent",name:"setParent",pkg:"go/types",typ:$funcType([ME],[],false)},{prop:"setScopePos",name:"setScopePos",pkg:"go/types",typ:$funcType([C.Pos],[],false)},{prop:"setType",name:"setType",pkg:"go/types",typ:$funcType([CE],[],false)}]);FS.init("go/types",[{prop:"parent",name:"parent",embedded:false,exported:false,typ:ME,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"pkg",name:"pkg",embedded:false,exported:false,typ:MF,tag:""},{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:CE,tag:""},{prop:"order_",name:"order_",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"color_",name:"color_",embedded:false,exported:false,typ:FT,tag:""},{prop:"scopePos_",name:"scopePos_",embedded:false,exported:false,typ:C.Pos,tag:""}]);FV.init("go/types",[{prop:"object",name:"object",embedded:true,exported:false,typ:FS,tag:""},{prop:"imported",name:"imported",embedded:false,exported:false,typ:MF,tag:""},{prop:"used",name:"used",embedded:false,exported:false,typ:$Bool,tag:""}]);FX.init("go/types",[{prop:"object",name:"object",embedded:true,exported:false,typ:FS,tag:""},{prop:"val",name:"val",embedded:false,exported:false,typ:G.Value,tag:""}]);FZ.init("go/types",[{prop:"object",name:"object",embedded:true,exported:false,typ:FS,tag:""}]);GC.init("go/types",[{prop:"object",name:"object",embedded:true,exported:false,typ:FS,tag:""},{prop:"embedded",name:"embedded",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"isField",name:"isField",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"used",name:"used",embedded:false,exported:false,typ:$Bool,tag:""}]);GG.init("go/types",[{prop:"object",name:"object",embedded:true,exported:false,typ:FS,tag:""},{prop:"hasPtrRecv_",name:"hasPtrRecv_",embedded:false,exported:false,typ:$Bool,tag:""}]);GI.init("go/types",[{prop:"object",name:"object",embedded:true,exported:false,typ:FS,tag:""},{prop:"used",name:"used",embedded:false,exported:false,typ:$Bool,tag:""}]);GK.init("go/types",[{prop:"object",name:"object",embedded:true,exported:false,typ:FS,tag:""},{prop:"id",name:"id",embedded:false,exported:false,typ:AJ,tag:""}]);GM.init("go/types",[{prop:"object",name:"object",embedded:true,exported:false,typ:FS,tag:""}]);GR.init("go/types",[{prop:"check",name:"check",embedded:false,exported:false,typ:MQ,tag:""},{prop:"obj",name:"obj",embedded:false,exported:false,typ:MR,tag:""},{prop:"orig",name:"orig",embedded:false,exported:false,typ:NI,tag:""},{prop:"fromRHS",name:"fromRHS",embedded:false,exported:false,typ:CE,tag:""},{prop:"underlying",name:"underlying",embedded:false,exported:false,typ:CE,tag:""},{prop:"tparams",name:"tparams",embedded:false,exported:false,typ:OX,tag:""},{prop:"targs",name:"targs",embedded:false,exported:false,typ:NK,tag:""},{prop:"methods",name:"methods",embedded:false,exported:false,typ:PA,tag:""},{prop:"resolver",name:"resolver",embedded:false,exported:false,typ:TA,tag:""},{prop:"once",name:"once",embedded:false,exported:false,typ:N.Once,tag:""}]);GV.init("go/types",[{prop:"vertices",name:"vertices",embedded:false,exported:false,typ:SH,tag:""},{prop:"edges",name:"edges",embedded:false,exported:false,typ:SI,tag:""},{prop:"canon",name:"canon",embedded:false,exported:false,typ:TC,tag:""},{prop:"nameIdx",name:"nameIdx",embedded:false,exported:false,typ:TD,tag:""}]);GW.init("go/types",[{prop:"weight",name:"weight",embedded:false,exported:false,typ:$Int,tag:""},{prop:"pre",name:"pre",embedded:false,exported:false,typ:$Int,tag:""},{prop:"len",name:"len",embedded:false,exported:false,typ:$Int,tag:""},{prop:"obj",name:"obj",embedded:false,exported:false,typ:MR,tag:""}]);GX.init("go/types",[{prop:"dst",name:"dst",embedded:false,exported:false,typ:$Int,tag:""},{prop:"src",name:"src",embedded:false,exported:false,typ:$Int,tag:""},{prop:"weight",name:"weight",embedded:false,exported:false,typ:$Int,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:CE,tag:""}]);GY.init("go/types",[{prop:"list",name:"list",embedded:false,exported:false,typ:MN,tag:""}]);HB.init($String,MM);HC.init("go/types",[{prop:"methods",name:"methods",embedded:false,exported:false,typ:MJ,tag:""},{prop:"guards",name:"guards",embedded:false,exported:false,typ:RD,tag:""}]);HF.init("go/types",[{prop:"key",name:"key",embedded:false,exported:false,typ:CE,tag:""},{prop:"elem",name:"elem",embedded:false,exported:false,typ:CE,tag:""}]);HJ.init("go/types",[{prop:"typ",name:"typ",embedded:false,exported:false,typ:CE,tag:""},{prop:"index",name:"index",embedded:false,exported:false,typ:NW,tag:""},{prop:"indirect",name:"indirect",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"multiples",name:"multiples",embedded:false,exported:false,typ:$Bool,tag:""}]);HM.init("go/types",[{prop:"m",name:"m",embedded:false,exported:false,typ:TH,tag:""}]);HU.init("go/types",[{prop:"parent",name:"parent",embedded:false,exported:false,typ:RF,tag:""},{prop:"lstmt",name:"lstmt",embedded:false,exported:false,typ:PS,tag:""},{prop:"labels",name:"labels",embedded:false,exported:false,typ:TI,tag:""}]);HV.init("go/types",[{prop:"check",name:"check",embedded:false,exported:false,typ:MQ,tag:""},{prop:"obj",name:"obj",embedded:false,exported:false,typ:MR,tag:""},{prop:"methods",name:"methods",embedded:false,exported:false,typ:MJ,tag:""},{prop:"embeddeds",name:"embeddeds",embedded:false,exported:false,typ:MS,tag:""},{prop:"embedPos",name:"embedPos",embedded:false,exported:false,typ:MU,tag:""},{prop:"implicit",name:"implicit",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"complete",name:"complete",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"tset",name:"tset",embedded:false,exported:false,typ:MV,tag:""}]);IB.init([{prop:"Exported",name:"Exported",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Id",name:"Id",pkg:"",typ:$funcType([],[$String],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"Parent",name:"Parent",pkg:"",typ:$funcType([],[ME],false)},{prop:"Pkg",name:"Pkg",pkg:"",typ:$funcType([],[MF],false)},{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[CE],false)},{prop:"color",name:"color",pkg:"go/types",typ:$funcType([],[FT],false)},{prop:"isDependency",name:"isDependency",pkg:"go/types",typ:$funcType([],[],false)},{prop:"order",name:"order",pkg:"go/types",typ:$funcType([],[$Uint32],false)},{prop:"sameId",name:"sameId",pkg:"go/types",typ:$funcType([MF,$String],[$Bool],false)},{prop:"scopePos",name:"scopePos",pkg:"go/types",typ:$funcType([],[C.Pos],false)},{prop:"setColor",name:"setColor",pkg:"go/types",typ:$funcType([FT],[],false)},{prop:"setOrder",name:"setOrder",pkg:"go/types",typ:$funcType([$Uint32],[],false)},{prop:"setParent",name:"setParent",pkg:"go/types",typ:$funcType([ME],[],false)},{prop:"setScopePos",name:"setScopePos",pkg:"go/types",typ:$funcType([C.Pos],[],false)},{prop:"setType",name:"setType",pkg:"go/types",typ:$funcType([CE],[],false)}]);IC.init("go/types",[{prop:"obj",name:"obj",embedded:false,exported:false,typ:IB,tag:""},{prop:"pred",name:"pred",embedded:false,exported:false,typ:ID,tag:""},{prop:"succ",name:"succ",embedded:false,exported:false,typ:ID,tag:""},{prop:"index",name:"index",embedded:false,exported:false,typ:$Int,tag:""},{prop:"ndeps",name:"ndeps",embedded:false,exported:false,typ:$Int,tag:""}]);ID.init(RJ,$Bool);IF.init(RJ);II.init("go/types",[{prop:"seen",name:"seen",embedded:false,exported:false,typ:SR,tag:""},{prop:"tparams",name:"tparams",embedded:false,exported:false,typ:NL,tag:""}]);IK.init("go/types",[{prop:"tparams",name:"tparams",embedded:false,exported:false,typ:NL,tag:""},{prop:"types",name:"types",embedded:false,exported:false,typ:MS,tag:""},{prop:"seen",name:"seen",embedded:false,exported:false,typ:SR,tag:""}]);IS.init(C.Token,ST);JP.init([{prop:"Pos",name:"Pos",pkg:"",typ:$funcType([],[C.Pos],false)}]);JQ.init("go/types",[{prop:"start",name:"start",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"end",name:"end",embedded:false,exported:false,typ:C.Pos,tag:""}]);JY.init([{prop:"node",name:"node",pkg:"go/types",typ:$funcType([],[B.Node],false)}]);JZ.init("go/types",[{prop:"spec",name:"spec",embedded:false,exported:false,typ:RW,tag:""}]);KA.init("go/types",[{prop:"spec",name:"spec",embedded:false,exported:false,typ:QR,tag:""},{prop:"iota",name:"iota",embedded:false,exported:false,typ:$Int,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:B.Expr,tag:""},{prop:"init",name:"init",embedded:false,exported:false,typ:NQ,tag:""},{prop:"inherited",name:"inherited",embedded:false,exported:false,typ:$Bool,tag:""}]);KB.init("go/types",[{prop:"spec",name:"spec",embedded:false,exported:false,typ:QR,tag:""}]);KC.init("go/types",[{prop:"spec",name:"spec",embedded:false,exported:false,typ:QV,tag:""}]);KD.init("go/types",[{prop:"decl",name:"decl",embedded:false,exported:false,typ:QQ,tag:""}]);KI.init("go/types",[{prop:"mu",name:"mu",embedded:false,exported:false,typ:N.Mutex,tag:""},{prop:"typeMap",name:"typeMap",embedded:false,exported:false,typ:TL,tag:""},{prop:"nextID",name:"nextID",embedded:false,exported:false,typ:$Int,tag:""},{prop:"originIDs",name:"originIDs",embedded:false,exported:false,typ:TM,tag:""}]);KJ.init("go/types",[{prop:"orig",name:"orig",embedded:false,exported:false,typ:CE,tag:""},{prop:"targs",name:"targs",embedded:false,exported:false,typ:MS,tag:""},{prop:"instance",name:"instance",embedded:false,exported:false,typ:CE,tag:""}]);KL.init("go/types",[{prop:"isLhs",name:"isLhs",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"mode",name:"mode",embedded:false,exported:false,typ:FL,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:MY,tag:""},{prop:"val",name:"val",embedded:false,exported:false,typ:G.Value,tag:""}]);KM.init("go/types",[{prop:"decl",name:"decl",embedded:false,exported:false,typ:PK,tag:""},{prop:"scope",name:"scope",embedded:false,exported:false,typ:ME,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"iota",name:"iota",embedded:false,exported:false,typ:G.Value,tag:""},{prop:"errpos",name:"errpos",embedded:false,exported:false,typ:JP,tag:""},{prop:"inTParamList",name:"inTParamList",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"sig",name:"sig",embedded:false,exported:false,typ:OC,tag:""},{prop:"isPanic",name:"isPanic",embedded:false,exported:false,typ:TO,tag:""},{prop:"hasLabel",name:"hasLabel",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"hasCallOrRecv",name:"hasCallOrRecv",embedded:false,exported:false,typ:$Bool,tag:""}]);KN.init("go/types",[{prop:"path",name:"path",embedded:false,exported:false,typ:$String,tag:""},{prop:"dir",name:"dir",embedded:false,exported:false,typ:$String,tag:""}]);KO.init("go/types",[{prop:"scope",name:"scope",embedded:false,exported:false,typ:ME,tag:""},{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""}]);KP.init("go/types",[{prop:"f",name:"f",embedded:false,exported:false,typ:TQ,tag:""},{prop:"desc",name:"desc",embedded:false,exported:false,typ:SC,tag:""}]);KQ.init("go/types",[{prop:"pos",name:"pos",embedded:false,exported:false,typ:JP,tag:""},{prop:"format",name:"format",embedded:false,exported:false,typ:$String,tag:""},{prop:"args",name:"args",embedded:false,exported:false,typ:NA,tag:""}]);KR.init("go/types",[{prop:"conf",name:"conf",embedded:false,exported:false,typ:RR,tag:""},{prop:"ctxt",name:"ctxt",embedded:false,exported:false,typ:OZ,tag:""},{prop:"fset",name:"fset",embedded:false,exported:false,typ:NY,tag:""},{prop:"pkg",name:"pkg",embedded:false,exported:false,typ:MF,tag:""},{prop:"Info",name:"Info",embedded:true,exported:true,typ:SD,tag:""},{prop:"version",name:"version",embedded:false,exported:false,typ:T,tag:""},{prop:"nextID",name:"nextID",embedded:false,exported:false,typ:$Uint64,tag:""},{prop:"objMap",name:"objMap",embedded:false,exported:false,typ:TV,tag:""},{prop:"impMap",name:"impMap",embedded:false,exported:false,typ:TW,tag:""},{prop:"infoMap",name:"infoMap",embedded:false,exported:false,typ:TX,tag:""},{prop:"pkgPathMap",name:"pkgPathMap",embedded:false,exported:false,typ:TZ,tag:""},{prop:"seenPkgMap",name:"seenPkgMap",embedded:false,exported:false,typ:UA,tag:""},{prop:"files",name:"files",embedded:false,exported:false,typ:SF,tag:""},{prop:"imports",name:"imports",embedded:false,exported:false,typ:SG,tag:""},{prop:"dotImportMap",name:"dotImportMap",embedded:false,exported:false,typ:UB,tag:""},{prop:"recvTParamMap",name:"recvTParamMap",embedded:false,exported:false,typ:UC,tag:""},{prop:"brokenAliases",name:"brokenAliases",embedded:false,exported:false,typ:UD,tag:""},{prop:"unionTypeSets",name:"unionTypeSets",embedded:false,exported:false,typ:UE,tag:""},{prop:"mono",name:"mono",embedded:false,exported:false,typ:GV,tag:""},{prop:"firstErr",name:"firstErr",embedded:false,exported:false,typ:$error,tag:""},{prop:"methods",name:"methods",embedded:false,exported:false,typ:UF,tag:""},{prop:"untyped",name:"untyped",embedded:false,exported:false,typ:UG,tag:""},{prop:"delayed",name:"delayed",embedded:false,exported:false,typ:SJ,tag:""},{prop:"objPath",name:"objPath",embedded:false,exported:false,typ:ND,tag:""},{prop:"cleaners",name:"cleaners",embedded:false,exported:false,typ:SK,tag:""},{prop:"environment",name:"environment",embedded:true,exported:false,typ:KM,tag:""},{prop:"indent",name:"indent",embedded:false,exported:false,typ:$Int,tag:""}]);KS.init([{prop:"cleanup",name:"cleanup",pkg:"go/types",typ:$funcType([],[],false)}]);KU.init("",[]);KX.init("go/types",[{prop:"dir",name:"dir",embedded:false,exported:false,typ:KY,tag:""},{prop:"elem",name:"elem",embedded:false,exported:false,typ:CE,tag:""}]);LH.init("go/types",[{prop:"kind",name:"kind",embedded:false,exported:false,typ:LF,tag:""},{prop:"info",name:"info",embedded:false,exported:false,typ:LG,tag:""},{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""}]);LL.init("go/types",[{prop:"len",name:"len",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"elem",name:"elem",embedded:false,exported:false,typ:CE,tag:""}]);LN.init("go/types",[{prop:"Fset",name:"Fset",embedded:false,exported:true,typ:NY,tag:""},{prop:"Pos",name:"Pos",embedded:false,exported:true,typ:C.Pos,tag:""},{prop:"Msg",name:"Msg",embedded:false,exported:true,typ:$String,tag:""},{prop:"Soft",name:"Soft",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"go116code",name:"go116code",embedded:false,exported:false,typ:JV,tag:""},{prop:"go116start",name:"go116start",embedded:false,exported:false,typ:C.Pos,tag:""},{prop:"go116end",name:"go116end",embedded:false,exported:false,typ:C.Pos,tag:""}]);LO.init("",[{prop:"Index",name:"Index",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Err",name:"Err",embedded:false,exported:true,typ:$error,tag:""}]);LP.init([{prop:"Import",name:"Import",pkg:"",typ:$funcType([$String],[MF,$error],false)}]);LR.init([{prop:"Import",name:"Import",pkg:"",typ:$funcType([$String],[MF,$error],false)},{prop:"ImportFrom",name:"ImportFrom",pkg:"",typ:$funcType([$String,$String,LQ],[MF,$error],false)}]);LS.init("go/types",[{prop:"Context",name:"Context",embedded:false,exported:true,typ:OZ,tag:""},{prop:"GoVersion",name:"GoVersion",embedded:false,exported:true,typ:$String,tag:""},{prop:"IgnoreFuncBodies",name:"IgnoreFuncBodies",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"FakeImportC",name:"FakeImportC",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"go115UsesCgo",name:"go115UsesCgo",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"Error",name:"Error",embedded:false,exported:true,typ:UI,tag:""},{prop:"Importer",name:"Importer",embedded:false,exported:true,typ:LP,tag:""},{prop:"Sizes",name:"Sizes",embedded:false,exported:true,typ:DF,tag:""},{prop:"DisableUnusedImportCheck",name:"DisableUnusedImportCheck",embedded:false,exported:true,typ:$Bool,tag:""}]);LU.init("",[{prop:"Types",name:"Types",embedded:false,exported:true,typ:UJ,tag:""},{prop:"Instances",name:"Instances",embedded:false,exported:true,typ:UK,tag:""},{prop:"Defs",name:"Defs",embedded:false,exported:true,typ:UL,tag:""},{prop:"Uses",name:"Uses",embedded:false,exported:true,typ:UL,tag:""},{prop:"Implicits",name:"Implicits",embedded:false,exported:true,typ:UM,tag:""},{prop:"Selections",name:"Selections",embedded:false,exported:true,typ:UN,tag:""},{prop:"Scopes",name:"Scopes",embedded:false,exported:true,typ:UO,tag:""},{prop:"InitOrder",name:"InitOrder",embedded:false,exported:true,typ:RT,tag:""}]);LV.init("go/types",[{prop:"mode",name:"mode",embedded:false,exported:false,typ:FL,tag:""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:CE,tag:""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:G.Value,tag:""}]);LW.init("",[{prop:"TypeArgs",name:"TypeArgs",embedded:false,exported:true,typ:NK,tag:""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:CE,tag:""}]);LX.init("",[{prop:"Lhs",name:"Lhs",embedded:false,exported:true,typ:NO,tag:""},{prop:"Rhs",name:"Rhs",embedded:false,exported:true,typ:B.Expr,tag:""}]);QS.init("go/types",[{prop:"obj",name:"obj",embedded:false,exported:false,typ:MI,tag:""},{prop:"ptr",name:"ptr",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"recv",name:"recv",embedded:false,exported:false,typ:OF,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=H.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=Q.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=S.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=R.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N.$init();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=O.$init();$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.Universe=ME.nil;$pkg.Unsafe=MF.nil;Y=$ifaceNil;Z=$ifaceNil;AA=$ifaceNil;AB=$ifaceNil;AC=$ifaceNil;AD=$ifaceNil;BU=new BN.ptr(MJ.nil,CL.nil,false);BW=0;GZ=new GY.ptr(MN.nil);IT=false;JG=false;a=D.MustCompile("^go([1-9][0-9]*)\\.(0|[1-9][0-9]*)$");$s=20;case 20:if($c){$c=false;a=a.$blk();}if(a&&a.$blk!==undefined){break s;}V=a;CM=new CL([new BC.ptr(false,$ifaceNil)]);BO=new BN.ptr(MJ.nil,CM,false);DI=$makeMap($String.keyFor,[{k:"386",v:new DG.ptr(new $Int64(0,4),new $Int64(0,4))},{k:"arm",v:new DG.ptr(new $Int64(0,4),new $Int64(0,4))},{k:"arm64",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"amd64",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"amd64p32",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"mips",v:new DG.ptr(new $Int64(0,4),new $Int64(0,4))},{k:"mipsle",v:new DG.ptr(new $Int64(0,4),new $Int64(0,4))},{k:"mips64",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"mips64le",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"ppc64",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"ppc64le",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"riscv64",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"s390x",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"sparc64",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"wasm",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))}]);FM=$toNativeArray($kindString,["invalid operand","no value","built-in","type","constant","variable","map index expression","value","comma, ok expression","comma, error expression","cgo function"]);HW=new HV.ptr(MQ.nil,MR.nil,MJ.nil,MS.nil,MU.nil,false,true,BO);IL=$makeMap($String.keyFor,[{k:"386",v:new DG.ptr(new $Int64(0,4),new $Int64(0,4))},{k:"alpha",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"amd64",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"amd64p32",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"arm",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"armbe",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"arm64",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"arm64be",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"ia64",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"m68k",v:new DG.ptr(new $Int64(0,4),new $Int64(0,2))},{k:"mips",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"mipsle",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"mips64",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"mips64le",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"mips64p32",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"mips64p32le",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"nios2",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"ppc",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"ppc64",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"ppc64le",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"riscv",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"riscv64",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"s390",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"s390x",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"sh",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"shbe",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"sparc",v:new DG.ptr(new $Int64(0,4),new $Int64(0,8))},{k:"sparc64",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))},{k:"wasm",v:new DG.ptr(new $Int64(0,8),new $Int64(0,8))}]);DK=DJ("gc","amd64");IW=$toNativeArray($kindString,["","","","","","","","","","","","","","","","","","","","bitwise complement"]);IX=$toNativeArray($kindString,["","","","","","","","","","","","","addition","subtraction","multiplication","","","","","bitwise XOR","shift"]);AK=$toNativeArray($kindStruct,[new MW.ptr("append",1,true,1),new MW.ptr("cap",1,false,1),new MW.ptr("close",1,false,2),new MW.ptr("complex",2,false,1),new MW.ptr("copy",2,false,2),new MW.ptr("delete",2,false,2),new MW.ptr("imag",1,false,1),new MW.ptr("len",1,false,1),new MW.ptr("make",1,true,1),new MW.ptr("new",1,false,1),new MW.ptr("panic",1,false,2),new MW.ptr("print",0,true,2),new MW.ptr("println",0,true,2),new MW.ptr("real",1,false,1),new MW.ptr("recover",0,false,2),new MW.ptr("Add",2,false,1),new MW.ptr("Alignof",1,false,1),new MW.ptr("Offsetof",1,false,1),new MW.ptr("Sizeof",1,false,1),new MW.ptr("Slice",2,false,1),new MW.ptr("assert",1,false,2),new MW.ptr("trace",0,true,2)]);KV=P.New("cannot use FakeImportC and go115UsesCgo together");LA=$toNativeArray($kindString,["_Ciconst_","_Cfconst_","_Csconst_","_Ctype_","_Cvar_","_Cfpvar_fp_","_Cfunc_","_Cmacro_"]);DH=$toNativeArray($kindUint8,[0,1,0,1,2,4,8,0,1,2,4,8,0,4,8,8,16]);AG=$toNativeArray($kindStruct,[new MX.ptr("true",19,G.MakeBool(true)),new MX.ptr("false",19,G.MakeBool(false)),new MX.ptr("iota",20,G.MakeInt64(new $Int64(0,0)))]);AE=$toNativeArray($kindPtr,[new LH.ptr(8,6,"byte"),new LH.ptr(5,2,"rune")]);$pkg.Typ=new MZ([new LH.ptr(0,0,"invalid type"),new LH.ptr(1,1,"bool"),new LH.ptr(2,2,"int"),new LH.ptr(3,2,"int8"),new LH.ptr(4,2,"int16"),new LH.ptr(5,2,"int32"),new LH.ptr(6,2,"int64"),new LH.ptr(7,6,"uint"),new LH.ptr(8,6,"uint8"),new LH.ptr(9,6,"uint16"),new LH.ptr(10,6,"uint32"),new LH.ptr(11,6,"uint64"),new LH.ptr(12,6,"uintptr"),new LH.ptr(13,8,"float32"),new LH.ptr(14,8,"float64"),new LH.ptr(15,16,"complex64"),new LH.ptr(16,16,"complex128"),new LH.ptr(17,32,"string"),new LH.ptr(18,0,"Pointer"),new LH.ptr(19,65,"untyped bool"),new LH.ptr(20,66,"untyped int"),new LH.ptr(21,66,"untyped rune"),new LH.ptr(22,72,"untyped float"),new LH.ptr(23,80,"untyped complex"),new LH.ptr(24,96,"untyped string"),new LH.ptr(25,64,"untyped nil")]);$r=AN();$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}IU();JH();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["golang.org/x/tools/internal/typeparams"]=(function(){var $pkg={},$init,C,D,E,B,H,A,F,G,I,AM,AS,BD,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,AN,P,Q,R,S,T,W,X,Y,Z,AA,AB,AD,AF,AL,AP,AQ,AR,AT,AU,AV;C=$packages["bytes"];D=$packages["errors"];E=$packages["fmt"];B=$packages["go/ast"];H=$packages["go/token"];A=$packages["go/types"];F=$packages["os"];G=$packages["strings"];I=$pkg.term=$newType(0,$kindStruct,"typeparams.term",true,"golang.org/x/tools/internal/typeparams",false,function(tilde_,typ_){this.$val=this;if(arguments.length===0){this.tilde=false;this.typ=$ifaceNil;return;}this.tilde=tilde_;this.typ=typ_;});AM=$pkg.termlist=$newType(12,$kindSlice,"typeparams.termlist",true,"golang.org/x/tools/internal/typeparams",false,null);AS=$pkg.termSet=$newType(0,$kindStruct,"typeparams.termSet",true,"golang.org/x/tools/internal/typeparams",false,function(complete_,terms_){this.$val=this;if(arguments.length===0){this.complete=false;this.terms=AM.nil;return;}this.complete=complete_;this.terms=terms_;});BD=$ptrType(I);BH=$sliceType($Uint8);BI=$sliceType($Bool);BJ=$sliceType(BD);BK=$ptrType(A.Term);BL=$sliceType(BK);BM=$sliceType($emptyInterface);BN=$ptrType(A.Interface);BO=$ptrType(AS);BP=$ptrType(A.Union);BQ=$ptrType(A.TypeParam);I.ptr.prototype.String=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a===BD.nil){$s=2;continue;}if($interfaceIsEqual(a.typ,$ifaceNil)){$s=3;continue;}if(a.tilde){$s=4;continue;}$s=5;continue;case 2:$s=-1;return"\xE2\x88\x85";case 3:$s=-1;return"\xF0\x9D\x93\xA4";case 4:b=a.typ.String();$s=7;case 7:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c="~"+b;$s=8;case 8:return c;case 5:d=a.typ.String();$s=9;case 9:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=10;case 10:return e;case 6:case 1:$s=-1;return"";}return;}var $f={$blk:I.ptr.prototype.String,$c:true,$r,a,b,c,d,e,$s};return $f;};I.prototype.String=function(){return this.$val.String();};I.ptr.prototype.union=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=BD.nil;c=BD.nil;d=this;if(d===BD.nil&&a===BD.nil){e=BD.nil;f=BD.nil;b=e;c=f;$s=-1;return[b,c];}else if(d===BD.nil){g=a;h=BD.nil;b=g;c=h;$s=-1;return[b,c];}else if(a===BD.nil){i=d;j=BD.nil;b=i;c=j;$s=-1;return[b,c];}else if($interfaceIsEqual(d.typ,$ifaceNil)){k=d;l=BD.nil;b=k;c=l;$s=-1;return[b,c];}else if($interfaceIsEqual(a.typ,$ifaceNil)){m=a;n=BD.nil;b=m;c=n;$s=-1;return[b,c];}o=d.disjoint(a);$s=3;case 3:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(o){$s=1;continue;}$s=2;continue;case 1:p=d;q=a;b=p;c=q;$s=-1;return[b,c];case 2:if(d.tilde||!a.tilde){r=d;s=BD.nil;b=r;c=s;$s=-1;return[b,c];}t=a;u=BD.nil;b=t;c=u;$s=-1;return[b,c];}return;}var $f={$blk:I.ptr.prototype.union,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};I.prototype.union=function(a){return this.$val.union(a);};I.ptr.prototype.intersect=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(b===BD.nil||a===BD.nil){$s=-1;return BD.nil;}else if($interfaceIsEqual(b.typ,$ifaceNil)){$s=-1;return a;}else if($interfaceIsEqual(a.typ,$ifaceNil)){$s=-1;return b;}c=b.disjoint(a);$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}if(c){$s=1;continue;}$s=2;continue;case 1:$s=-1;return BD.nil;case 2:if(!b.tilde||a.tilde){$s=-1;return b;}$s=-1;return a;}return;}var $f={$blk:I.ptr.prototype.intersect,$c:true,$r,a,b,c,$s};return $f;};I.prototype.intersect=function(a){return this.$val.intersect(a);};I.ptr.prototype.disjoint=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(false&&($interfaceIsEqual(b.typ,$ifaceNil)||$interfaceIsEqual(a.typ,$ifaceNil))){$panic(new $String("invalid argument(s)"));}c=b.typ;if(a.tilde){$s=1;continue;}$s=2;continue;case 1:d=AV(c);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;case 2:e=a.typ;if(b.tilde){$s=4;continue;}$s=5;continue;case 4:f=AV(e);$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;case 5:g=A.Identical(c,e);$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=!g;$s=8;case 8:return h;}return;}var $f={$blk:I.ptr.prototype.disjoint,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};I.prototype.disjoint=function(a){return this.$val.disjoint(a);};P=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=A.NewTypeParam(a,b);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:P,$c:true,$r,a,b,c,d,$s};return $f;};$pkg.NewTypeParam=P;Q=function(a,b){var{a,b,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:$r=a.SetConstraint(b);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:Q,$c:true,$r,a,b,$s};return $f;};$pkg.SetTypeParamConstraint=Q;R=function(a,b,c,d,e,f){var a,b,c,d,e,f;return A.NewSignatureType(a,b,c,d,e,f);};$pkg.NewSignatureType=R;S=function(a){var a;return a.TypeParams();};$pkg.ForSignature=S;T=function(a){var a;return a.RecvTypeParams();};$pkg.RecvTypeParams=T;W=function(a){var a;return a.IsImplicit();};$pkg.IsImplicit=W;X=function(a){var a;a.MarkImplicit();};$pkg.MarkImplicit=X;Y=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a.TypeParams();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:Y,$c:true,$r,a,b,c,$s};return $f;};$pkg.ForNamed=Y;Z=function(a,b){var{a,b,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:$r=a.SetTypeParams(b);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:Z,$c:true,$r,a,b,$s};return $f;};$pkg.SetForNamed=Z;AA=function(a){var a;return a.TypeArgs();};$pkg.NamedTypeArgs=AA;AB=function(a){var a;return a.Origin();};$pkg.NamedTypeOrigin=AB;AD=function(a,b){var a,b;return A.NewTerm(a,b);};$pkg.NewTerm=AD;AF=function(a){var a;return A.NewUnion(a);};$pkg.NewUnion=AF;AL=function(a,b,c,d){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=A.Instantiate(a,b,c,d);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:AL,$c:true,$r,a,b,c,d,e,f,$s};return $f;};$pkg.Instantiate=AL;AM.prototype.String=function(){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.$length===0){$s=-1;return"\xE2\x88\x85";}b=new C.Buffer.ptr(BH.nil,0,0);c=a;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(e>0){$s=3;continue;}$s=4;continue;case 3:g=b.WriteString(" \xE2\x88\xAA ");$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;case 4:h=f.String();$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=b.WriteString(h);$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;d++;$s=1;continue;case 2:$s=-1;return b.String();}return;}var $f={$blk:AM.prototype.String,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};$ptrType(AM).prototype.String=function(){return this.$get().String();};AM.prototype.isEmpty=function(){var a,b,c,d;a=this;b=a;c=0;while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]);if(!(d===BD.nil)){return false;}c++;}return true;};$ptrType(AM).prototype.isEmpty=function(){return this.$get().isEmpty();};AM.prototype.isAll=function(){var a,b,c,d;a=this;b=a;c=0;while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]);if(!(d===BD.nil)&&$interfaceIsEqual(d.typ,$ifaceNil)){return true;}c++;}return false;};$ptrType(AM).prototype.isAll=function(){return this.$get().isAll();};AM.prototype.norm=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=$makeSlice(BI,a.$length);c=AM.nil;d=a;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(g===BD.nil||((f<0||f>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f])){e++;$s=1;continue;}h=f+1>>0;case 3:if(!(h=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+h]);if(i===BD.nil||((h<0||h>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+h])){h=h+(1)>>0;$s=3;continue;}k=g.union(i);$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];if(m===BD.nil){if($interfaceIsEqual(l.typ,$ifaceNil)){$s=-1;return AN;}g=l;((h<0||h>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+h]=true);}h=h+(1)>>0;$s=3;continue;case 4:c=$append(c,g);e++;$s=1;continue;case 2:$s=-1;return c;}return;}var $f={$blk:AM.prototype.norm,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};$ptrType(AM).prototype.norm=function(){return this.$get().norm();};AM.prototype.union=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=$appendSlice(b,$convertSliceType(a,BJ)).norm();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:AM.prototype.union,$c:true,$r,a,b,c,d,$s};return $f;};$ptrType(AM).prototype.union=function(a){return this.$get().union(a);};AM.prototype.intersect=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(b.isEmpty()||a.isEmpty()){$s=-1;return AM.nil;}c=AM.nil;d=b;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=a;h=0;case 3:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);j=f.intersect(i);$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!(k===BD.nil)){c=$append(c,k);}h++;$s=3;continue;case 4:e++;$s=1;continue;case 2:l=c.norm();$s=6;case 6:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=7;case 7:return m;}return;}var $f={$blk:AM.prototype.intersect,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};$ptrType(AM).prototype.intersect=function(a){return this.$get().intersect(a);};AP=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=AR(a);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:AP,$c:true,$r,a,b,c,$s};return $f;};$pkg.InterfaceTermSet=AP;AQ=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=AR(a);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:AQ,$c:true,$r,a,b,c,$s};return $f;};$pkg.UnionTermSet=AQ;AR=function(a){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:c=AU(a,new $global.Map(),0);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[BL.nil,e];}if(d.terms.isEmpty()){$s=-1;return[BL.nil,$pkg.ErrEmptyTypeSet];}if(d.terms.isAll()){$s=-1;return[BL.nil,$ifaceNil];}f=BL.nil;g=d.terms;h=0;while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);f=$append(f,AD(i.tilde,i.typ));h++;}$s=-1;return[f,$ifaceNil];}return;}var $f={$blk:AR,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};AT=function(a,b,c){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=E.Fprintf(F.Stderr,G.Repeat(".",a)+b+"\n",c);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;$s=-1;return;}return;}var $f={$blk:AT,$c:true,$r,a,b,c,d,$s};return $f;};AU=function(a,b,c){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a,b,c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);c=[c];d=[d];e=[e];f=[f];e[0]=BO.nil;d[0]=$ifaceNil;if($interfaceIsEqual(a,$ifaceNil)){$panic(new $String("nil type"));}if(false){$s=1;continue;}$s=2;continue;case 1:g=c[0];h=a.String();$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=new $String(h);$r=AT(g,"%s",new BM([i]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([(function(c,d,e,f){return function $b(){var{j,k,l,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:if(!($interfaceIsEqual(d[0],$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:$r=AT(c[0],"=> %s",new BM([d[0]]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=3;continue;case 2:j=c[0];k=e[0].terms.String();$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=new $String(k);$r=AT(j,"=> %s",new BM([l]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,j,k,l,$s};return $f;};})(c,d,e,f),[]]);case 2:j=(k=$mapIndex(b,A.Type.keyFor(a)),k!==undefined?[k.v,true]:[BO.nil,false]);l=j[0];m=j[1];if(m){$s=5;continue;}$s=6;continue;case 5:if(!l.complete){$s=7;continue;}$s=8;continue;case 7:n=BO.nil;p=E.Errorf("cycle detected in the declaration of %s",new BM([a]));$s=9;case 9:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;e[0]=n;d[0]=o;q=[e[0],d[0]];$s=10;case 10:return q;case 8:r=l;s=$ifaceNil;e[0]=r;d[0]=s;t=[e[0],d[0]];$s=11;case 11:return t;case 6:f[0]=new AS.ptr(false,AM.nil);$deferred.push([(function(c,d,e,f){return function(){f[0].complete=true;};})(c,d,e,f),[]]);u=a;(b||$throwRuntimeError("assignment to entry in nil map")).set(A.Type.keyFor(u),{k:u,v:f[0]});w=a.Underlying();$s=12;case 12:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}v=w;if($assertType(v,BN,true)[1]){$s=13;continue;}if($assertType(v,BP,true)[1]){$s=14;continue;}if($assertType(v,BQ,true)[1]){$s=15;continue;}$s=16;continue;case 13:x=v.$val;f[0].terms=AN;ab=0;case 18:if(!(ab>0);$s=25;case 25:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}ak=al;am=ak[0];an=ak[1];if(!($interfaceIsEqual(an,$ifaceNil))){$s=26;continue;}$s=27;continue;case 26:ao=BO.nil;ap=an;e[0]=ao;d[0]=ap;aq=[e[0],d[0]];$s=28;case 28:return aq;case 27:ar=f[0].terms.intersect(am.terms);$s=29;case 29:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}f[0].terms=ar;ab=ab+(1)>>0;$s=18;continue;case 19:$s=17;continue;case 14:y=v.$val;f[0].terms=AM.nil;as=0;case 30:if(!(as>0);$s=37;case 37:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}ax=ay;az=ax[0];ba=ax[1];if(!($interfaceIsEqual(ba,$ifaceNil))){$s=38;continue;}$s=39;continue;case 38:bb=BO.nil;bc=ba;e[0]=bb;d[0]=bc;bd=[e[0],d[0]];$s=40;case 40:return bd;case 39:au=az.terms;$s=36;continue;case 34:be=BO.nil;bg=E.Errorf("invalid union term %T",new BM([at]));$s=41;case 41:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bf=bg;e[0]=be;d[0]=bf;bh=[e[0],d[0]];$s=42;case 42:return bh;case 35:if($interfaceIsEqual(at.Type(),(bi=A.Typ,(0>=bi.$length?($throwRuntimeError("index out of range"),undefined):bi.$array[bi.$offset+0])))){as=as+(1)>>0;$s=30;continue;}au=new AM([new I.ptr(at.Tilde(),at.Type())]);case 36:bj=f[0].terms.union(au);$s=43;case 43:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}f[0].terms=bj;if(f[0].terms.$length>100){$s=44;continue;}$s=45;continue;case 44:bk=BO.nil;bm=E.Errorf("exceeded max term count %d",new BM([new $Int(100)]));$s=46;case 46:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bl=bm;e[0]=bk;d[0]=bl;bn=[e[0],d[0]];$s=47;case 47:return bn;case 45:as=as+(1)>>0;$s=30;continue;case 31:$s=17;continue;case 15:z=v.$val;$panic(new $String("unreachable"));$s=17;continue;case 16:aa=v;if(!($interfaceIsEqual(aa,(bo=A.Typ,(0>=bo.$length?($throwRuntimeError("index out of range"),undefined):bo.$array[bo.$offset+0]))))){f[0].terms=new AM([new I.ptr(false,a)]);}case 17:bp=f[0];bq=$ifaceNil;e[0]=bp;d[0]=bq;br=[e[0],d[0]];$s=48;case 48:return br;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[e[0],d[0]];}if($curGoroutine.asleep){var $f={$blk:AU,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};AV=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a.Underlying();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:AV,$c:true,$r,a,b,c,$s};return $f;};BD.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"equal",name:"equal",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([BD],[$Bool],false)},{prop:"union",name:"union",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([BD],[BD,BD],false)},{prop:"intersect",name:"intersect",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([BD],[BD],false)},{prop:"includes",name:"includes",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([A.Type],[$Bool],false)},{prop:"subsetOf",name:"subsetOf",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([BD],[$Bool],false)},{prop:"disjoint",name:"disjoint",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([BD],[$Bool],false)}];AM.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"isEmpty",name:"isEmpty",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([],[$Bool],false)},{prop:"isAll",name:"isAll",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([],[$Bool],false)},{prop:"norm",name:"norm",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([],[AM],false)},{prop:"union",name:"union",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([AM],[AM],false)},{prop:"intersect",name:"intersect",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([AM],[AM],false)},{prop:"equal",name:"equal",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([AM],[$Bool],false)},{prop:"includes",name:"includes",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([A.Type],[$Bool],false)},{prop:"supersetOf",name:"supersetOf",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([BD],[$Bool],false)},{prop:"subsetOf",name:"subsetOf",pkg:"golang.org/x/tools/internal/typeparams",typ:$funcType([AM],[$Bool],false)}];I.init("golang.org/x/tools/internal/typeparams",[{prop:"tilde",name:"tilde",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:A.Type,tag:""}]);AM.init(BD);AS.init("golang.org/x/tools/internal/typeparams",[{prop:"complete",name:"complete",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"terms",name:"terms",embedded:false,exported:false,typ:AM,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=C.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}AN=new AM([new I.ptr(false,$ifaceNil)]);$pkg.ErrEmptyTypeSet=D.New("empty type set");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["golang.org/x/tools/go/ast/astutil"]=(function(){var $pkg={},$init,B,A,F,E,C,D,G,H,AL,AT,AX,AY,CN,CR,CU,CV,CW,CX,CY,CZ,L,P,Q,R,S,T,X,Z,AA,AB,AC,AE;B=$packages["fmt"];A=$packages["go/ast"];F=$packages["go/token"];E=$packages["golang.org/x/tools/internal/typeparams"];C=$packages["reflect"];D=$packages["sort"];G=$packages["strconv"];H=$packages["strings"];AL=$ptrType($Int);AT=$ptrType(A.CommentGroup);AX=$ptrType(A.Ident);AY=$ptrType(A.BasicLit);CN=$ptrType(A.ImportSpec);CR=$ptrType(A.GenDecl);CU=$sliceType($emptyInterface);CV=$ptrType(A.Object);CW=$sliceType(A.Spec);CX=$sliceType(CN);CY=$sliceType(AT);CZ=$sliceType(CX);P=function(a,b,c){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=false;e=Q(a,b,"",c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d;$s=2;case 2:return f;}return;}var $f={$blk:P,$c:true,$r,a,b,c,d,e,f,$s};return $f;};$pkg.AddImport=P;Q=function(a,b,c,d){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=false;if(X(b,c,d)){e=false;$s=-1;return e;}f=new A.ImportSpec.ptr(AT.nil,AX.nil,new A.BasicLit.ptr(0,9,G.Quote(d)),AT.nil,0);if(!(c==="")){f.Name=new A.Ident.ptr(0,c,CV.nil);}g=-1;h=-1;i=CR.nil;j=-1;k=R(d);l=b.Decls;m=0;while(true){if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);p=$assertType(o,CR,true);q=p[0];r=p[1];if(r&&(q.Tok===75)){h=n;if(AB(q,"C")){m++;continue;}if((q.Specs.$length===0)&&(g===-1)){i=q;}s=false;t=q.Specs;u=0;while(true){if(!(u=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]);x=$assertType(w,CN);y=AA(x);z=AC(y,d);if(z>g||((g===0)&&!s&&k)){g=z;i=q;j=v;}s=s||R(y);u++;}}m++;}if(i===CR.nil){$s=1;continue;}$s=2;continue;case 1:i=new A.GenDecl.ptr(AT.nil,0,75,0,CW.nil,0);if(h>=0){$s=3;continue;}$s=4;continue;case 3:ab=(aa=b.Decls,((h<0||h>=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+h])).End();$s=6;case 6:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}i.TokPos=ab;$s=5;continue;case 4:i.TokPos=b.Package;ac=a.File(b.Package);$s=7;case 7:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;ae=ad.Line(b.Package);$s=8;case 8:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;ag=b.Comments;ah=0;case 9:if(!(ah=ag.$length)?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+ah]);aj=ad.Line(ai.Pos());$s=13;case 13:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}if(aj>af){$s=11;continue;}$s=12;continue;case 11:$s=10;continue;case 12:i.TokPos=ai.End()+2>>0;ah++;$s=9;continue;case 10:case 5:b.Decls=$append(b.Decls,$ifaceNil);$copySlice($subslice(b.Decls,(h+2>>0)),$subslice(b.Decls,(h+1>>0)));(ak=b.Decls,al=h+1>>0,((al<0||al>=ak.$length)?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+al]=i));case 2:am=0;if(j>=0){am=j+1>>0;}i.Specs=$append(i.Specs,$ifaceNil);$copySlice($subslice(i.Specs,(am+1>>0)),$subslice(i.Specs,am));(an=i.Specs,((am<0||am>=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+am]=f));ao=i.Pos();if(am>0){$s=14;continue;}$s=15;continue;case 14:ap=$assertType((aq=i.Specs,ar=am-1>>0,((ar<0||ar>=aq.$length)?($throwRuntimeError("index out of range"),undefined):aq.$array[aq.$offset+ar])),CN,true);as=ap[0];at=ap[1];if(at&&!(as.Comment===AT.nil)){$s=16;continue;}$s=17;continue;case 16:ao=as.Comment.End();$s=18;continue;case 17:aw=(au=i.Specs,av=am-1>>0,((av<0||av>=au.$length)?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+av])).Pos();$s=19;case 19:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ao=aw;case 18:case 15:if(!(f.Name===AX.nil)){f.Name.NamePos=ao;}f.Path.ValuePos=ao;f.EndPos=ao;if(i.Specs.$length===1){$s=20;continue;}if(!new F.Pos(i.Lparen).IsValid()){$s=21;continue;}$s=22;continue;case 20:i.Lparen=0;$s=22;continue;case 21:ay=(ax=i.Specs,(0>=ax.$length?($throwRuntimeError("index out of range"),undefined):ax.$array[ax.$offset+0])).Pos();$s=23;case 23:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}i.Lparen=ay;case 22:b.Imports=$append(b.Imports,f);if(b.Decls.$length<=1){e=true;$s=-1;return e;}az=CR.nil;ba=0;while(true){if(!(ba=bb.$length)?($throwRuntimeError("index out of range"),undefined):bb.$array[bb.$offset+ba]));bd=$assertType(bc,CR,true);be=bd[0];bf=bd[1];if(!bf||!((be.Tok===75))||AB(be,"C")){ba=ba+(1)>>0;continue;}if(az===CR.nil){az=be;ba=ba+(1)>>0;continue;}az.Lparen=az.Pos();bg=be.Specs;bh=0;while(true){if(!(bh=bg.$length)?($throwRuntimeError("index out of range"),undefined):bg.$array[bg.$offset+bh]);$assertType(bi,CN).Path.ValuePos=az.Pos();az.Specs=$append(az.Specs,bi);bh++;}b.Decls=$appendSlice($subslice(b.Decls,0,ba),$subslice(b.Decls,(ba+1>>0)));ba=ba-(1)>>0;ba=ba+(1)>>0;}e=true;$s=-1;return e;}return;}var $f={$blk:Q,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.AddNamedImport=Q;R=function(a){var a;return H.Contains(a,".");};S=function(a,b,c){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=false;e=T(a,b,"",c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d;$s=2;case 2:return f;}return;}var $f={$blk:S,$c:true,$r,a,b,c,d,e,f,$s};return $f;};$pkg.DeleteImport=S;T=function(a,b,c,d){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=false;f=CX.nil;g=CY.nil;h=0;case 1:if(!(h=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+h]));k=$assertType(j,CR,true);l=k[0];m=k[1];if(!m||!((l.Tok===75))){h=h+(1)>>0;$s=1;continue;}n=0;case 3:if(!(n=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+n]));q=$assertType(p,CN);if(!(Z(q)===c)||!(AA(q)===d)){n=n+(1)>>0;$s=3;continue;}f=$append(f,q);e=true;$copySlice($subslice(l.Specs,n),$subslice(l.Specs,(n+1>>0)));l.Specs=$subslice(l.Specs,0,(l.Specs.$length-1>>0));if(l.Specs.$length===0){$s=5;continue;}if(l.Specs.$length===1){$s=6;continue;}$s=7;continue;case 5:$copySlice($subslice(b.Decls,h),$subslice(b.Decls,(h+1>>0)));b.Decls=$subslice(b.Decls,0,(b.Decls.$length-1>>0));h=h-(1)>>0;$s=4;continue;$s=7;continue;case 6:if(!(q.Doc===AT.nil)){g=$append(g,q.Doc);}if(!(q.Comment===AT.nil)){g=$append(g,q.Comment);}r=b.Comments;s=0;case 8:if(!(s=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]);if(!(t.End()=x.$length?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+0])),CN);if(!(y.Doc===AT.nil)){$s=15;continue;}$s=16;continue;case 15:case 17:z=a.Position(l.TokPos);$s=19;case 19:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=a.Position(y.Doc.Pos());$s=20;case 20:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}if(!((z.Line+1>>0)=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ae]);if(!(af.End()>0)0){$s=38;continue;}$s=39;continue;case 38:ap=$assertType((an=l.Specs,ao=n-1>>0,((ao<0||ao>=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+ao])),CN);aq=a.PositionFor(ap.Path.ValuePos,false);$s=40;case 40:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq.Line;as=a.PositionFor(q.Path.ValuePos,false);$s=41;case 41:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=as.Line;if((at-ar>>0)>1||!new F.Pos(l.Rparen).IsValid()){$s=42;continue;}au=a.File(l.Rparen);$s=45;case 45:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=au.LineCount();$s=46;case 46:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}if(!((at===av))){$s=43;continue;}$s=44;continue;case 42:$s=44;continue;case 43:aw=a.File(l.Rparen);$s=47;case 47:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}$r=aw.MergeLine(at);$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 44:case 39:n=n-(1)>>0;n=n+(1)>>0;$s=3;continue;case 4:h=h+(1)>>0;$s=1;continue;case 2:ax=0;while(true){if(!(ax=ay.$length)?($throwRuntimeError("index out of range"),undefined):ay.$array[ay.$offset+ax]));ba=f;bb=0;while(true){if(!(bb=ba.$length)?($throwRuntimeError("index out of range"),undefined):ba.$array[ba.$offset+bb]);if(az===bd){$copySlice($subslice(b.Imports,ax),$subslice(b.Imports,(ax+1>>0)));b.Imports=$subslice(b.Imports,0,(b.Imports.$length-1>>0));$copySlice($subslice(f,bc),$subslice(f,(bc+1>>0)));f=$subslice(f,0,(f.$length-1>>0));ax=ax-(1)>>0;break;}bb++;}ax=ax+(1)>>0;}be=0;while(true){if(!(be=bf.$length)?($throwRuntimeError("index out of range"),undefined):bf.$array[bf.$offset+be]));bh=g;bi=0;while(true){if(!(bi=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bi]);if(bg===bk){$copySlice($subslice(b.Comments,be),$subslice(b.Comments,(be+1>>0)));b.Comments=$subslice(b.Comments,0,(b.Comments.$length-1>>0));$copySlice($subslice(g,bj),$subslice(g,(bj+1>>0)));g=$subslice(g,0,(g.$length-1>>0));be=be-(1)>>0;break;}bi++;}be=be+(1)>>0;}if(f.$length>0){$s=49;continue;}$s=50;continue;case 49:bl=B.Sprintf("deleted specs from Decls but not Imports: %v",new CU([f]));$s=51;case 51:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}$panic(new $String(bl));case 50:$s=-1;return e;}return;}var $f={$blk:T,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.DeleteNamedImport=T;X=function(a,b,c){var a,b,c,d,e,f;d=a.Imports;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(Z(f)===b&&AA(f)===c){return true;}e++;}return false;};Z=function(a){var a;if(a.Name===AX.nil){return"";}return a.Name.Name;};AA=function(a){var a,b,c,d;b=G.Unquote(a.Path.Value);c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){return"";}return c;};AB=function(a,b){var a,b,c,d,e,f;if(!((a.Tok===75))){return false;}c=a.Specs;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=$assertType(e,CN);if(AA(f)===b){return true;}d++;}return false;};AC=function(a,b){var a,b,c,d;c=0;d=0;while(true){if(!(d>0;}d=d+(1)>>0;}return c;};AE=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=CZ.nil;d=b.Decls;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=$assertType(f,CR,true);h=g[0];i=g[1];if(!i||!((h.Tok===75))){$s=2;continue;}j=new CX([]);k=0;l=h.Specs;m=0;case 3:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);o=$assertType(n,CN);p=o.Path.ValuePos;q=a.Position(p);$s=5;case 5:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q.Line;if(k>0&&p>0&&(r-k>>0)>1){c=$append(c,j);j=new CX([]);}j=$append(j,o);k=r;m++;$s=3;continue;case 4:c=$append(c,j);e++;$s=1;continue;case 2:$s=-1;return c;}return;}var $f={$blk:AE,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};$pkg.Imports=AE;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=B.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}L=$newDataPointer(0,AL);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/gopherjs/gopherjs.github.io/playground/internal/imports"]=(function(){var $pkg={},$init,E,F,G,A,H,I,J,B,N,K,O,L,C,D,M,V,X,Y,Z,AO,BH,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,P,AF,AH,AK,AN,a,Q,R,S,T,U,W,AA,AB,AC,AD,AE,AG,AI,AJ,AL,AP;E=$packages["bufio"];F=$packages["bytes"];G=$packages["fmt"];A=$packages["go/ast"];H=$packages["go/format"];I=$packages["go/parser"];J=$packages["go/printer"];B=$packages["go/token"];N=$packages["golang.org/x/tools/go/ast/astutil"];K=$packages["io"];O=$packages["path"];L=$packages["regexp"];C=$packages["sort"];D=$packages["strconv"];M=$packages["strings"];V=$pkg.posSpan=$newType(0,$kindStruct,"imports.posSpan",true,"github.com/gopherjs/gopherjs.github.io/playground/internal/imports",false,function(Start_,End_){this.$val=this;if(arguments.length===0){this.Start=0;this.End=0;return;}this.Start=Start_;this.End=End_;});X=$pkg.byImportSpec=$newType(12,$kindSlice,"imports.byImportSpec",true,"github.com/gopherjs/gopherjs.github.io/playground/internal/imports",false,null);Y=$pkg.byCommentPos=$newType(12,$kindSlice,"imports.byCommentPos",true,"github.com/gopherjs/gopherjs.github.io/playground/internal/imports",false,null);Z=$pkg.Options=$newType(0,$kindStruct,"imports.Options",true,"github.com/gopherjs/gopherjs.github.io/playground/internal/imports",true,function(Fragment_,AllErrors_,Comments_,TabIndent_,TabWidth_){this.$val=this;if(arguments.length===0){this.Fragment=false;this.AllErrors=false;this.Comments=false;this.TabIndent=false;this.TabWidth=0;return;}this.Fragment=Fragment_;this.AllErrors=AllErrors_;this.Comments=Comments_;this.TabIndent=TabIndent_;this.TabWidth=TabWidth_;});AO=$pkg.visitFn=$newType(4,$kindFunc,"imports.visitFn",true,"github.com/gopherjs/gopherjs.github.io/playground/internal/imports",false,null);BH=$newType(0,$kindStruct,"imports.result",true,"github.com/gopherjs/gopherjs.github.io/playground/internal/imports",false,function(ipath_,name_,err_){this.$val=this;if(arguments.length===0){this.ipath="";this.name="";this.err=$ifaceNil;return;}this.ipath=ipath_;this.name=name_;this.err=err_;});AQ=$funcType([$String],[$Int,$Bool],false);AR=$sliceType(AQ);AS=$ptrType(A.GenDecl);AT=$ptrType(A.ImportSpec);AU=$ptrType(A.Ident);AV=$ptrType(A.CommentGroup);AW=$sliceType(V);AX=$sliceType(AV);AY=$ptrType(Z);AZ=$sliceType($Uint8);BA=$sliceType($String);BB=$ptrType(A.File);BC=$ptrType(A.FuncDecl);BD=$ptrType(A.FieldList);BE=$sliceType($emptyInterface);BF=$ptrType(A.SelectorExpr);BG=$ptrType(A.Object);Q=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=c.Decls;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);h=$assertType(g,AS,true);i=h[0];j=h[1];if(!j||!((i.Tok===75))){$s=2;continue;}if(i.Specs.$length===0){c.Decls=$appendSlice($subslice(c.Decls,0,f),$subslice(c.Decls,(f+1>>0)));}if(!new B.Pos(i.Lparen).IsValid()){e++;$s=1;continue;}k=0;l=$subslice(i.Specs,0,0);m=i.Specs;n=0;case 3:if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);if(!(o>k)){q=false;$s=7;continue s;}r=p.Pos();$s=8;case 8:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=b.Position(r);$s=9;case 9:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}v=(t=i.Specs,u=o-1>>0,((u<0||u>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u])).End();$s=10;case 10:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=b.Position(v);$s=11;case 11:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}q=s.Line>(1+w.Line>>0);case 7:if(q){$s=5;continue;}$s=6;continue;case 5:x=l;y=W(b,c,$subslice(i.Specs,k,o));$s=12;case 12:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;l=$appendSlice(x,z);k=o;case 6:n++;$s=3;continue;case 4:aa=l;ab=W(b,c,$subslice(i.Specs,k));$s=13;case 13:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;l=$appendSlice(aa,ac);i.Specs=l;if(i.Specs.$length>0){$s=14;continue;}$s=15;continue;case 14:af=(ad=i.Specs,ae=i.Specs.$length-1>>0,((ae<0||ae>=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ae]));ag=af.Pos();$s=16;case 16:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=b.Position(ag);$s=17;case 17:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah.Line;aj=b.Position(i.Rparen);$s=18;case 18:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=aj.Line;if(ak>(ai+1>>0)){$s=19;continue;}$s=20;continue;case 19:al=b.File(i.Rparen);$s=21;case 21:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}$r=al.MergeLine(ak-1>>0);$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 20:case 15:e++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:Q,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};R=function(b){var b,c,d,e;c=D.Unquote($assertType(b,AT).Path.Value);d=c[0];e=c[1];if($interfaceIsEqual(e,$ifaceNil)){return d;}return"";};S=function(b){var b,c;c=$assertType(b,AT).Name;if(c===AU.nil){return"";}return c.Name;};T=function(b){var b,c;c=$assertType(b,AT).Comment;if(c===AV.nil){return"";}return c.Text();};U=function(b,c){var b,c;if(!(R(c)===R(b))||!(S(c)===S(b))){return false;}return $assertType(b,AT).Comment===AV.nil;};W=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:if(d.$length<=1){$s=-1;return d;}e=$makeSlice(AW,d.$length);f=d;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=i.Pos();$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=i.End();$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}V.copy(((h<0||h>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h]),new V.ptr(j,k));g++;$s=1;continue;case 2:m=b.Position((l=e.$length-1>>0,((l<0||l>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+l])).End);$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m.Line;o=c.Comments.$length;p=c.Comments.$length;q=c.Comments;r=0;case 6:if(!(r=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);if(t.Pos()<(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]).Start){r++;$s=6;continue;}if(sn){$s=8;continue;}$s=9;continue;case 8:p=s;$s=7;continue;case 9:r++;$s=6;continue;case 7:v=$subslice(c.Comments,o,p);w=$makeMap(AT.keyFor,[]);x=0;y=v;z=0;while(true){if(!(z=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+z]);while(true){if(!((x+1>>0)>0,((ab<0||ab>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+ab])).Start<=aa.Pos())){break;}x=x+(1)>>0;}ac=$assertType(((x<0||x>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+x]),AT);ad=ac;(w||$throwRuntimeError("assignment to entry in nil map")).set(AT.keyFor(ad),{k:ad,v:$append((ae=$mapIndex(w,AT.keyFor(ac)),ae!==undefined?ae.v:AX.nil),aa)});z++;}$r=C.Sort(($convertSliceType(d,X)));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}af=$subslice(d,0,0);ag=d;ah=0;case 12:if(!(ah=ag.$length)?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+ah]);if((ai===(d.$length-1>>0))||!U(aj,(ak=ai+1>>0,((ak<0||ak>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+ak])))){$s=14;continue;}$s=15;continue;case 14:af=$append(af,aj);$s=16;continue;case 15:al=aj.Pos();$s=17;case 17:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al;an=b.File(am);$s=18;case 18:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}ao=b.Position(am);$s=19;case 19:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$r=an.MergeLine(ao.Line);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 16:ah++;$s=12;continue;case 13:d=af;ap=d;aq=0;while(true){if(!(aq=ap.$length)?($throwRuntimeError("index out of range"),undefined):ap.$array[ap.$offset+aq]);at=$assertType(as,AT);if(!(at.Name===AU.nil)){at.Name.NamePos=((ar<0||ar>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+ar]).Start;}at.Path.ValuePos=((ar<0||ar>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+ar]).Start;at.EndPos=((ar<0||ar>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+ar]).End;au=(av=$mapIndex(w,AT.keyFor(at)),av!==undefined?av.v:AX.nil);aw=0;while(true){if(!(aw=au.$length)?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+aw]);ay=ax.List;az=0;while(true){if(!(az=ay.$length)?($throwRuntimeError("index out of range"),undefined):ay.$array[ay.$offset+az]);ba.Slash=((ar<0||ar>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+ar]).End;az++;}aw++;}aq++;}$r=C.Sort(($convertSliceType(v,Y)));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return d;}return;}var $f={$blk:W,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};X.prototype.Len=function(){var b;b=this;return b.$length;};$ptrType(X).prototype.Len=function(){return this.$get().Len();};X.prototype.Swap=function(b,c){var b,c,d,e,f;d=this;e=((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]);f=((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]);((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]=e);((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]=f);};$ptrType(X).prototype.Swap=function(b,c){return this.$get().Swap(b,c);};X.prototype.Less=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=R(((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));f=R(((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]));g=AI(e);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=AI(f);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(!((h===j))){$s=-1;return h=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));l=S(((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]));if(!(k===l)){$s=-1;return k=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]))=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]));}return;}var $f={$blk:X.prototype.Less,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};$ptrType(X).prototype.Less=function(b,c){return this.$get().Less(b,c);};Y.prototype.Len=function(){var b;b=this;return b.$length;};$ptrType(Y).prototype.Len=function(){return this.$get().Len();};Y.prototype.Swap=function(b,c){var b,c,d,e,f;d=this;e=((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]);f=((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]);((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]=e);((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]=f);};$ptrType(Y).prototype.Swap=function(b,c){return this.$get().Swap(b,c);};Y.prototype.Less=function(b,c){var b,c,d;d=this;return((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]).Pos()<((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]).Pos();};$ptrType(Y).prototype.Less=function(b,c){return this.$get().Less(b,c);};AA=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=[e];if(d===AY.nil){d=new Z.ptr(false,false,true,true,8);}f=B.NewFileSet();h=AB(f,b,c,d);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;i=g[0];j=g[1];k=g[2];if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return[AZ.nil,k];}m=AJ(f,i);$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;k=l[1];if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return[AZ.nil,k];}$r=Q(f,i);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n=N.Imports(f,i);$s=4;case 4:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;p=BA.nil;q=o;r=0;case 5:if(!(r=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);t=-1;u=s;v=0;case 7:if(!(v=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v]);x=D.Unquote(w.Path.Value);y=x[0];z=AI(y);$s=9;case 9:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;if(!((aa===t))&&!((t===-1))){p=$append(p,y);}t=aa;v++;$s=7;continue;case 8:r++;$s=5;continue;case 6:ab=4;if(d.TabIndent){ab=(ab|(2))>>>0;}ac=new J.Config.ptr(ab,d.TabWidth,0);e[0]=new F.Buffer.ptr(AZ.nil,0,0);ad=ac.Fprint(e[0],f,i);$s=10;case 10:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}k=ad;if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return[AZ.nil,k];}ae=e[0].Bytes();if(!(j===$throwNilPointerError)){$s=11;continue;}$s=12;continue;case 11:af=j(c,ae);$s=13;case 13:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ae=af;case 12:if(p.$length>0){$s=14;continue;}$s=15;continue;case 14:ag=AG(F.NewReader(ae),p);$s=16;case 16:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ae=ag;case 15:ai=H.Source(ae);$s=17;case 17:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ah=ai;ae=ah[0];k=ah[1];if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return[AZ.nil,k];}$s=-1;return[ae,$ifaceNil];}return;}var $f={$blk:AA,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.Process=AA;AB=function(b,c,d,e){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=0;if(e.Comments){f=(f|(4))>>>0;}if(e.AllErrors){f=(f|(32))>>>0;}h=I.ParseFile(b,c,d,f);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;i=g[0];j=g[1];if($interfaceIsEqual(j,$ifaceNil)){$s=-1;return[i,$throwNilPointerError,$ifaceNil];}if(!e.Fragment){k=true;$s=4;continue s;}l=j.Error();$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=M.Contains(l,"expected 'package'");$s=6;case 6:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}k=!m;case 4:if(k){$s=2;continue;}$s=3;continue;case 2:$s=-1;return[BB.nil,$throwNilPointerError,j];case 3:n=$appendSlice((new AZ($stringToBytes("package main;"))),d);p=I.ParseFile(b,c,n,f);$s=7;case 7:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;i=o[0];j=o[1];if($interfaceIsEqual(j,$ifaceNil)){$s=8;continue;}$s=9;continue;case 8:if(AC(i)){$s=-1;return[i,$throwNilPointerError,$ifaceNil];}q=(function $b(q,r){var{q,r,s,t,$s,$r,$c}=$restore(this,{q,r});$s=$s||0;s:while(true){switch($s){case 0:r=$subslice(r,13);s=AE(q,r);$s=1;case 1:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;$s=2;case 2:return t;}return;}var $f={$blk:$b,$c:true,$r,q,r,s,t,$s};return $f;});$s=-1;return[i,q,$ifaceNil];case 9:r=j.Error();$s=12;case 12:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=M.Contains(r,"expected declaration");$s=13;case 13:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}if(!s){$s=10;continue;}$s=11;continue;case 10:$s=-1;return[BB.nil,$throwNilPointerError,j];case 11:t=$append($appendSlice((new AZ($stringToBytes("package p; func _() {"))),d),125);v=I.ParseFile(b,c,t,f);$s=14;case 14:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=v;i=u[0];j=u[1];if($interfaceIsEqual(j,$ifaceNil)){w=(function $b(w,x){var{w,x,y,z,$s,$r,$c}=$restore(this,{w,x});$s=$s||0;s:while(true){switch($s){case 0:x=$subslice(x,21);x=$subslice(x,0,(x.$length-2>>0));x=F.Replace(x,(new AZ($stringToBytes("\n\t"))),(new AZ($stringToBytes("\n"))),-1);y=AE(w,x);$s=1;case 1:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;$s=2;case 2:return z;}return;}var $f={$blk:$b,$c:true,$r,w,x,y,z,$s};return $f;});$s=-1;return[i,w,$ifaceNil];}$s=-1;return[BB.nil,$throwNilPointerError,j];}return;}var $f={$blk:AB,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};AC=function(b){var b,c,d,e,f,g,h;c=b.Decls;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=$assertType(e,BC,true);g=f[0];h=f[1];if(h){if(!(g.Name.Name==="main")){d++;continue;}if(!((g.Type.Params.List.$length===0))){d++;continue;}if(!(g.Type.Results===BD.nil)&&!((g.Type.Results.List.$length===0))){d++;continue;}return true;}d++;}return false;};AD=function(b){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=AZ.nil;d=AZ.nil;e=AZ.nil;f=0;while(true){if(!(f=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f])===32)||(((f<0||f>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f])===9)||(((f<0||f>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f])===10)))){break;}f=f+(1)>>0;}g=b.$length;while(true){if(!(g>0&&(((h=g-1>>0,((h<0||h>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+h]))===32)||((i=g-1>>0,((i<0||i>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+i]))===9)||((j=g-1>>0,((j<0||j>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+j]))===10)))){break;}g=g-(1)>>0;}if(f<=g){k=$subslice(b,0,f);l=$subslice(b,f,g);m=$subslice(b,g);c=k;d=l;e=m;return[c,d,e];}n=AZ.nil;o=AZ.nil;p=$subslice(b,g);c=n;d=o;e=p;return[c,d,e];};AE=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=AD(b);e=d[0];f=d[2];g=F.LastIndex(e,new AZ([10]));h=$subslice(e,0,(g+1>>0));i=$subslice(e,(g+1>>0));e=h;j=i;k=AD(c);c=k[1];l=new F.Buffer.ptr(AZ.nil,0,0);m=l.Write(e);$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;case 2:if(!(c.$length>0)){$s=3;continue;}n=c;o=F.IndexByte(n,10);if(o>=0){p=$subslice(n,0,(o+1>>0));q=$subslice(n,(o+1>>0));n=p;c=q;}else{c=AZ.nil;}if(n.$length>0&&!(((0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0])===10))){$s=4;continue;}$s=5;continue;case 4:r=l.Write(j);$s=6;case 6:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;case 5:s=l.Write(n);$s=7;case 7:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;$s=2;continue;case 3:t=l.Write(f);$s=8;case 8:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t;$s=-1;return l.Bytes();}return;}var $f={$blk:AE,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};AG=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];d[0]=new F.Buffer.ptr(AZ.nil,0,0);e=E.NewScanner(b);f=false;g=false;case 1:h=e.Scan();$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(!(h)){$s=2;continue;}i=e.Text();if(!f&&!g&&M.HasPrefix(i,"import")){f=true;}if(f&&(M.HasPrefix(i,"var")||M.HasPrefix(i,"func")||M.HasPrefix(i,"const")||M.HasPrefix(i,"type"))){g=true;f=false;}if(f&&c.$length>0){$s=4;continue;}$s=5;continue;case 4:j=AF.FindStringSubmatch(i);$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!(k===BA.nil)){$s=7;continue;}$s=8;continue;case 7:if((1>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+1])===((0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]))){$s=9;continue;}$s=10;continue;case 9:l=d[0].WriteByte(10);$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;c=$subslice(c,1);case 10:case 8:case 5:m=G.Fprintln(d[0],new BE([new $String(i)]));$s=12;case 12:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;$s=1;continue;case 2:$s=-1;return d[0].Bytes();}return;}var $f={$blk:AG,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};AI=function(b){var{b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=AH;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);g=e(b);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];if(i){$s=-1;return h;}d++;$s=1;continue;case 2:$s=-1;return 0;}return;}var $f={$blk:AI,$c:true,$r,b,c,d,e,f,g,h,i,$s};return $f;};AJ=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=[e];f=[f];g=[g];h=BA.nil;i=$ifaceNil;e[0]=new $global.Map();d[0]=new $global.Map();g[0]=$throwNilPointerError;g[0]=((function(d,e,f,g){return function $b(j){var{j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{j});$s=$s||0;s:while(true){switch($s){case 0:if($interfaceIsEqual(j,$ifaceNil)){$s=-1;return new AO(g[0]);}k=j;if($assertType(k,AT,true)[1]){$s=1;continue;}if($assertType(k,BF,true)[1]){$s=2;continue;}$s=3;continue;case 1:l=k.$val;if(!(l.Name===AU.nil)){$s=4;continue;}$s=5;continue;case 4:n=l.Name.Name;(d[0]||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(n),{k:n,v:l});$s=6;continue;case 5:o=AK(M.Trim(l.Path.Value,"\\\""));$s=7;case 7:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=p;(d[0]||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(q),{k:q,v:l});case 6:$s=3;continue;case 2:m=k.$val;r=$assertType(m.X,AU,true);s=r[0];t=r[1];if(!t){$s=3;continue;}if(!(s.Obj===BG.nil)){$s=3;continue;}u=s.Name;if((v=$mapIndex(e[0],$String.keyFor(u)),v!==undefined?v.v:false)===false){w=u;(e[0]||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(w),{k:w,v:new $global.Map()});}if((x=$mapIndex(d[0],$String.keyFor(u)),x!==undefined?x.v:AT.nil)===AT.nil){y=m.Sel.Name;((z=$mapIndex(e[0],$String.keyFor(u)),z!==undefined?z.v:false)||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(y),{k:y,v:true});}case 3:$s=-1;return new AO(g[0]);}return;}var $f={$blk:$b,$c:true,$r,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};})(d,e,f,g));$r=A.Walk(new AO(g[0]),c);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=$makeMap($String.keyFor,[]);k=d[0];l=0;m=k?k.keys():undefined;n=k?k.size:0;while(true){if(!(l>0;ae++;$s=5;continue;case 6:al=0;case 7:if(!(al>0;$s=7;continue;case 8:as=h;at=$ifaceNil;h=as;i=at;$s=-1;return[h,i];}return;}var $f={$blk:AJ,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AL=function(b){var b,c;c="";c=O.Base(b);return c;};AO.prototype.Visit=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this.$val;d=c(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:AO.prototype.Visit,$c:true,$r,b,c,d,e,$s};return $f;};$ptrType(AO).prototype.Visit=function(b){return new AO(this.$get()).Visit(b);};AP=function(b,c){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;d="";e=false;f=$ifaceNil;g=c;h=0;i=g?g.keys():undefined;j=g?g.size:0;while(true){if(!(h>0;$s=1;continue;case 2:an=X(ac.user,R);$s=15;case 15:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}am=an;ao=am[0];ap=am[1];if(ao){$s=16;continue;}$s=17;continue;case 16:aq=1;ar=ap;ac.externalEnc=aq;ac.encIndir=ar;$s=18;continue;case 17:at=X(ac.user,T);$s=19;case 19:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}as=at;au=as[0];av=as[1];if(au){aw=2;ax=av;ac.externalEnc=aw;ac.encIndir=ax;}case 18:az=X(ac.user,S);$s=20;case 20:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ay=az;ba=ay[0];bb=ay[1];if(ba){$s=21;continue;}$s=22;continue;case 21:bc=1;bd=bb;ac.externalDec=bc;ac.decIndir=bd;$s=23;continue;case 22:bf=X(ac.user,U);$s=24;case 24:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}be=bf;bg=be[0];bh=be[1];if(bg){bi=2;bj=bh;ac.externalDec=bi;ac.decIndir=bj;}case 23:bk=P.LoadOrStore(y,ac);bl=bk[0];$s=-1;return[$assertType(bl,HX),$ifaceNil];}return;}var $f={$blk:Q,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,y,z,$s};return $f;};X=function(y,z){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,y,z,$s,$r,$c}=$restore(this,{y,z});$s=$s||0;s:while(true){switch($s){case 0:aa=false;ab=0;if($interfaceIsEqual(y,$ifaceNil)){$s=-1;return[aa,ab];}ac=y;case 1:ad=ac.Implements(z);$s=5;case 5:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}if(ad){$s=3;continue;}$s=4;continue;case 3:ae=true;af=ab;aa=ae;ab=af;$s=-1;return[aa,ab];case 4:ag=ac;ah=ag.Kind();$s=8;case 8:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}if(ah===22){$s=6;continue;}$s=7;continue;case 6:ab=ab+(1)<<24>>24;if(ab>100){ai=false;aj=0;aa=ai;ab=aj;$s=-1;return[aa,ab];}ak=ag.Elem();$s=9;case 9:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}ac=ak;$s=1;continue;case 7:$s=2;continue;case 2:al=y.Kind();$s=12;case 12:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}if(!((al===22))){$s=10;continue;}$s=11;continue;case 10:am=E.PointerTo(y).Implements(z);$s=15;case 15:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}if(am){$s=13;continue;}$s=14;continue;case 13:an=true;ao=-1;aa=an;ab=ao;$s=-1;return[aa,ab];case 14:case 11:ap=false;aq=0;aa=ap;ab=aq;$s=-1;return[aa,ab];}return;}var $f={$blk:X,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,y,z,$s};return $f;};Y=function(y){var{aa,ab,ac,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:aa=Q(y);$s=1;case 1:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;ab=z[0];ac=z[1];if(!($interfaceIsEqual(ac,$ifaceNil))){CI(ac);}$s=-1;return ab;}return;}var $f={$blk:Y,$c:true,$r,aa,ab,ac,y,z,$s};return $f;};AG=function(y){var{aa,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=y.id();$s=3;case 3:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}if(!((z===0))){$s=1;continue;}$s=2;continue;case 1:$s=-1;return;case 2:AA=AA+(1)>>0;$r=y.setId(AA);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aa=AA;(AE||$throwRuntimeError("assignment to entry in nil map")).set(Z.keyFor(aa),{k:aa,v:y});$s=-1;return;}return;}var $f={$blk:AG,$c:true,$r,aa,y,z,$s};return $f;};Z.prototype.gobType=function(){var y,z;y=this.$val;if(y===0){return $ifaceNil;}return(z=$mapIndex(AE,Z.keyFor(y)),z!==undefined?z.v:$ifaceNil);};$ptrType(Z).prototype.gobType=function(){return new Z(this.$get()).gobType();};Z.prototype.string=function(){var{aa,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=this.$val;if($interfaceIsEqual(new Z(y).gobType(),$ifaceNil)){$s=-1;return"";}z=new Z(y).gobType().string();$s=1;case 1:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;$s=2;case 2:return aa;}return;}var $f={$blk:Z.prototype.string,$c:true,$r,aa,y,z,$s};return $f;};$ptrType(Z).prototype.string=function(){return new Z(this.$get()).string();};Z.prototype.name=function(){var{aa,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=this.$val;if($interfaceIsEqual(new Z(y).gobType(),$ifaceNil)){$s=-1;return"";}z=new Z(y).gobType().name();$s=1;case 1:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;$s=2;case 2:return aa;}return;}var $f={$blk:Z.prototype.name,$c:true,$r,aa,y,z,$s};return $f;};$ptrType(Z).prototype.name=function(){return new Z(this.$get()).name();};AH.ptr.prototype.id=function(){var y;y=this;return y.Id;};AH.prototype.id=function(){return this.$val.id();};AH.ptr.prototype.setId=function(y){var y,z;z=this;z.Id=y;};AH.prototype.setId=function(y){return this.$val.setId(y);};AH.ptr.prototype.string=function(){var y;y=this;return y.Name;};AH.prototype.string=function(){return this.$val.string();};AH.ptr.prototype.safeString=function(y){var y,z;z=this;return z.Name;};AH.prototype.safeString=function(y){return this.$val.safeString(y);};AH.ptr.prototype.name=function(){var y;y=this;return y.Name;};AH.prototype.name=function(){return this.$val.name();};AZ=function(){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=BQ(16,AX);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}z=BY(E.TypeOf((y=new BA.ptr(new AH.ptr("",0),0,0),new y.constructor.elem(y))));$s=2;case 2:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z.id;$r=BQ(17,aa);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ac=BY(E.TypeOf((ab=new AH.ptr("",0),new ab.constructor.elem(ab))));$s=4;case 4:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac.id;$r=BQ(18,ad);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}af=BY(E.TypeOf((ae=new BG.ptr(new AH.ptr("",0),0),new ae.constructor.elem(ae))));$s=6;case 6:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af.id;$r=BQ(19,ag);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ai=BY(E.TypeOf((ah=new BJ.ptr(new AH.ptr("",0),JK.nil),new ah.constructor.elem(ah))));$s=8;case 8:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai.id;$r=BQ(20,aj);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}al=BY(E.TypeOf((ak=new BI.ptr("",0),new ak.constructor.elem(ak))));$s=10;case 10:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al.id;$r=BQ(21,am);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ao=BY(E.TypeOf((an=new BE.ptr(new AH.ptr("",0),0,0),new an.constructor.elem(an))));$s=12;case 12:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=ao.id;$r=BQ(23,ap);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}AF=new $global.Map();aq=AE;ar=0;as=aq?aq.keys():undefined;at=aq?aq.size:0;while(true){if(!(ar64){$s=14;continue;}$s=15;continue;case 14:az=C.Sprintln(new JH([new $String("nextId too large:"),new Z(AA)]));$s=16;case 16:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}$panic(new $String(az));case 15:AA=64;$r=CF();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ba=Y(E.TypeOf((JL.nil)));$s=18;case 18:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}AY=ba;$s=-1;return;}return;}var $f={$blk:AZ,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,y,z,$s};return $f;};BB=function(y){var y,z;z=new BA.ptr(new AH.ptr(y,0),0,0);return z;};BA.ptr.prototype.init=function(y,z){var{aa,ab,y,z,$s,$r,$c}=$restore(this,{y,z});$s=$s||0;s:while(true){switch($s){case 0:aa=this;$r=AG(aa);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ab=y.id();$s=2;case 2:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa.Elem=ab;aa.Len=z;$s=-1;return;}return;}var $f={$blk:BA.ptr.prototype.init,$c:true,$r,aa,ab,y,z,$s};return $f;};BA.prototype.init=function(y,z){return this.$val.init(y,z);};BA.ptr.prototype.safeString=function(y){var{aa,ab,ac,ad,ae,af,ag,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=this;if((aa=$mapIndex(y,Z.keyFor(z.CommonType.Id)),aa!==undefined?aa.v:false)){$s=-1;return z.CommonType.Name;}ab=z.CommonType.Id;(y||$throwRuntimeError("assignment to entry in nil map")).set(Z.keyFor(ab),{k:ab,v:true});ac=new $Int(z.Len);ad=new Z(z.Elem).gobType().safeString(y);$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=new $String(ad);af=C.Sprintf("[%d]%s",new JH([ac,ae]));$s=2;case 2:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;$s=3;case 3:return ag;}return;}var $f={$blk:BA.ptr.prototype.safeString,$c:true,$r,aa,ab,ac,ad,ae,af,ag,y,z,$s};return $f;};BA.prototype.safeString=function(y){return this.$val.safeString(y);};BA.ptr.prototype.string=function(){var{aa,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=this;z=y.safeString(new $global.Map());$s=1;case 1:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;$s=2;case 2:return aa;}return;}var $f={$blk:BA.ptr.prototype.string,$c:true,$r,aa,y,z,$s};return $f;};BA.prototype.string=function(){return this.$val.string();};BD=function(y){var{y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=new BC.ptr(new AH.ptr(y,0));$r=AG(z);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return z;}return;}var $f={$blk:BD,$c:true,$r,y,z,$s};return $f;};BC.ptr.prototype.safeString=function(y){var y,z;z=this;return z.CommonType.Name;};BC.prototype.safeString=function(y){return this.$val.safeString(y);};BC.ptr.prototype.string=function(){var y;y=this;return y.CommonType.Name;};BC.prototype.string=function(){return this.$val.string();};BF=function(y){var y,z;z=new BE.ptr(new AH.ptr(y,0),0,0);return z;};BE.ptr.prototype.init=function(y,z){var{aa,ab,ac,y,z,$s,$r,$c}=$restore(this,{y,z});$s=$s||0;s:while(true){switch($s){case 0:aa=this;$r=AG(aa);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ab=y.id();$s=2;case 2:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa.Key=ab;ac=z.id();$s=3;case 3:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}aa.Elem=ac;$s=-1;return;}return;}var $f={$blk:BE.ptr.prototype.init,$c:true,$r,aa,ab,ac,y,z,$s};return $f;};BE.prototype.init=function(y,z){return this.$val.init(y,z);};BE.ptr.prototype.safeString=function(y){var{aa,ab,ac,ad,ae,af,ag,ah,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=this;if((aa=$mapIndex(y,Z.keyFor(z.CommonType.Id)),aa!==undefined?aa.v:false)){$s=-1;return z.CommonType.Name;}ab=z.CommonType.Id;(y||$throwRuntimeError("assignment to entry in nil map")).set(Z.keyFor(ab),{k:ab,v:true});ac=new Z(z.Key).gobType().safeString(y);$s=1;case 1:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;ae=new Z(z.Elem).gobType().safeString(y);$s=2;case 2:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;ag=C.Sprintf("map[%s]%s",new JH([new $String(ad),new $String(af)]));$s=3;case 3:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag;$s=4;case 4:return ah;}return;}var $f={$blk:BE.ptr.prototype.safeString,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,y,z,$s};return $f;};BE.prototype.safeString=function(y){return this.$val.safeString(y);};BE.ptr.prototype.string=function(){var{aa,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=this;z=y.safeString(new $global.Map());$s=1;case 1:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;$s=2;case 2:return aa;}return;}var $f={$blk:BE.ptr.prototype.string,$c:true,$r,aa,y,z,$s};return $f;};BE.prototype.string=function(){return this.$val.string();};BH=function(y){var y,z;z=new BG.ptr(new AH.ptr(y,0),0);return z;};BG.ptr.prototype.init=function(y){var{aa,ab,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=this;$r=AG(z);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aa=y.id();$s=4;case 4:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}if(aa===0){$s=2;continue;}$s=3;continue;case 2:$r=AG(y);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:ab=y.id();$s=6;case 6:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}z.Elem=ab;$s=-1;return;}return;}var $f={$blk:BG.ptr.prototype.init,$c:true,$r,aa,ab,y,z,$s};return $f;};BG.prototype.init=function(y){return this.$val.init(y);};BG.ptr.prototype.safeString=function(y){var{aa,ab,ac,ad,ae,af,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=this;if((aa=$mapIndex(y,Z.keyFor(z.CommonType.Id)),aa!==undefined?aa.v:false)){$s=-1;return z.CommonType.Name;}ab=z.CommonType.Id;(y||$throwRuntimeError("assignment to entry in nil map")).set(Z.keyFor(ab),{k:ab,v:true});ac=new Z(z.Elem).gobType().safeString(y);$s=1;case 1:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=new $String(ac);ae=C.Sprintf("[]%s",new JH([ad]));$s=2;case 2:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;$s=3;case 3:return af;}return;}var $f={$blk:BG.ptr.prototype.safeString,$c:true,$r,aa,ab,ac,ad,ae,af,y,z,$s};return $f;};BG.prototype.safeString=function(y){return this.$val.safeString(y);};BG.ptr.prototype.string=function(){var{aa,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=this;z=y.safeString(new $global.Map());$s=1;case 1:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;$s=2;case 2:return aa;}return;}var $f={$blk:BG.ptr.prototype.string,$c:true,$r,aa,y,z,$s};return $f;};BG.prototype.string=function(){return this.$val.string();};BJ.ptr.prototype.safeString=function(y){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=this;if(z===JE.nil){$s=-1;return"";}aa=(ab=$mapIndex(y,Z.keyFor(z.CommonType.Id)),ab!==undefined?[ab.v,true]:[false,false]);ac=aa[1];if(ac){$s=-1;return z.CommonType.Name;}ad=z.CommonType.Id;(y||$throwRuntimeError("assignment to entry in nil map")).set(Z.keyFor(ad),{k:ad,v:true});ae=z.CommonType.Name+" = struct { ";af=z.Field;ag=0;case 1:if(!(ag=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ag]);ai=new $String(ah.Name);aj=new Z(ah.Id).gobType().safeString(y);$s=3;case 3:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=new $String(aj);al=C.Sprintf("%s %s; ",new JH([ai,ak]));$s=4;case 4:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}ae=ae+(al);ag++;$s=1;continue;case 2:ae=ae+("}");$s=-1;return ae;}return;}var $f={$blk:BJ.ptr.prototype.safeString,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,y,z,$s};return $f;};BJ.prototype.safeString=function(y){return this.$val.safeString(y);};BJ.ptr.prototype.string=function(){var{aa,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=this;z=y.safeString(new $global.Map());$s=1;case 1:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;$s=2;case 2:return aa;}return;}var $f={$blk:BJ.ptr.prototype.string,$c:true,$r,aa,y,z,$s};return $f;};BJ.prototype.string=function(){return this.$val.string();};BK=function(y){var{y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=new BJ.ptr(new AH.ptr(y,0),JK.nil);$r=AG(z);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return z;}return;}var $f={$blk:BK,$c:true,$r,y,z,$s};return $f;};BL=function(y,z,aa){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,db,dc,dd,de,y,z,$s,$deferred,$r,$c}=$restore(this,{y,z,aa});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);aa=[aa];ab=[ab];if(!((z.externalEnc===0))){$s=1;continue;}$s=2;continue;case 1:ac=BD(y);$s=3;case 3:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=[ac,$ifaceNil];$s=4;case 4:return ad;case 2:ab[0]=$ifaceNil;ae=$ifaceNil;af=$ifaceNil;ag=ae;ah=af;$deferred.push([(function(aa,ab){return function(){if(!($interfaceIsEqual(ab[0],$ifaceNil))){$mapDelete(AD,E.Type.keyFor(aa[0]));}};})(aa,ab),[]]);ai=aa[0];aj=ai.Kind();$s=6;case 6:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=aj;if(ak===(1)){$s=7;continue;}if((ak===(2))||(ak===(3))||(ak===(4))||(ak===(5))||(ak===(6))){$s=8;continue;}if((ak===(7))||(ak===(8))||(ak===(9))||(ak===(10))||(ak===(11))||(ak===(12))){$s=9;continue;}if((ak===(13))||(ak===(14))){$s=10;continue;}if((ak===(15))||(ak===(16))){$s=11;continue;}if(ak===(24)){$s=12;continue;}if(ak===(20)){$s=13;continue;}if(ak===(17)){$s=14;continue;}if(ak===(21)){$s=15;continue;}if(ak===(23)){$s=16;continue;}if(ak===(25)){$s=17;continue;}$s=18;continue;case 7:al=[new Z(AI).gobType(),$ifaceNil];$s=20;case 20:return al;case 8:am=[new Z(AJ).gobType(),$ifaceNil];$s=21;case 21:return am;case 9:an=[new Z(AK).gobType(),$ifaceNil];$s=22;case 22:return an;case 10:ao=[new Z(AL).gobType(),$ifaceNil];$s=23;case 23:return ao;case 11:ap=[new Z(AO).gobType(),$ifaceNil];$s=24;case 24:return ap;case 12:aq=[new Z(AN).gobType(),$ifaceNil];$s=25;case 25:return aq;case 13:ar=[new Z(AP).gobType(),$ifaceNil];$s=26;case 26:return ar;case 14:as=BB(y);at=aa[0];(AD||$throwRuntimeError("assignment to entry in nil map")).set(E.Type.keyFor(at),{k:at,v:as});av=ai.Elem();$s=27;case 27:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=av;ax=BO("",aw);$s=28;case 28:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}au=ax;ag=au[0];ab[0]=au[1];if(!($interfaceIsEqual(ab[0],$ifaceNil))){$s=29;continue;}$s=30;continue;case 29:ay=[$ifaceNil,ab[0]];$s=31;case 31:return ay;case 30:az=ag;ba=ai.Len();$s=32;case 32:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba;$r=as.init(az,bb);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bc=[as,$ifaceNil];$s=34;case 34:return bc;case 15:bd=BF(y);be=aa[0];(AD||$throwRuntimeError("assignment to entry in nil map")).set(E.Type.keyFor(be),{k:be,v:bd});bg=ai.Key();$s=35;case 35:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=bg;bi=BO("",bh);$s=36;case 36:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bf=bi;ag=bf[0];ab[0]=bf[1];if(!($interfaceIsEqual(ab[0],$ifaceNil))){$s=37;continue;}$s=38;continue;case 37:bj=[$ifaceNil,ab[0]];$s=39;case 39:return bj;case 38:bl=ai.Elem();$s=40;case 40:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}bm=bl;bn=BO("",bm);$s=41;case 41:if($c){$c=false;bn=bn.$blk();}if(bn&&bn.$blk!==undefined){break s;}bk=bn;ah=bk[0];ab[0]=bk[1];if(!($interfaceIsEqual(ab[0],$ifaceNil))){$s=42;continue;}$s=43;continue;case 42:bo=[$ifaceNil,ab[0]];$s=44;case 44:return bo;case 43:$r=bd.init(ag,ah);$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bp=[bd,$ifaceNil];$s=46;case 46:return bp;case 16:bq=ai.Elem();$s=49;case 49:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}br=bq.Kind();$s=50;case 50:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}if(br===8){$s=47;continue;}$s=48;continue;case 47:bs=[new Z(AM).gobType(),$ifaceNil];$s=51;case 51:return bs;case 48:bt=BH(y);bu=aa[0];(AD||$throwRuntimeError("assignment to entry in nil map")).set(E.Type.keyFor(bu),{k:bu,v:bt});bw=ai.Elem();$s=52;case 52:if($c){$c=false;bw=bw.$blk();}if(bw&&bw.$blk!==undefined){break s;}bx=bw.Name();$s=53;case 53:if($c){$c=false;bx=bx.$blk();}if(bx&&bx.$blk!==undefined){break s;}by=bx;bz=ai.Elem();$s=54;case 54:if($c){$c=false;bz=bz.$blk();}if(bz&&bz.$blk!==undefined){break s;}ca=bz;cb=BO(by,ca);$s=55;case 55:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}bv=cb;ag=bv[0];ab[0]=bv[1];if(!($interfaceIsEqual(ab[0],$ifaceNil))){$s=56;continue;}$s=57;continue;case 56:cc=[$ifaceNil,ab[0]];$s=58;case 58:return cc;case 57:$r=bt.init(ag);$s=59;case 59:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cd=[bt,$ifaceNil];$s=60;case 60:return cd;case 17:ce=BK(y);$s=61;case 61:if($c){$c=false;ce=ce.$blk();}if(ce&&ce.$blk!==undefined){break s;}cf=ce;cg=aa[0];(AD||$throwRuntimeError("assignment to entry in nil map")).set(E.Type.keyFor(cg),{k:cg,v:cf});ch=cf.CommonType.id();(AE||$throwRuntimeError("assignment to entry in nil map")).set(Z.keyFor(ch),{k:ch,v:cf});ci=0;case 62:cj=ai.NumField();$s=64;case 64:if($c){$c=false;cj=cj.$blk();}if(cj&&cj.$blk!==undefined){break s;}if(!(ci>0;$s=62;continue;case 67:cn=Y(ck[0].Type);$s=69;case 69:if($c){$c=false;cn=cn.$blk();}if(cn&&cn.$blk!==undefined){break s;}co=cn.base;cp=co.Name();$s=70;case 70:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}cq=cp;if(cq===""){$s=71;continue;}$s=72;continue;case 71:cr=Y(ck[0].Type);$s=73;case 73:if($c){$c=false;cr=cr.$blk();}if(cr&&cr.$blk!==undefined){break s;}cs=cr.base;ct=cs.String();$s=74;case 74:if($c){$c=false;ct=ct.$blk();}if(ct&&ct.$blk!==undefined){break s;}cq=ct;case 72:cv=BO(cq,ck[0].Type);$s=75;case 75:if($c){$c=false;cv=cv.$blk();}if(cv&&cv.$blk!==undefined){break s;}cu=cv;cw=cu[0];cx=cu[1];if(!($interfaceIsEqual(cx,$ifaceNil))){$s=76;continue;}$s=77;continue;case 76:cy=[$ifaceNil,cx];$s=78;case 78:return cy;case 77:cz=cw.id();$s=81;case 81:if($c){$c=false;cz=cz.$blk();}if(cz&&cz.$blk!==undefined){break s;}if(cz===0){$s=79;continue;}$s=80;continue;case 79:$r=AG(cw);$s=82;case 82:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 80:da=cw.id();$s=83;case 83:if($c){$c=false;da=da.$blk();}if(da&&da.$blk!==undefined){break s;}cf.Field=$append(cf.Field,new BI.ptr(ck[0].Name,da));ci=ci+(1)>>0;$s=62;continue;case 63:db=[cf,$ifaceNil];$s=84;case 84:return db;case 18:dc=aa[0].String();$s=85;case 85:if($c){$c=false;dc=dc.$blk();}if(dc&&dc.$blk!==undefined){break s;}dd=B.New("gob NewTypeObject can't handle type: "+dc);$s=86;case 86:if($c){$c=false;dd=dd.$blk();}if(dd&&dd.$blk!==undefined){break s;}de=[$ifaceNil,dd];$s=87;case 87:return de;case 19:case 5:$s=-1;return[$ifaceNil,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[$ifaceNil,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:BL,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,db,dc,dd,de,y,z,$s,$deferred};return $f;}}};BM=function(y){var aa,y,z;z=I.DecodeRuneInString(y);aa=z[0];return H.IsUpper(aa);};BN=function(y){var{aa,ab,ac,ad,ae,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:if(!BM(y.Name)){$s=-1;return false;}z=y.Type;case 1:aa=z.Kind();$s=3;case 3:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}if(!(aa===22)){$s=2;continue;}ab=z.Elem();$s=4;case 4:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}z=ab;$s=1;continue;case 2:ad=z.Kind();$s=8;case 8:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}if(ad===18){ac=true;$s=7;continue s;}ae=z.Kind();$s=9;case 9:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ac=ae===19;case 7:if(ac){$s=5;continue;}$s=6;continue;case 5:$s=-1;return false;case 6:$s=-1;return true;}return;}var $f={$blk:BN,$c:true,$r,aa,ab,ac,ad,ae,y,z,$s};return $f;};BO=function(y,z){var{aa,ab,ac,ad,y,z,$s,$r,$c}=$restore(this,{y,z});$s=$s||0;s:while(true){switch($s){case 0:aa=Y(z);$s=1;case 1:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa;ac=BP(y,ab,ab.base);$s=2;case 2:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;$s=3;case 3:return ad;}return;}var $f={$blk:BO,$c:true,$r,aa,ab,ac,ad,y,z,$s};return $f;};BP=function(y,z,aa){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa});$s=$s||0;s:while(true){switch($s){case 0:ab=(ac=$mapIndex(AD,E.Type.keyFor(aa)),ac!==undefined?[ac.v,true]:[$ifaceNil,false]);ad=ab[0];ae=ab[1];if(ae){$s=-1;return[ad,$ifaceNil];}ag=BL(y,z,aa);$s=1;case 1:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;ad=af[0];ah=af[1];if($interfaceIsEqual(ah,$ifaceNil)){ai=aa;(AD||$throwRuntimeError("assignment to entry in nil map")).set(E.Type.keyFor(ai),{k:ai,v:ad});}$s=-1;return[ad,ah];}return;}var $f={$blk:BP,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};BQ=function(y,z){var{aa,ab,ac,ad,y,z,$s,$r,$c}=$restore(this,{y,z});$s=$s||0;s:while(true){switch($s){case 0:if(!((y===z))){$s=1;continue;}$s=2;continue;case 1:aa=C.Fprintf(D.Stderr,"checkId: %d should be %d\n",new JH([new $Int(((z>>0))),new $Int(((y>>0)))]));$s=3;case 3:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}aa;ab=new Z(z).name();$s=4;case 4:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=new Z(z).string();$s=5;case 5:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=new Z(y).string();$s=6;case 6:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}$panic(new $String("bootstrap type wrong id: "+ab+" "+ac+" not "+ad));case 2:$s=-1;return;}return;}var $f={$blk:BQ,$c:true,$r,aa,ab,ac,ad,y,z,$s};return $f;};BR=function(y,z,aa){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,y,z,$s,$r,$c}=$restore(this,{y,z,aa});$s=$s||0;s:while(true){switch($s){case 0:ab=E.TypeOf(z).Elem();$s=1;case 1:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;ad=(ae=$mapIndex(AD,E.Type.keyFor(ac)),ae!==undefined?[ae.v,true]:[$ifaceNil,false]);af=ad[1];if(af){$s=2;continue;}$s=3;continue;case 2:ag=ac.String();$s=4;case 4:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}$panic(new $String("bootstrap type already present: "+y+", "+ag));case 3:ah=new AH.ptr(y,0);ai=ac;(AD||$throwRuntimeError("assignment to entry in nil map")).set(E.Type.keyFor(ai),{k:ai,v:ah});$r=AG(ah);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=BQ(aa,AA);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aj=Y(ac);$s=7;case 7:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}aj;$s=-1;return AA;}return;}var $f={$blk:BR,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,y,z,$s};return $f;};BS.ptr.prototype.string=function(){var y;y=this;if(y===JL.nil){return"unknown type";}if(!(y.ArrayT===JC.nil)){return y.ArrayT.CommonType.Name;}else if(!(y.SliceT===JD.nil)){return y.SliceT.CommonType.Name;}else if(!(y.StructT===JE.nil)){return y.StructT.CommonType.Name;}else if(!(y.MapT===JF.nil)){return y.MapT.CommonType.Name;}else if(!(y.GobEncoderT===JG.nil)){return y.GobEncoderT.CommonType.Name;}else if(!(y.BinaryMarshalerT===JG.nil)){return y.BinaryMarshalerT.CommonType.Name;}else if(!(y.TextMarshalerT===JG.nil)){return y.TextMarshalerT.CommonType.Name;}return"unknown type";};BS.prototype.string=function(){return this.$val.string();};BV=function(y){var aa,ab,y,z;z=$assertType(BU.Load(),JN,true);aa=z[0];return(ab=$mapIndex(aa,E.Type.keyFor(y)),ab!==undefined?ab.v:JM.nil);};BW=function(y){var{aa,ab,ac,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=y.base;if(!((y.externalEnc===0))){z=y.user;}aa=BV(z);if(!(aa===JM.nil)){$s=-1;return[aa,$ifaceNil];}ab=BX(y,z);$s=1;case 1:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;$s=2;case 2:return ac;}return;}var $f={$blk:BW,$c:true,$r,aa,ab,ac,y,z,$s};return $f;};BX=function(y,z){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,y,z,$s,$deferred,$r,$c}=$restore(this,{y,z});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);AB.Lock();$deferred.push([$methodVal(AB,"Unlock"),[]]);aa=BV(z);if(!(aa===JM.nil)){$s=1;continue;}$s=2;continue;case 1:ab=[aa,$ifaceNil];$s=3;case 3:return ab;case 2:ad=z.Name();$s=4;case 4:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=BO(ad,z);$s=5;case 5:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ac=ae;af=ac[0];ag=ac[1];if(!($interfaceIsEqual(ag,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:ah=[JM.nil,ag];$s=8;case 8:return ah;case 7:ai=af.id();$s=9;case 9:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=new BT.ptr(ai,new F.Mutex.ptr(false),new G.Value.ptr($ifaceNil),JL.nil);if(!((y.externalEnc===0))){$s=10;continue;}$s=11;continue;case 10:al=z.Name();$s=13;case 13:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=BP(al,y,z);$s=14;case 14:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}ak=am;an=ak[0];ao=ak[1];if(!($interfaceIsEqual(ao,$ifaceNil))){$s=15;continue;}$s=16;continue;case 15:ap=[JM.nil,ao];$s=17;case 17:return ap;case 16:aq=an.id();$s=18;case 18:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=new Z(aq).gobType();$s=19;case 19:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=$assertType(ar,JG);at=y.externalEnc;if(at===(1)){aj.wire=new BS.ptr(JC.nil,JD.nil,JE.nil,JF.nil,as,JG.nil,JG.nil);}else if(at===(2)){aj.wire=new BS.ptr(JC.nil,JD.nil,JE.nil,JF.nil,JG.nil,as,JG.nil);}else if(at===(3)){aj.wire=new BS.ptr(JC.nil,JD.nil,JE.nil,JF.nil,JG.nil,JG.nil,as);}z=y.user;$s=12;continue;case 11:au=new Z(aj.id).gobType();av=z;aw=av.Kind();$s=21;case 21:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ax=aw;if(ax===(17)){$s=22;continue;}if(ax===(21)){$s=23;continue;}if(ax===(23)){$s=24;continue;}if(ax===(25)){$s=25;continue;}$s=26;continue;case 22:aj.wire=new BS.ptr($assertType(au,JC),JD.nil,JE.nil,JF.nil,JG.nil,JG.nil,JG.nil);$s=26;continue;case 23:aj.wire=new BS.ptr(JC.nil,JD.nil,JE.nil,$assertType(au,JF),JG.nil,JG.nil,JG.nil);$s=26;continue;case 24:ay=av.Elem();$s=29;case 29:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay.Kind();$s=30;case 30:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}if(!((az===8))){$s=27;continue;}$s=28;continue;case 27:aj.wire=new BS.ptr(JC.nil,$assertType(au,JD),JE.nil,JF.nil,JG.nil,JG.nil,JG.nil);case 28:$s=26;continue;case 25:aj.wire=new BS.ptr(JC.nil,JD.nil,$assertType(au,JE),JF.nil,JG.nil,JG.nil,JG.nil);case 26:case 20:case 12:ba=new $global.Map();bb=$assertType(BU.Load(),JN,true);bc=bb[0];bd=bc;be=0;bf=bd?bd.keys():undefined;bg=bd?bd.size:0;while(true){if(!(be=1073741824){y.data=$subslice(new IJ(y.scratch),0,0);}else{y.data=$subslice(y.data,0,0);}};CP.prototype.Reset=function(){return this.$val.Reset();};EW=function(y){var aa,ab,y,z;z=new EV.ptr(new F.Mutex.ptr(false),$ifaceNil,new FF.ptr(IJ.nil,0),false,false,false,KO.nil,IJ.nil,$ifaceNil);aa=$assertType(y,J.ByteReader,true);ab=aa[1];if(!ab){y=N.NewReader(y);}z.r=y;z.wireType=new $global.Map();z.decoderCache=new $global.Map();z.ignorerCache=new $global.Map();z.countBuf=$makeSlice(IJ,9);return z;};$pkg.NewDecoder=EW;EV.ptr.prototype.recvType=function(y){var{aa,ab,ac,ad,ae,af,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=this;if(y<64||!((aa=$mapIndex(z.wireType,Z.keyFor(y)),aa!==undefined?aa.v:JL.nil)===JL.nil)){z.err=B.New("gob: duplicate type received");$s=-1;return;}ab=new BS.ptr(JC.nil,JD.nil,JE.nil,JF.nil,JG.nil,JG.nil,JG.nil);ac=AX;ad=E.ValueOf(ab);$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);$r=z.decodeValue(ac,ae);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(z.err,$ifaceNil))){$s=-1;return;}af=y;(z.wireType||$throwRuntimeError("assignment to entry in nil map")).set(Z.keyFor(af),{k:af,v:ab});$s=-1;return;}return;}var $f={$blk:EV.ptr.prototype.recvType,$c:true,$r,aa,ab,ac,ad,ae,af,y,z,$s};return $f;};EV.prototype.recvType=function(y){return this.$val.recvType(y);};EV.ptr.prototype.recvMessage=function(){var{aa,ab,ac,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=this;aa=FH(y.r,y.countBuf);$s=1;case 1:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;ab=z[0];ac=z[2];if(!($interfaceIsEqual(ac,$ifaceNil))){y.err=ac;$s=-1;return false;}if((ab.$high>0||(ab.$high===0&&ab.$low>=1073741824))){y.err=EX;$s=-1;return false;}$r=y.readMessage(((ab.$low>>0)));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $interfaceIsEqual(y.err,$ifaceNil);}return;}var $f={$blk:EV.ptr.prototype.recvMessage,$c:true,$r,aa,ab,ac,y,z,$s};return $f;};EV.prototype.recvMessage=function(){return this.$val.recvMessage();};EV.ptr.prototype.readMessage=function(y){var{aa,ab,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=this;if(!((z.buf.Len()===0))){$panic(new $String("non-empty decoder buffer"));}z.buf.Size(y);ab=J.ReadFull(z.r,z.buf.Bytes());$s=1;case 1:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;z.err=aa[1];if($interfaceIsEqual(z.err,J.EOF)){z.err=J.ErrUnexpectedEOF;}$s=-1;return;}return;}var $f={$blk:EV.ptr.prototype.readMessage,$c:true,$r,aa,ab,y,z,$s};return $f;};EV.prototype.readMessage=function(y){return this.$val.readMessage(y);};EY=function(y){var aa,ab,y,z;aa=((z=$shiftRightUint64(y,1),new $Int64(z.$high,z.$low)));if(!((ab=new $Uint64(y.$high&0,(y.$low&1)>>>0),(ab.$high===0&&ab.$low===0)))){aa=new $Int64(~aa.$high,~aa.$low>>>0);}return aa;};EV.ptr.prototype.nextInt=function(){var{aa,ab,ac,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=this;aa=FH(y.buf,y.countBuf);$s=1;case 1:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;ab=z[0];ac=z[2];if(!($interfaceIsEqual(ac,$ifaceNil))){y.err=ac;}$s=-1;return EY(ab);}return;}var $f={$blk:EV.ptr.prototype.nextInt,$c:true,$r,aa,ab,ac,y,z,$s};return $f;};EV.prototype.nextInt=function(){return this.$val.nextInt();};EV.ptr.prototype.nextUint=function(){var{aa,ab,ac,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=this;aa=FH(y.buf,y.countBuf);$s=1;case 1:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;ab=z[0];ac=z[2];if(!($interfaceIsEqual(ac,$ifaceNil))){y.err=ac;}$s=-1;return ab;}return;}var $f={$blk:EV.ptr.prototype.nextUint,$c:true,$r,aa,ab,ac,y,z,$s};return $f;};EV.prototype.nextUint=function(){return this.$val.nextUint();};EV.ptr.prototype.decodeTypeSequence=function(y){var{aa,ab,ac,ad,ae,af,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=this;aa=true;case 1:if(!($interfaceIsEqual(z.err,$ifaceNil))){$s=2;continue;}if(z.buf.Len()===0){$s=3;continue;}$s=4;continue;case 3:ab=z.recvMessage();$s=7;case 7:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}if(!ab){$s=5;continue;}$s=6;continue;case 5:if(!aa&&$interfaceIsEqual(z.err,J.EOF)){z.err=J.ErrUnexpectedEOF;}$s=2;continue;case 6:case 4:ad=z.nextInt();$s=8;case 8:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=(((ac=ad,ac.$low+((ac.$high>>31)*4294967296))>>0));if(ae>=0){$s=-1;return ae;}$r=z.recvType(-ae);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(z.err,$ifaceNil))){$s=2;continue;}if(z.buf.Len()>0){$s=10;continue;}$s=11;continue;case 10:if(!y){z.err=B.New("extra data in buffer");$s=2;continue;}af=z.nextUint();$s=12;case 12:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}af;case 11:aa=false;$s=1;continue;case 2:$s=-1;return-1;}return;}var $f={$blk:EV.ptr.prototype.decodeTypeSequence,$c:true,$r,aa,ab,ac,ad,ae,af,y,z,$s};return $f;};EV.prototype.decodeTypeSequence=function(y){return this.$val.decodeTypeSequence(y);};EV.ptr.prototype.Decode=function(y){var{aa,ab,ac,ad,ae,af,ag,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=this;if($interfaceIsEqual(y,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:aa=z.DecodeValue(new E.Value.ptr(HY.nil,0,0));$s=3;case 3:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa;$s=4;case 4:return ab;case 2:ac=E.ValueOf(y);$s=5;case 5:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;ae=$clone(ad,E.Value).Type().Kind();$s=8;case 8:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}if(!((ae===22))){$s=6;continue;}$s=7;continue;case 6:z.err=B.New("gob: attempt to decode into a non-pointer");$s=-1;return z.err;case 7:af=z.DecodeValue($clone(ad,E.Value));$s=9;case 9:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;$s=10;case 10:return ag;}return;}var $f={$blk:EV.ptr.prototype.Decode,$c:true,$r,aa,ab,ac,ad,ae,af,ag,y,z,$s};return $f;};EV.prototype.Decode=function(y){return this.$val.Decode(y);};EV.ptr.prototype.DecodeValue=function(y){var{aa,ab,ac,ad,y,z,$s,$deferred,$r,$c}=$restore(this,{y});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);z=this;if($clone(y,E.Value).IsValid()){$s=1;continue;}$s=2;continue;case 1:if(($clone(y,E.Value).Kind()===22)&&!$clone(y,E.Value).IsNil()){$s=3;continue;}if(!$clone(y,E.Value).CanSet()){$s=4;continue;}$s=5;continue;case 3:$s=5;continue;case 4:aa=B.New("gob: DecodeValue of unassignable value");$s=6;case 6:return aa;case 5:case 2:z.mutex.Lock();$deferred.push([$methodVal(z.mutex,"Unlock"),[]]);z.buf.Reset();z.err=$ifaceNil;ab=z.decodeTypeSequence(false);$s=7;case 7:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;if($interfaceIsEqual(z.err,$ifaceNil)){$s=8;continue;}$s=9;continue;case 8:$r=z.decodeValue(ac,$clone(y,E.Value));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:ad=z.err;$s=11;case 11:return ad;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:EV.ptr.prototype.DecodeValue,$c:true,$r,aa,ab,ac,ad,y,z,$s,$deferred};return $f;}}};EV.prototype.DecodeValue=function(y){return this.$val.DecodeValue(y);};FF.ptr.prototype.Read=function(y){var aa,y,z;z=this;aa=$copySlice(y,$subslice(z.data,z.offset));if((aa===0)&&!((y.$length===0))){return[0,J.EOF];}z.offset=z.offset+(aa)>>0;return[aa,$ifaceNil];};FF.prototype.Read=function(y){return this.$val.Read(y);};FF.ptr.prototype.Drop=function(y){var y,z;z=this;if(y>z.Len()){$panic(new $String("drop"));}z.offset=z.offset+(y)>>0;};FF.prototype.Drop=function(y){return this.$val.Drop(y);};FF.ptr.prototype.Size=function(y){var y,z;z=this;z.Reset();if(z.data.$capacity=y.data.$length){return[0,J.EOF];}ab=(z=y.data,aa=y.offset,((aa<0||aa>=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+aa]));y.offset=y.offset+(1)>>0;return[ab,$ifaceNil];};FF.prototype.ReadByte=function(){return this.$val.ReadByte();};FF.ptr.prototype.Len=function(){var y;y=this;return y.data.$length-y.offset>>0;};FF.prototype.Len=function(){return this.$val.Len();};FF.ptr.prototype.Bytes=function(){var y;y=this;return $subslice(y.data,y.offset);};FF.prototype.Bytes=function(){return this.$val.Bytes();};FF.ptr.prototype.Reset=function(){var y;y=this;y.data=$subslice(y.data,0,0);y.offset=0;};FF.prototype.Reset=function(){return this.$val.Reset();};EV.ptr.prototype.newDecoderState=function(y){var aa,y,z;z=this;aa=z.freeList;if(aa===KO.nil){aa=new FE.ptr(KP.nil,KQ.nil,0,KO.nil);aa.dec=z;}else{z.freeList=aa.next;}aa.b=y;return aa;};EV.prototype.newDecoderState=function(y){return this.$val.newDecoderState(y);};EV.ptr.prototype.freeDecoderState=function(y){var y,z;z=this;y.next=z.freeList;z.freeList=y;};EV.prototype.freeDecoderState=function(y){return this.$val.freeDecoderState(y);};FG=function(y){var y;return B.New("value for \""+y+"\" out of range");};FH=function(y,z){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,y,z,$s,$r,$c}=$restore(this,{y,z});$s=$s||0;s:while(true){switch($s){case 0:aa=new $Uint64(0,0);ab=0;ac=$ifaceNil;ab=1;ae=J.ReadFull(y,$subslice(z,0,ab));$s=1;case 1:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ad=ae;af=ad[0];ac=ad[1];if(af===0){$s=-1;return[aa,ab,ac];}ag=(0>=z.$length?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+0]);if(ag<=127){ah=(new $Uint64(0,ag));ai=ab;aj=$ifaceNil;aa=ah;ab=ai;ac=aj;$s=-1;return[aa,ab,ac];}af=-((((ag<<24>>24))>>0));if(af>8){ac=FA;$s=-1;return[aa,ab,ac];}al=J.ReadFull(y,$subslice(z,0,af));$s=2;case 2:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}ak=al;ab=ak[0];ac=ak[1];if(!($interfaceIsEqual(ac,$ifaceNil))){if($interfaceIsEqual(ac,J.EOF)){ac=J.ErrUnexpectedEOF;}$s=-1;return[aa,ab,ac];}am=$subslice(z,0,ab);an=0;while(true){if(!(an=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+an]);aa=(ap=$shiftLeft64(aa,8),aq=(new $Uint64(0,ao)),new $Uint64(ap.$high|aq.$high,(ap.$low|aq.$low)>>>0));an++;}ab=ab+(1)>>0;$s=-1;return[aa,ab,ac];}return;}var $f={$blk:FH,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,y,z,$s};return $f;};FE.ptr.prototype.decodeUint=function(){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=new $Uint64(0,0);z=this;aa=z.b.ReadByte();ab=aa[0];ac=aa[1];if(!($interfaceIsEqual(ac,$ifaceNil))){CI(ac);}if(ab<=127){y=(new $Uint64(0,ab));$s=-1;return y;}ad=-((((ab<<24>>24))>>0));if(ad>8){CI(FA);}ae=z.b.Bytes();if(ae.$length=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ag]);y=(ai=$shiftLeft64(y,8),aj=(new $Uint64(0,ah)),new $Uint64(ai.$high|aj.$high,(ai.$low|aj.$low)>>>0));ag++;}z.b.Drop(ad);y=y;$s=-1;return y;}return;}var $f={$blk:FE.ptr.prototype.decodeUint,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,y,z,$s};return $f;};FE.prototype.decodeUint=function(){return this.$val.decodeUint();};FE.ptr.prototype.decodeInt=function(){var{aa,ab,ac,ad,ae,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=this;z=y.decodeUint();$s=1;case 1:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;if(!((ab=new $Uint64(aa.$high&0,(aa.$low&1)>>>0),(ab.$high===0&&ab.$low===0)))){$s=-1;return(ac=((ad=$shiftRightUint64(aa,1),new $Int64(ad.$high,ad.$low))),new $Int64(~ac.$high,~ac.$low>>>0));}$s=-1;return((ae=$shiftRightUint64(aa,1),new $Int64(ae.$high,ae.$low)));}return;}var $f={$blk:FE.ptr.prototype.decodeInt,$c:true,$r,aa,ab,ac,ad,ae,y,z,$s};return $f;};FE.prototype.decodeInt=function(){return this.$val.decodeInt();};FE.ptr.prototype.getLength=function(){var{aa,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=this;z=y.decodeUint();$s=1;case 1:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=((z.$low>>0));if(aa<0||y.b.Len()=ae.$length?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+0]));$r=af.op(af,ab,$clone(z,E.Value));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:EV.ptr.prototype.decodeSingle,$c:true,$r,aa,ab,ac,ad,ae,af,y,z,$s,$deferred};return $f;}}};EV.prototype.decodeSingle=function(y,z){return this.$val.decodeSingle(y,z);};EV.ptr.prototype.decodeStruct=function(y,z){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,y,z,$s,$deferred,$r,$c}=$restore(this,{y,z});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);aa=this;ab=aa.newDecoderState(aa.buf);$deferred.push([$methodVal(aa,"freeDecoderState"),[ab]]);ab.fieldnum=-1;case 1:if(!(ab.b.Len()>0)){$s=2;continue;}ac=ab.decodeUint();$s=3;case 3:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=((ac.$low>>0));if(ad<0){$s=4;continue;}$s=5;continue;case 4:$r=CH("decode: corrupted data: negative delta",new JH([]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:if(ad===0){$s=2;continue;}ae=ab.fieldnum+ad>>0;if(ae>=y.instr.$length){CI(FC);$s=2;continue;}ag=(af=y.instr,((ae<0||ae>=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ae]));ah=new E.Value.ptr(HY.nil,0,0);if(!(ag.index===JO.nil)){$s=7;continue;}$s=8;continue;case 7:ai=$clone(z,E.Value).FieldByIndex(ag.index);$s=9;case 9:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ah=ai;if($clone(ah,E.Value).Kind()===22){$s=10;continue;}$s=11;continue;case 10:aj=FM($clone(ah,E.Value));$s=12;case 12:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ah=aj;case 11:case 8:$r=ag.op(ag,ab,$clone(ah,E.Value));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ab.fieldnum=ae;$s=1;continue;case 2:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:EV.ptr.prototype.decodeStruct,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,y,z,$s,$deferred};return $f;}}};EV.prototype.decodeStruct=function(y,z){return this.$val.decodeStruct(y,z);};EV.ptr.prototype.ignoreStruct=function(y){var{aa,ab,ac,ad,ae,af,y,z,$s,$deferred,$r,$c}=$restore(this,{y});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);z=this;aa=z.newDecoderState(z.buf);$deferred.push([$methodVal(z,"freeDecoderState"),[aa]]);aa.fieldnum=-1;case 1:if(!(aa.b.Len()>0)){$s=2;continue;}ab=aa.decodeUint();$s=3;case 3:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=((ab.$low>>0));if(ac<0){$s=4;continue;}$s=5;continue;case 4:$r=CH("ignore decode: corrupted data: negative delta",new JH([]));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:if(ac===0){$s=2;continue;}ad=aa.fieldnum+ac>>0;if(ad>=y.instr.$length){CI(FC);}af=(ae=y.instr,((ad<0||ad>=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ad]));$r=af.op(af,aa,$clone(GG,E.Value));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aa.fieldnum=ad;$s=1;continue;case 2:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:EV.ptr.prototype.ignoreStruct,$c:true,$r,aa,ab,ac,ad,ae,af,y,z,$s,$deferred};return $f;}}};EV.prototype.ignoreStruct=function(y){return this.$val.ignoreStruct(y);};EV.ptr.prototype.ignoreSingle=function(y){var{aa,ab,ac,ad,ae,y,z,$s,$deferred,$r,$c}=$restore(this,{y});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);z=this;aa=z.newDecoderState(z.buf);$deferred.push([$methodVal(z,"freeDecoderState"),[aa]]);aa.fieldnum=0;ab=aa.decodeUint();$s=1;case 1:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=((ab.$low>>0));if(!((ac===0))){$s=2;continue;}$s=3;continue;case 2:$r=CH("decode: corrupted data: non-zero delta for singleton",new JH([]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:ae=(ad=y.instr,(0>=ad.$length?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+0]));$r=ae.op(ae,aa,$clone(GG,E.Value));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:EV.ptr.prototype.ignoreSingle,$c:true,$r,aa,ab,ac,ad,ae,y,z,$s,$deferred};return $f;}}};EV.prototype.ignoreSingle=function(y){return this.$val.ignoreSingle(y);};EV.ptr.prototype.decodeArrayHelper=function(y,z,aa,ab,ac,ad){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab,ac,ad});$s=$s||0;s:while(true){switch($s){case 0:ae=this;if(!(!(ad===$throwNilPointerError))){af=false;$s=3;continue s;}ag=ad(y,$clone(z,E.Value),ab,ac);$s=4;case 4:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;case 3:if(af){$s=1;continue;}$s=2;continue;case 1:$s=-1;return;case 2:ah=new FJ.ptr(aa,0,JO.nil,ac);ai=$clone(z,E.Value).Type().Elem();$s=5;case 5:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai.Kind();$s=6;case 6:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=aj===22;al=0;case 7:if(!(al>0;$s=7;continue;case 8:$s=-1;return;}return;}var $f={$blk:EV.ptr.prototype.decodeArrayHelper,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,y,z,$s};return $f;};EV.prototype.decodeArrayHelper=function(y,z,aa,ab,ac,ad){return this.$val.decodeArrayHelper(y,z,aa,ab,ac,ad);};EV.ptr.prototype.decodeArray=function(y,z,aa,ab,ac,ad){var{aa,ab,ac,ad,ae,af,ag,ah,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab,ac,ad});$s=$s||0;s:while(true){switch($s){case 0:ae=this;af=y.decodeUint();$s=1;case 1:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;if(!((ah=(new $Uint64(0,ab)),(ag.$high===ah.$high&&ag.$low===ah.$low)))){$s=2;continue;}$s=3;continue;case 2:$r=CH("length mismatch in decodeArray",new JH([]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$r=ae.decodeArrayHelper(y,$clone(z,E.Value),aa,ab,ac,ad);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:EV.ptr.prototype.decodeArray,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,y,z,$s};return $f;};EV.prototype.decodeArray=function(y,z,aa,ab,ac,ad){return this.$val.decodeArray(y,z,aa,ab,ac,ad);};GH=function(y,z,aa,ab,ac){var{aa,ab,ac,ad,ae,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab,ac});$s=$s||0;s:while(true){switch($s){case 0:ad=ab;if(aa){$s=1;continue;}$s=2;continue;case 1:ae=FM($clone(ab,E.Value));$s=3;case 3:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ad=ae;case 2:$r=z(ac,y,$clone(ad,E.Value));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return ab;}return;}var $f={$blk:GH,$c:true,$r,aa,ab,ac,ad,ae,y,z,$s};return $f;};EV.ptr.prototype.decodeMap=function(y,z,aa,ab,ac,ad){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab,ac,ad});$s=$s||0;s:while(true){switch($s){case 0:ae=this;af=z.decodeUint();$s=1;case 1:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=((af.$low>>0));if($clone(aa,E.Value).IsNil()){$s=2;continue;}$s=3;continue;case 2:ah=E.MakeMapWithSize(y,ag);$s=4;case 4:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}$r=$clone(aa,E.Value).Set($clone(ah,E.Value));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:ai=y.Key();$s=6;case 6:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai.Kind();$s=7;case 7:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=aj===22;al=y.Elem();$s=8;case 8:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al.Kind();$s=9;case 9:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am===22;ao=new FJ.ptr(ab,0,JO.nil,ad);ap=new FJ.ptr(ac,0,JO.nil,ad);aq=y.Key();$s=10;case 10:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=E.New(aq);$s=11;case 11:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=ar;at=y.Key();$s=12;case 12:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=E.Zero(at);$s=13;case 13:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=au;aw=y.Elem();$s=14;case 14:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ax=E.New(aw);$s=15;case 15:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;az=y.Elem();$s=16;case 16:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=E.Zero(az);$s=17;case 17:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba;bc=0;case 18:if(!(bc>0;$s=18;continue;case 19:$s=-1;return;}return;}var $f={$blk:EV.ptr.prototype.decodeMap,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,y,z,$s};return $f;};EV.prototype.decodeMap=function(y,z,aa,ab,ac,ad){return this.$val.decodeMap(y,z,aa,ab,ac,ad);};EV.ptr.prototype.ignoreArrayHelper=function(y,z,aa){var{aa,ab,ac,ad,y,z,$s,$r,$c}=$restore(this,{y,z,aa});$s=$s||0;s:while(true){switch($s){case 0:ab=this;ac=new FJ.ptr(z,0,JO.nil,B.New("no error"));ad=0;case 1:if(!(ad>0;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:EV.ptr.prototype.ignoreArrayHelper,$c:true,$r,aa,ab,ac,ad,y,z,$s};return $f;};EV.prototype.ignoreArrayHelper=function(y,z,aa){return this.$val.ignoreArrayHelper(y,z,aa);};EV.ptr.prototype.ignoreArray=function(y,z,aa){var{aa,ab,ac,ad,ae,y,z,$s,$r,$c}=$restore(this,{y,z,aa});$s=$s||0;s:while(true){switch($s){case 0:ab=this;ac=y.decodeUint();$s=1;case 1:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;if(!((ae=(new $Uint64(0,aa)),(ad.$high===ae.$high&&ad.$low===ae.$low)))){$s=2;continue;}$s=3;continue;case 2:$r=CH("length mismatch in ignoreArray",new JH([]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$r=ab.ignoreArrayHelper(y,z,aa);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:EV.ptr.prototype.ignoreArray,$c:true,$r,aa,ab,ac,ad,ae,y,z,$s};return $f;};EV.prototype.ignoreArray=function(y,z,aa){return this.$val.ignoreArray(y,z,aa);};EV.ptr.prototype.ignoreMap=function(y,z,aa){var{aa,ab,ac,ad,ae,af,ag,y,z,$s,$r,$c}=$restore(this,{y,z,aa});$s=$s||0;s:while(true){switch($s){case 0:ab=this;ac=y.decodeUint();$s=1;case 1:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=((ac.$low>>0));ae=new FJ.ptr(z,0,JO.nil,B.New("no error"));af=new FJ.ptr(aa,0,JO.nil,B.New("no error"));ag=0;case 2:if(!(ag>0;$s=2;continue;case 3:$s=-1;return;}return;}var $f={$blk:EV.ptr.prototype.ignoreMap,$c:true,$r,aa,ab,ac,ad,ae,af,ag,y,z,$s};return $f;};EV.prototype.ignoreMap=function(y,z,aa){return this.$val.ignoreMap(y,z,aa);};EV.ptr.prototype.decodeSlice=function(y,z,aa,ab,ac){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab,ac});$s=$s||0;s:while(true){switch($s){case 0:ad=this;ae=y.decodeUint();$s=1;case 1:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;ag=$clone(z,E.Value).Type();ai=ag.Elem();$s=2;case 2:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai.Size();$s=3;case 3:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=((ah=aj,new $Uint64(0,ah.constructor===Number?ah:1)));al=$mul64(af,ak);am=((af.$low>>0));if(am<0||!((an=(new $Uint64(0,am)),(an.$high===af.$high&&an.$low===af.$low)))||(al.$high>0||(al.$high===0&&al.$low>1073741824))||((ak.$high>0||(ak.$high===0&&ak.$low>0))&&!((ao=$div64(al,ak,false),(ao.$high===af.$high&&ao.$low===af.$low))))){$s=4;continue;}$s=5;continue;case 4:ap=ag.Elem();$s=6;case 6:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap;ar=af;as=ak;$r=CH("%s slice too big: %d elements of %d bytes",new JH([aq,ar,as]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:if($clone(z,E.Value).Cap()>0));$r=aa.ignoreArrayHelper(ab,ac,ae);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:EV.ptr.prototype.ignoreSlice,$c:true,$r,aa,ab,ac,ad,ae,y,z,$s};return $f;};EV.prototype.ignoreSlice=function(y,z){return this.$val.ignoreSlice(y,z);};EV.ptr.prototype.decodeInterface=function(y,z,aa){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,y,z,$s,$r,$c}=$restore(this,{y,z,aa});$s=$s||0;s:while(true){switch($s){case 0:ab=this;ac=z.decodeUint();$s=1;case 1:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;if((ad.$high>0||(ad.$high===0&&ad.$low>2147483648))){$s=2;continue;}$s=3;continue;case 2:$r=CH("invalid type name length %d",new JH([ad]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:if((ae=(new $Uint64(0,z.b.Len())),(ad.$high>ae.$high||(ad.$high===ae.$high&&ad.$low>ae.$low)))){$s=5;continue;}$s=6;continue;case 5:$r=CH("invalid type name length %d: exceeds input size",new JH([ad]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:af=((ad.$low>>0));ag=$subslice(z.b.Bytes(),0,af);z.b.Drop(af);if(ag.$length===0){$s=8;continue;}$s=9;continue;case 8:ah=E.Zero($clone(aa,E.Value).Type());$s=10;case 10:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}$r=$clone(aa,E.Value).Set($clone(ah,E.Value));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 9:if(ag.$length>1024){$s=12;continue;}$s=13;continue;case 12:$r=CH("name too long (%d bytes): %.20q...",new JH([new $Int(ag.$length),ag]));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:ai=CB.Load(new $String(($bytesToString(ag))));aj=ai[0];ak=ai[1];if(!ak){$s=15;continue;}$s=16;continue;case 15:$r=CH("name not registered for interface: %q",new JH([ag]));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 16:al=$assertType(aj,E.Type);am=ab.decodeTypeSequence(true);$s=18;case 18:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am;if(an<0){CI(ab.err);}ao=z.decodeUint();$s=19;case 19:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ao;ap=GO(al);$s=20;case 20:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap;$r=ab.decodeValue(an,$clone(aq,E.Value));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!($interfaceIsEqual(ab.err,$ifaceNil))){CI(ab.err);}ar=al.AssignableTo(y);$s=24;case 24:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}if(!ar){$s=22;continue;}$s=23;continue;case 22:$r=CH("%s is not assignable to type %s",new JH([al,y]));$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 23:$r=$clone(aa,E.Value).Set($clone(aq,E.Value));$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:EV.ptr.prototype.decodeInterface,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,y,z,$s};return $f;};EV.prototype.decodeInterface=function(y,z,aa){return this.$val.decodeInterface(y,z,aa);};EV.ptr.prototype.ignoreInterface=function(y){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=this;ab=y.getLength();$s=1;case 1:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;ac=aa[0];ad=aa[1];if(!ad){$s=2;continue;}$s=3;continue;case 2:$r=CH("bad interface encoding: name too large for buffer",new JH([]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:ae=y.b.Len();if(ae>0))<25){ak[0]=((ax<0||ax>=GI.length)?($throwRuntimeError("index out of range"),undefined):GI[ax]);}if(ak[0]===$throwNilPointerError){$s=7;continue;}$s=8;continue;case 7:ay=z;(ab||$throwRuntimeError("assignment to entry in nil map")).set(E.Type.keyFor(ay),{k:ay,v:(ak.$ptr||(ak.$ptr=new KR(function(){return this.$target[0];},function($v){this.$target[0]=$v;},ak)))});ao[0]=av;az=ao[0].Kind();$s=10;case 10:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;if(ba===(17)){$s=11;continue;}if(ba===(21)){$s=12;continue;}if(ba===(23)){$s=13;continue;}if(ba===(25)){$s=14;continue;}if(ba===(20)){$s=15;continue;}$s=16;continue;case 11:aa="element of "+aa;bc=(bb=$mapIndex(ac[0].wireType,Z.keyFor(y)),bb!==undefined?bb.v:JL.nil).ArrayT.Elem;bd=bc;be=ao[0].Elem();$s=17;case 17:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bf=be;bg=aa;bh=ab;bi=ac[0].decOpFor(bd,bf,bg,bh);$s=18;case 18:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}ad[0]=bi;al[0]=FG(aa);bj=ao[0].Elem();$s=19;case 19:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bk=bj.Kind();$s=20;case 20:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}ah[0]=(bl=$mapIndex(GP,E.Kind.keyFor(bk)),bl!==undefined?bl.v:$throwNilPointerError);ak[0]=(function(ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao){return function $b(bm,bn,bo){var{bm,bn,bo,bp,bq,br,bs,bt,bu,bv,$s,$r,$c}=$restore(this,{bm,bn,bo});$s=$s||0;s:while(true){switch($s){case 0:bp=bn;bq=$clone(bo,E.Value);br=ad[0].$get();bs=ao[0].Len();$s=1;case 1:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}bt=bs;bu=al[0];bv=ah[0];$r=bn.dec.decodeArray(bp,bq,br,bt,bu,bv);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,$s};return $f;};})(ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao);$s=16;continue;case 12:bn=(bm=$mapIndex(ac[0].wireType,Z.keyFor(y)),bm!==undefined?bm.v:JL.nil).MapT.Key;bp=(bo=$mapIndex(ac[0].wireType,Z.keyFor(y)),bo!==undefined?bo.v:JL.nil).MapT.Elem;bq=bn;br=ao[0].Key();$s=21;case 21:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}bs=br;bt="key of "+aa;bu=ab;bv=ac[0].decOpFor(bq,bs,bt,bu);$s=22;case 22:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}aj[0]=bv;bw=bp;bx=ao[0].Elem();$s=23;case 23:if($c){$c=false;bx=bx.$blk();}if(bx&&bx.$blk!==undefined){break s;}by=bx;bz="element of "+aa;ca=ab;cb=ac[0].decOpFor(bw,by,bz,ca);$s=24;case 24:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}ae[0]=cb;am[0]=FG(aa);ak[0]=(function(ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao){return function $b(cc,cd,ce){var{cc,cd,ce,$s,$r,$c}=$restore(this,{cc,cd,ce});$s=$s||0;s:while(true){switch($s){case 0:$r=cd.dec.decodeMap(ao[0],cd,$clone(ce,E.Value),aj[0].$get(),ae[0].$get(),am[0]);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,cc,cd,ce,$s};return $f;};})(ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao);$s=16;continue;case 13:aa="element of "+aa;cc=ao[0].Elem();$s=27;case 27:if($c){$c=false;cc=cc.$blk();}if(cc&&cc.$blk!==undefined){break s;}cd=cc.Kind();$s=28;case 28:if($c){$c=false;cd=cd.$blk();}if(cd&&cd.$blk!==undefined){break s;}if(cd===8){$s=25;continue;}$s=26;continue;case 25:ak[0]=GC;$s=9;continue;case 26:ce=0;cf=(cg=$mapIndex(AF,Z.keyFor(y)),cg!==undefined?[cg.v,true]:[$ifaceNil,false]);ch=cf[0];ci=cf[1];if(ci){ce=$assertType(ch,JD).Elem;}else{ce=(cj=$mapIndex(ac[0].wireType,Z.keyFor(y)),cj!==undefined?cj.v:JL.nil).SliceT.Elem;}ck=ce;cl=ao[0].Elem();$s=29;case 29:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}cm=cl;cn=aa;co=ab;cp=ac[0].decOpFor(ck,cm,cn,co);$s=30;case 30:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}af[0]=cp;an[0]=FG(aa);cq=ao[0].Elem();$s=31;case 31:if($c){$c=false;cq=cq.$blk();}if(cq&&cq.$blk!==undefined){break s;}cr=cq.Kind();$s=32;case 32:if($c){$c=false;cr=cr.$blk();}if(cr&&cr.$blk!==undefined){break s;}ai[0]=(cs=$mapIndex(GQ,E.Kind.keyFor(cr)),cs!==undefined?cs.v:$throwNilPointerError);ak[0]=(function(ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao){return function $b(ct,cu,cv){var{ct,cu,cv,$s,$r,$c}=$restore(this,{ct,cu,cv});$s=$s||0;s:while(true){switch($s){case 0:$r=cu.dec.decodeSlice(cu,$clone(cv,E.Value),af[0].$get(),an[0],ai[0]);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ct,cu,cv,$s};return $f;};})(ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao);$s=16;continue;case 14:ct=Y(av);$s=33;case 33:if($c){$c=false;ct=ct.$blk();}if(ct&&ct.$blk!==undefined){break s;}cu=ct;cw=ac[0].getDecEnginePtr(y,cu);$s=34;case 34:if($c){$c=false;cw=cw.$blk();}if(cw&&cw.$blk!==undefined){break s;}cv=cw;ag[0]=cv[0];cx=cv[1];if(!($interfaceIsEqual(cx,$ifaceNil))){CI(cx);}ak[0]=(function(ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao){return function $b(cy,cz,da){var{cy,cz,da,$s,$r,$c}=$restore(this,{cy,cz,da});$s=$s||0;s:while(true){switch($s){case 0:$r=ac[0].decodeStruct(ag[0].$get(),$clone(da,E.Value));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,cy,cz,da,$s};return $f;};})(ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao);$s=16;continue;case 15:ak[0]=(function(ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao){return function $b(cy,cz,da){var{cy,cz,da,$s,$r,$c}=$restore(this,{cy,cz,da});$s=$s||0;s:while(true){switch($s){case 0:$r=cz.dec.decodeInterface(ao[0],cz,$clone(da,E.Value));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,cy,cz,da,$s};return $f;};})(ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao);case 16:case 9:case 8:if(ak[0]===$throwNilPointerError){$s=35;continue;}$s=36;continue;case 35:$r=CH("decode can't handle type %s",new JH([z]));$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 36:$s=-1;return(ak.$ptr||(ak.$ptr=new KR(function(){return this.$target[0];},function($v){this.$target[0]=$v;},ak)));}return;}var $f={$blk:EV.ptr.prototype.decOpFor,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,y,z,$s};return $f;};EV.prototype.decOpFor=function(y,z,aa,ab){return this.$val.decOpFor(y,z,aa,ab);};EV.ptr.prototype.decIgnoreOpFor=function(y,z,aa){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,y,z,$s,$r,$c}=$restore(this,{y,z,aa});$s=$s||0;s:while(true){switch($s){case 0:ab=[ab];ac=[ac];ad=[ad];ae=[ae];af=[af];ag=[ag];ah=[ah];ai=this;if(aa>GK){CI(B.New("invalid nesting depth"));}ak=(aj=$mapIndex(z,Z.keyFor(y)),aj!==undefined?aj.v:KR.nil);if(!(ak===KR.nil)){$s=-1;return ak;}al=(am=$mapIndex(GJ,Z.keyFor(y)),am!==undefined?[am.v,true]:[$throwNilPointerError,false]);ag[0]=al[0];an=al[1];if(!an){$s=1;continue;}$s=2;continue;case 1:ao=y;(z||$throwRuntimeError("assignment to entry in nil map")).set(Z.keyFor(ao),{k:ao,v:(ag.$ptr||(ag.$ptr=new KR(function(){return this.$target[0];},function($v){this.$target[0]=$v;},ag)))});if(y===AP){$s=3;continue;}$s=4;continue;case 3:ag[0]=(function(ab,ac,ad,ae,af,ag,ah){return function $b(ap,aq,ar){var{ap,aq,ar,$s,$r,$c}=$restore(this,{ap,aq,ar});$s=$s||0;s:while(true){switch($s){case 0:$r=aq.dec.ignoreInterface(aq);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ap,aq,ar,$s};return $f;};})(ab,ac,ad,ae,af,ag,ah);$s=-1;return(ag.$ptr||(ag.$ptr=new KR(function(){return this.$target[0];},function($v){this.$target[0]=$v;},ag)));case 4:ah[0]=(ap=$mapIndex(ai.wireType,Z.keyFor(y)),ap!==undefined?ap.v:JL.nil);if(ah[0]===JL.nil){$s=6;continue;}if(!(ah[0].ArrayT===JC.nil)){$s=7;continue;}if(!(ah[0].MapT===JF.nil)){$s=8;continue;}if(!(ah[0].SliceT===JD.nil)){$s=9;continue;}if(!(ah[0].StructT===JE.nil)){$s=10;continue;}if((!(ah[0].GobEncoderT===JG.nil))||(!(ah[0].BinaryMarshalerT===JG.nil))||(!(ah[0].TextMarshalerT===JG.nil))){$s=11;continue;}$s=12;continue;case 6:aq=new Z(y).string();$s=13;case 13:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=new $String(aq);$r=CH("bad data: undefined type %s",new JH([ar]));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=12;continue;case 7:as=ah[0].ArrayT.Elem;at=ai.decIgnoreOpFor(as,z,aa+1>>0);$s=15;case 15:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}ab[0]=at;ag[0]=(function(ab,ac,ad,ae,af,ag,ah){return function $b(au,av,aw){var{au,av,aw,$s,$r,$c}=$restore(this,{au,av,aw});$s=$s||0;s:while(true){switch($s){case 0:$r=av.dec.ignoreArray(av,ab[0].$get(),ah[0].ArrayT.Len);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,au,av,aw,$s};return $f;};})(ab,ac,ad,ae,af,ag,ah);$s=12;continue;case 8:av=(au=$mapIndex(ai.wireType,Z.keyFor(y)),au!==undefined?au.v:JL.nil).MapT.Key;ax=(aw=$mapIndex(ai.wireType,Z.keyFor(y)),aw!==undefined?aw.v:JL.nil).MapT.Elem;ay=ai.decIgnoreOpFor(av,z,aa+1>>0);$s=16;case 16:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}af[0]=ay;az=ai.decIgnoreOpFor(ax,z,aa+1>>0);$s=17;case 17:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ac[0]=az;ag[0]=(function(ab,ac,ad,ae,af,ag,ah){return function $b(ba,bb,bc){var{ba,bb,bc,$s,$r,$c}=$restore(this,{ba,bb,bc});$s=$s||0;s:while(true){switch($s){case 0:$r=bb.dec.ignoreMap(bb,af[0].$get(),ac[0].$get());$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ba,bb,bc,$s};return $f;};})(ab,ac,ad,ae,af,ag,ah);$s=12;continue;case 9:ba=ah[0].SliceT.Elem;bb=ai.decIgnoreOpFor(ba,z,aa+1>>0);$s=18;case 18:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}ad[0]=bb;ag[0]=(function(ab,ac,ad,ae,af,ag,ah){return function $b(bc,bd,be){var{bc,bd,be,$s,$r,$c}=$restore(this,{bc,bd,be});$s=$s||0;s:while(true){switch($s){case 0:$r=bd.dec.ignoreSlice(bd,ad[0].$get());$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,bc,bd,be,$s};return $f;};})(ab,ac,ad,ae,af,ag,ah);$s=12;continue;case 10:bd=ai.getIgnoreEnginePtr(y);$s=19;case 19:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}bc=bd;ae[0]=bc[0];be=bc[1];if(!($interfaceIsEqual(be,$ifaceNil))){CI(be);}ag[0]=(function(ab,ac,ad,ae,af,ag,ah){return function $b(bf,bg,bh){var{bf,bg,bh,$s,$r,$c}=$restore(this,{bf,bg,bh});$s=$s||0;s:while(true){switch($s){case 0:$r=bg.dec.ignoreStruct(ae[0].$get());$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,bf,bg,bh,$s};return $f;};})(ab,ac,ad,ae,af,ag,ah);$s=12;continue;case 11:ag[0]=(function(ab,ac,ad,ae,af,ag,ah){return function $b(bf,bg,bh){var{bf,bg,bh,$s,$r,$c}=$restore(this,{bf,bg,bh});$s=$s||0;s:while(true){switch($s){case 0:$r=bg.dec.ignoreGobDecoder(bg);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,bf,bg,bh,$s};return $f;};})(ab,ac,ad,ae,af,ag,ah);case 12:case 5:case 2:if(ag[0]===$throwNilPointerError){$s=20;continue;}$s=21;continue;case 20:bf=new Z(y).string();$s=22;case 22:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bg=new $String(bf);$r=CH("bad data: ignore can't handle type %s",new JH([bg]));$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 21:$s=-1;return(ag.$ptr||(ag.$ptr=new KR(function(){return this.$target[0];},function($v){this.$target[0]=$v;},ag)));}return;}var $f={$blk:EV.ptr.prototype.decIgnoreOpFor,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,y,z,$s};return $f;};EV.prototype.decIgnoreOpFor=function(y,z,aa){return this.$val.decIgnoreOpFor(y,z,aa);};EV.ptr.prototype.gobDecodeOpFor=function(y){var{aa,ab,ac,ad,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:aa=[aa];y=[y];z=[z];ab=this;aa[0]=y[0].user;if(y[0].decIndir===-1){$s=1;continue;}if(y[0].decIndir>0){$s=2;continue;}$s=3;continue;case 1:aa[0]=E.PointerTo(aa[0]);$s=3;continue;case 2:ac=0;case 4:if(!(ac>24;$s=4;continue;case 5:case 3:z[0]=$throwNilPointerError;z[0]=(function(aa,y,z){return function $b(ae,af,ag){var{ae,af,ag,ah,ai,$s,$r,$c}=$restore(this,{ae,af,ag});$s=$s||0;s:while(true){switch($s){case 0:if(!(!(($clone(ag,E.Value).Kind()===22)))){ah=false;$s=3;continue s;}ai=aa[0].Kind();$s=4;case 4:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ah=ai===22;case 3:if(ah){$s=1;continue;}$s=2;continue;case 1:ag=$clone(ag,E.Value).Addr();case 2:$r=af.dec.decodeGobDecoder(y[0],af,$clone(ag,E.Value));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ae,af,ag,ah,ai,$s};return $f;};})(aa,y,z);$s=-1;return(z.$ptr||(z.$ptr=new KR(function(){return this.$target[0];},function($v){this.$target[0]=$v;},z)));}return;}var $f={$blk:EV.ptr.prototype.gobDecodeOpFor,$c:true,$r,aa,ab,ac,ad,y,z,$s};return $f;};EV.prototype.gobDecodeOpFor=function(y){return this.$val.gobDecodeOpFor(y);};EV.ptr.prototype.compatibleType=function(y,z,aa){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,y,z,$s,$r,$c}=$restore(this,{y,z,aa});$s=$s||0;s:while(true){switch($s){case 0:ab=this;ac=(ad=$mapIndex(aa,E.Type.keyFor(y)),ad!==undefined?[ad.v,true]:[0,false]);ae=ac[0];af=ac[1];if(af){$s=-1;return ae===z;}ag=y;(aa||$throwRuntimeError("assignment to entry in nil map")).set(E.Type.keyFor(ag),{k:ag,v:z});ah=Y(y);$s=1;case 1:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;aj=(ak=$mapIndex(ab.wireType,Z.keyFor(z)),ak!==undefined?[ak.v,true]:[JL.nil,false]);al=aj[0];am=aj[1];if(!(((ai.externalDec===1))===(am&&!(al.GobEncoderT===JG.nil)))||!(((ai.externalDec===2))===(am&&!(al.BinaryMarshalerT===JG.nil)))||!(((ai.externalDec===3))===(am&&!(al.TextMarshalerT===JG.nil)))){$s=-1;return false;}if(!((ai.externalDec===0))){$s=-1;return true;}an=ai.base;ao=an.Kind();$s=3;case 3:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=ao;if(ap===(1)){$s=4;continue;}if((ap===(2))||(ap===(3))||(ap===(4))||(ap===(5))||(ap===(6))){$s=5;continue;}if((ap===(7))||(ap===(8))||(ap===(9))||(ap===(10))||(ap===(11))||(ap===(12))){$s=6;continue;}if((ap===(13))||(ap===(14))){$s=7;continue;}if((ap===(15))||(ap===(16))){$s=8;continue;}if(ap===(24)){$s=9;continue;}if(ap===(20)){$s=10;continue;}if(ap===(17)){$s=11;continue;}if(ap===(21)){$s=12;continue;}if(ap===(23)){$s=13;continue;}if(ap===(25)){$s=14;continue;}$s=15;continue;case 4:$s=-1;return z===AI;case 5:$s=-1;return z===AJ;case 6:$s=-1;return z===AK;case 7:$s=-1;return z===AL;case 8:$s=-1;return z===AO;case 9:$s=-1;return z===AN;case 10:$s=-1;return z===AP;case 11:if(!am||al.ArrayT===JC.nil){$s=-1;return false;}aq=al.ArrayT;as=an.Len();$s=18;case 18:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}if(!(as===aq.Len)){ar=false;$s=17;continue s;}at=an.Elem();$s=19;case 19:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=ab.compatibleType(at,aq.Elem,aa);$s=20;case 20:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}ar=au;case 17:av=ar;$s=21;case 21:return av;case 12:if(!am||al.MapT===JF.nil){$s=-1;return false;}aw=al.MapT;ay=an.Key();$s=23;case 23:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ab.compatibleType(ay,aw.Key,aa);$s=24;case 24:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}if(!(az)){ax=false;$s=22;continue s;}ba=an.Elem();$s=25;case 25:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ab.compatibleType(ba,aw.Elem,aa);$s=26;case 26:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}ax=bb;case 22:bc=ax;$s=27;case 27:return bc;case 13:bd=an.Elem();$s=30;case 30:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=bd.Kind();$s=31;case 31:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}if(be===8){$s=28;continue;}$s=29;continue;case 28:$s=-1;return z===AM;case 29:bf=JD.nil;bg=(bh=$mapIndex(AF,Z.keyFor(z)),bh!==undefined?[bh.v,true]:[$ifaceNil,false]);bi=bg[0];bj=bg[1];if(bj){bk=$assertType(bi,JD,true);bf=bk[0];}else if(!(al===JL.nil)){bf=al.SliceT;}bl=an.Elem();$s=32;case 32:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}bm=Y(bl);$s=33;case 33:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bn=bm.base;if(!(!(bf===JD.nil))){bo=false;$s=34;continue s;}bp=ab.compatibleType(bn,bf.Elem,aa);$s=35;case 35:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}bo=bp;case 34:bq=bo;$s=36;case 36:return bq;case 14:$s=-1;return true;case 15:$s=-1;return false;case 16:case 2:$s=-1;return false;}return;}var $f={$blk:EV.ptr.prototype.compatibleType,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,y,z,$s};return $f;};EV.prototype.compatibleType=function(y,z,aa){return this.$val.compatibleType(y,z,aa);};EV.ptr.prototype.typeString=function(y){var{aa,ab,ac,ad,ae,af,y,z,$s,$deferred,$r,$c}=$restore(this,{y});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);z=this;AB.Lock();$deferred.push([$methodVal(AB,"Unlock"),[]]);ab=(aa=$mapIndex(AE,Z.keyFor(y)),aa!==undefined?aa.v:$ifaceNil);if(!($interfaceIsEqual(ab,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:ac=ab.string();$s=3;case 3:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;$s=4;case 4:return ad;case 2:af=(ae=$mapIndex(z.wireType,Z.keyFor(y)),ae!==undefined?ae.v:JL.nil).string();$s=5;case 5:return af;}return;}}catch(err){$err=err;$s=-1;return"";}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:EV.ptr.prototype.typeString,$c:true,$r,aa,ab,ac,ad,ae,af,y,z,$s,$deferred};return $f;}}};EV.prototype.typeString=function(y){return this.$val.typeString(y);};EV.ptr.prototype.compileSingle=function(y,z){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,y,z,$s,$r,$c}=$restore(this,{y,z});$s=$s||0;s:while(true){switch($s){case 0:aa=KS.nil;ab=$ifaceNil;ac=this;ad=z.user;aa=new GF.ptr(KT.nil,0);aa.instr=$makeSlice(KT,1);ae=ad.String();$s=1;case 1:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;ag=ac.compatibleType(ad,y,new $global.Map());$s=4;case 4:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}if(!ag){$s=2;continue;}$s=3;continue;case 2:ah=ac.typeString(y);$s=5;case 5:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;aj=z.base.Kind();$s=8;case 8:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}if((aj===20)&&!((y===AP))){$s=6;continue;}$s=7;continue;case 6:ak=KS.nil;al=B.New("gob: local interface type "+af+" can only be decoded from remote interface type; received concrete type "+ai);aa=ak;ab=al;$s=-1;return[aa,ab];case 7:am=KS.nil;an=B.New("gob: decoding into local type "+af+", received remote type "+ai);aa=am;ab=an;$s=-1;return[aa,ab];case 3:ao=ac.decOpFor(y,ad,af,new $global.Map());$s=9;case 9:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=ao;aq=B.New("value for \""+af+"\" out of range");FJ.copy((ar=aa.instr,(0>=ar.$length?($throwRuntimeError("index out of range"),undefined):ar.$array[ar.$offset+0])),new FJ.ptr(ap.$get(),0,JO.nil,aq));aa.numInstr=1;$s=-1;return[aa,ab];}return;}var $f={$blk:EV.ptr.prototype.compileSingle,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,y,z,$s};return $f;};EV.prototype.compileSingle=function(y,z){return this.$val.compileSingle(y,z);};EV.ptr.prototype.compileIgnoreSingle=function(y){var{aa,ab,ac,ad,ae,af,ag,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=this;aa=new GF.ptr(KT.nil,0);aa.instr=$makeSlice(KT,1);ab=z.decIgnoreOpFor(y,new $global.Map(),0);$s=1;case 1:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;ad=z.typeString(y);$s=2;case 2:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=FG(ad);$s=3;case 3:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;FJ.copy((ag=aa.instr,(0>=ag.$length?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+0])),new FJ.ptr(ac.$get(),0,JO.nil,af));aa.numInstr=1;$s=-1;return aa;}return;}var $f={$blk:EV.ptr.prototype.compileIgnoreSingle,$c:true,$r,aa,ab,ac,ad,ae,af,ag,y,z,$s};return $f;};EV.prototype.compileIgnoreSingle=function(y){return this.$val.compileIgnoreSingle(y);};EV.ptr.prototype.compileDec=function(y,z){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,y,z,$s,$deferred,$r,$c}=$restore(this,{y,z});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);aa=[aa];ab=KS.nil;aa[0]=$ifaceNil;ac=this;$deferred.push([CJ,[(aa.$ptr||(aa.$ptr=new KN(function(){return this.$target[0];},function($v){this.$target[0]=$v;},aa)))]]);ad=z.base;ae=ad;af=ae.Kind();$s=3;case 3:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}if(!((af===25))||!((z.externalDec===0))){$s=1;continue;}$s=2;continue;case 1:ah=ac.compileSingle(y,z);$s=4;case 4:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ag=ah;ab=ag[0];aa[0]=ag[1];ai=[ab,aa[0]];$s=5;case 5:return ai;case 2:aj=JE.nil;ak=(al=$mapIndex(AF,Z.keyFor(y)),al!==undefined?[al.v,true]:[$ifaceNil,false]);am=ak[0];an=ak[1];if(an){ao=$assertType(am,JE,true);aj=ao[0];}else{aq=(ap=$mapIndex(ac.wireType,Z.keyFor(y)),ap!==undefined?ap.v:JL.nil);if(aq===JL.nil){CI(FB);}aj=aq.StructT;}if(aj===JE.nil){$s=6;continue;}$s=7;continue;case 6:$r=CH("type mismatch in decoder: want struct type %s; got non-struct",new JH([ad]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:ab=new GF.ptr(KT.nil,0);ab.instr=$makeSlice(KT,aj.Field.$length);ar=new $global.Map();as=0;case 9:if(!(as=at.$length)?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+as]));if(au.Name===""){$s=11;continue;}$s=12;continue;case 11:$r=CH("empty name for remote field of type %s",new JH([new $String(aj.CommonType.Name)]));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:av=FG(au.Name);ax=ae.FieldByName(au.Name);$s=14;case 14:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}aw=ax;ay=$clone(aw[0],E.StructField);az=aw[1];if(!az||!BM(au.Name)){$s=15;continue;}$s=16;continue;case 15:ba=ac.decIgnoreOpFor(au.Id,new $global.Map(),0);$s=17;case 17:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba;FJ.copy((bc=ab.instr,((as<0||as>=bc.$length)?($throwRuntimeError("index out of range"),undefined):bc.$array[bc.$offset+as])),new FJ.ptr(bb.$get(),as,JO.nil,av));as=as+(1)>>0;$s=9;continue;case 16:bd=ac.compatibleType(ay.Type,au.Id,new $global.Map());$s=20;case 20:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}if(!bd){$s=18;continue;}$s=19;continue;case 18:$r=CH("wrong type (%s) for received field %s.%s",new JH([ay.Type,new $String(aj.CommonType.Name),new $String(au.Name)]));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 19:be=ac.decOpFor(au.Id,ay.Type,ay.Name,ar);$s=22;case 22:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bf=be;FJ.copy((bg=ab.instr,((as<0||as>=bg.$length)?($throwRuntimeError("index out of range"),undefined):bg.$array[bg.$offset+as])),new FJ.ptr(bf.$get(),as,ay.Index,av));ab.numInstr=ab.numInstr+(1)>>0;as=as+(1)>>0;$s=9;continue;case 10:bh=[ab,aa[0]];$s=23;case 23:return bh;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[ab,aa[0]];}if($curGoroutine.asleep){var $f={$blk:EV.ptr.prototype.compileDec,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,y,z,$s,$deferred};return $f;}}};EV.prototype.compileDec=function(y,z){return this.$val.compileDec(y,z);};EV.ptr.prototype.getDecEnginePtr=function(y,z){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,y,z,$s,$r,$c}=$restore(this,{y,z});$s=$s||0;s:while(true){switch($s){case 0:aa=KU.nil;ab=$ifaceNil;ac=this;ad=z.user;ae=(af=$mapIndex(ac.decoderCache,E.Type.keyFor(ad)),af!==undefined?[af.v,true]:[false,false]);ag=ae[0];ah=ae[1];if(!ah){ag=new $global.Map();ai=ad;(ac.decoderCache||$throwRuntimeError("assignment to entry in nil map")).set(E.Type.keyFor(ai),{k:ai,v:ag});}aj=(ak=$mapIndex(ag,Z.keyFor(y)),ak!==undefined?[ak.v,true]:[KU.nil,false]);aa=aj[0];ah=aj[1];if(!ah){$s=1;continue;}$s=2;continue;case 1:aa=$newDataPointer(KS.nil,KU);al=y;(ag||$throwRuntimeError("assignment to entry in nil map")).set(Z.keyFor(al),{k:al,v:aa});an=ac.compileDec(y,z);$s=3;case 3:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}am=an;aa.$set(am[0]);ab=am[1];if(!($interfaceIsEqual(ab,$ifaceNil))){$mapDelete(ag,Z.keyFor(y));}case 2:$s=-1;return[aa,ab];}return;}var $f={$blk:EV.ptr.prototype.getDecEnginePtr,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,y,z,$s};return $f;};EV.prototype.getDecEnginePtr=function(y,z){return this.$val.getDecEnginePtr(y,z);};EV.ptr.prototype.getIgnoreEnginePtr=function(y){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=KU.nil;aa=$ifaceNil;ab=this;ac=false;ad=(ae=$mapIndex(ab.ignorerCache,Z.keyFor(y)),ae!==undefined?[ae.v,true]:[KU.nil,false]);z=ad[0];ac=ad[1];if(!ac){$s=1;continue;}$s=2;continue;case 1:z=$newDataPointer(KS.nil,KU);af=y;(ab.ignorerCache||$throwRuntimeError("assignment to entry in nil map")).set(Z.keyFor(af),{k:af,v:z});ah=(ag=$mapIndex(ab.wireType,Z.keyFor(y)),ag!==undefined?ag.v:JL.nil);if(!(ah===JL.nil)&&!(ah.StructT===JE.nil)){$s=3;continue;}$s=4;continue;case 3:aj=y;ak=Y(GM);$s=6;case 6:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak;am=ab.compileDec(aj,al);$s=7;case 7:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}ai=am;z.$set(ai[0]);aa=ai[1];$s=5;continue;case 4:an=ab.compileIgnoreSingle(y);$s=8;case 8:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}z.$set(an);case 5:if(!($interfaceIsEqual(aa,$ifaceNil))){$mapDelete(ab.ignorerCache,Z.keyFor(y));}case 2:$s=-1;return[z,aa];}return;}var $f={$blk:EV.ptr.prototype.getIgnoreEnginePtr,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,y,z,$s};return $f;};EV.prototype.getIgnoreEnginePtr=function(y){return this.$val.getIgnoreEnginePtr(y);};EV.ptr.prototype.decodeValue=function(y,z){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,y,z,$s,$deferred,$r,$c}=$restore(this,{y,z});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);aa=this;$deferred.push([CJ,[(aa.$ptr_err||(aa.$ptr_err=new KN(function(){return this.$target.err;},function($v){this.$target.err=$v;},aa)))]]);if(!$clone(z,E.Value).IsValid()){$s=1;continue;}$s=2;continue;case 1:$r=aa.decodeIgnoredValue(y);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=4;case 4:return;case 2:ab=Y($clone(z,E.Value).Type());$s=5;case 5:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;ad=ac.base;ae=KU.nil;ag=aa.getDecEnginePtr(y,ac);$s=6;case 6:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;ae=af[0];aa.err=af[1];if(!($interfaceIsEqual(aa.err,$ifaceNil))){$s=7;continue;}$s=8;continue;case 7:$s=9;case 9:return;case 8:ah=FM($clone(z,E.Value));$s=10;case 10:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}z=ah;ai=ae.$get();aj=ad;ak=aj.Kind();$s=14;case 14:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}if((ak===25)&&(ac.externalDec===0)){$s=11;continue;}$s=12;continue;case 11:am=(al=$mapIndex(aa.wireType,Z.keyFor(y)),al!==undefined?al.v:JL.nil);if(!(ai.numInstr===0)){an=false;$s=17;continue s;}ao=aj.NumField();$s=18;case 18:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}an=ao>0;case 17:if(an&&!(am===JL.nil)&&am.StructT.Field.$length>0){$s=15;continue;}$s=16;continue;case 15:ap=ad.Name();$s=19;case 19:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap;$r=CH("type mismatch: no fields matched compiling decoder for %s",new JH([new $String(aq)]));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 16:$r=aa.decodeStruct(ai,$clone(z,E.Value));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=13;continue;case 12:$r=aa.decodeSingle(ai,$clone(z,E.Value));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:EV.ptr.prototype.decodeValue,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,y,z,$s,$deferred};return $f;}}};EV.prototype.decodeValue=function(y,z){return this.$val.decodeValue(y,z);};EV.ptr.prototype.decodeIgnoredValue=function(y){var{aa,ab,ac,ad,ae,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=this;aa=KU.nil;ac=z.getIgnoreEnginePtr(y);$s=1;case 1:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ab=ac;aa=ab[0];z.err=ab[1];if(!($interfaceIsEqual(z.err,$ifaceNil))){$s=-1;return;}ae=(ad=$mapIndex(z.wireType,Z.keyFor(y)),ad!==undefined?ad.v:JL.nil);if(!(ae===JL.nil)&&!(ae.StructT===JE.nil)){$s=2;continue;}$s=3;continue;case 2:$r=z.ignoreStruct(aa.$get());$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=4;continue;case 3:$r=z.ignoreSingle(aa.$get());$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:$s=-1;return;}return;}var $f={$blk:EV.ptr.prototype.decodeIgnoredValue,$c:true,$r,aa,ab,ac,ad,ae,y,z,$s};return $f;};EV.prototype.decodeIgnoredValue=function(y){return this.$val.decodeIgnoredValue(y);};GN=function(){var{aa,ab,ac,ad,ae,af,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:y=$throwNilPointerError;z=$throwNilPointerError;aa=y;ab=z;ac=E.TypeOf(new $Int(0)).Bits();$s=2;case 2:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;if(ad===(32)){aa=FS;ab=FT;}else if(ad===(64)){aa=FU;ab=FV;}else{$panic(new $String("gob: unknown size of int/uint"));}case 1:GI[2]=aa;GI[7]=ab;ae=E.TypeOf(new $Uintptr(0)).Bits();$s=4;case 4:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;if(af===(32)){ab=FT;}else if(af===(64)){ab=FV;}else{$panic(new $String("gob: unknown size of uintptr"));}case 3:GI[12]=ab;$s=-1;return;}return;}var $f={$blk:GN,$c:true,$r,aa,ab,ac,ad,ae,af,y,z,$s};return $f;};GO=function(y){var{aa,y,z,$s,$r,$c}=$restore(this,{y});$s=$s||0;s:while(true){switch($s){case 0:z=$clone(E.New(y),E.Value).Elem();$s=1;case 1:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;$s=2;case 2:return aa;}return;}var $f={$blk:GO,$c:true,$r,aa,y,z,$s};return $f;};GR=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=GS(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:GR,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};GS=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,KC,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=!((ah=ai,(ah.$high===0&&ah.$low===0))));ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:GS,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};GT=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=GU(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:GT,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};GU=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,JZ,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=new $Complex64(($fround(aj)),($fround(am))));ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:GU,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,y,z,$s};return $f;};GV=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=GW(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:GV,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};GW=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,KA,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=new $Complex128(aj,am));ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:GW,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,y,z,$s};return $f;};GX=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=GY(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:GX,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};GY=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,JX,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=($fround(ai)));ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:GY,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};GZ=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=HA(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:GZ,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HA=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,JY,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=ai);ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:HA,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HB=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=HC(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:HB,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HC=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,JO,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=(((ai.$low+((ai.$high>>31)*4294967296))>>0)));ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:HC,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HD=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=HE(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:HD,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HE=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,JQ,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=(((ai.$low+((ai.$high>>31)*4294967296))<<16>>16)));ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:HE,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HF=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=HG(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:HF,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HG=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,JR,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=(((ai.$low+((ai.$high>>31)*4294967296))>>0)));ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:HG,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HH=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=HI(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:HH,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HI=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,JS,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=ah);ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:HI,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,y,z,$s};return $f;};HJ=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=HK(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:HJ,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HK=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,JP,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=(((ai.$low+((ai.$high>>31)*4294967296))<<24>>24)));ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:HK,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HL=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=HM(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:HL,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HM=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,KD,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag>0));if(aj<0||!((ak=(new $Uint64(0,aj)),(ak.$high===ai.$high&&ak.$low===ai.$low)))||aj>y.b.Len()){$s=8;continue;}$s=9;continue;case 8:$r=CH("length of string exceeds input size (%d bytes)",new JH([ai]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:if(aj>y.b.Len()){$s=11;continue;}$s=12;continue;case 11:$r=CH("string data too long for buffer: %d",new JH([new $Int(aj)]));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:al=y.b.Bytes();if(al.$length=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=($bytesToString($subslice(al,0,aj))));y.b.Drop(aj);ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:HM,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,y,z,$s};return $f;};HN=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=HO(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:HN,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HO=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,JT,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=((ai.$low>>>0)));ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:HO,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HP=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=HQ(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:HP,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HQ=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,JU,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=((ai.$low<<16>>>16)));ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:HQ,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HR=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=HS(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:HR,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HS=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,JV,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=((ai.$low>>>0)));ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:HS,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HT=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=HU(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:HT,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HU=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,JW,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=ah);ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:HU,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,y,z,$s};return $f;};HV=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(z,E.Value).CanAddr()){$s=-1;return false;}ac=y;ad=$clone(z,E.Value).Slice(0,$clone(z,E.Value).Len());$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=$clone(ad,E.Value);af=aa;ag=ab;ah=HW(ac,ae,af,ag);$s=2;case 2:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=3;case 3:return ai;}return;}var $f={$blk:HV,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};HW=function(y,z,aa,ab){var{aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s,$r,$c}=$restore(this,{y,z,aa,ab});$s=$s||0;s:while(true){switch($s){case 0:ad=$clone(z,E.Value).Interface();$s=1;case 1:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,KB,true);ae=ac[0];af=ac[1];if(!af){$s=-1;return false;}ag=0;case 2:if(!(ag=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+ag]=((ai.$low>>>0)));ag=ag+(1)>>0;$s=2;continue;case 3:$s=-1;return true;}return;}var $f={$blk:HW,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,y,z,$s};return $f;};Z.methods=[{prop:"gobType",name:"gobType",pkg:"encoding/gob",typ:$funcType([],[AC],false)},{prop:"string",name:"string",pkg:"encoding/gob",typ:$funcType([],[$String],false)},{prop:"name",name:"name",pkg:"encoding/gob",typ:$funcType([],[$String],false)}];KW.methods=[{prop:"id",name:"id",pkg:"encoding/gob",typ:$funcType([],[Z],false)},{prop:"setId",name:"setId",pkg:"encoding/gob",typ:$funcType([Z],[],false)},{prop:"string",name:"string",pkg:"encoding/gob",typ:$funcType([],[$String],false)},{prop:"safeString",name:"safeString",pkg:"encoding/gob",typ:$funcType([KV],[$String],false)},{prop:"name",name:"name",pkg:"encoding/gob",typ:$funcType([],[$String],false)}];JC.methods=[{prop:"init",name:"init",pkg:"encoding/gob",typ:$funcType([AC,$Int],[],false)},{prop:"safeString",name:"safeString",pkg:"encoding/gob",typ:$funcType([KV],[$String],false)},{prop:"string",name:"string",pkg:"encoding/gob",typ:$funcType([],[$String],false)}];JG.methods=[{prop:"safeString",name:"safeString",pkg:"encoding/gob",typ:$funcType([KV],[$String],false)},{prop:"string",name:"string",pkg:"encoding/gob",typ:$funcType([],[$String],false)}];JF.methods=[{prop:"init",name:"init",pkg:"encoding/gob",typ:$funcType([AC,AC],[],false)},{prop:"safeString",name:"safeString",pkg:"encoding/gob",typ:$funcType([KV],[$String],false)},{prop:"string",name:"string",pkg:"encoding/gob",typ:$funcType([],[$String],false)}];JD.methods=[{prop:"init",name:"init",pkg:"encoding/gob",typ:$funcType([AC],[],false)},{prop:"safeString",name:"safeString",pkg:"encoding/gob",typ:$funcType([KV],[$String],false)},{prop:"string",name:"string",pkg:"encoding/gob",typ:$funcType([],[$String],false)}];JE.methods=[{prop:"safeString",name:"safeString",pkg:"encoding/gob",typ:$funcType([KV],[$String],false)},{prop:"string",name:"string",pkg:"encoding/gob",typ:$funcType([],[$String],false)}];JL.methods=[{prop:"string",name:"string",pkg:"encoding/gob",typ:$funcType([],[$String],false)}];KH.methods=[{prop:"writeByte",name:"writeByte",pkg:"encoding/gob",typ:$funcType([$Uint8],[],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([IJ],[$Int,$error],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([$String],[],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Bytes",name:"Bytes",pkg:"",typ:$funcType([],[IJ],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([],[],false)}];KP.methods=[{prop:"recvType",name:"recvType",pkg:"encoding/gob",typ:$funcType([Z],[],false)},{prop:"recvMessage",name:"recvMessage",pkg:"encoding/gob",typ:$funcType([],[$Bool],false)},{prop:"readMessage",name:"readMessage",pkg:"encoding/gob",typ:$funcType([$Int],[],false)},{prop:"nextInt",name:"nextInt",pkg:"encoding/gob",typ:$funcType([],[$Int64],false)},{prop:"nextUint",name:"nextUint",pkg:"encoding/gob",typ:$funcType([],[$Uint64],false)},{prop:"decodeTypeSequence",name:"decodeTypeSequence",pkg:"encoding/gob",typ:$funcType([$Bool],[Z],false)},{prop:"Decode",name:"Decode",pkg:"",typ:$funcType([$emptyInterface],[$error],false)},{prop:"DecodeValue",name:"DecodeValue",pkg:"",typ:$funcType([E.Value],[$error],false)},{prop:"newDecoderState",name:"newDecoderState",pkg:"encoding/gob",typ:$funcType([KQ],[KO],false)},{prop:"freeDecoderState",name:"freeDecoderState",pkg:"encoding/gob",typ:$funcType([KO],[],false)},{prop:"decodeSingle",name:"decodeSingle",pkg:"encoding/gob",typ:$funcType([KS,E.Value],[],false)},{prop:"decodeStruct",name:"decodeStruct",pkg:"encoding/gob",typ:$funcType([KS,E.Value],[],false)},{prop:"ignoreStruct",name:"ignoreStruct",pkg:"encoding/gob",typ:$funcType([KS],[],false)},{prop:"ignoreSingle",name:"ignoreSingle",pkg:"encoding/gob",typ:$funcType([KS],[],false)},{prop:"decodeArrayHelper",name:"decodeArrayHelper",pkg:"encoding/gob",typ:$funcType([KO,E.Value,FI,$Int,$error,FD],[],false)},{prop:"decodeArray",name:"decodeArray",pkg:"encoding/gob",typ:$funcType([KO,E.Value,FI,$Int,$error,FD],[],false)},{prop:"decodeMap",name:"decodeMap",pkg:"encoding/gob",typ:$funcType([E.Type,KO,E.Value,FI,FI,$error],[],false)},{prop:"ignoreArrayHelper",name:"ignoreArrayHelper",pkg:"encoding/gob",typ:$funcType([KO,FI,$Int],[],false)},{prop:"ignoreArray",name:"ignoreArray",pkg:"encoding/gob",typ:$funcType([KO,FI,$Int],[],false)},{prop:"ignoreMap",name:"ignoreMap",pkg:"encoding/gob",typ:$funcType([KO,FI,FI],[],false)},{prop:"decodeSlice",name:"decodeSlice",pkg:"encoding/gob",typ:$funcType([KO,E.Value,FI,$error,FD],[],false)},{prop:"ignoreSlice",name:"ignoreSlice",pkg:"encoding/gob",typ:$funcType([KO,FI],[],false)},{prop:"decodeInterface",name:"decodeInterface",pkg:"encoding/gob",typ:$funcType([E.Type,KO,E.Value],[],false)},{prop:"ignoreInterface",name:"ignoreInterface",pkg:"encoding/gob",typ:$funcType([KO],[],false)},{prop:"decodeGobDecoder",name:"decodeGobDecoder",pkg:"encoding/gob",typ:$funcType([HX,KO,E.Value],[],false)},{prop:"ignoreGobDecoder",name:"ignoreGobDecoder",pkg:"encoding/gob",typ:$funcType([KO],[],false)},{prop:"decOpFor",name:"decOpFor",pkg:"encoding/gob",typ:$funcType([Z,E.Type,$String,KY],[KR],false)},{prop:"decIgnoreOpFor",name:"decIgnoreOpFor",pkg:"encoding/gob",typ:$funcType([Z,KZ,$Int],[KR],false)},{prop:"gobDecodeOpFor",name:"gobDecodeOpFor",pkg:"encoding/gob",typ:$funcType([HX],[KR],false)},{prop:"compatibleType",name:"compatibleType",pkg:"encoding/gob",typ:$funcType([E.Type,Z,KX],[$Bool],false)},{prop:"typeString",name:"typeString",pkg:"encoding/gob",typ:$funcType([Z],[$String],false)},{prop:"compileSingle",name:"compileSingle",pkg:"encoding/gob",typ:$funcType([Z,HX],[KS,$error],false)},{prop:"compileIgnoreSingle",name:"compileIgnoreSingle",pkg:"encoding/gob",typ:$funcType([Z],[KS],false)},{prop:"compileDec",name:"compileDec",pkg:"encoding/gob",typ:$funcType([Z,HX],[KS,$error],false)},{prop:"getDecEnginePtr",name:"getDecEnginePtr",pkg:"encoding/gob",typ:$funcType([Z,HX],[KU,$error],false)},{prop:"getIgnoreEnginePtr",name:"getIgnoreEnginePtr",pkg:"encoding/gob",typ:$funcType([Z],[KU,$error],false)},{prop:"decodeValue",name:"decodeValue",pkg:"encoding/gob",typ:$funcType([Z,E.Value],[],false)},{prop:"decodeIgnoredValue",name:"decodeIgnoredValue",pkg:"encoding/gob",typ:$funcType([Z],[],false)}];KO.methods=[{prop:"decodeUint",name:"decodeUint",pkg:"encoding/gob",typ:$funcType([],[$Uint64],false)},{prop:"decodeInt",name:"decodeInt",pkg:"encoding/gob",typ:$funcType([],[$Int64],false)},{prop:"getLength",name:"getLength",pkg:"encoding/gob",typ:$funcType([],[$Int,$Bool],false)}];KQ.methods=[{prop:"Read",name:"Read",pkg:"",typ:$funcType([IJ],[$Int,$error],false)},{prop:"Drop",name:"Drop",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([$Int],[],false)},{prop:"ReadByte",name:"ReadByte",pkg:"",typ:$funcType([],[$Uint8,$error],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Bytes",name:"Bytes",pkg:"",typ:$funcType([],[IJ],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([],[],false)}];O.init("encoding/gob",[{prop:"user",name:"user",embedded:false,exported:false,typ:E.Type,tag:""},{prop:"base",name:"base",embedded:false,exported:false,typ:E.Type,tag:""},{prop:"indir",name:"indir",embedded:false,exported:false,typ:$Int,tag:""},{prop:"externalEnc",name:"externalEnc",embedded:false,exported:false,typ:$Int,tag:""},{prop:"externalDec",name:"externalDec",embedded:false,exported:false,typ:$Int,tag:""},{prop:"encIndir",name:"encIndir",embedded:false,exported:false,typ:$Int8,tag:""},{prop:"decIndir",name:"decIndir",embedded:false,exported:false,typ:$Int8,tag:""}]);AC.init([{prop:"id",name:"id",pkg:"encoding/gob",typ:$funcType([],[Z],false)},{prop:"name",name:"name",pkg:"encoding/gob",typ:$funcType([],[$String],false)},{prop:"safeString",name:"safeString",pkg:"encoding/gob",typ:$funcType([KV],[$String],false)},{prop:"setId",name:"setId",pkg:"encoding/gob",typ:$funcType([Z],[],false)},{prop:"string",name:"string",pkg:"encoding/gob",typ:$funcType([],[$String],false)}]);AH.init("",[{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""},{prop:"Id",name:"Id",embedded:false,exported:true,typ:Z,tag:""}]);BA.init("",[{prop:"CommonType",name:"CommonType",embedded:true,exported:true,typ:AH,tag:""},{prop:"Elem",name:"Elem",embedded:false,exported:true,typ:Z,tag:""},{prop:"Len",name:"Len",embedded:false,exported:true,typ:$Int,tag:""}]);BC.init("",[{prop:"CommonType",name:"CommonType",embedded:true,exported:true,typ:AH,tag:""}]);BE.init("",[{prop:"CommonType",name:"CommonType",embedded:true,exported:true,typ:AH,tag:""},{prop:"Key",name:"Key",embedded:false,exported:true,typ:Z,tag:""},{prop:"Elem",name:"Elem",embedded:false,exported:true,typ:Z,tag:""}]);BG.init("",[{prop:"CommonType",name:"CommonType",embedded:true,exported:true,typ:AH,tag:""},{prop:"Elem",name:"Elem",embedded:false,exported:true,typ:Z,tag:""}]);BI.init("",[{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""},{prop:"Id",name:"Id",embedded:false,exported:true,typ:Z,tag:""}]);BJ.init("",[{prop:"CommonType",name:"CommonType",embedded:true,exported:true,typ:AH,tag:""},{prop:"Field",name:"Field",embedded:false,exported:true,typ:JK,tag:""}]);BS.init("",[{prop:"ArrayT",name:"ArrayT",embedded:false,exported:true,typ:JC,tag:""},{prop:"SliceT",name:"SliceT",embedded:false,exported:true,typ:JD,tag:""},{prop:"StructT",name:"StructT",embedded:false,exported:true,typ:JE,tag:""},{prop:"MapT",name:"MapT",embedded:false,exported:true,typ:JF,tag:""},{prop:"GobEncoderT",name:"GobEncoderT",embedded:false,exported:true,typ:JG,tag:""},{prop:"BinaryMarshalerT",name:"BinaryMarshalerT",embedded:false,exported:true,typ:JG,tag:""},{prop:"TextMarshalerT",name:"TextMarshalerT",embedded:false,exported:true,typ:JG,tag:""}]);BT.init("encoding/gob",[{prop:"id",name:"id",embedded:false,exported:false,typ:Z,tag:""},{prop:"encInit",name:"encInit",embedded:false,exported:false,typ:F.Mutex,tag:""},{prop:"encoder",name:"encoder",embedded:false,exported:false,typ:G.Value,tag:""},{prop:"wire",name:"wire",embedded:false,exported:false,typ:JL,tag:""}]);BZ.init([{prop:"GobEncode",name:"GobEncode",pkg:"",typ:$funcType([],[IJ,$error],false)}]);CA.init([{prop:"GobDecode",name:"GobDecode",pkg:"",typ:$funcType([IJ],[$error],false)}]);CG.init("encoding/gob",[{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""}]);CP.init("encoding/gob",[{prop:"data",name:"data",embedded:false,exported:false,typ:IJ,tag:""},{prop:"scratch",name:"scratch",embedded:false,exported:false,typ:JI,tag:""}]);EV.init("encoding/gob",[{prop:"mutex",name:"mutex",embedded:false,exported:false,typ:F.Mutex,tag:""},{prop:"r",name:"r",embedded:false,exported:false,typ:J.Reader,tag:""},{prop:"buf",name:"buf",embedded:false,exported:false,typ:FF,tag:""},{prop:"wireType",name:"wireType",embedded:false,exported:false,typ:LA,tag:""},{prop:"decoderCache",name:"decoderCache",embedded:false,exported:false,typ:LC,tag:""},{prop:"ignorerCache",name:"ignorerCache",embedded:false,exported:false,typ:LB,tag:""},{prop:"freeList",name:"freeList",embedded:false,exported:false,typ:KO,tag:""},{prop:"countBuf",name:"countBuf",embedded:false,exported:false,typ:IJ,tag:""},{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""}]);FD.init([KO,E.Value,$Int,$error],[$Bool],false);FE.init("encoding/gob",[{prop:"dec",name:"dec",embedded:false,exported:false,typ:KP,tag:""},{prop:"b",name:"b",embedded:false,exported:false,typ:KQ,tag:""},{prop:"fieldnum",name:"fieldnum",embedded:false,exported:false,typ:$Int,tag:""},{prop:"next",name:"next",embedded:false,exported:false,typ:KO,tag:""}]);FF.init("encoding/gob",[{prop:"data",name:"data",embedded:false,exported:false,typ:IJ,tag:""},{prop:"offset",name:"offset",embedded:false,exported:false,typ:$Int,tag:""}]);FI.init([LD,KO,E.Value],[],false);FJ.init("encoding/gob",[{prop:"op",name:"op",embedded:false,exported:false,typ:FI,tag:""},{prop:"field",name:"field",embedded:false,exported:false,typ:$Int,tag:""},{prop:"index",name:"index",embedded:false,exported:false,typ:JO,tag:""},{prop:"ovfl",name:"ovfl",embedded:false,exported:false,typ:$error,tag:""}]);GF.init("encoding/gob",[{prop:"instr",name:"instr",embedded:false,exported:false,typ:KT,tag:""},{prop:"numInstr",name:"numInstr",embedded:false,exported:false,typ:$Int,tag:""}]);GL.init("",[]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=N.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}P=new F.Map.ptr(false);AA=0;AB=new F.Mutex.ptr(false);AF=false;AY=HX.nil;BU=new G.Value.ptr($ifaceNil);CB=new F.Map.ptr(false);CC=new F.Map.ptr(false);GG=new E.Value.ptr(HY.nil,0,0);a=E.TypeOf((HZ.nil)).Elem();$s=15;case 15:if($c){$c=false;a=a.$blk();}if(a&&a.$blk!==undefined){break s;}R=a;b=E.TypeOf((IA.nil)).Elem();$s=16;case 16:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}S=b;c=E.TypeOf((IB.nil)).Elem();$s=17;case 17:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}T=c;d=E.TypeOf((IC.nil)).Elem();$s=18;case 18:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}U=d;e=E.TypeOf((ID.nil)).Elem();$s=19;case 19:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}V=e;f=E.TypeOf((IE.nil)).Elem();$s=20;case 20:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}W=f;AD=new $global.Map();AE=new $global.Map();g=BR("bool",(IF.nil),1);$s=21;case 21:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}AI=g;h=BR("int",(IG.nil),2);$s=22;case 22:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}AJ=h;i=BR("uint",(IH.nil),3);$s=23;case 23:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}AK=i;j=BR("float",(II.nil),4);$s=24;case 24:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}AL=j;k=BR("bytes",(IK.nil),5);$s=25;case 25:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}AM=k;l=BR("string",(IL.nil),6);$s=26;case 26:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}AN=l;m=BR("complex",(IM.nil),7);$s=27;case 27:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}AO=m;n=BR("interface",(IN.nil),8);$s=28;case 28:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}AP=n;o=BR("_reserved1",(IP.nil),9);$s=29;case 29:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}AQ=o;p=BR("_reserved1",(IR.nil),10);$s=30;case 30:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}AR=p;q=BR("_reserved1",(IT.nil),11);$s=31;case 31:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}AS=q;r=BR("_reserved1",(IV.nil),12);$s=32;case 32:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}AT=r;s=BR("_reserved1",(IX.nil),13);$s=33;case 33:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}AU=s;t=BR("_reserved1",(IZ.nil),14);$s=34;case 34:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}AV=t;u=BR("_reserved1",(JB.nil),15);$s=35;case 35:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}AW=u;w=BY(E.TypeOf((v=new BS.ptr(JC.nil,JD.nil,JE.nil,JF.nil,JG.nil,JG.nil,JG.nil),new v.constructor.elem(v))));$s=36;case 36:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}AX=w.id;CL=$makeSlice(IJ,9);CQ=new F.Pool.ptr(JH.nil,(function(){var x;x=new CP.ptr(IJ.nil,JI.zero());x.data=$subslice(new IJ(x.scratch),0,0);return x;}));EX=B.New("invalid message length");FA=B.New("gob: encoded unsigned integer out of range");FB=B.New("gob: unknown type id or corrupted data");FC=B.New("gob: bad data: field numbers out of bounds");GI=$toNativeArray($kindFunc,[$throwNilPointerError,FN,$throwNilPointerError,FO,FQ,FS,FU,$throwNilPointerError,FP,FR,FT,FV,$throwNilPointerError,FY,FZ,GA,GB,$throwNilPointerError,$throwNilPointerError,$throwNilPointerError,$throwNilPointerError,$throwNilPointerError,$throwNilPointerError,$throwNilPointerError,GD]);GJ=$makeMap(Z.keyFor,[{k:AI,v:FK},{k:AJ,v:FK},{k:AK,v:FK},{k:AL,v:FK},{k:AM,v:GE},{k:AN,v:GE},{k:AO,v:FL}]);GK=10000;GM=E.TypeOf((x=new GL.ptr(),new x.constructor.elem(x)));GP=$makeMap(E.Kind.keyFor,[{k:1,v:GR},{k:15,v:GT},{k:16,v:GV},{k:13,v:GX},{k:14,v:GZ},{k:2,v:HB},{k:4,v:HD},{k:5,v:HF},{k:6,v:HH},{k:3,v:HJ},{k:24,v:HL},{k:7,v:HN},{k:9,v:HP},{k:10,v:HR},{k:11,v:HT},{k:12,v:HV}]);GQ=$makeMap(E.Kind.keyFor,[{k:1,v:GS},{k:15,v:GU},{k:16,v:GW},{k:13,v:GY},{k:14,v:HA},{k:2,v:HC},{k:4,v:HE},{k:5,v:HG},{k:6,v:HI},{k:3,v:HK},{k:24,v:HM},{k:7,v:HO},{k:9,v:HQ},{k:10,v:HS},{k:11,v:HU},{k:12,v:HW}]);$r=AZ();$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=GN();$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["encoding/base64"]=(function(){var $pkg={},$init,A,B,C,D,F,H,N,O,P,Q,R,S,T,V,E,G,J,K;A=$packages["encoding/binary"];B=$packages["io"];C=$packages["strconv"];D=$pkg.Encoding=$newType(0,$kindStruct,"base64.Encoding",true,"encoding/base64",true,function(encode_,decodeMap_,padChar_,strict_){this.$val=this;if(arguments.length===0){this.encode=N.zero();this.decodeMap=O.zero();this.padChar=0;this.strict=false;return;}this.encode=encode_;this.decodeMap=decodeMap_;this.padChar=padChar_;this.strict=strict_;});F=$pkg.encoder=$newType(0,$kindStruct,"base64.encoder",true,"encoding/base64",false,function(err_,enc_,w_,buf_,nbuf_,out_){this.$val=this;if(arguments.length===0){this.err=$ifaceNil;this.enc=Q.nil;this.w=$ifaceNil;this.buf=R.zero();this.nbuf=0;this.out=S.zero();return;}this.err=err_;this.enc=enc_;this.w=w_;this.buf=buf_;this.nbuf=nbuf_;this.out=out_;});H=$pkg.CorruptInputError=$newType(8,$kindInt64,"base64.CorruptInputError",true,"encoding/base64",true,null);N=$arrayType($Uint8,64);O=$arrayType($Uint8,256);P=$sliceType($Uint8);Q=$ptrType(D);R=$arrayType($Uint8,3);S=$arrayType($Uint8,1024);T=$arrayType($Uint8,4);V=$ptrType(F);E=function(a){var a,b,c,d,e,f,g,h;if(!((a.length===64))){$panic(new $String("encoding alphabet is not 64-bytes long"));}b=0;while(true){if(!(b>0;}c=new D.ptr(N.zero(),O.zero(),0,false);c.padChar=61;$copyString(new P(c.encode),a);d=0;while(true){if(!(d<256)){break;}(e=c.decodeMap,((d<0||d>=e.length)?($throwRuntimeError("index out of range"),undefined):e[d]=255));d=d+(1)>>0;}f=0;while(true){if(!(f=g.length)?($throwRuntimeError("index out of range"),undefined):g[h]=((f<<24>>>24))));f=f+(1)>>0;}return c;};$pkg.NewEncoding=E;D.ptr.prototype.WithPadding=function(a){var a,b,c,d;b=this;if((a===13)||(a===10)||a>255){$panic(new $String("invalid padding"));}c=0;while(true){if(!(c<64)){break;}if((((d=b.encode,((c<0||c>=d.length)?($throwRuntimeError("index out of range"),undefined):d[c]))>>0))===a){$panic(new $String("padding contained in alphabet"));}c=c+(1)>>0;}b.padChar=a;return b;};D.prototype.WithPadding=function(a){return this.$val.WithPadding(a);};D.ptr.prototype.Strict=function(){var a;a=this;a.strict=true;return a;};D.prototype.Strict=function(){return this.$val.Strict();};D.ptr.prototype.Encode=function(a,b){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;c=this;if(b.$length===0){return;}$unused(c.encode);d=0;e=0;f=d;g=e;i=$imul(((h=b.$length/3,(h===h&&h!==1/0&&h!==-1/0)?h>>0:$throwRuntimeError("integer divide by zero"))),3);while(true){if(!(g>0,((j<0||j>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+j]))>>>0))<<16>>>0)|((((k=g+1>>0,((k<0||k>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+k]))>>>0))<<8>>>0))>>>0)|(((l=g+2>>0,((l<0||l>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+l]))>>>0)))>>>0;(p=f+0>>0,((p<0||p>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+p]=(n=c.encode,o=((m>>>18>>>0)&63)>>>0,((o<0||o>=n.length)?($throwRuntimeError("index out of range"),undefined):n[o]))));(s=f+1>>0,((s<0||s>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+s]=(q=c.encode,r=((m>>>12>>>0)&63)>>>0,((r<0||r>=q.length)?($throwRuntimeError("index out of range"),undefined):q[r]))));(v=f+2>>0,((v<0||v>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+v]=(t=c.encode,u=((m>>>6>>>0)&63)>>>0,((u<0||u>=t.length)?($throwRuntimeError("index out of range"),undefined):t[u]))));(y=f+3>>0,((y<0||y>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+y]=(w=c.encode,x=(m&63)>>>0,((x<0||x>=w.length)?($throwRuntimeError("index out of range"),undefined):w[x]))));g=g+(3)>>0;f=f+(4)>>0;}z=b.$length-g>>0;if(z===0){return;}ab=(((aa=g+0>>0,((aa<0||aa>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+aa]))>>>0))<<16>>>0;if(z===2){ab=(ab|(((((ac=g+1>>0,((ac<0||ac>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+ac]))>>>0))<<8>>>0)))>>>0;}(af=f+0>>0,((af<0||af>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+af]=(ad=c.encode,ae=((ab>>>18>>>0)&63)>>>0,((ae<0||ae>=ad.length)?($throwRuntimeError("index out of range"),undefined):ad[ae]))));(ai=f+1>>0,((ai<0||ai>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ai]=(ag=c.encode,ah=((ab>>>12>>>0)&63)>>>0,((ah<0||ah>=ag.length)?($throwRuntimeError("index out of range"),undefined):ag[ah]))));aj=z;if(aj===(2)){(am=f+2>>0,((am<0||am>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+am]=(ak=c.encode,al=((ab>>>6>>>0)&63)>>>0,((al<0||al>=ak.length)?($throwRuntimeError("index out of range"),undefined):ak[al]))));if(!((c.padChar===-1))){(an=f+3>>0,((an<0||an>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+an]=((c.padChar<<24>>>24))));}}else if(aj===(1)){if(!((c.padChar===-1))){(ao=f+2>>0,((ao<0||ao>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ao]=((c.padChar<<24>>>24))));(ap=f+3>>0,((ap<0||ap>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ap]=((c.padChar<<24>>>24))));}}};D.prototype.Encode=function(a,b){return this.$val.Encode(a,b);};D.ptr.prototype.EncodeToString=function(a){var a,b,c;b=this;c=$makeSlice(P,b.EncodedLen(a.$length));b.Encode(c,a);return($bytesToString(c));};D.prototype.EncodeToString=function(a){return this.$val.EncodeToString(a);};F.ptr.prototype.Write=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=0;c=$ifaceNil;d=this;if(!($interfaceIsEqual(d.err,$ifaceNil))){e=0;f=d.err;b=e;c=f;$s=-1;return[b,c];}if(d.nbuf>0){$s=1;continue;}$s=2;continue;case 1:g=0;g=0;while(true){if(!(g=h.length)?($throwRuntimeError("index out of range"),undefined):h[i]=((g<0||g>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g])));d.nbuf=d.nbuf+(1)>>0;g=g+(1)>>0;}b=b+(g)>>0;a=$subslice(a,g);if(d.nbuf<3){$s=-1;return[b,c];}d.enc.Encode(new P(d.out),new P(d.buf));k=d.w.Write($subslice(new P(d.out),0,4));$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;d.err=j[1];if(!($interfaceIsEqual(d.err,$ifaceNil))){l=b;m=d.err;b=l;c=m;$s=-1;return[b,c];}d.nbuf=0;case 2:case 4:if(!(a.$length>=3)){$s=5;continue;}n=768;if(n>a.$length){n=a.$length;n=n-((o=n%3,o===o?o:$throwRuntimeError("integer divide by zero")))>>0;}d.enc.Encode(new P(d.out),$subslice(a,0,n));r=d.w.Write($subslice(new P(d.out),0,($imul((q=n/3,(q===q&&q!==1/0&&q!==-1/0)?q>>0:$throwRuntimeError("integer divide by zero")),4))));$s=6;case 6:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}p=r;d.err=p[1];if(!($interfaceIsEqual(d.err,$ifaceNil))){s=b;t=d.err;b=s;c=t;$s=-1;return[b,c];}b=b+(n)>>0;a=$subslice(a,n);$s=4;continue;case 5:$copySlice(new P(d.buf),a);d.nbuf=a.$length;b=b+(a.$length)>>0;$s=-1;return[b,c];}return;}var $f={$blk:F.ptr.prototype.Write,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};F.prototype.Write=function(a){return this.$val.Write(a);};F.ptr.prototype.Close=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if($interfaceIsEqual(a.err,$ifaceNil)&&a.nbuf>0){$s=1;continue;}$s=2;continue;case 1:a.enc.Encode(new P(a.out),$subslice(new P(a.buf),0,a.nbuf));c=a.w.Write($subslice(new P(a.out),0,a.enc.EncodedLen(a.nbuf)));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;a.err=b[1];a.nbuf=0;case 2:$s=-1;return a.err;}return;}var $f={$blk:F.ptr.prototype.Close,$c:true,$r,a,b,c,$s};return $f;};F.prototype.Close=function(){return this.$val.Close();};G=function(a,b){var a,b;return new F.ptr($ifaceNil,a,b,R.zero(),0,S.zero());};$pkg.NewEncoder=G;D.ptr.prototype.EncodedLen=function(a){var a,b,c,d;b=this;if(b.padChar===-1){return(c=((($imul(a,8))+5>>0))/6,(c===c&&c!==1/0&&c!==-1/0)?c>>0:$throwRuntimeError("integer divide by zero"));}return $imul((d=((a+2>>0))/3,(d===d&&d!==1/0&&d!==-1/0)?d>>0:$throwRuntimeError("integer divide by zero")),4);};D.prototype.EncodedLen=function(a){return this.$val.EncodedLen(a);};H.prototype.Error=function(){var a;a=this;return"illegal base64 data at input byte "+C.FormatInt((new $Int64(a.$high,a.$low)),10);};$ptrType(H).prototype.Error=function(){return this.$get().Error();};D.ptr.prototype.decodeQuantum=function(a,b,c){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;d=0;e=0;f=$ifaceNil;g=this;h=T.zero();i=4;$unused(g.decodeMap);j=0;while(true){if(!(j<4)){break;}if(b.$length===c){if((j===0)){k=c;l=0;m=$ifaceNil;d=k;e=l;f=m;return[d,e,f];}else if(((j===1))||(!((g.padChar===-1)))){n=c;o=0;p=(new H(0,(c-j>>0)));d=n;e=o;f=p;return[d,e,f];}i=j;break;}q=((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]);c=c+(1)>>0;s=(r=g.decodeMap,((q<0||q>=r.length)?($throwRuntimeError("index out of range"),undefined):r[q]));if(!((s===255))){((j<0||j>=h.length)?($throwRuntimeError("index out of range"),undefined):h[j]=s);j=j+(1)>>0;continue;}if((q===10)||(q===13)){j=j-(1)>>0;j=j+(1)>>0;continue;}if(!((((q>>0))===g.padChar))){t=c;u=0;v=(new H(0,(c-1>>0)));d=t;e=u;f=v;return[d,e,f];}w=j;if((w===(0))||(w===(1))){x=c;y=0;z=(new H(0,(c-1>>0)));d=x;e=y;f=z;return[d,e,f];}else if(w===(2)){while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])===10)||(((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])===13)))){break;}c=c+(1)>>0;}if(c===b.$length){aa=c;ab=0;ac=(new H(0,b.$length));d=aa;e=ab;f=ac;return[d,e,f];}if(!((((((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])>>0))===g.padChar))){ad=c;ae=0;af=(new H(0,(c-1>>0)));d=ad;e=ae;f=af;return[d,e,f];}c=c+(1)>>0;}while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])===10)||(((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])===13)))){break;}c=c+(1)>>0;}if(c>>0))<<18>>>0)|(((h[1]>>>0))<<12>>>0))>>>0)|(((h[2]>>>0))<<6>>>0))>>>0)|((h[3]>>>0)))>>>0;ah=(((ag>>>0>>>0)<<24>>>24));ai=(((ag>>>8>>>0)<<24>>>24));aj=(((ag>>>16>>>0)<<24>>>24));h[2]=ah;h[1]=ai;h[0]=aj;ak=i;if(ak===(4)){(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=h[2]);h[2]=0;(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=h[1]);if(g.strict&&!((h[2]===0))){al=c;am=0;an=(new H(0,(c-1>>0)));d=al;e=am;f=an;return[d,e,f];}h[1]=0;(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=h[0]);if(g.strict&&(!((h[1]===0))||!((h[2]===0)))){ao=c;ap=0;aq=(new H(0,(c-2>>0)));d=ao;e=ap;f=aq;return[d,e,f];}}else if(ak===(3)){(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=h[1]);if(g.strict&&!((h[2]===0))){ar=c;as=0;at=(new H(0,(c-1>>0)));d=ar;e=as;f=at;return[d,e,f];}h[1]=0;(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=h[0]);if(g.strict&&(!((h[1]===0))||!((h[2]===0)))){au=c;av=0;aw=(new H(0,(c-2>>0)));d=au;e=av;f=aw;return[d,e,f];}}else if(ak===(2)){(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=h[0]);if(g.strict&&(!((h[1]===0))||!((h[2]===0)))){ax=c;ay=0;az=(new H(0,(c-2>>0)));d=ax;e=ay;f=az;return[d,e,f];}}ba=c;bb=i-1>>0;bc=f;d=ba;e=bb;f=bc;return[d,e,f];};D.prototype.decodeQuantum=function(a,b,c){return this.$val.decodeQuantum(a,b,c);};D.ptr.prototype.DecodeString=function(a){var a,b,c,d,e,f;b=this;c=$makeSlice(P,b.DecodedLen(a.length));d=b.Decode(c,(new P($stringToBytes(a))));e=d[0];f=d[1];return[$subslice(c,0,e),f];};D.prototype.DecodeString=function(a){return this.$val.DecodeString(a);};D.ptr.prototype.Decode=function(a,b){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;c=0;d=$ifaceNil;e=this;if(b.$length===0){f=0;g=$ifaceNil;c=f;d=g;return[c,d];}$unused(e.decodeMap);h=0;while(true){if(!(false&&(b.$length-h>>0)>=8&&(a.$length-c>>0)>=8)){break;}i=$subslice(b,h,(h+8>>0));j=K((k=e.decodeMap,l=(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]),((l<0||l>=k.length)?($throwRuntimeError("index out of range"),undefined):k[l])),(m=e.decodeMap,n=(1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]),((n<0||n>=m.length)?($throwRuntimeError("index out of range"),undefined):m[n])),(o=e.decodeMap,p=(2>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+2]),((p<0||p>=o.length)?($throwRuntimeError("index out of range"),undefined):o[p])),(q=e.decodeMap,r=(3>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+3]),((r<0||r>=q.length)?($throwRuntimeError("index out of range"),undefined):q[r])),(s=e.decodeMap,t=(4>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+4]),((t<0||t>=s.length)?($throwRuntimeError("index out of range"),undefined):s[t])),(u=e.decodeMap,v=(5>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+5]),((v<0||v>=u.length)?($throwRuntimeError("index out of range"),undefined):u[v])),(w=e.decodeMap,x=(6>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+6]),((x<0||x>=w.length)?($throwRuntimeError("index out of range"),undefined):w[x])),(y=e.decodeMap,z=(7>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+7]),((z<0||z>=y.length)?($throwRuntimeError("index out of range"),undefined):y[z])));aa=j[0];ab=j[1];if(ab){$clone(A.BigEndian,A.bigEndian).PutUint64($subslice(a,c),aa);c=c+(6)>>0;h=h+(8)>>0;}else{ac=0;ad=e.decodeQuantum($subslice(a,c),b,h);h=ad[0];ac=ad[1];d=ad[2];c=c+(ac)>>0;if(!($interfaceIsEqual(d,$ifaceNil))){ae=c;af=d;c=ae;d=af;return[c,d];}}}while(true){if(!((b.$length-h>>0)>=4&&(a.$length-c>>0)>=4)){break;}ag=$subslice(b,h,(h+4>>0));ah=J((ai=e.decodeMap,aj=(0>=ag.$length?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+0]),((aj<0||aj>=ai.length)?($throwRuntimeError("index out of range"),undefined):ai[aj])),(ak=e.decodeMap,al=(1>=ag.$length?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+1]),((al<0||al>=ak.length)?($throwRuntimeError("index out of range"),undefined):ak[al])),(am=e.decodeMap,an=(2>=ag.$length?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+2]),((an<0||an>=am.length)?($throwRuntimeError("index out of range"),undefined):am[an])),(ao=e.decodeMap,ap=(3>=ag.$length?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+3]),((ap<0||ap>=ao.length)?($throwRuntimeError("index out of range"),undefined):ao[ap])));aq=ah[0];ar=ah[1];if(ar){$clone(A.BigEndian,A.bigEndian).PutUint32($subslice(a,c),aq);c=c+(3)>>0;h=h+(4)>>0;}else{as=0;at=e.decodeQuantum($subslice(a,c),b,h);h=at[0];as=at[1];d=at[2];c=c+(as)>>0;if(!($interfaceIsEqual(d,$ifaceNil))){au=c;av=d;c=au;d=av;return[c,d];}}}while(true){if(!(h>0;if(!($interfaceIsEqual(d,$ifaceNil))){ay=c;az=d;c=ay;d=az;return[c,d];}}ba=c;bb=d;c=ba;d=bb;return[c,d];};D.prototype.Decode=function(a,b){return this.$val.Decode(a,b);};J=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j;e=0;f=false;if(((((((a|b)>>>0)|c)>>>0)|d)>>>0)===255){g=0;h=false;e=g;f=h;return[e,f];}i=((((((((a>>>0))<<26>>>0)|(((b>>>0))<<20>>>0))>>>0)|(((c>>>0))<<14>>>0))>>>0)|(((d>>>0))<<8>>>0))>>>0;j=true;e=i;f=j;return[e,f];};K=function(a,b,c,d,e,f,g,h){var a,aa,ab,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;i=new $Uint64(0,0);j=false;if(((((((((((((((a|b)>>>0)|c)>>>0)|d)>>>0)|e)>>>0)|f)>>>0)|g)>>>0)|h)>>>0)===255){k=new $Uint64(0,0);l=false;i=k;j=l;return[i,j];}m=(n=(o=(p=(q=(r=(s=(t=$shiftLeft64((new $Uint64(0,a)),58),u=$shiftLeft64((new $Uint64(0,b)),52),new $Uint64(t.$high|u.$high,(t.$low|u.$low)>>>0)),v=$shiftLeft64((new $Uint64(0,c)),46),new $Uint64(s.$high|v.$high,(s.$low|v.$low)>>>0)),w=$shiftLeft64((new $Uint64(0,d)),40),new $Uint64(r.$high|w.$high,(r.$low|w.$low)>>>0)),x=$shiftLeft64((new $Uint64(0,e)),34),new $Uint64(q.$high|x.$high,(q.$low|x.$low)>>>0)),y=$shiftLeft64((new $Uint64(0,f)),28),new $Uint64(p.$high|y.$high,(p.$low|y.$low)>>>0)),z=$shiftLeft64((new $Uint64(0,g)),22),new $Uint64(o.$high|z.$high,(o.$low|z.$low)>>>0)),aa=$shiftLeft64((new $Uint64(0,h)),16),new $Uint64(n.$high|aa.$high,(n.$low|aa.$low)>>>0));ab=true;i=m;j=ab;return[i,j];};D.ptr.prototype.DecodedLen=function(a){var a,b,c,d;b=this;if(b.padChar===-1){return(c=($imul(a,6))/8,(c===c&&c!==1/0&&c!==-1/0)?c>>0:$throwRuntimeError("integer divide by zero"));}return $imul((d=a/4,(d===d&&d!==1/0&&d!==-1/0)?d>>0:$throwRuntimeError("integer divide by zero")),3);};D.prototype.DecodedLen=function(a){return this.$val.DecodedLen(a);};D.methods=[{prop:"WithPadding",name:"WithPadding",pkg:"",typ:$funcType([$Int32],[Q],false)},{prop:"Strict",name:"Strict",pkg:"",typ:$funcType([],[Q],false)}];Q.methods=[{prop:"Encode",name:"Encode",pkg:"",typ:$funcType([P,P],[],false)},{prop:"EncodeToString",name:"EncodeToString",pkg:"",typ:$funcType([P],[$String],false)},{prop:"EncodedLen",name:"EncodedLen",pkg:"",typ:$funcType([$Int],[$Int],false)},{prop:"decodeQuantum",name:"decodeQuantum",pkg:"encoding/base64",typ:$funcType([P,P,$Int],[$Int,$Int,$error],false)},{prop:"DecodeString",name:"DecodeString",pkg:"",typ:$funcType([$String],[P,$error],false)},{prop:"Decode",name:"Decode",pkg:"",typ:$funcType([P,P],[$Int,$error],false)},{prop:"DecodedLen",name:"DecodedLen",pkg:"",typ:$funcType([$Int],[$Int],false)}];V.methods=[{prop:"Write",name:"Write",pkg:"",typ:$funcType([P],[$Int,$error],false)},{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[$error],false)}];H.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];D.init("encoding/base64",[{prop:"encode",name:"encode",embedded:false,exported:false,typ:N,tag:""},{prop:"decodeMap",name:"decodeMap",embedded:false,exported:false,typ:O,tag:""},{prop:"padChar",name:"padChar",embedded:false,exported:false,typ:$Int32,tag:""},{prop:"strict",name:"strict",embedded:false,exported:false,typ:$Bool,tag:""}]);F.init("encoding/base64",[{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""},{prop:"enc",name:"enc",embedded:false,exported:false,typ:Q,tag:""},{prop:"w",name:"w",embedded:false,exported:false,typ:B.Writer,tag:""},{prop:"buf",name:"buf",embedded:false,exported:false,typ:R,tag:""},{prop:"nbuf",name:"nbuf",embedded:false,exported:false,typ:$Int,tag:""},{prop:"out",name:"out",embedded:false,exported:false,typ:S,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.StdEncoding=E("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");$pkg.URLEncoding=E("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_");$pkg.RawStdEncoding=$clone($pkg.StdEncoding,D).WithPadding(-1);$pkg.RawURLEncoding=$clone($pkg.URLEncoding,D).WithPadding(-1);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["unicode/utf16"]=(function(){var $pkg={},$init,A,B;A=function(a){var a;return 55296<=a&&a<57344;};$pkg.IsSurrogate=A;B=function(a,b){var a,b;if(55296<=a&&a<56320&&56320<=b&&b<57344){return((((a-55296>>0))<<10>>0)|((b-56320>>0)))+65536>>0;}return 65533;};$pkg.DecodeRune=B;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["encoding/json"]=(function(){var $pkg={},$init,C,H,I,D,J,G,E,K,L,M,F,A,N,O,B,P,T,W,Z,AA,AD,AE,CA,CB,CC,CE,CG,CJ,CL,CM,DB,DI,DJ,DL,DO,DQ,DS,DU,DY,DZ,EA,EG,EH,EJ,EK,EL,EM,EN,EV,EX,EY,EZ,FA,FB,FC,FD,FE,FF,FG,FH,FI,FJ,FK,FL,FM,FN,FO,FP,FQ,FR,FS,FT,FU,FV,FW,FX,FZ,GA,GB,GC,GD,GF,GG,R,S,AF,CF,CH,CN,CQ,CR,DC,DD,ED,EP,EQ,ER,a,b,c,Q,U,V,X,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BQ,BR,BS,BT,BU,BV,BW,BZ,CI,CK,CO,CP,CS,CT,CU,CV,CW,CX,CY,CZ,DA,DE,DF,DG,DH,DK,DM,DN,DP,DR,DT,DV,DW,DX,EB,EC,EE,EO,ES,ET,EU;C=$packages["bytes"];H=$packages["encoding"];I=$packages["encoding/base64"];D=$packages["errors"];J=$packages["fmt"];G=$packages["github.com/gopherjs/gopherjs/nosync"];E=$packages["io"];K=$packages["math"];L=$packages["reflect"];M=$packages["sort"];F=$packages["strconv"];A=$packages["strings"];N=$packages["unicode"];O=$packages["unicode/utf16"];B=$packages["unicode/utf8"];P=$pkg.tagOptions=$newType(8,$kindString,"json.tagOptions",true,"encoding/json",false,null);T=$pkg.Decoder=$newType(0,$kindStruct,"json.Decoder",true,"encoding/json",true,function(r_,buf_,d_,scanp_,scanned_,scan_,err_,tokenState_,tokenStack_){this.$val=this;if(arguments.length===0){this.r=$ifaceNil;this.buf=FA.nil;this.d=new EM.ptr(FA.nil,0,0,new AE.ptr($throwNilPointerError,false,EX.nil,$ifaceNil,new $Int64(0,0)),FC.nil,$ifaceNil,false,false);this.scanp=0;this.scanned=new $Int64(0,0);this.scan=new AE.ptr($throwNilPointerError,false,EX.nil,$ifaceNil,new $Int64(0,0));this.err=$ifaceNil;this.tokenState=0;this.tokenStack=EX.nil;return;}this.r=r_;this.buf=buf_;this.d=d_;this.scanp=scanp_;this.scanned=scanned_;this.scan=scan_;this.err=err_;this.tokenState=tokenState_;this.tokenStack=tokenStack_;});W=$pkg.Encoder=$newType(0,$kindStruct,"json.Encoder",true,"encoding/json",true,function(w_,err_,escapeHTML_,indentBuf_,indentPrefix_,indentValue_){this.$val=this;if(arguments.length===0){this.w=$ifaceNil;this.err=$ifaceNil;this.escapeHTML=false;this.indentBuf=FD.nil;this.indentPrefix="";this.indentValue="";return;}this.w=w_;this.err=err_;this.escapeHTML=escapeHTML_;this.indentBuf=indentBuf_;this.indentPrefix=indentPrefix_;this.indentValue=indentValue_;});Z=$pkg.Token=$newType(8,$kindInterface,"json.Token",true,"encoding/json",true,null);AA=$pkg.Delim=$newType(4,$kindInt32,"json.Delim",true,"encoding/json",true,null);AD=$pkg.SyntaxError=$newType(0,$kindStruct,"json.SyntaxError",true,"encoding/json",true,function(msg_,Offset_){this.$val=this;if(arguments.length===0){this.msg="";this.Offset=new $Int64(0,0);return;}this.msg=msg_;this.Offset=Offset_;});AE=$pkg.scanner=$newType(0,$kindStruct,"json.scanner",true,"encoding/json",false,function(step_,endTop_,parseState_,err_,bytes_){this.$val=this;if(arguments.length===0){this.step=$throwNilPointerError;this.endTop=false;this.parseState=EX.nil;this.err=$ifaceNil;this.bytes=new $Int64(0,0);return;}this.step=step_;this.endTop=endTop_;this.parseState=parseState_;this.err=err_;this.bytes=bytes_;});CA=$pkg.Marshaler=$newType(8,$kindInterface,"json.Marshaler",true,"encoding/json",true,null);CB=$pkg.UnsupportedTypeError=$newType(0,$kindStruct,"json.UnsupportedTypeError",true,"encoding/json",true,function(Type_){this.$val=this;if(arguments.length===0){this.Type=$ifaceNil;return;}this.Type=Type_;});CC=$pkg.UnsupportedValueError=$newType(0,$kindStruct,"json.UnsupportedValueError",true,"encoding/json",true,function(Value_,Str_){this.$val=this;if(arguments.length===0){this.Value=new L.Value.ptr(FO.nil,0,0);this.Str="";return;}this.Value=Value_;this.Str=Str_;});CE=$pkg.MarshalerError=$newType(0,$kindStruct,"json.MarshalerError",true,"encoding/json",true,function(Type_,Err_,sourceFunc_){this.$val=this;if(arguments.length===0){this.Type=$ifaceNil;this.Err=$ifaceNil;this.sourceFunc="";return;}this.Type=Type_;this.Err=Err_;this.sourceFunc=sourceFunc_;});CG=$pkg.encodeState=$newType(0,$kindStruct,"json.encodeState",true,"encoding/json",false,function(Buffer_,scratch_,ptrLevel_,ptrSeen_){this.$val=this;if(arguments.length===0){this.Buffer=new C.Buffer.ptr(FA.nil,0,0);this.scratch=FI.zero();this.ptrLevel=0;this.ptrSeen=false;return;}this.Buffer=Buffer_;this.scratch=scratch_;this.ptrLevel=ptrLevel_;this.ptrSeen=ptrSeen_;});CJ=$pkg.jsonError=$newType(0,$kindStruct,"json.jsonError",true,"encoding/json",false,function(error_){this.$val=this;if(arguments.length===0){this.error=$ifaceNil;return;}this.error=error_;});CL=$pkg.encOpts=$newType(0,$kindStruct,"json.encOpts",true,"encoding/json",false,function(quoted_,escapeHTML_){this.$val=this;if(arguments.length===0){this.quoted=false;this.escapeHTML=false;return;}this.quoted=quoted_;this.escapeHTML=escapeHTML_;});CM=$pkg.encoderFunc=$newType(4,$kindFunc,"json.encoderFunc",true,"encoding/json",false,null);DB=$pkg.floatEncoder=$newType(4,$kindInt,"json.floatEncoder",true,"encoding/json",false,null);DI=$pkg.structEncoder=$newType(0,$kindStruct,"json.structEncoder",true,"encoding/json",false,function(fields_){this.$val=this;if(arguments.length===0){this.fields=new DJ.ptr(FJ.nil,false);return;}this.fields=fields_;});DJ=$pkg.structFields=$newType(0,$kindStruct,"json.structFields",true,"encoding/json",false,function(list_,nameIndex_){this.$val=this;if(arguments.length===0){this.list=FJ.nil;this.nameIndex=false;return;}this.list=list_;this.nameIndex=nameIndex_;});DL=$pkg.mapEncoder=$newType(0,$kindStruct,"json.mapEncoder",true,"encoding/json",false,function(elemEnc_){this.$val=this;if(arguments.length===0){this.elemEnc=$throwNilPointerError;return;}this.elemEnc=elemEnc_;});DO=$pkg.sliceEncoder=$newType(0,$kindStruct,"json.sliceEncoder",true,"encoding/json",false,function(arrayEnc_){this.$val=this;if(arguments.length===0){this.arrayEnc=$throwNilPointerError;return;}this.arrayEnc=arrayEnc_;});DQ=$pkg.arrayEncoder=$newType(0,$kindStruct,"json.arrayEncoder",true,"encoding/json",false,function(elemEnc_){this.$val=this;if(arguments.length===0){this.elemEnc=$throwNilPointerError;return;}this.elemEnc=elemEnc_;});DS=$pkg.ptrEncoder=$newType(0,$kindStruct,"json.ptrEncoder",true,"encoding/json",false,function(elemEnc_){this.$val=this;if(arguments.length===0){this.elemEnc=$throwNilPointerError;return;}this.elemEnc=elemEnc_;});DU=$pkg.condAddrEncoder=$newType(0,$kindStruct,"json.condAddrEncoder",true,"encoding/json",false,function(canAddrEnc_,elseEnc_){this.$val=this;if(arguments.length===0){this.canAddrEnc=$throwNilPointerError;this.elseEnc=$throwNilPointerError;return;}this.canAddrEnc=canAddrEnc_;this.elseEnc=elseEnc_;});DY=$pkg.reflectWithString=$newType(0,$kindStruct,"json.reflectWithString",true,"encoding/json",false,function(k_,v_,ks_){this.$val=this;if(arguments.length===0){this.k=new L.Value.ptr(FO.nil,0,0);this.v=new L.Value.ptr(FO.nil,0,0);this.ks="";return;}this.k=k_;this.v=v_;this.ks=ks_;});DZ=$pkg.field=$newType(0,$kindStruct,"json.field",true,"encoding/json",false,function(name_,nameBytes_,equalFold_,nameNonEsc_,nameEscHTML_,tag_,index_,typ_,omitEmpty_,quoted_,encoder_){this.$val=this;if(arguments.length===0){this.name="";this.nameBytes=FA.nil;this.equalFold=$throwNilPointerError;this.nameNonEsc="";this.nameEscHTML="";this.tag=false;this.index=EX.nil;this.typ=$ifaceNil;this.omitEmpty=false;this.quoted=false;this.encoder=$throwNilPointerError;return;}this.name=name_;this.nameBytes=nameBytes_;this.equalFold=equalFold_;this.nameNonEsc=nameNonEsc_;this.nameEscHTML=nameEscHTML_;this.tag=tag_;this.index=index_;this.typ=typ_;this.omitEmpty=omitEmpty_;this.quoted=quoted_;this.encoder=encoder_;});EA=$pkg.byIndex=$newType(12,$kindSlice,"json.byIndex",true,"encoding/json",false,null);EG=$pkg.Unmarshaler=$newType(8,$kindInterface,"json.Unmarshaler",true,"encoding/json",true,null);EH=$pkg.UnmarshalTypeError=$newType(0,$kindStruct,"json.UnmarshalTypeError",true,"encoding/json",true,function(Value_,Type_,Offset_,Struct_,Field_){this.$val=this;if(arguments.length===0){this.Value="";this.Type=$ifaceNil;this.Offset=new $Int64(0,0);this.Struct="";this.Field="";return;}this.Value=Value_;this.Type=Type_;this.Offset=Offset_;this.Struct=Struct_;this.Field=Field_;});EJ=$pkg.InvalidUnmarshalError=$newType(0,$kindStruct,"json.InvalidUnmarshalError",true,"encoding/json",true,function(Type_){this.$val=this;if(arguments.length===0){this.Type=$ifaceNil;return;}this.Type=Type_;});EK=$pkg.Number=$newType(8,$kindString,"json.Number",true,"encoding/json",true,null);EL=$pkg.errorContext=$newType(0,$kindStruct,"json.errorContext",true,"encoding/json",false,function(Struct_,FieldStack_){this.$val=this;if(arguments.length===0){this.Struct=$ifaceNil;this.FieldStack=FQ.nil;return;}this.Struct=Struct_;this.FieldStack=FieldStack_;});EM=$pkg.decodeState=$newType(0,$kindStruct,"json.decodeState",true,"encoding/json",false,function(data_,off_,opcode_,scan_,errorContext_,savedError_,useNumber_,disallowUnknownFields_){this.$val=this;if(arguments.length===0){this.data=FA.nil;this.off=0;this.opcode=0;this.scan=new AE.ptr($throwNilPointerError,false,EX.nil,$ifaceNil,new $Int64(0,0));this.errorContext=FC.nil;this.savedError=$ifaceNil;this.useNumber=false;this.disallowUnknownFields=false;return;}this.data=data_;this.off=off_;this.opcode=opcode_;this.scan=scan_;this.errorContext=errorContext_;this.savedError=savedError_;this.useNumber=useNumber_;this.disallowUnknownFields=disallowUnknownFields_;});EN=$pkg.unquotedValue=$newType(0,$kindStruct,"json.unquotedValue",true,"encoding/json",false,function(){this.$val=this;if(arguments.length===0){return;}});EV=$sliceType($emptyInterface);EX=$sliceType($Int);EY=$ptrType(CA);EZ=$ptrType(H.TextMarshaler);FA=$sliceType($Uint8);FB=$ptrType(H.TextUnmarshaler);FC=$ptrType(EL);FD=$ptrType(C.Buffer);FE=$ptrType($String);FF=$ptrType($emptyInterface);FG=$ptrType(AE);FH=$ptrType(CG);FI=$arrayType($Uint8,64);FJ=$sliceType(DZ);FK=$structType("",[]);FL=$sliceType(DY);FM=$structType("encoding/json",[{prop:"ptr",name:"ptr",embedded:false,exported:false,typ:$Uintptr,tag:""},{prop:"len",name:"len",embedded:false,exported:false,typ:$Int,tag:""}]);FN=$ptrType(EH);FO=$ptrType(L.rtype);FP=$mapType($String,$emptyInterface);FQ=$sliceType($String);FR=$ptrType(DZ);FS=$ptrType(T);FT=$ptrType(W);FU=$ptrType(AD);FV=$funcType([FG,$Uint8],[$Int],false);FW=$ptrType(CB);FX=$ptrType(CC);FZ=$ptrType(CE);GA=$mapType($emptyInterface,FK);GB=$mapType($String,$Int);GC=$ptrType(DY);GD=$funcType([FA,FA],[$Bool],false);GF=$ptrType(EJ);GG=$ptrType(EM);Q=function(d){var d,e,f;e=A.Cut(d,",");d=e[0];f=e[1];return[d,(f)];};P.prototype.Contains=function(d){var d,e,f,g,h;e=this.$val;if(e.length===0){return false;}f=(e);while(true){if(!(!(f===""))){break;}g="";h=A.Cut(f,",");g=h[0];f=h[1];if(g===d){return true;}}return false;};$ptrType(P).prototype.Contains=function(d){return new P(this.$get()).Contains(d);};U=function(d){var d;return new T.ptr(d,FA.nil,new EM.ptr(FA.nil,0,0,new AE.ptr($throwNilPointerError,false,EX.nil,$ifaceNil,new $Int64(0,0)),FC.nil,$ifaceNil,false,false),0,new $Int64(0,0),new AE.ptr($throwNilPointerError,false,EX.nil,$ifaceNil,new $Int64(0,0)),$ifaceNil,0,EX.nil);};$pkg.NewDecoder=U;T.ptr.prototype.UseNumber=function(){var d;d=this;d.d.useNumber=true;};T.prototype.UseNumber=function(){return this.$val.UseNumber();};T.ptr.prototype.DisallowUnknownFields=function(){var d;d=this;d.d.disallowUnknownFields=true;};T.prototype.DisallowUnknownFields=function(){return this.$val.DisallowUnknownFields();};T.ptr.prototype.Decode=function(d){var{d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if(!($interfaceIsEqual(e.err,$ifaceNil))){$s=-1;return e.err;}f=e.tokenPrepareForDecode();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}if(!e.tokenValueAllowed()){$s=-1;return new AD.ptr("not at beginning of value",e.InputOffset());}i=e.readValue();$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[0];k=h[1];if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return k;}e.d.init($subslice(e.buf,e.scanp,(e.scanp+j>>0)));e.scanp=e.scanp+(j)>>0;l=e.d.unmarshal(d);$s=3;case 3:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;e.tokenValueEnd();$s=-1;return k;}return;}var $f={$blk:T.ptr.prototype.Decode,$c:true,$r,d,e,f,g,h,i,j,k,l,$s};return $f;};T.prototype.Decode=function(d){return this.$val.Decode(d);};T.ptr.prototype.Buffered=function(){var d;d=this;return C.NewReader($subslice(d.buf,d.scanp));};T.prototype.Buffered=function(){return this.$val.Buffered();};T.ptr.prototype.readValue=function(){var{d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;d.scan.reset();e=d.scanp;f=$ifaceNil;case 1:if(!(e>=0)){$s=2;continue;}case 3:if(!(e=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+e]));d.scan.bytes=(i=d.scan.bytes,j=new $Int64(0,1),new $Int64(i.$high+j.$high,i.$low+j.$low));k=d.scan.step(d.scan,h);$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(l===(10)){d.scan.bytes=(m=d.scan.bytes,n=new $Int64(0,1),new $Int64(m.$high-n.$high,m.$low-n.$low));$s=2;continue s;}else if((l===(5))||(l===(8))){if(AN(d.scan,32)===10){e=e+(1)>>0;$s=2;continue s;}}else if(l===(11)){d.err=d.scan.err;$s=-1;return[0,d.scan.err];}case 5:e=e+(1)>>0;$s=3;continue;case 4:if(!($interfaceIsEqual(f,$ifaceNil))){$s=7;continue;}$s=8;continue;case 7:if($interfaceIsEqual(f,E.EOF)){$s=9;continue;}$s=10;continue;case 9:o=d.scan.step(d.scan,32);$s=13;case 13:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(o===10){$s=11;continue;}$s=12;continue;case 11:$s=2;continue s;case 12:if(V(d.buf)){f=E.ErrUnexpectedEOF;}case 10:d.err=f;$s=-1;return[0,f];case 8:p=e-d.scanp>>0;q=d.refill();$s=14;case 14:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}f=q;e=d.scanp+p>>0;$s=1;continue;case 2:$s=-1;return[e-d.scanp>>0,$ifaceNil];}return;}var $f={$blk:T.ptr.prototype.readValue,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};T.prototype.readValue=function(){return this.$val.readValue();};T.ptr.prototype.refill=function(){var{d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(d.scanp>0){d.scanned=(e=d.scanned,f=(new $Int64(0,d.scanp)),new $Int64(e.$high+f.$high,e.$low+f.$low));g=$copySlice(d.buf,$subslice(d.buf,d.scanp));d.buf=$subslice(d.buf,0,g);d.scanp=0;}if((d.buf.$capacity-d.buf.$length>>0)<512){h=$makeSlice(FA,d.buf.$length,(($imul(2,d.buf.$capacity))+512>>0));$copySlice(h,d.buf);d.buf=h;}j=d.r.Read($subslice(d.buf,d.buf.$length,d.buf.$capacity));$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];l=i[1];d.buf=$subslice(d.buf,0,(d.buf.$length+k>>0));$s=-1;return l;}return;}var $f={$blk:T.ptr.prototype.refill,$c:true,$r,d,e,f,g,h,i,j,k,l,$s};return $f;};T.prototype.refill=function(){return this.$val.refill();};V=function(d){var d,e,f,g;e=d;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(!AI(g)){return true;}f++;}return false;};X=function(d){var d;return new W.ptr(d,$ifaceNil,true,FD.nil,"","");};$pkg.NewEncoder=X;W.ptr.prototype.Encode=function(d){var{d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if(!($interfaceIsEqual(e.err,$ifaceNil))){$s=-1;return e.err;}f=CI();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=g.marshal(d,new CL.ptr(false,e.escapeHTML));$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return i;}j=g.Buffer.WriteByte(10);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;k=g.Buffer.Bytes();if(!(e.indentPrefix==="")||!(e.indentValue==="")){$s=4;continue;}$s=5;continue;case 4:if(e.indentBuf===FD.nil){e.indentBuf=new C.Buffer.ptr(FA.nil,0,0);}e.indentBuf.Reset();l=BS(e.indentBuf,k,e.indentPrefix,e.indentValue);$s=6;case 6:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}i=l;if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return i;}k=e.indentBuf.Bytes();case 5:n=e.w.Write(k);$s=7;case 7:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;i=m[1];if(!($interfaceIsEqual(i,$ifaceNil))){e.err=i;}CH.Put(g);$s=-1;return i;}return;}var $f={$blk:W.ptr.prototype.Encode,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};W.prototype.Encode=function(d){return this.$val.Encode(d);};W.ptr.prototype.SetIndent=function(d,e){var d,e,f;f=this;f.indentPrefix=d;f.indentValue=e;};W.prototype.SetIndent=function(d,e){return this.$val.SetIndent(d,e);};W.ptr.prototype.SetEscapeHTML=function(d){var d,e;e=this;e.escapeHTML=d;};W.prototype.SetEscapeHTML=function(d){return this.$val.SetEscapeHTML(d);};T.ptr.prototype.tokenPrepareForDecode=function(){var{d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.tokenState;if(e===(3)){$s=2;continue;}if(e===(6)){$s=3;continue;}$s=4;continue;case 2:g=d.peek();$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return i;}if(!((h===44))){$s=-1;return new AD.ptr("expected comma after array element",d.InputOffset());}d.scanp=d.scanp+(1)>>0;d.tokenState=2;$s=4;continue;case 3:k=d.peek();$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];if(!($interfaceIsEqual(m,$ifaceNil))){$s=-1;return m;}if(!((l===58))){$s=-1;return new AD.ptr("expected colon after object key",d.InputOffset());}d.scanp=d.scanp+(1)>>0;d.tokenState=7;case 4:case 1:$s=-1;return $ifaceNil;}return;}var $f={$blk:T.ptr.prototype.tokenPrepareForDecode,$c:true,$r,d,e,f,g,h,i,j,k,l,m,$s};return $f;};T.prototype.tokenPrepareForDecode=function(){return this.$val.tokenPrepareForDecode();};T.ptr.prototype.tokenValueAllowed=function(){var d,e;d=this;e=d.tokenState;if((e===(0))||(e===(1))||(e===(2))||(e===(7))){return true;}return false;};T.prototype.tokenValueAllowed=function(){return this.$val.tokenValueAllowed();};T.ptr.prototype.tokenValueEnd=function(){var d,e;d=this;e=d.tokenState;if((e===(1))||(e===(2))){d.tokenState=3;}else if(e===(7)){d.tokenState=8;}};T.prototype.tokenValueEnd=function(){return this.$val.tokenValueEnd();};AA.prototype.String=function(){var d;d=this.$val;return($encodeRune(d));};$ptrType(AA).prototype.String=function(){return new AA(this.$get()).String();};T.ptr.prototype.Token=function(){var{d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;case 1:e=[e];f=[f];h=d.peek();$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;i=g[0];j=g[1];if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return[$ifaceNil,j];}k=i;if(k===(91)){$s=5;continue;}if(k===(93)){$s=6;continue;}if(k===(123)){$s=7;continue;}if(k===(125)){$s=8;continue;}if(k===(58)){$s=9;continue;}if(k===(44)){$s=10;continue;}if(k===(34)){$s=11;continue;}$s=12;continue;case 5:if(!d.tokenValueAllowed()){$s=-1;return d.tokenError(i);}d.scanp=d.scanp+(1)>>0;d.tokenStack=$append(d.tokenStack,d.tokenState);d.tokenState=1;$s=-1;return[new AA(91),$ifaceNil];case 6:if(!((d.tokenState===1))&&!((d.tokenState===3))){$s=-1;return d.tokenError(i);}d.scanp=d.scanp+(1)>>0;d.tokenState=(l=d.tokenStack,m=d.tokenStack.$length-1>>0,((m<0||m>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]));d.tokenStack=$subslice(d.tokenStack,0,(d.tokenStack.$length-1>>0));d.tokenValueEnd();$s=-1;return[new AA(93),$ifaceNil];case 7:if(!d.tokenValueAllowed()){$s=-1;return d.tokenError(i);}d.scanp=d.scanp+(1)>>0;d.tokenStack=$append(d.tokenStack,d.tokenState);d.tokenState=4;$s=-1;return[new AA(123),$ifaceNil];case 8:if(!((d.tokenState===4))&&!((d.tokenState===8))){$s=-1;return d.tokenError(i);}d.scanp=d.scanp+(1)>>0;d.tokenState=(n=d.tokenStack,o=d.tokenStack.$length-1>>0,((o<0||o>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]));d.tokenStack=$subslice(d.tokenStack,0,(d.tokenStack.$length-1>>0));d.tokenValueEnd();$s=-1;return[new AA(125),$ifaceNil];case 9:if(!((d.tokenState===6))){$s=-1;return d.tokenError(i);}d.scanp=d.scanp+(1)>>0;d.tokenState=7;$s=1;continue;$s=13;continue;case 10:if(d.tokenState===3){d.scanp=d.scanp+(1)>>0;d.tokenState=2;$s=1;continue;}if(d.tokenState===8){d.scanp=d.scanp+(1)>>0;d.tokenState=5;$s=1;continue;}$s=-1;return d.tokenError(i);case 11:if((d.tokenState===4)||(d.tokenState===5)){$s=14;continue;}$s=15;continue;case 14:e[0]="";p=d.tokenState;d.tokenState=0;q=d.Decode((e.$ptr||(e.$ptr=new FE(function(){return this.$target[0];},function($v){this.$target[0]=$v;},e))));$s=16;case 16:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;d.tokenState=p;if(!($interfaceIsEqual(r,$ifaceNil))){$s=-1;return[$ifaceNil,r];}d.tokenState=6;$s=-1;return[new $String(e[0]),$ifaceNil];case 15:if(!d.tokenValueAllowed()){$s=-1;return d.tokenError(i);}f[0]=$ifaceNil;s=d.Decode((f.$ptr||(f.$ptr=new FF(function(){return this.$target[0];},function($v){this.$target[0]=$v;},f))));$s=17;case 17:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;if(!($interfaceIsEqual(t,$ifaceNil))){$s=-1;return[$ifaceNil,t];}$s=-1;return[f[0],$ifaceNil];case 12:if(!d.tokenValueAllowed()){$s=-1;return d.tokenError(i);}f[0]=$ifaceNil;u=d.Decode((f.$ptr||(f.$ptr=new FF(function(){return this.$target[0];},function($v){this.$target[0]=$v;},f))));$s=18;case 18:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;if(!($interfaceIsEqual(t,$ifaceNil))){$s=-1;return[$ifaceNil,t];}$s=-1;return[f[0],$ifaceNil];case 13:case 4:$s=1;continue;case 2:$s=-1;return[$ifaceNil,$ifaceNil];}return;}var $f={$blk:T.ptr.prototype.Token,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};T.prototype.Token=function(){return this.$val.Token();};T.ptr.prototype.tokenError=function(d){var d,e,f,g;e=this;f="";g=e.tokenState;if(g===(0)){f=" looking for beginning of value";}else if((g===(1))||(g===(2))||(g===(7))){f=" looking for beginning of value";}else if(g===(3)){f=" after array element";}else if(g===(5)){f=" looking for beginning of object key string";}else if(g===(6)){f=" after object key";}else if(g===(8)){f=" after object key:value pair";}return[$ifaceNil,new AD.ptr("invalid character "+BO(d)+f,e.InputOffset())];};T.prototype.tokenError=function(d){return this.$val.tokenError(d);};T.ptr.prototype.More=function(){var{d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;f=d.peek();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];$s=-1;return $interfaceIsEqual(h,$ifaceNil)&&!((g===93))&&!((g===125));}return;}var $f={$blk:T.ptr.prototype.More,$c:true,$r,d,e,f,g,h,$s};return $f;};T.prototype.More=function(){return this.$val.More();};T.ptr.prototype.peek=function(){var{d,e,f,g,h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=$ifaceNil;case 1:f=d.scanp;while(true){if(!(f=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]));if(AI(h)){f=f+(1)>>0;continue;}d.scanp=f;$s=-1;return[h,$ifaceNil];}if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[0,e];}i=d.refill();$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}e=i;$s=1;continue;case 2:$s=-1;return[0,$ifaceNil];}return;}var $f={$blk:T.ptr.prototype.peek,$c:true,$r,d,e,f,g,h,i,$s};return $f;};T.prototype.peek=function(){return this.$val.peek();};T.ptr.prototype.InputOffset=function(){var d,e,f;d=this;return(e=d.scanned,f=(new $Int64(0,d.scanp)),new $Int64(e.$high+f.$high,e.$low+f.$low));};T.prototype.InputOffset=function(){return this.$val.InputOffset();};AD.ptr.prototype.Error=function(){var d;d=this;return d.msg;};AD.prototype.Error=function(){return this.$val.Error();};AG=function(){var{d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=AF.Get();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=$assertType(d,FG);e.bytes=new $Int64(0,0);e.reset();$s=-1;return e;}return;}var $f={$blk:AG,$c:true,$r,d,e,$s};return $f;};AH=function(d){var d;if(d.parseState.$length>1024){d.parseState=EX.nil;}AF.Put(d);};AE.ptr.prototype.reset=function(){var d;d=this;d.step=AK;d.parseState=$subslice(d.parseState,0,0);d.err=$ifaceNil;d.endTop=false;};AE.prototype.reset=function(){return this.$val.reset();};AE.ptr.prototype.eof=function(){var{d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(!($interfaceIsEqual(d.err,$ifaceNil))){$s=-1;return 11;}if(d.endTop){$s=-1;return 10;}e=d.step(d,32);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;if(d.endTop){$s=-1;return 10;}if($interfaceIsEqual(d.err,$ifaceNil)){d.err=new AD.ptr("unexpected end of JSON input",d.bytes);}$s=-1;return 11;}return;}var $f={$blk:AE.ptr.prototype.eof,$c:true,$r,d,e,$s};return $f;};AE.prototype.eof=function(){return this.$val.eof();};AE.ptr.prototype.pushParseState=function(d,e,f){var d,e,f,g;g=this;g.parseState=$append(g.parseState,e);if(g.parseState.$length<=10000){return f;}return g.error(d,"exceeded max depth");};AE.prototype.pushParseState=function(d,e,f){return this.$val.pushParseState(d,e,f);};AE.ptr.prototype.popParseState=function(){var d,e;d=this;e=d.parseState.$length-1>>0;d.parseState=$subslice(d.parseState,0,e);if(e===0){d.step=AO;d.endTop=true;}else{d.step=AN;}};AE.prototype.popParseState=function(){return this.$val.popParseState();};AI=function(d){var d;return d<=32&&((d===32)||(d===9)||(d===13)||(d===10));};AJ=function(d,e){var d,e;if(AI(e)){return 9;}if(e===93){return AN(d,e);}return AK(d,e);};AK=function(d,e){var d,e,f;if(AI(e)){return 9;}f=e;if(f===(123)){d.step=AL;return d.pushParseState(e,0,2);}else if(f===(91)){d.step=AJ;return d.pushParseState(e,2,6);}else if(f===(34)){d.step=AP;return 1;}else if(f===(45)){d.step=AV;return 1;}else if(f===(48)){d.step=AX;return 1;}else if(f===(116)){d.step=BD;return 1;}else if(f===(102)){d.step=BG;return 1;}else if(f===(110)){d.step=BK;return 1;}if(49<=e&&e<=57){d.step=AW;return 1;}return d.error(e,"looking for beginning of value");};AL=function(d,e){var d,e,f,g,h;if(AI(e)){return 9;}if(e===125){f=d.parseState.$length;(g=d.parseState,h=f-1>>0,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]=1));return AN(d,e);}return AM(d,e);};AM=function(d,e){var d,e;if(AI(e)){return 9;}if(e===34){d.step=AP;return 1;}return d.error(e,"looking for beginning of object key string");};AN=function(d,e){var d,e,f,g,h,i,j,k,l,m,n;f=d.parseState.$length;if(f===0){d.step=AO;d.endTop=true;return AO(d,e);}if(AI(e)){d.step=AN;return 9;}i=(g=d.parseState,h=f-1>>0,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]));j=i;if(j===(0)){if(e===58){(k=d.parseState,l=f-1>>0,((l<0||l>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]=1));d.step=AK;return 3;}return d.error(e,"after object key");}else if(j===(1)){if(e===44){(m=d.parseState,n=f-1>>0,((n<0||n>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]=0));d.step=AM;return 4;}if(e===125){d.popParseState();return 5;}return d.error(e,"after object key:value pair");}else if(j===(2)){if(e===44){d.step=AK;return 7;}if(e===93){d.popParseState();return 8;}return d.error(e,"after array element");}return d.error(e,"");};AO=function(d,e){var d,e;if(!AI(e)){d.error(e,"after top-level value");}return 10;};AP=function(d,e){var d,e;if(e===34){d.step=AN;return 0;}if(e===92){d.step=AQ;return 0;}if(e<32){return d.error(e,"in string literal");}return 0;};AQ=function(d,e){var d,e,f;f=e;if((f===(98))||(f===(102))||(f===(110))||(f===(114))||(f===(116))||(f===(92))||(f===(47))||(f===(34))){d.step=AP;return 0;}else if(f===(117)){d.step=AR;return 0;}return d.error(e,"in string escape code");};AR=function(d,e){var d,e;if(48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70){d.step=AS;return 0;}return d.error(e,"in \\u hexadecimal character escape");};AS=function(d,e){var d,e;if(48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70){d.step=AT;return 0;}return d.error(e,"in \\u hexadecimal character escape");};AT=function(d,e){var d,e;if(48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70){d.step=AU;return 0;}return d.error(e,"in \\u hexadecimal character escape");};AU=function(d,e){var d,e;if(48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70){d.step=AP;return 0;}return d.error(e,"in \\u hexadecimal character escape");};AV=function(d,e){var d,e;if(e===48){d.step=AX;return 0;}if(49<=e&&e<=57){d.step=AW;return 0;}return d.error(e,"in numeric literal");};AW=function(d,e){var d,e;if(48<=e&&e<=57){d.step=AW;return 0;}return AX(d,e);};AX=function(d,e){var d,e;if(e===46){d.step=AY;return 0;}if((e===101)||(e===69)){d.step=BA;return 0;}return AN(d,e);};AY=function(d,e){var d,e;if(48<=e&&e<=57){d.step=AZ;return 0;}return d.error(e,"after decimal point in numeric literal");};AZ=function(d,e){var d,e;if(48<=e&&e<=57){return 0;}if((e===101)||(e===69)){d.step=BA;return 0;}return AN(d,e);};BA=function(d,e){var d,e;if((e===43)||(e===45)){d.step=BB;return 0;}return BB(d,e);};BB=function(d,e){var d,e;if(48<=e&&e<=57){d.step=BC;return 0;}return d.error(e,"in exponent of numeric literal");};BC=function(d,e){var d,e;if(48<=e&&e<=57){return 0;}return AN(d,e);};BD=function(d,e){var d,e;if(e===114){d.step=BE;return 0;}return d.error(e,"in literal true (expecting 'r')");};BE=function(d,e){var d,e;if(e===117){d.step=BF;return 0;}return d.error(e,"in literal true (expecting 'u')");};BF=function(d,e){var d,e;if(e===101){d.step=AN;return 0;}return d.error(e,"in literal true (expecting 'e')");};BG=function(d,e){var d,e;if(e===97){d.step=BH;return 0;}return d.error(e,"in literal false (expecting 'a')");};BH=function(d,e){var d,e;if(e===108){d.step=BI;return 0;}return d.error(e,"in literal false (expecting 'l')");};BI=function(d,e){var d,e;if(e===115){d.step=BJ;return 0;}return d.error(e,"in literal false (expecting 's')");};BJ=function(d,e){var d,e;if(e===101){d.step=AN;return 0;}return d.error(e,"in literal false (expecting 'e')");};BK=function(d,e){var d,e;if(e===117){d.step=BL;return 0;}return d.error(e,"in literal null (expecting 'u')");};BL=function(d,e){var d,e;if(e===108){d.step=BM;return 0;}return d.error(e,"in literal null (expecting 'l')");};BM=function(d,e){var d,e;if(e===108){d.step=AN;return 0;}return d.error(e,"in literal null (expecting 'l')");};BN=function(d,e){var d,e;return 11;};AE.ptr.prototype.error=function(d,e){var d,e,f;f=this;f.step=BN;f.err=new AD.ptr("invalid character "+BO(d)+" "+e,f.bytes);return 11;};AE.prototype.error=function(d,e){return this.$val.error(d,e);};BO=function(d){var d,e;if(d===39){return"'\\''";}if(d===34){return"'\"'";}e=F.Quote(($encodeRune(d)));return"'"+$substring(e,1,(e.length-1>>0))+"'";};BQ=function(d,e,f){var{aa,ab,ac,ad,ae,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{d,e,f});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);g=d.Len();h=AG();$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$deferred.push([AH,[i]]);j=0;k=e;l=0;case 2:if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);if(f&&((n===60)||(n===62)||(n===38))){$s=4;continue;}$s=5;continue;case 4:if(j>>4<<24>>>24)));$s=10;case 10:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;r=d.WriteByte(CF.charCodeAt(((n&15)>>>0)));$s=11;case 11:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;j=m+1>>0;case 5:if(f&&(n===226)&&(m+2>>0)>0,((s<0||s>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+s]))===128)&&((((t=m+2>>0,((t<0||t>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+t]))&~1)<<24>>>24)===168)){$s=12;continue;}$s=13;continue;case 12:if(j>0,((w<0||w>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+w]))&15)>>>0)));$s=18;case 18:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}x;j=m+3>>0;case 13:y=i.step(i,n);$s=19;case 19:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;if(z>=9){$s=20;continue;}$s=21;continue;case 20:if(z===11){$s=3;continue;}if(j>0;case 21:l++;$s=2;continue;case 3:ab=i.eof();$s=27;case 27:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}if(ab===11){$s=25;continue;}$s=26;continue;case 25:d.Truncate(g);ac=i.err;$s=28;case 28:return ac;case 26:if(j>0;$s=3;continue;case 4:$s=-1;return;}return;}var $f={$blk:BR,$c:true,$r,d,e,f,g,h,i,j,k,$s};return $f;};BS=function(d,e,f,g){var{aa,ab,ac,ad,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{d,e,f,g});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);h=d.Len();i=AG();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$deferred.push([AH,[j]]);k=false;l=0;m=e;n=0;case 2:if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);j.bytes=(p=j.bytes,q=new $Int64(0,1),new $Int64(p.$high+q.$high,p.$low+q.$low));r=j.step(j,o);$s=4;case 4:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;if(s===9){n++;$s=2;continue;}if(s===11){$s=3;continue;}if(k&&!((s===5))&&!((s===8))){$s=5;continue;}$s=6;continue;case 5:k=false;l=l+(1)>>0;$r=BR(d,f,g,l);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:if(s===0){$s=8;continue;}$s=9;continue;case 8:t=d.WriteByte(o);$s=10;case 10:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t;n++;$s=2;continue;case 9:u=o;if((u===(123))||(u===(91))){$s=12;continue;}if(u===(44)){$s=13;continue;}if(u===(58)){$s=14;continue;}if((u===(125))||(u===(93))){$s=15;continue;}$s=16;continue;case 12:k=true;v=d.WriteByte(o);$s=18;case 18:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}v;$s=17;continue;case 13:w=d.WriteByte(o);$s=19;case 19:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}w;$r=BR(d,f,g,l);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=17;continue;case 14:x=d.WriteByte(o);$s=21;case 21:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}x;y=d.WriteByte(32);$s=22;case 22:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}y;$s=17;continue;case 15:if(k){$s=23;continue;}$s=24;continue;case 23:k=false;$s=25;continue;case 24:l=l-(1)>>0;$r=BR(d,f,g,l);$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 25:z=d.WriteByte(o);$s=27;case 27:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}z;$s=17;continue;case 16:aa=d.WriteByte(o);$s=28;case 28:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}aa;case 17:case 11:n++;$s=2;continue;case 3:ab=j.eof();$s=31;case 31:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}if(ab===11){$s=29;continue;}$s=30;continue;case 29:d.Truncate(h);ac=j.err;$s=32;case 32:return ac;case 30:ad=$ifaceNil;$s=33;case 33:return ad;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:BS,$c:true,$r,aa,ab,ac,ad,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};$pkg.Indent=BS;BT=function(d){var d,e,f,g,h,i,j;e=false;f=false;g=d;h=0;while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if(i>=128){return C.EqualFold;}j=(i&223)>>>0;if(j<65||j>90){e=true;}else if((j===75)||(j===83)){f=true;}h++;}if(f){return BU;}if(e){return BV;}return BW;};BU=function(d,e){var d,e,f,g,h,i,j,k,l,m,n;f=d;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(e.$length===0){return false;}i=(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]);if(i<128){if(!((h===i))){j=(h&223)>>>0;if(65<=j&&j<=90){if(!((j===((i&223)>>>0)))){return false;}}else{return false;}}e=$subslice(e,1);g++;continue;}k=B.DecodeRune(e);l=k[0];m=k[1];n=h;if((n===(115))||(n===(83))){if(!((l===383))){return false;}}else if((n===(107))||(n===(75))){if(!((l===8490))){return false;}}else{return false;}e=$subslice(e,m);g++;}if(e.$length>0){return false;}return true;};BV=function(d,e){var d,e,f,g,h,i,j;if(!((d.$length===e.$length))){return false;}f=d;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=((h<0||h>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h]);if(i===j){g++;continue;}if((97<=i&&i<=122)||(65<=i&&i<=90)){if(!((((i&223)>>>0)===((j&223)>>>0)))){return false;}}else{return false;}g++;}return true;};BW=function(d,e){var d,e,f,g,h,i;if(!((d.$length===e.$length))){return false;}f=d;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(!((((i&223)>>>0)===((((h<0||h>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h])&223)>>>0)))){return false;}g++;}return true;};BZ=function(d,e){var{d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{d,e});$s=$s||0;s:while(true){switch($s){case 0:f=0;g=e;h=0;case 1:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if((j===60)||(j===62)||(j===38)){$s=3;continue;}$s=4;continue;case 3:if(f>>4<<24>>>24)));$s=9;case 9:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;n=d.WriteByte(CF.charCodeAt(((j&15)>>>0)));$s=10;case 10:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;f=i+1>>0;case 4:if((j===226)&&(i+2>>0)>0,((o<0||o>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+o]))===128)&&((((p=i+2>>0,((p<0||p>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+p]))&~1)<<24>>>24)===168)){$s=11;continue;}$s=12;continue;case 11:if(f>0,((s<0||s>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+s]))&15)>>>0)));$s=17;case 17:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t;f=i+3>>0;case 12:h++;$s=1;continue;case 2:if(f0){$panic(new $String("ptrEncoder.encode should have emptied ptrSeen via defers"));}f.ptrLevel=0;$s=-1;return f;}$s=-1;return new CG.ptr(new C.Buffer.ptr(FA.nil,0,0),FI.zero(),0,new $global.Map());}return;}var $f={$blk:CI,$c:true,$r,d,e,f,$s};return $f;};CG.ptr.prototype.marshal=function(d,e){var{d,e,f,g,h,i,$s,$deferred,$r,$c}=$restore(this,{d,e});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);f=[f];f[0]=$ifaceNil;g=this;$deferred.push([(function(f){return function(){var h,i,j,k;h=$recover();if(!($interfaceIsEqual(h,$ifaceNil))){i=$assertType(h,CJ,true);j=$clone(i[0],CJ);k=i[1];if(k){f[0]=j.error;}else{$panic(h);}}};})(f),[]]);h=L.ValueOf(d);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=g.reflectValue($clone(h,L.Value),$clone(e,CL));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f[0]=$ifaceNil;i=f[0];$s=3;case 3:return i;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return f[0];}if($curGoroutine.asleep){var $f={$blk:CG.ptr.prototype.marshal,$c:true,$r,d,e,f,g,h,i,$s,$deferred};return $f;}}};CG.prototype.marshal=function(d,e){return this.$val.marshal(d,e);};CG.ptr.prototype.error=function(d){var d,e,f;e=this;$panic((f=new CJ.ptr(d),new f.constructor.elem(f)));};CG.prototype.error=function(d){return this.$val.error(d);};CK=function(d){var d,e,f,g;e=$clone(d,L.Value).Kind();if((e===(17))||(e===(21))||(e===(23))||(e===(24))){return $clone(d,L.Value).Len()===0;}else if(e===(1)){return!$clone(d,L.Value).Bool();}else if((e===(2))||(e===(3))||(e===(4))||(e===(5))||(e===(6))){return(f=$clone(d,L.Value).Int(),(f.$high===0&&f.$low===0));}else if((e===(7))||(e===(8))||(e===(9))||(e===(10))||(e===(11))||(e===(12))){return(g=$clone(d,L.Value).Uint(),(g.$high===0&&g.$low===0));}else if((e===(13))||(e===(14))){return $clone(d,L.Value).Float()===0;}else if((e===(20))||(e===(22))){return $clone(d,L.Value).IsNil();}return false;};CG.ptr.prototype.reflectValue=function(d,e){var{d,e,f,g,$s,$r,$c}=$restore(this,{d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;g=CO($clone(d,L.Value));$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$r=g(f,$clone(d,L.Value),$clone(e,CL));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:CG.ptr.prototype.reflectValue,$c:true,$r,d,e,f,g,$s};return $f;};CG.prototype.reflectValue=function(d,e){return this.$val.reflectValue(d,e);};CO=function(d){var{d,e,f,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:if(!$clone(d,L.Value).IsValid()){$s=-1;return CT;}e=CP($clone(d,L.Value).Type());$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:CO,$c:true,$r,d,e,f,$s};return $f;};CP=function(d){var{d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=[e];f=[f];g=CN.Load(d);h=g[0];i=g[1];if(i){$s=-1;return $assertType(h,CM);}f[0]=new G.WaitGroup.ptr(0);e[0]=$throwNilPointerError;f[0].Add(1);j=CN.LoadOrStore(d,new CM(((function(e,f){return function $b(k,l,m){var{k,l,m,$s,$r,$c}=$restore(this,{k,l,m});$s=$s||0;s:while(true){switch($s){case 0:f[0].Wait();$r=e[0](k,$clone(l,L.Value),$clone(m,CL));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,k,l,m,$s};return $f;};})(e,f))));k=j[0];l=j[1];if(l){$s=-1;return $assertType(k,CM);}m=CS(d,true);$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}e[0]=m;f[0].Done();CN.Store(d,new CM(e[0]));$s=-1;return e[0];}return;}var $f={$blk:CP,$c:true,$r,d,e,f,g,h,i,j,k,l,m,$s};return $f;};CS=function(d,e){var{aa,ab,ac,ad,ae,af,ag,ah,ai,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{d,e});$s=$s||0;s:while(true){switch($s){case 0:g=d.Kind();$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(!(!((g===22))&&e)){f=false;$s=3;continue s;}h=L.PointerTo(d).Implements(CQ);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}f=h;case 3:if(f){$s=1;continue;}$s=2;continue;case 1:i=CV;j=CS(d,false);$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=DV(i,k);$s=7;case 7:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=8;case 8:return m;case 2:n=d.Implements(CQ);$s=11;case 11:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}if(n){$s=9;continue;}$s=10;continue;case 9:$s=-1;return CU;case 10:p=d.Kind();$s=15;case 15:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}if(!(!((p===22))&&e)){o=false;$s=14;continue s;}q=L.PointerTo(d).Implements(CR);$s=16;case 16:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}o=q;case 14:if(o){$s=12;continue;}$s=13;continue;case 12:r=CX;s=CS(d,false);$s=17;case 17:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;u=DV(r,t);$s=18;case 18:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;$s=19;case 19:return v;case 13:w=d.Implements(CR);$s=22;case 22:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}if(w){$s=20;continue;}$s=21;continue;case 20:$s=-1;return CW;case 21:x=d.Kind();$s=24;case 24:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;if(y===(1)){$s=25;continue;}if((y===(2))||(y===(3))||(y===(4))||(y===(5))||(y===(6))){$s=26;continue;}if((y===(7))||(y===(8))||(y===(9))||(y===(10))||(y===(11))||(y===(12))){$s=27;continue;}if(y===(13)){$s=28;continue;}if(y===(14)){$s=29;continue;}if(y===(24)){$s=30;continue;}if(y===(20)){$s=31;continue;}if(y===(25)){$s=32;continue;}if(y===(21)){$s=33;continue;}if(y===(23)){$s=34;continue;}if(y===(17)){$s=35;continue;}if(y===(22)){$s=36;continue;}$s=37;continue;case 25:$s=-1;return CY;case 26:$s=-1;return CZ;case 27:$s=-1;return DA;case 28:$s=-1;return DC;case 29:$s=-1;return DD;case 30:$s=-1;return DE;case 31:$s=-1;return DG;case 32:z=DK(d);$s=39;case 39:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;$s=40;case 40:return aa;case 33:ab=DM(d);$s=41;case 41:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;$s=42;case 42:return ac;case 34:ad=DP(d);$s=43;case 43:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;$s=44;case 44:return ae;case 35:af=DR(d);$s=45;case 45:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;$s=46;case 46:return ag;case 36:ah=DT(d);$s=47;case 47:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$s=48;case 48:return ai;case 37:$s=-1;return DH;case 38:case 23:$s=-1;return $throwNilPointerError;}return;}var $f={$blk:CS,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};CT=function(d,e,f){var{d,e,f,g,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=d.Buffer.WriteString("null");$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;$s=-1;return;}return;}var $f={$blk:CT,$c:true,$r,d,e,f,g,$s};return $f;};CU=function(d,e,f){var{d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:if(($clone(e,L.Value).Kind()===22)&&$clone(e,L.Value).IsNil()){$s=1;continue;}$s=2;continue;case 1:g=d.Buffer.WriteString("null");$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;$s=-1;return;case 2:i=$clone(e,L.Value).Interface();$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=$assertType(i,CA,true);j=h[0];k=h[1];if(!k){$s=5;continue;}$s=6;continue;case 5:l=d.Buffer.WriteString("null");$s=7;case 7:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;$s=-1;return;case 6:n=j.MarshalJSON();$s=8;case 8:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=m[0];p=m[1];if($interfaceIsEqual(p,$ifaceNil)){$s=9;continue;}$s=10;continue;case 9:q=BQ(d.Buffer,o,f.escapeHTML);$s=11;case 11:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;case 10:if(!($interfaceIsEqual(p,$ifaceNil))){d.error(new CE.ptr($clone(e,L.Value).Type(),p,"MarshalJSON"));}$s=-1;return;}return;}var $f={$blk:CU,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};CV=function(d,e,f){var{d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=$clone(e,L.Value).Addr();if($clone(g,L.Value).IsNil()){$s=1;continue;}$s=2;continue;case 1:h=d.Buffer.WriteString("null");$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;$s=-1;return;case 2:i=$clone(g,L.Value).Interface();$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=$assertType(i,CA);l=j.MarshalJSON();$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];if($interfaceIsEqual(n,$ifaceNil)){$s=6;continue;}$s=7;continue;case 6:o=BQ(d.Buffer,m,f.escapeHTML);$s=8;case 8:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;case 7:if(!($interfaceIsEqual(n,$ifaceNil))){d.error(new CE.ptr($clone(e,L.Value).Type(),n,"MarshalJSON"));}$s=-1;return;}return;}var $f={$blk:CV,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};CW=function(d,e,f){var{d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:if(($clone(e,L.Value).Kind()===22)&&$clone(e,L.Value).IsNil()){$s=1;continue;}$s=2;continue;case 1:g=d.Buffer.WriteString("null");$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;$s=-1;return;case 2:i=$clone(e,L.Value).Interface();$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=$assertType(i,H.TextMarshaler,true);j=h[0];k=h[1];if(!k){$s=5;continue;}$s=6;continue;case 5:l=d.Buffer.WriteString("null");$s=7;case 7:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;$s=-1;return;case 6:n=j.MarshalText();$s=8;case 8:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=m[0];p=m[1];if(!($interfaceIsEqual(p,$ifaceNil))){d.error(new CE.ptr($clone(e,L.Value).Type(),p,"MarshalText"));}$r=d.stringBytes(o,f.escapeHTML);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:CW,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};CX=function(d,e,f){var{d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=$clone(e,L.Value).Addr();if($clone(g,L.Value).IsNil()){$s=1;continue;}$s=2;continue;case 1:h=d.Buffer.WriteString("null");$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;$s=-1;return;case 2:i=$clone(g,L.Value).Interface();$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=$assertType(i,H.TextMarshaler);l=j.MarshalText();$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];if(!($interfaceIsEqual(n,$ifaceNil))){d.error(new CE.ptr($clone(e,L.Value).Type(),n,"MarshalText"));}$r=d.stringBytes(m,f.escapeHTML);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:CX,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};CY=function(d,e,f){var{d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:if(f.quoted){$s=1;continue;}$s=2;continue;case 1:g=d.Buffer.WriteByte(34);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;case 2:if($clone(e,L.Value).Bool()){$s=4;continue;}$s=5;continue;case 4:h=d.Buffer.WriteString("true");$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;$s=6;continue;case 5:i=d.Buffer.WriteString("false");$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;case 6:if(f.quoted){$s=9;continue;}$s=10;continue;case 9:j=d.Buffer.WriteByte(34);$s=11;case 11:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;case 10:$s=-1;return;}return;}var $f={$blk:CY,$c:true,$r,d,e,f,g,h,i,j,$s};return $f;};CZ=function(d,e,f){var{d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=F.AppendInt($subslice(new FA(d.scratch),0,0),$clone(e,L.Value).Int(),10);if(f.quoted){$s=1;continue;}$s=2;continue;case 1:h=d.Buffer.WriteByte(34);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 2:i=d.Buffer.Write(g);$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;if(f.quoted){$s=5;continue;}$s=6;continue;case 5:j=d.Buffer.WriteByte(34);$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;case 6:$s=-1;return;}return;}var $f={$blk:CZ,$c:true,$r,d,e,f,g,h,i,j,$s};return $f;};DA=function(d,e,f){var{d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=F.AppendUint($subslice(new FA(d.scratch),0,0),$clone(e,L.Value).Uint(),10);if(f.quoted){$s=1;continue;}$s=2;continue;case 1:h=d.Buffer.WriteByte(34);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 2:i=d.Buffer.Write(g);$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;if(f.quoted){$s=5;continue;}$s=6;continue;case 5:j=d.Buffer.WriteByte(34);$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;case 6:$s=-1;return;}return;}var $f={$blk:DA,$c:true,$r,d,e,f,g,h,i,j,$s};return $f;};DB.prototype.encode=function(d,e,f){var{d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=this.$val;h=$clone(e,L.Value).Float();if(K.IsInf(h,0)||K.IsNaN(h)){d.error(new CC.ptr($clone(e,L.Value),F.FormatFloat(h,103,-1,((g>>0)))));}i=$subslice(new FA(d.scratch),0,0);j=K.Abs(h);k=102;if(!((j===0))){if((g===64)&&(j<1e-06||j>=1e+21)||(g===32)&&(($fround(j))<9.999999974752427e-07||($fround(j))>=1.0000000200408773e+21)){k=101;}}i=F.AppendFloat(i,h,k,-1,((g>>0)));if(k===101){l=i.$length;if(l>=4&&((m=l-4>>0,((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]))===101)&&((n=l-3>>0,((n<0||n>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+n]))===45)&&((o=l-2>>0,((o<0||o>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+o]))===48)){(q=l-2>>0,((q<0||q>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+q]=(p=l-1>>0,((p<0||p>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+p]))));i=$subslice(i,0,(l-1>>0));}}if(f.quoted){$s=1;continue;}$s=2;continue;case 1:r=d.Buffer.WriteByte(34);$s=3;case 3:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;case 2:s=d.Buffer.Write(i);$s=4;case 4:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;if(f.quoted){$s=5;continue;}$s=6;continue;case 5:t=d.Buffer.WriteByte(34);$s=7;case 7:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t;case 6:$s=-1;return;}return;}var $f={$blk:DB.prototype.encode,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};$ptrType(DB).prototype.encode=function(d,e,f){return new DB(this.$get()).encode(d,e,f);};DE=function(d,e,f){var{d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:if($interfaceIsEqual($clone(e,L.Value).Type(),ER)){$s=1;continue;}$s=2;continue;case 1:g=$clone(e,L.Value).String();$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(h===""){h="0";}if(!DF(h)){$s=4;continue;}$s=5;continue;case 4:i=J.Errorf("json: invalid number literal %q",new EV([new $String(h)]));$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$r=d.error(i);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:if(f.quoted){$s=8;continue;}$s=9;continue;case 8:j=d.Buffer.WriteByte(34);$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;case 9:k=d.Buffer.WriteString(h);$s=11;case 11:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;if(f.quoted){$s=12;continue;}$s=13;continue;case 12:l=d.Buffer.WriteByte(34);$s=14;case 14:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;case 13:$s=-1;return;case 2:if(f.quoted){$s=15;continue;}$s=16;continue;case 15:m=CI();$s=18;case 18:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=$clone(e,L.Value).String();$s=19;case 19:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}$r=n.string(o,f.escapeHTML);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.stringBytes(n.Buffer.Bytes(),false);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}CH.Put(n);$s=17;continue;case 16:p=$clone(e,L.Value).String();$s=22;case 22:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}$r=d.string(p,f.escapeHTML);$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:$s=-1;return;}return;}var $f={$blk:DE,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};DF=function(d){var d;if(d===""){return false;}if(d.charCodeAt(0)===45){d=$substring(d,1);if(d===""){return false;}}if((d.charCodeAt(0)===48)){d=$substring(d,1);}else if(49<=d.charCodeAt(0)&&d.charCodeAt(0)<=57){d=$substring(d,1);while(true){if(!(d.length>0&&48<=d.charCodeAt(0)&&d.charCodeAt(0)<=57)){break;}d=$substring(d,1);}}else{return false;}if(d.length>=2&&(d.charCodeAt(0)===46)&&48<=d.charCodeAt(1)&&d.charCodeAt(1)<=57){d=$substring(d,2);while(true){if(!(d.length>0&&48<=d.charCodeAt(0)&&d.charCodeAt(0)<=57)){break;}d=$substring(d,1);}}if(d.length>=2&&((d.charCodeAt(0)===101)||(d.charCodeAt(0)===69))){d=$substring(d,1);if((d.charCodeAt(0)===43)||(d.charCodeAt(0)===45)){d=$substring(d,1);if(d===""){return false;}}while(true){if(!(d.length>0&&48<=d.charCodeAt(0)&&d.charCodeAt(0)<=57)){break;}d=$substring(d,1);}}return d==="";};DG=function(d,e,f){var{d,e,f,g,h,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:if($clone(e,L.Value).IsNil()){$s=1;continue;}$s=2;continue;case 1:g=d.Buffer.WriteString("null");$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;$s=-1;return;case 2:h=$clone(e,L.Value).Elem();$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=d.reflectValue($clone(h,L.Value),$clone(f,CL));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:DG,$c:true,$r,d,e,f,g,h,$s};return $f;};DH=function(d,e,f){var d,e,f;d.error(new CB.ptr($clone(e,L.Value).Type()));};DI.ptr.prototype.encode=function(d,e,f){var{d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=this;h=123;i=g.fields.list;j=0;case 1:if(!(j=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+k]));n=e;o=m.index;p=0;case 3:if(!(p=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]);if($clone(n,L.Value).Kind()===22){$s=5;continue;}$s=6;continue;case 5:if($clone(n,L.Value).IsNil()){j++;$s=1;continue s;}r=$clone(n,L.Value).Elem();$s=7;case 7:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}n=r;case 6:s=$clone(n,L.Value).Field(q);$s=8;case 8:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}n=s;p++;$s=3;continue;case 4:if(m.omitEmpty&&CK($clone(n,L.Value))){j++;$s=1;continue;}t=d.Buffer.WriteByte(h);$s=9;case 9:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t;h=44;if(f.escapeHTML){$s=10;continue;}$s=11;continue;case 10:u=d.Buffer.WriteString(m.nameEscHTML);$s=13;case 13:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}u;$s=12;continue;case 11:v=d.Buffer.WriteString(m.nameNonEsc);$s=14;case 14:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}v;case 12:f.quoted=m.quoted;$r=m.encoder(d,$clone(n,L.Value),$clone(f,CL));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j++;$s=1;continue;case 2:if(h===123){$s=16;continue;}$s=17;continue;case 16:w=d.Buffer.WriteString("{}");$s=19;case 19:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}w;$s=18;continue;case 17:x=d.Buffer.WriteByte(125);$s=20;case 20:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}x;case 18:$s=-1;return;}return;}var $f={$blk:DI.ptr.prototype.encode,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s};return $f;};DI.prototype.encode=function(d,e,f){return this.$val.encode(d,e,f);};DK=function(d){var{d,e,f,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=EE(d);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=new DI.ptr($clone(e,DJ));$s=-1;return $methodVal($clone(f,DI),"encode");}return;}var $f={$blk:DK,$c:true,$r,d,e,f,$s};return $f;};DL.ptr.prototype.encode=function(d,e,f){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{d,e,f});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);g=[g];h=this;if($clone(e,L.Value).IsNil()){$s=1;continue;}$s=2;continue;case 1:i=d.Buffer.WriteString("null");$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$s=4;case 4:return;case 2:d.ptrLevel=d.ptrLevel+(1)>>>0;if(d.ptrLevel>1000){$s=5;continue;}$s=6;continue;case 5:j=$clone(e,L.Value).Pointer();k=(l=$mapIndex(d.ptrSeen,$emptyInterface.keyFor(new $Uintptr(j))),l!==undefined?[l.v,true]:[new FK.ptr(),false]);m=k[1];if(m){$s=7;continue;}$s=8;continue;case 7:n=J.Sprintf("encountered a cycle via %s",new EV([$clone(e,L.Value).Type()]));$s=9;case 9:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$r=d.error(new CC.ptr($clone(e,L.Value),n));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:o=new $Uintptr(j);(d.ptrSeen||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(o),{k:o,v:new FK.ptr()});$deferred.push([function(p,q){$mapDelete(p,$emptyInterface.keyFor(q));},[d.ptrSeen,new $Uintptr(j)]]);case 6:r=d.Buffer.WriteByte(123);$s=11;case 11:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;g[0]=$makeSlice(FL,$clone(e,L.Value).Len());s=$clone(e,L.Value).MapRange();t=0;case 12:u=s.Next();$s=14;case 14:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}if(!(u)){$s=13;continue;}v=s.Key();$s=15;case 15:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}((t<0||t>=g[0].$length)?($throwRuntimeError("index out of range"),undefined):g[0].$array[g[0].$offset+t]).k=v;w=s.Value();$s=16;case 16:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}((t<0||t>=g[0].$length)?($throwRuntimeError("index out of range"),undefined):g[0].$array[g[0].$offset+t]).v=w;x=((t<0||t>=g[0].$length)?($throwRuntimeError("index out of range"),undefined):g[0].$array[g[0].$offset+t]).resolve();$s=17;case 17:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;if(!($interfaceIsEqual(y,$ifaceNil))){$s=18;continue;}$s=19;continue;case 18:z=$clone(e,L.Value).Type().String();$s=20;case 20:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=new $String(z);ab=y.Error();$s=21;case 21:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=new $String(ab);ad=J.Errorf("json: encoding error for type %q: %q",new EV([aa,ac]));$s=22;case 22:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}$r=d.error(ad);$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 19:t=t+(1)>>0;$s=12;continue;case 13:$r=M.Slice(g[0],(function(g){return function(ae,af){var ae,af;return((ae<0||ae>=g[0].$length)?($throwRuntimeError("index out of range"),undefined):g[0].$array[g[0].$offset+ae]).ks<((af<0||af>=g[0].$length)?($throwRuntimeError("index out of range"),undefined):g[0].$array[g[0].$offset+af]).ks;};})(g));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ae=g[0];af=0;case 25:if(!(af=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+af]),DY);if(ag>0){$s=27;continue;}$s=28;continue;case 27:ai=d.Buffer.WriteByte(44);$s=29;case 29:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ai;case 28:$r=d.string(ah.ks,f.escapeHTML);$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aj=d.Buffer.WriteByte(58);$s=31;case 31:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}aj;$r=h.elemEnc(d,$clone(ah.v,L.Value),$clone(f,CL));$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}af++;$s=25;continue;case 26:ak=d.Buffer.WriteByte(125);$s=33;case 33:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}ak;d.ptrLevel=d.ptrLevel-(1)>>>0;$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:DL.ptr.prototype.encode,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};DL.prototype.encode=function(d,e,f){return this.$val.encode(d,e,f);};DM=function(d){var{d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=d.Key();$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e.Kind();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if((g===(24))||(g===(2))||(g===(3))||(g===(4))||(g===(5))||(g===(6))||(g===(7))||(g===(8))||(g===(9))||(g===(10))||(g===(11))||(g===(12))){$s=4;continue;}h=d.Key();$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h.Implements(CR);$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(!i){$s=5;continue;}$s=6;continue;case 4:$s=6;continue;case 5:$s=-1;return DH;case 6:case 1:j=d.Elem();$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=CP(j);$s=10;case 10:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=new DL.ptr(k);$s=-1;return $methodVal($clone(l,DL),"encode");}return;}var $f={$blk:DM,$c:true,$r,d,e,f,g,h,i,j,k,l,$s};return $f;};DN=function(d,e,f){var{d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:if($clone(e,L.Value).IsNil()){$s=1;continue;}$s=2;continue;case 1:g=d.Buffer.WriteString("null");$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;$s=-1;return;case 2:h=$clone(e,L.Value).Bytes();$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=d.Buffer.WriteByte(34);$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;k=I.StdEncoding.EncodedLen(i.$length);if(k<=64){$s=6;continue;}if(k<=1024){$s=7;continue;}$s=8;continue;case 6:l=$subslice(new FA(d.scratch),0,k);I.StdEncoding.Encode(l,i);m=d.Buffer.Write(l);$s=10;case 10:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;$s=9;continue;case 7:n=$makeSlice(FA,k);I.StdEncoding.Encode(n,i);o=d.Buffer.Write(n);$s=11;case 11:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;$s=9;continue;case 8:p=I.NewEncoder(I.StdEncoding,d);q=p.Write(i);$s=12;case 12:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;r=p.Close();$s=13;case 13:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;case 9:s=d.Buffer.WriteByte(34);$s=14;case 14:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;$s=-1;return;}return;}var $f={$blk:DN,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};DO.ptr.prototype.encode=function(d,e,f){var{d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred,$r,$c}=$restore(this,{d,e,f});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);g=this;if($clone(e,L.Value).IsNil()){$s=1;continue;}$s=2;continue;case 1:h=d.Buffer.WriteString("null");$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;$s=4;case 4:return;case 2:d.ptrLevel=d.ptrLevel+(1)>>>0;if(d.ptrLevel>1000){$s=5;continue;}$s=6;continue;case 5:i=new FM.ptr($clone(e,L.Value).Pointer(),$clone(e,L.Value).Len());j=(k=$mapIndex(d.ptrSeen,$emptyInterface.keyFor(new i.constructor.elem(i))),k!==undefined?[k.v,true]:[new FK.ptr(),false]);l=j[1];if(l){$s=7;continue;}$s=8;continue;case 7:m=J.Sprintf("encountered a cycle via %s",new EV([$clone(e,L.Value).Type()]));$s=9;case 9:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}$r=d.error(new CC.ptr($clone(e,L.Value),m));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:n=new i.constructor.elem(i);(d.ptrSeen||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(n),{k:n,v:new FK.ptr()});$deferred.push([function(o,p){$mapDelete(o,$emptyInterface.keyFor(p));},[d.ptrSeen,new i.constructor.elem(i)]]);case 6:$r=g.arrayEnc(d,$clone(e,L.Value),$clone(f,CL));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d.ptrLevel=d.ptrLevel-(1)>>>0;$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:DO.ptr.prototype.encode,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred};return $f;}}};DO.prototype.encode=function(d,e,f){return this.$val.encode(d,e,f);};DP=function(d){var{d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=d.Elem();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e.Kind();$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f===8){$s=1;continue;}$s=2;continue;case 1:g=d.Elem();$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=L.PointerTo(g);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;k=i.Implements(CQ);$s=10;case 10:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(!(!k)){j=false;$s=9;continue s;}l=i.Implements(CR);$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}j=!l;case 9:if(j){$s=7;continue;}$s=8;continue;case 7:$s=-1;return DN;case 8:case 2:m=DR(d);$s=12;case 12:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=new DO.ptr(m);$s=-1;return $methodVal($clone(n,DO),"encode");}return;}var $f={$blk:DP,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};DQ.ptr.prototype.encode=function(d,e,f){var{d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=this;h=d.Buffer.WriteByte(91);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;i=$clone(e,L.Value).Len();j=0;case 2:if(!(j0){$s=4;continue;}$s=5;continue;case 4:k=d.Buffer.WriteByte(44);$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;case 5:l=d;m=$clone(e,L.Value).Index(j);$s=7;case 7:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=$clone(m,L.Value);o=$clone(f,CL);$r=g.elemEnc(l,n,o);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=j+(1)>>0;$s=2;continue;case 3:p=d.Buffer.WriteByte(93);$s=9;case 9:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;$s=-1;return;}return;}var $f={$blk:DQ.ptr.prototype.encode,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};DQ.prototype.encode=function(d,e,f){return this.$val.encode(d,e,f);};DR=function(d){var{d,e,f,g,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=d.Elem();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=CP(e);$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=new DQ.ptr(f);$s=-1;return $methodVal($clone(g,DQ),"encode");}return;}var $f={$blk:DR,$c:true,$r,d,e,f,g,$s};return $f;};DS.ptr.prototype.encode=function(d,e,f){var{d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$deferred,$r,$c}=$restore(this,{d,e,f});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);g=this;if($clone(e,L.Value).IsNil()){$s=1;continue;}$s=2;continue;case 1:h=d.Buffer.WriteString("null");$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;$s=4;case 4:return;case 2:d.ptrLevel=d.ptrLevel+(1)>>>0;if(d.ptrLevel>1000){$s=5;continue;}$s=6;continue;case 5:i=$clone(e,L.Value).Interface();$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=(l=$mapIndex(d.ptrSeen,$emptyInterface.keyFor(j)),l!==undefined?[l.v,true]:[new FK.ptr(),false]);m=k[1];if(m){$s=8;continue;}$s=9;continue;case 8:n=J.Sprintf("encountered a cycle via %s",new EV([$clone(e,L.Value).Type()]));$s=10;case 10:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$r=d.error(new CC.ptr($clone(e,L.Value),n));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:o=j;(d.ptrSeen||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(o),{k:o,v:new FK.ptr()});$deferred.push([function(p,q){$mapDelete(p,$emptyInterface.keyFor(q));},[d.ptrSeen,j]]);case 6:r=d;s=$clone(e,L.Value).Elem();$s=12;case 12:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=$clone(s,L.Value);u=$clone(f,CL);$r=g.elemEnc(r,t,u);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d.ptrLevel=d.ptrLevel-(1)>>>0;$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:DS.ptr.prototype.encode,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$deferred};return $f;}}};DS.prototype.encode=function(d,e,f){return this.$val.encode(d,e,f);};DT=function(d){var{d,e,f,g,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=d.Elem();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=CP(e);$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=new DS.ptr(f);$s=-1;return $methodVal($clone(g,DS),"encode");}return;}var $f={$blk:DT,$c:true,$r,d,e,f,g,$s};return $f;};DU.ptr.prototype.encode=function(d,e,f){var{d,e,f,g,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=this;if($clone(e,L.Value).CanAddr()){$s=1;continue;}$s=2;continue;case 1:$r=g.canAddrEnc(d,$clone(e,L.Value),$clone(f,CL));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=3;continue;case 2:$r=g.elseEnc(d,$clone(e,L.Value),$clone(f,CL));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return;}return;}var $f={$blk:DU.ptr.prototype.encode,$c:true,$r,d,e,f,g,$s};return $f;};DU.prototype.encode=function(d,e,f){return this.$val.encode(d,e,f);};DV=function(d,e){var d,e,f;f=new DU.ptr(d,e);return $methodVal($clone(f,DU),"encode");};DW=function(d){var d,e,f,g,h;if(d===""){return false;}e=d;f=0;while(true){if(!(f?@[]^_{|}~ ",h)){}else if(!N.IsLetter(h)&&!N.IsDigit(h)){return false;}f+=g[1];}return true;};DX=function(d,e){var{d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{d,e});$s=$s||0;s:while(true){switch($s){case 0:f=e;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);i=d.Kind();$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(i===22){$s=3;continue;}$s=4;continue;case 3:j=d.Elem();$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}d=j;case 4:k=d.Field(h);$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}d=k.Type;g++;$s=1;continue;case 2:$s=-1;return d;}return;}var $f={$blk:DX,$c:true,$r,d,e,f,g,h,i,j,k,$s};return $f;};DY.ptr.prototype.resolve=function(){var{d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;if($clone(d.k,L.Value).Kind()===24){$s=1;continue;}$s=2;continue;case 1:e=$clone(d.k,L.Value).String();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d.ks=e;$s=-1;return $ifaceNil;case 2:g=$clone(d.k,L.Value).Interface();$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=$assertType(g,H.TextMarshaler,true);h=f[0];i=f[1];if(i){$s=5;continue;}$s=6;continue;case 5:if(($clone(d.k,L.Value).Kind()===22)&&$clone(d.k,L.Value).IsNil()){$s=-1;return $ifaceNil;}k=h.MarshalText();$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];d.ks=($bytesToString(l));$s=-1;return m;case 6:n=$clone(d.k,L.Value).Kind();if((n===(2))||(n===(3))||(n===(4))||(n===(5))||(n===(6))){d.ks=F.FormatInt($clone(d.k,L.Value).Int(),10);$s=-1;return $ifaceNil;}else if((n===(7))||(n===(8))||(n===(9))||(n===(10))||(n===(11))||(n===(12))){d.ks=F.FormatUint($clone(d.k,L.Value).Uint(),10);$s=-1;return $ifaceNil;}$panic(new $String("unexpected map key type"));$s=-1;return $ifaceNil;}return;}var $f={$blk:DY.ptr.prototype.resolve,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};DY.prototype.resolve=function(){return this.$val.resolve();};CG.ptr.prototype.string=function(d,e){var{aa,ab,ac,ad,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;g=f.Buffer.WriteByte(34);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;h=0;i=0;case 2:if(!(i=S.length)?($throwRuntimeError("index out of range"),undefined):S[j])||(!e&&((j<0||j>=R.length)?($throwRuntimeError("index out of range"),undefined):R[j]))){i=i+(1)>>0;$s=2;continue;}if(h>>4<<24>>>24)));$s=22;case 22:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;t=f.Buffer.WriteByte(CF.charCodeAt(((j&15)>>>0)));$s=23;case 23:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t;case 16:case 10:i=i+(1)>>0;h=i;$s=2;continue;case 5:u=B.DecodeRuneInString($substring(d,i));v=u[0];w=u[1];if((v===65533)&&(w===1)){$s=24;continue;}$s=25;continue;case 24:if(h>0;h=i;$s=2;continue;case 25:if((v===8232)||(v===8233)){$s=30;continue;}$s=31;continue;case 30:if(h>0;h=i;$s=2;continue;case 31:i=i+(w)>>0;$s=2;continue;case 3:if(h=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+i]);if(j<128){$s=4;continue;}$s=5;continue;case 4:if(((j<0||j>=S.length)?($throwRuntimeError("index out of range"),undefined):S[j])||(!e&&((j<0||j>=R.length)?($throwRuntimeError("index out of range"),undefined):R[j]))){i=i+(1)>>0;$s=2;continue;}if(h>>4<<24>>>24)));$s=22;case 22:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;t=f.Buffer.WriteByte(CF.charCodeAt(((j&15)>>>0)));$s=23;case 23:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t;case 16:case 10:i=i+(1)>>0;h=i;$s=2;continue;case 5:u=B.DecodeRune($subslice(d,i));v=u[0];w=u[1];if((v===65533)&&(w===1)){$s=24;continue;}$s=25;continue;case 24:if(h>0;h=i;$s=2;continue;case 25:if((v===8232)||(v===8233)){$s=30;continue;}$s=31;continue;case 30:if(h>0;h=i;$s=2;continue;case 31:i=i+(w)>>0;$s=2;continue;case 3:if(h=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]),DZ);h=$clone(((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]),DZ);DZ.copy(((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]),g);DZ.copy(((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]),h);};$ptrType(EA).prototype.Swap=function(d,e){return this.$get().Swap(d,e);};EA.prototype.Less=function(d,e){var d,e,f,g,h,i,j,k,l;f=this;g=((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]).index;h=0;while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if(i>=((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]).index.$length){return false;}if(!((j===(k=((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]).index,((i<0||i>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+i]))))){return j<(l=((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]).index,((i<0||i>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+i]));}h++;}return((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]).index.$length<((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]).index.$length;};$ptrType(EA).prototype.Less=function(d,e){return this.$get().Less(d,e);};EB=function(d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=[e];f=[f];g=new FJ([]);h=new FJ([new DZ.ptr("",FA.nil,$throwNilPointerError,"","",false,EX.nil,d,false,false,$throwNilPointerError)]);i=false;j=false;k=i;l=j;m=$makeMap(L.Type.keyFor,[]);e[0]=FJ.nil;f[0]=new C.Buffer.ptr(FA.nil,0,0);case 1:if(!(h.$length>0)){$s=2;continue;}n=h;o=$subslice(g,0,0);g=n;h=o;p=l;q=$makeMap(L.Type.keyFor,[]);k=p;l=q;r=g;s=0;case 3:if(!(s=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]),DZ);if((u=$mapIndex(m,L.Type.keyFor(t.typ)),u!==undefined?u.v:false)){s++;$s=3;continue;}v=t.typ;(m||$throwRuntimeError("assignment to entry in nil map")).set(L.Type.keyFor(v),{k:v,v:true});w=0;case 5:x=t.typ.NumField();$s=7;case 7:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}if(!(w>0;$s=5;continue;case 17:$s=11;continue;case 10:w=w+(1)>>0;$s=5;continue;case 11:af=new L.StructTag(z.Tag).Get("json");if(af==="-"){w=w+(1)>>0;$s=5;continue;}ag=Q(af);ah=ag[0];ai=ag[1];if(!DW(ah)){ah="";}aj=$makeSlice(EX,(t.index.$length+1>>0));$copySlice(aj,t.index);(ak=t.index.$length,((ak<0||ak>=aj.$length)?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+ak]=w));al=z.Type;an=al.Name();$s=23;case 23:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}if(!(an==="")){am=false;$s=22;continue s;}ao=al.Kind();$s=24;case 24:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}am=ao===22;case 22:if(am){$s=20;continue;}$s=21;continue;case 20:ap=al.Elem();$s=25;case 25:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}al=ap;case 21:aq=false;if(new P(ai).Contains("string")){$s=26;continue;}$s=27;continue;case 26:ar=al.Kind();$s=29;case 29:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=ar;if((as===(1))||(as===(2))||(as===(3))||(as===(4))||(as===(5))||(as===(6))||(as===(7))||(as===(8))||(as===(9))||(as===(10))||(as===(11))||(as===(12))||(as===(13))||(as===(14))||(as===(24))){aq=true;}case 28:case 27:if(!(ah==="")||!z.Anonymous){at=true;$s=32;continue s;}au=al.Kind();$s=33;case 33:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}at=!((au===25));case 32:if(at){$s=30;continue;}$s=31;continue;case 30:av=!(ah==="");if(ah===""){ah=z.Name;}aw=new DZ.ptr(ah,FA.nil,$throwNilPointerError,"","",av,aj,al,new P(ai).Contains("omitempty"),aq,$throwNilPointerError);aw.nameBytes=(new FA($stringToBytes(aw.name)));aw.equalFold=BT(aw.nameBytes);f[0].Reset();ax=f[0].WriteString("\"");$s=34;case 34:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ax;$r=BZ(f[0],aw.nameBytes);$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ay=f[0].WriteString("\":");$s=36;case 36:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}ay;aw.nameEscHTML=f[0].String();aw.nameNonEsc="\""+aw.name+"\":";e[0]=$append(e[0],aw);if((az=$mapIndex(k,L.Type.keyFor(t.typ)),az!==undefined?az.v:0)>1){e[0]=$append(e[0],(ba=e[0].$length-1>>0,((ba<0||ba>=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+ba])));}w=w+(1)>>0;$s=5;continue;case 31:bb=al;(l||$throwRuntimeError("assignment to entry in nil map")).set(L.Type.keyFor(bb),{k:bb,v:(bc=$mapIndex(l,L.Type.keyFor(al)),bc!==undefined?bc.v:0)+(1)>>0});if((bd=$mapIndex(l,L.Type.keyFor(al)),bd!==undefined?bd.v:0)===1){$s=37;continue;}$s=38;continue;case 37:be=al.Name();$s=39;case 39:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}h=$append(h,new DZ.ptr(be,FA.nil,$throwNilPointerError,"","",false,aj,al,false,false,$throwNilPointerError));case 38:w=w+(1)>>0;$s=5;continue;case 6:s++;$s=3;continue;case 4:$s=1;continue;case 2:$r=M.Slice(e[0],(function(e,f){return function(bf,bg){var bf,bg,bh;bh=e[0];if(!(((bf<0||bf>=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bf]).name===((bg<0||bg>=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bg]).name)){return((bf<0||bf>=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bf]).name<((bg<0||bg>=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bg]).name;}if(!((((bf<0||bf>=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bf]).index.$length===((bg<0||bg>=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bg]).index.$length))){return((bf<0||bf>=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bf]).index.$length<((bg<0||bg>=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bg]).index.$length;}if(!(((bf<0||bf>=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bf]).tag===((bg<0||bg>=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bg]).tag)){return((bf<0||bf>=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bf]).tag;}return($convertSliceType(bh,EA)).Less(bf,bg);};})(e,f));$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bf=$subslice(e[0],0,0);bg=0;bh=0;bi=bg;bj=bh;while(true){if(!(bj=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+bj]),DZ);bl=bk.name;bi=1;while(true){if(!((bj+bi>>0)>0,((bm<0||bm>=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+bm])),DZ);if(!(bn.name===bl)){break;}bi=bi+(1)>>0;}if(bi===1){bf=$append(bf,bk);bj=bj+(bi)>>0;continue;}bo=EC($subslice(e[0],bj,(bj+bi>>0)));bp=$clone(bo[0],DZ);bq=bo[1];if(bq){bf=$append(bf,bp);}bj=bj+(bi)>>0;}e[0]=bf;$r=M.Sort(($convertSliceType(e[0],EA)));$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}br=e[0];bs=0;case 42:if(!(bs=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+bt]);bv=DX(d,bu.index);$s=44;case 44:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}bw=CP(bv);$s=45;case 45:if($c){$c=false;bw=bw.$blk();}if(bw&&bw.$blk!==undefined){break s;}bu.encoder=bw;bs++;$s=42;continue;case 43:by=(bx=e[0].$length,((bx<0||bx>2147483647)?$throwRuntimeError("makemap: size out of range"):new $global.Map()));bz=e[0];ca=0;while(true){if(!(ca=bz.$length)?($throwRuntimeError("index out of range"),undefined):bz.$array[bz.$offset+ca]),DZ);cd=cc.name;(by||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(cd),{k:cd,v:cb});ca++;}$s=-1;return new DJ.ptr(e[0],by);}return;}var $f={$blk:EB,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};EC=function(d){var d;if(d.$length>1&&((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]).index.$length===(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1]).index.$length)&&(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]).tag===(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1]).tag){return[new DZ.ptr("",FA.nil,$throwNilPointerError,"","",false,EX.nil,$ifaceNil,false,false,$throwNilPointerError),false];}return[(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]),true];};EE=function(d){var{d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=ED.Load(d);f=e[0];g=e[1];if(g){$s=-1;return $assertType(f,DJ);}i=d;k=EB(d);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=(j=k,new j.constructor.elem(j));m=ED.LoadOrStore(i,l);$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}h=m;n=h[0];$s=-1;return $assertType(n,DJ);}return;}var $f={$blk:EE,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};EH.ptr.prototype.Error=function(){var{d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(!(d.Struct==="")||!(d.Field==="")){$s=1;continue;}$s=2;continue;case 1:e=d.Type.String();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f="json: cannot unmarshal "+d.Value+" into Go struct field "+d.Struct+"."+d.Field+" of type "+e;$s=4;case 4:return f;case 2:g=d.Type.String();$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h="json: cannot unmarshal "+d.Value+" into Go value of type "+g;$s=6;case 6:return h;}return;}var $f={$blk:EH.ptr.prototype.Error,$c:true,$r,d,e,f,g,h,$s};return $f;};EH.prototype.Error=function(){return this.$val.Error();};EJ.ptr.prototype.Error=function(){var{d,e,f,g,h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;if($interfaceIsEqual(d.Type,$ifaceNil)){$s=-1;return"json: Unmarshal(nil)";}e=d.Type.Kind();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}if(!((e===22))){$s=1;continue;}$s=2;continue;case 1:f=d.Type.String();$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g="json: Unmarshal(non-pointer "+f+")";$s=5;case 5:return g;case 2:h=d.Type.String();$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i="json: Unmarshal(nil "+h+")";$s=7;case 7:return i;}return;}var $f={$blk:EJ.ptr.prototype.Error,$c:true,$r,d,e,f,g,h,i,$s};return $f;};EJ.prototype.Error=function(){return this.$val.Error();};EM.ptr.prototype.unmarshal=function(d){var{d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=L.ValueOf(d);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!(($clone(g,L.Value).Kind()===22))||$clone(g,L.Value).IsNil()){$s=-1;return new EJ.ptr(L.TypeOf(d));}e.scan.reset();$r=e.scanWhile(9);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=e.value($clone(g,L.Value));$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if(!($interfaceIsEqual(i,$ifaceNil))){$s=4;continue;}$s=5;continue;case 4:j=e.addErrorContext(i);$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=7;case 7:return k;case 5:$s=-1;return e.savedError;}return;}var $f={$blk:EM.ptr.prototype.unmarshal,$c:true,$r,d,e,f,g,h,i,j,k,$s};return $f;};EM.prototype.unmarshal=function(d){return this.$val.unmarshal(d);};EK.prototype.String=function(){var d;d=this.$val;return(d);};$ptrType(EK).prototype.String=function(){return new EK(this.$get()).String();};EK.prototype.Float64=function(){var d;d=this.$val;return F.ParseFloat((d),64);};$ptrType(EK).prototype.Float64=function(){return new EK(this.$get()).Float64();};EK.prototype.Int64=function(){var d;d=this.$val;return F.ParseInt((d),10,64);};$ptrType(EK).prototype.Int64=function(){return new EK(this.$get()).Int64();};EM.ptr.prototype.readIndex=function(){var d;d=this;return d.off-1>>0;};EM.prototype.readIndex=function(){return this.$val.readIndex();};EM.ptr.prototype.init=function(d){var d,e;e=this;e.data=d;e.off=0;e.savedError=$ifaceNil;if(!(e.errorContext===FC.nil)){e.errorContext.Struct=$ifaceNil;e.errorContext.FieldStack=$subslice(e.errorContext.FieldStack,0,0);}return e;};EM.prototype.init=function(d){return this.$val.init(d);};EM.ptr.prototype.saveError=function(d){var{d,e,f,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if($interfaceIsEqual(e.savedError,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:f=e.addErrorContext(d);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e.savedError=f;case 2:$s=-1;return;}return;}var $f={$blk:EM.ptr.prototype.saveError,$c:true,$r,d,e,f,$s};return $f;};EM.prototype.saveError=function(d){return this.$val.saveError(d);};EM.ptr.prototype.addErrorContext=function(d){var{d,e,f,g,h,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=this;if(!(e.errorContext===FC.nil)&&(!($interfaceIsEqual(e.errorContext.Struct,$ifaceNil))||e.errorContext.FieldStack.$length>0)){$s=1;continue;}$s=2;continue;case 1:f=d;if($assertType(f,FN,true)[1]){$s=3;continue;}$s=4;continue;case 3:g=f.$val;h=e.errorContext.Struct.Name();$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g.Struct=h;g.Field=A.Join(e.errorContext.FieldStack,".");case 4:case 2:$s=-1;return d;}return;}var $f={$blk:EM.ptr.prototype.addErrorContext,$c:true,$r,d,e,f,g,h,$s};return $f;};EM.prototype.addErrorContext=function(d){return this.$val.addErrorContext(d);};EM.ptr.prototype.skip=function(){var{d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.scan;f=d.data;g=d.off;h=e;i=f;j=g;k=h.parseState.$length;case 1:l=h.step(h,((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]));$s=3;case 3:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;j=j+(1)>>0;if(h.parseState.$length=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f])));$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}d.opcode=g;d.off=d.off+(1)>>0;$s=3;continue;case 2:h=d.scan.eof();$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}d.opcode=h;d.off=d.data.$length+1>>0;case 3:$s=-1;return;}return;}var $f={$blk:EM.ptr.prototype.scanNext,$c:true,$r,d,e,f,g,h,$s};return $f;};EM.prototype.scanNext=function(){return this.$val.scanNext();};EM.ptr.prototype.scanWhile=function(d){var{d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=e.scan;g=e.data;h=e.off;i=f;j=g;k=h;case 1:if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]));$s=3;case 3:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;k=k+(1)>>0;if(!((m===d))){e.opcode=m;e.off=k;$s=-1;return;}$s=1;continue;case 2:e.off=j.$length+1>>0;n=e.scan.eof();$s=4;case 4:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}e.opcode=n;$s=-1;return;}return;}var $f={$blk:EM.ptr.prototype.scanWhile,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};EM.prototype.scanWhile=function(d){return this.$val.scanWhile(d);};EM.ptr.prototype.rescanLiteral=function(){var d,e,f,g,h,i,j,k,l;d=this;e=d.data;f=d.off;g=e;h=f;Switch:switch(0){default:j=(i=h-1>>0,((i<0||i>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+i]));if(j===(34)){while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if(k===(92)){h=h+(1)>>0;}else if(k===(34)){h=h+(1)>>0;break Switch;}h=h+(1)>>0;}}else if((j===(48))||(j===(49))||(j===(50))||(j===(51))||(j===(52))||(j===(53))||(j===(54))||(j===(55))||(j===(56))||(j===(57))||(j===(45))){while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if((l===(48))||(l===(49))||(l===(50))||(l===(51))||(l===(52))||(l===(53))||(l===(54))||(l===(55))||(l===(56))||(l===(57))||(l===(46))||(l===(101))||(l===(69))||(l===(43))||(l===(45))){}else{break Switch;}h=h+(1)>>0;}}else if(j===(116)){h=h+(3)>>0;}else if(j===(102)){h=h+(4)>>0;}else if(j===(110)){h=h+(3)>>0;}}if(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]));}else{d.opcode=10;}d.off=h+1>>0;};EM.prototype.rescanLiteral=function(){return this.$val.rescanLiteral();};EM.ptr.prototype.value=function(d){var{d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=e.opcode;if(f===(6)){$s=2;continue;}if(f===(2)){$s=3;continue;}if(f===(1)){$s=4;continue;}$s=5;continue;case 2:if($clone(d,L.Value).IsValid()){$s=7;continue;}$s=8;continue;case 7:g=e.array($clone(d,L.Value));$s=10;case 10:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return h;}$s=9;continue;case 8:$r=e.skip();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:$r=e.scanNext();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=6;continue;case 3:if($clone(d,L.Value).IsValid()){$s=13;continue;}$s=14;continue;case 13:i=e.object($clone(d,L.Value));$s=16;case 16:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}$s=15;continue;case 14:$r=e.skip();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 15:$r=e.scanNext();$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=6;continue;case 4:k=e.readIndex();e.rescanLiteral();if($clone(d,L.Value).IsValid()){$s=19;continue;}$s=20;continue;case 19:l=e.literalStore($subslice(e.data,k,e.readIndex()),$clone(d,L.Value),false);$s=21;case 21:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;if(!($interfaceIsEqual(m,$ifaceNil))){$s=-1;return m;}case 20:$s=6;continue;case 5:$panic(new $String("JSON decoder out of sync - data changing underfoot?"));case 6:case 1:$s=-1;return $ifaceNil;}return;}var $f={$blk:EM.ptr.prototype.value,$c:true,$r,d,e,f,g,h,i,j,k,l,m,$s};return $f;};EM.prototype.value=function(d){return this.$val.value(d);};EM.ptr.prototype.valueQuoted=function(){var{d,e,f,g,h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.opcode;if((e===(6))||(e===(2))){$s=2;continue;}if(e===(1)){$s=3;continue;}$s=4;continue;case 2:$r=d.skip();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.scanNext();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 3:f=d.literalInterface();$s=8;case 8:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=g;if(h===$ifaceNil||$assertType(h,$String,true)[1]){$s=-1;return g;}$s=5;continue;case 4:$panic(new $String("JSON decoder out of sync - data changing underfoot?"));case 5:case 1:$s=-1;return(i=new EN.ptr(),new i.constructor.elem(i));}return;}var $f={$blk:EM.ptr.prototype.valueQuoted,$c:true,$r,d,e,f,g,h,i,$s};return $f;};EM.prototype.valueQuoted=function(){return this.$val.valueQuoted();};EO=function(d,e){var{aa,ab,ac,ad,ae,af,ag,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{d,e});$s=$s||0;s:while(true){switch($s){case 0:f=d;g=false;if(!(!(($clone(d,L.Value).Kind()===22)))){h=false;$s=3;continue s;}i=$clone(d,L.Value).Type().Name();$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=!(i==="");case 3:if(h&&$clone(d,L.Value).CanAddr()){$s=1;continue;}$s=2;continue;case 1:g=true;d=$clone(d,L.Value).Addr();case 2:case 5:if(($clone(d,L.Value).Kind()===20)&&!$clone(d,L.Value).IsNil()){$s=7;continue;}$s=8;continue;case 7:j=$clone(d,L.Value).Elem();$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!(($clone(k,L.Value).Kind()===22)&&!$clone(k,L.Value).IsNil())){l=false;$s=12;continue s;}if(!e){m=true;$s=13;continue s;}n=$clone(k,L.Value).Elem();$s=14;case 14:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=$clone(n,L.Value).Kind();$s=15;case 15:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}m=o===22;case 13:l=m;case 12:if(l){$s=10;continue;}$s=11;continue;case 10:g=false;d=k;$s=5;continue;case 11:case 8:if(!(($clone(d,L.Value).Kind()===22))){$s=6;continue;}if(e&&$clone(d,L.Value).CanSet()){$s=6;continue;}q=$clone(d,L.Value).Elem();$s=19;case 19:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=$clone(q,L.Value).Kind();$s=20;case 20:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}if(!(r===20)){p=false;$s=18;continue s;}s=$clone(d,L.Value).Elem();$s=21;case 21:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=$clone(s,L.Value).Elem();$s=22;case 22:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}p=$equal(t,d,L.Value);case 18:if(p){$s=16;continue;}$s=17;continue;case 16:u=$clone(d,L.Value).Elem();$s=23;case 23:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}d=u;$s=6;continue;case 17:if($clone(d,L.Value).IsNil()){$s=24;continue;}$s=25;continue;case 24:v=$clone(d,L.Value).Type().Elem();$s=26;case 26:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=L.New(v);$s=27;case 27:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}$r=$clone(d,L.Value).Set($clone(w,L.Value));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 25:x=$clone(d,L.Value).Type().NumMethod();$s=31;case 31:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}if(x>0&&$clone(d,L.Value).CanInterface()){$s=29;continue;}$s=30;continue;case 29:z=$clone(d,L.Value).Interface();$s=32;case 32:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}y=$assertType(z,EG,true);aa=y[0];ab=y[1];if(ab){$s=-1;return[aa,$ifaceNil,new L.Value.ptr(FO.nil,0,0)];}if(!e){$s=33;continue;}$s=34;continue;case 33:ad=$clone(d,L.Value).Interface();$s=35;case 35:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,H.TextUnmarshaler,true);ae=ac[0];af=ac[1];if(af){$s=-1;return[$ifaceNil,ae,new L.Value.ptr(FO.nil,0,0)];}case 34:case 30:if(g){$s=36;continue;}$s=37;continue;case 36:d=f;g=false;$s=38;continue;case 37:ag=$clone(d,L.Value).Elem();$s=39;case 39:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}d=ag;case 38:$s=5;continue;case 6:$s=-1;return[$ifaceNil,$ifaceNil,d];}return;}var $f={$blk:EO,$c:true,$r,aa,ab,ac,ad,ae,af,ag,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};EM.ptr.prototype.array=function(d){var{aa,ab,ac,ad,ae,af,ag,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=this;g=EO($clone(d,L.Value),false);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];j=f[2];if(!($interfaceIsEqual(h,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:k=e.readIndex();$r=e.skip();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=h.UnmarshalJSON($subslice(e.data,k,e.off));$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=6;case 6:return m;case 3:if(!($interfaceIsEqual(i,$ifaceNil))){$s=7;continue;}$s=8;continue;case 7:$r=e.saveError(new EH.ptr("array",$clone(d,L.Value).Type(),(new $Int64(0,e.off)),"",""));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.skip();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 8:d=j;n=$clone(d,L.Value).Kind();if(n===(20)){$s=12;continue;}if((n===(17))||(n===(23))){$s=13;continue;}$s=14;continue;case 12:if($clone(d,L.Value).NumMethod()===0){$s=16;continue;}$s=17;continue;case 16:o=e.arrayInterface();$s=18;case 18:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=L.ValueOf(p);$s=19;case 19:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}$r=$clone(d,L.Value).Set($clone(q,L.Value));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 17:$r=e.saveError(new EH.ptr("array",$clone(d,L.Value).Type(),(new $Int64(0,e.off)),"",""));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.skip();$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 13:$s=11;continue;$s=15;continue;case 14:$r=e.saveError(new EH.ptr("array",$clone(d,L.Value).Type(),(new $Int64(0,e.off)),"",""));$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.skip();$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 15:case 11:r=0;case 25:$r=e.scanWhile(9);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(e.opcode===8){$s=26;continue;}if($clone(d,L.Value).Kind()===23){$s=28;continue;}$s=29;continue;case 28:if(r>=$clone(d,L.Value).Cap()){$s=30;continue;}$s=31;continue;case 30:t=$clone(d,L.Value).Cap()+(s=$clone(d,L.Value).Cap()/2,(s===s&&s!==1/0&&s!==-1/0)?s>>0:$throwRuntimeError("integer divide by zero"))>>0;if(t<4){t=4;}u=L.MakeSlice($clone(d,L.Value).Type(),$clone(d,L.Value).Len(),t);$s=32;case 32:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;w=L.Copy($clone(v,L.Value),$clone(d,L.Value));$s=33;case 33:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}w;$r=$clone(d,L.Value).Set($clone(v,L.Value));$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 31:if(r>=$clone(d,L.Value).Len()){$clone(d,L.Value).SetLen(r+1>>0);}case 29:if(r<$clone(d,L.Value).Len()){$s=35;continue;}$s=36;continue;case 35:x=$clone(d,L.Value).Index(r);$s=38;case 38:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=e.value($clone(x,L.Value));$s=39;case 39:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;if(!($interfaceIsEqual(z,$ifaceNil))){$s=-1;return z;}$s=37;continue;case 36:aa=e.value(new L.Value.ptr(FO.nil,0,0));$s=40;case 40:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa;if(!($interfaceIsEqual(ab,$ifaceNil))){$s=-1;return ab;}case 37:r=r+(1)>>0;if(e.opcode===9){$s=41;continue;}$s=42;continue;case 41:$r=e.scanWhile(9);$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 42:if(e.opcode===8){$s=26;continue;}if(!((e.opcode===7))){$panic(new $String("JSON decoder out of sync - data changing underfoot?"));}$s=25;continue;case 26:if(r<$clone(d,L.Value).Len()){$s=44;continue;}$s=45;continue;case 44:if($clone(d,L.Value).Kind()===17){$s=46;continue;}$s=47;continue;case 46:ac=$clone(d,L.Value).Type().Elem();$s=49;case 49:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=L.Zero(ac);$s=50;case 50:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;case 51:if(!(r<$clone(d,L.Value).Len())){$s=52;continue;}af=$clone(d,L.Value).Index(r);$s=53;case 53:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}$r=$clone(af,L.Value).Set($clone(ae,L.Value));$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}r=r+(1)>>0;$s=51;continue;case 52:$s=48;continue;case 47:$clone(d,L.Value).SetLen(r);case 48:case 45:if((r===0)&&($clone(d,L.Value).Kind()===23)){$s=55;continue;}$s=56;continue;case 55:ag=L.MakeSlice($clone(d,L.Value).Type(),0,0);$s=57;case 57:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}$r=$clone(d,L.Value).Set($clone(ag,L.Value));$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 56:$s=-1;return $ifaceNil;}return;}var $f={$blk:EM.ptr.prototype.array,$c:true,$r,aa,ab,ac,ad,ae,af,ag,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};EM.prototype.array=function(d){return this.$val.array(d);};EM.ptr.prototype.object=function(d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:e=this;g=EO($clone(d,L.Value),false);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];j=f[2];if(!($interfaceIsEqual(h,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:k=e.readIndex();$r=e.skip();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=h.UnmarshalJSON($subslice(e.data,k,e.off));$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=6;case 6:return m;case 3:if(!($interfaceIsEqual(i,$ifaceNil))){$s=7;continue;}$s=8;continue;case 7:$r=e.saveError(new EH.ptr("object",$clone(d,L.Value).Type(),(new $Int64(0,e.off)),"",""));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.skip();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 8:d=j;n=$clone(d,L.Value).Type();if(($clone(d,L.Value).Kind()===20)&&($clone(d,L.Value).NumMethod()===0)){$s=11;continue;}$s=12;continue;case 11:o=e.objectInterface();$s=13;case 13:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=L.ValueOf(new FP(p));$s=14;case 14:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}$r=$clone(d,L.Value).Set($clone(q,L.Value));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 12:r=new DJ.ptr(FJ.nil,false);s=$clone(d,L.Value).Kind();if(s===(21)){$s=17;continue;}if(s===(25)){$s=18;continue;}$s=19;continue;case 17:t=n.Key();$s=22;case 22:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t.Kind();$s=23;case 23:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;if((v===(24))||(v===(2))||(v===(3))||(v===(4))||(v===(5))||(v===(6))||(v===(7))||(v===(8))||(v===(9))||(v===(10))||(v===(11))||(v===(12))){$s=24;continue;}w=n.Key();$s=27;case 27:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=L.PointerTo(w);$s=28;case 28:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x.Implements(EQ);$s=29;case 29:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}if(!y){$s=25;continue;}$s=26;continue;case 24:$s=26;continue;case 25:$r=e.saveError(new EH.ptr("object",n,(new $Int64(0,e.off)),"",""));$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.skip();$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 26:case 21:if($clone(d,L.Value).IsNil()){$s=32;continue;}$s=33;continue;case 32:z=L.MakeMap(n);$s=34;case 34:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}$r=$clone(d,L.Value).Set($clone(z,L.Value));$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 33:$s=20;continue;case 18:aa=EE(n);$s=36;case 36:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}DJ.copy(r,aa);$s=20;continue;case 19:$r=e.saveError(new EH.ptr("object",n,(new $Int64(0,e.off)),"",""));$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.skip();$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 20:case 16:ab=new L.Value.ptr(FO.nil,0,0);ac=new EL.ptr($ifaceNil,FQ.nil);if(!(e.errorContext===FC.nil)){EL.copy(ac,e.errorContext);}case 39:$r=e.scanWhile(9);$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(e.opcode===5){$s=40;continue;}if(!((e.opcode===1))){$panic(new $String("JSON decoder out of sync - data changing underfoot?"));}ad=e.readIndex();e.rescanLiteral();ae=$subslice(e.data,ad,e.readIndex());af=EU(ae);ag=af[0];ah=af[1];if(!ah){$panic(new $String("JSON decoder out of sync - data changing underfoot?"));}ai=new L.Value.ptr(FO.nil,0,0);aj=false;if($clone(d,L.Value).Kind()===21){$s=42;continue;}$s=43;continue;case 42:ak=n.Elem();$s=45;case 45:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak;if(!$clone(ab,L.Value).IsValid()){$s=46;continue;}$s=47;continue;case 46:am=$clone(L.New(al),L.Value).Elem();$s=49;case 49:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}ab=am;$s=48;continue;case 47:an=L.Zero(al);$s=50;case 50:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}$r=$clone(ab,L.Value).Set($clone(an,L.Value));$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 48:ai=ab;$s=44;continue;case 43:ao=FR.nil;ap=(aq=$mapIndex(r.nameIndex,$String.keyFor(($bytesToString(ag)))),aq!==undefined?[aq.v,true]:[0,false]);ar=ap[0];as=ap[1];if(as){$s=52;continue;}$s=53;continue;case 52:ao=(at=r.list,((ar<0||ar>=at.$length)?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+ar]));$s=54;continue;case 53:au=r.list;av=0;case 55:if(!(av=ax.$length)?($throwRuntimeError("index out of range"),undefined):ax.$array[ax.$offset+aw]));az=ay.equalFold(ay.nameBytes,ag);$s=59;case 59:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}if(az){$s=57;continue;}$s=58;continue;case 57:ao=ay;$s=56;continue;case 58:av++;$s=55;continue;case 56:case 54:if(!(ao===FR.nil)){$s=60;continue;}if(e.disallowUnknownFields){$s=61;continue;}$s=62;continue;case 60:ai=d;aj=ao.quoted;ba=ao.index;bb=0;case 63:if(!(bb=ba.$length)?($throwRuntimeError("index out of range"),undefined):ba.$array[ba.$offset+bb]);if($clone(ai,L.Value).Kind()===22){$s=65;continue;}$s=66;continue;case 65:if($clone(ai,L.Value).IsNil()){$s=67;continue;}$s=68;continue;case 67:if(!$clone(ai,L.Value).CanSet()){$s=69;continue;}$s=70;continue;case 69:bd=$clone(ai,L.Value).Type().Elem();$s=71;case 71:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=bd;bf=J.Errorf("json: cannot set embedded pointer to unexported struct: %v",new EV([be]));$s=72;case 72:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}$r=e.saveError(bf);$s=73;case 73:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ai=new L.Value.ptr(FO.nil,0,0);aj=false;$s=64;continue;case 70:bg=$clone(ai,L.Value).Type().Elem();$s=74;case 74:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=L.New(bg);$s=75;case 75:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}$r=$clone(ai,L.Value).Set($clone(bh,L.Value));$s=76;case 76:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 68:bi=$clone(ai,L.Value).Elem();$s=77;case 77:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}ai=bi;case 66:bj=$clone(ai,L.Value).Field(bc);$s=78;case 78:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}ai=bj;bb++;$s=63;continue;case 64:if(e.errorContext===FC.nil){e.errorContext=new EL.ptr($ifaceNil,FQ.nil);}e.errorContext.FieldStack=$append(e.errorContext.FieldStack,ao.name);e.errorContext.Struct=n;$s=62;continue;case 61:bk=J.Errorf("json: unknown field %q",new EV([ag]));$s=79;case 79:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}$r=e.saveError(bk);$s=80;case 80:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 62:case 44:if(e.opcode===9){$s=81;continue;}$s=82;continue;case 81:$r=e.scanWhile(9);$s=83;case 83:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 82:if(!((e.opcode===3))){$panic(new $String("JSON decoder out of sync - data changing underfoot?"));}$r=e.scanWhile(9);$s=84;case 84:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(aj){$s=85;continue;}$s=86;continue;case 85:bm=e.valueQuoted();$s=88;case 88:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bl=bm;if(bl===$ifaceNil){$s=89;continue;}if($assertType(bl,$String,true)[1]){$s=90;continue;}$s=91;continue;case 89:bn=bl;bq=e.literalStore(EP,$clone(ai,L.Value),false);$s=93;case 93:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}br=bq;if(!($interfaceIsEqual(br,$ifaceNil))){$s=-1;return br;}$s=92;continue;case 90:bo=bl.$val;bs=e.literalStore((new FA($stringToBytes(bo))),$clone(ai,L.Value),true);$s=94;case 94:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}bt=bs;if(!($interfaceIsEqual(bt,$ifaceNil))){$s=-1;return bt;}$s=92;continue;case 91:bp=bl;bu=J.Errorf("json: invalid use of ,string struct tag, trying to unmarshal unquoted value into %v",new EV([$clone(ai,L.Value).Type()]));$s=95;case 95:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}$r=e.saveError(bu);$s=96;case 96:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 92:$s=87;continue;case 86:bv=e.value($clone(ai,L.Value));$s=97;case 97:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}bw=bv;if(!($interfaceIsEqual(bw,$ifaceNil))){$s=-1;return bw;}case 87:if($clone(d,L.Value).Kind()===21){$s=98;continue;}$s=99;continue;case 98:bx=n.Key();$s=100;case 100:if($c){$c=false;bx=bx.$blk();}if(bx&&bx.$blk!==undefined){break s;}by=bx;bz=new L.Value.ptr(FO.nil,0,0);ca=L.PointerTo(by).Implements(EQ);$s=106;case 106:if($c){$c=false;ca=ca.$blk();}if(ca&&ca.$blk!==undefined){break s;}if(ca){$s=102;continue;}cb=by.Kind();$s=107;case 107:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}if((cb===24)){$s=103;continue;}$s=104;continue;case 102:bz=L.New(by);cc=e.literalStore(ae,$clone(bz,L.Value),true);$s=108;case 108:if($c){$c=false;cc=cc.$blk();}if(cc&&cc.$blk!==undefined){break s;}cd=cc;if(!($interfaceIsEqual(cd,$ifaceNil))){$s=-1;return cd;}ce=$clone(bz,L.Value).Elem();$s=109;case 109:if($c){$c=false;ce=ce.$blk();}if(ce&&ce.$blk!==undefined){break s;}bz=ce;$s=105;continue;case 103:cf=L.ValueOf(ag);$s=110;case 110:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}cg=$clone(cf,L.Value).Convert(by);$s=111;case 111:if($c){$c=false;cg=cg.$blk();}if(cg&&cg.$blk!==undefined){break s;}bz=cg;$s=105;continue;case 104:ch=by.Kind();$s=113;case 113:if($c){$c=false;ch=ch.$blk();}if(ch&&ch.$blk!==undefined){break s;}ci=ch;if((ci===(2))||(ci===(3))||(ci===(4))||(ci===(5))||(ci===(6))){$s=114;continue;}if((ci===(7))||(ci===(8))||(ci===(9))||(ci===(10))||(ci===(11))||(ci===(12))){$s=115;continue;}$s=116;continue;case 114:cj=($bytesToString(ag));ck=F.ParseInt(cj,10,64);cl=ck[0];cm=ck[1];if(!($interfaceIsEqual(cm,$ifaceNil))){cn=true;$s=120;continue s;}co=L.Zero(by);$s=121;case 121:if($c){$c=false;co=co.$blk();}if(co&&co.$blk!==undefined){break s;}cp=$clone(co,L.Value).OverflowInt(cl);$s=122;case 122:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}cn=cp;case 120:if(cn){$s=118;continue;}$s=119;continue;case 118:$r=e.saveError(new EH.ptr("number "+cj,by,(new $Int64(0,(ad+1>>0))),"",""));$s=123;case 123:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=112;continue;case 119:cq=L.ValueOf(cl);$s=124;case 124:if($c){$c=false;cq=cq.$blk();}if(cq&&cq.$blk!==undefined){break s;}cr=$clone(cq,L.Value).Convert(by);$s=125;case 125:if($c){$c=false;cr=cr.$blk();}if(cr&&cr.$blk!==undefined){break s;}bz=cr;$s=117;continue;case 115:cs=($bytesToString(ag));ct=F.ParseUint(cs,10,64);cu=ct[0];cv=ct[1];if(!($interfaceIsEqual(cv,$ifaceNil))){cw=true;$s=128;continue s;}cx=L.Zero(by);$s=129;case 129:if($c){$c=false;cx=cx.$blk();}if(cx&&cx.$blk!==undefined){break s;}cy=$clone(cx,L.Value).OverflowUint(cu);$s=130;case 130:if($c){$c=false;cy=cy.$blk();}if(cy&&cy.$blk!==undefined){break s;}cw=cy;case 128:if(cw){$s=126;continue;}$s=127;continue;case 126:$r=e.saveError(new EH.ptr("number "+cs,by,(new $Int64(0,(ad+1>>0))),"",""));$s=131;case 131:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=112;continue;case 127:cz=L.ValueOf(cu);$s=132;case 132:if($c){$c=false;cz=cz.$blk();}if(cz&&cz.$blk!==undefined){break s;}da=$clone(cz,L.Value).Convert(by);$s=133;case 133:if($c){$c=false;da=da.$blk();}if(da&&da.$blk!==undefined){break s;}bz=da;$s=117;continue;case 116:$panic(new $String("json: Unexpected key type"));case 117:case 112:case 105:case 101:if($clone(bz,L.Value).IsValid()){$s=134;continue;}$s=135;continue;case 134:$r=$clone(d,L.Value).SetMapIndex($clone(bz,L.Value),$clone(ai,L.Value));$s=136;case 136:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 135:case 99:if(e.opcode===9){$s=137;continue;}$s=138;continue;case 137:$r=e.scanWhile(9);$s=139;case 139:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 138:if(!(e.errorContext===FC.nil)){e.errorContext.FieldStack=$subslice(e.errorContext.FieldStack,0,ac.FieldStack.$length);e.errorContext.Struct=ac.Struct;}if(e.opcode===5){$s=40;continue;}if(!((e.opcode===4))){$panic(new $String("JSON decoder out of sync - data changing underfoot?"));}$s=39;continue;case 40:$s=-1;return $ifaceNil;}return;}var $f={$blk:EM.ptr.prototype.object,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};EM.prototype.object=function(d){return this.$val.object(d);};EM.ptr.prototype.convertNumber=function(d){var d,e,f,g,h;e=this;if(e.useNumber){return[new EK((d)),$ifaceNil];}f=F.ParseFloat(d,64);g=f[0];h=f[1];if(!($interfaceIsEqual(h,$ifaceNil))){return[$ifaceNil,new EH.ptr("number "+d,L.TypeOf(new $Float64(0)),(new $Int64(0,e.off)),"","")];}return[new $Float64(g),$ifaceNil];};EM.prototype.convertNumber=function(d){return this.$val.convertNumber(d);};EM.ptr.prototype.literalStore=function(d,e,f){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=this;if(d.$length===0){$s=1;continue;}$s=2;continue;case 1:h=J.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([d,$clone(e,L.Value).Type()]));$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=g.saveError(h);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 2:i=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])===110;k=EO($clone(e,L.Value),i);$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];n=j[2];if(!($interfaceIsEqual(l,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:o=l.UnmarshalJSON(d);$s=8;case 8:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;$s=9;case 9:return p;case 7:if(!($interfaceIsEqual(m,$ifaceNil))){$s=10;continue;}$s=11;continue;case 10:if(!(((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])===34))){$s=12;continue;}$s=13;continue;case 12:if(f){$s=14;continue;}$s=15;continue;case 14:q=J.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([d,$clone(e,L.Value).Type()]));$s=16;case 16:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}$r=g.saveError(q);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 15:r="number";s=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]);if(s===(110)){r="null";}else if((s===(116))||(s===(102))){r="bool";}$r=g.saveError(new EH.ptr(r,$clone(e,L.Value).Type(),(new $Int64(0,g.readIndex())),"",""));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;case 13:t=EU(d);u=t[0];v=t[1];if(!v){$s=19;continue;}$s=20;continue;case 19:if(f){$s=21;continue;}$s=22;continue;case 21:w=J.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([d,$clone(e,L.Value).Type()]));$s=23;case 23:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;$s=24;case 24:return x;case 22:$panic(new $String("JSON decoder out of sync - data changing underfoot?"));case 20:y=m.UnmarshalText(u);$s=25;case 25:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;$s=26;case 26:return z;case 11:e=n;aa=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]);ab=aa;if(ab===(110)){$s=28;continue;}if((ab===(116))||(ab===(102))){$s=29;continue;}if(ab===(34)){$s=30;continue;}$s=31;continue;case 28:if(f&&!(($bytesToString(d))==="null")){$s=33;continue;}$s=34;continue;case 33:ac=J.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([d,$clone(e,L.Value).Type()]));$s=35;case 35:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}$r=g.saveError(ac);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 34:ad=$clone(e,L.Value).Kind();if((ad===(20))||(ad===(22))||(ad===(21))||(ad===(23))){$s=38;continue;}$s=39;continue;case 38:ae=L.Zero($clone(e,L.Value).Type());$s=40;case 40:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}$r=$clone(e,L.Value).Set($clone(ae,L.Value));$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 39:case 37:$s=32;continue;case 29:af=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])===116;if(f&&!(($bytesToString(d))==="true")&&!(($bytesToString(d))==="false")){$s=42;continue;}$s=43;continue;case 42:ag=J.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([d,$clone(e,L.Value).Type()]));$s=44;case 44:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}$r=g.saveError(ag);$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=27;continue;case 43:ah=$clone(e,L.Value).Kind();if(ah===(1)){$s=47;continue;}if(ah===(20)){$s=48;continue;}if(f){$s=49;continue;}$s=50;continue;case 47:$clone(e,L.Value).SetBool(af);$s=51;continue;case 48:if($clone(e,L.Value).NumMethod()===0){$s=52;continue;}$s=53;continue;case 52:ai=L.ValueOf(new $Bool(af));$s=55;case 55:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}$r=$clone(e,L.Value).Set($clone(ai,L.Value));$s=56;case 56:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=54;continue;case 53:$r=g.saveError(new EH.ptr("bool",$clone(e,L.Value).Type(),(new $Int64(0,g.readIndex())),"",""));$s=57;case 57:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 54:$s=51;continue;case 49:aj=J.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([d,$clone(e,L.Value).Type()]));$s=58;case 58:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}$r=g.saveError(aj);$s=59;case 59:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=51;continue;case 50:$r=g.saveError(new EH.ptr("bool",$clone(e,L.Value).Type(),(new $Int64(0,g.readIndex())),"",""));$s=60;case 60:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 51:case 46:$s=32;continue;case 30:ak=EU(d);al=ak[0];am=ak[1];if(!am){$s=61;continue;}$s=62;continue;case 61:if(f){$s=63;continue;}$s=64;continue;case 63:an=J.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([d,$clone(e,L.Value).Type()]));$s=65;case 65:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}ao=an;$s=66;case 66:return ao;case 64:$panic(new $String("JSON decoder out of sync - data changing underfoot?"));case 62:ap=$clone(e,L.Value).Kind();if(ap===(23)){$s=68;continue;}if(ap===(24)){$s=69;continue;}if(ap===(20)){$s=70;continue;}$s=71;continue;case 68:aq=$clone(e,L.Value).Type().Elem();$s=75;case 75:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq.Kind();$s=76;case 76:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}if(!((ar===8))){$s=73;continue;}$s=74;continue;case 73:$r=g.saveError(new EH.ptr("string",$clone(e,L.Value).Type(),(new $Int64(0,g.readIndex())),"",""));$s=77;case 77:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=67;continue;case 74:as=$makeSlice(FA,I.StdEncoding.DecodedLen(al.$length));at=I.StdEncoding.Decode(as,al);au=at[0];av=at[1];if(!($interfaceIsEqual(av,$ifaceNil))){$s=78;continue;}$s=79;continue;case 78:$r=g.saveError(av);$s=80;case 80:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=67;continue;case 79:$r=$clone(e,L.Value).SetBytes($subslice(as,0,au));$s=81;case 81:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=72;continue;case 69:if($interfaceIsEqual($clone(e,L.Value).Type(),ER)&&!DF(($bytesToString(al)))){$s=82;continue;}$s=83;continue;case 82:aw=J.Errorf("json: invalid number literal, trying to unmarshal %q into Number",new EV([d]));$s=84;case 84:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ax=aw;$s=85;case 85:return ax;case 83:$clone(e,L.Value).SetString(($bytesToString(al)));$s=72;continue;case 70:if($clone(e,L.Value).NumMethod()===0){$s=86;continue;}$s=87;continue;case 86:ay=L.ValueOf(new $String(($bytesToString(al))));$s=89;case 89:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}$r=$clone(e,L.Value).Set($clone(ay,L.Value));$s=90;case 90:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=88;continue;case 87:$r=g.saveError(new EH.ptr("string",$clone(e,L.Value).Type(),(new $Int64(0,g.readIndex())),"",""));$s=91;case 91:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 88:$s=72;continue;case 71:$r=g.saveError(new EH.ptr("string",$clone(e,L.Value).Type(),(new $Int64(0,g.readIndex())),"",""));$s=92;case 92:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 72:case 67:$s=32;continue;case 31:if(!((aa===45))&&(aa<48||aa>57)){$s=93;continue;}$s=94;continue;case 93:if(f){$s=95;continue;}$s=96;continue;case 95:az=J.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([d,$clone(e,L.Value).Type()]));$s=97;case 97:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;$s=98;case 98:return ba;case 96:$panic(new $String("JSON decoder out of sync - data changing underfoot?"));case 94:bb=($bytesToString(d));bc=$clone(e,L.Value).Kind();if(bc===(20)){$s=100;continue;}if((bc===(2))||(bc===(3))||(bc===(4))||(bc===(5))||(bc===(6))){$s=101;continue;}if((bc===(7))||(bc===(8))||(bc===(9))||(bc===(10))||(bc===(11))||(bc===(12))){$s=102;continue;}if((bc===(13))||(bc===(14))){$s=103;continue;}$s=104;continue;case 100:bd=g.convertNumber(bb);be=bd[0];bf=bd[1];if(!($interfaceIsEqual(bf,$ifaceNil))){$s=106;continue;}$s=107;continue;case 106:$r=g.saveError(bf);$s=108;case 108:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=99;continue;case 107:if(!(($clone(e,L.Value).NumMethod()===0))){$s=109;continue;}$s=110;continue;case 109:$r=g.saveError(new EH.ptr("number",$clone(e,L.Value).Type(),(new $Int64(0,g.readIndex())),"",""));$s=111;case 111:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=99;continue;case 110:bg=L.ValueOf(be);$s=112;case 112:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}$r=$clone(e,L.Value).Set($clone(bg,L.Value));$s=113;case 113:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=105;continue;case 101:bh=F.ParseInt(bb,10,64);bi=bh[0];bj=bh[1];if(!($interfaceIsEqual(bj,$ifaceNil))||$clone(e,L.Value).OverflowInt(bi)){$s=114;continue;}$s=115;continue;case 114:$r=g.saveError(new EH.ptr("number "+bb,$clone(e,L.Value).Type(),(new $Int64(0,g.readIndex())),"",""));$s=116;case 116:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=99;continue;case 115:$clone(e,L.Value).SetInt(bi);$s=105;continue;case 102:bk=F.ParseUint(bb,10,64);bl=bk[0];bm=bk[1];if(!($interfaceIsEqual(bm,$ifaceNil))||$clone(e,L.Value).OverflowUint(bl)){$s=117;continue;}$s=118;continue;case 117:$r=g.saveError(new EH.ptr("number "+bb,$clone(e,L.Value).Type(),(new $Int64(0,g.readIndex())),"",""));$s=119;case 119:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=99;continue;case 118:$clone(e,L.Value).SetUint(bl);$s=105;continue;case 103:bo=bb;bp=$clone(e,L.Value).Type().Bits();$s=120;case 120:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}bq=bp;br=F.ParseFloat(bo,bq);$s=121;case 121:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}bn=br;bs=bn[0];bt=bn[1];if(!($interfaceIsEqual(bt,$ifaceNil))||$clone(e,L.Value).OverflowFloat(bs)){$s=122;continue;}$s=123;continue;case 122:$r=g.saveError(new EH.ptr("number "+bb,$clone(e,L.Value).Type(),(new $Int64(0,g.readIndex())),"",""));$s=124;case 124:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=99;continue;case 123:$clone(e,L.Value).SetFloat(bs);$s=105;continue;case 104:if(($clone(e,L.Value).Kind()===24)&&$interfaceIsEqual($clone(e,L.Value).Type(),ER)){$clone(e,L.Value).SetString(bb);$s=99;continue;}if(f){$s=125;continue;}$s=126;continue;case 125:bu=J.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([d,$clone(e,L.Value).Type()]));$s=127;case 127:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}bv=bu;$s=128;case 128:return bv;case 126:$r=g.saveError(new EH.ptr("number",$clone(e,L.Value).Type(),(new $Int64(0,g.readIndex())),"",""));$s=129;case 129:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 105:case 99:case 32:case 27:$s=-1;return $ifaceNil;}return;}var $f={$blk:EM.ptr.prototype.literalStore,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};EM.prototype.literalStore=function(d,e,f){return this.$val.literalStore(d,e,f);};EM.ptr.prototype.valueInterface=function(){var{d,e,f,g,h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=$ifaceNil;e=this;f=e.opcode;if(f===(6)){$s=2;continue;}if(f===(2)){$s=3;continue;}if(f===(1)){$s=4;continue;}$s=5;continue;case 2:g=e.arrayInterface();$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}d=g;$r=e.scanNext();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=6;continue;case 3:h=e.objectInterface();$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}d=new FP(h);$r=e.scanNext();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=6;continue;case 4:i=e.literalInterface();$s=11;case 11:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}d=i;$s=6;continue;case 5:$panic(new $String("JSON decoder out of sync - data changing underfoot?"));case 6:case 1:$s=-1;return d;}return;}var $f={$blk:EM.ptr.prototype.valueInterface,$c:true,$r,d,e,f,g,h,i,$s};return $f;};EM.prototype.valueInterface=function(){return this.$val.valueInterface();};EM.ptr.prototype.arrayInterface=function(){var{d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=$makeSlice(EV,0);case 1:$r=d.scanWhile(9);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(d.opcode===8){$s=2;continue;}f=d.valueInterface();$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=$append(e,f);if(d.opcode===9){$s=5;continue;}$s=6;continue;case 5:$r=d.scanWhile(9);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:if(d.opcode===8){$s=2;continue;}if(!((d.opcode===7))){$panic(new $String("JSON decoder out of sync - data changing underfoot?"));}$s=1;continue;case 2:$s=-1;return e;}return;}var $f={$blk:EM.ptr.prototype.arrayInterface,$c:true,$r,d,e,f,$s};return $f;};EM.prototype.arrayInterface=function(){return this.$val.arrayInterface();};EM.ptr.prototype.objectInterface=function(){var{d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=new $global.Map();case 1:$r=d.scanWhile(9);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(d.opcode===5){$s=2;continue;}if(!((d.opcode===1))){$panic(new $String("JSON decoder out of sync - data changing underfoot?"));}f=d.readIndex();d.rescanLiteral();g=$subslice(d.data,f,d.readIndex());h=ET(g);i=h[0];j=h[1];if(!j){$panic(new $String("JSON decoder out of sync - data changing underfoot?"));}if(d.opcode===9){$s=4;continue;}$s=5;continue;case 4:$r=d.scanWhile(9);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:if(!((d.opcode===3))){$panic(new $String("JSON decoder out of sync - data changing underfoot?"));}$r=d.scanWhile(9);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=d.valueInterface();$s=8;case 8:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=i;(e||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(k),{k:k,v:l});if(d.opcode===9){$s=9;continue;}$s=10;continue;case 9:$r=d.scanWhile(9);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:if(d.opcode===5){$s=2;continue;}if(!((d.opcode===4))){$panic(new $String("JSON decoder out of sync - data changing underfoot?"));}$s=1;continue;case 2:$s=-1;return e;}return;}var $f={$blk:EM.ptr.prototype.objectInterface,$c:true,$r,d,e,f,g,h,i,j,k,l,$s};return $f;};EM.prototype.objectInterface=function(){return this.$val.objectInterface();};EM.ptr.prototype.literalInterface=function(){var{d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.readIndex();d.rescanLiteral();f=$subslice(d.data,e,d.readIndex());g=(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]);h=g;if(h===(110)){$s=2;continue;}if((h===(116))||(h===(102))){$s=3;continue;}if(h===(34)){$s=4;continue;}$s=5;continue;case 2:$s=-1;return $ifaceNil;case 3:$s=-1;return new $Bool((g===116));case 4:i=ET(f);j=i[0];k=i[1];if(!k){$panic(new $String("JSON decoder out of sync - data changing underfoot?"));}$s=-1;return new $String(j);case 5:if(!((g===45))&&(g<48||g>57)){$panic(new $String("JSON decoder out of sync - data changing underfoot?"));}l=d.convertNumber(($bytesToString(f)));m=l[0];n=l[1];if(!($interfaceIsEqual(n,$ifaceNil))){$s=7;continue;}$s=8;continue;case 7:$r=d.saveError(n);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:$s=-1;return m;case 6:case 1:$s=-1;return $ifaceNil;}return;}var $f={$blk:EM.ptr.prototype.literalInterface,$c:true,$r,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};EM.prototype.literalInterface=function(){return this.$val.literalInterface();};ES=function(d){var d,e,f,g,h;if(d.$length<6||!(((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])===92))||!(((1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1])===117))){return-1;}e=0;f=$subslice(d,2,6);g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(48<=h&&h<=57){h=h-48<<24>>>24;}else if(97<=h&&h<=102){h=(h-97<<24>>>24)+10<<24>>>24;}else if(65<=h&&h<=70){h=(h-65<<24>>>24)+10<<24>>>24;}else{return-1;}e=($imul(e,16))+((h>>0))>>0;g++;}return e;};ET=function(d){var d,e,f,g;e="";f=false;g=EU(d);d=g[0];f=g[1];e=($bytesToString(d));return[e,f];};EU=function(d){var aa,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;e=FA.nil;f=false;if(d.$length<2||!(((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])===34))||!(((g=d.$length-1>>0,((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]))===34))){return[e,f];}d=$subslice(d,1,(d.$length-1>>0));h=0;while(true){if(!(h=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+h]);if((i===92)||(i===34)||i<32){break;}if(i<128){h=h+(1)>>0;continue;}j=B.DecodeRune($subslice(d,h));k=j[0];l=j[1];if((k===65533)&&(l===1)){break;}h=h+(l)>>0;}if(h===d.$length){m=d;n=true;e=m;f=n;return[e,f];}o=$makeSlice(FA,(d.$length+8>>0));p=$copySlice(o,$subslice(d,0,h));while(true){if(!(h=(o.$length-8>>0)){q=$makeSlice(FA,($imul(((o.$length+4>>0)),2)));$copySlice(q,$subslice(o,0,p));o=q;}r=((h<0||h>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+h]);if((r===92)){h=h+(1)>>0;if(h>=d.$length){return[e,f];}switch(0){default:s=((h<0||h>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+h]);if((s===(34))||(s===(92))||(s===(47))||(s===(39))){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=((h<0||h>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+h]));h=h+(1)>>0;p=p+(1)>>0;}else if(s===(98)){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=8);h=h+(1)>>0;p=p+(1)>>0;}else if(s===(102)){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=12);h=h+(1)>>0;p=p+(1)>>0;}else if(s===(110)){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=10);h=h+(1)>>0;p=p+(1)>>0;}else if(s===(114)){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=13);h=h+(1)>>0;p=p+(1)>>0;}else if(s===(116)){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=9);h=h+(1)>>0;p=p+(1)>>0;}else if(s===(117)){h=h-(1)>>0;t=ES($subslice(d,h));if(t<0){return[e,f];}h=h+(6)>>0;if(O.IsSurrogate(t)){u=ES($subslice(d,h));v=O.DecodeRune(t,u);if(!((v===65533))){h=h+(6)>>0;p=p+(B.EncodeRune($subslice(o,p),v))>>0;break;}t=65533;}p=p+(B.EncodeRune($subslice(o,p),t))>>0;}else{return[e,f];}}}else if(((r===34))||(r<32)){return[e,f];}else if(r<128){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=r);h=h+(1)>>0;p=p+(1)>>0;}else{w=B.DecodeRune($subslice(d,h));x=w[0];y=w[1];h=h+(y)>>0;p=p+(B.EncodeRune($subslice(o,p),x))>>0;}}z=$subslice(o,0,p);aa=true;e=z;f=aa;return[e,f];};P.methods=[{prop:"Contains",name:"Contains",pkg:"",typ:$funcType([$String],[$Bool],false)}];FS.methods=[{prop:"UseNumber",name:"UseNumber",pkg:"",typ:$funcType([],[],false)},{prop:"DisallowUnknownFields",name:"DisallowUnknownFields",pkg:"",typ:$funcType([],[],false)},{prop:"Decode",name:"Decode",pkg:"",typ:$funcType([$emptyInterface],[$error],false)},{prop:"Buffered",name:"Buffered",pkg:"",typ:$funcType([],[E.Reader],false)},{prop:"readValue",name:"readValue",pkg:"encoding/json",typ:$funcType([],[$Int,$error],false)},{prop:"refill",name:"refill",pkg:"encoding/json",typ:$funcType([],[$error],false)},{prop:"tokenPrepareForDecode",name:"tokenPrepareForDecode",pkg:"encoding/json",typ:$funcType([],[$error],false)},{prop:"tokenValueAllowed",name:"tokenValueAllowed",pkg:"encoding/json",typ:$funcType([],[$Bool],false)},{prop:"tokenValueEnd",name:"tokenValueEnd",pkg:"encoding/json",typ:$funcType([],[],false)},{prop:"Token",name:"Token",pkg:"",typ:$funcType([],[Z,$error],false)},{prop:"tokenError",name:"tokenError",pkg:"encoding/json",typ:$funcType([$Uint8],[Z,$error],false)},{prop:"More",name:"More",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"peek",name:"peek",pkg:"encoding/json",typ:$funcType([],[$Uint8,$error],false)},{prop:"InputOffset",name:"InputOffset",pkg:"",typ:$funcType([],[$Int64],false)}];FT.methods=[{prop:"Encode",name:"Encode",pkg:"",typ:$funcType([$emptyInterface],[$error],false)},{prop:"SetIndent",name:"SetIndent",pkg:"",typ:$funcType([$String,$String],[],false)},{prop:"SetEscapeHTML",name:"SetEscapeHTML",pkg:"",typ:$funcType([$Bool],[],false)}];AA.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];FU.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];FG.methods=[{prop:"reset",name:"reset",pkg:"encoding/json",typ:$funcType([],[],false)},{prop:"eof",name:"eof",pkg:"encoding/json",typ:$funcType([],[$Int],false)},{prop:"pushParseState",name:"pushParseState",pkg:"encoding/json",typ:$funcType([$Uint8,$Int,$Int],[$Int],false)},{prop:"popParseState",name:"popParseState",pkg:"encoding/json",typ:$funcType([],[],false)},{prop:"error",name:"error",pkg:"encoding/json",typ:$funcType([$Uint8,$String],[$Int],false)}];FW.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];FX.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];FZ.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Unwrap",name:"Unwrap",pkg:"",typ:$funcType([],[$error],false)}];FH.methods=[{prop:"marshal",name:"marshal",pkg:"encoding/json",typ:$funcType([$emptyInterface,CL],[$error],false)},{prop:"error",name:"error",pkg:"encoding/json",typ:$funcType([$error],[],false)},{prop:"reflectValue",name:"reflectValue",pkg:"encoding/json",typ:$funcType([L.Value,CL],[],false)},{prop:"string",name:"string",pkg:"encoding/json",typ:$funcType([$String,$Bool],[],false)},{prop:"stringBytes",name:"stringBytes",pkg:"encoding/json",typ:$funcType([FA,$Bool],[],false)}];DB.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FH,L.Value,CL],[],false)}];DI.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FH,L.Value,CL],[],false)}];DL.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FH,L.Value,CL],[],false)}];DO.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FH,L.Value,CL],[],false)}];DQ.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FH,L.Value,CL],[],false)}];DS.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FH,L.Value,CL],[],false)}];DU.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FH,L.Value,CL],[],false)}];GC.methods=[{prop:"resolve",name:"resolve",pkg:"encoding/json",typ:$funcType([],[$error],false)}];EA.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)}];FN.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];GF.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];EK.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Float64",name:"Float64",pkg:"",typ:$funcType([],[$Float64,$error],false)},{prop:"Int64",name:"Int64",pkg:"",typ:$funcType([],[$Int64,$error],false)}];GG.methods=[{prop:"unmarshal",name:"unmarshal",pkg:"encoding/json",typ:$funcType([$emptyInterface],[$error],false)},{prop:"readIndex",name:"readIndex",pkg:"encoding/json",typ:$funcType([],[$Int],false)},{prop:"init",name:"init",pkg:"encoding/json",typ:$funcType([FA],[GG],false)},{prop:"saveError",name:"saveError",pkg:"encoding/json",typ:$funcType([$error],[],false)},{prop:"addErrorContext",name:"addErrorContext",pkg:"encoding/json",typ:$funcType([$error],[$error],false)},{prop:"skip",name:"skip",pkg:"encoding/json",typ:$funcType([],[],false)},{prop:"scanNext",name:"scanNext",pkg:"encoding/json",typ:$funcType([],[],false)},{prop:"scanWhile",name:"scanWhile",pkg:"encoding/json",typ:$funcType([$Int],[],false)},{prop:"rescanLiteral",name:"rescanLiteral",pkg:"encoding/json",typ:$funcType([],[],false)},{prop:"value",name:"value",pkg:"encoding/json",typ:$funcType([L.Value],[$error],false)},{prop:"valueQuoted",name:"valueQuoted",pkg:"encoding/json",typ:$funcType([],[$emptyInterface],false)},{prop:"array",name:"array",pkg:"encoding/json",typ:$funcType([L.Value],[$error],false)},{prop:"object",name:"object",pkg:"encoding/json",typ:$funcType([L.Value],[$error],false)},{prop:"convertNumber",name:"convertNumber",pkg:"encoding/json",typ:$funcType([$String],[$emptyInterface,$error],false)},{prop:"literalStore",name:"literalStore",pkg:"encoding/json",typ:$funcType([FA,L.Value,$Bool],[$error],false)},{prop:"valueInterface",name:"valueInterface",pkg:"encoding/json",typ:$funcType([],[$emptyInterface],false)},{prop:"arrayInterface",name:"arrayInterface",pkg:"encoding/json",typ:$funcType([],[EV],false)},{prop:"objectInterface",name:"objectInterface",pkg:"encoding/json",typ:$funcType([],[FP],false)},{prop:"literalInterface",name:"literalInterface",pkg:"encoding/json",typ:$funcType([],[$emptyInterface],false)}];T.init("encoding/json",[{prop:"r",name:"r",embedded:false,exported:false,typ:E.Reader,tag:""},{prop:"buf",name:"buf",embedded:false,exported:false,typ:FA,tag:""},{prop:"d",name:"d",embedded:false,exported:false,typ:EM,tag:""},{prop:"scanp",name:"scanp",embedded:false,exported:false,typ:$Int,tag:""},{prop:"scanned",name:"scanned",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"scan",name:"scan",embedded:false,exported:false,typ:AE,tag:""},{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""},{prop:"tokenState",name:"tokenState",embedded:false,exported:false,typ:$Int,tag:""},{prop:"tokenStack",name:"tokenStack",embedded:false,exported:false,typ:EX,tag:""}]);W.init("encoding/json",[{prop:"w",name:"w",embedded:false,exported:false,typ:E.Writer,tag:""},{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""},{prop:"escapeHTML",name:"escapeHTML",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"indentBuf",name:"indentBuf",embedded:false,exported:false,typ:FD,tag:""},{prop:"indentPrefix",name:"indentPrefix",embedded:false,exported:false,typ:$String,tag:""},{prop:"indentValue",name:"indentValue",embedded:false,exported:false,typ:$String,tag:""}]);Z.init([]);AD.init("encoding/json",[{prop:"msg",name:"msg",embedded:false,exported:false,typ:$String,tag:""},{prop:"Offset",name:"Offset",embedded:false,exported:true,typ:$Int64,tag:""}]);AE.init("encoding/json",[{prop:"step",name:"step",embedded:false,exported:false,typ:FV,tag:""},{prop:"endTop",name:"endTop",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"parseState",name:"parseState",embedded:false,exported:false,typ:EX,tag:""},{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""},{prop:"bytes",name:"bytes",embedded:false,exported:false,typ:$Int64,tag:""}]);CA.init([{prop:"MarshalJSON",name:"MarshalJSON",pkg:"",typ:$funcType([],[FA,$error],false)}]);CB.init("",[{prop:"Type",name:"Type",embedded:false,exported:true,typ:L.Type,tag:""}]);CC.init("",[{prop:"Value",name:"Value",embedded:false,exported:true,typ:L.Value,tag:""},{prop:"Str",name:"Str",embedded:false,exported:true,typ:$String,tag:""}]);CE.init("encoding/json",[{prop:"Type",name:"Type",embedded:false,exported:true,typ:L.Type,tag:""},{prop:"Err",name:"Err",embedded:false,exported:true,typ:$error,tag:""},{prop:"sourceFunc",name:"sourceFunc",embedded:false,exported:false,typ:$String,tag:""}]);CG.init("encoding/json",[{prop:"Buffer",name:"Buffer",embedded:true,exported:true,typ:C.Buffer,tag:""},{prop:"scratch",name:"scratch",embedded:false,exported:false,typ:FI,tag:""},{prop:"ptrLevel",name:"ptrLevel",embedded:false,exported:false,typ:$Uint,tag:""},{prop:"ptrSeen",name:"ptrSeen",embedded:false,exported:false,typ:GA,tag:""}]);CJ.init("encoding/json",[{prop:"error",name:"error",embedded:true,exported:false,typ:$error,tag:""}]);CL.init("encoding/json",[{prop:"quoted",name:"quoted",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"escapeHTML",name:"escapeHTML",embedded:false,exported:false,typ:$Bool,tag:""}]);CM.init([FH,L.Value,CL],[],false);DI.init("encoding/json",[{prop:"fields",name:"fields",embedded:false,exported:false,typ:DJ,tag:""}]);DJ.init("encoding/json",[{prop:"list",name:"list",embedded:false,exported:false,typ:FJ,tag:""},{prop:"nameIndex",name:"nameIndex",embedded:false,exported:false,typ:GB,tag:""}]);DL.init("encoding/json",[{prop:"elemEnc",name:"elemEnc",embedded:false,exported:false,typ:CM,tag:""}]);DO.init("encoding/json",[{prop:"arrayEnc",name:"arrayEnc",embedded:false,exported:false,typ:CM,tag:""}]);DQ.init("encoding/json",[{prop:"elemEnc",name:"elemEnc",embedded:false,exported:false,typ:CM,tag:""}]);DS.init("encoding/json",[{prop:"elemEnc",name:"elemEnc",embedded:false,exported:false,typ:CM,tag:""}]);DU.init("encoding/json",[{prop:"canAddrEnc",name:"canAddrEnc",embedded:false,exported:false,typ:CM,tag:""},{prop:"elseEnc",name:"elseEnc",embedded:false,exported:false,typ:CM,tag:""}]);DY.init("encoding/json",[{prop:"k",name:"k",embedded:false,exported:false,typ:L.Value,tag:""},{prop:"v",name:"v",embedded:false,exported:false,typ:L.Value,tag:""},{prop:"ks",name:"ks",embedded:false,exported:false,typ:$String,tag:""}]);DZ.init("encoding/json",[{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"nameBytes",name:"nameBytes",embedded:false,exported:false,typ:FA,tag:""},{prop:"equalFold",name:"equalFold",embedded:false,exported:false,typ:GD,tag:""},{prop:"nameNonEsc",name:"nameNonEsc",embedded:false,exported:false,typ:$String,tag:""},{prop:"nameEscHTML",name:"nameEscHTML",embedded:false,exported:false,typ:$String,tag:""},{prop:"tag",name:"tag",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"index",name:"index",embedded:false,exported:false,typ:EX,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:L.Type,tag:""},{prop:"omitEmpty",name:"omitEmpty",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"quoted",name:"quoted",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"encoder",name:"encoder",embedded:false,exported:false,typ:CM,tag:""}]);EA.init(DZ);EG.init([{prop:"UnmarshalJSON",name:"UnmarshalJSON",pkg:"",typ:$funcType([FA],[$error],false)}]);EH.init("",[{prop:"Value",name:"Value",embedded:false,exported:true,typ:$String,tag:""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:L.Type,tag:""},{prop:"Offset",name:"Offset",embedded:false,exported:true,typ:$Int64,tag:""},{prop:"Struct",name:"Struct",embedded:false,exported:true,typ:$String,tag:""},{prop:"Field",name:"Field",embedded:false,exported:true,typ:$String,tag:""}]);EJ.init("",[{prop:"Type",name:"Type",embedded:false,exported:true,typ:L.Type,tag:""}]);EL.init("",[{prop:"Struct",name:"Struct",embedded:false,exported:true,typ:L.Type,tag:""},{prop:"FieldStack",name:"FieldStack",embedded:false,exported:true,typ:FQ,tag:""}]);EM.init("encoding/json",[{prop:"data",name:"data",embedded:false,exported:false,typ:FA,tag:""},{prop:"off",name:"off",embedded:false,exported:false,typ:$Int,tag:""},{prop:"opcode",name:"opcode",embedded:false,exported:false,typ:$Int,tag:""},{prop:"scan",name:"scan",embedded:false,exported:false,typ:AE,tag:""},{prop:"errorContext",name:"errorContext",embedded:false,exported:false,typ:FC,tag:""},{prop:"savedError",name:"savedError",embedded:false,exported:false,typ:$error,tag:""},{prop:"useNumber",name:"useNumber",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"disallowUnknownFields",name:"disallowUnknownFields",embedded:false,exported:false,typ:$Bool,tag:""}]);EN.init("",[]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=C.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=O.$init();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}CH=new G.Pool.ptr(EV.nil,$throwNilPointerError);CN=new G.Map.ptr(false);ED=new G.Map.ptr(false);R=$toNativeArray($kindBool,[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]);S=$toNativeArray($kindBool,[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,false,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]);AF=new G.Pool.ptr(EV.nil,(function(){return new AE.ptr($throwNilPointerError,false,EX.nil,$ifaceNil,new $Int64(0,0));}));CF="0123456789abcdef";a=L.TypeOf((EY.nil)).Elem();$s=16;case 16:if($c){$c=false;a=a.$blk();}if(a&&a.$blk!==undefined){break s;}CQ=a;b=L.TypeOf((EZ.nil)).Elem();$s=17;case 17:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}CR=b;DC=$methodVal(new DB(32),"encode");DD=$methodVal(new DB(64),"encode");EP=(new FA($stringToBytes("null")));c=L.TypeOf((FB.nil)).Elem();$s=18;case 18:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}EQ=c;ER=L.TypeOf(new EK(""));}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/gopherjs/gopherjs/compiler/astutil"]=(function(){var $pkg={},$init,A,B,C,D,E,O,P,Q,R,S,T,U,V,W,X,Y,AB,AC,AD,AE,AF,AG,AH,AI,F,G,H,I,J,M,N;A=$packages["fmt"];B=$packages["go/ast"];C=$packages["go/token"];D=$packages["go/types"];E=$packages["strings"];O=$ptrType(B.ParenExpr);P=$ptrType(B.Ident);Q=$ptrType(B.ArrayType);R=$ptrType(B.ChanType);S=$ptrType(B.FuncType);T=$ptrType(B.InterfaceType);U=$ptrType(B.MapType);V=$ptrType(B.StructType);W=$ptrType(B.StarExpr);X=$ptrType(B.SelectorExpr);Y=$ptrType(D.TypeName);AB=$sliceType($emptyInterface);AC=$ptrType(D.Label);AD=$ptrType(B.LabeledStmt);AE=$ptrType(B.RangeStmt);AF=$ptrType(B.ForStmt);AG=$ptrType(B.ReturnStmt);AH=$ptrType(B.BlockStmt);AI=$sliceType(B.Stmt);F=function(a){var a,b,c,d;while(true){b=$assertType(a,O,true);c=b[0];d=b[1];if(!d){return a;}a=c.X;}};$pkg.RemoveParens=F;G=function(a,b,c){var a,b,c,d;d=c;(a.Types||$throwRuntimeError("assignment to entry in nil map")).set(B.Expr.keyFor(d),{k:d,v:new D.TypeAndValue.ptr(0,b,$ifaceNil)});return c;};$pkg.SetType=G;H=function(a,b,c,d){var a,b,c,d,e,f,g,h;e=B.NewIdent(a);f=e;(c.Types||$throwRuntimeError("assignment to entry in nil map")).set(B.Expr.keyFor(f),{k:f,v:new D.TypeAndValue.ptr(0,b,$ifaceNil)});g=D.NewVar(0,d,a,b);h=e;(c.Uses||$throwRuntimeError("assignment to entry in nil map")).set(P.keyFor(h),{k:h,v:g});return e;};$pkg.NewIdent=H;I=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;c=a;if($assertType(c,Q,true)[1]||$assertType(c,R,true)[1]||$assertType(c,S,true)[1]||$assertType(c,T,true)[1]||$assertType(c,U,true)[1]||$assertType(c,V,true)[1]){d=c;return true;}else if($assertType(c,W,true)[1]){e=c.$val;return I(e.X,b);}else if($assertType(c,P,true)[1]){f=c.$val;j=$assertType((k=$mapIndex(b.Uses,P.keyFor(f)),k!==undefined?k.v:$ifaceNil),Y,true);l=j[1];return l;}else if($assertType(c,X,true)[1]){g=c.$val;m=$assertType((n=$mapIndex(b.Uses,P.keyFor(g.Sel)),n!==undefined?n.v:$ifaceNil),Y,true);o=m[1];return o;}else if($assertType(c,O,true)[1]){h=c.$val;return I(h.X,b);}else{i=c;return false;}};$pkg.IsTypeExpr=I;J=function(a){var a,b,c,d;b=a.Imports;c=0;while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]);if(d.Path.Value==="\"unsafe\""){return true;}c++;}return false;};$pkg.ImportsUnsafe=J;M=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:if(!((b.Tok===65))&&!((b.Tok===61))){$s=1;continue;}$s=2;continue;case 1:d=A.Errorf("FindLoopStmt() must be used with a break or continue statement only, got: %v",new AB([b]));$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$panic(d);case 2:e=a.$length-1>>0;while(true){if(!(e>=0)){break;}f=((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]);if(!(b.Label===P.nil)){h=$assertType((g=$mapIndex(c.Uses,P.keyFor(b.Label)),g!==undefined?g.v:$ifaceNil),AC);i=$assertType(f,AD,true);j=i[0];k=i[1];if(!k){e=e-(1)>>0;continue;}m=(l=$mapIndex(c.Defs,P.keyFor(j.Label)),l!==undefined?l.v:$ifaceNil);if(!($interfaceIsEqual(m,h))){e=e-(1)>>0;continue;}f=j.Stmt;}n=f;if($assertType(n,AE,true)[1]||$assertType(n,AF,true)[1]){o=n;$s=-1;return $assertType(o,B.Stmt);}e=e-(1)>>0;}p=A.Errorf("continue/break statement %v doesn't have a matching loop statement among ancestors",new AB([b]));$s=4;case 4:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}$panic(p);$s=-1;return $ifaceNil;}return;}var $f={$blk:M,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};$pkg.FindLoopStmt=M;N=function(a){var a,b,c,d,e,f,g,h;if(a.$length===0){return false;}c=(b=a.$length-1>>0,((b<0||b>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+b]));d=c;if($assertType(d,AG,true)[1]){e=d.$val;return true;}else if($assertType(d,AD,true)[1]){f=d.$val;return N(new AI([f.Stmt]));}else if($assertType(d,AH,true)[1]){g=d.$val;return N(g.List);}else{h=d;return false;}};$pkg.EndsWithReturn=N;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/gopherjs/gopherjs/compiler/typesutil"]=(function(){var $pkg={},$init,A,D,E,F,B,C;A=$packages["go/types"];D=$ptrType(A.Package);E=$ptrType(A.Pointer);F=$ptrType(A.Named);B=function(a){var a;return!(a===D.nil)&&a.Path()==="github.com/gopherjs/gopherjs/js";};$pkg.IsJsPackage=B;C=function(a){var a,b,c,d,e,f,g;b=$assertType(a,E,true);c=b[0];d=b[1];if(!d){return false;}e=$assertType(c.Elem(),F,true);f=e[0];g=e[1];return g&&B(f.Obj().object.Pkg())&&f.Obj().object.Name()==="Object";};$pkg.IsJsObject=C;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/gopherjs/gopherjs/compiler/analysis"]=(function(){var $pkg={},$init,D,F,G,A,H,B,C,E,J,K,M,N,P,R,S,U,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,I,L,O,Q,T,V;D=$packages["fmt"];F=$packages["github.com/gopherjs/gopherjs/compiler/astutil"];G=$packages["github.com/gopherjs/gopherjs/compiler/typesutil"];A=$packages["go/ast"];H=$packages["go/constant"];B=$packages["go/token"];C=$packages["go/types"];E=$packages["strings"];J=$pkg.hasSideEffectVisitor=$newType(0,$kindStruct,"analysis.hasSideEffectVisitor",true,"github.com/gopherjs/gopherjs/compiler/analysis",false,function(info_,hasSideEffect_){this.$val=this;if(arguments.length===0){this.info=W.nil;this.hasSideEffect=false;return;}this.info=info_;this.hasSideEffect=hasSideEffect_;});K=$pkg.continueStmt=$newType(0,$kindStruct,"analysis.continueStmt",true,"github.com/gopherjs/gopherjs/compiler/analysis",false,function(forStmt_,analyzeStack_){this.$val=this;if(arguments.length===0){this.forStmt=AA.nil;this.analyzeStack=M.nil;return;}this.forStmt=forStmt_;this.analyzeStack=analyzeStack_;});M=$pkg.astPath=$newType(12,$kindSlice,"analysis.astPath",true,"github.com/gopherjs/gopherjs/compiler/analysis",false,null);N=$pkg.Info=$newType(0,$kindStruct,"analysis.Info",true,"github.com/gopherjs/gopherjs/compiler/analysis",true,function(Info_,Pkg_,HasPointer_,FuncDeclInfos_,FuncLitInfos_,InitFuncInfo_,isImportedBlocking_,allInfos_){this.$val=this;if(arguments.length===0){this.Info=W.nil;this.Pkg=AN.nil;this.HasPointer=false;this.FuncDeclInfos=false;this.FuncLitInfos=false;this.InitFuncInfo=AM.nil;this.isImportedBlocking=$throwNilPointerError;this.allInfos=AO.nil;return;}this.Info=Info_;this.Pkg=Pkg_;this.HasPointer=HasPointer_;this.FuncDeclInfos=FuncDeclInfos_;this.FuncLitInfos=FuncLitInfos_;this.InitFuncInfo=InitFuncInfo_;this.isImportedBlocking=isImportedBlocking_;this.allInfos=allInfos_;});P=$pkg.FuncInfo=$newType(0,$kindStruct,"analysis.FuncInfo",true,"github.com/gopherjs/gopherjs/compiler/analysis",true,function(HasDefer_,Flattened_,Blocking_,GotoLabel_,continueStmts_,returnStmts_,localNamedCallees_,literalFuncCallees_,pkgInfo_,visitorStack_){this.$val=this;if(arguments.length===0){this.HasDefer=false;this.Flattened=false;this.Blocking=false;this.GotoLabel=false;this.continueStmts=AE.nil;this.returnStmts=AF.nil;this.localNamedCallees=false;this.literalFuncCallees=false;this.pkgInfo=AG.nil;this.visitorStack=M.nil;return;}this.HasDefer=HasDefer_;this.Flattened=Flattened_;this.Blocking=Blocking_;this.GotoLabel=GotoLabel_;this.continueStmts=continueStmts_;this.returnStmts=returnStmts_;this.localNamedCallees=localNamedCallees_;this.literalFuncCallees=literalFuncCallees_;this.pkgInfo=pkgInfo_;this.visitorStack=visitorStack_;});R=$pkg.escapeAnalysis=$newType(0,$kindStruct,"analysis.escapeAnalysis",true,"github.com/gopherjs/gopherjs/compiler/analysis",false,function(info_,escaping_,topScope_,bottomScopes_){this.$val=this;if(arguments.length===0){this.info=W.nil;this.escaping=false;this.topScope=BG.nil;this.bottomScopes=false;return;}this.info=info_;this.escaping=escaping_;this.topScope=topScope_;this.bottomScopes=bottomScopes_;});S=$pkg.escapingObjectCollector=$newType(0,$kindStruct,"analysis.escapingObjectCollector",true,"github.com/gopherjs/gopherjs/compiler/analysis",false,function(analysis_){this.$val=this;if(arguments.length===0){this.analysis=BV.nil;return;}this.analysis=analysis_;});U=$pkg.hasBreakVisitor=$newType(0,$kindStruct,"analysis.hasBreakVisitor",true,"github.com/gopherjs/gopherjs/compiler/analysis",false,function(hasBreak_){this.$val=this;if(arguments.length===0){this.hasBreak=false;return;}this.hasBreak=hasBreak_;});W=$ptrType(C.Info);X=$ptrType(A.CallExpr);Y=$ptrType(A.UnaryExpr);Z=$ptrType(C.Signature);AA=$ptrType(A.ForStmt);AB=$ptrType(E.Builder);AC=$sliceType($Uint8);AD=$sliceType($emptyInterface);AE=$sliceType(K);AF=$sliceType(M);AG=$ptrType(N);AH=$ptrType(A.FuncDecl);AI=$ptrType(A.FuncLit);AJ=$ptrType(A.BlockStmt);AK=$ptrType(C.Func);AL=$ptrType(A.Ident);AM=$ptrType(P);AN=$ptrType(C.Package);AO=$sliceType(AM);AP=$ptrType(A.BranchStmt);AQ=$ptrType(A.SendStmt);AR=$ptrType(A.RangeStmt);AS=$ptrType(A.SelectStmt);AT=$ptrType(A.CommClause);AU=$ptrType(A.GoStmt);AV=$ptrType(A.DeferStmt);AW=$ptrType(A.ReturnStmt);AX=$ptrType(C.Label);AY=$sliceType(A.Node);AZ=$ptrType(C.Var);BA=$ptrType(C.Chan);BB=$ptrType(A.ExprStmt);BC=$ptrType(A.AssignStmt);BD=$ptrType(A.SelectorExpr);BE=$ptrType(C.Selection);BF=$ptrType(C.Interface);BG=$ptrType(C.Scope);BH=$sliceType(AZ);BI=$ptrType(A.SwitchStmt);BJ=$ptrType(A.TypeSwitchStmt);BK=$ptrType(A.BinaryExpr);BL=$ptrType(A.ParenExpr);BM=$ptrType(J);BN=$mapType(AZ,$Bool);BO=$mapType(AK,AM);BP=$mapType(AI,AM);BQ=$funcType([AK],[$Bool],false);BR=$mapType(A.Node,$Bool);BS=$mapType(AX,$Bool);BT=$mapType(AK,AF);BU=$mapType(AI,AF);BV=$ptrType(R);BW=$mapType(BG,$Bool);BX=$ptrType(S);BY=$ptrType(U);I=function(a,b){var{a,b,c,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];c[0]=new J.ptr(b,false);$r=A.Walk(c[0],a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c[0].hasSideEffect;}return;}var $f={$blk:I,$c:true,$r,a,b,c,$s};return $f;};$pkg.HasSideEffect=I;J.ptr.prototype.Visit=function(a){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$ifaceNil;c=this;if(c.hasSideEffect){b=$ifaceNil;$s=-1;return b;}d=a;if($assertType(d,X,true)[1]){$s=1;continue;}if($assertType(d,Y,true)[1]){$s=2;continue;}$s=3;continue;case 1:e=d.$val;h=c.info.TypeOf(e.Fun);$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=$assertType(h,Z,true);i=g[1];if(i){c.hasSideEffect=true;b=$ifaceNil;$s=-1;return b;}$s=3;continue;case 2:f=d.$val;if(f.Op===36){c.hasSideEffect=true;b=$ifaceNil;$s=-1;return b;}case 3:b=c;$s=-1;return b;}return;}var $f={$blk:J.ptr.prototype.Visit,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};J.prototype.Visit=function(a){return this.$val.Visit(a);};L=function(a,b){var a,b,c;c=new K.ptr(a,b.copy());return c;};M.prototype.copy=function(){var a,b;a=this;b=$makeSlice(M,a.$length);$copySlice(b,a);return b;};$ptrType(M).prototype.copy=function(){return this.$get().copy();};M.prototype.String=function(){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=new E.Builder.ptr(AB.nil,AC.nil);b.WriteString("[");c=a;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if(e>0){b.WriteString(", ");}g=D.Fprintf(b,"%T(%p)",new AD([f,f]));$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;d++;$s=1;continue;case 2:b.WriteString("]");$s=-1;return b.String();}return;}var $f={$blk:M.prototype.String,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};$ptrType(M).prototype.String=function(){return this.$get().String();};N.ptr.prototype.newFuncInfo=function(a){var a,b,c,d,e,f,g,h,i,j;b=this;c=new P.ptr(false,new $global.Map(),new $global.Map(),new $global.Map(),AE.nil,AF.nil,new $global.Map(),new $global.Map(),b,M.nil);d=a;if($assertType(d,AH,true)[1]){e=d.$val;if(e.Body===AJ.nil){g=e;(c.Blocking||$throwRuntimeError("assignment to entry in nil map")).set(A.Node.keyFor(g),{k:g,v:true});}h=$assertType((i=$mapIndex(b.Info.Defs,AL.keyFor(e.Name)),i!==undefined?i.v:$ifaceNil),AK);(b.FuncDeclInfos||$throwRuntimeError("assignment to entry in nil map")).set(AK.keyFor(h),{k:h,v:c});}else if($assertType(d,AI,true)[1]){f=d.$val;j=f;(b.FuncLitInfos||$throwRuntimeError("assignment to entry in nil map")).set(AI.keyFor(j),{k:j,v:c});}b.allInfos=$append(b.allInfos,c);return c;};N.prototype.newFuncInfo=function(a){return this.$val.newFuncInfo(a);};N.ptr.prototype.IsBlocking=function(a){var a,b,c,d;b=this;return((c=$mapIndex(b.FuncDeclInfos,AK.keyFor(a)),c!==undefined?c.v:AM.nil).Blocking?(d=$mapIndex(b.FuncDeclInfos,AK.keyFor(a)),d!==undefined?d.v:AM.nil).Blocking.size:0)>0;};N.prototype.IsBlocking=function(a){return this.$val.IsBlocking(a);};O=function(a,b,c,d,e){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=new N.ptr(c,d,new $global.Map(),new $global.Map(),new $global.Map(),AM.nil,e,AO.nil);f.InitFuncInfo=f.newFuncInfo($ifaceNil);g=a;h=0;case 1:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);$r=A.Walk(f.InitFuncInfo,i);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h++;$s=1;continue;case 2:j=f.allInfos;k=0;while(true){if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);if(!l.HasDefer){k++;continue;}m=l.returnStmts;n=0;while(true){if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);l.markBlocking(o);n++;}k++;}while(true){p=true;q=f.allInfos;r=0;while(true){if(!(r=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);t=s.localNamedCallees;u=0;v=t?t.keys():undefined;w=t?t.size:0;while(true){if(!(u=ab.$length)?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+ac]);s.markBlocking(ad);ac++;}$mapDelete(s.localNamedCallees,AK.keyFor(z));p=false;}u++;}ae=s.literalFuncCallees;af=0;ag=ae?ae.keys():undefined;ah=ae?ae.size:0;while(true){if(!(af0){ao=al;ap=0;while(true){if(!(ap=ao.$length)?($throwRuntimeError("index out of range"),undefined):ao.$array[ao.$offset+ap]);s.markBlocking(aq);ap++;}$mapDelete(s.literalFuncCallees,AI.keyFor(ak));p=false;}af++;}r++;}if(p){break;}}ar=f.allInfos;as=0;while(true){if(!(as=ar.$length)?($throwRuntimeError("index out of range"),undefined):ar.$array[ar.$offset+as]);au=at.continueStmts;av=0;while(true){if(!(av=au.$length)?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+av]),K);if((ax=$mapIndex(at.Blocking,A.Node.keyFor(aw.forStmt.Post)),ax!==undefined?ax.v:false)){at.markBlocking(aw.analyzeStack);}av++;}as++;}$s=-1;return f;}return;}var $f={$blk:O,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.AnalyzePkg=O;P.ptr.prototype.Visit=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if($interfaceIsEqual(a,$ifaceNil)){if(!((b.visitorStack.$length===0))){b.visitorStack=$subslice(b.visitorStack,0,(b.visitorStack.$length-1>>0));}$s=-1;return $ifaceNil;}b.visitorStack=$append(b.visitorStack,a);c=a;if($assertType(c,AH,true)[1]||$assertType(c,AI,true)[1]){$s=1;continue;}if($assertType(c,AP,true)[1]){$s=2;continue;}if($assertType(c,X,true)[1]){$s=3;continue;}if($assertType(c,AQ,true)[1]){$s=4;continue;}if($assertType(c,Y,true)[1]){$s=5;continue;}if($assertType(c,AR,true)[1]){$s=6;continue;}if($assertType(c,AS,true)[1]){$s=7;continue;}if($assertType(c,AT,true)[1]){$s=8;continue;}if($assertType(c,AU,true)[1]){$s=9;continue;}if($assertType(c,AV,true)[1]){$s=10;continue;}if($assertType(c,AW,true)[1]){$s=11;continue;}$s=12;continue;case 1:d=c;$s=-1;return b.pkgInfo.newFuncInfo(d);case 2:e=c.$val;p=e.Tok;if(p===(73)){$s=15;continue;}if(p===(65)){$s=16;continue;}$s=17;continue;case 15:b.markFlattened(b.visitorStack);q=$assertType((r=$mapIndex(b.pkgInfo.Info.Uses,AL.keyFor(e.Label)),r!==undefined?r.v:$ifaceNil),AX);(b.GotoLabel||$throwRuntimeError("assignment to entry in nil map")).set(AX.keyFor(q),{k:q,v:true});$s=17;continue;case 16:s=F.FindLoopStmt($convertSliceType(b.visitorStack,AY),e,b.pkgInfo.Info);$s=18;case 18:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;u=$assertType((t),AA,true);v=u[0];w=u[1];if(w){b.continueStmts=$append(b.continueStmts,L(v,b.visitorStack));}case 17:case 14:$s=-1;return b;case 3:f=c.$val;x=b.visitCallExpr(f);$s=19;case 19:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;$s=20;case 20:return y;case 4:g=c.$val;b.markBlocking(b.visitorStack);$s=-1;return b;case 5:h=c.$val;z=h.Op;if(z===(17)){aa=$assertType(F.RemoveParens(h.X),AL,true);ab=aa[0];ac=aa[1];if(ac){ad=$assertType((ae=$mapIndex(b.pkgInfo.Info.Uses,AL.keyFor(ab)),ae!==undefined?ae.v:$ifaceNil),AZ);(b.pkgInfo.HasPointer||$throwRuntimeError("assignment to entry in nil map")).set(AZ.keyFor(ad),{k:ad,v:true});}}else if(z===(36)){b.markBlocking(b.visitorStack);}$s=-1;return b;case 6:i=c.$val;ag=b.pkgInfo.Info.TypeOf(i.X);$s=21;case 21:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag.Underlying();$s=22;case 22:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}af=$assertType(ah,BA,true);ai=af[1];if(ai){b.markBlocking(b.visitorStack);}$s=-1;return b;case 7:j=c.$val;aj=j.Body.List;ak=0;while(true){if(!(ak=aj.$length)?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+ak]);if($interfaceIsEqual($assertType(al,AT).Comm,$ifaceNil)){$s=-1;return b;}ak++;}b.markBlocking(b.visitorStack);$s=-1;return b;case 8:k=c.$val;am=k.Comm;if($assertType(am,AQ,true)[1]){$s=23;continue;}if($assertType(am,BB,true)[1]){$s=24;continue;}if($assertType(am,BC,true)[1]){$s=25;continue;}$s=26;continue;case 23:an=am.$val;$r=A.Walk(b,an.Chan);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.Walk(b,an.Value);$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=26;continue;case 24:ao=am.$val;$r=A.Walk(b,$assertType(ao.X,Y).X);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=26;continue;case 25:ap=am.$val;$r=A.Walk(b,$assertType((aq=ap.Rhs,(0>=aq.$length?($throwRuntimeError("index out of range"),undefined):aq.$array[aq.$offset+0])),Y).X);$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 26:ar=k.Body;as=0;case 31:if(!(as=ar.$length)?($throwRuntimeError("index out of range"),undefined):ar.$array[ar.$offset+as]);$r=A.Walk(b,at);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}as++;$s=31;continue;case 32:$s=-1;return $ifaceNil;case 9:l=c.$val;$r=A.Walk(b,l.Call.Fun);$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}au=l.Call.Args;av=0;case 35:if(!(av=au.$length)?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+av]);$r=A.Walk(b,aw);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}av++;$s=35;continue;case 36:$s=-1;return $ifaceNil;case 10:m=c.$val;b.HasDefer=true;ax=$assertType(m.Call.Fun,AI,true);ay=ax[0];az=ax[1];if(az){$s=38;continue;}$s=39;continue;case 38:$r=A.Walk(b,ay.Body);$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 39:$s=-1;return b;case 11:n=c.$val;b.returnStmts=$append(b.returnStmts,b.visitorStack.copy());$s=-1;return b;case 12:o=c;$s=-1;return b;case 13:$s=-1;return $ifaceNil;}return;}var $f={$blk:P.ptr.prototype.Visit,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};P.prototype.Visit=function(a){return this.$val.Visit(a);};P.ptr.prototype.visitCallExpr=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=F.RemoveParens(a.Fun);if($assertType(c,AL,true)[1]){$s=1;continue;}if($assertType(c,BD,true)[1]){$s=2;continue;}if($assertType(c,AI,true)[1]){$s=3;continue;}$s=4;continue;case 1:d=c.$val;$r=b.callToNamedFunc((h=$mapIndex(b.pkgInfo.Info.Uses,AL.keyFor(d)),h!==undefined?h.v:$ifaceNil));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 2:e=c.$val;j=(i=$mapIndex(b.pkgInfo.Info.Selections,BD.keyFor(e)),i!==undefined?i.v:BE.nil);if(!(j===BE.nil)&&G.IsJsObject(j.Recv())){$s=7;continue;}$s=8;continue;case 7:$s=9;continue;case 8:$r=b.callToNamedFunc((k=$mapIndex(b.pkgInfo.Info.Uses,AL.keyFor(e.Sel)),k!==undefined?k.v:$ifaceNil));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:$s=5;continue;case 3:f=c.$val;$r=A.Walk(b,a.Fun);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=a.Args;m=0;case 12:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);$r=A.Walk(b,n);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m++;$s=12;continue;case 13:o=f;(b.literalFuncCallees||$throwRuntimeError("assignment to entry in nil map")).set(AI.keyFor(o),{k:o,v:$append((p=$mapIndex(b.literalFuncCallees,AI.keyFor(f)),p!==undefined?p.v:AF.nil),b.visitorStack.copy())});$s=-1;return $ifaceNil;case 4:g=c;if(F.IsTypeExpr(g,b.pkgInfo.Info)){}else{b.markBlocking(b.visitorStack);}case 5:$s=-1;return b;}return;}var $f={$blk:P.ptr.prototype.visitCallExpr,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};P.prototype.visitCallExpr=function(a){return this.$val.visitCallExpr(a);};P.ptr.prototype.callToNamedFunc=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a;if($assertType(c,AK,true)[1]){$s=1;continue;}if($assertType(c,AZ,true)[1]){$s=2;continue;}$s=3;continue;case 1:d=c.$val;f=$assertType(d.object.Type(),Z).Recv();if(!(f===AZ.nil)){$s=4;continue;}$s=5;continue;case 4:h=f.object.Type().Underlying();$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=$assertType(h,BF,true);i=g[1];if(i){b.markBlocking(b.visitorStack);$s=-1;return;}case 5:if(!(d.object.Pkg()===b.pkgInfo.Pkg)){$s=7;continue;}$s=8;continue;case 7:j=b.pkgInfo.isImportedBlocking(d);$s=11;case 11:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=9;continue;}$s=10;continue;case 9:b.markBlocking(b.visitorStack);case 10:$s=-1;return;case 8:k=d;(b.localNamedCallees||$throwRuntimeError("assignment to entry in nil map")).set(AK.keyFor(k),{k:k,v:$append((l=$mapIndex(b.localNamedCallees,AK.keyFor(d)),l!==undefined?l.v:AF.nil),b.visitorStack.copy())});$s=3;continue;case 2:e=c.$val;b.markBlocking(b.visitorStack);case 3:$s=-1;return;}return;}var $f={$blk:P.ptr.prototype.callToNamedFunc,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};P.prototype.callToNamedFunc=function(a){return this.$val.callToNamedFunc(a);};P.ptr.prototype.markBlocking=function(a){var a,b,c,d,e,f,g;b=this;c=a;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=e;(b.Blocking||$throwRuntimeError("assignment to entry in nil map")).set(A.Node.keyFor(f),{k:f,v:true});g=e;(b.Flattened||$throwRuntimeError("assignment to entry in nil map")).set(A.Node.keyFor(g),{k:g,v:true});d++;}};P.prototype.markBlocking=function(a){return this.$val.markBlocking(a);};P.ptr.prototype.markFlattened=function(a){var a,b,c,d,e,f;b=this;c=a;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=e;(b.Flattened||$throwRuntimeError("assignment to entry in nil map")).set(A.Node.keyFor(f),{k:f,v:true});d++;}};P.prototype.markFlattened=function(a){return this.$val.markFlattened(a);};Q=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];c[0]=new R.ptr(b,new $global.Map(),(d=$mapIndex(b.Scopes,A.Node.keyFor(a)),d!==undefined?d.v:BG.nil),new $global.Map());$r=A.Walk(c[0],a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=BH.nil;f=c[0].escaping;g=0;h=f?f.keys():undefined;i=f?f.size:0;while(true){if(!(g=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0])),"_val");$s=3;case 3:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=b[0];p=b[0].TypeOf((o=g.Lhs,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0])));$s=4;case 4:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;r=b[0];t=b[0].TypeOf((s=g.Rhs,(0>=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+0])));$s=5;case 5:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;w=new A.ParenExpr.ptr(0,(v=g.Rhs,(0>=v.$length?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+0])),0);x=E.SetType(r,u,w);$s=6;case 6:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=new A.BinaryExpr.ptr(m,0,i,x);z=E.SetType(n,q,y);$s=7;case 7:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}d[0]=$append(d[0],new A.AssignStmt.ptr(new M([m]),0,42,new M([z])));$s=-1;return new A.BlockStmt.ptr(0,d[0],0);case 2:$s=-1;return a;}return;}var $f={$blk:G,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.Assign=G;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=E.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/gopherjs/gopherjs/compiler/prelude"]=(function(){var $pkg={},$init;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/neelance/astrewrite"]=(function(){var $pkg={},$init,A,B,C,D,E,F,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,G,H,I,J;A=$packages["fmt"];B=$packages["go/ast"];C=$packages["go/constant"];D=$packages["go/token"];E=$packages["go/types"];F=$pkg.simplifyContext=$newType(0,$kindStruct,"astrewrite.simplifyContext",true,"github.com/neelance/astrewrite",false,function(info_,varCounter_,simplifyCalls_){this.$val=this;if(arguments.length===0){this.info=K.nil;this.varCounter=0;this.simplifyCalls=false;return;}this.info=info_;this.varCounter=varCounter_;this.simplifyCalls=simplifyCalls_;});K=$ptrType(E.Info);L=$sliceType(B.Decl);M=$ptrType(B.GenDecl);N=$ptrType(B.FuncDecl);O=$sliceType(B.Stmt);P=$ptrType(O);Q=$ptrType(B.CommentGroup);R=$ptrType(B.FieldList);S=$ptrType(B.Ident);T=$ptrType(B.FuncType);U=$ptrType(B.BlockStmt);V=$ptrType(B.Scope);W=$ptrType(B.ImportSpec);X=$sliceType(W);Y=$sliceType(S);Z=$sliceType(Q);AA=$ptrType(E.Scope);AB=$sliceType(B.Spec);AC=$ptrType(B.ValueSpec);AD=$sliceType(B.Expr);AE=$ptrType(B.ExprStmt);AF=$ptrType(B.LabeledStmt);AG=$ptrType(B.AssignStmt);AH=$ptrType(B.DeclStmt);AI=$ptrType(B.IfStmt);AJ=$ptrType(B.SwitchStmt);AK=$ptrType(B.TypeSwitchStmt);AL=$ptrType(B.ForStmt);AM=$ptrType(B.RangeStmt);AN=$ptrType(B.IncDecStmt);AO=$ptrType(B.GoStmt);AP=$ptrType(B.SelectStmt);AQ=$ptrType(B.DeferStmt);AR=$ptrType(B.SendStmt);AS=$ptrType(B.ReturnStmt);AT=$ptrType(B.TypeAssertExpr);AU=$ptrType(B.CaseClause);AV=$ptrType(E.Chan);AW=$ptrType(E.Package);AX=$ptrType(E.Var);AY=$sliceType(AX);AZ=$ptrType(B.CallExpr);BA=$ptrType(B.CommClause);BB=$ptrType(B.UnaryExpr);BC=$sliceType(AU);BD=$ptrType(B.BranchStmt);BE=$ptrType(B.FuncLit);BF=$ptrType(B.CompositeLit);BG=$ptrType(B.ParenExpr);BH=$ptrType(B.SelectorExpr);BI=$ptrType(B.IndexExpr);BJ=$ptrType(B.SliceExpr);BK=$ptrType(B.StarExpr);BL=$ptrType(B.BinaryExpr);BM=$ptrType(B.KeyValueExpr);BN=$ptrType(E.Selection);BO=$ptrType(E.Tuple);BP=$sliceType($emptyInterface);BQ=$ptrType(F);G=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=new F.ptr(b,0,c);e=$makeSlice(L,a.Decls.$length);f=a.Decls;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);d.varCounter=0;j=i;if($assertType(j,M,true)[1]){$s=3;continue;}if($assertType(j,N,true)[1]){$s=4;continue;}$s=5;continue;case 3:k=j.$val;m=d.simplifyGenDecl(P.nil,k);$s=6;case 6:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}((h<0||h>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h]=m);$s=5;continue;case 4:l=j.$val;n=d.simplifyBlock(l.Body);$s=7;case 7:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}((h<0||h>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h]=new B.FuncDecl.ptr(l.Doc,l.Recv,l.Name,l.Type,n));case 5:g++;$s=1;continue;case 2:o=new B.File.ptr(a.Doc,a.Package,a.Name,e,a.Scope,a.Imports,a.Unresolved,a.Comments);p=o;(d.info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(p),{k:p,v:(q=$mapIndex(d.info.Scopes,B.Node.keyFor(a)),q!==undefined?q.v:AA.nil)});$s=-1;return o;}return;}var $f={$blk:G,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};$pkg.Simplify=G;F.ptr.prototype.simplifyStmtList=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=this;b[0]=O.nil;d=a;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);$r=c.simplifyStmt((b.$ptr||(b.$ptr=new P(function(){return this.$target[0];},function($v){this.$target[0]=$v;},b))),f);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e++;$s=1;continue;case 2:$s=-1;return b[0];}return;}var $f={$blk:F.ptr.prototype.simplifyStmtList,$c:true,$r,a,b,c,d,e,f,$s};return $f;};F.prototype.simplifyStmtList=function(a){return this.$val.simplifyStmtList(a);};F.ptr.prototype.simplifyGenDecl=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!((b.Tok===85))){$s=-1;return b;}d=$makeSlice(AB,b.Specs.$length);e=b.Specs;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);i=h;if($assertType(i,AC,true)[1]){$s=3;continue;}$s=4;continue;case 3:j=i.$val;l=AD.nil;if(!(j.Values===AD.nil)){$s=6;continue;}$s=7;continue;case 6:l=$makeSlice(AD,j.Values.$length);m=j.Values;n=0;case 8:if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);q=c.simplifyExpr(a,p);$s=10;case 10:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;s=c.info.InitOrder;t=0;while(true){if(!(t=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]);if($interfaceIsEqual(u.Rhs,p)){u.Rhs=r;}t++;}((o<0||o>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+o]=r);n++;$s=8;continue;case 9:case 7:((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]=new B.ValueSpec.ptr(j.Doc,j.Names,j.Type,l,j.Comment));$s=5;continue;case 4:k=i;((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]=k);case 5:f++;$s=1;continue;case 2:$s=-1;return new B.GenDecl.ptr(b.Doc,b.TokPos,85,b.Lparen,d,b.Rparen);}return;}var $f={$blk:F.ptr.prototype.simplifyGenDecl,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};F.prototype.simplifyGenDecl=function(a,b){return this.$val.simplifyGenDecl(a,b);};F.ptr.prototype.simplifyStmt=function(a,b){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if($interfaceIsEqual(b,$ifaceNil)){$s=-1;return;}d=b;if($assertType(d,AE,true)[1]){$s=1;continue;}if($assertType(d,U,true)[1]){$s=2;continue;}if($assertType(d,AF,true)[1]){$s=3;continue;}if($assertType(d,AG,true)[1]){$s=4;continue;}if($assertType(d,AH,true)[1]){$s=5;continue;}if($assertType(d,AI,true)[1]){$s=6;continue;}if($assertType(d,AJ,true)[1]){$s=7;continue;}if($assertType(d,AK,true)[1]){$s=8;continue;}if($assertType(d,AL,true)[1]){$s=9;continue;}if($assertType(d,AM,true)[1]){$s=10;continue;}if($assertType(d,AN,true)[1]){$s=11;continue;}if($assertType(d,AO,true)[1]){$s=12;continue;}if($assertType(d,AP,true)[1]){$s=13;continue;}if($assertType(d,AQ,true)[1]){$s=14;continue;}if($assertType(d,AR,true)[1]){$s=15;continue;}if($assertType(d,AS,true)[1]){$s=16;continue;}$s=17;continue;case 1:e=d.$val;v=c.simplifyExpr2(a,e.X,true);$s=19;case 19:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}a.$set($append(a.$get(),new B.ExprStmt.ptr(v)));$s=18;continue;case 2:f=d.$val;w=c.simplifyBlock(f);$s=20;case 20:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}a.$set($append(a.$get(),w));$s=18;continue;case 3:g=d.$val;$r=c.simplifyStmt(a,g.Stmt);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(z=a.$get(),aa=a.$get().$length-1>>0,((aa<0||aa>=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+aa]=new B.LabeledStmt.ptr(g.Label,g.Colon,(x=a.$get(),y=a.$get().$length-1>>0,((y<0||y>=x.$length)?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+y])))));$s=18;continue;case 4:h=d.$val;ab=$makeSlice(AD,h.Lhs.$length);ac=h.Lhs;ad=0;case 22:if(!(ad=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+ad]);ag=c.simplifyExpr(a,af);$s=24;case 24:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}((ae<0||ae>=ab.$length)?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+ae]=ag);ad++;$s=22;continue;case 23:ah=$makeSlice(AD,h.Rhs.$length);ai=h.Rhs;aj=0;case 25:if(!(aj=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+aj]);am=c.simplifyExpr2(a,al,true);$s=27;case 27:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}((ak<0||ak>=ah.$length)?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+ak]=am);aj++;$s=25;continue;case 26:a.$set($append(a.$get(),new B.AssignStmt.ptr(ab,h.TokPos,h.Tok,ah)));$s=18;continue;case 5:i=d.$val;an=c.simplifyGenDecl(a,$assertType(i.Decl,M));$s=28;case 28:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}a.$set($append(a.$get(),new B.DeclStmt.ptr(an)));$s=18;continue;case 6:j=d.$val;if(!($interfaceIsEqual(j.Init,$ifaceNil))){$s=29;continue;}$s=30;continue;case 29:ao=new B.BlockStmt.ptr(0,O.nil,0);a.$set($append(a.$get(),ao));a=(ao.$ptr_List||(ao.$ptr_List=new P(function(){return this.$target.List;},function($v){this.$target.List=$v;},ao)));$r=c.simplifyStmt(a,j.Init);$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 30:ap=c.simplifyExpr(a,j.Cond);$s=32;case 32:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=c.simplifyBlock(j.Body);$s=33;case 33:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=c.simplifyToStmtList(j.Else);$s=34;case 34:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}at=c.toElseBranch(ar,(as=$mapIndex(c.info.Scopes,B.Node.keyFor(j.Else)),as!==undefined?as.v:AA.nil));$s=35;case 35:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=new B.IfStmt.ptr(j.If,$ifaceNil,ap,aq,at);av=au;(c.info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(av),{k:av,v:(aw=$mapIndex(c.info.Scopes,B.Node.keyFor(j)),aw!==undefined?aw.v:AA.nil)});a.$set($append(a.$get(),au));$s=18;continue;case 7:k=d.$val;$r=c.simplifySwitch(a,k);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 8:l=d.$val;if(!($interfaceIsEqual(l.Init,$ifaceNil))){$s=37;continue;}$s=38;continue;case 37:ax=new B.BlockStmt.ptr(0,O.nil,0);a.$set($append(a.$get(),ax));a=(ax.$ptr_List||(ax.$ptr_List=new P(function(){return this.$target.List;},function($v){this.$target.List=$v;},ax)));$r=c.simplifyStmt(a,l.Init);$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 38:ay=$ifaceNil;az=l.Assign;if($assertType(az,AE,true)[1]){$s=40;continue;}if($assertType(az,AG,true)[1]){$s=41;continue;}$s=42;continue;case 40:ba=az.$val;bd=$assertType(ba.X,AT);be=c.simplifyExpr(a,bd.X);$s=44;case 44:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}ay=new B.ExprStmt.ptr(new B.TypeAssertExpr.ptr(be,bd.Lparen,bd.Type,bd.Rparen));$s=43;continue;case 41:bb=az.$val;bg=$assertType((bf=bb.Rhs,(0>=bf.$length?($throwRuntimeError("index out of range"),undefined):bf.$array[bf.$offset+0])),AT);bh=c.simplifyExpr(a,bg.X);$s=45;case 45:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}ay=new B.AssignStmt.ptr(bb.Lhs,bb.TokPos,bb.Tok,new AD([new B.TypeAssertExpr.ptr(bh,bg.Lparen,bg.Type,bg.Rparen)]));$s=43;continue;case 42:bc=az;$panic(new $String("unexpected type switch assign"));case 43:bi=$makeSlice(O,l.Body.List.$length);bj=l.Body.List;bk=0;case 46:if(!(bk=bj.$length)?($throwRuntimeError("index out of range"),undefined):bj.$array[bj.$offset+bk]);bn=$assertType(bm,AU);bo=c.simplifyStmtList(bn.Body);$s=48;case 48:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=new B.CaseClause.ptr(bn.Case,bn.List,bn.Colon,bo);bq=(br=$mapIndex(c.info.Implicits,B.Node.keyFor(bn)),br!==undefined?[br.v,true]:[$ifaceNil,false]);bs=bq[0];bt=bq[1];if(bt){bu=bp;(c.info.Implicits||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(bu),{k:bu,v:bs});}((bl<0||bl>=bi.$length)?($throwRuntimeError("index out of range"),undefined):bi.$array[bi.$offset+bl]=bp);bk++;$s=46;continue;case 47:bv=new B.TypeSwitchStmt.ptr(l.Switch,$ifaceNil,ay,new B.BlockStmt.ptr(0,bi,0));bw=bv;(c.info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(bw),{k:bw,v:(bx=$mapIndex(c.info.Scopes,B.Node.keyFor(l)),bx!==undefined?bx.v:AA.nil)});a.$set($append(a.$get(),bv));$s=18;continue;case 9:m=d.$val;by=c.simplifyBlock(m.Body);$s=49;case 49:if($c){$c=false;by=by.$blk();}if(by&&by.$blk!==undefined){break s;}bz=new B.ForStmt.ptr(m.For,m.Init,m.Cond,m.Post,by);ca=bz;(c.info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(ca),{k:ca,v:(cb=$mapIndex(c.info.Scopes,B.Node.keyFor(m)),cb!==undefined?cb.v:AA.nil)});a.$set($append(a.$get(),bz));$s=18;continue;case 10:n=d.$val;cc=$ifaceNil;ce=c.info.TypeOf(n.X);$s=50;case 50:if($c){$c=false;ce=ce.$blk();}if(ce&&ce.$blk!==undefined){break s;}cf=ce.Underlying();$s=51;case 51:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}cd=cf;if($assertType(cd,AV,true)[1]){$s=52;continue;}$s=53;continue;case 52:cg=cd.$val;ci=n.Key;cj=n.Tok;if($interfaceIsEqual(ci,$ifaceNil)){ci=B.NewIdent("_");cj=47;}cl=c.newIdent((ck=E.Typ,(1>=ck.$length?($throwRuntimeError("index out of range"),undefined):ck.$array[ck.$offset+1])));$s=55;case 55:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}cm=cl;if(n.Tok===42){a.$set($append(a.$get(),new B.DeclStmt.ptr(new B.GenDecl.ptr(Q.nil,0,85,0,new AB([new B.ValueSpec.ptr(Q.nil,new Y([cm]),B.NewIdent("bool"),AD.nil,Q.nil)]),0))));}cn=c.newVar(a,n.X);$s=56;case 56:if($c){$c=false;cn=cn.$blk();}if(cn&&cn.$blk!==undefined){break s;}cp=c.setType(new B.UnaryExpr.ptr(0,36,cn),E.NewTuple(new AY([E.NewVar(0,AW.nil,"",cg.Elem()),E.NewVar(0,AW.nil,"",(co=E.Typ,(1>=co.$length?($throwRuntimeError("index out of range"),undefined):co.$array[co.$offset+1])))])));$s=57;case 57:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}cr=new O([new B.AssignStmt.ptr(new AD([ci,cm]),n.TokPos,cj,new AD([cp])),new B.IfStmt.ptr(0,$ifaceNil,c.setType(new B.UnaryExpr.ptr(0,43,cm),(cq=E.Typ,(1>=cq.$length?($throwRuntimeError("index out of range"),undefined):cq.$array[cq.$offset+1]))),new B.BlockStmt.ptr(0,new O([new B.BranchStmt.ptr(0,61,S.nil)]),0),$ifaceNil)]);cs=c.simplifyStmtList(n.Body.List);$s=58;case 58:if($c){$c=false;cs=cs.$blk();}if(cs&&cs.$blk!==undefined){break s;}ct=cs;cc=new B.ForStmt.ptr(n.For,$ifaceNil,$ifaceNil,$ifaceNil,new B.BlockStmt.ptr(n.Body.Lbrace,$appendSlice(cr,ct),n.Body.Rbrace));$s=54;continue;case 53:ch=cd;cu=c.simplifyBlock(n.Body);$s=59;case 59:if($c){$c=false;cu=cu.$blk();}if(cu&&cu.$blk!==undefined){break s;}cc=new B.RangeStmt.ptr(n.For,n.Key,n.Value,n.TokPos,n.Tok,n.X,cu);case 54:cv=cc;(c.info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(cv),{k:cv,v:(cw=$mapIndex(c.info.Scopes,B.Node.keyFor(n)),cw!==undefined?cw.v:AA.nil)});a.$set($append(a.$get(),cc));$s=18;continue;case 11:o=d.$val;cx=c.simplifyExpr(a,o.X);$s=60;case 60:if($c){$c=false;cx=cx.$blk();}if(cx&&cx.$blk!==undefined){break s;}a.$set($append(a.$get(),new B.IncDecStmt.ptr(cx,o.TokPos,o.Tok)));$s=18;continue;case 12:p=d.$val;cy=c.simplifyCall(a,p.Call);$s=61;case 61:if($c){$c=false;cy=cy.$blk();}if(cy&&cy.$blk!==undefined){break s;}a.$set($append(a.$get(),new B.GoStmt.ptr(p.Go,cy)));$s=18;continue;case 13:q=d.$val;cz=$makeSlice(O,q.Body.List.$length);da=q.Body.List;db=0;case 62:if(!(db=da.$length)?($throwRuntimeError("index out of range"),undefined):da.$array[da.$offset+db]);df=$assertType(de,BA);dg=$ifaceNil;dc[0]=O.nil;dh=df.Comm;if($assertType(dh,AE,true)[1]){$s=64;continue;}if($assertType(dh,AG,true)[1]){$s=65;continue;}if($assertType(dh,AR,true)[1]){$s=66;continue;}if(dh===$ifaceNil){$s=67;continue;}$s=68;continue;case 64:di=dh.$val;dn=$assertType(di.X,BB);if(!((dn.Op===36))){$panic(new $String("unexpected comm clause"));}dp=c.simplifyExpr(a,dn.X);$s=70;case 70:if($c){$c=false;dp=dp.$blk();}if(dp&&dp.$blk!==undefined){break s;}dg=new B.ExprStmt.ptr(new B.UnaryExpr.ptr(dn.OpPos,36,dp));$s=69;continue;case 65:dj=dh.$val;dr=$assertType((dq=dj.Rhs,(0>=dq.$length?($throwRuntimeError("index out of range"),undefined):dq.$array[dq.$offset+0])),BB);if(!((dr.Op===36))){$panic(new $String("unexpected comm clause"));}ds=false;dt=dj.Lhs;du=0;while(true){if(!(du=dt.$length)?($throwRuntimeError("index out of range"),undefined):dt.$array[dt.$offset+du]);if(c.simplifyCalls&&J(dv)){ds=true;}du++;}dw=dj.Lhs;dx=dj.Tok;if(ds){$s=71;continue;}$s=72;continue;case 71:dy=dw;dz=0;case 73:if(!(dz=dy.$length)?($throwRuntimeError("index out of range"),undefined):dy.$array[dy.$offset+dz]);ec=c.info.TypeOf(eb);$s=75;case 75:if($c){$c=false;ec=ec.$blk();}if(ec&&ec.$blk!==undefined){break s;}ed=c.newIdent(ec);$s=76;case 76:if($c){$c=false;ed=ed.$blk();}if(ed&&ed.$blk!==undefined){break s;}ee=ed;ef=c.simplifyExpr((dc.$ptr||(dc.$ptr=new P(function(){return this.$target[0];},function($v){this.$target[0]=$v;},dc))),eb);$s=77;case 77:if($c){$c=false;ef=ef.$blk();}if(ef&&ef.$blk!==undefined){break s;}eg=I(ef,dj.Tok,ee);$s=78;case 78:if($c){$c=false;eg=eg.$blk();}if(eg&&eg.$blk!==undefined){break s;}dc[0]=$append(dc[0],eg);((ea<0||ea>=dw.$length)?($throwRuntimeError("index out of range"),undefined):dw.$array[dw.$offset+ea]=ee);dz++;$s=73;continue;case 74:dx=47;case 72:eh=c.simplifyExpr(a,dr);$s=79;case 79:if($c){$c=false;eh=eh.$blk();}if(eh&&eh.$blk!==undefined){break s;}dg=new B.AssignStmt.ptr(dw,0,dx,new AD([eh]));$s=69;continue;case 66:dk=dh.$val;ei=c.simplifyExpr(a,dk.Chan);$s=80;case 80:if($c){$c=false;ei=ei.$blk();}if(ei&&ei.$blk!==undefined){break s;}ej=c.simplifyExpr(a,dk.Value);$s=81;case 81:if($c){$c=false;ej=ej.$blk();}if(ej&&ej.$blk!==undefined){break s;}dg=new B.SendStmt.ptr(ei,dk.Arrow,ej);$s=69;continue;case 67:dl=dh;dg=$ifaceNil;$s=69;continue;case 68:dm=dh;$panic(new $String("unexpected comm clause"));case 69:ek=dc[0];el=c.simplifyStmtList(df.Body);$s=82;case 82:if($c){$c=false;el=el.$blk();}if(el&&el.$blk!==undefined){break s;}em=el;en=new B.CommClause.ptr(df.Case,dg,df.Colon,$appendSlice(ek,em));eo=en;(c.info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(eo),{k:eo,v:(ep=$mapIndex(c.info.Scopes,B.Node.keyFor(df)),ep!==undefined?ep.v:AA.nil)});((dd<0||dd>=cz.$length)?($throwRuntimeError("index out of range"),undefined):cz.$array[cz.$offset+dd]=en);db++;$s=62;continue;case 63:a.$set($append(a.$get(),new B.SelectStmt.ptr(q.Select,new B.BlockStmt.ptr(0,cz,0))));$s=18;continue;case 14:r=d.$val;eq=c.simplifyCall(a,r.Call);$s=83;case 83:if($c){$c=false;eq=eq.$blk();}if(eq&&eq.$blk!==undefined){break s;}a.$set($append(a.$get(),new B.DeferStmt.ptr(r.Defer,eq)));$s=18;continue;case 15:s=d.$val;er=c.simplifyExpr(a,s.Chan);$s=84;case 84:if($c){$c=false;er=er.$blk();}if(er&&er.$blk!==undefined){break s;}es=c.simplifyExpr(a,s.Value);$s=85;case 85:if($c){$c=false;es=es.$blk();}if(es&&es.$blk!==undefined){break s;}a.$set($append(a.$get(),new B.SendStmt.ptr(er,s.Arrow,es)));$s=18;continue;case 16:t=d.$val;et=c.simplifyExprList(a,t.Results);$s=86;case 86:if($c){$c=false;et=et.$blk();}if(et&&et.$blk!==undefined){break s;}a.$set($append(a.$get(),new B.ReturnStmt.ptr(t.Return,et)));$s=18;continue;case 17:u=d;a.$set($append(a.$get(),u));case 18:$s=-1;return;}return;}var $f={$blk:F.ptr.prototype.simplifyStmt,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};F.prototype.simplifyStmt=function(a,b){return this.$val.simplifyStmt(a,b);};F.ptr.prototype.simplifyBlock=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(a===U.nil){$s=-1;return U.nil;}c=b.simplifyStmtList(a.List);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=new B.BlockStmt.ptr(a.Lbrace,c,a.Rbrace);e=d;(b.info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(e),{k:e,v:(f=$mapIndex(b.info.Scopes,B.Node.keyFor(a)),f!==undefined?f.v:AA.nil)});$s=-1;return d;}return;}var $f={$blk:F.ptr.prototype.simplifyBlock,$c:true,$r,a,b,c,d,e,f,$s};return $f;};F.prototype.simplifyBlock=function(a){return this.$val.simplifyBlock(a);};F.ptr.prototype.simplifySwitch=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=new B.CaseClause.ptr(0,AD.nil,0,O.nil);e=new B.SwitchStmt.ptr(b.Switch,$ifaceNil,$ifaceNil,new B.BlockStmt.ptr(0,new O([d]),0));f=e;(c.info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(f),{k:f,v:(g=$mapIndex(c.info.Scopes,B.Node.keyFor(b)),g!==undefined?g.v:AA.nil)});h=d;(c.info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(h),{k:h,v:(i=$mapIndex(c.info.Scopes,B.Node.keyFor(b)),i!==undefined?i.v:AA.nil)});a.$set($append(a.$get(),e));a=(d.$ptr_Body||(d.$ptr_Body=new P(function(){return this.$target.Body;},function($v){this.$target.Body=$v;},d)));$r=c.simplifyStmt(a,b.Init);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=c.simplifyCaseClauses(b.Body.List);k=j[0];l=j[1];m=c.makeTag(a,b.Tag,!((k.$length===0)));$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=a.$get();p=c.switchToIfElse(n,k,l);$s=3;case 3:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=H(p);$s=4;case 4:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;a.$set($appendSlice(o,r));$s=-1;return;}return;}var $f={$blk:F.ptr.prototype.simplifySwitch,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};F.prototype.simplifySwitch=function(a,b){return this.$val.simplifySwitch(a,b);};F.ptr.prototype.makeTag=function(a,b,c){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if($interfaceIsEqual(b,$ifaceNil)){e=B.NewIdent("true");f=e;(d.info.Types||$throwRuntimeError("assignment to entry in nil map")).set(B.Expr.keyFor(f),{k:f,v:new E.TypeAndValue.ptr(0,(g=E.Typ,(1>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+1])),C.MakeBool(true))});$s=-1;return e;}if(!c){a.$set($append(a.$get(),I(B.NewIdent("_"),42,b)));$s=-1;return $ifaceNil;}h=d.newVar(a,b);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=2;case 2:return i;}return;}var $f={$blk:F.ptr.prototype.makeTag,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};F.prototype.makeTag=function(a,b,c){return this.$val.makeTag(a,b,c);};F.ptr.prototype.simplifyCaseClauses=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;b=BC.nil;c=AU.nil;d=this;e=BC.nil;f=a;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);i=$assertType(h,AU);j=new B.CaseClause.ptr(i.Case,i.List,i.Colon,O.nil);k=j;(d.info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(k),{k:k,v:(l=$mapIndex(d.info.Scopes,B.Node.keyFor(i)),l!==undefined?l.v:AA.nil)});m=i.Body;n=false;if(!((m.$length===0))){o=$assertType((p=m.$length-1>>0,((p<0||p>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+p])),BD,true);q=o[0];r=o[1];if(r&&(q.Tok===69)){m=$subslice(m,0,(m.$length-1>>0));n=true;}}e=$append(e,j);s=e;t=0;while(true){if(!(t=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]);u.Body=$appendSlice(u.Body,m);t++;}if(!n){e=BC.nil;}if(i.List.$length===0){c=j;g++;continue;}b=$append(b,j);g++;}return[b,c];};F.prototype.simplifyCaseClauses=function(a){return this.$val.simplifyCaseClauses(a);};F.ptr.prototype.switchToIfElse=function(a,b,c){var{a,aa,ab,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=this;if(b.$length===0){$s=1;continue;}$s=2;continue;case 1:if(!(c===AU.nil)){$s=3;continue;}$s=4;continue;case 3:f=e.simplifyStmtList(c.Body);$s=5;case 5:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}h=e.toElseBranch(f,(g=$mapIndex(e.info.Scopes,B.Node.keyFor(c)),g!==undefined?g.v:AA.nil));$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=7;case 7:return i;case 4:$s=-1;return $ifaceNil;case 2:j=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]);k=$makeSlice(AD,j.List.$length);l=j.List;m=0;case 8:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);p=new B.ParenExpr.ptr(0,o,0);q=e.info.TypeOf(o);$s=10;case 10:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;s=e.setType(p,r);$s=11;case 11:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}u=e.setType(new B.BinaryExpr.ptr(a,0,39,s),(t=E.Typ,(1>=t.$length?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+1])));$s=12;case 12:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}((n<0||n>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+n]=u);m++;$s=8;continue;case 9:d[0]=O.nil;v=e.simplifyExpr((d.$ptr||(d.$ptr=new P(function(){return this.$target[0];},function($v){this.$target[0]=$v;},d))),e.disjunction(k));$s=13;case 13:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=e.simplifyStmtList(j.Body);$s=14;case 14:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=e.switchToIfElse(a,$subslice(b,1),c);$s=15;case 15:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=new B.IfStmt.ptr(j.Case,$ifaceNil,v,new B.BlockStmt.ptr(0,w,0),x);z=y;(e.info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(z),{k:z,v:(aa=$mapIndex(e.info.Scopes,B.Node.keyFor(j)),aa!==undefined?aa.v:AA.nil)});d[0]=$append(d[0],y);$s=-1;return e.toElseBranch(d[0],(ab=$mapIndex(e.info.Scopes,B.Node.keyFor(j)),ab!==undefined?ab.v:AA.nil));}return;}var $f={$blk:F.ptr.prototype.switchToIfElse,$c:true,$r,a,aa,ab,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};F.prototype.switchToIfElse=function(a,b,c){return this.$val.switchToIfElse(a,b,c);};F.ptr.prototype.disjunction=function(a){var a,b,c;b=this;if(a.$length===1){return(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]);}return b.setType(new B.BinaryExpr.ptr((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]),0,35,b.disjunction($subslice(a,1))),(c=E.Typ,(1>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+1])));};F.prototype.disjunction=function(a){return this.$val.disjunction(a);};F.ptr.prototype.simplifyToStmtList=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=[b];b[0]=O.nil;c=this;$r=c.simplifyStmt((b.$ptr||(b.$ptr=new P(function(){return this.$target[0];},function($v){this.$target[0]=$v;},b))),a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b[0];}return;}var $f={$blk:F.ptr.prototype.simplifyToStmtList,$c:true,$r,a,b,c,$s};return $f;};F.prototype.simplifyToStmtList=function(a){return this.$val.simplifyToStmtList(a);};F.ptr.prototype.toElseBranch=function(a,b){var a,b,c,d,e,f,g,h;c=this;if(a.$length===0){return $ifaceNil;}if(a.$length===1){d=(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]);if($assertType(d,AI,true)[1]||$assertType(d,U,true)[1]){e=d;f=e;(c.info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(f),{k:f,v:b});return e;}}g=new B.BlockStmt.ptr(0,a,0);h=g;(c.info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(B.Node.keyFor(h),{k:h,v:b});return g;};F.prototype.toElseBranch=function(a,b){return this.$val.toElseBranch(a,b);};H=function(a){var a,b,c,d;if($interfaceIsEqual(a,$ifaceNil)){return O.nil;}b=$assertType(a,U,true);c=b[0];d=b[1];if(d){return c.List;}return new O([a]);};F.ptr.prototype.simplifyExpr=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.simplifyExpr2(a,b,false);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:F.ptr.prototype.simplifyExpr,$c:true,$r,a,b,c,d,e,$s};return $f;};F.prototype.simplifyExpr=function(a,b){return this.$val.simplifyExpr(a,b);};F.ptr.prototype.simplifyExpr2=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.simplifyExpr3(a,b,c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=(h=$mapIndex(d.info.Types,B.Expr.keyFor(b)),h!==undefined?[h.v,true]:[new E.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil),false]);i=$clone(g[0],E.TypeAndValue);j=g[1];if(j){k=f;(d.info.Types||$throwRuntimeError("assignment to entry in nil map")).set(B.Expr.keyFor(k),{k:k,v:$clone(i,E.TypeAndValue)});}$s=-1;return f;}return;}var $f={$blk:F.ptr.prototype.simplifyExpr2,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};F.prototype.simplifyExpr2=function(a,b,c){return this.$val.simplifyExpr2(a,b,c);};F.ptr.prototype.simplifyExpr3=function(a,b,c){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=this;f=b;if($assertType(f,BE,true)[1]){$s=1;continue;}if($assertType(f,BF,true)[1]){$s=2;continue;}if($assertType(f,BG,true)[1]){$s=3;continue;}if($assertType(f,BH,true)[1]){$s=4;continue;}if($assertType(f,BI,true)[1]){$s=5;continue;}if($assertType(f,BJ,true)[1]){$s=6;continue;}if($assertType(f,AT,true)[1]){$s=7;continue;}if($assertType(f,AZ,true)[1]){$s=8;continue;}if($assertType(f,BK,true)[1]){$s=9;continue;}if($assertType(f,BB,true)[1]){$s=10;continue;}if($assertType(f,BL,true)[1]){$s=11;continue;}$s=12;continue;case 1:g=f.$val;s=e.simplifyStmtList(g.Body.List);$s=14;case 14:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=new B.FuncLit.ptr(g.Type,new B.BlockStmt.ptr(0,s,0));$s=15;case 15:return t;case 2:h=f.$val;u=$makeSlice(AD,h.Elts.$length);v=h.Elts;w=0;case 16:if(!(w=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w]);z=$assertType(y,BM,true);aa=z[0];ab=z[1];if(ab){$s=18;continue;}$s=19;continue;case 18:ac=e.simplifyExpr(a,aa.Value);$s=20;case 20:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}((x<0||x>=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+x]=new B.KeyValueExpr.ptr(aa.Key,aa.Colon,ac));w++;$s=16;continue;case 19:ad=e.simplifyExpr(a,y);$s=21;case 21:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}((x<0||x>=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+x]=ad);w++;$s=16;continue;case 17:$s=-1;return new B.CompositeLit.ptr(h.Type,h.Lbrace,u,h.Rbrace,false);case 3:i=f.$val;ae=e.simplifyExpr(a,i.X);$s=22;case 22:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=new B.ParenExpr.ptr(i.Lparen,ae,i.Rparen);$s=23;case 23:return af;case 4:j=f.$val;ag=e.simplifyExpr(a,j.X);$s=24;case 24:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=new B.SelectorExpr.ptr(ag,j.Sel);ai=(aj=$mapIndex(e.info.Selections,BH.keyFor(j)),aj!==undefined?[aj.v,true]:[BN.nil,false]);ak=ai[0];al=ai[1];if(al){am=ah;(e.info.Selections||$throwRuntimeError("assignment to entry in nil map")).set(BH.keyFor(am),{k:am,v:ak});}$s=-1;return ah;case 5:k=f.$val;an=e.simplifyExpr(a,k.X);$s=25;case 25:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}ao=e.simplifyExpr(a,k.Index);$s=26;case 26:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=new B.IndexExpr.ptr(an,k.Lbrack,ao,k.Rbrack);$s=27;case 27:return ap;case 6:l=f.$val;aq=e.simplifyExpr(a,l.X);$s=28;case 28:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=e.simplifyExpr(a,l.Low);$s=29;case 29:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=e.simplifyExpr(a,l.High);$s=30;case 30:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=e.simplifyExpr(a,l.Max);$s=31;case 31:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=new B.SliceExpr.ptr(aq,l.Lbrack,ar,as,at,l.Slice3,l.Rbrack);$s=32;case 32:return au;case 7:m=f.$val;av=e.simplifyExpr(a,m.X);$s=33;case 33:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=new B.TypeAssertExpr.ptr(av,m.Lparen,m.Type,m.Rparen);$s=34;case 34:return aw;case 8:n=f.$val;ax=e.simplifyCall(a,n);$s=35;case 35:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;if(c||!e.simplifyCalls){$s=-1;return ay;}az=e.newVar(a,ay);$s=36;case 36:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;$s=37;case 37:return ba;case 9:o=f.$val;bb=e.simplifyExpr(a,o.X);$s=38;case 38:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=new B.StarExpr.ptr(o.Star,bb);$s=39;case 39:return bc;case 10:p=f.$val;bd=e.simplifyExpr(a,p.X);$s=40;case 40:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=new B.UnaryExpr.ptr(p.OpPos,p.Op,bd);$s=41;case 41:return be;case 11:q=f.$val;if(((q.Op===34)||(q.Op===35))&&e.simplifyCalls&&J(q.Y)){$s=42;continue;}$s=43;continue;case 42:bf=e.newVar(a,q.X);$s=44;case 44:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bg=bf;bh=bg;if(q.Op===35){bh=new B.UnaryExpr.ptr(0,43,bh);}d[0]=O.nil;bi=bg;bj=e.simplifyExpr2((d.$ptr||(d.$ptr=new P(function(){return this.$target[0];},function($v){this.$target[0]=$v;},d))),q.Y,true);$s=45;case 45:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bk=bj;bl=I(bi,42,bk);$s=46;case 46:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}d[0]=$append(d[0],bl);a.$set($append(a.$get(),new B.IfStmt.ptr(0,$ifaceNil,bh,new B.BlockStmt.ptr(0,d[0],0),$ifaceNil)));$s=-1;return bg;case 43:bm=e.simplifyExpr(a,q.X);$s=47;case 47:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bn=e.simplifyExpr(a,q.Y);$s=48;case 48:if($c){$c=false;bn=bn.$blk();}if(bn&&bn.$blk!==undefined){break s;}bo=new B.BinaryExpr.ptr(bm,q.OpPos,q.Op,bn);$s=49;case 49:return bo;case 12:r=f;$s=-1;return r;case 13:$s=-1;return $ifaceNil;}return;}var $f={$blk:F.ptr.prototype.simplifyExpr3,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};F.prototype.simplifyExpr3=function(a,b,c){return this.$val.simplifyExpr3(a,b,c);};F.ptr.prototype.simplifyCall=function(a,b){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.simplifyExpr(a,b.Fun);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=c.simplifyArgs(a,b.Args);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=new B.CallExpr.ptr(d,b.Lparen,e,b.Ellipsis,b.Rparen);$s=3;case 3:return f;}return;}var $f={$blk:F.ptr.prototype.simplifyCall,$c:true,$r,a,b,c,d,e,f,$s};return $f;};F.prototype.simplifyCall=function(a,b){return this.$val.simplifyCall(a,b);};F.ptr.prototype.simplifyArgs=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b.$length===1){$s=1;continue;}$s=2;continue;case 1:e=c.info.TypeOf((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]));$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=$assertType(e,BO,true);f=d[0];g=d[1];if(g&&c.simplifyCalls){$s=4;continue;}$s=5;continue;case 4:h=c.simplifyExpr2(a,(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]),true);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=$makeSlice(AD,f.Len());k=j;l=0;case 7:if(!(l=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+m]=n);l++;$s=7;continue;case 8:a.$set($append(a.$get(),new B.AssignStmt.ptr(j,0,47,new AD([i]))));$s=-1;return j;case 5:case 2:o=c.simplifyExprList(a,b);$s=10;case 10:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;$s=11;case 11:return p;}return;}var $f={$blk:F.ptr.prototype.simplifyArgs,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};F.prototype.simplifyArgs=function(a,b){return this.$val.simplifyArgs(a,b);};F.ptr.prototype.simplifyExprList=function(a,b){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b===AD.nil){$s=-1;return AD.nil;}d=$makeSlice(AD,b.$length);e=b;f=0;case 1:if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);i=c.simplifyExpr(a,h);$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]=i);f++;$s=1;continue;case 2:$s=-1;return d;}return;}var $f={$blk:F.ptr.prototype.simplifyExprList,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};F.prototype.simplifyExprList=function(a,b){return this.$val.simplifyExprList(a,b);};F.ptr.prototype.newVar=function(a,b){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.info.TypeOf(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=c.newIdent(d);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;a.$set($append(a.$get(),I(f,47,b)));$s=-1;return f;}return;}var $f={$blk:F.ptr.prototype.newVar,$c:true,$r,a,b,c,d,e,f,$s};return $f;};F.prototype.newVar=function(a,b){return this.$val.newVar(a,b);};F.ptr.prototype.newIdent=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;b.varCounter=b.varCounter+(1)>>0;c=A.Sprintf("_%d",new BP([new $Int(b.varCounter)]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=B.NewIdent(c);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=e;(b.info.Types||$throwRuntimeError("assignment to entry in nil map")).set(B.Expr.keyFor(f),{k:f,v:new E.TypeAndValue.ptr(0,a,$ifaceNil)});g=e;(b.info.Uses||$throwRuntimeError("assignment to entry in nil map")).set(S.keyFor(g),{k:g,v:E.NewVar(0,AW.nil,e.Name,a)});$s=-1;return e;}return;}var $f={$blk:F.ptr.prototype.newIdent,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};F.prototype.newIdent=function(a){return this.$val.newIdent(a);};F.ptr.prototype.setType=function(a,b){var a,b,c,d;c=this;d=a;(c.info.Types||$throwRuntimeError("assignment to entry in nil map")).set(B.Expr.keyFor(d),{k:d,v:new E.TypeAndValue.ptr(0,b,$ifaceNil)});return a;};F.prototype.setType=function(a,b){return this.$val.setType(a,b);};I=function(a,b,c){var a,b,c;return new B.AssignStmt.ptr(new AD([a]),0,b,new AD([c]));};J=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;b=a;if($assertType(b,AZ,true)[1]){c=b.$val;return true;}else if($assertType(b,BF,true)[1]){d=b.$val;o=d.Elts;p=0;while(true){if(!(p=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]);if(J(q)){return true;}p++;}return false;}else if($assertType(b,BM,true)[1]){e=b.$val;return J(e.Key)||J(e.Value);}else if($assertType(b,BG,true)[1]){f=b.$val;return J(f.X);}else if($assertType(b,BH,true)[1]){g=b.$val;return J(g.X);}else if($assertType(b,BI,true)[1]){h=b.$val;return J(h.X)||J(h.Index);}else if($assertType(b,BJ,true)[1]){i=b.$val;return J(i.X)||J(i.Low)||J(i.High)||J(i.Max);}else if($assertType(b,AT,true)[1]){j=b.$val;return J(j.X);}else if($assertType(b,BK,true)[1]){k=b.$val;return J(k.X);}else if($assertType(b,BB,true)[1]){l=b.$val;return J(l.X);}else if($assertType(b,BL,true)[1]){m=b.$val;return J(m.X)||J(m.Y);}else{n=b;return false;}};$pkg.ContainsCall=J;BQ.methods=[{prop:"simplifyStmtList",name:"simplifyStmtList",pkg:"github.com/neelance/astrewrite",typ:$funcType([O],[O],false)},{prop:"simplifyGenDecl",name:"simplifyGenDecl",pkg:"github.com/neelance/astrewrite",typ:$funcType([P,M],[M],false)},{prop:"simplifyStmt",name:"simplifyStmt",pkg:"github.com/neelance/astrewrite",typ:$funcType([P,B.Stmt],[],false)},{prop:"simplifyBlock",name:"simplifyBlock",pkg:"github.com/neelance/astrewrite",typ:$funcType([U],[U],false)},{prop:"simplifySwitch",name:"simplifySwitch",pkg:"github.com/neelance/astrewrite",typ:$funcType([P,AJ],[],false)},{prop:"makeTag",name:"makeTag",pkg:"github.com/neelance/astrewrite",typ:$funcType([P,B.Expr,$Bool],[B.Expr],false)},{prop:"simplifyCaseClauses",name:"simplifyCaseClauses",pkg:"github.com/neelance/astrewrite",typ:$funcType([O],[BC,AU],false)},{prop:"switchToIfElse",name:"switchToIfElse",pkg:"github.com/neelance/astrewrite",typ:$funcType([B.Expr,BC,AU],[B.Stmt],false)},{prop:"disjunction",name:"disjunction",pkg:"github.com/neelance/astrewrite",typ:$funcType([AD],[B.Expr],false)},{prop:"simplifyToStmtList",name:"simplifyToStmtList",pkg:"github.com/neelance/astrewrite",typ:$funcType([B.Stmt],[O],false)},{prop:"toElseBranch",name:"toElseBranch",pkg:"github.com/neelance/astrewrite",typ:$funcType([O,AA],[B.Stmt],false)},{prop:"simplifyExpr",name:"simplifyExpr",pkg:"github.com/neelance/astrewrite",typ:$funcType([P,B.Expr],[B.Expr],false)},{prop:"simplifyExpr2",name:"simplifyExpr2",pkg:"github.com/neelance/astrewrite",typ:$funcType([P,B.Expr,$Bool],[B.Expr],false)},{prop:"simplifyExpr3",name:"simplifyExpr3",pkg:"github.com/neelance/astrewrite",typ:$funcType([P,B.Expr,$Bool],[B.Expr],false)},{prop:"simplifyCall",name:"simplifyCall",pkg:"github.com/neelance/astrewrite",typ:$funcType([P,AZ],[AZ],false)},{prop:"simplifyArgs",name:"simplifyArgs",pkg:"github.com/neelance/astrewrite",typ:$funcType([P,AD],[AD],false)},{prop:"simplifyExprList",name:"simplifyExprList",pkg:"github.com/neelance/astrewrite",typ:$funcType([P,AD],[AD],false)},{prop:"newVar",name:"newVar",pkg:"github.com/neelance/astrewrite",typ:$funcType([P,B.Expr],[B.Expr],false)},{prop:"newIdent",name:"newIdent",pkg:"github.com/neelance/astrewrite",typ:$funcType([E.Type],[S],false)},{prop:"setType",name:"setType",pkg:"github.com/neelance/astrewrite",typ:$funcType([B.Expr,E.Type],[B.Expr],false)}];F.init("github.com/neelance/astrewrite",[{prop:"info",name:"info",embedded:false,exported:false,typ:K,tag:""},{prop:"varCounter",name:"varCounter",embedded:false,exported:false,typ:$Int,tag:""},{prop:"simplifyCalls",name:"simplifyCalls",embedded:false,exported:false,typ:$Bool,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/lazyregexp"]=(function(){var $pkg={},$init,A,B,C,D,E,H,I,J,K,L,M,F,a,G;A=$packages["os"];B=$packages["regexp"];C=$packages["strings"];D=$packages["sync"];E=$pkg.Regexp=$newType(0,$kindStruct,"lazyregexp.Regexp",true,"internal/lazyregexp",true,function(str_,once_,rx_){this.$val=this;if(arguments.length===0){this.str="";this.once=new D.Once.ptr(0,new D.Mutex.ptr(0,0));this.rx=H.nil;return;}this.str=str_;this.once=once_;this.rx=rx_;});H=$ptrType(B.Regexp);I=$sliceType($Uint8);J=$sliceType(I);K=$sliceType($String);L=$sliceType($Int);M=$ptrType(E);E.ptr.prototype.re=function(){var{b,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.once.Do($methodVal(b,"build"));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b.rx;}return;}var $f={$blk:E.ptr.prototype.re,$c:true,$r,b,$s};return $f;};E.prototype.re=function(){return this.$val.re();};E.ptr.prototype.build=function(){var{b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=B.MustCompile(b.str);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b.rx=c;b.str="";$s=-1;return;}return;}var $f={$blk:E.ptr.prototype.build,$c:true,$r,b,c,$s};return $f;};E.prototype.build=function(){return this.$val.build();};E.ptr.prototype.FindSubmatch=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.re();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.FindSubmatch(b);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=3;case 3:return f;}return;}var $f={$blk:E.ptr.prototype.FindSubmatch,$c:true,$r,b,c,d,e,f,$s};return $f;};E.prototype.FindSubmatch=function(b){return this.$val.FindSubmatch(b);};E.ptr.prototype.FindStringSubmatch=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.re();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.FindStringSubmatch(b);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=3;case 3:return f;}return;}var $f={$blk:E.ptr.prototype.FindStringSubmatch,$c:true,$r,b,c,d,e,f,$s};return $f;};E.prototype.FindStringSubmatch=function(b){return this.$val.FindStringSubmatch(b);};E.ptr.prototype.FindStringSubmatchIndex=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.re();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.FindStringSubmatchIndex(b);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=3;case 3:return f;}return;}var $f={$blk:E.ptr.prototype.FindStringSubmatchIndex,$c:true,$r,b,c,d,e,f,$s};return $f;};E.prototype.FindStringSubmatchIndex=function(b){return this.$val.FindStringSubmatchIndex(b);};E.ptr.prototype.ReplaceAllString=function(b,c){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.re();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e.ReplaceAllString(b,c);$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=3;case 3:return g;}return;}var $f={$blk:E.ptr.prototype.ReplaceAllString,$c:true,$r,b,c,d,e,f,g,$s};return $f;};E.prototype.ReplaceAllString=function(b,c){return this.$val.ReplaceAllString(b,c);};E.ptr.prototype.FindString=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.re();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.FindString(b);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=3;case 3:return f;}return;}var $f={$blk:E.ptr.prototype.FindString,$c:true,$r,b,c,d,e,f,$s};return $f;};E.prototype.FindString=function(b){return this.$val.FindString(b);};E.ptr.prototype.FindAllString=function(b,c){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.re();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e.FindAllString(b,c);$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=3;case 3:return g;}return;}var $f={$blk:E.ptr.prototype.FindAllString,$c:true,$r,b,c,d,e,f,g,$s};return $f;};E.prototype.FindAllString=function(b,c){return this.$val.FindAllString(b,c);};E.ptr.prototype.MatchString=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.re();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.MatchString(b);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=3;case 3:return f;}return;}var $f={$blk:E.ptr.prototype.MatchString,$c:true,$r,b,c,d,e,f,$s};return $f;};E.prototype.MatchString=function(b){return this.$val.MatchString(b);};E.ptr.prototype.SubexpNames=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.re();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.SubexpNames();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=3;case 3:return e;}return;}var $f={$blk:E.ptr.prototype.SubexpNames,$c:true,$r,b,c,d,e,$s};return $f;};E.prototype.SubexpNames=function(){return this.$val.SubexpNames();};G=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=new E.ptr(b,new D.Once.ptr(0,new D.Mutex.ptr(0,0)),H.nil);if(F){$s=1;continue;}$s=2;continue;case 1:d=c.re();$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;case 2:$s=-1;return c;}return;}var $f={$blk:G,$c:true,$r,b,c,d,$s};return $f;};$pkg.New=G;M.methods=[{prop:"re",name:"re",pkg:"internal/lazyregexp",typ:$funcType([],[H],false)},{prop:"build",name:"build",pkg:"internal/lazyregexp",typ:$funcType([],[],false)},{prop:"FindSubmatch",name:"FindSubmatch",pkg:"",typ:$funcType([I],[J],false)},{prop:"FindStringSubmatch",name:"FindStringSubmatch",pkg:"",typ:$funcType([$String],[K],false)},{prop:"FindStringSubmatchIndex",name:"FindStringSubmatchIndex",pkg:"",typ:$funcType([$String],[L],false)},{prop:"ReplaceAllString",name:"ReplaceAllString",pkg:"",typ:$funcType([$String,$String],[$String],false)},{prop:"FindString",name:"FindString",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"FindAllString",name:"FindAllString",pkg:"",typ:$funcType([$String,$Int],[K],false)},{prop:"MatchString",name:"MatchString",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"SubexpNames",name:"SubexpNames",pkg:"",typ:$funcType([],[K],false)}];E.init("internal/lazyregexp",[{prop:"str",name:"str",embedded:false,exported:false,typ:$String,tag:""},{prop:"once",name:"once",embedded:false,exported:false,typ:D.Once,tag:""},{prop:"rx",name:"rx",embedded:false,exported:false,typ:H,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}F=A.Args.$length>0&&C.HasSuffix(C.TrimSuffix((a=A.Args,(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])),".exe"),".test");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["net/url"]=(function(){var $pkg={},$init,A,B,C,D,E,AP,AQ,L,P,R;A=$packages["errors"];B=$packages["fmt"];C=$packages["sort"];D=$packages["strconv"];E=$packages["strings"];AP=$sliceType($Uint8);AQ=$arrayType($Uint8,64);L=function(a,b){var a,b,c,d,e,f;if(97<=a&&a<=122||65<=a&&a<=90||48<=a&&a<=57){return false;}if((b===3)||(b===4)){c=a;if((c===(33))||(c===(36))||(c===(38))||(c===(39))||(c===(40))||(c===(41))||(c===(42))||(c===(43))||(c===(44))||(c===(59))||(c===(61))||(c===(58))||(c===(91))||(c===(93))||(c===(60))||(c===(62))||(c===(34))){return false;}}d=a;if((d===(45))||(d===(95))||(d===(46))||(d===(126))){return false;}else if((d===(36))||(d===(38))||(d===(43))||(d===(44))||(d===(47))||(d===(58))||(d===(59))||(d===(61))||(d===(63))||(d===(64))){e=b;if(e===(1)){return a===63;}else if(e===(2)){return(a===47)||(a===59)||(a===44)||(a===63);}else if(e===(5)){return(a===64)||(a===47)||(a===63)||(a===58);}else if(e===(6)){return true;}else if(e===(7)){return false;}}if(b===7){f=a;if((f===(33))||(f===(40))||(f===(41))||(f===(42))){return false;}}return true;};P=function(a){var a;return R(a,6);};$pkg.QueryEscape=P;R=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;c=0;d=0;e=c;f=d;g=0;while(true){if(!(g>0;}else{f=f+(1)>>0;}}g=g+(1)>>0;}if((e===0)&&(f===0)){return a;}i=AQ.zero();j=AP.nil;k=a.length+($imul(2,f))>>0;if(k<=64){j=$subslice(new AP(i),0,k);}else{j=$makeSlice(AP,k);}if(f===0){$copyString(j,a);l=0;while(true){if(!(l=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+l]=43);}l=l+(1)>>0;}return($bytesToString(j));}m=0;n=0;while(true){if(!(n=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+m]=43);m=m+(1)>>0;}else if(L(o,b)){((m<0||m>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+m]=37);(p=m+1>>0,((p<0||p>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+p]="0123456789ABCDEF".charCodeAt((o>>>4<<24>>>24))));(q=m+2>>0,((q<0||q>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+q]="0123456789ABCDEF".charCodeAt(((o&15)>>>0))));m=m+(3)>>0;}else{((m<0||m>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+m]=a.charCodeAt(n));m=m+(1)>>0;}n=n+(1)>>0;}return($bytesToString(j));};$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["text/template/parse"]=(function(){var $pkg={},$init,A,B,C,D,E,F,G;A=$packages["bytes"];B=$packages["fmt"];C=$packages["runtime"];D=$packages["strconv"];E=$packages["strings"];F=$packages["unicode"];G=$packages["unicode/utf8"];$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["text/template"]=(function(){var $pkg={},$init,J,K,E,P,L,F,M,G,H,I,A,Q,D,B,C,N,O,CO,DK,DL,DM,DN,DU,BB,BC,BD,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CP,CU,CV,DA,DB,DC,a,b,c,d,e,CE,CF,CG,CK;J=$packages["bytes"];K=$packages["errors"];E=$packages["fmt"];P=$packages["internal/fmtsort"];L=$packages["io"];F=$packages["io/fs"];M=$packages["net/url"];G=$packages["os"];H=$packages["path"];I=$packages["path/filepath"];A=$packages["reflect"];Q=$packages["runtime"];D=$packages["strings"];B=$packages["sync"];C=$packages["text/template/parse"];N=$packages["unicode"];O=$packages["unicode/utf8"];CO=$pkg.missingValType=$newType(0,$kindStruct,"template.missingValType",true,"text/template",false,function(){this.$val=this;if(arguments.length===0){return;}});DK=$sliceType($Uint8);DL=$ptrType($error);DM=$ptrType(E.Stringer);DN=$ptrType(A.Value);DU=$sliceType($emptyInterface);CE=function(f,g){var{aa,ab,ac,ad,ae,af,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=0;i=0;case 1:if(!(i=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+i]);if(!CG(((j>>0)))){i=i+(1)>>0;$s=1;continue;}k=f.Write($subslice(g,h,i));$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;if(j<128){$s=4;continue;}$s=5;continue;case 4:l=j;if(l===(92)){$s=8;continue;}if(l===(39)){$s=9;continue;}if(l===(34)){$s=10;continue;}if(l===(60)){$s=11;continue;}if(l===(62)){$s=12;continue;}if(l===(38)){$s=13;continue;}if(l===(61)){$s=14;continue;}$s=15;continue;case 8:m=f.Write(BX);$s=17;case 17:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;$s=16;continue;case 9:n=f.Write(BY);$s=18;case 18:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;$s=16;continue;case 10:o=f.Write(BZ);$s=19;case 19:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;$s=16;continue;case 11:p=f.Write(CA);$s=20;case 20:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;$s=16;continue;case 12:q=f.Write(CB);$s=21;case 21:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;$s=16;continue;case 13:r=f.Write(CC);$s=22;case 22:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;$s=16;continue;case 14:s=f.Write(CD);$s=23;case 23:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;$s=16;continue;case 15:t=f.Write(BV);$s=24;case 24:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t;u=j>>>4<<24>>>24;v=(j&15)>>>0;w=u;x=v;y=f.Write($subslice(BW,w,(w+1<<24>>>24)));$s=25;case 25:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}y;z=f.Write($subslice(BW,x,(x+1<<24>>>24)));$s=26;case 26:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}z;case 16:case 7:$s=6;continue;case 5:aa=O.DecodeRune($subslice(g,i));ab=aa[0];ac=aa[1];if(N.IsPrint(ab)){$s=27;continue;}$s=28;continue;case 27:ad=f.Write($subslice(g,i,(i+ac>>0)));$s=30;case 30:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ad;$s=29;continue;case 28:ae=E.Fprintf(f,"\\u%04X",new DU([new $Int32(ab)]));$s=31;case 31:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ae;case 29:i=i+((ac-1>>0))>>0;case 6:h=i+1>>0;i=i+(1)>>0;$s=1;continue;case 2:af=f.Write($subslice(g,h));$s=32;case 32:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}af;$s=-1;return;}return;}var $f={$blk:CE,$c:true,$r,aa,ab,ac,ad,ae,af,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.JSEscape=CE;CF=function(f){var{f,g,h,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:g=[g];h=D.IndexFunc(f,CG);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(h<0){$s=1;continue;}$s=2;continue;case 1:$s=-1;return f;case 2:g[0]=new J.Buffer.ptr(DK.nil,0,0);$r=CE(g[0],(new DK($stringToBytes(f))));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return g[0].String();}return;}var $f={$blk:CF,$c:true,$r,f,g,h,$s};return $f;};$pkg.JSEscapeString=CF;CG=function(f){var f,g;g=f;if((g===(92))||(g===(39))||(g===(34))||(g===(60))||(g===(62))||(g===(38))||(g===(61))){return true;}return f<32||128<=f;};CK=function(){if(false){return 1000;}return 100000;};CO.init("",[]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=J.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=Q.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N.$init();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=O.$init();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}BB=K.New("invalid type for comparison");BC=K.New("incompatible types for comparison");BD=K.New("missing argument for comparison");BV=(new DK($stringToBytes("\\u00")));BW=(new DK($stringToBytes("0123456789ABCDEF")));BX=(new DK($stringToBytes("\\\\")));BY=(new DK($stringToBytes("\\'")));BZ=(new DK($stringToBytes("\\\"")));CA=(new DK($stringToBytes("\\u003C")));CB=(new DK($stringToBytes("\\u003E")));CC=(new DK($stringToBytes("\\u0026")));CD=(new DK($stringToBytes("\\u003D")));$unused(CK());b=A.ValueOf((a=new CO.ptr(),new a.constructor.elem(a)));$s=18;case 18:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}CP=b;CU=K.New("break");CV=K.New("continue");c=A.TypeOf((DL.nil)).Elem();$s=19;case 19:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}DA=c;d=A.TypeOf((DM.nil)).Elem();$s=20;case 20:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}DB=d;e=A.TypeOf((DN.nil)).Elem();$s=21;case 21:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}DC=e;}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["go/doc"]=(function(){var $pkg={},$init,K,C,D,E,F,L,I,G,H,A,M,B,J,DI,DJ,AA,AB,AC,AY,BH,CA,CB,CE,CZ,a,b,c,d,e,N,O,P,CD;K=$packages["bytes"];C=$packages["fmt"];D=$packages["go/ast"];E=$packages["go/token"];F=$packages["internal/lazyregexp"];L=$packages["io"];I=$packages["path"];G=$packages["sort"];H=$packages["strconv"];A=$packages["strings"];M=$packages["text/template"];B=$packages["unicode"];J=$packages["unicode/utf8"];DI=$sliceType($String);DJ=$sliceType($Uint8);N=function(f){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;g=0;h=0;i=0;j=g;k=h;l=i;m=f;n=0;while(true){if(!(n>0;}l=h.$length;if(l>0&&(i===32)){h=$subslice(h,0,(l-1>>0));}return($bytesToString(h));};P=function(f){var{f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:f=O($substring(f,0,N(f)),0);g=$pkg.IllegalPrefixes;h=0;case 1:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);j=A.ToLower(f);$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=A.HasPrefix(j,i);$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(k){$s=3;continue;}$s=4;continue;case 3:$s=-1;return"";case 4:h++;$s=1;continue;case 2:l=CD(f);$s=7;case 7:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}f=l;$s=-1;return f;}return;}var $f={$blk:P,$c:true,$r,f,g,h,i,j,k,l,$s};return $f;};$pkg.Synopsis=P;CD=function(f){var{f,g,h,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:g=CB.Replace(f);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=2;case 2:return h;}return;}var $f={$blk:CD,$c:true,$r,f,g,h,$s};return $f;};$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=K.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.IllegalPrefixes=new DI(["copyright","all rights","author"]);AA="([A-Z][A-Z]+)\\(([^)]+)\\):?";a=F.New("^[ \\t]*"+AA);$s=14;case 14:if($c){$c=false;a=a.$blk();}if(a&&a.$blk!==undefined){break s;}AB=a;b=F.New("^/[/*][ \\t]*"+AA);$s=15;case 15:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}AC=b;AY=D.NewIdent("_");c=F.New("(?i)^[[:space:]]*(unordered )?output:");$s=16;case 16:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}BH=c;CA=A.NewReplacer(new DI(["\xE2\x80\x9C","“","\xE2\x80\x9D","”"]));CB=A.NewReplacer(new DI(["``","\xE2\x80\x9C","''","\xE2\x80\x9D"]));d=F.New("((https?|ftp|file|gopher|mailto|nntp)://([a-zA-Z0-9_@\\-.\\[\\]:]+)([.,:;?!]*[a-zA-Z0-9$'()*+&#=@~_/\\-\\[\\]%])*)|([\\pL_][\\pL_0-9]*)");$s=17;case 17:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}CE=d;e=F.New("[^a-zA-Z0-9]");$s=18;case 18:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}CZ=e;}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/buildcfg"]=(function(){var $pkg={},$init,B,E,F,G,C,A,D,W,AA,AB,AC,AD,H,Z,O,a,b,c,d,e,f,g,h,i,j,k,l,I,J,L,Q,R,S,T,U,V,X;B=$packages["fmt"];E=$packages["internal/goexperiment"];F=$packages["os"];G=$packages["path/filepath"];C=$packages["reflect"];A=$packages["runtime"];D=$packages["strings"];W=$pkg.gowasmFeatures=$newType(0,$kindStruct,"buildcfg.gowasmFeatures",true,"internal/buildcfg",false,function(SignExt_,SatConv_){this.$val=this;if(arguments.length===0){this.SignExt=false;this.SatConv=false;return;}this.SignExt=SignExt_;this.SatConv=SatConv_;});AA=$sliceType($emptyInterface);AB=$sliceType($String);AC=$ptrType(C.rtype);AD=$ptrType(E.Flags);I=function(m,n,o){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{m,n,o});$s=$s||0;s:while(true){switch($s){case 0:p=[p];p[0]=new E.Flags.ptr(false,false,false,false,false,false,false,false,false);q=new E.Flags.ptr(false,false,false,false,false,false,false,false,false);r=$ifaceNil;s=false;t=n;if(t===("amd64")||t===("arm64")||t===("ppc64le")||t===("ppc64")){s=true;}E.Flags.copy(q,new E.Flags.ptr(false,false,false,false,s,s,s,true,false));E.Flags.copy(p[0],q);if(!(o==="")){$s=1;continue;}$s=2;continue;case 1:u=new $global.Map();v=C.ValueOf(p[0]);$s=3;case 3:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=$clone(v,C.Value).Elem();$s=4;case 4:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;y=$clone(x,C.Value).Type();z=0;case 5:aa=y.NumField();$s=7;case 7:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}if(!(z>0;$s=5;continue;case 6:ag="regabi";(u||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(ag),{k:ag,v:(function(p){return function(ah){var ah;p[0].RegabiWrappers=ah;p[0].RegabiReflect=ah;p[0].RegabiArgs=ah;};})(p)});ah=D.Split(o,",");ai=0;case 11:if(!(ai=ah.$length)?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+ai]);if(aj===""){ai++;$s=11;continue;}if(aj==="none"){E.Flags.copy(p[0],new E.Flags.ptr(false,false,false,false,false,false,false,false,false));ai++;$s=11;continue;}ak=true;if(D.HasPrefix(aj,"no")){al=$substring(aj,2);am=false;aj=al;ak=am;}an=(ao=$mapIndex(u,$String.keyFor(aj)),ao!==undefined?[ao.v,true]:[$throwNilPointerError,false]);ap=an[0];aq=an[1];if(!aq){$s=13;continue;}$s=14;continue;case 13:ar=B.Errorf("unknown GOEXPERIMENT %s",new AA([new $String(aj)]));$s=15;case 15:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}r=ar;$s=-1;return[p[0],q,r];case 14:$r=ap(ak);$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ai++;$s=11;continue;case 12:case 2:if(n==="amd64"){p[0].RegabiWrappers=true;p[0].RegabiReflect=true;p[0].RegabiArgs=true;}if(!s){p[0].RegabiReflect=false;p[0].RegabiArgs=false;}if(p[0].RegabiArgs&&!(p[0].RegabiWrappers&&p[0].RegabiReflect)){$s=17;continue;}$s=18;continue;case 17:as=B.Errorf("GOEXPERIMENT regabiargs requires regabiwrappers,regabireflect",new AA([]));$s=19;case 19:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}r=as;case 18:$s=-1;return[p[0],q,r];}return;}var $f={$blk:I,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.ParseGOEXPERIMENT=I;J=function(m,n,o){var{aa,ab,ac,ad,ae,af,ag,ah,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{m,n,o});$s=$s||0;s:while(true){switch($s){case 0:p=AB.nil;q=C.ValueOf(m);$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=$clone(q,C.Value).Elem();$s=2;case 2:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;t=new C.Value.ptr(AC.nil,0,0);if(!(n===AD.nil)){$s=3;continue;}$s=4;continue;case 3:u=C.ValueOf(n);$s=5;case 5:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=$clone(u,C.Value).Elem();$s=6;case 6:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}t=v;case 4:w=$clone(s,C.Value).Type();x=0;case 7:y=w.NumField();$s=9;case 9:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}if(!(x>0;$s=7;continue;case 8:$s=-1;return p;}return;}var $f={$blk:J,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};L=function(){var{m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:m=J($pkg.Experiment,AD.nil,false);$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=2;case 2:return n;}return;}var $f={$blk:L,$c:true,$r,m,n,$s};return $f;};$pkg.EnabledExperiments=L;Q=function(m,n){var{m,n,o,p,$s,$r,$c}=$restore(this,{m,n});$s=$s||0;s:while(true){switch($s){case 0:o=F.Getenv(m);$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;if(!(p==="")){$s=-1;return p;}$s=-1;return n;}return;}var $f={$blk:Q,$c:true,$r,m,n,o,p,$s};return $f;};R=function(){var{m,n,o,p,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:m=Q("GOAMD64","v1");$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=n;if(o===("v1")){$s=-1;return 1;}else if(o===("v2")){$s=-1;return 2;}else if(o===("v3")){$s=-1;return 3;}else if(o===("v4")){$s=-1;return 4;}case 1:p=B.Errorf("invalid GOAMD64: must be v1, v2, v3, v4",new AA([]));$s=3;case 3:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}$pkg.Error=p;$s=-1;return((("v1".charCodeAt(1)-48<<24>>>24)>>0));}return;}var $f={$blk:R,$c:true,$r,m,n,o,p,$s};return $f;};S=function(){var{m,n,o,p,q,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:m="5";if($pkg.GOOS==="android"&&$pkg.GOARCH==="arm"){m="7";}n=Q("GOARM",m);$s=2;case 2:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;p=o;if(p===("5")){$s=-1;return 5;}else if(p===("6")){$s=-1;return 6;}else if(p===("7")){$s=-1;return 7;}case 1:q=B.Errorf("invalid GOARM: must be 5, 6, 7",new AA([]));$s=3;case 3:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}$pkg.Error=q;$s=-1;return(((m.charCodeAt(0)-48<<24>>>24)>>0));}return;}var $f={$blk:S,$c:true,$r,m,n,o,p,q,$s};return $f;};T=function(){var{m,n,o,p,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:m=Q("GOMIPS","hardfloat");$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=n;if(o===("hardfloat")||o===("softfloat")){$s=-1;return n;}case 1:p=B.Errorf("invalid GOMIPS: must be hardfloat, softfloat",new AA([]));$s=3;case 3:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}$pkg.Error=p;$s=-1;return"hardfloat";}return;}var $f={$blk:T,$c:true,$r,m,n,o,p,$s};return $f;};U=function(){var{m,n,o,p,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:m=Q("GOMIPS64","hardfloat");$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=n;if(o===("hardfloat")||o===("softfloat")){$s=-1;return n;}case 1:p=B.Errorf("invalid GOMIPS64: must be hardfloat, softfloat",new AA([]));$s=3;case 3:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}$pkg.Error=p;$s=-1;return"hardfloat";}return;}var $f={$blk:U,$c:true,$r,m,n,o,p,$s};return $f;};V=function(){var{m,n,o,p,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:m=Q("GOPPC64","power8");$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=n;if(o===("power8")){$s=-1;return 8;}else if(o===("power9")){$s=-1;return 9;}case 1:p=B.Errorf("invalid GOPPC64: must be power8, power9",new AA([]));$s=3;case 3:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}$pkg.Error=p;$s=-1;return((("power8".charCodeAt(5)-48<<24>>>24)>>0));}return;}var $f={$blk:V,$c:true,$r,m,n,o,p,$s};return $f;};W.ptr.prototype.String=function(){var m,n;m=this;n=AB.nil;if(m.SatConv){n=$append(n,"satconv");}if(m.SignExt){n=$append(n,"signext");}return D.Join(n,",");};W.prototype.String=function(){return this.$val.String();};X=function(){var{m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:m=new W.ptr(false,false);o=Q("GOWASM","");$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=D.Split(o,",");$s=2;case 2:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}n=p;q=0;case 3:if(!(q=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+q]);s=r;if(s===("satconv")){$s=6;continue;}if(s===("signext")){$s=7;continue;}if(s===("")){$s=8;continue;}$s=9;continue;case 6:m.SatConv=true;$s=10;continue;case 7:m.SignExt=true;$s=10;continue;case 8:$s=10;continue;case 9:t=B.Errorf("invalid GOWASM: no such feature %q",new AA([new $String(r)]));$s=11;case 11:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}$pkg.Error=t;case 10:case 5:q++;$s=3;continue;case 4:$s=-1;return m;}return;}var $f={$blk:X,$c:true,$r,m,n,o,p,q,r,s,t,$s};return $f;};W.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];W.init("",[{prop:"SignExt",name:"SignExt",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"SatConv",name:"SatConv",embedded:false,exported:true,typ:$Bool,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=B.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}O="";$pkg.Error=$ifaceNil;a=Q("GOROOT",O);$s=8;case 8:if($c){$c=false;a=a.$blk();}if(a&&a.$blk!==undefined){break s;}$pkg.GOROOT=a;b=Q("GOARCH","ecmascript");$s=9;case 9:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$pkg.GOARCH=b;c=Q("GOOS","js");$s=10;case 10:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$pkg.GOOS=c;d=Q("GO386","sse2");$s=11;case 11:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$pkg.GO386=d;f=(function $b(){var{f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:g=$pkg.GOOS;h=$pkg.GOARCH;i=Q("GOEXPERIMENT","");$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=I(g,h,j);$s=2;case 2:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}f=k;l=$clone(f[0],E.Flags);m=$clone(f[1],E.Flags);n=f[2];if(!($interfaceIsEqual(n,$ifaceNil))){$pkg.Error=n;}$s=-1;return[l,m];}return;}var $f={$blk:$b,$c:true,$r,f,g,h,i,j,k,l,m,n,$s};return $f;})();$s=12;case 12:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;$pkg.Experiment=$clone(e[0],E.Flags);H=$clone(e[1],E.Flags);g=R();$s=13;case 13:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$pkg.GOAMD64=g;h=S();$s=14;case 14:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$pkg.GOARM=h;i=T();$s=15;case 15:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$pkg.GOMIPS=i;j=U();$s=16;case 16:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}$pkg.GOMIPS64=j;k=V();$s=17;case 17:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}$pkg.GOPPC64=k;l=X();$s=18;case 18:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}$pkg.GOWASM=$clone(l,W);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["context"]=(function(){var $pkg={},$init,A,B,C,D,E,F,H,AJ,AK,AL,AT,I,J,V,W;A=$packages["errors"];B=$packages["internal/reflectlite"];C=$packages["sync"];D=$packages["sync/atomic"];E=$packages["time"];F=$pkg.Context=$newType(8,$kindInterface,"context.Context",true,"context",true,null);H=$pkg.emptyCtx=$newType(4,$kindInt,"context.emptyCtx",true,"context",false,null);AJ=$ptrType(H);AK=$structType("",[]);AL=$ptrType(E.Location);AT=$chanType(AK,false,true);$ptrType(H).prototype.Deadline=function(){var b,c;b=new E.Time.ptr(new $Uint64(0,0),new $Int64(0,0),AL.nil);c=false;return[b,c];};$ptrType(H).prototype.Done=function(){return $chanNil;};$ptrType(H).prototype.Err=function(){return $ifaceNil;};$ptrType(H).prototype.Value=function(b){var b;return $ifaceNil;};$ptrType(H).prototype.String=function(){var b,c;b=this;c=b;if(c===(I)){return"context.Background";}else if(c===(J)){return"context.TODO";}return"unknown empty Context";};W=function(){$close(V);};AJ.methods=[{prop:"Deadline",name:"Deadline",pkg:"",typ:$funcType([],[E.Time,$Bool],false)},{prop:"Done",name:"Done",pkg:"",typ:$funcType([],[AT],false)},{prop:"Err",name:"Err",pkg:"",typ:$funcType([],[$error],false)},{prop:"Value",name:"Value",pkg:"",typ:$funcType([$emptyInterface],[$emptyInterface],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];F.init([{prop:"Deadline",name:"Deadline",pkg:"",typ:$funcType([],[E.Time,$Bool],false)},{prop:"Done",name:"Done",pkg:"",typ:$funcType([],[AT],false)},{prop:"Err",name:"Err",pkg:"",typ:$funcType([],[$error],false)},{prop:"Value",name:"Value",pkg:"",typ:$funcType([$emptyInterface],[$emptyInterface],false)}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.Canceled=A.New("context canceled");I=$newDataPointer(0,AJ);J=$newDataPointer(0,AJ);V=new $Chan(AK,0);W();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["os/exec"]=(function(){var $pkg={},$init,D,E,A,F,G,B,H,I,J,K,L,M,C,P,Q,W,X,Y,AP,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,U,N,O,R,T,V,Z,AA,AB,AC;D=$packages["bytes"];E=$packages["context"];A=$packages["errors"];F=$packages["internal/syscall/execenv"];G=$packages["io"];B=$packages["io/fs"];H=$packages["os"];I=$packages["path/filepath"];J=$packages["runtime"];K=$packages["strconv"];L=$packages["strings"];M=$packages["sync"];C=$packages["syscall"];P=$pkg.Error=$newType(0,$kindStruct,"exec.Error",true,"os/exec",true,function(Name_,Err_){this.$val=this;if(arguments.length===0){this.Name="";this.Err=$ifaceNil;return;}this.Name=Name_;this.Err=Err_;});Q=$pkg.Cmd=$newType(0,$kindStruct,"exec.Cmd",true,"os/exec",true,function(Path_,Args_,Env_,Dir_,Stdin_,Stdout_,Stderr_,ExtraFiles_,SysProcAttr_,Process_,ProcessState_,ctx_,lookPathErr_,finished_,childFiles_,closeAfterStart_,closeAfterWait_,goroutine_,errch_,waitDone_){this.$val=this;if(arguments.length===0){this.Path="";this.Args=AE.nil;this.Env=AE.nil;this.Dir="";this.Stdin=$ifaceNil;this.Stdout=$ifaceNil;this.Stderr=$ifaceNil;this.ExtraFiles=AG.nil;this.SysProcAttr=AH.nil;this.Process=AI.nil;this.ProcessState=AJ.nil;this.ctx=$ifaceNil;this.lookPathErr=$ifaceNil;this.finished=false;this.childFiles=AG.nil;this.closeAfterStart=AK.nil;this.closeAfterWait=AK.nil;this.goroutine=AM.nil;this.errch=$chanNil;this.waitDone=$chanNil;return;}this.Path=Path_;this.Args=Args_;this.Env=Env_;this.Dir=Dir_;this.Stdin=Stdin_;this.Stdout=Stdout_;this.Stderr=Stderr_;this.ExtraFiles=ExtraFiles_;this.SysProcAttr=SysProcAttr_;this.Process=Process_;this.ProcessState=ProcessState_;this.ctx=ctx_;this.lookPathErr=lookPathErr_;this.finished=finished_;this.childFiles=childFiles_;this.closeAfterStart=closeAfterStart_;this.closeAfterWait=closeAfterWait_;this.goroutine=goroutine_;this.errch=errch_;this.waitDone=waitDone_;});W=$pkg.ExitError=$newType(0,$kindStruct,"exec.ExitError",true,"os/exec",true,function(ProcessState_,Stderr_){this.$val=this;if(arguments.length===0){this.ProcessState=AJ.nil;this.Stderr=AO.nil;return;}this.ProcessState=ProcessState_;this.Stderr=Stderr_;});X=$pkg.closeOnce=$newType(0,$kindStruct,"exec.closeOnce",true,"os/exec",false,function(File_,once_,err_){this.$val=this;if(arguments.length===0){this.File=AF.nil;this.once=new M.Once.ptr(0,new M.Mutex.ptr(0,0));this.err=$ifaceNil;return;}this.File=File_;this.once=once_;this.err=err_;});Y=$pkg.prefixSuffixSaver=$newType(0,$kindStruct,"exec.prefixSuffixSaver",true,"os/exec",false,function(N_,prefix_,suffix_,suffixOff_,skipped_){this.$val=this;if(arguments.length===0){this.N=0;this.prefix=AO.nil;this.suffix=AO.nil;this.suffixOff=0;this.skipped=new $Int64(0,0);return;}this.N=N_;this.prefix=prefix_;this.suffix=suffix_;this.suffixOff=suffixOff_;this.skipped=skipped_;});AP=$newType(4,$kindFunc,"exec.F",true,"os/exec",true,null);AD=$ptrType(B.PathError);AE=$sliceType($String);AF=$ptrType(H.File);AG=$sliceType(AF);AH=$ptrType(C.SysProcAttr);AI=$ptrType(H.Process);AJ=$ptrType(H.ProcessState);AK=$sliceType(G.Closer);AL=$funcType([],[$error],false);AM=$sliceType(AL);AN=$ptrType(L.Builder);AO=$sliceType($Uint8);AQ=$sliceType(AP);AR=$ptrType(Q);AS=$structType("",[]);AT=$ptrType(W);AU=$ptrType(Y);AV=$ptrType(AO);AW=$ptrType(P);AX=$chanType($error,false,false);AY=$chanType(AS,false,false);AZ=$ptrType(X);N=function(a){var a;return["",new P.ptr(a,$pkg.ErrNotFound)];};$pkg.LookPath=N;O=function(){U=(function(a){var a,b,c,d;b=$assertType(a,AD,true);c=b[0];d=b[1];return d&&c.Op==="write"&&c.Path==="|1"&&$interfaceIsEqual(c.Err,new C.Errno(32));});};P.ptr.prototype.Error=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Err.Error();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c="exec: "+K.Quote(a.Name)+": "+b;$s=2;case 2:return c;}return;}var $f={$blk:P.ptr.prototype.Error,$c:true,$r,a,b,c,$s};return $f;};P.prototype.Error=function(){return this.$val.Error();};P.ptr.prototype.Unwrap=function(){var a;a=this;return a.Err;};P.prototype.Unwrap=function(){return this.$val.Unwrap();};R=function(a,b){var a,b,c,d,e,f;c=new Q.ptr(a,$appendSlice(new AE([a]),b),AE.nil,"",$ifaceNil,$ifaceNil,$ifaceNil,AG.nil,AH.nil,AI.nil,AJ.nil,$ifaceNil,$ifaceNil,false,AG.nil,AK.nil,AK.nil,AM.nil,$chanNil,$chanNil);if(I.Base(a)===a){d=N(a);e=d[0];f=d[1];if(!($interfaceIsEqual(f,$ifaceNil))){c.lookPathErr=f;}else{c.Path=e;}}return c;};$pkg.Command=R;Q.ptr.prototype.String=function(){var a,b,c,d,e;a=this;if(!($interfaceIsEqual(a.lookPathErr,$ifaceNil))){return L.Join(a.Args," ");}b=new L.Builder.ptr(AN.nil,AO.nil);b.WriteString(a.Path);c=$subslice(a.Args,1);d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);b.WriteByte(32);b.WriteString(e);d++;}return b.String();};Q.prototype.String=function(){return this.$val.String();};T=function(a,b){var{a,b,c,$s,$deferred,$r,$c}=$restore(this,{a,b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);$deferred.push([(function(){$recover();}),[]]);c=$interfaceIsEqual(a,b);$s=1;case 1:return c;}return;}}catch(err){$err=err;$s=-1;return false;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:T,$c:true,$r,a,b,c,$s,$deferred};return $f;}}};Q.ptr.prototype.envv=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(!(a.Env===AE.nil)){$s=-1;return[a.Env,$ifaceNil];}b=F.Default(a.SysProcAttr);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:Q.ptr.prototype.envv,$c:true,$r,a,b,c,$s};return $f;};Q.prototype.envv=function(){return this.$val.envv();};Q.ptr.prototype.argv=function(){var a;a=this;if(a.Args.$length>0){return a.Args;}return new AE([a.Path]);};Q.prototype.argv=function(){return this.$val.argv();};Q.ptr.prototype.stdin=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=AF.nil;d=$ifaceNil;a[0]=this;if($interfaceIsEqual(a[0].Stdin,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:f=H.Open("/dev/null");$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;c=e[0];d=e[1];if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return[c,d];}a[0].closeAfterStart=$append(a[0].closeAfterStart,c);$s=-1;return[c,d];case 2:g=$assertType(a[0].Stdin,AF,true);h=g[0];i=g[1];if(i){j=h;k=$ifaceNil;c=j;d=k;$s=-1;return[c,d];}m=H.Pipe();$s=4;case 4:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;n=l[0];b[0]=l[1];d=l[2];if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return[c,d];}a[0].closeAfterStart=$append(a[0].closeAfterStart,n);a[0].closeAfterWait=$append(a[0].closeAfterWait,b[0]);a[0].goroutine=$append(a[0].goroutine,(function(a,b){return function $b(){var{o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:p=G.Copy(b[0],a[0].Stdin);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;q=o[1];r=U;if(!(!(r===$throwNilPointerError))){s=false;$s=4;continue s;}t=r(q);$s=5;case 5:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;case 4:if(s){$s=2;continue;}$s=3;continue;case 2:q=$ifaceNil;case 3:u=b[0].Close();$s=6;case 6:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;if($interfaceIsEqual(q,$ifaceNil)){q=v;}$s=-1;return q;}return;}var $f={$blk:$b,$c:true,$r,o,p,q,r,s,t,u,v,$s};return $f;};})(a,b));o=n;p=$ifaceNil;c=o;d=p;$s=-1;return[c,d];}return;}var $f={$blk:Q.ptr.prototype.stdin,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};Q.prototype.stdin=function(){return this.$val.stdin();};Q.ptr.prototype.stdout=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=AF.nil;b=$ifaceNil;c=this;e=c.writerDescriptor(c.Stdout);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;a=d[0];b=d[1];f=[a,b];$s=2;case 2:return f;}return;}var $f={$blk:Q.ptr.prototype.stdout,$c:true,$r,a,b,c,d,e,f,$s};return $f;};Q.prototype.stdout=function(){return this.$val.stdout();};Q.ptr.prototype.stderr=function(){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=AF.nil;b=$ifaceNil;c=this;if(!(!($interfaceIsEqual(c.Stderr,$ifaceNil)))){d=false;$s=3;continue s;}e=T(c.Stderr,c.Stdout);$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;case 3:if(d){$s=1;continue;}$s=2;continue;case 1:f=(g=c.childFiles,(1>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+1]));h=$ifaceNil;a=f;b=h;$s=-1;return[a,b];case 2:j=c.writerDescriptor(c.Stderr);$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;a=i[0];b=i[1];k=[a,b];$s=6;case 6:return k;}return;}var $f={$blk:Q.ptr.prototype.stderr,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};Q.prototype.stderr=function(){return this.$val.stderr();};Q.ptr.prototype.writerDescriptor=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=AF.nil;d=$ifaceNil;e=this;if($interfaceIsEqual(a[0],$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:g=H.OpenFile("/dev/null",1,0);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;c=f[0];d=f[1];if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return[c,d];}e.closeAfterStart=$append(e.closeAfterStart,c);$s=-1;return[c,d];case 2:h=$assertType(a[0],AF,true);i=h[0];j=h[1];if(j){k=i;l=$ifaceNil;c=k;d=l;$s=-1;return[c,d];}n=H.Pipe();$s=4;case 4:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;b[0]=m[0];o=m[1];d=m[2];if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return[c,d];}e.closeAfterStart=$append(e.closeAfterStart,o);e.closeAfterWait=$append(e.closeAfterWait,b[0]);e.goroutine=$append(e.goroutine,(function(a,b){return function $b(){var{p,q,r,s,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:q=G.Copy(a[0],b[0]);$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p[1];s=b[0].Close();$s=2;case 2:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;$s=-1;return r;}return;}var $f={$blk:$b,$c:true,$r,p,q,r,s,$s};return $f;};})(a,b));p=o;q=$ifaceNil;c=p;d=q;$s=-1;return[c,d];}return;}var $f={$blk:Q.ptr.prototype.writerDescriptor,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};Q.prototype.writerDescriptor=function(a){return this.$val.writerDescriptor(a);};Q.ptr.prototype.closeDescriptors=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=e.Close();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;d++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:Q.ptr.prototype.closeDescriptors,$c:true,$r,a,b,c,d,e,f,$s};return $f;};Q.prototype.closeDescriptors=function(a){return this.$val.closeDescriptors(a);};Q.ptr.prototype.Run=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Start();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if(!($interfaceIsEqual(c,$ifaceNil))){$s=-1;return c;}d=a.Wait();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=3;case 3:return e;}return;}var $f={$blk:Q.ptr.prototype.Run,$c:true,$r,a,b,c,d,e,$s};return $f;};Q.prototype.Run=function(){return this.$val.Run();};V=function(a,b){var a,b,c,d,e,f,g;if(I.Base(a)===a){a=I.Join(new AE([".",a]));}if(b===""){return N(a);}if(!(I.VolumeName(a)==="")){return N(a);}if(a.length>1&&H.IsPathSeparator(a.charCodeAt(0))){return N(a);}c=I.Join(new AE([b,a]));d=N(c);e=d[0];f=d[1];if(!($interfaceIsEqual(f,$ifaceNil))){return["",f];}g=L.TrimPrefix(e,c);return[a+g,$ifaceNil];};Q.ptr.prototype.Start=function(){var{a,aa,ab,ac,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=[a];a[0]=this;if(a[0].Path===""&&$interfaceIsEqual(a[0].lookPathErr,$ifaceNil)){a[0].lookPathErr=A.New("exec: no command");}if(!($interfaceIsEqual(a[0].lookPathErr,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:$r=a[0].closeDescriptors(a[0].closeAfterStart);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=a[0].closeDescriptors(a[0].closeAfterWait);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return a[0].lookPathErr;case 2:if(false){$s=5;continue;}$s=6;continue;case 5:b=V(a[0].Path,a[0].Dir);c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){$s=7;continue;}$s=8;continue;case 7:$r=a[0].closeDescriptors(a[0].closeAfterStart);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=a[0].closeDescriptors(a[0].closeAfterWait);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return d;case 8:a[0].Path=c;case 6:if(!(a[0].Process===AI.nil)){$s=-1;return A.New("exec: already started");}if(!($interfaceIsEqual(a[0].ctx,$ifaceNil))){$s=11;continue;}$s=12;continue;case 11:f=a[0].ctx.Done();$s=13;case 13:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=$select([[f],[]]);if(e[0]===0){$s=14;continue;}if(e[0]===1){$s=15;continue;}$s=16;continue;case 14:$r=a[0].closeDescriptors(a[0].closeAfterStart);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=a[0].closeDescriptors(a[0].closeAfterWait);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=a[0].ctx.Err();$s=19;case 19:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=20;case 20:return h;case 15:case 16:case 12:a[0].childFiles=$makeSlice(AG,0,(3+a[0].ExtraFiles.$length>>0));i=new AQ([$methodExpr(AR,"stdin"),$methodExpr(AR,"stdout"),$methodExpr(AR,"stderr")]);j=0;case 21:if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);m=k(a[0]);$s=23;case 23:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;n=l[0];o=l[1];if(!($interfaceIsEqual(o,$ifaceNil))){$s=24;continue;}$s=25;continue;case 24:$r=a[0].closeDescriptors(a[0].closeAfterStart);$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=a[0].closeDescriptors(a[0].closeAfterWait);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return o;case 25:a[0].childFiles=$append(a[0].childFiles,n);j++;$s=21;continue;case 22:a[0].childFiles=$appendSlice(a[0].childFiles,a[0].ExtraFiles);q=a[0].envv();$s=28;case 28:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p[0];s=p[1];if(!($interfaceIsEqual(s,$ifaceNil))){$s=-1;return s;}u=a[0].Path;v=a[0].argv();w=AA(r);$s=29;case 29:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=AC(w);$s=30;case 30:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=new H.ProcAttr.ptr(a[0].Dir,x,a[0].childFiles,a[0].SysProcAttr);z=H.StartProcess(u,v,y);$s=31;case 31:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}t=z;a[0].Process=t[0];s=t[1];if(!($interfaceIsEqual(s,$ifaceNil))){$s=32;continue;}$s=33;continue;case 32:$r=a[0].closeDescriptors(a[0].closeAfterStart);$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=a[0].closeDescriptors(a[0].closeAfterWait);$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return s;case 33:$r=a[0].closeDescriptors(a[0].closeAfterStart);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(a[0].goroutine.$length>0){a[0].errch=new $Chan($error,a[0].goroutine.$length);aa=a[0].goroutine;ab=0;while(true){if(!(ab=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+ab]);$go((function(a){return function $b(ad){var{ad,ae,$s,$r,$c}=$restore(this,{ad});$s=$s||0;s:while(true){switch($s){case 0:ae=ad();$s=1;case 1:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}$r=$send(a[0].errch,ae);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ad,ae,$s};return $f;};})(a),[ac]);ab++;}}if(!($interfaceIsEqual(a[0].ctx,$ifaceNil))){a[0].waitDone=new $Chan(AS,0);$go((function(a){return function $b(){var{ad,ae,af,ag,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:ae=a[0].ctx.Done();$s=1;case 1:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=$select([[ae],[a[0].waitDone]]);$s=2;case 2:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ad=af;if(ad[0]===0){$s=3;continue;}if(ad[0]===1){$s=4;continue;}$s=5;continue;case 3:ag=a[0].Process.Kill();$s=6;case 6:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ag;$s=5;continue;case 4:case 5:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ad,ae,af,ag,$s};return $f;};})(a),[]);}$s=-1;return $ifaceNil;}return;}var $f={$blk:Q.ptr.prototype.Start,$c:true,$r,a,aa,ab,ac,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};Q.prototype.Start=function(){return this.$val.Start();};W.ptr.prototype.Error=function(){var a;a=this;return a.ProcessState.String();};W.prototype.Error=function(){return this.$val.Error();};Q.ptr.prototype.Wait=function(){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.Process===AI.nil){$s=-1;return A.New("exec: not started");}if(a.finished){$s=-1;return A.New("exec: Wait was already called");}a.finished=true;c=a.Process.Wait();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];if(!(a.waitDone===$chanNil)){$close(a.waitDone);}a.ProcessState=d;f=$ifaceNil;g=a.goroutine;h=0;case 2:if(!(h>0;if(f>0){a=$subslice(a,f);d.skipped=(g=d.skipped,h=(new $Int64(0,f)),new $Int64(g.$high+h.$high,g.$low+h.$low));}a=d.fill((d.$ptr_suffix||(d.$ptr_suffix=new AV(function(){return this.$target.suffix;},function($v){this.$target.suffix=$v;},d))),a);while(true){if(!(a.$length>0)){break;}i=$copySlice($subslice(d.suffix,d.suffixOff),a);a=$subslice(a,i);d.skipped=(j=d.skipped,k=(new $Int64(0,i)),new $Int64(j.$high+k.$high,j.$low+k.$low));d.suffixOff=d.suffixOff+(i)>>0;if(d.suffixOff===d.N){d.suffixOff=0;}}l=e;m=$ifaceNil;b=l;c=m;return[b,c];};Y.prototype.Write=function(a){return this.$val.Write(a);};Y.ptr.prototype.fill=function(a,b){var a,b,c,d,e,f;c=AO.nil;d=this;e=d.N-a.$get().$length>>0;if(e>0){f=Z(b.$length,e);a.$set($appendSlice(a.$get(),$subslice(b,0,f)));b=$subslice(b,f);}c=b;return c;};Y.prototype.fill=function(a,b){return this.$val.fill(a,b);};Y.ptr.prototype.Bytes=function(){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.suffix===AO.nil){$s=-1;return a.prefix;}if((b=a.skipped,(b.$high===0&&b.$low===0))){$s=-1;return $appendSlice(a.prefix,a.suffix);}c=new D.Buffer.ptr(AO.nil,0,0);$r=c.Grow((a.prefix.$length+a.suffix.$length>>0)+50>>0);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=c.Write(a.prefix);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;e=c.WriteString("\n... omitting ");$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;f=c.WriteString(K.FormatInt(a.skipped,10));$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;g=c.WriteString(" bytes ...\n");$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;h=c.Write($subslice(a.suffix,a.suffixOff));$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;i=c.Write($subslice(a.suffix,0,a.suffixOff));$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$s=-1;return c.Bytes();}return;}var $f={$blk:Y.ptr.prototype.Bytes,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};Y.prototype.Bytes=function(){return this.$val.Bytes();};Z=function(a,b){var a,b;if(a2147483647)?$throwRuntimeError("makemap: size out of range"):new $global.Map()));f=b;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);i=L.Cut(h,"=");j=i[0];k=i[2];if(!k){c=$append(c,h);g++;$s=1;continue;}if(a){$s=3;continue;}$s=4;continue;case 3:l=L.ToLower(j);$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}j=l;case 4:m=(n=$mapIndex(e,$String.keyFor(j)),n!==undefined?[n.v,true]:[0,false]);o=m[0];p=m[1];if(p){((o<0||o>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+o]=h);g++;$s=1;continue;}q=j;(e||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(q),{k:q,v:c.$length});c=$append(c,h);g++;$s=1;continue;case 2:$s=-1;return c;}return;}var $f={$blk:AB,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};AC=function(a){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:if(true){$s=-1;return a;}b=a;c=0;while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]);e=L.Cut(d,"=");f=e[0];g=e[2];if(!g){c++;continue;}if(L.EqualFold(f,"SYSTEMROOT")){$s=-1;return a;}c++;}h=H.Getenv("SYSTEMROOT");$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=$append(a,"SYSTEMROOT="+h);$s=2;case 2:return i;}return;}var $f={$blk:AC,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};AW.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Unwrap",name:"Unwrap",pkg:"",typ:$funcType([],[$error],false)}];AR.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"envv",name:"envv",pkg:"os/exec",typ:$funcType([],[AE,$error],false)},{prop:"argv",name:"argv",pkg:"os/exec",typ:$funcType([],[AE],false)},{prop:"stdin",name:"stdin",pkg:"os/exec",typ:$funcType([],[AF,$error],false)},{prop:"stdout",name:"stdout",pkg:"os/exec",typ:$funcType([],[AF,$error],false)},{prop:"stderr",name:"stderr",pkg:"os/exec",typ:$funcType([],[AF,$error],false)},{prop:"writerDescriptor",name:"writerDescriptor",pkg:"os/exec",typ:$funcType([G.Writer],[AF,$error],false)},{prop:"closeDescriptors",name:"closeDescriptors",pkg:"os/exec",typ:$funcType([AK],[],false)},{prop:"Run",name:"Run",pkg:"",typ:$funcType([],[$error],false)},{prop:"Start",name:"Start",pkg:"",typ:$funcType([],[$error],false)},{prop:"Wait",name:"Wait",pkg:"",typ:$funcType([],[$error],false)},{prop:"Output",name:"Output",pkg:"",typ:$funcType([],[AO,$error],false)},{prop:"CombinedOutput",name:"CombinedOutput",pkg:"",typ:$funcType([],[AO,$error],false)},{prop:"StdinPipe",name:"StdinPipe",pkg:"",typ:$funcType([],[G.WriteCloser,$error],false)},{prop:"StdoutPipe",name:"StdoutPipe",pkg:"",typ:$funcType([],[G.ReadCloser,$error],false)},{prop:"StderrPipe",name:"StderrPipe",pkg:"",typ:$funcType([],[G.ReadCloser,$error],false)}];AT.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];AZ.methods=[{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[$error],false)},{prop:"close",name:"close",pkg:"os/exec",typ:$funcType([],[],false)}];AU.methods=[{prop:"Write",name:"Write",pkg:"",typ:$funcType([AO],[$Int,$error],false)},{prop:"fill",name:"fill",pkg:"os/exec",typ:$funcType([AV,AO],[AO],false)},{prop:"Bytes",name:"Bytes",pkg:"",typ:$funcType([],[AO],false)}];P.init("",[{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""},{prop:"Err",name:"Err",embedded:false,exported:true,typ:$error,tag:""}]);Q.init("os/exec",[{prop:"Path",name:"Path",embedded:false,exported:true,typ:$String,tag:""},{prop:"Args",name:"Args",embedded:false,exported:true,typ:AE,tag:""},{prop:"Env",name:"Env",embedded:false,exported:true,typ:AE,tag:""},{prop:"Dir",name:"Dir",embedded:false,exported:true,typ:$String,tag:""},{prop:"Stdin",name:"Stdin",embedded:false,exported:true,typ:G.Reader,tag:""},{prop:"Stdout",name:"Stdout",embedded:false,exported:true,typ:G.Writer,tag:""},{prop:"Stderr",name:"Stderr",embedded:false,exported:true,typ:G.Writer,tag:""},{prop:"ExtraFiles",name:"ExtraFiles",embedded:false,exported:true,typ:AG,tag:""},{prop:"SysProcAttr",name:"SysProcAttr",embedded:false,exported:true,typ:AH,tag:""},{prop:"Process",name:"Process",embedded:false,exported:true,typ:AI,tag:""},{prop:"ProcessState",name:"ProcessState",embedded:false,exported:true,typ:AJ,tag:""},{prop:"ctx",name:"ctx",embedded:false,exported:false,typ:E.Context,tag:""},{prop:"lookPathErr",name:"lookPathErr",embedded:false,exported:false,typ:$error,tag:""},{prop:"finished",name:"finished",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"childFiles",name:"childFiles",embedded:false,exported:false,typ:AG,tag:""},{prop:"closeAfterStart",name:"closeAfterStart",embedded:false,exported:false,typ:AK,tag:""},{prop:"closeAfterWait",name:"closeAfterWait",embedded:false,exported:false,typ:AK,tag:""},{prop:"goroutine",name:"goroutine",embedded:false,exported:false,typ:AM,tag:""},{prop:"errch",name:"errch",embedded:false,exported:false,typ:AX,tag:""},{prop:"waitDone",name:"waitDone",embedded:false,exported:false,typ:AY,tag:""}]);W.init("",[{prop:"ProcessState",name:"ProcessState",embedded:true,exported:true,typ:AJ,tag:""},{prop:"Stderr",name:"Stderr",embedded:false,exported:true,typ:AO,tag:""}]);X.init("os/exec",[{prop:"File",name:"File",embedded:true,exported:true,typ:AF,tag:""},{prop:"once",name:"once",embedded:false,exported:false,typ:M.Once,tag:""},{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""}]);Y.init("os/exec",[{prop:"N",name:"N",embedded:false,exported:true,typ:$Int,tag:""},{prop:"prefix",name:"prefix",embedded:false,exported:false,typ:AO,tag:""},{prop:"suffix",name:"suffix",embedded:false,exported:false,typ:AO,tag:""},{prop:"suffixOff",name:"suffixOff",embedded:false,exported:false,typ:$Int,tag:""},{prop:"skipped",name:"skipped",embedded:false,exported:false,typ:$Int64,tag:""}]);AP.init([AR],[AF,$error],false);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=D.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}U=$throwNilPointerError;$pkg.ErrNotFound=A.New("executable file not found in $PATH");O();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/execabs"]=(function(){var $pkg={},$init,A,B,C,D,E,N,I,J,K,M;A=$packages["context"];B=$packages["fmt"];C=$packages["os/exec"];D=$packages["path/filepath"];E=$packages["reflect"];N=$sliceType($emptyInterface);I=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=B.Errorf("%s resolves to executable relative to current directory (.%c%s)",new N([new $String(a),new $Int32(47),new $String(b)]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:I,$c:true,$r,a,b,c,d,$s};return $f;};J=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=C.LookPath(a);c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return["",d];}if(D.Base(a)===a&&!D.IsAbs(c)){$s=1;continue;}$s=2;continue;case 1:e=I(a,c);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=["",e];$s=4;case 4:return f;case 2:$s=-1;return[c,$ifaceNil];}return;}var $f={$blk:J,$c:true,$r,a,b,c,d,e,f,$s};return $f;};$pkg.LookPath=J;K=function(a,b){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:if(D.Base(a)===a&&!D.IsAbs(b.Path)){$s=1;continue;}$s=2;continue;case 1:c=E.ValueOf(b);$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=$clone(c,E.Value).Elem();$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=$clone(d,E.Value).FieldByName("lookPathErr");$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=$clone(e,E.Value).Addr();$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=$clone(f,E.Value).Pointer();$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=((g));if($interfaceIsEqual(h.$get(),$ifaceNil)){$s=8;continue;}$s=9;continue;case 8:i=I(a,b.Path);$s=10;case 10:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h.$set(i);case 9:b.Path="";case 2:$s=-1;return;}return;}var $f={$blk:K,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};M=function(a,b){var{a,b,c,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=C.Command(a,b);$r=K(a,c);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c;}return;}var $f={$blk:M,$c:true,$r,a,b,c,$s};return $f;};$pkg.Command=M;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/goroot"]=(function(){var $pkg={},$init,A,B,C,D,E,G,I,J,H,F;A=$packages["internal/execabs"];B=$packages["os"];C=$packages["path/filepath"];D=$packages["strings"];E=$packages["sync"];G=$pkg.gccgoDirs=$newType(0,$kindStruct,"goroot.gccgoDirs",true,"internal/goroot",false,function(once_,dirs_){this.$val=this;if(arguments.length===0){this.once=new E.Once.ptr(0,new E.Mutex.ptr(0,0));this.dirs=I.nil;return;}this.once=once_;this.dirs=dirs_;});I=$sliceType($String);J=$ptrType(G);F=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=b;if(d===("gc")){$s=2;continue;}if(d===("gccgo")){$s=3;continue;}$s=4;continue;case 2:e=C.Join(new I([a,"src",c]));g=B.Stat(e);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[1];$s=-1;return $interfaceIsEqual(h,$ifaceNil);case 3:i=H.isStandard(c);$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=8;case 8:return j;case 4:$panic(new $String("unknown compiler "+b));case 5:case 1:$s=-1;return false;}return;}var $f={$blk:F,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};$pkg.IsStandardPackage=F;G.ptr.prototype.init=function(){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=B.Getenv("GCCGO");$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if(c===""){c="gccgo";}e=A.LookPath(c);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return;}i=A.Command(f,new I(["-print-search-dirs"]));$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i.Output();$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}h=j;k=h[0];g=h[1];if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return;}m=A.Command(f,new I(["-dumpversion"]));$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m.Output();$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}l=n;o=l[0];g=l[1];if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return;}p=D.TrimSpace(($bytesToString(o)));$s=7;case 7:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;s=A.Command(f,new I(["-dumpmachine"]));$s=8;case 8:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s.Output();$s=9;case 9:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}r=t;u=r[0];g=r[1];if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return;}v=D.TrimSpace(($bytesToString(u)));$s=10;case 10:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v;x=D.Split(($bytesToString(k)),"\n");y=I.nil;z=x;aa=0;while(true){if(!(aa=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+aa]);if(D.HasPrefix(ab,"libraries: =")){y=C.SplitList(D.TrimPrefix(ab,"libraries: ="));break;}aa++;}if(y.$length===0){$s=-1;return;}ac=I.nil;ad=y;ae=0;case 11:if(!(ae=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ae]);ag=C.Join(new I([af,"go",q]));ai=B.Stat(ag);$s=13;case 13:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ah=ai;aj=ah[0];ak=ah[1];if(!($interfaceIsEqual(ak,$ifaceNil))){al=false;$s=16;continue s;}am=aj.IsDir();$s=17;case 17:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}al=am;case 16:if(al){$s=14;continue;}$s=15;continue;case 14:a.dirs=$append(a.dirs,ag);ag=C.Join(new I([ag,w]));ao=B.Stat(ag);$s=18;case 18:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}an=ao;aj=an[0];ak=an[1];if(!($interfaceIsEqual(ak,$ifaceNil))){ap=false;$s=21;continue s;}aq=aj.IsDir();$s=22;case 22:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ap=aq;case 21:if(ap){$s=19;continue;}$s=20;continue;case 19:a.dirs=$append(a.dirs,ag);case 20:case 15:as=B.Stat(af);$s=23;case 23:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}ar=as;at=ar[0];au=ar[1];if(!($interfaceIsEqual(au,$ifaceNil))){av=false;$s=26;continue s;}aw=at.IsDir();$s=27;case 27:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}av=aw;case 26:if(av){$s=24;continue;}$s=25;continue;case 24:ac=$append(ac,af);case 25:ae++;$s=11;continue;case 12:a.dirs=$appendSlice(a.dirs,ac);$s=-1;return;}return;}var $f={$blk:G.ptr.prototype.init,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};G.prototype.init=function(){return this.$val.init();};G.ptr.prototype.isStandard=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=D.Index(a,"/");if(c<0){c=a.length;}if(D.Contains($substring(a,0,c),".")){$s=-1;return false;}if(a==="unsafe"){$s=-1;return true;}$r=b.once.Do($methodVal(b,"init"));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b.dirs===I.nil){$s=-1;return true;}d=b.dirs;e=0;case 2:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=C.Join(new I([f,a]))+".gox";i=B.Stat(g);$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[0];k=h[1];if(!($interfaceIsEqual(k,$ifaceNil))){l=false;$s=7;continue s;}m=j.IsDir();$s=8;case 8:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=!m;case 7:if(l){$s=5;continue;}$s=6;continue;case 5:$s=-1;return true;case 6:e++;$s=2;continue;case 3:$s=-1;return false;}return;}var $f={$blk:G.ptr.prototype.isStandard,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};G.prototype.isStandard=function(a){return this.$val.isStandard(a);};J.methods=[{prop:"init",name:"init",pkg:"internal/goroot",typ:$funcType([],[],false)},{prop:"isStandard",name:"isStandard",pkg:"internal/goroot",typ:$funcType([$String],[$Bool],false)}];G.init("internal/goroot",[{prop:"once",name:"once",embedded:false,exported:false,typ:E.Once,tag:""},{prop:"dirs",name:"dirs",embedded:false,exported:false,typ:I,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}H=new G.ptr(new E.Once.ptr(0,new E.Mutex.ptr(0,0)),I.nil);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/goversion"]=(function(){var $pkg={},$init;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["io/ioutil"]=(function(){var $pkg={},$init,B,C,A,D,M,G,J;B=$packages["io"];C=$packages["io/fs"];A=$packages["os"];D=$packages["sort"];M=$sliceType(C.FileInfo);G=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=B.ReadAll(a);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:G,$c:true,$r,a,b,c,$s};return $f;};$pkg.ReadAll=G;J=function(a){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=[b];d=A.Open(a);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[M.nil,f];}h=e.Readdir(-1);$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;b[0]=g[0];f=g[1];i=e.Close();$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[M.nil,f];}$r=D.Slice(b[0],(function(b){return function $b(j,k){var{j,k,l,m,n,$s,$r,$c}=$restore(this,{j,k});$s=$s||0;s:while(true){switch($s){case 0:l=((j<0||j>=b[0].$length)?($throwRuntimeError("index out of range"),undefined):b[0].$array[b[0].$offset+j]).Name();$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=((k<0||k>=b[0].$length)?($throwRuntimeError("index out of range"),undefined):b[0].$array[b[0].$offset+k]).Name();$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=l=128;};AA.ptr.prototype.syntaxError=function(){var b;b=this;if($interfaceIsEqual(b.err,$ifaceNil)){b.err=AE;}};AA.prototype.syntaxError=function(){return this.$val.syntaxError();};AA.ptr.prototype.readByte=function(){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;d=b.b.ReadByte();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];if($interfaceIsEqual(f,$ifaceNil)){b.buf=$append(b.buf,e);if(e===0){f=AF;}}if(!($interfaceIsEqual(f,$ifaceNil))){if($interfaceIsEqual(f,H.EOF)){b.eof=true;}else if($interfaceIsEqual(b.err,$ifaceNil)){b.err=f;}e=0;}$s=-1;return e;}return;}var $f={$blk:AA.ptr.prototype.readByte,$c:true,$r,b,c,d,e,f,$s};return $f;};AA.prototype.readByte=function(){return this.$val.readByte();};AA.ptr.prototype.readByteNoBuf=function(){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=0;d=$ifaceNil;if(b.buf.$length>0){$s=1;continue;}$s=2;continue;case 1:c=(e=b.buf,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]));b.buf=$subslice(b.buf,1);$s=3;continue;case 2:g=b.b.ReadByte();$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;c=f[0];d=f[1];if($interfaceIsEqual(d,$ifaceNil)&&(c===0)){d=AF;}case 3:if(!($interfaceIsEqual(d,$ifaceNil))){if($interfaceIsEqual(d,H.EOF)){b.eof=true;}else if($interfaceIsEqual(b.err,$ifaceNil)){b.err=d;}$s=-1;return 0;}b.pos.Offset=b.pos.Offset+(1)>>0;if(c===10){b.pos.Line=b.pos.Line+(1)>>0;b.pos.Column=1;}else{b.pos.Column=b.pos.Column+(1)>>0;}$s=-1;return c;}return;}var $f={$blk:AA.ptr.prototype.readByteNoBuf,$c:true,$r,b,c,d,e,f,g,$s};return $f;};AA.prototype.readByteNoBuf=function(){return this.$val.readByteNoBuf();};AA.ptr.prototype.peekByte=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!($interfaceIsEqual(c.err,$ifaceNil))){c.nerr=c.nerr+(1)>>0;if(c.nerr>10000){$panic(new $String("go/build: import reader looping"));}$s=-1;return 0;}d=c.peek;if(d===0){$s=1;continue;}$s=2;continue;case 1:e=c.readByte();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;case 2:case 4:if(!($interfaceIsEqual(c.err,$ifaceNil)&&!c.eof)){$s=5;continue;}if(b){$s=6;continue;}$s=7;continue;case 6:f=d;if((f===(32))||(f===(12))||(f===(9))||(f===(13))||(f===(10))||(f===(59))){$s=9;continue;}if(f===(47)){$s=10;continue;}$s=11;continue;case 9:g=c.readByte();$s=12;case 12:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}d=g;$s=4;continue;$s=11;continue;case 10:h=c.readByte();$s=13;case 13:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}d=h;if(d===47){$s=14;continue;}if(d===42){$s=15;continue;}$s=16;continue;case 14:case 18:if(!(!((d===10))&&$interfaceIsEqual(c.err,$ifaceNil)&&!c.eof)){$s=19;continue;}i=c.readByte();$s=20;case 20:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}d=i;$s=18;continue;case 19:$s=17;continue;case 15:j=0;case 21:if(!((!((d===42))||!((j===47)))&&$interfaceIsEqual(c.err,$ifaceNil))){$s=22;continue;}if(c.eof){c.syntaxError();}k=j;m=c.readByte();$s=23;case 23:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;d=k;j=l;$s=21;continue;case 22:$s=17;continue;case 16:c.syntaxError();case 17:n=c.readByte();$s=24;case 24:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}d=n;$s=4;continue;case 11:case 8:case 7:$s=5;continue;case 5:c.peek=d;$s=-1;return c.peek;}return;}var $f={$blk:AA.ptr.prototype.peekByte,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};AA.prototype.peekByte=function(b){return this.$val.peekByte(b);};AA.ptr.prototype.nextByte=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.peekByte(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;c.peek=0;$s=-1;return e;}return;}var $f={$blk:AA.ptr.prototype.nextByte,$c:true,$r,b,c,d,e,$s};return $f;};AA.prototype.nextByte=function(b){return this.$val.nextByte(b);};AA.ptr.prototype.findEmbed=function(b){var{aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=!b;e=0;case 1:if(!($interfaceIsEqual(c.err,$ifaceNil)&&!c.eof)){$s=2;continue;}f=c.readByteNoBuf();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;case 4:g=e;if(g===(10)){$s=6;continue;}if((g===(32))||(g===(9))){$s=7;continue;}if(g===(34)){$s=8;continue;}if(g===(96)){$s=9;continue;}if(g===(39)){$s=10;continue;}if(g===(47)){$s=11;continue;}$s=12;continue;case 6:d=true;$s=13;continue;case 7:$s=13;continue;case 8:d=false;case 14:if(!($interfaceIsEqual(c.err,$ifaceNil))){$s=15;continue;}if(c.eof){c.syntaxError();}h=c.readByteNoBuf();$s=16;case 16:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}e=h;if(e===92){$s=17;continue;}$s=18;continue;case 17:i=c.readByteNoBuf();$s=19;case 19:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;if(!($interfaceIsEqual(c.err,$ifaceNil))){c.syntaxError();$s=-1;return false;}$s=14;continue;case 18:if(e===34){$s=20;continue;}$s=21;continue;case 20:j=c.readByteNoBuf();$s=22;case 22:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}e=j;$s=4;continue;case 21:$s=14;continue;case 15:$s=4;continue;$s=13;continue;case 9:d=false;case 23:if(!($interfaceIsEqual(c.err,$ifaceNil))){$s=24;continue;}if(c.eof){c.syntaxError();}k=c.readByteNoBuf();$s=25;case 25:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}e=k;if(e===96){$s=26;continue;}$s=27;continue;case 26:l=c.readByteNoBuf();$s=28;case 28:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}e=l;$s=4;continue;case 27:$s=23;continue;case 24:$s=13;continue;case 10:d=false;case 29:if(!($interfaceIsEqual(c.err,$ifaceNil))){$s=30;continue;}if(c.eof){c.syntaxError();}m=c.readByteNoBuf();$s=31;case 31:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}e=m;if(e===92){$s=32;continue;}$s=33;continue;case 32:n=c.readByteNoBuf();$s=34;case 34:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;if(!($interfaceIsEqual(c.err,$ifaceNil))){c.syntaxError();$s=-1;return false;}$s=29;continue;case 33:if(e===39){$s=35;continue;}$s=36;continue;case 35:o=c.readByteNoBuf();$s=37;case 37:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}e=o;$s=4;continue;case 36:$s=29;continue;case 30:$s=13;continue;case 11:p=c.readByteNoBuf();$s=38;case 38:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}e=p;q=e;if(q===(42)){$s=40;continue;}if(q===(47)){$s=41;continue;}$s=42;continue;case 40:r=0;case 44:if(!((!((e===42))||!((r===47)))&&$interfaceIsEqual(c.err,$ifaceNil))){$s=45;continue;}if(c.eof){c.syntaxError();}s=r;u=c.readByteNoBuf();$s=46;case 46:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;e=s;r=t;$s=44;continue;case 45:d=false;$s=43;continue;case 41:if(d){$s=47;continue;}$s=48;continue;case 47:v=AG;w=0;case 49:if(!(w=AG.$length)?($throwRuntimeError("index out of range"),undefined):AG.$array[AG.$offset+x])))){$s=52;continue;}$s=53;continue;case 52:$s=54;continue;case 53:w++;$s=49;continue;case 50:z=c.readByteNoBuf();$s=55;case 55:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}e=z;if((e===32)||(e===9)){$s=-1;return true;}case 48:case 54:case 56:if(!(!((e===10))&&$interfaceIsEqual(c.err,$ifaceNil)&&!c.eof)){$s=57;continue;}aa=c.readByteNoBuf();$s=58;case 58:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}e=aa;$s=56;continue;case 57:d=true;$s=43;continue;case 42:d=false;$s=4;continue;case 43:case 39:$s=13;continue;case 12:d=false;case 13:case 5:$s=1;continue;case 2:$s=-1;return false;}return;}var $f={$blk:AA.ptr.prototype.findEmbed,$c:true,$r,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AA.prototype.findEmbed=function(b){return this.$val.findEmbed(b);};AA.ptr.prototype.readKeyword=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.peekByte(true);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;e=0;case 2:if(!(e>0;$s=2;continue;case 3:g=c.peekByte(false);$s=9;case 9:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=AD(g);$s=10;case 10:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(h){$s=7;continue;}$s=8;continue;case 7:c.syntaxError();case 8:$s=-1;return;}return;}var $f={$blk:AA.ptr.prototype.readKeyword,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};AA.prototype.readKeyword=function(b){return this.$val.readKeyword(b);};AA.ptr.prototype.readIdent=function(){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.peekByte(true);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!AD(d)){b.syntaxError();$s=-1;return;}case 2:e=b.peekByte(false);$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=AD(e);$s=5;case 5:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(!(f)){$s=3;continue;}b.peek=0;$s=2;continue;case 3:$s=-1;return;}return;}var $f={$blk:AA.ptr.prototype.readIdent,$c:true,$r,b,c,d,e,f,$s};return $f;};AA.prototype.readIdent=function(){return this.$val.readIdent();};AA.ptr.prototype.readString=function(){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.nextByte(true);$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(d===(96)){$s=3;continue;}if(d===(34)){$s=4;continue;}$s=5;continue;case 3:case 7:if(!($interfaceIsEqual(b.err,$ifaceNil))){$s=8;continue;}e=b.nextByte(false);$s=11;case 11:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}if(e===96){$s=9;continue;}$s=10;continue;case 9:$s=8;continue;case 10:if(b.eof){b.syntaxError();}$s=7;continue;case 8:$s=6;continue;case 4:case 12:if(!($interfaceIsEqual(b.err,$ifaceNil))){$s=13;continue;}f=b.nextByte(false);$s=14;case 14:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(g===34){$s=13;continue;}if(b.eof||(g===10)){b.syntaxError();}if(g===92){$s=15;continue;}$s=16;continue;case 15:h=b.nextByte(false);$s=17;case 17:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 16:$s=12;continue;case 13:$s=6;continue;case 5:b.syntaxError();case 6:case 1:$s=-1;return;}return;}var $f={$blk:AA.ptr.prototype.readString,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};AA.prototype.readString=function(){return this.$val.readString();};AA.ptr.prototype.readImport=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.peekByte(true);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(d===46){$s=2;continue;}if(AD(d)){$s=3;continue;}$s=4;continue;case 2:b.peek=0;$s=4;continue;case 3:$r=b.readIdent();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:$r=b.readString();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AA.ptr.prototype.readImport,$c:true,$r,b,c,d,$s};return $f;};AA.prototype.readImport=function(){return this.$val.readImport();};AH=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=AC("",b);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=d.peekByte(true);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;if($interfaceIsEqual(d.err,$ifaceNil)&&!d.eof){d.buf=$subslice(d.buf,0,(d.buf.$length-1>>0));}$s=-1;return[d.buf,d.err];}return;}var $f={$blk:AH,$c:true,$r,b,c,d,e,$s};return $f;};AI=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=AC(c.name,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$r=e.readKeyword("package");$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.readIdent();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:f=e.peekByte(true);$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(!(f===105)){$s=5;continue;}$r=e.readKeyword("import");$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=e.peekByte(true);$s=11;case 11:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(g===40){$s=8;continue;}$s=9;continue;case 8:h=e.nextByte(false);$s=12;case 12:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 13:i=e.peekByte(true);$s=15;case 15:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(!(!((i===41))&&$interfaceIsEqual(e.err,$ifaceNil))){$s=14;continue;}$r=e.readImport();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=13;continue;case 14:j=e.nextByte(false);$s=17;case 17:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;$s=10;continue;case 9:$r=e.readImport();$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:$s=4;continue;case 5:c.header=e.buf;if($interfaceIsEqual(e.err,$ifaceNil)&&!e.eof){c.header=$subslice(e.buf,0,(e.buf.$length-1>>0));}if($interfaceIsEqual(e.err,AE)){$s=19;continue;}$s=20;continue;case 19:e.err=$ifaceNil;case 21:if(!($interfaceIsEqual(e.err,$ifaceNil)&&!e.eof)){$s=22;continue;}k=e.readByte();$s=23;case 23:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;$s=21;continue;case 22:c.header=e.buf;case 20:if(!($interfaceIsEqual(e.err,$ifaceNil))){$s=-1;return e.err;}if(c.fset===CM.nil){$s=-1;return $ifaceNil;}m=F.ParseFile(c.fset,c.name,c.header,6);$s=24;case 24:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;c.parsed=l[0];c.parseErr=l[1];if(!($interfaceIsEqual(c.parseErr,$ifaceNil))){$s=-1;return $ifaceNil;}n=false;o=c.parsed.Decls;p=0;case 25:if(!(p=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]);r=$assertType(q,CN,true);s=r[0];t=r[1];if(!t){p++;$s=25;continue;}u=s.Specs;v=0;case 27:if(!(v=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v]);x=$assertType(w,CO,true);y=x[0];z=x[1];if(!z){v++;$s=27;continue;}aa=y.Path.Value;ab=I.Unquote(aa);ac=ab[0];ad=ab[1];if(!($interfaceIsEqual(ad,$ifaceNil))){$s=29;continue;}$s=30;continue;case 29:ae=D.Errorf("parser returned invalid quoted string: <%s>",new CP([new $String(aa)]));$s=31;case 31:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;$s=32;case 32:return af;case 30:if(ac==="embed"){n=true;}ag=y.Doc;if(ag===CQ.nil&&(s.Specs.$length===1)){ag=s.Doc;}c.imports=$append(c.imports,new BL.ptr(ac,y.Pos(),ag));v++;$s=27;continue;case 28:p++;$s=25;continue;case 26:if(n){$s=33;continue;}$s=34;continue;case 33:ah=CK.nil;ai=true;case 35:aj=e.findEmbed(ai);$s=37;case 37:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}if(!(aj)){$s=36;continue;}ah=$subslice(ah,0,0);ak=$clone(e.pos,G.Position);case 38:al=e.readByteNoBuf();$s=40;case 40:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al;if((am===10)||!($interfaceIsEqual(e.err,$ifaceNil))||e.eof){$s=39;continue;}ah=$append(ah,am);$s=38;continue;case 39:ao=AJ(($bytesToString(ah)),$clone(ak,G.Position));$s=41;case 41:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}an=ao;ap=an[0];aq=an[1];if($interfaceIsEqual(aq,$ifaceNil)){c.embeds=$appendSlice(c.embeds,ap);}ai=false;$s=35;continue;case 36:case 34:$s=-1;return $ifaceNil;}return;}var $f={$blk:AI,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AJ=function(b,c){var{aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];d[0]=(function(b,c,d){return function(e){var e;c[0].Offset=c[0].Offset+(e)>>0;c[0].Column=c[0].Column+(L.RuneCountInString($substring(b[0],0,e)))>>0;b[0]=$substring(b[0],e);};})(b,c,d);e=(function(b,c,d){return function $b(){var{e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:e=J.TrimLeftFunc(b[0],K.IsSpace);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$r=d[0](b[0].length-f.length>>0);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,e,f,$s};return $f;};})(b,c,d);f=CR.nil;$r=e();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(!(!(b[0]===""))){$s=3;continue;}g="";h=$clone(c[0],G.Position);i=b[0].charCodeAt(0);if(i===(96)){$s=5;continue;}if(i===(34)){$s=6;continue;}$s=7;continue;case 5:j=false;k=J.Cut($substring(b[0],1),"`");g=k[0];j=k[2];if(!j){$s=9;continue;}$s=10;continue;case 9:l=D.Errorf("invalid quoted string in //go:embed: %s",new CP([new $String(b[0])]));$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=[CR.nil,l];$s=12;case 12:return m;case 10:$r=d[0]((1+g.length>>0)+1>>0);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 6:n=1;case 14:if(!(n>0;n=n+(1)>>0;$s=14;continue;}if(b[0].charCodeAt(n)===34){$s=16;continue;}$s=17;continue;case 16:o=I.Unquote($substring(b[0],0,(n+1>>0)));p=o[0];q=o[1];if(!($interfaceIsEqual(q,$ifaceNil))){$s=18;continue;}$s=19;continue;case 18:r=D.Errorf("invalid quoted string in //go:embed: %s",new CP([new $String($substring(b[0],0,(n+1>>0)))]));$s=20;case 20:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=[CR.nil,r];$s=21;case 21:return s;case 19:g=p;$r=d[0](n+1>>0);$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=4;continue s;case 17:n=n+(1)>>0;$s=14;continue;case 15:if(n>=b[0].length){$s=23;continue;}$s=24;continue;case 23:t=D.Errorf("invalid quoted string in //go:embed: %s",new CP([new $String(b[0])]));$s=25;case 25:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=[CR.nil,t];$s=26;case 26:return u;case 24:$s=8;continue;case 7:v=b[0].length;w=b[0];x=0;while(true){if(!(x=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f]);if(g===""||g===b.GOROOT){f++;$s=2;continue;}if(J.HasPrefix(g,"~")){f++;$s=2;continue;}c=$append(c,g);f++;$s=2;continue;case 3:$s=-1;return c;}return;}var $f={$blk:AL.ptr.prototype.gopath,$c:true,$r,b,c,d,e,f,g,$s};return $f;};AL.prototype.gopath=function(){return this.$val.gopath();};AL.ptr.prototype.SrcDirs=function(){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=CI.nil;if(!(b.GOROOT==="")&&!(b.Compiler==="gccgo")){$s=1;continue;}$s=2;continue;case 1:d=b.joinPath(new CI([b.GOROOT,"src"]));$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=b.isDir(e);$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f){$s=4;continue;}$s=5;continue;case 4:c=$append(c,e);case 5:case 2:h=b.gopath();$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;i=0;case 8:if(!(i=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+i]);k=b.joinPath(new CI([j,"src"]));$s=10;case 10:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;m=b.isDir(l);$s=13;case 13:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if(m){$s=11;continue;}$s=12;continue;case 11:c=$append(c,l);case 12:i++;$s=8;continue;case 9:$s=-1;return c;}return;}var $f={$blk:AL.ptr.prototype.SrcDirs,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};AL.prototype.SrcDirs=function(){return this.$val.SrcDirs();};AN=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b="HOME";if(false){b="USERPROFILE";}else if(false){b="home";}c=W.Getenv(b);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!(d==="")){e=M.Join(new CI([d,"go"]));if(M.Clean(e)===M.Clean(N.GOROOT())){$s=-1;return"";}$s=-1;return e;}$s=-1;return"";}return;}var $f={$blk:AN,$c:true,$r,b,c,d,e,$s};return $f;};AQ=function(){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=new AL.ptr("","","","","",false,false,"",CI.nil,CI.nil,CI.nil,"",$throwNilPointerError,$throwNilPointerError,$throwNilPointerError,$throwNilPointerError,$throwNilPointerError,$throwNilPointerError,$throwNilPointerError);b.GOARCH=Q.GOARCH;b.GOOS=Q.GOOS;b.GOROOT=X.Clean(N.GOROOT());c=AN();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=AR("GOPATH",d);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}b.GOPATH=e;b.Compiler="gopherjs";g=Q.EnabledExperiments();$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=0;case 4:if(!(h=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+h]);b.ToolTags=$append(b.ToolTags,"goexperiment."+i);h++;$s=4;continue;case 5:AO=$appendSlice(new CI([]),b.ToolTags);j=1;while(true){if(!(j<=18)){break;}b.ReleaseTags=$append(b.ReleaseTags,"go1."+I.Itoa(j));j=j+(1)>>0;}AP=$appendSlice(new CI([]),b.ReleaseTags);k=W.Getenv("CGO_ENABLED");$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(l===""){l="";}switch(0){default:m=l;if(m===("1")){b.CgoEnabled=true;}else if(m===("0")){b.CgoEnabled=false;}else{if("ecmascript"===b.GOARCH&&"js"===b.GOOS){b.CgoEnabled=(n=$mapIndex(Z,$String.keyFor(b.GOOS+"/"+b.GOARCH)),n!==undefined?n.v:false);break;}b.CgoEnabled=false;}}$s=-1;return b;}return;}var $f={$blk:AQ,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};AR=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=W.Getenv(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===""){$s=-1;return c;}$s=-1;return e;}return;}var $f={$blk:AR,$c:true,$r,b,c,d,e,$s};return $f;};AT.ptr.prototype.IsCommand=function(){var b;b=this;return b.Name==="main";};AT.prototype.IsCommand=function(){return this.$val.IsCommand();};AL.ptr.prototype.ImportDir=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.Import(".",b,c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:AL.ptr.prototype.ImportDir,$c:true,$r,b,c,d,e,f,$s};return $f;};AL.prototype.ImportDir=function(b,c){return this.$val.ImportDir(b,c);};AU.ptr.prototype.Error=function(){var b;b=this;return"no buildable Go source files in "+b.Dir;};AU.prototype.Error=function(){return this.$val.Error();};AV.ptr.prototype.Error=function(){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;g=D.Sprintf("found packages %s (%s) and %s (%s) in %s",new CP([new $String((c=b.Packages,(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]))),new $String((d=b.Files,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]))),new $String((e=b.Packages,(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]))),new $String((f=b.Files,(1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1]))),new $String(b.Dir)]));$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=2;case 2:return h;}return;}var $f={$blk:AV.ptr.prototype.Error,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};AV.prototype.Error=function(){return this.$val.Error();};AW=function(b){var b,c;c=J.LastIndex(b,".");if(c<0){return"";}return $substring(b,c);};AL.ptr.prototype.Import=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];e=[e];f=[f];g=[g];h=[h];i=[i];j=[j];k=[k];l=[l];g[0]=this;h[0]=new AT.ptr("","","","",b[0],"","","","","",false,"",CI.nil,"",false,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,false,CI.nil,false,CI.nil,false,CI.nil,false,CI.nil,false,CI.nil,false);if(b[0]===""){$s=1;continue;}$s=2;continue;case 1:m=D.Errorf("import %q: invalid import path",new CP([new $String(b[0])]));$s=3;case 3:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=[h[0],m];$s=4;case 4:return n;case 2:j[0]="";i[0]="";o=$ifaceNil;p="";if(!(g[0].InstallSuffix==="")){p="_"+g[0].InstallSuffix;}q=g[0].Compiler;if(q===("gccgo")){$s=6;continue;}if(q===("gc")){$s=7;continue;}$s=8;continue;case 6:j[0]="pkg/gccgo_"+g[0].GOOS+"_"+g[0].GOARCH+p;$s=9;continue;case 7:j[0]="pkg/"+g[0].GOOS+"_"+g[0].GOARCH+p;$s=9;continue;case 8:r=D.Errorf("import %q: unknown compiler %q",new CP([new $String(b[0]),new $String(g[0].Compiler)]));$s=10;case 10:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}o=r;case 9:case 5:k[0]=(function(b,c,e,f,g,h,i,j,k,l){return function(){var s,t,u,v;s=g[0].Compiler;if(s===("gccgo")){t=X.Split(h[0].ImportPath);u=t[0];v=t[1];i[0]=j[0]+"/"+u+"lib"+v+".a";}else if(s===("gc")){i[0]=j[0]+"/"+h[0].ImportPath+".a";}};})(b,c,e,f,g,h,i,j,k,l);$r=k[0]();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s=false;if(CG(b[0])){$s=12;continue;}$s=13;continue;case 12:i[0]="";if(c[0]===""){$s=15;continue;}$s=16;continue;case 15:t=D.Errorf("import %q: import relative to unknown directory",new CP([new $String(b[0])]));$s=17;case 17:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=[h[0],t];$s=18;case 18:return u;case 16:v=g[0].isAbsPath(b[0]);$s=21;case 21:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}if(!v){$s=19;continue;}$s=20;continue;case 19:w=g[0].joinPath(new CI([c[0],b[0]]));$s=22;case 22:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}h[0].Dir=w;case 20:x=(function(b,c,e,f,g,h,i,j,k,l){return function(x){var x;return J.Contains(x,"/testdata/")||J.HasSuffix(x,"/testdata")||J.HasPrefix(x,"testdata/")||x==="testdata";};})(b,c,e,f,g,h,i,j,k,l);if(!(g[0].GOROOT==="")){$s=23;continue;}$s=24;continue;case 23:y=g[0].joinPath(new CI([g[0].GOROOT,"src"]));$s=25;case 25:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;ab=g[0].hasSubdir(z,h[0].Dir);$s=26;case 26:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;ac=aa[0];ad=aa[1];if(!(ad)){ae=false;$s=29;continue s;}af=x(ac);$s=30;case 30:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ae=!af;case 29:if(ae){$s=27;continue;}$s=28;continue;case 27:h[0].Goroot=true;h[0].ImportPath=ac;h[0].Root=g[0].GOROOT;$r=k[0]();$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=32;continue;case 28:case 24:ag=g[0].gopath();$s=33;case 33:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag;ai=ah;aj=0;case 34:if(!(aj=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+aj]);am=g[0].joinPath(new CI([al,"src"]));$s=36;case 36:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am;ap=g[0].hasSubdir(an,h[0].Dir);$s=37;case 37:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ao=ap;aq=ao[0];ar=ao[1];if(!(ar)){as=false;$s=40;continue s;}at=x(aq);$s=41;case 41:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}as=!at;case 40:if(as){$s=38;continue;}$s=39;continue;case 38:if(!(g[0].GOROOT==="")&&!(g[0].Compiler==="gccgo")){$s=42;continue;}$s=43;continue;case 42:au=g[0].joinPath(new CI([g[0].GOROOT,"src",aq]));$s=44;case 44:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=au;aw=g[0].isDir(av);$s=47;case 47:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}if(aw){$s=45;continue;}$s=46;continue;case 45:h[0].ConflictDir=av;$s=32;continue;case 46:case 43:ax=$subslice(ah,0,ak);ay=0;case 48:if(!(ay=ax.$length)?($throwRuntimeError("index out of range"),undefined):ax.$array[ax.$offset+ay]);ba=g[0].joinPath(new CI([az,"src",aq]));$s=50;case 50:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba;bc=g[0].isDir(bb);$s=53;case 53:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}if(bc){$s=51;continue;}$s=52;continue;case 51:h[0].ConflictDir=bb;$s=32;continue;case 52:ay++;$s=48;continue;case 49:h[0].ImportPath=aq;h[0].Root=al;$r=k[0]();$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=32;continue;case 39:aj++;$s=34;continue;case 35:$s=14;continue;case 13:if(J.HasPrefix(b[0],"/")){$s=55;continue;}$s=56;continue;case 55:bd=D.Errorf("import %q: cannot import absolute path",new CP([new $String(b[0])]));$s=57;case 57:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=[h[0],bd];$s=58;case 58:return be;case 56:bf=g[0].importGo(h[0],b[0],c[0],d);$s=59;case 59:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bg=bf;if($interfaceIsEqual(bg,$ifaceNil)){$s=60;continue;}if(!($interfaceIsEqual(bg,AZ))){$s=61;continue;}$s=62;continue;case 60:$s=32;continue;$s=62;continue;case 61:$s=-1;return[h[0],bg];case 62:bh=g[0].gopath();$s=63;case 63:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bi=bh;l[0]=new CS.ptr(CI.nil,"",CI.nil);if((((d&8)>>>0)===0)&&!(c[0]==="")){$s=64;continue;}$s=65;continue;case 64:bj=(function(b,c,e,f,g,h,i,j,k,l){return function $b(bj,bk){var{bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,$s,$r,$c}=$restore(this,{bj,bk});$s=$s||0;s:while(true){switch($s){case 0:bm=g[0].hasSubdir(bj,c[0]);$s=1;case 1:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bl=bm;bn=bl[0];bo=bl[1];if(!bo||!J.HasPrefix(bn,"src/")||J.Contains(bn,"/testdata/")){$s=-1;return false;}case 2:bp=g[0].joinPath(new CI([bj,bn,"vendor"]));$s=4;case 4:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}bq=bp;br=g[0].isDir(bq);$s=7;case 7:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}if(br){$s=5;continue;}$s=6;continue;case 5:bs=g[0].joinPath(new CI([bq,b[0]]));$s=8;case 8:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}bt=bs;bv=g[0].isDir(bt);$s=12;case 12:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}if(!(bv)){bu=false;$s=11;continue s;}bw=BB(g[0],bt);$s=13;case 13:if($c){$c=false;bw=bw.$blk();}if(bw&&bw.$blk!==undefined){break s;}bu=bw;case 11:if(bu){$s=9;continue;}$s=10;continue;case 9:h[0].Dir=bt;h[0].ImportPath=J.TrimPrefix(X.Join(new CI([bn,"vendor",b[0]])),"src/");h[0].Goroot=bk;h[0].Root=bj;$r=k[0]();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return true;case 10:l[0].vendor=$append(l[0].vendor,bt);case 6:bx=J.LastIndex(bn,"/");if(bx<0){$s=3;continue;}bn=$substring(bn,0,bx);$s=2;continue;case 3:$s=-1;return false;}return;}var $f={$blk:$b,$c:true,$r,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,$s};return $f;};})(b,c,e,f,g,h,i,j,k,l);if(!(!(g[0].Compiler==="gccgo"))){bk=false;$s=68;continue s;}bl=bj(g[0].GOROOT,true);$s=69;case 69:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}bk=bl;case 68:if(bk){$s=66;continue;}$s=67;continue;case 66:$s=32;continue;case 67:bm=bi;bn=0;case 70:if(!(bn=bm.$length)?($throwRuntimeError("index out of range"),undefined):bm.$array[bm.$offset+bn]);bp=bj(bo,false);$s=74;case 74:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}if(bp){$s=72;continue;}$s=73;continue;case 72:$s=32;continue;case 73:bn++;$s=70;continue;case 71:case 65:if(!(g[0].GOROOT==="")){$s=75;continue;}$s=76;continue;case 75:bq=c[0]===""||!J.HasPrefix(b[0],"vendor/");if(!bq){$s=77;continue;}$s=78;continue;case 77:bs=g[0].hasSubdir(g[0].GOROOT,c[0]);$s=79;case 79:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}br=bs;bq=br[1];case 78:if(bq){$s=80;continue;}$s=81;continue;case 80:bt=g[0].joinPath(new CI([g[0].GOROOT,"src",b[0]]));$s=82;case 82:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}bu=bt;if(!(g[0].Compiler==="gccgo")){$s=83;continue;}$s=84;continue;case 83:bv=g[0].isDir(bu);$s=85;case 85:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}bw=bv;if(!(!bw&&!((((d&2)>>>0)===0))&&!(i[0]===""))){bx=false;$s=86;continue s;}by=g[0].joinPath(new CI([g[0].GOROOT,i[0]]));$s=87;case 87:if($c){$c=false;by=by.$blk();}if(by&&by.$blk!==undefined){break s;}bz=g[0].isFile(by);$s=88;case 88:if($c){$c=false;bz=bz.$blk();}if(bz&&bz.$blk!==undefined){break s;}bx=bz;case 86:s=bx;if(bw||s){$s=89;continue;}$s=90;continue;case 89:h[0].Dir=bu;h[0].Goroot=true;h[0].Root=g[0].GOROOT;$s=32;continue;case 90:case 84:l[0].goroot=bu;case 81:case 76:if(!(g[0].Compiler==="gccgo")){ca=false;$s=93;continue s;}cb=S.IsStandardPackage(g[0].GOROOT,g[0].Compiler,b[0]);$s=94;case 94:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}ca=cb;case 93:if(ca){$s=91;continue;}$s=92;continue;case 91:cc=g[0].joinPath(new CI([g[0].GOROOT,"src",b[0]]));$s=95;case 95:if($c){$c=false;cc=cc.$blk();}if(cc&&cc.$blk!==undefined){break s;}h[0].Dir=cc;h[0].Goroot=true;h[0].Root=g[0].GOROOT;$s=32;continue;case 92:cd=bi;ce=0;case 96:if(!(ce=cd.$length)?($throwRuntimeError("index out of range"),undefined):cd.$array[cd.$offset+ce]);cg=g[0].joinPath(new CI([cf,"src",b[0]]));$s=98;case 98:if($c){$c=false;cg=cg.$blk();}if(cg&&cg.$blk!==undefined){break s;}ch=cg;ci=g[0].isDir(ch);$s=99;case 99:if($c){$c=false;ci=ci.$blk();}if(ci&&ci.$blk!==undefined){break s;}cj=ci;if(!(!cj&&!((((d&2)>>>0)===0))&&!(i[0]===""))){ck=false;$s=100;continue s;}cl=g[0].joinPath(new CI([cf,i[0]]));$s=101;case 101:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}cm=g[0].isFile(cl);$s=102;case 102:if($c){$c=false;cm=cm.$blk();}if(cm&&cm.$blk!==undefined){break s;}ck=cm;case 100:s=ck;if(cj||s){$s=103;continue;}$s=104;continue;case 103:h[0].Dir=ch;h[0].Root=cf;$s=32;continue;case 104:l[0].gopath=$append(l[0].gopath,ch);ce++;$s=96;continue;case 97:if(!(g[0].GOROOT==="")&&l[0].goroot===""){$s=105;continue;}$s=106;continue;case 105:cn=g[0].joinPath(new CI([g[0].GOROOT,"src",b[0]]));$s=107;case 107:if($c){$c=false;cn=cn.$blk();}if(cn&&cn.$blk!==undefined){break s;}co=cn;if(!(g[0].Compiler==="gccgo")){$s=108;continue;}$s=109;continue;case 108:cp=g[0].isDir(co);$s=110;case 110:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}cq=cp;if(!(!cq&&!((((d&2)>>>0)===0))&&!(i[0]===""))){cr=false;$s=111;continue s;}cs=g[0].joinPath(new CI([g[0].GOROOT,i[0]]));$s=112;case 112:if($c){$c=false;cs=cs.$blk();}if(cs&&cs.$blk!==undefined){break s;}ct=g[0].isFile(cs);$s=113;case 113:if($c){$c=false;ct=ct.$blk();}if(ct&&ct.$blk!==undefined){break s;}cr=ct;case 111:s=cr;if(cq||s){$s=114;continue;}$s=115;continue;case 114:h[0].Dir=co;h[0].Goroot=true;h[0].Root=g[0].GOROOT;$s=32;continue;case 115:case 109:l[0].goroot=co;case 106:cu=CI.nil;cv="\t%s (vendor tree)";cw=l[0].vendor;cx=0;case 116:if(!(cx=cw.$length)?($throwRuntimeError("index out of range"),undefined):cw.$array[cw.$offset+cx]);cz=D.Sprintf(cv,new CP([new $String(cy)]));$s=118;case 118:if($c){$c=false;cz=cz.$blk();}if(cz&&cz.$blk!==undefined){break s;}cu=$append(cu,cz);cv="\t%s";cx++;$s=116;continue;case 117:if(!(l[0].goroot==="")){$s=119;continue;}$s=120;continue;case 119:da=D.Sprintf("\t%s (from $GOROOT)",new CP([new $String(l[0].goroot)]));$s=122;case 122:if($c){$c=false;da=da.$blk();}if(da&&da.$blk!==undefined){break s;}cu=$append(cu,da);$s=121;continue;case 120:cu=$append(cu,"\t($GOROOT not set)");case 121:cv="\t%s (from $GOPATH)";db=l[0].gopath;dc=0;case 123:if(!(dc=db.$length)?($throwRuntimeError("index out of range"),undefined):db.$array[db.$offset+dc]);de=D.Sprintf(cv,new CP([new $String(dd)]));$s=125;case 125:if($c){$c=false;de=de.$blk();}if(de&&de.$blk!==undefined){break s;}cu=$append(cu,de);cv="\t%s";dc++;$s=123;continue;case 124:if(l[0].gopath.$length===0){cu=$append(cu,"\t($GOPATH not set. For more details see: 'go help gopath')");}df=D.Errorf("cannot find package %q in any of:\n%s",new CP([new $String(b[0]),new $String(J.Join(cu,"\n"))]));$s=126;case 126:if($c){$c=false;df=df.$blk();}if(df&&df.$blk!==undefined){break s;}dg=[h[0],df];$s=127;case 127:return dg;case 14:case 32:if(!(h[0].Root==="")){$s=128;continue;}$s=129;continue;case 128:dh=g[0].joinPath(new CI([h[0].Root,"src"]));$s=130;case 130:if($c){$c=false;dh=dh.$blk();}if(dh&&dh.$blk!==undefined){break s;}h[0].SrcRoot=dh;di=g[0].joinPath(new CI([h[0].Root,"pkg"]));$s=131;case 131:if($c){$c=false;di=di.$blk();}if(di&&di.$blk!==undefined){break s;}h[0].PkgRoot=di;dj=g[0].joinPath(new CI([h[0].Root,"bin"]));$s=132;case 132:if($c){$c=false;dj=dj.$blk();}if(dj&&dj.$blk!==undefined){break s;}h[0].BinDir=dj;if(!(i[0]==="")){$s=133;continue;}$s=134;continue;case 133:dk=g[0].joinPath(new CI([h[0].Root,j[0]]));$s=135;case 135:if($c){$c=false;dk=dk.$blk();}if(dk&&dk.$blk!==undefined){break s;}h[0].PkgTargetRoot=dk;dl=g[0].joinPath(new CI([h[0].Root,i[0]]));$s=136;case 136:if($c){$c=false;dl=dl.$blk();}if(dl&&dl.$blk!==undefined){break s;}h[0].PkgObj=dl;case 134:case 129:if(!(CG(b[0]))){dm=false;$s=139;continue s;}dn=g[0].isDir(h[0].Dir);$s=140;case 140:if($c){$c=false;dn=dn.$blk();}if(dn&&dn.$blk!==undefined){break s;}dm=!dn;case 139:if(dm){$s=137;continue;}$s=138;continue;case 137:if(g[0].Compiler==="gccgo"&&h[0].Goroot){$s=-1;return[h[0],$ifaceNil];}dp=D.Errorf("cannot find package %q in:\n\t%s",new CP([new $String(h[0].ImportPath),new $String(h[0].Dir)]));$s=141;case 141:if($c){$c=false;dp=dp.$blk();}if(dp&&dp.$blk!==undefined){break s;}dq=[h[0],dp];$s=142;case 142:return dq;case 138:if(!((((d&1)>>>0)===0))){$s=-1;return[h[0],o];}if(s&&!(((((d&2)>>>0))===0))){$s=-1;return[h[0],o];}if(g[0].Compiler==="gccgo"&&h[0].Goroot){$s=-1;return[h[0],$ifaceNil];}ds=g[0].readDir(h[0].Dir);$s=143;case 143:if($c){$c=false;ds=ds.$blk();}if(ds&&ds.$blk!==undefined){break s;}dr=ds;dt=dr[0];du=dr[1];if(!($interfaceIsEqual(du,$ifaceNil))){$s=-1;return[h[0],du];}f[0]=$ifaceNil;e[0]=new $global.Map();dv=(function(b,c,e,f,g,h,i,j,k,l){return function(dv,dw){var dv,dw,dx,dy;if($interfaceIsEqual(f[0],$ifaceNil)){f[0]=dw;}if(!(dx=$mapIndex(e[0],$String.keyFor(dv)),dx!==undefined?dx.v:false)){h[0].InvalidGoFiles=$append(h[0].InvalidGoFiles,dv);dy=dv;(e[0]||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(dy),{k:dy,v:true});}};})(b,c,e,f,g,h,i,j,k,l);dw=CI.nil;dx="";dy="";dz=dx;ea=dy;eb=new $global.Map();ec=new $global.Map();ed=new $global.Map();ee=new $global.Map();ef=new $global.Map();eg=new $global.Map();eh=new $global.Map();ei=G.NewFileSet();ej=dt;ek=0;case 144:if(!(ek=ej.$length)?($throwRuntimeError("index out of range"),undefined):ej.$array[ej.$offset+ek]);em=el.IsDir();$s=148;case 148:if($c){$c=false;em=em.$blk();}if(em&&em.$blk!==undefined){break s;}if(em){$s=146;continue;}$s=147;continue;case 146:ek++;$s=144;continue;case 147:en=el.Mode();$s=151;case 151:if($c){$c=false;en=en.$blk();}if(en&&en.$blk!==undefined){break s;}if(!((((en&134217728)>>>0)===0))){$s=149;continue;}$s=150;continue;case 149:eo=h[0].Dir;ep=el.Name();$s=154;case 154:if($c){$c=false;ep=ep.$blk();}if(ep&&ep.$blk!==undefined){break s;}eq=ep;er=g[0].joinPath(new CI([eo,eq]));$s=155;case 155:if($c){$c=false;er=er.$blk();}if(er&&er.$blk!==undefined){break s;}es=g[0].isDir(er);$s=156;case 156:if($c){$c=false;es=es.$blk();}if(es&&es.$blk!==undefined){break s;}if(es){$s=152;continue;}$s=153;continue;case 152:ek++;$s=144;continue;case 153:case 150:et=el.Name();$s=157;case 157:if($c){$c=false;et=et.$blk();}if(et&&et.$blk!==undefined){break s;}eu=et;ev=AW(eu);ex=g[0].matchFile(h[0].Dir,eu,eh,(h[0].$ptr_BinaryOnly||(h[0].$ptr_BinaryOnly=new CT(function(){return this.$target.BinaryOnly;},function($v){this.$target.BinaryOnly=$v;},h[0]))),ei);$s=158;case 158:if($c){$c=false;ex=ex.$blk();}if(ex&&ex.$blk!==undefined){break s;}ew=ex;ey=ew[0];ez=ew[1];if(!($interfaceIsEqual(ez,$ifaceNil))){$s=159;continue;}$s=160;continue;case 159:$r=dv(eu,ez);$s=161;case 161:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ek++;$s=144;continue;case 160:if(ey===CU.nil){if(J.HasPrefix(eu,"_")||J.HasPrefix(eu,".")){}else if(ev===".go"){h[0].IgnoredGoFiles=$append(h[0].IgnoredGoFiles,eu);}else if(!(AX(h[0],ev)===CV.nil)){h[0].IgnoredOtherFiles=$append(h[0].IgnoredOtherFiles,eu);}ek++;$s=144;continue;}fa=ey.header;fb=ey.name;fc=fa;fd=fb;fe=ev;if(fe===(".go")){}else if(fe===(".S")||fe===(".sx")){dw=$append(dw,eu);ek++;$s=144;continue;}else{ff=AX(h[0],ev);if(!(ff===CV.nil)){ff.$set($append(ff.$get(),eu));}ek++;$s=144;continue;}if(!($interfaceIsEqual(ey.parseErr,$ifaceNil))){$s=162;continue;}$s=163;continue;case 162:$r=dv(eu,ey.parseErr);$s=164;case 164:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 163:fg="";if(!(ey.parsed===CW.nil)){fg=ey.parsed.Name.Name;if(fg==="documentation"){h[0].IgnoredGoFiles=$append(h[0].IgnoredGoFiles,eu);ek++;$s=144;continue;}}fh=J.HasSuffix(eu,"_test.go");fi=false;if(fh&&J.HasSuffix(fg,"_test")&&!(h[0].Name===fg)){fi=true;fg=$substring(fg,0,(fg.length-5>>0));}if(h[0].Name===""){$s=165;continue;}if(!(fg===h[0].Name)){$s=166;continue;}$s=167;continue;case 165:h[0].Name=fg;dz=eu;$s=167;continue;case 166:$r=dv(eu,new AV.ptr(h[0].Dir,new CI([h[0].Name,fg]),new CI([dz,eu])));$s=168;case 168:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 167:if(!(ey.parsed===CW.nil)&&!(ey.parsed.Doc===CQ.nil)&&h[0].Doc===""&&!fh&&!fi){$s=169;continue;}$s=170;continue;case 169:fj=P.Synopsis(ey.parsed.Doc.Text());$s=171;case 171:if($c){$c=false;fj=fj.$blk();}if(fj&&fj.$blk!==undefined){break s;}h[0].Doc=fj;case 170:if(!((((d&4)>>>0)===0))){$s=172;continue;}$s=173;continue;case 172:fl=BC(fc);$s=174;case 174:if($c){$c=false;fl=fl.$blk();}if(fl&&fl.$blk!==undefined){break s;}fk=fl;fm=fk[0];fn=fk[1];if(!((fn===0))){$s=175;continue;}$s=176;continue;case 175:fo=I.Unquote(fm);fp=fo[0];fq=fo[1];if(!($interfaceIsEqual(fq,$ifaceNil))){$s=177;continue;}if(h[0].ImportComment===""){$s=178;continue;}if(!(h[0].ImportComment===fp)){$s=179;continue;}$s=180;continue;case 177:fr=eu;fs=D.Errorf("%s:%d: cannot parse import comment",new CP([new $String(fd),new $Int(fn)]));$s=181;case 181:if($c){$c=false;fs=fs.$blk();}if(fs&&fs.$blk!==undefined){break s;}ft=fs;$r=dv(fr,ft);$s=182;case 182:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=180;continue;case 178:h[0].ImportComment=fp;ea=eu;$s=180;continue;case 179:fu=eu;fv=D.Errorf("found import comments %q (%s) and %q (%s) in %s",new CP([new $String(h[0].ImportComment),new $String(ea),new $String(fp),new $String(eu),new $String(h[0].Dir)]));$s=183;case 183:if($c){$c=false;fv=fv.$blk();}if(fv&&fv.$blk!==undefined){break s;}fw=fv;$r=dv(fu,fw);$s=184;case 184:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 180:case 176:case 173:fx=false;fy=ey.imports;fz=0;case 185:if(!(fz=fy.$length)?($throwRuntimeError("index out of range"),undefined):fy.$array[fy.$offset+fz]),BL);if(ga.path==="C"){$s=187;continue;}$s=188;continue;case 187:if(fh){$s=189;continue;}$s=190;continue;case 189:gb=eu;gc=D.Errorf("use of cgo in test %s not supported",new CP([new $String(fd)]));$s=191;case 191:if($c){$c=false;gc=gc.$blk();}if(gc&&gc.$blk!==undefined){break s;}gd=gc;$r=dv(gb,gd);$s=192;case 192:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}fz++;$s=185;continue;case 190:fx=true;if(!(ga.doc===CQ.nil)){$s=193;continue;}$s=194;continue;case 193:ge=g[0].saveCgo(fd,h[0],ga.doc);$s=195;case 195:if($c){$c=false;ge=ge.$blk();}if(ge&&ge.$blk!==undefined){break s;}gf=ge;if(!($interfaceIsEqual(gf,$ifaceNil))){$s=196;continue;}$s=197;continue;case 196:$r=dv(eu,gf);$s=198;case 198:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 197:case 194:case 188:fz++;$s=185;continue;case 186:gg=CV.nil;gh=false;gi=false;gj=gh;gk=gi;if(fx){gl="cgo";(eh||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(gl),{k:gl,v:true});if(g[0].CgoEnabled){gg=(h[0].$ptr_CgoFiles||(h[0].$ptr_CgoFiles=new CV(function(){return this.$target.CgoFiles;},function($v){this.$target.CgoFiles=$v;},h[0])));gj=ee;gk=eb;}else{gg=(h[0].$ptr_IgnoredGoFiles||(h[0].$ptr_IgnoredGoFiles=new CV(function(){return this.$target.IgnoredGoFiles;},function($v){this.$target.IgnoredGoFiles=$v;},h[0])));}}else if(fi){gg=(h[0].$ptr_XTestGoFiles||(h[0].$ptr_XTestGoFiles=new CV(function(){return this.$target.XTestGoFiles;},function($v){this.$target.XTestGoFiles=$v;},h[0])));gj=eg;gk=ed;}else if(fh){gg=(h[0].$ptr_TestGoFiles||(h[0].$ptr_TestGoFiles=new CV(function(){return this.$target.TestGoFiles;},function($v){this.$target.TestGoFiles=$v;},h[0])));gj=ef;gk=ec;}else{gg=(h[0].$ptr_GoFiles||(h[0].$ptr_GoFiles=new CV(function(){return this.$target.GoFiles;},function($v){this.$target.GoFiles=$v;},h[0])));gj=ee;gk=eb;}gg.$set($append(gg.$get(),eu));if(!(gj===false)){$s=199;continue;}$s=200;continue;case 199:gm=ey.imports;gn=0;case 201:if(!(gn=gm.$length)?($throwRuntimeError("index out of range"),undefined):gm.$array[gm.$offset+gn]),BL);gq=ei.Position(go.pos);$s=203;case 203:if($c){$c=false;gq=gq.$blk();}if(gq&&gq.$blk!==undefined){break s;}gp=go.path;(gj||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(gp),{k:gp,v:$append((gr=$mapIndex(gj,$String.keyFor(go.path)),gr!==undefined?gr.v:CX.nil),gq)});gn++;$s=201;continue;case 202:case 200:if(!(gk===false)){gs=ey.embeds;gt=0;while(true){if(!(gt=gs.$length)?($throwRuntimeError("index out of range"),undefined):gs.$array[gs.$offset+gt]),BM);gv=gu.pattern;(gk||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(gv),{k:gv,v:$append((gw=$mapIndex(gk,$String.keyFor(gu.pattern)),gw!==undefined?gw.v:CX.nil),gu.pos)});gt++;}}ek++;$s=144;continue;case 145:gx=eh;gy=0;gz=gx?gx.keys():undefined;ha=gx?gx.size:0;while(true){if(!(gy0){$s=211;continue;}$s=212;continue;case 211:h[0].SFiles=$appendSlice(h[0].SFiles,dw);$r=Y.Strings(h[0].SFiles);$s=214;case 214:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=213;continue;case 212:h[0].IgnoredOtherFiles=$appendSlice(h[0].IgnoredOtherFiles,dw);$r=Y.Strings(h[0].IgnoredOtherFiles);$s=215;case 215:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 213:if(!($interfaceIsEqual(f[0],$ifaceNil))){$s=-1;return[h[0],f[0]];}if((((h[0].GoFiles.$length+h[0].CgoFiles.$length>>0)+h[0].TestGoFiles.$length>>0)+h[0].XTestGoFiles.$length>>0)===0){$s=-1;return[h[0],new AU.ptr(h[0].Dir)];}$s=-1;return[h[0],o];}return;}var $f={$blk:AL.ptr.prototype.Import,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AL.prototype.Import=function(b,c,d){return this.$val.Import(b,c,d);};AX=function(b,c){var b,c,d;d=c;if(d===(".c")){return(b.$ptr_CFiles||(b.$ptr_CFiles=new CV(function(){return this.$target.CFiles;},function($v){this.$target.CFiles=$v;},b)));}else if(d===(".cc")||d===(".cpp")||d===(".cxx")){return(b.$ptr_CXXFiles||(b.$ptr_CXXFiles=new CV(function(){return this.$target.CXXFiles;},function($v){this.$target.CXXFiles=$v;},b)));}else if(d===(".m")){return(b.$ptr_MFiles||(b.$ptr_MFiles=new CV(function(){return this.$target.MFiles;},function($v){this.$target.MFiles=$v;},b)));}else if(d===(".h")||d===(".hh")||d===(".hpp")||d===(".hxx")){return(b.$ptr_HFiles||(b.$ptr_HFiles=new CV(function(){return this.$target.HFiles;},function($v){this.$target.HFiles=$v;},b)));}else if(d===(".f")||d===(".F")||d===(".for")||d===(".f90")){return(b.$ptr_FFiles||(b.$ptr_FFiles=new CV(function(){return this.$target.FFiles;},function($v){this.$target.FFiles=$v;},b)));}else if(d===(".s")||d===(".S")||d===(".sx")){return(b.$ptr_SFiles||(b.$ptr_SFiles=new CV(function(){return this.$target.SFiles;},function($v){this.$target.SFiles=$v;},b)));}else if(d===(".swig")){return(b.$ptr_SwigFiles||(b.$ptr_SwigFiles=new CV(function(){return this.$target.SwigFiles;},function($v){this.$target.SwigFiles=$v;},b)));}else if(d===(".swigcxx")){return(b.$ptr_SwigCXXFiles||(b.$ptr_SwigCXXFiles=new CV(function(){return this.$target.SwigCXXFiles;},function($v){this.$target.SwigCXXFiles=$v;},b)));}else if(d===(".syso")){return(b.$ptr_SysoFiles||(b.$ptr_SysoFiles=new CV(function(){return this.$target.SysoFiles;},function($v){this.$target.SysoFiles=$v;},b)));}return CV.nil;};AL.ptr.prototype.importGo=function(b,c,d,e){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=[f];g=[g];h=this;if(!((((e&2)>>>0)===0))||!((((e&8)>>>0)===0))||!(h.JoinPath===$throwNilPointerError)||!(h.SplitPathList===$throwNilPointerError)||!(h.IsAbsPath===$throwNilPointerError)||!(h.IsDir===$throwNilPointerError)||!(h.HasSubdir===$throwNilPointerError)||!(h.ReadDir===$throwNilPointerError)||!(h.OpenFile===$throwNilPointerError)||!BA(h.ToolTags,AO)||!BA(h.ReleaseTags,AP)){$s=-1;return AZ;}i=W.Getenv("GO111MODULE");$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=j;if(k===("off")){$s=-1;return AZ;}if(!(d==="")){$s=2;continue;}$s=3;continue;case 2:l="";if(M.IsAbs(d)){$s=4;continue;}if(!(h.Dir==="")){$s=5;continue;}$s=6;continue;case 4:l=d;$s=7;continue;case 5:m=D.Errorf("go/build: Dir is non-empty, so relative srcDir is not allowed: %v",new CP([new $String(d)]));$s=8;case 8:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=9;case 9:return n;case 6:o=$ifaceNil;q=M.Abs(d);$s=10;case 10:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;l=p[0];o=p[1];if(!($interfaceIsEqual(o,$ifaceNil))){$s=-1;return AZ;}case 7:s=h.hasSubdir(M.Join(new CI([h.GOROOT,"src"])),l);$s=11;case 11:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;t=r[1];if(t){$s=-1;return AZ;}case 3:if(!(h.GOROOT==="")){$s=12;continue;}$s=13;continue;case 12:u=h.joinPath(new CI([h.GOROOT,"src",c]));$s=14;case 14:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;w=h.isDir(v);$s=17;case 17:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}if(w){$s=15;continue;}$s=16;continue;case 15:$s=-1;return AZ;case 16:case 13:if(j==="auto"){$s=18;continue;}$s=19;continue;case 18:x="";y=$ifaceNil;if(h.Dir===""){$s=20;continue;}$s=21;continue;case 20:aa=W.Getwd();$s=23;case 23:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;x=z[0];y=z[1];if(!($interfaceIsEqual(y,$ifaceNil))){$s=-1;return AZ;}$s=22;continue;case 21:ac=M.Abs(h.Dir);$s=24;case 24:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ab=ac;x=ab[0];y=ab[1];if(!($interfaceIsEqual(y,$ifaceNil))){$s=-1;return y;}case 22:case 25:ae=h.joinPath(new CI([x,"go.mod"]));$s=27;case 27:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=h.openFile(ae);$s=28;case 28:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ad=af;ag=ad[0];ah=ad[1];if($interfaceIsEqual(ah,$ifaceNil)){$s=29;continue;}$s=30;continue;case 29:ai=$makeSlice(CK,100);ak=ag.Read(ai);$s=31;case 31:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}aj=ak;al=aj[1];am=ag.Close();$s=32;case 32:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}am;if($interfaceIsEqual(al,$ifaceNil)||$interfaceIsEqual(al,H.EOF)){$s=26;continue;}case 30:an=M.Dir(x);if(an.length>=x.length){$s=-1;return AZ;}x=an;$s=25;continue;case 26:case 19:ao=R.Command("go",new CI(["list","-e","-compiler="+h.Compiler,"-tags="+J.Join(h.BuildTags,","),"-installsuffix="+h.InstallSuffix,"-f={{.Dir}}\n{{.ImportPath}}\n{{.Root}}\n{{.Goroot}}\n{{if .Error}}{{.Error}}{{end}}\n","--",c]));$s=33;case 33:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=ao;if(!(h.Dir==="")){ap.Dir=h.Dir;}aq=new J.Builder.ptr(CY.nil,CK.nil);ar=new J.Builder.ptr(CY.nil,CK.nil);g[0]=$clone(aq,J.Builder);f[0]=$clone(ar,J.Builder);ap.Stdout=g[0];ap.Stderr=f[0];as="0";if(h.CgoEnabled){as="1";}at=W.Environ();$s=34;case 34:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}ap.Env=$append(at,"GOOS="+h.GOOS,"GOARCH="+h.GOARCH,"GOROOT="+h.GOROOT,"GOPATH="+h.GOPATH,"CGO_ENABLED="+as);au=ap.Run();$s=35;case 35:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=au;if(!($interfaceIsEqual(av,$ifaceNil))){$s=36;continue;}$s=37;continue;case 36:aw=D.Errorf("go/build: go list %s: %v\n%s\n",new CP([new $String(c),av,new $String(f[0].String())]));$s=38;case 38:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ax=aw;$s=39;case 39:return ax;case 37:ay=J.SplitN(g[0].String(),"\n",5);if(!((ay.$length===5))){$s=40;continue;}$s=41;continue;case 40:az=D.Errorf("go/build: importGo %s: unexpected output:\n%s\n",new CP([new $String(c),new $String(g[0].String())]));$s=42;case 42:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;$s=43;case 43:return ba;case 41:bb=(0>=ay.$length?($throwRuntimeError("index out of range"),undefined):ay.$array[ay.$offset+0]);bc=J.TrimSpace((4>=ay.$length?($throwRuntimeError("index out of range"),undefined):ay.$array[ay.$offset+4]));$s=44;case 44:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;if(!(bd==="")&&bb===""){$s=-1;return C.New(bd);}b.Dir=bb;b.ImportPath=(1>=ay.$length?($throwRuntimeError("index out of range"),undefined):ay.$array[ay.$offset+1]);b.Root=(2>=ay.$length?($throwRuntimeError("index out of range"),undefined):ay.$array[ay.$offset+2]);b.Goroot=(3>=ay.$length?($throwRuntimeError("index out of range"),undefined):ay.$array[ay.$offset+3])==="true";$s=-1;return $ifaceNil;}return;}var $f={$blk:AL.ptr.prototype.importGo,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AL.prototype.importGo=function(b,c,d,e){return this.$val.importGo(b,c,d,e);};BA=function(b,c){var b,c,d,e,f,g;if(!((b.$length===c.$length))){return false;}d=b;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(!(g===((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]))){return false;}e++;}return true;};BB=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:e=b.readDir(c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=f;h=0;case 2:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);k=i.IsDir();$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(!(!k)){j=false;$s=6;continue s;}l=i.Name();$s=8;case 8:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=J.HasSuffix(l,".go");$s=9;case 9:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}j=m;case 6:if(j){$s=4;continue;}$s=5;continue;case 4:$s=-1;return true;case 5:h++;$s=2;continue;case 3:$s=-1;return false;}return;}var $f={$blk:BB,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BC=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c="";d=0;e=BI(b);f=e[0];b=e[1];if(!(($bytesToString(f))==="package")){g="";h=0;c=g;d=h;$s=-1;return[c,d];}i=BI(b);b=i[1];while(true){if(!(b.$length>0&&(((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])===32)||((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])===9)||((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])===13)))){break;}b=$subslice(b,1);}j=CK.nil;if(B.HasPrefix(b,BD)){k=B.Cut($subslice(b,2),BG);j=k[0];}else if(B.HasPrefix(b,BE)){l=false;m=B.Cut($subslice(b,2),BF);j=m[0];l=m[2];if(!l){n="";o=0;c=n;d=o;$s=-1;return[c,d];}if(B.Contains(j,BG)){p="";q=0;c=p;d=q;$s=-1;return[c,d];}}r=B.TrimSpace(j);$s=1;case 1:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}j=r;s=BI(j);f=s[0];t=s[1];if(!(($bytesToString(f))==="import")){u="";v=0;c=u;d=v;$s=-1;return[c,d];}d=1+B.Count($subslice(b,0,(b.$capacity-t.$capacity>>0)),BG)>>0;x=J.TrimSpace(($bytesToString(t)));$s=2;case 2:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;y=d;c=w;d=y;z=[c,d];$s=3;case 3:return z;}return;}var $f={$blk:BC,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BH=function(b){var b,c,d,e;while(true){if(!(b.$length>0)){break;}c=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]);if((c===(32))||(c===(9))||(c===(13))||(c===(10))){b=$subslice(b,1);continue;}else if(c===(47)){if(B.HasPrefix(b,BD)){d=B.Index(b,BG);if(d<0){return CK.nil;}b=$subslice(b,(d+1>>0));continue;}if(B.HasPrefix(b,BE)){b=$subslice(b,2);e=B.Index(b,BF);if(e<0){return CK.nil;}b=$subslice(b,(e+2>>0));continue;}}break;}return b;};BI=function(b){var b,c,d,e,f,g,h,i,j,k;c=CK.nil;d=CK.nil;b=BH(b);d=b;while(true){e=L.DecodeRune(d);f=e[0];g=e[1];if(K.IsLetter(f)||48<=f&&f<=57||(f===95)){d=$subslice(d,g);continue;}break;}c=$subslice(b,0,(b.$length-d.$length>>0));if(c.$length===0){h=CK.nil;i=CK.nil;c=h;d=i;return[c,d];}j=c;k=d;c=j;d=k;return[c,d];};AL.ptr.prototype.MatchFile=function(b,c){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=false;e=$ifaceNil;f=this;h=f.matchFile(b,c,false,CT.nil,CM.nil);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;i=g[0];e=g[1];j=!(i===CU.nil);k=e;d=j;e=k;$s=-1;return[d,e];}return;}var $f={$blk:AL.ptr.prototype.MatchFile,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};AL.prototype.MatchFile=function(b,c){return this.$val.MatchFile(b,c);};AL.ptr.prototype.matchFile=function(b,c,d,e,f){var{aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:g=this;if(J.HasPrefix(c,"_")||J.HasPrefix(c,".")){$s=-1;return[CU.nil,$ifaceNil];}h=J.LastIndex(c,".");if(h<0){h=c.length;}i=$substring(c,h);if(!g.goodOSArchFile(c,d)&&!g.UseAllFiles){$s=-1;return[CU.nil,$ifaceNil];}if(!(i===".go")&&AX(BJ,i)===CV.nil){$s=-1;return[CU.nil,$ifaceNil];}j=g.joinPath(new CI([b,c]));$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=new BK.ptr(j,CK.nil,f,CW.nil,$ifaceNil,CZ.nil,CR.nil,$ifaceNil);if(i===".syso"){$s=-1;return[k,$ifaceNil];}m=g.openFile(k.name);$s=2;case 2:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;n=l[0];o=l[1];if(!($interfaceIsEqual(o,$ifaceNil))){$s=-1;return[CU.nil,o];}if(J.HasSuffix(c,".go")){$s=3;continue;}$s=4;continue;case 3:p=AI(n,k);$s=6;case 6:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;if(J.HasSuffix(c,"_test.go")){e=CT.nil;}$s=5;continue;case 4:e=CT.nil;r=AH(n);$s=7;case 7:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;k.header=q[0];o=q[1];case 5:s=n.Close();$s=8;case 8:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;if(!($interfaceIsEqual(o,$ifaceNil))){$s=9;continue;}$s=10;continue;case 9:t=D.Errorf("read %s: %v",new CP([new $String(k.name),o]));$s=11;case 11:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=[CU.nil,t];$s=12;case 12:return u;case 10:w=g.shouldBuild(k.header,d);$s=13;case 13:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}v=w;x=v[0];y=v[1];o=v[2];if(!($interfaceIsEqual(o,$ifaceNil))){$s=14;continue;}$s=15;continue;case 14:z=D.Errorf("%s: %v",new CP([new $String(c),o]));$s=16;case 16:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=[CU.nil,z];$s=17;case 17:return aa;case 15:if(!x&&!g.UseAllFiles){$s=-1;return[CU.nil,$ifaceNil];}if(!(e===CT.nil)&&y){e.$set(true);}$s=-1;return[k,$ifaceNil];}return;}var $f={$blk:AL.ptr.prototype.matchFile,$c:true,$r,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AL.prototype.matchFile=function(b,c,d,e,f){return this.$val.matchFile(b,c,d,e,f);};BN=function(b){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=$makeSlice(CI,0,(b?b.size:0));d=b;e=0;f=d?d.keys():undefined;g=d?d.size:0;while(true){if(!(e0)){$s=13;continue;}z=y;aa=B.IndexByte(z,10);if(aa>=0){ab=$subslice(z,0,aa);ac=$subslice(y,(aa+1>>0));z=ab;y=ac;}else{y=$subslice(y,y.$length);}ad=B.TrimSpace(z);$s=14;case 14:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}z=ad;if(!B.HasPrefix(z,BQ)||!B.Contains(z,BT)){$s=12;continue;}ae=($bytesToString(z));af=O.IsPlusBuild(ae);$s=17;case 17:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}if(!af){$s=15;continue;}$s=16;continue;case 15:$s=12;continue;case 16:ah=O.Parse(ae);$s=18;case 18:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ag=ah;ai=ag[0];aj=ag[1];if($interfaceIsEqual(aj,$ifaceNil)){$s=19;continue;}$s=20;continue;case 19:ak=g.eval$(ai,c);$s=23;case 23:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}if(!ak){$s=21;continue;}$s=22;continue;case 21:d=false;case 22:case 20:$s=12;continue;case 13:case 5:case 2:al=d;am=k;an=$ifaceNil;d=al;e=am;f=an;$s=-1;return[d,e,f];}return;}var $f={$blk:AL.ptr.prototype.shouldBuild,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AL.prototype.shouldBuild=function(b,c){return this.$val.shouldBuild(b,c);};BZ=function(b){var{aa,ab,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=CK.nil;d=CK.nil;e=false;f=$ifaceNil;g=0;h=b;i=false;j=false;case 1:if(!(h.$length>0)){$s=2;continue;}k=h;l=B.IndexByte(k,10);if(l>=0){m=$subslice(k,0,l);n=$subslice(h,(l+1>>0));k=m;h=n;}else{h=$subslice(h,h.$length);}o=B.TrimSpace(k);$s=3;case 3:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}k=o;if((k.$length===0)&&!i){g=b.$length-h.$length>>0;$s=1;continue s;}if(!B.HasPrefix(k,BD)){i=true;}if(!(!j)){p=false;$s=6;continue s;}q=BX(k);$s=7;case 7:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;case 6:if(p){$s=4;continue;}$s=5;continue;case 4:if(!(d===CK.nil)){r=CK.nil;s=CK.nil;t=false;u=BW;c=r;d=s;e=t;f=u;$s=-1;return[c,d,e,f];}d=k;case 5:if(!j&&B.Equal(k,BY)){e=true;}case 8:if(!(k.$length>0)){$s=9;continue;}if(j){$s=10;continue;}$s=11;continue;case 10:v=B.Index(k,BF);if(v>=0){$s=12;continue;}$s=13;continue;case 12:j=false;w=B.TrimSpace($subslice(k,(v+BF.$length>>0)));$s=14;case 14:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}k=w;$s=8;continue s;case 13:$s=1;continue s;case 11:if(B.HasPrefix(k,BQ)){$s=1;continue s;}if(B.HasPrefix(k,BS)){$s=15;continue;}$s=16;continue;case 15:j=true;x=B.TrimSpace($subslice(k,BS.$length));$s=17;case 17:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}k=x;$s=8;continue s;case 16:$s=2;continue s;case 9:$s=1;continue;case 2:y=$subslice(b,0,g);z=d;aa=e;ab=$ifaceNil;c=y;d=z;e=aa;f=ab;$s=-1;return[c,d,e,f];}return;}var $f={$blk:BZ,$c:true,$r,aa,ab,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AL.ptr.prototype.saveCgo=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=d.Text();g=J.Split(f,"\n");h=0;case 1:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);j=i;k=J.TrimSpace(i);$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}i=k;if(i.length<5||!($substring(i,0,4)==="#cgo")||(!((i.charCodeAt(4)===32))&&!((i.charCodeAt(4)===9)))){h++;$s=1;continue;}m=J.TrimSpace($substring(i,4));$s=4;case 4:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=J.Cut(m,":");$s=5;case 5:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}l=n;o=l[0];p=l[1];q=l[2];if(!q){$s=6;continue;}$s=7;continue;case 6:r=D.Errorf("%s: invalid #cgo line: %s",new CP([new $String(b),new $String(j)]));$s=8;case 8:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;$s=9;case 9:return s;case 7:t=J.Fields(o);$s=10;case 10:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;if(u.$length<1){$s=11;continue;}$s=12;continue;case 11:v=D.Errorf("%s: invalid #cgo line: %s",new CP([new $String(b),new $String(j)]));$s=13;case 13:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v;$s=14;case 14:return w;case 12:x=$subslice(u,0,(u.$length-1>>0));y=(z=u.$length-1>>0,((z<0||z>=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+z]));aa=x;ab=y;if(aa.$length>0){$s=15;continue;}$s=16;continue;case 15:ac=false;ad=aa;ae=0;case 17:if(!(ae=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ae]);ag=e.matchAuto(af,false);$s=21;case 21:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}if(ag){$s=19;continue;}$s=20;continue;case 19:ac=true;$s=18;continue;case 20:ae++;$s=17;continue;case 18:if(!ac){h++;$s=1;continue;}case 16:ah=CC(p);ai=ah[0];aj=ah[1];if(!($interfaceIsEqual(aj,$ifaceNil))){$s=22;continue;}$s=23;continue;case 22:ak=D.Errorf("%s: invalid #cgo line: %s",new CP([new $String(b),new $String(j)]));$s=24;case 24:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak;$s=25;case 25:return al;case 23:am=ai;an=0;case 26:if(!(an=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+an]);aq=CA(ap,c.Dir);ap=aq[0];q=aq[1];if(!q){$s=28;continue;}$s=29;continue;case 28:ar=D.Errorf("%s: malformed #cgo argument: %s",new CP([new $String(b),new $String(ap)]));$s=30;case 30:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=ar;$s=31;case 31:return as;case 29:((ao<0||ao>=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+ao]=ap);an++;$s=26;continue;case 27:at=ab;if(at===("CFLAGS")||at===("CPPFLAGS")||at===("CXXFLAGS")||at===("FFLAGS")||at===("LDFLAGS")){e.makePathsAbsolute(ai,c.Dir);}au=ab;if(au===("CFLAGS")){$s=33;continue;}if(au===("CPPFLAGS")){$s=34;continue;}if(au===("CXXFLAGS")){$s=35;continue;}if(au===("FFLAGS")){$s=36;continue;}if(au===("LDFLAGS")){$s=37;continue;}if(au===("pkg-config")){$s=38;continue;}$s=39;continue;case 33:c.CgoCFLAGS=$appendSlice(c.CgoCFLAGS,ai);$s=40;continue;case 34:c.CgoCPPFLAGS=$appendSlice(c.CgoCPPFLAGS,ai);$s=40;continue;case 35:c.CgoCXXFLAGS=$appendSlice(c.CgoCXXFLAGS,ai);$s=40;continue;case 36:c.CgoFFLAGS=$appendSlice(c.CgoFFLAGS,ai);$s=40;continue;case 37:c.CgoLDFLAGS=$appendSlice(c.CgoLDFLAGS,ai);$s=40;continue;case 38:c.CgoPkgConfig=$appendSlice(c.CgoPkgConfig,ai);$s=40;continue;case 39:av=D.Errorf("%s: invalid #cgo verb: %s",new CP([new $String(b),new $String(j)]));$s=41;case 41:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=av;$s=42;case 42:return aw;case 40:case 32:h++;$s=1;continue;case 2:$s=-1;return $ifaceNil;}return;}var $f={$blk:AL.ptr.prototype.saveCgo,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AL.prototype.saveCgo=function(b,c,d){return this.$val.saveCgo(b,c,d);};CA=function(b,c){var b,c,d,e,f,g,h,i;c=M.ToSlash(c);d=J.Split(b,"${SRCDIR}");if(d.$length<2){return[b,CB(b)];}e=true;f=d;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);e=e&&(h===""||CB(h));g++;}e=e&&(c===""||CB(c));i=J.Join(d,c);return[i,e&&!(i==="")];};AL.ptr.prototype.makePathsAbsolute=function(b,c){var b,c,d,e,f,g,h,i;d=this;e=false;f=b;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(e){if(!M.IsAbs(i)){((h<0||h>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+h]=M.Join(new CI([c,i])));}e=false;}else if(J.HasPrefix(i,"-I")||J.HasPrefix(i,"-L")){if(i.length===2){e=true;}else{if(!M.IsAbs($substring(i,2))){((h<0||h>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+h]=$substring(i,0,2)+M.Join(new CI([c,$substring(i,2)])));}}}g++;}};AL.prototype.makePathsAbsolute=function(b,c){return this.$val.makePathsAbsolute(b,c);};CB=function(b){var b,c,d;if(b===""){return false;}c=0;while(true){if(!(c>0;}return true;};CC=function(b){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=CI.nil;d=$ifaceNil;e=CI.nil;f=$makeSlice(DA,b.length);g=false;h=false;i=0;j=0;k=b;l=0;while(true){if(!(l0){h=false;e=$append(e,($runesToString($subslice(f,0,j))));j=0;}l+=m[1];continue;}((j<0||j>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+j]=n);j=j+(1)>>0;l+=m[1];}if(h||j>0){e=$append(e,($runesToString($subslice(f,0,j))));}if(!((i===0))){d=C.New("unclosed quote");}else if(g){d=C.New("unfinished escaping");}o=e;p=d;c=o;d=p;return[c,d];};AL.ptr.prototype.matchAuto=function(b,c){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(J.ContainsAny(b,"&|()")){b="//go:build "+b;}else{b="// +build "+b;}f=O.Parse(b);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return false;}i=d.eval$(g,c);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=3;case 3:return j;}return;}var $f={$blk:AL.ptr.prototype.matchAuto,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};AL.prototype.matchAuto=function(b,c){return this.$val.matchAuto(b,c);};AL.ptr.prototype.eval$=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=[d];d[0]=this;e=b.Eval((function(c,d){return function(e){var e;return d[0].matchTag(e,c[0]);};})(c,d));$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:AL.ptr.prototype.eval$,$c:true,$r,b,c,d,e,f,$s};return $f;};AL.prototype.eval$=function(b,c){return this.$val.eval$(b,c);};AL.ptr.prototype.matchTag=function(b,c){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=this;if(!(c===false)){e=b;(c||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(e),{k:e,v:true});}if(d.CgoEnabled&&b==="cgo"){return true;}if(b===d.GOOS||b===d.GOARCH||b===d.Compiler){return true;}if(d.GOOS==="android"&&b==="linux"){return true;}if(d.GOOS==="illumos"&&b==="solaris"){return true;}if(d.GOOS==="ios"&&b==="darwin"){return true;}f=d.BuildTags;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(h===b){return true;}g++;}i=d.ToolTags;j=0;while(true){if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);if(k===b){return true;}j++;}l=d.ReleaseTags;m=0;while(true){if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);if(n===b){return true;}m++;}return false;};AL.prototype.matchTag=function(b,c){return this.$val.matchTag(b,c);};AL.ptr.prototype.goodOSArchFile=function(b,c){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;d=this;e=J.Cut(b,".");b=e[0];f=J.Index(b,"_");if(f<0){return true;}b=$substring(b,f);g=J.Split(b,"_");h=g.$length;if(h>0&&(i=h-1>>0,((i<0||i>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+i]))==="test"){g=$subslice(g,0,(h-1>>0));}j=g.$length;if(j>=2&&(l=$mapIndex(CD,$String.keyFor((k=j-2>>0,((k<0||k>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+k])))),l!==undefined?l.v:false)&&(n=$mapIndex(CE,$String.keyFor((m=j-1>>0,((m<0||m>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+m])))),n!==undefined?n.v:false)){return d.matchTag((o=j-1>>0,((o<0||o>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+o])),c)&&d.matchTag((p=j-2>>0,((p<0||p>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+p])),c);}if(j>=1&&((r=$mapIndex(CD,$String.keyFor((q=j-1>>0,((q<0||q>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+q])))),r!==undefined?r.v:false)||(t=$mapIndex(CE,$String.keyFor((s=j-1>>0,((s<0||s>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+s])))),t!==undefined?t.v:false))){return d.matchTag((u=j-1>>0,((u<0||u>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+u])),c);}return true;};AL.prototype.goodOSArchFile=function(b,c){return this.$val.goodOSArchFile(b,c);};CF=function(){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c=J.Fields("aix android darwin dragonfly freebsd hurd illumos ios js linux nacl netbsd openbsd plan9 solaris windows zos ");$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=0;case 2:if(!(d=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+d]);f=e;(CD||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(f),{k:f,v:true});d++;$s=2;continue;case 3:h=J.Fields("386 amd64 amd64p32 arm armbe arm64 arm64be loong64 mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le riscv riscv64 s390 s390x sparc sparc64 wasm ");$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;i=0;case 5:if(!(i=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+i]);k=j;(CE||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(k),{k:k,v:true});i++;$s=5;continue;case 6:$s=-1;return;}return;}var $f={$blk:CF,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};CG=function(b){var b;return b==="."||b===".."||J.HasPrefix(b,"./")||J.HasPrefix(b,"../");};$pkg.IsLocalImport=CG;DB.methods=[{prop:"syntaxError",name:"syntaxError",pkg:"go/build",typ:$funcType([],[],false)},{prop:"readByte",name:"readByte",pkg:"go/build",typ:$funcType([],[$Uint8],false)},{prop:"readByteNoBuf",name:"readByteNoBuf",pkg:"go/build",typ:$funcType([],[$Uint8],false)},{prop:"peekByte",name:"peekByte",pkg:"go/build",typ:$funcType([$Bool],[$Uint8],false)},{prop:"nextByte",name:"nextByte",pkg:"go/build",typ:$funcType([$Bool],[$Uint8],false)},{prop:"findEmbed",name:"findEmbed",pkg:"go/build",typ:$funcType([$Bool],[$Bool],false)},{prop:"readKeyword",name:"readKeyword",pkg:"go/build",typ:$funcType([$String],[],false)},{prop:"readIdent",name:"readIdent",pkg:"go/build",typ:$funcType([],[],false)},{prop:"readString",name:"readString",pkg:"go/build",typ:$funcType([],[],false)},{prop:"readImport",name:"readImport",pkg:"go/build",typ:$funcType([],[],false)}];DF.methods=[{prop:"joinPath",name:"joinPath",pkg:"go/build",typ:$funcType([CI],[$String],true)},{prop:"splitPathList",name:"splitPathList",pkg:"go/build",typ:$funcType([$String],[CI],false)},{prop:"isAbsPath",name:"isAbsPath",pkg:"go/build",typ:$funcType([$String],[$Bool],false)},{prop:"isDir",name:"isDir",pkg:"go/build",typ:$funcType([$String],[$Bool],false)},{prop:"hasSubdir",name:"hasSubdir",pkg:"go/build",typ:$funcType([$String,$String],[$String,$Bool],false)},{prop:"readDir",name:"readDir",pkg:"go/build",typ:$funcType([$String],[DC,$error],false)},{prop:"openFile",name:"openFile",pkg:"go/build",typ:$funcType([$String],[H.ReadCloser,$error],false)},{prop:"isFile",name:"isFile",pkg:"go/build",typ:$funcType([$String],[$Bool],false)},{prop:"gopath",name:"gopath",pkg:"go/build",typ:$funcType([],[CI],false)},{prop:"SrcDirs",name:"SrcDirs",pkg:"",typ:$funcType([],[CI],false)},{prop:"ImportDir",name:"ImportDir",pkg:"",typ:$funcType([$String,AS],[DD,$error],false)},{prop:"Import",name:"Import",pkg:"",typ:$funcType([$String,$String,AS],[DD,$error],false)},{prop:"importGo",name:"importGo",pkg:"go/build",typ:$funcType([DD,$String,$String,AS],[$error],false)},{prop:"MatchFile",name:"MatchFile",pkg:"",typ:$funcType([$String,$String],[$Bool,$error],false)},{prop:"matchFile",name:"matchFile",pkg:"go/build",typ:$funcType([$String,$String,DE,CT,CM],[CU,$error],false)},{prop:"shouldBuild",name:"shouldBuild",pkg:"go/build",typ:$funcType([CK,DE],[$Bool,$Bool,$error],false)},{prop:"saveCgo",name:"saveCgo",pkg:"go/build",typ:$funcType([$String,DD,CQ],[$error],false)},{prop:"makePathsAbsolute",name:"makePathsAbsolute",pkg:"go/build",typ:$funcType([CI,$String],[],false)},{prop:"matchAuto",name:"matchAuto",pkg:"go/build",typ:$funcType([$String,DE],[$Bool],false)},{prop:"eval$",name:"eval",pkg:"go/build",typ:$funcType([O.Expr,DE],[$Bool],false)},{prop:"matchTag",name:"matchTag",pkg:"go/build",typ:$funcType([$String,DE],[$Bool],false)},{prop:"goodOSArchFile",name:"goodOSArchFile",pkg:"go/build",typ:$funcType([$String,DE],[$Bool],false)}];DD.methods=[{prop:"IsCommand",name:"IsCommand",pkg:"",typ:$funcType([],[$Bool],false)}];DN.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];DO.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];AA.init("go/build",[{prop:"b",name:"b",embedded:false,exported:false,typ:CL,tag:""},{prop:"buf",name:"buf",embedded:false,exported:false,typ:CK,tag:""},{prop:"peek",name:"peek",embedded:false,exported:false,typ:$Uint8,tag:""},{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""},{prop:"eof",name:"eof",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"nerr",name:"nerr",embedded:false,exported:false,typ:$Int,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:G.Position,tag:""}]);AL.init("",[{prop:"GOARCH",name:"GOARCH",embedded:false,exported:true,typ:$String,tag:""},{prop:"GOOS",name:"GOOS",embedded:false,exported:true,typ:$String,tag:""},{prop:"GOROOT",name:"GOROOT",embedded:false,exported:true,typ:$String,tag:""},{prop:"GOPATH",name:"GOPATH",embedded:false,exported:true,typ:$String,tag:""},{prop:"Dir",name:"Dir",embedded:false,exported:true,typ:$String,tag:""},{prop:"CgoEnabled",name:"CgoEnabled",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"UseAllFiles",name:"UseAllFiles",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"Compiler",name:"Compiler",embedded:false,exported:true,typ:$String,tag:""},{prop:"BuildTags",name:"BuildTags",embedded:false,exported:true,typ:CI,tag:""},{prop:"ToolTags",name:"ToolTags",embedded:false,exported:true,typ:CI,tag:""},{prop:"ReleaseTags",name:"ReleaseTags",embedded:false,exported:true,typ:CI,tag:""},{prop:"InstallSuffix",name:"InstallSuffix",embedded:false,exported:true,typ:$String,tag:""},{prop:"JoinPath",name:"JoinPath",embedded:false,exported:true,typ:DG,tag:""},{prop:"SplitPathList",name:"SplitPathList",embedded:false,exported:true,typ:DH,tag:""},{prop:"IsAbsPath",name:"IsAbsPath",embedded:false,exported:true,typ:DI,tag:""},{prop:"IsDir",name:"IsDir",embedded:false,exported:true,typ:DI,tag:""},{prop:"HasSubdir",name:"HasSubdir",embedded:false,exported:true,typ:DJ,tag:""},{prop:"ReadDir",name:"ReadDir",embedded:false,exported:true,typ:DK,tag:""},{prop:"OpenFile",name:"OpenFile",embedded:false,exported:true,typ:DL,tag:""}]);AT.init("",[{prop:"Dir",name:"Dir",embedded:false,exported:true,typ:$String,tag:""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""},{prop:"ImportComment",name:"ImportComment",embedded:false,exported:true,typ:$String,tag:""},{prop:"Doc",name:"Doc",embedded:false,exported:true,typ:$String,tag:""},{prop:"ImportPath",name:"ImportPath",embedded:false,exported:true,typ:$String,tag:""},{prop:"Root",name:"Root",embedded:false,exported:true,typ:$String,tag:""},{prop:"SrcRoot",name:"SrcRoot",embedded:false,exported:true,typ:$String,tag:""},{prop:"PkgRoot",name:"PkgRoot",embedded:false,exported:true,typ:$String,tag:""},{prop:"PkgTargetRoot",name:"PkgTargetRoot",embedded:false,exported:true,typ:$String,tag:""},{prop:"BinDir",name:"BinDir",embedded:false,exported:true,typ:$String,tag:""},{prop:"Goroot",name:"Goroot",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"PkgObj",name:"PkgObj",embedded:false,exported:true,typ:$String,tag:""},{prop:"AllTags",name:"AllTags",embedded:false,exported:true,typ:CI,tag:""},{prop:"ConflictDir",name:"ConflictDir",embedded:false,exported:true,typ:$String,tag:""},{prop:"BinaryOnly",name:"BinaryOnly",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"GoFiles",name:"GoFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"CgoFiles",name:"CgoFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"IgnoredGoFiles",name:"IgnoredGoFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"InvalidGoFiles",name:"InvalidGoFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"IgnoredOtherFiles",name:"IgnoredOtherFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"CFiles",name:"CFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"CXXFiles",name:"CXXFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"MFiles",name:"MFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"HFiles",name:"HFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"FFiles",name:"FFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"SFiles",name:"SFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"SwigFiles",name:"SwigFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"SwigCXXFiles",name:"SwigCXXFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"SysoFiles",name:"SysoFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"CgoCFLAGS",name:"CgoCFLAGS",embedded:false,exported:true,typ:CI,tag:""},{prop:"CgoCPPFLAGS",name:"CgoCPPFLAGS",embedded:false,exported:true,typ:CI,tag:""},{prop:"CgoCXXFLAGS",name:"CgoCXXFLAGS",embedded:false,exported:true,typ:CI,tag:""},{prop:"CgoFFLAGS",name:"CgoFFLAGS",embedded:false,exported:true,typ:CI,tag:""},{prop:"CgoLDFLAGS",name:"CgoLDFLAGS",embedded:false,exported:true,typ:CI,tag:""},{prop:"CgoPkgConfig",name:"CgoPkgConfig",embedded:false,exported:true,typ:CI,tag:""},{prop:"TestGoFiles",name:"TestGoFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"XTestGoFiles",name:"XTestGoFiles",embedded:false,exported:true,typ:CI,tag:""},{prop:"Imports",name:"Imports",embedded:false,exported:true,typ:CI,tag:""},{prop:"ImportPos",name:"ImportPos",embedded:false,exported:true,typ:DM,tag:""},{prop:"TestImports",name:"TestImports",embedded:false,exported:true,typ:CI,tag:""},{prop:"TestImportPos",name:"TestImportPos",embedded:false,exported:true,typ:DM,tag:""},{prop:"XTestImports",name:"XTestImports",embedded:false,exported:true,typ:CI,tag:""},{prop:"XTestImportPos",name:"XTestImportPos",embedded:false,exported:true,typ:DM,tag:""},{prop:"EmbedPatterns",name:"EmbedPatterns",embedded:false,exported:true,typ:CI,tag:""},{prop:"EmbedPatternPos",name:"EmbedPatternPos",embedded:false,exported:true,typ:DM,tag:""},{prop:"TestEmbedPatterns",name:"TestEmbedPatterns",embedded:false,exported:true,typ:CI,tag:""},{prop:"TestEmbedPatternPos",name:"TestEmbedPatternPos",embedded:false,exported:true,typ:DM,tag:""},{prop:"XTestEmbedPatterns",name:"XTestEmbedPatterns",embedded:false,exported:true,typ:CI,tag:""},{prop:"XTestEmbedPatternPos",name:"XTestEmbedPatternPos",embedded:false,exported:true,typ:DM,tag:""}]);AU.init("",[{prop:"Dir",name:"Dir",embedded:false,exported:true,typ:$String,tag:""}]);AV.init("",[{prop:"Dir",name:"Dir",embedded:false,exported:true,typ:$String,tag:""},{prop:"Packages",name:"Packages",embedded:false,exported:true,typ:CI,tag:""},{prop:"Files",name:"Files",embedded:false,exported:true,typ:CI,tag:""}]);BK.init("go/build",[{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""},{prop:"header",name:"header",embedded:false,exported:false,typ:CK,tag:""},{prop:"fset",name:"fset",embedded:false,exported:false,typ:CM,tag:""},{prop:"parsed",name:"parsed",embedded:false,exported:false,typ:CW,tag:""},{prop:"parseErr",name:"parseErr",embedded:false,exported:false,typ:$error,tag:""},{prop:"imports",name:"imports",embedded:false,exported:false,typ:CZ,tag:""},{prop:"embeds",name:"embeds",embedded:false,exported:false,typ:CR,tag:""},{prop:"embedErr",name:"embedErr",embedded:false,exported:false,typ:$error,tag:""}]);BL.init("go/build",[{prop:"path",name:"path",embedded:false,exported:false,typ:$String,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:G.Pos,tag:""},{prop:"doc",name:"doc",embedded:false,exported:false,typ:CQ,tag:""}]);BM.init("go/build",[{prop:"pattern",name:"pattern",embedded:false,exported:false,typ:$String,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:G.Position,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=O.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=Q.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=R.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=S.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=T.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=U.$init();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=V.$init();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=W.$init();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=X.$init();$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N.$init();$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=Y.$init();$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}AO=CI.nil;AP=CI.nil;BJ=new AT.ptr("","","","","","","","","","",false,"",CI.nil,"",false,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,CI.nil,false,CI.nil,false,CI.nil,false,CI.nil,false,CI.nil,false,CI.nil,false);Z=$makeMap($String.keyFor,[{k:"aix/ppc64",v:true},{k:"android/386",v:true},{k:"android/amd64",v:true},{k:"android/arm",v:true},{k:"android/arm64",v:true},{k:"darwin/amd64",v:true},{k:"darwin/arm64",v:true},{k:"dragonfly/amd64",v:true},{k:"freebsd/386",v:true},{k:"freebsd/amd64",v:true},{k:"freebsd/arm",v:true},{k:"freebsd/arm64",v:true},{k:"illumos/amd64",v:true},{k:"ios/amd64",v:true},{k:"ios/arm64",v:true},{k:"linux/386",v:true},{k:"linux/amd64",v:true},{k:"linux/arm",v:true},{k:"linux/arm64",v:true},{k:"linux/mips",v:true},{k:"linux/mips64",v:true},{k:"linux/mips64le",v:true},{k:"linux/mipsle",v:true},{k:"linux/ppc64le",v:true},{k:"linux/riscv64",v:true},{k:"linux/s390x",v:true},{k:"linux/sparc64",v:true},{k:"netbsd/386",v:true},{k:"netbsd/amd64",v:true},{k:"netbsd/arm",v:true},{k:"netbsd/arm64",v:true},{k:"openbsd/386",v:true},{k:"openbsd/amd64",v:true},{k:"openbsd/arm",v:true},{k:"openbsd/arm64",v:true},{k:"openbsd/mips64",v:true},{k:"solaris/amd64",v:true},{k:"windows/386",v:true},{k:"windows/amd64",v:true},{k:"windows/arm64",v:true}]);AB=new CK([239,187,191]);AE=C.New("syntax error");AF=C.New("unexpected NUL in input");AG=(new CK($stringToBytes("go:embed")));a=AQ();$s=26;case 26:if($c){$c=false;a=a.$blk();}if(a&&a.$blk!==undefined){break s;}$pkg.Default=$clone(a,AL);AZ=C.New("not using modules");BD=(new CK($stringToBytes("//")));BE=(new CK($stringToBytes("/*")));BF=(new CK($stringToBytes("*/")));BG=(new CK($stringToBytes("\n")));BQ=(BD);BS=(BE);BT=(new CK($stringToBytes("+build")));BU=(new CK($stringToBytes("//go:build")));BV=C.New("//go:build comment without // +build comment");BW=C.New("multiple //go:build comments");BY=(new CK($stringToBytes("//go:binary-only-package")));CD=new $global.Map();CE=new $global.Map();$pkg.ToolDir=AK();$r=CF();$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["hash"]=(function(){var $pkg={},$init,A,B,E;A=$packages["io"];B=$pkg.Hash=$newType(8,$kindInterface,"hash.Hash",true,"hash",true,null);E=$sliceType($Uint8);B.init([{prop:"BlockSize",name:"BlockSize",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([],[],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Sum",name:"Sum",pkg:"",typ:$funcType([E],[E],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([E],[$Int,$error],false)}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["crypto"]=(function(){var $pkg={},$init,A,B,C,O,P,F,G;A=$packages["hash"];B=$packages["io"];C=$packages["strconv"];O=$funcType([],[A.Hash],false);P=$sliceType(O);G=function(a,b){var a,b;if(a>=20){$panic(new $String("crypto: RegisterHash of unknown hash function"));}((a<0||a>=F.$length)?($throwRuntimeError("index out of range"),undefined):F.$array[F.$offset+a]=b);};$pkg.RegisterHash=G;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}F=$makeSlice(P,20);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["crypto/md5"]=(function(){var $pkg={},$init,C,A,D,E,B,I,P,Q,R,S,T,U,V,F,G,H,J,K,L,M,N;C=$packages["crypto"];A=$packages["encoding/binary"];D=$packages["errors"];E=$packages["hash"];B=$packages["math/bits"];I=$pkg.digest=$newType(0,$kindStruct,"md5.digest",true,"crypto/md5",false,function(s_,x_,nx_,len_){this.$val=this;if(arguments.length===0){this.s=S.zero();this.x=T.zero();this.nx=0;this.len=new $Uint64(0,0);return;}this.s=s_;this.x=x_;this.nx=nx_;this.len=len_;});P=$sliceType($Uint8);Q=$arrayType($Uint8,8);R=$arrayType($Uint8,4);S=$arrayType($Uint32,4);T=$arrayType($Uint8,64);U=$arrayType($Uint8,16);V=$ptrType(I);F=function(a,b){var a,b;G(a,b);};G=function(a,b){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;c=a.s[0];d=a.s[1];e=a.s[2];f=a.s[3];g=c;h=d;i=e;j=f;k=0;while(true){if(!(k<=(b.$length-64>>0))){break;}l=$subslice(b,k);l=$subslice(l,0,64,64);m=g;n=h;o=i;p=j;q=m;r=n;s=o;t=p;u=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,0));v=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,4));w=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,8));x=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,12));y=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,16));z=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,20));aa=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,24));ab=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,28));ac=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,32));ad=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,36));ae=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,40));af=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,44));ag=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,48));ah=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,52));ai=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,56));aj=$clone(A.LittleEndian,A.littleEndian).Uint32($subslice(l,60));g=h+B.RotateLeft32((((((((((((i^j)>>>0))&h)>>>0))^j)>>>0))+g>>>0)+u>>>0)+3614090360>>>0,7)>>>0;j=g+B.RotateLeft32((((((((((((h^i)>>>0))&g)>>>0))^i)>>>0))+j>>>0)+v>>>0)+3905402710>>>0,12)>>>0;i=j+B.RotateLeft32((((((((((((g^h)>>>0))&j)>>>0))^h)>>>0))+i>>>0)+w>>>0)+606105819>>>0,17)>>>0;h=i+B.RotateLeft32((((((((((((j^g)>>>0))&i)>>>0))^g)>>>0))+h>>>0)+x>>>0)+3250441966>>>0,22)>>>0;g=h+B.RotateLeft32((((((((((((i^j)>>>0))&h)>>>0))^j)>>>0))+g>>>0)+y>>>0)+4118548399>>>0,7)>>>0;j=g+B.RotateLeft32((((((((((((h^i)>>>0))&g)>>>0))^i)>>>0))+j>>>0)+z>>>0)+1200080426>>>0,12)>>>0;i=j+B.RotateLeft32((((((((((((g^h)>>>0))&j)>>>0))^h)>>>0))+i>>>0)+aa>>>0)+2821735955>>>0,17)>>>0;h=i+B.RotateLeft32((((((((((((j^g)>>>0))&i)>>>0))^g)>>>0))+h>>>0)+ab>>>0)+4249261313>>>0,22)>>>0;g=h+B.RotateLeft32((((((((((((i^j)>>>0))&h)>>>0))^j)>>>0))+g>>>0)+ac>>>0)+1770035416>>>0,7)>>>0;j=g+B.RotateLeft32((((((((((((h^i)>>>0))&g)>>>0))^i)>>>0))+j>>>0)+ad>>>0)+2336552879>>>0,12)>>>0;i=j+B.RotateLeft32((((((((((((g^h)>>>0))&j)>>>0))^h)>>>0))+i>>>0)+ae>>>0)+4294925233>>>0,17)>>>0;h=i+B.RotateLeft32((((((((((((j^g)>>>0))&i)>>>0))^g)>>>0))+h>>>0)+af>>>0)+2304563134>>>0,22)>>>0;g=h+B.RotateLeft32((((((((((((i^j)>>>0))&h)>>>0))^j)>>>0))+g>>>0)+ag>>>0)+1804603682>>>0,7)>>>0;j=g+B.RotateLeft32((((((((((((h^i)>>>0))&g)>>>0))^i)>>>0))+j>>>0)+ah>>>0)+4254626195>>>0,12)>>>0;i=j+B.RotateLeft32((((((((((((g^h)>>>0))&j)>>>0))^h)>>>0))+i>>>0)+ai>>>0)+2792965006>>>0,17)>>>0;h=i+B.RotateLeft32((((((((((((j^g)>>>0))&i)>>>0))^g)>>>0))+h>>>0)+aj>>>0)+1236535329>>>0,22)>>>0;g=h+B.RotateLeft32((((((((((((h^i)>>>0))&j)>>>0))^i)>>>0))+g>>>0)+v>>>0)+4129170786>>>0,5)>>>0;j=g+B.RotateLeft32((((((((((((g^h)>>>0))&i)>>>0))^h)>>>0))+j>>>0)+aa>>>0)+3225465664>>>0,9)>>>0;i=j+B.RotateLeft32((((((((((((j^g)>>>0))&h)>>>0))^g)>>>0))+i>>>0)+af>>>0)+643717713>>>0,14)>>>0;h=i+B.RotateLeft32((((((((((((i^j)>>>0))&g)>>>0))^j)>>>0))+h>>>0)+u>>>0)+3921069994>>>0,20)>>>0;g=h+B.RotateLeft32((((((((((((h^i)>>>0))&j)>>>0))^i)>>>0))+g>>>0)+z>>>0)+3593408605>>>0,5)>>>0;j=g+B.RotateLeft32((((((((((((g^h)>>>0))&i)>>>0))^h)>>>0))+j>>>0)+ae>>>0)+38016083>>>0,9)>>>0;i=j+B.RotateLeft32((((((((((((j^g)>>>0))&h)>>>0))^g)>>>0))+i>>>0)+aj>>>0)+3634488961>>>0,14)>>>0;h=i+B.RotateLeft32((((((((((((i^j)>>>0))&g)>>>0))^j)>>>0))+h>>>0)+y>>>0)+3889429448>>>0,20)>>>0;g=h+B.RotateLeft32((((((((((((h^i)>>>0))&j)>>>0))^i)>>>0))+g>>>0)+ad>>>0)+568446438>>>0,5)>>>0;j=g+B.RotateLeft32((((((((((((g^h)>>>0))&i)>>>0))^h)>>>0))+j>>>0)+ai>>>0)+3275163606>>>0,9)>>>0;i=j+B.RotateLeft32((((((((((((j^g)>>>0))&h)>>>0))^g)>>>0))+i>>>0)+x>>>0)+4107603335>>>0,14)>>>0;h=i+B.RotateLeft32((((((((((((i^j)>>>0))&g)>>>0))^j)>>>0))+h>>>0)+ac>>>0)+1163531501>>>0,20)>>>0;g=h+B.RotateLeft32((((((((((((h^i)>>>0))&j)>>>0))^i)>>>0))+g>>>0)+ah>>>0)+2850285829>>>0,5)>>>0;j=g+B.RotateLeft32((((((((((((g^h)>>>0))&i)>>>0))^h)>>>0))+j>>>0)+w>>>0)+4243563512>>>0,9)>>>0;i=j+B.RotateLeft32((((((((((((j^g)>>>0))&h)>>>0))^g)>>>0))+i>>>0)+ab>>>0)+1735328473>>>0,14)>>>0;h=i+B.RotateLeft32((((((((((((i^j)>>>0))&g)>>>0))^j)>>>0))+h>>>0)+ag>>>0)+2368359562>>>0,20)>>>0;g=h+B.RotateLeft32((((((((h^i)>>>0)^j)>>>0))+g>>>0)+z>>>0)+4294588738>>>0,4)>>>0;j=g+B.RotateLeft32((((((((g^h)>>>0)^i)>>>0))+j>>>0)+ac>>>0)+2272392833>>>0,11)>>>0;i=j+B.RotateLeft32((((((((j^g)>>>0)^h)>>>0))+i>>>0)+af>>>0)+1839030562>>>0,16)>>>0;h=i+B.RotateLeft32((((((((i^j)>>>0)^g)>>>0))+h>>>0)+ai>>>0)+4259657740>>>0,23)>>>0;g=h+B.RotateLeft32((((((((h^i)>>>0)^j)>>>0))+g>>>0)+v>>>0)+2763975236>>>0,4)>>>0;j=g+B.RotateLeft32((((((((g^h)>>>0)^i)>>>0))+j>>>0)+y>>>0)+1272893353>>>0,11)>>>0;i=j+B.RotateLeft32((((((((j^g)>>>0)^h)>>>0))+i>>>0)+ab>>>0)+4139469664>>>0,16)>>>0;h=i+B.RotateLeft32((((((((i^j)>>>0)^g)>>>0))+h>>>0)+ae>>>0)+3200236656>>>0,23)>>>0;g=h+B.RotateLeft32((((((((h^i)>>>0)^j)>>>0))+g>>>0)+ah>>>0)+681279174>>>0,4)>>>0;j=g+B.RotateLeft32((((((((g^h)>>>0)^i)>>>0))+j>>>0)+u>>>0)+3936430074>>>0,11)>>>0;i=j+B.RotateLeft32((((((((j^g)>>>0)^h)>>>0))+i>>>0)+x>>>0)+3572445317>>>0,16)>>>0;h=i+B.RotateLeft32((((((((i^j)>>>0)^g)>>>0))+h>>>0)+aa>>>0)+76029189>>>0,23)>>>0;g=h+B.RotateLeft32((((((((h^i)>>>0)^j)>>>0))+g>>>0)+ad>>>0)+3654602809>>>0,4)>>>0;j=g+B.RotateLeft32((((((((g^h)>>>0)^i)>>>0))+j>>>0)+ag>>>0)+3873151461>>>0,11)>>>0;i=j+B.RotateLeft32((((((((j^g)>>>0)^h)>>>0))+i>>>0)+aj>>>0)+530742520>>>0,16)>>>0;h=i+B.RotateLeft32((((((((i^j)>>>0)^g)>>>0))+h>>>0)+w>>>0)+3299628645>>>0,23)>>>0;g=h+B.RotateLeft32((((((i^(((h|(~j>>>0))>>>0)))>>>0))+g>>>0)+u>>>0)+4096336452>>>0,6)>>>0;j=g+B.RotateLeft32((((((h^(((g|(~i>>>0))>>>0)))>>>0))+j>>>0)+ab>>>0)+1126891415>>>0,10)>>>0;i=j+B.RotateLeft32((((((g^(((j|(~h>>>0))>>>0)))>>>0))+i>>>0)+ai>>>0)+2878612391>>>0,15)>>>0;h=i+B.RotateLeft32((((((j^(((i|(~g>>>0))>>>0)))>>>0))+h>>>0)+z>>>0)+4237533241>>>0,21)>>>0;g=h+B.RotateLeft32((((((i^(((h|(~j>>>0))>>>0)))>>>0))+g>>>0)+ag>>>0)+1700485571>>>0,6)>>>0;j=g+B.RotateLeft32((((((h^(((g|(~i>>>0))>>>0)))>>>0))+j>>>0)+x>>>0)+2399980690>>>0,10)>>>0;i=j+B.RotateLeft32((((((g^(((j|(~h>>>0))>>>0)))>>>0))+i>>>0)+ae>>>0)+4293915773>>>0,15)>>>0;h=i+B.RotateLeft32((((((j^(((i|(~g>>>0))>>>0)))>>>0))+h>>>0)+v>>>0)+2240044497>>>0,21)>>>0;g=h+B.RotateLeft32((((((i^(((h|(~j>>>0))>>>0)))>>>0))+g>>>0)+ac>>>0)+1873313359>>>0,6)>>>0;j=g+B.RotateLeft32((((((h^(((g|(~i>>>0))>>>0)))>>>0))+j>>>0)+aj>>>0)+4264355552>>>0,10)>>>0;i=j+B.RotateLeft32((((((g^(((j|(~h>>>0))>>>0)))>>>0))+i>>>0)+aa>>>0)+2734768916>>>0,15)>>>0;h=i+B.RotateLeft32((((((j^(((i|(~g>>>0))>>>0)))>>>0))+h>>>0)+ah>>>0)+1309151649>>>0,21)>>>0;g=h+B.RotateLeft32((((((i^(((h|(~j>>>0))>>>0)))>>>0))+g>>>0)+y>>>0)+4149444226>>>0,6)>>>0;j=g+B.RotateLeft32((((((h^(((g|(~i>>>0))>>>0)))>>>0))+j>>>0)+af>>>0)+3174756917>>>0,10)>>>0;i=j+B.RotateLeft32((((((g^(((j|(~h>>>0))>>>0)))>>>0))+i>>>0)+w>>>0)+718787259>>>0,15)>>>0;h=i+B.RotateLeft32((((((j^(((i|(~g>>>0))>>>0)))>>>0))+h>>>0)+ad>>>0)+3951481745>>>0,21)>>>0;g=g+(q)>>>0;h=h+(r)>>>0;i=i+(s)>>>0;j=j+(t)>>>0;k=k+(64)>>0;}ak=g;al=h;am=i;an=j;a.s[0]=ak;a.s[1]=al;a.s[2]=am;a.s[3]=an;};H=function(){C.RegisterHash(2,N);};I.ptr.prototype.Reset=function(){var a;a=this;a.s[0]=1732584193;a.s[1]=4023233417;a.s[2]=2562383102;a.s[3]=271733878;a.nx=0;a.len=new $Uint64(0,0);};I.prototype.Reset=function(){return this.$val.Reset();};I.ptr.prototype.MarshalBinary=function(){var a,b;a=this;b=$makeSlice(P,0,92);b=$appendSlice(b,"md5\x01");b=K(b,a.s[0]);b=K(b,a.s[1]);b=K(b,a.s[2]);b=K(b,a.s[3]);b=$appendSlice(b,$subslice(new P(a.x),0,a.nx));b=$subslice(b,0,((b.$length+64>>0)-a.nx>>0));b=J(b,a.len);return[b,$ifaceNil];};I.prototype.MarshalBinary=function(){return this.$val.MarshalBinary();};I.ptr.prototype.UnmarshalBinary=function(a){var a,b,c,d,e,f,g;b=this;if(a.$length<4||!(($bytesToString($subslice(a,0,4)))==="md5\x01")){return D.New("crypto/md5: invalid hash state identifier");}if(!((a.$length===92))){return D.New("crypto/md5: invalid hash state size");}a=$subslice(a,4);c=M(a);a=c[0];b.s[0]=c[1];d=M(a);a=d[0];b.s[1]=d[1];e=M(a);a=e[0];b.s[2]=e[1];f=M(a);a=f[0];b.s[3]=f[1];a=$subslice(a,$copySlice(new P(b.x),a));g=L(a);a=g[0];b.len=g[1];b.nx=(($div64(b.len,new $Uint64(0,64),true).$low>>0));return $ifaceNil;};I.prototype.UnmarshalBinary=function(a){return this.$val.UnmarshalBinary(a);};J=function(a,b){var a,b,c;c=Q.zero();$clone(A.BigEndian,A.bigEndian).PutUint64(new P(c),b);return $appendSlice(a,new P(c));};K=function(a,b){var a,b,c;c=R.zero();$clone(A.BigEndian,A.bigEndian).PutUint32(new P(c),b);return $appendSlice(a,new P(c));};L=function(a){var a;return[$subslice(a,8),$clone(A.BigEndian,A.bigEndian).Uint64($subslice(a,0,8))];};M=function(a){var a;return[$subslice(a,4),$clone(A.BigEndian,A.bigEndian).Uint32($subslice(a,0,4))];};N=function(){var a;a=new I.ptr(S.zero(),T.zero(),0,new $Uint64(0,0));a.Reset();return a;};$pkg.New=N;I.ptr.prototype.Size=function(){var a;a=this;return 16;};I.prototype.Size=function(){return this.$val.Size();};I.ptr.prototype.BlockSize=function(){var a;a=this;return 64;};I.prototype.BlockSize=function(){return this.$val.BlockSize();};I.ptr.prototype.Write=function(a){var a,b,c,d,e,f,g,h;b=0;c=$ifaceNil;d=this;b=a.$length;d.len=(e=d.len,f=(new $Uint64(0,b)),new $Uint64(e.$high+f.$high,e.$low+f.$low));if(d.nx>0){g=$copySlice($subslice(new P(d.x),d.nx),a);d.nx=d.nx+(g)>>0;if(d.nx===64){if(false){F(d,new P(d.x));}else{G(d,new P(d.x));}d.nx=0;}a=$subslice(a,g);}if(a.$length>=64){h=(a.$length&~63)>>0;if(false){F(d,$subslice(a,0,h));}else{G(d,$subslice(a,0,h));}a=$subslice(a,h);}if(a.$length>0){d.nx=$copySlice(new P(d.x),a);}return[b,c];};I.prototype.Write=function(a){return this.$val.Write(a);};I.ptr.prototype.Sum=function(a){var a,b,c,d;b=this;c=$clone(b,I);d=$clone(c.checkSum(),U);return $appendSlice(a,new P(d));};I.prototype.Sum=function(a){return this.$val.Sum(a);};I.ptr.prototype.checkSum=function(){var a,b,c,d,e,f;a=this;b=$toNativeArray($kindUint8,[128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);d=$div64(((c=a.len,new $Uint64(0-c.$high,55-c.$low))),new $Uint64(0,64),true);$clone(A.LittleEndian,A.littleEndian).PutUint64($subslice(new P(b),$flatten64(new $Uint64(0+d.$high,1+d.$low))),$shiftLeft64(a.len,3));a.Write($subslice(new P(b),0,$flatten64((e=new $Uint64(0+d.$high,1+d.$low),new $Uint64(e.$high+0,e.$low+8)))));if(!((a.nx===0))){$panic(new $String("d.nx != 0"));}f=U.zero();$clone(A.LittleEndian,A.littleEndian).PutUint32($subslice(new P(f),0),a.s[0]);$clone(A.LittleEndian,A.littleEndian).PutUint32($subslice(new P(f),4),a.s[1]);$clone(A.LittleEndian,A.littleEndian).PutUint32($subslice(new P(f),8),a.s[2]);$clone(A.LittleEndian,A.littleEndian).PutUint32($subslice(new P(f),12),a.s[3]);return f;};I.prototype.checkSum=function(){return this.$val.checkSum();};V.methods=[{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([],[],false)},{prop:"MarshalBinary",name:"MarshalBinary",pkg:"",typ:$funcType([],[P,$error],false)},{prop:"UnmarshalBinary",name:"UnmarshalBinary",pkg:"",typ:$funcType([P],[$error],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Int],false)},{prop:"BlockSize",name:"BlockSize",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([P],[$Int,$error],false)},{prop:"Sum",name:"Sum",pkg:"",typ:$funcType([P],[P],false)},{prop:"checkSum",name:"checkSum",pkg:"crypto/md5",typ:$funcType([],[U],false)}];I.init("crypto/md5",[{prop:"s",name:"s",embedded:false,exported:false,typ:S,tag:""},{prop:"x",name:"x",embedded:false,exported:false,typ:T,tag:""},{prop:"nx",name:"nx",embedded:false,exported:false,typ:$Int,tag:""},{prop:"len",name:"len",embedded:false,exported:false,typ:$Uint64,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=C.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}H();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["golang.org/x/tools/go/internal/pkgbits"]=(function(){var $pkg={},$init,E,F,G,B,H,K,I,J,L,D,A,C,P,S,T,U,Z,AB,AD,AE,AF,AG,AH,AJ,AL,AN,AP,AQ,AS,AT,AU,AV,AW,AX,AY,BB,M,N,Q,R,V,AA;E=$packages["bytes"];F=$packages["crypto/md5"];G=$packages["encoding/binary"];B=$packages["fmt"];H=$packages["go/constant"];K=$packages["go/token"];I=$packages["io"];J=$packages["math/big"];L=$packages["os"];D=$packages["runtime"];A=$packages["strconv"];C=$packages["strings"];P=$pkg.SyncMarker=$newType(4,$kindInt,"pkgbits.SyncMarker",true,"golang.org/x/tools/go/internal/pkgbits",true,null);S=$pkg.RelocKind=$newType(4,$kindInt,"pkgbits.RelocKind",true,"golang.org/x/tools/go/internal/pkgbits",true,null);T=$pkg.Index=$newType(4,$kindInt,"pkgbits.Index",true,"golang.org/x/tools/go/internal/pkgbits",true,null);U=$pkg.RelocEnt=$newType(0,$kindStruct,"pkgbits.RelocEnt",true,"golang.org/x/tools/go/internal/pkgbits",true,function(Kind_,Idx_){this.$val=this;if(arguments.length===0){this.Kind=0;this.Idx=0;return;}this.Kind=Kind_;this.Idx=Idx_;});Z=$pkg.PkgDecoder=$newType(0,$kindStruct,"pkgbits.PkgDecoder",true,"golang.org/x/tools/go/internal/pkgbits",true,function(version_,sync_,pkgPath_,elemData_,elemEnds_,elemEndsEnds_){this.$val=this;if(arguments.length===0){this.version=0;this.sync=false;this.pkgPath="";this.elemData="";this.elemEnds=AT.nil;this.elemEndsEnds=AU.zero();return;}this.version=version_;this.sync=sync_;this.pkgPath=pkgPath_;this.elemData=elemData_;this.elemEnds=elemEnds_;this.elemEndsEnds=elemEndsEnds_;});AB=$pkg.Decoder=$newType(0,$kindStruct,"pkgbits.Decoder",true,"golang.org/x/tools/go/internal/pkgbits",true,function(common_,Relocs_,Data_,k_,Idx_){this.$val=this;if(arguments.length===0){this.common=AW.nil;this.Relocs=AN.nil;this.Data=new C.Reader.ptr("",new $Int64(0,0),0);this.k=0;this.Idx=0;return;}this.common=common_;this.Relocs=Relocs_;this.Data=Data_;this.k=k_;this.Idx=Idx_;});AD=$pkg.CodeVal=$newType(4,$kindInt,"pkgbits.CodeVal",true,"golang.org/x/tools/go/internal/pkgbits",true,null);AE=$pkg.CodeType=$newType(4,$kindInt,"pkgbits.CodeType",true,"golang.org/x/tools/go/internal/pkgbits",true,null);AF=$pkg.CodeObj=$newType(4,$kindInt,"pkgbits.CodeObj",true,"golang.org/x/tools/go/internal/pkgbits",true,null);AG=$sliceType($String);AH=$sliceType($emptyInterface);AJ=$arrayType($Uint8,8);AL=$sliceType($Uint8);AN=$sliceType(U);AP=$sliceType($Uintptr);AQ=$ptrType(J.Int);AS=$ptrType(J.Float);AT=$sliceType($Uint32);AU=$arrayType($Uint32,10);AV=$ptrType($Uint32);AW=$ptrType(Z);AX=$sliceType($Int);AY=$arrayType($Uintptr,32);BB=$ptrType(AB);P.prototype.String=function(){var b,c;b=this.$val;b=b-(1)>>0;if(b<0||b>=66){return"SyncMarker("+A.FormatInt((new $Int64(0,(b+1>>0))),10)+")";}return $substring("EOFBoolInt64Uint64StringValueValRelocsRelocUseRelocPublicPosPosBaseObjectObject1PkgPkgDefMethodTypeTypeIdxTypeParamNamesSignatureParamsParamCodeObjSymLocalIdentSelectorPrivateFuncExtVarExtTypeExtPragmaExprListExprsExprExprTypeAssignOpFuncLitCompLitDeclFuncBodyOpenScopeCloseScopeCloseAnotherScopeDeclNamesDeclNameStmtsBlockStmtIfStmtForStmtSwitchStmtRangeStmtCaseClauseCommClauseSelectStmtDeclsLabeledStmtUseObjLocalAddLocalLinknameStmt1StmtsEndLabelOptLabel",((b<0||b>=M.length)?($throwRuntimeError("index out of range"),undefined):M[b]),(c=b+1>>0,((c<0||c>=M.length)?($throwRuntimeError("index out of range"),undefined):M[c])));};$ptrType(P).prototype.String=function(){return new P(this.$get()).String();};N=function(b){var{b,c,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];c[0]=$makeSlice(AG,0,b.$length);$r=V(b,(function(c){return function $b(d,e,f,g){var{d,e,f,g,h,$s,$r,$c}=$restore(this,{d,e,f,g});$s=$s||0;s:while(true){switch($s){case 0:f=C.TrimPrefix(f,"cmd/compile/internal/noder.");h=B.Sprintf("%s:%v: %s +0x%v",new AH([new $String(d),new $Int(e),new $String(f),new $Uintptr(g)]));$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}c[0]=$append(c[0],h);$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,d,e,f,g,h,$s};return $f;};})(c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c[0];}return;}var $f={$blk:N,$c:true,$r,b,c,$s};return $f;};Q=function(b){var b;if(!b){$panic(new $String("assertion failed"));}};R=function(b,c){var{b,c,d,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=B.Errorf(b,c);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$panic(d);$s=-1;return;}return;}var $f={$blk:R,$c:true,$r,b,c,d,$s};return $f;};V=function(b,c){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:if(b.$length===0){$s=-1;return;}d=D.CallersFrames(b);case 1:e=d.Next();f=$clone(e[0],D.Frame);g=e[1];$r=c(f.File,f.Line,f.Function,f.PC-f.Entry>>>0);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!g){$s=-1;return;}$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:V,$c:true,$r,b,c,d,e,f,g,$s};return $f;};Z.ptr.prototype.PkgPath=function(){var b;b=this;return b.pkgPath;};Z.prototype.PkgPath=function(){return this.$val.PkgPath();};Z.ptr.prototype.SyncMarkers=function(){var b;b=this;return b.sync;};Z.prototype.SyncMarkers=function(){return this.$val.SyncMarkers();};AA=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];e=new Z.ptr(0,false,b,"",AT.nil,AU.zero());f=C.NewReader(c);h=G.Read(f,(g=G.LittleEndian,new g.constructor.elem(g)),(e.$ptr_version||(e.$ptr_version=new AV(function(){return this.$target.version;},function($v){this.$target.version=$v;},e))));$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=Q($interfaceIsEqual(h,$ifaceNil));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=e.version;if(i===(0)){$s=4;continue;}if(i===(1)){$s=5;continue;}$s=6;continue;case 4:$s=7;continue;case 5:d[0]=0;k=G.Read(f,(j=G.LittleEndian,new j.constructor.elem(j)),(d.$ptr||(d.$ptr=new AV(function(){return this.$target[0];},function($v){this.$target[0]=$v;},d))));$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}$r=Q($interfaceIsEqual(k,$ifaceNil));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e.sync=!((((d[0]&1)>>>0)===0));$s=7;continue;case 6:l=B.Errorf("unsupported version: %v",new AH([new $Uint32(e.version)]));$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}$panic(l);case 7:case 3:n=G.Read(f,(m=G.LittleEndian,new m.constructor.elem(m)),new AT(e.elemEndsEnds));$s=11;case 11:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$r=Q($interfaceIsEqual(n,$ifaceNil));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e.elemEnds=$makeSlice(AT,e.elemEndsEnds[9]);p=G.Read(f,(o=G.LittleEndian,new o.constructor.elem(o)),e.elemEnds);$s=13;case 13:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}$r=Q($interfaceIsEqual(p,$ifaceNil));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}q=f.Seek(new $Int64(0,0),1);r=q[0];s=q[1];Q($interfaceIsEqual(s,$ifaceNil));e.elemData=$substring(c,$flatten64(r));Q((e.elemData.length-8>>0)===(((t=e.elemEnds,u=e.elemEnds.$length-1>>0,((u<0||u>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]))>>0)));$s=-1;return e;}return;}var $f={$blk:AA,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};$pkg.NewPkgDecoder=AA;Z.ptr.prototype.NumElems=function(b){var b,c,d,e,f,g;c=this;e=(((d=c.elemEndsEnds,((b<0||b>=d.length)?($throwRuntimeError("index out of range"),undefined):d[b]))>>0));if(b>0){e=e-((((f=c.elemEndsEnds,g=b-1>>0,((g<0||g>=f.length)?($throwRuntimeError("index out of range"),undefined):f[g]))>>0)))>>0;}return e;};Z.prototype.NumElems=function(b){return this.$val.NumElems(b);};Z.ptr.prototype.TotalElems=function(){var b;b=this;return b.elemEnds.$length;};Z.prototype.TotalElems=function(){return this.$val.TotalElems();};Z.ptr.prototype.Fingerprint=function(){var b,c;b=this;c=AJ.zero();$copyString(new AL(c),$substring(b.elemData,(b.elemData.length-8>>0)));return c;};Z.prototype.Fingerprint=function(){return this.$val.Fingerprint();};Z.ptr.prototype.AbsIdx=function(b,c){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=((c>>0));if(b>0){e=e+((((f=d.elemEndsEnds,g=b-1>>0,((g<0||g>=f.length)?($throwRuntimeError("index out of range"),undefined):f[g]))>>0)))>>0;}if(e>=(((h=d.elemEndsEnds,((b<0||b>=h.length)?($throwRuntimeError("index out of range"),undefined):h[b]))>>0))){$s=1;continue;}$s=2;continue;case 1:$r=R("%v:%v is out of bounds; %v",new AH([new S(b),new T(c),new AU(d.elemEndsEnds)]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return e;}return;}var $f={$blk:Z.ptr.prototype.AbsIdx,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};Z.prototype.AbsIdx=function(b,c){return this.$val.AbsIdx(b,c);};Z.ptr.prototype.DataIdx=function(b,c){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.AbsIdx(b,c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=0;if(f>0){g=(h=d.elemEnds,i=f-1>>0,((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]));}k=(j=d.elemEnds,((f<0||f>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+f]));$s=-1;return $substring(d.elemData,g,k);}return;}var $f={$blk:Z.ptr.prototype.DataIdx,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};Z.prototype.DataIdx=function(b,c){return this.$val.DataIdx(b,c);};Z.ptr.prototype.StringIdx=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.DataIdx(0,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:Z.ptr.prototype.StringIdx,$c:true,$r,b,c,d,e,$s};return $f;};Z.prototype.StringIdx=function(b){return this.$val.StringIdx(b);};Z.ptr.prototype.NewDecoder=function(b,c,d){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=e.NewDecoderRaw(b,c);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=$clone(f,AB);$r=g.Sync(d);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return g;}return;}var $f={$blk:Z.ptr.prototype.NewDecoder,$c:true,$r,b,c,d,e,f,g,$s};return $f;};Z.prototype.NewDecoder=function(b,c,d){return this.$val.NewDecoder(b,c,d);};Z.ptr.prototype.NewDecoderRaw=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=new AB.ptr(d,AN.nil,new C.Reader.ptr("",new $Int64(0,0),0),b,c);f=d.DataIdx(b,c);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=C.NewReader(f);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}C.Reader.copy(e.Data,g);$r=e.Sync(8);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=e.Len();$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}e.Relocs=$makeSlice(AN,h);i=e.Relocs;j=0;case 5:if(!(j=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+k])),new U.ptr(((l>>0)),((m>>0))));j++;$s=5;continue;case 6:$s=-1;return e;}return;}var $f={$blk:Z.ptr.prototype.NewDecoderRaw,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};Z.prototype.NewDecoderRaw=function(b,c){return this.$val.NewDecoderRaw(b,c);};AB.ptr.prototype.checkErr=function(b){var{b,c,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!($interfaceIsEqual(b,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:$r=R("unexpected decoding error: %w",new AH([b]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:AB.ptr.prototype.checkErr,$c:true,$r,b,c,$s};return $f;};AB.prototype.checkErr=function(b){return this.$val.checkErr(b);};AB.ptr.prototype.rawUvarint=function(){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;d=G.ReadUvarint(b.Data);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];$r=b.checkErr(f);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return e;}return;}var $f={$blk:AB.ptr.prototype.rawUvarint,$c:true,$r,b,c,d,e,f,$s};return $f;};AB.prototype.rawUvarint=function(){return this.$val.rawUvarint();};AB.ptr.prototype.rawVarint=function(){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.rawUvarint();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;f=((e=$shiftRightUint64(d,1),new $Int64(e.$high,e.$low)));if(!((g=new $Uint64(d.$high&0,(d.$low&1)>>>0),(g.$high===0&&g.$low===0)))){f=new $Int64(~f.$high,~f.$low>>>0);}$s=-1;return f;}return;}var $f={$blk:AB.ptr.prototype.rawVarint,$c:true,$r,b,c,d,e,f,g,$s};return $f;};AB.prototype.rawVarint=function(){return this.$val.rawVarint();};AB.ptr.prototype.rawReloc=function(b,c){var b,c,d,e,f;d=this;f=$clone((e=d.Relocs,((c<0||c>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+c])),U);Q(f.Kind===b);return f.Idx;};AB.prototype.rawReloc=function(b,c){return this.$val.rawReloc(b,c);};AB.ptr.prototype.Sync=function(b){var{aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!c.common.sync){$s=-1;return;}d=c.Data.Seek(new $Int64(0,0),1);e=d[0];f=c.rawUvarint();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=((f.$low>>0));h=c.rawUvarint();$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=$makeSlice(AX,$flatten64(h));j=i;k=0;case 3:if(!(k=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]=((m.$low>>0)));k++;$s=3;continue;case 4:if(g===b){$s=-1;return;}n=B.Printf("export data desync: package %q, section %v, index %v, offset %v\n",new AH([new $String(c.common.pkgPath),new S(c.k),new T(c.Idx),e]));$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;o=B.Printf("\nfound %v, written at:\n",new AH([new P(g)]));$s=7;case 7:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;if(i.$length===0){$s=8;continue;}$s=9;continue;case 8:p=B.Printf("\t[stack trace unavailable; recompile package %q with -d=syncframes]\n",new AH([new $String(c.common.pkgPath)]));$s=10;case 10:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;case 9:q=i;r=0;case 11:if(!(r=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);t=c.common.StringIdx(c.rawReloc(0,s));$s=13;case 13:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=new $String(t);v=B.Printf("\t%s\n",new AH([u]));$s=14;case 14:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}v;r++;$s=11;continue;case 12:w=B.Printf("\nexpected %v, reading at:\n",new AH([new P(b)]));$s=15;case 15:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}w;x=AY.zero();y=D.Callers(2,new AP(x));aa=N($subslice(new AP(x),0,y));$s=16;case 16:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;ab=0;case 17:if(!(ab=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+ab]);ad=B.Printf("\t%s\n",new AH([new $String(ac)]));$s=19;case 19:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ad;ab++;$s=17;continue;case 18:$r=L.Exit(1);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:AB.ptr.prototype.Sync,$c:true,$r,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AB.prototype.Sync=function(b){return this.$val.Sync(b);};AB.ptr.prototype.Bool=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.Sync(2);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=b.Data.ReadByte();d=c[0];e=c[1];$r=b.checkErr(e);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}Q(d<2);$s=-1;return!((d===0));}return;}var $f={$blk:AB.ptr.prototype.Bool,$c:true,$r,b,c,d,e,$s};return $f;};AB.prototype.Bool=function(){return this.$val.Bool();};AB.ptr.prototype.Int64=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.Sync(3);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=b.rawVarint();$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=3;case 3:return d;}return;}var $f={$blk:AB.ptr.prototype.Int64,$c:true,$r,b,c,d,$s};return $f;};AB.prototype.Int64=function(){return this.$val.Int64();};AB.ptr.prototype.Uint64=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.Sync(4);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=b.rawUvarint();$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=3;case 3:return d;}return;}var $f={$blk:AB.ptr.prototype.Uint64,$c:true,$r,b,c,d,$s};return $f;};AB.prototype.Uint64=function(){return this.$val.Uint64();};AB.ptr.prototype.Len=function(){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.Uint64();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=((d.$low>>0));Q((f=(new $Uint64(0,e)),(f.$high===d.$high&&f.$low===d.$low)));$s=-1;return e;}return;}var $f={$blk:AB.ptr.prototype.Len,$c:true,$r,b,c,d,e,f,$s};return $f;};AB.prototype.Len=function(){return this.$val.Len();};AB.ptr.prototype.Int=function(){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.Int64();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=(((d.$low+((d.$high>>31)*4294967296))>>0));Q((f=(new $Int64(0,e)),(f.$high===d.$high&&f.$low===d.$low)));$s=-1;return e;}return;}var $f={$blk:AB.ptr.prototype.Int,$c:true,$r,b,c,d,e,f,$s};return $f;};AB.prototype.Int=function(){return this.$val.Int();};AB.ptr.prototype.Uint=function(){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.Uint64();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=((d.$low>>>0));Q((f=(new $Uint64(0,e)),(f.$high===d.$high&&f.$low===d.$low)));$s=-1;return e;}return;}var $f={$blk:AB.ptr.prototype.Uint,$c:true,$r,b,c,d,e,f,$s};return $f;};AB.prototype.Uint=function(){return this.$val.Uint();};AB.ptr.prototype.Code=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;$r=c.Sync(b);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=c.Len();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=3;case 3:return e;}return;}var $f={$blk:AB.ptr.prototype.Code,$c:true,$r,b,c,d,e,$s};return $f;};AB.prototype.Code=function(b){return this.$val.Code(b);};AB.ptr.prototype.Reloc=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;$r=c.Sync(10);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=b;e=c.Len();$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=c.rawReloc(d,f);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=4;case 4:return h;}return;}var $f={$blk:AB.ptr.prototype.Reloc,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};AB.prototype.Reloc=function(b){return this.$val.Reloc(b);};AB.ptr.prototype.String=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.Sync(5);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=b.Reloc(0);$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=b.common.StringIdx(c);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=4;case 4:return e;}return;}var $f={$blk:AB.ptr.prototype.String,$c:true,$r,b,c,d,e,$s};return $f;};AB.prototype.String=function(){return this.$val.String();};AB.ptr.prototype.Strings=function(){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.Len();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=$makeSlice(AG,c);e=d;f=0;case 2:if(!(f=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]=h);f++;$s=2;continue;case 3:$s=-1;return d;}return;}var $f={$blk:AB.ptr.prototype.Strings,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};AB.prototype.Strings=function(){return this.$val.Strings();};AB.ptr.prototype.Value=function(){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.Sync(6);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=b.Bool();$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=b.scalar();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(d){$s=4;continue;}$s=5;continue;case 4:g=f;h=b.scalar();$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=H.MakeImag(h);$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=H.BinaryOp(g,12,j);$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}f=k;case 5:$s=-1;return f;}return;}var $f={$blk:AB.ptr.prototype.Value,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};AB.prototype.Value=function(){return this.$val.Value();};AB.ptr.prototype.scalar=function(){var{aa,ab,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.Code(7);$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=((c>>0));e=d;if(e===(0)){$s=3;continue;}if(e===(1)){$s=4;continue;}if(e===(2)){$s=5;continue;}if(e===(3)){$s=6;continue;}if(e===(4)){$s=7;continue;}if(e===(5)){$s=8;continue;}$s=9;continue;case 3:f=b.Bool();$s=11;case 11:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=H.MakeBool(f);$s=12;case 12:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=13;case 13:return h;case 4:i=b.String();$s=14;case 14:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=H.MakeString(i);$s=15;case 15:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=16;case 16:return k;case 5:l=b.Int64();$s=17;case 17:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=H.MakeInt64(l);$s=18;case 18:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=19;case 19:return n;case 6:o=b.bigInt();$s=20;case 20:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=H.Make(o);$s=21;case 21:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=22;case 22:return q;case 7:r=b.bigInt();$s=23;case 23:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;t=b.bigInt();$s=24;case 24:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;v=new J.Rat.ptr(new J.Int.ptr(false,J.nat.nil),new J.Int.ptr(false,J.nat.nil)).SetFrac(s,u);$s=25;case 25:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=H.Make(v);$s=26;case 26:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;$s=27;case 27:return x;case 8:y=b.bigFloat();$s=28;case 28:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=H.Make(y);$s=29;case 29:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;$s=30;case 30:return aa;case 9:ab=B.Errorf("unexpected scalar tag: %v",new AH([new AD(d)]));$s=31;case 31:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}$panic(ab);case 10:case 1:$s=-1;return $ifaceNil;}return;}var $f={$blk:AB.ptr.prototype.scalar,$c:true,$r,aa,ab,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AB.prototype.scalar=function(){return this.$val.scalar();};AB.ptr.prototype.bigInt=function(){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.String();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=new J.Int.ptr(false,J.nat.nil).SetBytes((new AL($stringToBytes(c))));$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=b.Bool();$s=5;case 5:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f){$s=3;continue;}$s=4;continue;case 3:e.Neg(e);case 4:$s=-1;return e;}return;}var $f={$blk:AB.ptr.prototype.bigInt,$c:true,$r,b,c,d,e,f,$s};return $f;};AB.prototype.bigInt=function(){return this.$val.bigInt();};AB.ptr.prototype.bigFloat=function(){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=new J.Float.ptr(0,0,0,0,false,J.nat.nil,0).SetPrec(512);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=b.String();$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=d.UnmarshalText((new AL($stringToBytes(e))));$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$r=Q($interfaceIsEqual(f,$ifaceNil));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return d;}return;}var $f={$blk:AB.ptr.prototype.bigFloat,$c:true,$r,b,c,d,e,f,$s};return $f;};AB.prototype.bigFloat=function(){return this.$val.bigFloat();};Z.ptr.prototype.PeekPkgPath=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.NewDecoder(3,b,17);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=$clone(d,AB);f=e.String();$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(g===""){g=c.pkgPath;}$s=-1;return g;}return;}var $f={$blk:Z.ptr.prototype.PeekPkgPath,$c:true,$r,b,c,d,e,f,g,$s};return $f;};Z.prototype.PeekPkgPath=function(b){return this.$val.PeekPkgPath(b);};Z.ptr.prototype.PeekObj=function(b){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.NewDecoder(4,b,15);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=$clone(d,AB);$r=e.Sync(26);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e.Sync(16);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=e.Reloc(3);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=c.PeekPkgPath(f);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=e.String();$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;Q(!(j===""));k=e.Code(25);$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=((k>>0));$s=-1;return[h,j,l];}return;}var $f={$blk:Z.ptr.prototype.PeekObj,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};Z.prototype.PeekObj=function(b){return this.$val.PeekObj(b);};AD.prototype.Marker=function(){var b;b=this.$val;return 7;};$ptrType(AD).prototype.Marker=function(){return new AD(this.$get()).Marker();};AD.prototype.Value=function(){var b;b=this.$val;return((b>>0));};$ptrType(AD).prototype.Value=function(){return new AD(this.$get()).Value();};AE.prototype.Marker=function(){var b;b=this.$val;return 19;};$ptrType(AE).prototype.Marker=function(){return new AE(this.$get()).Marker();};AE.prototype.Value=function(){var b;b=this.$val;return((b>>0));};$ptrType(AE).prototype.Value=function(){return new AE(this.$get()).Value();};AF.prototype.Marker=function(){var b;b=this.$val;return 25;};$ptrType(AF).prototype.Marker=function(){return new AF(this.$get()).Marker();};AF.prototype.Value=function(){var b;b=this.$val;return((b>>0));};$ptrType(AF).prototype.Value=function(){return new AF(this.$get()).Value();};P.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];AW.methods=[{prop:"PkgPath",name:"PkgPath",pkg:"",typ:$funcType([],[$String],false)},{prop:"SyncMarkers",name:"SyncMarkers",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"NumElems",name:"NumElems",pkg:"",typ:$funcType([S],[$Int],false)},{prop:"TotalElems",name:"TotalElems",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Fingerprint",name:"Fingerprint",pkg:"",typ:$funcType([],[AJ],false)},{prop:"AbsIdx",name:"AbsIdx",pkg:"",typ:$funcType([S,T],[$Int],false)},{prop:"DataIdx",name:"DataIdx",pkg:"",typ:$funcType([S,T],[$String],false)},{prop:"StringIdx",name:"StringIdx",pkg:"",typ:$funcType([T],[$String],false)},{prop:"NewDecoder",name:"NewDecoder",pkg:"",typ:$funcType([S,T,P],[AB],false)},{prop:"NewDecoderRaw",name:"NewDecoderRaw",pkg:"",typ:$funcType([S,T],[AB],false)},{prop:"PeekPkgPath",name:"PeekPkgPath",pkg:"",typ:$funcType([T],[$String],false)},{prop:"PeekObj",name:"PeekObj",pkg:"",typ:$funcType([T],[$String,$String,AF],false)}];BB.methods=[{prop:"checkErr",name:"checkErr",pkg:"golang.org/x/tools/go/internal/pkgbits",typ:$funcType([$error],[],false)},{prop:"rawUvarint",name:"rawUvarint",pkg:"golang.org/x/tools/go/internal/pkgbits",typ:$funcType([],[$Uint64],false)},{prop:"rawVarint",name:"rawVarint",pkg:"golang.org/x/tools/go/internal/pkgbits",typ:$funcType([],[$Int64],false)},{prop:"rawReloc",name:"rawReloc",pkg:"golang.org/x/tools/go/internal/pkgbits",typ:$funcType([S,$Int],[T],false)},{prop:"Sync",name:"Sync",pkg:"",typ:$funcType([P],[],false)},{prop:"Bool",name:"Bool",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Int64",name:"Int64",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Uint64",name:"Uint64",pkg:"",typ:$funcType([],[$Uint64],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Int",name:"Int",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Uint",name:"Uint",pkg:"",typ:$funcType([],[$Uint],false)},{prop:"Code",name:"Code",pkg:"",typ:$funcType([P],[$Int],false)},{prop:"Reloc",name:"Reloc",pkg:"",typ:$funcType([S],[T],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Strings",name:"Strings",pkg:"",typ:$funcType([],[AG],false)},{prop:"Value",name:"Value",pkg:"",typ:$funcType([],[H.Value],false)},{prop:"scalar",name:"scalar",pkg:"golang.org/x/tools/go/internal/pkgbits",typ:$funcType([],[H.Value],false)},{prop:"bigInt",name:"bigInt",pkg:"golang.org/x/tools/go/internal/pkgbits",typ:$funcType([],[AQ],false)},{prop:"bigFloat",name:"bigFloat",pkg:"golang.org/x/tools/go/internal/pkgbits",typ:$funcType([],[AS],false)}];AD.methods=[{prop:"Marker",name:"Marker",pkg:"",typ:$funcType([],[P],false)},{prop:"Value",name:"Value",pkg:"",typ:$funcType([],[$Int],false)}];AE.methods=[{prop:"Marker",name:"Marker",pkg:"",typ:$funcType([],[P],false)},{prop:"Value",name:"Value",pkg:"",typ:$funcType([],[$Int],false)}];AF.methods=[{prop:"Marker",name:"Marker",pkg:"",typ:$funcType([],[P],false)},{prop:"Value",name:"Value",pkg:"",typ:$funcType([],[$Int],false)}];U.init("",[{prop:"Kind",name:"Kind",embedded:false,exported:true,typ:S,tag:""},{prop:"Idx",name:"Idx",embedded:false,exported:true,typ:T,tag:""}]);Z.init("golang.org/x/tools/go/internal/pkgbits",[{prop:"version",name:"version",embedded:false,exported:false,typ:$Uint32,tag:""},{prop:"sync",name:"sync",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"pkgPath",name:"pkgPath",embedded:false,exported:false,typ:$String,tag:""},{prop:"elemData",name:"elemData",embedded:false,exported:false,typ:$String,tag:""},{prop:"elemEnds",name:"elemEnds",embedded:false,exported:false,typ:AT,tag:""},{prop:"elemEndsEnds",name:"elemEndsEnds",embedded:false,exported:false,typ:AU,tag:""}]);AB.init("golang.org/x/tools/go/internal/pkgbits",[{prop:"common",name:"common",embedded:false,exported:false,typ:AW,tag:""},{prop:"Relocs",name:"Relocs",embedded:false,exported:true,typ:AN,tag:""},{prop:"Data",name:"Data",embedded:false,exported:true,typ:C.Reader,tag:""},{prop:"k",name:"k",embedded:false,exported:false,typ:S,tag:""},{prop:"Idx",name:"Idx",embedded:false,exported:true,typ:T,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=E.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}M=$toNativeArray($kindUint16,[0,3,7,12,18,24,29,32,38,43,51,57,60,67,73,80,83,89,95,99,106,120,129,135,140,147,150,160,168,175,182,188,195,201,209,214,218,226,232,234,241,248,252,260,269,279,296,305,313,318,327,333,340,350,359,369,379,389,394,405,416,424,432,437,445,450,458]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["text/scanner"]=(function(){var $pkg={},$init,A,B,C,D,E,F,G,J,Q,R,S,T,U,V,W,X,H,I,K,L,M,N,O,P;A=$packages["bytes"];B=$packages["fmt"];C=$packages["io"];D=$packages["os"];E=$packages["unicode"];F=$packages["unicode/utf8"];G=$pkg.Position=$newType(0,$kindStruct,"scanner.Position",true,"text/scanner",true,function(Filename_,Offset_,Line_,Column_){this.$val=this;if(arguments.length===0){this.Filename="";this.Offset=0;this.Line=0;this.Column=0;return;}this.Filename=Filename_;this.Offset=Offset_;this.Line=Line_;this.Column=Column_;});J=$pkg.Scanner=$newType(0,$kindStruct,"scanner.Scanner",true,"text/scanner",true,function(src_,srcBuf_,srcPos_,srcEnd_,srcBufOffset_,line_,column_,lastLineLen_,lastCharLen_,tokBuf_,tokPos_,tokEnd_,ch_,Error_,ErrorCount_,Mode_,Whitespace_,IsIdentRune_,Position_){this.$val=this;if(arguments.length===0){this.src=$ifaceNil;this.srcBuf=U.zero();this.srcPos=0;this.srcEnd=0;this.srcBufOffset=0;this.line=0;this.column=0;this.lastLineLen=0;this.lastCharLen=0;this.tokBuf=new A.Buffer.ptr(R.nil,0,0);this.tokPos=0;this.tokEnd=0;this.ch=0;this.Error=$throwNilPointerError;this.ErrorCount=0;this.Mode=0;this.Whitespace=new $Uint64(0,0);this.IsIdentRune=$throwNilPointerError;this.Position=new G.ptr("",0,0,0);return;}this.src=src_;this.srcBuf=srcBuf_;this.srcPos=srcPos_;this.srcEnd=srcEnd_;this.srcBufOffset=srcBufOffset_;this.line=line_;this.column=column_;this.lastLineLen=lastLineLen_;this.lastCharLen=lastCharLen_;this.tokBuf=tokBuf_;this.tokPos=tokPos_;this.tokEnd=tokEnd_;this.ch=ch_;this.Error=Error_;this.ErrorCount=ErrorCount_;this.Mode=Mode_;this.Whitespace=Whitespace_;this.IsIdentRune=IsIdentRune_;this.Position=Position_;});Q=$sliceType($emptyInterface);R=$sliceType($Uint8);S=$ptrType($Int32);T=$ptrType(G);U=$arrayType($Uint8,1025);V=$ptrType(J);W=$funcType([V,$String],[],false);X=$funcType([$Int32,$Int],[$Bool],false);G.ptr.prototype.IsValid=function(){var a;a=this;return a.Line>0;};G.prototype.IsValid=function(){return this.$val.IsValid();};G.ptr.prototype.String=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Filename;if(b===""){b="";}if(a.IsValid()){$s=1;continue;}$s=2;continue;case 1:c=B.Sprintf(":%d:%d",new Q([new $Int(a.Line),new $Int(a.Column)]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=b+(c);case 2:$s=-1;return b;}return;}var $f={$blk:G.ptr.prototype.String,$c:true,$r,a,b,c,$s};return $f;};G.prototype.String=function(){return this.$val.String();};I=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=(c=$mapIndex(H,$Int32.keyFor(a)),c!==undefined?[c.v,true]:["",false]);d=b[0];e=b[1];if(e){$s=-1;return d;}f=B.Sprintf("%q",new Q([new $String(($encodeRune(a)))]));$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=2;case 2:return g;}return;}var $f={$blk:I,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};$pkg.TokenString=I;J.ptr.prototype.Init=function(a){var a,b;b=this;b.src=a;b.srcBuf[0]=128;b.srcPos=0;b.srcEnd=0;b.srcBufOffset=0;b.line=1;b.column=0;b.lastLineLen=0;b.lastCharLen=0;b.tokPos=-1;b.ch=-2;b.Error=$throwNilPointerError;b.ErrorCount=0;b.Mode=1012;b.Whitespace=new $Uint64(1,9728);b.Position.Line=0;return b;};J.prototype.Init=function(a){return this.$val.Init(a);};J.ptr.prototype.next=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=(((c=a.srcBuf,d=a.srcPos,((d<0||d>=c.length)?($throwRuntimeError("index out of range"),undefined):c[d]))>>0));e=1;f=b;g=e;if(f>=128){$s=1;continue;}$s=2;continue;case 1:case 3:if(!((a.srcPos+4>>0)>a.srcEnd&&!F.FullRune($subslice(new R(a.srcBuf),a.srcPos,a.srcEnd)))){$s=4;continue;}if(a.tokPos>=0){$s=5;continue;}$s=6;continue;case 5:h=a.tokBuf.Write($subslice(new R(a.srcBuf),a.tokPos,a.srcPos));$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;a.tokPos=0;case 6:$copySlice($subslice(new R(a.srcBuf),0),$subslice(new R(a.srcBuf),a.srcPos,a.srcEnd));a.srcBufOffset=a.srcBufOffset+(a.srcPos)>>0;i=a.srcEnd-a.srcPos>>0;k=a.src.Read($subslice(new R(a.srcBuf),i,1024));$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];a.srcPos=0;a.srcEnd=i+l>>0;(n=a.srcBuf,o=a.srcEnd,((o<0||o>=n.length)?($throwRuntimeError("index out of range"),undefined):n[o]=128));if(!($interfaceIsEqual(m,$ifaceNil))){$s=9;continue;}$s=10;continue;case 9:if(!($interfaceIsEqual(m,C.EOF))){$s=11;continue;}$s=12;continue;case 11:p=m.Error();$s=13;case 13:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}$r=a.error(p);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:if(a.srcEnd===0){if(a.lastCharLen>0){a.column=a.column+(1)>>0;}a.lastCharLen=0;$s=-1;return-1;}$s=4;continue;case 10:$s=3;continue;case 4:f=(((q=a.srcBuf,r=a.srcPos,((r<0||r>=q.length)?($throwRuntimeError("index out of range"),undefined):q[r]))>>0));if(f>=128){$s=15;continue;}$s=16;continue;case 15:s=F.DecodeRune($subslice(new R(a.srcBuf),a.srcPos,a.srcEnd));f=s[0];g=s[1];if((f===65533)&&(g===1)){$s=17;continue;}$s=18;continue;case 17:a.srcPos=a.srcPos+(g)>>0;a.lastCharLen=g;a.column=a.column+(1)>>0;$r=a.error("invalid UTF-8 encoding");$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return f;case 18:case 16:case 2:a.srcPos=a.srcPos+(g)>>0;a.lastCharLen=g;a.column=a.column+(1)>>0;t=f;if(t===(0)){$s=21;continue;}if(t===(10)){$s=22;continue;}$s=23;continue;case 21:$r=a.error("invalid character NUL");$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 22:a.line=a.line+(1)>>0;a.lastLineLen=a.column;a.column=0;case 23:case 20:$s=-1;return f;}return;}var $f={$blk:J.ptr.prototype.next,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};J.prototype.next=function(){return this.$val.next();};J.ptr.prototype.Next=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;a.tokPos=-1;a.Position.Line=0;b=a.Peek();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if(!((c===-1))){$s=2;continue;}$s=3;continue;case 2:d=a.next();$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}a.ch=d;case 3:$s=-1;return c;}return;}var $f={$blk:J.ptr.prototype.Next,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.Next=function(){return this.$val.Next();};J.ptr.prototype.Peek=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.ch===-2){$s=1;continue;}$s=2;continue;case 1:b=a.next();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}a.ch=b;if(a.ch===65279){$s=4;continue;}$s=5;continue;case 4:c=a.next();$s=6;case 6:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}a.ch=c;case 5:case 2:$s=-1;return a.ch;}return;}var $f={$blk:J.ptr.prototype.Peek,$c:true,$r,a,b,c,$s};return $f;};J.prototype.Peek=function(){return this.$val.Peek();};J.ptr.prototype.error=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;b.tokEnd=b.srcPos-b.lastCharLen>>0;b.ErrorCount=b.ErrorCount+(1)>>0;if(!(b.Error===$throwNilPointerError)){$s=1;continue;}$s=2;continue;case 1:$r=b.Error(b,a);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 2:c=$clone(b.Position,G);if(!c.IsValid()){G.copy(c,b.Pos());}d=B.Fprintf(D.Stderr,"%s: %s\n",new Q([new c.constructor.elem(c),new $String(a)]));$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;$s=-1;return;}return;}var $f={$blk:J.ptr.prototype.error,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.error=function(a){return this.$val.error(a);};J.ptr.prototype.errorf=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=B.Sprintf(a,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$r=c.error(d);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:J.ptr.prototype.errorf,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.errorf=function(a,b){return this.$val.errorf(a,b);};J.ptr.prototype.isIdentRune=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!(c.IsIdentRune===$throwNilPointerError)){$s=1;continue;}$s=2;continue;case 1:d=c.IsIdentRune(a,b);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=4;case 4:return e;case 2:$s=-1;return(a===95)||E.IsLetter(a)||E.IsDigit(a)&&b>0;}return;}var $f={$blk:J.ptr.prototype.isIdentRune,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.isIdentRune=function(a,b){return this.$val.isIdentRune(a,b);};J.ptr.prototype.scanIdentifier=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.next();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=1;case 2:e=a.isIdentRune(c,d);$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}if(!(e)){$s=3;continue;}f=a.next();$s=5;case 5:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}c=f;d=d+(1)>>0;$s=2;continue;case 3:$s=-1;return c;}return;}var $f={$blk:J.ptr.prototype.scanIdentifier,$c:true,$r,a,b,c,d,e,f,$s};return $f;};J.prototype.scanIdentifier=function(){return this.$val.scanIdentifier();};K=function(a){var a;return 32|a;};L=function(a){var a;return 48<=a&&a<=57;};M=function(a){var a;return 48<=a&&a<=57||97<=K(a)&&K(a)<=102;};J.ptr.prototype.digits=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=0;e=0;f=this;d=a;if(b<=10){$s=1;continue;}$s=2;continue;case 1:g=(((48+b>>0)>>0));case 4:if(!(L(d)||(d===95))){$s=5;continue;}h=1;if(d===95){h=2;}else if(d>=g&&(c.$get()===0)){c.$set(d);}e=e|(h);i=f.next();$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}d=i;$s=4;continue;case 5:$s=3;continue;case 2:case 7:if(!(M(d)||(d===95))){$s=8;continue;}j=1;if(d===95){j=2;}e=e|(j);k=f.next();$s=9;case 9:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}d=k;$s=7;continue;case 8:case 3:$s=-1;return[d,e];}return;}var $f={$blk:J.ptr.prototype.digits,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};J.prototype.digits=function(a,b,c){return this.$val.digits(a,b,c);};J.ptr.prototype.scanNumber=function(a,b){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;e=10;f=0;g=0;c[0]=0;h=0;i=0;if(!b){$s=1;continue;}$s=2;continue;case 1:h=-3;if(a===48){$s=3;continue;}$s=4;continue;case 3:j=d.next();$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}a=j;k=K(a);if(k===(120)){$s=7;continue;}if(k===(111)){$s=8;continue;}if(k===(98)){$s=9;continue;}$s=10;continue;case 7:l=d.next();$s=12;case 12:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}a=l;m=16;n=120;e=m;f=n;$s=11;continue;case 8:o=d.next();$s=13;case 13:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}a=o;p=8;q=111;e=p;f=q;$s=11;continue;case 9:r=d.next();$s=14;case 14:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}a=r;s=2;t=98;e=s;f=t;$s=11;continue;case 10:u=8;v=48;e=u;f=v;g=1;case 11:case 6:case 4:x=d.digits(a,e,(c.$ptr||(c.$ptr=new S(function(){return this.$target[0];},function($v){this.$target[0]=$v;},c))));$s=15;case 15:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;a=w[0];i=w[1];g=g|(i);if((a===46)&&!((((d.Mode&16)>>>0)===0))){$s=16;continue;}$s=17;continue;case 16:y=d.next();$s=18;case 18:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}a=y;b=true;case 17:case 2:if(b){$s=19;continue;}$s=20;continue;case 19:h=-4;if((f===111)||(f===98)){$s=21;continue;}$s=22;continue;case 21:$r=d.error("invalid radix point in "+N(f));$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 22:aa=d.digits(a,e,(c.$ptr||(c.$ptr=new S(function(){return this.$target[0];},function($v){this.$target[0]=$v;},c))));$s=24;case 24:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}z=aa;a=z[0];i=z[1];g=g|(i);case 20:if((g&1)===0){$s=25;continue;}$s=26;continue;case 25:$r=d.error(N(f)+" has no digits");$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 26:ab=K(a);if(((ab===101)||(ab===112))&&!((((d.Mode&16)>>>0)===0))){$s=28;continue;}if((f===120)&&(h===-4)){$s=29;continue;}$s=30;continue;case 28:if((ab===101)&&!((f===0))&&!((f===48))){$s=32;continue;}if((ab===112)&&!((f===120))){$s=33;continue;}$s=34;continue;case 32:$r=d.errorf("%q exponent requires decimal mantissa",new Q([new $Int32(a)]));$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=34;continue;case 33:$r=d.errorf("%q exponent requires hexadecimal mantissa",new Q([new $Int32(a)]));$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 34:case 31:ac=d.next();$s=37;case 37:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}a=ac;h=-4;if((a===43)||(a===45)){$s=38;continue;}$s=39;continue;case 38:ad=d.next();$s=40;case 40:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}a=ad;case 39:af=d.digits(a,10,S.nil);$s=41;case 41:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ae=af;a=ae[0];i=ae[1];g=g|(i);if((i&1)===0){$s=42;continue;}$s=43;continue;case 42:$r=d.error("exponent has no digits");$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 43:$s=30;continue;case 29:$r=d.error("hexadecimal mantissa requires a 'p' exponent");$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 30:if((h===-3)&&!((c[0]===0))){$s=46;continue;}$s=47;continue;case 46:$r=d.errorf("invalid digit %q in %s",new Q([new $Int32(c[0]),new $String(N(f))]));$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 47:if(!(((g&2)===0))){$s=49;continue;}$s=50;continue;case 49:d.tokEnd=d.srcPos-d.lastCharLen>>0;ag=d.TokenText();$s=51;case 51:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=O(ag);$s=52;case 52:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;if(ai>=0){$s=53;continue;}$s=54;continue;case 53:$r=d.error("'_' must separate successive digits");$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 54:case 50:$s=-1;return[h,a];}return;}var $f={$blk:J.ptr.prototype.scanNumber,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};J.prototype.scanNumber=function(a,b){return this.$val.scanNumber(a,b);};N=function(a){var a,b;b=a;if(b===(120)){return"hexadecimal literal";}else if((b===(111))||(b===(48))){return"octal literal";}else if(b===(98)){return"binary literal";}else{return"decimal literal";}};O=function(a){var a,b,c,d,e;b=32;c=46;d=0;if(a.length>=2&&(a.charCodeAt(0)===48)){b=K(((a.charCodeAt(1)>>0)));if((b===120)||(b===111)||(b===98)){c=48;d=2;}}while(true){if(!(d>0));if((c===95)){if(!((e===48))){return d;}}else if(L(c)||(b===120)&&M(c)){c=48;}else{if(e===95){return d-1>>0;}c=46;}d=d+(1)>>0;}if(c===95){return a.length-1>>0;}return-1;};P=function(a){var a;if(48<=a&&a<=57){return(((a-48>>0)>>0));}else if(97<=K(a)&&K(a)<=102){return((((K(a)-97>>0)+10>>0)>>0));}return 16;};J.ptr.prototype.scanDigits=function(a,b,c){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;case 1:if(!(c>0&&P(a)>0;$s=1;continue;case 2:if(c>0){$s=4;continue;}$s=5;continue;case 4:$r=d.error("invalid char escape");$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:$s=-1;return a;}return;}var $f={$blk:J.ptr.prototype.scanDigits,$c:true,$r,a,b,c,d,e,$s};return $f;};J.prototype.scanDigits=function(a,b,c){return this.$val.scanDigits(a,b,c);};J.ptr.prototype.scanEscape=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.next();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=d;if((e===(97))||(e===(98))||(e===(102))||(e===(110))||(e===(114))||(e===(116))||(e===(118))||(e===(92))||(e===(a))){$s=3;continue;}if((e===(48))||(e===(49))||(e===(50))||(e===(51))||(e===(52))||(e===(53))||(e===(54))||(e===(55))){$s=4;continue;}if(e===(120)){$s=5;continue;}if(e===(117)){$s=6;continue;}if(e===(85)){$s=7;continue;}$s=8;continue;case 3:f=b.next();$s=10;case 10:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}d=f;$s=9;continue;case 4:g=b.scanDigits(d,8,3);$s=11;case 11:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}d=g;$s=9;continue;case 5:h=b.next();$s=12;case 12:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=b.scanDigits(h,16,2);$s=13;case 13:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}d=i;$s=9;continue;case 6:j=b.next();$s=14;case 14:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=b.scanDigits(j,16,4);$s=15;case 15:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}d=k;$s=9;continue;case 7:l=b.next();$s=16;case 16:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=b.scanDigits(l,16,8);$s=17;case 17:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}d=m;$s=9;continue;case 8:$r=b.error("invalid char escape");$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:case 2:$s=-1;return d;}return;}var $f={$blk:J.ptr.prototype.scanEscape,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};J.prototype.scanEscape=function(a){return this.$val.scanEscape(a);};J.ptr.prototype.scanString=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=0;c=this;d=c.next();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;case 2:if(!(!((e===a)))){$s=3;continue;}if((e===10)||e<0){$s=4;continue;}$s=5;continue;case 4:$r=c.error("literal not terminated");$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b;case 5:if(e===92){$s=7;continue;}$s=8;continue;case 7:f=c.scanEscape(a);$s=10;case 10:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;$s=9;continue;case 8:g=c.next();$s=11;case 11:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}e=g;case 9:b=b+(1)>>0;$s=2;continue;case 3:$s=-1;return b;}return;}var $f={$blk:J.ptr.prototype.scanString,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};J.prototype.scanString=function(a){return this.$val.scanString(a);};J.ptr.prototype.scanRawString=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.next();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;case 2:if(!(!((c===96)))){$s=3;continue;}if(c<0){$s=4;continue;}$s=5;continue;case 4:$r=a.error("literal not terminated");$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 5:d=a.next();$s=7;case 7:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;$s=2;continue;case 3:$s=-1;return;}return;}var $f={$blk:J.ptr.prototype.scanRawString,$c:true,$r,a,b,c,d,$s};return $f;};J.prototype.scanRawString=function(){return this.$val.scanRawString();};J.ptr.prototype.scanChar=function(){var{a,b,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.scanString(39);$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}if(!((b===1))){$s=1;continue;}$s=2;continue;case 1:$r=a.error("invalid char literal");$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:J.ptr.prototype.scanChar,$c:true,$r,a,b,$s};return $f;};J.prototype.scanChar=function(){return this.$val.scanChar();};J.ptr.prototype.scanComment=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(a===47){$s=1;continue;}$s=2;continue;case 1:c=b.next();$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}a=c;case 4:if(!(!((a===10))&&a>=0)){$s=5;continue;}d=b.next();$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}a=d;$s=4;continue;case 5:$s=-1;return a;case 2:e=b.next();$s=7;case 7:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}a=e;case 8:if(a<0){$s=10;continue;}$s=11;continue;case 10:$r=b.error("comment not terminated");$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=9;continue;case 11:f=a;g=b.next();$s=13;case 13:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}a=g;if((f===42)&&(a===47)){$s=14;continue;}$s=15;continue;case 14:h=b.next();$s=16;case 16:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}a=h;$s=9;continue;case 15:$s=8;continue;case 9:$s=-1;return a;}return;}var $f={$blk:J.ptr.prototype.scanComment,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};J.prototype.scanComment=function(a){return this.$val.scanComment(a);};J.ptr.prototype.Scan=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Peek();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;a.tokPos=-1;a.Position.Line=0;case 2:case 3:if(!(!((d=(e=a.Whitespace,f=$shiftLeft64(new $Uint64(0,1),((c>>>0))),new $Uint64(e.$high&f.$high,(e.$low&f.$low)>>>0)),(d.$high===0&&d.$low===0))))){$s=4;continue;}g=a.next();$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}c=g;$s=3;continue;case 4:a.tokBuf.Reset();a.tokPos=a.srcPos-a.lastCharLen>>0;a.Position.Offset=a.srcBufOffset+a.tokPos>>0;if(a.column>0){a.Position.Line=a.line;a.Position.Column=a.column;}else{a.Position.Line=a.line-1>>0;a.Position.Column=a.lastLineLen;}h=c;i=a.isIdentRune(c,0);$s=11;case 11:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(i){$s=7;continue;}if(L(c)){$s=8;continue;}$s=9;continue;case 7:if(!((((a.Mode&4)>>>0)===0))){$s=12;continue;}$s=13;continue;case 12:h=-2;j=a.scanIdentifier();$s=15;case 15:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}c=j;$s=14;continue;case 13:k=a.next();$s=16;case 16:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}c=k;case 14:$s=10;continue;case 8:if(!((((a.Mode&24)>>>0)===0))){$s=17;continue;}$s=18;continue;case 17:m=a.scanNumber(c,false);$s=20;case 20:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;h=l[0];c=l[1];$s=19;continue;case 18:n=a.next();$s=21;case 21:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}c=n;case 19:$s=10;continue;case 9:o=c;if(o===(-1)){$s=23;continue;}if(o===(34)){$s=24;continue;}if(o===(39)){$s=25;continue;}if(o===(46)){$s=26;continue;}if(o===(47)){$s=27;continue;}if(o===(96)){$s=28;continue;}$s=29;continue;case 23:$s=22;continue;$s=30;continue;case 24:if(!((((a.Mode&64)>>>0)===0))){$s=31;continue;}$s=32;continue;case 31:p=a.scanString(34);$s=33;case 33:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;h=-6;case 32:q=a.next();$s=34;case 34:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}c=q;$s=30;continue;case 25:if(!((((a.Mode&32)>>>0)===0))){$s=35;continue;}$s=36;continue;case 35:$r=a.scanChar();$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=-5;case 36:r=a.next();$s=38;case 38:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}c=r;$s=30;continue;case 26:s=a.next();$s=39;case 39:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}c=s;if(L(c)&&!((((a.Mode&16)>>>0)===0))){$s=40;continue;}$s=41;continue;case 40:u=a.scanNumber(c,true);$s=42;case 42:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;h=t[0];c=t[1];case 41:$s=30;continue;case 27:v=a.next();$s=43;case 43:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}c=v;if(((c===47)||(c===42))&&!((((a.Mode&256)>>>0)===0))){$s=44;continue;}$s=45;continue;case 44:if(!((((a.Mode&512)>>>0)===0))){$s=46;continue;}$s=47;continue;case 46:a.tokPos=-1;w=a.scanComment(c);$s=48;case 48:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}c=w;$s=2;continue;case 47:x=a.scanComment(c);$s=49;case 49:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}c=x;h=-8;case 45:$s=30;continue;case 28:if(!((((a.Mode&128)>>>0)===0))){$s=50;continue;}$s=51;continue;case 50:$r=a.scanRawString();$s=52;case 52:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=-7;case 51:y=a.next();$s=53;case 53:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}c=y;$s=30;continue;case 29:z=a.next();$s=54;case 54:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}c=z;case 30:case 22:case 10:case 6:a.tokEnd=a.srcPos-a.lastCharLen>>0;a.ch=c;$s=-1;return h;}return;}var $f={$blk:J.ptr.prototype.Scan,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};J.prototype.Scan=function(){return this.$val.Scan();};J.ptr.prototype.Pos=function(){var a,b;a=new G.ptr("",0,0,0);b=this;a.Filename=b.Position.Filename;a.Offset=(b.srcBufOffset+b.srcPos>>0)-b.lastCharLen>>0;if(b.column>0){a.Line=b.line;a.Column=b.column;}else if(b.lastLineLen>0){a.Line=b.line-1>>0;a.Column=b.lastLineLen;}else{a.Line=1;a.Column=1;}return a;};J.prototype.Pos=function(){return this.$val.Pos();};J.ptr.prototype.TokenText=function(){var{a,b,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.tokPos<0){$s=-1;return"";}if(a.tokEnd>0;$s=5;continue;case 6:$r=g.Decoder.Sync(1);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}t=e.laterFns;u=0;case 15:if(!(u=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]);$r=v();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}u++;$s=15;continue;case 16:i.MarkComplete();w=i;$s=18;case 18:return w;}return;}}catch(err){$err=err;$s=-1;return CU.nil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:AE,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$deferred};return $f;}}};AA.ptr.prototype.newReader=function(a,b,c){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.PkgDecoder.NewDecoder(a,b,c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=new AF.ptr($clone(e,D.Decoder),d,DG.nil);$s=2;case 2:return f;}return;}var $f={$blk:AA.ptr.prototype.newReader,$c:true,$r,a,b,c,d,e,f,$s};return $f;};AA.prototype.newReader=function(a,b,c){return this.$val.newReader(a,b,c);};AF.ptr.prototype.pos=function(){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=a.Decoder.Sync(12);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=a.Decoder.Bool();$s=4;case 4:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}if(!b){$s=2;continue;}$s=3;continue;case 2:$s=-1;return 0;case 3:c=a.posBase();$s=5;case 5:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=a.Decoder.Uint();$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=a.Decoder.Uint();$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=a.p.fake.pos(d,((f>>0)),((h>>0)));$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=9;case 9:return j;}return;}var $f={$blk:AF.ptr.prototype.pos,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};AF.prototype.pos=function(){return this.$val.pos();};AF.ptr.prototype.posBase=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Decoder.Reloc(2);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=a.p.posBaseIdx(b);$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=3;case 3:return d;}return;}var $f={$blk:AF.ptr.prototype.posBase,$c:true,$r,a,b,c,d,$s};return $f;};AF.prototype.posBase=function(){return this.$val.posBase();};AA.ptr.prototype.posBaseIdx=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;d=(c=b.posBases,((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]));if(!(d==="")){$s=-1;return d;}e=b.newReader(2,a,13);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=f.Decoder.String();$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=f.Decoder.Bool();$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(i){$s=3;continue;}$s=4;continue;case 3:$s=5;continue;case 4:j=f.pos();$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=f.Decoder.Uint();$s=8;case 8:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=f.Decoder.Uint();$s=9;case 9:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;$unused(k);$unused(m);$unused(o);case 5:s=h;(t=b.posBases,((a<0||a>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+a]=s));$s=-1;return s;}return;}var $f={$blk:AA.ptr.prototype.posBaseIdx,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};AA.prototype.posBaseIdx=function(a){return this.$val.posBaseIdx(a);};AF.ptr.prototype.pkg=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=a.Decoder.Sync(16);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=a.Decoder.Reloc(3);$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=a.p.pkgIdx(b);$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=4;case 4:return d;}return;}var $f={$blk:AF.ptr.prototype.pkg,$c:true,$r,a,b,c,d,$s};return $f;};AF.prototype.pkg=function(){return this.$val.pkg();};AA.ptr.prototype.pkgIdx=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;d=(c=b.pkgs,((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]));if(!(d===CU.nil)){$s=-1;return d;}e=b.newReader(3,a,17);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e.doPkg();$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;(h=b.pkgs,((a<0||a>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+a]=g));$s=-1;return g;}return;}var $f={$blk:AA.ptr.prototype.pkgIdx,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};AA.prototype.pkgIdx=function(a){return this.$val.pkgIdx(a);};AF.ptr.prototype.doPkg=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Decoder.String();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=c;if(d===("")){c=a.p.PkgDecoder.PkgPath();}else if(d===("builtin")){$s=-1;return CU.nil;}else if(d===("unsafe")){$s=-1;return B.Unsafe;}f=(e=$mapIndex(a.p.imports,$String.keyFor(c)),e!==undefined?e.v:CU.nil);if(!(f===CU.nil)){$s=-1;return f;}g=a.Decoder.String();$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=B.NewPackage(c,h);$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=c;(a.p.imports||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(k),{k:k,v:j});l=a.Decoder.Len();$s=4;case 4:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=$makeSlice(DA,l);n=m;o=0;case 5:if(!(o=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+p]=q);o++;$s=5;continue;case 6:j.SetImports(m);$s=-1;return j;}return;}var $f={$blk:AF.ptr.prototype.doPkg,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};AF.prototype.doPkg=function(){return this.$val.doPkg();};AF.ptr.prototype.typ=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.typInfo();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=a.p.typIdx($clone(b,AC),a.dict);$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=3;case 3:return d;}return;}var $f={$blk:AF.ptr.prototype.typ,$c:true,$r,a,b,c,d,$s};return $f;};AF.prototype.typ=function(){return this.$val.typ();};AF.ptr.prototype.typInfo=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=a.Decoder.Sync(19);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=a.Decoder.Bool();$s=4;case 4:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}if(b){$s=2;continue;}$s=3;continue;case 2:c=a.Decoder.Len();$s=5;case 5:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=new AC.ptr(((c>>0)),true);$s=6;case 6:return d;case 3:e=a.Decoder.Reloc(5);$s=7;case 7:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=new AC.ptr(e,false);$s=8;case 8:return f;}return;}var $f={$blk:AF.ptr.prototype.typInfo,$c:true,$r,a,b,c,d,e,f,$s};return $f;};AF.prototype.typInfo=function(){return this.$val.typInfo();};AA.ptr.prototype.typIdx=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=a.idx;e=DH.nil;if(a.derived){e=(f=b.derivedTypes,$indexPtr(f.$array,f.$offset+d,DH));d=(g=b.derived,((d<0||d>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+d])).idx;}else{e=(h=c.typs,$indexPtr(h.$array,h.$offset+d,DH));}i=e.$get();if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return i;}j=c.newReader(5,d,20);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;k.dict=b;l=k.doTyp();$s=2;case 2:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;BG(!($interfaceIsEqual(m,$ifaceNil)));n=e.$get();if(!($interfaceIsEqual(n,$ifaceNil))){$s=-1;return n;}e.$set(m);$s=-1;return m;}return;}var $f={$blk:AA.ptr.prototype.typIdx,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};AA.prototype.typIdx=function(a,b){return this.$val.typIdx(a,b);};AF.ptr.prototype.doTyp=function(){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=$ifaceNil;b=this;c=b.Decoder.Code(19);$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=((c>>0));e=d;if(e===(0)){$s=3;continue;}if(e===(1)){$s=4;continue;}if(e===(11)){$s=5;continue;}if(e===(4)){$s=6;continue;}if(e===(5)){$s=7;continue;}if(e===(6)){$s=8;continue;}if(e===(2)){$s=9;continue;}if(e===(7)){$s=10;continue;}if(e===(3)){$s=11;continue;}if(e===(8)){$s=12;continue;}if(e===(9)){$s=13;continue;}if(e===(10)){$s=14;continue;}$s=15;continue;case 3:h=b.Decoder.Len();$s=17;case 17:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}a=(f=B.Typ,g=h,((g<0||g>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]));i=a;$s=18;case 18:return i;case 4:k=b.obj();$s=19;case 19:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];n=$assertType(l,DI);if(!((m.$length===0))){$s=20;continue;}$s=21;continue;case 20:p=B.Instantiate(b.p.ctxt,n.object.Type(),m,false);$s=22;case 22:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;q=o[0];a=q;$s=-1;return a;case 21:a=n.object.Type();$s=-1;return a;case 5:t=b.Decoder.Len();$s=23;case 23:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}a=(r=b.dict.tparams,s=t,((s<0||s>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]));u=a;$s=24;case 24:return u;case 6:w=b.Decoder.Uint64();$s=25;case 25:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=((v=w,new $Int64(v.$high,v.$low)));y=b.typ();$s=26;case 26:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=B.NewArray(y,x);$s=27;case 27:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}a=z;aa=a;$s=28;case 28:return aa;case 7:ab=b.Decoder.Len();$s=29;case 29:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=((ab>>0));ad=ac;ae=b.typ();$s=30;case 30:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;ag=B.NewChan(ad,af);$s=31;case 31:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}a=ag;ah=a;$s=32;case 32:return ah;case 8:ai=b.typ();$s=33;case 33:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai;ak=b.typ();$s=34;case 34:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak;am=B.NewMap(aj,al);$s=35;case 35:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}a=am;an=a;$s=36;case 36:return an;case 9:ao=b.typ();$s=37;case 37:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=B.NewPointer(ao);$s=38;case 38:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}a=ap;aq=a;$s=39;case 39:return aq;case 10:ar=b.signature(DJ.nil,DL.nil,DL.nil);$s=40;case 40:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}a=ar;as=a;$s=41;case 41:return as;case 11:at=b.typ();$s=42;case 42:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=B.NewSlice(at);$s=43;case 43:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}a=au;av=a;$s=44;case 44:return av;case 12:aw=b.structType();$s=45;case 45:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}a=aw;ax=a;$s=46;case 46:return ax;case 13:ay=b.interfaceType();$s=47;case 47:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}a=ay;az=a;$s=48;case 48:return az;case 14:ba=b.unionType();$s=49;case 49:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}a=ba;bb=a;$s=50;case 50:return bb;case 15:$r=BV("unhandled type tag: %v",new DM([new D.CodeType(d)]));$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$panic(new $String("unreachable"));case 16:case 1:$s=-1;return a;}return;}var $f={$blk:AF.ptr.prototype.doTyp,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AF.prototype.doTyp=function(){return this.$val.doTyp();};AF.ptr.prototype.structType=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Decoder.Len();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=$makeSlice(DN,b);d=CZ.nil;e=c;f=0;case 2:if(!(f=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+g]=B.NewField(i,l,m,o,s));if(!(q==="")){while(true){if(!(d.$length=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=k);e++;$s=2;continue;case 3:$s=-1;return B.NewUnion(c);}return;}var $f={$blk:AF.ptr.prototype.unionType,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};AF.prototype.unionType=function(){return this.$val.unionType();};AF.ptr.prototype.interfaceType=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.Decoder.Len();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=$makeSlice(DR,b);d=a.Decoder.Len();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=$makeSlice(CT,d);if(!((c.$length===0)&&(e.$length===1))){f=false;$s=3;continue s;}g=a.Decoder.Bool();$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;case 3:h=f;i=c;j=0;case 5:if(!(j=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+k]=B.NewFunc(m,p,q,s));j++;$s=5;continue;case 6:t=e;u=0;case 10:if(!(u=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+v]=w);u++;$s=10;continue;case 11:x=B.NewInterfaceType(c,e);$s=13;case 13:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;if(h){y.MarkImplicit();}$s=-1;return y;}return;}var $f={$blk:AF.ptr.prototype.interfaceType,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s};return $f;};AF.prototype.interfaceType=function(){return this.$val.interfaceType();};AF.ptr.prototype.signature=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;$r=d.Decoder.Sync(22);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=d.params();$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=d.params();$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=d.Decoder.Bool();$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=-1;return B.NewSignatureType(a,b,c,f,h,j);}return;}var $f={$blk:AF.ptr.prototype.signature,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};AF.prototype.signature=function(a,b,c){return this.$val.signature(a,b,c);};AF.ptr.prototype.params=function(){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=a.Decoder.Sync(23);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=a.Decoder.Len();$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=$makeSlice(DN,b);d=c;e=0;case 3:if(!(e=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=g);e++;$s=3;continue;case 4:$s=-1;return B.NewTuple(c);}return;}var $f={$blk:AF.ptr.prototype.params,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};AF.prototype.params=function(){return this.$val.params();};AF.ptr.prototype.param=function(){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=a.Decoder.Sync(24);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=a.pos();$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;e=a.localIdent();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];h=a.typ();$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=-1;return B.NewParam(c,f,g,i);}return;}var $f={$blk:AF.ptr.prototype.param,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};AF.prototype.param=function(){return this.$val.param();};AF.ptr.prototype.obj=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=a.Decoder.Sync(14);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=a.Decoder.Bool();$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$r=BG(!b);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=a.Decoder.Reloc(6);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=a.p.objIdx(d);$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}c=e;f=c[0];g=c[1];h=AH(f).Lookup(g);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=a.Decoder.Len();$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=$makeSlice(CT,j);l=k;m=0;case 8:if(!(m=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+n]=o);m++;$s=8;continue;case 9:$s=-1;return[i,k];}return;}var $f={$blk:AF.ptr.prototype.obj,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};AF.prototype.obj=function(){return this.$val.obj();};AA.ptr.prototype.objIdx=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];e=this;f=e.newReader(4,a,15);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;i=g.qualifiedIdent();$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;c[0]=h[0];j=h[1];BG(!(j===""));k=g.Decoder.Code(25);$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=((k>>0));if(l===5){BG(c[0]===CU.nil||c[0]===B.Unsafe);$s=-1;return[c[0],j];}m=c[0].Scope().Lookup(j);$s=6;case 6:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if($interfaceIsEqual(m,$ifaceNil)){$s=4;continue;}$s=5;continue;case 4:n=e.objDictIdx(a);$s=7;case 7:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;p=e.newReader(6,a,15);$s=8;case 8:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;q.dict=o;r=(function(b,c,d){return function $b(r){var{r,s,$s,$r,$c}=$restore(this,{r});$s=$s||0;s:while(true){switch($s){case 0:s=c[0].Scope().Insert(r);$s=1;case 1:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,r,s,$s};return $f;};})(b,c,d);s=l;if(s===(0)){$s=10;continue;}if(s===(1)){$s=11;continue;}if(s===(3)){$s=12;continue;}if(s===(2)){$s=13;continue;}if(s===(4)){$s=14;continue;}$s=15;continue;case 10:t=q.pos();$s=17;case 17:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;v=q.typ();$s=18;case 18:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v;$r=r(B.NewTypeName(u,c[0],j,w));$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 11:x=q.pos();$s=20;case 20:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;z=q.typ();$s=21;case 21:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;ab=q.Decoder.Value();$s=22;case 22:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;$r=r(B.NewConst(y,c[0],j,aa,ac));$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 12:ad=q.pos();$s=24;case 24:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;af=q.typeParamNames();$s=25;case 25:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;ah=q.signature(DJ.nil,DL.nil,ag);$s=26;case 26:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;$r=r(B.NewFunc(ae,c[0],j,ai));$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 13:aj=q.pos();$s=28;case 28:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=aj;al=B.NewTypeName(ak,c[0],j,$ifaceNil);b[0]=B.NewNamed(al,$ifaceNil,DR.nil);$r=r(al);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}am=q.typeParamNames();$s=30;case 30:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}$r=b[0].SetTypeParams(am);$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}an=q.typ();$s=32;case 32:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}d[0]=an;q.p.later((function(b,c,d){return function $b(){var{ao,ap,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:ao=d[0].Underlying();$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=ao;$r=b[0].SetUnderlying(ap);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ao,ap,$s};return $f;};})(b,c,d));ao=0;aq=q.Decoder.Len();$s=33;case 33:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ap=aq;ar=ao;as=ap;case 34:if(!(ar>0;$s=34;continue;case 35:$s=16;continue;case 14:au=q.pos();$s=38;case 38:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=au;aw=q.typ();$s=39;case 39:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ax=aw;$r=r(B.NewVar(av,c[0],j,ax));$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 15:$panic(new $String("weird"));case 16:case 9:case 5:$s=-1;return[c[0],j];}return;}var $f={$blk:AA.ptr.prototype.objIdx,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AA.prototype.objIdx=function(a){return this.$val.objIdx(a);};AA.ptr.prototype.objDictIdx=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=this;d=c.newReader(8,a,15);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;b[0]=new AG.ptr(DS.nil,DL.nil,DT.nil,CT.nil);f=e.Decoder.Len();$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!((g===0))){$s=3;continue;}$s=4;continue;case 3:$r=BV("unexpected object with %v implicit type parameter(s)",new DM([new $Int(g)]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:h=e.Decoder.Len();$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}b[0].bounds=$makeSlice(DS,h);i=b[0].bounds;j=0;case 7:if(!(j=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+k])),l);j++;$s=7;continue;case 8:n=e.Decoder.Len();$s=10;case 10:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}b[0].derived=$makeSlice(DT,n);b[0].derivedTypes=$makeSlice(CT,b[0].derived.$length);o=b[0].derived;p=0;case 11:if(!(p=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+q])),new AB.ptr(r,s));p++;$s=11;continue;case 12:$s=-1;return b[0];}return;}var $f={$blk:AA.ptr.prototype.objDictIdx,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};AA.prototype.objDictIdx=function(a){return this.$val.objDictIdx(a);};AF.ptr.prototype.typeParamNames=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=this;$r=c.Decoder.Sync(21);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c.dict.bounds.$length===0){$s=-1;return DL.nil;}c.dict.tparams=$makeSlice(DL,c.dict.bounds.$length);d=c.dict.bounds;e=0;case 2:if(!(e=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+f]=n));e++;$s=2;continue;case 3:b[0]=$makeSlice(CT,c.dict.bounds.$length);p=c.dict.bounds;q=0;case 7:if(!(q=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]),AC);t=c.p.typIdx($clone(s,AC),c.dict);$s=9;case 9:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}((r<0||r>=b[0].$length)?($throwRuntimeError("index out of range"),undefined):b[0].$array[b[0].$offset+r]=t);q++;$s=7;continue;case 8:a[0]=c.dict.tparams;c.p.later((function(a,b){return function $b(){var{u,v,w,x,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:u=b[0];v=0;case 1:if(!(v=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v]);$r=((w<0||w>=a[0].$length)?($throwRuntimeError("index out of range"),undefined):a[0].$array[a[0].$offset+w]).SetConstraint(x);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}v++;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,u,v,w,x,$s};return $f;};})(a,b));$s=-1;return c.dict.tparams;}return;}var $f={$blk:AF.ptr.prototype.typeParamNames,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s};return $f;};AF.prototype.typeParamNames=function(){return this.$val.typeParamNames();};AF.ptr.prototype.method=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=a.Decoder.Sync(18);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=a.pos();$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;e=a.selector();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];h=a.typeParamNames();$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=a.param();$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=a.signature(j,i,DL.nil);$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;m=a.pos();$s=7;case 7:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}$unused(m);$s=-1;return B.NewFunc(c,f,g,l);}return;}var $f={$blk:AF.ptr.prototype.method,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};AF.prototype.method=function(){return this.$val.method();};AF.ptr.prototype.qualifiedIdent=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.ident(26);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:AF.ptr.prototype.qualifiedIdent,$c:true,$r,a,b,c,$s};return $f;};AF.prototype.qualifiedIdent=function(){return this.$val.qualifiedIdent();};AF.ptr.prototype.localIdent=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.ident(27);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:AF.ptr.prototype.localIdent,$c:true,$r,a,b,c,$s};return $f;};AF.prototype.localIdent=function(){return this.$val.localIdent();};AF.ptr.prototype.selector=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.ident(28);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:AF.ptr.prototype.selector,$c:true,$r,a,b,c,$s};return $f;};AF.prototype.selector=function(){return this.$val.selector();};AF.ptr.prototype.ident=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.Decoder.Sync(a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=b.pkg();$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=b.Decoder.String();$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=[c,d];$s=4;case 4:return e;}return;}var $f={$blk:AF.ptr.prototype.ident,$c:true,$r,a,b,c,d,e,$s};return $f;};AF.prototype.ident=function(a){return this.$val.ident(a);};AH=function(a){var a;if(!(a===CU.nil)){return a.Scope();}return B.Universe;};AI=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=B.Universe.Lookup("comparable");$s=1;case 1:if($c){$c=false;a=a.$blk();}if(a&&a.$blk!==undefined){break s;}b=a.Type();$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=B.Universe.Lookup("any");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.Type();$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=new CT([b,d]);$s=5;case 5:return e;}return;}var $f={$blk:AI,$c:true,$r,a,b,c,d,e,$s};return $f;};AJ=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=B.NewInterfaceType(a,b);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:AJ,$c:true,$r,a,b,c,d,$s};return $f;};AK.ptr.prototype.int64=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;c=F.ReadVarint(a.Reader);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:$r=BV("import %q: read varint error: %v",new DM([new $String(a.path),e]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return d;}return;}var $f={$blk:AK.ptr.prototype.int64,$c:true,$r,a,b,c,d,e,$s};return $f;};AK.prototype.int64=function(){return this.$val.int64();};AK.ptr.prototype.uint64=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;c=F.ReadUvarint(a.Reader);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:$r=BV("import %q: read varint error: %v",new DM([new $String(a.path),e]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return d;}return;}var $f={$blk:AK.ptr.prototype.uint64,$c:true,$r,a,b,c,d,e,$s};return $f;};AK.prototype.uint64=function(){return this.$val.uint64();};AN=function(a,b,c,d){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:f=AP(a,b,c,false,d);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return[0,CU.nil,h];}$s=-1;return[0,(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]),$ifaceNil];}return;}var $f={$blk:AN,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};$pkg.IImportData=AN;AP=function(a,b,c,d,e){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a,b,c,d,e});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=[d];e=[e];f=[f];g=[g];h=DA.nil;f[0]=$ifaceNil;g[0]=new $Int64(-1,4294967295);if(true){$s=1;continue;}$s=2;continue;case 1:$deferred.push([(function(d,e,f,g){return function $b(){var{i,j,k,l,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:i=$recover();if(!($interfaceIsEqual(i,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:if(d[0]){$s=3;continue;}if((g[0].$high>0||(g[0].$high===0&&g[0].$low>1))){$s=4;continue;}$s=5;continue;case 3:j=G.Errorf("%v",new DM([i]));$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}f[0]=j;$s=6;continue;case 4:k=G.Errorf("cannot import %q (%v), export data is newer version - update tool",new DM([new $String(e[0]),i]));$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}f[0]=k;$s=6;continue;case 5:l=G.Errorf("cannot import %q (%v), possibly version skew - reinstall package",new DM([new $String(e[0]),i]));$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}f[0]=l;case 6:case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,i,j,k,l,$s};return $f;};})(d,e,f,g),[]]);case 2:i=new AK.ptr(E.NewReader(c),e[0]);if(d[0]){$s=3;continue;}$s=4;continue;case 3:j=i.uint64();$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=k;if((m=k,(l.$high===m.$high&&l.$low===m.$low))){$s=7;continue;}$s=8;continue;case 7:$s=9;continue;case 8:$r=BV("unknown bundle format version %d",new DM([k]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:case 6:case 4:o=i.uint64();$s=11;case 11:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}g[0]=((n=o,new $Int64(n.$high,n.$low)));p=g[0];if((q=new $Int64(0,2),(p.$high===q.$high&&p.$low===q.$low))||(r=new $Int64(0,1),(p.$high===r.$high&&p.$low===r.$low))||(s=new $Int64(0,0),(p.$high===s.$high&&p.$low===s.$low))){$s=13;continue;}if((g[0].$high>0||(g[0].$high===0&&g[0].$low>2))){$s=14;continue;}$s=15;continue;case 13:$s=16;continue;case 14:$r=BV("unstable iexport format version %d, just rebuild compiler and std library",new DM([g[0]]));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 15:$r=BV("unknown iexport format version %d",new DM([g[0]]));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 16:case 12:u=i.uint64();$s=19;case 19:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=((t=u,new $Int64(t.$high,t.$low)));x=i.uint64();$s=20;case 20:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=((w=x,new $Int64(w.$high,w.$low)));z=i.Reader.Seek(new $Int64(0,0),1);aa=z[0];ab=$subslice(c,$flatten64(aa),$flatten64(new $Int64(aa.$high+v.$high,aa.$low+v.$low)));ad=$subslice(c,$flatten64(new $Int64(aa.$high+v.$high,aa.$low+v.$low)),$flatten64((ac=new $Int64(aa.$high+v.$high,aa.$low+v.$low),new $Int64(ac.$high+y.$high,ac.$low+y.$low))));i.Reader.Seek(new $Int64(v.$high+y.$high,v.$low+y.$low),1);ae=new AR.ptr((((g[0].$low+((g[0].$high>>31)*4294967296))>>0)),e[0],ab,new $global.Map(),new $global.Map(),ad,new $global.Map(),new $global.Map(),new $global.Map(),new BY.ptr(a,new $global.Map()),DW.nil,DX.nil,0);$deferred.push([$methodVal(ae.fake,"setLines"),[]]);ag=CH();$s=21;case 21:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;ah=0;case 22:if(!(ah=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ah]);ak=(new $Uint64(0,ai));(ae.typCache||$throwRuntimeError("assignment to entry in nil map")).set($Uint64.keyFor(ak),{k:ak,v:aj});ah++;$s=22;continue;case 23:al=i.uint64();$s=24;case 24:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=$makeSlice(DA,$flatten64(al));an=am;ao=0;case 25:if(!(ao0||(bf.$high===0&&bf.$low>0)))){$s=39;continue;}bg=i.uint64();$s=40;case 40:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=ae.stringAt(bg);$s=41;case 41:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bi=bh;bk=i.uint64();$s=42;case 42:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}bj=bi;(bd||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(bj),{k:bj,v:bk});bf=(bl=new $Uint64(0,1),new $Uint64(bf.$high-bl.$high,bf.$low-bl.$low));$s=38;continue;case 39:bm=az;(ae.pkgIndex||$throwRuntimeError("assignment to entry in nil map")).set(CU.keyFor(bm),{k:bm,v:bd});((ap<0||ap>=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+ap]=az);ao++;$s=25;continue;case 26:if(d[0]){$s=43;continue;}$s=44;continue;case 43:bn=i.uint64();$s=46;case 46:if($c){$c=false;bn=bn.$blk();}if(bn&&bn.$blk!==undefined){break s;}h=$makeSlice(DA,$flatten64(bn));bo=h;bp=0;case 47:if(!(bp=bv.$length)?($throwRuntimeError("index out of range"),undefined):bv.$array[bv.$offset+by]=ca);bx++;$s=52;continue;case 53:bt.SetImports(bv);((bq<0||bq>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+bq]=bt);bp++;$s=47;continue;case 48:$s=45;continue;case 44:if(am.$length===0){$s=56;continue;}$s=57;continue;case 56:$r=BV("no packages found for %s",new DM([new $String(e[0])]));$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$panic(new $String("unreachable"));case 57:h=$subslice(am,0,1);cb=$appendSlice((DA.nil),$subslice(am,1));$r=K.Sort(($convertSliceType(cb,BQ)));$s=59;case 59:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]).SetImports(cb);case 45:cc=h;cd=0;case 60:if(!(cd=cc.$length)?($throwRuntimeError("index out of range"),undefined):cc.$array[cc.$offset+cd]);if(ce.Complete()){cd++;$s=60;continue;}ch=$makeSlice(CZ,0,((cf=$mapIndex(ae.pkgIndex,CU.keyFor(ce)),cf!==undefined?cf.v:false)?(cg=$mapIndex(ae.pkgIndex,CU.keyFor(ce)),cg!==undefined?cg.v:false).size:0));ci=(cj=$mapIndex(ae.pkgIndex,CU.keyFor(ce)),cj!==undefined?cj.v:false);ck=0;cl=ci?ci.keys():undefined;cm=ci?ci.size:0;while(true){if(!(ck=cq.$length)?($throwRuntimeError("index out of range"),undefined):cq.$array[cq.$offset+cr]);$r=ae.doDecl(ce,cs);$s=65;case 65:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cr++;$s=63;continue;case 64:ce.MarkComplete();cd++;$s=60;continue;case 61:ct=ae.later;cu=0;case 66:if(!(cu=ct.$length)?($throwRuntimeError("index out of range"),undefined):ct.$array[ct.$offset+cu]),AQ);$r=L.SetTypeParamConstraint(cv.t,cv.constraint);$s=68;case 68:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cu++;$s=66;continue;case 67:cw=ae.interfaceList;cx=0;case 69:if(!(cx=cw.$length)?($throwRuntimeError("index out of range"),undefined):cw.$array[cw.$offset+cx]);cz=cy.Complete();$s=71;case 71:if($c){$c=false;cz=cz.$blk();}if(cz&&cz.$blk!==undefined){break s;}cz;cx++;$s=69;continue;case 70:da=h;db=$ifaceNil;h=da;f[0]=db;dc=[h,f[0]];$s=72;case 72:return dc;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[h,f[0]];}if($curGoroutine.asleep){var $f={$blk:AP,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};AR.ptr.prototype.trace=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(true){$s=-1;return;}d=G.Printf(C.Repeat("..",c.indent)+a+"\n",b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;$s=-1;return;}return;}var $f={$blk:AR.ptr.prototype.trace,$c:true,$r,a,b,c,d,$s};return $f;};AR.prototype.trace=function(a,b){return this.$val.trace(a,b);};AR.ptr.prototype.doDecl=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,$s,$deferred,$r,$c}=$restore(this,{a,b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];c[0]=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=c[0].trace("import decl %s",new DM([new $String(b[0])]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c[0].indent=c[0].indent+(1)>>0;$deferred.push([(function(b,c){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c[0].indent=c[0].indent-(1)>>0;$r=c[0].trace("=> %s",new DM([new $String(b[0])]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c),[]]);case 2:d=a.Scope().Lookup(b[0]);$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(!($interfaceIsEqual(e,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:$s=7;case 7:return;case 6:f=(g=$mapIndex((h=$mapIndex(c[0].pkgIndex,CU.keyFor(a)),h!==undefined?h.v:false),$String.keyFor(b[0])),g!==undefined?[g.v,true]:[new $Uint64(0,0),false]);i=f[0];j=f[1];if(!j){$s=8;continue;}$s=9;continue;case 8:$r=BV("%v.%v not in index",new DM([a,new $String(b[0])]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:k=new AT.ptr(c[0],new E.Reader.ptr(DU.nil,new $Int64(0,0),0),a,"",new $Int64(0,0),new $Int64(0,0));k.declReader.Reset($subslice(c[0].declData,$flatten64(i)));$r=k.obj(b[0]);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:AR.ptr.prototype.doDecl,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s,$deferred};return $f;}}};AR.prototype.doDecl=function(a,b){return this.$val.doDecl(a,b);};AR.ptr.prototype.stringAt=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=(d=$mapIndex(b.stringCache,$Uint64.keyFor(a)),d!==undefined?[d.v,true]:["",false]);e=c[0];f=c[1];if(f){$s=-1;return e;}g=F.Uvarint($subslice(b.stringData,$flatten64(a)));h=g[0];i=g[1];if(i<=0){$s=1;continue;}$s=2;continue;case 1:$r=BV("varint failed",new DM([]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:k=(j=(new $Uint64(0,i)),new $Uint64(a.$high+j.$high,a.$low+j.$low));l=($bytesToString($subslice(b.stringData,$flatten64(k),$flatten64(new $Uint64(k.$high+h.$high,k.$low+h.$low)))));m=a;(b.stringCache||$throwRuntimeError("assignment to entry in nil map")).set($Uint64.keyFor(m),{k:m,v:l});$s=-1;return l;}return;}var $f={$blk:AR.ptr.prototype.stringAt,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};AR.prototype.stringAt=function(a){return this.$val.stringAt(a);};AR.ptr.prototype.pkgAt=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=(d=$mapIndex(b.pkgCache,$Uint64.keyFor(a)),d!==undefined?[d.v,true]:[CU.nil,false]);e=c[0];f=c[1];if(f){$s=-1;return e;}g=b.stringAt(a);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$r=BV("missing package %q in %q",new DM([new $String(h),new $String(b.ipath)]));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return CU.nil;}return;}var $f={$blk:AR.ptr.prototype.pkgAt,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};AR.prototype.pkgAt=function(a){return this.$val.pkgAt(a);};AR.ptr.prototype.typAt=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=(e=$mapIndex(c.typCache,$Uint64.keyFor(a)),e!==undefined?[e.v,true]:[$ifaceNil,false]);f=d[0];g=d[1];if(g&&AS(b,f)){$s=-1;return f;}if((a.$high<0||(a.$high===0&&a.$low<32))){$s=1;continue;}$s=2;continue;case 1:$r=BV("predeclared type missing from cache: %v",new DM([a]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:h=new AT.ptr(c,new E.Reader.ptr(DU.nil,new $Int64(0,0),0),CU.nil,"",new $Int64(0,0),new $Int64(0,0));h.declReader.Reset($subslice(c.declData,$flatten64(new $Uint64(a.$high-0,a.$low-32))));i=h.doType(b);$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(AS(b,j)){k=a;(c.typCache||$throwRuntimeError("assignment to entry in nil map")).set($Uint64.keyFor(k),{k:k,v:j});}$s=-1;return j;}return;}var $f={$blk:AR.ptr.prototype.typAt,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};AR.prototype.typAt=function(a,b){return this.$val.typAt(a,b);};AS=function(a,b){var a,b,c,d;if(a===DZ.nil){return true;}c=$assertType(b,DV,true);d=c[0];if(d===DV.nil){return true;}return(d.NumEmbeddeds()===0)&&(d.NumExplicitMethods()===0);};AT.ptr.prototype.obj=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.byte$();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=b.pos();$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=d;if(g===(65)){$s=4;continue;}if(g===(67)){$s=5;continue;}if((g===(70))||(g===(71))){$s=6;continue;}if((g===(84))||(g===(85))){$s=7;continue;}if(g===(80)){$s=8;continue;}if(g===(86)){$s=9;continue;}$s=10;continue;case 4:h=b.typ();$s=12;case 12:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$r=b.declare(B.NewTypeName(f,b.currPkg,a,i));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 5:k=b.value();$s=14;case 14:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];$r=b.declare(B.NewConst(f,b.currPkg,a,l,m));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 6:n=DL.nil;if(d===71){$s=16;continue;}$s=17;continue;case 16:o=b.tparamList();$s=18;case 18:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;case 17:p=b.signature(DJ.nil,DL.nil,n);$s=19;case 19:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$r=b.declare(B.NewFunc(f,b.currPkg,a,q));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 7:r=B.NewTypeName(f,b.currPkg,a,$ifaceNil);s=B.NewNamed(r,$ifaceNil,DR.nil);$r=b.declare(r);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(d===85){$s=22;continue;}$s=23;continue;case 22:t=b.tparamList();$s=24;case 24:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;$r=L.SetForNamed(s,u);$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 23:v=b.uint64();$s=26;case 26:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=b.p.typAt(v,s);$s=27;case 27:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w.Underlying();$s=28;case 28:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;$r=s.SetUnderlying(y);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!AV(y)){$s=30;continue;}$s=31;continue;case 30:z=b.uint64();$s=32;case 32:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;case 33:if(!((aa.$high>0||(aa.$high===0&&aa.$low>0)))){$s=34;continue;}ab=b.pos();$s=35;case 35:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;ad=b.ident();$s=36;case 36:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;af=b.param();$s=37;case 37:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;ah=AW(ag.object.Type());BG(!(ah===DZ.nil));ai=L.NamedTypeArgs(ah);aj=DL.nil;if(ai.Len()>0){aj=$makeSlice(DL,ai.Len());ak=aj;al=0;while(true){if(!(al=aj.$length)?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+am]=$assertType(ai.At(am),DK));al++;}}an=b.signature(ag,aj,DL.nil);$s=38;case 38:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}ao=an;$r=s.AddMethod(B.NewFunc(ac,b.currPkg,ae,ao));$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aa=(ap=new $Uint64(0,1),new $Uint64(aa.$high-ap.$high,aa.$low-ap.$low));$s=33;continue;case 34:case 31:$s=11;continue;case 8:if(b.p.version<2){$s=40;continue;}$s=41;continue;case 40:$r=BV("unexpected type param type",new DM([]));$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 41:aq=BD(a);$s=43;case 43:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;as=B.NewTypeName(f,b.currPkg,ar,$ifaceNil);at=L.NewTypeParam(as,$ifaceNil);$s=44;case 44:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=at;av=new AL.ptr(b.currPkg,a);aw=$clone(av,AL);(b.p.tparamIndex||$throwRuntimeError("assignment to entry in nil map")).set(AL.keyFor(aw),{k:aw,v:au});ax=false;if(b.p.version>=2){$s=45;continue;}$s=46;continue;case 45:ay=b.bool();$s=47;case 47:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}ax=ay;case 46:az=b.typ();$s=48;case 48:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;if(ax){$s=49;continue;}$s=50;continue;case 49:bb=$assertType(ba,DV,true);bc=bb[0];if(bc===DV.nil){$s=51;continue;}$s=52;continue;case 51:$r=BV("non-interface constraint marked implicit",new DM([]));$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 52:L.MarkImplicit(bc);case 50:b.p.later=$append(b.p.later,new AQ.ptr(au,ba));$s=11;continue;case 9:bd=b.typ();$s=54;case 54:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=bd;$r=b.declare(B.NewVar(f,b.currPkg,a,be));$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 10:$r=BV("unexpected tag: %v",new DM([new $Uint8(d)]));$s=56;case 56:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:case 3:$s=-1;return;}return;}var $f={$blk:AT.ptr.prototype.obj,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};AT.prototype.obj=function(a){return this.$val.obj(a);};AT.ptr.prototype.declare=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Pkg();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.Scope();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.Insert(a);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;$s=-1;return;}return;}var $f={$blk:AT.ptr.prototype.declare,$c:true,$r,a,b,c,d,e,$s};return $f;};AT.prototype.declare=function(a){return this.$val.declare(a);};AT.ptr.prototype.value=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=$ifaceNil;c=$ifaceNil;d=this;e=d.typ();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}b=e;if(d.p.version>=2){$s=2;continue;}$s=3;continue;case 2:g=d.int64();$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$unused((((f=g,f.$low+((f.$high>>31)*4294967296))>>0)));case 3:h=b.Underlying();$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=$assertType(h,EA);j=i.Info()&59;if(j===(1)){$s=7;continue;}if(j===(32)){$s=8;continue;}if(j===(2)){$s=9;continue;}if(j===(8)){$s=10;continue;}if(j===(16)){$s=11;continue;}$s=12;continue;case 7:k=d.bool();$s=14;case 14:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=H.MakeBool(k);$s=15;case 15:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}c=l;$s=13;continue;case 8:m=d.string();$s=16;case 16:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=H.MakeString(m);$s=17;case 17:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}c=n;$s=13;continue;case 9:a[0]=new J.Int.ptr(false,J.nat.nil);$r=d.mpint(a[0],i);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}o=H.Make(a[0]);$s=19;case 19:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}c=o;$s=13;continue;case 10:p=d.mpfloat(i);$s=20;case 20:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}c=p;$s=13;continue;case 11:q=d.mpfloat(i);$s=21;case 21:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;s=d.mpfloat(i);$s=22;case 22:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;u=r;v=H.MakeImag(t);$s=23;case 23:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v;x=H.BinaryOp(u,12,w);$s=24;case 24:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}c=x;$s=13;continue;case 12:if(i.Kind()===0){c=H.MakeUnknown();$s=-1;return[b,c];}$r=BV("unexpected type %v",new DM([b]));$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$panic(new $String("unreachable"));case 13:case 5:$s=-1;return[b,c];}return;}var $f={$blk:AT.ptr.prototype.value,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s};return $f;};AT.prototype.value=function(){return this.$val.value();};AU=function(a){var a,b,c,d,e,f,g,h,i,j,k;b=false;c=0;if(!((((a.Info()&64))===0))){d=true;e=64;b=d;c=e;return[b,c];}f=a.Kind();if((f===(13))||(f===(15))){g=true;h=3;b=g;c=h;return[b,c];}else if((f===(14))||(f===(16))){i=true;j=7;b=i;c=j;return[b,c];}b=((a.Info()&4))===0;k=a.Kind();if((k===(3))||(k===(8))){c=1;}else if((k===(4))||(k===(9))){c=2;}else if((k===(5))||(k===(10))){c=4;}else{c=8;}return[b,c];};AT.ptr.prototype.mpint=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=AU(b);e=d[0];f=d[1];g=256-f>>>0;if(e){g=256-(2*f>>>0)>>>0;}if(f===1){g=256;}h=c.declReader.ReadByte();i=h[0];if(((i>>>0))>>0)===0))){j=new $Int64(~j.$high,~j.$low>>>0);}}a.SetInt64(j);$s=-1;return;}k=-i<<24>>>24;if(e){k=(-(((i&~1)<<24>>>24))<<24>>>24)>>>1<<24>>>24;}if(k<1||((k>>>0))>f){$s=1;continue;}$s=2;continue;case 1:$r=BV("weird decoding: %v, %v => %v",new DM([new $Uint8(i),new $Bool(e),new $Uint8(k)]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:l=$makeSlice(DU,k);m=I.ReadFull(c.declReader,l);$s=4;case 4:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;a.SetBytes(l);if(e&&!((((i&1)>>>0)===0))){a.Neg(a);}$s=-1;return;}return;}var $f={$blk:AT.ptr.prototype.mpint,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};AT.prototype.mpint=function(a,b){return this.$val.mpint(a,b);};AT.ptr.prototype.mpfloat=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=this;c[0]=new J.Int.ptr(false,J.nat.nil);$r=d.mpint(c[0],a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b[0]=new J.Float.ptr(0,0,0,0,false,J.nat.nil,0);e=b[0].SetInt(c[0]);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;f=b[0].Sign();$s=5;case 5:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(!((f===0))){$s=3;continue;}$s=4;continue;case 3:g=b[0];i=d.int64();$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=(((h=i,h.$low+((h.$high>>31)*4294967296))>>0));k=b[0].SetMantExp(g,j);$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;case 4:l=H.Make(b[0]);$s=8;case 8:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=9;case 9:return m;}return;}var $f={$blk:AT.ptr.prototype.mpfloat,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};AT.prototype.mpfloat=function(a){return this.$val.mpfloat(a);};AT.ptr.prototype.ident=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.string();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:AT.ptr.prototype.ident,$c:true,$r,a,b,c,$s};return $f;};AT.prototype.ident=function(){return this.$val.ident();};AT.ptr.prototype.qualifiedIdent=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.string();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=a.pkg();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=-1;return[e,c];}return;}var $f={$blk:AT.ptr.prototype.qualifiedIdent,$c:true,$r,a,b,c,d,e,$s};return $f;};AT.prototype.qualifiedIdent=function(){return this.$val.qualifiedIdent();};AT.ptr.prototype.pos=function(){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.p.version>=1){$s=1;continue;}$s=2;continue;case 1:$r=a.posv1();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=3;continue;case 2:$r=a.posv0();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:if(a.prevFile===""&&(b=a.prevLine,(b.$high===0&&b.$low===0))&&(c=a.prevColumn,(c.$high===0&&c.$low===0))){$s=-1;return 0;}f=a.p.fake.pos(a.prevFile,(((d=a.prevLine,d.$low+((d.$high>>31)*4294967296))>>0)),(((e=a.prevColumn,e.$low+((e.$high>>31)*4294967296))>>0)));$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=7;case 7:return g;}return;}var $f={$blk:AT.ptr.prototype.pos,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};AT.prototype.pos=function(){return this.$val.pos();};AT.ptr.prototype.posv0=function(){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.int64();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if(!((c.$high===-1&&c.$low===4294967232))){$s=2;continue;}$s=3;continue;case 2:a.prevLine=(d=a.prevLine,e=c,new $Int64(d.$high+e.$high,d.$low+e.$low));$s=4;continue;case 3:f=a.int64();$s=5;case 5:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if((g.$high===-1&&g.$low===4294967295)){$s=6;continue;}$s=7;continue;case 6:a.prevLine=(h=a.prevLine,i=new $Int64(-1,4294967232),new $Int64(h.$high+i.$high,h.$low+i.$low));$s=8;continue;case 7:j=a.string();$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}a.prevFile=j;a.prevLine=g;case 8:case 4:$s=-1;return;}return;}var $f={$blk:AT.ptr.prototype.posv0,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};AT.prototype.posv0=function(){return this.$val.posv0();};AT.ptr.prototype.posv1=function(){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.int64();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;a.prevColumn=(d=a.prevColumn,e=$shiftRightInt64(c,1),new $Int64(d.$high+e.$high,d.$low+e.$low));if(!((f=new $Int64(c.$high&0,(c.$low&1)>>>0),(f.$high===0&&f.$low===0)))){$s=2;continue;}$s=3;continue;case 2:g=a.int64();$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}c=g;a.prevLine=(h=a.prevLine,i=$shiftRightInt64(c,1),new $Int64(h.$high+i.$high,h.$low+i.$low));if(!((j=new $Int64(c.$high&0,(c.$low&1)>>>0),(j.$high===0&&j.$low===0)))){$s=5;continue;}$s=6;continue;case 5:k=a.string();$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}a.prevFile=k;case 6:case 3:$s=-1;return;}return;}var $f={$blk:AT.ptr.prototype.posv1,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};AT.prototype.posv1=function(){return this.$val.posv1();};AT.ptr.prototype.typ=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.uint64();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=a.p.typAt(b,DZ.nil);$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=3;case 3:return d;}return;}var $f={$blk:AT.ptr.prototype.typ,$c:true,$r,a,b,c,d,$s};return $f;};AT.prototype.typ=function(){return this.$val.typ();};AV=function(a){var a,b,c;b=$assertType(a,DV,true);c=b[1];return c;};AT.ptr.prototype.pkg=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.uint64();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=a.p.pkgAt(b);$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=3;case 3:return d;}return;}var $f={$blk:AT.ptr.prototype.pkg,$c:true,$r,a,b,c,d,$s};return $f;};AT.prototype.pkg=function(){return this.$val.pkg();};AT.ptr.prototype.string=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.uint64();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=a.p.stringAt(b);$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=3;case 3:return d;}return;}var $f={$blk:AT.ptr.prototype.string,$c:true,$r,a,b,c,d,$s};return $f;};AT.prototype.string=function(){return this.$val.string();};AT.ptr.prototype.doType=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];c[0]=$ifaceNil;b[0]=this;d=b[0].kind();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(false){$s=2;continue;}$s=3;continue;case 2:$r=b[0].p.trace("importing type %d (base: %s)",new DM([e,a]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b[0].p.indent=b[0].p.indent+(1)>>0;$deferred.push([(function(b,c){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b[0].p.indent=b[0].p.indent-(1)>>0;$r=b[0].p.trace("=> %s",new DM([c[0]]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c),[]]);case 3:f=e;if((g=new AM(0,0),(f.$high===g.$high&&f.$low===g.$low))){$s=6;continue;}if((h=new AM(0,1),(f.$high===h.$high&&f.$low===h.$low))){$s=7;continue;}if((i=new AM(0,2),(f.$high===i.$high&&f.$low===i.$low))){$s=8;continue;}if((j=new AM(0,3),(f.$high===j.$high&&f.$low===j.$low))){$s=9;continue;}if((k=new AM(0,4),(f.$high===k.$high&&f.$low===k.$low))){$s=10;continue;}if((l=new AM(0,5),(f.$high===l.$high&&f.$low===l.$low))){$s=11;continue;}if((m=new AM(0,6),(f.$high===m.$high&&f.$low===m.$low))){$s=12;continue;}if((n=new AM(0,7),(f.$high===n.$high&&f.$low===n.$low))){$s=13;continue;}if((o=new AM(0,8),(f.$high===o.$high&&f.$low===o.$low))){$s=14;continue;}if((p=new AM(0,9),(f.$high===p.$high&&f.$low===p.$low))){$s=15;continue;}if((q=new AM(0,10),(f.$high===q.$high&&f.$low===q.$low))){$s=16;continue;}if((r=new AM(0,11),(f.$high===r.$high&&f.$low===r.$low))){$s=17;continue;}$s=18;continue;case 6:t=b[0].qualifiedIdent();$s=20;case 20:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;u=s[0];v=s[1];$r=b[0].p.doDecl(u,v);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}w=u.Scope().Lookup(v);$s=22;case 22:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=$assertType(w,DI).object.Type();$s=23;case 23:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}c[0]=x;y=c[0];$s=24;case 24:return y;case 7:z=b[0].typ();$s=25;case 25:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=B.NewPointer(z);$s=26;case 26:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}c[0]=aa;ab=c[0];$s=27;case 27:return ab;case 8:ac=b[0].typ();$s=28;case 28:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=B.NewSlice(ac);$s=29;case 29:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}c[0]=ad;ae=c[0];$s=30;case 30:return ae;case 9:af=b[0].uint64();$s=31;case 31:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;ah=b[0].typ();$s=32;case 32:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=B.NewArray(ah,(new $Int64(ag.$high,ag.$low)));$s=33;case 33:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}c[0]=ai;aj=c[0];$s=34;case 34:return aj;case 10:ak=b[0].uint64();$s=35;case 35:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=CD(((ak.$low>>0)));$s=36;case 36:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al;an=am;ao=b[0].typ();$s=37;case 37:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=ao;aq=B.NewChan(an,ap);$s=38;case 38:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}c[0]=aq;ar=c[0];$s=39;case 39:return ar;case 11:as=b[0].typ();$s=40;case 40:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=as;au=b[0].typ();$s=41;case 41:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=au;aw=B.NewMap(at,av);$s=42;case 42:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}c[0]=aw;ax=c[0];$s=43;case 43:return ax;case 12:ay=b[0].pkg();$s=44;case 44:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}b[0].currPkg=ay;az=b[0].signature(DJ.nil,DL.nil,DL.nil);$s=45;case 45:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}c[0]=az;ba=c[0];$s=46;case 46:return ba;case 13:bb=b[0].pkg();$s=47;case 47:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}b[0].currPkg=bb;bc=b[0].uint64();$s=48;case 48:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=$makeSlice(DN,$flatten64(bc));be=$makeSlice(CZ,bd.$length);bf=bd;bg=0;case 49:if(!(bg=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bh]=B.NewField(bj,b[0].currPkg,bl,bn,bp));((bh<0||bh>=be.$length)?($throwRuntimeError("index out of range"),undefined):be.$array[be.$offset+bh]=br);bg++;$s=49;continue;case 50:bs=B.NewStruct(bd,be);$s=56;case 56:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}c[0]=bs;bt=c[0];$s=57;case 57:return bt;case 14:bu=b[0].pkg();$s=58;case 58:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}b[0].currPkg=bu;bv=b[0].uint64();$s=59;case 59:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}bw=$makeSlice(CT,$flatten64(bv));bx=bw;by=0;case 60:if(!(by=bw.$length)?($throwRuntimeError("index out of range"),undefined):bw.$array[bw.$offset+bz]=cb);by++;$s=60;continue;case 61:cc=b[0].uint64();$s=64;case 64:if($c){$c=false;cc=cc.$blk();}if(cc&&cc.$blk!==undefined){break s;}cd=$makeSlice(DR,$flatten64(cc));ce=cd;cf=0;case 65:if(!(cf=cd.$length)?($throwRuntimeError("index out of range"),undefined):cd.$array[cd.$offset+cg]=B.NewFunc(ci,b[0].currPkg,ck,cn));cf++;$s=65;continue;case 66:co=AJ(cd,bw);$s=70;case 70:if($c){$c=false;co=co.$blk();}if(co&&co.$blk!==undefined){break s;}cp=co;b[0].p.interfaceList=$append(b[0].p.interfaceList,cp);c[0]=cp;cq=c[0];$s=71;case 71:return cq;case 15:if(b[0].p.version<2){$s=72;continue;}$s=73;continue;case 72:$r=BV("unexpected type param type",new DM([]));$s=74;case 74:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 73:cs=b[0].qualifiedIdent();$s=75;case 75:if($c){$c=false;cs=cs.$blk();}if(cs&&cs.$blk!==undefined){break s;}cr=cs;ct=cr[0];cu=cr[1];cv=new AL.ptr(ct,cu);cw=(cx=$mapIndex(b[0].p.tparamIndex,AL.keyFor(cv)),cx!==undefined?[cx.v,true]:[$ifaceNil,false]);cy=cw[0];cz=cw[1];if(cz){$s=76;continue;}$s=77;continue;case 76:c[0]=cy;da=c[0];$s=78;case 78:return da;case 77:$r=b[0].p.doDecl(ct,cu);$s=79;case 79:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c[0]=(db=$mapIndex(b[0].p.tparamIndex,AL.keyFor(cv)),db!==undefined?db.v:$ifaceNil);dc=c[0];$s=80;case 80:return dc;case 16:if(b[0].p.version<2){$s=81;continue;}$s=82;continue;case 81:$r=BV("unexpected instantiation type",new DM([]));$s=83;case 83:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 82:dd=b[0].pos();$s=84;case 84:if($c){$c=false;dd=dd.$blk();}if(dd&&dd.$blk!==undefined){break s;}$unused(dd);de=b[0].uint64();$s=85;case 85:if($c){$c=false;de=de.$blk();}if(de&&de.$blk!==undefined){break s;}df=de;dg=$makeSlice(CT,$flatten64(df));dh=dg;di=0;case 86:if(!(di=dg.$length)?($throwRuntimeError("index out of range"),undefined):dg.$array[dg.$offset+dj]=dk);di++;$s=86;continue;case 87:dl=b[0].typ();$s=89;case 89:if($c){$c=false;dl=dl.$blk();}if(dl&&dl.$blk!==undefined){break s;}dm=dl;dp=L.Instantiate(CV.nil,dm,dg,false);$s=90;case 90:if($c){$c=false;dp=dp.$blk();}if(dp&&dp.$blk!==undefined){break s;}dn=dp;dq=dn[0];c[0]=dq;dr=c[0];$s=91;case 91:return dr;case 17:if(b[0].p.version<2){$s=92;continue;}$s=93;continue;case 92:$r=BV("unexpected instantiation type",new DM([]));$s=94;case 94:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 93:ds=b[0].uint64();$s=95;case 95:if($c){$c=false;ds=ds.$blk();}if(ds&&ds.$blk!==undefined){break s;}dt=$makeSlice(DP,$flatten64(ds));du=dt;dv=0;case 96:if(!(dv=dt.$length)?($throwRuntimeError("index out of range"),undefined):dt.$array[dt.$offset+dw]=eb);dv++;$s=96;continue;case 97:c[0]=L.NewUnion(dt);ec=c[0];$s=101;case 101:return ec;case 18:$r=BV("unexpected kind tag in %q: %v",new DM([new $String(b[0].p.ipath),e]));$s=102;case 102:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c[0]=$ifaceNil;ed=c[0];$s=103;case 103:return ed;case 19:case 5:$s=-1;return c[0];}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return c[0];}if($curGoroutine.asleep){var $f={$blk:AT.ptr.prototype.doType,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};AT.prototype.doType=function(a){return this.$val.doType(a);};AT.ptr.prototype.kind=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;c=a.uint64();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=((b=c,new AM(b.$high,b.$low)));$s=2;case 2:return d;}return;}var $f={$blk:AT.ptr.prototype.kind,$c:true,$r,a,b,c,d,$s};return $f;};AT.prototype.kind=function(){return this.$val.kind();};AT.ptr.prototype.signature=function(a,b,c){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.paramList();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=d.paramList();$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!(f.Len()>0)){i=false;$s=3;continue s;}j=d.bool();$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;case 3:k=i;$s=-1;return L.NewSignatureType(a,b,c,f,h,k);}return;}var $f={$blk:AT.ptr.prototype.signature,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};AT.prototype.signature=function(a,b,c){return this.$val.signature(a,b,c);};AT.ptr.prototype.tparamList=function(){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.uint64();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if((c.$high===0&&c.$low===0)){$s=-1;return DL.nil;}d=$makeSlice(DL,$flatten64(c));e=d;f=0;case 2:if(!(f=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]=$assertType(h,DK));f++;$s=2;continue;case 3:$s=-1;return d;}return;}var $f={$blk:AT.ptr.prototype.tparamList,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};AT.prototype.tparamList=function(){return this.$val.tparamList();};AT.ptr.prototype.paramList=function(){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.uint64();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=$makeSlice(DN,$flatten64(b));d=c;e=0;case 2:if(!(e=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=g);e++;$s=2;continue;case 3:$s=-1;return B.NewTuple(c);}return;}var $f={$blk:AT.ptr.prototype.paramList,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};AT.prototype.paramList=function(){return this.$val.paramList();};AT.ptr.prototype.param=function(){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.pos();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=a.ident();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=a.typ();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=-1;return B.NewParam(c,a.currPkg,e,g);}return;}var $f={$blk:AT.ptr.prototype.param,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};AT.prototype.param=function(){return this.$val.param();};AT.ptr.prototype.bool=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;c=a.uint64();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=!((b=c,(b.$high===0&&b.$low===0)));$s=2;case 2:return d;}return;}var $f={$blk:AT.ptr.prototype.bool,$c:true,$r,a,b,c,d,$s};return $f;};AT.prototype.bool=function(){return this.$val.bool();};AT.ptr.prototype.int64=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;c=F.ReadVarint(a.declReader);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:$r=BV("readVarint: %v",new DM([e]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return d;}return;}var $f={$blk:AT.ptr.prototype.int64,$c:true,$r,a,b,c,d,e,$s};return $f;};AT.prototype.int64=function(){return this.$val.int64();};AT.ptr.prototype.uint64=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;c=F.ReadUvarint(a.declReader);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:$r=BV("readUvarint: %v",new DM([e]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return d;}return;}var $f={$blk:AT.ptr.prototype.uint64,$c:true,$r,a,b,c,d,e,$s};return $f;};AT.prototype.uint64=function(){return this.$val.uint64();};AT.ptr.prototype.byte$=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.declReader.ReadByte();c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:$r=BV("declReader.ReadByte: %v",new DM([d]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return c;}return;}var $f={$blk:AT.ptr.prototype.byte$,$c:true,$r,a,b,c,d,$s};return $f;};AT.prototype.byte$=function(){return this.$val.byte$();};AW=function(a){var a,b,c,d,e;b=$assertType(a,EB,true);c=b[0];if(!(c===EB.nil)){a=c.Elem();}d=$assertType(a,DZ,true);e=d[0];return e;};AX=function(a,b,c){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=AZ(a,b,false,2,new DA([c]));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:AX,$c:true,$r,a,b,c,d,e,$s};return $f;};$pkg.IExportData=AX;AZ=function(a,b,c,d,e){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a,b,c,d,e});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);f=[f];g=[g];f[0]=$ifaceNil;if(true){$s=1;continue;}$s=2;continue;case 1:$deferred.push([(function(f,g){return function(){var h,i,j,k;h=$recover();if(!($interfaceIsEqual(h,$ifaceNil))){i=$assertType(h,CK,true);j=i[0];k=i[1];if(k){f[0]=new CK(j);return;}$panic(h);}};})(f,g),[]]);case 2:h=new BA.ptr(b,EC.nil,d,CU.nil,$makeMap(CU.keyFor,[]),new BH.ptr(ED.nil,0,0),new BF.ptr(new E.Buffer.ptr(DU.nil,0,0)),$makeMap($String.keyFor,[]),new BF.ptr(new E.Buffer.ptr(DU.nil,0,0)),$makeMap(B.Object.keyFor,[]),$makeMap(B.Object.keyFor,[]),$makeMap(B.Type.keyFor,[]),0);if(!c){h.localpkg=(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]);}j=CH();$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=0;case 4:if(!(k=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+k]);n=m;(h.typIndex||$throwRuntimeError("assignment to entry in nil map")).set(B.Type.keyFor(n),{k:n,v:(new $Uint64(0,l))});k++;$s=4;continue;case 5:if((h.typIndex?h.typIndex.size:0)>32){$s=6;continue;}$s=7;continue;case 6:o=CL("too many predeclared types: %d > %d",new DM([new $Int((h.typIndex?h.typIndex.size:0)),new $Int(32)]));$s=8;case 8:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}$panic(o);case 7:p=e;q=0;case 9:if(!(q=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);s=r.Scope();u=s.Names();$s=11;case 11:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;v=0;case 12:if(!(v=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+v]);if(M.IsExported(w)){$s=14;continue;}$s=15;continue;case 14:x=s.Lookup(w);$s=16;case 16:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}$r=h.pushDecl(x);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 15:v++;$s=12;continue;case 13:if(c){y=r;(h.allPkgs||$throwRuntimeError("assignment to entry in nil map")).set(CU.keyFor(y),{k:y,v:true});z=r.Imports();aa=0;while(true){if(!(aa=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+aa]);ac=ab;(h.allPkgs||$throwRuntimeError("assignment to entry in nil map")).set(CU.keyFor(ac),{k:ac,v:true});aa++;}}q++;$s=9;continue;case 10:case 18:if(!(!h.declTodo.empty())){$s=19;continue;}$r=h.doDecl(h.declTodo.popHead());$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 19:ad=(new $Uint64(0,h.data0.Buffer.Len()));ae=h.newWriter();$r=ae.writeIndex(h.declIndex);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c){$s=22;continue;}$s=23;continue;case 22:$r=ae.uint64((new $Uint64(0,e.$length)));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}af=e;ag=0;case 25:if(!(ag=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ag]);$r=ae.pkg(ah);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ai=ah.Imports();$r=ae.uint64((new $Uint64(0,ai.$length)));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aj=ai;ak=0;case 29:if(!(ak=aj.$length)?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+ak]);$r=ae.pkg(al);$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ak++;$s=29;continue;case 30:ag++;$s=25;continue;case 26:case 23:am=ae.flush();$s=32;case 32:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}am;g[0]=new BF.ptr(new E.Buffer.ptr(DU.nil,0,0));if(c){$s=33;continue;}$s=34;continue;case 33:$r=g[0].uint64(new $Uint64(0,0));$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 34:$r=g[0].uint64((new $Uint64(0,h.version)));$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=g[0].uint64((new $Uint64(0,h.strings.Buffer.Len())));$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=g[0].uint64(ad);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}an=I.Copy(a,g[0]);$s=39;case 39:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}an;ao=I.Copy(a,h.strings);$s=40;case 40:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ao;ap=I.Copy(a,h.data0);$s=41;case 41:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ap;f[0]=$ifaceNil;aq=f[0];$s=42;case 42:return aq;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return f[0];}if($curGoroutine.asleep){var $f={$blk:AZ,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};BB.ptr.prototype.writeIndex=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];d[0]=this;e=$makeMap(CU.keyFor,[]);if(!(d[0].p.localpkg===CU.nil)){f=d[0].p.localpkg;(e||$throwRuntimeError("assignment to entry in nil map")).set(CU.keyFor(f),{k:f,v:EF.nil});}g=d[0].p.allPkgs;h=0;i=g?g.keys():undefined;j=g?g.size:0;while(true){if(!(h=b[0].$length)?($throwRuntimeError("index out of range"),undefined):b[0].$array[b[0].$offset+ai]).name<((aj<0||aj>=b[0].$length)?($throwRuntimeError("index out of range"),undefined):b[0].$array[b[0].$offset+aj]).name;};})(b,c,d));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ac++;$s=6;continue;case 7:$r=K.Slice(c[0],(function(b,c,d){return function(ai,aj){var ai,aj;return d[0].exportPath(((ai<0||ai>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+ai]))=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+aj]));};})(b,c,d));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d[0].uint64((new $Uint64(0,c[0].$length)));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ai=c[0];aj=0;case 11:if(!(aj=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+aj]);$r=d[0].string(d[0].exportPath(ak));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d[0].string(ak.Name());$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d[0].uint64(new $Uint64(0,0));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}am=(al=$mapIndex(e,CU.keyFor(ak)),al!==undefined?al.v:EF.nil);$r=d[0].uint64((new $Uint64(0,am.$length)));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}an=am;ao=0;case 17:if(!(ao=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+ao]),EE);$r=d[0].string(ap.name);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d[0].uint64((aq=$mapIndex(a,B.Object.keyFor(ap.obj)),aq!==undefined?aq.v:new $Uint64(0,0)));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ao++;$s=17;continue;case 18:aj++;$s=11;continue;case 12:$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.writeIndex,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BB.prototype.writeIndex=function(a){return this.$val.writeIndex(a);};BA.ptr.prototype.exportName=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b="";c=this;e=(d=$mapIndex(c.tparamNames,B.Object.keyFor(a)),d!==undefined?d.v:"");if(!(e==="")){b=e;$s=-1;return b;}f=a.Name();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}b=f;g=b;$s=2;case 2:return g;}return;}var $f={$blk:BA.ptr.prototype.exportName,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};BA.prototype.exportName=function(a){return this.$val.exportName(a);};BA.ptr.prototype.trace=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(true){$s=-1;return;}d=G.Printf(C.Repeat("..",c.indent)+a+"\n",b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;$s=-1;return;}return;}var $f={$blk:BA.ptr.prototype.trace,$c:true,$r,a,b,c,d,$s};return $f;};BA.prototype.trace=function(a,b){return this.$val.trace(a,b);};BA.ptr.prototype.stringOff=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=(d=$mapIndex(b.stringIndex,$String.keyFor(a)),d!==undefined?[d.v,true]:[new $Uint64(0,0),false]);e=c[0];f=c[1];if(!f){$s=1;continue;}$s=2;continue;case 1:e=(new $Uint64(0,b.strings.Buffer.Len()));g=a;(b.stringIndex||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(g),{k:g,v:e});$r=b.strings.uint64((new $Uint64(0,a.length)));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=b.strings.Buffer.WriteString(a);$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;case 2:$s=-1;return e;}return;}var $f={$blk:BA.ptr.prototype.stringOff,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};BA.prototype.stringOff=function(a){return this.$val.stringOff(a);};BA.ptr.prototype.pushDecl=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Pkg();$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}if(c===B.Unsafe){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("cannot export package unsafe"));case 2:d=(e=$mapIndex(b.declIndex,B.Object.keyFor(a)),e!==undefined?[e.v,true]:[new $Uint64(0,0),false]);f=d[1];if(f){$s=-1;return;}g=a;(b.declIndex||$throwRuntimeError("assignment to entry in nil map")).set(B.Object.keyFor(g),{k:g,v:new $Uint64(4294967295,4294967295)});b.declTodo.pushTail(a);$s=-1;return;}return;}var $f={$blk:BA.ptr.prototype.pushDecl,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};BA.prototype.pushDecl=function(a){return this.$val.pushDecl(a);};BB.ptr.prototype.exportPath=function(a){var a,b;b=this;if(a===b.p.localpkg){return"";}return a.Path();};BB.prototype.exportPath=function(a){return this.$val.exportPath(a);};BA.ptr.prototype.doDecl=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=[a];b=[b];b[0]=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=b[0].trace("exporting decl %v (%T)",new DM([a[0],a[0]]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b[0].indent=b[0].indent+(1)>>0;$deferred.push([(function(a,b){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b[0].indent=b[0].indent-(1)>>0;$r=b[0].trace("=> %s",new DM([a[0]]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(a,b),[]]);case 2:c=b[0].newWriter();d=a[0].Pkg();$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$r=c.setPkg(d,false);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=a[0];if($assertType(e,DJ,true)[1]){$s=6;continue;}if($assertType(e,DQ,true)[1]){$s=7;continue;}if($assertType(e,EG,true)[1]){$s=8;continue;}if($assertType(e,DI,true)[1]){$s=9;continue;}$s=10;continue;case 6:f=e.$val;$r=c.tag(86);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.pos(f.object.Pos());$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.typ(f.object.Type(),f.object.Pkg());$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 7:g=e.$val;k=$assertType(g.object.Type(),EH,true);l=k[0];if(!(l.Recv()===DJ.nil)){$s=15;continue;}$s=16;continue;case 15:m=CL("unexpected method: %v",new DM([l]));$s=17;case 17:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}$panic(m);case 16:if(L.ForSignature(l).Len()===0){$s=18;continue;}$s=19;continue;case 18:$r=c.tag(70);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=20;continue;case 19:$r=c.tag(71);$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 20:$r=c.pos(g.object.Pos());$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n=L.ForSignature(l);if(n.Len()>0){$s=24;continue;}$s=25;continue;case 24:$r=c.tparamList(g.object.Name(),n,g.object.Pkg());$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 25:$r=c.signature(l);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 8:h=e.$val;$r=c.tag(67);$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.pos(h.object.Pos());$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.value(h.object.Type(),h.Val());$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 9:i=e.$val;o=i.object.Type();p=$assertType(o,DK,true);q=p[0];r=p[1];if(r){$s=31;continue;}$s=32;continue;case 31:$r=c.tag(80);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.pos(i.object.Pos());$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s=q.Constraint();if(b[0].version>=2){$s=35;continue;}$s=36;continue;case 35:t=false;u=$assertType(s,DV,true);v=u[0];if(!(v===DV.nil)){t=L.IsImplicit(v);}w=c.bool(t);$s=37;case 37:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}w;case 36:$r=c.typ(s,i.object.Pkg());$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 32:if(i.IsAlias()){$s=39;continue;}$s=40;continue;case 39:$r=c.tag(65);$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.pos(i.object.Pos());$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.typ(o,i.object.Pkg());$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 40:x=$assertType(o,DZ,true);y=x[0];z=x[1];if(!z){$s=44;continue;}$s=45;continue;case 44:aa=CL("%s is not a defined type",new DM([o]));$s=46;case 46:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}$panic(aa);case 45:ab=L.ForNamed(y);$s=50;case 50:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab.Len();$s=51;case 51:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}if(ac===0){$s=47;continue;}$s=48;continue;case 47:$r=c.tag(84);$s=52;case 52:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=49;continue;case 48:$r=c.tag(85);$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 49:$r=c.pos(i.object.Pos());$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ad=L.ForNamed(y);$s=57;case 57:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad.Len();$s=58;case 58:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}if(ae>0){$s=55;continue;}$s=56;continue;case 55:af=i.object.Name();ag=L.ForNamed(y);$s=59;case 59:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag;ai=i.object.Pkg();$r=c.tparamList(af,ah,ai);$s=60;case 60:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 56:aj=i.object.Type().Underlying();$s=61;case 61:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=aj;$r=c.typ(ak,i.object.Pkg());$s=62;case 62:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}al=B.IsInterface(o);$s=65;case 65:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}if(al){$s=63;continue;}$s=64;continue;case 63:$s=11;continue;case 64:am=y.NumMethods();$s=66;case 66:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am;$r=c.uint64((new $Uint64(0,an)));$s=67;case 67:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ao=0;case 68:if(!(ao0){au=i.object.Name()+"."+aq.object.Name();av=0;while(true){if(!(av>0;}}$r=c.param(as.Recv());$s=73;case 73:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c.signature(as);$s=74;case 74:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ao=ao+(1)>>0;$s=68;continue;case 69:$s=11;continue;case 10:j=e;az=CL("unexpected object: %v",new DM([j]));$s=75;case 75:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}$panic(az);case 11:bb=c.flush();$s=76;case 76:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}ba=a[0];(b[0].declIndex||$throwRuntimeError("assignment to entry in nil map")).set(B.Object.keyFor(ba),{k:ba,v:bb});$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:BA.ptr.prototype.doDecl,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};BA.prototype.doDecl=function(a){return this.$val.doDecl(a);};BB.ptr.prototype.tag=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.data.Buffer.WriteByte(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}c;$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.tag,$c:true,$r,a,b,c,$s};return $f;};BB.prototype.tag=function(a){return this.$val.tag(a);};BB.ptr.prototype.pos=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(b.p.version>=1){$s=1;continue;}$s=2;continue;case 1:$r=b.posV1(a);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=3;continue;case 2:$r=b.posV0(a);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.pos,$c:true,$r,a,b,$s};return $f;};BB.prototype.pos=function(a){return this.$val.pos(a);};BB.ptr.prototype.posV1=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(b.p.fset===CY.nil){$s=1;continue;}$s=2;continue;case 1:$r=b.int64(new $Int64(0,0));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 2:c=b.p.fset.Position(a);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=$clone(c,A.Position);e=d.Filename;f=(new $Int64(0,d.Line));g=(new $Int64(0,d.Column));i=$shiftLeft64(((h=b.prevColumn,new $Int64(g.$high-h.$high,g.$low-h.$low))),1);k=$shiftLeft64(((j=b.prevLine,new $Int64(f.$high-j.$high,f.$low-j.$low))),1);if(!(e===b.prevFile)){k=(l=new $Int64(0,1),new $Int64(k.$high|l.$high,(k.$low|l.$low)>>>0));}if(!((k.$high===0&&k.$low===0))){i=(m=new $Int64(0,1),new $Int64(i.$high|m.$high,(i.$low|m.$low)>>>0));}$r=b.int64(i);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((n=new $Int64(i.$high&0,(i.$low&1)>>>0),(n.$high===0&&n.$low===0)))){$s=6;continue;}$s=7;continue;case 6:$r=b.int64(k);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((o=new $Int64(k.$high&0,(k.$low&1)>>>0),(o.$high===0&&o.$low===0)))){$s=9;continue;}$s=10;continue;case 9:$r=b.string(e);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:case 7:b.prevFile=e;b.prevLine=f;b.prevColumn=g;$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.posV1,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};BB.prototype.posV1=function(a){return this.$val.posV1(a);};BB.ptr.prototype.posV0=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(b.p.fset===CY.nil){$s=1;continue;}$s=2;continue;case 1:$r=b.int64(new $Int64(0,0));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 2:c=b.p.fset.Position(a);$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=$clone(c,A.Position);e=d.Filename;f=(new $Int64(0,d.Line));if(e===b.prevFile){$s=5;continue;}$s=6;continue;case 5:h=(g=b.prevLine,new $Int64(f.$high-g.$high,f.$low-g.$low));$r=b.int64(h);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if((h.$high===-1&&h.$low===4294967232)){$s=9;continue;}$s=10;continue;case 9:$r=b.int64(new $Int64(-1,4294967295));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:$s=7;continue;case 6:$r=b.int64(new $Int64(-1,4294967232));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.int64(f);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.string(e);$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.prevFile=e;case 7:b.prevLine=f;$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.posV0,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};BB.prototype.posV0=function(a){return this.$val.posV0(a);};BB.ptr.prototype.pkg=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a;(b.p.allPkgs||$throwRuntimeError("assignment to entry in nil map")).set(CU.keyFor(c),{k:c,v:true});$r=b.string(b.exportPath(a));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.pkg,$c:true,$r,a,b,c,$s};return $f;};BB.prototype.pkg=function(a){return this.$val.pkg(a);};BB.ptr.prototype.qualifiedIdent=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.p.exportName(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$r=b.p.pushDecl(a);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.string(d);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=a.Pkg();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$r=b.pkg(e);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.qualifiedIdent,$c:true,$r,a,b,c,d,e,$s};return $f;};BB.prototype.qualifiedIdent=function(a){return this.$val.qualifiedIdent(a);};BB.ptr.prototype.typ=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.p.typOff(a,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$r=c.data.uint64(d);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.typ,$c:true,$r,a,b,c,d,$s};return $f;};BB.prototype.typ=function(a,b){return this.$val.typ(a,b);};BA.ptr.prototype.newWriter=function(){var a;a=this;return new BB.ptr(a,new BF.ptr(new E.Buffer.ptr(DU.nil,0,0)),CU.nil,"",new $Int64(0,0),new $Int64(0,0));};BA.prototype.newWriter=function(){return this.$val.newWriter();};BB.ptr.prototype.flush=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=(new $Uint64(0,a.p.data0.Buffer.Len()));c=I.Copy(a.p.data0,a.data);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}c;$s=-1;return b;}return;}var $f={$blk:BB.ptr.prototype.flush,$c:true,$r,a,b,c,$s};return $f;};BB.prototype.flush=function(){return this.$val.flush();};BA.ptr.prototype.typOff=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=(e=$mapIndex(c.typIndex,B.Type.keyFor(a)),e!==undefined?[e.v,true]:[new $Uint64(0,0),false]);f=d[0];g=d[1];if(!g){$s=1;continue;}$s=2;continue;case 1:h=c.newWriter();$r=h.doTyp(a,b);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=h.flush();$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}f=(i=j,new $Uint64(0+i.$high,32+i.$low));k=a;(c.typIndex||$throwRuntimeError("assignment to entry in nil map")).set(B.Type.keyFor(k),{k:k,v:f});case 2:$s=-1;return f;}return;}var $f={$blk:BA.ptr.prototype.typOff,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};BA.prototype.typOff=function(a,b){return this.$val.typOff(a,b);};BB.ptr.prototype.startType=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.data.uint64((new $Uint64(a.$high,a.$low)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.startType,$c:true,$r,a,b,$s};return $f;};BB.prototype.startType=function(a){return this.$val.startType(a);};BB.ptr.prototype.doTyp=function(a,b){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a,b});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);a=[a];c=[c];c[0]=this;if(false){$s=1;continue;}$s=2;continue;case 1:$r=c[0].p.trace("exporting type %s (%T)",new DM([a[0],a[0]]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c[0].p.indent=c[0].p.indent+(1)>>0;$deferred.push([(function(a,c){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:c[0].p.indent=c[0].p.indent-(1)>>0;$r=c[0].p.trace("=> %s",new DM([a[0]]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(a,c),[]]);case 2:d=a[0];if($assertType(d,DZ,true)[1]){$s=4;continue;}if($assertType(d,DK,true)[1]){$s=5;continue;}if($assertType(d,EB,true)[1]){$s=6;continue;}if($assertType(d,EJ,true)[1]){$s=7;continue;}if($assertType(d,EK,true)[1]){$s=8;continue;}if($assertType(d,EL,true)[1]){$s=9;continue;}if($assertType(d,EM,true)[1]){$s=10;continue;}if($assertType(d,EH,true)[1]){$s=11;continue;}if($assertType(d,EN,true)[1]){$s=12;continue;}if($assertType(d,DV,true)[1]){$s=13;continue;}if($assertType(d,EO,true)[1]){$s=14;continue;}$s=15;continue;case 4:e=d.$val;q=L.NamedTypeArgs(e);if(q.Len()>0){$s=17;continue;}$s=18;continue;case 17:$r=c[0].startType(new AM(0,10));$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].pos(e.Obj().object.Pos());$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].typeList(q,b);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].typ(L.NamedTypeOrigin(e),b);$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;case 23:return;case 18:$r=c[0].startType(new AM(0,0));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].qualifiedIdent(e.Obj());$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 5:f=d.$val;$r=c[0].startType(new AM(0,9));$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].qualifiedIdent(f.Obj());$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 6:g=d.$val;$r=c[0].startType(new AM(0,1));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].typ(g.Elem(),b);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 7:h=d.$val;$r=c[0].startType(new AM(0,2));$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].typ(h.Elem(),b);$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 8:i=d.$val;$r=c[0].startType(new AM(0,3));$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].uint64(((r=i.Len(),new $Uint64(r.$high,r.$low))));$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].typ(i.Elem(),b);$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 9:j=d.$val;$r=c[0].startType(new AM(0,4));$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s=new $Uint64(0,0);t=j.Dir();if(t===(2)){s=new $Uint64(0,1);}else if(t===(1)){s=new $Uint64(0,2);}else if(t===(0)){s=new $Uint64(0,3);}$r=c[0].uint64(s);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].typ(j.Elem(),b);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 10:k=d.$val;$r=c[0].startType(new AM(0,5));$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].typ(k.Key(),b);$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].typ(k.Elem(),b);$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 11:l=d.$val;$r=c[0].startType(new AM(0,6));$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].setPkg(b,true);$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].signature(l);$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 12:m=d.$val;$r=c[0].startType(new AM(0,7));$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].setPkg(b,true);$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}u=m.NumFields();$r=c[0].uint64((new $Uint64(0,u)));$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}v=0;case 47:if(!(v>0;$s=47;continue;case 48:$s=16;continue;case 13:n=d.$val;$r=c[0].startType(new AM(0,8));$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=c[0].setPkg(b,true);$s=55;case 55:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}y=n.NumEmbeddeds();$r=c[0].uint64((new $Uint64(0,y)));$s=56;case 56:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}z=0;case 57:if(!(z>0;$s=57;continue;case 58:y=n.NumExplicitMethods();$r=c[0].uint64((new $Uint64(0,y)));$s=65;case 65:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ae=0;case 66:if(!(ae>0;$s=66;continue;case 67:$s=16;continue;case 14:o=d.$val;$r=c[0].startType(new AM(0,11));$s=71;case 71:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ai=o.Len();$r=c[0].uint64((new $Uint64(0,ai)));$s=72;case 72:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aj=0;case 73:if(!(aj>0;$s=73;continue;case 74:$s=16;continue;case 15:p=d;am=CL("unexpected type: %v, %v",new DM([p,N.TypeOf(p)]));$s=77;case 77:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}$panic(am);case 16:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:BB.ptr.prototype.doTyp,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};BB.prototype.doTyp=function(a,b){return this.$val.doTyp(a,b);};BB.ptr.prototype.setPkg=function(a,b){var{a,b,c,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b){$s=1;continue;}$s=2;continue;case 1:$r=c.pkg(a);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:c.currPkg=a;$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.setPkg,$c:true,$r,a,b,c,$s};return $f;};BB.prototype.setPkg=function(a,b){return this.$val.setPkg(a,b);};BB.ptr.prototype.signature=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.paramList(a.Params());$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.paramList(a.Results());$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(a.Params().Len()>0){$s=3;continue;}$s=4;continue;case 3:c=b.bool(a.Variadic());$s=5;case 5:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}c;case 4:$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.signature,$c:true,$r,a,b,c,$s};return $f;};BB.prototype.signature=function(a){return this.$val.signature(a);};BB.ptr.prototype.typeList=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;$r=c.uint64((new $Uint64(0,a.Len())));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=0;case 2:if(!(d>0;$s=2;continue;case 3:$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.typeList,$c:true,$r,a,b,c,d,$s};return $f;};BB.prototype.typeList=function(a,b){return this.$val.typeList(a,b);};BB.ptr.prototype.tparamList=function(a,b,c){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=(new $Uint64(0,b.Len()));$r=d.uint64(e);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=0;case 2:if(!(f>0;$s=2;continue;case 3:$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.tparamList,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};BB.prototype.tparamList=function(a,b,c){return this.$val.tparamList(a,b,c);};BC=function(a,b){var a,b,c;BG(!(a===""));c=b.Obj().object.Name();if(c==="_"){c="$"+O.Itoa(b.Index());}return a+"."+c;};BD=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=C.LastIndex(a,".");if(b<0){$s=1;continue;}$s=2;continue;case 1:$r=BV("malformed type parameter export name %s: missing prefix",new DM([new $String(a)]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:c=$substring(a,(b+1>>0));if(C.HasPrefix(c,"$")){$s=-1;return"_";}$s=-1;return c;}return;}var $f={$blk:BD,$c:true,$r,a,b,c,$s};return $f;};BB.ptr.prototype.paramList=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Len();$r=b.uint64((new $Uint64(0,c)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=0;case 2:if(!(d>0;$s=2;continue;case 3:$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.paramList,$c:true,$r,a,b,c,d,$s};return $f;};BB.prototype.paramList=function(a){return this.$val.paramList(a);};BB.ptr.prototype.param=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Pos();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$r=b.pos(c);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.localIdent(a);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=a.Type();$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=a.Pkg();$s=5;case 5:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$r=b.typ(e,g);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.param,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};BB.prototype.param=function(a){return this.$val.param(a);};BB.ptr.prototype.value=function(a,b){var{a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;$r=d.typ(a,CU.nil);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(d.p.version>=2){$s=2;continue;}$s=3;continue;case 2:e=b.Kind();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$r=d.int64((new $Int64(0,e)));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:f=a.Underlying();$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=$assertType(f,EA);h=g.Info()&59;if(h===(1)){$s=8;continue;}if(h===(2)){$s=9;continue;}if(h===(8)){$s=10;continue;}if(h===(16)){$s=11;continue;}if(h===(32)){$s=12;continue;}$s=13;continue;case 8:i=H.BoolVal(b);$s=15;case 15:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=d.bool(i);$s=16;case 16:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;$s=14;continue;case 9:c[0]=new J.Int.ptr(false,J.nat.nil);l=H.Int64Val(b);$s=17;case 17:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];if(n){$s=18;continue;}$s=19;continue;case 18:c[0].SetInt64(m);$s=20;continue;case 19:p=H.Uint64Val(b);$s=21;case 21:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;q=o[0];r=o[1];if(r){$s=22;continue;}$s=23;continue;case 22:c[0].SetUint64(q);$s=24;continue;case 23:s=b.ExactString();$s=25;case 25:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=c[0].SetString(s,10);$s=26;case 26:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t;case 24:case 20:$r=d.mpint(c[0],a);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 10:u=BE(b);$s=28;case 28:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;$r=d.mpfloat(v,a);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 11:w=H.Real(b);$s=30;case 30:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=BE(w);$s=31;case 31:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}$r=d.mpfloat(x,a);$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}y=H.Imag(b);$s=33;case 33:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=BE(y);$s=34;case 34:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}$r=d.mpfloat(z,a);$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 12:aa=H.StringVal(b);$s=36;case 36:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}$r=d.string(aa);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 13:if(g.Kind()===0){$s=6;continue;}ab=a;ac=a.Underlying();$s=38;case 38:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;ae=CL("unexpected type %v (%v)",new DM([ab,ad]));$s=39;case 39:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}$panic(ae);case 14:case 6:$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.value,$c:true,$r,a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BB.prototype.value=function(a,b){return this.$val.value(a,b);};BE=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=H.ToFloat(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}a=c;b[0]=new J.Float.ptr(0,0,0,0,false,J.nat.nil,0);d=b[0].SetPrec(512);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;f=H.Float64Val(a);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if(h){$s=4;continue;}$s=5;continue;case 4:i=b[0].SetFloat64(g);$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$s=6;continue;case 5:k=H.Num(a);$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;m=H.Denom(a);$s=9;case 9:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;n=j;o=l;p=n.Kind();$s=13;case 13:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}if(p===3){$s=10;continue;}$s=11;continue;case 10:q=CQ(n);$s=14;case 14:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;s=CQ(o);$s=15;case 15:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;u=r.Quo(r,t);$s=16;case 16:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=b[0].SetRat(u);$s=17;case 17:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}v;$s=12;continue;case 11:x=a.ExactString();$s=18;case 18:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=b[0].SetString(x);$s=19;case 19:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}w=y;z=w[1];BG(z);case 12:case 6:$s=-1;return b[0];}return;}var $f={$blk:BE,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BB.ptr.prototype.mpint=function(a,b){var{a,aa,ab,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=b.Underlying();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=$assertType(e,EA,true);f=d[0];g=d[1];if(!g){$s=2;continue;}$s=3;continue;case 2:h=b.Underlying();$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=b.Underlying();$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=CL("unexpected type %v (%T)",new DM([i,k]));$s=6;case 6:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}$panic(l);case 3:m=AU(f);n=m[0];o=m[1];p=a.Sign()<0;if(!n&&p){$s=7;continue;}$s=8;continue;case 7:q=CL("negative unsigned integer; type %v, value %v",new DM([b,a]));$s=9;case 9:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}$panic(q);case 8:r=a.Bytes();if(r.$length>0&&((0>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+0])===0)){$s=10;continue;}$s=11;continue;case 10:s=CL("leading zeros",new DM([]));$s=12;case 12:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}$panic(s);case 11:if(((r.$length>>>0))>o){$s=13;continue;}$s=14;continue;case 13:t=CL("bad mpint length: %d > %d (type %v, value %v)",new DM([new $Int(r.$length),new $Uint(o),b,a]));$s=15;case 15:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}$panic(t);case 14:u=256-o>>>0;if(n){u=256-(2*o>>>0)>>>0;}if(o===1){u=256;}if(r.$length<=1){$s=16;continue;}$s=17;continue;case 16:v=0;if(r.$length===1){v=(((0>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+0])>>>0));}if(n){v=(w=(1),w<32?(v<>>0;if(p){v=v-(1)>>>0;}}if(v>>24)));$s=20;case 20:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}x;$s=-1;return;case 19:case 17:y=256-((r.$length>>>0))>>>0;if(n){y=256-(2*((r.$length>>>0))>>>0)>>>0;if(p){y=(y|(1))>>>0;}}if(y=256){$s=21;continue;}$s=22;continue;case 21:z=CL("encoding mistake: %d, %v, %v => %d",new DM([new $Int(r.$length),new $Bool(n),new $Bool(p),new $Uint(y)]));$s=23;case 23:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}$panic(z);case 22:aa=c.data.Buffer.WriteByte(((y<<24>>>24)));$s=24;case 24:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}aa;ab=c.data.Buffer.Write(r);$s=25;case 25:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ab;$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.mpint,$c:true,$r,a,aa,ab,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BB.prototype.mpint=function(a,b){return this.$val.mpint(a,b);};BB.ptr.prototype.mpfloat=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;if(a.IsInf()){$panic(new $String("infinite constant"));}c[0]=new J.Float.ptr(0,0,0,0,false,J.nat.nil,0);e=a.MantExp(c[0]);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=(new $Int64(0,e));g=c[0].MinPrec();h=c[0].SetMantExp(c[0],((g>>0)));$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;f=(i=(new $Int64(0,g)),new $Int64(f.$high-i.$high,f.$low-i.$low));k=c[0].Int(EP.nil);$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];if(!((m===0))){$s=4;continue;}$s=5;continue;case 4:n=CL("mantissa scaling failed for %f (%s)",new DM([a,new J.Accuracy(m)]));$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$panic(n);case 5:$r=d.mpint(l,b);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((l.Sign()===0))){$s=8;continue;}$s=9;continue;case 8:$r=d.int64(f);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.mpfloat,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};BB.prototype.mpfloat=function(a,b){return this.$val.mpfloat(a,b);};BB.ptr.prototype.bool=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=new $Uint64(0,0);if(a){c=new $Uint64(0,1);}$r=b.uint64(c);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return a;}return;}var $f={$blk:BB.ptr.prototype.bool,$c:true,$r,a,b,c,$s};return $f;};BB.prototype.bool=function(a){return this.$val.bool(a);};BB.ptr.prototype.int64=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.data.int64(a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.int64,$c:true,$r,a,b,$s};return $f;};BB.prototype.int64=function(a){return this.$val.int64(a);};BB.ptr.prototype.uint64=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.data.uint64(a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.uint64,$c:true,$r,a,b,$s};return $f;};BB.prototype.uint64=function(a){return this.$val.uint64(a);};BB.ptr.prototype.string=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.p.stringOff(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$r=b.uint64(c);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.string,$c:true,$r,a,b,c,$s};return $f;};BB.prototype.string=function(a){return this.$val.string(a);};BB.ptr.prototype.localIdent=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if($interfaceIsEqual(a,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:$r=b.string("");$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 2:c=a.Name();$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(d==="_"){$s=5;continue;}$s=6;continue;case 5:$r=b.string("_");$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 6:$r=b.string(d);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BB.ptr.prototype.localIdent,$c:true,$r,a,b,c,d,$s};return $f;};BB.prototype.localIdent=function(a){return this.$val.localIdent(a);};BF.ptr.prototype.int64=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=EQ.zero();d=F.PutVarint(new DU(c),a);e=b.Buffer.Write($subslice(new DU(c),0,d));$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;$s=-1;return;}return;}var $f={$blk:BF.ptr.prototype.int64,$c:true,$r,a,b,c,d,e,$s};return $f;};BF.prototype.int64=function(a){return this.$val.int64(a);};BF.ptr.prototype.uint64=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=EQ.zero();d=F.PutUvarint(new DU(c),a);e=b.Buffer.Write($subslice(new DU(c),0,d));$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;$s=-1;return;}return;}var $f={$blk:BF.ptr.prototype.uint64,$c:true,$r,a,b,c,d,e,$s};return $f;};BF.prototype.uint64=function(a){return this.$val.uint64(a);};BG=function(a){var a;if(!a){$panic(new $String("internal error: assertion failed"));}};BH.ptr.prototype.empty=function(){var a;a=this;return a.head===a.tail;};BH.prototype.empty=function(){return this.$val.empty();};BH.ptr.prototype.pushTail=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m;b=this;if(b.ring.$length===0){b.ring=$makeSlice(ED,16);}else if((b.head+b.ring.$length>>0)===b.tail){c=$makeSlice(ED,($imul(b.ring.$length,2)));e=$subslice(b.ring,(d=b.head%b.ring.$length,d===d?d:$throwRuntimeError("integer divide by zero")));if((b.tail-b.head>>0)<=e.$length){e=$subslice(e,0,(b.tail-b.head>>0));$copySlice(c,e);}else{f=$copySlice(c,e);$copySlice($subslice(c,f),$subslice(b.ring,0,(g=b.tail%b.ring.$length,g===g?g:$throwRuntimeError("integer divide by zero"))));}h=c;i=0;j=b.tail-b.head>>0;b.ring=h;b.head=i;b.tail=j;}(k=b.ring,l=(m=b.tail%b.ring.$length,m===m?m:$throwRuntimeError("integer divide by zero")),((l<0||l>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]=a));b.tail=b.tail+(1)>>0;};BH.prototype.pushTail=function(a){return this.$val.pushTail(a);};BH.ptr.prototype.popHead=function(){var a,b,c,d,e;a=this;if(a.empty()){$panic(new $String("dequeue empty"));}e=(b=a.ring,c=(d=a.head%a.ring.$length,d===d?d:$throwRuntimeError("integer divide by zero")),((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]));a.head=a.head+(1)>>0;return e;};BH.prototype.popHead=function(){return this.$val.popHead();};BK=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,$s,$deferred,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);e=[e];f=CU.nil;e[0]=$ifaceNil;$deferred.push([(function(e){return function(){var g,h,i,j;g=$recover();if(g===$ifaceNil){h=g;}else if($assertType(g,BO,true)[1]){i=$clone(g.$val,BO);e[0]=new i.constructor.elem(i);}else{j=g;$panic(j);}};})(e),[]]);g=new BM.ptr(new V.Scanner.ptr($ifaceNil,ER.zero(),0,0,0,0,0,0,0,new E.Buffer.ptr(DU.nil,0,0),0,0,0,$throwNilPointerError,0,0,new $Uint64(0,0),$throwNilPointerError,new V.Position.ptr("",0,0,0)),0,"","",false,false);$r=g.init(b,c,d,a);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=g.parseExport();$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}f=h;i=[f,e[0]];$s=3;case 3:return i;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[f,e[0]];}if($curGoroutine.asleep){var $f={$blk:BK,$c:true,$r,a,b,c,d,e,f,g,h,i,$s,$deferred};return $f;}}};$pkg.ImportData=BK;BM.ptr.prototype.init=function(a,b,c,d){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=[e];e[0]=this;e[0].scanner.Init(c);e[0].scanner.Error=(function(e){return function(f,g){var f,g;e[0].error(new $String(g));};})(e);e[0].scanner.Mode=876;e[0].scanner.Whitespace=new $Uint64(1,512);e[0].scanner.Position.Filename=a;$r=e[0].next();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e[0].id=b;e[0].sharedPkgs=d;if(false){$s=2;continue;}$s=3;continue;case 2:f=d;g=0;h=f?f.keys():undefined;i=f?f.size:0;case 4:if(!(g %q\n",new DM([f,h,i]));$s=11;case 11:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;case 8:$s=-1;return;}return;}var $f={$blk:BM.ptr.prototype.next,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};BM.prototype.next=function(){return this.$val.next();};BN=function(a,b){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=a.Scope();d=c.Lookup(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return $assertType(e,DI);}f=B.NewTypeName(0,a,b,$ifaceNil);B.NewNamed(f,$ifaceNil,DR.nil);g=c.Insert(f);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;$s=-1;return f;}return;}var $f={$blk:BN,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};BO.ptr.prototype.Error=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;c=G.Sprintf("import error %s (byte offset = %d): %s",new DM([(b=a.pos,new b.constructor.elem(b)),new $Int(a.pos.Offset),a.err]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:BO.ptr.prototype.Error,$c:true,$r,a,b,c,d,$s};return $f;};BO.prototype.Error=function(){return this.$val.Error();};BM.ptr.prototype.error=function(a){var a,b,c,d,e,f;b=this;c=$assertType(a,$String,true);d=c[0];e=c[1];if(e){a=Q.New(d);}$panic((f=new BO.ptr($clone(b.scanner.Pos(),V.Position),$assertType(a,$error)),new f.constructor.elem(f)));};BM.prototype.error=function(a){return this.$val.error(a);};BM.ptr.prototype.errorf=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=G.Sprintf(a,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$r=c.error(new $String(d));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BM.ptr.prototype.errorf,$c:true,$r,a,b,c,d,$s};return $f;};BM.prototype.errorf=function(a,b){return this.$val.errorf(a,b);};BM.ptr.prototype.expect=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.lit;if(!((b.tok===a))){$s=1;continue;}$s=2;continue;case 1:d=V.TokenString(a);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=new $String(d);f=V.TokenString(b.tok);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=new $String(f);h=new $String(c);$r=b.errorf("expected %s, got %s (%s)",new DM([e,g,h]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$r=b.next();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return c;}return;}var $f={$blk:BM.ptr.prototype.expect,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};BM.prototype.expect=function(a){return this.$val.expect(a);};BM.ptr.prototype.expectSpecial=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=120;d=0;case 1:if(!(d>0)))&&c>32)){$s=2;continue;}e=b.scanner.Peek();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}c=e;$r=b.next();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=d+(1)>>0;$s=1;continue;case 2:if(d32)){$s=4;continue;}b=b+(a.lit);d=a.scanner.Peek();$s=5;case 5:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;$r=a.next();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=3;continue;case 4:case 2:if(b===""){$s=7;continue;}$s=8;continue;case 7:e=a.expect(-2);$s=9;case 9:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;case 8:$s=-1;return b;}return;}var $f={$blk:BM.ptr.prototype.parseDotIdent,$c:true,$r,a,b,c,d,e,$s};return $f;};BM.prototype.parseDotIdent=function(){return this.$val.parseDotIdent();};BM.ptr.prototype.parseQualifiedName=function(){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a="";b="";c=this;d=c.expect(64);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;e=c.parsePackageID();$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}a=e;f=c.expect(46);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;if(c.tok===63){$s=4;continue;}$s=5;continue;case 4:$r=c.next();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=6;continue;case 5:g=c.parseDotIdent();$s=8;case 8:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}b=g;case 6:$s=-1;return[a,b];}return;}var $f={$blk:BM.ptr.prototype.parseQualifiedName,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};BM.prototype.parseQualifiedName=function(){return this.$val.parseQualifiedName();};BM.ptr.prototype.getPkg=function(a,b){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(a==="unsafe"){$s=-1;return B.Unsafe;}e=(d=$mapIndex(c.localPkgs,$String.keyFor(a)),d!==undefined?d.v:CU.nil);if(e===CU.nil){$s=1;continue;}if(!(b==="")){$s=2;continue;}$s=3;continue;case 1:e=(f=$mapIndex(c.sharedPkgs,$String.keyFor(a)),f!==undefined?f.v:CU.nil);if(e===CU.nil){$s=4;continue;}$s=5;continue;case 4:g=B.NewPackage(a,b);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}e=g;h=a;(c.sharedPkgs||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(h),{k:h,v:e});case 5:if(c.localPkgs===false){c.localPkgs=new $global.Map();}i=a;(c.localPkgs||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(i),{k:i,v:e});$s=3;continue;case 2:j=e.Name();if(j===""){$s=7;continue;}if(!(j===b)){$s=8;continue;}$s=9;continue;case 7:e.SetName(b);$s=9;continue;case 8:$r=c.errorf("%s package name mismatch: %s (given) vs %s (expected)",new DM([new $String(a),new $String(j),new $String(b)]));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:case 3:$s=-1;return e;}return;}var $f={$blk:BM.ptr.prototype.getPkg,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};BM.prototype.getPkg=function(a,b){return this.$val.getPkg(a,b);};BM.ptr.prototype.parseExportedName=function(){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=CU.nil;b="";c=this;e=c.parseQualifiedName();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];b=d[1];g=c.getPkg(f,"");$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}a=g;$s=-1;return[a,b];}return;}var $f={$blk:BM.ptr.prototype.parseExportedName,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};BM.prototype.parseExportedName=function(){return this.$val.parseExportedName();};BM.ptr.prototype.parseBasicType=function(){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.expect(-2);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=B.Universe.Lookup(c);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=$assertType(e,DI,true);g=f[0];h=f[1];if(h){$s=-1;return g.object.Type();}$r=a.errorf("not a basic type: %s",new DM([new $String(c)]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;}return;}var $f={$blk:BM.ptr.prototype.parseBasicType,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};BM.prototype.parseBasicType=function(){return this.$val.parseBasicType();};BM.ptr.prototype.parseArrayType=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.expect(-3);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=b.expect(93);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;f=b.parseType(a);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=O.ParseInt(d,10,64);i=h[0];j=h[1];if(!($interfaceIsEqual(j,$ifaceNil))){b.error(j);}$s=-1;return B.NewArray(g,i);}return;}var $f={$blk:BM.ptr.prototype.parseArrayType,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};BM.prototype.parseArrayType=function(a){return this.$val.parseArrayType(a);};BM.ptr.prototype.parseMapType=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;$r=b.expectKeyword("map");$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=b.expect(91);$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}c;d=b.parseType(a);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=b.expect(93);$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;g=b.parseType(a);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=-1;return B.NewMap(e,h);}return;}var $f={$blk:BM.ptr.prototype.parseMapType,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};BM.prototype.parseMapType=function(a){return this.$val.parseMapType(a);};BM.ptr.prototype.parseName=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=CU.nil;d="";e=this;c=a;if(c===CU.nil){c=(f=$mapIndex(e.sharedPkgs,$String.keyFor(e.id)),f!==undefined?f.v:CU.nil);}g=e.tok;if(g===(-2)){$s=2;continue;}if(g===(63)){$s=3;continue;}if(g===(64)){$s=4;continue;}$s=5;continue;case 2:d=e.lit;$r=e.next();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=6;continue;case 3:$r=e.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=6;continue;case 4:c=CU.nil;h="";j=e.parseQualifiedName();$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;h=i[0];d=i[1];if(b){$s=10;continue;}$s=11;continue;case 10:k=e.getPkg(h,"");$s=12;case 12:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}c=k;case 11:$s=6;continue;case 5:e.error(new $String("name expected"));case 6:case 1:$s=-1;return[c,d];}return;}var $f={$blk:BM.ptr.prototype.parseName,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};BM.prototype.parseName=function(a,b){return this.$val.parseName(a,b);};BP=function(a){var a,b,c;b=$assertType(a,EB,true);c=b[0];if(!(c===EB.nil)){return c.Elem();}return a;};BM.ptr.prototype.parseField=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;d=b.parseName(a,true);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];if(f==="_"){$s=2;continue;}$s=3;continue;case 2:g=b.getPkg("<_>","<_>");$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}e=g;case 3:h=b.parseType(a);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=false;if(f===""){$s=6;continue;}$s=7;continue;case 6:k=BP(i);if($assertType(k,EA,true)[1]){$s=8;continue;}if($assertType(k,DZ,true)[1]){$s=9;continue;}$s=10;continue;case 8:l=k.$val;e=CU.nil;f=l.Name();$s=11;continue;case 9:m=k.$val;f=m.Obj().object.Name();$s=11;continue;case 10:n=k;$r=b.errorf("anonymous field expected",new DM([]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:j=true;case 7:o="";if(b.tok===-6){$s=13;continue;}$s=14;continue;case 13:p=b.expect(-6);$s=15;case 15:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;r=$ifaceNil;s=O.Unquote(q);o=s[0];r=s[1];if(!($interfaceIsEqual(r,$ifaceNil))){$s=16;continue;}$s=17;continue;case 16:$r=b.errorf("invalid struct tag %s: %s",new DM([new $String(q),r]));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:case 14:$s=-1;return[B.NewField(0,e,f,i,j),o];}return;}var $f={$blk:BM.ptr.prototype.parseField,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};BM.prototype.parseField=function(a){return this.$val.parseField(a);};BM.ptr.prototype.parseStructType=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=DN.nil;d=CZ.nil;$r=b.expectKeyword("struct");$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=b.expect(123);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;f=0;case 3:if(!(!((b.tok===125))&&!((b.tok===-1)))){$s=4;continue;}if(f>0){$s=5;continue;}$s=6;continue;case 5:g=b.expect(59);$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;case 6:i=b.parseField(a);$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[0];k=h[1];if(!(k==="")&&d===CZ.nil){d=$makeSlice(CZ,f);}if(!(d===CZ.nil)){d=$append(d,k);}c=$append(c,j);f=f+(1)>>0;$s=3;continue;case 4:l=b.expect(125);$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;m=B.NewStruct(c,d);$s=10;case 10:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=11;case 11:return n;}return;}var $f={$blk:BM.ptr.prototype.parseStructType,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};BM.prototype.parseStructType=function(a){return this.$val.parseStructType(a);};BM.ptr.prototype.parseParameter=function(){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=DJ.nil;b=false;c=this;e=c.parseName(CU.nil,false);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[1];g=C.Index(f,"\xC2\xB7");if(g>=0){f=$substring(f,0,g);}if(c.tok===46){$s=2;continue;}$s=3;continue;case 2:$r=c.expectSpecial("...");$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=true;case 3:h=c.parseType(CU.nil);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if(b){i=B.NewSlice(i);}if(c.tok===-6){$s=6;continue;}$s=7;continue;case 6:$r=c.next();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:a=B.NewVar(0,CU.nil,f,i);$s=-1;return[a,b];}return;}var $f={$blk:BM.ptr.prototype.parseParameter,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};BM.prototype.parseParameter=function(){return this.$val.parseParameter();};BM.ptr.prototype.parseParameters=function(){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=DN.nil;b=false;c=this;d=c.expect(40);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;case 2:if(!(!((c.tok===41))&&!((c.tok===-1)))){$s=3;continue;}if(a.$length>0){$s=4;continue;}$s=5;continue;case 4:e=c.expect(44);$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;case 5:g=c.parseParameter();$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];a=$append(a,h);if(i){if(b){c.error(new $String("... not on final argument"));}b=true;}$s=2;continue;case 3:j=c.expect(41);$s=8;case 8:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;$s=-1;return[a,b];}return;}var $f={$blk:BM.ptr.prototype.parseParameters,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};BM.prototype.parseParameters=function(){return this.$val.parseParameters();};BM.ptr.prototype.parseSignature=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;d=b.parseParameters();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];g=DN.nil;if(b.tok===40){$s=2;continue;}$s=3;continue;case 2:h=false;j=b.parseParameters();$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;g=i[0];h=i[1];if(h){b.error(new $String("... not permitted on result type"));}case 3:$s=-1;return B.NewSignature(a,B.NewTuple(e),B.NewTuple(g),f);}return;}var $f={$blk:BM.ptr.prototype.parseSignature,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};BM.prototype.parseSignature=function(a){return this.$val.parseSignature(a);};BM.ptr.prototype.parseInterfaceType=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=DR.nil;$r=b.expectKeyword("interface");$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=b.expect(123);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;e=0;case 3:if(!(!((b.tok===125))&&!((b.tok===-1)))){$s=4;continue;}if(e>0){$s=5;continue;}$s=6;continue;case 5:f=b.expect(59);$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;case 6:h=b.parseName(a,true);$s=8;case 8:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;i=g[0];j=g[1];k=b.parseSignature(DJ.nil);$s=9;case 9:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;c=$append(c,B.NewFunc(0,i,j,l));e=e+(1)>>0;$s=3;continue;case 4:m=b.expect(125);$s=10;case 10:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;n=AJ(c,CT.nil);$s=11;case 11:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n.Complete();$s=12;case 12:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;$s=13;case 13:return p;}return;}var $f={$blk:BM.ptr.prototype.parseInterfaceType,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s};return $f;};BM.prototype.parseInterfaceType=function(a){return this.$val.parseInterfaceType(a);};BM.ptr.prototype.parseChanType=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=0;if(b.tok===-2){$s=1;continue;}$s=2;continue;case 1:$r=b.expectKeyword("chan");$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b.tok===60){$s=5;continue;}$s=6;continue;case 5:$r=b.expectSpecial("<-");$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=1;case 6:$s=3;continue;case 2:$r=b.expectSpecial("<-");$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.expectKeyword("chan");$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=2;case 3:d=b.parseType(a);$s=10;case 10:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=-1;return B.NewChan(c,e);}return;}var $f={$blk:BM.ptr.prototype.parseChanType,$c:true,$r,a,b,c,d,e,$s};return $f;};BM.prototype.parseChanType=function(a){return this.$val.parseChanType(a);};BM.ptr.prototype.parseType=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.tok;if(c===(-2)){$s=2;continue;}if(c===(64)){$s=3;continue;}if(c===(91)){$s=4;continue;}if(c===(42)){$s=5;continue;}if(c===(60)){$s=6;continue;}if(c===(40)){$s=7;continue;}$s=8;continue;case 2:d=b.lit;if(d===("struct")){$s=10;continue;}if(d===("func")){$s=11;continue;}if(d===("interface")){$s=12;continue;}if(d===("map")){$s=13;continue;}if(d===("chan")){$s=14;continue;}$s=15;continue;case 10:e=b.parseStructType(a);$s=17;case 17:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=18;case 18:return f;case 11:$r=b.next();$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=b.parseSignature(DJ.nil);$s=20;case 20:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=21;case 21:return h;case 12:i=b.parseInterfaceType(a);$s=22;case 22:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=23;case 23:return j;case 13:k=b.parseMapType(a);$s=24;case 24:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=25;case 25:return l;case 14:m=b.parseChanType(a);$s=26;case 26:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=27;case 27:return n;case 15:o=b.parseBasicType();$s=28;case 28:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;$s=29;case 29:return p;case 16:case 9:$s=8;continue;case 3:r=b.parseExportedName();$s=30;case 30:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;s=q[0];t=q[1];u=BN(s,t);$s=31;case 31:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u.object.Type();$s=32;case 32:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v;$s=33;case 33:return w;case 4:$r=b.next();$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(b.tok===93){$s=35;continue;}$s=36;continue;case 35:$r=b.next();$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}x=b.parseType(a);$s=38;case 38:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=B.NewSlice(x);$s=39;case 39:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;$s=40;case 40:return z;case 36:aa=b.parseArrayType(a);$s=41;case 41:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa;$s=42;case 42:return ab;case 5:$r=b.next();$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ac=b.parseType(a);$s=44;case 44:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=B.NewPointer(ac);$s=45;case 45:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;$s=46;case 46:return ae;case 6:af=b.parseChanType(a);$s=47;case 47:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;$s=48;case 48:return ag;case 7:$r=b.next();$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ah=b.parseType(a);$s=50;case 50:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;aj=b.expect(41);$s=51;case 51:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}aj;$s=-1;return ai;case 8:case 1:ak=V.TokenString(b.tok);$s=52;case 52:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=new $String(ak);am=new $String(b.lit);$r=b.errorf("expected type, got %s (%q)",new DM([al,am]));$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;}return;}var $f={$blk:BM.ptr.prototype.parseType,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BM.prototype.parseType=function(a){return this.$val.parseType(a);};BM.ptr.prototype.parseImportDecl=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=a.expectKeyword("import");$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=a.parsePackageName();$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=a.parsePackageID();$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=a.getPkg(d,c);$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;$s=-1;return;}return;}var $f={$blk:BM.ptr.prototype.parseImportDecl,$c:true,$r,a,b,c,d,e,$s};return $f;};BM.prototype.parseImportDecl=function(){return this.$val.parseImportDecl();};BM.ptr.prototype.parseInt=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b="";c=a.tok;if(c===(45)){$s=2;continue;}if(c===(43)){$s=3;continue;}$s=4;continue;case 2:b="-";$r=a.next();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=4;continue;case 3:$r=a.next();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:case 1:d=a.expect(-3);$s=7;case 7:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=b+d;$s=8;case 8:return e;}return;}var $f={$blk:BM.ptr.prototype.parseInt,$c:true,$r,a,b,c,d,e,$s};return $f;};BM.prototype.parseInt=function(){return this.$val.parseInt();};BM.ptr.prototype.parseNumber=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=EA.nil;b=$ifaceNil;c=this;d=c.parseInt();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=H.MakeFromLiteral(d,5,0);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if($interfaceIsEqual(f,$ifaceNil)){$panic(new $String("invalid mantissa"));}if(c.lit==="p"){$s=3;continue;}$s=4;continue;case 3:$r=c.next();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=c.parseInt();$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=O.ParseInt(h,10,0);$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}g=i;j=g[0];k=g[1];if(!($interfaceIsEqual(k,$ifaceNil))){c.error(k);}if((j.$high<0||(j.$high===0&&j.$low<0))){$s=8;continue;}$s=9;continue;case 8:l=H.MakeInt64(new $Int64(0,1));m=H.Shift(l,20,((new $Int64(-j.$high,-j.$low).$low>>>0)));$s=10;case 10:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;a=(n=B.Typ,(22>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+22]));o=H.BinaryOp(f,15,l);$s=11;case 11:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}b=o;$s=-1;return[a,b];case 9:if((j.$high>0||(j.$high===0&&j.$low>0))){$s=12;continue;}$s=13;continue;case 12:p=H.Shift(f,20,((j.$low>>>0)));$s=14;case 14:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}f=p;case 13:a=(q=B.Typ,(22>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+22]));b=f;$s=-1;return[a,b];case 4:a=(r=B.Typ,(20>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+20]));b=f;$s=-1;return[a,b];}return;}var $f={$blk:BM.ptr.prototype.parseNumber,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};BM.prototype.parseNumber=function(){return this.$val.parseNumber();};BM.ptr.prototype.parseConstDecl=function(){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=a.expectKeyword("const");$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=a.parseExportedName();$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];f=$ifaceNil;if(!((a.tok===61))){$s=3;continue;}$s=4;continue;case 3:g=a.parseType(CU.nil);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;case 4:h=a.expect(61);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;i=$ifaceNil;j=$ifaceNil;k=a.tok;if(k===(-2)){$s=8;continue;}if((k===(45))||(k===(-3))){$s=9;continue;}if(k===(40)){$s=10;continue;}if(k===(-5)){$s=11;continue;}if(k===(-6)){$s=12;continue;}$s=13;continue;case 8:if(!(a.lit==="true")&&!(a.lit==="false")){a.error(new $String("expected true or false"));}i=(l=B.Typ,(19>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+19]));j=H.MakeBool(a.lit==="true");$r=a.next();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 9:n=a.parseNumber();$s=16;case 16:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;i=m[0];j=m[1];$s=14;continue;case 10:$r=a.next();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(a.tok===-5){$s=18;continue;}$s=19;continue;case 18:$r=a.next();$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}o=a.expect(43);$s=21;case 21:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;i=(p=B.Typ,(21>=p.$length?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+21]));r=a.parseNumber();$s=22;case 22:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;j=q[1];s=a.expect(41);$s=23;case 23:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;$s=7;continue;case 19:u=a.parseNumber();$s=24;case 24:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;v=t[1];w=a.expect(43);$s=25;case 25:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}w;y=a.parseNumber();$s=26;case 26:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}x=y;z=x[1];$r=a.expectKeyword("i");$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aa=a.expect(41);$s=28;case 28:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}aa;i=(ab=B.Typ,(23>=ab.$length?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+23]));ac=v;ad=H.MakeImag(z);$s=29;case 29:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;af=H.BinaryOp(ac,12,ae);$s=30;case 30:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}j=af;$s=14;continue;case 11:i=(ag=B.Typ,(21>=ag.$length?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+21]));ah=H.MakeFromLiteral(a.lit,8,0);$s=31;case 31:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}j=ah;$r=a.next();$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 12:i=(ai=B.Typ,(24>=ai.$length?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+24]));aj=H.MakeFromLiteral(a.lit,9,0);$s=33;case 33:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}j=aj;$r=a.next();$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 13:ak=V.TokenString(a.tok);$s=35;case 35:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=new $String(ak);$r=a.errorf("expected literal got %s",new DM([al]));$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:case 7:if($interfaceIsEqual(f,$ifaceNil)){f=i;}am=d.Scope().Insert(B.NewConst(0,d,e,f,j));$s=37;case 37:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}am;$s=-1;return;}return;}var $f={$blk:BM.ptr.prototype.parseConstDecl,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BM.prototype.parseConstDecl=function(){return this.$val.parseConstDecl();};BM.ptr.prototype.parseTypeDecl=function(){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=a.expectKeyword("type");$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=a.parseExportedName();$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];f=BN(d,e);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=a.parseType(d);$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=$assertType(g.object.Type(),DZ);k=j.Underlying();$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if($interfaceIsEqual(k,$ifaceNil)){$s=5;continue;}$s=6;continue;case 5:$r=j.SetUnderlying(i);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:$s=-1;return;}return;}var $f={$blk:BM.ptr.prototype.parseTypeDecl,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};BM.prototype.parseTypeDecl=function(){return this.$val.parseTypeDecl();};BM.ptr.prototype.parseVarDecl=function(){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=a.expectKeyword("var");$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=a.parseExportedName();$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];f=a.parseType(d);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=d.Scope().Insert(B.NewVar(0,d,e,g));$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;$s=-1;return;}return;}var $f={$blk:BM.ptr.prototype.parseVarDecl,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};BM.prototype.parseVarDecl=function(){return this.$val.parseVarDecl();};BM.ptr.prototype.parseFunc=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.parseSignature(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(b.tok===123){$s=2;continue;}$s=3;continue;case 2:$r=b.next();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=1;case 5:if(!(e>0)){$s=6;continue;}f=b.tok;if(f===(123)){e=e+(1)>>0;}else if(f===(125)){e=e-(1)>>0;}$r=b.next();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 6:case 3:$s=-1;return d;}return;}var $f={$blk:BM.ptr.prototype.parseFunc,$c:true,$r,a,b,c,d,e,f,$s};return $f;};BM.prototype.parseFunc=function(a){return this.$val.parseFunc(a);};BM.ptr.prototype.parseMethodDecl=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.expect(40);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}b;d=a.parseParameter();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=a.expect(41);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;g=$assertType(BP(e.object.Type()),DZ);i=a.parseName(CU.nil,false);$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[1];k=a.parseFunc(e);$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;m=g.Obj().object.Pkg();$r=g.AddMethod(B.NewFunc(0,m,j,l));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BM.ptr.prototype.parseMethodDecl,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BM.prototype.parseMethodDecl=function(){return this.$val.parseMethodDecl();};BM.ptr.prototype.parseFuncDecl=function(){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;c=a.parseExportedName();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];f=a.parseFunc(DJ.nil);$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=d.Scope().Insert(B.NewFunc(0,d,e,g));$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;$s=-1;return;}return;}var $f={$blk:BM.ptr.prototype.parseFuncDecl,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};BM.prototype.parseFuncDecl=function(){return this.$val.parseFuncDecl();};BM.ptr.prototype.parseDecl=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.tok===-2){$s=1;continue;}$s=2;continue;case 1:b=a.lit;if(b===("import")){$s=4;continue;}if(b===("const")){$s=5;continue;}if(b===("type")){$s=6;continue;}if(b===("var")){$s=7;continue;}if(b===("func")){$s=8;continue;}$s=9;continue;case 4:$r=a.parseImportDecl();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=9;continue;case 5:$r=a.parseConstDecl();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=9;continue;case 6:$r=a.parseTypeDecl();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=9;continue;case 7:$r=a.parseVarDecl();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=9;continue;case 8:$r=a.next();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(a.tok===40){$s=15;continue;}$s=16;continue;case 15:$r=a.parseMethodDecl();$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=17;continue;case 16:$r=a.parseFuncDecl();$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:case 9:case 3:case 2:c=a.expect(10);$s=20;case 20:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}c;$s=-1;return;}return;}var $f={$blk:BM.ptr.prototype.parseDecl,$c:true,$r,a,b,c,$s};return $f;};BM.prototype.parseDecl=function(){return this.$val.parseDecl();};BM.ptr.prototype.parseExport=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=a.expectKeyword("package");$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=a.parsePackageName();$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if((a.tok===-2)&&a.lit==="safe"){$s=3;continue;}$s=4;continue;case 3:$r=a.next();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:d=a.expect(10);$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;e=a.getPkg(a.id,c);$s=7;case 7:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;case 8:if(!(!((a.tok===36))&&!((a.tok===-1)))){$s=9;continue;}$r=a.parseDecl();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 9:g=a.scanner.Peek();$s=11;case 11:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!((a.tok===36))||!((h===36))){$s=12;continue;}$s=13;continue;case 12:i=V.TokenString(a.tok);$s=14;case 14:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=new $String(i);k=new $Int32(h);$r=a.errorf("expected '$$', got %s %c",new DM([j,k]));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:l=a.scanner.ErrorCount;if(!((l===0))){$s=16;continue;}$s=17;continue;case 16:$r=a.errorf("expected no scanner errors, got %d",new DM([new $Int(l)]));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:m=DA.nil;n=a.localPkgs;o=0;p=n?n.keys():undefined;q=n?n.size:0;case 19:if(!(o=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]);e=((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]);((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]=d);((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]=e);};$ptrType(BQ).prototype.Swap=function(a,b){return this.$get().Swap(a,b);};BQ.prototype.Less=function(a,b){var a,b,c;c=this;return((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]).Path()<((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]).Path();};$ptrType(BQ).prototype.Less=function(a,b){return this.$get().Less(a,b);};BU=function(a,b,c,d){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=[d];e=[e];f=[f];g=0;h=CU.nil;e[0]=$ifaceNil;f[0]=-1;$deferred.push([(function(d,e,f){return function $b(){var{i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:i=$recover();if(!($interfaceIsEqual(i,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:if(f[0]>6){$s=3;continue;}$s=4;continue;case 3:j=G.Errorf("cannot import %q (%v), export data is newer version - update tool",new DM([new $String(d[0]),i]));$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}e[0]=j;$s=5;continue;case 4:k=G.Errorf("cannot import %q (%v), possibly version skew - reinstall package",new DM([new $String(d[0]),i]));$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}e[0]=k;case 5:case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,i,j,k,$s};return $f;};})(d,e,f),[]]);i=new BT.ptr(b,c,d[0],DU.nil,f[0],new CZ([""]),new CZ([""]),DA.nil,CT.nil,DW.nil,false,false,"",0,new BY.ptr(a,new $global.Map()),false,0);$deferred.push([$methodVal(i.fake,"setLines"),[]]);j="";k=i.rawByte();$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if((l===99)||(l===100)){$s=2;continue;}$s=3;continue;case 2:if(l===100){i.debugFormat=true;}m=i.rawByte();$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}i.trackAllTypes=m===97;n=i.int$();$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}i.posInfoFormat=!((n===0));o=i.string();$s=7;case 7:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}j=o;if(j==="v1"){f[0]=0;}$s=4;continue;case 3:p=i.rawStringln(l);$s=8;case 8:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}j=p;q=C.SplitN(j," ",3);if(q.$length>=2&&(0>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+0])==="version"){r=O.Atoi((1>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+1]));s=r[0];t=r[1];if($interfaceIsEqual(t,$ifaceNil)&&s>0){f[0]=s;}}case 4:i.version=f[0];u=i.version;if((u===(6))||(u===(5))||(u===(4))||(u===(3))||(u===(2))||(u===(1))){$s=10;continue;}if(u===(0)){$s=11;continue;}$s=12;continue;case 10:v=i.rawByte();$s=14;case 14:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=i.rawStringln(v);$s=15;case 15:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}i.debugFormat=w==="debug";x=i.int$();$s=16;case 16:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}i.trackAllTypes=!((x===0));y=i.int$();$s=17;case 17:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}i.posInfoFormat=!((y===0));$s=13;continue;case 11:$s=13;continue;case 12:$r=BV("unknown bexport format version %d (%q)",new DM([new $Int(i.version),new $String(j)]));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:case 9:z=i.typList;aa=CH();$s=19;case 19:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa;i.typList=$appendSlice(z,ab);ac=i.pkg();$s=20;case 20:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}h=ac;ad=0;case 21:ae=i.tagOrIndex();$s=23;case 23:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;if(af===-6){$s=22;continue;}$r=i.obj(af);$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ad=ad+(1)>>0;$s=21;continue;case 22:ag=i.int$();$s=25;case 25:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag;if(!((ah===ad))){$s=26;continue;}$s=27;continue;case 26:$r=BV("got %d objects; want %d",new DM([new $Int(ad),new $Int(ah)]));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 27:ai=i.interfaceList;aj=0;case 29:if(!(aj=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+aj]);al=ak.Complete();$s=31;case 31:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}al;aj++;$s=29;continue;case 30:am=$appendSlice((DA.nil),$subslice(i.pkgList,1));$r=K.Sort(($convertSliceType(am,BQ)));$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h.SetImports(am);h.MarkComplete();an=i.read;ao=h;ap=$ifaceNil;g=an;h=ao;e[0]=ap;aq=[g,h,e[0]];$s=33;case 33:return aq;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[g,h,e[0]];}if($curGoroutine.asleep){var $f={$blk:BU,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};$pkg.BImportData=BU;BV=function(a,b){var{a,b,c,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=G.Sprintf(a,b);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$panic(new $String(c));$s=-1;return;}return;}var $f={$blk:BV,$c:true,$r,a,b,c,$s};return $f;};BT.ptr.prototype.pkg=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.tagOrIndex();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if(c>=0){$s=-1;return(d=a.pkgList,((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]));}if(!((c===-1))){$s=2;continue;}$s=3;continue;case 2:$r=BV("unexpected package tag %d version %d",new DM([new $Int(c),new $Int(a.version)]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:e=a.string();$s=5;case 5:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g="";if(a.version>=5){$s=6;continue;}$s=7;continue;case 6:h=a.path();$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;$s=8;continue;case 7:i=a.string();$s=10;case 10:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}g=i;case 8:if(a.version>=6){$s=11;continue;}$s=12;continue;case 11:j=a.int$();$s=13;case 13:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;case 12:if(f===""){$s=14;continue;}$s=15;continue;case 14:$r=BV("empty package name in import",new DM([]));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 15:if(!((g==="")===((a.pkgList.$length===0)))){$s=17;continue;}$s=18;continue;case 17:$r=BV("package path %q for pkg index %d",new DM([new $String(g),new $Int(a.pkgList.$length)]));$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 18:if(g===""){g=a.importpath;}l=(k=$mapIndex(a.imports,$String.keyFor(g)),k!==undefined?k.v:CU.nil);if(l===CU.nil){$s=20;continue;}if(!(l.Name()===f)){$s=21;continue;}$s=22;continue;case 20:m=B.NewPackage(g,f);$s=23;case 23:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;n=g;(a.imports||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(n),{k:n,v:l});$s=22;continue;case 21:$r=BV("conflicting names %s and %s for package %q",new DM([new $String(l.Name()),new $String(f),new $String(g)]));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 22:a.pkgList=$append(a.pkgList,l);$s=-1;return l;}return;}var $f={$blk:BT.ptr.prototype.pkg,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};BT.prototype.pkg=function(){return this.$val.pkg();};BW=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a;if($assertType(b,EG,true)[1]){$s=1;continue;}if($assertType(b,DI,true)[1]){$s=2;continue;}if($assertType(b,DJ,true)[1]){$s=3;continue;}if($assertType(b,DQ,true)[1]){$s=4;continue;}$s=5;continue;case 1:$s=-1;return-2;case 2:$s=-1;return-3;case 3:$s=-1;return-4;case 4:$s=-1;return-5;case 5:$r=BV("unexpected object: %v (%T)",new DM([a,a]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$panic(new $String("unreachable"));case 6:$s=-1;return 0;}return;}var $f={$blk:BW,$c:true,$r,a,b,$s};return $f;};BX=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:d=BW(a);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=BW(b);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}if(!(d===e)){c=false;$s=1;continue s;}f=a.Type();$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;h=b.Type();$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=B.Identical(g,i);$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}c=j;case 1:k=c;$s=7;case 7:return k;}return;}var $f={$blk:BX,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};BT.ptr.prototype.declare=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Pkg();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=d.Scope().Insert(a);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=3;continue;}$s=4;continue;case 3:g=BX(a,f);$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(!g){$s=5;continue;}$s=6;continue;case 5:$r=BV("inconsistent import:\n\t%v\npreviously imported as:\n\t%v\n",new DM([a,f]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:case 4:$s=-1;return;}return;}var $f={$blk:BT.ptr.prototype.declare,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};BT.prototype.declare=function(a){return this.$val.declare(a);};BT.ptr.prototype.obj=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a;if(c===(-2)){$s=2;continue;}if(c===(-26)){$s=3;continue;}if(c===(-3)){$s=4;continue;}if(c===(-4)){$s=5;continue;}if(c===(-5)){$s=6;continue;}$s=7;continue;case 2:d=b.pos();$s=9;case 9:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;g=b.qualifiedName();$s=10;case 10:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];j=b.typ(CU.nil,DZ.nil);$s=11;case 11:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=b.value();$s=12;case 12:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$r=b.declare(B.NewConst(e,h,i,k,m));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 3:n=b.pos();$s=14;case 14:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;q=b.qualifiedName();$s=15;case 15:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p[0];s=p[1];t=b.typ(CU.nil,DZ.nil);$s=16;case 16:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;$r=b.declare(B.NewTypeName(o,r,s,u));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 4:v=b.typ(CU.nil,DZ.nil);$s=18;case 18:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}v;$s=8;continue;case 5:w=b.pos();$s=19;case 19:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;z=b.qualifiedName();$s=20;case 20:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}y=z;aa=y[0];ab=y[1];ac=b.typ(CU.nil,DZ.nil);$s=21;case 21:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;$r=b.declare(B.NewVar(x,aa,ab,ad));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 6:ae=b.pos();$s=23;case 23:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;ah=b.qualifiedName();$s=24;case 24:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ag=ah;ai=ag[0];aj=ag[1];al=b.paramList();$s=25;case 25:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}ak=al;am=ak[0];an=ak[1];ap=b.paramList();$s=26;case 26:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ao=ap;aq=ao[0];ar=B.NewSignature(DJ.nil,am,aq,an);$r=b.declare(B.NewFunc(af,ai,aj,ar));$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 7:$r=BV("unexpected object tag %d",new DM([new $Int(a)]));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:case 1:$s=-1;return;}return;}var $f={$blk:BT.ptr.prototype.obj,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BT.prototype.obj=function(a){return this.$val.obj(a);};BT.ptr.prototype.pos=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(!a.posInfoFormat){$s=-1;return 0;}b=a.prevFile;c=a.prevLine;d=a.int$();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;c=c+(e)>>0;if(a.version>=5){$s=2;continue;}$s=3;continue;case 2:if(e===-64){$s=5;continue;}$s=6;continue;case 5:f=a.int$();$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(g>=0){$s=8;continue;}$s=9;continue;case 8:h=a.path();$s=10;case 10:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}b=h;c=g;case 9:case 6:$s=4;continue;case 3:if(e===0){$s=11;continue;}$s=12;continue;case 11:i=a.int$();$s=13;case 13:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(j>=0){$s=14;continue;}$s=15;continue;case 14:k=a.string();$s=16;case 16:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}b=$substring(a.prevFile,0,j)+k;l=a.int$();$s=17;case 17:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}c=l;case 15:case 12:case 4:a.prevFile=b;a.prevLine=c;m=a.fake.pos(b,c,0);$s=18;case 18:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=19;case 19:return n;}return;}var $f={$blk:BT.ptr.prototype.pos,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};BT.prototype.pos=function(){return this.$val.pos();};BY.ptr.prototype.pos=function(a,b,c){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;f=(e=$mapIndex(d.files,$String.keyFor(a)),e!==undefined?e.v:ES.nil);if(f===ES.nil){$s=1;continue;}$s=2;continue;case 1:g=d.fset.AddFile(a,-1,65536);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=new BZ.ptr(g,0);h=a;(d.files||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(h),{k:h,v:f});case 2:if(b>65536){b=1;}if(b>f.lastline){f.lastline=b;}$s=-1;return((((f.file.Base()+b>>0)-1>>0)>>0));}return;}var $f={$blk:BY.ptr.prototype.pos,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};BY.prototype.pos=function(a,b,c){return this.$val.pos(a,b,c);};BY.ptr.prototype.setLines=function(){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;$r=CB.Do((function(){var b,c,d;CA=$makeSlice(CS,65536);b=CA;c=0;while(true){if(!(c=CA.$length)?($throwRuntimeError("index out of range"),undefined):CA.$array[CA.$offset+d]=d);c++;}}));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=a.files;c=0;d=b?b.keys():undefined;e=b?b.size:0;while(true){if(!(c=0){$s=-1;return(f=c.typList,((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]));}g=e;if(g===(-7)){$s=3;continue;}if(g===(-8)){$s=4;continue;}if(g===(-9)){$s=5;continue;}if(g===(-10)){$s=6;continue;}if(g===(-11)){$s=7;continue;}if(g===(-12)){$s=8;continue;}if(g===(-13)){$s=9;continue;}if(g===(-14)){$s=10;continue;}if(g===(-15)){$s=11;continue;}if(g===(-16)){$s=12;continue;}$s=13;continue;case 3:h=c.pos();$s=15;case 15:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;k=c.qualifiedName();$s=16;case 16:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];n=l.Scope();o=n.Lookup(m);$s=17;case 17:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;if($interfaceIsEqual(p,$ifaceNil)){$s=18;continue;}$s=19;continue;case 18:p=B.NewTypeName(i,l,m,$ifaceNil);q=n.Insert(p);$s=20;case 20:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;case 19:r=$assertType(p,DI,true);s=r[1];if(!s){$s=21;continue;}$s=22;continue;case 21:$r=BV("pkg = %s, name = %s => %s",new DM([l,new $String(m),p]));$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 22:t=B.NewNamed($assertType(p,DI),$ifaceNil,DR.nil);u=p.Type();$s=24;case 24:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=$assertType(u,DZ);c.record(v);w=c.typ(l,t);$s=25;case 25:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}$r=t.SetUnderlying(w);$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}x=B.IsInterface(t);$s=29;case 29:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}if(x){$s=27;continue;}$s=28;continue;case 27:$s=-1;return v;case 28:y=c.int$();$s=30;case 30:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;case 31:if(!(z>0)){$s=32;continue;}aa=c.pos();$s=33;case 33:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa;ac=c.string();$s=34;case 34:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;if(!CE(ad)){$s=35;continue;}$s=36;continue;case 35:ae=c.pkg();$s=37;case 37:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ae;case 36:ag=c.paramList();$s=38;case 38:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;ah=af[0];aj=c.paramList();$s=39;case 39:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ai=aj;ak=ai[0];al=ai[1];an=c.paramList();$s=40;case 40:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}am=an;ao=am[0];ap=c.int$();$s=41;case 41:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ap;aq=B.NewSignature(ah.At(0),ak,ao,al);$r=t.AddMethod(B.NewFunc(ab,l,ad,aq));$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}z=z-(1)>>0;$s=31;continue;case 32:$s=-1;return v;case 4:ar=new B.Array.ptr(new $Int64(0,0),$ifaceNil);if(c.trackAllTypes){c.record(ar);}as=c.int64();$s=43;case 43:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=as;au=c.typ(a,DZ.nil);$s=44;case 44:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=B.NewArray(au,at);$s=45;case 45:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}B.Array.copy(ar,av);$s=-1;return ar;case 5:aw=new B.Slice.ptr($ifaceNil);if(c.trackAllTypes){c.record(aw);}ax=c.typ(a,DZ.nil);$s=46;case 46:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=B.NewSlice(ax);$s=47;case 47:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}B.Slice.copy(aw,ay);$s=-1;return aw;case 6:az=new CC.ptr($ifaceNil);if(c.trackAllTypes){c.record(az);}ba=c.typ(a,DZ.nil);$s=48;case 48:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}az.elem=ba;$s=-1;return az;case 7:bb=new B.Struct.ptr(DN.nil,CZ.nil);if(c.trackAllTypes){c.record(bb);}bd=c.fieldList(a);$s=49;case 49:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}bc=bd;be=B.NewStruct(bc[0],bc[1]);$s=50;case 50:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}B.Struct.copy(bb,be);$s=-1;return bb;case 8:bf=new B.Pointer.ptr($ifaceNil);if(c.trackAllTypes){c.record(bf);}bg=c.typ(a,DZ.nil);$s=51;case 51:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=B.NewPointer(bg);$s=52;case 52:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}B.Pointer.copy(bf,bh);$s=-1;return bf;case 9:bi=new B.Signature.ptr(EU.nil,EU.nil,EV.nil,DJ.nil,EW.nil,EW.nil,false);if(c.trackAllTypes){c.record(bi);}bk=c.paramList();$s=53;case 53:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}bj=bk;bl=bj[0];bm=bj[1];bo=c.paramList();$s=54;case 54:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bn=bo;bp=bn[0];B.Signature.copy(bi,B.NewSignature(DJ.nil,bl,bp,bm));$s=-1;return bi;case 10:bq=c.typList.$length;if(c.trackAllTypes){c.record($ifaceNil);}br=CT.nil;bs=c.int$();$s=55;case 55:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}bt=bs;case 56:if(!(bt>0)){$s=57;continue;}bu=c.pos();$s=58;case 58:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}bu;bv=c.typ(a,DZ.nil);$s=59;case 59:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}br=$append(br,bv);bt=bt-(1)>>0;$s=56;continue;case 57:bw=c.methodList(a,b);$s=60;case 60:if($c){$c=false;bw=bw.$blk();}if(bw&&bw.$blk!==undefined){break s;}bx=AJ(bw,br);$s=61;case 61:if($c){$c=false;bx=bx.$blk();}if(bx&&bx.$blk!==undefined){break s;}by=bx;c.interfaceList=$append(c.interfaceList,by);if(c.trackAllTypes){(bz=c.typList,((bq<0||bq>=bz.$length)?($throwRuntimeError("index out of range"),undefined):bz.$array[bz.$offset+bq]=by));}$s=-1;return by;case 11:ca=new B.Map.ptr($ifaceNil,$ifaceNil);if(c.trackAllTypes){c.record(ca);}cb=c.typ(a,DZ.nil);$s=62;case 62:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}cc=cb;cd=c.typ(a,DZ.nil);$s=63;case 63:if($c){$c=false;cd=cd.$blk();}if(cd&&cd.$blk!==undefined){break s;}ce=cd;B.Map.copy(ca,B.NewMap(cc,ce));$s=-1;return ca;case 12:cf=new B.Chan.ptr(0,$ifaceNil);if(c.trackAllTypes){c.record(cf);}cg=c.int$();$s=64;case 64:if($c){$c=false;cg=cg.$blk();}if(cg&&cg.$blk!==undefined){break s;}ch=CD(cg);$s=65;case 65:if($c){$c=false;ch=ch.$blk();}if(ch&&ch.$blk!==undefined){break s;}ci=ch;cj=c.typ(a,DZ.nil);$s=66;case 66:if($c){$c=false;cj=cj.$blk();}if(cj&&cj.$blk!==undefined){break s;}ck=cj;B.Chan.copy(cf,B.NewChan(ci,ck));$s=-1;return cf;case 13:$r=BV("unexpected type tag %d",new DM([new $Int(e)]));$s=67;case 67:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$panic(new $String("unreachable"));case 14:case 2:$s=-1;return $ifaceNil;}return;}var $f={$blk:BT.ptr.prototype.typ,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BT.prototype.typ=function(a,b){return this.$val.typ(a,b);};CD=function(a){var{a,b,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a;if(b===(1)){$s=2;continue;}if(b===(2)){$s=3;continue;}if(b===(3)){$s=4;continue;}$s=5;continue;case 2:$s=-1;return 2;case 3:$s=-1;return 1;case 4:$s=-1;return 0;case 5:$r=BV("unexpected channel dir %d",new DM([new $Int(a)]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return 0;case 6:case 1:$s=-1;return 0;}return;}var $f={$blk:CD,$c:true,$r,a,b,$s};return $f;};BT.ptr.prototype.fieldList=function(a){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=DN.nil;c=CZ.nil;d=this;e=d.int$();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(f>0){$s=2;continue;}$s=3;continue;case 2:b=$makeSlice(DN,f);c=$makeSlice(CZ,f);g=b;h=0;case 4:if(!(h=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+i]=j[0]);((i<0||i>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i]=j[1]);h++;$s=4;continue;case 5:case 3:$s=-1;return[b,c];}return;}var $f={$blk:BT.ptr.prototype.fieldList,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};BT.prototype.fieldList=function(a){return this.$val.fieldList(a);};BT.ptr.prototype.field=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.pos();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;f=b.fieldName(a);$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];i=e[2];j=b.typ(a,DZ.nil);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=b.string();$s=4;case 4:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=false;if(h===""){$s=5;continue;}if(i){$s=6;continue;}$s=7;continue;case 5:o=BP(k);if($assertType(o,EA,true)[1]){$s=8;continue;}if($assertType(o,DZ,true)[1]){$s=9;continue;}$s=10;continue;case 8:p=o.$val;g=CU.nil;h=p.Name();$s=11;continue;case 9:q=o.$val;h=q.Obj().object.Name();$s=11;continue;case 10:r=o;$r=BV("named base type expected",new DM([]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:n=true;$s=7;continue;case 6:n=true;case 7:$s=-1;return[B.NewField(d,g,h,k,n),m];}return;}var $f={$blk:BT.ptr.prototype.field,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};BT.prototype.field=function(a){return this.$val.field(a);};BT.ptr.prototype.methodList=function(a,b){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=DR.nil;d=this;e=d.int$();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(f>0){$s=2;continue;}$s=3;continue;case 2:c=$makeSlice(DR,f);g=c;h=0;case 4:if(!(h=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i]=j);h++;$s=4;continue;case 5:case 3:$s=-1;return c;}return;}var $f={$blk:BT.ptr.prototype.methodList,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};BT.prototype.methodList=function(a,b){return this.$val.methodList(a,b);};BT.ptr.prototype.method=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.pos();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;g=c.fieldName(a);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];j=DJ.nil;if(!(b===DZ.nil)){j=B.NewVar(0,a,"",b);}l=c.paramList();$s=3;case 3:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];p=c.paramList();$s=4;case 4:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;q=o[0];r=B.NewSignature(j,m,q,n);$s=-1;return B.NewFunc(e,h,i,r);}return;}var $f={$blk:BT.ptr.prototype.method,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};BT.prototype.method=function(a,b){return this.$val.method(a,b);};BT.ptr.prototype.fieldName=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=CU.nil;c="";d=false;e=this;f=e.string();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}c=f;b=a;if(b===CU.nil){b=(g=e.pkgList,(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]));}if((e.version===0)&&c==="_"){$s=-1;return[b,c,d];}h=c;if(h===("")){$s=3;continue;}if(h===("?")){$s=4;continue;}if(h===("@")){$s=5;continue;}if(!CE(c)){$s=6;continue;}$s=7;continue;case 3:$s=7;continue;case 4:c="";i=e.pkg();$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}b=i;$s=7;continue;case 5:j=e.string();$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}c=j;d=true;if(!CE(c)){$s=10;continue;}$s=11;continue;case 10:k=e.pkg();$s=12;case 12:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}b=k;case 11:$s=7;continue;case 6:l=e.pkg();$s=13;case 13:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}b=l;case 7:case 2:$s=-1;return[b,c,d];}return;}var $f={$blk:BT.ptr.prototype.fieldName,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};BT.prototype.fieldName=function(a){return this.$val.fieldName(a);};BT.ptr.prototype.paramList=function(){var{a,b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.int$();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if(c===0){$s=-1;return[EW.nil,false];}d=true;if(c<0){c=-c;d=false;}e=$makeSlice(DN,c);f=false;g=e;h=0;case 2:if(!(h=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+i]=j[0]);f=j[1];h++;$s=2;continue;case 3:$s=-1;return[B.NewTuple(e),f];}return;}var $f={$blk:BT.ptr.prototype.paramList,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,$s};return $f;};BT.prototype.paramList=function(){return this.$val.paramList();};BT.ptr.prototype.param=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.typ(CU.nil,DZ.nil);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=$assertType(d,EX,true);f=e[0];g=e[1];if(g){d=B.NewSlice(f.elem);}h=CU.nil;i="";if(a){$s=2;continue;}$s=3;continue;case 2:j=b.string();$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;if(i===""){$s=5;continue;}$s=6;continue;case 5:$r=BV("expected named parameter",new DM([]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:if(!(i==="_")){$s=8;continue;}$s=9;continue;case 8:k=b.pkg();$s=10;case 10:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}h=k;case 9:l=C.Index(i,"\xC2\xB7");if(l>0){i=$substring(i,0,l);}case 3:m=b.string();$s=11;case 11:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;$s=-1;return[B.NewVar(0,h,i,d),g];}return;}var $f={$blk:BT.ptr.prototype.param,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BT.prototype.param=function(a){return this.$val.param(a);};CE=function(a){var a,b,c;b=Y.DecodeRuneInString(a);c=b[0];return X.IsUpper(c);};BT.ptr.prototype.value=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.tagOrIndex();$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=c;if(d===(-17)){$s=3;continue;}if(d===(-18)){$s=4;continue;}if(d===(-19)){$s=5;continue;}if(d===(-20)){$s=6;continue;}if(d===(-22)){$s=7;continue;}if(d===(-23)){$s=8;continue;}if(d===(-25)){$s=9;continue;}$s=10;continue;case 3:$s=-1;return H.MakeBool(false);case 4:$s=-1;return H.MakeBool(true);case 5:e=a.int64();$s=12;case 12:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=H.MakeInt64(e);$s=13;case 13:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=14;case 14:return g;case 6:h=a.float$();$s=15;case 15:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=16;case 16:return i;case 7:j=a.float$();$s=17;case 17:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=a.float$();$s=18;case 18:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=k;o=H.MakeImag(m);$s=19;case 19:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=H.BinaryOp(n,12,p);$s=20;case 20:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;$s=21;case 21:return r;case 8:s=a.string();$s=22;case 22:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=H.MakeString(s);$s=23;case 23:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;$s=24;case 24:return u;case 9:$s=-1;return H.MakeUnknown();case 10:$r=BV("unexpected value tag %d",new DM([new $Int(c)]));$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$panic(new $String("unreachable"));case 11:case 1:$s=-1;return $ifaceNil;}return;}var $f={$blk:BT.ptr.prototype.value,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s};return $f;};BT.prototype.value=function(){return this.$val.value();};BT.ptr.prototype.float$=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.int$();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if(c===0){$s=-1;return H.MakeInt64(new $Int64(0,0));}d=a.int$();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=a.string();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=(new DU($stringToBytes(f)));while(true){if(!(g.$length>0&&((0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0])===0))){break;}g=$subslice(g,1);}h=0;i=g.$length-1>>0;j=h;k=i;while(true){if(!(j=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+k]);m=((j<0||j>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+j]);((j<0||j>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+j]=l);((k<0||k>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+k]=m);n=j+1>>0;o=k-1>>0;j=n;k=o;}e=e-((g.$length<<3>>0))>>0;if(g.$length>0){q=(p=g.$length-1>>0,((p<0||p>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+p]));while(true){if(!(((q&128)>>>0)===0)){break;}e=e+(1)>>0;q=(r=(1),r<32?(q<>>24;}}s=H.MakeFromBytes(g);if(e<0){$s=5;continue;}if(e>0){$s=6;continue;}$s=7;continue;case 5:t=H.Shift(H.MakeInt64(new $Int64(0,1)),20,((-e>>>0)));$s=8;case 8:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;v=H.BinaryOp(s,15,u);$s=9;case 9:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}s=v;$s=7;continue;case 6:w=H.Shift(s,20,((e>>>0)));$s=10;case 10:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}s=w;case 7:case 4:if(c<0){$s=11;continue;}$s=12;continue;case 11:x=H.UnaryOp(13,s,0);$s=13;case 13:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}s=x;case 12:$s=-1;return s;}return;}var $f={$blk:BT.ptr.prototype.float$,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s};return $f;};BT.prototype.float$=function(){return this.$val.float$();};BT.ptr.prototype.tagOrIndex=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.debugFormat){$s=1;continue;}$s=2;continue;case 1:$r=a.marker(116);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:c=a.rawInt64();$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=(((b=c,b.$low+((b.$high>>31)*4294967296))>>0));$s=5;case 5:return d;}return;}var $f={$blk:BT.ptr.prototype.tagOrIndex,$c:true,$r,a,b,c,d,$s};return $f;};BT.prototype.tagOrIndex=function(){return this.$val.tagOrIndex();};BT.ptr.prototype.int$=function(){var{a,b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.int64();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if(!((d=(new $Int64(0,(((c.$low+((c.$high>>31)*4294967296))>>0)))),(d.$high===c.$high&&d.$low===c.$low)))){$s=2;continue;}$s=3;continue;case 2:$r=BV("exported integer too large",new DM([]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return(((c.$low+((c.$high>>31)*4294967296))>>0));}return;}var $f={$blk:BT.ptr.prototype.int$,$c:true,$r,a,b,c,d,$s};return $f;};BT.prototype.int$=function(){return this.$val.int$();};BT.ptr.prototype.int64=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.debugFormat){$s=1;continue;}$s=2;continue;case 1:$r=a.marker(105);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:b=a.rawInt64();$s=4;case 4:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=5;case 5:return c;}return;}var $f={$blk:BT.ptr.prototype.int64,$c:true,$r,a,b,c,$s};return $f;};BT.prototype.int64=function(){return this.$val.int64();};BT.ptr.prototype.path=function(){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.debugFormat){$s=1;continue;}$s=2;continue;case 1:$r=a.marker(112);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:b=a.rawInt64();$s=4;case 4:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if((c.$high>0||(c.$high===0&&c.$low>=0))){$s=-1;return(d=a.pathList,(($flatten64(c)<0||$flatten64(c)>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+$flatten64(c)]));}e=$makeSlice(CZ,$flatten64(new $Int64(-c.$high,-c.$low)));f=e;g=0;case 5:if(!(g=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h]=i);g++;$s=5;continue;case 6:j=C.Join(e,"/");a.pathList=$append(a.pathList,j);$s=-1;return j;}return;}var $f={$blk:BT.ptr.prototype.path,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};BT.prototype.path=function(){return this.$val.path();};BT.ptr.prototype.string=function(){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;if(a.debugFormat){$s=1;continue;}$s=2;continue;case 1:$r=a.marker(115);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:b=a.rawInt64();$s=4;case 4:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if((c.$high>0||(c.$high===0&&c.$low>=0))){$s=-1;return(d=a.strList,(($flatten64(c)<0||$flatten64(c)>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+$flatten64(c)]));}f=(((e=new $Int64(-c.$high,-c.$low),e.$low+((e.$high>>31)*4294967296))>>0));if(f<=a.buf.$capacity){a.buf=$subslice(a.buf,0,f);}else{a.buf=$makeSlice(DU,f);}g=a.buf;h=0;case 5:if(!(h=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+i]=j));h++;$s=5;continue;case 6:l=($bytesToString(a.buf));a.strList=$append(a.strList,l);$s=-1;return l;}return;}var $f={$blk:BT.ptr.prototype.string,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};BT.prototype.string=function(){return this.$val.string();};BT.ptr.prototype.marker=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.rawByte();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!((d===a))){$s=2;continue;}$s=3;continue;case 2:$r=BV("incorrect marker: got %c; want %c (pos = %d)",new DM([new $Uint8(d),new $Uint8(a),new $Int(b.read)]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:e=b.read;g=b.rawInt64();$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=(((f=g,f.$low+((f.$high>>31)*4294967296))>>0));if(!((h===e))){$s=6;continue;}$s=7;continue;case 6:$r=BV("incorrect position: got %d; want %d",new DM([new $Int(h),new $Int(e)]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:$s=-1;return;}return;}var $f={$blk:BT.ptr.prototype.marker,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};BT.prototype.marker=function(a){return this.$val.marker(a);};BT.ptr.prototype.rawInt64=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;c=F.ReadVarint(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;d=b[0];e=b[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:$r=BV("read error: %v",new DM([e]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return d;}return;}var $f={$blk:BT.ptr.prototype.rawInt64,$c:true,$r,a,b,c,d,e,$s};return $f;};BT.prototype.rawInt64=function(){return this.$val.rawInt64();};BT.ptr.prototype.rawStringln=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;b.buf=$subslice(b.buf,0,0);case 1:if(!(!((a===10)))){$s=2;continue;}b.buf=$append(b.buf,a);c=b.rawByte();$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}a=c;$s=1;continue;case 2:$s=-1;return($bytesToString(b.buf));}return;}var $f={$blk:BT.ptr.prototype.rawStringln,$c:true,$r,a,b,c,$s};return $f;};BT.prototype.rawStringln=function(a){return this.$val.rawStringln(a);};BT.ptr.prototype.ReadByte=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.rawByte();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=[b,$ifaceNil];$s=2;case 2:return c;}return;}var $f={$blk:BT.ptr.prototype.ReadByte,$c:true,$r,a,b,c,$s};return $f;};BT.prototype.ReadByte=function(){return this.$val.ReadByte();};BT.ptr.prototype.rawByte=function(){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;c=(b=a.data,(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]));d=1;if(c===124){$s=1;continue;}$s=2;continue;case 1:c=(e=a.data,(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]));d=2;f=c;if(f===(83)){$s=4;continue;}if(f===(124)){$s=5;continue;}$s=6;continue;case 4:c=36;$s=7;continue;case 5:$s=7;continue;case 6:$r=BV("unexpected escape sequence in export data",new DM([]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:case 3:case 2:a.data=$subslice(a.data,d);a.read=a.read+(d)>>0;$s=-1;return c;}return;}var $f={$blk:BT.ptr.prototype.rawByte,$c:true,$r,a,b,c,d,e,f,$s};return $f;};BT.prototype.rawByte=function(){return this.$val.rawByte();};CH=function(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=CF.Do((function $b(){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:r=B.Universe.Lookup("byte");$s=1;case 1:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r.Type();$s=2;case 2:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=B.Universe.Lookup("rune");$s=3;case 3:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t.Type();$s=4;case 4:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=B.Universe.Lookup("error");$s=5;case 5:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v.Type();$s=6;case 6:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}CG=new CT([(a=B.Typ,(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])),(b=B.Typ,(2>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+2])),(c=B.Typ,(3>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+3])),(d=B.Typ,(4>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+4])),(e=B.Typ,(5>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+5])),(f=B.Typ,(6>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+6])),(g=B.Typ,(7>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+7])),(h=B.Typ,(8>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+8])),(i=B.Typ,(9>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+9])),(j=B.Typ,(10>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+10])),(k=B.Typ,(11>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+11])),(l=B.Typ,(12>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+12])),(m=B.Typ,(13>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+13])),(n=B.Typ,(14>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+14])),(o=B.Typ,(15>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+15])),(p=B.Typ,(16>=p.$length?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+16])),(q=B.Typ,(17>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+17])),s,u,w,(x=B.Typ,(19>=x.$length?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+19])),(y=B.Typ,(20>=y.$length?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+20])),(z=B.Typ,(21>=z.$length?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+21])),(aa=B.Typ,(22>=aa.$length?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+22])),(ab=B.Typ,(23>=ab.$length?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+23])),(ac=B.Typ,(24>=ac.$length?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+24])),(ad=B.Typ,(25>=ad.$length?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+25])),(ae=B.Typ,(18>=ae.$length?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+18])),(af=B.Typ,(0>=af.$length?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+0])),(ag=new CI.ptr(),new ag.constructor.elem(ag))]);ah=CG;ai=AI();$s=7;case 7:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai;CG=$appendSlice(ah,aj);$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;}));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return CG;}return;}var $f={$blk:CH,$c:true,$r,$s};return $f;};CI.ptr.prototype.Underlying=function(){var a;a=this;return new a.constructor.elem(a);};CI.prototype.Underlying=function(){return this.$val.Underlying();};CI.ptr.prototype.String=function(){var a;a=this;return"any";};CI.prototype.String=function(){return this.$val.String();};CK.prototype.Error=function(){var a;a=this.$val;return"gcimporter: "+(a);};$ptrType(CK).prototype.Error=function(){return new CK(this.$get()).Error();};CL=function(a,b){var{a,b,c,d,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=G.Sprintf(a,b);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=new CK((c));$s=2;case 2:return d;}return;}var $f={$blk:CL,$c:true,$r,a,b,c,d,$s};return $f;};CQ=function(a){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=H.Bytes(a);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=0;while(true){if(!(d<(e=c.$length/2,(e===e&&e!==1/0&&e!==-1/0)?e>>0:$throwRuntimeError("integer divide by zero")))){break;}f=(g=(c.$length-1>>0)-d>>0,((g<0||g>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+g]));h=((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=f);(i=(c.$length-1>>0)-d>>0,((i<0||i>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i]=h));d=d+(1)>>0;}$s=-1;return new J.Rat.ptr(new J.Int.ptr(false,J.nat.nil),new J.Int.ptr(false,J.nat.nil)).SetInt(new J.Int.ptr(false,J.nat.nil).SetBytes(c));}return;}var $f={$blk:CQ,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};DF.methods=[{prop:"later",name:"later",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([DB],[],false)},{prop:"newReader",name:"newReader",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([D.RelocKind,D.Index,D.SyncMarker],[EY],false)},{prop:"posBaseIdx",name:"posBaseIdx",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([D.Index],[$String],false)},{prop:"pkgIdx",name:"pkgIdx",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([D.Index],[CU],false)},{prop:"typIdx",name:"typIdx",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([AC,DG],[B.Type],false)},{prop:"objIdx",name:"objIdx",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([D.Index],[CU,$String],false)},{prop:"objDictIdx",name:"objDictIdx",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([D.Index],[DG],false)}];EY.methods=[{prop:"pos",name:"pos",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[A.Pos],false)},{prop:"posBase",name:"posBase",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$String],false)},{prop:"pkg",name:"pkg",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[CU],false)},{prop:"doPkg",name:"doPkg",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[CU],false)},{prop:"typ",name:"typ",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[B.Type],false)},{prop:"typInfo",name:"typInfo",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[AC],false)},{prop:"doTyp",name:"doTyp",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[B.Type],false)},{prop:"structType",name:"structType",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[EN],false)},{prop:"unionType",name:"unionType",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[EO],false)},{prop:"interfaceType",name:"interfaceType",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[DV],false)},{prop:"signature",name:"signature",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([DJ,DL,DL],[EH],false)},{prop:"params",name:"params",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[EW],false)},{prop:"param",name:"param",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[DJ],false)},{prop:"obj",name:"obj",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[B.Object,CT],false)},{prop:"typeParamNames",name:"typeParamNames",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[DL],false)},{prop:"method",name:"method",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[DQ],false)},{prop:"qualifiedIdent",name:"qualifiedIdent",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[CU,$String],false)},{prop:"localIdent",name:"localIdent",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[CU,$String],false)},{prop:"selector",name:"selector",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[CU,$String],false)},{prop:"ident",name:"ident",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([D.SyncMarker],[CU,$String],false)}];FB.methods=[{prop:"int64",name:"int64",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$Int64],false)},{prop:"uint64",name:"uint64",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$Uint64],false)}];DY.methods=[{prop:"trace",name:"trace",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$String,DM],[],true)},{prop:"doDecl",name:"doDecl",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU,$String],[],false)},{prop:"stringAt",name:"stringAt",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Uint64],[$String],false)},{prop:"pkgAt",name:"pkgAt",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Uint64],[CU],false)},{prop:"typAt",name:"typAt",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Uint64,DZ],[B.Type],false)}];FI.methods=[{prop:"obj",name:"obj",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$String],[],false)},{prop:"declare",name:"declare",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Object],[],false)},{prop:"value",name:"value",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[B.Type,H.Value],false)},{prop:"mpint",name:"mpint",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([EP,EA],[],false)},{prop:"mpfloat",name:"mpfloat",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([EA],[H.Value],false)},{prop:"ident",name:"ident",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$String],false)},{prop:"qualifiedIdent",name:"qualifiedIdent",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[CU,$String],false)},{prop:"pos",name:"pos",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[A.Pos],false)},{prop:"posv0",name:"posv0",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[],false)},{prop:"posv1",name:"posv1",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[],false)},{prop:"typ",name:"typ",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[B.Type],false)},{prop:"pkg",name:"pkg",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[CU],false)},{prop:"string",name:"string",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$String],false)},{prop:"doType",name:"doType",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([DZ],[B.Type],false)},{prop:"kind",name:"kind",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[AM],false)},{prop:"signature",name:"signature",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([DJ,DL,DL],[EH],false)},{prop:"tparamList",name:"tparamList",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[DL],false)},{prop:"paramList",name:"paramList",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[EW],false)},{prop:"param",name:"param",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[DJ],false)},{prop:"bool",name:"bool",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$Bool],false)},{prop:"int64",name:"int64",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$Int64],false)},{prop:"uint64",name:"uint64",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$Uint64],false)},{prop:"byte$",name:"byte",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$Uint8],false)}];EI.methods=[{prop:"exportName",name:"exportName",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Object],[$String],false)},{prop:"trace",name:"trace",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$String,DM],[],true)},{prop:"stringOff",name:"stringOff",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$String],[$Uint64],false)},{prop:"pushDecl",name:"pushDecl",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Object],[],false)},{prop:"doDecl",name:"doDecl",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Object],[],false)},{prop:"newWriter",name:"newWriter",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[FJ],false)},{prop:"typOff",name:"typOff",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Type,CU],[$Uint64],false)}];FJ.methods=[{prop:"writeIndex",name:"writeIndex",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([FL],[],false)},{prop:"exportPath",name:"exportPath",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU],[$String],false)},{prop:"tag",name:"tag",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Uint8],[],false)},{prop:"pos",name:"pos",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([A.Pos],[],false)},{prop:"posV1",name:"posV1",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([A.Pos],[],false)},{prop:"posV0",name:"posV0",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([A.Pos],[],false)},{prop:"pkg",name:"pkg",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU],[],false)},{prop:"qualifiedIdent",name:"qualifiedIdent",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Object],[],false)},{prop:"typ",name:"typ",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Type,CU],[],false)},{prop:"flush",name:"flush",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$Uint64],false)},{prop:"startType",name:"startType",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([AM],[],false)},{prop:"doTyp",name:"doTyp",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Type,CU],[],false)},{prop:"setPkg",name:"setPkg",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU,$Bool],[],false)},{prop:"signature",name:"signature",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([EH],[],false)},{prop:"typeList",name:"typeList",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([FO,CU],[],false)},{prop:"tparamList",name:"tparamList",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$String,EU,CU],[],false)},{prop:"paramList",name:"paramList",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([EW],[],false)},{prop:"param",name:"param",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Object],[],false)},{prop:"value",name:"value",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Type,H.Value],[],false)},{prop:"mpint",name:"mpint",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([EP,B.Type],[],false)},{prop:"mpfloat",name:"mpfloat",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([FP,B.Type],[],false)},{prop:"bool",name:"bool",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Bool],[$Bool],false)},{prop:"int64",name:"int64",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Int64],[],false)},{prop:"uint64",name:"uint64",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Uint64],[],false)},{prop:"string",name:"string",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$String],[],false)},{prop:"localIdent",name:"localIdent",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Object],[],false)}];FQ.methods=[{prop:"int64",name:"int64",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Int64],[],false)},{prop:"uint64",name:"uint64",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Uint64],[],false)}];FR.methods=[{prop:"empty",name:"empty",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$Bool],false)},{prop:"pushTail",name:"pushTail",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Object],[],false)},{prop:"popHead",name:"popHead",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[B.Object],false)}];FS.methods=[{prop:"init",name:"init",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$String,$String,I.Reader,EZ],[],false)},{prop:"next",name:"next",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[],false)},{prop:"error",name:"error",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$emptyInterface],[],false)},{prop:"errorf",name:"errorf",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$String,DM],[],true)},{prop:"expect",name:"expect",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Int32],[$String],false)},{prop:"expectSpecial",name:"expectSpecial",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$String],[],false)},{prop:"expectKeyword",name:"expectKeyword",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$String],[],false)},{prop:"parsePackageID",name:"parsePackageID",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$String],false)},{prop:"parsePackageName",name:"parsePackageName",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$String],false)},{prop:"parseDotIdent",name:"parseDotIdent",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$String],false)},{prop:"parseQualifiedName",name:"parseQualifiedName",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$String,$String],false)},{prop:"getPkg",name:"getPkg",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$String,$String],[CU],false)},{prop:"parseExportedName",name:"parseExportedName",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[CU,$String],false)},{prop:"parseBasicType",name:"parseBasicType",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[B.Type],false)},{prop:"parseArrayType",name:"parseArrayType",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU],[B.Type],false)},{prop:"parseMapType",name:"parseMapType",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU],[B.Type],false)},{prop:"parseName",name:"parseName",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU,$Bool],[CU,$String],false)},{prop:"parseField",name:"parseField",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU],[DJ,$String],false)},{prop:"parseStructType",name:"parseStructType",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU],[B.Type],false)},{prop:"parseParameter",name:"parseParameter",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[DJ,$Bool],false)},{prop:"parseParameters",name:"parseParameters",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[DN,$Bool],false)},{prop:"parseSignature",name:"parseSignature",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([DJ],[EH],false)},{prop:"parseInterfaceType",name:"parseInterfaceType",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU],[B.Type],false)},{prop:"parseChanType",name:"parseChanType",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU],[B.Type],false)},{prop:"parseType",name:"parseType",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU],[B.Type],false)},{prop:"parseImportDecl",name:"parseImportDecl",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[],false)},{prop:"parseInt",name:"parseInt",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$String],false)},{prop:"parseNumber",name:"parseNumber",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[EA,H.Value],false)},{prop:"parseConstDecl",name:"parseConstDecl",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[],false)},{prop:"parseTypeDecl",name:"parseTypeDecl",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[],false)},{prop:"parseVarDecl",name:"parseVarDecl",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[],false)},{prop:"parseFunc",name:"parseFunc",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([DJ],[EH],false)},{prop:"parseMethodDecl",name:"parseMethodDecl",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[],false)},{prop:"parseFuncDecl",name:"parseFuncDecl",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[],false)},{prop:"parseDecl",name:"parseDecl",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[],false)},{prop:"parseExport",name:"parseExport",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[CU],false)}];BO.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];BQ.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)}];FT.methods=[{prop:"pkg",name:"pkg",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[CU],false)},{prop:"declare",name:"declare",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Object],[],false)},{prop:"obj",name:"obj",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Int],[],false)},{prop:"pos",name:"pos",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[A.Pos],false)},{prop:"qualifiedName",name:"qualifiedName",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[CU,$String],false)},{prop:"record",name:"record",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([B.Type],[],false)},{prop:"typ",name:"typ",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU,DZ],[B.Type],false)},{prop:"fieldList",name:"fieldList",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU],[DN,CZ],false)},{prop:"field",name:"field",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU],[DJ,$String],false)},{prop:"methodList",name:"methodList",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU,DZ],[DR],false)},{prop:"method",name:"method",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU,DZ],[DQ],false)},{prop:"fieldName",name:"fieldName",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([CU],[CU,$String,$Bool],false)},{prop:"paramList",name:"paramList",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[EW,$Bool],false)},{prop:"param",name:"param",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Bool],[DJ,$Bool],false)},{prop:"value",name:"value",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[H.Value],false)},{prop:"float$",name:"float",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[H.Value],false)},{prop:"tagOrIndex",name:"tagOrIndex",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$Int],false)},{prop:"int$",name:"int",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$Int],false)},{prop:"int64",name:"int64",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$Int64],false)},{prop:"path",name:"path",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$String],false)},{prop:"string",name:"string",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$String],false)},{prop:"marker",name:"marker",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Uint8],[],false)},{prop:"rawInt64",name:"rawInt64",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$Int64],false)},{prop:"rawStringln",name:"rawStringln",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$Uint8],[$String],false)},{prop:"ReadByte",name:"ReadByte",pkg:"",typ:$funcType([],[$Uint8,$error],false)},{prop:"rawByte",name:"rawByte",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[$Uint8],false)}];FU.methods=[{prop:"pos",name:"pos",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([$String,$Int,$Int],[A.Pos],false)},{prop:"setLines",name:"setLines",pkg:"golang.org/x/tools/go/internal/gcimporter",typ:$funcType([],[],false)}];EX.methods=[{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[B.Type],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];CI.methods=[{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[B.Type],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];CK.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];AA.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"PkgDecoder",name:"PkgDecoder",embedded:true,exported:true,typ:D.PkgDecoder,tag:""},{prop:"fake",name:"fake",embedded:false,exported:false,typ:BY,tag:""},{prop:"ctxt",name:"ctxt",embedded:false,exported:false,typ:CV,tag:""},{prop:"imports",name:"imports",embedded:false,exported:false,typ:EZ,tag:""},{prop:"posBases",name:"posBases",embedded:false,exported:false,typ:CZ,tag:""},{prop:"pkgs",name:"pkgs",embedded:false,exported:false,typ:DA,tag:""},{prop:"typs",name:"typs",embedded:false,exported:false,typ:CT,tag:""},{prop:"laterFns",name:"laterFns",embedded:false,exported:false,typ:DC,tag:""}]);AB.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"idx",name:"idx",embedded:false,exported:false,typ:D.Index,tag:""},{prop:"needed",name:"needed",embedded:false,exported:false,typ:$Bool,tag:""}]);AC.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"idx",name:"idx",embedded:false,exported:false,typ:D.Index,tag:""},{prop:"derived",name:"derived",embedded:false,exported:false,typ:$Bool,tag:""}]);AF.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"Decoder",name:"Decoder",embedded:true,exported:true,typ:D.Decoder,tag:""},{prop:"p",name:"p",embedded:false,exported:false,typ:DF,tag:""},{prop:"dict",name:"dict",embedded:false,exported:false,typ:DG,tag:""}]);AG.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"bounds",name:"bounds",embedded:false,exported:false,typ:DS,tag:""},{prop:"tparams",name:"tparams",embedded:false,exported:false,typ:DL,tag:""},{prop:"derived",name:"derived",embedded:false,exported:false,typ:DT,tag:""},{prop:"derivedTypes",name:"derivedTypes",embedded:false,exported:false,typ:CT,tag:""}]);AK.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"Reader",name:"Reader",embedded:true,exported:true,typ:FA,tag:""},{prop:"path",name:"path",embedded:false,exported:false,typ:$String,tag:""}]);AL.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"pkg",name:"pkg",embedded:false,exported:false,typ:CU,tag:""},{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""}]);AQ.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"t",name:"t",embedded:false,exported:false,typ:DK,tag:""},{prop:"constraint",name:"constraint",embedded:false,exported:false,typ:B.Type,tag:""}]);AR.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"version",name:"version",embedded:false,exported:false,typ:$Int,tag:""},{prop:"ipath",name:"ipath",embedded:false,exported:false,typ:$String,tag:""},{prop:"stringData",name:"stringData",embedded:false,exported:false,typ:DU,tag:""},{prop:"stringCache",name:"stringCache",embedded:false,exported:false,typ:FC,tag:""},{prop:"pkgCache",name:"pkgCache",embedded:false,exported:false,typ:FD,tag:""},{prop:"declData",name:"declData",embedded:false,exported:false,typ:DU,tag:""},{prop:"pkgIndex",name:"pkgIndex",embedded:false,exported:false,typ:FF,tag:""},{prop:"typCache",name:"typCache",embedded:false,exported:false,typ:FG,tag:""},{prop:"tparamIndex",name:"tparamIndex",embedded:false,exported:false,typ:FH,tag:""},{prop:"fake",name:"fake",embedded:false,exported:false,typ:BY,tag:""},{prop:"interfaceList",name:"interfaceList",embedded:false,exported:false,typ:DW,tag:""},{prop:"later",name:"later",embedded:false,exported:false,typ:DX,tag:""},{prop:"indent",name:"indent",embedded:false,exported:false,typ:$Int,tag:""}]);AT.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"p",name:"p",embedded:false,exported:false,typ:DY,tag:""},{prop:"declReader",name:"declReader",embedded:false,exported:false,typ:E.Reader,tag:""},{prop:"currPkg",name:"currPkg",embedded:false,exported:false,typ:CU,tag:""},{prop:"prevFile",name:"prevFile",embedded:false,exported:false,typ:$String,tag:""},{prop:"prevLine",name:"prevLine",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"prevColumn",name:"prevColumn",embedded:false,exported:false,typ:$Int64,tag:""}]);BA.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"fset",name:"fset",embedded:false,exported:false,typ:CY,tag:""},{prop:"out",name:"out",embedded:false,exported:false,typ:EC,tag:""},{prop:"version",name:"version",embedded:false,exported:false,typ:$Int,tag:""},{prop:"localpkg",name:"localpkg",embedded:false,exported:false,typ:CU,tag:""},{prop:"allPkgs",name:"allPkgs",embedded:false,exported:false,typ:FK,tag:""},{prop:"declTodo",name:"declTodo",embedded:false,exported:false,typ:BH,tag:""},{prop:"strings",name:"strings",embedded:false,exported:false,typ:BF,tag:""},{prop:"stringIndex",name:"stringIndex",embedded:false,exported:false,typ:FE,tag:""},{prop:"data0",name:"data0",embedded:false,exported:false,typ:BF,tag:""},{prop:"declIndex",name:"declIndex",embedded:false,exported:false,typ:FL,tag:""},{prop:"tparamNames",name:"tparamNames",embedded:false,exported:false,typ:FM,tag:""},{prop:"typIndex",name:"typIndex",embedded:false,exported:false,typ:FN,tag:""},{prop:"indent",name:"indent",embedded:false,exported:false,typ:$Int,tag:""}]);BB.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"p",name:"p",embedded:false,exported:false,typ:EI,tag:""},{prop:"data",name:"data",embedded:false,exported:false,typ:BF,tag:""},{prop:"currPkg",name:"currPkg",embedded:false,exported:false,typ:CU,tag:""},{prop:"prevFile",name:"prevFile",embedded:false,exported:false,typ:$String,tag:""},{prop:"prevLine",name:"prevLine",embedded:false,exported:false,typ:$Int64,tag:""},{prop:"prevColumn",name:"prevColumn",embedded:false,exported:false,typ:$Int64,tag:""}]);BF.init("",[{prop:"Buffer",name:"Buffer",embedded:true,exported:true,typ:E.Buffer,tag:""}]);BH.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"ring",name:"ring",embedded:false,exported:false,typ:ED,tag:""},{prop:"head",name:"head",embedded:false,exported:false,typ:$Int,tag:""},{prop:"tail",name:"tail",embedded:false,exported:false,typ:$Int,tag:""}]);BM.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"scanner",name:"scanner",embedded:false,exported:false,typ:V.Scanner,tag:""},{prop:"tok",name:"tok",embedded:false,exported:false,typ:$Int32,tag:""},{prop:"lit",name:"lit",embedded:false,exported:false,typ:$String,tag:""},{prop:"id",name:"id",embedded:false,exported:false,typ:$String,tag:""},{prop:"sharedPkgs",name:"sharedPkgs",embedded:false,exported:false,typ:EZ,tag:""},{prop:"localPkgs",name:"localPkgs",embedded:false,exported:false,typ:EZ,tag:""}]);BO.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"pos",name:"pos",embedded:false,exported:false,typ:V.Position,tag:""},{prop:"err",name:"err",embedded:false,exported:false,typ:$error,tag:""}]);BQ.init(CU);BT.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"imports",name:"imports",embedded:false,exported:false,typ:EZ,tag:""},{prop:"data",name:"data",embedded:false,exported:false,typ:DU,tag:""},{prop:"importpath",name:"importpath",embedded:false,exported:false,typ:$String,tag:""},{prop:"buf",name:"buf",embedded:false,exported:false,typ:DU,tag:""},{prop:"version",name:"version",embedded:false,exported:false,typ:$Int,tag:""},{prop:"strList",name:"strList",embedded:false,exported:false,typ:CZ,tag:""},{prop:"pathList",name:"pathList",embedded:false,exported:false,typ:CZ,tag:""},{prop:"pkgList",name:"pkgList",embedded:false,exported:false,typ:DA,tag:""},{prop:"typList",name:"typList",embedded:false,exported:false,typ:CT,tag:""},{prop:"interfaceList",name:"interfaceList",embedded:false,exported:false,typ:DW,tag:""},{prop:"trackAllTypes",name:"trackAllTypes",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"posInfoFormat",name:"posInfoFormat",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"prevFile",name:"prevFile",embedded:false,exported:false,typ:$String,tag:""},{prop:"prevLine",name:"prevLine",embedded:false,exported:false,typ:$Int,tag:""},{prop:"fake",name:"fake",embedded:false,exported:false,typ:BY,tag:""},{prop:"debugFormat",name:"debugFormat",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"read",name:"read",embedded:false,exported:false,typ:$Int,tag:""}]);BY.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"fset",name:"fset",embedded:false,exported:false,typ:CY,tag:""},{prop:"files",name:"files",embedded:false,exported:false,typ:FV,tag:""}]);BZ.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"file",name:"file",embedded:false,exported:false,typ:ET,tag:""},{prop:"lastline",name:"lastline",embedded:false,exported:false,typ:$Int,tag:""}]);CC.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"elem",name:"elem",embedded:false,exported:false,typ:B.Type,tag:""}]);CI.init("",[]);EE.init("golang.org/x/tools/go/internal/gcimporter",[{prop:"obj",name:"obj",embedded:false,exported:false,typ:B.Object,tag:""},{prop:"name",name:"name",embedded:false,exported:false,typ:$String,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=P.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=Q.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=R.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=S.$init();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=Z.$init();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=T.$init();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=U.$init();$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N.$init();$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=O.$init();$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=W.$init();$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=V.$init();$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=X.$init();$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=Y.$init();$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}CA=CS.nil;CB=new W.Once.ptr(0,new W.Mutex.ptr(0,0));CF=new W.Once.ptr(0,new W.Mutex.ptr(0,0));CG=CT.nil;}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["golang.org/x/tools/go/gcexportdata"]=(function(){var $pkg={},$init,E,F,G,A,B,C,K,H,I,D,J,T,U,X,P,Q;E=$packages["bufio"];F=$packages["bytes"];G=$packages["encoding/json"];A=$packages["fmt"];B=$packages["go/token"];C=$packages["go/types"];K=$packages["golang.org/x/tools/go/internal/gcimporter"];H=$packages["io"];I=$packages["io/ioutil"];D=$packages["os"];J=$packages["os/exec"];T=$ptrType(C.Package);U=$sliceType($emptyInterface);X=$sliceType($Uint8);P=function(a,b,c,d){var{a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a,b,c,d});$s=$s||0;s:while(true){switch($s){case 0:f=I.ReadAll(a);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if(!($interfaceIsEqual(h,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:i=A.Errorf("reading export data for %q: %v",new U([new $String(d),h]));$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=[T.nil,i];$s=5;case 5:return j;case 3:if(F.HasPrefix(g,(new X($stringToBytes("!"))))){$s=6;continue;}$s=7;continue;case 6:k=A.Errorf("can't read export data for %q directly from an archive file (call gcexportdata.NewReader first to extract export data)",new U([new $String(d)]));$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=[T.nil,k];$s=9;case 9:return l;case 7:if(F.HasPrefix(g,(new X($stringToBytes("package "))))){$s=10;continue;}$s=11;continue;case 10:m=K.ImportData(c,d,d,F.NewReader(g));$s=12;case 12:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=13;case 13:return n;case 11:if(g.$length>0){$s=14;continue;}$s=15;continue;case 14:o=(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]);if(o===(105)){$s=17;continue;}if((o===(118))||(o===(99))||(o===(100))){$s=18;continue;}if(o===(117)){$s=19;continue;}$s=20;continue;case 17:q=K.IImportData(b,c,$subslice(g,1),d);$s=22;case 22:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p[1];s=p[2];$s=-1;return[r,s];case 18:u=K.BImportData(b,c,g,d);$s=23;case 23:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;v=t[1];w=t[2];$s=-1;return[v,w];case 19:y=K.UImportData(b,c,$subslice(g,1),d);$s=24;case 24:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}x=y;z=x[1];aa=x[2];$s=-1;return[z,aa];case 20:ab=g.$length;if(ab>10){ab=10;}ac=A.Errorf("unexpected export data with prefix %q for path %s",new U([new $String(($bytesToString($subslice(g,0,ab)))),new $String(d)]));$s=25;case 25:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=[T.nil,ac];$s=26;case 26:return ad;case 21:case 16:case 15:ae=A.Errorf("empty export data for %s",new U([new $String(d)]));$s=27;case 27:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=[T.nil,ae];$s=28;case 28:return af;}return;}var $f={$blk:P,$c:true,$r,a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.Read=P;Q=function(a,b,c){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:e=H.WriteString(a,"i");$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[1];if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}g=K.IExportData(a,b,c);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=3;case 3:return h;}return;}var $f={$blk:Q,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};$pkg.Write=Q;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=E.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["golang.org/x/tools/go/types/typeutil"]=(function(){var $pkg={},$init,C,D,G,A,H,F,E,B,K,L,M,T,X,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,BD,BE,BF,BG,BH,BI,N,O;C=$packages["bytes"];D=$packages["fmt"];G=$packages["go/ast"];A=$packages["go/types"];H=$packages["golang.org/x/tools/go/ast/astutil"];F=$packages["golang.org/x/tools/internal/typeparams"];E=$packages["reflect"];B=$packages["sync"];K=$pkg.Map=$newType(0,$kindStruct,"typeutil.Map",true,"golang.org/x/tools/go/types/typeutil",true,function(hasher_,table_,length_){this.$val=this;if(arguments.length===0){this.hasher=new M.ptr(false,false,AG.nil);this.table=false;this.length=0;return;}this.hasher=hasher_;this.table=table_;this.length=length_;});L=$pkg.entry=$newType(0,$kindStruct,"typeutil.entry",true,"golang.org/x/tools/go/types/typeutil",false,function(key_,value_){this.$val=this;if(arguments.length===0){this.key=$ifaceNil;this.value=$ifaceNil;return;}this.key=key_;this.value=value_;});M=$pkg.Hasher=$newType(0,$kindStruct,"typeutil.Hasher",true,"golang.org/x/tools/go/types/typeutil",true,function(memo_,ptrMap_,sigTParams_){this.$val=this;if(arguments.length===0){this.memo=false;this.ptrMap=false;this.sigTParams=AG.nil;return;}this.memo=memo_;this.ptrMap=ptrMap_;this.sigTParams=sigTParams_;});T=$ptrType(A.Pointer);X=$ptrType(A.Named);AA=$ptrType(K);AB=$sliceType(L);AC=$ptrType(L);AD=$sliceType(A.Type);AE=$sliceType($Uint8);AF=$sliceType($emptyInterface);AG=$ptrType(A.TypeParamList);AH=$ptrType(A.Basic);AI=$ptrType(A.Array);AJ=$ptrType(A.Slice);AK=$ptrType(A.Struct);AL=$ptrType(A.Signature);AM=$ptrType(A.Union);AN=$ptrType(A.Interface);AO=$ptrType(A.Map);AP=$ptrType(A.Chan);AQ=$ptrType(A.TypeParam);AR=$ptrType(A.Tuple);BD=$funcType([A.Type,$emptyInterface],[],false);BE=$mapType($Uint32,AB);BF=$ptrType(A.Term);BG=$sliceType(BF);BH=$mapType(A.Type,$Uint32);BI=$mapType($emptyInterface,$Uint32);K.ptr.prototype.SetHasher=function(a){var a,b;b=this;M.copy(b.hasher,a);};K.prototype.SetHasher=function(a){return this.$val.SetHasher(a);};K.ptr.prototype.Delete=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(!(b===AA.nil)&&!(b.table===false)){$s=1;continue;}$s=2;continue;case 1:c=$clone(b.hasher,M).Hash(a);$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;f=(e=$mapIndex(b.table,$Uint32.keyFor(d)),e!==undefined?e.v:AB.nil);g=f;h=0;case 4:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]),L);if(!(!($interfaceIsEqual(j.key,$ifaceNil)))){k=false;$s=8;continue s;}l=A.Identical(a,j.key);$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;case 8:if(k){$s=6;continue;}$s=7;continue;case 6:L.copy(((i<0||i>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+i]),new L.ptr($ifaceNil,$ifaceNil));b.length=b.length-(1)>>0;$s=-1;return true;case 7:h++;$s=4;continue;case 5:case 2:$s=-1;return false;}return;}var $f={$blk:K.ptr.prototype.Delete,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};K.prototype.Delete=function(a){return this.$val.Delete(a);};K.ptr.prototype.At=function(a){var{a,b,c,d,e,f,g,h,i,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(!(b===AA.nil)&&!(b.table===false)){$s=1;continue;}$s=2;continue;case 1:d=$clone(b.hasher,M).Hash(a);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=(e=$mapIndex(b.table,$Uint32.keyFor(d)),e!==undefined?e.v:AB.nil);f=0;case 4:if(!(f=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]),L);if(!(!($interfaceIsEqual(g.key,$ifaceNil)))){h=false;$s=8;continue s;}i=A.Identical(a,g.key);$s=9;case 9:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;case 8:if(h){$s=6;continue;}$s=7;continue;case 6:$s=-1;return g.value;case 7:f++;$s=4;continue;case 5:case 2:$s=-1;return $ifaceNil;}return;}var $f={$blk:K.ptr.prototype.At,$c:true,$r,a,b,c,d,e,f,g,h,i,$s};return $f;};K.prototype.At=function(a){return this.$val.At(a);};K.ptr.prototype.Set=function(a,b){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=$ifaceNil;d=this;if(!(d.table===false)){$s=1;continue;}$s=2;continue;case 1:e=$clone(d.hasher,M).Hash(a);$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;h=(g=$mapIndex(d.table,$Uint32.keyFor(f)),g!==undefined?g.v:AB.nil);i=AC.nil;j=h;k=0;case 5:if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]),L);if($interfaceIsEqual(m.key,$ifaceNil)){$s=7;continue;}n=A.Identical(a,m.key);$s=10;case 10:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}if(n){$s=8;continue;}$s=9;continue;case 7:i=((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]);$s=9;continue;case 8:c=m.value;((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]).value=b;$s=-1;return c;case 9:k++;$s=5;continue;case 6:if(!(i===AC.nil)){L.copy(i,new L.ptr(a,b));}else{o=f;(d.table||$throwRuntimeError("assignment to entry in nil map")).set($Uint32.keyFor(o),{k:o,v:$append(h,new L.ptr(a,b))});}$s=3;continue;case 2:if(d.hasher.memo===false){M.copy(d.hasher,N());}p=$clone(d.hasher,M).Hash(a);$s=11;case 11:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;d.table=$makeMap($Uint32.keyFor,[{k:q,v:new AB([new L.ptr(a,b)])}]);case 3:d.length=d.length+(1)>>0;$s=-1;return c;}return;}var $f={$blk:K.ptr.prototype.Set,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};K.prototype.Set=function(a,b){return this.$val.Set(a,b);};K.ptr.prototype.Len=function(){var a;a=this;if(!(a===AA.nil)){return a.length;}return 0;};K.prototype.Len=function(){return this.$val.Len();};K.ptr.prototype.Iterate=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(!(b===AA.nil)){$s=1;continue;}$s=2;continue;case 1:c=b.table;d=0;e=c?c.keys():undefined;f=c?c.size:0;case 3:if(!(d=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]),L);if(!($interfaceIsEqual(l.key,$ifaceNil))){$s=7;continue;}$s=8;continue;case 7:$r=a(l.key,l.value);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:k++;$s=5;continue;case 6:d++;$s=3;continue;case 4:case 2:$s=-1;return;}return;}var $f={$blk:K.ptr.prototype.Iterate,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};K.prototype.Iterate=function(a){return this.$val.Iterate(a);};K.ptr.prototype.Keys=function(){var{a,b,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=this;a[0]=$makeSlice(AD,0,b.Len());$r=b.Iterate((function(a){return function(c,d){var c,d;a[0]=$append(a[0],c);};})(a));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return a[0];}return;}var $f={$blk:K.ptr.prototype.Keys,$c:true,$r,a,b,$s};return $f;};K.prototype.Keys=function(){return this.$val.Keys();};K.ptr.prototype.toString=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=[c];d=this;if(d===AA.nil){$s=-1;return"{}";}b[0]=new C.Buffer.ptr(AE.nil,0,0);e=D.Fprint(b[0],new AF([new $String("{")]));$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;c[0]="";$r=d.Iterate((function(a,b,c){return function $b(f,g){var{f,g,h,i,j,$s,$r,$c}=$restore(this,{f,g});$s=$s||0;s:while(true){switch($s){case 0:h=D.Fprint(b[0],new AF([new $String(c[0])]));$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;c[0]=", ";i=D.Fprint(b[0],new AF([f]));$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;if(a[0]){$s=3;continue;}$s=4;continue;case 3:j=D.Fprintf(b[0],": %q",new AF([g]));$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;case 4:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,f,g,h,i,j,$s};return $f;};})(a,b,c));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=D.Fprint(b[0],new AF([new $String("}")]));$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;$s=-1;return b[0].String();}return;}var $f={$blk:K.ptr.prototype.toString,$c:true,$r,a,b,c,d,e,f,$s};return $f;};K.prototype.toString=function(a){return this.$val.toString(a);};K.ptr.prototype.String=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.toString(true);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:K.ptr.prototype.String,$c:true,$r,a,b,c,$s};return $f;};K.prototype.String=function(){return this.$val.String();};K.ptr.prototype.KeysString=function(){var{a,b,c,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=this;b=a.toString(false);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$s=2;case 2:return c;}return;}var $f={$blk:K.ptr.prototype.KeysString,$c:true,$r,a,b,c,$s};return $f;};K.prototype.KeysString=function(){return this.$val.KeysString();};N=function(){return new M.ptr(new $global.Map(),new $global.Map(),AG.nil);};$pkg.MakeHasher=N;M.ptr.prototype.Hash=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=(d=$mapIndex(b.memo,A.Type.keyFor(a)),d!==undefined?[d.v,true]:[0,false]);e=c[0];f=c[1];if(!f){$s=1;continue;}$s=2;continue;case 1:g=$clone(b,M).hashFor(a);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}e=g;h=a;(b.memo||$throwRuntimeError("assignment to entry in nil map")).set(A.Type.keyFor(h),{k:h,v:e});case 2:$s=-1;return e;}return;}var $f={$blk:M.ptr.prototype.Hash,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};M.prototype.Hash=function(a){return this.$val.Hash(a);};O=function(a){var a,b,c;b=0;c=0;while(true){if(!(c>>0))))>>>0;b=$imul(b,(16777619))>>>0;c=c+(1)>>0;}return b;};M.ptr.prototype.hashFor=function(a){var{a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a;if($assertType(c,AH,true)[1]){$s=1;continue;}if($assertType(c,AI,true)[1]){$s=2;continue;}if($assertType(c,AJ,true)[1]){$s=3;continue;}if($assertType(c,AK,true)[1]){$s=4;continue;}if($assertType(c,T,true)[1]){$s=5;continue;}if($assertType(c,AL,true)[1]){$s=6;continue;}if($assertType(c,AM,true)[1]){$s=7;continue;}if($assertType(c,AN,true)[1]){$s=8;continue;}if($assertType(c,AO,true)[1]){$s=9;continue;}if($assertType(c,AP,true)[1]){$s=10;continue;}if($assertType(c,X,true)[1]){$s=11;continue;}if($assertType(c,AQ,true)[1]){$s=12;continue;}if($assertType(c,AR,true)[1]){$s=13;continue;}$s=14;continue;case 1:d=c.$val;$s=-1;return((d.Kind()>>>0));case 2:e=c.$val;q=$clone(b,M).Hash(e.Elem());$s=15;case 15:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=(9043+($imul(2,((e.Len().$low>>>0)))>>>0)>>>0)+($imul(3,q)>>>0)>>>0;$s=16;case 16:return r;case 3:f=c.$val;s=$clone(b,M).Hash(f.Elem());$s=17;case 17:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=9049+($imul(2,s)>>>0)>>>0;$s=18;case 18:return t;case 4:g=c.$val;u=9059;v=0;w=g.NumFields();x=v;y=w;case 19:if(!(x>>0;}u=u+(O(g.Tag(x)))>>>0;u=u+(O(z.object.Name()))>>>0;aa=$clone(b,M).Hash(z.object.Type());$s=21;case 21:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}u=u+(aa)>>>0;x=x+(1)>>0;$s=19;continue;case 20:$s=-1;return u;case 5:h=c.$val;ab=$clone(b,M).Hash(h.Elem());$s=22;case 22:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=9067+($imul(2,ab)>>>0)>>>0;$s=23;case 23:return ac;case 6:i=c.$val;ad=9091;if(i.Variadic()){ad=$imul(ad,(8863))>>>0;}ae=F.ForSignature(i);if(b.sigTParams===AG.nil&&!((ae.Len()===0))){M.copy(b,new M.ptr(new $global.Map(),b.ptrMap,ae));}af=0;case 24:if(!(af>>0))>>>0;af=af+(1)>>0;$s=24;continue;case 25:ai=$clone(b,M).hashTuple(i.Params());$s=27;case 27:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=$clone(b,M).hashTuple(i.Results());$s=28;case 28:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=(ad+($imul(3,ai)>>>0)>>>0)+($imul(5,aj)>>>0)>>>0;$s=29;case 29:return ak;case 7:j=c.$val;al=$clone(b,M).hashUnion(j);$s=30;case 30:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al;$s=31;case 31:return am;case 8:k=c.$val;an=9103;ao=0;aq=k.NumMethods();$s=32;case 32:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ap=aq;ar=ao;as=ap;case 33:if(!(ar>>0)+($imul(5,av)>>>0)>>>0))>>>0;ar=ar+(1)>>0;$s=33;continue;case 34:ax=F.InterfaceTermSet(k);$s=37;case 37:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}aw=ax;ay=aw[0];az=aw[1];if($interfaceIsEqual(az,$ifaceNil)){$s=38;continue;}$s=39;continue;case 38:ba=$clone(b,M).hashTermSet(ay);$s=40;case 40:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}an=an+(ba)>>>0;case 39:$s=-1;return an;case 9:l=c.$val;bb=$clone(b,M).Hash(l.Key());$s=41;case 41:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=$clone(b,M).Hash(l.Elem());$s=42;case 42:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=(9109+($imul(2,bb)>>>0)>>>0)+($imul(3,bc)>>>0)>>>0;$s=43;case 43:return bd;case 10:m=c.$val;be=$clone(b,M).Hash(m.Elem());$s=44;case 44:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bf=(9127+($imul(2,((m.Dir()>>>0)))>>>0)>>>0)+($imul(3,be)>>>0)>>>0;$s=45;case 45:return bf;case 11:n=c.$val;bg=$clone(b,M).hashPtr(n.Obj());$s=46;case 46:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=bg;bi=F.NamedTypeArgs(n);bj=0;case 47:if(!(bj>>0))>>>0;bj=bj+(1)>>0;$s=47;continue;case 48:$s=-1;return bh;case 12:o=c.$val;bm=$clone(b,M).hashTypeParam(o);$s=50;case 50:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bn=bm;$s=51;case 51:return bn;case 13:p=c.$val;bo=$clone(b,M).hashTuple(p);$s=52;case 52:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=bo;$s=53;case 53:return bp;case 14:bq=D.Sprintf("%T: %v",new AF([a,a]));$s=54;case 54:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}$panic(new $String(bq));$s=-1;return 0;}return;}var $f={$blk:M.ptr.prototype.hashFor,$c:true,$r,a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};M.prototype.hashFor=function(a){return this.$val.hashFor(a);};M.ptr.prototype.hashTuple=function(a){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Len();d=9137+($imul(2,((c>>>0)))>>>0)>>>0;e=0;case 1:if(!(e>>0))>>>0;e=e+(1)>>0;$s=1;continue;case 2:$s=-1;return d;}return;}var $f={$blk:M.ptr.prototype.hashTuple,$c:true,$r,a,b,c,d,e,f,$s};return $f;};M.prototype.hashTuple=function(a){return this.$val.hashTuple(a);};M.ptr.prototype.hashUnion=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;d=F.UnionTermSet(a);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return 9151;}g=$clone(b,M).hashTermSet(e);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=3;case 3:return h;}return;}var $f={$blk:M.ptr.prototype.hashUnion,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};M.prototype.hashUnion=function(a){return this.$val.hashUnion(a);};M.ptr.prototype.hashTermSet=function(a){var{a,b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=9157+($imul(2,((a.$length>>>0)))>>>0)>>>0;d=a;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=$clone(b,M).Hash(f.Type());$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(f.Tilde()){h=$imul(h,(9161))>>>0;}c=c+(($imul(3,h)>>>0))>>>0;e++;$s=1;continue;case 2:$s=-1;return c;}return;}var $f={$blk:M.ptr.prototype.hashTermSet,$c:true,$r,a,b,c,d,e,f,g,h,$s};return $f;};M.prototype.hashTermSet=function(a){return this.$val.hashTermSet(a);};M.ptr.prototype.hashTypeParam=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(!(b.sigTParams===AG.nil)){c=a.Index();if(c>=0&&c>>0)))>>>0)>>>0;}}d=$clone(b,M).hashPtr(a.Obj());$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:M.ptr.prototype.hashTypeParam,$c:true,$r,a,b,c,d,e,$s};return $f;};M.prototype.hashTypeParam=function(a){return this.$val.hashTypeParam(a);};M.ptr.prototype.hashPtr=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=(d=$mapIndex(b.ptrMap,$emptyInterface.keyFor(a)),d!==undefined?[d.v,true]:[0,false]);e=c[0];f=c[1];if(f){$s=-1;return e;}g=E.ValueOf(a);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=$clone(g,E.Value).Pointer();$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=((h>>>0));j=a;(b.ptrMap||$throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(j),{k:j,v:i});$s=-1;return i;}return;}var $f={$blk:M.ptr.prototype.hashPtr,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};M.prototype.hashPtr=function(a){return this.$val.hashPtr(a);};AA.methods=[{prop:"SetHasher",name:"SetHasher",pkg:"",typ:$funcType([M],[],false)},{prop:"Delete",name:"Delete",pkg:"",typ:$funcType([A.Type],[$Bool],false)},{prop:"At",name:"At",pkg:"",typ:$funcType([A.Type],[$emptyInterface],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([A.Type,$emptyInterface],[$emptyInterface],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Iterate",name:"Iterate",pkg:"",typ:$funcType([BD],[],false)},{prop:"Keys",name:"Keys",pkg:"",typ:$funcType([],[AD],false)},{prop:"toString",name:"toString",pkg:"golang.org/x/tools/go/types/typeutil",typ:$funcType([$Bool],[$String],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"KeysString",name:"KeysString",pkg:"",typ:$funcType([],[$String],false)}];M.methods=[{prop:"Hash",name:"Hash",pkg:"",typ:$funcType([A.Type],[$Uint32],false)},{prop:"hashFor",name:"hashFor",pkg:"golang.org/x/tools/go/types/typeutil",typ:$funcType([A.Type],[$Uint32],false)},{prop:"hashTuple",name:"hashTuple",pkg:"golang.org/x/tools/go/types/typeutil",typ:$funcType([AR],[$Uint32],false)},{prop:"hashUnion",name:"hashUnion",pkg:"golang.org/x/tools/go/types/typeutil",typ:$funcType([AM],[$Uint32],false)},{prop:"hashTermSet",name:"hashTermSet",pkg:"golang.org/x/tools/go/types/typeutil",typ:$funcType([BG],[$Uint32],false)},{prop:"hashTypeParam",name:"hashTypeParam",pkg:"golang.org/x/tools/go/types/typeutil",typ:$funcType([AQ],[$Uint32],false)},{prop:"hashPtr",name:"hashPtr",pkg:"golang.org/x/tools/go/types/typeutil",typ:$funcType([$emptyInterface],[$Uint32],false)}];K.init("golang.org/x/tools/go/types/typeutil",[{prop:"hasher",name:"hasher",embedded:false,exported:false,typ:M,tag:""},{prop:"table",name:"table",embedded:false,exported:false,typ:BE,tag:""},{prop:"length",name:"length",embedded:false,exported:false,typ:$Int,tag:""}]);L.init("golang.org/x/tools/go/types/typeutil",[{prop:"key",name:"key",embedded:false,exported:false,typ:A.Type,tag:""},{prop:"value",name:"value",embedded:false,exported:false,typ:$emptyInterface,tag:""}]);M.init("golang.org/x/tools/go/types/typeutil",[{prop:"memo",name:"memo",embedded:false,exported:false,typ:BH,tag:""},{prop:"ptrMap",name:"ptrMap",embedded:false,exported:false,typ:BI,tag:""},{prop:"sigTParams",name:"sigTParams",embedded:false,exported:false,typ:AG,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=C.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["runtime/debug"]=(function(){var $pkg={},$init,D,B,C,G,E,F,A,AG,M;D=$packages["fmt"];B=$packages["os"];C=$packages["runtime"];G=$packages["sort"];E=$packages["strconv"];F=$packages["strings"];A=$packages["time"];AG=$sliceType($Uint8);M=function(){var c,d;c=$makeSlice(AG,1024);while(true){d=C.Stack(c,false);if(d/",-1)),new $String(d)]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 2:$r=e.Printf("%s",new CP([new $String(c)]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:BP.ptr.prototype.PrintCond,$c:true,$r,b,c,d,e,$s};return $f;};BP.prototype.PrintCond=function(b,c,d){return this.$val.PrintCond(b,c,d);};BP.ptr.prototype.SetPos=function(b){var b,c;c=this;c.posAvailable=true;c.pos=b;};BP.prototype.SetPos=function(b){return this.$val.SetPos(b);};BP.ptr.prototype.writePos=function(){var{b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(b.posAvailable){$s=1;continue;}$s=2;continue;case 1:b.posAvailable=false;c=b.Write(new CR([8]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}c;e=H.Write(b,(d=H.BigEndian,new d.constructor.elem(d)),new $Uint32(((b.pos>>>0))));$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;case 2:$s=-1;return;}return;}var $f={$blk:BP.ptr.prototype.writePos,$c:true,$r,b,c,d,e,$s};return $f;};BP.prototype.writePos=function(){return this.$val.writePos();};BP.ptr.prototype.Indent=function(b){var{b,c,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;c.pkgCtx.indentation=c.pkgCtx.indentation+(1)>>0;$r=b();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c.pkgCtx.indentation=c.pkgCtx.indentation-(1)>>0;$s=-1;return;}return;}var $f={$blk:BP.ptr.prototype.Indent,$c:true,$r,b,c,$s};return $f;};BP.prototype.Indent=function(b){return this.$val.Indent(b);};BP.ptr.prototype.CatchOutput=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.output;d.output=CR.nil;d.pkgCtx.indentation=d.pkgCtx.indentation+(b)>>0;$r=c();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=d.writePos();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=d.output;d.output=e;d.pkgCtx.indentation=d.pkgCtx.indentation-(b)>>0;$s=-1;return f;}return;}var $f={$blk:BP.ptr.prototype.CatchOutput,$c:true,$r,b,c,d,e,f,$s};return $f;};BP.prototype.CatchOutput=function(b,c){return this.$val.CatchOutput(b,c);};BP.ptr.prototype.Delayed=function(b){var{b,c,d,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.CatchOutput(0,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c.delayedOutput=d;$s=-1;return;}return;}var $f={$blk:BP.ptr.prototype.Delayed,$c:true,$r,b,c,d,$s};return $f;};BP.prototype.Delayed=function(b){return this.$val.Delayed(b);};BP.ptr.prototype.expandTupleArgs=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(!((b.$length===1))){$s=-1;return b;}e=c.pkgCtx.Info.Info.TypeOf((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]));$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=$assertType(e,CS,true);f=d[0];g=d[1];if(!g){$s=-1;return b;}h=c.newVariable("_tuple");$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=new $String(i);k=c.translateExpr((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]));$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$r=c.Printf("%s = %s;",new CP([j,l]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=$makeSlice(CT,f.Len());m=b;n=0;case 5:if(!(n=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+o]=r);n++;$s=5;continue;case 6:$s=-1;return b;}return;}var $f={$blk:BP.ptr.prototype.expandTupleArgs,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};BP.prototype.expandTupleArgs=function(b){return this.$val.expandTupleArgs(b);};BP.ptr.prototype.translateArgs=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=e.expandTupleArgs(c);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}c=f;g=new BH.ptr(b);if(b.Variadic()&&(c.$length===0)){$s=2;continue;}$s=3;continue;case 2:h=e.typeName($clone(g,BH).VariadicType());$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=new $String(h);j=A.Sprintf("%s.nil",new CP([i]));$s=5;case 5:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=new CQ([j]);$s=6;case 6:return k;case 3:l=false;m=1;while(true){if(!(m=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+m]))),n!==undefined?n.v:false);m=m+(1)>>0;}o=$makeSlice(CQ,c.$length);p=c;q=0;case 7:if(!(q=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);t=s;u=$clone(g,BH).Param(r,d);$s=9;case 9:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;w=e.translateImplicitConversionWithCloning(t,v);$s=10;case 10:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w.String();$s=11;case 11:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;if(l&&$interfaceIsEqual((z=$mapIndex(e.pkgCtx.Info.Info.Types,J.Expr.keyFor(s)),z!==undefined?z.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value,$ifaceNil)){$s=12;continue;}$s=13;continue;case 12:aa=e.newVariable("_arg");$s=14;case 14:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa;$r=e.Printf("%s = %s;",new CP([new $String(ab),new $String(y)]));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}y=ab;case 13:((r<0||r>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+r]=y);q++;$s=7;continue;case 8:if(b.Variadic()&&!d){$s=16;continue;}$s=17;continue;case 16:ac=e.typeName($clone(g,BH).VariadicType());$s=18;case 18:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=new $String(ac);ae=new $String(F.Join($subslice(o,$clone(g,BH).RequiredParams()),", "));af=A.Sprintf("new %s([%s])",new CP([ad,ae]));$s=19;case 19:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=$append($subslice(o,0,$clone(g,BH).RequiredParams()),af);$s=20;case 20:return ag;case 17:$s=-1;return o;}return;}var $f={$blk:BP.ptr.prototype.translateArgs,$c:true,$r,aa,ab,ac,ad,ae,af,ag,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BP.prototype.translateArgs=function(b,c,d){return this.$val.translateArgs(b,c,d);};BP.ptr.prototype.translateSelection=function(b,c){var{aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=CQ.nil;f=b.Recv();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;i=b.Index();$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=0;case 3:if(!(j=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+j]);m=g.Underlying();$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=$assertType(m,CV,true);n=l[0];o=l[1];if(o){g=n.Elem();}p=g.Underlying();$s=6;case 6:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=$assertType(p,CW);r=BB(q.Tag(k));if(!(r==="")){$s=7;continue;}$s=8;continue;case 7:s=q.Field(k).object.Name();case 9:t=AN(q,0);$s=11;case 11:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}e=$append(e,t);u=q.Field(0).object.Type();if(U.IsJsObject(u)){$s=-1;return[e,r];}v=u.Underlying();$s=12;case 12:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=v;w=$assertType(u,CV,true);x=w[0];y=w[1];if(y){$s=13;continue;}$s=14;continue;case 13:z=x.Elem().Underlying();$s=15;case 15:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}u=z;case 14:aa=false;ab=$assertType(u,CW,true);q=ab[0];aa=ab[1];if(!aa||(q.NumFields()===0)){$s=16;continue;}$s=17;continue;case 16:ad=A.Sprintf("could not find field with type *js.Object for 'js' tag of field '%s'",new CP([new $String(s)]));$s=18;case 18:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}d.pkgCtx.errList=$append(d.pkgCtx.errList,(ac=new M.Error.ptr(d.pkgCtx.fileSet,c,ad,true,0,0,0),new ac.constructor.elem(ac)));$s=-1;return[CQ.nil,""];case 17:$s=9;continue;case 10:case 8:ae=AN(q,k);$s=19;case 19:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}e=$append(e,ae);g=q.Field(k).object.Type();j++;$s=3;continue;case 4:$s=-1;return[e,""];}return;}var $f={$blk:BP.ptr.prototype.translateSelection,$c:true,$r,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BP.prototype.translateSelection=function(b,c){return this.$val.translateSelection(b,c);};BP.ptr.prototype.zeroValue=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=b.Underlying();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;if($assertType(d,CY,true)[1]){$s=2;continue;}if($assertType(d,CZ,true)[1]||$assertType(d,CW,true)[1]){$s=3;continue;}if($assertType(d,DA,true)[1]||$assertType(d,DB,true)[1]||$assertType(d,DC,true)[1]||$assertType(d,CU,true)[1]||$assertType(d,DD,true)[1]||$assertType(d,CV,true)[1]){$s=4;continue;}$s=5;continue;case 2:f=d.$val;if(AR(f)){$s=8;continue;}if(AV(f)){$s=9;continue;}if(AW(f)){$s=10;continue;}if((f.Kind()===18)){$s=11;continue;}if((f.Kind()===25)){$s=12;continue;}$s=13;continue;case 8:$s=-1;return c.newConst(b,K.MakeBool(false));case 9:$s=-1;return c.newConst(b,K.MakeInt64(new $Int64(0,0)));case 10:$s=-1;return c.newConst(b,K.MakeString(""));case 11:$s=14;continue;case 12:$panic(new $String("Zero value for untyped nil."));$s=14;continue;case 13:j=A.Sprintf("Unhandled basic type: %v\n",new CP([f]));$s=15;case 15:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}$panic(new $String(j));case 14:case 7:$s=6;continue;case 3:g=d;$s=-1;return c.setType(new J.CompositeLit.ptr($ifaceNil,0,CT.nil,0,false),b);case 4:h=d;$s=6;continue;case 5:i=d;k=A.Sprintf("Unhandled type: %T\n",new CP([i]));$s=16;case 16:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}$panic(new $String(k));case 6:l=c.newIdent("nil",b);m=l;(c.pkgCtx.Info.Info.Uses||$throwRuntimeError("assignment to entry in nil map")).set(DE.keyFor(m),{k:m,v:AK});$s=-1;return l;}return;}var $f={$blk:BP.ptr.prototype.zeroValue,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};BP.prototype.zeroValue=function(b){return this.$val.zeroValue(b);};BP.ptr.prototype.newConst=function(b,c){var b,c,d,e,f;d=this;e=new J.Ident.ptr(0,"",DF.nil);f=e;(d.pkgCtx.Info.Info.Types||$throwRuntimeError("assignment to entry in nil map")).set(J.Expr.keyFor(f),{k:f,v:new M.TypeAndValue.ptr(0,b,c)});return e;};BP.prototype.newConst=function(b,c){return this.$val.newConst(b,c);};BP.ptr.prototype.newVariable=function(b){var{b,c,d,e,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.newVariableWithLevel(b,false);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=2;case 2:return e;}return;}var $f={$blk:BP.ptr.prototype.newVariable,$c:true,$r,b,c,d,e,$s};return $f;};BP.prototype.newVariable=function(b){return this.$val.newVariable(b);};BP.ptr.prototype.newVariableWithLevel=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(b===""){$panic(new $String("newVariable: empty name"));}b=BF(b);if(d.pkgCtx.minify){e=0;while(true){f=97;if(c){f=65;}g=e;b="";while(true){b=($encodeRune((((f+((h=g%26,h===h?h:$throwRuntimeError("integer divide by zero")))>>0)>>0))))+b;g=(i=g/26,(i===i&&i!==1/0&&i!==-1/0)?i>>0:$throwRuntimeError("integer divide by zero"))-1>>0;if(g===-1){break;}}if((j=$mapIndex(d.allVars,$String.keyFor(b)),j!==undefined?j.v:0)===0){break;}e=e+(1)>>0;}}l=(k=$mapIndex(d.allVars,$String.keyFor(b)),k!==undefined?k.v:0);m=b;(d.allVars||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(m),{k:m,v:l+1>>0});n=b;if(l>0){$s=1;continue;}$s=2;continue;case 1:o=A.Sprintf("%s$%d",new CP([new $String(b),new $Int(l)]));$s=3;case 3:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;case 2:if(c){p=d.parent;while(true){if(!(!(p===DG.nil))){break;}q=b;(p.allVars||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(q),{k:q,v:l+1>>0});p=p.parent;}$s=-1;return n;}d.localVars=$append(d.localVars,n);$s=-1;return n;}return;}var $f={$blk:BP.ptr.prototype.newVariableWithLevel,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};BP.prototype.newVariableWithLevel=function(b,c){return this.$val.newVariableWithLevel(b,c);};BP.ptr.prototype.newIdent=function(b,c){var b,c,d,e,f,g,h;d=this;e=J.NewIdent(b);d.setType(e,c);f=M.NewVar(0,d.pkgCtx.Info.Pkg,b,c);g=e;(d.pkgCtx.Info.Info.Uses||$throwRuntimeError("assignment to entry in nil map")).set(DE.keyFor(g),{k:g,v:f});h=f;(d.pkgCtx.objectNames||$throwRuntimeError("assignment to entry in nil map")).set(M.Object.keyFor(h),{k:h,v:b});return e;};BP.prototype.newIdent=function(b,c){return this.$val.newIdent(b,c);};BP.ptr.prototype.setType=function(b,c){var b,c,d,e;d=this;e=b;(d.pkgCtx.Info.Info.Types||$throwRuntimeError("assignment to entry in nil map")).set(J.Expr.keyFor(e),{k:e,v:new M.TypeAndValue.ptr(0,c,$ifaceNil)});return b;};BP.prototype.setType=function(b,c){return this.$val.setType(b,c);};BP.ptr.prototype.pkgVar=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b===c.pkgCtx.Info.Pkg){$s=-1;return"$pkg";}d=(e=$mapIndex(c.pkgCtx.pkgVars,$String.keyFor(b.Path())),e!==undefined?[e.v,true]:["",false]);f=d[0];g=d[1];if(!g){$s=1;continue;}$s=2;continue;case 1:h=A.Sprintf("$packages[\"%s\"]",new CP([new $String(b.Path())]));$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}f=h;case 2:$s=-1;return f;}return;}var $f={$blk:BP.ptr.prototype.pkgVar,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};BP.prototype.pkgVar=function(b){return this.$val.pkgVar(b);};AL=function(b){var b,c;c=b;if($assertType(c,DH,true)[1]||$assertType(c,DI,true)[1]){return true;}return false;};AM=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=b.Parent();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(!(!(d===DJ.nil))){c=false;$s=1;continue s;}e=b.Parent();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e.Parent();$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}c=f===M.Universe;case 1:g=c;$s=5;case 5:return g;}return;}var $f={$blk:AM,$c:true,$r,b,c,d,e,f,g,$s};return $f;};BP.ptr.prototype.objectName=function(b){var{aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=AM(b);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(d){$s=1;continue;}$s=2;continue;case 1:e=b;(c.pkgCtx.dependencies||$throwRuntimeError("assignment to entry in nil map")).set(M.Object.keyFor(e),{k:e,v:true});g=b.Pkg();$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(!(g===c.pkgCtx.Info.Pkg)){f=true;$s=6;continue s;}if(!(AL(b))){h=false;$s=8;continue s;}i=b.Exported();$s=9;case 9:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;case 8:f=h;case 6:if(f){$s=4;continue;}$s=5;continue;case 4:j=b.Pkg();$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=c.pkgVar(j);$s=11;case 11:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=b.Name();$s=12;case 12:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=k+"."+l;$s=13;case 13:return m;case 5:case 2:n=(o=$mapIndex(c.pkgCtx.objectNames,M.Object.keyFor(b)),o!==undefined?[o.v,true]:["",false]);p=n[0];q=n[1];if(!q){$s=14;continue;}$s=15;continue;case 14:r=b.Name();$s=16;case 16:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;t=AM(b);$s=17;case 17:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;v=c.newVariableWithLevel(s,u);$s=18;case 18:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}p=v;w=b;(c.pkgCtx.objectNames||$throwRuntimeError("assignment to entry in nil map")).set(M.Object.keyFor(w),{k:w,v:p});case 15:x=$assertType(b,DH,true);y=x[0];z=x[1];if(z&&(aa=$mapIndex(c.pkgCtx.escapingVars,DH.keyFor(y)),aa!==undefined?aa.v:false)){$s=-1;return p+"[0]";}$s=-1;return p;}return;}var $f={$blk:BP.ptr.prototype.objectName,$c:true,$r,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BP.prototype.objectName=function(b){return this.$val.objectName(b);};BP.ptr.prototype.varPtrName=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=AM(b);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(d&&b.object.Exported()){$s=1;continue;}$s=2;continue;case 1:e=c.pkgVar(b.object.Pkg());$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e+"."+b.object.Name()+"$ptr";$s=5;case 5:return f;case 2:g=(h=$mapIndex(c.pkgCtx.varPtrNames,DH.keyFor(b)),h!==undefined?[h.v,true]:["",false]);i=g[0];j=g[1];if(!j){$s=6;continue;}$s=7;continue;case 6:k=b.object.Name()+"$ptr";l=AM(b);$s=8;case 8:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=c.newVariableWithLevel(k,m);$s=9;case 9:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}i=n;o=b;(c.pkgCtx.varPtrNames||$throwRuntimeError("assignment to entry in nil map")).set(DH.keyFor(o),{k:o,v:i});case 7:$s=-1;return i;}return;}var $f={$blk:BP.ptr.prototype.varPtrName,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};BP.prototype.varPtrName=function(b){return this.$val.varPtrName(b);};BP.ptr.prototype.typeName=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b;if($assertType(d,CY,true)[1]){$s=1;continue;}if($assertType(d,DK,true)[1]){$s=2;continue;}if($assertType(d,DB,true)[1]){$s=3;continue;}$s=4;continue;case 1:e=d.$val;h=AP(e);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i="$"+h;$s=6;case 6:return i;case 2:f=d.$val;if(f.Obj().object.Name()==="error"){$s=-1;return"$error";}j=c.objectName(f.Obj());$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=8;case 8:return k;case 3:g=d.$val;l=g.Empty();$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}if(l){$s=9;continue;}$s=10;continue;case 9:$s=-1;return"$emptyInterface";case 10:case 4:n=c.pkgCtx.anonTypeMap.At(b);$s=12;case 12:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=$assertType(n,DL,true);o=m[0];p=m[1];if(!p){$s=13;continue;}$s=14;continue;case 13:q=c.initArgs(b);$s=15;case 15:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;r=AO(b);$s=16;case 16:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=F.ToLower($substring(r,5));$s=17;case 17:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=c.newVariableWithLevel(s+"Type",true);$s=18;case 18:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;o=M.NewTypeName(0,c.pkgCtx.Info.Pkg,u,b);c.pkgCtx.anonTypes=$append(c.pkgCtx.anonTypes,o);v=c.pkgCtx.anonTypeMap.Set(b,o);$s=19;case 19:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}v;case 14:w=o;(c.pkgCtx.dependencies||$throwRuntimeError("assignment to entry in nil map")).set(M.Object.keyFor(w),{k:w,v:true});$s=-1;return o.object.Name();}return;}var $f={$blk:BP.ptr.prototype.typeName,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};BP.prototype.typeName=function(b){return this.$val.typeName(b);};BP.ptr.prototype.externalize=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(U.IsJsObject(c)){$s=-1;return b;}f=c.Underlying();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;if($assertType(e,CY,true)[1]){$s=2;continue;}$s=3;continue;case 2:g=e.$val;if(AV(g)&&!AQ(g)&&!AS(g)){$s=-1;return b;}if(g.Kind()===25){$s=-1;return"null";}case 3:h=new $String(b);i=d.typeName(c);$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=new $String(i);k=A.Sprintf("$externalize(%s, %s)",new CP([h,j]));$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=6;case 6:return l;}return;}var $f={$blk:BP.ptr.prototype.externalize,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};BP.prototype.externalize=function(b,c){return this.$val.externalize(b,c);};BP.ptr.prototype.handleEscapingVars=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=this;e=new $global.Map();f=d.pkgCtx.escapingVars;g=0;h=f?f.keys():undefined;i=f?f.size:0;while(true){if(!(g=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+p]).object.Name()===((q<0||q>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+q]).object.Name()){return((p<0||p>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+p]).object.Pos()<((q<0||q>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+q]).object.Pos();}return((p<0||p>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+p]).object.Name()<((q<0||q>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+q]).object.Name();};})(c));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=c[0];q=0;case 3:if(!(q=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);s=d.objectName(r);$s=5;case 5:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}n=$append(n,s);t=r;(d.pkgCtx.escapingVars||$throwRuntimeError("assignment to entry in nil map")).set(DH.keyFor(t),{k:t,v:true});q++;$s=3;continue;case 4:$r=Q.Strings(n);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}u=n;v=0;case 7:if(!(v=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v]);$r=d.Printf("%s = [%s];",new CP([new $String(w),new $String(w)]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}v++;$s=7;continue;case 8:$s=-1;return;}return;}var $f={$blk:BP.ptr.prototype.handleEscapingVars,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s};return $f;};BP.prototype.handleEscapingVars=function(b){return this.$val.handleEscapingVars(b);};AN=function(b,c){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=b.Field(c).object.Name();if(d==="_"||(e=$mapIndex(CC,$String.keyFor(d)),e!==undefined?e.v:false)){$s=1;continue;}$s=2;continue;case 1:f=A.Sprintf("%s$%d",new CP([new $String(d),new $Int(c)]));$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=4;case 4:return g;case 2:$s=-1;return d;}return;}var $f={$blk:AN,$c:true,$r,b,c,d,e,f,g,$s};return $f;};AO=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=b.Underlying();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;if($assertType(c,CY,true)[1]){$s=2;continue;}if($assertType(c,CZ,true)[1]){$s=3;continue;}if($assertType(c,DA,true)[1]){$s=4;continue;}if($assertType(c,DB,true)[1]){$s=5;continue;}if($assertType(c,DC,true)[1]){$s=6;continue;}if($assertType(c,CU,true)[1]){$s=7;continue;}if($assertType(c,DD,true)[1]){$s=8;continue;}if($assertType(c,CW,true)[1]){$s=9;continue;}if($assertType(c,CV,true)[1]){$s=10;continue;}$s=11;continue;case 2:e=c.$val;o=AP(e);$s=13;case 13:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p="$kind"+o;$s=14;case 14:return p;case 3:f=c.$val;$s=-1;return"$kindArray";case 4:g=c.$val;$s=-1;return"$kindChan";case 5:h=c.$val;$s=-1;return"$kindInterface";case 6:i=c.$val;$s=-1;return"$kindMap";case 7:j=c.$val;$s=-1;return"$kindFunc";case 8:k=c.$val;$s=-1;return"$kindSlice";case 9:l=c.$val;$s=-1;return"$kindStruct";case 10:m=c.$val;$s=-1;return"$kindPtr";case 11:n=c;q=A.Sprintf("Unhandled type: %T\n",new CP([n]));$s=15;case 15:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}$panic(new $String(q));case 12:$s=-1;return"";}return;}var $f={$blk:AO,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};AP=function(b){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=b.Kind();if(c===(20)){$s=2;continue;}if(c===(8)){$s=3;continue;}if(c===(5)){$s=4;continue;}if(c===(18)){$s=5;continue;}$s=6;continue;case 2:$s=-1;return"Int";case 3:$s=-1;return"Uint8";case 4:$s=-1;return"Int32";case 5:$s=-1;return"UnsafePointer";case 6:d=b.String();$s=8;case 8:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=F.ToUpper($substring(e,0,1));$s=9;case 9:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f+$substring(e,1);$s=10;case 10:return g;case 7:case 1:$s=-1;return"";}return;}var $f={$blk:AP,$c:true,$r,b,c,d,e,f,g,$s};return $f;};AQ=function(b){var b;return(b.Kind()===6)||(b.Kind()===11);};AR=function(b){var b;return!(((b.Info()&1)===0));};AS=function(b){var b;return!(((b.Info()&16)===0));};AT=function(b){var b;return!(((b.Info()&8)===0));};AU=function(b){var b;return!(((b.Info()&2)===0));};AV=function(b){var b;return!(((b.Info()&26)===0));};AW=function(b){var b;return!(((b.Info()&32)===0));};AX=function(b){var b;return!(((b.Info()&4)===0));};AY=function(b){var b,c,d,e;if($interfaceIsEqual(b,$ifaceNil)){return true;}c=$assertType(b,DE,true);d=c[0];e=c[1];if(e){return d.Name==="_";}return false;};AZ=function(b){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:d=b.Underlying();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;if($assertType(c,CY,true)[1]){$s=2;continue;}if($assertType(c,CZ,true)[1]||$assertType(c,DA,true)[1]||$assertType(c,DC,true)[1]||$assertType(c,CU,true)[1]){$s=3;continue;}if($assertType(c,CV,true)[1]){$s=4;continue;}$s=5;continue;case 2:e=c.$val;$s=-1;return!AQ(e)&&!AS(e)&&!((e.Kind()===25));case 3:f=c;$s=-1;return true;case 4:g=c.$val;i=g.Elem().Underlying();$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=$assertType(i,CZ,true);j=h[1];$s=-1;return j;case 5:$s=-1;return false;}return;}var $f={$blk:AZ,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};BA=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=G.NewBuffer(CR.nil);d=(new CR($stringToBytes(b)));e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);g=f;if(g===(8)){$s=4;continue;}if(g===(12)){$s=5;continue;}if(g===(10)){$s=6;continue;}if(g===(13)){$s=7;continue;}if(g===(9)){$s=8;continue;}if(g===(11)){$s=9;continue;}if(g===(34)){$s=10;continue;}if(g===(92)){$s=11;continue;}$s=12;continue;case 4:h=c.WriteString("\\b");$s=14;case 14:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h;$s=13;continue;case 5:i=c.WriteString("\\f");$s=15;case 15:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$s=13;continue;case 6:j=c.WriteString("\\n");$s=16;case 16:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;$s=13;continue;case 7:k=c.WriteString("\\r");$s=17;case 17:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;$s=13;continue;case 8:l=c.WriteString("\\t");$s=18;case 18:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;$s=13;continue;case 9:m=c.WriteString("\\v");$s=19;case 19:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;$s=13;continue;case 10:n=c.WriteString("\\\"");$s=20;case 20:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;$s=13;continue;case 11:o=c.WriteString("\\\\");$s=21;case 21:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;$s=13;continue;case 12:if(f<32||f>126){$s=22;continue;}$s=23;continue;case 22:p=A.Fprintf(c,"\\x%02X",new CP([new $Uint8(f)]));$s=24;case 24:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;e++;$s=1;continue;case 23:q=c.WriteByte(f);$s=25;case 25:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;case 13:case 3:e++;$s=1;continue;case 2:$s=-1;return"\""+c.String()+"\"";}return;}var $f={$blk:BA,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};BB=function(b){var b,c,d,e,f,g;while(true){if(!(!(b===""))){break;}c=0;while(true){if(!(c>0;}b=$substring(b,c);if(b===""){break;}c=0;while(true){if(!(c>0;}if((c+1>>0)>=b.length||!((b.charCodeAt(c)===58))||!((b.charCodeAt((c+1>>0))===34))){break;}d=($substring(b,0,c));b=$substring(b,(c+1>>0));c=1;while(true){if(!(c>0;}c=c+(1)>>0;}if(c>=b.length){break;}e=($substring(b,0,(c+1>>0)));b=$substring(b,(c+1>>0));if(d==="js"){f=E.Unquote(e);g=f[0];return g;}}return"";};BC=function(b){var b;return(b>=97&&b<=122)||(b>=65&&b<=90)||(b>=48&&b<=57)||(b===95)||(b===36);};BD=function(b,c){var b,c,d,e,f,g,h;if(!c){return b;}d=CR.nil;e=0;while(true){if(!(b.$length>0)){break;}f=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]);if(f===(8)){d=$appendSlice(d,$subslice(b,0,5));b=$subslice(b,5);continue;}else if((f===(32))||(f===(9))||(f===(10))){if((!BC(e)||!BC((1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1])))&&!((e===45)&&((1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1])===45))){b=$subslice(b,1);continue;}}else if(f===(34)){d=$append(d,34);b=$subslice(b,1);while(true){g=G.IndexAny(b,"\"\\");d=$appendSlice(d,$subslice(b,0,g));b=$subslice(b,g);if((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0])===34){break;}d=$appendSlice(d,$subslice(b,0,2));b=$subslice(b,2);}}else if(f===(47)){if((1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1])===42){h=G.Index($subslice(b,2),(new CR($stringToBytes("*/"))));b=$subslice(b,(h+4>>0));continue;}}d=$append(d,(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]));e=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]);b=$subslice(b,1);}return d;};BE=function(b,c,d){var b,c,d,e,f;if(c&&d){return b;}e="$length";if(d){e="length";}f="%2f >= %1e."+e;if(!c){f="(%2f < 0 || "+f+")";}return"("+f+" ? ($throwRuntimeError(\"index out of range\"), undefined) : "+b+")";};BF=function(b){var b;return F.Replace(N.QueryEscape(b),"%","$",-1);};BG=function(b){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=b;d=0;case 1:if(!(d>0;}return c;};BH.prototype.RequiredParams=function(){return this.$val.RequiredParams();};BH.ptr.prototype.VariadicType=function(){var b;b=this;if(!b.Sig.Variadic()){return $ifaceNil;}return b.Sig.Params().At(b.Sig.Params().Len()-1>>0).object.Type();};BH.prototype.VariadicType=function(){return this.$val.VariadicType();};BH.ptr.prototype.Param=function(b,c){var{b,c,d,e,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(b<$clone(d,BH).RequiredParams()){$s=-1;return d.Sig.Params().At(b).object.Type();}if(!d.Sig.Variadic()){$s=1;continue;}$s=2;continue;case 1:e=A.Errorf("Tried to access parameter %d of a non-variadic signature %s",new CP([new $Int(b),d.Sig]));$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$panic(e);case 2:if(c){$s=-1;return $clone(d,BH).VariadicType();}$s=-1;return $assertType($clone(d,BH).VariadicType(),DD).Elem();}return;}var $f={$blk:BH.ptr.prototype.Param,$c:true,$r,b,c,d,e,$s};return $f;};BH.prototype.Param=function(b,c){return this.$val.Param(b,c);};BI=function(b,c,d){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:f=c.Position(d);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=(e=f,new e.constructor.elem(e));h=b;i=A.Errorf("%s: %w",new CP([g,h]));$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=3;case 3:return j;}return;}var $f={$blk:BI,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};$pkg.ErrorAt=BI;BJ.ptr.prototype.Unwrap=function(){var{b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if($interfaceIsEqual(b.cause,$ifaceNil)){$s=-1;return $ifaceNil;}c=$assertType(b.cause,$error,true);d=c[0];e=c[1];if(e){$s=-1;return d;}f=$assertType(b.cause,$String,true);g=f[0];h=f[1];if(h){$s=-1;return I.New(g);}i=A.Errorf("[%T]: %v",new CP([b.cause,b.cause]));$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=2;case 2:return j;}return;}var $f={$blk:BJ.ptr.prototype.Unwrap,$c:true,$r,b,c,d,e,f,g,h,i,j,$s};return $f;};BJ.prototype.Unwrap=function(){return this.$val.Unwrap();};BJ.ptr.prototype.Write=function(b){var b,c,d,e,f;c=0;d=$ifaceNil;e=this;f=e.clues.Write(b);c=f[0];d=f[1];return[c,d];};BJ.prototype.Write=function(b){return this.$val.Write(b);};BJ.ptr.prototype.Error=function(){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=new F.Builder.ptr(DM.nil,CR.nil);d=c;e=$clone(b,BJ).Unwrap();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e.Error();$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=F.TrimSpace(f);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=new $String(g);i=A.Fprintln(d,new CP([new $String("[compiler panic] "),h]));$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;if(b.clues.Len()>0){$s=5;continue;}$s=6;continue;case 5:j=A.Fprintln(c,new CP([new $String("\n"+b.clues.String())]));$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;case 6:if(b.stack.$length>0){$s=8;continue;}$s=9;continue;case 8:k=O.MustCompile("(?m)^");$s=10;case 10:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k.ReplaceAll(b.stack,(new CR($stringToBytes(" "))));$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=A.Fprintln(c,new CP([new $String("\nOriginal stack trace:\n"),new $String(($bytesToString(m)))]));$s=12;case 12:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;case 9:$s=-1;return c.String();}return;}var $f={$blk:BJ.ptr.prototype.Error,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};BJ.prototype.Error=function(){return this.$val.Error();};BK=function(b){var b,c;c=new BJ.ptr(b,P.Stack(),new F.Builder.ptr(DM.nil,CR.nil));return c;};BL=function(b){var b,c,d,e;c=$assertType(b,DN,true);d=c[0];e=c[1];return[d,e];};BP.ptr.prototype.translateStmtList=function(b){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);$r=c.translateStmt(f,DO.nil);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e++;$s=1;continue;case 2:c.SetPos(0);$s=-1;return;}return;}var $f={$blk:BP.ptr.prototype.translateStmtList,$c:true,$r,b,c,d,e,f,$s};return $f;};BP.prototype.translateStmtList=function(b){return this.$val.translateStmtList(b);};BP.ptr.prototype.translateStmt=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,hw,hx,hy,hz,i,ia,ib,ic,id,ie,ig,ih,ii,ij,ik,il,im,io,ip,iq,ir,is,it,iu,iv,iw,ix,iy,iz,j,ja,jb,jc,jd,je,jf,jg,jh,ji,jj,jk,jl,jm,jn,jo,jp,jq,jr,js,jt,ju,jv,jw,jx,jy,jz,k,ka,kb,kc,kd,ke,kf,kg,kh,ki,kj,kk,kl,km,kn,ko,kp,kq,kr,ks,kt,ku,kv,kw,kx,ky,kz,l,la,lb,lc,ld,le,lf,lg,lh,li,lj,lk,ll,lm,ln,lo,lp,lq,lr,ls,lt,lu,lv,lw,lx,ly,lz,m,ma,mb,mc,md,me,mf,mg,mh,mi,mj,mk,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b,c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];d=[d];e=[e];f=[f];g=[g];h=[h];i=[i];j=[j];k=[k];l=[l];m=[m];n=[n];o=[o];p=[p];q=[q];r=[r];s=[s];t=[t];u=[u];f[0]=this;$deferred.push([(function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function $b(){var{aa,ab,ac,ad,ae,af,ag,ah,ai,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:v=$recover();if($interfaceIsEqual(v,$ifaceNil)){$s=-1;return;}w=BL(v);x=w[1];if(x){$panic(v);}y=BK(v);z=b[0].Pos();$s=1;case 1:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;if(f[0].posAvailable&&new L.Pos(f[0].pos).IsValid()){aa=f[0].pos;}ab=y;ad=f[0].pkgCtx.fileSet.Position(aa);$s=2;case 2:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=(ac=ad,new ac.constructor.elem(ac));af=A.Fprintf(ab,"Occurred while compiling statement at %s:\n",new CP([ae]));$s=3;case 3:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}af;ag=(new V.Config.ptr(4,2,1)).Fprint(y,f[0].pkgCtx.fileSet,b[0]);$s=4;case 4:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ag;ah=A.Fprintf(y,"\n\nDetailed AST:\n",new CP([]));$s=5;case 5:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ah;ai=J.Fprint(y,f[0].pkgCtx.fileSet,b[0],J.NotNilFilter);$s=6;case 6:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ai;$panic(y);$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,v,w,x,y,z,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u),[]]);v=b[0].Pos();$s=1;case 1:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}$r=f[0].SetPos(v);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}w=X.IncDecStmt(b[0],f[0].pkgCtx.Info.Info);$s=3;case 3:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}b[0]=w;x=X.Assign(b[0],f[0].pkgCtx.Info.Info,f[0].pkgCtx.Info.Pkg);$s=4;case 4:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}b[0]=x;y=b[0];if($assertType(y,DP,true)[1]){$s=5;continue;}if($assertType(y,DQ,true)[1]){$s=6;continue;}if($assertType(y,DR,true)[1]){$s=7;continue;}if($assertType(y,DS,true)[1]){$s=8;continue;}if($assertType(y,DT,true)[1]){$s=9;continue;}if($assertType(y,DU,true)[1]){$s=10;continue;}if($assertType(y,DV,true)[1]){$s=11;continue;}if($assertType(y,DW,true)[1]){$s=12;continue;}if($assertType(y,DX,true)[1]){$s=13;continue;}if($assertType(y,DY,true)[1]){$s=14;continue;}if($assertType(y,DZ,true)[1]){$s=15;continue;}if($assertType(y,EA,true)[1]){$s=16;continue;}if($assertType(y,EB,true)[1]){$s=17;continue;}if($assertType(y,EC,true)[1]){$s=18;continue;}if($assertType(y,ED,true)[1]){$s=19;continue;}if($assertType(y,EE,true)[1]){$s=20;continue;}if($assertType(y,EF,true)[1]){$s=21;continue;}$s=22;continue;case 5:z=y.$val;$r=f[0].translateStmtList(z.List);$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 6:aa=y.$val;ap=EH.nil;aq=aa;while(true){if(!($interfaceIsEqual(aq.Init,$ifaceNil))){$panic(new $String("simplification error"));}ap=$append(ap,new J.CaseClause.ptr(0,new CT([aq.Cond]),0,aq.Body.List));ar=$assertType(aq.Else,DQ,true);as=ar[0];at=ar[1];if(!at){break;}aq=as;}au=EG.nil;av=$assertType(aq.Else,DP,true);aw=av[0];ax=av[1];if(ax){au=new J.CaseClause.ptr(0,CT.nil,0,aw.List);}$r=f[0].translateBranchingStmt(ap,au,false,$methodVal(f[0],"translateExpr"),DO.nil,(ay=$mapIndex(f[0].FuncInfo.Flattened,J.Node.keyFor(aa)),ay!==undefined?ay.v:false));$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 7:ab=y.$val;if(!($interfaceIsEqual(ab.Init,$ifaceNil))||!($interfaceIsEqual(ab.Tag,$ifaceNil))||!((ab.Body.List.$length===1))){$panic(new $String("simplification error"));}d[0]=$assertType((az=ab.Body.List,(0>=az.$length?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+0])),EG);if(!((d[0].List.$length===0))){$panic(new $String("simplification error"));}l[0]=(ba=$mapIndex(f[0].flowDatas,DO.keyFor(DO.nil)),ba!==undefined?ba.v:EJ.nil);bb=new BQ.ptr(l[0].postStmt,l[0].beginCase,0);bc=DO.nil;(f[0].flowDatas||$throwRuntimeError("assignment to entry in nil map")).set(DO.keyFor(bc),{k:bc,v:bb});bd=c[0];(f[0].flowDatas||$throwRuntimeError("assignment to entry in nil map")).set(DO.keyFor(bd),{k:bd,v:bb});$deferred.push([(function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function(){var be;$mapDelete(f[0].flowDatas,DO.keyFor(c[0]));be=DO.nil;(f[0].flowDatas||$throwRuntimeError("assignment to entry in nil map")).set(DO.keyFor(be),{k:be,v:l[0]});};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u),[]]);if((be=$mapIndex(f[0].FuncInfo.Flattened,J.Node.keyFor(ab)),be!==undefined?be.v:false)){$s=26;continue;}$s=27;continue;case 26:bb.endCase=f[0].caseCounter;f[0].caseCounter=f[0].caseCounter+(1)>>0;$r=f[0].Indent((function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=f[0].translateStmtList(d[0].Body);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u));$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f[0].Printf("case %d:",new CP([new $Int(bb.endCase)]));$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=30;case 30:return;case 27:if(!(c[0]===DO.nil)){bf=true;$s=33;continue s;}bg=T.HasBreak(d[0]);$s=34;case 34:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bf=bg;case 33:if(bf){$s=31;continue;}$s=32;continue;case 31:if(!(c[0]===DO.nil)){$s=35;continue;}$s=36;continue;case 35:$r=f[0].Printf("%s:",new CP([new $String(c[0].object.Name())]));$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 36:$r=f[0].Printf("switch (0) { default:",new CP([]));$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f[0].Indent((function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=f[0].translateStmtList(d[0].Body);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u));$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f[0].Printf("}",new CP([]));$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=41;case 41:return;case 32:$r=f[0].translateStmtList(d[0].Body);$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 8:ac=y.$val;if(!($interfaceIsEqual(ac.Init,$ifaceNil))){$s=43;continue;}$s=44;continue;case 43:$r=f[0].translateStmt(ac.Init,DO.nil);$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 44:bh=f[0].newVariable("_ref");$s=46;case 46:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}m[0]=bh;bi=$ifaceNil;bj=ac.Assign;if($assertType(bj,DY,true)[1]){bk=bj.$val;bi=$assertType((bm=bk.Rhs,(0>=bm.$length?($throwRuntimeError("index out of range"),undefined):bm.$array[bm.$offset+0])),EK).X;}else if($assertType(bj,EA,true)[1]){bl=bj.$val;bi=$assertType(bl.X,EK).X;}bn=new $String(m[0]);bo=f[0].translateExpr(bi);$s=47;case 47:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=bo;$r=f[0].Printf("%s = %s;",new CP([bn,bp]));$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bq=(function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function $b(bq){var{bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,$s,$r,$c}=$restore(this,{bq});$s=$s||0;s:while(true){switch($s){case 0:br=f[0].pkgCtx.Info.Info.TypeOf(bq);$s=3;case 3:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}bt=M.Identical(br,(bs=M.Typ,(25>=bs.$length?($throwRuntimeError("index out of range"),undefined):bs.$array[bs.$offset+25])));$s=4;case 4:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}if(bt){$s=1;continue;}$s=2;continue;case 1:bu=f[0].formatExpr("%s === $ifaceNil",new CP([new $String(m[0])]));$s=5;case 5:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}bv=bu;$s=6;case 6:return bv;case 2:bw=new $String(m[0]);bx=f[0].pkgCtx.Info.Info.TypeOf(bq);$s=7;case 7:if($c){$c=false;bx=bx.$blk();}if(bx&&bx.$blk!==undefined){break s;}by=f[0].typeName(bx);$s=8;case 8:if($c){$c=false;by=by.$blk();}if(by&&by.$blk!==undefined){break s;}bz=new $String(by);ca=f[0].formatExpr("$assertType(%s, %s, true)[1]",new CP([bw,bz]));$s=9;case 9:if($c){$c=false;ca=ca.$blk();}if(ca&&ca.$blk!==undefined){break s;}cb=ca;$s=10;case 10:return cb;}return;}var $f={$blk:$b,$c:true,$r,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u);br=EH.nil;bs=EG.nil;bt=ac.Body.List;bu=0;case 49:if(!(bu=bt.$length)?($throwRuntimeError("index out of range"),undefined):bt.$array[bt.$offset+bu]);bw=$assertType(bv,EG);bx=EI.nil;bz=(by=$mapIndex(f[0].pkgCtx.Info.Info.Implicits,J.Node.keyFor(bw)),by!==undefined?by.v:$ifaceNil);if(!($interfaceIsEqual(bz,$ifaceNil))){$s=51;continue;}$s=52;continue;case 51:ca=m[0];cb=bz.Type();$s=56;case 56:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}cc=cb.Underlying();$s=57;case 57:if($c){$c=false;cc=cc.$blk();}if(cc&&cc.$blk!==undefined){break s;}cd=U.IsJsObject(cc);$s=58;case 58:if($c){$c=false;cd=cd.$blk();}if(cd&&cd.$blk!==undefined){break s;}if(cd){$s=53;continue;}$s=54;continue;case 53:ca=ca+(".$val.object");$s=55;continue;case 54:cf=bz.Type();$s=59;case 59:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}cg=cf.Underlying();$s=60;case 60:if($c){$c=false;cg=cg.$blk();}if(cg&&cg.$blk!==undefined){break s;}ce=$assertType(cg,DB,true);ch=ce[1];if(!ch){ca=ca+(".$val");}case 55:ci=f[0].objectName(bz);$s=61;case 61:if($c){$c=false;ci=ci.$blk();}if(ci&&ci.$blk!==undefined){break s;}cj=ci;ck=bz.Type();$s=62;case 62:if($c){$c=false;ck=ck.$blk();}if(ck&&ck.$blk!==undefined){break s;}cl=ck;cm=f[0].newIdent(cj,cl);$s=63;case 63:if($c){$c=false;cm=cm.$blk();}if(cm&&cm.$blk!==undefined){break s;}cn=ca;co=bz.Type();$s=64;case 64:if($c){$c=false;co=co.$blk();}if(co&&co.$blk!==undefined){break s;}cp=co;cq=f[0].newIdent(cn,cp);$s=65;case 65:if($c){$c=false;cq=cq.$blk();}if(cq&&cq.$blk!==undefined){break s;}bx=new EI([new J.AssignStmt.ptr(new CT([cm]),0,47,new CT([cq]))]);case 52:cr=new J.CaseClause.ptr(0,bw.List,0,$appendSlice(bx,bw.Body));if(cr.List.$length===0){bs=cr;bu++;$s=49;continue;}br=$append(br,cr);bu++;$s=49;continue;case 50:$r=f[0].translateBranchingStmt(br,bs,true,bq,c[0],(cs=$mapIndex(f[0].FuncInfo.Flattened,J.Node.keyFor(ac)),cs!==undefined?cs.v:false));$s=66;case 66:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 9:p[0]=y.$val;if(!($interfaceIsEqual(p[0].Init,$ifaceNil))){$s=67;continue;}$s=68;continue;case 67:$r=f[0].translateStmt(p[0].Init,DO.nil);$s=69;case 69:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 68:ct=(function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function $b(){var{ct,cu,cv,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:if($interfaceIsEqual(p[0].Cond,$ifaceNil)){$s=-1;return"true";}ct=f[0].translateExpr(p[0].Cond);$s=1;case 1:if($c){$c=false;ct=ct.$blk();}if(ct&&ct.$blk!==undefined){break s;}cu=ct.String();$s=2;case 2:if($c){$c=false;cu=cu.$blk();}if(cu&&cu.$blk!==undefined){break s;}cv=cu;$s=3;case 3:return cv;}return;}var $f={$blk:$b,$c:true,$r,ct,cu,cv,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u);$r=f[0].translateLoopingStmt(ct,p[0].Body,$throwNilPointerError,(function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:if(!($interfaceIsEqual(p[0].Post,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:$r=f[0].translateStmt(p[0].Post,DO.nil);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u),c[0],(cu=$mapIndex(f[0].FuncInfo.Flattened,J.Node.keyFor(p[0])),cu!==undefined?cu.v:false));$s=70;case 70:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 10:q[0]=y.$val;cv=f[0].newVariable("_ref");$s=71;case 71:if($c){$c=false;cv=cv.$blk();}if(cv&&cv.$blk!==undefined){break s;}n[0]=cv;cw=new $String(n[0]);cx=f[0].translateExpr(q[0].X);$s=72;case 72:if($c){$c=false;cx=cx.$blk();}if(cx&&cx.$blk!==undefined){break s;}cy=cx;$r=f[0].Printf("%s = %s;",new CP([cw,cy]));$s=73;case 73:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}da=f[0].pkgCtx.Info.Info.TypeOf(q[0].X);$s=74;case 74:if($c){$c=false;da=da.$blk();}if(da&&da.$blk!==undefined){break s;}db=da.Underlying();$s=75;case 75:if($c){$c=false;db=db.$blk();}if(db&&db.$blk!==undefined){break s;}cz=db;if($assertType(cz,CY,true)[1]){$s=76;continue;}if($assertType(cz,DC,true)[1]){$s=77;continue;}if($assertType(cz,CZ,true)[1]||$assertType(cz,CV,true)[1]||$assertType(cz,DD,true)[1]){$s=78;continue;}if($assertType(cz,DA,true)[1]){$s=79;continue;}$s=80;continue;case 76:dc=cz.$val;df=f[0].newVariable("_i");$s=82;case 82:if($c){$c=false;df=df.$blk();}if(df&&df.$blk!==undefined){break s;}g[0]=df;$r=f[0].Printf("%s = 0;",new CP([new $String(g[0])]));$s=83;case 83:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}dg=f[0].newVariable("_rune");$s=84;case 84:if($c){$c=false;dg=dg.$blk();}if(dg&&dg.$blk!==undefined){break s;}o[0]=dg;$r=f[0].translateLoopingStmt((function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function(){return g[0]+" < "+n[0]+".length";};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u),q[0].Body,(function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function $b(){var{dh,di,dj,dk,dl,dm,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=f[0].Printf("%s = $decodeRune(%s, %s);",new CP([new $String(o[0]),new $String(n[0]),new $String(g[0])]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!AY(q[0].Key)){$s=2;continue;}$s=3;continue;case 2:di=f[0].translateAssign(q[0].Key,f[0].newIdent(g[0],(dh=M.Typ,(2>=dh.$length?($throwRuntimeError("index out of range"),undefined):dh.$array[dh.$offset+2]))),q[0].Tok===47);$s=4;case 4:if($c){$c=false;di=di.$blk();}if(di&&di.$blk!==undefined){break s;}dj=new $String(di);$r=f[0].Printf("%s",new CP([dj]));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:if(!AY(q[0].Value)){$s=6;continue;}$s=7;continue;case 6:dl=f[0].translateAssign(q[0].Value,f[0].newIdent(o[0]+"[0]",(dk=M.Typ,(5>=dk.$length?($throwRuntimeError("index out of range"),undefined):dk.$array[dk.$offset+5]))),q[0].Tok===47);$s=8;case 8:if($c){$c=false;dl=dl.$blk();}if(dl&&dl.$blk!==undefined){break s;}dm=new $String(dl);$r=f[0].Printf("%s",new CP([dm]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,dh,di,dj,dk,dl,dm,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u),(function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=f[0].Printf("%s += %s[1];",new CP([new $String(g[0]),new $String(o[0])]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u),c[0],(dh=$mapIndex(f[0].FuncInfo.Flattened,J.Node.keyFor(q[0])),dh!==undefined?dh.v:false));$s=85;case 85:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=81;continue;case 77:t[0]=cz.$val;di=f[0].newVariable("_i");$s=86;case 86:if($c){$c=false;di=di.$blk();}if(di&&di.$blk!==undefined){break s;}h[0]=di;$r=f[0].Printf("%s = 0;",new CP([new $String(h[0])]));$s=87;case 87:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}dj=f[0].newVariable("_keys");$s=88;case 88:if($c){$c=false;dj=dj.$blk();}if(dj&&dj.$blk!==undefined){break s;}j[0]=dj;$r=f[0].Printf("%s = %s ? %s.keys() : undefined;",new CP([new $String(j[0]),new $String(n[0]),new $String(n[0])]));$s=89;case 89:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}dk=f[0].newVariable("_size");$s=90;case 90:if($c){$c=false;dk=dk.$blk();}if(dk&&dk.$blk!==undefined){break s;}s[0]=dk;$r=f[0].Printf("%s = %s ? %s.size : 0;",new CP([new $String(s[0]),new $String(n[0]),new $String(n[0])]));$s=91;case 91:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f[0].translateLoopingStmt((function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function(){return h[0]+" < "+s[0];};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u),q[0].Body,(function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function $b(){var{dl,dm,dn,dp,dq,dr,ds,dt,du,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:dl=f[0].newVariable("_key");$s=1;case 1:if($c){$c=false;dl=dl.$blk();}if(dl&&dl.$blk!==undefined){break s;}dm=dl;dn=f[0].newVariable("_entry");$s=2;case 2:if($c){$c=false;dn=dn.$blk();}if(dn&&dn.$blk!==undefined){break s;}dp=dn;$r=f[0].Printf("%s = %s.next().value;",new CP([new $String(dm),new $String(j[0])]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f[0].Printf("%s = %s.get(%s);",new CP([new $String(dp),new $String(n[0]),new $String(dm)]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f[0].translateStmt(new J.IfStmt.ptr(0,$ifaceNil,f[0].newIdent(dp+" === undefined",(dq=M.Typ,(1>=dq.$length?($throwRuntimeError("index out of range"),undefined):dq.$array[dq.$offset+1]))),new J.BlockStmt.ptr(0,new EI([new J.BranchStmt.ptr(0,65,DE.nil)]),0),$ifaceNil),DO.nil);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!AY(q[0].Key)){$s=6;continue;}$s=7;continue;case 6:dr=f[0].translateAssign(q[0].Key,f[0].newIdent(dp+".k",t[0].Key()),q[0].Tok===47);$s=8;case 8:if($c){$c=false;dr=dr.$blk();}if(dr&&dr.$blk!==undefined){break s;}ds=new $String(dr);$r=f[0].Printf("%s",new CP([ds]));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:if(!AY(q[0].Value)){$s=10;continue;}$s=11;continue;case 10:dt=f[0].translateAssign(q[0].Value,f[0].newIdent(dp+".v",t[0].Elem()),q[0].Tok===47);$s=12;case 12:if($c){$c=false;dt=dt.$blk();}if(dt&&dt.$blk!==undefined){break s;}du=new $String(dt);$r=f[0].Printf("%s",new CP([du]));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,dl,dm,dn,dp,dq,dr,ds,dt,du,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u),(function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=f[0].Printf("%s++;",new CP([new $String(h[0])]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u),c[0],(dl=$mapIndex(f[0].FuncInfo.Flattened,J.Node.keyFor(q[0])),dl!==undefined?dl.v:false));$s=92;case 92:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=81;continue;case 78:u[0]=cz;k[0]="";e[0]=$ifaceNil;dm=u[0];if($assertType(dm,CZ,true)[1]){$s=93;continue;}if($assertType(dm,CV,true)[1]){$s=94;continue;}if($assertType(dm,DD,true)[1]){$s=95;continue;}$s=96;continue;case 93:dn=dm.$val;dr=A.Sprintf("%d",new CP([dn.Len()]));$s=97;case 97:if($c){$c=false;dr=dr.$blk();}if(dr&&dr.$blk!==undefined){break s;}k[0]=dr;e[0]=dn.Elem();$s=96;continue;case 94:dp=dm.$val;ds=dp.Elem().Underlying();$s=98;case 98:if($c){$c=false;ds=ds.$blk();}if(ds&&ds.$blk!==undefined){break s;}dt=$assertType(ds,CZ).Len();$s=99;case 99:if($c){$c=false;dt=dt.$blk();}if(dt&&dt.$blk!==undefined){break s;}du=dt;dv=A.Sprintf("%d",new CP([du]));$s=100;case 100:if($c){$c=false;dv=dv.$blk();}if(dv&&dv.$blk!==undefined){break s;}k[0]=dv;dw=dp.Elem().Underlying();$s=101;case 101:if($c){$c=false;dw=dw.$blk();}if(dw&&dw.$blk!==undefined){break s;}dx=$assertType(dw,CZ).Elem();$s=102;case 102:if($c){$c=false;dx=dx.$blk();}if(dx&&dx.$blk!==undefined){break s;}e[0]=dx;$s=96;continue;case 95:dq=dm.$val;k[0]=n[0]+".$length";e[0]=dq.Elem();case 96:dy=f[0].newVariable("_i");$s=103;case 103:if($c){$c=false;dy=dy.$blk();}if(dy&&dy.$blk!==undefined){break s;}i[0]=dy;$r=f[0].Printf("%s = 0;",new CP([new $String(i[0])]));$s=104;case 104:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=f[0].translateLoopingStmt((function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function(){return i[0]+" < "+k[0];};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u),q[0].Body,(function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function $b(){var{dz,ea,eb,ec,ed,ee,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:if(!AY(q[0].Key)){$s=1;continue;}$s=2;continue;case 1:ea=f[0].translateAssign(q[0].Key,f[0].newIdent(i[0],(dz=M.Typ,(2>=dz.$length?($throwRuntimeError("index out of range"),undefined):dz.$array[dz.$offset+2]))),q[0].Tok===47);$s=3;case 3:if($c){$c=false;ea=ea.$blk();}if(ea&&ea.$blk!==undefined){break s;}eb=new $String(ea);$r=f[0].Printf("%s",new CP([eb]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(!AY(q[0].Value)){$s=5;continue;}$s=6;continue;case 5:ed=f[0].translateAssign(q[0].Value,f[0].setType(new J.IndexExpr.ptr(f[0].newIdent(n[0],u[0]),0,f[0].newIdent(i[0],(ec=M.Typ,(2>=ec.$length?($throwRuntimeError("index out of range"),undefined):ec.$array[ec.$offset+2]))),0),e[0]),q[0].Tok===47);$s=7;case 7:if($c){$c=false;ed=ed.$blk();}if(ed&&ed.$blk!==undefined){break s;}ee=new $String(ed);$r=f[0].Printf("%s",new CP([ee]));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,dz,ea,eb,ec,ed,ee,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u),(function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=f[0].Printf("%s++;",new CP([new $String(i[0])]));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u),c[0],(dz=$mapIndex(f[0].FuncInfo.Flattened,J.Node.keyFor(q[0])),dz!==undefined?dz.v:false));$s=105;case 105:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=81;continue;case 79:dd=cz.$val;ea=f[0].newVariable("_ok");$s=106;case 106:if($c){$c=false;ea=ea.$blk();}if(ea&&ea.$blk!==undefined){break s;}ec=f[0].newIdent(ea,(eb=M.Typ,(1>=eb.$length?($throwRuntimeError("index out of range"),undefined):eb.$array[eb.$offset+1])));$s=107;case 107:if($c){$c=false;ec=ec.$blk();}if(ec&&ec.$blk!==undefined){break s;}ed=ec;ee=q[0].Key;ef=q[0].Tok;if($interfaceIsEqual(ee,$ifaceNil)){ee=J.NewIdent("_");ef=42;}eh=new J.ForStmt.ptr(0,$ifaceNil,$ifaceNil,$ifaceNil,new J.BlockStmt.ptr(0,new EI([new J.AssignStmt.ptr(new CT([ee,ed]),0,ef,new CT([f[0].setType(new J.UnaryExpr.ptr(0,36,f[0].newIdent(n[0],dd)),M.NewTuple(new EM([M.NewVar(0,EL.nil,"",dd.Elem()),M.NewVar(0,EL.nil,"",(eg=M.Typ,(1>=eg.$length?($throwRuntimeError("index out of range"),undefined):eg.$array[eg.$offset+1])))])))])),new J.IfStmt.ptr(0,$ifaceNil,new J.UnaryExpr.ptr(0,43,ed),new J.BlockStmt.ptr(0,new EI([new J.BranchStmt.ptr(0,61,DE.nil)]),0),$ifaceNil),q[0].Body]),0));ei=eh;(f[0].FuncInfo.Flattened||$throwRuntimeError("assignment to entry in nil map")).set(J.Node.keyFor(ei),{k:ei,v:true});$r=f[0].translateStmt(eh,c[0]);$s=108;case 108:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=81;continue;case 80:de=cz;$panic(new $String(""));case 81:$s=23;continue;case 11:ad=y.$val;ej="";ek="";em=(el=$mapIndex(f[0].flowDatas,DO.keyFor(DO.nil)),el!==undefined?el.v:EJ.nil);if(!(ad.Label===DE.nil)){ej=" "+ad.Label.Name;ek=" s";em=(eo=$mapIndex(f[0].flowDatas,DO.keyFor($assertType((en=$mapIndex(f[0].pkgCtx.Info.Info.Uses,DE.keyFor(ad.Label)),en!==undefined?en.v:$ifaceNil),DO))),eo!==undefined?eo.v:EJ.nil);}ep=ad.Tok;if(ep===(61)){$s=110;continue;}if(ep===(65)){$s=111;continue;}if(ep===(73)){$s=112;continue;}if(ep===(69)){$s=113;continue;}$s=114;continue;case 110:eq=em.endCase===0;er=A.Sprintf("break%s;",new CP([new $String(ej)]));$s=116;case 116:if($c){$c=false;er=er.$blk();}if(er&&er.$blk!==undefined){break s;}es=er;et=A.Sprintf("$s = %d; continue%s;",new CP([new $Int(em.endCase),new $String(ek)]));$s=117;case 117:if($c){$c=false;et=et.$blk();}if(et&&et.$blk!==undefined){break s;}eu=et;$r=f[0].PrintCond(eq,es,eu);$s=118;case 118:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=115;continue;case 111:$r=em.postStmt();$s=119;case 119:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ev=em.beginCase===0;ew=A.Sprintf("continue%s;",new CP([new $String(ej)]));$s=120;case 120:if($c){$c=false;ew=ew.$blk();}if(ew&&ew.$blk!==undefined){break s;}ex=ew;ey=A.Sprintf("$s = %d; continue%s;",new CP([new $Int(em.beginCase),new $String(ek)]));$s=121;case 121:if($c){$c=false;ey=ey.$blk();}if(ey&&ey.$blk!==undefined){break s;}ez=ey;$r=f[0].PrintCond(ev,ex,ez);$s=122;case 122:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=115;continue;case 112:fa="goto "+ad.Label.Name;fc=A.Sprintf("$s = %d; continue;",new CP([new $Int(f[0].labelCase($assertType((fb=$mapIndex(f[0].pkgCtx.Info.Info.Uses,DE.keyFor(ad.Label)),fb!==undefined?fb.v:$ifaceNil),DO)))]));$s=123;case 123:if($c){$c=false;fc=fc.$blk();}if(fc&&fc.$blk!==undefined){break s;}fd=fc;$r=f[0].PrintCond(false,fa,fd);$s=124;case 124:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=115;continue;case 113:$s=115;continue;case 114:$panic(new $String("Unhandled branch statement: "+new L.Token(ad.Tok).String()));case 115:case 109:$s=23;continue;case 12:ae=y.$val;fe=ae.Results;if(!(f[0].resultNames===CT.nil)){$s=125;continue;}$s=126;continue;case 125:if(!((ae.Results.$length===0))){$s=127;continue;}$s=128;continue;case 127:$r=f[0].translateStmt(new J.AssignStmt.ptr(f[0].resultNames,0,42,ae.Results),DO.nil);$s=129;case 129:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 128:fe=f[0].resultNames;case 126:ff=f[0].translateResults(fe);$s=130;case 130:if($c){$c=false;ff=ff.$blk();}if(ff&&ff.$blk!==undefined){break s;}fg=ff;if((f[0].FuncInfo.Flattened?f[0].FuncInfo.Flattened.size:0)===0){$s=131;continue;}$s=132;continue;case 131:$r=f[0].Printf("return%s;",new CP([new $String(fg)]));$s=133;case 133:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=134;case 134:return;case 132:if(!(fh=$mapIndex(f[0].FuncInfo.Blocking,J.Node.keyFor(ae)),fh!==undefined?fh.v:false)){$s=135;continue;}$s=136;continue;case 135:$r=f[0].Printf("$s = -1; return%s;",new CP([new $String(fg)]));$s=137;case 137:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=138;case 138:return;case 136:if(!(fg==="")){$s=139;continue;}$s=140;continue;case 139:fi=f[0].newVariable("$r");$s=141;case 141:if($c){$c=false;fi=fi.$blk();}if(fi&&fi.$blk!==undefined){break s;}fj=fi;$r=f[0].Printf("%s =%s;",new CP([new $String(fj),new $String(fg)]));$s=142;case 142:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}fg=" "+fj;case 140:fk=f[0].caseCounter;f[0].caseCounter=f[0].caseCounter+(1)>>0;$r=f[0].Printf("$s = %[1]d; case %[1]d: return%[2]s;",new CP([new $Int(fk),new $String(fg)]));$s=143;case 143:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=144;case 144:return;case 13:af=y.$val;fm=f[0].delegatedCall(af.Call);$s=145;case 145:if($c){$c=false;fm=fm.$blk();}if(fm&&fm.$blk!==undefined){break s;}fl=fm;fn=fl[0];fo=fl[1];$r=f[0].Printf("$deferred.push([%s, %s]);",new CP([fn,fo]));$s=146;case 146:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 14:ag=y.$val;if(!((ag.Tok===42))&&!((ag.Tok===47))){$panic(new L.Token(ag.Tok));}if((ag.Lhs.$length===1)&&(ag.Rhs.$length===1)){$s=148;continue;}if(ag.Lhs.$length>1&&(ag.Rhs.$length===1)){$s=149;continue;}if((ag.Lhs.$length===ag.Rhs.$length)){$s=150;continue;}$s=151;continue;case 148:fq=W.RemoveParens((fp=ag.Lhs,(0>=fp.$length?($throwRuntimeError("index out of range"),undefined):fp.$array[fp.$offset+0])));if(AY(fq)){$s=153;continue;}$s=154;continue;case 153:fs=(fr=ag.Rhs,(0>=fr.$length?($throwRuntimeError("index out of range"),undefined):fr.$array[fr.$offset+0]));fu=f[0].pkgCtx.Info.Info.TypeOf((ft=ag.Lhs,(0>=ft.$length?($throwRuntimeError("index out of range"),undefined):ft.$array[ft.$offset+0])));$s=155;case 155:if($c){$c=false;fu=fu.$blk();}if(fu&&fu.$blk!==undefined){break s;}fv=fu;fw=f[0].translateImplicitConversion(fs,fv);$s=156;case 156:if($c){$c=false;fw=fw.$blk();}if(fw&&fw.$blk!==undefined){break s;}fx=fw;$r=f[0].Printf("$unused(%s);",new CP([fx]));$s=157;case 157:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=158;case 158:return;case 154:fz=f[0].translateAssign(fq,(fy=ag.Rhs,(0>=fy.$length?($throwRuntimeError("index out of range"),undefined):fy.$array[fy.$offset+0])),ag.Tok===47);$s=159;case 159:if($c){$c=false;fz=fz.$blk();}if(fz&&fz.$blk!==undefined){break s;}ga=new $String(fz);$r=f[0].Printf("%s",new CP([ga]));$s=160;case 160:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=152;continue;case 149:gb=f[0].newVariable("_tuple");$s=161;case 161:if($c){$c=false;gb=gb.$blk();}if(gb&&gb.$blk!==undefined){break s;}gc=gb;gd=new $String(gc);gf=f[0].translateExpr((ge=ag.Rhs,(0>=ge.$length?($throwRuntimeError("index out of range"),undefined):ge.$array[ge.$offset+0])));$s=162;case 162:if($c){$c=false;gf=gf.$blk();}if(gf&&gf.$blk!==undefined){break s;}gg=gf;$r=f[0].Printf("%s = %s;",new CP([gd,gg]));$s=163;case 163:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}gi=f[0].pkgCtx.Info.Info.TypeOf((gh=ag.Rhs,(0>=gh.$length?($throwRuntimeError("index out of range"),undefined):gh.$array[gh.$offset+0])));$s=164;case 164:if($c){$c=false;gi=gi.$blk();}if(gi&&gi.$blk!==undefined){break s;}gj=$assertType(gi,CS);gk=ag.Lhs;gl=0;case 165:if(!(gl=gk.$length)?($throwRuntimeError("index out of range"),undefined):gk.$array[gk.$offset+gl]);gn=W.RemoveParens(gn);if(!AY(gn)){$s=167;continue;}$s=168;continue;case 167:go=gn;gp=A.Sprintf("%s[%d]",new CP([new $String(gc),new $Int(gm)]));$s=169;case 169:if($c){$c=false;gp=gp.$blk();}if(gp&&gp.$blk!==undefined){break s;}gq=f[0].newIdent(gp,gj.At(gm).object.Type());$s=170;case 170:if($c){$c=false;gq=gq.$blk();}if(gq&&gq.$blk!==undefined){break s;}gr=gq;gs=ag.Tok===47;gt=f[0].translateAssign(go,gr,gs);$s=171;case 171:if($c){$c=false;gt=gt.$blk();}if(gt&>.$blk!==undefined){break s;}gu=new $String(gt);$r=f[0].Printf("%s",new CP([gu]));$s=172;case 172:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 168:gl++;$s=165;continue;case 166:$s=152;continue;case 150:gv=$makeSlice(CQ,ag.Rhs.$length);gw=ag.Rhs;gx=0;case 173:if(!(gx=gw.$length)?($throwRuntimeError("index out of range"),undefined):gw.$array[gw.$offset+gx]);ha=f[0].newVariable("_tmp");$s=175;case 175:if($c){$c=false;ha=ha.$blk();}if(ha&&ha.$blk!==undefined){break s;}((gy<0||gy>=gv.$length)?($throwRuntimeError("index out of range"),undefined):gv.$array[gv.$offset+gy]=ha);if(AY(W.RemoveParens((hb=ag.Lhs,((gy<0||gy>=hb.$length)?($throwRuntimeError("index out of range"),undefined):hb.$array[hb.$offset+gy]))))){$s=176;continue;}$s=177;continue;case 176:hc=f[0].translateExpr(gz);$s=178;case 178:if($c){$c=false;hc=hc.$blk();}if(hc&&hc.$blk!==undefined){break s;}hd=hc;$r=f[0].Printf("$unused(%s);",new CP([hd]));$s=179;case 179:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}gx++;$s=173;continue;case 177:he=((gy<0||gy>=gv.$length)?($throwRuntimeError("index out of range"),undefined):gv.$array[gv.$offset+gy]);hg=f[0].pkgCtx.Info.Info.TypeOf((hf=ag.Lhs,((gy<0||gy>=hf.$length)?($throwRuntimeError("index out of range"),undefined):hf.$array[hf.$offset+gy])));$s=180;case 180:if($c){$c=false;hg=hg.$blk();}if(hg&&hg.$blk!==undefined){break s;}hh=hg;hi=f[0].newIdent(he,hh);$s=181;case 181:if($c){$c=false;hi=hi.$blk();}if(hi&&hi.$blk!==undefined){break s;}hj=f[0].translateAssign(hi,gz,true);$s=182;case 182:if($c){$c=false;hj=hj.$blk();}if(hj&&hj.$blk!==undefined){break s;}hk=new $String(hj);$r=f[0].Printf("%s",new CP([hk]));$s=183;case 183:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}gx++;$s=173;continue;case 174:hl=ag.Lhs;hm=0;case 184:if(!(hm=hl.$length)?($throwRuntimeError("index out of range"),undefined):hl.$array[hl.$offset+hm]);ho=W.RemoveParens(ho);if(!AY(ho)){$s=186;continue;}$s=187;continue;case 186:hp=ho;hq=((hn<0||hn>=gv.$length)?($throwRuntimeError("index out of range"),undefined):gv.$array[gv.$offset+hn]);hr=f[0].pkgCtx.Info.Info.TypeOf(ho);$s=188;case 188:if($c){$c=false;hr=hr.$blk();}if(hr&&hr.$blk!==undefined){break s;}hs=hr;ht=f[0].newIdent(hq,hs);$s=189;case 189:if($c){$c=false;ht=ht.$blk();}if(ht&&ht.$blk!==undefined){break s;}hu=ht;hv=ag.Tok===47;hw=f[0].translateAssign(hp,hu,hv);$s=190;case 190:if($c){$c=false;hw=hw.$blk();}if(hw&&hw.$blk!==undefined){break s;}hx=new $String(hw);$r=f[0].Printf("%s",new CP([hx]));$s=191;case 191:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 187:hm++;$s=184;continue;case 185:$s=152;continue;case 151:$panic(new $String("Invalid arity of AssignStmt."));case 152:case 147:$s=23;continue;case 15:ah=y.$val;hy=$assertType(ah.Decl,EN);hz=hy.Tok;if(hz===(85)){$s=193;continue;}if(hz===(84)){$s=194;continue;}if(hz===(64)){$s=195;continue;}$s=196;continue;case 193:ia=$assertType(ah.Decl,EN).Specs;ib=0;case 197:if(!(ib=ia.$length)?($throwRuntimeError("index out of range"),undefined):ia.$array[ia.$offset+ib]);id=$assertType(ic,EO);ie=$makeSlice(CT,id.Names.$length);ig=id.Names;ih=0;while(true){if(!(ih=ig.$length)?($throwRuntimeError("index out of range"),undefined):ig.$array[ig.$offset+ih]);((ii<0||ii>=ie.$length)?($throwRuntimeError("index out of range"),undefined):ie.$array[ie.$offset+ii]=ij);ih++;}ik=id.Values;if(ik.$length===0){$s=199;continue;}$s=200;continue;case 199:ik=$makeSlice(CT,ie.$length);il=ie;im=0;case 201:if(!(im=il.$length)?($throwRuntimeError("index out of range"),undefined):il.$array[il.$offset+im]);iq=f[0].pkgCtx.Info.Info.TypeOf(ip);$s=203;case 203:if($c){$c=false;iq=iq.$blk();}if(iq&&iq.$blk!==undefined){break s;}ir=f[0].zeroValue(iq);$s=204;case 204:if($c){$c=false;ir=ir.$blk();}if(ir&&ir.$blk!==undefined){break s;}((io<0||io>=ik.$length)?($throwRuntimeError("index out of range"),undefined):ik.$array[ik.$offset+io]=ir);im++;$s=201;continue;case 202:case 200:$r=f[0].translateStmt(new J.AssignStmt.ptr(ie,0,47,ik),DO.nil);$s=205;case 205:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ib++;$s=197;continue;case 198:$s=196;continue;case 194:is=hy.Specs;it=0;case 206:if(!(it=is.$length)?($throwRuntimeError("index out of range"),undefined):is.$array[is.$offset+it]);iw=$assertType((iv=$mapIndex(f[0].pkgCtx.Info.Info.Defs,DE.keyFor($assertType(iu,EP).Name)),iv!==undefined?iv.v:$ifaceNil),DL);f[0].pkgCtx.typeNames=$append(f[0].pkgCtx.typeNames,iw);iy=f[0].newVariableWithLevel(iw.object.Name(),true);$s=208;case 208:if($c){$c=false;iy=iy.$blk();}if(iy&&iy.$blk!==undefined){break s;}ix=iw;(f[0].pkgCtx.objectNames||$throwRuntimeError("assignment to entry in nil map")).set(M.Object.keyFor(ix),{k:ix,v:iy});iz=iw;(f[0].pkgCtx.dependencies||$throwRuntimeError("assignment to entry in nil map")).set(M.Object.keyFor(iz),{k:iz,v:true});it++;$s=206;continue;case 207:$s=196;continue;case 195:case 196:case 192:$s=23;continue;case 16:ai=y.$val;ja=f[0].translateExpr(ai.X);$s=209;case 209:if($c){$c=false;ja=ja.$blk();}if(ja&&ja.$blk!==undefined){break s;}jb=ja;if(!(jb===EQ.nil)&&!(jb.String()==="")){$s=210;continue;}$s=211;continue;case 210:$r=f[0].Printf("%s;",new CP([jb]));$s=212;case 212:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 211:$s=23;continue;case 17:aj=y.$val;jd=$assertType((jc=$mapIndex(f[0].pkgCtx.Info.Info.Defs,DE.keyFor(aj.Label)),jc!==undefined?jc.v:$ifaceNil),DO);if((je=$mapIndex(f[0].FuncInfo.GotoLabel,DO.keyFor(jd)),je!==undefined?je.v:false)){$s=213;continue;}$s=214;continue;case 213:jf=aj.Label.Name+":";jg=A.Sprintf("case %d:",new CP([new $Int(f[0].labelCase(jd))]));$s=215;case 215:if($c){$c=false;jg=jg.$blk();}if(jg&&jg.$blk!==undefined){break s;}jh=jg;$r=f[0].PrintCond(false,jf,jh);$s=216;case 216:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 214:$r=f[0].translateStmt(aj.Stmt,jd);$s=217;case 217:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 18:ak=y.$val;jj=f[0].delegatedCall(ak.Call);$s=218;case 218:if($c){$c=false;jj=jj.$blk();}if(jj&&jj.$blk!==undefined){break s;}ji=jj;jk=ji[0];jl=ji[1];$r=f[0].Printf("$go(%s, %s);",new CP([jk,jl]));$s=219;case 219:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 19:al=y.$val;jm=f[0].pkgCtx.Info.Info.TypeOf(al.Chan);$s=220;case 220:if($c){$c=false;jm=jm.$blk();}if(jm&&jm.$blk!==undefined){break s;}jn=jm.Underlying();$s=221;case 221:if($c){$c=false;jn=jn.$blk();}if(jn&&jn.$blk!==undefined){break s;}jo=$assertType(jn,DA);jp=f[0].translateImplicitConversionWithCloning(al.Value,jo.Elem());$s=222;case 222:if($c){$c=false;jp=jp.$blk();}if(jp&&jp.$blk!==undefined){break s;}jq=jp.String();$s=223;case 223:if($c){$c=false;jq=jq.$blk();}if(jq&&jq.$blk!==undefined){break s;}jr=f[0].newIdent(jq,jo.Elem());$s=224;case 224:if($c){$c=false;jr=jr.$blk();}if(jr&&jr.$blk!==undefined){break s;}js=new J.CallExpr.ptr(f[0].newIdent("$send",M.NewSignature(DH.nil,M.NewTuple(new EM([M.NewVar(0,EL.nil,"",jo),M.NewVar(0,EL.nil,"",jo.Elem())])),CS.nil,false)),0,new CT([al.Chan,jr]),0,0);jt=js;(f[0].FuncInfo.Blocking||$throwRuntimeError("assignment to entry in nil map")).set(J.Node.keyFor(jt),{k:jt,v:true});$r=f[0].translateStmt(new J.ExprStmt.ptr(js),c[0]);$s=225;case 225:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 20:am=y.$val;ju=f[0].newVariable("_selection");$s=226;case 226:if($c){$c=false;ju=ju.$blk();}if(ju&&ju.$blk!==undefined){break s;}r[0]=ju;jv=CQ.nil;jw=EH.nil;jx=false;jy=false;jz=am.Body.List;ka=0;case 227:if(!(ka=jz.$length)?($throwRuntimeError("index out of range"),undefined):jz.$array[jz.$offset+ka]);kd=$assertType(kc,ER);ke=kd.Comm;if(ke===$ifaceNil){$s=229;continue;}if($assertType(ke,EA,true)[1]){$s=230;continue;}if($assertType(ke,DY,true)[1]){$s=231;continue;}if($assertType(ke,ED,true)[1]){$s=232;continue;}$s=233;continue;case 229:kf=ke;jv=$append(jv,"[]");jy=true;$s=234;continue;case 230:kg=ke.$val;kk=f[0].formatExpr("[%e]",new CP([$assertType(W.RemoveParens(kg.X),ES).X]));$s=235;case 235:if($c){$c=false;kk=kk.$blk();}if(kk&&kk.$blk!==undefined){break s;}kl=kk.String();$s=236;case 236:if($c){$c=false;kl=kl.$blk();}if(kl&&kl.$blk!==undefined){break s;}jv=$append(jv,kl);$s=234;continue;case 231:kh=ke.$val;kn=f[0].formatExpr("[%e]",new CP([$assertType(W.RemoveParens((km=kh.Rhs,(0>=km.$length?($throwRuntimeError("index out of range"),undefined):km.$array[km.$offset+0]))),ES).X]));$s=237;case 237:if($c){$c=false;kn=kn.$blk();}if(kn&&kn.$blk!==undefined){break s;}ko=kn.String();$s=238;case 238:if($c){$c=false;ko=ko.$blk();}if(ko&&ko.$blk!==undefined){break s;}jv=$append(jv,ko);$s=234;continue;case 232:ki=ke.$val;kp=f[0].pkgCtx.Info.Info.TypeOf(ki.Chan);$s=239;case 239:if($c){$c=false;kp=kp.$blk();}if(kp&&kp.$blk!==undefined){break s;}kq=kp.Underlying();$s=240;case 240:if($c){$c=false;kq=kq.$blk();}if(kq&&kq.$blk!==undefined){break s;}kr=$assertType(kq,DA);ks=ki.Chan;kt=f[0].translateImplicitConversionWithCloning(ki.Value,kr.Elem());$s=241;case 241:if($c){$c=false;kt=kt.$blk();}if(kt&&kt.$blk!==undefined){break s;}ku=kt;kv=f[0].formatExpr("[%e, %s]",new CP([ks,ku]));$s=242;case 242:if($c){$c=false;kv=kv.$blk();}if(kv&&kv.$blk!==undefined){break s;}kw=kv.String();$s=243;case 243:if($c){$c=false;kw=kw.$blk();}if(kw&&kw.$blk!==undefined){break s;}jv=$append(jv,kw);$s=234;continue;case 233:kj=ke;kx=A.Sprintf("unhandled: %T",new CP([kj]));$s=244;case 244:if($c){$c=false;kx=kx.$blk();}if(kx&&kx.$blk!==undefined){break s;}$panic(new $String(kx));case 234:ky=new J.BasicLit.ptr(0,5,"");kz=ky;(f[0].pkgCtx.Info.Info.Types||$throwRuntimeError("assignment to entry in nil map")).set(J.Expr.keyFor(kz),{k:kz,v:new M.TypeAndValue.ptr(0,(la=M.Typ,(2>=la.$length?($throwRuntimeError("index out of range"),undefined):la.$array[la.$offset+2])),K.MakeInt64((new $Int64(0,kb))))});lb=EI.nil;lc=$assertType(kd.Comm,DY,true);ld=lc[0];le=lc[1];if(le){$s=245;continue;}$s=246;continue;case 245:lh=f[0].pkgCtx.Info.Info.TypeOf((lg=ld.Rhs,(0>=lg.$length?($throwRuntimeError("index out of range"),undefined):lg.$array[lg.$offset+0])));$s=247;case 247:if($c){$c=false;lh=lh.$blk();}if(lh&&lh.$blk!==undefined){break s;}lf=lh;if($assertType(lf,CS,true)[1]){$s=248;continue;}$s=249;continue;case 248:li=lf.$val;lb=new EI([new J.AssignStmt.ptr(ld.Lhs,0,ld.Tok,new CT([f[0].newIdent(r[0]+"[1]",li)]))]);$s=250;continue;case 249:lj=lf;lb=new EI([new J.AssignStmt.ptr(ld.Lhs,0,ld.Tok,new CT([f[0].newIdent(r[0]+"[1][0]",lj)]))]);case 250:case 246:jw=$append(jw,new J.CaseClause.ptr(0,new CT([ky]),0,$appendSlice(lb,kd.Body)));jx=jx||(lk=$mapIndex(f[0].FuncInfo.Flattened,J.Node.keyFor(kd)),lk!==undefined?lk.v:false);ka++;$s=227;continue;case 228:ll=DH.nil;lm=EL.nil;ln=M.NewInterface(EU.nil,EV.nil);$s=251;case 251:if($c){$c=false;ln=ln.$blk();}if(ln&&ln.$blk!==undefined){break s;}lo=ln;lp=M.NewVar(0,lm,"",lo);$s=252;case 252:if($c){$c=false;lp=lp.$blk();}if(lp&&lp.$blk!==undefined){break s;}lq=M.NewTuple(new EM([lp]));$s=253;case 253:if($c){$c=false;lq=lq.$blk();}if(lq&&lq.$blk!==undefined){break s;}lr=lq;lt=M.NewTuple(new EM([M.NewVar(0,EL.nil,"",(ls=M.Typ,(2>=ls.$length?($throwRuntimeError("index out of range"),undefined):ls.$array[ls.$offset+2])))]));lu=M.NewSignature(ll,lr,lt,false);$s=254;case 254:if($c){$c=false;lu=lu.$blk();}if(lu&&lu.$blk!==undefined){break s;}lv=lu;lw=f[0].newIdent("$select",lv);$s=255;case 255:if($c){$c=false;lw=lw.$blk();}if(lw&&lw.$blk!==undefined){break s;}lx=A.Sprintf("[%s]",new CP([new $String(F.Join(jv,", "))]));$s=256;case 256:if($c){$c=false;lx=lx.$blk();}if(lx&&lx.$blk!==undefined){break s;}ly=lx;lz=M.NewInterface(EU.nil,EV.nil);$s=257;case 257:if($c){$c=false;lz=lz.$blk();}if(lz&&lz.$blk!==undefined){break s;}ma=lz;mb=f[0].newIdent(ly,ma);$s=258;case 258:if($c){$c=false;mb=mb.$blk();}if(mb&&mb.$blk!==undefined){break s;}md=f[0].setType(new J.CallExpr.ptr(lw,0,new CT([mb]),0,0),(mc=M.Typ,(2>=mc.$length?($throwRuntimeError("index out of range"),undefined):mc.$array[mc.$offset+2])));$s=259;case 259:if($c){$c=false;md=md.$blk();}if(md&&md.$blk!==undefined){break s;}me=md;if(!jy){mf=me;(f[0].FuncInfo.Blocking||$throwRuntimeError("assignment to entry in nil map")).set(J.Node.keyFor(mf),{k:mf,v:true});}mg=new $String(r[0]);mh=f[0].translateExpr(me);$s=260;case 260:if($c){$c=false;mh=mh.$blk();}if(mh&&mh.$blk!==undefined){break s;}mi=mh;$r=f[0].Printf("%s = %s;",new CP([mg,mi]));$s=261;case 261:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((jw.$length===0))){$s=262;continue;}$s=263;continue;case 262:mj=(function(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){return function $b(mj){var{mj,mk,ml,$s,$r,$c}=$restore(this,{mj});$s=$s||0;s:while(true){switch($s){case 0:mk=f[0].formatExpr("%s[0] === %e",new CP([new $String(r[0]),mj]));$s=1;case 1:if($c){$c=false;mk=mk.$blk();}if(mk&&mk.$blk!==undefined){break s;}ml=mk;$s=2;case 2:return ml;}return;}var $f={$blk:$b,$c:true,$r,mj,mk,ml,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u);$r=f[0].translateBranchingStmt(jw,EG.nil,true,mj,c[0],jx);$s=264;case 264:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 263:$s=23;continue;case 21:an=y.$val;$s=23;continue;case 22:ao=y;mk=A.Sprintf("Unhandled statement: %T\n",new CP([ao]));$s=265;case 265:if($c){$c=false;mk=mk.$blk();}if(mk&&mk.$blk!==undefined){break s;}$panic(new $String(mk));case 23:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:BP.ptr.prototype.translateStmt,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,hw,hx,hy,hz,i,ia,ib,ic,id,ie,ig,ih,ii,ij,ik,il,im,io,ip,iq,ir,is,it,iu,iv,iw,ix,iy,iz,j,ja,jb,jc,jd,je,jf,jg,jh,ji,jj,jk,jl,jm,jn,jo,jp,jq,jr,js,jt,ju,jv,jw,jx,jy,jz,k,ka,kb,kc,kd,ke,kf,kg,kh,ki,kj,kk,kl,km,kn,ko,kp,kq,kr,ks,kt,ku,kv,kw,kx,ky,kz,l,la,lb,lc,ld,le,lf,lg,lh,li,lj,lk,ll,lm,ln,lo,lp,lq,lr,ls,lt,lu,lv,lw,lx,ly,lz,m,ma,mb,mc,md,me,mf,mg,mh,mi,mj,mk,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};BP.prototype.translateStmt=function(b,c){return this.$val.translateStmt(b,c);};BP.ptr.prototype.translateBranchingStmt=function(b,c,d,e,f,g){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b,c,d,e,f,g});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];f=[f];g=[g];h=[h];i=[i];j=[j];k=[k];l=[l];j[0]=this;m=0;n=0;o=0;p=m;q=n;i[0]=o;if(g[0]){p=j[0].caseCounter;q=p+b[0].$length>>0;i[0]=q;if(!(c[0]===EG.nil)){i[0]=i[0]+(1)>>0;}j[0].caseCounter=i[0]+1>>0;}r=false;if(d){$s=1;continue;}$s=2;continue;case 1:l[0]=(s=$mapIndex(j[0].flowDatas,DO.keyFor(DO.nil)),s!==undefined?s.v:EJ.nil);t=new BQ.ptr(l[0].postStmt,l[0].beginCase,i[0]);u=DO.nil;(j[0].flowDatas||$throwRuntimeError("assignment to entry in nil map")).set(DO.keyFor(u),{k:u,v:t});v=f[0];(j[0].flowDatas||$throwRuntimeError("assignment to entry in nil map")).set(DO.keyFor(v),{k:v,v:t});$deferred.push([(function(b,c,f,g,h,i,j,k,l){return function(){var w;$mapDelete(j[0].flowDatas,DO.keyFor(f[0]));w=DO.nil;(j[0].flowDatas||$throwRuntimeError("assignment to entry in nil map")).set(DO.keyFor(w),{k:w,v:l[0]});};})(b,c,f,g,h,i,j,k,l),[]]);w=b[0];x=0;case 3:if(!(x=w.$length)?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+x]);z=T.HasBreak(y);$s=7;case 7:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}if(z){$s=5;continue;}$s=6;continue;case 5:r=true;$s=4;continue;case 6:x++;$s=3;continue;case 4:if(!(!(c[0]===EG.nil))){aa=false;$s=10;continue s;}ab=T.HasBreak(c[0]);$s=11;case 11:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;case 10:if(aa){$s=8;continue;}$s=9;continue;case 8:r=true;case 9:case 2:if(!(f[0]===DO.nil)&&!g[0]){$s=12;continue;}$s=13;continue;case 12:$r=j[0].Printf("%s:",new CP([new $String(f[0].object.Name())]));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:ac=$makeSlice(CQ,b[0].$length);ad=b[0];ae=0;case 15:if(!(ae=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ae]);ah=$makeSlice(CQ,ag.List.$length);ai=ag.List;aj=0;case 17:if(!(aj=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+aj]);am=e(al);$s=19;case 19:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am.String();$s=20;case 20:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}((ak<0||ak>=ah.$length)?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+ak]=an);aj++;$s=17;continue;case 18:((af<0||af>=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+af]=F.Join(ah," || "));if(g[0]){$s=21;continue;}$s=22;continue;case 21:$r=j[0].Printf("/* */ if (%s) { $s = %d; continue; }",new CP([new $String(((af<0||af>=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+af])),new $Int((p+af>>0))]));$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 22:ae++;$s=15;continue;case 16:if(g[0]){$s=24;continue;}$s=25;continue;case 24:$r=j[0].Printf("/* */ $s = %d; continue;",new CP([new $Int(q)]));$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 25:ao="";ap="";if(!(f[0]===DO.nil)||r){ao="switch (0) { default: ";ap=" }";}aq=b[0];ar=0;case 27:if(!(ar=aq.$length)?($throwRuntimeError("index out of range"),undefined):aq.$array[aq.$offset+ar]);j[0].SetPos(h[0].Pos());as=!g[0];at=A.Sprintf("%sif (%s) {",new CP([new $String(ao),new $String(((k[0]<0||k[0]>=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+k[0]]))]));$s=29;case 29:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=at;av=A.Sprintf("case %d:",new CP([new $Int((p+k[0]>>0))]));$s=30;case 30:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=av;$r=j[0].PrintCond(as,au,aw);$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=j[0].Indent((function(b,c,f,g,h,i,j,k,l){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=j[0].translateStmtList(h[0].Body);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(g[0]&&(k[0]<(b[0].$length-1>>0)||!(c[0]===EG.nil))&&!W.EndsWithReturn(h[0].Body)){$s=2;continue;}$s=3;continue;case 2:$r=j[0].Printf("$s = %d; continue;",new CP([new $Int(i[0])]));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,f,g,h,i,j,k,l));$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ao="} else ";ar++;$s=27;continue;case 28:if(!(c[0]===EG.nil)){$s=33;continue;}$s=34;continue;case 33:ax=!g[0];ay=ao+"{";az=A.Sprintf("case %d:",new CP([new $Int((p+b[0].$length>>0))]));$s=35;case 35:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;$r=j[0].PrintCond(ax,ay,ba);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=j[0].Indent((function(b,c,f,g,h,i,j,k,l){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=j[0].translateStmtList(c[0].Body);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,f,g,h,i,j,k,l));$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 34:bb=!g[0];bc="}"+ap;bd=A.Sprintf("case %d:",new CP([new $Int(i[0])]));$s=38;case 38:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=bd;$r=j[0].PrintCond(bb,bc,be);$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:BP.ptr.prototype.translateBranchingStmt,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};BP.prototype.translateBranchingStmt=function(b,c,d,e,f,g){return this.$val.translateBranchingStmt(b,c,d,e,f,g);};BP.ptr.prototype.translateLoopingStmt=function(b,c,d,e,f,g){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred,$r,$c}=$restore(this,{b,c,d,e,f,g});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];d=[d];e=[e];f=[f];g=[g];h=[h];i=[i];j=[j];k=[k];i[0]=this;k[0]=(l=$mapIndex(i[0].flowDatas,DO.keyFor(DO.nil)),l!==undefined?l.v:EJ.nil);h[0]=new BQ.ptr(e[0],0,0);if(g[0]){h[0].beginCase=i[0].caseCounter;h[0].endCase=i[0].caseCounter+1>>0;i[0].caseCounter=i[0].caseCounter+(2)>>0;}m=DO.nil;(i[0].flowDatas||$throwRuntimeError("assignment to entry in nil map")).set(DO.keyFor(m),{k:m,v:h[0]});n=f[0];(i[0].flowDatas||$throwRuntimeError("assignment to entry in nil map")).set(DO.keyFor(n),{k:n,v:h[0]});$deferred.push([(function(b,c,d,e,f,g,h,i,j,k){return function(){var o;$mapDelete(i[0].flowDatas,DO.keyFor(f[0]));o=DO.nil;(i[0].flowDatas||$throwRuntimeError("assignment to entry in nil map")).set(DO.keyFor(o),{k:o,v:k[0]});};})(b,c,d,e,f,g,h,i,j,k),[]]);if(!g[0]&&!(f[0]===DO.nil)){$s=1;continue;}$s=2;continue;case 1:$r=i[0].Printf("%s:",new CP([new $String(f[0].object.Name())]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:j[0]=false;o=!g[0];p=A.Sprintf("case %d:",new CP([new $Int(h[0].beginCase)]));$s=4;case 4:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$r=i[0].PrintCond(o,"while (true) {",q);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=i[0].Indent((function(b,c,d,e,f,g,h,i,j,k){return function $b(){var{aa,ab,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:r=b[0]();$s=1;case 1:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;if(!(s==="true")){$s=2;continue;}$s=3;continue;case 2:t=!g[0];u=A.Sprintf("if (!(%s)) { break; }",new CP([new $String(s)]));$s=4;case 4:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;w=A.Sprintf("if(!(%s)) { $s = %d; continue; }",new CP([new $String(s),new $Int(h[0].endCase)]));$s=5;case 5:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;$r=i[0].PrintCond(t,v,x);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:y=i[0].pkgCtx.escapingVars;$r=i[0].handleEscapingVars(c[0]);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(d[0]===$throwNilPointerError)){$s=8;continue;}$s=9;continue;case 8:$r=d[0]();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:$r=i[0].translateStmtList(c[0].List);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((c[0].List.$length===0))){z=(aa=c[0].List,ab=c[0].List.$length-1>>0,((ab<0||ab>=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+ab]));if($assertType(z,DW,true)[1]||$assertType(z,DV,true)[1]){j[0]=true;}}if(!j[0]){$s=12;continue;}$s=13;continue;case 12:$r=e[0]();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:i[0].pkgCtx.escapingVars=y;$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,aa,ab,r,s,t,u,v,w,x,y,z,$s};return $f;};})(b,c,d,e,f,g,h,i,j,k));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(g[0]){$s=7;continue;}$s=8;continue;case 7:if(!j[0]){$s=10;continue;}$s=11;continue;case 10:$r=i[0].Printf("$s = %d; continue;",new CP([new $Int(h[0].beginCase)]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:$r=i[0].Printf("case %d:",new CP([new $Int(h[0].endCase)]));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=9;continue;case 8:$r=i[0].Printf("}",new CP([]));$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){var $f={$blk:BP.ptr.prototype.translateLoopingStmt,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$deferred};return $f;}}};BP.prototype.translateLoopingStmt=function(b,c,d,e,f,g){return this.$val.translateLoopingStmt(b,c,d,e,f,g);};BP.ptr.prototype.translateAssign=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;b=W.RemoveParens(b);if(AY(b)){$panic(new $String("translateAssign with blank lhs"));}f=$assertType(b,EW,true);g=f[0];h=f[1];if(h){$s=1;continue;}$s=2;continue;case 1:j=e.pkgCtx.Info.Info.TypeOf(g.X);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j.Underlying();$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}i=$assertType(k,DC,true);l=i[0];m=i[1];if(m){$s=5;continue;}$s=6;continue;case 5:n=e.pkgCtx.Info.Info.TypeOf(g.Index);$s=9;case 9:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=U.IsJsObject(n);$s=10;case 10:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(o){$s=7;continue;}$s=8;continue;case 7:q=g.Index.Pos();$s=11;case 11:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}e.pkgCtx.errList=$append(e.pkgCtx.errList,(p=new M.Error.ptr(e.pkgCtx.fileSet,q,"cannot use js.Object as map key",false,0,0,0),new p.constructor.elem(p)));case 8:r=e.newVariable("_key");$s=12;case 12:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;t=new $String(s);u=e.translateImplicitConversionWithCloning(g.Index,l.Key());$s=13;case 13:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;w=e.translateExpr(g.X);$s=14;case 14:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;y=e.typeName(l.Key());$s=15;case 15:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=new $String(y);aa=new $String(s);ab=new $String(s);ac=e.translateImplicitConversionWithCloning(c,l.Elem());$s=16;case 16:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;ae=A.Sprintf("%s = %s; (%s || $throwRuntimeError(\"assignment to entry in nil map\")).set(%s.keyFor(%s), { k: %s, v: %s });",new CP([t,v,x,z,aa,ab,ad]));$s=17;case 17:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;$s=18;case 18:return af;case 6:case 2:ag=e.pkgCtx.Info.Info.TypeOf(b);$s=19;case 19:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag;ai=e.translateImplicitConversion(c,ah);$s=20;case 20:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai;ak=$assertType(c,EX,true);al=ak[1];if(al&&d){$s=21;continue;}$s=22;continue;case 21:am=e.translateExpr(b);$s=23;case 23:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am;ao=aj;ap=A.Sprintf("%s = %s;",new CP([an,ao]));$s=24;case 24:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap;$s=25;case 25:return aq;case 22:ar=false;as=$assertType(ah,DK,true);at=as[0];au=as[1];if(au&&!(at.Obj().object.Pkg()===EL.nil)&&at.Obj().object.Pkg().Path()==="reflect"&&at.Obj().object.Name()==="Value"){ar=true;}if(!ar){$s=26;continue;}$s=27;continue;case 26:aw=ah.Underlying();$s=28;case 28:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}av=aw;if($assertType(av,CZ,true)[1]||$assertType(av,CW,true)[1]){$s=29;continue;}$s=30;continue;case 29:if(d){$s=31;continue;}$s=32;continue;case 31:ax=e.translateExpr(b);$s=33;case 33:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;az=aj;ba=e.typeName(ah);$s=34;case 34:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=new $String(ba);bc=A.Sprintf("%s = $clone(%s, %s);",new CP([ay,az,bb]));$s=35;case 35:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;$s=36;case 36:return bd;case 32:be=e.typeName(ah);$s=37;case 37:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bf=new $String(be);bg=e.translateExpr(b);$s=38;case 38:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=bg;bi=aj;bj=A.Sprintf("%s.copy(%s, %s);",new CP([bf,bh,bi]));$s=39;case 39:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bk=bj;$s=40;case 40:return bk;case 30:case 27:bl=b;if($assertType(bl,DE,true)[1]){$s=41;continue;}if($assertType(bl,EY,true)[1]){$s=42;continue;}if($assertType(bl,EZ,true)[1]){$s=43;continue;}if($assertType(bl,EW,true)[1]){$s=44;continue;}$s=45;continue;case 41:bm=bl.$val;br=e.objectName(e.pkgCtx.Info.Info.ObjectOf(bm));$s=47;case 47:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}bs=new $String(br);bt=aj;bu=A.Sprintf("%s = %s;",new CP([bs,bt]));$s=48;case 48:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}bv=bu;$s=49;case 49:return bv;case 42:bn=bl.$val;bw=e.pkgCtx.SelectionOf(bn);bx=bw[0];by=bw[1];if(!by){$s=50;continue;}$s=51;continue;case 50:ca=e.objectName((bz=$mapIndex(e.pkgCtx.Info.Info.Uses,DE.keyFor(bn.Sel)),bz!==undefined?bz.v:$ifaceNil));$s=52;case 52:if($c){$c=false;ca=ca.$blk();}if(ca&&ca.$blk!==undefined){break s;}cb=new $String(ca);cc=aj;cd=A.Sprintf("%s = %s;",new CP([cb,cc]));$s=53;case 53:if($c){$c=false;cd=cd.$blk();}if(cd&&cd.$blk!==undefined){break s;}ce=cd;$s=54;case 54:return ce;case 51:cg=bx;ch=bn.Pos();$s=55;case 55:if($c){$c=false;ch=ch.$blk();}if(ch&&ch.$blk!==undefined){break s;}ci=ch;cj=e.translateSelection(cg,ci);$s=56;case 56:if($c){$c=false;cj=cj.$blk();}if(cj&&cj.$blk!==undefined){break s;}cf=cj;ck=cf[0];cl=cf[1];if(!(cl==="")){$s=57;continue;}$s=58;continue;case 57:cm=e.translateExpr(bn.X);$s=59;case 59:if($c){$c=false;cm=cm.$blk();}if(cm&&cm.$blk!==undefined){break s;}cn=cm;co=new $String(F.Join(ck,"."));cp=BG(cl);$s=60;case 60:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}cq=new $String(cp);cr=aj.String();cs=bx.Type();$s=61;case 61:if($c){$c=false;cs=cs.$blk();}if(cs&&cs.$blk!==undefined){break s;}ct=cs;cu=e.externalize(cr,ct);$s=62;case 62:if($c){$c=false;cu=cu.$blk();}if(cu&&cu.$blk!==undefined){break s;}cv=new $String(cu);cw=A.Sprintf("%s.%s%s = %s;",new CP([cn,co,cq,cv]));$s=63;case 63:if($c){$c=false;cw=cw.$blk();}if(cw&&cw.$blk!==undefined){break s;}cx=cw;$s=64;case 64:return cx;case 58:cy=e.translateExpr(bn.X);$s=65;case 65:if($c){$c=false;cy=cy.$blk();}if(cy&&cy.$blk!==undefined){break s;}cz=cy;da=new $String(F.Join(ck,"."));db=aj;dc=A.Sprintf("%s.%s = %s;",new CP([cz,da,db]));$s=66;case 66:if($c){$c=false;dc=dc.$blk();}if(dc&&dc.$blk!==undefined){break s;}dd=dc;$s=67;case 67:return dd;case 43:bo=bl.$val;de=e.translateExpr(bo.X);$s=68;case 68:if($c){$c=false;de=de.$blk();}if(de&&de.$blk!==undefined){break s;}df=de;dg=aj;dh=A.Sprintf("%s.$set(%s);",new CP([df,dg]));$s=69;case 69:if($c){$c=false;dh=dh.$blk();}if(dh&&dh.$blk!==undefined){break s;}di=dh;$s=70;case 70:return di;case 44:bp=bl.$val;dk=e.pkgCtx.Info.Info.TypeOf(bp.X);$s=71;case 71:if($c){$c=false;dk=dk.$blk();}if(dk&&dk.$blk!==undefined){break s;}dl=dk.Underlying();$s=72;case 72:if($c){$c=false;dl=dl.$blk();}if(dl&&dl.$blk!==undefined){break s;}dj=dl;if($assertType(dj,CZ,true)[1]||$assertType(dj,CV,true)[1]){$s=73;continue;}if($assertType(dj,DD,true)[1]){$s=74;continue;}$s=75;continue;case 73:dm=dj;dr=BE("%1e[%2f] = %3s",!($interfaceIsEqual((dq=$mapIndex(e.pkgCtx.Info.Info.Types,J.Expr.keyFor(bp.Index)),dq!==undefined?dq.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value,$ifaceNil)),true);ds=$assertType(dm,CV,true);dt=ds[1];if(dt){dr="%1e.nilCheck, "+dr;}du=e.formatExpr(dr,new CP([bp.X,bp.Index,aj]));$s=77;case 77:if($c){$c=false;du=du.$blk();}if(du&&du.$blk!==undefined){break s;}dv=du.String();$s=78;case 78:if($c){$c=false;dv=dv.$blk();}if(dv&&dv.$blk!==undefined){break s;}dw=dv+";";$s=79;case 79:return dw;case 74:dn=dj.$val;dy=e.formatExpr(BE("%1e.$array[%1e.$offset + %2f] = %3s",!($interfaceIsEqual((dx=$mapIndex(e.pkgCtx.Info.Info.Types,J.Expr.keyFor(bp.Index)),dx!==undefined?dx.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value,$ifaceNil)),false),new CP([bp.X,bp.Index,aj]));$s=80;case 80:if($c){$c=false;dy=dy.$blk();}if(dy&&dy.$blk!==undefined){break s;}dz=dy.String();$s=81;case 81:if($c){$c=false;dz=dz.$blk();}if(dz&&dz.$blk!==undefined){break s;}ea=dz+";";$s=82;case 82:return ea;case 75:dp=dj;eb=A.Sprintf("Unhandled lhs type: %T\n",new CP([dp]));$s=83;case 83:if($c){$c=false;eb=eb.$blk();}if(eb&&eb.$blk!==undefined){break s;}$panic(new $String(eb));case 76:$s=46;continue;case 45:bq=bl;ec=A.Sprintf("Unhandled lhs type: %T\n",new CP([bq]));$s=84;case 84:if($c){$c=false;ec=ec.$blk();}if(ec&&ec.$blk!==undefined){break s;}$panic(new $String(ec));case 46:$s=-1;return"";}return;}var $f={$blk:BP.ptr.prototype.translateAssign,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BP.prototype.translateAssign=function(b,c,d){return this.$val.translateAssign(b,c,d);};BP.ptr.prototype.translateResults=function(b){var{aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.sig.Results();e=d.Len();if(e===(0)){$s=2;continue;}if(e===(1)){$s=3;continue;}$s=4;continue;case 2:$s=-1;return"";case 3:f=c.zeroValue(d.At(0).object.Type());$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!(b===CT.nil)){g=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]);}h=c.translateImplicitConversion(g,d.At(0).object.Type());$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;c.delayedOutput=CR.nil;$s=-1;return" "+i.String();case 4:if(b.$length===1){$s=8;continue;}$s=9;continue;case 8:j=c.pkgCtx.Info.Info.TypeOf((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]));$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=$assertType(j,CS);if(!((k.Len()===d.Len()))){$panic(new $String("invalid tuple return assignment"));}l=c.translateExpr((0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]));$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l.String();$s=12;case 12:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;o=M.Identical(k,d);$s=15;case 15:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(o){$s=13;continue;}$s=14;continue;case 13:$s=-1;return" "+n;case 14:p=c.newVariable("_returncast");$s=16;case 16:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$r=c.Printf("%s = %s;",new CP([new $String(q),new $String(n)]));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=$makeSlice(CT,k.Len());r=b;s=0;case 18:if(!(s=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+t]=v);s++;$s=18;continue;case 19:case 9:w=$makeSlice(CQ,d.Len());x=w;y=0;case 22:if(!(y=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+z]);}ac=c.translateImplicitConversion(ab,d.At(z).object.Type());$s=25;case 25:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac.String();$s=26;case 26:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}((z<0||z>=w.$length)?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+z]=ad);y++;$s=22;continue;case 23:c.delayedOutput=CR.nil;$s=-1;return" ["+F.Join(w,", ")+"]";case 5:case 1:$s=-1;return"";}return;}var $f={$blk:BP.ptr.prototype.translateResults,$c:true,$r,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BP.prototype.translateResults=function(b){return this.$val.translateResults(b);};BP.ptr.prototype.labelCase=function(b){var b,c,d,e,f,g,h;c=this;d=(e=$mapIndex(c.labelCases,DO.keyFor(b)),e!==undefined?[e.v,true]:[0,false]);f=d[0];g=d[1];if(!g){f=c.caseCounter;c.caseCounter=c.caseCounter+(1)>>0;h=b;(c.labelCases||$throwRuntimeError("assignment to entry in nil map")).set(DO.keyFor(h),{k:h,v:f});}return f;};BP.prototype.labelCase=function(b){return this.$val.labelCase(b);};BM.ptr.prototype.SelectionOf=function(b){var b,c,d,e,f,g,h,i,j,k;c=this;d=(e=$mapIndex(c.Info.Info.Selections,EY.keyFor(b)),e!==undefined?[e.v,true]:[FA.nil,false]);f=d[0];g=d[1];if(g){return[f,true];}h=(i=$mapIndex(c.additionalSelections,EY.keyFor(b)),i!==undefined?[i.v,true]:[$ifaceNil,false]);j=h[0];k=h[1];if(k){return[j,true];}return[$ifaceNil,false];};BM.prototype.SelectionOf=function(b){return this.$val.SelectionOf(b);};BO.ptr.prototype.Kind=function(){var b;b=this;return b.kind;};BO.prototype.Kind=function(){return this.$val.Kind();};BO.ptr.prototype.Recv=function(){var b;b=this;return b.recv;};BO.prototype.Recv=function(){return this.$val.Recv();};BO.ptr.prototype.Index=function(){var b;b=this;return b.index;};BO.prototype.Index=function(){return this.$val.Index();};BO.ptr.prototype.Obj=function(){var b;b=this;return b.obj;};BO.prototype.Obj=function(){return this.$val.Obj();};BO.ptr.prototype.Type=function(){var b;b=this;return b.typ;};BO.prototype.Type=function(){return this.$val.Type();};BS.ptr.prototype.Import=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(b==="unsafe"){$s=-1;return[M.Unsafe,$ifaceNil];}e=c.importContext.Import(b);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];if(!($interfaceIsEqual(g,$ifaceNil))){if($interfaceIsEqual(c.importError.$get(),$ifaceNil)){c.importError.$set(g);}$s=-1;return[EL.nil,g];}$s=-1;return[(h=$mapIndex(c.importContext.Packages,$String.keyFor(f.ImportPath)),h!==undefined?h.v:EL.nil),$ifaceNil];}return;}var $f={$blk:BS.ptr.prototype.Import,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};BS.prototype.Import=function(b){return this.$val.Import(b);};BT=function(b,c,d,e,f){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,hw,hx,hy,hz,i,ia,ib,ic,id,ie,ig,ih,ii,ij,ik,il,im,io,ip,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r,$c}=$restore(this,{b,c,d,e,f});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);b=[b];c=[c];d=[d];e=[e];g=[g];h=[h];i=[i];j=[j];k=[k];l=[l];m=[m];n=[n];o=[o];p=[p];q=[q];r=FB.nil;g[0]=$ifaceNil;$deferred.push([(function(b,c,d,e,g,h,i,j,k,l,m,n,o,p,q){return function $b(){var{s,t,u,v,w,x,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:s=$recover();if($interfaceIsEqual(s,$ifaceNil)){$s=-1;return;}t=BL(s);u=t[0];v=t[1];if(v){g[0]=u;$s=-1;return;}w=A.Errorf("unexpected compiler panic while building package %q: %v",new CP([new $String(b[0]),s]));$s=1;case 1:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=BK(w);$s=2;case 2:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}g[0]=x;$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,s,t,u,v,w,x,$s};return $f;};})(b,c,d,e,g,h,i,j,k,l,m,n,o,p,q),[]]);$r=Q.Slice(c[0],(function(b,c,d,e,g,h,i,j,k,l,m,n,o,p,q){return function $b(s,t){var{s,t,u,v,w,x,y,$s,$r,$c}=$restore(this,{s,t});$s=$s||0;s:while(true){switch($s){case 0:u=d[0].File(((s<0||s>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+s]).Pos());$s=1;case 1:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u.Name();$s=2;case 2:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=d[0].File(((t<0||t>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+t]).Pos());$s=3;case 3:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w.Name();$s=4;case 4:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=v>x;$s=5;case 5:return y;}return;}var $f={$blk:$b,$c:true,$r,s,t,u,v,w,x,y,$s};return $f;};})(b,c,d,e,g,h,i,j,k,l,m,n,o,p,q));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s=new M.Info.ptr(new $global.Map(),false,new $global.Map(),new $global.Map(),new $global.Map(),new $global.Map(),new $global.Map(),FD.nil);h[0]=CE.nil;t=new FE([]);u=c[0];v=0;case 2:if(!(v=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v]);y=BY(d[0],b[0],w);$s=4;case 4:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}x=y;z=x[0];aa=x[1];if(!($interfaceIsEqual(aa,$ifaceNil))){ab=$assertType(aa,CE,true);ac=ab[0];ad=ab[1];if(ad){h[0]=$appendSlice(h[0],$convertSliceType(ac,FF));}else{h[0]=$append(h[0],aa);}}t=$appendSlice(t,z);v++;$s=2;continue;case 3:l[0]=$ifaceNil;p[0]=$ifaceNil;af=new M.Config.ptr(FG.nil,"",false,false,false,(function(b,c,d,e,g,h,i,j,k,l,m,n,o,p,q){return function $b(af){var{af,ag,ah,ai,$s,$r,$c}=$restore(this,{af});$s=$s||0;s:while(true){switch($s){case 0:if(!(!($interfaceIsEqual(p[0],$ifaceNil)))){ag=false;$s=3;continue s;}ah=p[0].Error();$s=4;case 4:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=af.Error();$s=5;case 5:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ag=ah===ai;case 3:if(ag){$s=1;continue;}$s=2;continue;case 1:$s=-1;return;case 2:h[0]=$append(h[0],af);p[0]=af;$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,af,ag,ah,ai,$s};return $f;};})(b,c,d,e,g,h,i,j,k,l,m,n,o,p,q),(ae=new BS.ptr(e[0],(l.$ptr||(l.$ptr=new FI(function(){return this.$target[0];},function($v){this.$target[0]=$v;},l)))),new ae.constructor.elem(ae)),CB,false);ah=af.Check(b[0],d[0],c[0],s);$s=5;case 5:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ag=ah;ai=ag[0];g[0]=ag[1];if(!($interfaceIsEqual(l[0],$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:aj=FB.nil;ak=l[0];r=aj;g[0]=ak;al=[r,g[0]];$s=8;case 8:return al;case 7:if(!(h[0]===CE.nil)){$s=9;continue;}$s=10;continue;case 9:if(h[0].$length>10){am=0;an=$assertType((9>=h[0].$length?($throwRuntimeError("index out of range"),undefined):h[0].$array[h[0].$offset+9]),M.Error,true);ao=$clone(an[0],M.Error);ap=an[1];if(ap){am=ao.Pos;}h[0]=$append($subslice(h[0],0,10),(aq=new M.Error.ptr(d[0],am,"too many errors",false,0,0,0),new aq.constructor.elem(aq)));}ar=FB.nil;as=h[0];r=ar;g[0]=as;at=[r,g[0]];$s=11;case 11:return at;case 10:if(!($interfaceIsEqual(g[0],$ifaceNil))){$s=12;continue;}$s=13;continue;case 12:au=FB.nil;av=g[0];r=au;g[0]=av;aw=[r,g[0]];$s=14;case 14:return aw;case 13:ax=b[0];(e[0].Packages||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(ax),{k:ax,v:ai});ay=new G.Buffer.ptr(CR.nil,0,0);az=AC.Write(ay,CX.nil,ai);$s=15;case 15:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;if(!($interfaceIsEqual(ba,$ifaceNil))){$s=16;continue;}$s=17;continue;case 16:bb=FB.nil;bd=A.Errorf("failed to write export data: %v",new CP([ba]));$s=18;case 18:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}bc=bd;r=bb;g[0]=bc;be=[r,g[0]];$s=19;case 19:return be;case 17:bf=new G.Buffer.ptr(CR.nil,0,0);bg=d[0].Write($methodVal(Y.NewEncoder(bf),"Encode"));$s=20;case 20:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=bg;if(!($interfaceIsEqual(bh,$ifaceNil))){$s=21;continue;}$s=22;continue;case 21:bi=FB.nil;bj=bh;r=bi;g[0]=bj;bk=[r,g[0]];$s=23;case 23:return bk;case 22:bl=$makeSlice(FK,c[0].$length);bm=c[0];bn=0;case 24:if(!(bn=bm.$length)?($throwRuntimeError("index out of range"),undefined):bm.$array[bm.$offset+bn]);bq=AB.Simplify(bp,s,false);$s=26;case 26:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}((bo<0||bo>=bl.$length)?($throwRuntimeError("index out of range"),undefined):bl.$array[bl.$offset+bo]=bq);bn++;$s=24;continue;case 25:br=(function(b,c,d,e,g,h,i,j,k,l,m,n,o,p,q){return function $b(br){var{br,bs,bt,bu,bv,bw,bx,by,bz,ca,$s,$r,$c}=$restore(this,{br});$s=$s||0;s:while(true){switch($s){case 0:bt=e[0].Import(br.object.Pkg().Path());$s=1;case 1:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}bs=bt;bu=bs[0];bv=bs[1];if(!($interfaceIsEqual(bv,$ifaceNil))){$panic(bv);}bw=br.FullName();$s=2;case 2:if($c){$c=false;bw=bw.$blk();}if(bw&&bw.$blk!==undefined){break s;}bx=bw;by=bu.Declarations;bz=0;while(true){if(!(bz=by.$length)?($throwRuntimeError("index out of range"),undefined):by.$array[by.$offset+bz]);if((ca.FullName)===bx){$s=-1;return ca.Blocking;}bz++;}$panic(new $String(bx));$s=-1;return false;}return;}var $f={$blk:$b,$c:true,$r,br,bs,bt,bu,bv,bw,bx,by,bz,ca,$s};return $f;};})(b,c,d,e,g,h,i,j,k,l,m,n,o,p,q);bs=T.AnalyzePkg(bl,d[0],s,ai,br);$s=27;case 27:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}bt=bs;j[0]=new BP.ptr(bt.InitFuncInfo,new BM.ptr(bt,new $global.Map(),FO.nil,new $global.Map(),new $global.Map(),new $global.Map(),FO.nil,new AD.Map.ptr(new AD.Hasher.ptr(false,false,FP.nil),false,0),new $global.Map(),1,new $global.Map(),f,d[0],CE.nil),DG.nil,CU.nil,new $global.Map(),CQ.nil,CT.nil,$makeMap(DO.keyFor,[{k:DO.nil,v:new BQ.ptr($throwNilPointerError,0,0)}]),1,new $global.Map(),CR.nil,CR.nil,false,0);bu=CC;bv=0;bw=bu?bu.keys():undefined;bx=bu?bu.size:0;while(true){if(!(bv=ce.$length)?($throwRuntimeError("index out of range"),undefined):ce.$array[ce.$offset+cf]);if(cg===M.Unsafe){cf++;$s=28;continue;}ci=j[0].newVariableWithLevel(cg.Name(),true);$s=30;case 30:if($c){$c=false;ci=ci.$blk();}if(ci&&ci.$blk!==undefined){break s;}ch=cg.Path();(j[0].pkgCtx.pkgVars||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(ch),{k:ch,v:ci});cd=$append(cd,cg.Path());cf++;$s=28;continue;case 29:$r=Q.Strings(cd);$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cj=cd;ck=0;case 32:if(!(ck=cj.$length)?($throwRuntimeError("index out of range"),undefined):cj.$array[cj.$offset+ck]);co=A.Sprintf("%s.$init",new CP([new $String((cn=$mapIndex(j[0].pkgCtx.pkgVars,$String.keyFor(cm)),cn!==undefined?cn.v:""))]));$s=34;case 34:if($c){$c=false;co=co.$blk();}if(co&&co.$blk!==undefined){break s;}cp=j[0].newIdent(co,M.NewSignature(DH.nil,CS.nil,CS.nil,false));$s=35;case 35:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}cq=cp;cl[0]=new J.CallExpr.ptr(cq,0,CT.nil,0,0);cr=cl[0];(j[0].FuncInfo.Blocking||$throwRuntimeError("assignment to entry in nil map")).set(J.Node.keyFor(cr),{k:cr,v:true});cs=cl[0];(j[0].FuncInfo.Flattened||$throwRuntimeError("assignment to entry in nil map")).set(J.Node.keyFor(cs),{k:cs,v:true});cv=A.Sprintf("\t%s = $packages[\"%s\"];\n",new CP([new $String((cu=$mapIndex(j[0].pkgCtx.pkgVars,$String.keyFor(cm)),cu!==undefined?cu.v:"")),new $String(cm)]));$s=36;case 36:if($c){$c=false;cv=cv.$blk();}if(cv&&cv.$blk!==undefined){break s;}cw=j[0].CatchOutput(1,(function(b,c,cl,d,e,g,h,i,j,k,l,m,n,o,p,q){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=j[0].translateStmt(new J.ExprStmt.ptr(cl[0]),DO.nil);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,cl,d,e,g,h,i,j,k,l,m,n,o,p,q));$s=37;case 37:if($c){$c=false;cw=cw.$blk();}if(cw&&cw.$blk!==undefined){break s;}cc=$append(cc,new CG.ptr("",new BW.ptr("",""),new CQ([(ct=$mapIndex(j[0].pkgCtx.pkgVars,$String.keyFor(cm)),ct!==undefined?ct.v:"")]),(new CR($stringToBytes(cv))),CR.nil,CR.nil,cw,"","",CQ.nil,false));ck++;$s=32;continue;case 33:cx=FT.nil;cy=EM.nil;cz=bl;da=0;case 38:if(!(da=cz.$length)?($throwRuntimeError("index out of range"),undefined):cz.$array[cz.$offset+da]);dc=db.Decls;dd=0;case 40:if(!(dd=dc.$length)?($throwRuntimeError("index out of range"),undefined):dc.$array[dc.$offset+dd]);df=de;if($assertType(df,FS,true)[1]){$s=42;continue;}if($assertType(df,EN,true)[1]){$s=43;continue;}$s=44;continue;case 42:dg=df.$val;dj=$assertType($assertType((di=$mapIndex(j[0].pkgCtx.Info.Info.Defs,DE.keyFor(dg.Name)),di!==undefined?di.v:$ifaceNil),ET).object.Type(),CU);dk=$ifaceNil;if(!(dj.Recv()===DH.nil)){dk=dj.Recv().object.Type();dl=$assertType(dk,CV,true);dm=dl[0];dn=dl[1];if(dn){dk=dm.Elem();}}if(dj.Recv()===DH.nil){$s=45;continue;}$s=46;continue;case 45:dq=j[0].objectName($assertType((dp=$mapIndex(j[0].pkgCtx.Info.Info.Defs,DE.keyFor(dg.Name)),dp!==undefined?dp.v:$ifaceNil),ET));$s=47;case 47:if($c){$c=false;dq=dq.$blk();}if(dq&&dq.$blk!==undefined){break s;}dq;case 46:if(!AY(dg.Name)){cx=$append(cx,dg);}$s=44;continue;case 43:dh=df.$val;dr=dh.Tok;if(dr===(84)){$s=49;continue;}if(dr===(85)){$s=50;continue;}if(dr===(64)){$s=51;continue;}$s=52;continue;case 49:ds=dh.Specs;dt=0;case 53:if(!(dt=ds.$length)?($throwRuntimeError("index out of range"),undefined):ds.$array[ds.$offset+dt]);dw=$assertType((dv=$mapIndex(j[0].pkgCtx.Info.Info.Defs,DE.keyFor($assertType(du,EP).Name)),dv!==undefined?dv.v:$ifaceNil),DL);j[0].pkgCtx.typeNames=$append(j[0].pkgCtx.typeNames,dw);dx=j[0].objectName(dw);$s=55;case 55:if($c){$c=false;dx=dx.$blk();}if(dx&&dx.$blk!==undefined){break s;}dx;dt++;$s=53;continue;case 54:$s=52;continue;case 50:dy=dh.Specs;dz=0;case 56:if(!(dz=dy.$length)?($throwRuntimeError("index out of range"),undefined):dy.$array[dy.$offset+dz]);eb=$assertType(ea,EO).Names;ec=0;case 58:if(!(ec=eb.$length)?($throwRuntimeError("index out of range"),undefined):eb.$array[eb.$offset+ec]);if(!AY(ed)){$s=60;continue;}$s=61;continue;case 60:ef=$assertType((ee=$mapIndex(j[0].pkgCtx.Info.Info.Defs,DE.keyFor(ed)),ee!==undefined?ee.v:$ifaceNil),DH);cy=$append(cy,ef);eg=j[0].objectName(ef);$s=62;case 62:if($c){$c=false;eg=eg.$blk();}if(eg&&eg.$blk!==undefined){break s;}eg;case 61:ec++;$s=58;continue;case 59:dz++;$s=56;continue;case 57:$s=52;continue;case 51:case 52:case 48:case 44:dd++;$s=40;continue;case 41:da++;$s=38;continue;case 39:eh=(function(b,c,d,e,g,h,i,j,k,l,m,n,o,p,q){return function $b(eh){var{eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,$s,$r,$c}=$restore(this,{eh});$s=$s||0;s:while(true){switch($s){case 0:j[0].pkgCtx.dependencies=new $global.Map();$r=eh();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ei=CQ.nil;ej=j[0].pkgCtx.dependencies;ek=0;el=ej?ej.keys():undefined;em=ej?ej.size:0;case 2:if(!(ek=ek.$length)?($throwRuntimeError("index out of range"),undefined):ek.$array[ek.$offset+el]);en=em.Lhs;eo=0;while(true){if(!(eo=en.$length)?($throwRuntimeError("index out of range"),undefined):en.$array[en.$offset+eo]);eq=ep;(ej||$throwRuntimeError("assignment to entry in nil map")).set(DH.keyFor(eq),{k:eq,v:true});eo++;}el++;}er=cy;es=0;case 63:if(!(es=er.$length)?($throwRuntimeError("index out of range"),undefined):er.$array[er.$offset+es]);et[0]=new CG.ptr("",new BW.ptr("",""),CQ.nil,CR.nil,CR.nil,CR.nil,CR.nil,"","",CQ.nil,false);if(!n[0].object.Exported()){$s=65;continue;}$s=66;continue;case 65:eu=j[0].objectName(n[0]);$s=67;case 67:if($c){$c=false;eu=eu.$blk();}if(eu&&eu.$blk!==undefined){break s;}et[0].Vars=new CQ([eu]);case 66:if((ev=$mapIndex(j[0].pkgCtx.Info.HasPointer,DH.keyFor(n[0])),ev!==undefined?ev.v:false)&&!n[0].object.Exported()){$s=68;continue;}$s=69;continue;case 68:ew=j[0].varPtrName(n[0]);$s=70;case 70:if($c){$c=false;ew=ew.$blk();}if(ew&&ew.$blk!==undefined){break s;}et[0].Vars=$append(et[0].Vars,ew);case 69:ex=(ey=$mapIndex(ej,DH.keyFor(n[0])),ey!==undefined?[ey.v,true]:[false,false]);ez=ex[1];if(!ez){$s=71;continue;}$s=72;continue;case 71:fa=eh((function(b,c,d,e,et,g,h,i,j,k,l,m,n,o,p,q){return function $b(){var{fa,fb,fc,fd,fe,ff,fg,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:fa=j[0].objectName(n[0]);$s=1;case 1:if($c){$c=false;fa=fa.$blk();}if(fa&&fa.$blk!==undefined){break s;}fb=new $String(fa);fc=j[0].zeroValue(n[0].object.Type());$s=2;case 2:if($c){$c=false;fc=fc.$blk();}if(fc&&fc.$blk!==undefined){break s;}fd=j[0].translateExpr(fc);$s=3;case 3:if($c){$c=false;fd=fd.$blk();}if(fd&&fd.$blk!==undefined){break s;}fe=fd.String();$s=4;case 4:if($c){$c=false;fe=fe.$blk();}if(fe&&fe.$blk!==undefined){break s;}ff=new $String(fe);fg=A.Sprintf("\t\t%s = %s;\n",new CP([fb,ff]));$s=5;case 5:if($c){$c=false;fg=fg.$blk();}if(fg&&fg.$blk!==undefined){break s;}et[0].InitCode=(new CR($stringToBytes(fg)));$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,fa,fb,fc,fd,fe,ff,fg,$s};return $f;};})(b,c,d,e,et,g,h,i,j,k,l,m,n,o,p,q));$s=73;case 73:if($c){$c=false;fa=fa.$blk();}if(fa&&fa.$blk!==undefined){break s;}et[0].DceDeps=fa;case 72:et[0].DceObjectFilter=n[0].object.Name();ei=$append(ei,et[0]);es++;$s=63;continue;case 64:fb=j[0].pkgCtx.Info.Info.InitOrder;fc=0;case 74:if(!(fc=fb.$length)?($throwRuntimeError("index out of range"),undefined):fb.$array[fb.$offset+fc]);fe[0]=$makeSlice(CT,m[0].Lhs.$length);ff=m[0].Lhs;fg=0;while(true){if(!(fg=ff.$length)?($throwRuntimeError("index out of range"),undefined):ff.$array[ff.$offset+fg]);fj=J.NewIdent(fi.object.Name());fj.NamePos=fi.object.Pos();fk=fj;(j[0].pkgCtx.Info.Info.Defs||$throwRuntimeError("assignment to entry in nil map")).set(DE.keyFor(fk),{k:fk,v:fi});((fh<0||fh>=fe[0].$length)?($throwRuntimeError("index out of range"),undefined):fe[0].$array[fe[0].$offset+fh]=j[0].setType(fj,fi.object.Type()));fl=fi;(ej||$throwRuntimeError("assignment to entry in nil map")).set(DH.keyFor(fl),{k:fl,v:true});fg++;}fd[0]=new CG.ptr("",new BW.ptr("",""),CQ.nil,CR.nil,CR.nil,CR.nil,CR.nil,"","",CQ.nil,false);fm=eh((function(b,c,d,e,fd,fe,g,h,i,j,k,l,m,n,o,p,q){return function $b(){var{fm,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j[0].localVars=CQ.nil;fm=j[0].CatchOutput(1,(function(b,c,d,e,fd,fe,g,h,i,j,k,l,m,n,o,p,q){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=j[0].translateStmt(new J.AssignStmt.ptr(fe[0],0,47,new CT([m[0].Rhs])),DO.nil);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,d,e,fd,fe,g,h,i,j,k,l,m,n,o,p,q));$s=1;case 1:if($c){$c=false;fm=fm.$blk();}if(fm&&fm.$blk!==undefined){break s;}fd[0].InitCode=fm;fd[0].Vars=$appendSlice(fd[0].Vars,j[0].localVars);$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,fm,$s};return $f;};})(b,c,d,e,fd,fe,g,h,i,j,k,l,m,n,o,p,q));$s=76;case 76:if($c){$c=false;fm=fm.$blk();}if(fm&&fm.$blk!==undefined){break s;}fd[0].DceDeps=fm;if(m[0].Lhs.$length===1){$s=77;continue;}$s=78;continue;case 77:fn=T.HasSideEffect(m[0].Rhs,j[0].pkgCtx.Info.Info);$s=81;case 81:if($c){$c=false;fn=fn.$blk();}if(fn&&fn.$blk!==undefined){break s;}if(!fn){$s=79;continue;}$s=80;continue;case 79:fd[0].DceObjectFilter=(fo=m[0].Lhs,(0>=fo.$length?($throwRuntimeError("index out of range"),undefined):fo.$array[fo.$offset+0])).object.Name();case 80:case 78:ei=$append(ei,fd[0]);fc++;$s=74;continue;case 75:fp=FR.nil;fq=ET.nil;fr=cx;fs=0;case 82:if(!(fs=fr.$length)?($throwRuntimeError("index out of range"),undefined):fr.$array[fr.$offset+fs]);fv[0]=$assertType((fw=$mapIndex(j[0].pkgCtx.Info.Info.Defs,DE.keyFor(i[0].Name)),fw!==undefined?fw.v:$ifaceNil),ET);if(i[0].Type.TypeParams.NumFields()>0){$s=84;continue;}$s=85;continue;case 84:fx=FB.nil;ga=i[0].Type.TypeParams.Pos();$s=86;case 86:if($c){$c=false;ga=ga.$blk();}if(ga&&ga.$blk!==undefined){break s;}gb=d[0].Position(ga);$s=87;case 87:if($c){$c=false;gb=gb.$blk();}if(gb&&gb.$blk!==undefined){break s;}gc=A.Sprintf("function %s: type parameters are not supported by GopherJS: https://github.com/gopherjs/gopherjs/issues/1013",new CP([new $String(fv[0].object.Name())]));$s=88;case 88:if($c){$c=false;gc=gc.$blk();}if(gc&&gc.$blk!==undefined){break s;}fy=(fz=new Z.Error.ptr($clone(gb,L.Position),gc),new fz.constructor.elem(fz));r=fx;g[0]=fy;gd=[r,g[0]];$s=89;case 89:return gd;case 85:fu[0]=(ge=$mapIndex(j[0].pkgCtx.Info.FuncDeclInfos,ET.keyFor(fv[0])),ge!==undefined?ge.v:FL.nil);gf=fv[0].FullName();$s=90;case 90:if($c){$c=false;gf=gf.$blk();}if(gf&&gf.$blk!==undefined){break s;}ft[0]=new CG.ptr(gf,new BW.ptr("",""),CQ.nil,CR.nil,CR.nil,CR.nil,CR.nil,"","",CQ.nil,!(((fu[0].Blocking?fu[0].Blocking.size:0)===0)));if(i[0].Recv===FU.nil){$s=91;continue;}$s=92;continue;case 91:gg=BX(fv[0]);$s=93;case 93:if($c){$c=false;gg=gg.$blk();}if(gg&&gg.$blk!==undefined){break s;}BW.copy(ft[0].LinkingName,gg);gh=j[0].objectName(fv[0]);$s=94;case 94:if($c){$c=false;gh=gh.$blk();}if(gh&&gh.$blk!==undefined){break s;}ft[0].Vars=new CQ([gh]);ft[0].DceObjectFilter=fv[0].object.Name();gi=fv[0].object.Name();if(gi===("main")){$s=96;continue;}if(gi===("init")){$s=97;continue;}$s=98;continue;case 96:fq=fv[0];ft[0].DceObjectFilter="";$s=98;continue;case 97:gj=j[0].CatchOutput(1,(function(b,c,d,e,ft,fu,fv,g,h,i,j,k,l,m,n,o,p,q){return function $b(){var{gj,gk,gl,gm,gn,go,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:gj=j[0].newIdent("",M.NewSignature(DH.nil,CS.nil,CS.nil,false));gk=gj;(j[0].pkgCtx.Info.Info.Uses||$throwRuntimeError("assignment to entry in nil map")).set(DE.keyFor(gk),{k:gk,v:fv[0]});gl=new J.CallExpr.ptr(gj,0,CT.nil,0,0);if(!((((gm=$mapIndex(j[0].pkgCtx.Info.FuncDeclInfos,ET.keyFor(fv[0])),gm!==undefined?gm.v:FL.nil).Blocking?(gn=$mapIndex(j[0].pkgCtx.Info.FuncDeclInfos,ET.keyFor(fv[0])),gn!==undefined?gn.v:FL.nil).Blocking.size:0)===0))){go=gl;(j[0].FuncInfo.Blocking||$throwRuntimeError("assignment to entry in nil map")).set(J.Node.keyFor(go),{k:go,v:true});}$r=j[0].translateStmt(new J.ExprStmt.ptr(gl),DO.nil);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,gj,gk,gl,gm,gn,go,$s};return $f;};})(b,c,d,e,ft,fu,fv,g,h,i,j,k,l,m,n,o,p,q));$s=99;case 99:if($c){$c=false;gj=gj.$blk();}if(gj&&gj.$blk!==undefined){break s;}ft[0].InitCode=gj;ft[0].DceObjectFilter="";case 98:case 95:case 92:if(!(i[0].Recv===FU.nil)){gk=$assertType(fv[0].object.Type(),CU).Recv().object.Type();gl=$assertType(gk,CV,true);gm=gl[0];gn=gl[1];go=$assertType(gk,DK,true);gp=go[0];if(gn){gp=$assertType(gm.Elem(),DK);}ft[0].DceObjectFilter=gp.Obj().object.Name();if(!i[0].Name.IsExported()){ft[0].DceMethodFilter=fv[0].object.Name()+"~";}}gq=eh((function(b,c,d,e,ft,fu,fv,g,h,i,j,k,l,m,n,o,p,q){return function $b(){var{gq,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:gq=j[0].translateToplevelFunction(i[0],fu[0]);$s=1;case 1:if($c){$c=false;gq=gq.$blk();}if(gq&&gq.$blk!==undefined){break s;}ft[0].DeclCode=gq;$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,gq,$s};return $f;};})(b,c,d,e,ft,fu,fv,g,h,i,j,k,l,m,n,o,p,q));$s=100;case 100:if($c){$c=false;gq=gq.$blk();}if(gq&&gq.$blk!==undefined){break s;}ft[0].DceDeps=gq;fp=$append(fp,ft[0]);fs++;$s=82;continue;case 83:if(ai.Name()==="main"){$s=101;continue;}$s=102;continue;case 101:if(fq===ET.nil){$s=103;continue;}$s=104;continue;case 103:gr=FB.nil;gt=A.Errorf("missing main function",new CP([]));$s=105;case 105:if($c){$c=false;gt=gt.$blk();}if(gt&>.$blk!==undefined){break s;}gs=gt;r=gr;g[0]=gs;gu=[r,g[0]];$s=106;case 106:return gu;case 104:gv=j[0].newIdent("",M.NewSignature(DH.nil,CS.nil,CS.nil,false));gw=gv;(j[0].pkgCtx.Info.Info.Uses||$throwRuntimeError("assignment to entry in nil map")).set(DE.keyFor(gw),{k:gw,v:fq});gx=new J.CallExpr.ptr(gv,0,CT.nil,0,0);k[0]=new J.IfStmt.ptr(0,$ifaceNil,j[0].newIdent("$pkg === $mainPkg",(gy=M.Typ,(1>=gy.$length?($throwRuntimeError("index out of range"),undefined):gy.$array[gy.$offset+1]))),new J.BlockStmt.ptr(0,new EI([new J.ExprStmt.ptr(gx),new J.AssignStmt.ptr(new CT([j[0].newIdent("$mainFinished",(gz=M.Typ,(1>=gz.$length?($throwRuntimeError("index out of range"),undefined):gz.$array[gz.$offset+1])))]),0,42,new CT([j[0].newConst((ha=M.Typ,(1>=ha.$length?($throwRuntimeError("index out of range"),undefined):ha.$array[ha.$offset+1])),K.MakeBool(true))]))]),0),$ifaceNil);if(!((((hb=$mapIndex(j[0].pkgCtx.Info.FuncDeclInfos,ET.keyFor(fq)),hb!==undefined?hb.v:FL.nil).Blocking?(hc=$mapIndex(j[0].pkgCtx.Info.FuncDeclInfos,ET.keyFor(fq)),hc!==undefined?hc.v:FL.nil).Blocking.size:0)===0))){hd=gx;(j[0].FuncInfo.Blocking||$throwRuntimeError("assignment to entry in nil map")).set(J.Node.keyFor(hd),{k:hd,v:true});he=k[0];(j[0].FuncInfo.Flattened||$throwRuntimeError("assignment to entry in nil map")).set(J.Node.keyFor(he),{k:he,v:true});}hf=j[0].CatchOutput(1,(function(b,c,d,e,g,h,i,j,k,l,m,n,o,p,q){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=j[0].translateStmt(k[0],DO.nil);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b,c,d,e,g,h,i,j,k,l,m,n,o,p,q));$s=107;case 107:if($c){$c=false;hf=hf.$blk();}if(hf&&hf.$blk!==undefined){break s;}fp=$append(fp,new CG.ptr("",new BW.ptr("",""),CQ.nil,CR.nil,CR.nil,CR.nil,hf,"","",CQ.nil,false));case 102:hg=FR.nil;hh=j[0].pkgCtx.typeNames;hi=0;case 108:if(!(hi=hh.$length)?($throwRuntimeError("index out of range"),undefined):hh.$array[hh.$offset+hi]);if(o[0].IsAlias()){hi++;$s=108;continue;}hk=j[0].objectName(o[0]);$s=110;case 110:if($c){$c=false;hk=hk.$blk();}if(hk&&hk.$blk!==undefined){break s;}hl=hk;hm=$assertType(o[0].object.Type(),DK,true);hn=hm[0];ho=hm[1];if(!(ho)){hp=false;$s=113;continue s;}hq=hn.TypeParams();$s=114;case 114:if($c){$c=false;hq=hq.$blk();}if(hq&&hq.$blk!==undefined){break s;}hr=hq.Len();$s=115;case 115:if($c){$c=false;hr=hr.$blk();}if(hr&&hr.$blk!==undefined){break s;}hp=hr>0;case 113:if(hp){$s=111;continue;}$s=112;continue;case 111:hs=FB.nil;hv=d[0].Position(o[0].object.Pos());$s=116;case 116:if($c){$c=false;hv=hv.$blk();}if(hv&&hv.$blk!==undefined){break s;}hw=A.Sprintf("type %s: type parameters are not supported by GopherJS: https://github.com/gopherjs/gopherjs/issues/1013",new CP([new $String(o[0].object.Name())]));$s=117;case 117:if($c){$c=false;hw=hw.$blk();}if(hw&&hw.$blk!==undefined){break s;}ht=(hu=new Z.Error.ptr($clone(hv,L.Position),hw),new hu.constructor.elem(hu));r=hs;g[0]=ht;hx=[r,g[0]];$s=118;case 118:return hx;case 112:hj[0]=new CG.ptr("",new BW.ptr("",""),new CQ([hl]),CR.nil,CR.nil,CR.nil,CR.nil,o[0].object.Name(),"",CQ.nil,false);hy=eh((function(b,c,d,e,g,h,hj,i,j,k,l,m,n,o,p,q){return function $b(){var{hy,hz,ia,ib,ic,id,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:hy=[hy];hz=j[0].CatchOutput(0,(function(b,c,d,e,g,h,hj,hy,i,j,k,l,m,n,o,p,q){return function $b(){var{hz,ia,ib,ic,id,ie,ig,ih,ii,ij,ik,il,im,io,ip,iq,ir,is,it,iu,iv,iw,ix,iy,iz,ja,jb,jc,jd,je,jf,jg,jh,ji,jj,jk,jl,jm,jn,jo,jp,jq,jr,js,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:hz=j[0].objectName(o[0]);$s=1;case 1:if($c){$c=false;hz=hz.$blk();}if(hz&&hz.$blk!==undefined){break s;}ia=hz;ib=ia;ic=AM(o[0]);$s=4;case 4:if($c){$c=false;ic=ic.$blk();}if(ic&&ic.$blk!==undefined){break s;}if(ic){$s=2;continue;}$s=3;continue;case 2:ib=ib+(" = $pkg."+BF(o[0].object.Name()));case 3:id=new $Int64(0,0);ie="null";ih=o[0].object.Type().Underlying();$s=5;case 5:if($c){$c=false;ih=ih.$blk();}if(ih&&ih.$blk!==undefined){break s;}ig=ih;if($assertType(ig,CW,true)[1]){$s=6;continue;}if($assertType(ig,CY,true)[1]||$assertType(ig,CZ,true)[1]||$assertType(ig,DD,true)[1]||$assertType(ig,DA,true)[1]||$assertType(ig,CU,true)[1]||$assertType(ig,DB,true)[1]||$assertType(ig,CV,true)[1]||$assertType(ig,DC,true)[1]){$s=7;continue;}$s=8;continue;case 6:ii=ig.$val;ik=$makeSlice(CQ,ii.NumFields());il=0;case 9:if(!(il=ik.$length)?($throwRuntimeError("index out of range"),undefined):ik.$array[ik.$offset+il]=im+"_");il=il+(1)>>0;$s=9;continue;case 10:io=A.Sprintf("function(%s) {\n\t\tthis.$val = this;\n\t\tif (arguments.length === 0) {\n",new CP([new $String(F.Join(ik,", "))]));$s=12;case 12:if($c){$c=false;io=io.$blk();}if(io&&io.$blk!==undefined){break s;}ie=io;ip=0;case 13:if(!(ip>0;$s=13;continue;case 14:ie=ie+("\t\t\treturn;\n\t\t}\n");ix=0;case 20:if(!(ix>0;$s=20;continue;case 21:ie=ie+("\t}");$s=8;continue;case 7:ij=ig;jb=CB.Sizeof(ij);$s=24;case 24:if($c){$c=false;jb=jb.$blk();}if(jb&&jb.$blk!==undefined){break s;}id=jb;case 8:jd=o[0].object.Type().Underlying();$s=25;case 25:if($c){$c=false;jd=jd.$blk();}if(jd&&jd.$blk!==undefined){break s;}jc=$assertType(jd,CV,true);je=jc[0];jf=jc[1];if(jf){$s=26;continue;}$s=27;continue;case 26:jh=je.Elem().Underlying();$s=28;case 28:if($c){$c=false;jh=jh.$blk();}if(jh&&jh.$blk!==undefined){break s;}jg=$assertType(jh,CZ,true);ji=jg[1];if(ji){ie="$arrayPtrCtor()";}case 27:jj=new $String(ib);jk=id;jl=AO(o[0].object.Type());$s=29;case 29:if($c){$c=false;jl=jl.$blk();}if(jl&&jl.$blk!==undefined){break s;}jm=new $String(jl);jn=new $String(o[0].object.Pkg().Name());jo=new $String(o[0].object.Name());jp=new $Bool(!(o[0].object.Name()===""));jq=new $String(o[0].object.Pkg().Path());jr=new $Bool(o[0].object.Exported());js=new $String(ie);$r=j[0].Printf("%s = $newType(%d, %s, \"%s.%s\", %t, \"%s\", %t, %s);",new CP([jj,jk,jm,jn,jo,jp,jq,jr,js]));$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,hz,ia,ib,ic,id,ie,ig,ih,ii,ij,ik,il,im,io,ip,iq,ir,is,it,iu,iv,iw,ix,iy,iz,ja,jb,jc,jd,je,jf,jg,jh,ji,jj,jk,jl,jm,jn,jo,jp,jq,jr,js,$s};return $f;};})(b,c,d,e,g,h,hj,hy,i,j,k,l,m,n,o,p,q));$s=1;case 1:if($c){$c=false;hz=hz.$blk();}if(hz&&hz.$blk!==undefined){break s;}hj[0].DeclCode=hz;ia=j[0].CatchOutput(0,(function(b,c,d,e,g,h,hj,hy,i,j,k,l,m,n,o,p,q){return function $b(){var{ia,ib,ic,id,ie,ig,ih,ii,ij,ik,il,im,io,ip,iq,ir,is,it,iu,iv,iw,ix,iy,iz,ja,jb,jc,jd,je,jf,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:ia=$assertType(o[0].object.Type(),DK);ic=ia.Underlying();$s=1;case 1:if($c){$c=false;ic=ic.$blk();}if(ic&&ic.$blk!==undefined){break s;}ib=$assertType(ic,DB,true);id=ib[1];if(id){$s=-1;return;}ie=CQ.nil;ig=CQ.nil;ih=0;case 2:ii=ia.NumMethods();$s=4;case 4:if($c){$c=false;ii=ii.$blk();}if(ii&&ii.$blk!==undefined){break s;}if(!(ih>0;$s=2;continue;}ie=$append(ie,ix);ih=ih+(1)>>0;$s=2;continue;case 3:if(ie.$length>0){$s=9;continue;}$s=10;continue;case 9:ja=j[0].typeName(ia);$s=11;case 11:if($c){$c=false;ja=ja.$blk();}if(ja&&ja.$blk!==undefined){break s;}jb=new $String(ja);jc=new $String(F.Join(ie,", "));$r=j[0].Printf("%s.methods = [%s];",new CP([jb,jc]));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:if(ig.$length>0){$s=13;continue;}$s=14;continue;case 13:jd=j[0].typeName(M.NewPointer(ia));$s=15;case 15:if($c){$c=false;jd=jd.$blk();}if(jd&&jd.$blk!==undefined){break s;}je=new $String(jd);jf=new $String(F.Join(ig,", "));$r=j[0].Printf("%s.methods = [%s];",new CP([je,jf]));$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ia,ib,ic,id,ie,ig,ih,ii,ij,ik,il,im,io,ip,iq,ir,is,it,iu,iv,iw,ix,iy,iz,ja,jb,jc,jd,je,jf,$s};return $f;};})(b,c,d,e,g,h,hj,hy,i,j,k,l,m,n,o,p,q));$s=2;case 2:if($c){$c=false;ia=ia.$blk();}if(ia&&ia.$blk!==undefined){break s;}hj[0].MethodListCode=ia;ic=o[0].object.Type().Underlying();$s=3;case 3:if($c){$c=false;ic=ic.$blk();}if(ic&&ic.$blk!==undefined){break s;}ib=ic;if($assertType(ib,CZ,true)[1]||$assertType(ib,DA,true)[1]||$assertType(ib,DB,true)[1]||$assertType(ib,DC,true)[1]||$assertType(ib,CV,true)[1]||$assertType(ib,DD,true)[1]||$assertType(ib,CU,true)[1]||$assertType(ib,CW,true)[1]){$s=4;continue;}$s=5;continue;case 4:hy[0]=ib;id=j[0].CatchOutput(0,(function(b,c,d,e,g,h,hj,hy,i,j,k,l,m,n,o,p,q){return function $b(){var{id,ie,ig,ih,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:id=j[0].objectName(o[0]);$s=1;case 1:if($c){$c=false;id=id.$blk();}if(id&&id.$blk!==undefined){break s;}ie=new $String(id);ig=j[0].initArgs(hy[0]);$s=2;case 2:if($c){$c=false;ig=ig.$blk();}if(ig&&ig.$blk!==undefined){break s;}ih=new $String(ig);$r=j[0].Printf("%s.init(%s);",new CP([ie,ih]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,id,ie,ig,ih,$s};return $f;};})(b,c,d,e,g,h,hj,hy,i,j,k,l,m,n,o,p,q));$s=6;case 6:if($c){$c=false;id=id.$blk();}if(id&&id.$blk!==undefined){break s;}hj[0].TypeInitCode=id;case 5:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,hy,hz,ia,ib,ic,id,$s};return $f;};})(b,c,d,e,g,h,hj,i,j,k,l,m,n,o,p,q));$s=119;case 119:if($c){$c=false;hy=hy.$blk();}if(hy&&hy.$blk!==undefined){break s;}hj[0].DceDeps=hy;hg=$append(hg,hj[0]);hi++;$s=108;continue;case 109:hz=j[0].pkgCtx.anonTypes;ia=0;case 120:if(!(ia=hz.$length)?($throwRuntimeError("index out of range"),undefined):hz.$array[hz.$offset+ia]);ib[0]=new CG.ptr("",new BW.ptr("",""),new CQ([q[0].object.Name()]),CR.nil,CR.nil,CR.nil,CR.nil,q[0].object.Name(),"",CQ.nil,false);ic=eh((function(b,c,d,e,g,h,i,ib,j,k,l,m,n,o,p,q){return function $b(){var{ic,id,ie,ig,ih,ii,ij,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:ic=new $String(q[0].object.Name());id=AO(q[0].object.Type());$s=1;case 1:if($c){$c=false;id=id.$blk();}if(id&&id.$blk!==undefined){break s;}ie=F.ToLower($substring(id,5));$s=2;case 2:if($c){$c=false;ie=ie.$blk();}if(ie&&ie.$blk!==undefined){break s;}ig=new $String(ie);ih=j[0].initArgs(q[0].object.Type());$s=3;case 3:if($c){$c=false;ih=ih.$blk();}if(ih&&ih.$blk!==undefined){break s;}ii=new $String(ih);ij=A.Sprintf("\t%s = $%sType(%s);\n",new CP([ic,ig,ii]));$s=4;case 4:if($c){$c=false;ij=ij.$blk();}if(ij&&ij.$blk!==undefined){break s;}ib[0].DeclCode=(new CR($stringToBytes(ij)));$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ic,id,ie,ig,ih,ii,ij,$s};return $f;};})(b,c,d,e,g,h,i,ib,j,k,l,m,n,o,p,q));$s=122;case 122:if($c){$c=false;ic=ic.$blk();}if(ic&&ic.$blk!==undefined){break s;}ib[0].DceDeps=ic;hg=$append(hg,ib[0]);ia++;$s=120;continue;case 121:id=FR.nil;ie=$appendSlice($appendSlice($appendSlice(cc,hg),ei),fp);ig=0;while(true){if(!(ig=ie.$length)?($throwRuntimeError("index out of range"),undefined):ie.$array[ie.$offset+ig]);ih.DeclCode=BD(ih.DeclCode,f);ih.MethodListCode=BD(ih.MethodListCode,f);ih.TypeInitCode=BD(ih.TypeInitCode,f);ih.InitCode=BD(ih.InitCode,f);id=$append(id,ih);ig++;}if(!((j[0].pkgCtx.errList.$length===0))){$s=123;continue;}$s=124;continue;case 123:ii=FB.nil;ij=j[0].pkgCtx.errList;r=ii;g[0]=ij;ik=[r,g[0]];$s=125;case 125:return ik;case 124:im=AA.Now();$s=126;case 126:if($c){$c=false;im=im.$blk();}if(im&&im.$blk!==undefined){break s;}il=new CF.ptr(b[0],ai.Name(),cd,ay.Bytes(),id,CR.nil,bf.Bytes(),f,t,$clone(im,AA.Time));io=$ifaceNil;r=il;g[0]=io;ip=[r,g[0]];$s=127;case 127:return ip;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[r,g[0]];}if($curGoroutine.asleep){var $f={$blk:BT,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,hw,hx,hy,hz,i,ia,ib,ic,id,ie,ig,ih,ii,ij,ik,il,im,io,ip,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred};return $f;}}};$pkg.Compile=BT;BP.ptr.prototype.initArgs=function(b){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=b;if($assertType(d,CZ,true)[1]){$s=1;continue;}if($assertType(d,DA,true)[1]){$s=2;continue;}if($assertType(d,DB,true)[1]){$s=3;continue;}if($assertType(d,DC,true)[1]){$s=4;continue;}if($assertType(d,CV,true)[1]){$s=5;continue;}if($assertType(d,DD,true)[1]){$s=6;continue;}if($assertType(d,CU,true)[1]){$s=7;continue;}if($assertType(d,CW,true)[1]){$s=8;continue;}$s=9;continue;case 1:e=d.$val;n=c.typeName(e.Elem());$s=11;case 11:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=new $String(n);p=e.Len();q=A.Sprintf("%s, %d",new CP([o,p]));$s=12;case 12:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;$s=13;case 13:return r;case 2:f=d.$val;s=c.typeName(f.Elem());$s=14;case 14:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=new $String(s);u=new $Bool(!(((f.Dir()&1)===0)));v=new $Bool(!(((f.Dir()&2)===0)));w=A.Sprintf("%s, %t, %t",new CP([t,u,v]));$s=15;case 15:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;$s=16;case 16:return x;case 3:g=d.$val;y=g.NumMethods();$s=17;case 17:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=$makeSlice(CQ,y);aa=z;ab=0;case 18:if(!(ab=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+ac]=al);ab++;$s=18;continue;case 19:am=A.Sprintf("[%s]",new CP([new $String(F.Join(z,", "))]));$s=23;case 23:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am;$s=24;case 24:return an;case 4:h=d.$val;ao=c.typeName(h.Key());$s=25;case 25:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=new $String(ao);aq=c.typeName(h.Elem());$s=26;case 26:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=new $String(aq);as=A.Sprintf("%s, %s",new CP([ap,ar]));$s=27;case 27:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=as;$s=28;case 28:return at;case 5:i=d.$val;au=c.typeName(i.Elem());$s=29;case 29:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=new $String(au);aw=A.Sprintf("%s",new CP([av]));$s=30;case 30:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ax=aw;$s=31;case 31:return ax;case 6:j=d.$val;ay=c.typeName(j.Elem());$s=32;case 32:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=new $String(ay);ba=A.Sprintf("%s",new CP([az]));$s=33;case 33:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba;$s=34;case 34:return bb;case 7:k=d.$val;bc=$makeSlice(CQ,k.Params().Len());bd=bc;be=0;case 35:if(!(be=bc.$length)?($throwRuntimeError("index out of range"),undefined):bc.$array[bc.$offset+bf]=bg);be++;$s=35;continue;case 36:bh=$makeSlice(CQ,k.Results().Len());bi=bh;bj=0;case 38:if(!(bj=bh.$length)?($throwRuntimeError("index out of range"),undefined):bh.$array[bh.$offset+bk]=bl);bj++;$s=38;continue;case 39:bm=A.Sprintf("[%s], [%s], %t",new CP([new $String(F.Join(bc,", ")),new $String(F.Join(bh,", ")),new $Bool(k.Variadic())]));$s=41;case 41:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bn=bm;$s=42;case 42:return bn;case 8:l=d.$val;bo="";bp=$makeSlice(CQ,l.NumFields());bq=bp;br=0;case 43:if(!(br=bp.$length)?($throwRuntimeError("index out of range"),undefined):bp.$array[bp.$offset+bs]=ce);br++;$s=43;continue;case 44:cf=A.Sprintf("\"%s\", [%s]",new CP([new $String(bo),new $String(F.Join(bp,", "))]));$s=50;case 50:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}cg=cf;$s=51;case 51:return cg;case 9:m=d;ch=A.Errorf("%v has unexpected type %T",new CP([b,b]));$s=52;case 52:if($c){$c=false;ch=ch.$blk();}if(ch&&ch.$blk!==undefined){break s;}ci=BK(ch);$s=53;case 53:if($c){$c=false;ci=ci.$blk();}if(ci&&ci.$blk!==undefined){break s;}cj=ci;$panic(cj);case 10:$s=-1;return"";}return;}var $f={$blk:BP.ptr.prototype.initArgs,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BP.prototype.initArgs=function(b){return this.$val.initArgs(b);};BP.ptr.prototype.translateToplevelFunction=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];e=[e];f=[f];g=[g];h=[h];d[0]=this;f[0]=$assertType((i=$mapIndex(d[0].pkgCtx.Info.Info.Defs,DE.keyFor(b[0].Name)),i!==undefined?i.v:$ifaceNil),ET);h[0]=$assertType(f[0].object.Type(),CU);g[0]=DE.nil;if(!(b[0].Recv===FU.nil)&&!((j=b[0].Recv.List,(0>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+0])).Names===FW.nil)){g[0]=(k=(l=b[0].Recv.List,(0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0])).Names,(0>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0]));}e[0]="";m=(function(b,c,d,e,f,g,h){return function $b(m){var{m,n,o,p,q,r,s,t,u,v,w,x,$s,$r,$c}=$restore(this,{m});$s=$s||0;s:while(true){switch($s){case 0:if(b[0].Body===DP.nil){$s=1;continue;}$s=2;continue;case 1:n=new $String(m);o=f[0].FullName();$s=3;case 3:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=new $String(o);q=A.Sprintf("\t%s = function() {\n\t\t$throwRuntimeError(\"native function not implemented: %s\");\n\t};\n",new CP([n,p]));$s=4;case 4:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=(new CR($stringToBytes(q)));$s=5;case 5:return r;case 2:t=BU(b[0].Type,g[0],b[0].Body,d[0],h[0],c[0],m);$s=6;case 6:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;u=s[0];v=s[1];e[0]=F.Join(u,", ");w=A.Sprintf("\t%s = %s;\n",new CP([new $String(m),new $String(v)]));$s=7;case 7:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=(new CR($stringToBytes(w)));$s=8;case 8:return x;}return;}var $f={$blk:$b,$c:true,$r,m,n,o,p,q,r,s,t,u,v,w,x,$s};return $f;};})(b,c,d,e,f,g,h);n=G.NewBuffer(CR.nil);if(b[0].Recv===FU.nil){$s=1;continue;}$s=2;continue;case 1:o=d[0].objectName(f[0]);$s=3;case 3:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;q=m(p);$s=4;case 4:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=n.Write(q);$s=5;case 5:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;if(b[0].Name.IsExported()){$s=6;continue;}$s=7;continue;case 6:s=A.Fprintf(n,"\t$pkg.%s = %s;\n",new CP([new $String(BF(b[0].Name.Name)),new $String(p)]));$s=8;case 8:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;case 7:$s=-1;return n.Bytes();case 2:t=h[0].Recv().object.Type();u=$assertType(t,CV,true);v=u[0];w=u[1];x=$assertType(t,DK,true);y=x[0];if(w){y=$assertType(v.Elem(),DK);}z=d[0].objectName(y.Obj());$s=9;case 9:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;ab=b[0].Name.Name;if((ac=$mapIndex(CC,$String.keyFor(ab)),ac!==undefined?ac.v:false)){ab=ab+("$");}ae=y.Underlying();$s=10;case 10:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ad=$assertType(ae,CW,true);af=ad[1];if(af){$s=11;continue;}$s=12;continue;case 11:ag=m(aa+".ptr.prototype."+ab);$s=13;case 13:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=n.Write(ag);$s=14;case 14:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ah;ai=A.Fprintf(n,"\t%s.prototype.%s = function(%s) { return this.$val.%s(%s); };\n",new CP([new $String(aa),new $String(ab),new $String(e[0]),new $String(ab),new $String(e[0])]));$s=15;case 15:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ai;$s=-1;return n.Bytes();case 12:if(w){$s=16;continue;}$s=17;continue;case 16:ak=v.Elem().Underlying();$s=18;case 18:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}aj=$assertType(ak,CZ,true);al=aj[1];if(al){$s=19;continue;}$s=20;continue;case 19:am=m(aa+".prototype."+ab);$s=21;case 21:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=n.Write(am);$s=22;case 22:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}an;ao=A.Fprintf(n,"\t$ptrType(%s).prototype.%s = function(%s) { return (new %s(this.$get())).%s(%s); };\n",new CP([new $String(aa),new $String(ab),new $String(e[0]),new $String(aa),new $String(ab),new $String(e[0])]));$s=23;case 23:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ao;$s=-1;return n.Bytes();case 20:ap=A.Sprintf("$ptrType(%s).prototype.%s",new CP([new $String(aa),new $String(ab)]));$s=24;case 24:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=m(ap);$s=25;case 25:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;$s=26;case 26:return ar;case 17:as="this.$get()";at=AZ(t);$s=29;case 29:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}if(at){$s=27;continue;}$s=28;continue;case 27:au=A.Sprintf("new %s(%s)",new CP([new $String(aa),new $String(as)]));$s=30;case 30:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}as=au;case 28:av=m(aa+".prototype."+ab);$s=31;case 31:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=n.Write(av);$s=32;case 32:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}aw;ax=A.Fprintf(n,"\t$ptrType(%s).prototype.%s = function(%s) { return %s.%s(%s); };\n",new CP([new $String(aa),new $String(ab),new $String(e[0]),new $String(as),new $String(ab),new $String(e[0])]));$s=33;case 33:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ax;$s=-1;return n.Bytes();}return;}var $f={$blk:BP.ptr.prototype.translateToplevelFunction,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BP.prototype.translateToplevelFunction=function(b,c){return this.$val.translateToplevelFunction(b,c);};BU=function(b,c,d,e,f,g,h){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e,f,g,h});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];d=[d];i=[i];if(g===FL.nil){$panic(new $String("nil info"));}i[0]=new BP.ptr(g,e.pkgCtx,e,f,(j=(e.allVars?e.allVars.size:0),((j<0||j>2147483647)?$throwRuntimeError("makemap: size out of range"):new $global.Map())),new CQ([]),CT.nil,$makeMap(DO.keyFor,[{k:DO.nil,v:new BQ.ptr($throwNilPointerError,0,0)}]),1,new $global.Map(),CR.nil,CR.nil,false,0);k=e.allVars;l=0;m=k?k.keys():undefined;n=k?k.size:0;while(true){if(!(l=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w]);if(x.Names.$length===0){$s=3;continue;}$s=4;continue;case 3:y=i[0].newVariable("param");$s=5;case 5:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}u=$append(u,y);w++;$s=1;continue;case 4:z=x.Names;aa=0;case 6:if(!(aa=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+aa]);if(AY(ab)){$s=8;continue;}$s=9;continue;case 8:ac=i[0].newVariable("param");$s=10;case 10:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}u=$append(u,ac);aa++;$s=6;continue;case 9:ae=i[0].objectName((ad=$mapIndex(i[0].pkgCtx.Info.Info.Defs,DE.keyFor(ab)),ad!==undefined?ad.v:$ifaceNil));$s=11;case 11:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}u=$append(u,ae);aa++;$s=6;continue;case 7:w++;$s=1;continue;case 2:af=i[0].CatchOutput(1,(function(b,c,d,i){return function $b(){var{af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:if(!(((i[0].FuncInfo.Blocking?i[0].FuncInfo.Blocking.size:0)===0))){$s=1;continue;}$s=2;continue;case 1:af=d[0];(i[0].pkgCtx.Info.Info.Scopes||$throwRuntimeError("assignment to entry in nil map")).set(J.Node.keyFor(af),{k:af,v:(ag=$mapIndex(i[0].pkgCtx.Info.Info.Scopes,J.Node.keyFor(b[0])),ag!==undefined?ag.v:DJ.nil)});$r=i[0].handleEscapingVars(d[0]);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(!(i[0].sig===CU.nil)&&!((i[0].sig.Results().Len()===0))&&!(i[0].sig.Results().At(0).object.Name()==="")){$s=4;continue;}$s=5;continue;case 4:i[0].resultNames=$makeSlice(CT,i[0].sig.Results().Len());ah=0;case 6:if(!(ah=ar.$length)?($throwRuntimeError("index out of range"),undefined):ar.$array[ar.$offset+ah]=i[0].setType(ap,ai.object.Type())));ah=ah+(1)>>0;$s=6;continue;case 7:case 5:if(!(c[0]===DE.nil)&&!AY(c[0])){$s=13;continue;}$s=14;continue;case 13:as="this";at=i[0].pkgCtx.Info.Info.TypeOf(c[0]);$s=17;case 17:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=AZ(at);$s=18;case 18:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}if(au){$s=15;continue;}$s=16;continue;case 15:as="this.$val";case 16:av=i[0].translateExpr(c[0]);$s=19;case 19:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=av;ax=new $String(as);$r=i[0].Printf("%s = %s;",new CP([aw,ax]));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:$r=i[0].translateStmtList(d[0].List);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!(((i[0].FuncInfo.Flattened?i[0].FuncInfo.Flattened.size:0)===0))&&!W.EndsWithReturn(d[0].List)){$s=22;continue;}$s=23;continue;case 22:$r=i[0].translateStmt(new J.ReturnStmt.ptr(0,CT.nil),DO.nil);$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 23:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,$s};return $f;};})(b,c,d,i));$s=12;case 12:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=($bytesToString(af));$r=Q.Strings(i[0].localVars);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ah="";ai="";aj="";ak=ah;al=ai;am=aj;if(!(((i[0].FuncInfo.Flattened?i[0].FuncInfo.Flattened.size:0)===0))){i[0].localVars=$append(i[0].localVars,"$s");ak=ak+" $s = $s || 0;";}if(i[0].FuncInfo.HasDefer){i[0].localVars=$append(i[0].localVars,"$deferred");al=" }"+al;if(!(((i[0].FuncInfo.Blocking?i[0].FuncInfo.Blocking.size:0)===0))){al=" }"+al;}}an="";if(!(((i[0].FuncInfo.Blocking?i[0].FuncInfo.Blocking.size:0)===0))){$s=14;continue;}if(i[0].localVars.$length>0){$s=15;continue;}$s=16;continue;case 14:if(h===""){h="$b";am=" $b";}ao=$appendSlice(new CQ([]),i[0].localVars);ao=$append(ao,"$r");ap=A.Sprintf("var {%s, $c} = $restore(this, {%s});\n",new CP([new $String(F.Join(ao,", ")),new $String(F.Join(u,", "))]));$s=17;case 17:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}an=ap;aq=A.Sprintf("var $f = {$blk: "+h+", $c: true, $r, %s};",new CP([new $String(F.Join(i[0].localVars,", "))]));$s=18;case 18:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;al=" "+ar+"return $f;"+al;$s=16;continue;case 15:as=A.Sprintf("var %s;\n",new CP([new $String(F.Join(i[0].localVars,", "))]));$s=19;case 19:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}an=as;case 16:if(i[0].FuncInfo.HasDefer){$s=20;continue;}$s=21;continue;case 20:ak=ak+" var $err = null; try {";at=" } catch(err) { $err = err;";if(!(((i[0].FuncInfo.Blocking?i[0].FuncInfo.Blocking.size:0)===0))){at=at+(" $s = -1;");}if(i[0].resultNames===CT.nil&&i[0].sig.Results().Len()>0){$s=22;continue;}$s=23;continue;case 22:au=i[0].translateResults(CT.nil);$s=24;case 24:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=new $String(au);aw=A.Sprintf(" return%s;",new CP([av]));$s=25;case 25:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}at=at+(aw);case 23:at=at+(" } finally { $callDeferred($deferred, $err);");if(!(i[0].resultNames===CT.nil)){$s=26;continue;}$s=27;continue;case 26:ax=i[0].translateResults(i[0].resultNames);$s=28;case 28:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=new $String(ax);az=A.Sprintf(" if (!$curGoroutine.asleep) { return %s; }",new CP([ay]));$s=29;case 29:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}at=at+(az);case 27:if(!(((i[0].FuncInfo.Blocking?i[0].FuncInfo.Blocking.size:0)===0))){at=at+(" if($curGoroutine.asleep) {");}al=at+al;case 21:if(!(((i[0].FuncInfo.Flattened?i[0].FuncInfo.Flattened.size:0)===0))){ak=ak+" s: while (true) { switch ($s) { case 0:";al=" } return; }"+al;}if(i[0].FuncInfo.HasDefer){ak=ak+" $deferred = []; $curGoroutine.deferStack.push($deferred);";}if(!(ak==="")){ag=F.Repeat("\t",i[0].pkgCtx.indentation+1>>0)+"/* */"+ak+"\n"+ag;}if(!(al==="")){ag=ag+F.Repeat("\t",i[0].pkgCtx.indentation+1>>0)+"/* */"+al+"\n";}if(!(an==="")){ag=F.Repeat("\t",i[0].pkgCtx.indentation+1>>0)+an+ag;}i[0].pkgCtx.escapingVars=t;ba=A.Sprintf("function%s(%s) {\n%s%s}",new CP([new $String(am),new $String(F.Join(u,", ")),new $String(ag),new $String(F.Repeat("\t",i[0].pkgCtx.indentation))]));$s=30;case 30:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=[u,ba];$s=31;case 31:return bb;}return;}var $f={$blk:BU,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BX=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=$assertType(b,ET,true);d=c[0];e=c[1];if(e){$s=1;continue;}$s=2;continue;case 1:f=$assertType(d.object.Type(),CU);g=f.Recv();if(!(g===DH.nil)){$s=3;continue;}$s=4;continue;case 3:h=b.Pkg();$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h.Path();$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=b.Name();$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=new BW.ptr(i,$assertType(g.object.Type(),DK).Obj().object.Name()+"."+j);$s=8;case 8:return k;case 4:case 2:l=b.Pkg();$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l.Path();$s=10;case 10:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=b.Name();$s=11;case 11:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=new BW.ptr(m,n);$s=12;case 12:return o;}return;}var $f={$blk:BX,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};BW.ptr.prototype.String=function(){var b;b=this;return b.PkgPath+"."+b.Name;};BW.prototype.String=function(){return this.$val.String();};BY=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=[d];e=[e];f=[f];g=CE.nil;e[0]=FE.nil;f[0]=W.ImportsUnsafe(d[0]);h=(function(c,d,e,f){return function $b(h){var{aa,ab,ac,ad,ae,af,ag,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{h});$s=$s||0;s:while(true){switch($s){case 0:if(!F.HasPrefix(h.Text,"//go:linkname ")){$s=-1;return $ifaceNil;}if(!f[0]){$s=1;continue;}$s=2;continue;case 1:i=A.Errorf("//go:linkname is only allowed in Go files that import \"unsafe\"",new CP([]));$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;$s=4;case 4:return j;case 2:k=F.Fields(h.Text);$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(!((l.$length===3))){$s=6;continue;}$s=7;continue;case 6:m=A.Errorf("usage (all fields required): //go:linkname localname importpath.extname",new CP([]));$s=8;case 8:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=9;case 9:return n;case 7:o=c[0];p=(1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1]);q=o;r=p;s="";t=(2>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+2]);u=s;v=t;w=F.LastIndexByte(v,46);if(!((w===-1))){x=$substring(v,0,w);y=$substring(v,(w+1>>0));u=x;v=y;}z=d[0].Scope.Lookup(r);if(z===DF.nil){$s=10;continue;}$s=11;continue;case 10:aa=A.Errorf("//go:linkname local symbol %q is not found in the current source file",new CP([new $String(r)]));$s=12;case 12:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa;$s=13;case 13:return ab;case 11:if(!((z.Kind===5))){$s=14;continue;}$s=15;continue;case 14:if(c[0]==="math/bits"||c[0]==="reflect"){$s=-1;return $ifaceNil;}ac=A.Errorf("gopherjs: //go:linkname is only supported for functions, got %q",new CP([new J.ObjKind(z.Kind)]));$s=16;case 16:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;$s=17;case 17:return ad;case 15:ae=$assertType(z.Decl,FS);if(!(ae.Body===DP.nil)){$s=18;continue;}$s=19;continue;case 18:if(c[0]==="runtime"||c[0]==="internal/bytealg"||c[0]==="internal/fuzz"){$s=-1;return $ifaceNil;}af=A.Errorf("gopherjs: //go:linkname can not insert local implementation into an external package %q",new CP([new $String(u)]));$s=20;case 20:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af;$s=21;case 21:return ag;case 19:e[0]=$append(e[0],new BV.ptr(new BW.ptr(u,v),new BW.ptr(q,r)));$s=-1;return $ifaceNil;}return;}var $f={$blk:$b,$c:true,$r,aa,ab,ac,ad,ae,af,ag,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};})(c,d,e,f);i=d[0].Comments;j=0;case 1:if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);l=k.List;m=0;case 3:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);o=h(n);$s=5;case 5:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;if(!($interfaceIsEqual(p,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:q=BI(p,b,n.Pos());$s=8;case 8:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}g=$append(g,q);case 7:m++;$s=3;continue;case 4:j++;$s=1;continue;case 2:$s=-1;return[e[0],g.Normalize()];}return;}var $f={$blk:BY,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};BZ.ptr.prototype.Add=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;if(c.byImplementation===false){c.byImplementation=$makeMap(BW.keyFor,[]);}if(c.byReference===false){c.byReference=$makeMap(BW.keyFor,[]);}d=b;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]),BV);g=$clone(f.Implementation,BW);(c.byImplementation||$throwRuntimeError("assignment to entry in nil map")).set(BW.keyFor(g),{k:g,v:$append((h=$mapIndex(c.byImplementation,BW.keyFor(f.Implementation)),h!==undefined?h.v:FE.nil),f)});i=(j=$mapIndex(c.byReference,BW.keyFor(f.Reference)),j!==undefined?[j.v,true]:[new BV.ptr(new BW.ptr("",""),new BW.ptr("","")),false]);k=$clone(i[0],BV);l=i[1];if(l){$s=3;continue;}$s=4;continue;case 3:p=A.Errorf("conflicting go:linkname directives: two implementations for %q: %q and %q",new CP([(m=f.Reference,new m.constructor.elem(m)),(n=k.Implementation,new n.constructor.elem(n)),(o=f.Implementation,new o.constructor.elem(o))]));$s=5;case 5:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=6;case 6:return q;case 4:r=$clone(f.Reference,BW);(c.byReference||$throwRuntimeError("assignment to entry in nil map")).set(BW.keyFor(r),{k:r,v:$clone(f,BV)});e++;$s=1;continue;case 2:$s=-1;return $ifaceNil;}return;}var $f={$blk:BZ.ptr.prototype.Add,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};BZ.prototype.Add=function(b){return this.$val.Add(b);};BZ.ptr.prototype.IsImplementation=function(b){var b,c,d,e,f;c=this;d=(e=$mapIndex(c.byImplementation,BW.keyFor(b)),e!==undefined?[e.v,true]:[FE.nil,false]);f=d[1];return f;};BZ.prototype.IsImplementation=function(b){return this.$val.IsImplementation(b);};BZ.ptr.prototype.FindImplementation=function(b){var b,c,d,e,f,g;c=this;d=(e=$mapIndex(c.byReference,BW.keyFor(b)),e!==undefined?[e.v,true]:[new BV.ptr(new BW.ptr("",""),new BW.ptr("","")),false]);f=$clone(d[0],BV);g=d[1];return[f.Implementation,g];};BZ.prototype.FindImplementation=function(b){return this.$val.FindImplementation(b);};CA.ptr.prototype.String=function(){var b;b=this;return b.str;};CA.prototype.String=function(){return this.$val.String();};CA.ptr.prototype.StringWithParens=function(){var b;b=this;if(b.parens){return"("+b.str+")";}return b.str;};CA.prototype.StringWithParens=function(){return this.$val.StringWithParens();};BP.ptr.prototype.translateExpr=function(b){var{aa,aaa,aab,aac,aad,aae,aaf,aag,aah,aai,aaj,aak,aal,aam,aan,aao,aap,aaq,aar,aas,aat,aau,aav,aaw,aax,aay,aaz,ab,aba,abb,abc,abd,abe,abf,abg,abh,abi,abj,abk,abl,abm,abn,abo,abp,abq,abr,abs,abt,abu,abv,abw,abx,aby,abz,ac,aca,acb,acc,acd,ace,acf,acg,ach,aci,acj,ack,acl,acm,acn,aco,acp,acq,acr,acs,act,acu,acv,acw,acx,acy,acz,ad,ada,adb,adc,add,ade,adf,adg,adh,adi,adj,adk,adl,adm,adn,ado,adp,adq,adr,ads,adt,adu,adv,adw,adx,ady,adz,ae,aea,aeb,aec,aed,aee,aef,aeg,aeh,aei,aej,aek,ael,aem,aen,aeo,aep,aeq,aer,aes,aet,aeu,aev,aew,aex,aey,aez,af,afa,afb,afc,afd,afe,aff,afg,afh,afi,afj,afk,afl,afm,afn,afo,afp,afq,afr,afs,aft,afu,afv,afw,afx,afy,afz,ag,aga,agb,agc,agd,age,agf,agg,agh,agi,agj,agk,agl,agm,agn,ago,agp,agq,agr,ags,agt,agu,agv,agw,agx,agy,agz,ah,aha,ahb,ahc,ahd,ahe,ahf,ahg,ahh,ahi,ahj,ahk,ahl,ahm,ahn,aho,ahp,ahq,ahr,ahs,aht,ahu,ahv,ahw,ahx,ahy,ahz,ai,aia,aib,aic,aid,aie,aif,aig,aih,aii,aij,aik,ail,aim,ain,aio,aip,aiq,air,ais,ait,aiu,aiv,aiw,aix,aiy,aiz,aj,aja,ajb,ajc,ajd,aje,ajf,ajg,ajh,aji,ajj,ajk,ajl,ajm,ajn,ajo,ajp,ajq,ajr,ajs,ajt,aju,ajv,ajw,ajx,ajy,ajz,ak,aka,akb,akc,akd,ake,akf,akg,akh,aki,akj,akk,akl,akm,akn,ako,akp,akq,akr,aks,akt,aku,akv,akw,akx,aky,akz,al,ala,alb,alc,ald,ale,alf,alg,alh,ali,alj,alk,all,alm,aln,alo,alp,alq,alr,als,alt,alu,alv,alw,alx,aly,alz,am,ama,amb,amc,amd,ame,amf,amg,amh,ami,amj,amk,aml,amm,amn,amo,amp,amq,amr,ams,amt,amu,amv,amw,amx,amy,amz,an,ana,anb,anc,and,ane,anf,ang,anh,ani,anj,ank,anl,anm,ann,ano,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,hw,hx,hy,hz,i,ia,ib,ic,id,ie,ig,ih,ii,ij,ik,il,im,io,ip,iq,ir,is,it,iu,iv,iw,ix,iy,iz,j,ja,jb,jc,jd,je,jf,jg,jh,ji,jj,jk,jl,jm,jn,jo,jp,jq,jr,js,jt,ju,jv,jw,jx,jy,jz,k,ka,kb,kc,kd,ke,kf,kg,kh,ki,kj,kk,kl,km,kn,ko,kp,kq,kr,ks,kt,ku,kv,kw,kx,ky,kz,l,la,lb,lc,ld,le,lf,lg,lh,li,lj,lk,ll,lm,ln,lo,lp,lq,lr,ls,lt,lu,lv,lw,lx,ly,lz,m,ma,mb,mc,md,me,mf,mg,mh,mi,mj,mk,ml,mm,mn,mo,mp,mq,mr,ms,mt,mu,mv,mw,mx,my,mz,n,na,nb,nc,nd,ne,nf,ng,nh,ni,nj,nk,nl,nm,nn,no,np,nq,nr,ns,nt,nu,nv,nw,nx,ny,nz,o,oa,ob,oc,od,oe,of,og,oh,oi,oj,ok,ol,om,on,oo,op,oq,or,os,ot,ou,ov,ow,ox,oy,oz,p,pa,pb,pc,pd,pe,pf,pg,ph,pi,pj,pk,pl,pm,pn,po,pp,pq,pr,ps,pt,pu,pv,pw,px,py,pz,q,qa,qb,qc,qd,qe,qf,qg,qh,qi,qj,qk,ql,qm,qn,qo,qp,qq,qr,qs,qt,qu,qv,qw,qx,qy,qz,r,ra,rb,rc,rd,re,rf,rg,rh,ri,rj,rk,rl,rm,rn,ro,rp,rq,rr,rs,rt,ru,rv,rw,rx,ry,rz,s,sa,sb,sc,sd,se,sf,sg,sh,si,sj,sk,sl,sm,sn,so,sp,sq,sr,ss,st,su,sv,sw,sx,sy,sz,t,ta,tb,tc,td,te,tf,tg,th,ti,tj,tk,tl,tm,tn,to,tp,tq,tr,ts,tt,tu,tv,tw,tx,ty,tz,u,ua,ub,uc,ud,ue,uf,ug,uh,ui,uj,uk,ul,um,un,uo,up,uq,ur,us,ut,uu,uv,uw,ux,uy,uz,v,va,vb,vc,vd,ve,vf,vg,vh,vi,vj,vk,vl,vm,vn,vo,vp,vq,vr,vs,vt,vu,vv,vw,vx,vy,vz,w,wa,wb,wc,wd,we,wf,wg,wh,wi,wj,wk,wl,wm,wn,wo,wp,wq,wr,ws,wt,wu,wv,ww,wx,wy,wz,x,xa,xb,xc,xd,xe,xf,xg,xh,xi,xj,xk,xl,xm,xn,xo,xp,xq,xr,xs,xt,xu,xv,xw,xx,xy,xz,y,ya,yb,yc,yd,ye,yf,yg,yh,yi,yj,yk,yl,ym,yn,yo,yp,yq,yr,ys,yt,yu,yv,yw,yx,yy,yz,z,za,zb,zc,zd,ze,zf,zg,zh,zi,zj,zk,zl,zm,zn,zo,zp,zq,zr,zs,zt,zu,zv,zw,zx,zy,zz,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=[d];e=[e];f=[f];e[0]=this;g=e[0].pkgCtx.Info.Info.TypeOf(b);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;j=(i=$mapIndex(e[0].pkgCtx.Info.Info.Types,J.Expr.keyFor(b)),i!==undefined?i.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value;if(!($interfaceIsEqual(j,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:k=h.Underlying();$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=$assertType(k,CY);if(AR(l)){$s=6;continue;}if(AU(l)){$s=7;continue;}if(AT(l)){$s=8;continue;}if(AS(l)){$s=9;continue;}if(AW(l)){$s=10;continue;}$s=11;continue;case 6:m=K.BoolVal(j);$s=13;case 13:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=E.FormatBool(m);$s=14;case 14:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=new $String(n);p=e[0].formatExpr("%s",new CP([o]));$s=15;case 15:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=16;case 16:return q;case 7:if(AQ(l)){$s=17;continue;}$s=18;continue;case 17:if(l.Kind()===6){$s=19;continue;}$s=20;continue;case 19:s=K.ToInt(j);$s=21;case 21:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=K.Int64Val(s);$s=22;case 22:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}r=t;u=r[0];v=r[1];if(!v){$panic(new $String("could not get exact uint"));}w=e[0].typeName(h);$s=23;case 23:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=new $String(w);y=new $String(E.FormatInt($shiftRightInt64(u,32),10));aa=new $String(E.FormatUint((z=(new $Uint64(u.$high,u.$low)),new $Uint64(z.$high&0,(z.$low&4294967295)>>>0)),10));ab=e[0].formatExpr("new %s(%s, %s)",new CP([x,y,aa]));$s=24;case 24:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;$s=25;case 25:return ac;case 20:ae=K.ToInt(j);$s=26;case 26:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=K.Uint64Val(ae);$s=27;case 27:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ad=af;ag=ad[0];ah=ad[1];if(!ah){$panic(new $String("could not get exact uint"));}ai=e[0].typeName(h);$s=28;case 28:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=new $String(ai);ak=new $String(E.FormatUint($shiftRightUint64(ag,32),10));al=new $String(E.FormatUint(new $Uint64(ag.$high&0,(ag.$low&4294967295)>>>0),10));am=e[0].formatExpr("new %s(%s, %s)",new CP([aj,ak,al]));$s=29;case 29:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am;$s=30;case 30:return an;case 18:ap=K.ToInt(j);$s=31;case 31:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=K.Int64Val(ap);$s=32;case 32:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ao=aq;ar=ao[0];as=ao[1];if(!as){$panic(new $String("could not get exact int"));}at=e[0].formatExpr("%s",new CP([new $String(E.FormatInt(ar,10))]));$s=33;case 33:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=at;$s=34;case 34:return au;case 8:aw=K.Float64Val(j);$s=35;case 35:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}av=aw;ax=av[0];ay=e[0].formatExpr("%s",new CP([new $String(E.FormatFloat(ax,103,-1,64))]));$s=36;case 36:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=ay;$s=37;case 37:return az;case 9:bb=K.Real(j);$s=38;case 38:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bc=K.Float64Val(bb);$s=39;case 39:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}ba=bc;bd=ba[0];bf=K.Imag(j);$s=40;case 40:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bg=K.Float64Val(bf);$s=41;case 41:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}be=bg;bh=be[0];if(l.Kind()===23){h=(bi=M.Typ,(16>=bi.$length?($throwRuntimeError("index out of range"),undefined):bi.$array[bi.$offset+16]));}bj=e[0].typeName(h);$s=42;case 42:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bk=new $String(bj);bl=new $String(E.FormatFloat(bd,103,-1,64));bm=new $String(E.FormatFloat(bh,103,-1,64));bn=e[0].formatExpr("new %s(%s, %s)",new CP([bk,bl,bm]));$s=43;case 43:if($c){$c=false;bn=bn.$blk();}if(bn&&bn.$blk!==undefined){break s;}bo=bn;$s=44;case 44:return bo;case 10:bp=K.StringVal(j);$s=45;case 45:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}bq=BA(bp);$s=46;case 46:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}br=new $String(bq);bs=e[0].formatExpr("%s",new CP([br]));$s=47;case 47:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}bt=bs;$s=48;case 48:return bt;case 11:bu=l.String();$s=49;case 49:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}$panic(new $String("Unhandled constant type: "+bu));case 12:case 5:case 3:bv=$ifaceNil;bw=b;if($assertType(bw,EY,true)[1]){bx=bw.$val;bv=(bz=$mapIndex(e[0].pkgCtx.Info.Info.Uses,DE.keyFor(bx.Sel)),bz!==undefined?bz.v:$ifaceNil);}else if($assertType(bw,DE,true)[1]){by=bw.$val;bv=(ca=$mapIndex(e[0].pkgCtx.Info.Info.Defs,DE.keyFor(by)),ca!==undefined?ca.v:$ifaceNil);if($interfaceIsEqual(bv,$ifaceNil)){bv=(cb=$mapIndex(e[0].pkgCtx.Info.Info.Uses,DE.keyFor(by)),cb!==undefined?cb.v:$ifaceNil);}}if(!(!($interfaceIsEqual(bv,$ifaceNil)))){cc=false;$s=52;continue s;}cd=bv.Pkg();$s=53;case 53:if($c){$c=false;cd=cd.$blk();}if(cd&&cd.$blk!==undefined){break s;}ce=U.IsJsPackage(cd);$s=54;case 54:if($c){$c=false;ce=ce.$blk();}if(ce&&ce.$blk!==undefined){break s;}cc=ce;case 52:if(cc){$s=50;continue;}$s=51;continue;case 50:cf=bv.Name();$s=56;case 56:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}cg=cf;if(cg===("Global")){$s=57;continue;}if(cg===("Module")){$s=58;continue;}if(cg===("Undefined")){$s=59;continue;}$s=60;continue;case 57:ch=e[0].formatExpr("$global",new CP([]));$s=61;case 61:if($c){$c=false;ch=ch.$blk();}if(ch&&ch.$blk!==undefined){break s;}ci=ch;$s=62;case 62:return ci;case 58:cj=e[0].formatExpr("$module",new CP([]));$s=63;case 63:if($c){$c=false;cj=cj.$blk();}if(cj&&cj.$blk!==undefined){break s;}ck=cj;$s=64;case 64:return ck;case 59:cl=e[0].formatExpr("undefined",new CP([]));$s=65;case 65:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}cm=cl;$s=66;case 66:return cm;case 60:case 55:case 51:cn=b;if($assertType(cn,EX,true)[1]){$s=67;continue;}if($assertType(cn,FX,true)[1]){$s=68;continue;}if($assertType(cn,ES,true)[1]){$s=69;continue;}if($assertType(cn,FY,true)[1]){$s=70;continue;}if($assertType(cn,FZ,true)[1]){$s=71;continue;}if($assertType(cn,EW,true)[1]){$s=72;continue;}if($assertType(cn,GA,true)[1]){$s=73;continue;}if($assertType(cn,EY,true)[1]){$s=74;continue;}if($assertType(cn,GB,true)[1]){$s=75;continue;}if($assertType(cn,EZ,true)[1]){$s=76;continue;}if($assertType(cn,EK,true)[1]){$s=77;continue;}if($assertType(cn,DE,true)[1]){$s=78;continue;}if(cn===$ifaceNil){$s=79;continue;}$s=80;continue;case 67:c[0]=cn.$val;db=$assertType(h,CV,true);dc=db[0];dd=db[1];if(dd){h=dc.Elem();}de=(function(c,d,e,f){return function $b(de){var{de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,$s,$r,$c}=$restore(this,{de});$s=$s||0;s:while(true){switch($s){case 0:df=CQ.nil;dg=0;dh=e[0].zeroValue(de);$s=1;case 1:if($c){$c=false;dh=dh.$blk();}if(dh&&dh.$blk!==undefined){break s;}di=e[0].translateExpr(dh);$s=2;case 2:if($c){$c=false;di=di.$blk();}if(di&&di.$blk!==undefined){break s;}dj=di.String();$s=3;case 3:if($c){$c=false;dj=dj.$blk();}if(dj&&dj.$blk!==undefined){break s;}dk=dj;dl=c[0].Elts;dm=0;case 4:if(!(dm=dl.$length)?($throwRuntimeError("index out of range"),undefined):dl.$array[dl.$offset+dm]);dp=$assertType(dn,GC,true);dq=dp[0];dr=dp[1];if(dr){$s=6;continue;}$s=7;continue;case 6:du=K.ToInt((dt=$mapIndex(e[0].pkgCtx.Info.Info.Types,J.Expr.keyFor(dq.Key)),dt!==undefined?dt.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value);$s=8;case 8:if($c){$c=false;du=du.$blk();}if(du&&du.$blk!==undefined){break s;}dv=K.Int64Val(du);$s=9;case 9:if($c){$c=false;dv=dv.$blk();}if(dv&&dv.$blk!==undefined){break s;}ds=dv;dw=ds[0];dx=ds[1];if(!dx){$panic(new $String("could not get exact int"));}dg=(((dw.$low+((dw.$high>>31)*4294967296))>>0));dn=dq.Value;case 7:while(true){if(!(df.$length<=dg)){break;}df=$append(df,dk);}dy=e[0].translateImplicitConversionWithCloning(dn,de);$s=10;case 10:if($c){$c=false;dy=dy.$blk();}if(dy&&dy.$blk!==undefined){break s;}dz=dy.String();$s=11;case 11:if($c){$c=false;dz=dz.$blk();}if(dz&&dz.$blk!==undefined){break s;}((dg<0||dg>=df.$length)?($throwRuntimeError("index out of range"),undefined):df.$array[df.$offset+dg]=dz);dg=dg+(1)>>0;dm++;$s=4;continue;case 5:$s=-1;return df;}return;}var $f={$blk:$b,$c:true,$r,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,$s};return $f;};})(c,d,e,f);dg=h.Underlying();$s=82;case 82:if($c){$c=false;dg=dg.$blk();}if(dg&&dg.$blk!==undefined){break s;}df=dg;if($assertType(df,CZ,true)[1]){$s=83;continue;}if($assertType(df,DD,true)[1]){$s=84;continue;}if($assertType(df,DC,true)[1]){$s=85;continue;}if($assertType(df,CW,true)[1]){$s=86;continue;}$s=87;continue;case 83:dh=df.$val;dm=de(dh.Elem());$s=89;case 89:if($c){$c=false;dm=dm.$blk();}if(dm&&dm.$blk!==undefined){break s;}dn=dm;if(dn.$length===0){$s=90;continue;}$s=91;continue;case 90:dp=e[0].typeName(dh);$s=92;case 92:if($c){$c=false;dp=dp.$blk();}if(dp&&dp.$blk!==undefined){break s;}dq=new $String(dp);dr=e[0].formatExpr("%s.zero()",new CP([dq]));$s=93;case 93:if($c){$c=false;dr=dr.$blk();}if(dr&&dr.$blk!==undefined){break s;}ds=dr;$s=94;case 94:return ds;case 91:dt=e[0].zeroValue(dh.Elem());$s=95;case 95:if($c){$c=false;dt=dt.$blk();}if(dt&&dt.$blk!==undefined){break s;}du=e[0].translateExpr(dt);$s=96;case 96:if($c){$c=false;du=du.$blk();}if(du&&du.$blk!==undefined){break s;}dv=du.String();$s=97;case 97:if($c){$c=false;dv=dv.$blk();}if(dv&&dv.$blk!==undefined){break s;}dw=dv;while(true){if(!(dn.$length<(((dx=dh.Len(),dx.$low+((dx.$high>>31)*4294967296))>>0)))){break;}dn=$append(dn,dw);}dy=AO(dh.Elem());$s=98;case 98:if($c){$c=false;dy=dy.$blk();}if(dy&&dy.$blk!==undefined){break s;}dz=new $String(dy);ea=new $String(F.Join(dn,", "));eb=e[0].formatExpr("$toNativeArray(%s, [%s])",new CP([dz,ea]));$s=99;case 99:if($c){$c=false;eb=eb.$blk();}if(eb&&eb.$blk!==undefined){break s;}ec=eb;$s=100;case 100:return ec;case 84:di=df.$val;ed=e[0].typeName(h);$s=101;case 101:if($c){$c=false;ed=ed.$blk();}if(ed&&ed.$blk!==undefined){break s;}ee=new $String(ed);ef=de(di.Elem());$s=102;case 102:if($c){$c=false;ef=ef.$blk();}if(ef&&ef.$blk!==undefined){break s;}eg=F.Join(ef,", ");$s=103;case 103:if($c){$c=false;eg=eg.$blk();}if(eg&&eg.$blk!==undefined){break s;}eh=new $String(eg);ei=e[0].formatExpr("new %s([%s])",new CP([ee,eh]));$s=104;case 104:if($c){$c=false;ei=ei.$blk();}if(ei&&ei.$blk!==undefined){break s;}ej=ei;$s=105;case 105:return ej;case 85:dj=df.$val;ek=$makeSlice(CQ,c[0].Elts.$length);el=c[0].Elts;em=0;case 106:if(!(em=el.$length)?($throwRuntimeError("index out of range"),undefined):el.$array[el.$offset+em]);ep=$assertType(eo,GC);eq=e[0].translateImplicitConversionWithCloning(ep.Key,dj.Key());$s=108;case 108:if($c){$c=false;eq=eq.$blk();}if(eq&&eq.$blk!==undefined){break s;}er=eq;es=e[0].translateImplicitConversionWithCloning(ep.Value,dj.Elem());$s=109;case 109:if($c){$c=false;es=es.$blk();}if(es&&es.$blk!==undefined){break s;}et=es;eu=A.Sprintf("{ k: %s, v: %s }",new CP([er,et]));$s=110;case 110:if($c){$c=false;eu=eu.$blk();}if(eu&&eu.$blk!==undefined){break s;}((en<0||en>=ek.$length)?($throwRuntimeError("index out of range"),undefined):ek.$array[ek.$offset+en]=eu);em++;$s=106;continue;case 107:ev=e[0].typeName(dj.Key());$s=111;case 111:if($c){$c=false;ev=ev.$blk();}if(ev&&ev.$blk!==undefined){break s;}ew=new $String(ev);ex=new $String(F.Join(ek,", "));ey=e[0].formatExpr("$makeMap(%s.keyFor, [%s])",new CP([ew,ex]));$s=112;case 112:if($c){$c=false;ey=ey.$blk();}if(ey&&ey.$blk!==undefined){break s;}ez=ey;$s=113;case 113:return ez;case 86:dk=df.$val;fa=$makeSlice(CQ,dk.NumFields());fb=true;if(!((c[0].Elts.$length===0))){fc=$assertType((fd=c[0].Elts,(0>=fd.$length?($throwRuntimeError("index out of range"),undefined):fd.$array[fd.$offset+0])),GC,true);fb=fc[1];}if(!fb){$s=114;continue;}$s=115;continue;case 114:fe=c[0].Elts;ff=0;case 116:if(!(ff=fe.$length)?($throwRuntimeError("index out of range"),undefined):fe.$array[fe.$offset+ff]);fi=e[0].translateImplicitConversionWithCloning(fh,dk.Field(fg).object.Type());$s=118;case 118:if($c){$c=false;fi=fi.$blk();}if(fi&&fi.$blk!==undefined){break s;}fj=fi.String();$s=119;case 119:if($c){$c=false;fj=fj.$blk();}if(fj&&fj.$blk!==undefined){break s;}((fg<0||fg>=fa.$length)?($throwRuntimeError("index out of range"),undefined):fa.$array[fa.$offset+fg]=fj);ff++;$s=116;continue;case 117:case 115:if(fb){$s=120;continue;}$s=121;continue;case 120:fk=fa;fl=0;case 122:if(!(fl=fa.$length)?($throwRuntimeError("index out of range"),undefined):fa.$array[fa.$offset+fm]=fp);fl++;$s=122;continue;case 123:fq=c[0].Elts;fr=0;case 127:if(!(fr=fq.$length)?($throwRuntimeError("index out of range"),undefined):fq.$array[fq.$offset+fr]);ft=$assertType(fs,GC);fu=fa;fv=0;case 129:if(!(fv=fa.$length)?($throwRuntimeError("index out of range"),undefined):fa.$array[fa.$offset+fw]=fy);$s=130;continue;case 132:fv++;$s=129;continue;case 130:fr++;$s=127;continue;case 128:case 121:fz=e[0].typeName(h);$s=135;case 135:if($c){$c=false;fz=fz.$blk();}if(fz&&fz.$blk!==undefined){break s;}ga=new $String(fz);gb=new $String(F.Join(fa,", "));gc=e[0].formatExpr("new %s.ptr(%s)",new CP([ga,gb]));$s=136;case 136:if($c){$c=false;gc=gc.$blk();}if(gc&&gc.$blk!==undefined){break s;}gd=gc;$s=137;case 137:return gd;case 87:dl=df;ge=A.Sprintf("Unhandled CompositeLit type: %T\n",new CP([dl]));$s=138;case 138:if($c){$c=false;ge=ge.$blk();}if(ge&&ge.$blk!==undefined){break s;}$panic(new $String(ge));case 88:$s=81;continue;case 68:co=cn.$val;gh=BU(co.Type,DE.nil,co.Body,e[0],$assertType(h,CU),(gg=$mapIndex(e[0].pkgCtx.Info.FuncLitInfos,FX.keyFor(co)),gg!==undefined?gg.v:FL.nil),"");$s=139;case 139:if($c){$c=false;gh=gh.$blk();}if(gh&&gh.$blk!==undefined){break s;}gf=gh;gi=gf[1];if(!(((e[0].pkgCtx.escapingVars?e[0].pkgCtx.escapingVars.size:0)===0))){$s=140;continue;}$s=141;continue;case 140:gj=$makeSlice(CQ,0,(e[0].pkgCtx.escapingVars?e[0].pkgCtx.escapingVars.size:0));gk=e[0].pkgCtx.escapingVars;gl=0;gm=gk?gk.keys():undefined;gn=gk?gk.size:0;while(true){if(!(gl=kk.$length?($throwRuntimeError("index out of range"),undefined):kk.$array[kk.$offset+1])))])),false)),0,new CT([cp.X]),0,0);km=kl;(e[0].FuncInfo.Blocking||$throwRuntimeError("assignment to entry in nil map")).set(J.Node.keyFor(km),{k:km,v:true});kn=$assertType(h,CS,true);ko=kn[1];if(ko){$s=210;continue;}$s=211;continue;case 210:kp=e[0].formatExpr("%e",new CP([kl]));$s=212;case 212:if($c){$c=false;kp=kp.$blk();}if(kp&&kp.$blk!==undefined){break s;}kq=kp;$s=213;case 213:return kq;case 211:kr=e[0].formatExpr("%e[0]",new CP([kl]));$s=214;case 214:if($c){$c=false;kr=kr.$blk();}if(kr&&kr.$blk!==undefined){break s;}ks=kr;$s=215;case 215:return ks;case 151:case 148:kt=gy.Underlying();$s=216;case 216:if($c){$c=false;kt=kt.$blk();}if(kt&&kt.$blk!==undefined){break s;}ku=$assertType(kt,CY);kv=cp.Op;if(kv===(12)){$s=218;continue;}if(kv===(13)){$s=219;continue;}if(kv===(19)){$s=220;continue;}if(kv===(43)){$s=221;continue;}$s=222;continue;case 218:kw=e[0].translateExpr(cp.X);$s=224;case 224:if($c){$c=false;kw=kw.$blk();}if(kw&&kw.$blk!==undefined){break s;}kx=kw;$s=225;case 225:return kx;case 219:if(AQ(ku)){$s=227;continue;}if(AS(ku)){$s=228;continue;}if(AX(ku)){$s=229;continue;}$s=230;continue;case 227:ky=e[0].typeName(gy);$s=232;case 232:if($c){$c=false;ky=ky.$blk();}if(ky&&ky.$blk!==undefined){break s;}kz=new $String(ky);la=cp.X;lb=e[0].formatExpr("new %1s(-%2h, -%2l)",new CP([kz,la]));$s=233;case 233:if($c){$c=false;lb=lb.$blk();}if(lb&&lb.$blk!==undefined){break s;}lc=lb;$s=234;case 234:return lc;case 228:ld=e[0].typeName(gy);$s=235;case 235:if($c){$c=false;ld=ld.$blk();}if(ld&&ld.$blk!==undefined){break s;}le=new $String(ld);lf=cp.X;lg=e[0].formatExpr("new %1s(-%2r, -%2i)",new CP([le,lf]));$s=236;case 236:if($c){$c=false;lg=lg.$blk();}if(lg&&lg.$blk!==undefined){break s;}lh=lg;$s=237;case 237:return lh;case 229:li=e[0].formatExpr("-%e",new CP([cp.X]));$s=238;case 238:if($c){$c=false;li=li.$blk();}if(li&&li.$blk!==undefined){break s;}lj=e[0].fixNumber(li,ku);$s=239;case 239:if($c){$c=false;lj=lj.$blk();}if(lj&&lj.$blk!==undefined){break s;}lk=lj;$s=240;case 240:return lk;case 230:ll=e[0].formatExpr("-%e",new CP([cp.X]));$s=241;case 241:if($c){$c=false;ll=ll.$blk();}if(ll&&ll.$blk!==undefined){break s;}lm=ll;$s=242;case 242:return lm;case 231:case 226:$s=223;continue;case 220:if(AQ(ku)){$s=243;continue;}$s=244;continue;case 243:ln=e[0].typeName(gy);$s=245;case 245:if($c){$c=false;ln=ln.$blk();}if(ln&&ln.$blk!==undefined){break s;}lo=new $String(ln);lp=cp.X;lq=e[0].formatExpr("new %1s(~%2h, ~%2l >>> 0)",new CP([lo,lp]));$s=246;case 246:if($c){$c=false;lq=lq.$blk();}if(lq&&lq.$blk!==undefined){break s;}lr=lq;$s=247;case 247:return lr;case 244:ls=e[0].formatExpr("~%e",new CP([cp.X]));$s=248;case 248:if($c){$c=false;ls=ls.$blk();}if(ls&&ls.$blk!==undefined){break s;}lt=e[0].fixNumber(ls,ku);$s=249;case 249:if($c){$c=false;lt=lt.$blk();}if(lt&<.$blk!==undefined){break s;}lu=lt;$s=250;case 250:return lu;case 221:lv=e[0].formatExpr("!%e",new CP([cp.X]));$s=251;case 251:if($c){$c=false;lv=lv.$blk();}if(lv&&lv.$blk!==undefined){break s;}lw=lv;$s=252;case 252:return lw;case 222:$panic(new L.Token(cp.Op));case 223:case 217:$s=81;continue;case 70:cq=cn.$val;if(cq.Op===44){$s=253;continue;}$s=254;continue;case 253:lx=e[0].translateExpr(new J.BinaryExpr.ptr(cq.X,0,39,cq.Y));$s=255;case 255:if($c){$c=false;lx=lx.$blk();}if(lx&&lx.$blk!==undefined){break s;}ly=lx;lz=e[0].formatExpr("!(%s)",new CP([ly]));$s=256;case 256:if($c){$c=false;lz=lz.$blk();}if(lz&&lz.$blk!==undefined){break s;}ma=lz;$s=257;case 257:return ma;case 254:mb=e[0].pkgCtx.Info.Info.TypeOf(cq.X);$s=258;case 258:if($c){$c=false;mb=mb.$blk();}if(mb&&mb.$blk!==undefined){break s;}mc=mb;md=e[0].pkgCtx.Info.Info.TypeOf(cq.Y);$s=259;case 259:if($c){$c=false;md=md.$blk();}if(md&&md.$blk!==undefined){break s;}me=md;mg=me.Underlying();$s=260;case 260:if($c){$c=false;mg=mg.$blk();}if(mg&&mg.$blk!==undefined){break s;}mf=$assertType(mg,DB,true);mh=mf[1];if(mh){mi=true;$s=263;continue s;}mk=M.Identical(mc,(mj=M.Typ,(25>=mj.$length?($throwRuntimeError("index out of range"),undefined):mj.$array[mj.$offset+25])));$s=264;case 264:if($c){$c=false;mk=mk.$blk();}if(mk&&mk.$blk!==undefined){break s;}mi=mk;case 263:if(mi){$s=261;continue;}$s=262;continue;case 261:mc=me;case 262:mm=mc.Underlying();$s=265;case 265:if($c){$c=false;mm=mm.$blk();}if(mm&&mm.$blk!==undefined){break s;}ml=$assertType(mm,CY,true);mn=ml[0];mo=ml[1];if(mo&&AV(mn)){$s=266;continue;}$s=267;continue;case 266:if(AQ(mn)){$s=268;continue;}$s=269;continue;case 268:mp=cq.Op;if(mp===(14)){$s=271;continue;}if(mp===(15)){$s=272;continue;}if(mp===(16)){$s=273;continue;}if(mp===(20)){$s=274;continue;}if(mp===(21)){$s=275;continue;}if(mp===(39)){$s=276;continue;}if(mp===(40)){$s=277;continue;}if(mp===(45)){$s=278;continue;}if(mp===(41)){$s=279;continue;}if(mp===(46)){$s=280;continue;}if((mp===(12))||(mp===(13))){$s=281;continue;}if((mp===(17))||(mp===(18))||(mp===(19))){$s=282;continue;}if(mp===(22)){$s=283;continue;}$s=284;continue;case 271:mq=e[0].formatExpr("$mul64(%e, %e)",new CP([cq.X,cq.Y]));$s=286;case 286:if($c){$c=false;mq=mq.$blk();}if(mq&&mq.$blk!==undefined){break s;}mr=mq;$s=287;case 287:return mr;case 272:ms=e[0].formatExpr("$div64(%e, %e, false)",new CP([cq.X,cq.Y]));$s=288;case 288:if($c){$c=false;ms=ms.$blk();}if(ms&&ms.$blk!==undefined){break s;}mt=ms;$s=289;case 289:return mt;case 273:mu=e[0].formatExpr("$div64(%e, %e, true)",new CP([cq.X,cq.Y]));$s=290;case 290:if($c){$c=false;mu=mu.$blk();}if(mu&&mu.$blk!==undefined){break s;}mv=mu;$s=291;case 291:return mv;case 274:mw=e[0].formatExpr("$shiftLeft64(%e, %f)",new CP([cq.X,cq.Y]));$s=292;case 292:if($c){$c=false;mw=mw.$blk();}if(mw&&mw.$blk!==undefined){break s;}mx=mw;$s=293;case 293:return mx;case 275:my=AP(mn);$s=294;case 294:if($c){$c=false;my=my.$blk();}if(my&&my.$blk!==undefined){break s;}mz=new $String(my);na=cq.X;nb=cq.Y;nc=e[0].formatExpr("$shiftRight%s(%e, %f)",new CP([mz,na,nb]));$s=295;case 295:if($c){$c=false;nc=nc.$blk();}if(nc&&nc.$blk!==undefined){break s;}nd=nc;$s=296;case 296:return nd;case 276:ne=e[0].formatExpr("(%1h === %2h && %1l === %2l)",new CP([cq.X,cq.Y]));$s=297;case 297:if($c){$c=false;ne=ne.$blk();}if(ne&&ne.$blk!==undefined){break s;}nf=ne;$s=298;case 298:return nf;case 277:ng=e[0].formatExpr("(%1h < %2h || (%1h === %2h && %1l < %2l))",new CP([cq.X,cq.Y]));$s=299;case 299:if($c){$c=false;ng=ng.$blk();}if(ng&&ng.$blk!==undefined){break s;}nh=ng;$s=300;case 300:return nh;case 278:ni=e[0].formatExpr("(%1h < %2h || (%1h === %2h && %1l <= %2l))",new CP([cq.X,cq.Y]));$s=301;case 301:if($c){$c=false;ni=ni.$blk();}if(ni&&ni.$blk!==undefined){break s;}nj=ni;$s=302;case 302:return nj;case 279:nk=e[0].formatExpr("(%1h > %2h || (%1h === %2h && %1l > %2l))",new CP([cq.X,cq.Y]));$s=303;case 303:if($c){$c=false;nk=nk.$blk();}if(nk&&nk.$blk!==undefined){break s;}nl=nk;$s=304;case 304:return nl;case 280:nm=e[0].formatExpr("(%1h > %2h || (%1h === %2h && %1l >= %2l))",new CP([cq.X,cq.Y]));$s=305;case 305:if($c){$c=false;nm=nm.$blk();}if(nm&&nm.$blk!==undefined){break s;}nn=nm;$s=306;case 306:return nn;case 281:no=cq.X;np=cq.Y;nq=e[0].typeName(mc);$s=307;case 307:if($c){$c=false;nq=nq.$blk();}if(nq&&nq.$blk!==undefined){break s;}nr=new $String(nq);ns=new L.Token(cq.Op);nt=e[0].formatExpr("new %3s(%1h %4t %2h, %1l %4t %2l)",new CP([no,np,nr,ns]));$s=308;case 308:if($c){$c=false;nt=nt.$blk();}if(nt&&nt.$blk!==undefined){break s;}nu=nt;$s=309;case 309:return nu;case 282:nv=cq.X;nw=cq.Y;nx=e[0].typeName(mc);$s=310;case 310:if($c){$c=false;nx=nx.$blk();}if(nx&&nx.$blk!==undefined){break s;}ny=new $String(nx);nz=new L.Token(cq.Op);oa=e[0].formatExpr("new %3s(%1h %4t %2h, (%1l %4t %2l) >>> 0)",new CP([nv,nw,ny,nz]));$s=311;case 311:if($c){$c=false;oa=oa.$blk();}if(oa&&oa.$blk!==undefined){break s;}ob=oa;$s=312;case 312:return ob;case 283:oc=cq.X;od=cq.Y;oe=e[0].typeName(mc);$s=313;case 313:if($c){$c=false;oe=oe.$blk();}if(oe&&oe.$blk!==undefined){break s;}of=new $String(oe);og=e[0].formatExpr("new %3s(%1h & ~%2h, (%1l & ~%2l) >>> 0)",new CP([oc,od,of]));$s=314;case 314:if($c){$c=false;og=og.$blk();}if(og&&og.$blk!==undefined){break s;}oh=og;$s=315;case 315:return oh;case 284:$panic(new L.Token(cq.Op));case 285:case 270:case 269:if(AS(mn)){$s=316;continue;}$s=317;continue;case 316:oi=cq.Op;if(oi===(39)){$s=319;continue;}if((oi===(12))||(oi===(13))){$s=320;continue;}if(oi===(14)){$s=321;continue;}if(oi===(15)){$s=322;continue;}$s=323;continue;case 319:oj=e[0].formatExpr("(%1r === %2r && %1i === %2i)",new CP([cq.X,cq.Y]));$s=325;case 325:if($c){$c=false;oj=oj.$blk();}if(oj&&oj.$blk!==undefined){break s;}ok=oj;$s=326;case 326:return ok;case 320:ol=cq.X;om=cq.Y;on=e[0].typeName(mc);$s=327;case 327:if($c){$c=false;on=on.$blk();}if(on&&on.$blk!==undefined){break s;}oo=new $String(on);op=new L.Token(cq.Op);oq=e[0].formatExpr("new %3s(%1r %4t %2r, %1i %4t %2i)",new CP([ol,om,oo,op]));$s=328;case 328:if($c){$c=false;oq=oq.$blk();}if(oq&&oq.$blk!==undefined){break s;}or=oq;$s=329;case 329:return or;case 321:os=cq.X;ot=cq.Y;ou=e[0].typeName(mc);$s=330;case 330:if($c){$c=false;ou=ou.$blk();}if(ou&&ou.$blk!==undefined){break s;}ov=new $String(ou);ow=e[0].formatExpr("new %3s(%1r * %2r - %1i * %2i, %1r * %2i + %1i * %2r)",new CP([os,ot,ov]));$s=331;case 331:if($c){$c=false;ow=ow.$blk();}if(ow&&ow.$blk!==undefined){break s;}ox=ow;$s=332;case 332:return ox;case 322:oy=e[0].formatExpr("$divComplex(%e, %e)",new CP([cq.X,cq.Y]));$s=333;case 333:if($c){$c=false;oy=oy.$blk();}if(oy&&oy.$blk!==undefined){break s;}oz=oy;$s=334;case 334:return oz;case 323:$panic(new L.Token(cq.Op));case 324:case 318:case 317:pa=cq.Op;if(pa===(39)){$s=336;continue;}if((pa===(40))||(pa===(45))||(pa===(41))||(pa===(46))){$s=337;continue;}if((pa===(12))||(pa===(13))){$s=338;continue;}if(pa===(14)){$s=339;continue;}if(pa===(15)){$s=340;continue;}if(pa===(16)){$s=341;continue;}if((pa===(20))||(pa===(21))){$s=342;continue;}if((pa===(17))||(pa===(18))){$s=343;continue;}if(pa===(22)){$s=344;continue;}if(pa===(19)){$s=345;continue;}$s=346;continue;case 336:pb=e[0].formatParenExpr("%e === %e",new CP([cq.X,cq.Y]));$s=348;case 348:if($c){$c=false;pb=pb.$blk();}if(pb&&pb.$blk!==undefined){break s;}pc=pb;$s=349;case 349:return pc;case 337:pd=e[0].formatExpr("%e %t %e",new CP([cq.X,new L.Token(cq.Op),cq.Y]));$s=350;case 350:if($c){$c=false;pd=pd.$blk();}if(pd&&pd.$blk!==undefined){break s;}pe=pd;$s=351;case 351:return pe;case 338:pf=e[0].formatExpr("%e %t %e",new CP([cq.X,new L.Token(cq.Op),cq.Y]));$s=352;case 352:if($c){$c=false;pf=pf.$blk();}if(pf&&pf.$blk!==undefined){break s;}pg=e[0].fixNumber(pf,mn);$s=353;case 353:if($c){$c=false;pg=pg.$blk();}if(pg&&pg.$blk!==undefined){break s;}ph=pg;$s=354;case 354:return ph;case 339:pi=mn.Kind();if((pi===(5))||(pi===(2))){$s=356;continue;}if((pi===(10))||(pi===(12))){$s=357;continue;}$s=358;continue;case 356:pj=e[0].formatParenExpr("$imul(%e, %e)",new CP([cq.X,cq.Y]));$s=359;case 359:if($c){$c=false;pj=pj.$blk();}if(pj&&pj.$blk!==undefined){break s;}pk=pj;$s=360;case 360:return pk;case 357:pl=e[0].formatParenExpr("$imul(%e, %e) >>> 0",new CP([cq.X,cq.Y]));$s=361;case 361:if($c){$c=false;pl=pl.$blk();}if(pl&&pl.$blk!==undefined){break s;}pm=pl;$s=362;case 362:return pm;case 358:case 355:pn=e[0].formatExpr("%e * %e",new CP([cq.X,cq.Y]));$s=363;case 363:if($c){$c=false;pn=pn.$blk();}if(pn&&pn.$blk!==undefined){break s;}po=e[0].fixNumber(pn,mn);$s=364;case 364:if($c){$c=false;po=po.$blk();}if(po&&po.$blk!==undefined){break s;}pp=po;$s=365;case 365:return pp;case 340:if(AU(mn)){$s=366;continue;}$s=367;continue;case 366:pq=">>";if(AX(mn)){pq=">>>";}pr=e[0].newVariable("_q");$s=368;case 368:if($c){$c=false;pr=pr.$blk();}if(pr&&pr.$blk!==undefined){break s;}ps=new $String(pr);pt=cq.X;pu=cq.Y;pv=new $String(pq);pw=e[0].formatExpr("(%1s = %2e / %3e, (%1s === %1s && %1s !== 1/0 && %1s !== -1/0) ? %1s %4s 0 : $throwRuntimeError(\"integer divide by zero\"))",new CP([ps,pt,pu,pv]));$s=369;case 369:if($c){$c=false;pw=pw.$blk();}if(pw&&pw.$blk!==undefined){break s;}px=pw;$s=370;case 370:return px;case 367:if(mn.Kind()===13){$s=371;continue;}$s=372;continue;case 371:py=e[0].formatExpr("%e / %e",new CP([cq.X,cq.Y]));$s=373;case 373:if($c){$c=false;py=py.$blk();}if(py&&py.$blk!==undefined){break s;}pz=e[0].fixNumber(py,mn);$s=374;case 374:if($c){$c=false;pz=pz.$blk();}if(pz&&pz.$blk!==undefined){break s;}qa=pz;$s=375;case 375:return qa;case 372:qb=e[0].formatExpr("%e / %e",new CP([cq.X,cq.Y]));$s=376;case 376:if($c){$c=false;qb=qb.$blk();}if(qb&&qb.$blk!==undefined){break s;}qc=qb;$s=377;case 377:return qc;case 341:qd=e[0].newVariable("_r");$s=378;case 378:if($c){$c=false;qd=qd.$blk();}if(qd&&qd.$blk!==undefined){break s;}qe=new $String(qd);qf=cq.X;qg=cq.Y;qh=e[0].formatExpr("(%1s = %2e %% %3e, %1s === %1s ? %1s : $throwRuntimeError(\"integer divide by zero\"))",new CP([qe,qf,qg]));$s=379;case 379:if($c){$c=false;qh=qh.$blk();}if(qh&&qh.$blk!==undefined){break s;}qi=qh;$s=380;case 380:return qi;case 342:qj=new L.Token(cq.Op).String();if((cq.Op===21)&&AX(mn)){qj=">>>";}ql=(qk=$mapIndex(e[0].pkgCtx.Info.Info.Types,J.Expr.keyFor(cq.Y)),qk!==undefined?qk.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value;if(!($interfaceIsEqual(ql,$ifaceNil))){$s=381;continue;}$s=382;continue;case 381:qn=K.ToInt(ql);$s=383;case 383:if($c){$c=false;qn=qn.$blk();}if(qn&&qn.$blk!==undefined){break s;}qo=K.Uint64Val(qn);$s=384;case 384:if($c){$c=false;qo=qo.$blk();}if(qo&&qo.$blk!==undefined){break s;}qm=qo;qp=qm[0];if((qp.$high>0||(qp.$high===0&&qp.$low>=32))){$s=385;continue;}$s=386;continue;case 385:qq=e[0].formatExpr("0",new CP([]));$s=387;case 387:if($c){$c=false;qq=qq.$blk();}if(qq&&qq.$blk!==undefined){break s;}qr=qq;$s=388;case 388:return qr;case 386:qs=e[0].formatExpr("%e %s %s",new CP([cq.X,new $String(qj),new $String(E.FormatUint(qp,10))]));$s=389;case 389:if($c){$c=false;qs=qs.$blk();}if(qs&&qs.$blk!==undefined){break s;}qt=e[0].fixNumber(qs,mn);$s=390;case 390:if($c){$c=false;qt=qt.$blk();}if(qt&&qt.$blk!==undefined){break s;}qu=qt;$s=391;case 391:return qu;case 382:if((cq.Op===21)&&!AX(mn)){$s=392;continue;}$s=393;continue;case 392:qv=e[0].formatParenExpr("%e >> $min(%f, 31)",new CP([cq.X,cq.Y]));$s=394;case 394:if($c){$c=false;qv=qv.$blk();}if(qv&&qv.$blk!==undefined){break s;}qw=e[0].fixNumber(qv,mn);$s=395;case 395:if($c){$c=false;qw=qw.$blk();}if(qw&&qw.$blk!==undefined){break s;}qx=qw;$s=396;case 396:return qx;case 393:qy=e[0].newVariable("y");$s=397;case 397:if($c){$c=false;qy=qy.$blk();}if(qy&&qy.$blk!==undefined){break s;}qz=qy;ra=e[0].formatExpr("(%s = %f, %s < 32 ? (%e %s %s) : 0)",new CP([new $String(qz),cq.Y,new $String(qz),cq.X,new $String(qj),new $String(qz)]));$s=398;case 398:if($c){$c=false;ra=ra.$blk();}if(ra&&ra.$blk!==undefined){break s;}rb=e[0].fixNumber(ra,mn);$s=399;case 399:if($c){$c=false;rb=rb.$blk();}if(rb&&rb.$blk!==undefined){break s;}rc=rb;$s=400;case 400:return rc;case 343:if(AX(mn)){$s=401;continue;}$s=402;continue;case 401:rd=e[0].formatParenExpr("(%e %t %e) >>> 0",new CP([cq.X,new L.Token(cq.Op),cq.Y]));$s=403;case 403:if($c){$c=false;rd=rd.$blk();}if(rd&&rd.$blk!==undefined){break s;}re=rd;$s=404;case 404:return re;case 402:rf=e[0].formatParenExpr("%e %t %e",new CP([cq.X,new L.Token(cq.Op),cq.Y]));$s=405;case 405:if($c){$c=false;rf=rf.$blk();}if(rf&&rf.$blk!==undefined){break s;}rg=rf;$s=406;case 406:return rg;case 344:rh=e[0].formatParenExpr("%e & ~%e",new CP([cq.X,cq.Y]));$s=407;case 407:if($c){$c=false;rh=rh.$blk();}if(rh&&rh.$blk!==undefined){break s;}ri=e[0].fixNumber(rh,mn);$s=408;case 408:if($c){$c=false;ri=ri.$blk();}if(ri&&ri.$blk!==undefined){break s;}rj=ri;$s=409;case 409:return rj;case 345:rk=e[0].formatParenExpr("%e ^ %e",new CP([cq.X,cq.Y]));$s=410;case 410:if($c){$c=false;rk=rk.$blk();}if(rk&&rk.$blk!==undefined){break s;}rl=e[0].fixNumber(rk,mn);$s=411;case 411:if($c){$c=false;rl=rl.$blk();}if(rl&&rl.$blk!==undefined){break s;}rm=rl;$s=412;case 412:return rm;case 346:$panic(new L.Token(cq.Op));case 347:case 335:case 267:rn=cq.Op;if((rn===(12))||(rn===(40))||(rn===(45))||(rn===(41))||(rn===(46))){$s=414;continue;}if(rn===(34)){$s=415;continue;}if(rn===(35)){$s=416;continue;}if(rn===(39)){$s=417;continue;}$s=418;continue;case 414:ro=e[0].formatExpr("%e %t %e",new CP([cq.X,new L.Token(cq.Op),cq.Y]));$s=420;case 420:if($c){$c=false;ro=ro.$blk();}if(ro&&ro.$blk!==undefined){break s;}rp=ro;$s=421;case 421:return rp;case 415:if((rq=$mapIndex(e[0].FuncInfo.Blocking,J.Node.keyFor(cq.Y)),rq!==undefined?rq.v:false)){$s=422;continue;}$s=423;continue;case 422:rr=e[0].caseCounter;e[0].caseCounter=e[0].caseCounter+(1)>>0;rs=e[0].newVariable("_v");$s=424;case 424:if($c){$c=false;rs=rs.$blk();}if(rs&&rs.$blk!==undefined){break s;}rt=rs;ru=e[0].translateExpr(cq.X);$s=425;case 425:if($c){$c=false;ru=ru.$blk();}if(ru&&ru.$blk!==undefined){break s;}rv=ru;rw=new $String(rt);rx=new $Int(rr);$r=e[0].Printf("if (!(%s)) { %s = false; $s = %d; continue s; }",new CP([rv,rw,rx]));$s=426;case 426:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ry=new $String(rt);rz=e[0].translateExpr(cq.Y);$s=427;case 427:if($c){$c=false;rz=rz.$blk();}if(rz&&rz.$blk!==undefined){break s;}sa=rz;sb=new $Int(rr);$r=e[0].Printf("%s = %s; case %d:",new CP([ry,sa,sb]));$s=428;case 428:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}sc=e[0].formatExpr("%s",new CP([new $String(rt)]));$s=429;case 429:if($c){$c=false;sc=sc.$blk();}if(sc&&sc.$blk!==undefined){break s;}sd=sc;$s=430;case 430:return sd;case 423:se=e[0].formatExpr("%e && %e",new CP([cq.X,cq.Y]));$s=431;case 431:if($c){$c=false;se=se.$blk();}if(se&&se.$blk!==undefined){break s;}sf=se;$s=432;case 432:return sf;case 416:if((sg=$mapIndex(e[0].FuncInfo.Blocking,J.Node.keyFor(cq.Y)),sg!==undefined?sg.v:false)){$s=433;continue;}$s=434;continue;case 433:sh=e[0].caseCounter;e[0].caseCounter=e[0].caseCounter+(1)>>0;si=e[0].newVariable("_v");$s=435;case 435:if($c){$c=false;si=si.$blk();}if(si&&si.$blk!==undefined){break s;}sj=si;sk=e[0].translateExpr(cq.X);$s=436;case 436:if($c){$c=false;sk=sk.$blk();}if(sk&&sk.$blk!==undefined){break s;}sl=sk;sm=new $String(sj);sn=new $Int(sh);$r=e[0].Printf("if (%s) { %s = true; $s = %d; continue s; }",new CP([sl,sm,sn]));$s=437;case 437:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}so=new $String(sj);sp=e[0].translateExpr(cq.Y);$s=438;case 438:if($c){$c=false;sp=sp.$blk();}if(sp&&sp.$blk!==undefined){break s;}sq=sp;sr=new $Int(sh);$r=e[0].Printf("%s = %s; case %d:",new CP([so,sq,sr]));$s=439;case 439:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ss=e[0].formatExpr("%s",new CP([new $String(sj)]));$s=440;case 440:if($c){$c=false;ss=ss.$blk();}if(ss&&ss.$blk!==undefined){break s;}st=ss;$s=441;case 441:return st;case 434:su=e[0].formatExpr("%e || %e",new CP([cq.X,cq.Y]));$s=442;case 442:if($c){$c=false;su=su.$blk();}if(su&&su.$blk!==undefined){break s;}sv=su;$s=443;case 443:return sv;case 417:sx=mc.Underlying();$s=444;case 444:if($c){$c=false;sx=sx.$blk();}if(sx&&sx.$blk!==undefined){break s;}sw=sx;if($assertType(sw,CZ,true)[1]||$assertType(sw,CW,true)[1]){$s=445;continue;}if($assertType(sw,DB,true)[1]){$s=446;continue;}if($assertType(sw,CY,true)[1]){$s=447;continue;}$s=448;continue;case 445:sy=sw;tb=cq.X;tc=cq.Y;td=e[0].typeName(mc);$s=449;case 449:if($c){$c=false;td=td.$blk();}if(td&&td.$blk!==undefined){break s;}te=new $String(td);tf=e[0].formatExpr("$equal(%e, %e, %s)",new CP([tb,tc,te]));$s=450;case 450:if($c){$c=false;tf=tf.$blk();}if(tf&&tf.$blk!==undefined){break s;}tg=tf;$s=451;case 451:return tg;case 446:sz=sw.$val;th=e[0].translateImplicitConversion(cq.X,mc);$s=452;case 452:if($c){$c=false;th=th.$blk();}if(th&&th.$blk!==undefined){break s;}ti=th;tj=e[0].translateImplicitConversion(cq.Y,mc);$s=453;case 453:if($c){$c=false;tj=tj.$blk();}if(tj&&tj.$blk!==undefined){break s;}tk=tj;tl=e[0].formatExpr("$interfaceIsEqual(%s, %s)",new CP([ti,tk]));$s=454;case 454:if($c){$c=false;tl=tl.$blk();}if(tl&&tl.$blk!==undefined){break s;}tm=tl;$s=455;case 455:return tm;case 447:ta=sw.$val;if(AR(ta)){$s=456;continue;}$s=457;continue;case 456:to=T.BoolValue(cq.X,e[0].pkgCtx.Info.Info);$s=458;case 458:if($c){$c=false;to=to.$blk();}if(to&&to.$blk!==undefined){break s;}tn=to;tp=tn[0];tq=tn[1];if(tq&&tp){$s=459;continue;}$s=460;continue;case 459:tr=e[0].translateExpr(cq.Y);$s=461;case 461:if($c){$c=false;tr=tr.$blk();}if(tr&&tr.$blk!==undefined){break s;}ts=tr;$s=462;case 462:return ts;case 460:tu=T.BoolValue(cq.Y,e[0].pkgCtx.Info.Info);$s=463;case 463:if($c){$c=false;tu=tu.$blk();}if(tu&&tu.$blk!==undefined){break s;}tt=tu;tv=tt[0];tw=tt[1];if(tw&&tv){$s=464;continue;}$s=465;continue;case 464:tx=e[0].translateExpr(cq.X);$s=466;case 466:if($c){$c=false;tx=tx.$blk();}if(tx&&tx.$blk!==undefined){break s;}ty=tx;$s=467;case 467:return ty;case 465:case 457:case 448:tz=e[0].translateImplicitConversion(cq.X,mc);$s=468;case 468:if($c){$c=false;tz=tz.$blk();}if(tz&&tz.$blk!==undefined){break s;}ua=tz;ub=e[0].translateImplicitConversion(cq.Y,mc);$s=469;case 469:if($c){$c=false;ub=ub.$blk();}if(ub&&ub.$blk!==undefined){break s;}uc=ub;ud=e[0].formatExpr("%s === %s",new CP([ua,uc]));$s=470;case 470:if($c){$c=false;ud=ud.$blk();}if(ud&&ud.$blk!==undefined){break s;}ue=ud;$s=471;case 471:return ue;case 418:$panic(new L.Token(cq.Op));case 419:case 413:$s=81;continue;case 71:cr=cn.$val;uf=e[0].formatParenExpr("%e",new CP([cr.X]));$s=472;case 472:if($c){$c=false;uf=uf.$blk();}if(uf&&uf.$blk!==undefined){break s;}ug=uf;$s=473;case 473:return ug;case 72:cs=cn.$val;ui=e[0].pkgCtx.Info.Info.TypeOf(cs.X);$s=474;case 474:if($c){$c=false;ui=ui.$blk();}if(ui&&ui.$blk!==undefined){break s;}uj=ui.Underlying();$s=475;case 475:if($c){$c=false;uj=uj.$blk();}if(uj&&uj.$blk!==undefined){break s;}uh=uj;if($assertType(uh,CV,true)[1]){$s=476;continue;}if($assertType(uh,CZ,true)[1]){$s=477;continue;}if($assertType(uh,DD,true)[1]){$s=478;continue;}if($assertType(uh,DC,true)[1]){$s=479;continue;}if($assertType(uh,CY,true)[1]){$s=480;continue;}$s=481;continue;case 476:uk=uh.$val;ur=uk.Elem().Underlying();$s=483;case 483:if($c){$c=false;ur=ur.$blk();}if(ur&&ur.$blk!==undefined){break s;}uq=$assertType(ur,CZ,true);us=uq[1];if(!us){$s=484;continue;}$s=485;continue;case 484:ut=A.Errorf("non-array pointers can't be used with index expression",new CP([]));$s=486;case 486:if($c){$c=false;ut=ut.$blk();}if(ut&&ut.$blk!==undefined){break s;}$panic(ut);case 485:uu=cs.X.Pos();$s=487;case 487:if($c){$c=false;uu=uu.$blk();}if(uu&&uu.$blk!==undefined){break s;}uv=new J.StarExpr.ptr(uu,cs.X);W.SetType(e[0].pkgCtx.Info.Info,uk.Elem(),uv);cs.X=uv;uw=e[0].translateExpr(cs);$s=488;case 488:if($c){$c=false;uw=uw.$blk();}if(uw&&uw.$blk!==undefined){break s;}ux=uw;$s=489;case 489:return ux;case 477:ul=uh.$val;uz=BE("%1e[%2f]",!($interfaceIsEqual((uy=$mapIndex(e[0].pkgCtx.Info.Info.Types,J.Expr.keyFor(cs.Index)),uy!==undefined?uy.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value,$ifaceNil)),true);va=e[0].formatExpr(uz,new CP([cs.X,cs.Index]));$s=490;case 490:if($c){$c=false;va=va.$blk();}if(va&&va.$blk!==undefined){break s;}vb=va;$s=491;case 491:return vb;case 478:um=uh.$val;vd=e[0].formatExpr(BE("%1e.$array[%1e.$offset + %2f]",!($interfaceIsEqual((vc=$mapIndex(e[0].pkgCtx.Info.Info.Types,J.Expr.keyFor(cs.Index)),vc!==undefined?vc.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value,$ifaceNil)),false),new CP([cs.X,cs.Index]));$s=492;case 492:if($c){$c=false;vd=vd.$blk();}if(vd&&vd.$blk!==undefined){break s;}ve=vd;$s=493;case 493:return ve;case 479:un=uh.$val;vf=e[0].pkgCtx.Info.Info.TypeOf(cs.Index);$s=496;case 496:if($c){$c=false;vf=vf.$blk();}if(vf&&vf.$blk!==undefined){break s;}vg=U.IsJsObject(vf);$s=497;case 497:if($c){$c=false;vg=vg.$blk();}if(vg&&vg.$blk!==undefined){break s;}if(vg){$s=494;continue;}$s=495;continue;case 494:vi=cs.Index.Pos();$s=498;case 498:if($c){$c=false;vi=vi.$blk();}if(vi&&vi.$blk!==undefined){break s;}e[0].pkgCtx.errList=$append(e[0].pkgCtx.errList,(vh=new M.Error.ptr(e[0].pkgCtx.fileSet,vi,"cannot use js.Object as map key",false,0,0,0),new vh.constructor.elem(vh)));case 495:vj=e[0].typeName(un.Key());$s=499;case 499:if($c){$c=false;vj=vj.$blk();}if(vj&&vj.$blk!==undefined){break s;}vk=new $String(vj);vl=e[0].translateImplicitConversion(cs.Index,un.Key());$s=500;case 500:if($c){$c=false;vl=vl.$blk();}if(vl&&vl.$blk!==undefined){break s;}vm=vl;vn=A.Sprintf("%s.keyFor(%s)",new CP([vk,vm]));$s=501;case 501:if($c){$c=false;vn=vn.$blk();}if(vn&&vn.$blk!==undefined){break s;}vo=vn;vp=$assertType(h,CS,true);vq=vp[1];if(vq){$s=502;continue;}$s=503;continue;case 502:vr=e[0].newVariable("_entry");$s=504;case 504:if($c){$c=false;vr=vr.$blk();}if(vr&&vr.$blk!==undefined){break s;}vs=new $String(vr);vt=cs.X;vu=new $String(vo);vv=e[0].zeroValue(un.Elem());$s=505;case 505:if($c){$c=false;vv=vv.$blk();}if(vv&&vv.$blk!==undefined){break s;}vw=vv;vx=e[0].formatExpr("(%1s = $mapIndex(%2e,%3s), %1s !== undefined ? [%1s.v, true] : [%4e, false])",new CP([vs,vt,vu,vw]));$s=506;case 506:if($c){$c=false;vx=vx.$blk();}if(vx&&vx.$blk!==undefined){break s;}vy=vx;$s=507;case 507:return vy;case 503:vz=e[0].newVariable("_entry");$s=508;case 508:if($c){$c=false;vz=vz.$blk();}if(vz&&vz.$blk!==undefined){break s;}wa=new $String(vz);wb=cs.X;wc=new $String(vo);wd=e[0].zeroValue(un.Elem());$s=509;case 509:if($c){$c=false;wd=wd.$blk();}if(wd&&wd.$blk!==undefined){break s;}we=wd;wf=e[0].formatExpr("(%1s = $mapIndex(%2e,%3s), %1s !== undefined ? %1s.v : %4e)",new CP([wa,wb,wc,we]));$s=510;case 510:if($c){$c=false;wf=wf.$blk();}if(wf&&wf.$blk!==undefined){break s;}wg=wf;$s=511;case 511:return wg;case 480:uo=uh.$val;wh=e[0].formatExpr("%e.charCodeAt(%f)",new CP([cs.X,cs.Index]));$s=512;case 512:if($c){$c=false;wh=wh.$blk();}if(wh&&wh.$blk!==undefined){break s;}wi=wh;$s=513;case 513:return wi;case 481:up=uh;wj=A.Sprintf("Unhandled IndexExpr: %T\n",new CP([up]));$s=514;case 514:if($c){$c=false;wj=wj.$blk();}if(wj&&wj.$blk!==undefined){break s;}$panic(new $String(wj));case 482:$s=81;continue;case 73:ct=cn.$val;wl=e[0].pkgCtx.Info.Info.TypeOf(ct.X);$s=515;case 515:if($c){$c=false;wl=wl.$blk();}if(wl&&wl.$blk!==undefined){break s;}wm=wl.Underlying();$s=516;case 516:if($c){$c=false;wm=wm.$blk();}if(wm&&wm.$blk!==undefined){break s;}wk=$assertType(wm,CY,true);wn=wk[0];wo=wk[1];if(wo&&AW(wn)){$s=517;continue;}$s=518;continue;case 517:if($interfaceIsEqual(ct.Low,$ifaceNil)&&$interfaceIsEqual(ct.High,$ifaceNil)){$s=520;continue;}if($interfaceIsEqual(ct.Low,$ifaceNil)){$s=521;continue;}if($interfaceIsEqual(ct.High,$ifaceNil)){$s=522;continue;}$s=523;continue;case 520:wp=e[0].translateExpr(ct.X);$s=525;case 525:if($c){$c=false;wp=wp.$blk();}if(wp&&wp.$blk!==undefined){break s;}wq=wp;$s=526;case 526:return wq;case 521:wr=e[0].formatExpr("$substring(%e, 0, %f)",new CP([ct.X,ct.High]));$s=527;case 527:if($c){$c=false;wr=wr.$blk();}if(wr&&wr.$blk!==undefined){break s;}ws=wr;$s=528;case 528:return ws;case 522:wt=e[0].formatExpr("$substring(%e, %f)",new CP([ct.X,ct.Low]));$s=529;case 529:if($c){$c=false;wt=wt.$blk();}if(wt&&wt.$blk!==undefined){break s;}wu=wt;$s=530;case 530:return wu;case 523:wv=e[0].formatExpr("$substring(%e, %f, %f)",new CP([ct.X,ct.Low,ct.High]));$s=531;case 531:if($c){$c=false;wv=wv.$blk();}if(wv&&wv.$blk!==undefined){break s;}ww=wv;$s=532;case 532:return ww;case 524:case 519:case 518:wx=e[0].translateConversionToSlice(ct.X,h);$s=533;case 533:if($c){$c=false;wx=wx.$blk();}if(wx&&wx.$blk!==undefined){break s;}wy=wx;if($interfaceIsEqual(ct.Low,$ifaceNil)&&$interfaceIsEqual(ct.High,$ifaceNil)){$s=535;continue;}if($interfaceIsEqual(ct.Low,$ifaceNil)){$s=536;continue;}if($interfaceIsEqual(ct.High,$ifaceNil)){$s=537;continue;}$s=538;continue;case 535:wz=e[0].formatExpr("%s",new CP([wy]));$s=540;case 540:if($c){$c=false;wz=wz.$blk();}if(wz&&wz.$blk!==undefined){break s;}xa=wz;$s=541;case 541:return xa;case 536:if(!($interfaceIsEqual(ct.Max,$ifaceNil))){$s=542;continue;}$s=543;continue;case 542:xb=e[0].formatExpr("$subslice(%s, 0, %f, %f)",new CP([wy,ct.High,ct.Max]));$s=544;case 544:if($c){$c=false;xb=xb.$blk();}if(xb&&xb.$blk!==undefined){break s;}xc=xb;$s=545;case 545:return xc;case 543:xd=e[0].formatExpr("$subslice(%s, 0, %f)",new CP([wy,ct.High]));$s=546;case 546:if($c){$c=false;xd=xd.$blk();}if(xd&&xd.$blk!==undefined){break s;}xe=xd;$s=547;case 547:return xe;case 537:xf=e[0].formatExpr("$subslice(%s, %f)",new CP([wy,ct.Low]));$s=548;case 548:if($c){$c=false;xf=xf.$blk();}if(xf&&xf.$blk!==undefined){break s;}xg=xf;$s=549;case 549:return xg;case 538:if(!($interfaceIsEqual(ct.Max,$ifaceNil))){$s=550;continue;}$s=551;continue;case 550:xh=e[0].formatExpr("$subslice(%s, %f, %f, %f)",new CP([wy,ct.Low,ct.High,ct.Max]));$s=552;case 552:if($c){$c=false;xh=xh.$blk();}if(xh&&xh.$blk!==undefined){break s;}xi=xh;$s=553;case 553:return xi;case 551:xj=e[0].formatExpr("$subslice(%s, %f, %f)",new CP([wy,ct.Low,ct.High]));$s=554;case 554:if($c){$c=false;xj=xj.$blk();}if(xj&&xj.$blk!==undefined){break s;}xk=xj;$s=555;case 555:return xk;case 539:case 534:$s=81;continue;case 74:cu=cn.$val;xl=e[0].pkgCtx.SelectionOf(cu);xm=xl[0];xn=xl[1];if(!xn){$s=556;continue;}$s=557;continue;case 556:xo=e[0].objectName(bv);$s=558;case 558:if($c){$c=false;xo=xo.$blk();}if(xo&&xo.$blk!==undefined){break s;}xp=new $String(xo);xq=e[0].formatExpr("%s",new CP([xp]));$s=559;case 559:if($c){$c=false;xq=xq.$blk();}if(xq&&xq.$blk!==undefined){break s;}xr=xq;$s=560;case 560:return xr;case 557:xs=xm.Kind();$s=562;case 562:if($c){$c=false;xs=xs.$blk();}if(xs&&xs.$blk!==undefined){break s;}xt=xs;if(xt===(0)){$s=563;continue;}if(xt===(1)){$s=564;continue;}if(xt===(2)){$s=565;continue;}$s=566;continue;case 563:xv=xm;xw=cu.Pos();$s=568;case 568:if($c){$c=false;xw=xw.$blk();}if(xw&&xw.$blk!==undefined){break s;}xx=xw;xy=e[0].translateSelection(xv,xx);$s=569;case 569:if($c){$c=false;xy=xy.$blk();}if(xy&&xy.$blk!==undefined){break s;}xu=xy;xz=xu[0];ya=xu[1];if(!(ya==="")){$s=570;continue;}$s=571;continue;case 570:yc=xm.Type();$s=572;case 572:if($c){$c=false;yc=yc.$blk();}if(yc&&yc.$blk!==undefined){break s;}yb=$assertType(yc,CU,true);yd=yb[1];if(yd){$s=573;continue;}$s=574;continue;case 573:ye=cu.X;yf=new $String(F.Join(xz,"."));yg=BG(ya);$s=575;case 575:if($c){$c=false;yg=yg.$blk();}if(yg&&yg.$blk!==undefined){break s;}yh=new $String(yg);yi=xm.Type();$s=576;case 576:if($c){$c=false;yi=yi.$blk();}if(yi&&yi.$blk!==undefined){break s;}yj=e[0].typeName(yi);$s=577;case 577:if($c){$c=false;yj=yj.$blk();}if(yj&&yj.$blk!==undefined){break s;}yk=new $String(yj);yl=e[0].formatExpr("$internalize(%1e.%2s%3s, %4s, %1e.%2s)",new CP([ye,yf,yh,yk]));$s=578;case 578:if($c){$c=false;yl=yl.$blk();}if(yl&&yl.$blk!==undefined){break s;}ym=yl;$s=579;case 579:return ym;case 574:yn=cu.X;yo=new $String(F.Join(xz,"."));yp=BG(ya);$s=580;case 580:if($c){$c=false;yp=yp.$blk();}if(yp&&yp.$blk!==undefined){break s;}yq=new $String(yp);yr=e[0].formatExpr("%e.%s%s",new CP([yn,yo,yq]));$s=581;case 581:if($c){$c=false;yr=yr.$blk();}if(yr&&yr.$blk!==undefined){break s;}ys=yr;yt=xm.Type();$s=582;case 582:if($c){$c=false;yt=yt.$blk();}if(yt&&yt.$blk!==undefined){break s;}yu=yt;yv=e[0].internalize(ys,yu);$s=583;case 583:if($c){$c=false;yv=yv.$blk();}if(yv&&yv.$blk!==undefined){break s;}yw=yv;$s=584;case 584:return yw;case 571:yx=e[0].formatExpr("%e.%s",new CP([cu.X,new $String(F.Join(xz,"."))]));$s=585;case 585:if($c){$c=false;yx=yx.$blk();}if(yx&&yx.$blk!==undefined){break s;}yy=yx;$s=586;case 586:return yy;case 564:yz=e[0].makeReceiver(cu);$s=587;case 587:if($c){$c=false;yz=yz.$blk();}if(yz&&yz.$blk!==undefined){break s;}za=yz;zb=xm.Obj();$s=588;case 588:if($c){$c=false;zb=zb.$blk();}if(zb&&zb.$blk!==undefined){break s;}zc=$assertType(zb,ET).object.Name();$s=589;case 589:if($c){$c=false;zc=zc.$blk();}if(zc&&zc.$blk!==undefined){break s;}zd=new $String(zc);ze=e[0].formatExpr("$methodVal(%s, \"%s\")",new CP([za,zd]));$s=590;case 590:if($c){$c=false;ze=ze.$blk();}if(ze&&ze.$blk!==undefined){break s;}zf=ze;$s=591;case 591:return zf;case 565:zg=xm.Obj();$s=594;case 594:if($c){$c=false;zg=zg.$blk();}if(zg&&zg.$blk!==undefined){break s;}zh=zg.Exported();$s=595;case 595:if($c){$c=false;zh=zh.$blk();}if(zh&&zh.$blk!==undefined){break s;}if(!zh){$s=592;continue;}$s=593;continue;case 592:zj=xm.Obj();$s=596;case 596:if($c){$c=false;zj=zj.$blk();}if(zj&&zj.$blk!==undefined){break s;}zi=zj;(e[0].pkgCtx.dependencies||$throwRuntimeError("assignment to entry in nil map")).set(M.Object.keyFor(zi),{k:zi,v:true});case 593:zl=xm.Recv();$s=597;case 597:if($c){$c=false;zl=zl.$blk();}if(zl&&zl.$blk!==undefined){break s;}zm=zl.Underlying();$s=598;case 598:if($c){$c=false;zm=zm.$blk();}if(zm&&zm.$blk!==undefined){break s;}zk=$assertType(zm,DB,true);zn=zk[1];if(zn){$s=599;continue;}$s=600;continue;case 599:zo=xm.Obj();$s=601;case 601:if($c){$c=false;zo=zo.$blk();}if(zo&&zo.$blk!==undefined){break s;}zp=$assertType(zo,ET).object.Name();$s=602;case 602:if($c){$c=false;zp=zp.$blk();}if(zp&&zp.$blk!==undefined){break s;}zq=new $String(zp);zr=e[0].formatExpr("$ifaceMethodExpr(\"%s\")",new CP([zq]));$s=603;case 603:if($c){$c=false;zr=zr.$blk();}if(zr&&zr.$blk!==undefined){break s;}zs=zr;$s=604;case 604:return zs;case 600:zt=xm.Recv();$s=605;case 605:if($c){$c=false;zt=zt.$blk();}if(zt&&zt.$blk!==undefined){break s;}zu=e[0].typeName(zt);$s=606;case 606:if($c){$c=false;zu=zu.$blk();}if(zu&&zu.$blk!==undefined){break s;}zv=new $String(zu);zw=xm.Obj();$s=607;case 607:if($c){$c=false;zw=zw.$blk();}if(zw&&zw.$blk!==undefined){break s;}zx=$assertType(zw,ET).object.Name();$s=608;case 608:if($c){$c=false;zx=zx.$blk();}if(zx&&zx.$blk!==undefined){break s;}zy=new $String(zx);zz=e[0].formatExpr("$methodExpr(%s, \"%s\")",new CP([zv,zy]));$s=609;case 609:if($c){$c=false;zz=zz.$blk();}if(zz&&zz.$blk!==undefined){break s;}aaa=zz;$s=610;case 610:return aaa;case 566:aab=xm.Kind();$s=611;case 611:if($c){$c=false;aab=aab.$blk();}if(aab&&aab.$blk!==undefined){break s;}aac=new M.SelectionKind(aab);aad=A.Sprintf("unexpected sel.Kind(): %T",new CP([aac]));$s=612;case 612:if($c){$c=false;aad=aad.$blk();}if(aad&&aad.$blk!==undefined){break s;}$panic(new $String(aad));case 567:case 561:$s=81;continue;case 75:cv=cn.$val;aae=W.RemoveParens(cv.Fun);if(W.IsTypeExpr(aae,e[0].pkgCtx.Info.Info)){$s=613;continue;}$s=614;continue;case 613:aag=(aaf=cv.Args,(0>=aaf.$length?($throwRuntimeError("index out of range"),undefined):aaf.$array[aaf.$offset+0]));aah=e[0].pkgCtx.Info.Info.TypeOf(aae);$s=615;case 615:if($c){$c=false;aah=aah.$blk();}if(aah&&aah.$blk!==undefined){break s;}aai=aah;aaj=e[0].translateConversion(aag,aai);$s=616;case 616:if($c){$c=false;aaj=aaj.$blk();}if(aaj&&aaj.$blk!==undefined){break s;}aak=aaj;aal=e[0].formatExpr("(%s)",new CP([aak]));$s=617;case 617:if($c){$c=false;aal=aal.$blk();}if(aal&&aal.$blk!==undefined){break s;}aam=aal;$s=618;case 618:return aam;case 614:aan=e[0].pkgCtx.Info.Info.TypeOf(aae);$s=619;case 619:if($c){$c=false;aan=aan.$blk();}if(aan&&aan.$blk!==undefined){break s;}aao=aan.Underlying();$s=620;case 620:if($c){$c=false;aao=aao.$blk();}if(aao&&aao.$blk!==undefined){break s;}aap=$assertType(aao,CU);aaq=aae;if($assertType(aaq,DE,true)[1]){$s=621;continue;}if($assertType(aaq,EY,true)[1]){$s=622;continue;}$s=623;continue;case 621:aar=aaq.$val;aav=(aau=$mapIndex(e[0].pkgCtx.Info.Info.Uses,DE.keyFor(aar)),aau!==undefined?aau.v:$ifaceNil);aaw=$assertType(aav,GD,true);aax=aaw[0];aay=aaw[1];if(aay){$s=625;continue;}$s=626;continue;case 625:aaz=e[0].translateBuiltin(aax.object.Name(),aap,cv.Args,new L.Pos(cv.Ellipsis).IsValid());$s=627;case 627:if($c){$c=false;aaz=aaz.$blk();}if(aaz&&aaz.$blk!==undefined){break s;}aba=aaz;$s=628;case 628:return aba;case 626:abc=aav.Pkg();$s=632;case 632:if($c){$c=false;abc=abc.$blk();}if(abc&&abc.$blk!==undefined){break s;}abd=U.IsJsPackage(abc);$s=633;case 633:if($c){$c=false;abd=abd.$blk();}if(abd&&abd.$blk!==undefined){break s;}if(!(abd)){abb=false;$s=631;continue s;}abe=aav.Name();$s=634;case 634:if($c){$c=false;abe=abe.$blk();}if(abe&&abe.$blk!==undefined){break s;}abb=abe==="InternalObject";case 631:if(abb){$s=629;continue;}$s=630;continue;case 629:abg=e[0].translateExpr((abf=cv.Args,(0>=abf.$length?($throwRuntimeError("index out of range"),undefined):abf.$array[abf.$offset+0])));$s=635;case 635:if($c){$c=false;abg=abg.$blk();}if(abg&&abg.$blk!==undefined){break s;}abh=abg;$s=636;case 636:return abh;case 630:abi=cv;abj=aap;abk=e[0].translateExpr(aar);$s=637;case 637:if($c){$c=false;abk=abk.$blk();}if(abk&&abk.$blk!==undefined){break s;}abl=abk;abm=e[0].translateCall(abi,abj,abl);$s=638;case 638:if($c){$c=false;abm=abm.$blk();}if(abm&&abm.$blk!==undefined){break s;}abn=abm;$s=639;case 639:return abn;case 622:aas=aaq.$val;abo=e[0].pkgCtx.SelectionOf(aas);abp=abo[0];abq=abo[1];if(!abq){$s=640;continue;}$s=641;continue;case 640:abs=(abr=$mapIndex(e[0].pkgCtx.Info.Info.Uses,DE.keyFor(aas.Sel)),abr!==undefined?abr.v:$ifaceNil);abt=abs.Pkg();$s=644;case 644:if($c){$c=false;abt=abt.$blk();}if(abt&&abt.$blk!==undefined){break s;}abu=U.IsJsPackage(abt);$s=645;case 645:if($c){$c=false;abu=abu.$blk();}if(abu&&abu.$blk!==undefined){break s;}if(abu){$s=642;continue;}$s=643;continue;case 642:abv=abs.Name();$s=647;case 647:if($c){$c=false;abv=abv.$blk();}if(abv&&abv.$blk!==undefined){break s;}abw=abv;if(abw===("Debugger")){$s=648;continue;}if(abw===("InternalObject")){$s=649;continue;}$s=650;continue;case 648:abx=e[0].formatExpr("debugger",new CP([]));$s=651;case 651:if($c){$c=false;abx=abx.$blk();}if(abx&&abx.$blk!==undefined){break s;}aby=abx;$s=652;case 652:return aby;case 649:aca=e[0].translateExpr((abz=cv.Args,(0>=abz.$length?($throwRuntimeError("index out of range"),undefined):abz.$array[abz.$offset+0])));$s=653;case 653:if($c){$c=false;aca=aca.$blk();}if(aca&&aca.$blk!==undefined){break s;}acb=aca;$s=654;case 654:return acb;case 650:case 646:case 643:acc=cv;acd=aap;ace=e[0].translateExpr(aas);$s=655;case 655:if($c){$c=false;ace=ace.$blk();}if(ace&&ace.$blk!==undefined){break s;}acf=ace;acg=e[0].translateCall(acc,acd,acf);$s=656;case 656:if($c){$c=false;acg=acg.$blk();}if(acg&&acg.$blk!==undefined){break s;}ach=acg;$s=657;case 657:return ach;case 641:d[0]=(function(c,d,e,f){return function $b(aci){var{aci,acj,ack,acl,acm,acn,aco,acp,acq,$s,$r,$c}=$restore(this,{aci});$s=$s||0;s:while(true){switch($s){case 0:acj=e[0].pkgCtx.Info.Info.TypeOf(aci);$s=1;case 1:if($c){$c=false;acj=acj.$blk();}if(acj&&acj.$blk!==undefined){break s;}ack=acj;acm=M.Identical(ack,(acl=M.Typ,(25>=acl.$length?($throwRuntimeError("index out of range"),undefined):acl.$array[acl.$offset+25])));$s=4;case 4:if($c){$c=false;acm=acm.$blk();}if(acm&&acm.$blk!==undefined){break s;}if(acm){$s=2;continue;}$s=3;continue;case 2:$s=-1;return"null";case 3:acn=e[0].translateExpr(aci);$s=5;case 5:if($c){$c=false;acn=acn.$blk();}if(acn&&acn.$blk!==undefined){break s;}aco=acn.String();$s=6;case 6:if($c){$c=false;aco=aco.$blk();}if(aco&&aco.$blk!==undefined){break s;}acp=e[0].externalize(aco,ack);$s=7;case 7:if($c){$c=false;acp=acp.$blk();}if(acp&&acp.$blk!==undefined){break s;}acq=acp;$s=8;case 8:return acq;}return;}var $f={$blk:$b,$c:true,$r,aci,acj,ack,acl,acm,acn,aco,acp,acq,$s};return $f;};})(c,d,e,f);aci=(function(c,d,e,f){return function $b(aci){var{aci,acj,ack,acl,acm,acn,aco,$s,$r,$c}=$restore(this,{aci});$s=$s||0;s:while(true){switch($s){case 0:acj=$makeSlice(CQ,aci.$length);ack=aci;acl=0;case 1:if(!(acl=ack.$length)?($throwRuntimeError("index out of range"),undefined):ack.$array[ack.$offset+acl]);aco=d[0](acn);$s=3;case 3:if($c){$c=false;aco=aco.$blk();}if(aco&&aco.$blk!==undefined){break s;}((acm<0||acm>=acj.$length)?($throwRuntimeError("index out of range"),undefined):acj.$array[acj.$offset+acm]=aco);acl++;$s=1;continue;case 2:$s=-1;return F.Join(acj,", ");}return;}var $f={$blk:$b,$c:true,$r,aci,acj,ack,acl,acm,acn,aco,$s};return $f;};})(c,d,e,f);acj=abp.Kind();$s=659;case 659:if($c){$c=false;acj=acj.$blk();}if(acj&&acj.$blk!==undefined){break s;}ack=acj;if(ack===(1)){$s=660;continue;}if(ack===(0)){$s=661;continue;}if(ack===(2)){$s=662;continue;}$s=663;continue;case 660:acl=e[0].makeReceiver(aas);$s=665;case 665:if($c){$c=false;acl=acl.$blk();}if(acl&&acl.$blk!==undefined){break s;}f[0]=acl;acm=abp.Obj();$s=666;case 666:if($c){$c=false;acm=acm.$blk();}if(acm&&acm.$blk!==undefined){break s;}acn=$assertType(acm,ET).object.Type();$s=667;case 667:if($c){$c=false;acn=acn.$blk();}if(acn&&acn.$blk!==undefined){break s;}aco=$assertType(acn,CU).Recv();$s=668;case 668:if($c){$c=false;aco=aco.$blk();}if(aco&&aco.$blk!==undefined){break s;}acp=aco.object.Type();$s=669;case 669:if($c){$c=false;acp=acp.$blk();}if(acp&&acp.$blk!==undefined){break s;}acq=acp;if(U.IsJsObject(acq)){$s=670;continue;}$s=671;continue;case 670:acr=(function(c,d,e,f){return function(acr){var acr;if(f[0].String()==="$global"&&(acr.charCodeAt(0)===36)&&acr.length>1){return acr;}return f[0].String()+"."+acr;};})(c,d,e,f);acs=abp.Obj();$s=673;case 673:if($c){$c=false;acs=acs.$blk();}if(acs&&acs.$blk!==undefined){break s;}act=acs.Name();$s=674;case 674:if($c){$c=false;act=act.$blk();}if(act&&act.$blk!==undefined){break s;}acu=act;if(acu===("Get")){$s=675;continue;}if(acu===("Set")){$s=676;continue;}if(acu===("Delete")){$s=677;continue;}if(acu===("Length")){$s=678;continue;}if(acu===("Index")){$s=679;continue;}if(acu===("SetIndex")){$s=680;continue;}if(acu===("Call")){$s=681;continue;}if(acu===("Invoke")){$s=682;continue;}if(acu===("New")){$s=683;continue;}if(acu===("Bool")){$s=684;continue;}if(acu===("String")){$s=685;continue;}if(acu===("Int")){$s=686;continue;}if(acu===("Int64")){$s=687;continue;}if(acu===("Uint64")){$s=688;continue;}if(acu===("Float")){$s=689;continue;}if(acu===("Interface")){$s=690;continue;}if(acu===("Unsafe")){$s=691;continue;}$s=692;continue;case 675:acx=e[0].identifierConstant((acw=cv.Args,(0>=acw.$length?($throwRuntimeError("index out of range"),undefined):acw.$array[acw.$offset+0])));$s=694;case 694:if($c){$c=false;acx=acx.$blk();}if(acx&&acx.$blk!==undefined){break s;}acv=acx;acy=acv[0];acz=acv[1];if(acz){$s=695;continue;}$s=696;continue;case 695:ada=acr(acy);$s=697;case 697:if($c){$c=false;ada=ada.$blk();}if(ada&&ada.$blk!==undefined){break s;}adb=new $String(ada);adc=e[0].formatExpr("%s",new CP([adb]));$s=698;case 698:if($c){$c=false;adc=adc.$blk();}if(adc&&adc.$blk!==undefined){break s;}add=adc;$s=699;case 699:return add;case 696:adf=e[0].formatExpr("%s[$externalize(%e, $String)]",new CP([f[0],(ade=cv.Args,(0>=ade.$length?($throwRuntimeError("index out of range"),undefined):ade.$array[ade.$offset+0]))]));$s=700;case 700:if($c){$c=false;adf=adf.$blk();}if(adf&&adf.$blk!==undefined){break s;}adg=adf;$s=701;case 701:return adg;case 676:adj=e[0].identifierConstant((adi=cv.Args,(0>=adi.$length?($throwRuntimeError("index out of range"),undefined):adi.$array[adi.$offset+0])));$s=702;case 702:if($c){$c=false;adj=adj.$blk();}if(adj&&adj.$blk!==undefined){break s;}adh=adj;adk=adh[0];adl=adh[1];if(adl){$s=703;continue;}$s=704;continue;case 703:adm=acr(adk);$s=705;case 705:if($c){$c=false;adm=adm.$blk();}if(adm&&adm.$blk!==undefined){break s;}adn=new $String(adm);adp=d[0]((ado=cv.Args,(1>=ado.$length?($throwRuntimeError("index out of range"),undefined):ado.$array[ado.$offset+1])));$s=706;case 706:if($c){$c=false;adp=adp.$blk();}if(adp&&adp.$blk!==undefined){break s;}adq=new $String(adp);adr=e[0].formatExpr("%s = %s",new CP([adn,adq]));$s=707;case 707:if($c){$c=false;adr=adr.$blk();}if(adr&&adr.$blk!==undefined){break s;}ads=adr;$s=708;case 708:return ads;case 704:adt=f[0];adv=(adu=cv.Args,(0>=adu.$length?($throwRuntimeError("index out of range"),undefined):adu.$array[adu.$offset+0]));adx=d[0]((adw=cv.Args,(1>=adw.$length?($throwRuntimeError("index out of range"),undefined):adw.$array[adw.$offset+1])));$s=709;case 709:if($c){$c=false;adx=adx.$blk();}if(adx&&adx.$blk!==undefined){break s;}ady=new $String(adx);adz=e[0].formatExpr("%s[$externalize(%e, $String)] = %s",new CP([adt,adv,ady]));$s=710;case 710:if($c){$c=false;adz=adz.$blk();}if(adz&&adz.$blk!==undefined){break s;}aea=adz;$s=711;case 711:return aea;case 677:aec=e[0].formatExpr("delete %s[$externalize(%e, $String)]",new CP([f[0],(aeb=cv.Args,(0>=aeb.$length?($throwRuntimeError("index out of range"),undefined):aeb.$array[aeb.$offset+0]))]));$s=712;case 712:if($c){$c=false;aec=aec.$blk();}if(aec&&aec.$blk!==undefined){break s;}aed=aec;$s=713;case 713:return aed;case 678:aee=e[0].formatExpr("$parseInt(%s.length)",new CP([f[0]]));$s=714;case 714:if($c){$c=false;aee=aee.$blk();}if(aee&&aee.$blk!==undefined){break s;}aef=aee;$s=715;case 715:return aef;case 679:aeh=e[0].formatExpr("%s[%e]",new CP([f[0],(aeg=cv.Args,(0>=aeg.$length?($throwRuntimeError("index out of range"),undefined):aeg.$array[aeg.$offset+0]))]));$s=716;case 716:if($c){$c=false;aeh=aeh.$blk();}if(aeh&&aeh.$blk!==undefined){break s;}aei=aeh;$s=717;case 717:return aei;case 680:aej=f[0];ael=(aek=cv.Args,(0>=aek.$length?($throwRuntimeError("index out of range"),undefined):aek.$array[aek.$offset+0]));aen=d[0]((aem=cv.Args,(1>=aem.$length?($throwRuntimeError("index out of range"),undefined):aem.$array[aem.$offset+1])));$s=718;case 718:if($c){$c=false;aen=aen.$blk();}if(aen&&aen.$blk!==undefined){break s;}aeo=new $String(aen);aep=e[0].formatExpr("%s[%e] = %s",new CP([aej,ael,aeo]));$s=719;case 719:if($c){$c=false;aep=aep.$blk();}if(aep&&aep.$blk!==undefined){break s;}aeq=aep;$s=720;case 720:return aeq;case 681:aet=e[0].identifierConstant((aes=cv.Args,(0>=aes.$length?($throwRuntimeError("index out of range"),undefined):aes.$array[aes.$offset+0])));$s=721;case 721:if($c){$c=false;aet=aet.$blk();}if(aet&&aet.$blk!==undefined){break s;}aer=aet;aeu=aer[0];aev=aer[1];if(aev){$s=722;continue;}$s=723;continue;case 722:if(new L.Pos(cv.Ellipsis).IsValid()){$s=724;continue;}$s=725;continue;case 724:aew=e[0].newVariable("obj");$s=726;case 726:if($c){$c=false;aew=aew.$blk();}if(aew&&aew.$blk!==undefined){break s;}aex=aew;aey=new $String(aex);aez=f[0];afa=new $String(aex);afb=new $String(aeu);afc=new $String(aex);afe=d[0]((afd=cv.Args,(1>=afd.$length?($throwRuntimeError("index out of range"),undefined):afd.$array[afd.$offset+1])));$s=727;case 727:if($c){$c=false;afe=afe.$blk();}if(afe&&afe.$blk!==undefined){break s;}aff=new $String(afe);afg=e[0].formatExpr("(%s = %s, %s.%s.apply(%s, %s))",new CP([aey,aez,afa,afb,afc,aff]));$s=728;case 728:if($c){$c=false;afg=afg.$blk();}if(afg&&afg.$blk!==undefined){break s;}afh=afg;$s=729;case 729:return afh;case 725:afi=acr(aeu);$s=730;case 730:if($c){$c=false;afi=afi.$blk();}if(afi&&afi.$blk!==undefined){break s;}afj=new $String(afi);afk=aci($subslice(cv.Args,1));$s=731;case 731:if($c){$c=false;afk=afk.$blk();}if(afk&&afk.$blk!==undefined){break s;}afl=new $String(afk);afm=e[0].formatExpr("%s(%s)",new CP([afj,afl]));$s=732;case 732:if($c){$c=false;afm=afm.$blk();}if(afm&&afm.$blk!==undefined){break s;}afn=afm;$s=733;case 733:return afn;case 723:if(new L.Pos(cv.Ellipsis).IsValid()){$s=734;continue;}$s=735;continue;case 734:afo=e[0].newVariable("obj");$s=736;case 736:if($c){$c=false;afo=afo.$blk();}if(afo&&afo.$blk!==undefined){break s;}afp=afo;afq=new $String(afp);afr=f[0];afs=new $String(afp);afu=(aft=cv.Args,(0>=aft.$length?($throwRuntimeError("index out of range"),undefined):aft.$array[aft.$offset+0]));afv=new $String(afp);afx=d[0]((afw=cv.Args,(1>=afw.$length?($throwRuntimeError("index out of range"),undefined):afw.$array[afw.$offset+1])));$s=737;case 737:if($c){$c=false;afx=afx.$blk();}if(afx&&afx.$blk!==undefined){break s;}afy=new $String(afx);afz=e[0].formatExpr("(%s = %s, %s[$externalize(%e, $String)].apply(%s, %s))",new CP([afq,afr,afs,afu,afv,afy]));$s=738;case 738:if($c){$c=false;afz=afz.$blk();}if(afz&&afz.$blk!==undefined){break s;}aga=afz;$s=739;case 739:return aga;case 735:agb=f[0];agd=(agc=cv.Args,(0>=agc.$length?($throwRuntimeError("index out of range"),undefined):agc.$array[agc.$offset+0]));age=aci($subslice(cv.Args,1));$s=740;case 740:if($c){$c=false;age=age.$blk();}if(age&&age.$blk!==undefined){break s;}agf=new $String(age);agg=e[0].formatExpr("%s[$externalize(%e, $String)](%s)",new CP([agb,agd,agf]));$s=741;case 741:if($c){$c=false;agg=agg.$blk();}if(agg&&agg.$blk!==undefined){break s;}agh=agg;$s=742;case 742:return agh;case 682:if(new L.Pos(cv.Ellipsis).IsValid()){$s=743;continue;}$s=744;continue;case 743:agi=f[0];agk=d[0]((agj=cv.Args,(0>=agj.$length?($throwRuntimeError("index out of range"),undefined):agj.$array[agj.$offset+0])));$s=745;case 745:if($c){$c=false;agk=agk.$blk();}if(agk&&agk.$blk!==undefined){break s;}agl=new $String(agk);agm=e[0].formatExpr("%s.apply(undefined, %s)",new CP([agi,agl]));$s=746;case 746:if($c){$c=false;agm=agm.$blk();}if(agm&&agm.$blk!==undefined){break s;}agn=agm;$s=747;case 747:return agn;case 744:ago=f[0];agp=aci(cv.Args);$s=748;case 748:if($c){$c=false;agp=agp.$blk();}if(agp&&agp.$blk!==undefined){break s;}agq=new $String(agp);agr=e[0].formatExpr("%s(%s)",new CP([ago,agq]));$s=749;case 749:if($c){$c=false;agr=agr.$blk();}if(agr&&agr.$blk!==undefined){break s;}ags=agr;$s=750;case 750:return ags;case 683:if(new L.Pos(cv.Ellipsis).IsValid()){$s=751;continue;}$s=752;continue;case 751:agt=f[0];agv=d[0]((agu=cv.Args,(0>=agu.$length?($throwRuntimeError("index out of range"),undefined):agu.$array[agu.$offset+0])));$s=753;case 753:if($c){$c=false;agv=agv.$blk();}if(agv&&agv.$blk!==undefined){break s;}agw=new $String(agv);agx=e[0].formatExpr("new ($global.Function.prototype.bind.apply(%s, [undefined].concat(%s)))",new CP([agt,agw]));$s=754;case 754:if($c){$c=false;agx=agx.$blk();}if(agx&&agx.$blk!==undefined){break s;}agy=agx;$s=755;case 755:return agy;case 752:agz=f[0];aha=aci(cv.Args);$s=756;case 756:if($c){$c=false;aha=aha.$blk();}if(aha&&aha.$blk!==undefined){break s;}ahb=new $String(aha);ahc=e[0].formatExpr("new (%s)(%s)",new CP([agz,ahb]));$s=757;case 757:if($c){$c=false;ahc=ahc.$blk();}if(ahc&&ahc.$blk!==undefined){break s;}ahd=ahc;$s=758;case 758:return ahd;case 684:ahf=e[0].internalize(f[0],(ahe=M.Typ,(1>=ahe.$length?($throwRuntimeError("index out of range"),undefined):ahe.$array[ahe.$offset+1])));$s=759;case 759:if($c){$c=false;ahf=ahf.$blk();}if(ahf&&ahf.$blk!==undefined){break s;}ahg=ahf;$s=760;case 760:return ahg;case 685:ahi=e[0].internalize(f[0],(ahh=M.Typ,(17>=ahh.$length?($throwRuntimeError("index out of range"),undefined):ahh.$array[ahh.$offset+17])));$s=761;case 761:if($c){$c=false;ahi=ahi.$blk();}if(ahi&&ahi.$blk!==undefined){break s;}ahj=ahi;$s=762;case 762:return ahj;case 686:ahl=e[0].internalize(f[0],(ahk=M.Typ,(2>=ahk.$length?($throwRuntimeError("index out of range"),undefined):ahk.$array[ahk.$offset+2])));$s=763;case 763:if($c){$c=false;ahl=ahl.$blk();}if(ahl&&ahl.$blk!==undefined){break s;}ahm=ahl;$s=764;case 764:return ahm;case 687:aho=e[0].internalize(f[0],(ahn=M.Typ,(6>=ahn.$length?($throwRuntimeError("index out of range"),undefined):ahn.$array[ahn.$offset+6])));$s=765;case 765:if($c){$c=false;aho=aho.$blk();}if(aho&&aho.$blk!==undefined){break s;}ahp=aho;$s=766;case 766:return ahp;case 688:ahr=e[0].internalize(f[0],(ahq=M.Typ,(11>=ahq.$length?($throwRuntimeError("index out of range"),undefined):ahq.$array[ahq.$offset+11])));$s=767;case 767:if($c){$c=false;ahr=ahr.$blk();}if(ahr&&ahr.$blk!==undefined){break s;}ahs=ahr;$s=768;case 768:return ahs;case 689:ahu=e[0].internalize(f[0],(aht=M.Typ,(14>=aht.$length?($throwRuntimeError("index out of range"),undefined):aht.$array[aht.$offset+14])));$s=769;case 769:if($c){$c=false;ahu=ahu.$blk();}if(ahu&&ahu.$blk!==undefined){break s;}ahv=ahu;$s=770;case 770:return ahv;case 690:ahw=f[0];ahx=M.NewInterface(EU.nil,EV.nil);$s=771;case 771:if($c){$c=false;ahx=ahx.$blk();}if(ahx&&ahx.$blk!==undefined){break s;}ahy=ahx;ahz=e[0].internalize(ahw,ahy);$s=772;case 772:if($c){$c=false;ahz=ahz.$blk();}if(ahz&&ahz.$blk!==undefined){break s;}aia=ahz;$s=773;case 773:return aia;case 691:$s=-1;return f[0];case 692:aib=abp.Obj();$s=774;case 774:if($c){$c=false;aib=aib.$blk();}if(aib&&aib.$blk!==undefined){break s;}aic=aib.Name();$s=775;case 775:if($c){$c=false;aic=aic.$blk();}if(aic&&aic.$blk!==undefined){break s;}$panic(new $String("Invalid js package object: "+aic));case 693:case 672:case 671:aid=abp.Obj();$s=776;case 776:if($c){$c=false;aid=aid.$blk();}if(aid&&aid.$blk!==undefined){break s;}aie=aid.Name();$s=777;case 777:if($c){$c=false;aie=aie.$blk();}if(aie&&aie.$blk!==undefined){break s;}aif=aie;if((aig=$mapIndex(CC,$String.keyFor(aif)),aig!==undefined?aig.v:false)){aif=aif+("$");}aih=cv;aii=aap;aij=e[0].formatExpr("%s.%s",new CP([f[0],new $String(aif)]));$s=778;case 778:if($c){$c=false;aij=aij.$blk();}if(aij&&aij.$blk!==undefined){break s;}aik=aij;ail=e[0].translateCall(aih,aii,aik);$s=779;case 779:if($c){$c=false;ail=ail.$blk();}if(ail&&ail.$blk!==undefined){break s;}aim=ail;$s=780;case 780:return aim;case 661:aio=abp;aip=aas.Pos();$s=781;case 781:if($c){$c=false;aip=aip.$blk();}if(aip&&aip.$blk!==undefined){break s;}aiq=aip;air=e[0].translateSelection(aio,aiq);$s=782;case 782:if($c){$c=false;air=air.$blk();}if(air&&air.$blk!==undefined){break s;}ain=air;ais=ain[0];ait=ain[1];if(!(ait==="")){$s=783;continue;}$s=784;continue;case 783:aiu=aas.X;aiv=new $String(F.Join(ais,"."));aiw=BG(ait);$s=785;case 785:if($c){$c=false;aiw=aiw.$blk();}if(aiw&&aiw.$blk!==undefined){break s;}aix=new $String(aiw);aiy=aci(cv.Args);$s=786;case 786:if($c){$c=false;aiy=aiy.$blk();}if(aiy&&aiy.$blk!==undefined){break s;}aiz=new $String(aiy);aja=e[0].formatExpr("%e.%s%s(%s)",new CP([aiu,aiv,aix,aiz]));$s=787;case 787:if($c){$c=false;aja=aja.$blk();}if(aja&&aja.$blk!==undefined){break s;}ajb=aja;ajc=aap.Results().Len();if(ajc===(0)){$s=789;continue;}if(ajc===(1)){$s=790;continue;}$s=791;continue;case 789:$s=-1;return ajb;case 790:ajd=e[0].internalize(ajb,aap.Results().At(0).object.Type());$s=793;case 793:if($c){$c=false;ajd=ajd.$blk();}if(ajd&&ajd.$blk!==undefined){break s;}aje=ajd;$s=794;case 794:return aje;case 791:ajg=aas.Pos();$s=795;case 795:if($c){$c=false;ajg=ajg.$blk();}if(ajg&&ajg.$blk!==undefined){break s;}e[0].pkgCtx.errList=$append(e[0].pkgCtx.errList,(ajf=new M.Error.ptr(e[0].pkgCtx.fileSet,ajg,"field with js tag can not have func type with multiple results",false,0,0,0),new ajf.constructor.elem(ajf)));case 792:case 788:case 784:ajh=cv;aji=aap;ajj=e[0].formatExpr("%e.%s",new CP([aas.X,new $String(F.Join(ais,"."))]));$s=796;case 796:if($c){$c=false;ajj=ajj.$blk();}if(ajj&&ajj.$blk!==undefined){break s;}ajk=ajj;ajl=e[0].translateCall(ajh,aji,ajk);$s=797;case 797:if($c){$c=false;ajl=ajl.$blk();}if(ajl&&ajl.$blk!==undefined){break s;}ajm=ajl;$s=798;case 798:return ajm;case 662:ajn=cv;ajo=aap;ajp=e[0].translateExpr(aas);$s=799;case 799:if($c){$c=false;ajp=ajp.$blk();}if(ajp&&ajp.$blk!==undefined){break s;}ajq=ajp;ajr=e[0].translateCall(ajn,ajo,ajq);$s=800;case 800:if($c){$c=false;ajr=ajr.$blk();}if(ajr&&ajr.$blk!==undefined){break s;}ajs=ajr;$s=801;case 801:return ajs;case 663:ajt=abp.Kind();$s=802;case 802:if($c){$c=false;ajt=ajt.$blk();}if(ajt&&ajt.$blk!==undefined){break s;}aju=new M.SelectionKind(ajt);ajv=A.Sprintf("unexpected sel.Kind(): %T",new CP([aju]));$s=803;case 803:if($c){$c=false;ajv=ajv.$blk();}if(ajv&&ajv.$blk!==undefined){break s;}$panic(new $String(ajv));case 664:case 658:$s=624;continue;case 623:aat=aaq;ajw=cv;ajx=aap;ajy=e[0].translateExpr(aae);$s=804;case 804:if($c){$c=false;ajy=ajy.$blk();}if(ajy&&ajy.$blk!==undefined){break s;}ajz=ajy;aka=e[0].translateCall(ajw,ajx,ajz);$s=805;case 805:if($c){$c=false;aka=aka.$blk();}if(aka&&aka.$blk!==undefined){break s;}akb=aka;$s=806;case 806:return akb;case 624:$s=81;continue;case 76:cw=cn.$val;akc=e[0].pkgCtx.Info.Info.TypeOf(cw.X);$s=809;case 809:if($c){$c=false;akc=akc.$blk();}if(akc&&akc.$blk!==undefined){break s;}akd=U.IsJsObject(akc);$s=810;case 810:if($c){$c=false;akd=akd.$blk();}if(akd&&akd.$blk!==undefined){break s;}if(akd){$s=807;continue;}$s=808;continue;case 807:ake=e[0].formatExpr("new $jsObjectPtr(%e)",new CP([cw.X]));$s=811;case 811:if($c){$c=false;ake=ake.$blk();}if(ake&&ake.$blk!==undefined){break s;}akf=ake;$s=812;case 812:return akf;case 808:akg=$assertType(cw.X,GB,true);akh=akg[0];aki=akg[1];if(aki&&(akh.Args.$length===1)){$s=813;continue;}$s=814;continue;case 813:akj=$assertType((akk=akh.Args,(0>=akk.$length?($throwRuntimeError("index out of range"),undefined):akk.$array[akk.$offset+0])),GB,true);akl=akj[0];akm=akj[1];if(!(akm&&(akl.Args.$length===1))){akn=false;$s=817;continue s;}ako=e[0].pkgCtx.Info.Info.TypeOf(akl.Fun);$s=818;case 818:if($c){$c=false;ako=ako.$blk();}if(ako&&ako.$blk!==undefined){break s;}akq=M.Identical(ako,(akp=M.Typ,(18>=akp.$length?($throwRuntimeError("index out of range"),undefined):akp.$array[akp.$offset+18])));$s=819;case 819:if($c){$c=false;akq=akq.$blk();}if(akq&&akq.$blk!==undefined){break s;}akn=akq;case 817:if(akn){$s=815;continue;}$s=816;continue;case 815:akr=$assertType((aks=akl.Args,(0>=aks.$length?($throwRuntimeError("index out of range"),undefined):aks.$array[aks.$offset+0])),ES,true);akt=akr[0];aku=akr[1];if(aku&&(akt.Op===17)){$s=820;continue;}$s=821;continue;case 820:akv=e[0].translateExpr(akt.X);$s=822;case 822:if($c){$c=false;akv=akv.$blk();}if(akv&&akv.$blk!==undefined){break s;}akw=akv;$s=823;case 823:return akw;case 821:case 816:case 814:aky=h.Underlying();$s=824;case 824:if($c){$c=false;aky=aky.$blk();}if(aky&&aky.$blk!==undefined){break s;}akx=aky;if($assertType(akx,CW,true)[1]||$assertType(akx,CZ,true)[1]){$s=825;continue;}$s=826;continue;case 825:akz=e[0].translateExpr(cw.X);$s=827;case 827:if($c){$c=false;akz=akz.$blk();}if(akz&&akz.$blk!==undefined){break s;}ala=akz;$s=828;case 828:return ala;case 826:alb=e[0].formatExpr("%e.$get()",new CP([cw.X]));$s=829;case 829:if($c){$c=false;alb=alb.$blk();}if(alb&&alb.$blk!==undefined){break s;}alc=alb;$s=830;case 830:return alc;case 77:cx=cn.$val;if($interfaceIsEqual(cx.Type,$ifaceNil)){$s=831;continue;}$s=832;continue;case 831:ald=e[0].translateExpr(cx.X);$s=833;case 833:if($c){$c=false;ald=ald.$blk();}if(ald&&ald.$blk!==undefined){break s;}ale=ald;$s=834;case 834:return ale;case 832:alf=e[0].pkgCtx.Info.Info.TypeOf(cx.Type);$s=835;case 835:if($c){$c=false;alf=alf.$blk();}if(alf&&alf.$blk!==undefined){break s;}alg=alf;alh=$assertType(h,CS,true);ali=alh[1];if(ali){$s=836;continue;}$s=837;continue;case 836:alj=cx.X;alk=e[0].typeName(alg);$s=838;case 838:if($c){$c=false;alk=alk.$blk();}if(alk&&alk.$blk!==undefined){break s;}all=new $String(alk);alm=e[0].formatExpr("$assertType(%e, %s, true)",new CP([alj,all]));$s=839;case 839:if($c){$c=false;alm=alm.$blk();}if(alm&&alm.$blk!==undefined){break s;}aln=alm;$s=840;case 840:return aln;case 837:alo=cx.X;alp=e[0].typeName(alg);$s=841;case 841:if($c){$c=false;alp=alp.$blk();}if(alp&&alp.$blk!==undefined){break s;}alq=new $String(alp);alr=e[0].formatExpr("$assertType(%e, %s)",new CP([alo,alq]));$s=842;case 842:if($c){$c=false;alr=alr.$blk();}if(alr&&alr.$blk!==undefined){break s;}als=alr;$s=843;case 843:return als;case 78:cy=cn.$val;if(cy.Name==="_"){$panic(new $String("Tried to translate underscore identifier."));}alt=bv;if($assertType(alt,DH,true)[1]||$assertType(alt,DI,true)[1]){$s=844;continue;}if($assertType(alt,ET,true)[1]){$s=845;continue;}if($assertType(alt,DL,true)[1]){$s=846;continue;}if($assertType(alt,GE,true)[1]){$s=847;continue;}$s=848;continue;case 844:alu=alt;alz=e[0].objectName(alu);$s=850;case 850:if($c){$c=false;alz=alz.$blk();}if(alz&&alz.$blk!==undefined){break s;}ama=new $String(alz);amb=e[0].formatExpr("%s",new CP([ama]));$s=851;case 851:if($c){$c=false;amb=amb.$blk();}if(amb&&amb.$blk!==undefined){break s;}amc=amb;$s=852;case 852:return amc;case 845:alv=alt.$val;amd=e[0].objectName(alv);$s=853;case 853:if($c){$c=false;amd=amd.$blk();}if(amd&&amd.$blk!==undefined){break s;}ame=new $String(amd);amf=e[0].formatExpr("%s",new CP([ame]));$s=854;case 854:if($c){$c=false;amf=amf.$blk();}if(amf&&amf.$blk!==undefined){break s;}amg=amf;$s=855;case 855:return amg;case 846:alw=alt.$val;amh=e[0].typeName(alw.object.Type());$s=856;case 856:if($c){$c=false;amh=amh.$blk();}if(amh&&amh.$blk!==undefined){break s;}ami=new $String(amh);amj=e[0].formatExpr("%s",new CP([ami]));$s=857;case 857:if($c){$c=false;amj=amj.$blk();}if(amj&&amj.$blk!==undefined){break s;}amk=amj;$s=858;case 858:return amk;case 847:alx=alt.$val;if(U.IsJsObject(h)){$s=859;continue;}$s=860;continue;case 859:aml=e[0].formatExpr("null",new CP([]));$s=861;case 861:if($c){$c=false;aml=aml.$blk();}if(aml&&aml.$blk!==undefined){break s;}amm=aml;$s=862;case 862:return amm;case 860:amo=h.Underlying();$s=863;case 863:if($c){$c=false;amo=amo.$blk();}if(amo&&amo.$blk!==undefined){break s;}amn=amo;if($assertType(amn,CY,true)[1]){$s=864;continue;}if($assertType(amn,DD,true)[1]||$assertType(amn,CV,true)[1]){$s=865;continue;}if($assertType(amn,DA,true)[1]){$s=866;continue;}if($assertType(amn,DC,true)[1]){$s=867;continue;}if($assertType(amn,DB,true)[1]){$s=868;continue;}if($assertType(amn,CU,true)[1]){$s=869;continue;}$s=870;continue;case 864:amp=amn.$val;if(!((amp.Kind()===18))){$panic(new $String("unexpected basic type"));}amw=e[0].formatExpr("0",new CP([]));$s=872;case 872:if($c){$c=false;amw=amw.$blk();}if(amw&&amw.$blk!==undefined){break s;}amx=amw;$s=873;case 873:return amx;case 865:amq=amn;amy=e[0].typeName(h);$s=874;case 874:if($c){$c=false;amy=amy.$blk();}if(amy&&amy.$blk!==undefined){break s;}amz=new $String(amy);ana=e[0].formatExpr("%s.nil",new CP([amz]));$s=875;case 875:if($c){$c=false;ana=ana.$blk();}if(ana&&ana.$blk!==undefined){break s;}anb=ana;$s=876;case 876:return anb;case 866:amr=amn.$val;anc=e[0].formatExpr("$chanNil",new CP([]));$s=877;case 877:if($c){$c=false;anc=anc.$blk();}if(anc&&anc.$blk!==undefined){break s;}and=anc;$s=878;case 878:return and;case 867:ams=amn.$val;ane=e[0].formatExpr("false",new CP([]));$s=879;case 879:if($c){$c=false;ane=ane.$blk();}if(ane&&ane.$blk!==undefined){break s;}anf=ane;$s=880;case 880:return anf;case 868:amt=amn.$val;ang=e[0].formatExpr("$ifaceNil",new CP([]));$s=881;case 881:if($c){$c=false;ang=ang.$blk();}if(ang&&ang.$blk!==undefined){break s;}anh=ang;$s=882;case 882:return anh;case 869:amu=amn.$val;ani=e[0].formatExpr("$throwNilPointerError",new CP([]));$s=883;case 883:if($c){$c=false;ani=ani.$blk();}if(ani&&ani.$blk!==undefined){break s;}anj=ani;$s=884;case 884:return anj;case 870:amv=amn;ank=A.Sprintf("unexpected type: %T",new CP([amv]));$s=885;case 885:if($c){$c=false;ank=ank.$blk();}if(ank&&ank.$blk!==undefined){break s;}$panic(new $String(ank));case 871:$s=849;continue;case 848:aly=alt;anl=A.Sprintf("Unhandled object: %T\n",new CP([aly]));$s=886;case 886:if($c){$c=false;anl=anl.$blk();}if(anl&&anl.$blk!==undefined){break s;}$panic(new $String(anl));case 849:$s=81;continue;case 79:cz=cn;anm=e[0].formatExpr("",new CP([]));$s=887;case 887:if($c){$c=false;anm=anm.$blk();}if(anm&&anm.$blk!==undefined){break s;}ann=anm;$s=888;case 888:return ann;case 80:da=cn;ano=A.Sprintf("Unhandled expression: %T\n",new CP([da]));$s=889;case 889:if($c){$c=false;ano=ano.$blk();}if(ano&&ano.$blk!==undefined){break s;}$panic(new $String(ano));case 81:$s=-1;return EQ.nil;}return;}var $f={$blk:BP.ptr.prototype.translateExpr,$c:true,$r,aa,aaa,aab,aac,aad,aae,aaf,aag,aah,aai,aaj,aak,aal,aam,aan,aao,aap,aaq,aar,aas,aat,aau,aav,aaw,aax,aay,aaz,ab,aba,abb,abc,abd,abe,abf,abg,abh,abi,abj,abk,abl,abm,abn,abo,abp,abq,abr,abs,abt,abu,abv,abw,abx,aby,abz,ac,aca,acb,acc,acd,ace,acf,acg,ach,aci,acj,ack,acl,acm,acn,aco,acp,acq,acr,acs,act,acu,acv,acw,acx,acy,acz,ad,ada,adb,adc,add,ade,adf,adg,adh,adi,adj,adk,adl,adm,adn,ado,adp,adq,adr,ads,adt,adu,adv,adw,adx,ady,adz,ae,aea,aeb,aec,aed,aee,aef,aeg,aeh,aei,aej,aek,ael,aem,aen,aeo,aep,aeq,aer,aes,aet,aeu,aev,aew,aex,aey,aez,af,afa,afb,afc,afd,afe,aff,afg,afh,afi,afj,afk,afl,afm,afn,afo,afp,afq,afr,afs,aft,afu,afv,afw,afx,afy,afz,ag,aga,agb,agc,agd,age,agf,agg,agh,agi,agj,agk,agl,agm,agn,ago,agp,agq,agr,ags,agt,agu,agv,agw,agx,agy,agz,ah,aha,ahb,ahc,ahd,ahe,ahf,ahg,ahh,ahi,ahj,ahk,ahl,ahm,ahn,aho,ahp,ahq,ahr,ahs,aht,ahu,ahv,ahw,ahx,ahy,ahz,ai,aia,aib,aic,aid,aie,aif,aig,aih,aii,aij,aik,ail,aim,ain,aio,aip,aiq,air,ais,ait,aiu,aiv,aiw,aix,aiy,aiz,aj,aja,ajb,ajc,ajd,aje,ajf,ajg,ajh,aji,ajj,ajk,ajl,ajm,ajn,ajo,ajp,ajq,ajr,ajs,ajt,aju,ajv,ajw,ajx,ajy,ajz,ak,aka,akb,akc,akd,ake,akf,akg,akh,aki,akj,akk,akl,akm,akn,ako,akp,akq,akr,aks,akt,aku,akv,akw,akx,aky,akz,al,ala,alb,alc,ald,ale,alf,alg,alh,ali,alj,alk,all,alm,aln,alo,alp,alq,alr,als,alt,alu,alv,alw,alx,aly,alz,am,ama,amb,amc,amd,ame,amf,amg,amh,ami,amj,amk,aml,amm,amn,amo,amp,amq,amr,ams,amt,amu,amv,amw,amx,amy,amz,an,ana,anb,anc,and,ane,anf,ang,anh,ani,anj,ank,anl,anm,ann,ano,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,hw,hx,hy,hz,i,ia,ib,ic,id,ie,ig,ih,ii,ij,ik,il,im,io,ip,iq,ir,is,it,iu,iv,iw,ix,iy,iz,j,ja,jb,jc,jd,je,jf,jg,jh,ji,jj,jk,jl,jm,jn,jo,jp,jq,jr,js,jt,ju,jv,jw,jx,jy,jz,k,ka,kb,kc,kd,ke,kf,kg,kh,ki,kj,kk,kl,km,kn,ko,kp,kq,kr,ks,kt,ku,kv,kw,kx,ky,kz,l,la,lb,lc,ld,le,lf,lg,lh,li,lj,lk,ll,lm,ln,lo,lp,lq,lr,ls,lt,lu,lv,lw,lx,ly,lz,m,ma,mb,mc,md,me,mf,mg,mh,mi,mj,mk,ml,mm,mn,mo,mp,mq,mr,ms,mt,mu,mv,mw,mx,my,mz,n,na,nb,nc,nd,ne,nf,ng,nh,ni,nj,nk,nl,nm,nn,no,np,nq,nr,ns,nt,nu,nv,nw,nx,ny,nz,o,oa,ob,oc,od,oe,of,og,oh,oi,oj,ok,ol,om,on,oo,op,oq,or,os,ot,ou,ov,ow,ox,oy,oz,p,pa,pb,pc,pd,pe,pf,pg,ph,pi,pj,pk,pl,pm,pn,po,pp,pq,pr,ps,pt,pu,pv,pw,px,py,pz,q,qa,qb,qc,qd,qe,qf,qg,qh,qi,qj,qk,ql,qm,qn,qo,qp,qq,qr,qs,qt,qu,qv,qw,qx,qy,qz,r,ra,rb,rc,rd,re,rf,rg,rh,ri,rj,rk,rl,rm,rn,ro,rp,rq,rr,rs,rt,ru,rv,rw,rx,ry,rz,s,sa,sb,sc,sd,se,sf,sg,sh,si,sj,sk,sl,sm,sn,so,sp,sq,sr,ss,st,su,sv,sw,sx,sy,sz,t,ta,tb,tc,td,te,tf,tg,th,ti,tj,tk,tl,tm,tn,to,tp,tq,tr,ts,tt,tu,tv,tw,tx,ty,tz,u,ua,ub,uc,ud,ue,uf,ug,uh,ui,uj,uk,ul,um,un,uo,up,uq,ur,us,ut,uu,uv,uw,ux,uy,uz,v,va,vb,vc,vd,ve,vf,vg,vh,vi,vj,vk,vl,vm,vn,vo,vp,vq,vr,vs,vt,vu,vv,vw,vx,vy,vz,w,wa,wb,wc,wd,we,wf,wg,wh,wi,wj,wk,wl,wm,wn,wo,wp,wq,wr,ws,wt,wu,wv,ww,wx,wy,wz,x,xa,xb,xc,xd,xe,xf,xg,xh,xi,xj,xk,xl,xm,xn,xo,xp,xq,xr,xs,xt,xu,xv,xw,xx,xy,xz,y,ya,yb,yc,yd,ye,yf,yg,yh,yi,yj,yk,yl,ym,yn,yo,yp,yq,yr,ys,yt,yu,yv,yw,yx,yy,yz,z,za,zb,zc,zd,ze,zf,zg,zh,zi,zj,zk,zl,zm,zn,zo,zp,zq,zr,zs,zt,zu,zv,zw,zx,zy,zz,$s};return $f;};BP.prototype.translateExpr=function(b){return this.$val.translateExpr(b);};BP.ptr.prototype.translateCall=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=this;f=e.translateArgs(c,b.Args,new L.Pos(b.Ellipsis).IsValid());$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if((h=$mapIndex(e.FuncInfo.Blocking,J.Node.keyFor(b)),h!==undefined?h.v:false)){$s=2;continue;}$s=3;continue;case 2:i=e.caseCounter;e.caseCounter=e.caseCounter+(1)>>0;j="$r";if(!((c.Results().Len()===0))){$s=4;continue;}$s=5;continue;case 4:k=e.newVariable("_r");$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;case 5:$r=e.Printf("%[1]s = %[2]s(%[3]s); /* */ $s = %[4]d; case %[4]d: if($c) { $c = false; %[1]s = %[1]s.$blk(); } if (%[1]s && %[1]s.$blk !== undefined) { break s; }",new CP([new $String(j),d,new $String(F.Join(g,", ")),new $Int(i)]));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((c.Results().Len()===0))){$s=8;continue;}$s=9;continue;case 8:l=e.formatExpr("%s",new CP([new $String(j)]));$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=11;case 11:return m;case 9:n=e.formatExpr("",new CP([]));$s=12;case 12:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;$s=13;case 13:return o;case 3:p=e.formatExpr("%s(%s)",new CP([d,new $String(F.Join(g,", "))]));$s=14;case 14:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=15;case 15:return q;}return;}var $f={$blk:BP.ptr.prototype.translateCall,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};BP.prototype.translateCall=function(b,c,d){return this.$val.translateCall(b,c,d);};BP.ptr.prototype.delegatedCall=function(b){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=EQ.nil;d=EQ.nil;e=this;f=false;g=false;h=b.Fun;if($assertType(h,DE,true)[1]){$s=1;continue;}if($assertType(h,EY,true)[1]){$s=2;continue;}$s=3;continue;case 1:i=h.$val;k=$assertType((l=$mapIndex(e.pkgCtx.Info.Info.Uses,DE.keyFor(i)),l!==undefined?l.v:$ifaceNil),GD,true);f=k[1];$s=3;continue;case 2:j=h.$val;n=(m=$mapIndex(e.pkgCtx.Info.Info.Uses,DE.keyFor(j.Sel)),m!==undefined?m.v:$ifaceNil).Pkg();$s=4;case 4:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=U.IsJsPackage(n);$s=5;case 5:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}g=o;case 3:p=e.pkgCtx.Info.Info.TypeOf(b.Fun);$s=6;case 6:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p.Underlying();$s=7;case 7:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=$assertType(q,CU);s=new BH.ptr(r);t=e.translateArgs(r,b.Args,new L.Pos(b.Ellipsis).IsValid());$s=8;case 8:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;if(!f&&!g){$s=9;continue;}$s=10;continue;case 9:v=e.translateExpr(b.Fun);$s=11;case 11:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}c=v;w=e.formatExpr("[%s]",new CP([new $String(F.Join(u,", "))]));$s=12;case 12:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}d=w;x=c;y=d;c=x;d=y;$s=-1;return[c,d];case 10:z=$makeSlice(CQ,b.Args.$length);aa=$makeSlice(CT,b.Args.$length);ab=b.Ellipsis;ac=b.Args;ad=0;case 13:if(!(ad=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+ae]=ag);ah=ag;ai=$clone(s,BH).Param(ae,new L.Pos(ab).IsValid());$s=16;case 16:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai;ak=e.newIdent(ah,aj);$s=17;case 17:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}((ae<0||ae>=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+ae]=ak);ad++;$s=13;continue;case 14:al=new J.CallExpr.ptr(b.Fun,0,aa,b.Ellipsis,0);am=e.formatExpr("function(%s) { %e; }",new CP([new $String(F.Join(z,", ")),al]));$s=18;case 18:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}c=am;an=e.formatExpr("[%s]",new CP([new $String(F.Join(u,", "))]));$s=19;case 19:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}d=an;ao=c;ap=d;c=ao;d=ap;$s=-1;return[c,d];}return;}var $f={$blk:BP.ptr.prototype.delegatedCall,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BP.prototype.delegatedCall=function(b){return this.$val.delegatedCall(b);};BP.ptr.prototype.makeReceiver=function(b){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=c.pkgCtx.SelectionOf(b);e=d[0];f=e.Obj();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f.Exported();$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(!g){$s=1;continue;}$s=2;continue;case 1:i=e.Obj();$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;(c.pkgCtx.dependencies||$throwRuntimeError("assignment to entry in nil map")).set(M.Object.keyFor(h),{k:h,v:true});case 2:j=b.X;k=e.Recv();$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;m=e.Index();$s=9;case 9:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if(m.$length>1){$s=7;continue;}$s=8;continue;case 7:o=e.Index();$s=10;case 10:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=e.Index();$s=11;case 11:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}n=$subslice(o,0,(p.$length-1>>0));q=0;case 12:if(!(q=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+q]);s=$assertType(l,CV,true);t=s[0];u=s[1];if(u){l=t.Elem();}v=l.Underlying();$s=14;case 14:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=$assertType(v,CW);l=w.Field(r).object.Type();q++;$s=12;continue;case 13:x=new J.SelectorExpr.ptr(j,J.NewIdent("o"));z=e.Recv();$s=15;case 15:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=e.Index();$s=16;case 16:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=e.Index();$s=17;case 17:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}y=x;(c.pkgCtx.additionalSelections||$throwRuntimeError("assignment to entry in nil map")).set(EY.keyFor(y),{k:y,v:new BO.ptr(0,z,$subslice(aa,0,(ab.$length-1>>0)),$ifaceNil,l)});j=c.setType(x,l);case 8:ad=l.Underlying();$s=18;case 18:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,CV,true);ae=ac[1];af=e.Obj();$s=19;case 19:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=af.Type();$s=20;case 20:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=$assertType(ag,CU).Recv();$s=21;case 21:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah.object.Type();$s=22;case 22:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai;ak=$assertType(aj,CV,true);al=ak[1];if(!ae&&al){l=M.NewPointer(l);j=c.setType(new J.UnaryExpr.ptr(0,17,j),l);}if(ae&&!al){j=c.setType(j,aj);}am=c.translateImplicitConversionWithCloning(j,aj);$s=23;case 23:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am;ao=AZ(l);$s=26;case 26:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}if(ao){$s=24;continue;}$s=25;continue;case 24:ap=c.typeName(aj);$s=27;case 27:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=new $String(ap);ar=an;as=c.formatExpr("new %s(%s)",new CP([aq,ar]));$s=28;case 28:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}an=as;case 25:$s=-1;return an;}return;}var $f={$blk:BP.ptr.prototype.makeReceiver,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BP.prototype.makeReceiver=function(b){return this.$val.makeReceiver(b);};BP.ptr.prototype.translateBuiltin=function(b,c,d,e){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e});$s=$s||0;s:while(true){switch($s){case 0:f=this;g=b;if(g===("new")){$s=2;continue;}if(g===("make")){$s=3;continue;}if(g===("len")){$s=4;continue;}if(g===("cap")){$s=5;continue;}if(g===("panic")){$s=6;continue;}if(g===("append")){$s=7;continue;}if(g===("delete")){$s=8;continue;}if(g===("copy")){$s=9;continue;}if(g===("print")){$s=10;continue;}if(g===("println")){$s=11;continue;}if(g===("complex")){$s=12;continue;}if(g===("real")){$s=13;continue;}if(g===("imag")){$s=14;continue;}if(g===("recover")){$s=15;continue;}if(g===("close")){$s=16;continue;}$s=17;continue;case 2:h=$assertType(c.Results().At(0).object.Type(),CV);if(!(f.pkgCtx.Info.Pkg.Path()==="syscall")){i=false;$s=21;continue s;}j=h.Elem().Underlying();$s=22;case 22:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}l=M.Identical(j,(k=M.Typ,(12>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+12])));$s=23;case 23:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}i=l;case 21:if(i){$s=19;continue;}$s=20;continue;case 19:m=f.formatExpr("new Uint8Array(8)",new CP([]));$s=24;case 24:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=25;case 25:return n;case 20:p=h.Elem().Underlying();$s=26;case 26:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p;if($assertType(o,CW,true)[1]||$assertType(o,CZ,true)[1]){$s=27;continue;}$s=28;continue;case 27:q=f.zeroValue(h.Elem());$s=30;case 30:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;s=f.formatExpr("%e",new CP([r]));$s=31;case 31:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;$s=32;case 32:return t;case 28:u=f.zeroValue(h.Elem());$s=33;case 33:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;w=f.typeName(h);$s=34;case 34:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=new $String(w);y=f.formatExpr("$newDataPointer(%e, %s)",new CP([v,x]));$s=35;case 35:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;$s=36;case 36:return z;case 29:$s=18;continue;case 3:ab=f.pkgCtx.Info.Info.TypeOf((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]));$s=37;case 37:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab.Underlying();$s=38;case 38:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}aa=ac;if($assertType(aa,DD,true)[1]){$s=39;continue;}if($assertType(aa,DC,true)[1]){$s=40;continue;}if($assertType(aa,DA,true)[1]){$s=41;continue;}$s=42;continue;case 39:ad=aa.$val;ah=f.pkgCtx.Info.Info.TypeOf((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]));$s=44;case 44:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=f.typeName(ah);$s=45;case 45:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai;if(d.$length===3){$s=46;continue;}$s=47;continue;case 46:ak=f.formatExpr("$makeSlice(%s, %f, %f)",new CP([new $String(aj),(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1]),(2>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+2])]));$s=48;case 48:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak;$s=49;case 49:return al;case 47:am=f.formatExpr("$makeSlice(%s, %f)",new CP([new $String(aj),(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1])]));$s=50;case 50:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am;$s=51;case 51:return an;case 40:ae=aa.$val;if((d.$length===2)&&$interfaceIsEqual((ao=$mapIndex(f.pkgCtx.Info.Info.Types,J.Expr.keyFor((1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1]))),ao!==undefined?ao.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value,$ifaceNil)){$s=52;continue;}$s=53;continue;case 52:ap=f.formatExpr("((%1f < 0 || %1f > 2147483647) ? $throwRuntimeError(\"makemap: size out of range\") : new $global.Map())",new CP([(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1])]));$s=54;case 54:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap;$s=55;case 55:return aq;case 53:ar=f.formatExpr("new $global.Map()",new CP([]));$s=56;case 56:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=ar;$s=57;case 57:return as;case 41:af=aa.$val;at="0";if(d.$length===2){$s=58;continue;}$s=59;continue;case 58:au=f.formatExpr("%f",new CP([(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1])]));$s=60;case 60:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=au.String();$s=61;case 61:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}at=av;case 59:aw=f.pkgCtx.Info.Info.TypeOf((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]));$s=62;case 62:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ax=aw.Underlying();$s=63;case 63:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=$assertType(ax,DA).Elem();$s=64;case 64:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}az=f.typeName(ay);$s=65;case 65:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=new $String(az);bb=new $String(at);bc=f.formatExpr("new $Chan(%s, %s)",new CP([ba,bb]));$s=66;case 66:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;$s=67;case 67:return bd;case 42:ag=aa;be=A.Sprintf("Unhandled make type: %T\n",new CP([ag]));$s=68;case 68:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}$panic(new $String(be));case 43:$s=18;continue;case 4:bg=f.pkgCtx.Info.Info.TypeOf((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]));$s=69;case 69:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=bg.Underlying();$s=70;case 70:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bf=bh;if($assertType(bf,CY,true)[1]){$s=71;continue;}if($assertType(bf,DD,true)[1]){$s=72;continue;}if($assertType(bf,CV,true)[1]){$s=73;continue;}if($assertType(bf,DC,true)[1]){$s=74;continue;}if($assertType(bf,DA,true)[1]){$s=75;continue;}$s=76;continue;case 71:bi=bf.$val;bo=f.formatExpr("%e.length",new CP([(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])]));$s=78;case 78:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=bo;$s=79;case 79:return bp;case 72:bj=bf.$val;bq=f.formatExpr("%e.$length",new CP([(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])]));$s=80;case 80:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}br=bq;$s=81;case 81:return br;case 73:bk=bf.$val;bs=f.formatExpr("(%e, %d)",new CP([(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]),$assertType(bk.Elem(),CZ).Len()]));$s=82;case 82:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}bt=bs;$s=83;case 83:return bt;case 74:bl=bf.$val;bu=f.formatExpr("(%e ? %e.size : 0)",new CP([(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]),(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])]));$s=84;case 84:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}bv=bu;$s=85;case 85:return bv;case 75:bm=bf.$val;bw=f.formatExpr("%e.$buffer.length",new CP([(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])]));$s=86;case 86:if($c){$c=false;bw=bw.$blk();}if(bw&&bw.$blk!==undefined){break s;}bx=bw;$s=87;case 87:return bx;case 76:bn=bf;by=A.Sprintf("Unhandled len type: %T\n",new CP([bn]));$s=88;case 88:if($c){$c=false;by=by.$blk();}if(by&&by.$blk!==undefined){break s;}$panic(new $String(by));case 77:$s=18;continue;case 5:ca=f.pkgCtx.Info.Info.TypeOf((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]));$s=89;case 89:if($c){$c=false;ca=ca.$blk();}if(ca&&ca.$blk!==undefined){break s;}cb=ca.Underlying();$s=90;case 90:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}bz=cb;if($assertType(bz,DD,true)[1]||$assertType(bz,DA,true)[1]){$s=91;continue;}if($assertType(bz,CV,true)[1]){$s=92;continue;}$s=93;continue;case 91:cc=bz;cf=f.formatExpr("%e.$capacity",new CP([(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])]));$s=95;case 95:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}cg=cf;$s=96;case 96:return cg;case 92:cd=bz.$val;ch=f.formatExpr("(%e, %d)",new CP([(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]),$assertType(cd.Elem(),CZ).Len()]));$s=97;case 97:if($c){$c=false;ch=ch.$blk();}if(ch&&ch.$blk!==undefined){break s;}ci=ch;$s=98;case 98:return ci;case 93:ce=bz;cj=A.Sprintf("Unhandled cap type: %T\n",new CP([ce]));$s=99;case 99:if($c){$c=false;cj=cj.$blk();}if(cj&&cj.$blk!==undefined){break s;}$panic(new $String(cj));case 94:$s=18;continue;case 6:ck=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]);cl=M.NewInterface(EU.nil,EV.nil);$s=100;case 100:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}cm=cl;cn=f.translateImplicitConversion(ck,cm);$s=101;case 101:if($c){$c=false;cn=cn.$blk();}if(cn&&cn.$blk!==undefined){break s;}co=cn;cp=f.formatExpr("$panic(%s)",new CP([co]));$s=102;case 102:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}cq=cp;$s=103;case 103:return cq;case 7:if(e||(d.$length===1)){$s=104;continue;}$s=105;continue;case 104:cr=f.translateArgs(c,d,e);$s=106;case 106:if($c){$c=false;cr=cr.$blk();}if(cr&&cr.$blk!==undefined){break s;}cs=cr;ct=f.formatExpr("$appendSlice(%s, %s)",new CP([new $String((0>=cs.$length?($throwRuntimeError("index out of range"),undefined):cs.$array[cs.$offset+0])),new $String((1>=cs.$length?($throwRuntimeError("index out of range"),undefined):cs.$array[cs.$offset+1]))]));$s=107;case 107:if($c){$c=false;ct=ct.$blk();}if(ct&&ct.$blk!==undefined){break s;}cu=ct;$s=108;case 108:return cu;case 105:cv=c.Results().At(0).object.Type().Underlying();$s=109;case 109:if($c){$c=false;cv=cv.$blk();}if(cv&&cv.$blk!==undefined){break s;}cw=$assertType(cv,DD);cx=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]);cy=f.translateExprSlice($subslice(d,1),cw.Elem());$s=110;case 110:if($c){$c=false;cy=cy.$blk();}if(cy&&cy.$blk!==undefined){break s;}cz=F.Join(cy,", ");$s=111;case 111:if($c){$c=false;cz=cz.$blk();}if(cz&&cz.$blk!==undefined){break s;}da=new $String(cz);db=f.formatExpr("$append(%e, %s)",new CP([cx,da]));$s=112;case 112:if($c){$c=false;db=db.$blk();}if(db&&db.$blk!==undefined){break s;}dc=db;$s=113;case 113:return dc;case 8:dd=f.expandTupleArgs(d);$s=114;case 114:if($c){$c=false;dd=dd.$blk();}if(dd&&dd.$blk!==undefined){break s;}d=dd;de=f.pkgCtx.Info.Info.TypeOf((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]));$s=115;case 115:if($c){$c=false;de=de.$blk();}if(de&&de.$blk!==undefined){break s;}df=de.Underlying();$s=116;case 116:if($c){$c=false;df=df.$blk();}if(df&&df.$blk!==undefined){break s;}dg=$assertType(df,DC).Key();$s=117;case 117:if($c){$c=false;dg=dg.$blk();}if(dg&&dg.$blk!==undefined){break s;}dh=dg;di=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]);dj=f.typeName(dh);$s=118;case 118:if($c){$c=false;dj=dj.$blk();}if(dj&&dj.$blk!==undefined){break s;}dk=new $String(dj);dl=f.translateImplicitConversion((1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1]),dh);$s=119;case 119:if($c){$c=false;dl=dl.$blk();}if(dl&&dl.$blk!==undefined){break s;}dm=dl;dn=f.formatExpr("$mapDelete(%1e, %2s.keyFor(%3s))",new CP([di,dk,dm]));$s=120;case 120:if($c){$c=false;dn=dn.$blk();}if(dn&&dn.$blk!==undefined){break s;}dp=dn;$s=121;case 121:return dp;case 9:dq=f.expandTupleArgs(d);$s=122;case 122:if($c){$c=false;dq=dq.$blk();}if(dq&&dq.$blk!==undefined){break s;}d=dq;ds=f.pkgCtx.Info.Info.TypeOf((1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1]));$s=123;case 123:if($c){$c=false;ds=ds.$blk();}if(ds&&ds.$blk!==undefined){break s;}dt=ds.Underlying();$s=124;case 124:if($c){$c=false;dt=dt.$blk();}if(dt&&dt.$blk!==undefined){break s;}dr=$assertType(dt,CY,true);du=dr[0];dv=dr[1];if(dv&&AW(du)){$s=125;continue;}$s=126;continue;case 125:dw=f.formatExpr("$copyString(%e, %e)",new CP([(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]),(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1])]));$s=127;case 127:if($c){$c=false;dw=dw.$blk();}if(dw&&dw.$blk!==undefined){break s;}dx=dw;$s=128;case 128:return dx;case 126:dy=f.formatExpr("$copySlice(%e, %e)",new CP([(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]),(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1])]));$s=129;case 129:if($c){$c=false;dy=dy.$blk();}if(dy&&dy.$blk!==undefined){break s;}dz=dy;$s=130;case 130:return dz;case 10:ea=f.expandTupleArgs(d);$s=131;case 131:if($c){$c=false;ea=ea.$blk();}if(ea&&ea.$blk!==undefined){break s;}d=ea;eb=f.translateExprSlice(d,$ifaceNil);$s=132;case 132:if($c){$c=false;eb=eb.$blk();}if(eb&&eb.$blk!==undefined){break s;}ec=F.Join(eb,", ");$s=133;case 133:if($c){$c=false;ec=ec.$blk();}if(ec&&ec.$blk!==undefined){break s;}ed=new $String(ec);ee=f.formatExpr("$print(%s)",new CP([ed]));$s=134;case 134:if($c){$c=false;ee=ee.$blk();}if(ee&&ee.$blk!==undefined){break s;}ef=ee;$s=135;case 135:return ef;case 11:eg=f.expandTupleArgs(d);$s=136;case 136:if($c){$c=false;eg=eg.$blk();}if(eg&&eg.$blk!==undefined){break s;}d=eg;eh=f.translateExprSlice(d,$ifaceNil);$s=137;case 137:if($c){$c=false;eh=eh.$blk();}if(eh&&eh.$blk!==undefined){break s;}ei=F.Join(eh,", ");$s=138;case 138:if($c){$c=false;ei=ei.$blk();}if(ei&&ei.$blk!==undefined){break s;}ej=new $String(ei);ek=f.formatExpr("console.log(%s)",new CP([ej]));$s=139;case 139:if($c){$c=false;ek=ek.$blk();}if(ek&&ek.$blk!==undefined){break s;}el=ek;$s=140;case 140:return el;case 12:em=f.translateArgs(c,d,e);$s=141;case 141:if($c){$c=false;em=em.$blk();}if(em&&em.$blk!==undefined){break s;}en=em;eo=f.typeName(c.Results().At(0).object.Type());$s=142;case 142:if($c){$c=false;eo=eo.$blk();}if(eo&&eo.$blk!==undefined){break s;}ep=new $String(eo);eq=new $String((0>=en.$length?($throwRuntimeError("index out of range"),undefined):en.$array[en.$offset+0]));er=new $String((1>=en.$length?($throwRuntimeError("index out of range"),undefined):en.$array[en.$offset+1]));es=f.formatExpr("new %s(%s, %s)",new CP([ep,eq,er]));$s=143;case 143:if($c){$c=false;es=es.$blk();}if(es&&es.$blk!==undefined){break s;}et=es;$s=144;case 144:return et;case 13:eu=f.formatExpr("%e.$real",new CP([(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])]));$s=145;case 145:if($c){$c=false;eu=eu.$blk();}if(eu&&eu.$blk!==undefined){break s;}ev=eu;$s=146;case 146:return ev;case 14:ew=f.formatExpr("%e.$imag",new CP([(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])]));$s=147;case 147:if($c){$c=false;ew=ew.$blk();}if(ew&&ew.$blk!==undefined){break s;}ex=ew;$s=148;case 148:return ex;case 15:ey=f.formatExpr("$recover()",new CP([]));$s=149;case 149:if($c){$c=false;ey=ey.$blk();}if(ey&&ey.$blk!==undefined){break s;}ez=ey;$s=150;case 150:return ez;case 16:fa=f.formatExpr("$close(%e)",new CP([(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])]));$s=151;case 151:if($c){$c=false;fa=fa.$blk();}if(fa&&fa.$blk!==undefined){break s;}fb=fa;$s=152;case 152:return fb;case 17:fc=A.Sprintf("Unhandled builtin: %s\n",new CP([new $String(b)]));$s=153;case 153:if($c){$c=false;fc=fc.$blk();}if(fc&&fc.$blk!==undefined){break s;}$panic(new $String(fc));case 18:case 1:$s=-1;return EQ.nil;}return;}var $f={$blk:BP.ptr.prototype.translateBuiltin,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BP.prototype.translateBuiltin=function(b,c,d,e){return this.$val.translateBuiltin(b,c,d,e);};BP.ptr.prototype.identifierConstant=function(b){var{b,c,d,e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;e=(d=$mapIndex(c.pkgCtx.Info.Info.Types,J.Expr.keyFor(b)),d!==undefined?d.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value;if($interfaceIsEqual(e,$ifaceNil)){$s=-1;return["",false];}f=K.StringVal(e);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(g.length===0){$s=-1;return["",false];}h=g;i=0;while(true){if(!(i=97&&l<=122)||(l>=65&&l<=90)||(k>0&&l>=48&&l<=57)||(l===95)||(l===36))){$s=-1;return["",false];}i+=j[1];}$s=-1;return[g,true];}return;}var $f={$blk:BP.ptr.prototype.identifierConstant,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,$s};return $f;};BP.prototype.identifierConstant=function(b){return this.$val.identifierConstant(b);};BP.ptr.prototype.translateExprSlice=function(b,c){var{b,c,d,e,f,g,h,i,j,k,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=$makeSlice(CQ,b.$length);f=b;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=d.translateImplicitConversion(i,c);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j.String();$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}((h<0||h>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h]=k);g++;$s=1;continue;case 2:$s=-1;return e;}return;}var $f={$blk:BP.ptr.prototype.translateExprSlice,$c:true,$r,b,c,d,e,f,g,h,i,j,k,$s};return $f;};BP.prototype.translateExprSlice=function(b,c){return this.$val.translateExprSlice(b,c);};BP.ptr.prototype.translateConversion=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:b=[b];d=[d];e=[e];f=[f];g=[g];e[0]=this;h=e[0].pkgCtx.Info.Info.TypeOf(b[0]);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=M.Identical(i,c);$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=2;continue;}$s=3;continue;case 2:k=e[0].translateExpr(b[0]);$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=6;case 6:return l;case 3:if(e[0].pkgCtx.Info.Pkg.Path()==="reflect"||e[0].pkgCtx.Info.Pkg.Path()==="internal/reflectlite"){$s=7;continue;}$s=8;continue;case 7:m=$assertType(b[0],GB,true);n=m[0];o=m[1];if(!(o)){p=false;$s=11;continue s;}q=e[0].pkgCtx.Info.Info.TypeOf(n.Fun);$s=12;case 12:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}s=M.Identical(q,(r=M.Typ,(18>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+18])));$s=13;case 13:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}p=s;case 11:if(p){$s=9;continue;}$s=10;continue;case 9:t=$assertType(c,CV,true);u=t[0];v=t[1];if(v){$s=14;continue;}$s=15;continue;case 14:w=$assertType(u.Elem(),DK,true);x=w[0];y=w[1];if(y){$s=16;continue;}$s=17;continue;case 16:z=x.Obj().object.Name();if(z===("arrayType")||z===("chanType")||z===("funcType")||z===("interfaceType")||z===("mapType")||z===("ptrType")||z===("sliceType")||z===("structType")){$s=19;continue;}$s=20;continue;case 19:ab=e[0].formatExpr("%e.kindType",new CP([(aa=n.Args,(0>=aa.$length?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+0]))]));$s=22;case 22:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;$s=23;case 23:return ac;case 20:ad=e[0].translateExpr(b[0]);$s=24;case 24:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;$s=25;case 25:return ae;case 21:case 18:case 17:case 15:case 10:case 8:ag=c.Underlying();$s=26;case 26:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;if($assertType(af,CY,true)[1]){$s=27;continue;}if($assertType(af,DD,true)[1]){$s=28;continue;}if($assertType(af,CV,true)[1]){$s=29;continue;}if($assertType(af,DB,true)[1]){$s=30;continue;}$s=31;continue;case 27:ah=af.$val;if(AU(ah)){$s=33;continue;}if(AT(ah)){$s=34;continue;}if(AS(ah)){$s=35;continue;}if(AW(ah)){$s=36;continue;}if((ah.Kind()===18)){$s=37;continue;}$s=38;continue;case 33:al=i.Underlying();$s=39;case 39:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=$assertType(al,CY);if(AQ(ah)){$s=41;continue;}if(AQ(am)){$s=42;continue;}if(AT(am)){$s=43;continue;}ao=M.Identical(i,(an=M.Typ,(18>=an.$length?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+18])));$s=47;case 47:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}if(ao){$s=44;continue;}$s=45;continue;case 41:if(!AQ(am)){$s=48;continue;}$s=49;continue;case 48:if(am.Kind()===12){$s=50;continue;}$s=51;continue;case 50:ap=e[0].typeName(c);$s=52;case 52:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=new $String(ap);ar=b[0];as=e[0].formatExpr("new %1s(0, %2e.constructor === Number ? %2e : 1)",new CP([aq,ar]));$s=53;case 53:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=as;$s=54;case 54:return at;case 51:au=e[0].typeName(c);$s=55;case 55:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=new $String(au);aw=b[0];ax=e[0].formatExpr("new %s(0, %e)",new CP([av,aw]));$s=56;case 56:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax;$s=57;case 57:return ay;case 49:az=e[0].typeName(c);$s=58;case 58:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=new $String(az);bb=b[0];bc=e[0].formatExpr("new %1s(%2h, %2l)",new CP([ba,bb]));$s=59;case 59:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;$s=60;case 60:return bd;case 42:if(!AX(ah)&&!AX(am)){$s=61;continue;}$s=62;continue;case 61:be=e[0].formatParenExpr("%1l + ((%1h >> 31) * 4294967296)",new CP([b[0]]));$s=63;case 63:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bf=e[0].fixNumber(be,ah);$s=64;case 64:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bg=bf;$s=65;case 65:return bg;case 62:bh=e[0].translateExpr(b[0]);$s=66;case 66:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bi=bh;bj=e[0].formatExpr("%s.$low",new CP([bi]));$s=67;case 67:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bk=e[0].fixNumber(bj,ah);$s=68;case 68:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}bl=bk;$s=69;case 69:return bl;case 43:bm=e[0].formatParenExpr("%e >> 0",new CP([b[0]]));$s=70;case 70:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bn=bm;$s=71;case 71:return bn;case 44:bo=e[0].translateExpr(b[0]);$s=72;case 72:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=bo;$s=73;case 73:return bp;case 45:bq=e[0].translateExpr(b[0]);$s=74;case 74:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}br=e[0].fixNumber(bq,ah);$s=75;case 75:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}bs=br;$s=76;case 76:return bs;case 46:case 40:$s=38;continue;case 34:if(!(ah.Kind()===13)){bt=false;$s=79;continue s;}bu=i.Underlying();$s=80;case 80:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}bv=$assertType(bu,CY).Kind();$s=81;case 81:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}bt=bv===14;case 79:if(bt){$s=77;continue;}$s=78;continue;case 77:bw=e[0].formatExpr("$fround(%e)",new CP([b[0]]));$s=82;case 82:if($c){$c=false;bw=bw.$blk();}if(bw&&bw.$blk!==undefined){break s;}bx=bw;$s=83;case 83:return bx;case 78:by=e[0].formatExpr("%f",new CP([b[0]]));$s=84;case 84:if($c){$c=false;by=by.$blk();}if(by&&by.$blk!==undefined){break s;}bz=by;$s=85;case 85:return bz;case 35:ca=e[0].typeName(c);$s=86;case 86:if($c){$c=false;ca=ca.$blk();}if(ca&&ca.$blk!==undefined){break s;}cb=new $String(ca);cc=b[0];cd=e[0].formatExpr("new %1s(%2r, %2i)",new CP([cb,cc]));$s=87;case 87:if($c){$c=false;cd=cd.$blk();}if(cd&&cd.$blk!==undefined){break s;}ce=cd;$s=88;case 88:return ce;case 36:cf=e[0].translateExpr(b[0]);$s=89;case 89:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}cg=cf;ci=i.Underlying();$s=90;case 90:if($c){$c=false;ci=ci.$blk();}if(ci&&ci.$blk!==undefined){break s;}ch=ci;if($assertType(ch,CY,true)[1]){$s=91;continue;}if($assertType(ch,DD,true)[1]){$s=92;continue;}$s=93;continue;case 91:cj=ch.$val;if(AQ(cj)){$s=95;continue;}$s=96;continue;case 95:cm=e[0].formatExpr("%s.$low",new CP([cg]));$s=97;case 97:if($c){$c=false;cm=cm.$blk();}if(cm&&cm.$blk!==undefined){break s;}cg=cm;case 96:if(AV(cj)){$s=98;continue;}$s=99;continue;case 98:cn=e[0].formatExpr("$encodeRune(%s)",new CP([cg]));$s=100;case 100:if($c){$c=false;cn=cn.$blk();}if(cn&&cn.$blk!==undefined){break s;}co=cn;$s=101;case 101:return co;case 99:$s=-1;return cg;case 92:ck=ch.$val;cp=ck.Elem().Underlying();$s=104;case 104:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}cr=M.Identical(cp,(cq=M.Typ,(5>=cq.$length?($throwRuntimeError("index out of range"),undefined):cq.$array[cq.$offset+5])));$s=105;case 105:if($c){$c=false;cr=cr.$blk();}if(cr&&cr.$blk!==undefined){break s;}if(cr){$s=102;continue;}$s=103;continue;case 102:cs=e[0].formatExpr("$runesToString(%s)",new CP([cg]));$s=106;case 106:if($c){$c=false;cs=cs.$blk();}if(cs&&cs.$blk!==undefined){break s;}ct=cs;$s=107;case 107:return ct;case 103:cu=e[0].formatExpr("$bytesToString(%s)",new CP([cg]));$s=108;case 108:if($c){$c=false;cu=cu.$blk();}if(cu&&cu.$blk!==undefined){break s;}cv=cu;$s=109;case 109:return cv;case 93:cl=ch;cw=A.Sprintf("Unhandled conversion: %v\n",new CP([cl]));$s=110;case 110:if($c){$c=false;cw=cw.$blk();}if(cw&&cw.$blk!==undefined){break s;}$panic(new $String(cw));case 94:$s=38;continue;case 37:cx=$assertType(b[0],ES,true);cy=cx[0];cz=cx[1];if(cz&&(cy.Op===17)){$s=111;continue;}$s=112;continue;case 111:da=$assertType(cy.X,EW,true);db=da[0];dc=da[1];if(dc){$s=113;continue;}$s=114;continue;case 113:de=e[0].translateConversionToSlice(db.X,M.NewSlice((dd=M.Typ,(8>=dd.$length?($throwRuntimeError("index out of range"),undefined):dd.$array[dd.$offset+8]))));$s=115;case 115:if($c){$c=false;de=de.$blk();}if(de&&de.$blk!==undefined){break s;}df=de;dg=e[0].formatExpr("$sliceToNativeArray(%s)",new CP([df]));$s=116;case 116:if($c){$c=false;dg=dg.$blk();}if(dg&&dg.$blk!==undefined){break s;}dh=dg;$s=117;case 117:return dh;case 114:di=$assertType(cy.X,DE,true);dj=di[0];dk=di[1];if(dk&&dj.Name==="_zero"){$s=118;continue;}$s=119;continue;case 118:dl=e[0].formatExpr("new Uint8Array(0)",new CP([]));$s=120;case 120:if($c){$c=false;dl=dl.$blk();}if(dl&&dl.$blk!==undefined){break s;}dm=dl;$s=121;case 121:return dm;case 119:case 112:dp=e[0].pkgCtx.Info.Info.TypeOf(b[0]);$s=122;case 122:if($c){$c=false;dp=dp.$blk();}if(dp&&dp.$blk!==undefined){break s;}dn=$assertType(dp,CV,true);dq=dn[0];dr=dn[1];if(e[0].pkgCtx.Info.Pkg.Path()==="syscall"&&dr){$s=123;continue;}$s=124;continue;case 123:dt=dq.Elem().Underlying();$s=125;case 125:if($c){$c=false;dt=dt.$blk();}if(dt&&dt.$blk!==undefined){break s;}ds=$assertType(dt,CW,true);f[0]=ds[0];du=ds[1];if(du){$s=126;continue;}$s=127;continue;case 126:dv=e[0].newVariable("_array");$s=128;case 128:if($c){$c=false;dv=dv.$blk();}if(dv&&dv.$blk!==undefined){break s;}d[0]=dv;dw=e[0].newVariable("_struct");$s=129;case 129:if($c){$c=false;dw=dw.$blk();}if(dw&&dw.$blk!==undefined){break s;}g[0]=dw;dx=new $String(d[0]);dy=CB.Sizeof(f[0]);$s=130;case 130:if($c){$c=false;dy=dy.$blk();}if(dy&&dy.$blk!==undefined){break s;}dz=dy;$r=e[0].Printf("%s = new Uint8Array(%d);",new CP([dx,dz]));$s=131;case 131:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=e[0].Delayed((function(b,d,e,f,g){return function $b(){var{ea,eb,ec,ed,ee,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:ea=new $String(g[0]);eb=e[0].translateExpr(b[0]);$s=1;case 1:if($c){$c=false;eb=eb.$blk();}if(eb&&eb.$blk!==undefined){break s;}ec=eb;ed=e[0].loadStruct(d[0],g[0],f[0]);$s=2;case 2:if($c){$c=false;ed=ed.$blk();}if(ed&&ed.$blk!==undefined){break s;}ee=new $String(ed);$r=e[0].Printf("%s = %s, %s;",new CP([ea,ec,ee]));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ea,eb,ec,ed,ee,$s};return $f;};})(b,d,e,f,g));$s=132;case 132:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ea=e[0].formatExpr("%s",new CP([new $String(d[0])]));$s=133;case 133:if($c){$c=false;ea=ea.$blk();}if(ea&&ea.$blk!==undefined){break s;}eb=ea;$s=134;case 134:return eb;case 127:case 124:ec=$assertType(b[0],GB,true);ed=ec[0];ee=ec[1];if(ee){$s=135;continue;}$s=136;continue;case 135:ef=$assertType(ed.Fun,DE,true);eg=ef[0];eh=ef[1];if(eh&&eg.Name==="new"){$s=137;continue;}$s=138;continue;case 137:ek=e[0].pkgCtx.Info.Info.TypeOf((ej=ed.Args,(0>=ej.$length?($throwRuntimeError("index out of range"),undefined):ej.$array[ej.$offset+0])));$s=139;case 139:if($c){$c=false;ek=ek.$blk();}if(ek&&ek.$blk!==undefined){break s;}el=CB.Sizeof(ek);$s=140;case 140:if($c){$c=false;el=el.$blk();}if(el&&el.$blk!==undefined){break s;}em=new $Int((((ei=el,ei.$low+((ei.$high>>31)*4294967296))>>0)));en=e[0].formatExpr("new Uint8Array(%d)",new CP([em]));$s=141;case 141:if($c){$c=false;en=en.$blk();}if(en&&en.$blk!==undefined){break s;}eo=en;$s=142;case 142:return eo;case 138:case 136:case 38:case 32:$s=31;continue;case 28:ai=af.$val;eq=i.Underlying();$s=143;case 143:if($c){$c=false;eq=eq.$blk();}if(eq&&eq.$blk!==undefined){break s;}ep=eq;if($assertType(ep,CY,true)[1]){$s=144;continue;}if($assertType(ep,CZ,true)[1]||$assertType(ep,CV,true)[1]){$s=145;continue;}$s=146;continue;case 144:er=ep.$val;if(AW(er)){$s=147;continue;}$s=148;continue;case 147:et=ai.Elem().Underlying();$s=151;case 151:if($c){$c=false;et=et.$blk();}if(et&&et.$blk!==undefined){break s;}ev=M.Identical(et,(eu=M.Typ,(5>=eu.$length?($throwRuntimeError("index out of range"),undefined):eu.$array[eu.$offset+5])));$s=152;case 152:if($c){$c=false;ev=ev.$blk();}if(ev&&ev.$blk!==undefined){break s;}if(ev){$s=149;continue;}$s=150;continue;case 149:ew=e[0].typeName(c);$s=153;case 153:if($c){$c=false;ew=ew.$blk();}if(ew&&ew.$blk!==undefined){break s;}ex=new $String(ew);ey=b[0];ez=e[0].formatExpr("new %s($stringToRunes(%e))",new CP([ex,ey]));$s=154;case 154:if($c){$c=false;ez=ez.$blk();}if(ez&&ez.$blk!==undefined){break s;}fa=ez;$s=155;case 155:return fa;case 150:fb=e[0].typeName(c);$s=156;case 156:if($c){$c=false;fb=fb.$blk();}if(fb&&fb.$blk!==undefined){break s;}fc=new $String(fb);fd=b[0];fe=e[0].formatExpr("new %s($stringToBytes(%e))",new CP([fc,fd]));$s=157;case 157:if($c){$c=false;fe=fe.$blk();}if(fe&&fe.$blk!==undefined){break s;}ff=fe;$s=158;case 158:return ff;case 148:$s=146;continue;case 145:es=ep;fg=e[0].typeName(c);$s=159;case 159:if($c){$c=false;fg=fg.$blk();}if(fg&&fg.$blk!==undefined){break s;}fh=new $String(fg);fi=b[0];fj=e[0].formatExpr("new %s(%e)",new CP([fh,fi]));$s=160;case 160:if($c){$c=false;fj=fj.$blk();}if(fj&&fj.$blk!==undefined){break s;}fk=fj;$s=161;case 161:return fk;case 146:$s=31;continue;case 29:aj=af.$val;fm=M.Identical(i,(fl=M.Typ,(25>=fl.$length?($throwRuntimeError("index out of range"),undefined):fl.$array[fl.$offset+25])));$s=164;case 164:if($c){$c=false;fm=fm.$blk();}if(fm&&fm.$blk!==undefined){break s;}if(fm){$s=162;continue;}$s=163;continue;case 162:$s=31;continue;case 163:fo=aj.Elem().Underlying();$s=165;case 165:if($c){$c=false;fo=fo.$blk();}if(fo&&fo.$blk!==undefined){break s;}fn=fo;if($assertType(fn,CZ,true)[1]){$s=166;continue;}if($assertType(fn,CW,true)[1]){$s=167;continue;}$s=168;continue;case 166:fp=fn.$val;fs=i.Underlying();$s=169;case 169:if($c){$c=false;fs=fs.$blk();}if(fs&&fs.$blk!==undefined){break s;}fr=$assertType(fs,DD,true);ft=fr[1];if(ft){$s=170;continue;}$s=171;continue;case 170:fu=b[0];fv=e[0].typeName(c);$s=172;case 172:if($c){$c=false;fv=fv.$blk();}if(fv&&fv.$blk!==undefined){break s;}fw=new $String(fv);fx=e[0].formatExpr("$sliceToGoArray(%e, %s)",new CP([fu,fw]));$s=173;case 173:if($c){$c=false;fx=fx.$blk();}if(fx&&fx.$blk!==undefined){break s;}fy=fx;$s=174;case 174:return fy;case 171:fz=e[0].translateExpr(b[0]);$s=175;case 175:if($c){$c=false;fz=fz.$blk();}if(fz&&fz.$blk!==undefined){break s;}ga=fz;$s=176;case 176:return ga;case 167:fq=fn.$val;if(!(e[0].pkgCtx.Info.Pkg.Path()==="syscall")){gb=false;$s=179;continue s;}gd=M.Identical(i,(gc=M.Typ,(18>=gc.$length?($throwRuntimeError("index out of range"),undefined):gc.$array[gc.$offset+18])));$s=180;case 180:if($c){$c=false;gd=gd.$blk();}if(gd&&gd.$blk!==undefined){break s;}gb=gd;case 179:if(gb){$s=177;continue;}$s=178;continue;case 177:ge=e[0].newVariable("_array");$s=181;case 181:if($c){$c=false;ge=ge.$blk();}if(ge&&ge.$blk!==undefined){break s;}gf=ge;gg=e[0].newVariable("_struct");$s=182;case 182:if($c){$c=false;gg=gg.$blk();}if(gg&&gg.$blk!==undefined){break s;}gh=gg;gi=new $String(gf);gj=b[0];gk=new $String(gh);gl=e[0].zeroValue(aj.Elem());$s=183;case 183:if($c){$c=false;gl=gl.$blk();}if(gl&&gl.$blk!==undefined){break s;}gm=gl;gn=e[0].loadStruct(gf,gh,fq);$s=184;case 184:if($c){$c=false;gn=gn.$blk();}if(gn&&gn.$blk!==undefined){break s;}go=new $String(gn);gp=new $String(gh);gq=e[0].formatExpr("(%s = %e, %s = %e, %s, %s)",new CP([gi,gj,gk,gm,go,gp]));$s=185;case 185:if($c){$c=false;gq=gq.$blk();}if(gq&&gq.$blk!==undefined){break s;}gr=gq;$s=186;case 186:return gr;case 178:gs=b[0];gt=e[0].typeName(aj);$s=187;case 187:if($c){$c=false;gt=gt.$blk();}if(gt&>.$blk!==undefined){break s;}gu=new $String(gt);gv=e[0].formatExpr("$pointerOfStructConversion(%e, %s)",new CP([gs,gu]));$s=188;case 188:if($c){$c=false;gv=gv.$blk();}if(gv&&gv.$blk!==undefined){break s;}gw=gv;$s=189;case 189:return gw;case 168:gy=M.Identical(i,(gx=M.Typ,(18>=gx.$length?($throwRuntimeError("index out of range"),undefined):gx.$array[gx.$offset+18])));$s=192;case 192:if($c){$c=false;gy=gy.$blk();}if(gy&&gy.$blk!==undefined){break s;}if(gy){$s=190;continue;}$s=191;continue;case 190:$s=31;continue;case 191:gz=i.Underlying();$s=193;case 193:if($c){$c=false;gz=gz.$blk();}if(gz&&gz.$blk!==undefined){break s;}ha=$assertType(gz,CV).Elem();$s=194;case 194:if($c){$c=false;ha=ha.$blk();}if(ha&&ha.$blk!==undefined){break s;}hb=ha;hc=e[0].newVariable("_ptr");$s=195;case 195:if($c){$c=false;hc=hc.$blk();}if(hc&&hc.$blk!==undefined){break s;}hd=hc;he=e[0].translateConversion(e[0].setType(new J.StarExpr.ptr(0,e[0].newIdent(hd,i)),hb),aj.Elem());$s=196;case 196:if($c){$c=false;he=he.$blk();}if(he&&he.$blk!==undefined){break s;}hf=he;hg=e[0].translateConversion(e[0].newIdent("$v",aj.Elem()),hb);$s=197;case 197:if($c){$c=false;hg=hg.$blk();}if(hg&&hg.$blk!==undefined){break s;}hh=hg;hi=new $String(hd);hj=b[0];hk=e[0].typeName(c);$s=198;case 198:if($c){$c=false;hk=hk.$blk();}if(hk&&hk.$blk!==undefined){break s;}hl=new $String(hk);hm=hf;hn=hh;ho=e[0].formatExpr("(%1s = %2e, new %3s(function() { return %4s; }, function($v) { %1s.$set(%5s); }, %1s.$target))",new CP([hi,hj,hl,hm,hn]));$s=199;case 199:if($c){$c=false;ho=ho.$blk();}if(ho&&ho.$blk!==undefined){break s;}hp=ho;$s=200;case 200:return hp;case 30:ak=af.$val;hr=M.Identical(i,(hq=M.Typ,(18>=hq.$length?($throwRuntimeError("index out of range"),undefined):hq.$array[hq.$offset+18])));$s=203;case 203:if($c){$c=false;hr=hr.$blk();}if(hr&&hr.$blk!==undefined){break s;}if(hr){$s=201;continue;}$s=202;continue;case 201:hs=e[0].translateExpr(b[0]);$s=204;case 204:if($c){$c=false;hs=hs.$blk();}if(hs&&hs.$blk!==undefined){break s;}ht=hs;$s=205;case 205:return ht;case 202:case 31:hu=e[0].translateImplicitConversionWithCloning(b[0],c);$s=206;case 206:if($c){$c=false;hu=hu.$blk();}if(hu&&hu.$blk!==undefined){break s;}hv=hu;$s=207;case 207:return hv;}return;}var $f={$blk:BP.ptr.prototype.translateConversion,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,e,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,f,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,g,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,h,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BP.prototype.translateConversion=function(b,c){return this.$val.translateConversion(b,c);};BP.ptr.prototype.translateImplicitConversionWithCloning=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;f=c.Underlying();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;if($assertType(e,CW,true)[1]||$assertType(e,CZ,true)[1]){$s=2;continue;}$s=3;continue;case 2:g=b;if(g===$ifaceNil||$assertType(g,EX,true)[1]){$s=4;continue;}$s=5;continue;case 4:$s=6;continue;case 5:h=b;i=d.typeName(c);$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=new $String(i);k=d.formatExpr("$clone(%e, %s)",new CP([h,j]));$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=9;case 9:return l;case 6:case 3:m=d.translateImplicitConversion(b,c);$s=10;case 10:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=11;case 11:return n;}return;}var $f={$blk:BP.ptr.prototype.translateImplicitConversionWithCloning,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};BP.prototype.translateImplicitConversionWithCloning=function(b,c){return this.$val.translateImplicitConversionWithCloning(b,c);};BP.ptr.prototype.translateImplicitConversion=function(b,c){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if($interfaceIsEqual(c,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:e=d.translateExpr(b);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=4;case 4:return f;case 2:g=d.pkgCtx.Info.Info.TypeOf(b);$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=M.Identical(h,c);$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(i){$s=6;continue;}$s=7;continue;case 6:j=d.translateExpr(b);$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=10;case 10:return k;case 7:m=h.Underlying();$s=11;case 11:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=$assertType(m,CY,true);n=l[0];o=l[1];if(o&&(n.Kind()===25)){$s=12;continue;}$s=13;continue;case 12:p=d.zeroValue(c);$s=14;case 14:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;r=d.formatExpr("%e",new CP([q]));$s=15;case 15:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;$s=16;case 16:return s;case 13:u=c.Underlying();$s=17;case 17:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;if($assertType(t,DD,true)[1]){$s=18;continue;}if($assertType(t,DB,true)[1]){$s=19;continue;}$s=20;continue;case 18:v=b;w=d.typeName(c);$s=21;case 21:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=new $String(w);y=d.formatExpr("$convertSliceType(%1e, %2s)",new CP([v,x]));$s=22;case 22:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;$s=23;case 23:return z;case 19:if(U.IsJsObject(h)){$s=24;continue;}$s=25;continue;case 24:aa=d.formatExpr("new $jsObjectPtr(%e)",new CP([b]));$s=26;case 26:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa;$s=27;case 27:return ab;case 25:ac=AZ(h);$s=30;case 30:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}if(ac){$s=28;continue;}$s=29;continue;case 28:ad=d.typeName(h);$s=31;case 31:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=new $String(ad);af=b;ag=d.formatExpr("new %s(%e)",new CP([ae,af]));$s=32;case 32:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag;$s=33;case 33:return ah;case 29:aj=h.Underlying();$s=34;case 34:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ai=$assertType(aj,CW,true);ak=ai[1];if(ak){$s=35;continue;}$s=36;continue;case 35:al=d.formatExpr("new %1e.constructor.elem(%1e)",new CP([b]));$s=37;case 37:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=al;$s=38;case 38:return am;case 36:case 20:an=d.translateExpr(b);$s=39;case 39:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}ao=an;$s=40;case 40:return ao;}return;}var $f={$blk:BP.ptr.prototype.translateImplicitConversion,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BP.prototype.translateImplicitConversion=function(b,c){return this.$val.translateImplicitConversion(b,c);};BP.ptr.prototype.translateConversionToSlice=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;f=d.pkgCtx.Info.Info.TypeOf(b);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f.Underlying();$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}e=g;if($assertType(e,CZ,true)[1]||$assertType(e,CV,true)[1]){$s=3;continue;}$s=4;continue;case 3:h=d.typeName(c);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=new $String(h);j=b;k=d.formatExpr("new %s(%e)",new CP([i,j]));$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=7;case 7:return l;case 4:m=d.translateExpr(b);$s=8;case 8:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=9;case 9:return n;}return;}var $f={$blk:BP.ptr.prototype.translateConversionToSlice,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};BP.prototype.translateConversionToSlice=function(b,c){return this.$val.translateConversionToSlice(b,c);};BP.ptr.prototype.loadStruct=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:e=[e];f=[f];g=this;h=g.newVariable("_view");$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=A.Sprintf("%s = new DataView(%s.buffer, %s.byteOffset)",new CP([new $String(i),new $String(b),new $String(b)]));$s=2;case 2:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;f[0]=EM.nil;e[0]=$throwNilPointerError;e[0]=(function(e,f){return function $b(l,m){var{aa,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{l,m});$s=$s||0;s:while(true){switch($s){case 0:n=0;case 1:if(!(n>0;$s=1;continue;case 5:w=EL.nil;x=AN(l,n);$s=8;case 8:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=m+"."+x;z=o.object.Type();aa=M.NewVar(0,w,y,z);$s=9;case 9:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}f[0]=$append(f[0],aa);n=n+(1)>>0;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,aa,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};})(e,f);$r=e[0](d,c);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=CB.Offsetsof(f[0]);$s=4;case 4:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;n=f[0];o=0;case 5:if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]);s=q.object.Type().Underlying();$s=7;case 7:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}r=s;if($assertType(r,CY,true)[1]){$s=8;continue;}if($assertType(r,CZ,true)[1]){$s=9;continue;}$s=10;continue;case 8:t=r.$val;if(AV(t)){$s=11;continue;}$s=12;continue;case 11:if(AQ(t)){$s=13;continue;}$s=14;continue;case 13:v=new $String(q.object.Name());w=g.typeName(q.object.Type());$s=15;case 15:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=new $String(w);y=new $String(i);aa=(z=((p<0||p>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+p]),new $Int64(z.$high+0,z.$low+4));ab=new $String(i);ac=((p<0||p>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+p]);ad=A.Sprintf(", %s = new %s(%s.getUint32(%d, true), %s.getUint32(%d, true))",new CP([v,x,y,aa,ab,ac]));$s=16;case 16:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}k=k+(ad);$s=10;continue;case 14:ae=new $String(q.object.Name());af=new $String(i);ag=AP(t);$s=17;case 17:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=new $String(ag);ai=((p<0||p>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+p]);aj=A.Sprintf(", %s = %s.get%s(%d, true)",new CP([ae,af,ah,ai]));$s=18;case 18:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}k=k+(aj);case 12:$s=10;continue;case 9:u=r.$val;ak=new $String(q.object.Name());al=AO(u.Elem());$s=19;case 19:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=new $String(al);an=new $String(b);ao=new $String(b);ap=((p<0||p>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+p]);aq=new $String(b);ar=A.Sprintf(", %s = new ($nativeArray(%s))(%s.buffer, $min(%s.byteOffset + %d, %s.buffer.byteLength))",new CP([ak,am,an,ao,ap,aq]));$s=20;case 20:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}k=k+(ar);case 10:o++;$s=5;continue;case 6:$s=-1;return k;}return;}var $f={$blk:BP.ptr.prototype.loadStruct,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};BP.prototype.loadStruct=function(b,c,d){return this.$val.loadStruct(b,c,d);};BP.ptr.prototype.fixNumber=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=c.Kind();if(e===(3)){$s=2;continue;}if(e===(8)){$s=3;continue;}if(e===(4)){$s=4;continue;}if(e===(9)){$s=5;continue;}if((e===(5))||(e===(2))||(e===(20))){$s=6;continue;}if((e===(10))||(e===(7))||(e===(12))){$s=7;continue;}if(e===(13)){$s=8;continue;}if(e===(14)){$s=9;continue;}$s=10;continue;case 2:f=d.formatParenExpr("%s << 24 >> 24",new CP([b]));$s=12;case 12:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=13;case 13:return g;case 3:h=d.formatParenExpr("%s << 24 >>> 24",new CP([b]));$s=14;case 14:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=15;case 15:return i;case 4:j=d.formatParenExpr("%s << 16 >> 16",new CP([b]));$s=16;case 16:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;$s=17;case 17:return k;case 5:l=d.formatParenExpr("%s << 16 >>> 16",new CP([b]));$s=18;case 18:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;$s=19;case 19:return m;case 6:n=d.formatParenExpr("%s >> 0",new CP([b]));$s=20;case 20:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;$s=21;case 21:return o;case 7:p=d.formatParenExpr("%s >>> 0",new CP([b]));$s=22;case 22:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;$s=23;case 23:return q;case 8:r=d.formatExpr("$fround(%s)",new CP([b]));$s=24;case 24:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;$s=25;case 25:return s;case 9:$s=-1;return b;case 10:t=c.String();$s=26;case 26:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=new $String(t);v=A.Sprintf("fixNumber: unhandled basic.Kind(): %s",new CP([u]));$s=27;case 27:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}$panic(new $String(v));case 11:case 1:$s=-1;return EQ.nil;}return;}var $f={$blk:BP.ptr.prototype.fixNumber,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s};return $f;};BP.prototype.fixNumber=function(b,c){return this.$val.fixNumber(b,c);};BP.ptr.prototype.internalize=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(U.IsJsObject(c)){$s=-1;return b;}f=c.Underlying();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;if($assertType(e,CY,true)[1]){$s=2;continue;}$s=3;continue;case 2:g=e.$val;if(AR(g)){$s=5;continue;}if(AU(g)&&!AQ(g)){$s=6;continue;}if(AT(g)){$s=7;continue;}$s=8;continue;case 5:h=d.formatExpr("!!(%s)",new CP([b]));$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;$s=10;case 10:return i;case 6:j=d.formatExpr("$parseInt(%s)",new CP([b]));$s=11;case 11:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=d.fixNumber(j,g);$s=12;case 12:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;$s=13;case 13:return l;case 7:m=d.formatExpr("$parseFloat(%s)",new CP([b]));$s=14;case 14:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;$s=15;case 15:return n;case 8:case 4:case 3:o=b;p=d.typeName(c);$s=16;case 16:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=new $String(p);r=d.formatExpr("$internalize(%s, %s)",new CP([o,q]));$s=17;case 17:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;$s=18;case 18:return s;}return;}var $f={$blk:BP.ptr.prototype.internalize,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};BP.prototype.internalize=function(b,c){return this.$val.internalize(b,c);};BP.ptr.prototype.formatExpr=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.formatExprInternal(b,c,false);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:BP.ptr.prototype.formatExpr,$c:true,$r,b,c,d,e,f,$s};return $f;};BP.prototype.formatExpr=function(b,c){return this.$val.formatExpr(b,c);};BP.ptr.prototype.formatParenExpr=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;e=d.formatExprInternal(b,c,true);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=2;case 2:return f;}return;}var $f={$blk:BP.ptr.prototype.formatParenExpr,$c:true,$r,b,c,d,e,f,$s};return $f;};BP.prototype.formatParenExpr=function(b,c){return this.$val.formatParenExpr(b,c);};BP.ptr.prototype.formatExprInternal=function(b,c,d){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:b=[b];c=[c];e=[e];f=[f];g=[g];h=[h];f[0]=this;i=(function(b,c,e,f,g,h){return function $b(i){var{i,j,k,l,m,$s,$r,$c}=$restore(this,{i});$s=$s||0;s:while(true){switch($s){case 0:j=0;k=0;case 1:if(!(k>0;m=b[0].charCodeAt(k);if(m>=48&&m<=57){j=((((m-48<<24>>>24)-1<<24>>>24)>>0));k=k+(1)>>0;m=b[0].charCodeAt(k);}$r=i(0,m,j);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=j+(1)>>0;k=k+(1)>>0;$s=1;continue;case 4:$r=i(l,0,0);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=k+(1)>>0;$s=1;continue;case 2:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,i,j,k,l,m,$s};return $f;};})(b,c,e,f,g,h);e[0]=$makeSlice(GF,c[0].$length);$r=i((function(b,c,e,f,g,h){return function(j,k,l){var j,k,l,m;m=k;if((m===(101))||(m===(102))||(m===(104))||(m===(108))||(m===(114))||(m===(105))){((l<0||l>=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+l]=(((l<0||l>=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+l])+(1)>>0));}};})(b,c,e,f,g,h));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g[0]=G.NewBuffer(CR.nil);h[0]=$makeSlice(CQ,c[0].$length);j=false;k=c[0];l=0;case 2:if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);if(((m<0||m>=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+m])<=1){l++;$s=2;continue;}o=$assertType(n,DE,true);p=o[1];if(p){l++;$s=2;continue;}r=(q=$mapIndex(f[0].pkgCtx.Info.Info.Types,J.Expr.keyFor($assertType(n,J.Expr))),q!==undefined?q.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value;if(!($interfaceIsEqual(r,$ifaceNil))){l++;$s=2;continue;}if(!j){$s=4;continue;}$s=5;continue;case 4:j=true;s=g[0].WriteByte(40);$s=6;case 6:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;d=false;case 5:t=f[0].newVariable("x");$s=7;case 7:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;v=f[0].translateExpr($assertType(n,J.Expr));$s=8;case 8:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=v.String();$s=9;case 9:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=g[0].WriteString(u+" = "+w+", ");$s=10;case 10:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}x;((m<0||m>=h[0].$length)?($throwRuntimeError("index out of range"),undefined):h[0].$array[h[0].$offset+m]=u);l++;$s=2;continue;case 3:$r=i((function(b,c,e,f,g,h){return function $b(y,z,aa){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,y,z,$s,$r,$c}=$restore(this,{y,z,aa});$s=$s||0;s:while(true){switch($s){case 0:aa=[aa];ab=(function(aa,b,c,e,f,g,h){return function $b(ab){var{ab,ac,ad,ae,af,$s,$r,$c}=$restore(this,{ab});$s=$s||0;s:while(true){switch($s){case 0:if(!(((aa[0]<0||aa[0]>=h[0].$length)?($throwRuntimeError("index out of range"),undefined):h[0].$array[h[0].$offset+aa[0]])==="")){$s=1;continue;}$s=2;continue;case 1:ac=g[0].WriteString(((aa[0]<0||aa[0]>=h[0].$length)?($throwRuntimeError("index out of range"),undefined):h[0].$array[h[0].$offset+aa[0]])+ab);$s=3;case 3:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ac;$s=-1;return;case 2:ad=f[0].translateExpr($assertType(((aa[0]<0||aa[0]>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+aa[0]]),J.Expr));$s=4;case 4:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad.StringWithParens();$s=5;case 5:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=g[0].WriteString(ae+ab);$s=6;case 6:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}af;$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ab,ac,ad,ae,af,$s};return $f;};})(aa,b,c,e,f,g,h);ac=z;if(ac===(0)){$s=2;continue;}if(ac===(115)){$s=3;continue;}if(ac===(100)){$s=4;continue;}if(ac===(116)){$s=5;continue;}if(ac===(101)){$s=6;continue;}if(ac===(102)){$s=7;continue;}if(ac===(104)){$s=8;continue;}if(ac===(108)){$s=9;continue;}if(ac===(114)){$s=10;continue;}if(ac===(105)){$s=11;continue;}if(ac===(37)){$s=12;continue;}$s=13;continue;case 2:ad=g[0].WriteByte(y);$s=15;case 15:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ad;$s=14;continue;case 3:ae=$assertType(((aa[0]<0||aa[0]>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+aa[0]]),EQ,true);af=ae[0];ag=ae[1];if(ag){$s=16;continue;}$s=17;continue;case 16:ah=g[0].WriteString(af.StringWithParens());$s=18;case 18:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ah;$s=-1;return;case 17:ai=g[0].WriteString($assertType(((aa[0]<0||aa[0]>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+aa[0]]),$String));$s=19;case 19:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}ai;$s=14;continue;case 4:aj=g[0].WriteString(E.Itoa($assertType(((aa[0]<0||aa[0]>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+aa[0]]),$Int)));$s=20;case 20:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}aj;$s=14;continue;case 5:ak=g[0].WriteString(new L.Token($assertType(((aa[0]<0||aa[0]>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+aa[0]]),L.Token)).String());$s=21;case 21:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}ak;$s=14;continue;case 6:al=$assertType(((aa[0]<0||aa[0]>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+aa[0]]),J.Expr);an=(am=$mapIndex(f[0].pkgCtx.Info.Info.Types,J.Expr.keyFor(al)),am!==undefined?am.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value;if(!($interfaceIsEqual(an,$ifaceNil))){$s=22;continue;}$s=23;continue;case 22:ao=f[0].translateExpr(al);$s=24;case 24:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=ao.String();$s=25;case 25:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=g[0].WriteString(ap);$s=26;case 26:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}aq;$s=-1;return;case 23:$r=ab("");$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 7:ar=$assertType(((aa[0]<0||aa[0]>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+aa[0]]),J.Expr);at=(as=$mapIndex(f[0].pkgCtx.Info.Info.Types,J.Expr.keyFor(ar)),as!==undefined?as.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value;if(!($interfaceIsEqual(at,$ifaceNil))){$s=28;continue;}$s=29;continue;case 28:av=K.ToInt(at);$s=30;case 30:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=K.Int64Val(av);$s=31;case 31:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}au=aw;ax=au[0];ay=g[0].WriteString(E.FormatInt(ax,10));$s=32;case 32:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}ay;$s=-1;return;case 29:az=f[0].pkgCtx.Info.Info.TypeOf(ar);$s=35;case 35:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az.Underlying();$s=36;case 36:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=AQ($assertType(ba,CY));$s=37;case 37:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}if(bb){$s=33;continue;}$s=34;continue;case 33:bc=g[0].WriteString("$flatten64(");$s=38;case 38:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bc;$r=ab("");$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bd=g[0].WriteString(")");$s=40;case 40:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}bd;$s=-1;return;case 34:$r=ab("");$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 8:be=$assertType(((aa[0]<0||aa[0]>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+aa[0]]),J.Expr);bg=(bf=$mapIndex(f[0].pkgCtx.Info.Info.Types,J.Expr.keyFor(be)),bf!==undefined?bf.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value;if(!($interfaceIsEqual(bg,$ifaceNil))){$s=42;continue;}$s=43;continue;case 42:bi=K.ToInt(bg);$s=44;case 44:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}bj=K.Uint64Val(bi);$s=45;case 45:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bh=bj;bk=bh[0];bl=f[0].pkgCtx.Info.Info.TypeOf(be);$s=48;case 48:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}bm=bl.Underlying();$s=49;case 49:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bn=$assertType(bm,CY).Kind();$s=50;case 50:if($c){$c=false;bn=bn.$blk();}if(bn&&bn.$blk!==undefined){break s;}if(bn===6){$s=46;continue;}$s=47;continue;case 46:bo=g[0].WriteString(E.FormatInt($shiftRightInt64((new $Int64(bk.$high,bk.$low)),32),10));$s=51;case 51:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bo;$s=-1;return;case 47:bp=g[0].WriteString(E.FormatUint($shiftRightUint64(bk,32),10));$s=52;case 52:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}bp;$s=-1;return;case 43:$r=ab(".$high");$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 9:br=(bq=$mapIndex(f[0].pkgCtx.Info.Info.Types,J.Expr.keyFor($assertType(((aa[0]<0||aa[0]>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+aa[0]]),J.Expr))),bq!==undefined?bq.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value;if(!($interfaceIsEqual(br,$ifaceNil))){$s=54;continue;}$s=55;continue;case 54:bt=K.ToInt(br);$s=56;case 56:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}bu=K.Uint64Val(bt);$s=57;case 57:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}bs=bu;bv=bs[0];bw=g[0].WriteString(E.FormatUint(new $Uint64(bv.$high&0,(bv.$low&4294967295)>>>0),10));$s=58;case 58:if($c){$c=false;bw=bw.$blk();}if(bw&&bw.$blk!==undefined){break s;}bw;$s=-1;return;case 55:$r=ab(".$low");$s=59;case 59:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 10:by=(bx=$mapIndex(f[0].pkgCtx.Info.Info.Types,J.Expr.keyFor($assertType(((aa[0]<0||aa[0]>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+aa[0]]),J.Expr))),bx!==undefined?bx.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value;if(!($interfaceIsEqual(by,$ifaceNil))){$s=60;continue;}$s=61;continue;case 60:ca=K.Real(by);$s=62;case 62:if($c){$c=false;ca=ca.$blk();}if(ca&&ca.$blk!==undefined){break s;}cb=K.Float64Val(ca);$s=63;case 63:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}bz=cb;cc=bz[0];cd=g[0].WriteString(E.FormatFloat(cc,103,-1,64));$s=64;case 64:if($c){$c=false;cd=cd.$blk();}if(cd&&cd.$blk!==undefined){break s;}cd;$s=-1;return;case 61:$r=ab(".$real");$s=65;case 65:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 11:cf=(ce=$mapIndex(f[0].pkgCtx.Info.Info.Types,J.Expr.keyFor($assertType(((aa[0]<0||aa[0]>=c[0].$length)?($throwRuntimeError("index out of range"),undefined):c[0].$array[c[0].$offset+aa[0]]),J.Expr))),ce!==undefined?ce.v:new M.TypeAndValue.ptr(0,$ifaceNil,$ifaceNil)).Value;if(!($interfaceIsEqual(cf,$ifaceNil))){$s=66;continue;}$s=67;continue;case 66:ch=K.Imag(cf);$s=68;case 68:if($c){$c=false;ch=ch.$blk();}if(ch&&ch.$blk!==undefined){break s;}ci=K.Float64Val(ch);$s=69;case 69:if($c){$c=false;ci=ci.$blk();}if(ci&&ci.$blk!==undefined){break s;}cg=ci;cj=cg[0];ck=g[0].WriteString(E.FormatFloat(cj,103,-1,64));$s=70;case 70:if($c){$c=false;ck=ck.$blk();}if(ck&&ck.$blk!==undefined){break s;}ck;$s=-1;return;case 67:$r=ab(".$imag");$s=71;case 71:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=14;continue;case 12:cl=g[0].WriteRune(37);$s=72;case 72:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}cl;$s=14;continue;case 13:cm=A.Sprintf("formatExpr: %%%c%d",new CP([new $Uint8(z),new $Int(aa[0])]));$s=73;case 73:if($c){$c=false;cm=cm.$blk();}if(cm&&cm.$blk!==undefined){break s;}$panic(new $String(cm));case 14:case 1:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,y,z,$s};return $f;};})(b,c,e,f,g,h));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(j){$s=12;continue;}$s=13;continue;case 12:y=g[0].WriteByte(41);$s=14;case 14:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}y;case 13:$s=-1;return new CA.ptr(g[0].String(),d);}return;}var $f={$blk:BP.ptr.prototype.formatExprInternal,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s};return $f;};BP.prototype.formatExprInternal=function(b,c,d){return this.$val.formatExprInternal(b,c,d);};CD=function(){var b,c,d,e;b=new CQ(["abstract","arguments","boolean","break","byte","case","catch","char","class","const","continue","debugger","default","delete","do","double","else","enum","eval","export","extends","false","final","finally","float","for","function","goto","if","implements","import","in","instanceof","int","interface","let","long","native","new","null","package","private","protected","public","return","short","static","super","switch","synchronized","this","throw","throws","transient","true","try","typeof","undefined","var","void","volatile","while","with","yield"]);c=0;while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]);e=d;(CC||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(e),{k:e,v:true});c++;}};CE.prototype.Error=function(){var{b,c,d,e,f,g,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;if(b.$length===0){$s=-1;return"";}c=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]).Error();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=new $String(c);e=new $Int($subslice(b,1).$length);f=A.Sprintf("%s (and %d more errors)",new CP([d,e]));$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=3;case 3:return g;}return;}var $f={$blk:CE.prototype.Error,$c:true,$r,b,c,d,e,f,g,$s};return $f;};$ptrType(CE).prototype.Error=function(){return this.$get().Error();};CE.prototype.Normalize=function(){var b;b=this;if(b.$length===0){return $ifaceNil;}return b;};$ptrType(CE).prototype.Normalize=function(){return this.$get().Normalize();};CF.ptr.prototype.String=function(){var{b,c,d,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=A.Sprintf("compiler.Archive{%s}",new CP([new $String(b.ImportPath)]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:CF.ptr.prototype.String,$c:true,$r,b,c,d,$s};return $f;};CF.prototype.String=function(){return this.$val.String();};CF.ptr.prototype.RegisterTypes=function(b){var{b,c,d,e,f,g,h,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=$ifaceNil;e=L.NewFileSet();g=AC.Read(G.NewReader(c.ExportData),e,b,c.ImportPath);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=c.ImportPath;(b||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(h),{k:h,v:f[0]});d=f[1];$s=-1;return d;}return;}var $f={$blk:CF.ptr.prototype.RegisterTypes,$c:true,$r,b,c,d,e,f,g,h,$s};return $f;};CF.prototype.RegisterTypes=function(b){return this.$val.RegisterTypes(b);};CI=function(b,c){var{b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:c=[c];d=[d];e=[e];f=[f];e[0]=GG.nil;f[0]=new $global.Map();d[0]=$throwNilPointerError;d[0]=(function(c,d,e,f){return function $b(g){var{g,h,i,j,k,l,m,n,o,p,q,r,$s,$r,$c}=$restore(this,{g});$s=$s||0;s:while(true){switch($s){case 0:if((h=$mapIndex(f[0],$String.keyFor(g)),h!==undefined?h.v:false)){$s=-1;return $ifaceNil;}j=c[0](g);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];l=i[1];if(!($interfaceIsEqual(l,$ifaceNil))){$s=-1;return l;}m=k.Imports;n=0;case 2:if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]);p=d[0](o);$s=4;case 4:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;if(!($interfaceIsEqual(q,$ifaceNil))){$s=-1;return q;}n++;$s=2;continue;case 3:e[0]=$append(e[0],k);r=k.ImportPath;(f[0]||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(r),{k:r,v:true});$s=-1;return $ifaceNil;}return;}var $f={$blk:$b,$c:true,$r,g,h,i,j,k,l,m,n,o,p,q,r,$s};return $f;};})(c,d,e,f);g=d[0]("runtime");$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return[GG.nil,h];}i=b.Imports;j=0;case 2:if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);l=d[0](k);$s=4;case 4:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;if(!($interfaceIsEqual(m,$ifaceNil))){$s=-1;return[GG.nil,m];}j++;$s=2;continue;case 3:e[0]=$append(e[0],b);$s=-1;return[e[0],$ifaceNil];}return;}var $f={$blk:CI,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};$pkg.ImportDependencies=CI;CK=function(b,c,d){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d});$s=$s||0;s:while(true){switch($s){case 0:f=(e=b.$length-1>>0,((e<0||e>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]));g=f.Minified;h=new BZ.ptr(false,false);i=b;j=0;case 1:if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);l=h.Add(k.GoLinknames);$s=3;case 3:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;j++;$s=1;continue;case 2:m=new $global.Map();n=FR.nil;o=b;p=0;while(true){if(!(p=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]);r=q.Declarations;s=0;while(true){if(!(s=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]);if(t.DceObjectFilter===""&&t.DceMethodFilter===""){n=$append(n,t);s++;continue;}if(h.IsImplementation($clone(t.LinkingName,BW))){n=$append(n,t);}u=new CJ.ptr(t,"","");if(!(t.DceObjectFilter==="")){u.objectFilter=q.ImportPath+"."+t.DceObjectFilter;v=u.objectFilter;(m||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(v),{k:v,v:$append((w=$mapIndex(m,$String.keyFor(u.objectFilter)),w!==undefined?w.v:GI.nil),u)});}if(!(t.DceMethodFilter==="")){u.methodFilter=q.ImportPath+"."+t.DceMethodFilter;x=u.methodFilter;(m||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(x),{k:x,v:$append((y=$mapIndex(m,$String.keyFor(u.methodFilter)),y!==undefined?y.v:GI.nil),u)});}s++;}p++;}z=new $global.Map();while(true){if(!(!((n.$length===0)))){break;}ab=(aa=n.$length-1>>0,((aa<0||aa>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+aa]));n=$subslice(n,0,(n.$length-1>>0));ac=ab;(z||$throwRuntimeError("assignment to entry in nil map")).set(FQ.keyFor(ac),{k:ac,v:new GJ.ptr()});ad=ab.DceDeps;ae=0;while(true){if(!(ae=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ae]);ag=(ah=$mapIndex(m,$String.keyFor(af)),ah!==undefined?[ah.v,true]:[GI.nil,false]);ai=ag[0];aj=ag[1];if(aj){$mapDelete(m,$String.keyFor(af));ak=ai;al=0;while(true){if(!(al=ak.$length)?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+al]);if(am.objectFilter===af){am.objectFilter="";}if(am.methodFilter===af){am.methodFilter="";}if(am.objectFilter===""&&am.methodFilter===""){n=$append(n,am.decl);}al++;}}ae++;}}ao=c.Write((new CR($stringToBytes("\"use strict\";\n(function() {\n\n"))));$s=4;case 4:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}an=ao;ap=an[1];if(!($interfaceIsEqual(ap,$ifaceNil))){$s=-1;return ap;}ar=A.Sprintf("var $goVersion = %q;\n",new CP([new $String(d)]));$s=5;case 5:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=c.Write((new CR($stringToBytes(ar))));$s=6;case 6:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}aq=as;at=aq[1];if(!($interfaceIsEqual(at,$ifaceNil))){$s=-1;return at;}au="Error.stackTraceLimit = Infinity;\n\nvar $NaN = NaN;\nvar $global, $module;\nif (typeof window !== \"undefined\") { /* web page */\n $global = window;\n} else if (typeof self !== \"undefined\") { /* web worker */\n $global = self;\n} else if (typeof global !== \"undefined\") { /* Node.js */\n $global = global;\n $global.require = require;\n} else { /* others (e.g. Nashorn) */\n $global = this;\n}\n\nif ($global === undefined || $global.Array === undefined) {\n throw new Error(\"no global object found\");\n}\nif (typeof module !== \"undefined\") {\n $module = module;\n}\n\nif (!$global.fs && $global.require) {\n try {\n var fs = $global.require('fs');\n if (typeof fs === \"object\" && fs !== null && Object.keys(fs).length !== 0) {\n $global.fs = fs;\n }\n } catch(e) { /* Ignore if the module couldn't be loaded. */ }\n}\n\nif (!$global.fs) {\n var outputBuf = \"\";\n var decoder = new TextDecoder(\"utf-8\");\n $global.fs = {\n constants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1 }, // unused\n writeSync: function writeSync(fd, buf) {\n outputBuf += decoder.decode(buf);\n var nl = outputBuf.lastIndexOf(\"\\n\");\n if (nl != -1) {\n console.log(outputBuf.substr(0, nl));\n outputBuf = outputBuf.substr(nl + 1);\n }\n return buf.length;\n },\n write: function write(fd, buf, offset, length, position, callback) {\n if (offset !== 0 || length !== buf.length || position !== null) {\n callback(enosys());\n return;\n }\n var n = this.writeSync(fd, buf);\n callback(null, n);\n }\n };\n}\n\nvar $linknames = {} // Collection of functions referenced by a go:linkname directive.\nvar $packages = {}, $idCounter = 0;\nvar $keys = function(m) { return m ? Object.keys(m) : []; };\nvar $flushConsole = function() {};\nvar $throwRuntimeError; /* set by package \"runtime\" */\nvar $throwNilPointerError = function() { $throwRuntimeError(\"invalid memory address or nil pointer dereference\"); };\nvar $call = function(fn, rcvr, args) { return fn.apply(rcvr, args); };\nvar $makeFunc = function(fn) { return function() { return $externalize(fn(this, new ($sliceType($jsObjectPtr))($global.Array.prototype.slice.call(arguments, []))), $emptyInterface); }; };\nvar $unused = function(v) {};\nvar $print = console.log;\n// Under Node we can emulate print() more closely by avoiding a newline.\nif (($global.process !== undefined) && $global.require) {\n try {\n var util = $global.require('util');\n $print = function() { $global.process.stderr.write(util.format.apply(this, arguments)); };\n } catch (e) {\n // Failed to require util module, keep using console.log().\n }\n}\nvar $println = console.log\n\nvar $initAllLinknames = function() {\n var names = $keys($packages);\n for (var i = 0; i < names.length; i++) {\n var f = $packages[names[i]][\"$initLinknames\"];\n if (typeof f == 'function') {\n f();\n }\n }\n}\n\nvar $mapArray = function(array, f) {\n var newArray = new array.constructor(array.length);\n for (var i = 0; i < array.length; i++) {\n newArray[i] = f(array[i]);\n }\n return newArray;\n};\n\n// $mapIndex returns the value of the given key in m, or undefined if m is nil/undefined or not a map\nvar $mapIndex = function(m, key) {\n return typeof m.get === \"function\" ? m.get(key) : undefined;\n};\n// $mapDelete deletes the key and associated value from m. If m is nil/undefined or not a map, $mapDelete is a no-op\nvar $mapDelete = function(m, key) {\n typeof m.delete === \"function\" && m.delete(key)\n};\n// Returns a method bound to the receiver instance, safe to invoke as a \n// standalone function. Bound function is cached for later reuse.\nvar $methodVal = function(recv, name) {\n var vals = recv.$methodVals || {};\n recv.$methodVals = vals; /* noop for primitives */\n var f = vals[name];\n if (f !== undefined) {\n return f;\n }\n var method = recv[name];\n f = method.bind(recv);\n vals[name] = f;\n return f;\n};\n\nvar $methodExpr = function(typ, name) {\n var method = typ.prototype[name];\n if (method.$expr === undefined) {\n method.$expr = function() {\n $stackDepthOffset--;\n try {\n if (typ.wrapped) {\n arguments[0] = new typ(arguments[0]);\n }\n return Function.call.apply(method, arguments);\n } finally {\n $stackDepthOffset++;\n }\n };\n }\n return method.$expr;\n};\n\nvar $ifaceMethodExprs = {};\nvar $ifaceMethodExpr = function(name) {\n var expr = $ifaceMethodExprs[\"$\" + name];\n if (expr === undefined) {\n expr = $ifaceMethodExprs[\"$\" + name] = function() {\n $stackDepthOffset--;\n try {\n return Function.call.apply(arguments[0][name], arguments);\n } finally {\n $stackDepthOffset++;\n }\n };\n }\n return expr;\n};\n\nvar $subslice = function(slice, low, high, max) {\n if (high === undefined) {\n high = slice.$length;\n }\n if (max === undefined) {\n max = slice.$capacity;\n }\n if (low < 0 || high < low || max < high || high > slice.$capacity || max > slice.$capacity) {\n $throwRuntimeError(\"slice bounds out of range\");\n }\n if (slice === slice.constructor.nil) {\n return slice;\n }\n var s = new slice.constructor(slice.$array);\n s.$offset = slice.$offset + low;\n s.$length = high - low;\n s.$capacity = max - low;\n return s;\n};\n\nvar $substring = function(str, low, high) {\n if (low < 0 || high < low || high > str.length) {\n $throwRuntimeError(\"slice bounds out of range\");\n }\n return str.substring(low, high);\n};\n\n// Convert Go slice to an equivalent JS array type.\nvar $sliceToNativeArray = function(slice) {\n if (slice.$array.constructor !== Array) {\n return slice.$array.subarray(slice.$offset, slice.$offset + slice.$length);\n }\n return slice.$array.slice(slice.$offset, slice.$offset + slice.$length);\n};\n\n// Convert Go slice to a pointer to an underlying Go array.\n// \n// Note that an array pointer can be represented by an \"unwrapped\" native array\n// type, and it will be wrapped back into its Go type when necessary.\nvar $sliceToGoArray = function(slice, arrayPtrType) {\n var arrayType = arrayPtrType.elem;\n if (arrayType !== undefined && slice.$length < arrayType.len) {\n $throwRuntimeError(\"cannot convert slice with length \" + slice.$length + \" to pointer to array with length \" + arrayType.len);\n }\n if (slice == slice.constructor.nil) {\n return arrayPtrType.nil; // Nil slice converts to nil array pointer.\n }\n if (slice.$array.constructor !== Array) {\n return slice.$array.subarray(slice.$offset, slice.$offset + arrayType.len);\n }\n if (slice.$offset == 0 && slice.$length == slice.$capacity && slice.$length == arrayType.len) {\n return slice.$array;\n }\n if (arrayType.len == 0) {\n return new arrayType([]);\n }\n\n // Array.slice (unlike TypedArray.subarray) returns a copy of an array range,\n // which is not sharing memory with the original one, which violates the spec\n // for slice to array conversion. This is incompatible with the Go spec, in\n // particular that the assignments to the array elements would be visible in\n // the slice. Prefer to fail explicitly instead of creating subtle bugs.\n $throwRuntimeError(\"gopherjs: non-numeric slice to underlying array conversion is not supported for subslices\");\n};\n\n// Convert between compatible slice types (e.g. native and names).\nvar $convertSliceType = function(slice, desiredType) {\n if (slice == slice.constructor.nil) {\n return desiredType.nil; // Preserve nil value.\n }\n\n return $subslice(new desiredType(slice.$array), slice.$offset, slice.$offset + slice.$length);\n}\n\nvar $decodeRune = function(str, pos) {\n var c0 = str.charCodeAt(pos);\n\n if (c0 < 0x80) {\n return [c0, 1];\n }\n\n if (c0 !== c0 || c0 < 0xC0) {\n return [0xFFFD, 1];\n }\n\n var c1 = str.charCodeAt(pos + 1);\n if (c1 !== c1 || c1 < 0x80 || 0xC0 <= c1) {\n return [0xFFFD, 1];\n }\n\n if (c0 < 0xE0) {\n var r = (c0 & 0x1F) << 6 | (c1 & 0x3F);\n if (r <= 0x7F) {\n return [0xFFFD, 1];\n }\n return [r, 2];\n }\n\n var c2 = str.charCodeAt(pos + 2);\n if (c2 !== c2 || c2 < 0x80 || 0xC0 <= c2) {\n return [0xFFFD, 1];\n }\n\n if (c0 < 0xF0) {\n var r = (c0 & 0x0F) << 12 | (c1 & 0x3F) << 6 | (c2 & 0x3F);\n if (r <= 0x7FF) {\n return [0xFFFD, 1];\n }\n if (0xD800 <= r && r <= 0xDFFF) {\n return [0xFFFD, 1];\n }\n return [r, 3];\n }\n\n var c3 = str.charCodeAt(pos + 3);\n if (c3 !== c3 || c3 < 0x80 || 0xC0 <= c3) {\n return [0xFFFD, 1];\n }\n\n if (c0 < 0xF8) {\n var r = (c0 & 0x07) << 18 | (c1 & 0x3F) << 12 | (c2 & 0x3F) << 6 | (c3 & 0x3F);\n if (r <= 0xFFFF || 0x10FFFF < r) {\n return [0xFFFD, 1];\n }\n return [r, 4];\n }\n\n return [0xFFFD, 1];\n};\n\nvar $encodeRune = function(r) {\n if (r < 0 || r > 0x10FFFF || (0xD800 <= r && r <= 0xDFFF)) {\n r = 0xFFFD;\n }\n if (r <= 0x7F) {\n return String.fromCharCode(r);\n }\n if (r <= 0x7FF) {\n return String.fromCharCode(0xC0 | r >> 6, 0x80 | (r & 0x3F));\n }\n if (r <= 0xFFFF) {\n return String.fromCharCode(0xE0 | r >> 12, 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F));\n }\n return String.fromCharCode(0xF0 | r >> 18, 0x80 | (r >> 12 & 0x3F), 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F));\n};\n\nvar $stringToBytes = function(str) {\n var array = new Uint8Array(str.length);\n for (var i = 0; i < str.length; i++) {\n array[i] = str.charCodeAt(i);\n }\n return array;\n};\n\nvar $bytesToString = function(slice) {\n if (slice.$length === 0) {\n return \"\";\n }\n var str = \"\";\n for (var i = 0; i < slice.$length; i += 10000) {\n str += String.fromCharCode.apply(undefined, slice.$array.subarray(slice.$offset + i, slice.$offset + Math.min(slice.$length, i + 10000)));\n }\n return str;\n};\n\nvar $stringToRunes = function(str) {\n var array = new Int32Array(str.length);\n var rune, j = 0;\n for (var i = 0; i < str.length; i += rune[1], j++) {\n rune = $decodeRune(str, i);\n array[j] = rune[0];\n }\n return array.subarray(0, j);\n};\n\nvar $runesToString = function(slice) {\n if (slice.$length === 0) {\n return \"\";\n }\n var str = \"\";\n for (var i = 0; i < slice.$length; i++) {\n str += $encodeRune(slice.$array[slice.$offset + i]);\n }\n return str;\n};\n\nvar $copyString = function(dst, src) {\n var n = Math.min(src.length, dst.$length);\n for (var i = 0; i < n; i++) {\n dst.$array[dst.$offset + i] = src.charCodeAt(i);\n }\n return n;\n};\n\nvar $copySlice = function(dst, src) {\n var n = Math.min(src.$length, dst.$length);\n $copyArray(dst.$array, src.$array, dst.$offset, src.$offset, n, dst.constructor.elem);\n return n;\n};\n\nvar $copyArray = function(dst, src, dstOffset, srcOffset, n, elem) {\n if (n === 0 || (dst === src && dstOffset === srcOffset)) {\n return;\n }\n\n if (src.subarray) {\n dst.set(src.subarray(srcOffset, srcOffset + n), dstOffset);\n return;\n }\n\n switch (elem.kind) {\n case $kindArray:\n case $kindStruct:\n if (dst === src && dstOffset > srcOffset) {\n for (var i = n - 1; i >= 0; i--) {\n elem.copy(dst[dstOffset + i], src[srcOffset + i]);\n }\n return;\n }\n for (var i = 0; i < n; i++) {\n elem.copy(dst[dstOffset + i], src[srcOffset + i]);\n }\n return;\n }\n\n if (dst === src && dstOffset > srcOffset) {\n for (var i = n - 1; i >= 0; i--) {\n dst[dstOffset + i] = src[srcOffset + i];\n }\n return;\n }\n for (var i = 0; i < n; i++) {\n dst[dstOffset + i] = src[srcOffset + i];\n }\n};\n\nvar $clone = function(src, type) {\n var clone = type.zero();\n type.copy(clone, src);\n return clone;\n};\n\nvar $pointerOfStructConversion = function(obj, type) {\n if(obj.$proxies === undefined) {\n obj.$proxies = {};\n obj.$proxies[obj.constructor.string] = obj;\n }\n var proxy = obj.$proxies[type.string];\n if (proxy === undefined) {\n var properties = {};\n for (var i = 0; i < type.elem.fields.length; i++) {\n (function(fieldProp) {\n properties[fieldProp] = {\n get: function() { return obj[fieldProp]; },\n set: function(value) { obj[fieldProp] = value; }\n };\n })(type.elem.fields[i].prop);\n }\n proxy = Object.create(type.prototype, properties);\n proxy.$val = proxy;\n obj.$proxies[type.string] = proxy;\n proxy.$proxies = obj.$proxies;\n }\n return proxy;\n};\n\nvar $append = function(slice) {\n return $internalAppend(slice, arguments, 1, arguments.length - 1);\n};\n\nvar $appendSlice = function(slice, toAppend) {\n if (toAppend.constructor === String) {\n var bytes = $stringToBytes(toAppend);\n return $internalAppend(slice, bytes, 0, bytes.length);\n }\n return $internalAppend(slice, toAppend.$array, toAppend.$offset, toAppend.$length);\n};\n\nvar $internalAppend = function(slice, array, offset, length) {\n if (length === 0) {\n return slice;\n }\n\n var newArray = slice.$array;\n var newOffset = slice.$offset;\n var newLength = slice.$length + length;\n var newCapacity = slice.$capacity;\n\n if (newLength > newCapacity) {\n newOffset = 0;\n newCapacity = Math.max(newLength, slice.$capacity < 1024 ? slice.$capacity * 2 : Math.floor(slice.$capacity * 5 / 4));\n\n if (slice.$array.constructor === Array) {\n newArray = slice.$array.slice(slice.$offset, slice.$offset + slice.$length);\n newArray.length = newCapacity;\n var zero = slice.constructor.elem.zero;\n for (var i = slice.$length; i < newCapacity; i++) {\n newArray[i] = zero();\n }\n } else {\n newArray = new slice.$array.constructor(newCapacity);\n newArray.set(slice.$array.subarray(slice.$offset, slice.$offset + slice.$length));\n }\n }\n\n $copyArray(newArray, array, newOffset + slice.$length, offset, length, slice.constructor.elem);\n\n var newSlice = new slice.constructor(newArray);\n newSlice.$offset = newOffset;\n newSlice.$length = newLength;\n newSlice.$capacity = newCapacity;\n return newSlice;\n};\n\nvar $equal = function(a, b, type) {\n if (type === $jsObjectPtr) {\n return a === b;\n }\n switch (type.kind) {\n case $kindComplex64:\n case $kindComplex128:\n return a.$real === b.$real && a.$imag === b.$imag;\n case $kindInt64:\n case $kindUint64:\n return a.$high === b.$high && a.$low === b.$low;\n case $kindArray:\n if (a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!$equal(a[i], b[i], type.elem)) {\n return false;\n }\n }\n return true;\n case $kindStruct:\n for (var i = 0; i < type.fields.length; i++) {\n var f = type.fields[i];\n if (!$equal(a[f.prop], b[f.prop], f.typ)) {\n return false;\n }\n }\n return true;\n case $kindInterface:\n return $interfaceIsEqual(a, b);\n default:\n return a === b;\n }\n};\n\nvar $interfaceIsEqual = function(a, b) {\n if (a === $ifaceNil || b === $ifaceNil) {\n return a === b;\n }\n if (a.constructor !== b.constructor) {\n return false;\n }\n if (a.constructor === $jsObjectPtr) {\n return a.object === b.object;\n }\n if (!a.constructor.comparable) {\n $throwRuntimeError(\"comparing uncomparable type \" + a.constructor.string);\n }\n return $equal(a.$val, b.$val, a.constructor);\n};\n\nvar $min = Math.min;\nvar $mod = function(x, y) { return x % y; };\nvar $parseInt = parseInt;\nvar $parseFloat = function(f) {\n if (f !== undefined && f !== null && f.constructor === Number) {\n return f;\n }\n return parseFloat(f);\n};\n\nvar $froundBuf = new Float32Array(1);\nvar $fround = Math.fround || function(f) {\n $froundBuf[0] = f;\n return $froundBuf[0];\n};\n\nvar $imul = Math.imul || function(a, b) {\n var ah = (a >>> 16) & 0xffff;\n var al = a & 0xffff;\n var bh = (b >>> 16) & 0xffff;\n var bl = b & 0xffff;\n return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) >> 0);\n};\n\nvar $floatKey = function(f) {\n if (f !== f) {\n $idCounter++;\n return \"NaN$\" + $idCounter;\n }\n return String(f);\n};\n\nvar $flatten64 = function(x) {\n return x.$high * 4294967296 + x.$low;\n};\n\nvar $shiftLeft64 = function(x, y) {\n if (y === 0) {\n return x;\n }\n if (y < 32) {\n return new x.constructor(x.$high << y | x.$low >>> (32 - y), (x.$low << y) >>> 0);\n }\n if (y < 64) {\n return new x.constructor(x.$low << (y - 32), 0);\n }\n return new x.constructor(0, 0);\n};\n\nvar $shiftRightInt64 = function(x, y) {\n if (y === 0) {\n return x;\n }\n if (y < 32) {\n return new x.constructor(x.$high >> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0);\n }\n if (y < 64) {\n return new x.constructor(x.$high >> 31, (x.$high >> (y - 32)) >>> 0);\n }\n if (x.$high < 0) {\n return new x.constructor(-1, 4294967295);\n }\n return new x.constructor(0, 0);\n};\n\nvar $shiftRightUint64 = function(x, y) {\n if (y === 0) {\n return x;\n }\n if (y < 32) {\n return new x.constructor(x.$high >>> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0);\n }\n if (y < 64) {\n return new x.constructor(0, x.$high >>> (y - 32));\n }\n return new x.constructor(0, 0);\n};\n\nvar $mul64 = function(x, y) {\n var x48 = x.$high >>> 16;\n var x32 = x.$high & 0xFFFF;\n var x16 = x.$low >>> 16;\n var x00 = x.$low & 0xFFFF;\n\n var y48 = y.$high >>> 16;\n var y32 = y.$high & 0xFFFF;\n var y16 = y.$low >>> 16;\n var y00 = y.$low & 0xFFFF;\n\n var z48 = 0, z32 = 0, z16 = 0, z00 = 0;\n z00 += x00 * y00;\n z16 += z00 >>> 16;\n z00 &= 0xFFFF;\n z16 += x16 * y00;\n z32 += z16 >>> 16;\n z16 &= 0xFFFF;\n z16 += x00 * y16;\n z32 += z16 >>> 16;\n z16 &= 0xFFFF;\n z32 += x32 * y00;\n z48 += z32 >>> 16;\n z32 &= 0xFFFF;\n z32 += x16 * y16;\n z48 += z32 >>> 16;\n z32 &= 0xFFFF;\n z32 += x00 * y32;\n z48 += z32 >>> 16;\n z32 &= 0xFFFF;\n z48 += x48 * y00 + x32 * y16 + x16 * y32 + x00 * y48;\n z48 &= 0xFFFF;\n\n var hi = ((z48 << 16) | z32) >>> 0;\n var lo = ((z16 << 16) | z00) >>> 0;\n\n var r = new x.constructor(hi, lo);\n return r;\n};\n\nvar $div64 = function(x, y, returnRemainder) {\n if (y.$high === 0 && y.$low === 0) {\n $throwRuntimeError(\"integer divide by zero\");\n }\n\n var s = 1;\n var rs = 1;\n\n var xHigh = x.$high;\n var xLow = x.$low;\n if (xHigh < 0) {\n s = -1;\n rs = -1;\n xHigh = -xHigh;\n if (xLow !== 0) {\n xHigh--;\n xLow = 4294967296 - xLow;\n }\n }\n\n var yHigh = y.$high;\n var yLow = y.$low;\n if (y.$high < 0) {\n s *= -1;\n yHigh = -yHigh;\n if (yLow !== 0) {\n yHigh--;\n yLow = 4294967296 - yLow;\n }\n }\n\n var high = 0, low = 0, n = 0;\n while (yHigh < 2147483648 && ((xHigh > yHigh) || (xHigh === yHigh && xLow > yLow))) {\n yHigh = (yHigh << 1 | yLow >>> 31) >>> 0;\n yLow = (yLow << 1) >>> 0;\n n++;\n }\n for (var i = 0; i <= n; i++) {\n high = high << 1 | low >>> 31;\n low = (low << 1) >>> 0;\n if ((xHigh > yHigh) || (xHigh === yHigh && xLow >= yLow)) {\n xHigh = xHigh - yHigh;\n xLow = xLow - yLow;\n if (xLow < 0) {\n xHigh--;\n xLow += 4294967296;\n }\n low++;\n if (low === 4294967296) {\n high++;\n low = 0;\n }\n }\n yLow = (yLow >>> 1 | yHigh << (32 - 1)) >>> 0;\n yHigh = yHigh >>> 1;\n }\n\n if (returnRemainder) {\n return new x.constructor(xHigh * rs, xLow * rs);\n }\n return new x.constructor(high * s, low * s);\n};\n\nvar $divComplex = function(n, d) {\n var ninf = n.$real === Infinity || n.$real === -Infinity || n.$imag === Infinity || n.$imag === -Infinity;\n var dinf = d.$real === Infinity || d.$real === -Infinity || d.$imag === Infinity || d.$imag === -Infinity;\n var nnan = !ninf && (n.$real !== n.$real || n.$imag !== n.$imag);\n var dnan = !dinf && (d.$real !== d.$real || d.$imag !== d.$imag);\n if(nnan || dnan) {\n return new n.constructor(NaN, NaN);\n }\n if (ninf && !dinf) {\n return new n.constructor(Infinity, Infinity);\n }\n if (!ninf && dinf) {\n return new n.constructor(0, 0);\n }\n if (d.$real === 0 && d.$imag === 0) {\n if (n.$real === 0 && n.$imag === 0) {\n return new n.constructor(NaN, NaN);\n }\n return new n.constructor(Infinity, Infinity);\n }\n var a = Math.abs(d.$real);\n var b = Math.abs(d.$imag);\n if (a <= b) {\n var ratio = d.$real / d.$imag;\n var denom = d.$real * ratio + d.$imag;\n return new n.constructor((n.$real * ratio + n.$imag) / denom, (n.$imag * ratio - n.$real) / denom);\n }\n var ratio = d.$imag / d.$real;\n var denom = d.$imag * ratio + d.$real;\n return new n.constructor((n.$imag * ratio + n.$real) / denom, (n.$imag - n.$real * ratio) / denom);\n};\n\nvar $kindBool = 1;\nvar $kindInt = 2;\nvar $kindInt8 = 3;\nvar $kindInt16 = 4;\nvar $kindInt32 = 5;\nvar $kindInt64 = 6;\nvar $kindUint = 7;\nvar $kindUint8 = 8;\nvar $kindUint16 = 9;\nvar $kindUint32 = 10;\nvar $kindUint64 = 11;\nvar $kindUintptr = 12;\nvar $kindFloat32 = 13;\nvar $kindFloat64 = 14;\nvar $kindComplex64 = 15;\nvar $kindComplex128 = 16;\nvar $kindArray = 17;\nvar $kindChan = 18;\nvar $kindFunc = 19;\nvar $kindInterface = 20;\nvar $kindMap = 21;\nvar $kindPtr = 22;\nvar $kindSlice = 23;\nvar $kindString = 24;\nvar $kindStruct = 25;\nvar $kindUnsafePointer = 26;\n\nvar $methodSynthesizers = [];\nvar $addMethodSynthesizer = function(f) {\n if ($methodSynthesizers === null) {\n f();\n return;\n }\n $methodSynthesizers.push(f);\n};\nvar $synthesizeMethods = function() {\n $methodSynthesizers.forEach(function(f) { f(); });\n $methodSynthesizers = null;\n};\n\nvar $ifaceKeyFor = function(x) {\n if (x === $ifaceNil) {\n return 'nil';\n }\n var c = x.constructor;\n return c.string + '$' + c.keyFor(x.$val);\n};\n\nvar $identity = function(x) { return x; };\n\nvar $typeIDCounter = 0;\n\nvar $idKey = function(x) {\n if (x.$id === undefined) {\n $idCounter++;\n x.$id = $idCounter;\n }\n return String(x.$id);\n};\n\n// Creates constructor functions for array pointer types. Returns a new function\n// instace each time to make sure each type is independent of the other.\nvar $arrayPtrCtor = function() {\n return function(array) {\n this.$get = function() { return array; };\n this.$set = function(v) { typ.copy(this, v); };\n this.$val = array;\n }\n}\n\nvar $newType = function(size, kind, string, named, pkg, exported, constructor) {\n var typ;\n switch(kind) {\n case $kindBool:\n case $kindInt:\n case $kindInt8:\n case $kindInt16:\n case $kindInt32:\n case $kindUint:\n case $kindUint8:\n case $kindUint16:\n case $kindUint32:\n case $kindUintptr:\n case $kindUnsafePointer:\n typ = function(v) { this.$val = v; };\n typ.wrapped = true;\n typ.keyFor = $identity;\n break;\n\n case $kindString:\n typ = function(v) { this.$val = v; };\n typ.wrapped = true;\n typ.keyFor = function(x) { return \"$\" + x; };\n break;\n\n case $kindFloat32:\n case $kindFloat64:\n typ = function(v) { this.$val = v; };\n typ.wrapped = true;\n typ.keyFor = function(x) { return $floatKey(x); };\n break;\n\n case $kindInt64:\n typ = function(high, low) {\n this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >> 0;\n this.$low = low >>> 0;\n this.$val = this;\n };\n typ.keyFor = function(x) { return x.$high + \"$\" + x.$low; };\n break;\n\n case $kindUint64:\n typ = function(high, low) {\n this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >>> 0;\n this.$low = low >>> 0;\n this.$val = this;\n };\n typ.keyFor = function(x) { return x.$high + \"$\" + x.$low; };\n break;\n\n case $kindComplex64:\n typ = function(real, imag) {\n this.$real = $fround(real);\n this.$imag = $fround(imag);\n this.$val = this;\n };\n typ.keyFor = function(x) { return x.$real + \"$\" + x.$imag; };\n break;\n\n case $kindComplex128:\n typ = function(real, imag) {\n this.$real = real;\n this.$imag = imag;\n this.$val = this;\n };\n typ.keyFor = function(x) { return x.$real + \"$\" + x.$imag; };\n break;\n\n case $kindArray:\n typ = function(v) { this.$val = v; };\n typ.wrapped = true;\n typ.ptr = $newType(4, $kindPtr, \"*\" + string, false, \"\", false, $arrayPtrCtor());\n typ.init = function(elem, len) {\n typ.elem = elem;\n typ.len = len;\n typ.comparable = elem.comparable;\n typ.keyFor = function(x) {\n return Array.prototype.join.call($mapArray(x, function(e) {\n return String(elem.keyFor(e)).replace(/\\\\/g, \"\\\\\\\\\").replace(/\\$/g, \"\\\\$\");\n }), \"$\");\n };\n typ.copy = function(dst, src) {\n $copyArray(dst, src, 0, 0, src.length, elem);\n };\n typ.ptr.init(typ);\n Object.defineProperty(typ.ptr.nil, \"nilCheck\", { get: $throwNilPointerError });\n };\n break;\n\n case $kindChan:\n typ = function(v) { this.$val = v; };\n typ.wrapped = true;\n typ.keyFor = $idKey;\n typ.init = function(elem, sendOnly, recvOnly) {\n typ.elem = elem;\n typ.sendOnly = sendOnly;\n typ.recvOnly = recvOnly;\n };\n break;\n\n case $kindFunc:\n typ = function(v) { this.$val = v; };\n typ.wrapped = true;\n typ.init = function(params, results, variadic) {\n typ.params = params;\n typ.results = results;\n typ.variadic = variadic;\n typ.comparable = false;\n };\n break;\n\n case $kindInterface:\n typ = { implementedBy: {}, missingMethodFor: {} };\n typ.keyFor = $ifaceKeyFor;\n typ.init = function(methods) {\n typ.methods = methods;\n methods.forEach(function(m) {\n $ifaceNil[m.prop] = $throwNilPointerError;\n });\n };\n break;\n\n case $kindMap:\n typ = function(v) { this.$val = v; };\n typ.wrapped = true;\n typ.init = function(key, elem) {\n typ.key = key;\n typ.elem = elem;\n typ.comparable = false;\n };\n break;\n\n case $kindPtr:\n typ = constructor || function(getter, setter, target) {\n this.$get = getter;\n this.$set = setter;\n this.$target = target;\n this.$val = this;\n };\n typ.keyFor = $idKey;\n typ.init = function(elem) {\n typ.elem = elem;\n typ.wrapped = (elem.kind === $kindArray);\n typ.nil = new typ($throwNilPointerError, $throwNilPointerError);\n };\n break;\n\n case $kindSlice:\n typ = function(array) {\n if (array.constructor !== typ.nativeArray) {\n array = new typ.nativeArray(array);\n }\n this.$array = array;\n this.$offset = 0;\n this.$length = array.length;\n this.$capacity = array.length;\n this.$val = this;\n };\n typ.init = function(elem) {\n typ.elem = elem;\n typ.comparable = false;\n typ.nativeArray = $nativeArray(elem.kind);\n typ.nil = new typ([]);\n };\n break;\n\n case $kindStruct:\n typ = function(v) { this.$val = v; };\n typ.wrapped = true;\n typ.ptr = $newType(4, $kindPtr, \"*\" + string, false, pkg, exported, constructor);\n typ.ptr.elem = typ;\n typ.ptr.prototype.$get = function() { return this; };\n typ.ptr.prototype.$set = function(v) { typ.copy(this, v); };\n typ.init = function(pkgPath, fields) {\n typ.pkgPath = pkgPath;\n typ.fields = fields;\n fields.forEach(function(f) {\n if (!f.typ.comparable) {\n typ.comparable = false;\n }\n });\n typ.keyFor = function(x) {\n var val = x.$val;\n return $mapArray(fields, function(f) {\n return String(f.typ.keyFor(val[f.prop])).replace(/\\\\/g, \"\\\\\\\\\").replace(/\\$/g, \"\\\\$\");\n }).join(\"$\");\n };\n typ.copy = function(dst, src) {\n for (var i = 0; i < fields.length; i++) {\n var f = fields[i];\n switch (f.typ.kind) {\n case $kindArray:\n case $kindStruct:\n f.typ.copy(dst[f.prop], src[f.prop]);\n continue;\n default:\n dst[f.prop] = src[f.prop];\n continue;\n }\n }\n };\n /* nil value */\n var properties = {};\n fields.forEach(function(f) {\n properties[f.prop] = { get: $throwNilPointerError, set: $throwNilPointerError };\n });\n typ.ptr.nil = Object.create(constructor.prototype, properties);\n typ.ptr.nil.$val = typ.ptr.nil;\n /* methods for embedded fields */\n $addMethodSynthesizer(function() {\n var synthesizeMethod = function(target, m, f) {\n if (target.prototype[m.prop] !== undefined) { return; }\n target.prototype[m.prop] = function() {\n var v = this.$val[f.prop];\n if (f.typ === $jsObjectPtr) {\n v = new $jsObjectPtr(v);\n }\n if (v.$val === undefined) {\n v = new f.typ(v);\n }\n return v[m.prop].apply(v, arguments);\n };\n };\n fields.forEach(function(f) {\n if (f.embedded) {\n $methodSet(f.typ).forEach(function(m) {\n synthesizeMethod(typ, m, f);\n synthesizeMethod(typ.ptr, m, f);\n });\n $methodSet($ptrType(f.typ)).forEach(function(m) {\n synthesizeMethod(typ.ptr, m, f);\n });\n }\n });\n });\n };\n break;\n\n default:\n $panic(new $String(\"invalid kind: \" + kind));\n }\n\n switch (kind) {\n case $kindBool:\n case $kindMap:\n typ.zero = function() { return false; };\n break;\n\n case $kindInt:\n case $kindInt8:\n case $kindInt16:\n case $kindInt32:\n case $kindUint:\n case $kindUint8 :\n case $kindUint16:\n case $kindUint32:\n case $kindUintptr:\n case $kindUnsafePointer:\n case $kindFloat32:\n case $kindFloat64:\n typ.zero = function() { return 0; };\n break;\n\n case $kindString:\n typ.zero = function() { return \"\"; };\n break;\n\n case $kindInt64:\n case $kindUint64:\n case $kindComplex64:\n case $kindComplex128:\n var zero = new typ(0, 0);\n typ.zero = function() { return zero; };\n break;\n\n case $kindPtr:\n case $kindSlice:\n typ.zero = function() { return typ.nil; };\n break;\n\n case $kindChan:\n typ.zero = function() { return $chanNil; };\n break;\n\n case $kindFunc:\n typ.zero = function() { return $throwNilPointerError; };\n break;\n\n case $kindInterface:\n typ.zero = function() { return $ifaceNil; };\n break;\n\n case $kindArray:\n typ.zero = function() {\n var arrayClass = $nativeArray(typ.elem.kind);\n if (arrayClass !== Array) {\n return new arrayClass(typ.len);\n }\n var array = new Array(typ.len);\n for (var i = 0; i < typ.len; i++) {\n array[i] = typ.elem.zero();\n }\n return array;\n };\n break;\n\n case $kindStruct:\n typ.zero = function() { return new typ.ptr(); };\n break;\n\n default:\n $panic(new $String(\"invalid kind: \" + kind));\n }\n\n typ.id = $typeIDCounter;\n $typeIDCounter++;\n typ.size = size;\n typ.kind = kind;\n typ.string = string;\n typ.named = named;\n typ.pkg = pkg;\n typ.exported = exported;\n typ.methods = [];\n typ.methodSetCache = null;\n typ.comparable = true;\n return typ;\n};\n\nvar $methodSet = function(typ) {\n if (typ.methodSetCache !== null) {\n return typ.methodSetCache;\n }\n var base = {};\n\n var isPtr = (typ.kind === $kindPtr);\n if (isPtr && typ.elem.kind === $kindInterface) {\n typ.methodSetCache = [];\n return [];\n }\n\n var current = [{typ: isPtr ? typ.elem : typ, indirect: isPtr}];\n\n var seen = {};\n\n while (current.length > 0) {\n var next = [];\n var mset = [];\n\n current.forEach(function(e) {\n if (seen[e.typ.string]) {\n return;\n }\n seen[e.typ.string] = true;\n\n if (e.typ.named) {\n mset = mset.concat(e.typ.methods);\n if (e.indirect) {\n mset = mset.concat($ptrType(e.typ).methods);\n }\n }\n\n switch (e.typ.kind) {\n case $kindStruct:\n e.typ.fields.forEach(function(f) {\n if (f.embedded) {\n var fTyp = f.typ;\n var fIsPtr = (fTyp.kind === $kindPtr);\n next.push({typ: fIsPtr ? fTyp.elem : fTyp, indirect: e.indirect || fIsPtr});\n }\n });\n break;\n\n case $kindInterface:\n mset = mset.concat(e.typ.methods);\n break;\n }\n });\n\n mset.forEach(function(m) {\n if (base[m.name] === undefined) {\n base[m.name] = m;\n }\n });\n\n current = next;\n }\n\n typ.methodSetCache = [];\n Object.keys(base).sort().forEach(function(name) {\n typ.methodSetCache.push(base[name]);\n });\n return typ.methodSetCache;\n};\n\nvar $Bool = $newType( 1, $kindBool, \"bool\", true, \"\", false, null);\nvar $Int = $newType( 4, $kindInt, \"int\", true, \"\", false, null);\nvar $Int8 = $newType( 1, $kindInt8, \"int8\", true, \"\", false, null);\nvar $Int16 = $newType( 2, $kindInt16, \"int16\", true, \"\", false, null);\nvar $Int32 = $newType( 4, $kindInt32, \"int32\", true, \"\", false, null);\nvar $Int64 = $newType( 8, $kindInt64, \"int64\", true, \"\", false, null);\nvar $Uint = $newType( 4, $kindUint, \"uint\", true, \"\", false, null);\nvar $Uint8 = $newType( 1, $kindUint8, \"uint8\", true, \"\", false, null);\nvar $Uint16 = $newType( 2, $kindUint16, \"uint16\", true, \"\", false, null);\nvar $Uint32 = $newType( 4, $kindUint32, \"uint32\", true, \"\", false, null);\nvar $Uint64 = $newType( 8, $kindUint64, \"uint64\", true, \"\", false, null);\nvar $Uintptr = $newType( 4, $kindUintptr, \"uintptr\", true, \"\", false, null);\nvar $Float32 = $newType( 4, $kindFloat32, \"float32\", true, \"\", false, null);\nvar $Float64 = $newType( 8, $kindFloat64, \"float64\", true, \"\", false, null);\nvar $Complex64 = $newType( 8, $kindComplex64, \"complex64\", true, \"\", false, null);\nvar $Complex128 = $newType(16, $kindComplex128, \"complex128\", true, \"\", false, null);\nvar $String = $newType( 8, $kindString, \"string\", true, \"\", false, null);\nvar $UnsafePointer = $newType( 4, $kindUnsafePointer, \"unsafe.Pointer\", true, \"unsafe\", false, null);\n\nvar $nativeArray = function(elemKind) {\n switch (elemKind) {\n case $kindInt:\n return Int32Array;\n case $kindInt8:\n return Int8Array;\n case $kindInt16:\n return Int16Array;\n case $kindInt32:\n return Int32Array;\n case $kindUint:\n return Uint32Array;\n case $kindUint8:\n return Uint8Array;\n case $kindUint16:\n return Uint16Array;\n case $kindUint32:\n return Uint32Array;\n case $kindUintptr:\n return Uint32Array;\n case $kindFloat32:\n return Float32Array;\n case $kindFloat64:\n return Float64Array;\n default:\n return Array;\n }\n};\nvar $toNativeArray = function(elemKind, array) {\n var nativeArray = $nativeArray(elemKind);\n if (nativeArray === Array) {\n return array;\n }\n return new nativeArray(array);\n};\nvar $arrayTypes = {};\nvar $arrayType = function(elem, len) {\n var typeKey = elem.id + \"$\" + len;\n var typ = $arrayTypes[typeKey];\n if (typ === undefined) {\n typ = $newType(12, $kindArray, \"[\" + len + \"]\" + elem.string, false, \"\", false, null);\n $arrayTypes[typeKey] = typ;\n typ.init(elem, len);\n }\n return typ;\n};\n\nvar $chanType = function(elem, sendOnly, recvOnly) {\n var string = (recvOnly ? \"<-\" : \"\") + \"chan\" + (sendOnly ? \"<- \" : \" \");\n if (!sendOnly && !recvOnly && (elem.string[0] == \"<\")) {\n string += \"(\" + elem.string + \")\";\n } else {\n string += elem.string;\n }\n var field = sendOnly ? \"SendChan\" : (recvOnly ? \"RecvChan\" : \"Chan\");\n var typ = elem[field];\n if (typ === undefined) {\n typ = $newType(4, $kindChan, string, false, \"\", false, null);\n elem[field] = typ;\n typ.init(elem, sendOnly, recvOnly);\n }\n return typ;\n};\nvar $Chan = function(elem, capacity) {\n if (capacity < 0 || capacity > 2147483647) {\n $throwRuntimeError(\"makechan: size out of range\");\n }\n this.$elem = elem;\n this.$capacity = capacity;\n this.$buffer = [];\n this.$sendQueue = [];\n this.$recvQueue = [];\n this.$closed = false;\n};\nvar $chanNil = new $Chan(null, 0);\n$chanNil.$sendQueue = $chanNil.$recvQueue = { length: 0, push: function() {}, shift: function() { return undefined; }, indexOf: function() { return -1; } };\n\nvar $funcTypes = {};\nvar $funcType = function(params, results, variadic) {\n var typeKey = $mapArray(params, function(p) { return p.id; }).join(\",\") + \"$\" + $mapArray(results, function(r) { return r.id; }).join(\",\") + \"$\" + variadic;\n var typ = $funcTypes[typeKey];\n if (typ === undefined) {\n var paramTypes = $mapArray(params, function(p) { return p.string; });\n if (variadic) {\n paramTypes[paramTypes.length - 1] = \"...\" + paramTypes[paramTypes.length - 1].substr(2);\n }\n var string = \"func(\" + paramTypes.join(\", \") + \")\";\n if (results.length === 1) {\n string += \" \" + results[0].string;\n } else if (results.length > 1) {\n string += \" (\" + $mapArray(results, function(r) { return r.string; }).join(\", \") + \")\";\n }\n typ = $newType(4, $kindFunc, string, false, \"\", false, null);\n $funcTypes[typeKey] = typ;\n typ.init(params, results, variadic);\n }\n return typ;\n};\n\nvar $interfaceTypes = {};\nvar $interfaceType = function(methods) {\n var typeKey = $mapArray(methods, function(m) { return m.pkg + \",\" + m.name + \",\" + m.typ.id; }).join(\"$\");\n var typ = $interfaceTypes[typeKey];\n if (typ === undefined) {\n var string = \"interface {}\";\n if (methods.length !== 0) {\n string = \"interface { \" + $mapArray(methods, function(m) {\n return (m.pkg !== \"\" ? m.pkg + \".\" : \"\") + m.name + m.typ.string.substr(4);\n }).join(\"; \") + \" }\";\n }\n typ = $newType(8, $kindInterface, string, false, \"\", false, null);\n $interfaceTypes[typeKey] = typ;\n typ.init(methods);\n }\n return typ;\n};\nvar $emptyInterface = $interfaceType([]);\nvar $ifaceNil = {};\nvar $error = $newType(8, $kindInterface, \"error\", true, \"\", false, null);\n$error.init([{prop: \"Error\", name: \"Error\", pkg: \"\", typ: $funcType([], [$String], false)}]);\n\nvar $mapTypes = {};\nvar $mapType = function(key, elem) {\n var typeKey = key.id + \"$\" + elem.id;\n var typ = $mapTypes[typeKey];\n if (typ === undefined) {\n typ = $newType(4, $kindMap, \"map[\" + key.string + \"]\" + elem.string, false, \"\", false, null);\n $mapTypes[typeKey] = typ;\n typ.init(key, elem);\n }\n return typ;\n};\nvar $makeMap = function(keyForFunc, entries) {\n var m = new Map();\n for (var i = 0; i < entries.length; i++) {\n var e = entries[i];\n m.set(keyForFunc(e.k), e);\n }\n return m;\n};\n\nvar $ptrType = function(elem) {\n var typ = elem.ptr;\n if (typ === undefined) {\n typ = $newType(4, $kindPtr, \"*\" + elem.string, false, \"\", elem.exported, null);\n elem.ptr = typ;\n typ.init(elem);\n }\n return typ;\n};\n\nvar $newDataPointer = function(data, constructor) {\n if (constructor.elem.kind === $kindStruct) {\n return data;\n }\n return new constructor(function() { return data; }, function(v) { data = v; });\n};\n\nvar $indexPtr = function(array, index, constructor) {\n if (array.buffer) {\n // Pointers to the same underlying ArrayBuffer share cache.\n var cache = array.buffer.$ptr = array.buffer.$ptr || {};\n // Pointers of different primitive types are non-comparable and stored in different caches.\n var typeCache = cache[array.name] = cache[array.name] || {};\n var cacheIdx = array.BYTES_PER_ELEMENT * index + array.byteOffset;\n return typeCache[cacheIdx] || (typeCache[cacheIdx] = new constructor(function() { return array[index]; }, function(v) { array[index] = v; }));\n } else {\n array.$ptr = array.$ptr || {};\n return array.$ptr[index] || (array.$ptr[index] = new constructor(function() { return array[index]; }, function(v) { array[index] = v; }));\n }\n};\n\nvar $sliceType = function(elem) {\n var typ = elem.slice;\n if (typ === undefined) {\n typ = $newType(12, $kindSlice, \"[]\" + elem.string, false, \"\", false, null);\n elem.slice = typ;\n typ.init(elem);\n }\n return typ;\n};\nvar $makeSlice = function(typ, length, capacity) {\n capacity = capacity || length;\n if (length < 0 || length > 2147483647) {\n $throwRuntimeError(\"makeslice: len out of range\");\n }\n if (capacity < 0 || capacity < length || capacity > 2147483647) {\n $throwRuntimeError(\"makeslice: cap out of range\");\n }\n var array = new typ.nativeArray(capacity);\n if (typ.nativeArray === Array) {\n for (var i = 0; i < capacity; i++) {\n array[i] = typ.elem.zero();\n }\n }\n var slice = new typ(array);\n slice.$length = length;\n return slice;\n};\n\nvar $structTypes = {};\nvar $structType = function(pkgPath, fields) {\n var typeKey = $mapArray(fields, function(f) { return f.name + \",\" + f.typ.id + \",\" + f.tag; }).join(\"$\");\n var typ = $structTypes[typeKey];\n if (typ === undefined) {\n var string = \"struct { \" + $mapArray(fields, function(f) {\n var str = f.typ.string + (f.tag !== \"\" ? (\" \\\"\" + f.tag.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"\") : \"\");\n if (f.embedded) {\n return str;\n }\n return f.name + \" \" + str;\n }).join(\"; \") + \" }\";\n if (fields.length === 0) {\n string = \"struct {}\";\n }\n typ = $newType(0, $kindStruct, string, false, \"\", false, function() {\n this.$val = this;\n for (var i = 0; i < fields.length; i++) {\n var f = fields[i];\n if (f.name == '_') {\n continue;\n }\n var arg = arguments[i];\n this[f.prop] = arg !== undefined ? arg : f.typ.zero();\n }\n });\n $structTypes[typeKey] = typ;\n typ.init(pkgPath, fields);\n }\n return typ;\n};\n\nvar $assertType = function(value, type, returnTuple) {\n var isInterface = (type.kind === $kindInterface), ok, missingMethod = \"\";\n if (value === $ifaceNil) {\n ok = false;\n } else if (!isInterface) {\n ok = value.constructor === type;\n } else {\n var valueTypeString = value.constructor.string;\n ok = type.implementedBy[valueTypeString];\n if (ok === undefined) {\n ok = true;\n var valueMethodSet = $methodSet(value.constructor);\n var interfaceMethods = type.methods;\n for (var i = 0; i < interfaceMethods.length; i++) {\n var tm = interfaceMethods[i];\n var found = false;\n for (var j = 0; j < valueMethodSet.length; j++) {\n var vm = valueMethodSet[j];\n if (vm.name === tm.name && vm.pkg === tm.pkg && vm.typ === tm.typ) {\n found = true;\n break;\n }\n }\n if (!found) {\n ok = false;\n type.missingMethodFor[valueTypeString] = tm.name;\n break;\n }\n }\n type.implementedBy[valueTypeString] = ok;\n }\n if (!ok) {\n missingMethod = type.missingMethodFor[valueTypeString];\n }\n }\n\n if (!ok) {\n if (returnTuple) {\n return [type.zero(), false];\n }\n $panic(new $packages[\"runtime\"].TypeAssertionError.ptr(\n $packages[\"runtime\"]._type.ptr.nil,\n (value === $ifaceNil ? $packages[\"runtime\"]._type.ptr.nil : new $packages[\"runtime\"]._type.ptr(value.constructor.string)),\n new $packages[\"runtime\"]._type.ptr(type.string),\n missingMethod));\n }\n\n if (!isInterface) {\n value = value.$val;\n }\n if (type === $jsObjectPtr) {\n value = value.object;\n }\n return returnTuple ? [value, true] : value;\n};\n\nvar $stackDepthOffset = 0;\nvar $getStackDepth = function() {\n var err = new Error();\n if (err.stack === undefined) {\n return undefined;\n }\n return $stackDepthOffset + err.stack.split(\"\\n\").length;\n};\n\nvar $panicStackDepth = null, $panicValue;\nvar $callDeferred = function(deferred, jsErr, fromPanic) {\n if (!fromPanic && deferred !== null && $curGoroutine.deferStack.indexOf(deferred) == -1) {\n throw jsErr;\n }\n if (jsErr !== null) {\n var newErr = null;\n try {\n $panic(new $jsErrorPtr(jsErr));\n } catch (err) {\n newErr = err;\n }\n $callDeferred(deferred, newErr);\n return;\n }\n if ($curGoroutine.asleep) {\n return;\n }\n\n $stackDepthOffset--;\n var outerPanicStackDepth = $panicStackDepth;\n var outerPanicValue = $panicValue;\n\n var localPanicValue = $curGoroutine.panicStack.pop();\n if (localPanicValue !== undefined) {\n $panicStackDepth = $getStackDepth();\n $panicValue = localPanicValue;\n }\n\n try {\n while (true) {\n if (deferred === null) {\n deferred = $curGoroutine.deferStack[$curGoroutine.deferStack.length - 1];\n if (deferred === undefined) {\n /* The panic reached the top of the stack. Clear it and throw it as a JavaScript error. */\n $panicStackDepth = null;\n if (localPanicValue.Object instanceof Error) {\n throw localPanicValue.Object;\n }\n var msg;\n if (localPanicValue.constructor === $String) {\n msg = localPanicValue.$val;\n } else if (localPanicValue.Error !== undefined) {\n msg = localPanicValue.Error();\n } else if (localPanicValue.String !== undefined) {\n msg = localPanicValue.String();\n } else {\n msg = localPanicValue;\n }\n throw new Error(msg);\n }\n }\n var call = deferred.pop();\n if (call === undefined) {\n $curGoroutine.deferStack.pop();\n if (localPanicValue !== undefined) {\n deferred = null;\n continue;\n }\n return;\n }\n var r = call[0].apply(call[2], call[1]);\n if (r && r.$blk !== undefined) {\n deferred.push([r.$blk, [], r]);\n if (fromPanic) {\n throw null;\n }\n return;\n }\n\n if (localPanicValue !== undefined && $panicStackDepth === null) {\n /* error was recovered */\n if (fromPanic) {\n throw null;\n }\n return;\n }\n }\n } catch(e) {\n // Deferred function threw a JavaScript exception or tries to unwind stack\n // to the point where a panic was handled.\n if (fromPanic) {\n // Re-throw the exception to reach deferral execution call at the end\n // of the function.\n throw e;\n }\n // We are at the end of the function, handle the error or re-throw to\n // continue unwinding if necessary, or simply stop unwinding if we got far\n // enough.\n $callDeferred(deferred, e, fromPanic);\n } finally {\n if (localPanicValue !== undefined) {\n if ($panicStackDepth !== null) {\n $curGoroutine.panicStack.push(localPanicValue);\n }\n $panicStackDepth = outerPanicStackDepth;\n $panicValue = outerPanicValue;\n }\n $stackDepthOffset++;\n }\n};\n\nvar $panic = function(value) {\n $curGoroutine.panicStack.push(value);\n $callDeferred(null, null, true);\n};\nvar $recover = function() {\n if ($panicStackDepth === null || ($panicStackDepth !== undefined && $panicStackDepth !== $getStackDepth() - 2)) {\n return $ifaceNil;\n }\n $panicStackDepth = null;\n return $panicValue;\n};\nvar $throw = function(err) { throw err; };\n\nvar $noGoroutine = { asleep: false, exit: false, deferStack: [], panicStack: [] };\nvar $curGoroutine = $noGoroutine, $totalGoroutines = 0, $awakeGoroutines = 0, $checkForDeadlock = true, $exportedFunctions = 0;\nvar $mainFinished = false;\nvar $go = function(fun, args) {\n $totalGoroutines++;\n $awakeGoroutines++;\n var $goroutine = function() {\n try {\n $curGoroutine = $goroutine;\n var r = fun.apply(undefined, args);\n if (r && r.$blk !== undefined) {\n fun = function() { return r.$blk(); };\n args = [];\n return;\n }\n $goroutine.exit = true;\n } catch (err) {\n if (!$goroutine.exit) {\n throw err;\n }\n } finally {\n $curGoroutine = $noGoroutine;\n if ($goroutine.exit) { /* also set by runtime.Goexit() */\n $totalGoroutines--;\n $goroutine.asleep = true;\n }\n if ($goroutine.asleep) {\n $awakeGoroutines--;\n if (!$mainFinished && $awakeGoroutines === 0 && $checkForDeadlock && $exportedFunctions === 0) {\n console.error(\"fatal error: all goroutines are asleep - deadlock!\");\n if ($global.process !== undefined) {\n $global.process.exit(2);\n }\n }\n }\n }\n };\n $goroutine.asleep = false;\n $goroutine.exit = false;\n $goroutine.deferStack = [];\n $goroutine.panicStack = [];\n $schedule($goroutine);\n};\n\nvar $scheduled = [];\nvar $runScheduled = function() {\n // For nested setTimeout calls browsers enforce 4ms minimum delay. We minimize\n // the effect of this penalty by queueing the timer preemptively before we run\n // the goroutines, and later cancelling it if it turns out unneeded. See:\n // https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#nested_timeouts\n var nextRun = setTimeout($runScheduled);\n try {\n var start = Date.now();\n var r;\n while ((r = $scheduled.shift()) !== undefined) {\n r();\n // We need to interrupt this loop in order to allow the event loop to\n // process timers, IO, etc. However, invoking scheduling through\n // setTimeout is ~1000 times more expensive, so we amortize this cost by\n // looping until the 4ms minimal delay has elapsed (assuming there are\n // scheduled goroutines to run), and then yield to the event loop.\n var elapsed = Date.now() - start;\n if (elapsed > 4 || elapsed < 0) { break; }\n }\n } finally {\n if ($scheduled.length == 0) {\n // Cancel scheduling pass if there's nothing to run.\n clearTimeout(nextRun);\n }\n }\n};\n\nvar $schedule = function(goroutine) {\n if (goroutine.asleep) {\n goroutine.asleep = false;\n $awakeGoroutines++;\n }\n $scheduled.push(goroutine);\n if ($curGoroutine === $noGoroutine) {\n $runScheduled();\n }\n};\n\nvar $setTimeout = function(f, t) {\n $awakeGoroutines++;\n return setTimeout(function() {\n $awakeGoroutines--;\n f();\n }, t);\n};\n\nvar $block = function() {\n if ($curGoroutine === $noGoroutine) {\n $throwRuntimeError(\"cannot block in JavaScript callback, fix by wrapping code in goroutine\");\n }\n $curGoroutine.asleep = true;\n};\n\nvar $restore = function(context, params) {\n if (context !== undefined && context.$blk !== undefined) {\n return context;\n }\n return params;\n}\n\nvar $send = function(chan, value) {\n if (chan.$closed) {\n $throwRuntimeError(\"send on closed channel\");\n }\n var queuedRecv = chan.$recvQueue.shift();\n if (queuedRecv !== undefined) {\n queuedRecv([value, true]);\n return;\n }\n if (chan.$buffer.length < chan.$capacity) {\n chan.$buffer.push(value);\n return;\n }\n\n var thisGoroutine = $curGoroutine;\n var closedDuringSend;\n chan.$sendQueue.push(function(closed) {\n closedDuringSend = closed;\n $schedule(thisGoroutine);\n return value;\n });\n $block();\n return {\n $blk: function() {\n if (closedDuringSend) {\n $throwRuntimeError(\"send on closed channel\");\n }\n }\n };\n};\nvar $recv = function(chan) {\n var queuedSend = chan.$sendQueue.shift();\n if (queuedSend !== undefined) {\n chan.$buffer.push(queuedSend(false));\n }\n var bufferedValue = chan.$buffer.shift();\n if (bufferedValue !== undefined) {\n return [bufferedValue, true];\n }\n if (chan.$closed) {\n return [chan.$elem.zero(), false];\n }\n\n var thisGoroutine = $curGoroutine;\n var f = { $blk: function() { return this.value; } };\n var queueEntry = function(v) {\n f.value = v;\n $schedule(thisGoroutine);\n };\n chan.$recvQueue.push(queueEntry);\n $block();\n return f;\n};\nvar $close = function(chan) {\n if (chan.$closed) {\n $throwRuntimeError(\"close of closed channel\");\n }\n chan.$closed = true;\n while (true) {\n var queuedSend = chan.$sendQueue.shift();\n if (queuedSend === undefined) {\n break;\n }\n queuedSend(true); /* will panic */\n }\n while (true) {\n var queuedRecv = chan.$recvQueue.shift();\n if (queuedRecv === undefined) {\n break;\n }\n queuedRecv([chan.$elem.zero(), false]);\n }\n};\nvar $select = function(comms) {\n var ready = [];\n var selection = -1;\n for (var i = 0; i < comms.length; i++) {\n var comm = comms[i];\n var chan = comm[0];\n switch (comm.length) {\n case 0: /* default */\n selection = i;\n break;\n case 1: /* recv */\n if (chan.$sendQueue.length !== 0 || chan.$buffer.length !== 0 || chan.$closed) {\n ready.push(i);\n }\n break;\n case 2: /* send */\n if (chan.$closed) {\n $throwRuntimeError(\"send on closed channel\");\n }\n if (chan.$recvQueue.length !== 0 || chan.$buffer.length < chan.$capacity) {\n ready.push(i);\n }\n break;\n }\n }\n\n if (ready.length !== 0) {\n selection = ready[Math.floor(Math.random() * ready.length)];\n }\n if (selection !== -1) {\n var comm = comms[selection];\n switch (comm.length) {\n case 0: /* default */\n return [selection];\n case 1: /* recv */\n return [selection, $recv(comm[0])];\n case 2: /* send */\n $send(comm[0], comm[1]);\n return [selection];\n }\n }\n\n var entries = [];\n var thisGoroutine = $curGoroutine;\n var f = { $blk: function() { return this.selection; } };\n var removeFromQueues = function() {\n for (var i = 0; i < entries.length; i++) {\n var entry = entries[i];\n var queue = entry[0];\n var index = queue.indexOf(entry[1]);\n if (index !== -1) {\n queue.splice(index, 1);\n }\n }\n };\n for (var i = 0; i < comms.length; i++) {\n (function(i) {\n var comm = comms[i];\n switch (comm.length) {\n case 1: /* recv */\n var queueEntry = function(value) {\n f.selection = [i, value];\n removeFromQueues();\n $schedule(thisGoroutine);\n };\n entries.push([comm[0].$recvQueue, queueEntry]);\n comm[0].$recvQueue.push(queueEntry);\n break;\n case 2: /* send */\n var queueEntry = function() {\n if (comm[0].$closed) {\n $throwRuntimeError(\"send on closed channel\");\n }\n f.selection = [i];\n removeFromQueues();\n $schedule(thisGoroutine);\n return comm[1];\n };\n entries.push([comm[0].$sendQueue, queueEntry]);\n comm[0].$sendQueue.push(queueEntry);\n break;\n }\n })(i);\n }\n $block();\n return f;\n};\n\nvar $jsObjectPtr, $jsErrorPtr;\n\nvar $needsExternalization = function(t) {\n switch (t.kind) {\n case $kindBool:\n case $kindInt:\n case $kindInt8:\n case $kindInt16:\n case $kindInt32:\n case $kindUint:\n case $kindUint8:\n case $kindUint16:\n case $kindUint32:\n case $kindUintptr:\n case $kindFloat32:\n case $kindFloat64:\n return false;\n default:\n return t !== $jsObjectPtr;\n }\n};\n\nvar $externalize = function(v, t, makeWrapper) {\n if (t === $jsObjectPtr) {\n return v;\n }\n switch (t.kind) {\n case $kindBool:\n case $kindInt:\n case $kindInt8:\n case $kindInt16:\n case $kindInt32:\n case $kindUint:\n case $kindUint8:\n case $kindUint16:\n case $kindUint32:\n case $kindUintptr:\n case $kindFloat32:\n case $kindFloat64:\n return v;\n case $kindInt64:\n case $kindUint64:\n return $flatten64(v);\n case $kindArray:\n if ($needsExternalization(t.elem)) {\n return $mapArray(v, function(e) { return $externalize(e, t.elem, makeWrapper); });\n }\n return v;\n case $kindFunc:\n return $externalizeFunction(v, t, false, makeWrapper);\n case $kindInterface:\n if (v === $ifaceNil) {\n return null;\n }\n if (v.constructor === $jsObjectPtr) {\n return v.$val.object;\n }\n return $externalize(v.$val, v.constructor, makeWrapper);\n case $kindMap:\n var m = {};\n var keys = Array.from(v.keys());\n for (var i = 0; i < keys.length; i++) {\n var entry = v.get(keys[i]);\n m[$externalize(entry.k, t.key, makeWrapper)] = $externalize(entry.v, t.elem, makeWrapper);\n }\n return m;\n case $kindPtr:\n if (v === t.nil) {\n return null;\n }\n return $externalize(v.$get(), t.elem, makeWrapper);\n case $kindSlice:\n if ($needsExternalization(t.elem)) {\n return $mapArray($sliceToNativeArray(v), function(e) { return $externalize(e, t.elem, makeWrapper); });\n }\n return $sliceToNativeArray(v);\n case $kindString:\n if ($isASCII(v)) {\n return v;\n }\n var s = \"\", r;\n for (var i = 0; i < v.length; i += r[1]) {\n r = $decodeRune(v, i);\n var c = r[0];\n if (c > 0xFFFF) {\n var h = Math.floor((c - 0x10000) / 0x400) + 0xD800;\n var l = (c - 0x10000) % 0x400 + 0xDC00;\n s += String.fromCharCode(h, l);\n continue;\n }\n s += String.fromCharCode(c);\n }\n return s;\n case $kindStruct:\n var timePkg = $packages[\"time\"];\n if (timePkg !== undefined && v.constructor === timePkg.Time.ptr) {\n var milli = $div64(v.UnixNano(), new $Int64(0, 1000000));\n return new Date($flatten64(milli));\n }\n\n var noJsObject = {};\n var searchJsObject = function(v, t) {\n if (t === $jsObjectPtr) {\n return v;\n }\n switch (t.kind) {\n case $kindPtr:\n if (v === t.nil) {\n return noJsObject;\n }\n return searchJsObject(v.$get(), t.elem);\n case $kindStruct:\n var f = t.fields[0];\n return searchJsObject(v[f.prop], f.typ);\n case $kindInterface:\n return searchJsObject(v.$val, v.constructor);\n default:\n return noJsObject;\n }\n };\n var o = searchJsObject(v, t);\n if (o !== noJsObject) {\n return o;\n }\n\n if (makeWrapper !== undefined) {\n return makeWrapper(v);\n }\n\n o = {};\n for (var i = 0; i < t.fields.length; i++) {\n var f = t.fields[i];\n if (!f.exported) {\n continue;\n }\n o[f.name] = $externalize(v[f.prop], f.typ, makeWrapper);\n }\n return o;\n }\n $throwRuntimeError(\"cannot externalize \" + t.string);\n};\n\nvar $externalizeFunction = function(v, t, passThis, makeWrapper) {\n if (v === $throwNilPointerError) {\n return null;\n }\n if (v.$externalizeWrapper === undefined) {\n $checkForDeadlock = false;\n v.$externalizeWrapper = function() {\n var args = [];\n for (var i = 0; i < t.params.length; i++) {\n if (t.variadic && i === t.params.length - 1) {\n var vt = t.params[i].elem, varargs = [];\n for (var j = i; j < arguments.length; j++) {\n varargs.push($internalize(arguments[j], vt, makeWrapper));\n }\n args.push(new (t.params[i])(varargs));\n break;\n }\n args.push($internalize(arguments[i], t.params[i], makeWrapper));\n }\n var result = v.apply(passThis ? this : undefined, args);\n switch (t.results.length) {\n case 0:\n return;\n case 1:\n return $externalize($copyIfRequired(result, t.results[0]), t.results[0], makeWrapper);\n default:\n for (var i = 0; i < t.results.length; i++) {\n result[i] = $externalize($copyIfRequired(result[i], t.results[i]), t.results[i], makeWrapper);\n }\n return result;\n }\n };\n }\n return v.$externalizeWrapper;\n};\n\nvar $internalize = function(v, t, recv, seen, makeWrapper) {\n if (t === $jsObjectPtr) {\n return v;\n }\n if (t === $jsObjectPtr.elem) {\n $throwRuntimeError(\"cannot internalize js.Object, use *js.Object instead\");\n }\n if (v && v.__internal_object__ !== undefined) {\n return $assertType(v.__internal_object__, t, false);\n }\n var timePkg = $packages[\"time\"];\n if (timePkg !== undefined && t === timePkg.Time) {\n if (!(v !== null && v !== undefined && v.constructor === Date)) {\n $throwRuntimeError(\"cannot internalize time.Time from \" + typeof v + \", must be Date\");\n }\n return timePkg.Unix(new $Int64(0, 0), new $Int64(0, v.getTime() * 1000000));\n }\n\n // Cache for values we've already internalized in order to deal with circular\n // references.\n if (seen === undefined) { seen = new Map(); }\n if (!seen.has(t)) { seen.set(t, new Map()); }\n if (seen.get(t).has(v)) { return seen.get(t).get(v); }\n\n switch (t.kind) {\n case $kindBool:\n return !!v;\n case $kindInt:\n return parseInt(v);\n case $kindInt8:\n return parseInt(v) << 24 >> 24;\n case $kindInt16:\n return parseInt(v) << 16 >> 16;\n case $kindInt32:\n return parseInt(v) >> 0;\n case $kindUint:\n return parseInt(v);\n case $kindUint8:\n return parseInt(v) << 24 >>> 24;\n case $kindUint16:\n return parseInt(v) << 16 >>> 16;\n case $kindUint32:\n case $kindUintptr:\n return parseInt(v) >>> 0;\n case $kindInt64:\n case $kindUint64:\n return new t(0, v);\n case $kindFloat32:\n case $kindFloat64:\n return parseFloat(v);\n case $kindArray:\n if (v.length !== t.len) {\n $throwRuntimeError(\"got array with wrong size from JavaScript native\");\n }\n return $mapArray(v, function(e) { return $internalize(e, t.elem, makeWrapper); });\n case $kindFunc:\n return function() {\n var args = [];\n for (var i = 0; i < t.params.length; i++) {\n if (t.variadic && i === t.params.length - 1) {\n var vt = t.params[i].elem, varargs = arguments[i];\n for (var j = 0; j < varargs.$length; j++) {\n args.push($externalize(varargs.$array[varargs.$offset + j], vt, makeWrapper));\n }\n break;\n }\n args.push($externalize(arguments[i], t.params[i], makeWrapper));\n }\n var result = v.apply(recv, args);\n switch (t.results.length) {\n case 0:\n return;\n case 1:\n return $internalize(result, t.results[0], makeWrapper);\n default:\n for (var i = 0; i < t.results.length; i++) {\n result[i] = $internalize(result[i], t.results[i], makeWrapper);\n }\n return result;\n }\n };\n case $kindInterface:\n if (t.methods.length !== 0) {\n $throwRuntimeError(\"cannot internalize \" + t.string);\n }\n if (v === null) {\n return $ifaceNil;\n }\n if (v === undefined) {\n return new $jsObjectPtr(undefined);\n }\n switch (v.constructor) {\n case Int8Array:\n return new ($sliceType($Int8))(v);\n case Int16Array:\n return new ($sliceType($Int16))(v);\n case Int32Array:\n return new ($sliceType($Int))(v);\n case Uint8Array:\n return new ($sliceType($Uint8))(v);\n case Uint16Array:\n return new ($sliceType($Uint16))(v);\n case Uint32Array:\n return new ($sliceType($Uint))(v);\n case Float32Array:\n return new ($sliceType($Float32))(v);\n case Float64Array:\n return new ($sliceType($Float64))(v);\n case Array:\n return $internalize(v, $sliceType($emptyInterface), makeWrapper);\n case Boolean:\n return new $Bool(!!v);\n case Date:\n if (timePkg === undefined) {\n /* time package is not present, internalize as &js.Object{Date} so it can be externalized into original Date. */\n return new $jsObjectPtr(v);\n }\n return new timePkg.Time($internalize(v, timePkg.Time, makeWrapper));\n case (function () { }).constructor: // is usually Function, but in Chrome extensions it is something else\n var funcType = $funcType([$sliceType($emptyInterface)], [$jsObjectPtr], true);\n return new funcType($internalize(v, funcType, makeWrapper));\n case Number:\n return new $Float64(parseFloat(v));\n case String:\n return new $String($internalize(v, $String, makeWrapper));\n default:\n if ($global.Node && v instanceof $global.Node) {\n return new $jsObjectPtr(v);\n }\n var mapType = $mapType($String, $emptyInterface);\n return new mapType($internalize(v, mapType, recv, seen, makeWrapper));\n }\n case $kindMap:\n var m = new Map();\n seen.get(t).set(v, m);\n var keys = $keys(v);\n for (var i = 0; i < keys.length; i++) {\n var k = $internalize(keys[i], t.key, recv, seen, makeWrapper);\n m.set(t.key.keyFor(k), { k: k, v: $internalize(v[keys[i]], t.elem, recv, seen, makeWrapper) });\n }\n return m;\n case $kindPtr:\n if (t.elem.kind === $kindStruct) {\n return $internalize(v, t.elem, makeWrapper);\n }\n case $kindSlice:\n return new t($mapArray(v, function(e) { return $internalize(e, t.elem, makeWrapper); }));\n case $kindString:\n v = String(v);\n if ($isASCII(v)) {\n return v;\n }\n var s = \"\";\n var i = 0;\n while (i < v.length) {\n var h = v.charCodeAt(i);\n if (0xD800 <= h && h <= 0xDBFF) {\n var l = v.charCodeAt(i + 1);\n var c = (h - 0xD800) * 0x400 + l - 0xDC00 + 0x10000;\n s += $encodeRune(c);\n i += 2;\n continue;\n }\n s += $encodeRune(h);\n i++;\n }\n return s;\n case $kindStruct:\n var noJsObject = {};\n var searchJsObject = function(t) {\n if (t === $jsObjectPtr) {\n return v;\n }\n if (t === $jsObjectPtr.elem) {\n $throwRuntimeError(\"cannot internalize js.Object, use *js.Object instead\");\n }\n switch (t.kind) {\n case $kindPtr:\n return searchJsObject(t.elem);\n case $kindStruct:\n var f = t.fields[0];\n var o = searchJsObject(f.typ);\n if (o !== noJsObject) {\n var n = new t.ptr();\n n[f.prop] = o;\n return n;\n }\n return noJsObject;\n default:\n return noJsObject;\n }\n };\n var o = searchJsObject(t);\n if (o !== noJsObject) {\n return o;\n }\n }\n $throwRuntimeError(\"cannot internalize \" + t.string);\n};\n\nvar $copyIfRequired = function(v, typ) {\n // interface values\n if (v && v.constructor && v.constructor.copy) {\n return new v.constructor($clone(v.$val, v.constructor))\n }\n // array and struct values\n if (typ.copy) {\n var clone = typ.zero();\n typ.copy(clone, v);\n return clone;\n }\n return v;\n}\n\n/* $isASCII reports whether string s contains only ASCII characters. */\nvar $isASCII = function(s) {\n for (var i = 0; i < s.length; i++) {\n if (s.charCodeAt(i) >= 128) {\n return false;\n }\n }\n return true;\n};\n";if(g){au="Error.stackTraceLimit=1/0;var $global,$module,$NaN=NaN;if(\"undefined\"!=typeof window?$global=window:\"undefined\"!=typeof self?$global=self:\"undefined\"!=typeof global?($global=global).require=require:$global=this,void 0===$global||void 0===$global.Array)throw new Error(\"no global object found\");if(\"undefined\"!=typeof module&&($module=module),!$global.fs&&$global.require)try{var fs=$global.require(\"fs\");\"object\"==typeof fs&&null!==fs&&0!==Object.keys(fs).length&&($global.fs=fs)}catch(e){}if(!$global.fs){var outputBuf=\"\",decoder=new TextDecoder(\"utf-8\");$global.fs={constants:{O_WRONLY:-1,O_RDWR:-1,O_CREAT:-1,O_TRUNC:-1,O_APPEND:-1,O_EXCL:-1},writeSync:function(e,n){var r=(outputBuf+=decoder.decode(n)).lastIndexOf(\"\\n\");return-1!=r&&(console.log(outputBuf.substr(0,r)),outputBuf=outputBuf.substr(r+1)),n.length},write:function(e,n,r,t,i,a){0===r&&t===n.length&&null===i?a(null,this.writeSync(e,n)):a(enosys())}}}var $throwRuntimeError,$linknames={},$packages={},$idCounter=0,$keys=function(e){return e?Object.keys(e):[]},$flushConsole=function(){},$throwNilPointerError=function(){$throwRuntimeError(\"invalid memory address or nil pointer dereference\")},$call=function(e,n,r){return e.apply(n,r)},$makeFunc=function(e){return function(){return $externalize(e(this,new($sliceType($jsObjectPtr))($global.Array.prototype.slice.call(arguments,[]))),$emptyInterface)}},$unused=function(e){},$print=console.log;if(void 0!==$global.process&&$global.require)try{var util=$global.require(\"util\");$print=function(){$global.process.stderr.write(util.format.apply(this,arguments))}}catch(e){}var $println=console.log,$initAllLinknames=function(){for(var e=$keys($packages),n=0;ne.$capacity||t>e.$capacity)&&$throwRuntimeError(\"slice bounds out of range\"),e===e.constructor.nil)return e;var i=new e.constructor(e.$array);return i.$offset=e.$offset+n,i.$length=r-n,i.$capacity=t-n,i},$substring=function(e,n,r){return(n<0||re.length)&&$throwRuntimeError(\"slice bounds out of range\"),e.substring(n,r)},$sliceToNativeArray=function(e){return e.$array.constructor!==Array?e.$array.subarray(e.$offset,e.$offset+e.$length):e.$array.slice(e.$offset,e.$offset+e.$length)},$sliceToGoArray=function(e,n){var r=n.elem;return void 0!==r&&e.$length1114111||55296<=e&&e<=57343)&&(e=65533),e<=127?String.fromCharCode(e):e<=2047?String.fromCharCode(192|e>>6,128|63&e):e<=65535?String.fromCharCode(224|e>>12,128|e>>6&63,128|63&e):String.fromCharCode(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)},$stringToBytes=function(e){for(var n=new Uint8Array(e.length),r=0;rt){for(var o=i-1;o>=0;o--)a.copy(e[r+o],n[t+o]);return}for(o=0;ot)for(o=i-1;o>=0;o--)e[r+o]=n[t+o];else for(o=0;oc)if(a=0,c=Math.max(o,e.$capacity<1024?2*e.$capacity:Math.floor(5*e.$capacity/4)),e.$array.constructor===Array){(i=e.$array.slice(e.$offset,e.$offset+e.$length)).length=c;for(var $=e.constructor.elem.zero,u=e.$length;u>>16&65535)*t+r*(n>>>16&65535)<<16>>>0)>>0},$floatKey=function(e){return e!=e?\"NaN$\"+ ++$idCounter:String(e)},$flatten64=function(e){return 4294967296*e.$high+e.$low},$shiftLeft64=function(e,n){return 0===n?e:n<32?new e.constructor(e.$high<>>32-n,e.$low<>>0):n<64?new e.constructor(e.$low<>n,(e.$low>>>n|e.$high<<32-n)>>>0):n<64?new e.constructor(e.$high>>31,e.$high>>n-32>>>0):e.$high<0?new e.constructor(-1,4294967295):new e.constructor(0,0)},$shiftRightUint64=function(e,n){return 0===n?e:n<32?new e.constructor(e.$high>>>n,(e.$low>>>n|e.$high<<32-n)>>>0):n<64?new e.constructor(0,e.$high>>>n-32):new e.constructor(0,0)},$mul64=function(e,n){var r=e.$high>>>16,t=65535&e.$high,i=e.$low>>>16,a=65535&e.$low,o=n.$high>>>16,c=65535&n.$high,$=n.$low>>>16,u=65535&n.$low,l=0,s=0,f=0,d=0;f+=(d+=a*u)>>>16,s+=(f+=i*u)>>>16,f&=65535,s+=(f+=a*$)>>>16,l+=(s+=t*u)>>>16,s&=65535,l+=(s+=i*$)>>>16,s&=65535,l+=(s+=a*c)>>>16,l+=r*u+t*$+i*c+a*o;var p=((l&=65535)<<16|(s&=65535))>>>0,h=((f&=65535)<<16|(d&=65535))>>>0;return new e.constructor(p,h)},$div64=function(e,n,r){0===n.$high&&0===n.$low&&$throwRuntimeError(\"integer divide by zero\");var t=1,i=1,a=e.$high,o=e.$low;a<0&&(t=-1,i=-1,a=-a,0!==o&&(a--,o=4294967296-o));var c=n.$high,$=n.$low;n.$high<0&&(t*=-1,c=-c,0!==$&&(c--,$=4294967296-$));for(var u=0,l=0,s=0;c<2147483648&&(a>c||a===c&&o>$);)c=(c<<1|$>>>31)>>>0,$=$<<1>>>0,s++;for(var f=0;f<=s;f++)u=u<<1|l>>>31,l=l<<1>>>0,(a>c||a===c&&o>=$)&&(a-=c,(o-=$)<0&&(a--,o+=4294967296),4294967296===++l&&(u++,l=0)),$=($>>>1|c<<31)>>>0,c>>>=1;return r?new e.constructor(a*i,o*i):new e.constructor(u*t,l*t)},$divComplex=function(e,n){var r=e.$real===1/0||e.$real===-1/0||e.$imag===1/0||e.$imag===-1/0,t=n.$real===1/0||n.$real===-1/0||n.$imag===1/0||n.$imag===-1/0,i=!r&&(e.$real!=e.$real||e.$imag!=e.$imag),a=!t&&(n.$real!=n.$real||n.$imag!=n.$imag);if(i||a)return new e.constructor(NaN,NaN);if(r&&!t)return new e.constructor(1/0,1/0);if(!r&&t)return new e.constructor(0,0);if(0===n.$real&&0===n.$imag)return 0===e.$real&&0===e.$imag?new e.constructor(NaN,NaN):new e.constructor(1/0,1/0);if(Math.abs(n.$real)<=Math.abs(n.$imag)){var o=n.$real/n.$imag,c=n.$real*o+n.$imag;return new e.constructor((e.$real*o+e.$imag)/c,(e.$imag*o-e.$real)/c)}o=n.$imag/n.$real,c=n.$imag*o+n.$real;return new e.constructor((e.$imag*o+e.$real)/c,(e.$imag-e.$real*o)/c)},$kindBool=1,$kindInt=2,$kindInt8=3,$kindInt16=4,$kindInt32=5,$kindInt64=6,$kindUint=7,$kindUint8=8,$kindUint16=9,$kindUint32=10,$kindUint64=11,$kindUintptr=12,$kindFloat32=13,$kindFloat64=14,$kindComplex64=15,$kindComplex128=16,$kindArray=17,$kindChan=18,$kindFunc=19,$kindInterface=20,$kindMap=21,$kindPtr=22,$kindSlice=23,$kindString=24,$kindStruct=25,$kindUnsafePointer=26,$methodSynthesizers=[],$addMethodSynthesizer=function(e){null!==$methodSynthesizers?$methodSynthesizers.push(e):e()},$synthesizeMethods=function(){$methodSynthesizers.forEach(function(e){e()}),$methodSynthesizers=null},$ifaceKeyFor=function(e){if(e===$ifaceNil)return\"nil\";var n=e.constructor;return n.string+\"$\"+n.keyFor(e.$val)},$identity=function(e){return e},$typeIDCounter=0,$idKey=function(e){return void 0===e.$id&&($idCounter++,e.$id=$idCounter),String(e.$id)},$arrayPtrCtor=function(){return function(e){this.$get=function(){return e},this.$set=function(e){typ.copy(this,e)},this.$val=e}},$newType=function(e,n,r,t,i,a,o){var c;switch(n){case $kindBool:case $kindInt:case $kindInt8:case $kindInt16:case $kindInt32:case $kindUint:case $kindUint8:case $kindUint16:case $kindUint32:case $kindUintptr:case $kindUnsafePointer:(c=function(e){this.$val=e}).wrapped=!0,c.keyFor=$identity;break;case $kindString:(c=function(e){this.$val=e}).wrapped=!0,c.keyFor=function(e){return\"$\"+e};break;case $kindFloat32:case $kindFloat64:(c=function(e){this.$val=e}).wrapped=!0,c.keyFor=function(e){return $floatKey(e)};break;case $kindInt64:(c=function(e,n){this.$high=e+Math.floor(Math.ceil(n)/4294967296)>>0,this.$low=n>>>0,this.$val=this}).keyFor=function(e){return e.$high+\"$\"+e.$low};break;case $kindUint64:(c=function(e,n){this.$high=e+Math.floor(Math.ceil(n)/4294967296)>>>0,this.$low=n>>>0,this.$val=this}).keyFor=function(e){return e.$high+\"$\"+e.$low};break;case $kindComplex64:(c=function(e,n){this.$real=$fround(e),this.$imag=$fround(n),this.$val=this}).keyFor=function(e){return e.$real+\"$\"+e.$imag};break;case $kindComplex128:(c=function(e,n){this.$real=e,this.$imag=n,this.$val=this}).keyFor=function(e){return e.$real+\"$\"+e.$imag};break;case $kindArray:(c=function(e){this.$val=e}).wrapped=!0,c.ptr=$newType(4,$kindPtr,\"*\"+r,!1,\"\",!1,$arrayPtrCtor()),c.init=function(e,n){c.elem=e,c.len=n,c.comparable=e.comparable,c.keyFor=function(n){return Array.prototype.join.call($mapArray(n,function(n){return String(e.keyFor(n)).replace(/\\\\/g,\"\\\\\\\\\").replace(/\\$/g,\"\\\\$\")}),\"$\")},c.copy=function(n,r){$copyArray(n,r,0,0,r.length,e)},c.ptr.init(c),Object.defineProperty(c.ptr.nil,\"nilCheck\",{get:$throwNilPointerError})};break;case $kindChan:(c=function(e){this.$val=e}).wrapped=!0,c.keyFor=$idKey,c.init=function(e,n,r){c.elem=e,c.sendOnly=n,c.recvOnly=r};break;case $kindFunc:(c=function(e){this.$val=e}).wrapped=!0,c.init=function(e,n,r){c.params=e,c.results=n,c.variadic=r,c.comparable=!1};break;case $kindInterface:(c={implementedBy:{},missingMethodFor:{}}).keyFor=$ifaceKeyFor,c.init=function(e){c.methods=e,e.forEach(function(e){$ifaceNil[e.prop]=$throwNilPointerError})};break;case $kindMap:(c=function(e){this.$val=e}).wrapped=!0,c.init=function(e,n){c.key=e,c.elem=n,c.comparable=!1};break;case $kindPtr:(c=o||function(e,n,r){this.$get=e,this.$set=n,this.$target=r,this.$val=this}).keyFor=$idKey,c.init=function(e){c.elem=e,c.wrapped=e.kind===$kindArray,c.nil=new c($throwNilPointerError,$throwNilPointerError)};break;case $kindSlice:(c=function(e){e.constructor!==c.nativeArray&&(e=new c.nativeArray(e)),this.$array=e,this.$offset=0,this.$length=e.length,this.$capacity=e.length,this.$val=this}).init=function(e){c.elem=e,c.comparable=!1,c.nativeArray=$nativeArray(e.kind),c.nil=new c([])};break;case $kindStruct:(c=function(e){this.$val=e}).wrapped=!0,c.ptr=$newType(4,$kindPtr,\"*\"+r,!1,i,a,o),c.ptr.elem=c,c.ptr.prototype.$get=function(){return this},c.ptr.prototype.$set=function(e){c.copy(this,e)},c.init=function(e,n){c.pkgPath=e,c.fields=n,n.forEach(function(e){e.typ.comparable||(c.comparable=!1)}),c.keyFor=function(e){var r=e.$val;return $mapArray(n,function(e){return String(e.typ.keyFor(r[e.prop])).replace(/\\\\/g,\"\\\\\\\\\").replace(/\\$/g,\"\\\\$\")}).join(\"$\")},c.copy=function(e,r){for(var t=0;t0;){var a=[],o=[];t.forEach(function(e){if(!i[e.typ.string])switch(i[e.typ.string]=!0,e.typ.named&&(o=o.concat(e.typ.methods),e.indirect&&(o=o.concat($ptrType(e.typ).methods))),e.typ.kind){case $kindStruct:e.typ.fields.forEach(function(n){if(n.embedded){var r=n.typ,t=r.kind===$kindPtr;a.push({typ:t?r.elem:r,indirect:e.indirect||t})}});break;case $kindInterface:o=o.concat(e.typ.methods)}}),o.forEach(function(e){void 0===n[e.name]&&(n[e.name]=e)}),t=a}return e.methodSetCache=[],Object.keys(n).sort().forEach(function(r){e.methodSetCache.push(n[r])}),e.methodSetCache},$Bool=$newType(1,$kindBool,\"bool\",!0,\"\",!1,null),$Int=$newType(4,$kindInt,\"int\",!0,\"\",!1,null),$Int8=$newType(1,$kindInt8,\"int8\",!0,\"\",!1,null),$Int16=$newType(2,$kindInt16,\"int16\",!0,\"\",!1,null),$Int32=$newType(4,$kindInt32,\"int32\",!0,\"\",!1,null),$Int64=$newType(8,$kindInt64,\"int64\",!0,\"\",!1,null),$Uint=$newType(4,$kindUint,\"uint\",!0,\"\",!1,null),$Uint8=$newType(1,$kindUint8,\"uint8\",!0,\"\",!1,null),$Uint16=$newType(2,$kindUint16,\"uint16\",!0,\"\",!1,null),$Uint32=$newType(4,$kindUint32,\"uint32\",!0,\"\",!1,null),$Uint64=$newType(8,$kindUint64,\"uint64\",!0,\"\",!1,null),$Uintptr=$newType(4,$kindUintptr,\"uintptr\",!0,\"\",!1,null),$Float32=$newType(4,$kindFloat32,\"float32\",!0,\"\",!1,null),$Float64=$newType(8,$kindFloat64,\"float64\",!0,\"\",!1,null),$Complex64=$newType(8,$kindComplex64,\"complex64\",!0,\"\",!1,null),$Complex128=$newType(16,$kindComplex128,\"complex128\",!0,\"\",!1,null),$String=$newType(8,$kindString,\"string\",!0,\"\",!1,null),$UnsafePointer=$newType(4,$kindUnsafePointer,\"unsafe.Pointer\",!0,\"unsafe\",!1,null),$nativeArray=function(e){switch(e){case $kindInt:return Int32Array;case $kindInt8:return Int8Array;case $kindInt16:return Int16Array;case $kindInt32:return Int32Array;case $kindUint:return Uint32Array;case $kindUint8:return Uint8Array;case $kindUint16:return Uint16Array;case $kindUint32:case $kindUintptr:return Uint32Array;case $kindFloat32:return Float32Array;case $kindFloat64:return Float64Array;default:return Array}},$toNativeArray=function(e,n){var r=$nativeArray(e);return r===Array?n:new r(n)},$arrayTypes={},$arrayType=function(e,n){var r=e.id+\"$\"+n,t=$arrayTypes[r];return void 0===t&&(t=$newType(12,$kindArray,\"[\"+n+\"]\"+e.string,!1,\"\",!1,null),$arrayTypes[r]=t,t.init(e,n)),t},$chanType=function(e,n,r){var t=(r?\"<-\":\"\")+\"chan\"+(n?\"<- \":\" \");n||r||\"<\"!=e.string[0]?t+=e.string:t+=\"(\"+e.string+\")\";var i=n?\"SendChan\":r?\"RecvChan\":\"Chan\",a=e[i];return void 0===a&&(a=$newType(4,$kindChan,t,!1,\"\",!1,null),e[i]=a,a.init(e,n,r)),a},$Chan=function(e,n){(n<0||n>2147483647)&&$throwRuntimeError(\"makechan: size out of range\"),this.$elem=e,this.$capacity=n,this.$buffer=[],this.$sendQueue=[],this.$recvQueue=[],this.$closed=!1},$chanNil=new $Chan(null,0);$chanNil.$sendQueue=$chanNil.$recvQueue={length:0,push:function(){},shift:function(){},indexOf:function(){return-1}};var $funcTypes={},$funcType=function(e,n,r){var t=$mapArray(e,function(e){return e.id}).join(\",\")+\"$\"+$mapArray(n,function(e){return e.id}).join(\",\")+\"$\"+r,i=$funcTypes[t];if(void 0===i){var a=$mapArray(e,function(e){return e.string});r&&(a[a.length-1]=\"...\"+a[a.length-1].substr(2));var o=\"func(\"+a.join(\", \")+\")\";1===n.length?o+=\" \"+n[0].string:n.length>1&&(o+=\" (\"+$mapArray(n,function(e){return e.string}).join(\", \")+\")\"),i=$newType(4,$kindFunc,o,!1,\"\",!1,null),$funcTypes[t]=i,i.init(e,n,r)}return i},$interfaceTypes={},$interfaceType=function(e){var n=$mapArray(e,function(e){return e.pkg+\",\"+e.name+\",\"+e.typ.id}).join(\"$\"),r=$interfaceTypes[n];if(void 0===r){var t=\"interface {}\";0!==e.length&&(t=\"interface { \"+$mapArray(e,function(e){return(\"\"!==e.pkg?e.pkg+\".\":\"\")+e.name+e.typ.string.substr(4)}).join(\"; \")+\" }\"),r=$newType(8,$kindInterface,t,!1,\"\",!1,null),$interfaceTypes[n]=r,r.init(e)}return r},$emptyInterface=$interfaceType([]),$ifaceNil={},$error=$newType(8,$kindInterface,\"error\",!0,\"\",!1,null);$error.init([{prop:\"Error\",name:\"Error\",pkg:\"\",typ:$funcType([],[$String],!1)}]);var $panicValue,$jsObjectPtr,$jsErrorPtr,$mapTypes={},$mapType=function(e,n){var r=e.id+\"$\"+n.id,t=$mapTypes[r];return void 0===t&&(t=$newType(4,$kindMap,\"map[\"+e.string+\"]\"+n.string,!1,\"\",!1,null),$mapTypes[r]=t,t.init(e,n)),t},$makeMap=function(e,n){for(var r=new Map,t=0;t2147483647)&&$throwRuntimeError(\"makeslice: len out of range\"),(r<0||r2147483647)&&$throwRuntimeError(\"makeslice: cap out of range\");var t=new e.nativeArray(r);if(e.nativeArray===Array)for(var i=0;i4||t<0)break}}finally{0==$scheduled.length&&clearTimeout(e)}},$schedule=function(e){e.asleep&&(e.asleep=!1,$awakeGoroutines++),$scheduled.push(e),$curGoroutine===$noGoroutine&&$runScheduled()},$setTimeout=function(e,n){return $awakeGoroutines++,setTimeout(function(){$awakeGoroutines--,e()},n)},$block=function(){$curGoroutine===$noGoroutine&&$throwRuntimeError(\"cannot block in JavaScript callback, fix by wrapping code in goroutine\"),$curGoroutine.asleep=!0},$restore=function(e,n){return void 0!==e&&void 0!==e.$blk?e:n},$send=function(e,n){e.$closed&&$throwRuntimeError(\"send on closed channel\");var r=e.$recvQueue.shift();if(void 0===r){if(!(e.$buffer.length65535){var l=Math.floor((u-65536)/1024)+55296,s=(u-65536)%1024+56320;$+=String.fromCharCode(l,s)}else $+=String.fromCharCode(u)}return $;case $kindStruct:var f=$packages.time;if(void 0!==f&&e.constructor===f.Time.ptr){var d=$div64(e.UnixNano(),new $Int64(0,1e6));return new Date($flatten64(d))}var p={},h=function(e,n){if(n===$jsObjectPtr)return e;switch(n.kind){case $kindPtr:return e===n.nil?p:h(e.$get(),n.elem);case $kindStruct:var r=n.fields[0];return h(e[r.prop],r.typ);case $kindInterface:return h(e.$val,e.constructor);default:return p}},k=h(e,n);if(k!==p)return k;if(void 0!==r)return r(e);k={};for(a=0;a>24;case $kindInt16:return parseInt(e)<<16>>16;case $kindInt32:return parseInt(e)>>0;case $kindUint:return parseInt(e);case $kindUint8:return parseInt(e)<<24>>>24;case $kindUint16:return parseInt(e)<<16>>>16;case $kindUint32:case $kindUintptr:return parseInt(e)>>>0;case $kindInt64:case $kindUint64:return new n(0,e);case $kindFloat32:case $kindFloat64:return parseFloat(e);case $kindArray:return e.length!==n.len&&$throwRuntimeError(\"got array with wrong size from JavaScript native\"),$mapArray(e,function(e){return $internalize(e,n.elem,i)});case $kindFunc:return function(){for(var t=[],a=0;a=128)return!1;return!0};\n";}aw=AF.WriteString(c,au);$s=7;case 7:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}av=aw;ax=av[1];if(!($interfaceIsEqual(ax,$ifaceNil))){$s=-1;return ax;}az=c.Write((new CR($stringToBytes("\n"))));$s=8;case 8:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ay=az;ba=ay[1];if(!($interfaceIsEqual(ba,$ifaceNil))){$s=-1;return ba;}bb=b;bc=0;case 9:if(!(bc=bb.$length)?($throwRuntimeError("index out of range"),undefined):bb.$array[bb.$offset+bc]);be=CL(bd,z,$clone(h,BZ),g,c);$s=11;case 11:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bf=be;if(!($interfaceIsEqual(bf,$ifaceNil))){$s=-1;return bf;}bc++;$s=9;continue;case 10:bh=c.Write((new CR($stringToBytes("$synthesizeMethods();\n$initAllLinknames();\nvar $mainPkg = $packages[\""+(f.ImportPath)+"\"];\n$packages[\"runtime\"].$init();\n$go($mainPkg.$init, []);\n$flushConsole();\n\n}).call(this);\n"))));$s=12;case 12:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bg=bh;bi=bg[1];if(!($interfaceIsEqual(bi,$ifaceNil))){$s=-1;return bi;}$s=-1;return $ifaceNil;}return;}var $f={$blk:CK,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.WriteProgramCode=CK;CL=function(b,c,d,e,f){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{b,c,d,e,f});$s=$s||0;s:while(true){switch($s){case 0:if(!(f.MappingCallback===$throwNilPointerError)&&!(b.FileSet===CR.nil)){$s=1;continue;}$s=2;continue;case 1:f.fileSet=L.NewFileSet();g=f.fileSet.Read($methodVal(Y.NewDecoder(G.NewReader(b.FileSet)),"Decode"));$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$panic(h);}case 2:j=f.Write(b.IncJSCode);$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[1];if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return k;}m=A.Sprintf("$packages[\"%s\"] = (function() {\n",new CP([new $String(b.ImportPath)]));$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=BD((new CR($stringToBytes(m))),e);$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=f.Write(n);$s=7;case 7:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}l=o;p=l[1];if(!($interfaceIsEqual(p,$ifaceNil))){$s=-1;return p;}q=new CQ(["$pkg = {}","$init"]);r=FR.nil;s=b.Declarations;t=0;while(true){if(!(t=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]);v=(w=$mapIndex(c,FQ.keyFor(u)),w!==undefined?[w.v,true]:[new GJ.ptr(),false]);x=v[1];if(x){q=$appendSlice(q,u.Vars);r=$append(r,u);}t++;}z=A.Sprintf("\tvar %s;\n",new CP([new $String(F.Join(q,", "))]));$s=8;case 8:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=BD((new CR($stringToBytes(z))),e);$s=9;case 9:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=f.Write(aa);$s=10;case 10:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}y=ab;ac=y[1];if(!($interfaceIsEqual(ac,$ifaceNil))){$s=-1;return ac;}ad=r;ae=0;case 11:if(!(ae=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ae]);ah=f.Write(af.DeclCode);$s=13;case 13:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ag=ah;ai=ag[1];if(!($interfaceIsEqual(ai,$ifaceNil))){$s=-1;return ai;}if(d.IsImplementation($clone(af.LinkingName,BW))){$s=14;continue;}$s=15;continue;case 14:ak=A.Sprintf("\t$linknames[%q] = %s;\n",new CP([new $String($clone(af.LinkingName,BW).String()),new $String((aj=af.Vars,(0>=aj.$length?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+0])))]));$s=16;case 16:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak;an=f.Write(BD((new CR($stringToBytes(al))),e));$s=17;case 17:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}am=an;ao=am[1];if(!($interfaceIsEqual(ao,$ifaceNil))){$s=-1;return ao;}case 15:ae++;$s=11;continue;case 12:ap=r;aq=0;case 18:if(!(aq=ap.$length)?($throwRuntimeError("index out of range"),undefined):ap.$array[ap.$offset+aq]);at=f.Write(ar.MethodListCode);$s=20;case 20:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}as=at;au=as[1];if(!($interfaceIsEqual(au,$ifaceNil))){$s=-1;return au;}aq++;$s=18;continue;case 19:av=r;aw=0;case 21:if(!(aw=av.$length)?($throwRuntimeError("index out of range"),undefined):av.$array[av.$offset+aw]);az=f.Write(ax.TypeInitCode);$s=23;case 23:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ay=az;ba=ay[1];if(!($interfaceIsEqual(ba,$ifaceNil))){$s=-1;return ba;}aw++;$s=21;continue;case 22:bb=new CQ([]);bc=r;bd=0;case 24:if(!(bd=bc.$length)?($throwRuntimeError("index out of range"),undefined):bc.$array[bc.$offset+bd]);bf=d.FindImplementation($clone(be.LinkingName,BW));bg=$clone(bf[0],BW);bh=bf[1];if(!bh){bd++;$s=24;continue;}bj=A.Sprintf("\t\t%s = $linknames[%q];\n",new CP([new $String((bi=be.Vars,(0>=bi.$length?($throwRuntimeError("index out of range"),undefined):bi.$array[bi.$offset+0]))),new $String($clone(bg,BW).String())]));$s=26;case 26:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bb=$append(bb,bj);bd++;$s=24;continue;case 25:if(bb.$length>0){$s=27;continue;}$s=28;continue;case 27:bk=A.Sprintf("\t$pkg.$initLinknames = function() {\n%s};\n",new CP([new $String(F.Join(bb,""))]));$s=29;case 29:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}bl=bk;bn=f.Write(BD((new CR($stringToBytes(bl))),e));$s=30;case 30:if($c){$c=false;bn=bn.$blk();}if(bn&&bn.$blk!==undefined){break s;}bm=bn;bo=bm[1];if(!($interfaceIsEqual(bo,$ifaceNil))){$s=-1;return bo;}case 28:bq=f.Write(BD((new CR($stringToBytes("\t$init = function() {\n\t\t$pkg.$init = function() {};\n\t\t/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:\n"))),e));$s=31;case 31:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}bp=bq;br=bp[1];if(!($interfaceIsEqual(br,$ifaceNil))){$s=-1;return br;}bs=r;bt=0;case 32:if(!(bt=bs.$length)?($throwRuntimeError("index out of range"),undefined):bs.$array[bs.$offset+bt]);bw=f.Write(bu.InitCode);$s=34;case 34:if($c){$c=false;bw=bw.$blk();}if(bw&&bw.$blk!==undefined){break s;}bv=bw;bx=bv[1];if(!($interfaceIsEqual(bx,$ifaceNil))){$s=-1;return bx;}bt++;$s=32;continue;case 33:bz=f.Write(BD((new CR($stringToBytes("\t\t/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;\n\t};\n\t$pkg.$init = $init;\n\treturn $pkg;\n})();"))),e));$s=35;case 35:if($c){$c=false;bz=bz.$blk();}if(bz&&bz.$blk!==undefined){break s;}by=bz;ca=by[1];if(!($interfaceIsEqual(ca,$ifaceNil))){$s=-1;return ca;}cc=f.Write((new CR($stringToBytes("\n"))));$s=36;case 36:if($c){$c=false;cc=cc.$blk();}if(cc&&cc.$blk!==undefined){break s;}cb=cc;cd=cb[1];if(!($interfaceIsEqual(cd,$ifaceNil))){$s=-1;return cd;}$s=-1;return $ifaceNil;}return;}var $f={$blk:CL,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};$pkg.WritePkgCode=CL;CM=function(b,c){var{b,c,d,e,f,$s,$r,$c}=$restore(this,{b,c});$s=$s||0;s:while(true){switch($s){case 0:d=[d];d[0]=new CF.ptr("","",CQ.nil,CR.nil,FR.nil,CR.nil,CR.nil,false,FE.nil,new AA.Time.ptr(new $Uint64(0,0),new $Int64(0,0),FV.nil));e=AE.NewDecoder(c).Decode(d[0]);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[FB.nil,f];}$s=-1;return[d[0],$ifaceNil];}return;}var $f={$blk:CM,$c:true,$r,b,c,d,e,f,$s};return $f;};$pkg.ReadArchive=CM;CO.ptr.prototype.Write=function(b){var{b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{b});$s=$s||0;s:while(true){switch($s){case 0:c=0;d=$ifaceNil;e=this;f=0;case 1:g=G.IndexByte(b,8);h=b;if(!((g===-1))){h=$subslice(b,0,g);}j=e.Writer.Write(h);$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;f=i[0];d=i[1];c=c+(f)>>0;while(true){k=G.IndexByte(h,10);if(k===-1){e.column=e.column+(h.$length)>>0;break;}e.line=e.line+(1)>>0;e.column=0;h=$subslice(h,(k+1>>0));}if(!($interfaceIsEqual(d,$ifaceNil))||(g===-1)){$s=-1;return[c,d];}if(!(e.MappingCallback===$throwNilPointerError)){$s=4;continue;}$s=5;continue;case 4:l=e.line+1>>0;m=e.column;n=e.fileSet.Position((($clone(H.BigEndian,H.bigEndian).Uint32($subslice(b,(g+1>>0),(g+5>>0)))>>0)));$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=$clone(n,L.Position);$r=e.MappingCallback(l,m,o);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:b=$subslice(b,(g+5>>0));c=c+(5)>>0;$s=1;continue;case 2:$s=-1;return[c,d];}return;}var $f={$blk:CO.ptr.prototype.Write,$c:true,$r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};CO.prototype.Write=function(b){return this.$val.Write(b);};BH.methods=[{prop:"RequiredParams",name:"RequiredParams",pkg:"",typ:$funcType([],[$Int],false)},{prop:"VariadicType",name:"VariadicType",pkg:"",typ:$funcType([],[M.Type],false)},{prop:"Param",name:"Param",pkg:"",typ:$funcType([$Int,$Bool],[M.Type],false)}];BJ.methods=[{prop:"Unwrap",name:"Unwrap",pkg:"",typ:$funcType([],[$error],false)},{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];DN.methods=[{prop:"Write",name:"Write",pkg:"",typ:$funcType([CR],[$Int,$error],false)}];FM.methods=[{prop:"SelectionOf",name:"SelectionOf",pkg:"",typ:$funcType([EY],[BN,$Bool],false)}];GQ.methods=[{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[M.SelectionKind],false)},{prop:"Recv",name:"Recv",pkg:"",typ:$funcType([],[M.Type],false)},{prop:"Index",name:"Index",pkg:"",typ:$funcType([],[GF],false)},{prop:"Obj",name:"Obj",pkg:"",typ:$funcType([],[M.Object],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[M.Type],false)}];DG.methods=[{prop:"Write",name:"Write",pkg:"",typ:$funcType([CR],[$Int,$error],false)},{prop:"Printf",name:"Printf",pkg:"",typ:$funcType([$String,CP],[],true)},{prop:"PrintCond",name:"PrintCond",pkg:"",typ:$funcType([$Bool,$String,$String],[],false)},{prop:"SetPos",name:"SetPos",pkg:"",typ:$funcType([L.Pos],[],false)},{prop:"writePos",name:"writePos",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([],[],false)},{prop:"Indent",name:"Indent",pkg:"",typ:$funcType([GR],[],false)},{prop:"CatchOutput",name:"CatchOutput",pkg:"",typ:$funcType([$Int,GR],[CR],false)},{prop:"Delayed",name:"Delayed",pkg:"",typ:$funcType([GR],[],false)},{prop:"expandTupleArgs",name:"expandTupleArgs",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([CT],[CT],false)},{prop:"translateArgs",name:"translateArgs",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([CU,CT,$Bool],[CQ],false)},{prop:"translateSelection",name:"translateSelection",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([BN,L.Pos],[CQ,$String],false)},{prop:"zeroValue",name:"zeroValue",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([M.Type],[J.Expr],false)},{prop:"newConst",name:"newConst",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([M.Type,K.Value],[J.Expr],false)},{prop:"newVariable",name:"newVariable",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([$String],[$String],false)},{prop:"newVariableWithLevel",name:"newVariableWithLevel",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([$String,$Bool],[$String],false)},{prop:"newIdent",name:"newIdent",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([$String,M.Type],[DE],false)},{prop:"setType",name:"setType",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([J.Expr,M.Type],[J.Expr],false)},{prop:"pkgVar",name:"pkgVar",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([EL],[$String],false)},{prop:"objectName",name:"objectName",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([M.Object],[$String],false)},{prop:"varPtrName",name:"varPtrName",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([DH],[$String],false)},{prop:"typeName",name:"typeName",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([M.Type],[$String],false)},{prop:"externalize",name:"externalize",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([$String,M.Type],[$String],false)},{prop:"handleEscapingVars",name:"handleEscapingVars",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([J.Node],[],false)},{prop:"translateStmtList",name:"translateStmtList",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([EI],[],false)},{prop:"translateStmt",name:"translateStmt",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([J.Stmt,DO],[],false)},{prop:"translateBranchingStmt",name:"translateBranchingStmt",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([EH,EG,$Bool,GS,DO,$Bool],[],false)},{prop:"translateLoopingStmt",name:"translateLoopingStmt",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([GT,DP,GR,GR,DO,$Bool],[],false)},{prop:"translateAssign",name:"translateAssign",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([J.Expr,J.Expr,$Bool],[$String],false)},{prop:"translateResults",name:"translateResults",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([CT],[$String],false)},{prop:"labelCase",name:"labelCase",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([DO],[$Int],false)},{prop:"initArgs",name:"initArgs",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([M.Type],[$String],false)},{prop:"translateToplevelFunction",name:"translateToplevelFunction",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([FS,FL],[CR],false)},{prop:"translateExpr",name:"translateExpr",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([J.Expr],[EQ],false)},{prop:"translateCall",name:"translateCall",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([GB,CU,EQ],[EQ],false)},{prop:"delegatedCall",name:"delegatedCall",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([GB],[EQ,EQ],false)},{prop:"makeReceiver",name:"makeReceiver",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([EY],[EQ],false)},{prop:"translateBuiltin",name:"translateBuiltin",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([$String,CU,CT,$Bool],[EQ],false)},{prop:"identifierConstant",name:"identifierConstant",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([J.Expr],[$String,$Bool],false)},{prop:"translateExprSlice",name:"translateExprSlice",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([CT,M.Type],[CQ],false)},{prop:"translateConversion",name:"translateConversion",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([J.Expr,M.Type],[EQ],false)},{prop:"translateImplicitConversionWithCloning",name:"translateImplicitConversionWithCloning",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([J.Expr,M.Type],[EQ],false)},{prop:"translateImplicitConversion",name:"translateImplicitConversion",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([J.Expr,M.Type],[EQ],false)},{prop:"translateConversionToSlice",name:"translateConversionToSlice",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([J.Expr,M.Type],[EQ],false)},{prop:"loadStruct",name:"loadStruct",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([$String,$String,CW],[$String],false)},{prop:"fixNumber",name:"fixNumber",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([EQ,CY],[EQ],false)},{prop:"internalize",name:"internalize",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([EQ,M.Type],[EQ],false)},{prop:"formatExpr",name:"formatExpr",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([$String,CP],[EQ],true)},{prop:"formatParenExpr",name:"formatParenExpr",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([$String,CP],[EQ],true)},{prop:"formatExprInternal",name:"formatExprInternal",pkg:"github.com/gopherjs/gopherjs/compiler",typ:$funcType([$String,CP,$Bool],[EQ],false)}];BS.methods=[{prop:"Import",name:"Import",pkg:"",typ:$funcType([$String],[EL,$error],false)}];BW.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];GZ.methods=[{prop:"Add",name:"Add",pkg:"",typ:$funcType([FE],[$error],false)},{prop:"IsImplementation",name:"IsImplementation",pkg:"",typ:$funcType([BW],[$Bool],false)},{prop:"FindImplementation",name:"FindImplementation",pkg:"",typ:$funcType([BW],[BW,$Bool],false)}];EQ.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"StringWithParens",name:"StringWithParens",pkg:"",typ:$funcType([],[$String],false)}];CE.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Normalize",name:"Normalize",pkg:"",typ:$funcType([],[$error],false)}];CF.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];FB.methods=[{prop:"RegisterTypes",name:"RegisterTypes",pkg:"",typ:$funcType([GX],[$error],false)}];HC.methods=[{prop:"Write",name:"Write",pkg:"",typ:$funcType([CR],[$Int,$error],false)}];BH.init("",[{prop:"Sig",name:"Sig",embedded:false,exported:true,typ:CU,tag:""}]);BJ.init("github.com/gopherjs/gopherjs/compiler",[{prop:"cause",name:"cause",embedded:false,exported:false,typ:$emptyInterface,tag:""},{prop:"stack",name:"stack",embedded:false,exported:false,typ:CR,tag:""},{prop:"clues",name:"clues",embedded:false,exported:false,typ:F.Builder,tag:""}]);BM.init("github.com/gopherjs/gopherjs/compiler",[{prop:"Info",name:"Info",embedded:true,exported:true,typ:FN,tag:""},{prop:"additionalSelections",name:"additionalSelections",embedded:false,exported:false,typ:GK,tag:""},{prop:"typeNames",name:"typeNames",embedded:false,exported:false,typ:FO,tag:""},{prop:"pkgVars",name:"pkgVars",embedded:false,exported:false,typ:GL,tag:""},{prop:"objectNames",name:"objectNames",embedded:false,exported:false,typ:GM,tag:""},{prop:"varPtrNames",name:"varPtrNames",embedded:false,exported:false,typ:GN,tag:""},{prop:"anonTypes",name:"anonTypes",embedded:false,exported:false,typ:FO,tag:""},{prop:"anonTypeMap",name:"anonTypeMap",embedded:false,exported:false,typ:AD.Map,tag:""},{prop:"escapingVars",name:"escapingVars",embedded:false,exported:false,typ:GO,tag:""},{prop:"indentation",name:"indentation",embedded:false,exported:false,typ:$Int,tag:""},{prop:"dependencies",name:"dependencies",embedded:false,exported:false,typ:GP,tag:""},{prop:"minify",name:"minify",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"fileSet",name:"fileSet",embedded:false,exported:false,typ:CX,tag:""},{prop:"errList",name:"errList",embedded:false,exported:false,typ:CE,tag:""}]);BN.init([{prop:"Index",name:"Index",pkg:"",typ:$funcType([],[GF],false)},{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[M.SelectionKind],false)},{prop:"Obj",name:"Obj",pkg:"",typ:$funcType([],[M.Object],false)},{prop:"Recv",name:"Recv",pkg:"",typ:$funcType([],[M.Type],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[M.Type],false)}]);BO.init("github.com/gopherjs/gopherjs/compiler",[{prop:"kind",name:"kind",embedded:false,exported:false,typ:M.SelectionKind,tag:""},{prop:"recv",name:"recv",embedded:false,exported:false,typ:M.Type,tag:""},{prop:"index",name:"index",embedded:false,exported:false,typ:GF,tag:""},{prop:"obj",name:"obj",embedded:false,exported:false,typ:M.Object,tag:""},{prop:"typ",name:"typ",embedded:false,exported:false,typ:M.Type,tag:""}]);BP.init("github.com/gopherjs/gopherjs/compiler",[{prop:"FuncInfo",name:"FuncInfo",embedded:true,exported:true,typ:FL,tag:""},{prop:"pkgCtx",name:"pkgCtx",embedded:false,exported:false,typ:FM,tag:""},{prop:"parent",name:"parent",embedded:false,exported:false,typ:DG,tag:""},{prop:"sig",name:"sig",embedded:false,exported:false,typ:CU,tag:""},{prop:"allVars",name:"allVars",embedded:false,exported:false,typ:GU,tag:""},{prop:"localVars",name:"localVars",embedded:false,exported:false,typ:CQ,tag:""},{prop:"resultNames",name:"resultNames",embedded:false,exported:false,typ:CT,tag:""},{prop:"flowDatas",name:"flowDatas",embedded:false,exported:false,typ:GV,tag:""},{prop:"caseCounter",name:"caseCounter",embedded:false,exported:false,typ:$Int,tag:""},{prop:"labelCases",name:"labelCases",embedded:false,exported:false,typ:GW,tag:""},{prop:"output",name:"output",embedded:false,exported:false,typ:CR,tag:""},{prop:"delayedOutput",name:"delayedOutput",embedded:false,exported:false,typ:CR,tag:""},{prop:"posAvailable",name:"posAvailable",embedded:false,exported:false,typ:$Bool,tag:""},{prop:"pos",name:"pos",embedded:false,exported:false,typ:L.Pos,tag:""}]);BQ.init("github.com/gopherjs/gopherjs/compiler",[{prop:"postStmt",name:"postStmt",embedded:false,exported:false,typ:GR,tag:""},{prop:"beginCase",name:"beginCase",embedded:false,exported:false,typ:$Int,tag:""},{prop:"endCase",name:"endCase",embedded:false,exported:false,typ:$Int,tag:""}]);BR.init("",[{prop:"Packages",name:"Packages",embedded:false,exported:true,typ:GX,tag:""},{prop:"Import",name:"Import",embedded:false,exported:true,typ:GY,tag:""}]);BS.init("github.com/gopherjs/gopherjs/compiler",[{prop:"importContext",name:"importContext",embedded:false,exported:false,typ:FH,tag:""},{prop:"importError",name:"importError",embedded:false,exported:false,typ:FI,tag:""}]);BV.init("",[{prop:"Implementation",name:"Implementation",embedded:false,exported:true,typ:BW,tag:""},{prop:"Reference",name:"Reference",embedded:false,exported:true,typ:BW,tag:""}]);BW.init("",[{prop:"PkgPath",name:"PkgPath",embedded:false,exported:true,typ:$String,tag:""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""}]);BZ.init("github.com/gopherjs/gopherjs/compiler",[{prop:"byImplementation",name:"byImplementation",embedded:false,exported:false,typ:HA,tag:""},{prop:"byReference",name:"byReference",embedded:false,exported:false,typ:HB,tag:""}]);CA.init("github.com/gopherjs/gopherjs/compiler",[{prop:"str",name:"str",embedded:false,exported:false,typ:$String,tag:""},{prop:"parens",name:"parens",embedded:false,exported:false,typ:$Bool,tag:""}]);CE.init($error);CF.init("",[{prop:"ImportPath",name:"ImportPath",embedded:false,exported:true,typ:$String,tag:""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:""},{prop:"Imports",name:"Imports",embedded:false,exported:true,typ:CQ,tag:""},{prop:"ExportData",name:"ExportData",embedded:false,exported:true,typ:CR,tag:""},{prop:"Declarations",name:"Declarations",embedded:false,exported:true,typ:FR,tag:""},{prop:"IncJSCode",name:"IncJSCode",embedded:false,exported:true,typ:CR,tag:""},{prop:"FileSet",name:"FileSet",embedded:false,exported:true,typ:CR,tag:""},{prop:"Minified",name:"Minified",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"GoLinknames",name:"GoLinknames",embedded:false,exported:true,typ:FE,tag:""},{prop:"BuildTime",name:"BuildTime",embedded:false,exported:true,typ:AA.Time,tag:""}]);CG.init("",[{prop:"FullName",name:"FullName",embedded:false,exported:true,typ:$String,tag:""},{prop:"LinkingName",name:"LinkingName",embedded:false,exported:true,typ:BW,tag:""},{prop:"Vars",name:"Vars",embedded:false,exported:true,typ:CQ,tag:""},{prop:"DeclCode",name:"DeclCode",embedded:false,exported:true,typ:CR,tag:""},{prop:"MethodListCode",name:"MethodListCode",embedded:false,exported:true,typ:CR,tag:""},{prop:"TypeInitCode",name:"TypeInitCode",embedded:false,exported:true,typ:CR,tag:""},{prop:"InitCode",name:"InitCode",embedded:false,exported:true,typ:CR,tag:""},{prop:"DceObjectFilter",name:"DceObjectFilter",embedded:false,exported:true,typ:$String,tag:""},{prop:"DceMethodFilter",name:"DceMethodFilter",embedded:false,exported:true,typ:$String,tag:""},{prop:"DceDeps",name:"DceDeps",embedded:false,exported:true,typ:CQ,tag:""},{prop:"Blocking",name:"Blocking",embedded:false,exported:true,typ:$Bool,tag:""}]);CJ.init("github.com/gopherjs/gopherjs/compiler",[{prop:"decl",name:"decl",embedded:false,exported:false,typ:FQ,tag:""},{prop:"objectFilter",name:"objectFilter",embedded:false,exported:false,typ:$String,tag:""},{prop:"methodFilter",name:"methodFilter",embedded:false,exported:false,typ:$String,tag:""}]);CO.init("github.com/gopherjs/gopherjs/compiler",[{prop:"Writer",name:"Writer",embedded:false,exported:true,typ:AF.Writer,tag:""},{prop:"MappingCallback",name:"MappingCallback",embedded:false,exported:true,typ:HD,tag:""},{prop:"line",name:"line",embedded:false,exported:false,typ:$Int,tag:""},{prop:"column",name:"column",embedded:false,exported:false,typ:$Int,tag:""},{prop:"fileSet",name:"fileSet",embedded:false,exported:false,typ:CX,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=G.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AE.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=Y.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=T.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=W.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=X.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AG.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=U.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AB.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=V.$init();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=Z.$init();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AC.$init();$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AD.$init();$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AF.$init();$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N.$init();$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=25;case 25:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=O.$init();$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P.$init();$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=Q.$init();$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=30;case 30:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=R.$init();$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AA.$init();$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=S.$init();$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}a=M.Universe.Lookup("nil");$s=34;case 34:if($c){$c=false;a=a.$blk();}if(a&&a.$blk!==undefined){break s;}AK=a;CB=new M.StdSizes.ptr(new $Int64(0,4),new $Int64(0,8));CC=new $global.Map();CD();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/neelance/go-angularjs"]=(function(){var $pkg={},$init,A,B,C,D,E,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,F,G,H;A=$packages["github.com/gopherjs/gopherjs/js"];B=$pkg.Module=$newType(0,$kindStruct,"angularjs.Module",true,"github.com/neelance/go-angularjs",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});C=$pkg.Scope=$newType(0,$kindStruct,"angularjs.Scope",true,"github.com/neelance/go-angularjs",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});D=$pkg.JQueryElement=$newType(0,$kindStruct,"angularjs.JQueryElement",true,"github.com/neelance/go-angularjs",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});E=$pkg.Event=$newType(0,$kindStruct,"angularjs.Event",true,"github.com/neelance/go-angularjs",true,function(Object_,KeyCode_){this.$val=this;if(arguments.length===0){this.Object=null;this.KeyCode=0;return;}this.Object=Object_;this.KeyCode=KeyCode_;});I=$pkg.HttpService=$newType(0,$kindStruct,"angularjs.HttpService",true,"github.com/neelance/go-angularjs",true,function(){this.$val=this;if(arguments.length===0){return;}});J=$ptrType(A.Object);K=$funcType([J],[],false);L=$funcType([],[],false);M=$sliceType($String);N=$funcType([$String,$Int,J,J],[],false);O=$ptrType(C);P=$funcType([O],[],false);Q=$ptrType(B);R=$ptrType(E);S=$funcType([R],[],false);T=$ptrType(D);U=$funcType([$String,$Int],[],false);V=$ptrType(I);B.ptr.prototype.NewController=function(a,b){var a,b,c;c=this;c.Object.controller($externalize(a,$String),$externalize(new A.S([new $String("$scope"),new K((function $b(d){var{d,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:$r=b(new C.ptr(d));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,d,$s};return $f;}))]),A.S));};B.prototype.NewController=function(a,b){return this.$val.NewController(a,b);};C.ptr.prototype.Apply=function(a){var a,b;b=this;b.Object.$apply($externalize(a,L));};C.prototype.Apply=function(a){return this.$val.Apply(a);};C.ptr.prototype.EvalAsync=function(a){var a,b;b=this;b.Object.$evalAsync($externalize(a,L));};C.prototype.EvalAsync=function(a){return this.$val.EvalAsync(a);};D.ptr.prototype.Prop=function(a){var a,b;b=this;return b.Object.prop($externalize(a,$String));};D.prototype.Prop=function(a){return this.$val.Prop(a);};D.ptr.prototype.SetProp=function(a,b){var a,b,c;c=this;c.Object.prop($externalize(a,$emptyInterface),$externalize(b,$emptyInterface));};D.prototype.SetProp=function(a,b){return this.$val.SetProp(a,b);};D.ptr.prototype.On=function(a,b){var a,b,c;c=this;c.Object.on($externalize(a,$String),$externalize((function $b(d){var{d,$s,$r,$c}=$restore(this,{d});$s=$s||0;s:while(true){switch($s){case 0:$r=b(new E.ptr(d,0));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,d,$s};return $f;}),K));};D.prototype.On=function(a,b){return this.$val.On(a,b);};D.ptr.prototype.Val=function(){var a;a=this;return a.Object.val();};D.prototype.Val=function(){return this.$val.Val();};D.ptr.prototype.SetVal=function(a){var a,b;b=this;b.Object.val($externalize(a,$emptyInterface));};D.prototype.SetVal=function(a){return this.$val.SetVal(a);};E.ptr.prototype.PreventDefault=function(){var a;a=this;a.Object.preventDefault();};E.prototype.PreventDefault=function(){return this.$val.PreventDefault();};F=function(a,b,c){var a,b,c;return new B.ptr($global.angular.module($externalize(a,$String),$externalize(b,M),$externalize(c,L)));};$pkg.NewModule=F;G=function(a){var a;return new D.ptr($global.angular.element($global.document.getElementById($externalize(a,$String))));};$pkg.ElementById=G;H=function(a){var a;return $global.angular.element($global.document).injector().get($externalize(a,$String));};$pkg.Service=H;I.ptr.prototype.Get=function(a,b){var a,b,c,d;c=this;d=H("$http").get($externalize(a,$String));d.success($externalize((function $b(e,f,g,h){var{e,f,g,h,$s,$r,$c}=$restore(this,{e,f,g,h});$s=$s||0;s:while(true){switch($s){case 0:$r=b(e,f);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,e,f,g,h,$s};return $f;}),N));d.error($externalize((function $b(e,f,g,h){var{e,f,g,h,$s,$r,$c}=$restore(this,{e,f,g,h});$s=$s||0;s:while(true){switch($s){case 0:$r=b(e,f);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,e,f,g,h,$s};return $f;}),N));};I.prototype.Get=function(a,b){return this.$val.Get(a,b);};Q.methods=[{prop:"NewController",name:"NewController",pkg:"",typ:$funcType([$String,P],[],false)}];O.methods=[{prop:"Apply",name:"Apply",pkg:"",typ:$funcType([L],[],false)},{prop:"EvalAsync",name:"EvalAsync",pkg:"",typ:$funcType([L],[],false)}];T.methods=[{prop:"Prop",name:"Prop",pkg:"",typ:$funcType([$String],[J],false)},{prop:"SetProp",name:"SetProp",pkg:"",typ:$funcType([$emptyInterface,$emptyInterface],[],false)},{prop:"On",name:"On",pkg:"",typ:$funcType([$String,S],[],false)},{prop:"Val",name:"Val",pkg:"",typ:$funcType([],[J],false)},{prop:"SetVal",name:"SetVal",pkg:"",typ:$funcType([$emptyInterface],[],false)}];R.methods=[{prop:"PreventDefault",name:"PreventDefault",pkg:"",typ:$funcType([],[],false)}];V.methods=[{prop:"Get",name:"Get",pkg:"",typ:$funcType([$String,U],[],false)}];B.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:J,tag:""}]);C.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:J,tag:""}]);D.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:J,tag:""}]);E.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:J,tag:""},{prop:"KeyCode",name:"KeyCode",embedded:false,exported:true,typ:$Int,tag:"js:\"keyCode\""}]);I.init("",[]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.HTTP=new I.ptr();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["image/color"]=(function(){var $pkg={},$init,C,E,I,K,L,M,N,O,P,Q,R,S,T,V,AG,AH,A,D,F,G,J,U,W,X,Y,Z,AA,AB,AC,AD;C=$pkg.YCbCr=$newType(0,$kindStruct,"color.YCbCr",true,"image/color",true,function(Y_,Cb_,Cr_){this.$val=this;if(arguments.length===0){this.Y=0;this.Cb=0;this.Cr=0;return;}this.Y=Y_;this.Cb=Cb_;this.Cr=Cr_;});E=$pkg.NYCbCrA=$newType(0,$kindStruct,"color.NYCbCrA",true,"image/color",true,function(YCbCr_,A_){this.$val=this;if(arguments.length===0){this.YCbCr=new C.ptr(0,0,0);this.A=0;return;}this.YCbCr=YCbCr_;this.A=A_;});I=$pkg.CMYK=$newType(0,$kindStruct,"color.CMYK",true,"image/color",true,function(C_,M_,Y_,K_){this.$val=this;if(arguments.length===0){this.C=0;this.M=0;this.Y=0;this.K=0;return;}this.C=C_;this.M=M_;this.Y=Y_;this.K=K_;});K=$pkg.Color=$newType(8,$kindInterface,"color.Color",true,"image/color",true,null);L=$pkg.RGBA=$newType(0,$kindStruct,"color.RGBA",true,"image/color",true,function(R_,G_,B_,A_){this.$val=this;if(arguments.length===0){this.R=0;this.G=0;this.B=0;this.A=0;return;}this.R=R_;this.G=G_;this.B=B_;this.A=A_;});M=$pkg.RGBA64=$newType(0,$kindStruct,"color.RGBA64",true,"image/color",true,function(R_,G_,B_,A_){this.$val=this;if(arguments.length===0){this.R=0;this.G=0;this.B=0;this.A=0;return;}this.R=R_;this.G=G_;this.B=B_;this.A=A_;});N=$pkg.NRGBA=$newType(0,$kindStruct,"color.NRGBA",true,"image/color",true,function(R_,G_,B_,A_){this.$val=this;if(arguments.length===0){this.R=0;this.G=0;this.B=0;this.A=0;return;}this.R=R_;this.G=G_;this.B=B_;this.A=A_;});O=$pkg.NRGBA64=$newType(0,$kindStruct,"color.NRGBA64",true,"image/color",true,function(R_,G_,B_,A_){this.$val=this;if(arguments.length===0){this.R=0;this.G=0;this.B=0;this.A=0;return;}this.R=R_;this.G=G_;this.B=B_;this.A=A_;});P=$pkg.Alpha=$newType(0,$kindStruct,"color.Alpha",true,"image/color",true,function(A_){this.$val=this;if(arguments.length===0){this.A=0;return;}this.A=A_;});Q=$pkg.Alpha16=$newType(0,$kindStruct,"color.Alpha16",true,"image/color",true,function(A_){this.$val=this;if(arguments.length===0){this.A=0;return;}this.A=A_;});R=$pkg.Gray=$newType(0,$kindStruct,"color.Gray",true,"image/color",true,function(Y_){this.$val=this;if(arguments.length===0){this.Y=0;return;}this.Y=Y_;});S=$pkg.Gray16=$newType(0,$kindStruct,"color.Gray16",true,"image/color",true,function(Y_){this.$val=this;if(arguments.length===0){this.Y=0;return;}this.Y=Y_;});T=$pkg.Model=$newType(8,$kindInterface,"color.Model",true,"image/color",true,null);V=$pkg.modelFunc=$newType(0,$kindStruct,"color.modelFunc",true,"image/color",false,function(f_){this.$val=this;if(arguments.length===0){this.f=$throwNilPointerError;return;}this.f=f_;});AG=$ptrType(V);AH=$funcType([K],[K],false);A=function(a,b,c){var a,b,c,d,e,f,g,h,i;d=((a>>0));e=((b>>0));f=((c>>0));g=((((($imul(19595,d))+($imul(38470,e))>>0)+($imul(7471,f))>>0)+32768>>0))>>16>>0;h=((($imul(-11056,d))-($imul(21712,e))>>0)+($imul(32768,f))>>0)+8421376>>0;if(((((h>>>0))&4278190080)>>>0)===0){h=(h>>$min((16),31))>>0;}else{h=~((h>>31>>0))>>0;}i=((($imul(32768,d))-($imul(27440,e))>>0)-($imul(5328,f))>>0)+8421376>>0;if(((((i>>>0))&4278190080)>>>0)===0){i=(i>>$min((16),31))>>0;}else{i=~((i>>31>>0))>>0;}return[((g<<24>>>24)),((h<<24>>>24)),((i<<24>>>24))];};$pkg.RGBToYCbCr=A;C.ptr.prototype.RGBA=function(){var a,b,c,d,e,f,g;a=this;b=$imul(((a.Y>>0)),65793);c=((a.Cb>>0))-128>>0;d=((a.Cr>>0))-128>>0;e=b+($imul(91881,d))>>0;if(((((e>>>0))&4278190080)>>>0)===0){e=(e>>$min((8),31))>>0;}else{e=(~((e>>31>>0))>>0)&65535;}f=(b-($imul(22554,c))>>0)-($imul(46802,d))>>0;if(((((f>>>0))&4278190080)>>>0)===0){f=(f>>$min((8),31))>>0;}else{f=(~((f>>31>>0))>>0)&65535;}g=b+($imul(116130,c))>>0;if(((((g>>>0))&4278190080)>>>0)===0){g=(g>>$min((8),31))>>0;}else{g=(~((g>>31>>0))>>0)&65535;}return[((e>>>0)),((f>>>0)),((g>>>0)),65535];};C.prototype.RGBA=function(){return this.$val.RGBA();};D=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$assertType(a,C,true);c=b[1];if(c){$s=-1;return a;}e=a.RGBA();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];h=d[2];i=A((((f>>>8>>>0)<<24>>>24)),(((g>>>8>>>0)<<24>>>24)),(((h>>>8>>>0)<<24>>>24)));j=i[0];k=i[1];l=i[2];$s=-1;return(m=new C.ptr(j,k,l),new m.constructor.elem(m));}return;}var $f={$blk:D,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,$s};return $f;};E.ptr.prototype.RGBA=function(){var a,b,c,d,e,f,g,h,i,j,k;a=this;b=$imul(((a.YCbCr.Y>>0)),65793);c=((a.YCbCr.Cb>>0))-128>>0;d=((a.YCbCr.Cr>>0))-128>>0;e=b+($imul(91881,d))>>0;if(((((e>>>0))&4278190080)>>>0)===0){e=(e>>$min((8),31))>>0;}else{e=(~((e>>31>>0))>>0)&65535;}f=(b-($imul(22554,c))>>0)-($imul(46802,d))>>0;if(((((f>>>0))&4278190080)>>>0)===0){f=(f>>$min((8),31))>>0;}else{f=(~((f>>31>>0))>>0)&65535;}g=b+($imul(116130,c))>>0;if(((((g>>>0))&4278190080)>>>0)===0){g=(g>>$min((8),31))>>0;}else{g=(~((g>>31>>0))>>0)&65535;}h=$imul(((a.A>>>0)),257)>>>0;return[(i=($imul(((e>>>0)),h)>>>0)/65535,(i===i&&i!==1/0&&i!==-1/0)?i>>>0:$throwRuntimeError("integer divide by zero")),(j=($imul(((f>>>0)),h)>>>0)/65535,(j===j&&j!==1/0&&j!==-1/0)?j>>>0:$throwRuntimeError("integer divide by zero")),(k=($imul(((g>>>0)),h)>>>0)/65535,(k===k&&k!==1/0&&k!==-1/0)?k>>>0:$throwRuntimeError("integer divide by zero")),h];};E.prototype.RGBA=function(){return this.$val.RGBA();};F=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=a;if($assertType(b,E,true)[1]){c=$clone(b.$val,E);$s=-1;return new c.constructor.elem(c);}else if($assertType(b,C,true)[1]){d=$clone(b.$val,C);$s=-1;return(e=new E.ptr($clone(d,C),255),new e.constructor.elem(e));}g=a.RGBA();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];j=f[2];k=f[3];if(!((k===0))){h=(l=(($imul(h,65535)>>>0))/k,(l===l&&l!==1/0&&l!==-1/0)?l>>>0:$throwRuntimeError("integer divide by zero"));i=(m=(($imul(i,65535)>>>0))/k,(m===m&&m!==1/0&&m!==-1/0)?m>>>0:$throwRuntimeError("integer divide by zero"));j=(n=(($imul(j,65535)>>>0))/k,(n===n&&n!==1/0&&n!==-1/0)?n>>>0:$throwRuntimeError("integer divide by zero"));}o=A((((h>>>8>>>0)<<24>>>24)),(((i>>>8>>>0)<<24>>>24)),(((j>>>8>>>0)<<24>>>24)));p=o[0];q=o[1];r=o[2];$s=-1;return(s=new E.ptr(new C.ptr(p,q,r),(((k>>>8>>>0)<<24>>>24))),new s.constructor.elem(s));}return;}var $f={$blk:F,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s};return $f;};G=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m;d=((a>>>0));e=((b>>>0));f=((c>>>0));g=d;if(g>>0)),255)>>>0)/g,(h===h&&h!==1/0&&h!==-1/0)?h>>>0:$throwRuntimeError("integer divide by zero"));k=(j=($imul(((g-e>>>0)),255)>>>0)/g,(j===j&&j!==1/0&&j!==-1/0)?j>>>0:$throwRuntimeError("integer divide by zero"));m=(l=($imul(((g-f>>>0)),255)>>>0)/g,(l===l&&l!==1/0&&l!==-1/0)?l>>>0:$throwRuntimeError("integer divide by zero"));return[((i<<24>>>24)),((k<<24>>>24)),((m<<24>>>24)),(((255-g>>>0)<<24>>>24))];};$pkg.RGBToCMYK=G;I.ptr.prototype.RGBA=function(){var a,b,c,d,e,f,g,h;a=this;b=65535-($imul(((a.K>>>0)),257)>>>0)>>>0;d=(c=($imul(((65535-($imul(((a.C>>>0)),257)>>>0)>>>0)),b)>>>0)/65535,(c===c&&c!==1/0&&c!==-1/0)?c>>>0:$throwRuntimeError("integer divide by zero"));f=(e=($imul(((65535-($imul(((a.M>>>0)),257)>>>0)>>>0)),b)>>>0)/65535,(e===e&&e!==1/0&&e!==-1/0)?e>>>0:$throwRuntimeError("integer divide by zero"));h=(g=($imul(((65535-($imul(((a.Y>>>0)),257)>>>0)>>>0)),b)>>>0)/65535,(g===g&&g!==1/0&&g!==-1/0)?g>>>0:$throwRuntimeError("integer divide by zero"));return[d,f,h,65535];};I.prototype.RGBA=function(){return this.$val.RGBA();};J=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$assertType(a,I,true);c=b[1];if(c){$s=-1;return a;}e=a.RGBA();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];h=d[2];i=G((((f>>>8>>>0)<<24>>>24)),(((g>>>8>>>0)<<24>>>24)),(((h>>>8>>>0)<<24>>>24)));j=i[0];k=i[1];l=i[2];m=i[3];$s=-1;return(n=new I.ptr(j,k,l,m),new n.constructor.elem(n));}return;}var $f={$blk:J,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s};return $f;};L.ptr.prototype.RGBA=function(){var a,b,c,d,e;a=0;b=0;c=0;d=0;e=this;a=((e.R>>>0));a=(a|((a<<8>>>0)))>>>0;b=((e.G>>>0));b=(b|((b<<8>>>0)))>>>0;c=((e.B>>>0));c=(c|((c<<8>>>0)))>>>0;d=((e.A>>>0));d=(d|((d<<8>>>0)))>>>0;return[a,b,c,d];};L.prototype.RGBA=function(){return this.$val.RGBA();};M.ptr.prototype.RGBA=function(){var a,b,c,d,e,f,g,h,i;a=0;b=0;c=0;d=0;e=this;f=((e.R>>>0));g=((e.G>>>0));h=((e.B>>>0));i=((e.A>>>0));a=f;b=g;c=h;d=i;return[a,b,c,d];};M.prototype.RGBA=function(){return this.$val.RGBA();};N.ptr.prototype.RGBA=function(){var a,b,c,d,e,f,g,h;a=0;b=0;c=0;d=0;e=this;a=((e.R>>>0));a=(a|((a<<8>>>0)))>>>0;a=$imul(a,(((e.A>>>0))))>>>0;a=(f=a/(255),(f===f&&f!==1/0&&f!==-1/0)?f>>>0:$throwRuntimeError("integer divide by zero"));b=((e.G>>>0));b=(b|((b<<8>>>0)))>>>0;b=$imul(b,(((e.A>>>0))))>>>0;b=(g=b/(255),(g===g&&g!==1/0&&g!==-1/0)?g>>>0:$throwRuntimeError("integer divide by zero"));c=((e.B>>>0));c=(c|((c<<8>>>0)))>>>0;c=$imul(c,(((e.A>>>0))))>>>0;c=(h=c/(255),(h===h&&h!==1/0&&h!==-1/0)?h>>>0:$throwRuntimeError("integer divide by zero"));d=((e.A>>>0));d=(d|((d<<8>>>0)))>>>0;return[a,b,c,d];};N.prototype.RGBA=function(){return this.$val.RGBA();};O.ptr.prototype.RGBA=function(){var a,b,c,d,e,f,g,h;a=0;b=0;c=0;d=0;e=this;a=((e.R>>>0));a=$imul(a,(((e.A>>>0))))>>>0;a=(f=a/(65535),(f===f&&f!==1/0&&f!==-1/0)?f>>>0:$throwRuntimeError("integer divide by zero"));b=((e.G>>>0));b=$imul(b,(((e.A>>>0))))>>>0;b=(g=b/(65535),(g===g&&g!==1/0&&g!==-1/0)?g>>>0:$throwRuntimeError("integer divide by zero"));c=((e.B>>>0));c=$imul(c,(((e.A>>>0))))>>>0;c=(h=c/(65535),(h===h&&h!==1/0&&h!==-1/0)?h>>>0:$throwRuntimeError("integer divide by zero"));d=((e.A>>>0));return[a,b,c,d];};O.prototype.RGBA=function(){return this.$val.RGBA();};P.ptr.prototype.RGBA=function(){var a,b,c,d,e,f,g,h,i;a=0;b=0;c=0;d=0;e=this;d=((e.A>>>0));d=(d|((d<<8>>>0)))>>>0;f=d;g=d;h=d;i=d;a=f;b=g;c=h;d=i;return[a,b,c,d];};P.prototype.RGBA=function(){return this.$val.RGBA();};Q.ptr.prototype.RGBA=function(){var a,b,c,d,e,f,g,h,i;a=0;b=0;c=0;d=0;e=this;d=((e.A>>>0));f=d;g=d;h=d;i=d;a=f;b=g;c=h;d=i;return[a,b,c,d];};Q.prototype.RGBA=function(){return this.$val.RGBA();};R.ptr.prototype.RGBA=function(){var a,b,c,d,e,f,g,h,i,j;a=0;b=0;c=0;d=0;e=this;f=((e.Y>>>0));f=(f|((f<<8>>>0)))>>>0;g=f;h=f;i=f;j=65535;a=g;b=h;c=i;d=j;return[a,b,c,d];};R.prototype.RGBA=function(){return this.$val.RGBA();};S.ptr.prototype.RGBA=function(){var a,b,c,d,e,f,g,h,i,j;a=0;b=0;c=0;d=0;e=this;f=((e.Y>>>0));g=f;h=f;i=f;j=65535;a=g;b=h;c=i;d=j;return[a,b,c,d];};S.prototype.RGBA=function(){return this.$val.RGBA();};U=function(a){var a;return new V.ptr(a);};$pkg.ModelFunc=U;V.ptr.prototype.Convert=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=b.f(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:V.ptr.prototype.Convert,$c:true,$r,a,b,c,d,$s};return $f;};V.prototype.Convert=function(a){return this.$val.Convert(a);};W=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$assertType(a,L,true);c=b[1];if(c){$s=-1;return a;}e=a.RGBA();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];h=d[2];i=d[3];$s=-1;return(j=new L.ptr((((f>>>8>>>0)<<24>>>24)),(((g>>>8>>>0)<<24>>>24)),(((h>>>8>>>0)<<24>>>24)),(((i>>>8>>>0)<<24>>>24))),new j.constructor.elem(j));}return;}var $f={$blk:W,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};X=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$assertType(a,M,true);c=b[1];if(c){$s=-1;return a;}e=a.RGBA();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];h=d[2];i=d[3];$s=-1;return(j=new M.ptr(((f<<16>>>16)),((g<<16>>>16)),((h<<16>>>16)),((i<<16>>>16))),new j.constructor.elem(j));}return;}var $f={$blk:X,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};Y=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$assertType(a,N,true);c=b[1];if(c){$s=-1;return a;}e=a.RGBA();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];h=d[2];i=d[3];if(i===65535){$s=-1;return(j=new N.ptr((((f>>>8>>>0)<<24>>>24)),(((g>>>8>>>0)<<24>>>24)),(((h>>>8>>>0)<<24>>>24)),255),new j.constructor.elem(j));}if(i===0){$s=-1;return(k=new N.ptr(0,0,0,0),new k.constructor.elem(k));}f=(l=(($imul(f,65535)>>>0))/i,(l===l&&l!==1/0&&l!==-1/0)?l>>>0:$throwRuntimeError("integer divide by zero"));g=(m=(($imul(g,65535)>>>0))/i,(m===m&&m!==1/0&&m!==-1/0)?m>>>0:$throwRuntimeError("integer divide by zero"));h=(n=(($imul(h,65535)>>>0))/i,(n===n&&n!==1/0&&n!==-1/0)?n>>>0:$throwRuntimeError("integer divide by zero"));$s=-1;return(o=new N.ptr((((f>>>8>>>0)<<24>>>24)),(((g>>>8>>>0)<<24>>>24)),(((h>>>8>>>0)<<24>>>24)),(((i>>>8>>>0)<<24>>>24))),new o.constructor.elem(o));}return;}var $f={$blk:Y,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};Z=function(a){var{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$assertType(a,O,true);c=b[1];if(c){$s=-1;return a;}e=a.RGBA();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];h=d[2];i=d[3];if(i===65535){$s=-1;return(j=new O.ptr(((f<<16>>>16)),((g<<16>>>16)),((h<<16>>>16)),65535),new j.constructor.elem(j));}if(i===0){$s=-1;return(k=new O.ptr(0,0,0,0),new k.constructor.elem(k));}f=(l=(($imul(f,65535)>>>0))/i,(l===l&&l!==1/0&&l!==-1/0)?l>>>0:$throwRuntimeError("integer divide by zero"));g=(m=(($imul(g,65535)>>>0))/i,(m===m&&m!==1/0&&m!==-1/0)?m>>>0:$throwRuntimeError("integer divide by zero"));h=(n=(($imul(h,65535)>>>0))/i,(n===n&&n!==1/0&&n!==-1/0)?n>>>0:$throwRuntimeError("integer divide by zero"));$s=-1;return(o=new O.ptr(((f<<16>>>16)),((g<<16>>>16)),((h<<16>>>16)),((i<<16>>>16))),new o.constructor.elem(o));}return;}var $f={$blk:Z,$c:true,$r,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s};return $f;};AA=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$assertType(a,P,true);c=b[1];if(c){$s=-1;return a;}e=a.RGBA();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[3];$s=-1;return(g=new P.ptr((((f>>>8>>>0)<<24>>>24))),new g.constructor.elem(g));}return;}var $f={$blk:AA,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};AB=function(a){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$assertType(a,Q,true);c=b[1];if(c){$s=-1;return a;}e=a.RGBA();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[3];$s=-1;return(g=new Q.ptr(((f<<16>>>16))),new g.constructor.elem(g));}return;}var $f={$blk:AB,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};AC=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$assertType(a,R,true);c=b[1];if(c){$s=-1;return a;}e=a.RGBA();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];h=d[2];i=((((($imul(19595,f)>>>0)+($imul(38470,g)>>>0)>>>0)+($imul(7471,h)>>>0)>>>0)+32768>>>0))>>>24>>>0;$s=-1;return(j=new R.ptr(((i<<24>>>24))),new j.constructor.elem(j));}return;}var $f={$blk:AC,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};AD=function(a){var{a,b,c,d,e,f,g,h,i,j,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=$assertType(a,S,true);c=b[1];if(c){$s=-1;return a;}e=a.RGBA();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];h=d[2];i=((((($imul(19595,f)>>>0)+($imul(38470,g)>>>0)>>>0)+($imul(7471,h)>>>0)>>>0)+32768>>>0))>>>16>>>0;$s=-1;return(j=new S.ptr(((i<<16>>>16))),new j.constructor.elem(j));}return;}var $f={$blk:AD,$c:true,$r,a,b,c,d,e,f,g,h,i,j,$s};return $f;};C.methods=[{prop:"RGBA",name:"RGBA",pkg:"",typ:$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)}];E.methods=[{prop:"RGBA",name:"RGBA",pkg:"",typ:$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)}];I.methods=[{prop:"RGBA",name:"RGBA",pkg:"",typ:$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)}];L.methods=[{prop:"RGBA",name:"RGBA",pkg:"",typ:$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)}];M.methods=[{prop:"RGBA",name:"RGBA",pkg:"",typ:$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)}];N.methods=[{prop:"RGBA",name:"RGBA",pkg:"",typ:$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)}];O.methods=[{prop:"RGBA",name:"RGBA",pkg:"",typ:$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)}];P.methods=[{prop:"RGBA",name:"RGBA",pkg:"",typ:$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)}];Q.methods=[{prop:"RGBA",name:"RGBA",pkg:"",typ:$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)}];R.methods=[{prop:"RGBA",name:"RGBA",pkg:"",typ:$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)}];S.methods=[{prop:"RGBA",name:"RGBA",pkg:"",typ:$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)}];AG.methods=[{prop:"Convert",name:"Convert",pkg:"",typ:$funcType([K],[K],false)}];C.init("",[{prop:"Y",name:"Y",embedded:false,exported:true,typ:$Uint8,tag:""},{prop:"Cb",name:"Cb",embedded:false,exported:true,typ:$Uint8,tag:""},{prop:"Cr",name:"Cr",embedded:false,exported:true,typ:$Uint8,tag:""}]);E.init("",[{prop:"YCbCr",name:"YCbCr",embedded:true,exported:true,typ:C,tag:""},{prop:"A",name:"A",embedded:false,exported:true,typ:$Uint8,tag:""}]);I.init("",[{prop:"C",name:"C",embedded:false,exported:true,typ:$Uint8,tag:""},{prop:"M",name:"M",embedded:false,exported:true,typ:$Uint8,tag:""},{prop:"Y",name:"Y",embedded:false,exported:true,typ:$Uint8,tag:""},{prop:"K",name:"K",embedded:false,exported:true,typ:$Uint8,tag:""}]);K.init([{prop:"RGBA",name:"RGBA",pkg:"",typ:$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)}]);L.init("",[{prop:"R",name:"R",embedded:false,exported:true,typ:$Uint8,tag:""},{prop:"G",name:"G",embedded:false,exported:true,typ:$Uint8,tag:""},{prop:"B",name:"B",embedded:false,exported:true,typ:$Uint8,tag:""},{prop:"A",name:"A",embedded:false,exported:true,typ:$Uint8,tag:""}]);M.init("",[{prop:"R",name:"R",embedded:false,exported:true,typ:$Uint16,tag:""},{prop:"G",name:"G",embedded:false,exported:true,typ:$Uint16,tag:""},{prop:"B",name:"B",embedded:false,exported:true,typ:$Uint16,tag:""},{prop:"A",name:"A",embedded:false,exported:true,typ:$Uint16,tag:""}]);N.init("",[{prop:"R",name:"R",embedded:false,exported:true,typ:$Uint8,tag:""},{prop:"G",name:"G",embedded:false,exported:true,typ:$Uint8,tag:""},{prop:"B",name:"B",embedded:false,exported:true,typ:$Uint8,tag:""},{prop:"A",name:"A",embedded:false,exported:true,typ:$Uint8,tag:""}]);O.init("",[{prop:"R",name:"R",embedded:false,exported:true,typ:$Uint16,tag:""},{prop:"G",name:"G",embedded:false,exported:true,typ:$Uint16,tag:""},{prop:"B",name:"B",embedded:false,exported:true,typ:$Uint16,tag:""},{prop:"A",name:"A",embedded:false,exported:true,typ:$Uint16,tag:""}]);P.init("",[{prop:"A",name:"A",embedded:false,exported:true,typ:$Uint8,tag:""}]);Q.init("",[{prop:"A",name:"A",embedded:false,exported:true,typ:$Uint16,tag:""}]);R.init("",[{prop:"Y",name:"Y",embedded:false,exported:true,typ:$Uint8,tag:""}]);S.init("",[{prop:"Y",name:"Y",embedded:false,exported:true,typ:$Uint16,tag:""}]);T.init([{prop:"Convert",name:"Convert",pkg:"",typ:$funcType([K],[K],false)}]);V.init("image/color",[{prop:"f",name:"f",embedded:false,exported:false,typ:AH,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$pkg.YCbCrModel=U(D);$pkg.NYCbCrAModel=U(F);$pkg.CMYKModel=U(J);$pkg.RGBAModel=U(W);$pkg.RGBA64Model=U(X);$pkg.NRGBAModel=U(Y);$pkg.NRGBA64Model=U(Z);$pkg.AlphaModel=U(AA);$pkg.Alpha16Model=U(AB);$pkg.GrayModel=U(AC);$pkg.Gray16Model=U(AD);$pkg.Black=new S.ptr(0);$pkg.White=new S.ptr(65535);$pkg.Transparent=new Q.ptr(0);$pkg.Opaque=new Q.ptr(65535);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["image"]=(function(){var $pkg={},$init,D,E,A,F,B,C,G,H,O,AP,AR,BK,a,b,c,d,P,AS;D=$packages["bufio"];E=$packages["errors"];A=$packages["image/color"];F=$packages["io"];B=$packages["math/bits"];C=$packages["strconv"];G=$packages["sync"];H=$packages["sync/atomic"];O=$pkg.Uniform=$newType(0,$kindStruct,"image.Uniform",true,"image",true,function(C_){this.$val=this;if(arguments.length===0){this.C=$ifaceNil;return;}this.C=C_;});AP=$pkg.Point=$newType(0,$kindStruct,"image.Point",true,"image",true,function(X_,Y_){this.$val=this;if(arguments.length===0){this.X=0;this.Y=0;return;}this.X=X_;this.Y=Y_;});AR=$pkg.Rectangle=$newType(0,$kindStruct,"image.Rectangle",true,"image",true,function(Min_,Max_){this.$val=this;if(arguments.length===0){this.Min=new AP.ptr(0,0);this.Max=new AP.ptr(0,0);return;}this.Min=Min_;this.Max=Max_;});BK=$ptrType(O);O.ptr.prototype.RGBA=function(){var{e,f,g,h,i,j,k,l,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:e=0;f=0;g=0;h=0;i=this;k=i.C.RGBA();$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;e=j[0];f=j[1];g=j[2];h=j[3];l=[e,f,g,h];$s=2;case 2:return l;}return;}var $f={$blk:O.ptr.prototype.RGBA,$c:true,$r,e,f,g,h,i,j,k,l,$s};return $f;};O.prototype.RGBA=function(){return this.$val.RGBA();};O.ptr.prototype.ColorModel=function(){var e;e=this;return e;};O.prototype.ColorModel=function(){return this.$val.ColorModel();};O.ptr.prototype.Convert=function(e){var e,f;f=this;return f.C;};O.prototype.Convert=function(e){return this.$val.Convert(e);};O.ptr.prototype.Bounds=function(){var e;e=this;return new AR.ptr(new AP.ptr(-1000000000,-1000000000),new AP.ptr(1000000000,1000000000));};O.prototype.Bounds=function(){return this.$val.Bounds();};O.ptr.prototype.At=function(e,f){var e,f,g;g=this;return g.C;};O.prototype.At=function(e,f){return this.$val.At(e,f);};O.ptr.prototype.RGBA64At=function(e,f){var{e,f,g,h,i,j,k,l,m,$s,$r,$c}=$restore(this,{e,f});$s=$s||0;s:while(true){switch($s){case 0:g=this;i=g.C.RGBA();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[0];k=h[1];l=h[2];m=h[3];$s=-1;return new A.RGBA64.ptr(((j<<16>>>16)),((k<<16>>>16)),((l<<16>>>16)),((m<<16>>>16)));}return;}var $f={$blk:O.ptr.prototype.RGBA64At,$c:true,$r,e,f,g,h,i,j,k,l,m,$s};return $f;};O.prototype.RGBA64At=function(e,f){return this.$val.RGBA64At(e,f);};O.ptr.prototype.Opaque=function(){var{e,f,g,h,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:e=this;g=e.C.RGBA();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[3];$s=-1;return h===65535;}return;}var $f={$blk:O.ptr.prototype.Opaque,$c:true,$r,e,f,g,h,$s};return $f;};O.prototype.Opaque=function(){return this.$val.Opaque();};P=function(e){var e;return new O.ptr(e);};$pkg.NewUniform=P;AP.ptr.prototype.String=function(){var e;e=this;return"("+C.Itoa(e.X)+","+C.Itoa(e.Y)+")";};AP.prototype.String=function(){return this.$val.String();};AP.ptr.prototype.Add=function(e){var e,f;f=this;return new AP.ptr(f.X+e.X>>0,f.Y+e.Y>>0);};AP.prototype.Add=function(e){return this.$val.Add(e);};AP.ptr.prototype.Sub=function(e){var e,f;f=this;return new AP.ptr(f.X-e.X>>0,f.Y-e.Y>>0);};AP.prototype.Sub=function(e){return this.$val.Sub(e);};AP.ptr.prototype.Mul=function(e){var e,f;f=this;return new AP.ptr($imul(f.X,e),$imul(f.Y,e));};AP.prototype.Mul=function(e){return this.$val.Mul(e);};AP.ptr.prototype.Div=function(e){var e,f,g,h;f=this;return new AP.ptr((g=f.X/e,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero")),(h=f.Y/e,(h===h&&h!==1/0&&h!==-1/0)?h>>0:$throwRuntimeError("integer divide by zero")));};AP.prototype.Div=function(e){return this.$val.Div(e);};AP.ptr.prototype.In=function(e){var e,f;f=this;return e.Min.X<=f.X&&f.X>0;}f.Y=(l=f.Y%j,l===l?l:$throwRuntimeError("integer divide by zero"));if(f.Y<0){f.Y=f.Y+(j)>>0;}return $clone(f,AP).Add($clone(e.Min,AP));};AP.prototype.Mod=function(e){return this.$val.Mod(e);};AP.ptr.prototype.Eq=function(e){var e,f;f=this;return $equal(f,e,AP);};AP.prototype.Eq=function(e){return this.$val.Eq(e);};AR.ptr.prototype.String=function(){var e;e=this;return $clone(e.Min,AP).String()+"-"+$clone(e.Max,AP).String();};AR.prototype.String=function(){return this.$val.String();};AR.ptr.prototype.Dx=function(){var e;e=this;return e.Max.X-e.Min.X>>0;};AR.prototype.Dx=function(){return this.$val.Dx();};AR.ptr.prototype.Dy=function(){var e;e=this;return e.Max.Y-e.Min.Y>>0;};AR.prototype.Dy=function(){return this.$val.Dy();};AR.ptr.prototype.Size=function(){var e;e=this;return new AP.ptr(e.Max.X-e.Min.X>>0,e.Max.Y-e.Min.Y>>0);};AR.prototype.Size=function(){return this.$val.Size();};AR.ptr.prototype.Add=function(e){var e,f;f=this;return new AR.ptr(new AP.ptr(f.Min.X+e.X>>0,f.Min.Y+e.Y>>0),new AP.ptr(f.Max.X+e.X>>0,f.Max.Y+e.Y>>0));};AR.prototype.Add=function(e){return this.$val.Add(e);};AR.ptr.prototype.Sub=function(e){var e,f;f=this;return new AR.ptr(new AP.ptr(f.Min.X-e.X>>0,f.Min.Y-e.Y>>0),new AP.ptr(f.Max.X-e.X>>0,f.Max.Y-e.Y>>0));};AR.prototype.Sub=function(e){return this.$val.Sub(e);};AR.ptr.prototype.Inset=function(e){var e,f,g,h;f=this;if($clone(f,AR).Dx()<($imul(2,e))){f.Min.X=(g=((f.Min.X+f.Max.X>>0))/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"));f.Max.X=f.Min.X;}else{f.Min.X=f.Min.X+(e)>>0;f.Max.X=f.Max.X-(e)>>0;}if($clone(f,AR).Dy()<($imul(2,e))){f.Min.Y=(h=((f.Min.Y+f.Max.Y>>0))/2,(h===h&&h!==1/0&&h!==-1/0)?h>>0:$throwRuntimeError("integer divide by zero"));f.Max.Y=f.Min.Y;}else{f.Min.Y=f.Min.Y+(e)>>0;f.Max.Y=f.Max.Y-(e)>>0;}return f;};AR.prototype.Inset=function(e){return this.$val.Inset(e);};AR.ptr.prototype.Intersect=function(e){var e,f;f=this;if(f.Min.Xe.Max.X){f.Max.X=e.Max.X;}if(f.Max.Y>e.Max.Y){f.Max.Y=e.Max.Y;}if($clone(f,AR).Empty()){return $pkg.ZR;}return f;};AR.prototype.Intersect=function(e){return this.$val.Intersect(e);};AR.ptr.prototype.Union=function(e){var e,f;f=this;if($clone(f,AR).Empty()){return e;}if($clone(e,AR).Empty()){return f;}if(f.Min.X>e.Min.X){f.Min.X=e.Min.X;}if(f.Min.Y>e.Min.Y){f.Min.Y=e.Min.Y;}if(f.Max.X=e.Max.X||e.Min.Y>=e.Max.Y;};AR.prototype.Empty=function(){return this.$val.Empty();};AR.ptr.prototype.Eq=function(e){var e,f;f=this;return $equal(f,e,AR)||$clone(f,AR).Empty()&&$clone(e,AR).Empty();};AR.prototype.Eq=function(e){return this.$val.Eq(e);};AR.ptr.prototype.Overlaps=function(e){var e,f;f=this;return!$clone(f,AR).Empty()&&!$clone(e,AR).Empty()&&f.Min.Xg){i=g;j=e;e=i;g=j;}if(f>h){k=h;l=f;f=k;h=l;}return new AR.ptr(new AP.ptr(e,f),new AP.ptr(g,h));};$pkg.Rect=AS;BK.methods=[{prop:"RGBA",name:"RGBA",pkg:"",typ:$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)},{prop:"ColorModel",name:"ColorModel",pkg:"",typ:$funcType([],[A.Model],false)},{prop:"Convert",name:"Convert",pkg:"",typ:$funcType([A.Color],[A.Color],false)},{prop:"Bounds",name:"Bounds",pkg:"",typ:$funcType([],[AR],false)},{prop:"At",name:"At",pkg:"",typ:$funcType([$Int,$Int],[A.Color],false)},{prop:"RGBA64At",name:"RGBA64At",pkg:"",typ:$funcType([$Int,$Int],[A.RGBA64],false)},{prop:"Opaque",name:"Opaque",pkg:"",typ:$funcType([],[$Bool],false)}];AP.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Add",name:"Add",pkg:"",typ:$funcType([AP],[AP],false)},{prop:"Sub",name:"Sub",pkg:"",typ:$funcType([AP],[AP],false)},{prop:"Mul",name:"Mul",pkg:"",typ:$funcType([$Int],[AP],false)},{prop:"Div",name:"Div",pkg:"",typ:$funcType([$Int],[AP],false)},{prop:"In",name:"In",pkg:"",typ:$funcType([AR],[$Bool],false)},{prop:"Mod",name:"Mod",pkg:"",typ:$funcType([AR],[AP],false)},{prop:"Eq",name:"Eq",pkg:"",typ:$funcType([AP],[$Bool],false)}];AR.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Dx",name:"Dx",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Dy",name:"Dy",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[AP],false)},{prop:"Add",name:"Add",pkg:"",typ:$funcType([AP],[AR],false)},{prop:"Sub",name:"Sub",pkg:"",typ:$funcType([AP],[AR],false)},{prop:"Inset",name:"Inset",pkg:"",typ:$funcType([$Int],[AR],false)},{prop:"Intersect",name:"Intersect",pkg:"",typ:$funcType([AR],[AR],false)},{prop:"Union",name:"Union",pkg:"",typ:$funcType([AR],[AR],false)},{prop:"Empty",name:"Empty",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Eq",name:"Eq",pkg:"",typ:$funcType([AR],[$Bool],false)},{prop:"Overlaps",name:"Overlaps",pkg:"",typ:$funcType([AR],[$Bool],false)},{prop:"In",name:"In",pkg:"",typ:$funcType([AR],[$Bool],false)},{prop:"Canon",name:"Canon",pkg:"",typ:$funcType([],[AR],false)},{prop:"At",name:"At",pkg:"",typ:$funcType([$Int,$Int],[A.Color],false)},{prop:"RGBA64At",name:"RGBA64At",pkg:"",typ:$funcType([$Int,$Int],[A.RGBA64],false)},{prop:"Bounds",name:"Bounds",pkg:"",typ:$funcType([],[AR],false)},{prop:"ColorModel",name:"ColorModel",pkg:"",typ:$funcType([],[A.Model],false)}];O.init("",[{prop:"C",name:"C",embedded:false,exported:true,typ:A.Color,tag:""}]);AP.init("",[{prop:"X",name:"X",embedded:false,exported:true,typ:$Int,tag:""},{prop:"Y",name:"Y",embedded:false,exported:true,typ:$Int,tag:""}]);AR.init("",[{prop:"Min",name:"Min",embedded:false,exported:true,typ:AP,tag:""},{prop:"Max",name:"Max",embedded:false,exported:true,typ:AP,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=D.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.ZR=new AR.ptr(new AP.ptr(0,0),new AP.ptr(0,0));$pkg.Black=P((a=A.Black,new a.constructor.elem(a)));$pkg.White=P((b=A.White,new b.constructor.elem(b)));$pkg.Transparent=P((c=A.Transparent,new c.constructor.elem(c)));$pkg.Opaque=P((d=A.Opaque,new d.constructor.elem(d)));$pkg.ErrFormat=E.New("image: unknown format");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["honnef.co/go/js/dom"]=(function(){var $pkg={},$init,B,C,D,E,A,H,I,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,BA,BB,BC,BD,BE,BF,CD,CE,CF,CH,CI,CJ,CK,CL,CM,CP,CQ,CS,CT,CU,CZ,DA,DB,DC,DD,DE,DF,DH,DI,DJ,DL,DM,DN,DO,DR,DS,DT,DU,DV,DW,DX,DY,DZ,EA,EB,EC,ED,EE,EF,EG,EH,EI,EJ,EK,EL,EM,EN,EO,EP,EQ,ER,ES,ET,EU,EV,EW,EX,EY,EZ,FA,FB,FC,FD,FE,FF,FG,FH,FI,FJ,FK,FL,FM,FN,FO,FP,FQ,FR,FS,FT,FU,FV,FW,FX,FY,FZ,GA,GB,GC,GD,GE,GF,GG,GH,GI,GJ,GK,GL,GM,GN,GO,GP,GQ,GR,GS,GT,GU,GV,GW,GX,GY,GZ,HA,HB,HC,HD,HE,HF,HG,HH,HI,HJ,HK,HL,HM,HN,HO,HP,HQ,HR,HS,HT,HU,HV,HW,HX,HY,HZ,IA,IB,IC,ID,IE,IF,IG,IH,II,IJ,IK,IL,IM,IN,IO,IP,IQ,IR,IS,IT,IU,IV,IW,IX,IY,IZ,JA,JB,JC,JD,JE,JF,JG,JH,JI,JJ,JK,JL,JM,JN,JO,JP,JQ,JR,JS,JT,JU,JV,JW,JX,JY,JZ,KA,KB,KC,KD,KE,G,AZ,BH,BI,BJ,BK,BL,BM,BN,BO,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CR;B=$packages["github.com/gopherjs/gopherjs/js"];C=$packages["image"];D=$packages["image/color"];E=$packages["strings"];A=$packages["time"];H=$pkg.Event=$newType(8,$kindInterface,"dom.Event",true,"honnef.co/go/js/dom",true,null);I=$pkg.BasicEvent=$newType(0,$kindStruct,"dom.BasicEvent",true,"honnef.co/go/js/dom",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});L=$pkg.AnimationEvent=$newType(0,$kindStruct,"dom.AnimationEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});M=$pkg.AudioProcessingEvent=$newType(0,$kindStruct,"dom.AudioProcessingEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});N=$pkg.BeforeInputEvent=$newType(0,$kindStruct,"dom.BeforeInputEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});O=$pkg.BeforeUnloadEvent=$newType(0,$kindStruct,"dom.BeforeUnloadEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});P=$pkg.BlobEvent=$newType(0,$kindStruct,"dom.BlobEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});Q=$pkg.ClipboardEvent=$newType(0,$kindStruct,"dom.ClipboardEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});R=$pkg.CloseEvent=$newType(0,$kindStruct,"dom.CloseEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_,Code_,Reason_,WasClean_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;this.Code=0;this.Reason="";this.WasClean=false;return;}this.BasicEvent=BasicEvent_;this.Code=Code_;this.Reason=Reason_;this.WasClean=WasClean_;});S=$pkg.CompositionEvent=$newType(0,$kindStruct,"dom.CompositionEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});T=$pkg.CSSFontFaceLoadEvent=$newType(0,$kindStruct,"dom.CSSFontFaceLoadEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});U=$pkg.CustomEvent=$newType(0,$kindStruct,"dom.CustomEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});V=$pkg.DeviceLightEvent=$newType(0,$kindStruct,"dom.DeviceLightEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});W=$pkg.DeviceMotionEvent=$newType(0,$kindStruct,"dom.DeviceMotionEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});X=$pkg.DeviceOrientationEvent=$newType(0,$kindStruct,"dom.DeviceOrientationEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});Y=$pkg.DeviceProximityEvent=$newType(0,$kindStruct,"dom.DeviceProximityEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});Z=$pkg.DOMTransactionEvent=$newType(0,$kindStruct,"dom.DOMTransactionEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AA=$pkg.DragEvent=$newType(0,$kindStruct,"dom.DragEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AB=$pkg.EditingBeforeInputEvent=$newType(0,$kindStruct,"dom.EditingBeforeInputEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AC=$pkg.ErrorEvent=$newType(0,$kindStruct,"dom.ErrorEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AD=$pkg.FocusEvent=$newType(0,$kindStruct,"dom.FocusEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AE=$pkg.GamepadEvent=$newType(0,$kindStruct,"dom.GamepadEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AF=$pkg.HashChangeEvent=$newType(0,$kindStruct,"dom.HashChangeEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AG=$pkg.IDBVersionChangeEvent=$newType(0,$kindStruct,"dom.IDBVersionChangeEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AH=$pkg.KeyboardEvent=$newType(0,$kindStruct,"dom.KeyboardEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_,AltKey_,CharCode_,CtrlKey_,Key_,KeyIdentifier_,KeyCode_,Locale_,Location_,KeyLocation_,MetaKey_,Repeat_,ShiftKey_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;this.AltKey=false;this.CharCode=0;this.CtrlKey=false;this.Key="";this.KeyIdentifier="";this.KeyCode=0;this.Locale="";this.Location=0;this.KeyLocation=0;this.MetaKey=false;this.Repeat=false;this.ShiftKey=false;return;}this.BasicEvent=BasicEvent_;this.AltKey=AltKey_;this.CharCode=CharCode_;this.CtrlKey=CtrlKey_;this.Key=Key_;this.KeyIdentifier=KeyIdentifier_;this.KeyCode=KeyCode_;this.Locale=Locale_;this.Location=Location_;this.KeyLocation=KeyLocation_;this.MetaKey=MetaKey_;this.Repeat=Repeat_;this.ShiftKey=ShiftKey_;});AI=$pkg.MediaStreamEvent=$newType(0,$kindStruct,"dom.MediaStreamEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AJ=$pkg.MessageEvent=$newType(0,$kindStruct,"dom.MessageEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_,Data_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;this.Data=null;return;}this.BasicEvent=BasicEvent_;this.Data=Data_;});AK=$pkg.MouseEvent=$newType(0,$kindStruct,"dom.MouseEvent",true,"honnef.co/go/js/dom",true,function(UIEvent_,AltKey_,Button_,ClientX_,ClientY_,CtrlKey_,MetaKey_,MovementX_,MovementY_,ScreenX_,ScreenY_,ShiftKey_){this.$val=this;if(arguments.length===0){this.UIEvent=GV.nil;this.AltKey=false;this.Button=0;this.ClientX=0;this.ClientY=0;this.CtrlKey=false;this.MetaKey=false;this.MovementX=0;this.MovementY=0;this.ScreenX=0;this.ScreenY=0;this.ShiftKey=false;return;}this.UIEvent=UIEvent_;this.AltKey=AltKey_;this.Button=Button_;this.ClientX=ClientX_;this.ClientY=ClientY_;this.CtrlKey=CtrlKey_;this.MetaKey=MetaKey_;this.MovementX=MovementX_;this.MovementY=MovementY_;this.ScreenX=ScreenX_;this.ScreenY=ScreenY_;this.ShiftKey=ShiftKey_;});AL=$pkg.MutationEvent=$newType(0,$kindStruct,"dom.MutationEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AM=$pkg.OfflineAudioCompletionEvent=$newType(0,$kindStruct,"dom.OfflineAudioCompletionEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AN=$pkg.PageTransitionEvent=$newType(0,$kindStruct,"dom.PageTransitionEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AO=$pkg.PointerEvent=$newType(0,$kindStruct,"dom.PointerEvent",true,"honnef.co/go/js/dom",true,function(MouseEvent_){this.$val=this;if(arguments.length===0){this.MouseEvent=GW.nil;return;}this.MouseEvent=MouseEvent_;});AP=$pkg.PopStateEvent=$newType(0,$kindStruct,"dom.PopStateEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AQ=$pkg.ProgressEvent=$newType(0,$kindStruct,"dom.ProgressEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AR=$pkg.RelatedEvent=$newType(0,$kindStruct,"dom.RelatedEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AS=$pkg.RTCPeerConnectionIceEvent=$newType(0,$kindStruct,"dom.RTCPeerConnectionIceEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AT=$pkg.SensorEvent=$newType(0,$kindStruct,"dom.SensorEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AU=$pkg.StorageEvent=$newType(0,$kindStruct,"dom.StorageEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AV=$pkg.SVGEvent=$newType(0,$kindStruct,"dom.SVGEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AW=$pkg.SVGZoomEvent=$newType(0,$kindStruct,"dom.SVGZoomEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AX=$pkg.TimeEvent=$newType(0,$kindStruct,"dom.TimeEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});AY=$pkg.TouchEvent=$newType(0,$kindStruct,"dom.TouchEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_,AltKey_,CtrlKey_,MetaKey_,ShiftKey_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;this.AltKey=false;this.CtrlKey=false;this.MetaKey=false;this.ShiftKey=false;return;}this.BasicEvent=BasicEvent_;this.AltKey=AltKey_;this.CtrlKey=CtrlKey_;this.MetaKey=MetaKey_;this.ShiftKey=ShiftKey_;});BA=$pkg.Touch=$newType(0,$kindStruct,"dom.Touch",true,"honnef.co/go/js/dom",true,function(Object_,Identifier_,ScreenX_,ScreenY_,ClientX_,ClientY_,PageX_,PageY_,RadiusX_,RadiusY_,RotationAngle_,Force_){this.$val=this;if(arguments.length===0){this.Object=null;this.Identifier=0;this.ScreenX=0;this.ScreenY=0;this.ClientX=0;this.ClientY=0;this.PageX=0;this.PageY=0;this.RadiusX=0;this.RadiusY=0;this.RotationAngle=0;this.Force=0;return;}this.Object=Object_;this.Identifier=Identifier_;this.ScreenX=ScreenX_;this.ScreenY=ScreenY_;this.ClientX=ClientX_;this.ClientY=ClientY_;this.PageX=PageX_;this.PageY=PageY_;this.RadiusX=RadiusX_;this.RadiusY=RadiusY_;this.RotationAngle=RotationAngle_;this.Force=Force_;});BB=$pkg.TrackEvent=$newType(0,$kindStruct,"dom.TrackEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});BC=$pkg.TransitionEvent=$newType(0,$kindStruct,"dom.TransitionEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});BD=$pkg.UIEvent=$newType(0,$kindStruct,"dom.UIEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});BE=$pkg.UserProximityEvent=$newType(0,$kindStruct,"dom.UserProximityEvent",true,"honnef.co/go/js/dom",true,function(BasicEvent_){this.$val=this;if(arguments.length===0){this.BasicEvent=GU.nil;return;}this.BasicEvent=BasicEvent_;});BF=$pkg.WheelEvent=$newType(0,$kindStruct,"dom.WheelEvent",true,"honnef.co/go/js/dom",true,function(MouseEvent_,DeltaX_,DeltaY_,DeltaZ_,DeltaMode_){this.$val=this;if(arguments.length===0){this.MouseEvent=GW.nil;this.DeltaX=0;this.DeltaY=0;this.DeltaZ=0;this.DeltaMode=0;return;}this.MouseEvent=MouseEvent_;this.DeltaX=DeltaX_;this.DeltaY=DeltaY_;this.DeltaZ=DeltaZ_;this.DeltaMode=DeltaMode_;});CD=$pkg.TokenList=$newType(0,$kindStruct,"dom.TokenList",true,"honnef.co/go/js/dom",true,function(dtl_,o_,sa_,Length_){this.$val=this;if(arguments.length===0){this.dtl=null;this.o=null;this.sa="";this.Length=0;return;}this.dtl=dtl_;this.o=o_;this.sa=sa_;this.Length=Length_;});CE=$pkg.Document=$newType(8,$kindInterface,"dom.Document",true,"honnef.co/go/js/dom",true,null);CF=$pkg.DocumentFragment=$newType(8,$kindInterface,"dom.DocumentFragment",true,"honnef.co/go/js/dom",true,null);CH=$pkg.documentFragment=$newType(0,$kindStruct,"dom.documentFragment",true,"honnef.co/go/js/dom",false,function(BasicNode_){this.$val=this;if(arguments.length===0){this.BasicNode=IS.nil;return;}this.BasicNode=BasicNode_;});CI=$pkg.document=$newType(0,$kindStruct,"dom.document",true,"honnef.co/go/js/dom",false,function(BasicNode_){this.$val=this;if(arguments.length===0){this.BasicNode=IS.nil;return;}this.BasicNode=BasicNode_;});CJ=$pkg.htmlDocument=$newType(0,$kindStruct,"dom.htmlDocument",true,"honnef.co/go/js/dom",false,function(document_){this.$val=this;if(arguments.length===0){this.document=IT.nil;return;}this.document=document_;});CK=$pkg.URLUtils=$newType(0,$kindStruct,"dom.URLUtils",true,"honnef.co/go/js/dom",true,function(Object_,Href_,Protocol_,Host_,Hostname_,Port_,Pathname_,Search_,Hash_,Username_,Password_,Origin_){this.$val=this;if(arguments.length===0){this.Object=null;this.Href="";this.Protocol="";this.Host="";this.Hostname="";this.Port="";this.Pathname="";this.Search="";this.Hash="";this.Username="";this.Password="";this.Origin="";return;}this.Object=Object_;this.Href=Href_;this.Protocol=Protocol_;this.Host=Host_;this.Hostname=Hostname_;this.Port=Port_;this.Pathname=Pathname_;this.Search=Search_;this.Hash=Hash_;this.Username=Username_;this.Password=Password_;this.Origin=Origin_;});CL=$pkg.Location=$newType(0,$kindStruct,"dom.Location",true,"honnef.co/go/js/dom",true,function(Object_,URLUtils_){this.$val=this;if(arguments.length===0){this.Object=null;this.URLUtils=HG.nil;return;}this.Object=Object_;this.URLUtils=URLUtils_;});CM=$pkg.HTMLElement=$newType(8,$kindInterface,"dom.HTMLElement",true,"honnef.co/go/js/dom",true,null);CP=$pkg.Window=$newType(8,$kindInterface,"dom.Window",true,"honnef.co/go/js/dom",true,null);CQ=$pkg.window=$newType(0,$kindStruct,"dom.window",true,"honnef.co/go/js/dom",false,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});CS=$pkg.Selection=$newType(8,$kindInterface,"dom.Selection",true,"honnef.co/go/js/dom",true,null);CT=$pkg.Screen=$newType(0,$kindStruct,"dom.Screen",true,"honnef.co/go/js/dom",true,function(Object_,AvailTop_,AvailLeft_,AvailHeight_,AvailWidth_,ColorDepth_,Height_,Left_,PixelDepth_,Top_,Width_){this.$val=this;if(arguments.length===0){this.Object=null;this.AvailTop=0;this.AvailLeft=0;this.AvailHeight=0;this.AvailWidth=0;this.ColorDepth=0;this.Height=0;this.Left=0;this.PixelDepth=0;this.Top=0;this.Width=0;return;}this.Object=Object_;this.AvailTop=AvailTop_;this.AvailLeft=AvailLeft_;this.AvailHeight=AvailHeight_;this.AvailWidth=AvailWidth_;this.ColorDepth=ColorDepth_;this.Height=Height_;this.Left=Left_;this.PixelDepth=PixelDepth_;this.Top=Top_;this.Width=Width_;});CU=$pkg.Navigator=$newType(8,$kindInterface,"dom.Navigator",true,"honnef.co/go/js/dom",true,null);CZ=$pkg.Geolocation=$newType(8,$kindInterface,"dom.Geolocation",true,"honnef.co/go/js/dom",true,null);DA=$pkg.PositionError=$newType(0,$kindStruct,"dom.PositionError",true,"honnef.co/go/js/dom",true,function(Object_,Code_){this.$val=this;if(arguments.length===0){this.Object=null;this.Code=0;return;}this.Object=Object_;this.Code=Code_;});DB=$pkg.PositionOptions=$newType(0,$kindStruct,"dom.PositionOptions",true,"honnef.co/go/js/dom",true,function(EnableHighAccuracy_,Timeout_,MaximumAge_){this.$val=this;if(arguments.length===0){this.EnableHighAccuracy=false;this.Timeout=new A.Duration(0,0);this.MaximumAge=new A.Duration(0,0);return;}this.EnableHighAccuracy=EnableHighAccuracy_;this.Timeout=Timeout_;this.MaximumAge=MaximumAge_;});DC=$pkg.Position=$newType(0,$kindStruct,"dom.Position",true,"honnef.co/go/js/dom",true,function(Coords_,Timestamp_){this.$val=this;if(arguments.length===0){this.Coords=JE.nil;this.Timestamp=new A.Time.ptr(new $Uint64(0,0),new $Int64(0,0),HI.nil);return;}this.Coords=Coords_;this.Timestamp=Timestamp_;});DD=$pkg.Coordinates=$newType(0,$kindStruct,"dom.Coordinates",true,"honnef.co/go/js/dom",true,function(Object_,Latitude_,Longitude_,Altitude_,Accuracy_,AltitudeAccuracy_,Heading_,Speed_){this.$val=this;if(arguments.length===0){this.Object=null;this.Latitude=0;this.Longitude=0;this.Altitude=0;this.Accuracy=0;this.AltitudeAccuracy=0;this.Heading=0;this.Speed=0;return;}this.Object=Object_;this.Latitude=Latitude_;this.Longitude=Longitude_;this.Altitude=Altitude_;this.Accuracy=Accuracy_;this.AltitudeAccuracy=AltitudeAccuracy_;this.Heading=Heading_;this.Speed=Speed_;});DE=$pkg.History=$newType(8,$kindInterface,"dom.History",true,"honnef.co/go/js/dom",true,null);DF=$pkg.Console=$newType(0,$kindStruct,"dom.Console",true,"honnef.co/go/js/dom",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});DH=$pkg.DocumentType=$newType(8,$kindInterface,"dom.DocumentType",true,"honnef.co/go/js/dom",true,null);DI=$pkg.DOMImplementation=$newType(8,$kindInterface,"dom.DOMImplementation",true,"honnef.co/go/js/dom",true,null);DJ=$pkg.StyleSheet=$newType(8,$kindInterface,"dom.StyleSheet",true,"honnef.co/go/js/dom",true,null);DL=$pkg.Node=$newType(8,$kindInterface,"dom.Node",true,"honnef.co/go/js/dom",true,null);DM=$pkg.BasicNode=$newType(0,$kindStruct,"dom.BasicNode",true,"honnef.co/go/js/dom",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});DN=$pkg.Element=$newType(8,$kindInterface,"dom.Element",true,"honnef.co/go/js/dom",true,null);DO=$pkg.ClientRect=$newType(0,$kindStruct,"dom.ClientRect",true,"honnef.co/go/js/dom",true,function(Object_,Height_,Width_,Left_,Right_,Top_,Bottom_){this.$val=this;if(arguments.length===0){this.Object=null;this.Height=0;this.Width=0;this.Left=0;this.Right=0;this.Top=0;this.Bottom=0;return;}this.Object=Object_;this.Height=Height_;this.Width=Width_;this.Left=Left_;this.Right=Right_;this.Top=Top_;this.Bottom=Bottom_;});DR=$pkg.BasicHTMLElement=$newType(0,$kindStruct,"dom.BasicHTMLElement",true,"honnef.co/go/js/dom",true,function(BasicElement_){this.$val=this;if(arguments.length===0){this.BasicElement=JF.nil;return;}this.BasicElement=BasicElement_;});DS=$pkg.BasicElement=$newType(0,$kindStruct,"dom.BasicElement",true,"honnef.co/go/js/dom",true,function(BasicNode_){this.$val=this;if(arguments.length===0){this.BasicNode=IS.nil;return;}this.BasicNode=BasicNode_;});DT=$pkg.HTMLAnchorElement=$newType(0,$kindStruct,"dom.HTMLAnchorElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,URLUtils_,HrefLang_,Media_,TabIndex_,Target_,Text_,Type_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.URLUtils=HG.nil;this.HrefLang="";this.Media="";this.TabIndex=0;this.Target="";this.Text="";this.Type="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.URLUtils=URLUtils_;this.HrefLang=HrefLang_;this.Media=Media_;this.TabIndex=TabIndex_;this.Target=Target_;this.Text=Text_;this.Type=Type_;});DU=$pkg.HTMLAppletElement=$newType(0,$kindStruct,"dom.HTMLAppletElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Alt_,Coords_,HrefLang_,Media_,Search_,Shape_,TabIndex_,Target_,Type_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Alt="";this.Coords="";this.HrefLang="";this.Media="";this.Search="";this.Shape="";this.TabIndex=0;this.Target="";this.Type="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Alt=Alt_;this.Coords=Coords_;this.HrefLang=HrefLang_;this.Media=Media_;this.Search=Search_;this.Shape=Shape_;this.TabIndex=TabIndex_;this.Target=Target_;this.Type=Type_;});DV=$pkg.HTMLAreaElement=$newType(0,$kindStruct,"dom.HTMLAreaElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,URLUtils_,Alt_,Coords_,HrefLang_,Media_,Search_,Shape_,TabIndex_,Target_,Type_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.URLUtils=HG.nil;this.Alt="";this.Coords="";this.HrefLang="";this.Media="";this.Search="";this.Shape="";this.TabIndex=0;this.Target="";this.Type="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.URLUtils=URLUtils_;this.Alt=Alt_;this.Coords=Coords_;this.HrefLang=HrefLang_;this.Media=Media_;this.Search=Search_;this.Shape=Shape_;this.TabIndex=TabIndex_;this.Target=Target_;this.Type=Type_;});DW=$pkg.HTMLAudioElement=$newType(0,$kindStruct,"dom.HTMLAudioElement",true,"honnef.co/go/js/dom",true,function(HTMLMediaElement_){this.$val=this;if(arguments.length===0){this.HTMLMediaElement=HH.nil;return;}this.HTMLMediaElement=HTMLMediaElement_;});DX=$pkg.HTMLBRElement=$newType(0,$kindStruct,"dom.HTMLBRElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});DY=$pkg.HTMLBaseElement=$newType(0,$kindStruct,"dom.HTMLBaseElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});DZ=$pkg.HTMLBodyElement=$newType(0,$kindStruct,"dom.HTMLBodyElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});EA=$pkg.HTMLButtonElement=$newType(0,$kindStruct,"dom.HTMLButtonElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,AutoFocus_,Disabled_,FormAction_,FormEncType_,FormMethod_,FormNoValidate_,FormTarget_,Name_,TabIndex_,Type_,ValidationMessage_,Value_,WillValidate_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.AutoFocus=false;this.Disabled=false;this.FormAction="";this.FormEncType="";this.FormMethod="";this.FormNoValidate=false;this.FormTarget="";this.Name="";this.TabIndex=0;this.Type="";this.ValidationMessage="";this.Value="";this.WillValidate=false;return;}this.BasicHTMLElement=BasicHTMLElement_;this.AutoFocus=AutoFocus_;this.Disabled=Disabled_;this.FormAction=FormAction_;this.FormEncType=FormEncType_;this.FormMethod=FormMethod_;this.FormNoValidate=FormNoValidate_;this.FormTarget=FormTarget_;this.Name=Name_;this.TabIndex=TabIndex_;this.Type=Type_;this.ValidationMessage=ValidationMessage_;this.Value=Value_;this.WillValidate=WillValidate_;});EB=$pkg.HTMLCanvasElement=$newType(0,$kindStruct,"dom.HTMLCanvasElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Height_,Width_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Height=0;this.Width=0;return;}this.BasicHTMLElement=BasicHTMLElement_;this.Height=Height_;this.Width=Width_;});EC=$pkg.CanvasRenderingContext2D=$newType(0,$kindStruct,"dom.CanvasRenderingContext2D",true,"honnef.co/go/js/dom",true,function(Object_,FillStyle_,StrokeStyle_,ShadowColor_,ShadowBlur_,ShadowOffsetX_,ShadowOffsetY_,LineCap_,LineJoin_,LineWidth_,MiterLimit_,Font_,TextAlign_,TextBaseline_,GlobalAlpha_,GlobalCompositeOperation_){this.$val=this;if(arguments.length===0){this.Object=null;this.FillStyle="";this.StrokeStyle="";this.ShadowColor="";this.ShadowBlur=0;this.ShadowOffsetX=0;this.ShadowOffsetY=0;this.LineCap="";this.LineJoin="";this.LineWidth=0;this.MiterLimit=0;this.Font="";this.TextAlign="";this.TextBaseline="";this.GlobalAlpha=0;this.GlobalCompositeOperation="";return;}this.Object=Object_;this.FillStyle=FillStyle_;this.StrokeStyle=StrokeStyle_;this.ShadowColor=ShadowColor_;this.ShadowBlur=ShadowBlur_;this.ShadowOffsetX=ShadowOffsetX_;this.ShadowOffsetY=ShadowOffsetY_;this.LineCap=LineCap_;this.LineJoin=LineJoin_;this.LineWidth=LineWidth_;this.MiterLimit=MiterLimit_;this.Font=Font_;this.TextAlign=TextAlign_;this.TextBaseline=TextBaseline_;this.GlobalAlpha=GlobalAlpha_;this.GlobalCompositeOperation=GlobalCompositeOperation_;});ED=$pkg.ImageData=$newType(0,$kindStruct,"dom.ImageData",true,"honnef.co/go/js/dom",true,function(Object_,Width_,Height_,Data_){this.$val=this;if(arguments.length===0){this.Object=null;this.Width=0;this.Height=0;this.Data=null;return;}this.Object=Object_;this.Width=Width_;this.Height=Height_;this.Data=Data_;});EE=$pkg.CanvasGradient=$newType(0,$kindStruct,"dom.CanvasGradient",true,"honnef.co/go/js/dom",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});EF=$pkg.CanvasPattern=$newType(0,$kindStruct,"dom.CanvasPattern",true,"honnef.co/go/js/dom",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});EG=$pkg.TextMetrics=$newType(0,$kindStruct,"dom.TextMetrics",true,"honnef.co/go/js/dom",true,function(Object_,Width_,ActualBoundingBoxLeft_,ActualBoundingBoxRight_,FontBoundingBoxAscent_,FontBoundingBoxDescent_,ActualBoundingBoxAscent_,ActualBoundingBoxDescent_,EmHeightAscent_,EmHeightDescent_,HangingBaseline_,AlphabeticBaseline_,IdeographicBaseline_){this.$val=this;if(arguments.length===0){this.Object=null;this.Width=0;this.ActualBoundingBoxLeft=0;this.ActualBoundingBoxRight=0;this.FontBoundingBoxAscent=0;this.FontBoundingBoxDescent=0;this.ActualBoundingBoxAscent=0;this.ActualBoundingBoxDescent=0;this.EmHeightAscent=0;this.EmHeightDescent=0;this.HangingBaseline=0;this.AlphabeticBaseline=0;this.IdeographicBaseline=0;return;}this.Object=Object_;this.Width=Width_;this.ActualBoundingBoxLeft=ActualBoundingBoxLeft_;this.ActualBoundingBoxRight=ActualBoundingBoxRight_;this.FontBoundingBoxAscent=FontBoundingBoxAscent_;this.FontBoundingBoxDescent=FontBoundingBoxDescent_;this.ActualBoundingBoxAscent=ActualBoundingBoxAscent_;this.ActualBoundingBoxDescent=ActualBoundingBoxDescent_;this.EmHeightAscent=EmHeightAscent_;this.EmHeightDescent=EmHeightDescent_;this.HangingBaseline=HangingBaseline_;this.AlphabeticBaseline=AlphabeticBaseline_;this.IdeographicBaseline=IdeographicBaseline_;});EH=$pkg.HTMLDListElement=$newType(0,$kindStruct,"dom.HTMLDListElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});EI=$pkg.HTMLDataElement=$newType(0,$kindStruct,"dom.HTMLDataElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Value_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Value="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Value=Value_;});EJ=$pkg.HTMLDataListElement=$newType(0,$kindStruct,"dom.HTMLDataListElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});EK=$pkg.HTMLDirectoryElement=$newType(0,$kindStruct,"dom.HTMLDirectoryElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});EL=$pkg.HTMLDivElement=$newType(0,$kindStruct,"dom.HTMLDivElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});EM=$pkg.HTMLEmbedElement=$newType(0,$kindStruct,"dom.HTMLEmbedElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Src_,Type_,Width_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Src="";this.Type="";this.Width="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Src=Src_;this.Type=Type_;this.Width=Width_;});EN=$pkg.HTMLFieldSetElement=$newType(0,$kindStruct,"dom.HTMLFieldSetElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Disabled_,Name_,Type_,ValidationMessage_,WillValidate_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Disabled=false;this.Name="";this.Type="";this.ValidationMessage="";this.WillValidate=false;return;}this.BasicHTMLElement=BasicHTMLElement_;this.Disabled=Disabled_;this.Name=Name_;this.Type=Type_;this.ValidationMessage=ValidationMessage_;this.WillValidate=WillValidate_;});EO=$pkg.HTMLFontElement=$newType(0,$kindStruct,"dom.HTMLFontElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});EP=$pkg.HTMLFormElement=$newType(0,$kindStruct,"dom.HTMLFormElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,AcceptCharset_,Action_,Autocomplete_,Encoding_,Enctype_,Length_,Method_,Name_,NoValidate_,Target_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.AcceptCharset="";this.Action="";this.Autocomplete="";this.Encoding="";this.Enctype="";this.Length=0;this.Method="";this.Name="";this.NoValidate=false;this.Target="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.AcceptCharset=AcceptCharset_;this.Action=Action_;this.Autocomplete=Autocomplete_;this.Encoding=Encoding_;this.Enctype=Enctype_;this.Length=Length_;this.Method=Method_;this.Name=Name_;this.NoValidate=NoValidate_;this.Target=Target_;});EQ=$pkg.HTMLFrameElement=$newType(0,$kindStruct,"dom.HTMLFrameElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});ER=$pkg.HTMLFrameSetElement=$newType(0,$kindStruct,"dom.HTMLFrameSetElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});ES=$pkg.HTMLHRElement=$newType(0,$kindStruct,"dom.HTMLHRElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});ET=$pkg.HTMLHeadElement=$newType(0,$kindStruct,"dom.HTMLHeadElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});EU=$pkg.HTMLHeadingElement=$newType(0,$kindStruct,"dom.HTMLHeadingElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});EV=$pkg.HTMLHtmlElement=$newType(0,$kindStruct,"dom.HTMLHtmlElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});EW=$pkg.HTMLIFrameElement=$newType(0,$kindStruct,"dom.HTMLIFrameElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Width_,Height_,Name_,Src_,SrcDoc_,Seamless_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Width="";this.Height="";this.Name="";this.Src="";this.SrcDoc="";this.Seamless=false;return;}this.BasicHTMLElement=BasicHTMLElement_;this.Width=Width_;this.Height=Height_;this.Name=Name_;this.Src=Src_;this.SrcDoc=SrcDoc_;this.Seamless=Seamless_;});EX=$pkg.HTMLImageElement=$newType(0,$kindStruct,"dom.HTMLImageElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Complete_,CrossOrigin_,Height_,IsMap_,NaturalHeight_,NaturalWidth_,Src_,UseMap_,Width_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Complete=false;this.CrossOrigin="";this.Height=0;this.IsMap=false;this.NaturalHeight=0;this.NaturalWidth=0;this.Src="";this.UseMap="";this.Width=0;return;}this.BasicHTMLElement=BasicHTMLElement_;this.Complete=Complete_;this.CrossOrigin=CrossOrigin_;this.Height=Height_;this.IsMap=IsMap_;this.NaturalHeight=NaturalHeight_;this.NaturalWidth=NaturalWidth_;this.Src=Src_;this.UseMap=UseMap_;this.Width=Width_;});EY=$pkg.HTMLInputElement=$newType(0,$kindStruct,"dom.HTMLInputElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Accept_,Alt_,Autocomplete_,Autofocus_,Checked_,DefaultChecked_,DefaultValue_,DirName_,Disabled_,FormAction_,FormEncType_,FormMethod_,FormNoValidate_,FormTarget_,Height_,Indeterminate_,Max_,MaxLength_,Min_,Multiple_,Name_,Pattern_,Placeholder_,ReadOnly_,Required_,SelectionDirection_,SelectionEnd_,SelectionStart_,Size_,Src_,Step_,TabIndex_,Type_,ValidationMessage_,Value_,ValueAsDate_,ValueAsNumber_,Width_,WillValidate_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Accept="";this.Alt="";this.Autocomplete="";this.Autofocus=false;this.Checked=false;this.DefaultChecked=false;this.DefaultValue="";this.DirName="";this.Disabled=false;this.FormAction="";this.FormEncType="";this.FormMethod="";this.FormNoValidate=false;this.FormTarget="";this.Height="";this.Indeterminate=false;this.Max="";this.MaxLength=0;this.Min="";this.Multiple=false;this.Name="";this.Pattern="";this.Placeholder="";this.ReadOnly=false;this.Required=false;this.SelectionDirection="";this.SelectionEnd=0;this.SelectionStart=0;this.Size=0;this.Src="";this.Step="";this.TabIndex=0;this.Type="";this.ValidationMessage="";this.Value="";this.ValueAsDate=new A.Time.ptr(new $Uint64(0,0),new $Int64(0,0),HI.nil);this.ValueAsNumber=0;this.Width="";this.WillValidate=false;return;}this.BasicHTMLElement=BasicHTMLElement_;this.Accept=Accept_;this.Alt=Alt_;this.Autocomplete=Autocomplete_;this.Autofocus=Autofocus_;this.Checked=Checked_;this.DefaultChecked=DefaultChecked_;this.DefaultValue=DefaultValue_;this.DirName=DirName_;this.Disabled=Disabled_;this.FormAction=FormAction_;this.FormEncType=FormEncType_;this.FormMethod=FormMethod_;this.FormNoValidate=FormNoValidate_;this.FormTarget=FormTarget_;this.Height=Height_;this.Indeterminate=Indeterminate_;this.Max=Max_;this.MaxLength=MaxLength_;this.Min=Min_;this.Multiple=Multiple_;this.Name=Name_;this.Pattern=Pattern_;this.Placeholder=Placeholder_;this.ReadOnly=ReadOnly_;this.Required=Required_;this.SelectionDirection=SelectionDirection_;this.SelectionEnd=SelectionEnd_;this.SelectionStart=SelectionStart_;this.Size=Size_;this.Src=Src_;this.Step=Step_;this.TabIndex=TabIndex_;this.Type=Type_;this.ValidationMessage=ValidationMessage_;this.Value=Value_;this.ValueAsDate=ValueAsDate_;this.ValueAsNumber=ValueAsNumber_;this.Width=Width_;this.WillValidate=WillValidate_;});EZ=$pkg.File=$newType(0,$kindStruct,"dom.File",true,"honnef.co/go/js/dom",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});FA=$pkg.HTMLKeygenElement=$newType(0,$kindStruct,"dom.HTMLKeygenElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Autofocus_,Challenge_,Disabled_,Keytype_,Name_,Type_,ValidationMessage_,WillValidate_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Autofocus=false;this.Challenge="";this.Disabled=false;this.Keytype="";this.Name="";this.Type="";this.ValidationMessage="";this.WillValidate=false;return;}this.BasicHTMLElement=BasicHTMLElement_;this.Autofocus=Autofocus_;this.Challenge=Challenge_;this.Disabled=Disabled_;this.Keytype=Keytype_;this.Name=Name_;this.Type=Type_;this.ValidationMessage=ValidationMessage_;this.WillValidate=WillValidate_;});FB=$pkg.HTMLLIElement=$newType(0,$kindStruct,"dom.HTMLLIElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Value_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Value=0;return;}this.BasicHTMLElement=BasicHTMLElement_;this.Value=Value_;});FC=$pkg.HTMLLabelElement=$newType(0,$kindStruct,"dom.HTMLLabelElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,For_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.For="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.For=For_;});FD=$pkg.HTMLLegendElement=$newType(0,$kindStruct,"dom.HTMLLegendElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});FE=$pkg.HTMLLinkElement=$newType(0,$kindStruct,"dom.HTMLLinkElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Disabled_,Href_,HrefLang_,Media_,Type_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Disabled=false;this.Href="";this.HrefLang="";this.Media="";this.Type="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Disabled=Disabled_;this.Href=Href_;this.HrefLang=HrefLang_;this.Media=Media_;this.Type=Type_;});FF=$pkg.HTMLMapElement=$newType(0,$kindStruct,"dom.HTMLMapElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Name_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Name="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Name=Name_;});FG=$pkg.HTMLMediaElement=$newType(0,$kindStruct,"dom.HTMLMediaElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Paused_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Paused=false;return;}this.BasicHTMLElement=BasicHTMLElement_;this.Paused=Paused_;});FH=$pkg.HTMLMenuElement=$newType(0,$kindStruct,"dom.HTMLMenuElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});FI=$pkg.HTMLMetaElement=$newType(0,$kindStruct,"dom.HTMLMetaElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Content_,HTTPEquiv_,Name_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Content="";this.HTTPEquiv="";this.Name="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Content=Content_;this.HTTPEquiv=HTTPEquiv_;this.Name=Name_;});FJ=$pkg.HTMLMeterElement=$newType(0,$kindStruct,"dom.HTMLMeterElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,High_,Low_,Max_,Min_,Optimum_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.High=0;this.Low=0;this.Max=0;this.Min=0;this.Optimum=0;return;}this.BasicHTMLElement=BasicHTMLElement_;this.High=High_;this.Low=Low_;this.Max=Max_;this.Min=Min_;this.Optimum=Optimum_;});FK=$pkg.HTMLModElement=$newType(0,$kindStruct,"dom.HTMLModElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Cite_,DateTime_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Cite="";this.DateTime="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Cite=Cite_;this.DateTime=DateTime_;});FL=$pkg.HTMLOListElement=$newType(0,$kindStruct,"dom.HTMLOListElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Reversed_,Start_,Type_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Reversed=false;this.Start=0;this.Type="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Reversed=Reversed_;this.Start=Start_;this.Type=Type_;});FM=$pkg.HTMLObjectElement=$newType(0,$kindStruct,"dom.HTMLObjectElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Data_,Height_,Name_,TabIndex_,Type_,TypeMustMatch_,UseMap_,ValidationMessage_,With_,WillValidate_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Data="";this.Height="";this.Name="";this.TabIndex=0;this.Type="";this.TypeMustMatch=false;this.UseMap="";this.ValidationMessage="";this.With="";this.WillValidate=false;return;}this.BasicHTMLElement=BasicHTMLElement_;this.Data=Data_;this.Height=Height_;this.Name=Name_;this.TabIndex=TabIndex_;this.Type=Type_;this.TypeMustMatch=TypeMustMatch_;this.UseMap=UseMap_;this.ValidationMessage=ValidationMessage_;this.With=With_;this.WillValidate=WillValidate_;});FN=$pkg.HTMLOptGroupElement=$newType(0,$kindStruct,"dom.HTMLOptGroupElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Disabled_,Label_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Disabled=false;this.Label="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Disabled=Disabled_;this.Label=Label_;});FO=$pkg.HTMLOptionElement=$newType(0,$kindStruct,"dom.HTMLOptionElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,DefaultSelected_,Disabled_,Index_,Label_,Selected_,Text_,Value_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.DefaultSelected=false;this.Disabled=false;this.Index=0;this.Label="";this.Selected=false;this.Text="";this.Value="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.DefaultSelected=DefaultSelected_;this.Disabled=Disabled_;this.Index=Index_;this.Label=Label_;this.Selected=Selected_;this.Text=Text_;this.Value=Value_;});FP=$pkg.HTMLOutputElement=$newType(0,$kindStruct,"dom.HTMLOutputElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,DefaultValue_,Name_,Type_,ValidationMessage_,Value_,WillValidate_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.DefaultValue="";this.Name="";this.Type="";this.ValidationMessage="";this.Value="";this.WillValidate=false;return;}this.BasicHTMLElement=BasicHTMLElement_;this.DefaultValue=DefaultValue_;this.Name=Name_;this.Type=Type_;this.ValidationMessage=ValidationMessage_;this.Value=Value_;this.WillValidate=WillValidate_;});FQ=$pkg.HTMLParagraphElement=$newType(0,$kindStruct,"dom.HTMLParagraphElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});FR=$pkg.HTMLParamElement=$newType(0,$kindStruct,"dom.HTMLParamElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Name_,Value_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Name="";this.Value="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Name=Name_;this.Value=Value_;});FS=$pkg.HTMLPreElement=$newType(0,$kindStruct,"dom.HTMLPreElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});FT=$pkg.HTMLProgressElement=$newType(0,$kindStruct,"dom.HTMLProgressElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Max_,Position_,Value_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Max=0;this.Position=0;this.Value=0;return;}this.BasicHTMLElement=BasicHTMLElement_;this.Max=Max_;this.Position=Position_;this.Value=Value_;});FU=$pkg.HTMLQuoteElement=$newType(0,$kindStruct,"dom.HTMLQuoteElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Cite_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Cite="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Cite=Cite_;});FV=$pkg.HTMLScriptElement=$newType(0,$kindStruct,"dom.HTMLScriptElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Type_,Src_,Charset_,Async_,Defer_,Text_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Type="";this.Src="";this.Charset="";this.Async=false;this.Defer=false;this.Text="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Type=Type_;this.Src=Src_;this.Charset=Charset_;this.Async=Async_;this.Defer=Defer_;this.Text=Text_;});FW=$pkg.HTMLSelectElement=$newType(0,$kindStruct,"dom.HTMLSelectElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Autofocus_,Disabled_,Length_,Multiple_,Name_,Required_,SelectedIndex_,Size_,Type_,ValidationMessage_,Value_,WillValidate_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Autofocus=false;this.Disabled=false;this.Length=0;this.Multiple=false;this.Name="";this.Required=false;this.SelectedIndex=0;this.Size=0;this.Type="";this.ValidationMessage="";this.Value="";this.WillValidate=false;return;}this.BasicHTMLElement=BasicHTMLElement_;this.Autofocus=Autofocus_;this.Disabled=Disabled_;this.Length=Length_;this.Multiple=Multiple_;this.Name=Name_;this.Required=Required_;this.SelectedIndex=SelectedIndex_;this.Size=Size_;this.Type=Type_;this.ValidationMessage=ValidationMessage_;this.Value=Value_;this.WillValidate=WillValidate_;});FX=$pkg.HTMLSourceElement=$newType(0,$kindStruct,"dom.HTMLSourceElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Media_,Src_,Type_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Media="";this.Src="";this.Type="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Media=Media_;this.Src=Src_;this.Type=Type_;});FY=$pkg.HTMLSpanElement=$newType(0,$kindStruct,"dom.HTMLSpanElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});FZ=$pkg.HTMLStyleElement=$newType(0,$kindStruct,"dom.HTMLStyleElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});GA=$pkg.HTMLTableCaptionElement=$newType(0,$kindStruct,"dom.HTMLTableCaptionElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});GB=$pkg.HTMLTableCellElement=$newType(0,$kindStruct,"dom.HTMLTableCellElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,ColSpan_,RowSpan_,CellIndex_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.ColSpan=0;this.RowSpan=0;this.CellIndex=0;return;}this.BasicHTMLElement=BasicHTMLElement_;this.ColSpan=ColSpan_;this.RowSpan=RowSpan_;this.CellIndex=CellIndex_;});GC=$pkg.HTMLTableColElement=$newType(0,$kindStruct,"dom.HTMLTableColElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Span_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Span=0;return;}this.BasicHTMLElement=BasicHTMLElement_;this.Span=Span_;});GD=$pkg.HTMLTableDataCellElement=$newType(0,$kindStruct,"dom.HTMLTableDataCellElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});GE=$pkg.HTMLTableElement=$newType(0,$kindStruct,"dom.HTMLTableElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});GF=$pkg.HTMLTableHeaderCellElement=$newType(0,$kindStruct,"dom.HTMLTableHeaderCellElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Abbr_,Scope_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Abbr="";this.Scope="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Abbr=Abbr_;this.Scope=Scope_;});GG=$pkg.HTMLTableRowElement=$newType(0,$kindStruct,"dom.HTMLTableRowElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,RowIndex_,SectionRowIndex_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.RowIndex=0;this.SectionRowIndex=0;return;}this.BasicHTMLElement=BasicHTMLElement_;this.RowIndex=RowIndex_;this.SectionRowIndex=SectionRowIndex_;});GH=$pkg.HTMLTableSectionElement=$newType(0,$kindStruct,"dom.HTMLTableSectionElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});GI=$pkg.HTMLTemplateElement=$newType(0,$kindStruct,"dom.HTMLTemplateElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});GJ=$pkg.HTMLTextAreaElement=$newType(0,$kindStruct,"dom.HTMLTextAreaElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Autocomplete_,Autofocus_,Cols_,DefaultValue_,DirName_,Disabled_,MaxLength_,Name_,Placeholder_,ReadOnly_,Required_,Rows_,SelectionDirection_,SelectionStart_,SelectionEnd_,TabIndex_,TextLength_,Type_,ValidationMessage_,Value_,WillValidate_,Wrap_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Autocomplete="";this.Autofocus=false;this.Cols=0;this.DefaultValue="";this.DirName="";this.Disabled=false;this.MaxLength=0;this.Name="";this.Placeholder="";this.ReadOnly=false;this.Required=false;this.Rows=0;this.SelectionDirection="";this.SelectionStart=0;this.SelectionEnd=0;this.TabIndex=0;this.TextLength=0;this.Type="";this.ValidationMessage="";this.Value="";this.WillValidate=false;this.Wrap="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Autocomplete=Autocomplete_;this.Autofocus=Autofocus_;this.Cols=Cols_;this.DefaultValue=DefaultValue_;this.DirName=DirName_;this.Disabled=Disabled_;this.MaxLength=MaxLength_;this.Name=Name_;this.Placeholder=Placeholder_;this.ReadOnly=ReadOnly_;this.Required=Required_;this.Rows=Rows_;this.SelectionDirection=SelectionDirection_;this.SelectionStart=SelectionStart_;this.SelectionEnd=SelectionEnd_;this.TabIndex=TabIndex_;this.TextLength=TextLength_;this.Type=Type_;this.ValidationMessage=ValidationMessage_;this.Value=Value_;this.WillValidate=WillValidate_;this.Wrap=Wrap_;});GK=$pkg.HTMLTimeElement=$newType(0,$kindStruct,"dom.HTMLTimeElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,DateTime_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.DateTime="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.DateTime=DateTime_;});GL=$pkg.HTMLTitleElement=$newType(0,$kindStruct,"dom.HTMLTitleElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Text_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Text="";return;}this.BasicHTMLElement=BasicHTMLElement_;this.Text=Text_;});GM=$pkg.TextTrack=$newType(0,$kindStruct,"dom.TextTrack",true,"honnef.co/go/js/dom",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});GN=$pkg.HTMLTrackElement=$newType(0,$kindStruct,"dom.HTMLTrackElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_,Kind_,Src_,Srclang_,Label_,Default_,ReadyState_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;this.Kind="";this.Src="";this.Srclang="";this.Label="";this.Default=false;this.ReadyState=0;return;}this.BasicHTMLElement=BasicHTMLElement_;this.Kind=Kind_;this.Src=Src_;this.Srclang=Srclang_;this.Label=Label_;this.Default=Default_;this.ReadyState=ReadyState_;});GO=$pkg.HTMLUListElement=$newType(0,$kindStruct,"dom.HTMLUListElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});GP=$pkg.HTMLUnknownElement=$newType(0,$kindStruct,"dom.HTMLUnknownElement",true,"honnef.co/go/js/dom",true,function(BasicHTMLElement_){this.$val=this;if(arguments.length===0){this.BasicHTMLElement=HF.nil;return;}this.BasicHTMLElement=BasicHTMLElement_;});GQ=$pkg.HTMLVideoElement=$newType(0,$kindStruct,"dom.HTMLVideoElement",true,"honnef.co/go/js/dom",true,function(HTMLMediaElement_){this.$val=this;if(arguments.length===0){this.HTMLMediaElement=HH.nil;return;}this.HTMLMediaElement=HTMLMediaElement_;});GR=$pkg.ValidityState=$newType(0,$kindStruct,"dom.ValidityState",true,"honnef.co/go/js/dom",true,function(Object_,CustomError_,PatternMismatch_,RangeOverflow_,RangeUnderflow_,StepMismatch_,TooLong_,TypeMismatch_,Valid_,ValueMissing_){this.$val=this;if(arguments.length===0){this.Object=null;this.CustomError=false;this.PatternMismatch=false;this.RangeOverflow=false;this.RangeUnderflow=false;this.StepMismatch=false;this.TooLong=false;this.TypeMismatch=false;this.Valid=false;this.ValueMissing=false;return;}this.Object=Object_;this.CustomError=CustomError_;this.PatternMismatch=PatternMismatch_;this.RangeOverflow=RangeOverflow_;this.RangeUnderflow=RangeUnderflow_;this.StepMismatch=StepMismatch_;this.TooLong=TooLong_;this.TypeMismatch=TypeMismatch_;this.Valid=Valid_;this.ValueMissing=ValueMissing_;});GS=$pkg.CSSStyleDeclaration=$newType(0,$kindStruct,"dom.CSSStyleDeclaration",true,"honnef.co/go/js/dom",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});GT=$pkg.Text=$newType(0,$kindStruct,"dom.Text",true,"honnef.co/go/js/dom",true,function(BasicNode_){this.$val=this;if(arguments.length===0){this.BasicNode=IS.nil;return;}this.BasicNode=BasicNode_;});GU=$ptrType(I);GV=$ptrType(BD);GW=$ptrType(AK);GX=$ptrType(BA);GY=$sliceType(GX);GZ=$sliceType($emptyInterface);HA=$ptrType(B.Object);HB=$sliceType(HA);HC=$sliceType(DL);HD=$sliceType(DN);HE=$sliceType(CM);HF=$ptrType(DR);HG=$ptrType(CK);HH=$ptrType(FG);HI=$ptrType(A.Location);HJ=$ptrType(EP);HK=$ptrType(FC);HL=$sliceType(HK);HM=$ptrType(FO);HN=$sliceType(HM);HO=$sliceType($String);HP=$sliceType(HJ);HQ=$ptrType(ET);HR=$ptrType(EX);HS=$sliceType(HR);HT=$ptrType(EM);HU=$sliceType(HT);HV=$ptrType(FV);HW=$sliceType(HV);HX=$ptrType(GT);HY=$funcType([],[],false);HZ=$funcType([HA],[],false);IA=$sliceType($Float64);IB=$ptrType(ED);IC=$ptrType(EZ);ID=$sliceType(IC);IE=$ptrType(EJ);IF=$ptrType(DV);IG=$sliceType(IF);IH=$ptrType(GB);II=$sliceType(IH);IJ=$ptrType(GG);IK=$sliceType(IJ);IL=$ptrType(AD);IM=$ptrType(AH);IN=$ptrType(AY);IO=$funcType([H],[],false);IP=$ptrType(CD);IQ=$sliceType(DJ);IR=$ptrType(CL);IS=$ptrType(DM);IT=$ptrType(CI);IU=$ptrType(CJ);IV=$mapType($String,$String);IW=$ptrType(GS);IX=$ptrType(DF);IY=$funcType([A.Duration],[],false);IZ=$ptrType(CT);JA=$ptrType(CQ);JB=$funcType([DC],[],false);JC=$funcType([DA],[],false);JD=$ptrType(DA);JE=$ptrType(DD);JF=$ptrType(DS);JG=$ptrType(DT);JH=$ptrType(DU);JI=$ptrType(DY);JJ=$ptrType(GR);JK=$ptrType(EA);JL=$ptrType(EC);JM=$ptrType(EB);JN=$ptrType(EG);JO=$ptrType(EE);JP=$ptrType(EF);JQ=$ptrType(EN);JR=$ptrType(EW);JS=$ptrType(EY);JT=$ptrType(FA);JU=$ptrType(FD);JV=$ptrType(FE);JW=$ptrType(FF);JX=$ptrType(FM);JY=$ptrType(FP);JZ=$ptrType(FW);KA=$ptrType(GH);KB=$ptrType(GI);KC=$ptrType(GJ);KD=$ptrType(GM);KE=$ptrType(GN);G=function(a){var a,b,c,d;if(a===null||a===undefined){return $ifaceNil;}b=new I.ptr(a);c=a.constructor;d=c;if(d===($global.AnimationEvent)){return new L.ptr(b);}else if(d===($global.AudioProcessingEvent)){return new M.ptr(b);}else if(d===($global.BeforeInputEvent)){return new N.ptr(b);}else if(d===($global.BeforeUnloadEvent)){return new O.ptr(b);}else if(d===($global.BlobEvent)){return new P.ptr(b);}else if(d===($global.ClipboardEvent)){return new Q.ptr(b);}else if(d===($global.CloseEvent)){return new R.ptr(b,0,"",false);}else if(d===($global.CompositionEvent)){return new S.ptr(b);}else if(d===($global.CSSFontFaceLoadEvent)){return new T.ptr(b);}else if(d===($global.CustomEvent)){return new U.ptr(b);}else if(d===($global.DeviceLightEvent)){return new V.ptr(b);}else if(d===($global.DeviceMotionEvent)){return new W.ptr(b);}else if(d===($global.DeviceOrientationEvent)){return new X.ptr(b);}else if(d===($global.DeviceProximityEvent)){return new Y.ptr(b);}else if(d===($global.DOMTransactionEvent)){return new Z.ptr(b);}else if(d===($global.DragEvent)){return new AA.ptr(b);}else if(d===($global.EditingBeforeInputEvent)){return new AB.ptr(b);}else if(d===($global.ErrorEvent)){return new AC.ptr(b);}else if(d===($global.FocusEvent)){return new AD.ptr(b);}else if(d===($global.GamepadEvent)){return new AE.ptr(b);}else if(d===($global.HashChangeEvent)){return new AF.ptr(b);}else if(d===($global.IDBVersionChangeEvent)){return new AG.ptr(b);}else if(d===($global.KeyboardEvent)){return new AH.ptr(b,false,0,false,"","",0,"",0,0,false,false,false);}else if(d===($global.MediaStreamEvent)){return new AI.ptr(b);}else if(d===($global.MessageEvent)){return new AJ.ptr(b,null);}else if(d===($global.MouseEvent)){return new AK.ptr(new BD.ptr(b),false,0,0,0,false,false,0,0,0,0,false);}else if(d===($global.MutationEvent)){return new AL.ptr(b);}else if(d===($global.OfflineAudioCompletionEvent)){return new AM.ptr(b);}else if(d===($global.PageTransitionEvent)){return new AN.ptr(b);}else if(d===($global.PointerEvent)){return new AO.ptr(new AK.ptr(new BD.ptr(b),false,0,0,0,false,false,0,0,0,0,false));}else if(d===($global.PopStateEvent)){return new AP.ptr(b);}else if(d===($global.ProgressEvent)){return new AQ.ptr(b);}else if(d===($global.RelatedEvent)){return new AR.ptr(b);}else if(d===($global.RTCPeerConnectionIceEvent)){return new AS.ptr(b);}else if(d===($global.SensorEvent)){return new AT.ptr(b);}else if(d===($global.StorageEvent)){return new AU.ptr(b);}else if(d===($global.SVGEvent)){return new AV.ptr(b);}else if(d===($global.SVGZoomEvent)){return new AW.ptr(b);}else if(d===($global.TimeEvent)){return new AX.ptr(b);}else if(d===($global.TouchEvent)){return new AY.ptr(b,false,false,false,false);}else if(d===($global.TrackEvent)){return new BB.ptr(b);}else if(d===($global.TransitionEvent)){return new BC.ptr(b);}else if(d===($global.UIEvent)){return new BD.ptr(b);}else if(d===($global.UserProximityEvent)){return new BE.ptr(b);}else if(d===($global.WheelEvent)){return new BF.ptr(new AK.ptr(new BD.ptr(b),false,0,0,0,false,false,0,0,0,0,false),0,0,0,0);}else{return b;}};I.ptr.prototype.Bubbles=function(){var a;a=this;return!!(a.Object.bubbles);};I.prototype.Bubbles=function(){return this.$val.Bubbles();};I.ptr.prototype.Cancelable=function(){var a;a=this;return!!(a.Object.cancelable);};I.prototype.Cancelable=function(){return this.$val.Cancelable();};I.ptr.prototype.CurrentTarget=function(){var a;a=this;return BX(a.Object.currentTarget);};I.prototype.CurrentTarget=function(){return this.$val.CurrentTarget();};I.ptr.prototype.DefaultPrevented=function(){var a;a=this;return!!(a.Object.defaultPrevented);};I.prototype.DefaultPrevented=function(){return this.$val.DefaultPrevented();};I.ptr.prototype.EventPhase=function(){var a;a=this;return $parseInt(a.Object.eventPhase)>>0;};I.prototype.EventPhase=function(){return this.$val.EventPhase();};I.ptr.prototype.Target=function(){var a;a=this;return BX(a.Object.target);};I.prototype.Target=function(){return this.$val.Target();};I.ptr.prototype.Timestamp=function(){var a,b,c,d,e,f;a=this;b=$parseInt(a.Object.timeStamp)>>0;d=(c=b/1000,(c===c&&c!==1/0&&c!==-1/0)?c>>0:$throwRuntimeError("integer divide by zero"));f=($imul((e=b%1000,e===e?e:$throwRuntimeError("integer divide by zero")),1000000));return A.Unix((new $Int64(0,d)),(new $Int64(0,f)));};I.prototype.Timestamp=function(){return this.$val.Timestamp();};I.ptr.prototype.Type=function(){var a;a=this;return $internalize(a.Object.type,$String);};I.prototype.Type=function(){return this.$val.Type();};I.ptr.prototype.PreventDefault=function(){var a;a=this;a.Object.preventDefault();};I.prototype.PreventDefault=function(){return this.$val.PreventDefault();};I.ptr.prototype.StopImmediatePropagation=function(){var a;a=this;a.Object.stopImmediatePropagation();};I.prototype.StopImmediatePropagation=function(){return this.$val.StopImmediatePropagation();};I.ptr.prototype.StopPropagation=function(){var a;a=this;a.Object.stopPropagation();};I.prototype.StopPropagation=function(){return this.$val.StopPropagation();};I.ptr.prototype.Underlying=function(){var a;a=this;return a.Object;};I.prototype.Underlying=function(){return this.$val.Underlying();};AD.ptr.prototype.RelatedTarget=function(){var a;a=this;return BX(a.BasicEvent.Object.relatedTarget);};AD.prototype.RelatedTarget=function(){return this.$val.RelatedTarget();};AH.ptr.prototype.ModifierState=function(a){var a,b;b=this;return!!(b.BasicEvent.Object.getModifierState($externalize(a,$String)));};AH.prototype.ModifierState=function(a){return this.$val.ModifierState(a);};AK.ptr.prototype.RelatedTarget=function(){var a;a=this;return BX(a.UIEvent.BasicEvent.Object.relatedTarget);};AK.prototype.RelatedTarget=function(){return this.$val.RelatedTarget();};AK.ptr.prototype.ModifierState=function(a){var a,b;b=this;return!!(b.UIEvent.BasicEvent.Object.getModifierState($externalize(a,$String)));};AK.prototype.ModifierState=function(a){return this.$val.ModifierState(a);};AY.ptr.prototype.ChangedTouches=function(){var a;a=this;return AZ(a.BasicEvent.Object.changedTouches);};AY.prototype.ChangedTouches=function(){return this.$val.ChangedTouches();};AY.ptr.prototype.TargetTouches=function(){var a;a=this;return AZ(a.BasicEvent.Object.targetTouches);};AY.prototype.TargetTouches=function(){return this.$val.TargetTouches();};AY.ptr.prototype.Touches=function(){var a;a=this;return AZ(a.BasicEvent.Object.touches);};AY.prototype.Touches=function(){return this.$val.Touches();};AZ=function(a){var a,b,c,d,e;b=$makeSlice(GY,$parseInt(a.length));c=b;d=0;while(true){if(!(d=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]=new BA.ptr(a[e],0,0,0,0,0,0,0,0,0,0,0));d++;}return b;};BA.ptr.prototype.Target=function(){var a;a=this;return BX(a.Object.target);};BA.prototype.Target=function(){return this.$val.Target();};BH=function(a){var a;if(a===null||a===undefined){return"";}return $internalize(a,$String);};BI=function(a,b,c){var{a,b,c,d,e,f,$s,$deferred,$r,$c}=$restore(this,{a,b,c});$s=$s||0;var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$curGoroutine.deferStack.push($deferred);d=[d];d[0]=$ifaceNil;$deferred.push([(function(d){return function(){var e,f,g,h;e=$recover();if($interfaceIsEqual(e,$ifaceNil)){return;}f=$assertType(e,$error,true);g=f[0];h=f[1];if(h&&!($interfaceIsEqual(g,$ifaceNil))){d[0]=g;}else{$panic(e);}};})(d),[]]);(e=a,e[$externalize(b,$String)].apply(e,$externalize(c,GZ)));d[0]=$ifaceNil;f=d[0];$s=1;case 1:return f;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return d[0];}if($curGoroutine.asleep){var $f={$blk:BI,$c:true,$r,a,b,c,d,e,f,$s,$deferred};return $f;}}};BJ=function(a){var a,b;b=a.node;if(!(b===undefined)){return b.constructor;}return a.constructor;};BK=function(a){var a,b,c;b=HB.nil;c=0;while(true){if(!(c<$parseInt(a.length))){break;}b=$append(b,a[c]);c=c+(1)>>0;}return b;};BL=function(a){var a,b,c,d;if(a.constructor===$global.Array){return BK(a);}b=HB.nil;c=$parseInt(a.length)>>0;d=0;while(true){if(!(d>0;}return b;};BM=function(a){var a,b,c,d,e;b=HC.nil;c=BL(a);d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);b=$append(b,BW(e));d++;}return b;};BN=function(a){var a,b,c,d,e;b=HD.nil;c=BL(a);d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);b=$append(b,BX(e));d++;}return b;};BO=function(a){var a,b,c,d,e;b=HE.nil;c=BL(a);d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);b=$append(b,BY(e));d++;}return b;};BU=function(a){var a,b;b=BJ(a);if(b===($global.HTMLDocument)){return new CJ.ptr(new CI.ptr(new DM.ptr(a)));}else{return new CI.ptr(new DM.ptr(a));}};BV=function(a){var a;$unused(BJ(a));return new CH.ptr(new DM.ptr(a));};BW=function(a){var a,b;if(a===null||a===undefined){return $ifaceNil;}b=BJ(a);if(b===($global.Text)){return new GT.ptr(new DM.ptr(a));}else{return BX(a);}};BX=function(a){var a;if(a===null||a===undefined){return $ifaceNil;}$unused(BJ(a));return BY(a);};BY=function(a){var a,b,c,d;if(a===null||a===undefined){return $ifaceNil;}b=new DR.ptr(new DS.ptr(new DM.ptr(a)));c=BJ(a);d=c;if(d===($global.HTMLAnchorElement)){return new DT.ptr(b,new CK.ptr(a,"","","","","","","","","","",""),"","",0,"","","");}else if(d===($global.HTMLAppletElement)){return new DU.ptr(b,"","","","","","",0,"","");}else if(d===($global.HTMLAreaElement)){return new DV.ptr(b,new CK.ptr(a,"","","","","","","","","","",""),"","","","","","",0,"","");}else if(d===($global.HTMLAudioElement)){return new DW.ptr(new FG.ptr(b,false));}else if(d===($global.HTMLBaseElement)){return new DY.ptr(b);}else if(d===($global.HTMLBodyElement)){return new DZ.ptr(b);}else if(d===($global.HTMLBRElement)){return new DX.ptr(b);}else if(d===($global.HTMLButtonElement)){return new EA.ptr(b,false,false,"","","",false,"","",0,"","","",false);}else if(d===($global.HTMLCanvasElement)){return new EB.ptr(b,0,0);}else if(d===($global.HTMLDataElement)){return new EI.ptr(b,"");}else if(d===($global.HTMLDataListElement)){return new EJ.ptr(b);}else if(d===($global.HTMLDirectoryElement)){return new EK.ptr(b);}else if(d===($global.HTMLDivElement)){return new EL.ptr(b);}else if(d===($global.HTMLDListElement)){return new EH.ptr(b);}else if(d===($global.HTMLEmbedElement)){return new EM.ptr(b,"","","");}else if(d===($global.HTMLFieldSetElement)){return new EN.ptr(b,false,"","","",false);}else if(d===($global.HTMLFontElement)){return new EO.ptr(b);}else if(d===($global.HTMLFormElement)){return new EP.ptr(b,"","","","","",0,"","",false,"");}else if(d===($global.HTMLFrameElement)){return new EQ.ptr(b);}else if(d===($global.HTMLFrameSetElement)){return new ER.ptr(b);}else if(d===($global.HTMLHeadElement)){return new ET.ptr(b);}else if(d===($global.HTMLHeadingElement)){return new EU.ptr(b);}else if(d===($global.HTMLHtmlElement)){return new EV.ptr(b);}else if(d===($global.HTMLHRElement)){return new ES.ptr(b);}else if(d===($global.HTMLIFrameElement)){return new EW.ptr(b,"","","","","",false);}else if(d===($global.HTMLImageElement)){return new EX.ptr(b,false,"",0,false,0,0,"","",0);}else if(d===($global.HTMLInputElement)){return new EY.ptr(b,"","","",false,false,false,"","",false,"","","",false,"","",false,"",0,"",false,"","","",false,false,"",0,0,0,"","",0,"","","",new A.Time.ptr(new $Uint64(0,0),new $Int64(0,0),HI.nil),0,"",false);}else if(d===($global.HTMLKeygenElement)){return new FA.ptr(b,false,"",false,"","","","",false);}else if(d===($global.HTMLLabelElement)){return new FC.ptr(b,"");}else if(d===($global.HTMLLegendElement)){return new FD.ptr(b);}else if(d===($global.HTMLLIElement)){return new FB.ptr(b,0);}else if(d===($global.HTMLLinkElement)){return new FE.ptr(b,false,"","","","");}else if(d===($global.HTMLMapElement)){return new FF.ptr(b,"");}else if(d===($global.HTMLMediaElement)){return new FG.ptr(b,false);}else if(d===($global.HTMLMenuElement)){return new FH.ptr(b);}else if(d===($global.HTMLMetaElement)){return new FI.ptr(b,"","","");}else if(d===($global.HTMLMeterElement)){return new FJ.ptr(b,0,0,0,0,0);}else if(d===($global.HTMLModElement)){return new FK.ptr(b,"","");}else if(d===($global.HTMLObjectElement)){return new FM.ptr(b,"","","",0,"",false,"","","",false);}else if(d===($global.HTMLOListElement)){return new FL.ptr(b,false,0,"");}else if(d===($global.HTMLOptGroupElement)){return new FN.ptr(b,false,"");}else if(d===($global.HTMLOptionElement)){return new FO.ptr(b,false,false,0,"",false,"","");}else if(d===($global.HTMLOutputElement)){return new FP.ptr(b,"","","","","",false);}else if(d===($global.HTMLParagraphElement)){return new FQ.ptr(b);}else if(d===($global.HTMLParamElement)){return new FR.ptr(b,"","");}else if(d===($global.HTMLPreElement)){return new FS.ptr(b);}else if(d===($global.HTMLProgressElement)){return new FT.ptr(b,0,0,0);}else if(d===($global.HTMLQuoteElement)){return new FU.ptr(b,"");}else if(d===($global.HTMLScriptElement)){return new FV.ptr(b,"","","",false,false,"");}else if(d===($global.HTMLSelectElement)){return new FW.ptr(b,false,false,0,false,"",false,0,0,"","","",false);}else if(d===($global.HTMLSourceElement)){return new FX.ptr(b,"","","");}else if(d===($global.HTMLSpanElement)){return new FY.ptr(b);}else if(d===($global.HTMLStyleElement)){return new FZ.ptr(b);}else if(d===($global.HTMLTableElement)){return new GE.ptr(b);}else if(d===($global.HTMLTableCaptionElement)){return new GA.ptr(b);}else if(d===($global.HTMLTableCellElement)){return new GB.ptr(b,0,0,0);}else if(d===($global.HTMLTableDataCellElement)){return new GD.ptr(b);}else if(d===($global.HTMLTableHeaderCellElement)){return new GF.ptr(b,"","");}else if(d===($global.HTMLTableColElement)){return new GC.ptr(b,0);}else if(d===($global.HTMLTableRowElement)){return new GG.ptr(b,0,0);}else if(d===($global.HTMLTableSectionElement)){return new GH.ptr(b);}else if(d===($global.HTMLTemplateElement)){return new GI.ptr(b);}else if(d===($global.HTMLTextAreaElement)){return new GJ.ptr(b,"",false,0,"","",false,0,"","",false,false,0,"",0,0,0,0,"","","",false,"");}else if(d===($global.HTMLTimeElement)){return new GK.ptr(b,"");}else if(d===($global.HTMLTitleElement)){return new GL.ptr(b,"");}else if(d===($global.HTMLTrackElement)){return new GN.ptr(b,"","","","",false,0);}else if(d===($global.HTMLUListElement)){return new GO.ptr(b);}else if(d===($global.HTMLUnknownElement)){return new GP.ptr(b);}else if(d===($global.HTMLVideoElement)){return new GQ.ptr(new FG.ptr(b,false));}else if(d===($global.HTMLElement)){return b;}else{return b;}};BZ=function(a){var a,b;b=BY(a.form);if($interfaceIsEqual(b,$ifaceNil)){return HJ.nil;}return $assertType(b,HJ);};CA=function(a){var a,b,c,d,e,f,g;b=BN(a.labels);c=$makeSlice(HL,b.$length);d=b;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=$assertType(g,HK));e++;}return c;};CB=function(a,b){var a,b,c,d,e,f,g,h;c=BN(a[$externalize(b,$String)]);d=$makeSlice(HN,c.$length);e=c;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]=$assertType(h,HM));f++;}return d;};CC=function(){return new CQ.ptr($global);};$pkg.GetWindow=CC;CD.ptr.prototype.Item=function(a){var a,b,c;b=this;c=b.dtl.item(a);return BH(c);};CD.prototype.Item=function(a){return this.$val.Item(a);};CD.ptr.prototype.Contains=function(a){var a,b;b=this;return!!(b.dtl.contains($externalize(a,$String)));};CD.prototype.Contains=function(a){return this.$val.Contains(a);};CD.ptr.prototype.Add=function(a){var a,b;b=this;b.dtl.add($externalize(a,$String));};CD.prototype.Add=function(a){return this.$val.Add(a);};CD.ptr.prototype.Remove=function(a){var a,b;b=this;b.dtl.remove($externalize(a,$String));};CD.prototype.Remove=function(a){return this.$val.Remove(a);};CD.ptr.prototype.Toggle=function(a){var a,b;b=this;b.dtl.toggle($externalize(a,$String));};CD.prototype.Toggle=function(a){return this.$val.Toggle(a);};CD.ptr.prototype.String=function(){var a;a=this;if(!(a.sa==="")){return $internalize(a.o[$externalize(a.sa,$String)],$String);}if(a.dtl.constructor===$global.DOMSettableTokenList){return $internalize(a.dtl.value,$String);}return"";};CD.prototype.String=function(){return this.$val.String();};CD.ptr.prototype.Slice=function(){var a,b,c,d;a=this;b=HO.nil;c=$parseInt(a.dtl.length)>>0;d=0;while(true){if(!(d>0;}return b;};CD.prototype.Slice=function(){return this.$val.Slice();};CD.ptr.prototype.SetString=function(a){var a,b;b=this;if(!(b.sa==="")){b.o[$externalize(b.sa,$String)]=$externalize(a,$String);return;}if(b.dtl.constructor===$global.DOMSettableTokenList){b.dtl.value=$externalize(a,$String);return;}$panic(new $String("no way to SetString on this TokenList"));};CD.prototype.SetString=function(a){return this.$val.SetString(a);};CD.ptr.prototype.Set=function(a){var a,b;b=this;b.SetString(E.Join(a," "));};CD.prototype.Set=function(a){return this.$val.Set(a);};CH.ptr.prototype.GetElementByID=function(a){var a,b;b=this;return BX(b.BasicNode.Object.getElementById($externalize(a,$String)));};CH.prototype.GetElementByID=function(a){return this.$val.GetElementByID(a);};CH.ptr.prototype.QuerySelector=function(a){var a,b;b=this;return(new DS.ptr(new DM.ptr(b.BasicNode.Object))).QuerySelector(a);};CH.prototype.QuerySelector=function(a){return this.$val.QuerySelector(a);};CH.ptr.prototype.QuerySelectorAll=function(a){var a,b;b=this;return(new DS.ptr(new DM.ptr(b.BasicNode.Object))).QuerySelectorAll(a);};CH.prototype.QuerySelectorAll=function(a){return this.$val.QuerySelectorAll(a);};CJ.ptr.prototype.ActiveElement=function(){var a;a=this;return BY(a.document.BasicNode.Object.activeElement);};CJ.prototype.ActiveElement=function(){return this.$val.ActiveElement();};CJ.ptr.prototype.Body=function(){var a;a=this;return BY(a.document.BasicNode.Object.body);};CJ.prototype.Body=function(){return this.$val.Body();};CJ.ptr.prototype.Cookie=function(){var a;a=this;return $internalize(a.document.BasicNode.Object.cookie,$String);};CJ.prototype.Cookie=function(){return this.$val.Cookie();};CJ.ptr.prototype.SetCookie=function(a){var a,b;b=this;b.document.BasicNode.Object.cookie=$externalize(a,$String);};CJ.prototype.SetCookie=function(a){return this.$val.SetCookie(a);};CJ.ptr.prototype.DefaultView=function(){var a;a=this;return new CQ.ptr(a.document.BasicNode.Object.defaultView);};CJ.prototype.DefaultView=function(){return this.$val.DefaultView();};CJ.ptr.prototype.DesignMode=function(){var a,b;a=this;b=$internalize(a.document.BasicNode.Object.designMode,$String);return!(b==="off");};CJ.prototype.DesignMode=function(){return this.$val.DesignMode();};CJ.ptr.prototype.SetDesignMode=function(a){var a,b,c;b=this;c="off";if(a){c="on";}b.document.BasicNode.Object.designMode=$externalize(c,$String);};CJ.prototype.SetDesignMode=function(a){return this.$val.SetDesignMode(a);};CJ.ptr.prototype.Domain=function(){var a;a=this;return $internalize(a.document.BasicNode.Object.domain,$String);};CJ.prototype.Domain=function(){return this.$val.Domain();};CJ.ptr.prototype.SetDomain=function(a){var a,b;b=this;b.document.BasicNode.Object.domain=$externalize(a,$String);};CJ.prototype.SetDomain=function(a){return this.$val.SetDomain(a);};CJ.ptr.prototype.Forms=function(){var a,b,c,d,e;a=this;b=HP.nil;c=a.document.BasicNode.Object.forms;d=$parseInt(c.length)>>0;e=0;while(true){if(!(e>0;}return b;};CJ.prototype.Forms=function(){return this.$val.Forms();};CJ.ptr.prototype.Head=function(){var a,b;a=this;b=BX(a.document.BasicNode.Object.head);if($interfaceIsEqual(b,$ifaceNil)){return HQ.nil;}return $assertType(b,HQ);};CJ.prototype.Head=function(){return this.$val.Head();};CJ.ptr.prototype.Images=function(){var a,b,c,d,e;a=this;b=HS.nil;c=a.document.BasicNode.Object.images;d=$parseInt(c.length)>>0;e=0;while(true){if(!(e>0;}return b;};CJ.prototype.Images=function(){return this.$val.Images();};CJ.ptr.prototype.LastModified=function(){var a;a=this;return $assertType($internalize(a.document.BasicNode.Object.lastModified,$emptyInterface),A.Time);};CJ.prototype.LastModified=function(){return this.$val.LastModified();};CJ.ptr.prototype.Links=function(){var a,b,c,d,e;a=this;b=HE.nil;c=a.document.BasicNode.Object.links;d=$parseInt(c.length)>>0;e=0;while(true){if(!(e>0;}return b;};CJ.prototype.Links=function(){return this.$val.Links();};CJ.ptr.prototype.Location=function(){var a,b;a=this;b=a.document.BasicNode.Object.location;return new CL.ptr(b,new CK.ptr(b,"","","","","","","","","","",""));};CJ.prototype.Location=function(){return this.$val.Location();};CJ.ptr.prototype.Plugins=function(){var a,b,c,d,e;a=this;b=HU.nil;c=a.document.BasicNode.Object.plugins;d=$parseInt(c.length)>>0;e=0;while(true){if(!(e>0;}return b;};CJ.prototype.Plugins=function(){return this.$val.Plugins();};CJ.ptr.prototype.ReadyState=function(){var a;a=this;return $internalize(a.document.BasicNode.Object.readyState,$String);};CJ.prototype.ReadyState=function(){return this.$val.ReadyState();};CJ.ptr.prototype.Referrer=function(){var a;a=this;return $internalize(a.document.BasicNode.Object.referrer,$String);};CJ.prototype.Referrer=function(){return this.$val.Referrer();};CJ.ptr.prototype.Scripts=function(){var a,b,c,d,e;a=this;b=HW.nil;c=a.document.BasicNode.Object.scripts;d=$parseInt(c.length)>>0;e=0;while(true){if(!(e>0;}return b;};CJ.prototype.Scripts=function(){return this.$val.Scripts();};CJ.ptr.prototype.Title=function(){var a;a=this;return $internalize(a.document.BasicNode.Object.title,$String);};CJ.prototype.Title=function(){return this.$val.Title();};CJ.ptr.prototype.SetTitle=function(a){var a,b;b=this;b.document.BasicNode.Object.title=$externalize(a,$String);};CJ.prototype.SetTitle=function(a){return this.$val.SetTitle(a);};CJ.ptr.prototype.URL=function(){var a;a=this;return $internalize(a.document.BasicNode.Object.URL,$String);};CJ.prototype.URL=function(){return this.$val.URL();};CI.ptr.prototype.Async=function(){var a;a=this;return!!(a.BasicNode.Object.async);};CI.prototype.Async=function(){return this.$val.Async();};CI.ptr.prototype.SetAsync=function(a){var a,b;b=this;b.BasicNode.Object.async=$externalize(a,$Bool);};CI.prototype.SetAsync=function(a){return this.$val.SetAsync(a);};CI.ptr.prototype.Doctype=function(){var a;a=this;$panic(new $String("not implemented"));};CI.prototype.Doctype=function(){return this.$val.Doctype();};CI.ptr.prototype.DocumentElement=function(){var a;a=this;return BX(a.BasicNode.Object.documentElement);};CI.prototype.DocumentElement=function(){return this.$val.DocumentElement();};CI.ptr.prototype.DocumentURI=function(){var a;a=this;return $internalize(a.BasicNode.Object.documentURI,$String);};CI.prototype.DocumentURI=function(){return this.$val.DocumentURI();};CI.ptr.prototype.Implementation=function(){var a;a=this;$panic(new $String("not implemented"));};CI.prototype.Implementation=function(){return this.$val.Implementation();};CI.ptr.prototype.LastStyleSheetSet=function(){var a;a=this;return $internalize(a.BasicNode.Object.lastStyleSheetSet,$String);};CI.prototype.LastStyleSheetSet=function(){return this.$val.LastStyleSheetSet();};CI.ptr.prototype.PreferredStyleSheetSet=function(){var a;a=this;return $internalize(a.BasicNode.Object.preferredStyleSheetSet,$String);};CI.prototype.PreferredStyleSheetSet=function(){return this.$val.PreferredStyleSheetSet();};CI.ptr.prototype.SelectedStyleSheetSet=function(){var a;a=this;return $internalize(a.BasicNode.Object.selectedStyleSheetSet,$String);};CI.prototype.SelectedStyleSheetSet=function(){return this.$val.SelectedStyleSheetSet();};CI.ptr.prototype.StyleSheets=function(){var a;a=this;$panic(new $String("not implemented"));};CI.prototype.StyleSheets=function(){return this.$val.StyleSheets();};CI.ptr.prototype.StyleSheetSets=function(){var a;a=this;$panic(new $String("not implemented"));};CI.prototype.StyleSheetSets=function(){return this.$val.StyleSheetSets();};CI.ptr.prototype.AdoptNode=function(a){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Underlying();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=BW(b.BasicNode.Object.adoptNode(c));$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=3;case 3:return e;}return;}var $f={$blk:CI.ptr.prototype.AdoptNode,$c:true,$r,a,b,c,d,e,$s};return $f;};CI.prototype.AdoptNode=function(a){return this.$val.AdoptNode(a);};CI.ptr.prototype.ImportNode=function(a,b){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=a.Underlying();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=BW(c.BasicNode.Object.importNode(d,$externalize(b,$Bool)));$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=3;case 3:return f;}return;}var $f={$blk:CI.ptr.prototype.ImportNode,$c:true,$r,a,b,c,d,e,f,$s};return $f;};CI.prototype.ImportNode=function(a,b){return this.$val.ImportNode(a,b);};CI.ptr.prototype.CreateDocumentFragment=function(){var a;a=this;return BV(a.BasicNode.Object.createDocumentFragment());};CI.prototype.CreateDocumentFragment=function(){return this.$val.CreateDocumentFragment();};CI.ptr.prototype.CreateElement=function(a){var a,b;b=this;return BX(b.BasicNode.Object.createElement($externalize(a,$String)));};CI.prototype.CreateElement=function(a){return this.$val.CreateElement(a);};CI.ptr.prototype.CreateElementNS=function(a,b){var a,b,c;c=this;return BX(c.BasicNode.Object.createElementNS($externalize(a,$String),$externalize(b,$String)));};CI.prototype.CreateElementNS=function(a,b){return this.$val.CreateElementNS(a,b);};CI.ptr.prototype.CreateTextNode=function(a){var a,b;b=this;return $assertType(BW(b.BasicNode.Object.createTextNode($externalize(a,$String))),HX);};CI.prototype.CreateTextNode=function(a){return this.$val.CreateTextNode(a);};CI.ptr.prototype.ElementFromPoint=function(a,b){var a,b,c;c=this;return BX(c.BasicNode.Object.elementFromPoint(a,b));};CI.prototype.ElementFromPoint=function(a,b){return this.$val.ElementFromPoint(a,b);};CI.ptr.prototype.EnableStyleSheetsForSet=function(a){var a,b;b=this;b.BasicNode.Object.enableStyleSheetsForSet($externalize(a,$String));};CI.prototype.EnableStyleSheetsForSet=function(a){return this.$val.EnableStyleSheetsForSet(a);};CI.ptr.prototype.GetElementsByClassName=function(a){var a,b;b=this;return(new DS.ptr(new DM.ptr(b.BasicNode.Object))).GetElementsByClassName(a);};CI.prototype.GetElementsByClassName=function(a){return this.$val.GetElementsByClassName(a);};CI.ptr.prototype.GetElementsByTagName=function(a){var a,b;b=this;return(new DS.ptr(new DM.ptr(b.BasicNode.Object))).GetElementsByTagName(a);};CI.prototype.GetElementsByTagName=function(a){return this.$val.GetElementsByTagName(a);};CI.ptr.prototype.GetElementsByTagNameNS=function(a,b){var a,b,c;c=this;return(new DS.ptr(new DM.ptr(c.BasicNode.Object))).GetElementsByTagNameNS(a,b);};CI.prototype.GetElementsByTagNameNS=function(a,b){return this.$val.GetElementsByTagNameNS(a,b);};CI.ptr.prototype.GetElementByID=function(a){var a,b;b=this;return BX(b.BasicNode.Object.getElementById($externalize(a,$String)));};CI.prototype.GetElementByID=function(a){return this.$val.GetElementByID(a);};CI.ptr.prototype.QuerySelector=function(a){var a,b;b=this;return(new DS.ptr(new DM.ptr(b.BasicNode.Object))).QuerySelector(a);};CI.prototype.QuerySelector=function(a){return this.$val.QuerySelector(a);};CI.ptr.prototype.QuerySelectorAll=function(a){var a,b;b=this;return(new DS.ptr(new DM.ptr(b.BasicNode.Object))).QuerySelectorAll(a);};CI.prototype.QuerySelectorAll=function(a){return this.$val.QuerySelectorAll(a);};CQ.ptr.prototype.Console=function(){var a;a=this;return new DF.ptr(a.Object.console);};CQ.prototype.Console=function(){return this.$val.Console();};CQ.ptr.prototype.Document=function(){var a;a=this;return BU(a.Object.document);};CQ.prototype.Document=function(){return this.$val.Document();};CQ.ptr.prototype.FrameElement=function(){var a;a=this;return BX(a.Object.frameElement);};CQ.prototype.FrameElement=function(){return this.$val.FrameElement();};CQ.ptr.prototype.Location=function(){var a,b;a=this;b=a.Object.location;return new CL.ptr(b,new CK.ptr(b,"","","","","","","","","","",""));};CQ.prototype.Location=function(){return this.$val.Location();};CQ.ptr.prototype.Name=function(){var a;a=this;return $internalize(a.Object.name,$String);};CQ.prototype.Name=function(){return this.$val.Name();};CQ.ptr.prototype.SetName=function(a){var a,b;b=this;b.Object.name=$externalize(a,$String);};CQ.prototype.SetName=function(a){return this.$val.SetName(a);};CQ.ptr.prototype.InnerHeight=function(){var a;a=this;return $parseInt(a.Object.innerHeight)>>0;};CQ.prototype.InnerHeight=function(){return this.$val.InnerHeight();};CQ.ptr.prototype.InnerWidth=function(){var a;a=this;return $parseInt(a.Object.innerWidth)>>0;};CQ.prototype.InnerWidth=function(){return this.$val.InnerWidth();};CQ.ptr.prototype.Length=function(){var a;a=this;return $parseInt(a.Object.length)>>0;};CQ.prototype.Length=function(){return this.$val.Length();};CQ.ptr.prototype.Opener=function(){var a;a=this;return new CQ.ptr(a.Object.opener);};CQ.prototype.Opener=function(){return this.$val.Opener();};CQ.ptr.prototype.OuterHeight=function(){var a;a=this;return $parseInt(a.Object.outerHeight)>>0;};CQ.prototype.OuterHeight=function(){return this.$val.OuterHeight();};CQ.ptr.prototype.OuterWidth=function(){var a;a=this;return $parseInt(a.Object.outerWidth)>>0;};CQ.prototype.OuterWidth=function(){return this.$val.OuterWidth();};CQ.ptr.prototype.ScrollX=function(){var a;a=this;return $parseInt(a.Object.scrollX)>>0;};CQ.prototype.ScrollX=function(){return this.$val.ScrollX();};CQ.ptr.prototype.ScrollY=function(){var a;a=this;return $parseInt(a.Object.scrollY)>>0;};CQ.prototype.ScrollY=function(){return this.$val.ScrollY();};CQ.ptr.prototype.Parent=function(){var a;a=this;return new CQ.ptr(a.Object.parent);};CQ.prototype.Parent=function(){return this.$val.Parent();};CQ.ptr.prototype.ScreenX=function(){var a;a=this;return $parseInt(a.Object.screenX)>>0;};CQ.prototype.ScreenX=function(){return this.$val.ScreenX();};CQ.ptr.prototype.ScreenY=function(){var a;a=this;return $parseInt(a.Object.screenY)>>0;};CQ.prototype.ScreenY=function(){return this.$val.ScreenY();};CQ.ptr.prototype.ScrollMaxX=function(){var a;a=this;return $parseInt(a.Object.scrollMaxX)>>0;};CQ.prototype.ScrollMaxX=function(){return this.$val.ScrollMaxX();};CQ.ptr.prototype.ScrollMaxY=function(){var a;a=this;return $parseInt(a.Object.scrollMaxY)>>0;};CQ.prototype.ScrollMaxY=function(){return this.$val.ScrollMaxY();};CQ.ptr.prototype.Top=function(){var a;a=this;return new CQ.ptr(a.Object.top);};CQ.prototype.Top=function(){return this.$val.Top();};CQ.ptr.prototype.History=function(){var a;a=this;return $ifaceNil;};CQ.prototype.History=function(){return this.$val.History();};CQ.ptr.prototype.Navigator=function(){var a;a=this;$panic(new $String("not implemented"));};CQ.prototype.Navigator=function(){return this.$val.Navigator();};CQ.ptr.prototype.Screen=function(){var a;a=this;return new CT.ptr(a.Object.screen,0,0,0,0,0,0,0,0,0,0);};CQ.prototype.Screen=function(){return this.$val.Screen();};CQ.ptr.prototype.Alert=function(a){var a,b;b=this;b.Object.alert($externalize(a,$String));};CQ.prototype.Alert=function(a){return this.$val.Alert(a);};CQ.ptr.prototype.Back=function(){var a;a=this;a.Object.back();};CQ.prototype.Back=function(){return this.$val.Back();};CQ.ptr.prototype.Blur=function(){var a;a=this;a.Object.blur();};CQ.prototype.Blur=function(){return this.$val.Blur();};CQ.ptr.prototype.ClearInterval=function(a){var a,b;b=this;b.Object.clearInterval(a);};CQ.prototype.ClearInterval=function(a){return this.$val.ClearInterval(a);};CQ.ptr.prototype.ClearTimeout=function(a){var a,b;b=this;b.Object.clearTimeout(a);};CQ.prototype.ClearTimeout=function(a){return this.$val.ClearTimeout(a);};CQ.ptr.prototype.Close=function(){var a;a=this;a.Object.close();};CQ.prototype.Close=function(){return this.$val.Close();};CQ.ptr.prototype.Confirm=function(a){var a,b;b=this;return!!(b.Object.confirm($externalize(a,$String)));};CQ.prototype.Confirm=function(a){return this.$val.Confirm(a);};CQ.ptr.prototype.Focus=function(){var a;a=this;a.Object.focus();};CQ.prototype.Focus=function(){return this.$val.Focus();};CQ.ptr.prototype.Forward=function(){var a;a=this;a.Object.forward();};CQ.prototype.Forward=function(){return this.$val.Forward();};CQ.ptr.prototype.GetComputedStyle=function(a,b){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=$ifaceNil;if(!(b==="")){d=new $String(b);}e=a.Underlying();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=new GS.ptr(c.Object.getComputedStyle(e,$externalize(d,$emptyInterface)));$s=2;case 2:return f;}return;}var $f={$blk:CQ.ptr.prototype.GetComputedStyle,$c:true,$r,a,b,c,d,e,f,$s};return $f;};CQ.prototype.GetComputedStyle=function(a,b){return this.$val.GetComputedStyle(a,b);};CQ.ptr.prototype.GetSelection=function(){var a;a=this;$panic(new $String("not implemented"));};CQ.prototype.GetSelection=function(){return this.$val.GetSelection();};CQ.ptr.prototype.Home=function(){var a;a=this;a.Object.home();};CQ.prototype.Home=function(){return this.$val.Home();};CQ.ptr.prototype.MoveBy=function(a,b){var a,b,c;c=this;c.Object.moveBy(a,b);};CQ.prototype.MoveBy=function(a,b){return this.$val.MoveBy(a,b);};CQ.ptr.prototype.MoveTo=function(a,b){var a,b,c;c=this;c.Object.moveTo(a,b);};CQ.prototype.MoveTo=function(a,b){return this.$val.MoveTo(a,b);};CQ.ptr.prototype.Open=function(a,b,c){var a,b,c,d;d=this;return new CQ.ptr(d.Object.open($externalize(a,$String),$externalize(b,$String),$externalize(c,$String)));};CQ.prototype.Open=function(a,b,c){return this.$val.Open(a,b,c);};CQ.ptr.prototype.OpenDialog=function(a,b,c,d){var a,b,c,d,e;e=this;return new CQ.ptr(e.Object.openDialog($externalize(a,$String),$externalize(b,$String),$externalize(c,$String),$externalize(d,GZ)));};CQ.prototype.OpenDialog=function(a,b,c,d){return this.$val.OpenDialog(a,b,c,d);};CQ.ptr.prototype.PostMessage=function(a,b,c){var a,b,c,d;d=this;d.Object.postMessage($externalize(a,$String),$externalize(b,$String),$externalize(c,GZ));};CQ.prototype.PostMessage=function(a,b,c){return this.$val.PostMessage(a,b,c);};CQ.ptr.prototype.Print=function(){var a;a=this;a.Object.print();};CQ.prototype.Print=function(){return this.$val.Print();};CQ.ptr.prototype.Prompt=function(a,b){var a,b,c;c=this;return $internalize(c.Object.prompt($externalize(a,$String),$externalize(b,$String)),$String);};CQ.prototype.Prompt=function(a,b){return this.$val.Prompt(a,b);};CQ.ptr.prototype.ResizeBy=function(a,b){var a,b,c;c=this;c.Object.resizeBy(a,b);};CQ.prototype.ResizeBy=function(a,b){return this.$val.ResizeBy(a,b);};CQ.ptr.prototype.ResizeTo=function(a,b){var a,b,c;c=this;c.Object.resizeTo(a,b);};CQ.prototype.ResizeTo=function(a,b){return this.$val.ResizeTo(a,b);};CQ.ptr.prototype.Scroll=function(a,b){var a,b,c;c=this;c.Object.scroll(a,b);};CQ.prototype.Scroll=function(a,b){return this.$val.Scroll(a,b);};CQ.ptr.prototype.ScrollBy=function(a,b){var a,b,c;c=this;c.Object.scrollBy(a,b);};CQ.prototype.ScrollBy=function(a,b){return this.$val.ScrollBy(a,b);};CQ.ptr.prototype.ScrollByLines=function(a){var a,b;b=this;b.Object.scrollByLines(a);};CQ.prototype.ScrollByLines=function(a){return this.$val.ScrollByLines(a);};CQ.ptr.prototype.ScrollTo=function(a,b){var a,b,c;c=this;c.Object.scrollTo(a,b);};CQ.prototype.ScrollTo=function(a,b){return this.$val.ScrollTo(a,b);};CQ.ptr.prototype.SetCursor=function(a){var a,b;b=this;b.Object.setCursor($externalize(a,$String));};CQ.prototype.SetCursor=function(a){return this.$val.SetCursor(a);};CQ.ptr.prototype.SetInterval=function(a,b){var a,b,c;c=this;return $parseInt(c.Object.setInterval($externalize(a,HY),b))>>0;};CQ.prototype.SetInterval=function(a,b){return this.$val.SetInterval(a,b);};CQ.ptr.prototype.SetTimeout=function(a,b){var a,b,c;c=this;return $parseInt(c.Object.setTimeout($externalize(a,HY),b))>>0;};CQ.prototype.SetTimeout=function(a,b){return this.$val.SetTimeout(a,b);};CQ.ptr.prototype.Stop=function(){var a;a=this;a.Object.stop();};CQ.prototype.Stop=function(){return this.$val.Stop();};CQ.ptr.prototype.AddEventListener=function(a,b,c){var a,b,c,d,e;d=this;e=(function $b(e){var{e,$s,$r,$c}=$restore(this,{e});$s=$s||0;s:while(true){switch($s){case 0:$r=c(G(e));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,e,$s};return $f;});d.Object.addEventListener($externalize(a,$String),$externalize(e,HZ),$externalize(b,$Bool));return e;};CQ.prototype.AddEventListener=function(a,b,c){return this.$val.AddEventListener(a,b,c);};CQ.ptr.prototype.RemoveEventListener=function(a,b,c){var a,b,c,d;d=this;d.Object.removeEventListener($externalize(a,$String),$externalize(c,HZ),$externalize(b,$Bool));};CQ.prototype.RemoveEventListener=function(a,b,c){return this.$val.RemoveEventListener(a,b,c);};CQ.ptr.prototype.DispatchEvent=function(a){var a,b;b=this;return!!(b.Object.dispatchEvent($externalize(a,H)));};CQ.prototype.DispatchEvent=function(a){return this.$val.DispatchEvent(a);};CR=function(a){var a;return(new A.Duration(0,$parseFloat(a)*1e+06));};CQ.ptr.prototype.RequestAnimationFrame=function(a){var a,b,c;b=this;c=(function $b(c){var{c,$s,$r,$c}=$restore(this,{c});$s=$s||0;s:while(true){switch($s){case 0:$r=a(CR(c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,c,$s};return $f;});return $parseInt(b.Object.requestAnimationFrame($externalize(c,HZ)))>>0;};CQ.prototype.RequestAnimationFrame=function(a){return this.$val.RequestAnimationFrame(a);};CQ.ptr.prototype.CancelAnimationFrame=function(a){var a,b;b=this;b.Object.cancelAnimationFrame(a);};CQ.prototype.CancelAnimationFrame=function(a){return this.$val.CancelAnimationFrame(a);};DA.ptr.prototype.Error=function(){var a;a=this;return $internalize(a.Object.message(),$String);};DA.prototype.Error=function(){return this.$val.Error();};DM.ptr.prototype.Underlying=function(){var a;a=this;return a.Object;};DM.prototype.Underlying=function(){return this.$val.Underlying();};DM.ptr.prototype.AddEventListener=function(a,b,c){var a,b,c,d,e;d=this;e=(function $b(e){var{e,$s,$r,$c}=$restore(this,{e});$s=$s||0;s:while(true){switch($s){case 0:$r=c(G(e));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,e,$s};return $f;});d.Object.addEventListener($externalize(a,$String),$externalize(e,HZ),$externalize(b,$Bool));return e;};DM.prototype.AddEventListener=function(a,b,c){return this.$val.AddEventListener(a,b,c);};DM.ptr.prototype.RemoveEventListener=function(a,b,c){var a,b,c,d;d=this;d.Object.removeEventListener($externalize(a,$String),$externalize(c,HZ),$externalize(b,$Bool));};DM.prototype.RemoveEventListener=function(a,b,c){return this.$val.RemoveEventListener(a,b,c);};DM.ptr.prototype.DispatchEvent=function(a){var a,b;b=this;return!!(b.Object.dispatchEvent($externalize(a,H)));};DM.prototype.DispatchEvent=function(a){return this.$val.DispatchEvent(a);};DM.ptr.prototype.BaseURI=function(){var a;a=this;return $internalize(a.Object.baseURI,$String);};DM.prototype.BaseURI=function(){return this.$val.BaseURI();};DM.ptr.prototype.ChildNodes=function(){var a;a=this;return BM(a.Object.childNodes);};DM.prototype.ChildNodes=function(){return this.$val.ChildNodes();};DM.ptr.prototype.FirstChild=function(){var a;a=this;return BW(a.Object.firstChild);};DM.prototype.FirstChild=function(){return this.$val.FirstChild();};DM.ptr.prototype.LastChild=function(){var a;a=this;return BW(a.Object.lastChild);};DM.prototype.LastChild=function(){return this.$val.LastChild();};DM.ptr.prototype.NextSibling=function(){var a;a=this;return BW(a.Object.nextSibling);};DM.prototype.NextSibling=function(){return this.$val.NextSibling();};DM.ptr.prototype.NodeName=function(){var a;a=this;return $internalize(a.Object.nodeName,$String);};DM.prototype.NodeName=function(){return this.$val.NodeName();};DM.ptr.prototype.NodeType=function(){var a;a=this;return $parseInt(a.Object.nodeType)>>0;};DM.prototype.NodeType=function(){return this.$val.NodeType();};DM.ptr.prototype.NodeValue=function(){var a;a=this;return BH(a.Object.nodeValue);};DM.prototype.NodeValue=function(){return this.$val.NodeValue();};DM.ptr.prototype.SetNodeValue=function(a){var a,b;b=this;b.Object.nodeValue=$externalize(a,$String);};DM.prototype.SetNodeValue=function(a){return this.$val.SetNodeValue(a);};DM.ptr.prototype.OwnerDocument=function(){var a;a=this;$panic(new $String("not implemented"));};DM.prototype.OwnerDocument=function(){return this.$val.OwnerDocument();};DM.ptr.prototype.ParentNode=function(){var a;a=this;return BW(a.Object.parentNode);};DM.prototype.ParentNode=function(){return this.$val.ParentNode();};DM.ptr.prototype.ParentElement=function(){var a;a=this;return BX(a.Object.parentElement);};DM.prototype.ParentElement=function(){return this.$val.ParentElement();};DM.ptr.prototype.PreviousSibling=function(){var a;a=this;return BW(a.Object.previousSibling);};DM.prototype.PreviousSibling=function(){return this.$val.PreviousSibling();};DM.ptr.prototype.TextContent=function(){var a;a=this;return BH(a.Object.textContent);};DM.prototype.TextContent=function(){return this.$val.TextContent();};DM.ptr.prototype.SetTextContent=function(a){var a,b;b=this;b.Object.textContent=$externalize(a,$String);};DM.prototype.SetTextContent=function(a){return this.$val.SetTextContent(a);};DM.ptr.prototype.AppendChild=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Underlying();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b.Object.appendChild(c);$s=-1;return;}return;}var $f={$blk:DM.ptr.prototype.AppendChild,$c:true,$r,a,b,c,$s};return $f;};DM.prototype.AppendChild=function(a){return this.$val.AppendChild(a);};DM.ptr.prototype.CloneNode=function(a){var a,b;b=this;return BW(b.Object.cloneNode($externalize(a,$Bool)));};DM.prototype.CloneNode=function(a){return this.$val.CloneNode(a);};DM.ptr.prototype.CompareDocumentPosition=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Underlying();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=$parseInt(b.Object.compareDocumentPosition(c))>>0;$s=2;case 2:return d;}return;}var $f={$blk:DM.ptr.prototype.CompareDocumentPosition,$c:true,$r,a,b,c,d,$s};return $f;};DM.prototype.CompareDocumentPosition=function(a){return this.$val.CompareDocumentPosition(a);};DM.ptr.prototype.Contains=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Underlying();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=!!(b.Object.contains(c));$s=2;case 2:return d;}return;}var $f={$blk:DM.ptr.prototype.Contains,$c:true,$r,a,b,c,d,$s};return $f;};DM.prototype.Contains=function(a){return this.$val.Contains(a);};DM.ptr.prototype.HasChildNodes=function(){var a;a=this;return!!(a.Object.hasChildNodes());};DM.prototype.HasChildNodes=function(){return this.$val.HasChildNodes();};DM.ptr.prototype.InsertBefore=function(a,b){var{a,b,c,d,e,f,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=$ifaceNil;if(!($interfaceIsEqual(b,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:e=b.Underlying();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=new $jsObjectPtr(e);case 2:f=a.Underlying();$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}c.Object.insertBefore(f,$externalize(d,$emptyInterface));$s=-1;return;}return;}var $f={$blk:DM.ptr.prototype.InsertBefore,$c:true,$r,a,b,c,d,e,f,$s};return $f;};DM.prototype.InsertBefore=function(a,b){return this.$val.InsertBefore(a,b);};DM.ptr.prototype.IsDefaultNamespace=function(a){var a,b;b=this;return!!(b.Object.isDefaultNamespace($externalize(a,$String)));};DM.prototype.IsDefaultNamespace=function(a){return this.$val.IsDefaultNamespace(a);};DM.ptr.prototype.IsEqualNode=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Underlying();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=!!(b.Object.isEqualNode(c));$s=2;case 2:return d;}return;}var $f={$blk:DM.ptr.prototype.IsEqualNode,$c:true,$r,a,b,c,d,$s};return $f;};DM.prototype.IsEqualNode=function(a){return this.$val.IsEqualNode(a);};DM.ptr.prototype.LookupPrefix=function(){var a;a=this;return $internalize(a.Object.lookupPrefix(),$String);};DM.prototype.LookupPrefix=function(){return this.$val.LookupPrefix();};DM.ptr.prototype.LookupNamespaceURI=function(a){var a,b;b=this;return BH(b.Object.lookupNamespaceURI($externalize(a,$String)));};DM.prototype.LookupNamespaceURI=function(a){return this.$val.LookupNamespaceURI(a);};DM.ptr.prototype.Normalize=function(){var a;a=this;a.Object.normalize();};DM.prototype.Normalize=function(){return this.$val.Normalize();};DM.ptr.prototype.RemoveChild=function(a){var{a,b,c,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=a.Underlying();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b.Object.removeChild(c);$s=-1;return;}return;}var $f={$blk:DM.ptr.prototype.RemoveChild,$c:true,$r,a,b,c,$s};return $f;};DM.prototype.RemoveChild=function(a){return this.$val.RemoveChild(a);};DM.ptr.prototype.ReplaceChild=function(a,b){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{a,b});$s=$s||0;s:while(true){switch($s){case 0:c=this;d=a.Underlying();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=b.Underlying();$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}c.Object.replaceChild(d,e);$s=-1;return;}return;}var $f={$blk:DM.ptr.prototype.ReplaceChild,$c:true,$r,a,b,c,d,e,$s};return $f;};DM.prototype.ReplaceChild=function(a,b){return this.$val.ReplaceChild(a,b);};DR.ptr.prototype.AccessKey=function(){var a;a=this;return $internalize(a.BasicElement.BasicNode.Object.accessKey,$String);};DR.prototype.AccessKey=function(){return this.$val.AccessKey();};DR.ptr.prototype.Dataset=function(){var a,b,c,d,e,f,g,h;a=this;b=a.BasicElement.BasicNode.Object.dataset;c=$makeMap($String.keyFor,[]);d=B.Keys(b);e=d;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);h=g;(c||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(h),{k:h,v:$internalize(b[$externalize(g,$String)],$String)});f++;}return c;};DR.prototype.Dataset=function(){return this.$val.Dataset();};DR.ptr.prototype.SetAccessKey=function(a){var a,b;b=this;b.BasicElement.BasicNode.Object.accessKey=$externalize(a,$String);};DR.prototype.SetAccessKey=function(a){return this.$val.SetAccessKey(a);};DR.ptr.prototype.AccessKeyLabel=function(){var a;a=this;return $internalize(a.BasicElement.BasicNode.Object.accessKeyLabel,$String);};DR.prototype.AccessKeyLabel=function(){return this.$val.AccessKeyLabel();};DR.ptr.prototype.SetAccessKeyLabel=function(a){var a,b;b=this;b.BasicElement.BasicNode.Object.accessKeyLabel=$externalize(a,$String);};DR.prototype.SetAccessKeyLabel=function(a){return this.$val.SetAccessKeyLabel(a);};DR.ptr.prototype.ContentEditable=function(){var a;a=this;return $internalize(a.BasicElement.BasicNode.Object.contentEditable,$String);};DR.prototype.ContentEditable=function(){return this.$val.ContentEditable();};DR.ptr.prototype.SetContentEditable=function(a){var a,b;b=this;b.BasicElement.BasicNode.Object.contentEditable=$externalize(a,$String);};DR.prototype.SetContentEditable=function(a){return this.$val.SetContentEditable(a);};DR.ptr.prototype.IsContentEditable=function(){var a;a=this;return!!(a.BasicElement.BasicNode.Object.isContentEditable);};DR.prototype.IsContentEditable=function(){return this.$val.IsContentEditable();};DR.ptr.prototype.Dir=function(){var a;a=this;return $internalize(a.BasicElement.BasicNode.Object.dir,$String);};DR.prototype.Dir=function(){return this.$val.Dir();};DR.ptr.prototype.SetDir=function(a){var a,b;b=this;b.BasicElement.BasicNode.Object.dir=$externalize(a,$String);};DR.prototype.SetDir=function(a){return this.$val.SetDir(a);};DR.ptr.prototype.Draggable=function(){var a;a=this;return!!(a.BasicElement.BasicNode.Object.draggable);};DR.prototype.Draggable=function(){return this.$val.Draggable();};DR.ptr.prototype.SetDraggable=function(a){var a,b;b=this;b.BasicElement.BasicNode.Object.draggable=$externalize(a,$Bool);};DR.prototype.SetDraggable=function(a){return this.$val.SetDraggable(a);};DR.ptr.prototype.Lang=function(){var a;a=this;return $internalize(a.BasicElement.BasicNode.Object.lang,$String);};DR.prototype.Lang=function(){return this.$val.Lang();};DR.ptr.prototype.SetLang=function(a){var a,b;b=this;b.BasicElement.BasicNode.Object.lang=$externalize(a,$String);};DR.prototype.SetLang=function(a){return this.$val.SetLang(a);};DR.ptr.prototype.OffsetHeight=function(){var a;a=this;return $parseFloat(a.BasicElement.BasicNode.Object.offsetHeight);};DR.prototype.OffsetHeight=function(){return this.$val.OffsetHeight();};DR.ptr.prototype.OffsetLeft=function(){var a;a=this;return $parseFloat(a.BasicElement.BasicNode.Object.offsetLeft);};DR.prototype.OffsetLeft=function(){return this.$val.OffsetLeft();};DR.ptr.prototype.OffsetParent=function(){var a;a=this;return BY(a.BasicElement.BasicNode.Object.offsetParent);};DR.prototype.OffsetParent=function(){return this.$val.OffsetParent();};DR.ptr.prototype.OffsetTop=function(){var a;a=this;return $parseFloat(a.BasicElement.BasicNode.Object.offsetTop);};DR.prototype.OffsetTop=function(){return this.$val.OffsetTop();};DR.ptr.prototype.OffsetWidth=function(){var a;a=this;return $parseFloat(a.BasicElement.BasicNode.Object.offsetWidth);};DR.prototype.OffsetWidth=function(){return this.$val.OffsetWidth();};DR.ptr.prototype.Style=function(){var a;a=this;return new GS.ptr(a.BasicElement.BasicNode.Object.style);};DR.prototype.Style=function(){return this.$val.Style();};DR.ptr.prototype.TabIndex=function(){var a;a=this;return $parseInt(a.BasicElement.BasicNode.Object.tabIndex)>>0;};DR.prototype.TabIndex=function(){return this.$val.TabIndex();};DR.ptr.prototype.SetTabIndex=function(a){var a,b;b=this;b.BasicElement.BasicNode.Object.tabIndex=a;};DR.prototype.SetTabIndex=function(a){return this.$val.SetTabIndex(a);};DR.ptr.prototype.Title=function(){var a;a=this;return $internalize(a.BasicElement.BasicNode.Object.title,$String);};DR.prototype.Title=function(){return this.$val.Title();};DR.ptr.prototype.SetTitle=function(a){var a,b;b=this;b.BasicElement.BasicNode.Object.title=$externalize(a,$String);};DR.prototype.SetTitle=function(a){return this.$val.SetTitle(a);};DR.ptr.prototype.Blur=function(){var a;a=this;a.BasicElement.BasicNode.Object.blur();};DR.prototype.Blur=function(){return this.$val.Blur();};DR.ptr.prototype.Click=function(){var a;a=this;a.BasicElement.BasicNode.Object.click();};DR.prototype.Click=function(){return this.$val.Click();};DR.ptr.prototype.Focus=function(){var a;a=this;a.BasicElement.BasicNode.Object.focus();};DR.prototype.Focus=function(){return this.$val.Focus();};DS.ptr.prototype.Attributes=function(){var a,b,c,d,e,f,g;a=this;b=a.BasicNode.Object.attributes;c=$makeMap($String.keyFor,[]);d=$parseInt(b.length)>>0;e=0;while(true){if(!(e>0;}return c;};DS.prototype.Attributes=function(){return this.$val.Attributes();};DS.ptr.prototype.GetBoundingClientRect=function(){var a,b;a=this;b=a.BasicNode.Object.getBoundingClientRect();return new DO.ptr(b,0,0,0,0,0,0);};DS.prototype.GetBoundingClientRect=function(){return this.$val.GetBoundingClientRect();};DS.ptr.prototype.PreviousElementSibling=function(){var a;a=this;return BX(a.BasicNode.Object.previousElementSibling);};DS.prototype.PreviousElementSibling=function(){return this.$val.PreviousElementSibling();};DS.ptr.prototype.NextElementSibling=function(){var a;a=this;return BX(a.BasicNode.Object.nextElementSibling);};DS.prototype.NextElementSibling=function(){return this.$val.NextElementSibling();};DS.ptr.prototype.Class=function(){var a;a=this;return new CD.ptr(a.BasicNode.Object.classList,a.BasicNode.Object,"className",0);};DS.prototype.Class=function(){return this.$val.Class();};DS.ptr.prototype.SetClass=function(a){var a,b;b=this;b.BasicNode.Object.className=$externalize(a,$String);};DS.prototype.SetClass=function(a){return this.$val.SetClass(a);};DS.ptr.prototype.Closest=function(a){var a,b;b=this;return BX(b.BasicNode.Object.closest($externalize(a,$String)));};DS.prototype.Closest=function(a){return this.$val.Closest(a);};DS.ptr.prototype.ID=function(){var a;a=this;return $internalize(a.BasicNode.Object.id,$String);};DS.prototype.ID=function(){return this.$val.ID();};DS.ptr.prototype.SetID=function(a){var a,b;b=this;b.BasicNode.Object.id=$externalize(a,$String);};DS.prototype.SetID=function(a){return this.$val.SetID(a);};DS.ptr.prototype.TagName=function(){var a;a=this;return $internalize(a.BasicNode.Object.tagName,$String);};DS.prototype.TagName=function(){return this.$val.TagName();};DS.ptr.prototype.GetAttribute=function(a){var a,b;b=this;return BH(b.BasicNode.Object.getAttribute($externalize(a,$String)));};DS.prototype.GetAttribute=function(a){return this.$val.GetAttribute(a);};DS.ptr.prototype.GetAttributeNS=function(a,b){var a,b,c;c=this;return BH(c.BasicNode.Object.getAttributeNS($externalize(a,$String),$externalize(b,$String)));};DS.prototype.GetAttributeNS=function(a,b){return this.$val.GetAttributeNS(a,b);};DS.ptr.prototype.GetElementsByClassName=function(a){var a,b;b=this;return BN(b.BasicNode.Object.getElementsByClassName($externalize(a,$String)));};DS.prototype.GetElementsByClassName=function(a){return this.$val.GetElementsByClassName(a);};DS.ptr.prototype.GetElementsByTagName=function(a){var a,b;b=this;return BN(b.BasicNode.Object.getElementsByTagName($externalize(a,$String)));};DS.prototype.GetElementsByTagName=function(a){return this.$val.GetElementsByTagName(a);};DS.ptr.prototype.GetElementsByTagNameNS=function(a,b){var a,b,c;c=this;return BN(c.BasicNode.Object.getElementsByTagNameNS($externalize(a,$String),$externalize(b,$String)));};DS.prototype.GetElementsByTagNameNS=function(a,b){return this.$val.GetElementsByTagNameNS(a,b);};DS.ptr.prototype.HasAttribute=function(a){var a,b;b=this;return!!(b.BasicNode.Object.hasAttribute($externalize(a,$String)));};DS.prototype.HasAttribute=function(a){return this.$val.HasAttribute(a);};DS.ptr.prototype.HasAttributeNS=function(a,b){var a,b,c;c=this;return!!(c.BasicNode.Object.hasAttributeNS($externalize(a,$String),$externalize(b,$String)));};DS.prototype.HasAttributeNS=function(a,b){return this.$val.HasAttributeNS(a,b);};DS.ptr.prototype.Matches=function(a){var a,b;b=this;return!!(b.BasicNode.Object.matches($externalize(a,$String)));};DS.prototype.Matches=function(a){return this.$val.Matches(a);};DS.ptr.prototype.QuerySelector=function(a){var a,b;b=this;return BX(b.BasicNode.Object.querySelector($externalize(a,$String)));};DS.prototype.QuerySelector=function(a){return this.$val.QuerySelector(a);};DS.ptr.prototype.QuerySelectorAll=function(a){var a,b;b=this;return BN(b.BasicNode.Object.querySelectorAll($externalize(a,$String)));};DS.prototype.QuerySelectorAll=function(a){return this.$val.QuerySelectorAll(a);};DS.ptr.prototype.RemoveAttribute=function(a){var a,b;b=this;b.BasicNode.Object.removeAttribute($externalize(a,$String));};DS.prototype.RemoveAttribute=function(a){return this.$val.RemoveAttribute(a);};DS.ptr.prototype.RemoveAttributeNS=function(a,b){var a,b,c;c=this;c.BasicNode.Object.removeAttributeNS($externalize(a,$String),$externalize(b,$String));};DS.prototype.RemoveAttributeNS=function(a,b){return this.$val.RemoveAttributeNS(a,b);};DS.ptr.prototype.SetAttribute=function(a,b){var a,b,c;c=this;c.BasicNode.Object.setAttribute($externalize(a,$String),$externalize(b,$String));};DS.prototype.SetAttribute=function(a,b){return this.$val.SetAttribute(a,b);};DS.ptr.prototype.SetAttributeNS=function(a,b,c){var a,b,c,d;d=this;d.BasicNode.Object.setAttributeNS($externalize(a,$String),$externalize(b,$String),$externalize(c,$String));};DS.prototype.SetAttributeNS=function(a,b,c){return this.$val.SetAttributeNS(a,b,c);};DS.ptr.prototype.InnerHTML=function(){var a;a=this;return $internalize(a.BasicNode.Object.innerHTML,$String);};DS.prototype.InnerHTML=function(){return this.$val.InnerHTML();};DS.ptr.prototype.SetInnerHTML=function(a){var a,b;b=this;b.BasicNode.Object.innerHTML=$externalize(a,$String);};DS.prototype.SetInnerHTML=function(a){return this.$val.SetInnerHTML(a);};DS.ptr.prototype.OuterHTML=function(){var a;a=this;return $internalize(a.BasicNode.Object.outerHTML,$String);};DS.prototype.OuterHTML=function(){return this.$val.OuterHTML();};DS.ptr.prototype.SetOuterHTML=function(a){var a,b;b=this;b.BasicNode.Object.outerHTML=$externalize(a,$String);};DS.prototype.SetOuterHTML=function(a){return this.$val.SetOuterHTML(a);};DT.ptr.prototype.Rel=function(){var a;a=this;return new CD.ptr(a.URLUtils.Object.relList,a.URLUtils.Object,"rel",0);};DT.prototype.Rel=function(){return this.$val.Rel();};DU.ptr.prototype.Rel=function(){var a;a=this;return new CD.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.relList,a.BasicHTMLElement.BasicElement.BasicNode.Object,"rel",0);};DU.prototype.Rel=function(){return this.$val.Rel();};DV.ptr.prototype.Rel=function(){var a;a=this;return new CD.ptr(a.URLUtils.Object.relList,a.URLUtils.Object,"rel",0);};DV.prototype.Rel=function(){return this.$val.Rel();};DY.ptr.prototype.Href=function(){var a;a=this;return $internalize(a.BasicHTMLElement.BasicElement.BasicNode.Object.href,$String);};DY.prototype.Href=function(){return this.$val.Href();};DY.ptr.prototype.Target=function(){var a;a=this;return $internalize(a.BasicHTMLElement.BasicElement.BasicNode.Object.target,$String);};DY.prototype.Target=function(){return this.$val.Target();};EA.ptr.prototype.Form=function(){var a;a=this;return BZ(a.BasicHTMLElement.BasicElement.BasicNode.Object);};EA.prototype.Form=function(){return this.$val.Form();};EA.ptr.prototype.Labels=function(){var a;a=this;return CA(a.BasicHTMLElement.BasicElement.BasicNode.Object);};EA.prototype.Labels=function(){return this.$val.Labels();};EA.ptr.prototype.Validity=function(){var a;a=this;return new GR.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.validity,false,false,false,false,false,false,false,false,false);};EA.prototype.Validity=function(){return this.$val.Validity();};EA.ptr.prototype.CheckValidity=function(){var a;a=this;return!!(a.BasicHTMLElement.BasicElement.BasicNode.Object.checkValidity());};EA.prototype.CheckValidity=function(){return this.$val.CheckValidity();};EA.ptr.prototype.SetCustomValidity=function(a){var a,b;b=this;b.BasicHTMLElement.BasicElement.BasicNode.Object.setCustomValidity($externalize(a,$String));};EA.prototype.SetCustomValidity=function(a){return this.$val.SetCustomValidity(a);};ED.ptr.prototype.ColorModel=function(){var a;a=this;return D.NRGBAModel;};ED.prototype.ColorModel=function(){return this.$val.ColorModel();};ED.ptr.prototype.Bounds=function(){var a;a=this;return C.Rect(0,0,$parseInt(a.Object.width)>>0,$parseInt(a.Object.height)>>0);};ED.prototype.Bounds=function(){return this.$val.Bounds();};ED.ptr.prototype.At=function(a,b){var a,b,c,d;c=this;return(d=c.NRGBAAt(a,b),new d.constructor.elem(d));};ED.prototype.At=function(a,b){return this.$val.At(a,b);};ED.ptr.prototype.NRGBAAt=function(a,b){var a,b,c,d;c=this;if(a<0||a>=($parseInt(c.Object.width)>>0)||b<0||b>=($parseInt(c.Object.height)>>0)){return new D.NRGBA.ptr(0,0,0,0);}d=$imul(((($imul(b,($parseInt(c.Object.width)>>0)))+a>>0)),4);return new D.NRGBA.ptr(((($parseInt(c.Object.data[(d+0>>0)])>>0)<<24>>>24)),((($parseInt(c.Object.data[(d+1>>0)])>>0)<<24>>>24)),((($parseInt(c.Object.data[(d+2>>0)])>>0)<<24>>>24)),((($parseInt(c.Object.data[(d+3>>0)])>>0)<<24>>>24)));};ED.prototype.NRGBAAt=function(a,b){return this.$val.NRGBAAt(a,b);};ED.ptr.prototype.Set=function(a,b,c){var{a,b,c,d,e,f,g,$s,$r,$c}=$restore(this,{a,b,c});$s=$s||0;s:while(true){switch($s){case 0:d=this;if(a<0||a>=($parseInt(d.Object.width)>>0)||b<0||b>=($parseInt(d.Object.height)>>0)){$s=-1;return;}e=D.NRGBAModel.Convert(c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=$clone($assertType(e,D.NRGBA),D.NRGBA);g=$imul(((($imul(b,($parseInt(d.Object.width)>>0)))+a>>0)),4);d.Object.data[(g+0>>0)]=f.R;d.Object.data[(g+1>>0)]=f.G;d.Object.data[(g+2>>0)]=f.B;d.Object.data[(g+3>>0)]=f.A;$s=-1;return;}return;}var $f={$blk:ED.ptr.prototype.Set,$c:true,$r,a,b,c,d,e,f,g,$s};return $f;};ED.prototype.Set=function(a,b,c){return this.$val.Set(a,b,c);};ED.ptr.prototype.SetNRGBA=function(a,b,c){var a,b,c,d,e;d=this;if(a<0||a>=($parseInt(d.Object.width)>>0)||b<0||b>=($parseInt(d.Object.height)>>0)){return;}e=$imul(((($imul(b,($parseInt(d.Object.width)>>0)))+a>>0)),4);d.Object.data[(e+0>>0)]=c.R;d.Object.data[(e+1>>0)]=c.G;d.Object.data[(e+2>>0)]=c.B;d.Object.data[(e+3>>0)]=c.A;};ED.prototype.SetNRGBA=function(a,b,c){return this.$val.SetNRGBA(a,b,c);};EE.ptr.prototype.AddColorStop=function(a,b){var a,b,c;c=this;c.Object.addColorStop(a,$externalize(b,$String));};EE.prototype.AddColorStop=function(a,b){return this.$val.AddColorStop(a,b);};EB.ptr.prototype.GetContext2d=function(){var a,b;a=this;b=a.GetContext("2d");return new EC.ptr(b,"","","",0,0,0,"","",0,0,"","","",0,"");};EB.prototype.GetContext2d=function(){return this.$val.GetContext2d();};EB.ptr.prototype.GetContext=function(a){var a,b;b=this;return b.BasicHTMLElement.BasicElement.BasicNode.Object.getContext($externalize(a,$String));};EB.prototype.GetContext=function(a){return this.$val.GetContext(a);};EC.ptr.prototype.ClearRect=function(a,b,c,d){var a,b,c,d,e;e=this;e.Object.clearRect(a,b,c,d);};EC.prototype.ClearRect=function(a,b,c,d){return this.$val.ClearRect(a,b,c,d);};EC.ptr.prototype.FillRect=function(a,b,c,d){var a,b,c,d,e;e=this;e.Object.fillRect(a,b,c,d);};EC.prototype.FillRect=function(a,b,c,d){return this.$val.FillRect(a,b,c,d);};EC.ptr.prototype.StrokeRect=function(a,b,c,d){var a,b,c,d,e;e=this;e.Object.strokeRect(a,b,c,d);};EC.prototype.StrokeRect=function(a,b,c,d){return this.$val.StrokeRect(a,b,c,d);};EC.ptr.prototype.FillText=function(a,b,c,d){var a,b,c,d,e;e=this;if(d===-1){e.Object.fillText($externalize(a,$String),b,c);return;}e.Object.fillText($externalize(a,$String),b,c,d);};EC.prototype.FillText=function(a,b,c,d){return this.$val.FillText(a,b,c,d);};EC.ptr.prototype.StrokeText=function(a,b,c,d){var a,b,c,d,e;e=this;if(d===-1){e.Object.strokeText($externalize(a,$String),b,c);return;}e.Object.strokeText($externalize(a,$String),b,c,d);};EC.prototype.StrokeText=function(a,b,c,d){return this.$val.StrokeText(a,b,c,d);};EC.ptr.prototype.MeasureText=function(a){var a,b,c;b=this;c=b.Object.measureText($externalize(a,$String));return new EG.ptr(c,0,0,0,0,0,0,0,0,0,0,0,0);};EC.prototype.MeasureText=function(a){return this.$val.MeasureText(a);};EC.ptr.prototype.GetLineDash=function(){var a,b,c,d,e;a=this;b=IA.nil;c=$assertType($internalize(a.Object.getLineDash(),$emptyInterface),GZ);d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);b=$append(b,$assertType(e,$Float64));d++;}return b;};EC.prototype.GetLineDash=function(){return this.$val.GetLineDash();};EC.ptr.prototype.SetLineDash=function(a){var a,b;b=this;b.Object.setLineDash($externalize(a,IA));};EC.prototype.SetLineDash=function(a){return this.$val.SetLineDash(a);};EC.ptr.prototype.CreateLinearGradient=function(a,b,c,d){var a,b,c,d,e;e=this;return new EE.ptr(e.Object.createLinearGradient(a,b,c,d));};EC.prototype.CreateLinearGradient=function(a,b,c,d){return this.$val.CreateLinearGradient(a,b,c,d);};EC.ptr.prototype.CreateRadialGradient=function(a,b,c,d,e,f){var a,b,c,d,e,f,g;g=this;return new EE.ptr(g.Object.createRadialGradient(a,b,c,d,e,f));};EC.prototype.CreateRadialGradient=function(a,b,c,d,e,f){return this.$val.CreateRadialGradient(a,b,c,d,e,f);};EC.ptr.prototype.CreatePattern=function(a,b){var a,b,c;c=this;return new EF.ptr(c.Object.createPattern($externalize(a,DN),$externalize(b,$String)));};EC.prototype.CreatePattern=function(a,b){return this.$val.CreatePattern(a,b);};EC.ptr.prototype.BeginPath=function(){var a;a=this;a.Object.beginPath();};EC.prototype.BeginPath=function(){return this.$val.BeginPath();};EC.ptr.prototype.ClosePath=function(){var a;a=this;a.Object.closePath();};EC.prototype.ClosePath=function(){return this.$val.ClosePath();};EC.ptr.prototype.MoveTo=function(a,b){var a,b,c;c=this;c.Object.moveTo(a,b);};EC.prototype.MoveTo=function(a,b){return this.$val.MoveTo(a,b);};EC.ptr.prototype.LineTo=function(a,b){var a,b,c;c=this;c.Object.lineTo(a,b);};EC.prototype.LineTo=function(a,b){return this.$val.LineTo(a,b);};EC.ptr.prototype.BezierCurveTo=function(a,b,c,d,e,f){var a,b,c,d,e,f,g;g=this;g.Object.bezierCurveTo(a,b,c,d,e,f);};EC.prototype.BezierCurveTo=function(a,b,c,d,e,f){return this.$val.BezierCurveTo(a,b,c,d,e,f);};EC.ptr.prototype.QuadraticCurveTo=function(a,b,c,d){var a,b,c,d,e;e=this;e.Object.quadraticCurveTo(a,b,c,d);};EC.prototype.QuadraticCurveTo=function(a,b,c,d){return this.$val.QuadraticCurveTo(a,b,c,d);};EC.ptr.prototype.Arc=function(a,b,c,d,e,f){var a,b,c,d,e,f,g;g=this;g.Object.arc(a,b,c,d,e,$externalize(f,$Bool));};EC.prototype.Arc=function(a,b,c,d,e,f){return this.$val.Arc(a,b,c,d,e,f);};EC.ptr.prototype.ArcTo=function(a,b,c,d,e){var a,b,c,d,e,f;f=this;f.Object.arcTo(a,b,c,d,e);};EC.prototype.ArcTo=function(a,b,c,d,e){return this.$val.ArcTo(a,b,c,d,e);};EC.ptr.prototype.Ellipse=function(a,b,c,d,e,f,g,h){var a,b,c,d,e,f,g,h,i;i=this;i.Object.ellipse(a,b,c,d,e,f,g,$externalize(h,$Bool));};EC.prototype.Ellipse=function(a,b,c,d,e,f,g,h){return this.$val.Ellipse(a,b,c,d,e,f,g,h);};EC.ptr.prototype.Rect=function(a,b,c,d){var a,b,c,d,e;e=this;e.Object.rect(a,b,c,d);};EC.prototype.Rect=function(a,b,c,d){return this.$val.Rect(a,b,c,d);};EC.ptr.prototype.Fill=function(){var a;a=this;a.Object.fill();};EC.prototype.Fill=function(){return this.$val.Fill();};EC.ptr.prototype.Stroke=function(){var a;a=this;a.Object.stroke();};EC.prototype.Stroke=function(){return this.$val.Stroke();};EC.ptr.prototype.DrawFocusIfNeeded=function(a,b){var a,b,c;c=this;c.Object.drawFocusIfNeeded($externalize(a,CM),b);};EC.prototype.DrawFocusIfNeeded=function(a,b){return this.$val.DrawFocusIfNeeded(a,b);};EC.ptr.prototype.ScrollPathIntoView=function(a){var a,b;b=this;b.Object.scrollPathIntoView(a);};EC.prototype.ScrollPathIntoView=function(a){return this.$val.ScrollPathIntoView(a);};EC.ptr.prototype.Clip=function(){var a;a=this;a.Object.clip();};EC.prototype.Clip=function(){return this.$val.Clip();};EC.ptr.prototype.IsPointInPath=function(a,b){var a,b,c;c=this;return!!(c.Object.isPointInPath(a,b));};EC.prototype.IsPointInPath=function(a,b){return this.$val.IsPointInPath(a,b);};EC.ptr.prototype.IsPointInStroke=function(a,b,c){var a,b,c,d;d=this;return!!(d.Object.isPointInStroke(a,b,c));};EC.prototype.IsPointInStroke=function(a,b,c){return this.$val.IsPointInStroke(a,b,c);};EC.ptr.prototype.Rotate=function(a){var a,b;b=this;b.Object.rotate(a);};EC.prototype.Rotate=function(a){return this.$val.Rotate(a);};EC.ptr.prototype.Scale=function(a,b){var a,b,c;c=this;c.Object.scale(a,b);};EC.prototype.Scale=function(a,b){return this.$val.Scale(a,b);};EC.ptr.prototype.Translate=function(a,b){var a,b,c;c=this;c.Object.translate(a,b);};EC.prototype.Translate=function(a,b){return this.$val.Translate(a,b);};EC.ptr.prototype.Transform=function(a,b,c,d,e,f){var a,b,c,d,e,f,g;g=this;g.Object.transform(a,b,c,d,e,f);};EC.prototype.Transform=function(a,b,c,d,e,f){return this.$val.Transform(a,b,c,d,e,f);};EC.ptr.prototype.SetTransform=function(a,b,c,d,e,f){var a,b,c,d,e,f,g;g=this;g.Object.setTransform(a,b,c,d,e,f);};EC.prototype.SetTransform=function(a,b,c,d,e,f){return this.$val.SetTransform(a,b,c,d,e,f);};EC.ptr.prototype.ResetTransform=function(){var a;a=this;a.Object.resetTransform();};EC.prototype.ResetTransform=function(){return this.$val.ResetTransform();};EC.ptr.prototype.DrawImage=function(a,b,c){var a,b,c,d;d=this;d.Object.drawImage($externalize(a,DN),b,c);};EC.prototype.DrawImage=function(a,b,c){return this.$val.DrawImage(a,b,c);};EC.ptr.prototype.DrawImageWithDst=function(a,b,c,d,e){var a,b,c,d,e,f;f=this;f.Object.drawImage($externalize(a,DN),b,c,d,e);};EC.prototype.DrawImageWithDst=function(a,b,c,d,e){return this.$val.DrawImageWithDst(a,b,c,d,e);};EC.ptr.prototype.DrawImageWithSrcAndDst=function(a,b,c,d,e,f,g,h,i){var a,b,c,d,e,f,g,h,i,j;j=this;j.Object.drawImage($externalize(a,DN),b,c,d,e,f,g,h,i);};EC.prototype.DrawImageWithSrcAndDst=function(a,b,c,d,e,f,g,h,i){return this.$val.DrawImageWithSrcAndDst(a,b,c,d,e,f,g,h,i);};EC.ptr.prototype.CreateImageData=function(a,b){var a,b,c;c=this;return new ED.ptr(c.Object.createImageData(a,b),0,0,null);};EC.prototype.CreateImageData=function(a,b){return this.$val.CreateImageData(a,b);};EC.ptr.prototype.GetImageData=function(a,b,c,d){var a,b,c,d,e;e=this;return new ED.ptr(e.Object.getImageData(a,b,c,d),0,0,null);};EC.prototype.GetImageData=function(a,b,c,d){return this.$val.GetImageData(a,b,c,d);};EC.ptr.prototype.PutImageData=function(a,b,c){var a,b,c,d;d=this;d.Object.putImageData($externalize(a,IB),b,c);};EC.prototype.PutImageData=function(a,b,c){return this.$val.PutImageData(a,b,c);};EC.ptr.prototype.PutImageDataDirty=function(a,b,c,d,e,f,g){var a,b,c,d,e,f,g,h;h=this;h.Object.putImageData($externalize(a,IB),b,c,d,e,f,g);};EC.prototype.PutImageDataDirty=function(a,b,c,d,e,f,g){return this.$val.PutImageDataDirty(a,b,c,d,e,f,g);};EC.ptr.prototype.Save=function(){var a;a=this;a.Object.save();};EC.prototype.Save=function(){return this.$val.Save();};EC.ptr.prototype.Restore=function(){var a;a=this;a.Object.restore();};EC.prototype.Restore=function(){return this.$val.Restore();};EJ.ptr.prototype.Options=function(){var a;a=this;return CB(a.BasicHTMLElement.BasicElement.BasicNode.Object,"options");};EJ.prototype.Options=function(){return this.$val.Options();};EN.ptr.prototype.Elements=function(){var a;a=this;return BO(a.BasicHTMLElement.BasicElement.BasicNode.Object.elements);};EN.prototype.Elements=function(){return this.$val.Elements();};EN.ptr.prototype.Form=function(){var a;a=this;return BZ(a.BasicHTMLElement.BasicElement.BasicNode.Object);};EN.prototype.Form=function(){return this.$val.Form();};EN.ptr.prototype.Validity=function(){var a;a=this;return new GR.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.validity,false,false,false,false,false,false,false,false,false);};EN.prototype.Validity=function(){return this.$val.Validity();};EN.ptr.prototype.CheckValidity=function(){var a;a=this;return!!(a.BasicHTMLElement.BasicElement.BasicNode.Object.checkValidity());};EN.prototype.CheckValidity=function(){return this.$val.CheckValidity();};EN.ptr.prototype.SetCustomValidity=function(a){var a,b;b=this;b.BasicHTMLElement.BasicElement.BasicNode.Object.setCustomValidity($externalize(a,$String));};EN.prototype.SetCustomValidity=function(a){return this.$val.SetCustomValidity(a);};EP.ptr.prototype.Elements=function(){var a;a=this;return BO(a.BasicHTMLElement.BasicElement.BasicNode.Object.elements);};EP.prototype.Elements=function(){return this.$val.Elements();};EP.ptr.prototype.CheckValidity=function(){var a;a=this;return!!(a.BasicHTMLElement.BasicElement.BasicNode.Object.checkValidity());};EP.prototype.CheckValidity=function(){return this.$val.CheckValidity();};EP.ptr.prototype.Submit=function(){var a;a=this;a.BasicHTMLElement.BasicElement.BasicNode.Object.submit();};EP.prototype.Submit=function(){return this.$val.Submit();};EP.ptr.prototype.Reset=function(){var a;a=this;a.BasicHTMLElement.BasicElement.BasicNode.Object.reset();};EP.prototype.Reset=function(){return this.$val.Reset();};EP.ptr.prototype.Item=function(a){var a,b;b=this;return BY(b.BasicHTMLElement.BasicElement.BasicNode.Object.item(a));};EP.prototype.Item=function(a){return this.$val.Item(a);};EP.ptr.prototype.NamedItem=function(a){var a,b;b=this;return BY(b.BasicHTMLElement.BasicElement.BasicNode.Object.namedItem($externalize(a,$String)));};EP.prototype.NamedItem=function(a){return this.$val.NamedItem(a);};EW.ptr.prototype.ContentDocument=function(){var a;a=this;return BU(a.BasicHTMLElement.BasicElement.BasicNode.Object.contentDocument);};EW.prototype.ContentDocument=function(){return this.$val.ContentDocument();};EW.ptr.prototype.ContentWindow=function(){var a;a=this;return new CQ.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.contentWindow);};EW.prototype.ContentWindow=function(){return this.$val.ContentWindow();};EY.ptr.prototype.Files=function(){var a,b,c,d,e,f;a=this;b=a.BasicHTMLElement.BasicElement.BasicNode.Object.files;c=$makeSlice(ID,($parseInt(b.length)>>0));d=c;e=0;while(true){if(!(e=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=new EZ.ptr(b.item(f)));e++;}return c;};EY.prototype.Files=function(){return this.$val.Files();};EY.ptr.prototype.List=function(){var a,b;a=this;b=BY(a.BasicHTMLElement.BasicElement.BasicNode.Object.list);if($interfaceIsEqual(b,$ifaceNil)){return IE.nil;}return $assertType(b,IE);};EY.prototype.List=function(){return this.$val.List();};EY.ptr.prototype.Labels=function(){var a;a=this;return CA(a.BasicHTMLElement.BasicElement.BasicNode.Object);};EY.prototype.Labels=function(){return this.$val.Labels();};EY.ptr.prototype.Form=function(){var a;a=this;return BZ(a.BasicHTMLElement.BasicElement.BasicNode.Object);};EY.prototype.Form=function(){return this.$val.Form();};EY.ptr.prototype.Validity=function(){var a;a=this;return new GR.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.validity,false,false,false,false,false,false,false,false,false);};EY.prototype.Validity=function(){return this.$val.Validity();};EY.ptr.prototype.CheckValidity=function(){var a;a=this;return!!(a.BasicHTMLElement.BasicElement.BasicNode.Object.checkValidity());};EY.prototype.CheckValidity=function(){return this.$val.CheckValidity();};EY.ptr.prototype.SetCustomValidity=function(a){var a,b;b=this;b.BasicHTMLElement.BasicElement.BasicNode.Object.setCustomValidity($externalize(a,$String));};EY.prototype.SetCustomValidity=function(a){return this.$val.SetCustomValidity(a);};EY.ptr.prototype.Select=function(){var a;a=this;a.BasicHTMLElement.BasicElement.BasicNode.Object.select();};EY.prototype.Select=function(){return this.$val.Select();};EY.ptr.prototype.SetSelectionRange=function(a,b,c){var a,b,c,d;d=this;d.BasicHTMLElement.BasicElement.BasicNode.Object.setSelectionRange(a,b,$externalize(c,$String));};EY.prototype.SetSelectionRange=function(a,b,c){return this.$val.SetSelectionRange(a,b,c);};EY.ptr.prototype.StepDown=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BI(b.BasicHTMLElement.BasicElement.BasicNode.Object,"stepDown",new GZ([new $Int(a)]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EY.ptr.prototype.StepDown,$c:true,$r,a,b,c,d,$s};return $f;};EY.prototype.StepDown=function(a){return this.$val.StepDown(a);};EY.ptr.prototype.StepUp=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=this;c=BI(b.BasicHTMLElement.BasicElement.BasicNode.Object,"stepUp",new GZ([new $Int(a)]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$s=2;case 2:return d;}return;}var $f={$blk:EY.ptr.prototype.StepUp,$c:true,$r,a,b,c,d,$s};return $f;};EY.prototype.StepUp=function(a){return this.$val.StepUp(a);};FA.ptr.prototype.Form=function(){var a;a=this;return BZ(a.BasicHTMLElement.BasicElement.BasicNode.Object);};FA.prototype.Form=function(){return this.$val.Form();};FA.ptr.prototype.Labels=function(){var a;a=this;return CA(a.BasicHTMLElement.BasicElement.BasicNode.Object);};FA.prototype.Labels=function(){return this.$val.Labels();};FA.ptr.prototype.Validity=function(){var a;a=this;return new GR.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.validity,false,false,false,false,false,false,false,false,false);};FA.prototype.Validity=function(){return this.$val.Validity();};FA.ptr.prototype.CheckValidity=function(){var a;a=this;return!!(a.BasicHTMLElement.BasicElement.BasicNode.Object.checkValidity());};FA.prototype.CheckValidity=function(){return this.$val.CheckValidity();};FA.ptr.prototype.SetCustomValidity=function(a){var a,b;b=this;b.BasicHTMLElement.BasicElement.BasicNode.Object.setCustomValidity($externalize(a,$String));};FA.prototype.SetCustomValidity=function(a){return this.$val.SetCustomValidity(a);};FC.ptr.prototype.Control=function(){var a;a=this;return BY(a.BasicHTMLElement.BasicElement.BasicNode.Object.control);};FC.prototype.Control=function(){return this.$val.Control();};FC.ptr.prototype.Form=function(){var a;a=this;return BZ(a.BasicHTMLElement.BasicElement.BasicNode.Object);};FC.prototype.Form=function(){return this.$val.Form();};FD.ptr.prototype.Form=function(){var a;a=this;return BZ(a.BasicHTMLElement.BasicElement.BasicNode.Object);};FD.prototype.Form=function(){return this.$val.Form();};FE.ptr.prototype.Rel=function(){var a;a=this;return new CD.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.relList,a.BasicHTMLElement.BasicElement.BasicNode.Object,"rel",0);};FE.prototype.Rel=function(){return this.$val.Rel();};FE.ptr.prototype.Sizes=function(){var a;a=this;return new CD.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.sizes,a.BasicHTMLElement.BasicElement.BasicNode.Object,"",0);};FE.prototype.Sizes=function(){return this.$val.Sizes();};FE.ptr.prototype.Sheet=function(){var a;a=this;$panic(new $String("not implemented"));};FE.prototype.Sheet=function(){return this.$val.Sheet();};FF.ptr.prototype.Areas=function(){var a,b,c,d,e,f,g;a=this;b=BN(a.BasicHTMLElement.BasicElement.BasicNode.Object.areas);c=$makeSlice(IG,b.$length);d=b;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=$assertType(g,IF));e++;}return c;};FF.prototype.Areas=function(){return this.$val.Areas();};FF.ptr.prototype.Images=function(){var a;a=this;return BO(a.BasicHTMLElement.BasicElement.BasicNode.Object.areas);};FF.prototype.Images=function(){return this.$val.Images();};FG.ptr.prototype.Play=function(){var a;a=this;a.BasicHTMLElement.BasicElement.BasicNode.Object.play();};FG.prototype.Play=function(){return this.$val.Play();};FG.ptr.prototype.Pause=function(){var a;a=this;a.BasicHTMLElement.BasicElement.BasicNode.Object.pause();};FG.prototype.Pause=function(){return this.$val.Pause();};FJ.ptr.prototype.Labels=function(){var a;a=this;return CA(a.BasicHTMLElement.BasicElement.BasicNode.Object);};FJ.prototype.Labels=function(){return this.$val.Labels();};FM.ptr.prototype.Form=function(){var a;a=this;return BZ(a.BasicHTMLElement.BasicElement.BasicNode.Object);};FM.prototype.Form=function(){return this.$val.Form();};FM.ptr.prototype.ContentDocument=function(){var a;a=this;return BU(a.BasicHTMLElement.BasicElement.BasicNode.Object.contentDocument);};FM.prototype.ContentDocument=function(){return this.$val.ContentDocument();};FM.ptr.prototype.ContentWindow=function(){var a;a=this;return new CQ.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.contentWindow);};FM.prototype.ContentWindow=function(){return this.$val.ContentWindow();};FM.ptr.prototype.Validity=function(){var a;a=this;return new GR.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.validity,false,false,false,false,false,false,false,false,false);};FM.prototype.Validity=function(){return this.$val.Validity();};FM.ptr.prototype.CheckValidity=function(){var a;a=this;return!!(a.BasicHTMLElement.BasicElement.BasicNode.Object.checkValidity());};FM.prototype.CheckValidity=function(){return this.$val.CheckValidity();};FM.ptr.prototype.SetCustomValidity=function(a){var a,b;b=this;b.BasicHTMLElement.BasicElement.BasicNode.Object.setCustomValidity($externalize(a,$String));};FM.prototype.SetCustomValidity=function(a){return this.$val.SetCustomValidity(a);};FO.ptr.prototype.Form=function(){var a;a=this;return BZ(a.BasicHTMLElement.BasicElement.BasicNode.Object);};FO.prototype.Form=function(){return this.$val.Form();};FP.ptr.prototype.Form=function(){var a;a=this;return BZ(a.BasicHTMLElement.BasicElement.BasicNode.Object);};FP.prototype.Form=function(){return this.$val.Form();};FP.ptr.prototype.Labels=function(){var a;a=this;return CA(a.BasicHTMLElement.BasicElement.BasicNode.Object);};FP.prototype.Labels=function(){return this.$val.Labels();};FP.ptr.prototype.Validity=function(){var a;a=this;return new GR.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.validity,false,false,false,false,false,false,false,false,false);};FP.prototype.Validity=function(){return this.$val.Validity();};FP.ptr.prototype.For=function(){var a;a=this;return new CD.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.htmlFor,a.BasicHTMLElement.BasicElement.BasicNode.Object,"",0);};FP.prototype.For=function(){return this.$val.For();};FP.ptr.prototype.CheckValidity=function(){var a;a=this;return!!(a.BasicHTMLElement.BasicElement.BasicNode.Object.checkValidity());};FP.prototype.CheckValidity=function(){return this.$val.CheckValidity();};FP.ptr.prototype.SetCustomValidity=function(a){var a,b;b=this;b.BasicHTMLElement.BasicElement.BasicNode.Object.setCustomValidity($externalize(a,$String));};FP.prototype.SetCustomValidity=function(a){return this.$val.SetCustomValidity(a);};FT.ptr.prototype.Labels=function(){var a;a=this;return CA(a.BasicHTMLElement.BasicElement.BasicNode.Object);};FT.prototype.Labels=function(){return this.$val.Labels();};FW.ptr.prototype.Labels=function(){var a;a=this;return CA(a.BasicHTMLElement.BasicElement.BasicNode.Object);};FW.prototype.Labels=function(){return this.$val.Labels();};FW.ptr.prototype.Form=function(){var a;a=this;return BZ(a.BasicHTMLElement.BasicElement.BasicNode.Object);};FW.prototype.Form=function(){return this.$val.Form();};FW.ptr.prototype.Options=function(){var a;a=this;return CB(a.BasicHTMLElement.BasicElement.BasicNode.Object,"options");};FW.prototype.Options=function(){return this.$val.Options();};FW.ptr.prototype.SelectedOptions=function(){var a;a=this;return CB(a.BasicHTMLElement.BasicElement.BasicNode.Object,"selectedOptions");};FW.prototype.SelectedOptions=function(){return this.$val.SelectedOptions();};FW.ptr.prototype.Item=function(a){var a,b,c;b=this;c=BY(b.BasicHTMLElement.BasicElement.BasicNode.Object.item(a));if($interfaceIsEqual(c,$ifaceNil)){return HM.nil;}return $assertType(c,HM);};FW.prototype.Item=function(a){return this.$val.Item(a);};FW.ptr.prototype.NamedItem=function(a){var a,b,c;b=this;c=BY(b.BasicHTMLElement.BasicElement.BasicNode.Object.namedItem($externalize(a,$String)));if($interfaceIsEqual(c,$ifaceNil)){return HM.nil;}return $assertType(c,HM);};FW.prototype.NamedItem=function(a){return this.$val.NamedItem(a);};FW.ptr.prototype.Validity=function(){var a;a=this;return new GR.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.validity,false,false,false,false,false,false,false,false,false);};FW.prototype.Validity=function(){return this.$val.Validity();};FW.ptr.prototype.CheckValidity=function(){var a;a=this;return!!(a.BasicHTMLElement.BasicElement.BasicNode.Object.checkValidity());};FW.prototype.CheckValidity=function(){return this.$val.CheckValidity();};FW.ptr.prototype.SetCustomValidity=function(a){var a,b;b=this;b.BasicHTMLElement.BasicElement.BasicNode.Object.setCustomValidity($externalize(a,$String));};FW.prototype.SetCustomValidity=function(a){return this.$val.SetCustomValidity(a);};GG.ptr.prototype.Cells=function(){var a,b,c,d,e,f,g;a=this;b=BN(a.BasicHTMLElement.BasicElement.BasicNode.Object.cells);c=$makeSlice(II,b.$length);d=b;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=$assertType(g,IH));e++;}return c;};GG.prototype.Cells=function(){return this.$val.Cells();};GG.ptr.prototype.InsertCell=function(a){var a,b;b=this;return $assertType(BY(b.BasicHTMLElement.BasicElement.BasicNode.Object.insertCell(a)),IH);};GG.prototype.InsertCell=function(a){return this.$val.InsertCell(a);};GG.ptr.prototype.DeleteCell=function(a){var a,b;b=this;b.BasicHTMLElement.BasicElement.BasicNode.Object.deleteCell(a);};GG.prototype.DeleteCell=function(a){return this.$val.DeleteCell(a);};GH.ptr.prototype.Rows=function(){var a,b,c,d,e,f,g;a=this;b=BN(a.BasicHTMLElement.BasicElement.BasicNode.Object.rows);c=$makeSlice(IK,b.$length);d=b;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=$assertType(g,IJ));e++;}return c;};GH.prototype.Rows=function(){return this.$val.Rows();};GH.ptr.prototype.DeleteRow=function(a){var a,b;b=this;b.BasicHTMLElement.BasicElement.BasicNode.Object.deleteRow(a);};GH.prototype.DeleteRow=function(a){return this.$val.DeleteRow(a);};GH.ptr.prototype.InsertRow=function(a){var a,b;b=this;return $assertType(BY(b.BasicHTMLElement.BasicElement.BasicNode.Object.insertRow(a)),IJ);};GH.prototype.InsertRow=function(a){return this.$val.InsertRow(a);};GI.ptr.prototype.Content=function(){var a;a=this;return BV(a.BasicHTMLElement.BasicElement.BasicNode.Object.content);};GI.prototype.Content=function(){return this.$val.Content();};GJ.ptr.prototype.Form=function(){var a;a=this;return BZ(a.BasicHTMLElement.BasicElement.BasicNode.Object);};GJ.prototype.Form=function(){return this.$val.Form();};GJ.ptr.prototype.Labels=function(){var a;a=this;return CA(a.BasicHTMLElement.BasicElement.BasicNode.Object);};GJ.prototype.Labels=function(){return this.$val.Labels();};GJ.ptr.prototype.Validity=function(){var a;a=this;return new GR.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.validity,false,false,false,false,false,false,false,false,false);};GJ.prototype.Validity=function(){return this.$val.Validity();};GJ.ptr.prototype.CheckValidity=function(){var a;a=this;return!!(a.BasicHTMLElement.BasicElement.BasicNode.Object.checkValidity());};GJ.prototype.CheckValidity=function(){return this.$val.CheckValidity();};GJ.ptr.prototype.SetCustomValidity=function(a){var a,b;b=this;b.BasicHTMLElement.BasicElement.BasicNode.Object.setCustomValidity($externalize(a,$String));};GJ.prototype.SetCustomValidity=function(a){return this.$val.SetCustomValidity(a);};GJ.ptr.prototype.Select=function(){var a;a=this;a.BasicHTMLElement.BasicElement.BasicNode.Object.select();};GJ.prototype.Select=function(){return this.$val.Select();};GJ.ptr.prototype.SetSelectionRange=function(a,b,c){var a,b,c,d;d=this;d.BasicHTMLElement.BasicElement.BasicNode.Object.setSelectionRange(a,b,$externalize(c,$String));};GJ.prototype.SetSelectionRange=function(a,b,c){return this.$val.SetSelectionRange(a,b,c);};GN.ptr.prototype.Track=function(){var a;a=this;return new GM.ptr(a.BasicHTMLElement.BasicElement.BasicNode.Object.track);};GN.prototype.Track=function(){return this.$val.Track();};GS.ptr.prototype.ToMap=function(){var a,b,c,d,e,f,g;a=this;b=new $global.Map();c=$parseInt(a.Object.length)>>0;d=0;while(true){if(!(d>0;}return b;};GS.prototype.ToMap=function(){return this.$val.ToMap();};GS.ptr.prototype.RemoveProperty=function(a){var a,b;b=this;b.Object.removeProperty($externalize(a,$String));};GS.prototype.RemoveProperty=function(a){return this.$val.RemoveProperty(a);};GS.ptr.prototype.GetPropertyValue=function(a){var a,b;b=this;return BH(b.Object.getPropertyValue($externalize(a,$String)));};GS.prototype.GetPropertyValue=function(a){return this.$val.GetPropertyValue(a);};GS.ptr.prototype.GetPropertyPriority=function(a){var a,b;b=this;return BH(b.Object.getPropertyPriority($externalize(a,$String)));};GS.prototype.GetPropertyPriority=function(a){return this.$val.GetPropertyPriority(a);};GS.ptr.prototype.SetProperty=function(a,b,c){var a,b,c,d;d=this;d.Object.setProperty($externalize(a,$String),$externalize(b,$String),$externalize(c,$String));};GS.prototype.SetProperty=function(a,b,c){return this.$val.SetProperty(a,b,c);};GS.ptr.prototype.Index=function(a){var a,b;b=this;return $internalize(b.Object.index(a),$String);};GS.prototype.Index=function(a){return this.$val.Index(a);};GS.ptr.prototype.Length=function(){var a;a=this;return $parseInt(a.Object.length)>>0;};GS.prototype.Length=function(){return this.$val.Length();};GU.methods=[{prop:"Bubbles",name:"Bubbles",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Cancelable",name:"Cancelable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"CurrentTarget",name:"CurrentTarget",pkg:"",typ:$funcType([],[DN],false)},{prop:"DefaultPrevented",name:"DefaultPrevented",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"EventPhase",name:"EventPhase",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Target",name:"Target",pkg:"",typ:$funcType([],[DN],false)},{prop:"Timestamp",name:"Timestamp",pkg:"",typ:$funcType([],[A.Time],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[$String],false)},{prop:"PreventDefault",name:"PreventDefault",pkg:"",typ:$funcType([],[],false)},{prop:"StopImmediatePropagation",name:"StopImmediatePropagation",pkg:"",typ:$funcType([],[],false)},{prop:"StopPropagation",name:"StopPropagation",pkg:"",typ:$funcType([],[],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[HA],false)}];IL.methods=[{prop:"RelatedTarget",name:"RelatedTarget",pkg:"",typ:$funcType([],[DN],false)}];IM.methods=[{prop:"ModifierState",name:"ModifierState",pkg:"",typ:$funcType([$String],[$Bool],false)}];GW.methods=[{prop:"RelatedTarget",name:"RelatedTarget",pkg:"",typ:$funcType([],[DN],false)},{prop:"ModifierState",name:"ModifierState",pkg:"",typ:$funcType([$String],[$Bool],false)}];IN.methods=[{prop:"ChangedTouches",name:"ChangedTouches",pkg:"",typ:$funcType([],[GY],false)},{prop:"TargetTouches",name:"TargetTouches",pkg:"",typ:$funcType([],[GY],false)},{prop:"Touches",name:"Touches",pkg:"",typ:$funcType([],[GY],false)}];GX.methods=[{prop:"Target",name:"Target",pkg:"",typ:$funcType([],[DN],false)}];IP.methods=[{prop:"Item",name:"Item",pkg:"",typ:$funcType([$Int],[$String],false)},{prop:"Contains",name:"Contains",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"Add",name:"Add",pkg:"",typ:$funcType([$String],[],false)},{prop:"Remove",name:"Remove",pkg:"",typ:$funcType([$String],[],false)},{prop:"Toggle",name:"Toggle",pkg:"",typ:$funcType([$String],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Slice",name:"Slice",pkg:"",typ:$funcType([],[HO],false)},{prop:"SetString",name:"SetString",pkg:"",typ:$funcType([$String],[],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([HO],[],false)}];CH.methods=[{prop:"GetElementByID",name:"GetElementByID",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"QuerySelector",name:"QuerySelector",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"QuerySelectorAll",name:"QuerySelectorAll",pkg:"",typ:$funcType([$String],[HD],false)}];CI.methods=[{prop:"Async",name:"Async",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"SetAsync",name:"SetAsync",pkg:"",typ:$funcType([$Bool],[],false)},{prop:"Doctype",name:"Doctype",pkg:"",typ:$funcType([],[DH],false)},{prop:"DocumentElement",name:"DocumentElement",pkg:"",typ:$funcType([],[DN],false)},{prop:"DocumentURI",name:"DocumentURI",pkg:"",typ:$funcType([],[$String],false)},{prop:"Implementation",name:"Implementation",pkg:"",typ:$funcType([],[DI],false)},{prop:"LastStyleSheetSet",name:"LastStyleSheetSet",pkg:"",typ:$funcType([],[$String],false)},{prop:"PreferredStyleSheetSet",name:"PreferredStyleSheetSet",pkg:"",typ:$funcType([],[$String],false)},{prop:"SelectedStyleSheetSet",name:"SelectedStyleSheetSet",pkg:"",typ:$funcType([],[$String],false)},{prop:"StyleSheets",name:"StyleSheets",pkg:"",typ:$funcType([],[IQ],false)},{prop:"StyleSheetSets",name:"StyleSheetSets",pkg:"",typ:$funcType([],[IQ],false)},{prop:"AdoptNode",name:"AdoptNode",pkg:"",typ:$funcType([DL],[DL],false)},{prop:"ImportNode",name:"ImportNode",pkg:"",typ:$funcType([DL,$Bool],[DL],false)},{prop:"CreateDocumentFragment",name:"CreateDocumentFragment",pkg:"",typ:$funcType([],[CF],false)},{prop:"CreateElement",name:"CreateElement",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"CreateElementNS",name:"CreateElementNS",pkg:"",typ:$funcType([$String,$String],[DN],false)},{prop:"CreateTextNode",name:"CreateTextNode",pkg:"",typ:$funcType([$String],[HX],false)},{prop:"ElementFromPoint",name:"ElementFromPoint",pkg:"",typ:$funcType([$Int,$Int],[DN],false)},{prop:"EnableStyleSheetsForSet",name:"EnableStyleSheetsForSet",pkg:"",typ:$funcType([$String],[],false)},{prop:"GetElementsByClassName",name:"GetElementsByClassName",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"GetElementsByTagName",name:"GetElementsByTagName",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"GetElementsByTagNameNS",name:"GetElementsByTagNameNS",pkg:"",typ:$funcType([$String,$String],[HD],false)},{prop:"GetElementByID",name:"GetElementByID",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"QuerySelector",name:"QuerySelector",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"QuerySelectorAll",name:"QuerySelectorAll",pkg:"",typ:$funcType([$String],[HD],false)}];IU.methods=[{prop:"ActiveElement",name:"ActiveElement",pkg:"",typ:$funcType([],[CM],false)},{prop:"Body",name:"Body",pkg:"",typ:$funcType([],[CM],false)},{prop:"Cookie",name:"Cookie",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetCookie",name:"SetCookie",pkg:"",typ:$funcType([$String],[],false)},{prop:"DefaultView",name:"DefaultView",pkg:"",typ:$funcType([],[CP],false)},{prop:"DesignMode",name:"DesignMode",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"SetDesignMode",name:"SetDesignMode",pkg:"",typ:$funcType([$Bool],[],false)},{prop:"Domain",name:"Domain",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetDomain",name:"SetDomain",pkg:"",typ:$funcType([$String],[],false)},{prop:"Forms",name:"Forms",pkg:"",typ:$funcType([],[HP],false)},{prop:"Head",name:"Head",pkg:"",typ:$funcType([],[HQ],false)},{prop:"Images",name:"Images",pkg:"",typ:$funcType([],[HS],false)},{prop:"LastModified",name:"LastModified",pkg:"",typ:$funcType([],[A.Time],false)},{prop:"Links",name:"Links",pkg:"",typ:$funcType([],[HE],false)},{prop:"Location",name:"Location",pkg:"",typ:$funcType([],[IR],false)},{prop:"Plugins",name:"Plugins",pkg:"",typ:$funcType([],[HU],false)},{prop:"ReadyState",name:"ReadyState",pkg:"",typ:$funcType([],[$String],false)},{prop:"Referrer",name:"Referrer",pkg:"",typ:$funcType([],[$String],false)},{prop:"Scripts",name:"Scripts",pkg:"",typ:$funcType([],[HW],false)},{prop:"Title",name:"Title",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetTitle",name:"SetTitle",pkg:"",typ:$funcType([$String],[],false)},{prop:"URL",name:"URL",pkg:"",typ:$funcType([],[$String],false)}];JA.methods=[{prop:"Console",name:"Console",pkg:"",typ:$funcType([],[IX],false)},{prop:"Document",name:"Document",pkg:"",typ:$funcType([],[CE],false)},{prop:"FrameElement",name:"FrameElement",pkg:"",typ:$funcType([],[DN],false)},{prop:"Location",name:"Location",pkg:"",typ:$funcType([],[IR],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetName",name:"SetName",pkg:"",typ:$funcType([$String],[],false)},{prop:"InnerHeight",name:"InnerHeight",pkg:"",typ:$funcType([],[$Int],false)},{prop:"InnerWidth",name:"InnerWidth",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Length",name:"Length",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Opener",name:"Opener",pkg:"",typ:$funcType([],[CP],false)},{prop:"OuterHeight",name:"OuterHeight",pkg:"",typ:$funcType([],[$Int],false)},{prop:"OuterWidth",name:"OuterWidth",pkg:"",typ:$funcType([],[$Int],false)},{prop:"ScrollX",name:"ScrollX",pkg:"",typ:$funcType([],[$Int],false)},{prop:"ScrollY",name:"ScrollY",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Parent",name:"Parent",pkg:"",typ:$funcType([],[CP],false)},{prop:"ScreenX",name:"ScreenX",pkg:"",typ:$funcType([],[$Int],false)},{prop:"ScreenY",name:"ScreenY",pkg:"",typ:$funcType([],[$Int],false)},{prop:"ScrollMaxX",name:"ScrollMaxX",pkg:"",typ:$funcType([],[$Int],false)},{prop:"ScrollMaxY",name:"ScrollMaxY",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Top",name:"Top",pkg:"",typ:$funcType([],[CP],false)},{prop:"History",name:"History",pkg:"",typ:$funcType([],[DE],false)},{prop:"Navigator",name:"Navigator",pkg:"",typ:$funcType([],[CU],false)},{prop:"Screen",name:"Screen",pkg:"",typ:$funcType([],[IZ],false)},{prop:"Alert",name:"Alert",pkg:"",typ:$funcType([$String],[],false)},{prop:"Back",name:"Back",pkg:"",typ:$funcType([],[],false)},{prop:"Blur",name:"Blur",pkg:"",typ:$funcType([],[],false)},{prop:"ClearInterval",name:"ClearInterval",pkg:"",typ:$funcType([$Int],[],false)},{prop:"ClearTimeout",name:"ClearTimeout",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[],false)},{prop:"Confirm",name:"Confirm",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"Focus",name:"Focus",pkg:"",typ:$funcType([],[],false)},{prop:"Forward",name:"Forward",pkg:"",typ:$funcType([],[],false)},{prop:"GetComputedStyle",name:"GetComputedStyle",pkg:"",typ:$funcType([DN,$String],[IW],false)},{prop:"GetSelection",name:"GetSelection",pkg:"",typ:$funcType([],[CS],false)},{prop:"Home",name:"Home",pkg:"",typ:$funcType([],[],false)},{prop:"MoveBy",name:"MoveBy",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"MoveTo",name:"MoveTo",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"Open",name:"Open",pkg:"",typ:$funcType([$String,$String,$String],[CP],false)},{prop:"OpenDialog",name:"OpenDialog",pkg:"",typ:$funcType([$String,$String,$String,GZ],[CP],false)},{prop:"PostMessage",name:"PostMessage",pkg:"",typ:$funcType([$String,$String,GZ],[],false)},{prop:"Print",name:"Print",pkg:"",typ:$funcType([],[],false)},{prop:"Prompt",name:"Prompt",pkg:"",typ:$funcType([$String,$String],[$String],false)},{prop:"ResizeBy",name:"ResizeBy",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"ResizeTo",name:"ResizeTo",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"Scroll",name:"Scroll",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"ScrollBy",name:"ScrollBy",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"ScrollByLines",name:"ScrollByLines",pkg:"",typ:$funcType([$Int],[],false)},{prop:"ScrollTo",name:"ScrollTo",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"SetCursor",name:"SetCursor",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetInterval",name:"SetInterval",pkg:"",typ:$funcType([HY,$Int],[$Int],false)},{prop:"SetTimeout",name:"SetTimeout",pkg:"",typ:$funcType([HY,$Int],[$Int],false)},{prop:"Stop",name:"Stop",pkg:"",typ:$funcType([],[],false)},{prop:"AddEventListener",name:"AddEventListener",pkg:"",typ:$funcType([$String,$Bool,IO],[HZ],false)},{prop:"RemoveEventListener",name:"RemoveEventListener",pkg:"",typ:$funcType([$String,$Bool,HZ],[],false)},{prop:"DispatchEvent",name:"DispatchEvent",pkg:"",typ:$funcType([H],[$Bool],false)},{prop:"RequestAnimationFrame",name:"RequestAnimationFrame",pkg:"",typ:$funcType([IY],[$Int],false)},{prop:"CancelAnimationFrame",name:"CancelAnimationFrame",pkg:"",typ:$funcType([$Int],[],false)}];JD.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];IS.methods=[{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[HA],false)},{prop:"AddEventListener",name:"AddEventListener",pkg:"",typ:$funcType([$String,$Bool,IO],[HZ],false)},{prop:"RemoveEventListener",name:"RemoveEventListener",pkg:"",typ:$funcType([$String,$Bool,HZ],[],false)},{prop:"DispatchEvent",name:"DispatchEvent",pkg:"",typ:$funcType([H],[$Bool],false)},{prop:"BaseURI",name:"BaseURI",pkg:"",typ:$funcType([],[$String],false)},{prop:"ChildNodes",name:"ChildNodes",pkg:"",typ:$funcType([],[HC],false)},{prop:"FirstChild",name:"FirstChild",pkg:"",typ:$funcType([],[DL],false)},{prop:"LastChild",name:"LastChild",pkg:"",typ:$funcType([],[DL],false)},{prop:"NextSibling",name:"NextSibling",pkg:"",typ:$funcType([],[DL],false)},{prop:"NodeName",name:"NodeName",pkg:"",typ:$funcType([],[$String],false)},{prop:"NodeType",name:"NodeType",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NodeValue",name:"NodeValue",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetNodeValue",name:"SetNodeValue",pkg:"",typ:$funcType([$String],[],false)},{prop:"OwnerDocument",name:"OwnerDocument",pkg:"",typ:$funcType([],[CE],false)},{prop:"ParentNode",name:"ParentNode",pkg:"",typ:$funcType([],[DL],false)},{prop:"ParentElement",name:"ParentElement",pkg:"",typ:$funcType([],[DN],false)},{prop:"PreviousSibling",name:"PreviousSibling",pkg:"",typ:$funcType([],[DL],false)},{prop:"TextContent",name:"TextContent",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetTextContent",name:"SetTextContent",pkg:"",typ:$funcType([$String],[],false)},{prop:"AppendChild",name:"AppendChild",pkg:"",typ:$funcType([DL],[],false)},{prop:"CloneNode",name:"CloneNode",pkg:"",typ:$funcType([$Bool],[DL],false)},{prop:"CompareDocumentPosition",name:"CompareDocumentPosition",pkg:"",typ:$funcType([DL],[$Int],false)},{prop:"Contains",name:"Contains",pkg:"",typ:$funcType([DL],[$Bool],false)},{prop:"HasChildNodes",name:"HasChildNodes",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"InsertBefore",name:"InsertBefore",pkg:"",typ:$funcType([DL,DL],[],false)},{prop:"IsDefaultNamespace",name:"IsDefaultNamespace",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"IsEqualNode",name:"IsEqualNode",pkg:"",typ:$funcType([DL],[$Bool],false)},{prop:"LookupPrefix",name:"LookupPrefix",pkg:"",typ:$funcType([],[$String],false)},{prop:"LookupNamespaceURI",name:"LookupNamespaceURI",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"Normalize",name:"Normalize",pkg:"",typ:$funcType([],[],false)},{prop:"RemoveChild",name:"RemoveChild",pkg:"",typ:$funcType([DL],[],false)},{prop:"ReplaceChild",name:"ReplaceChild",pkg:"",typ:$funcType([DL,DL],[],false)}];HF.methods=[{prop:"AccessKey",name:"AccessKey",pkg:"",typ:$funcType([],[$String],false)},{prop:"Dataset",name:"Dataset",pkg:"",typ:$funcType([],[IV],false)},{prop:"SetAccessKey",name:"SetAccessKey",pkg:"",typ:$funcType([$String],[],false)},{prop:"AccessKeyLabel",name:"AccessKeyLabel",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetAccessKeyLabel",name:"SetAccessKeyLabel",pkg:"",typ:$funcType([$String],[],false)},{prop:"ContentEditable",name:"ContentEditable",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetContentEditable",name:"SetContentEditable",pkg:"",typ:$funcType([$String],[],false)},{prop:"IsContentEditable",name:"IsContentEditable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Dir",name:"Dir",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetDir",name:"SetDir",pkg:"",typ:$funcType([$String],[],false)},{prop:"Draggable",name:"Draggable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"SetDraggable",name:"SetDraggable",pkg:"",typ:$funcType([$Bool],[],false)},{prop:"Lang",name:"Lang",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetLang",name:"SetLang",pkg:"",typ:$funcType([$String],[],false)},{prop:"OffsetHeight",name:"OffsetHeight",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"OffsetLeft",name:"OffsetLeft",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"OffsetParent",name:"OffsetParent",pkg:"",typ:$funcType([],[CM],false)},{prop:"OffsetTop",name:"OffsetTop",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"OffsetWidth",name:"OffsetWidth",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Style",name:"Style",pkg:"",typ:$funcType([],[IW],false)},{prop:"TabIndex",name:"TabIndex",pkg:"",typ:$funcType([],[$Int],false)},{prop:"SetTabIndex",name:"SetTabIndex",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Title",name:"Title",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetTitle",name:"SetTitle",pkg:"",typ:$funcType([$String],[],false)},{prop:"Blur",name:"Blur",pkg:"",typ:$funcType([],[],false)},{prop:"Click",name:"Click",pkg:"",typ:$funcType([],[],false)},{prop:"Focus",name:"Focus",pkg:"",typ:$funcType([],[],false)}];JF.methods=[{prop:"Attributes",name:"Attributes",pkg:"",typ:$funcType([],[IV],false)},{prop:"GetBoundingClientRect",name:"GetBoundingClientRect",pkg:"",typ:$funcType([],[DO],false)},{prop:"PreviousElementSibling",name:"PreviousElementSibling",pkg:"",typ:$funcType([],[DN],false)},{prop:"NextElementSibling",name:"NextElementSibling",pkg:"",typ:$funcType([],[DN],false)},{prop:"Class",name:"Class",pkg:"",typ:$funcType([],[IP],false)},{prop:"SetClass",name:"SetClass",pkg:"",typ:$funcType([$String],[],false)},{prop:"Closest",name:"Closest",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"ID",name:"ID",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetID",name:"SetID",pkg:"",typ:$funcType([$String],[],false)},{prop:"TagName",name:"TagName",pkg:"",typ:$funcType([],[$String],false)},{prop:"GetAttribute",name:"GetAttribute",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"GetAttributeNS",name:"GetAttributeNS",pkg:"",typ:$funcType([$String,$String],[$String],false)},{prop:"GetElementsByClassName",name:"GetElementsByClassName",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"GetElementsByTagName",name:"GetElementsByTagName",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"GetElementsByTagNameNS",name:"GetElementsByTagNameNS",pkg:"",typ:$funcType([$String,$String],[HD],false)},{prop:"HasAttribute",name:"HasAttribute",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"HasAttributeNS",name:"HasAttributeNS",pkg:"",typ:$funcType([$String,$String],[$Bool],false)},{prop:"Matches",name:"Matches",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"QuerySelector",name:"QuerySelector",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"QuerySelectorAll",name:"QuerySelectorAll",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"RemoveAttribute",name:"RemoveAttribute",pkg:"",typ:$funcType([$String],[],false)},{prop:"RemoveAttributeNS",name:"RemoveAttributeNS",pkg:"",typ:$funcType([$String,$String],[],false)},{prop:"SetAttribute",name:"SetAttribute",pkg:"",typ:$funcType([$String,$String],[],false)},{prop:"SetAttributeNS",name:"SetAttributeNS",pkg:"",typ:$funcType([$String,$String,$String],[],false)},{prop:"InnerHTML",name:"InnerHTML",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetInnerHTML",name:"SetInnerHTML",pkg:"",typ:$funcType([$String],[],false)},{prop:"OuterHTML",name:"OuterHTML",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetOuterHTML",name:"SetOuterHTML",pkg:"",typ:$funcType([$String],[],false)}];JG.methods=[{prop:"Rel",name:"Rel",pkg:"",typ:$funcType([],[IP],false)}];JH.methods=[{prop:"Rel",name:"Rel",pkg:"",typ:$funcType([],[IP],false)}];IF.methods=[{prop:"Rel",name:"Rel",pkg:"",typ:$funcType([],[IP],false)}];JI.methods=[{prop:"Href",name:"Href",pkg:"",typ:$funcType([],[$String],false)},{prop:"Target",name:"Target",pkg:"",typ:$funcType([],[$String],false)}];JK.methods=[{prop:"Form",name:"Form",pkg:"",typ:$funcType([],[HJ],false)},{prop:"Labels",name:"Labels",pkg:"",typ:$funcType([],[HL],false)},{prop:"Validity",name:"Validity",pkg:"",typ:$funcType([],[JJ],false)},{prop:"CheckValidity",name:"CheckValidity",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"SetCustomValidity",name:"SetCustomValidity",pkg:"",typ:$funcType([$String],[],false)}];JM.methods=[{prop:"GetContext2d",name:"GetContext2d",pkg:"",typ:$funcType([],[JL],false)},{prop:"GetContext",name:"GetContext",pkg:"",typ:$funcType([$String],[HA],false)}];JL.methods=[{prop:"ClearRect",name:"ClearRect",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64],[],false)},{prop:"FillRect",name:"FillRect",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64],[],false)},{prop:"StrokeRect",name:"StrokeRect",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64],[],false)},{prop:"FillText",name:"FillText",pkg:"",typ:$funcType([$String,$Float64,$Float64,$Float64],[],false)},{prop:"StrokeText",name:"StrokeText",pkg:"",typ:$funcType([$String,$Float64,$Float64,$Float64],[],false)},{prop:"MeasureText",name:"MeasureText",pkg:"",typ:$funcType([$String],[JN],false)},{prop:"GetLineDash",name:"GetLineDash",pkg:"",typ:$funcType([],[IA],false)},{prop:"SetLineDash",name:"SetLineDash",pkg:"",typ:$funcType([IA],[],false)},{prop:"CreateLinearGradient",name:"CreateLinearGradient",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64],[JO],false)},{prop:"CreateRadialGradient",name:"CreateRadialGradient",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64,$Float64,$Float64],[JO],false)},{prop:"CreatePattern",name:"CreatePattern",pkg:"",typ:$funcType([DN,$String],[JP],false)},{prop:"BeginPath",name:"BeginPath",pkg:"",typ:$funcType([],[],false)},{prop:"ClosePath",name:"ClosePath",pkg:"",typ:$funcType([],[],false)},{prop:"MoveTo",name:"MoveTo",pkg:"",typ:$funcType([$Float64,$Float64],[],false)},{prop:"LineTo",name:"LineTo",pkg:"",typ:$funcType([$Float64,$Float64],[],false)},{prop:"BezierCurveTo",name:"BezierCurveTo",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64,$Float64,$Float64],[],false)},{prop:"QuadraticCurveTo",name:"QuadraticCurveTo",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64],[],false)},{prop:"Arc",name:"Arc",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64,$Float64,$Bool],[],false)},{prop:"ArcTo",name:"ArcTo",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64,$Float64],[],false)},{prop:"Ellipse",name:"Ellipse",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64,$Float64,$Float64,$Float64,$Bool],[],false)},{prop:"Rect",name:"Rect",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64],[],false)},{prop:"Fill",name:"Fill",pkg:"",typ:$funcType([],[],false)},{prop:"Stroke",name:"Stroke",pkg:"",typ:$funcType([],[],false)},{prop:"DrawFocusIfNeeded",name:"DrawFocusIfNeeded",pkg:"",typ:$funcType([CM,HA],[],false)},{prop:"ScrollPathIntoView",name:"ScrollPathIntoView",pkg:"",typ:$funcType([HA],[],false)},{prop:"Clip",name:"Clip",pkg:"",typ:$funcType([],[],false)},{prop:"IsPointInPath",name:"IsPointInPath",pkg:"",typ:$funcType([$Float64,$Float64],[$Bool],false)},{prop:"IsPointInStroke",name:"IsPointInStroke",pkg:"",typ:$funcType([HA,$Float64,$Float64],[$Bool],false)},{prop:"Rotate",name:"Rotate",pkg:"",typ:$funcType([$Float64],[],false)},{prop:"Scale",name:"Scale",pkg:"",typ:$funcType([$Float64,$Float64],[],false)},{prop:"Translate",name:"Translate",pkg:"",typ:$funcType([$Float64,$Float64],[],false)},{prop:"Transform",name:"Transform",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64,$Float64,$Float64],[],false)},{prop:"SetTransform",name:"SetTransform",pkg:"",typ:$funcType([$Float64,$Float64,$Float64,$Float64,$Float64,$Float64],[],false)},{prop:"ResetTransform",name:"ResetTransform",pkg:"",typ:$funcType([],[],false)},{prop:"DrawImage",name:"DrawImage",pkg:"",typ:$funcType([DN,$Float64,$Float64],[],false)},{prop:"DrawImageWithDst",name:"DrawImageWithDst",pkg:"",typ:$funcType([DN,$Float64,$Float64,$Float64,$Float64],[],false)},{prop:"DrawImageWithSrcAndDst",name:"DrawImageWithSrcAndDst",pkg:"",typ:$funcType([DN,$Float64,$Float64,$Float64,$Float64,$Float64,$Float64,$Float64,$Float64],[],false)},{prop:"CreateImageData",name:"CreateImageData",pkg:"",typ:$funcType([$Int,$Int],[IB],false)},{prop:"GetImageData",name:"GetImageData",pkg:"",typ:$funcType([$Int,$Int,$Int,$Int],[IB],false)},{prop:"PutImageData",name:"PutImageData",pkg:"",typ:$funcType([IB,$Float64,$Float64],[],false)},{prop:"PutImageDataDirty",name:"PutImageDataDirty",pkg:"",typ:$funcType([IB,$Float64,$Float64,$Int,$Int,$Int,$Int],[],false)},{prop:"Save",name:"Save",pkg:"",typ:$funcType([],[],false)},{prop:"Restore",name:"Restore",pkg:"",typ:$funcType([],[],false)}];IB.methods=[{prop:"ColorModel",name:"ColorModel",pkg:"",typ:$funcType([],[D.Model],false)},{prop:"Bounds",name:"Bounds",pkg:"",typ:$funcType([],[C.Rectangle],false)},{prop:"At",name:"At",pkg:"",typ:$funcType([$Int,$Int],[D.Color],false)},{prop:"NRGBAAt",name:"NRGBAAt",pkg:"",typ:$funcType([$Int,$Int],[D.NRGBA],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([$Int,$Int,D.Color],[],false)},{prop:"SetNRGBA",name:"SetNRGBA",pkg:"",typ:$funcType([$Int,$Int,D.NRGBA],[],false)}];JO.methods=[{prop:"AddColorStop",name:"AddColorStop",pkg:"",typ:$funcType([$Float64,$String],[],false)}];IE.methods=[{prop:"Options",name:"Options",pkg:"",typ:$funcType([],[HN],false)}];JQ.methods=[{prop:"Elements",name:"Elements",pkg:"",typ:$funcType([],[HE],false)},{prop:"Form",name:"Form",pkg:"",typ:$funcType([],[HJ],false)},{prop:"Validity",name:"Validity",pkg:"",typ:$funcType([],[JJ],false)},{prop:"CheckValidity",name:"CheckValidity",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"SetCustomValidity",name:"SetCustomValidity",pkg:"",typ:$funcType([$String],[],false)}];HJ.methods=[{prop:"Elements",name:"Elements",pkg:"",typ:$funcType([],[HE],false)},{prop:"CheckValidity",name:"CheckValidity",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Submit",name:"Submit",pkg:"",typ:$funcType([],[],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([],[],false)},{prop:"Item",name:"Item",pkg:"",typ:$funcType([$Int],[CM],false)},{prop:"NamedItem",name:"NamedItem",pkg:"",typ:$funcType([$String],[CM],false)}];JR.methods=[{prop:"ContentDocument",name:"ContentDocument",pkg:"",typ:$funcType([],[CE],false)},{prop:"ContentWindow",name:"ContentWindow",pkg:"",typ:$funcType([],[CP],false)}];JS.methods=[{prop:"Files",name:"Files",pkg:"",typ:$funcType([],[ID],false)},{prop:"List",name:"List",pkg:"",typ:$funcType([],[IE],false)},{prop:"Labels",name:"Labels",pkg:"",typ:$funcType([],[HL],false)},{prop:"Form",name:"Form",pkg:"",typ:$funcType([],[HJ],false)},{prop:"Validity",name:"Validity",pkg:"",typ:$funcType([],[JJ],false)},{prop:"CheckValidity",name:"CheckValidity",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"SetCustomValidity",name:"SetCustomValidity",pkg:"",typ:$funcType([$String],[],false)},{prop:"Select",name:"Select",pkg:"",typ:$funcType([],[],false)},{prop:"SetSelectionRange",name:"SetSelectionRange",pkg:"",typ:$funcType([$Int,$Int,$String],[],false)},{prop:"StepDown",name:"StepDown",pkg:"",typ:$funcType([$Int],[$error],false)},{prop:"StepUp",name:"StepUp",pkg:"",typ:$funcType([$Int],[$error],false)}];JT.methods=[{prop:"Form",name:"Form",pkg:"",typ:$funcType([],[HJ],false)},{prop:"Labels",name:"Labels",pkg:"",typ:$funcType([],[HL],false)},{prop:"Validity",name:"Validity",pkg:"",typ:$funcType([],[JJ],false)},{prop:"CheckValidity",name:"CheckValidity",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"SetCustomValidity",name:"SetCustomValidity",pkg:"",typ:$funcType([$String],[],false)}];HK.methods=[{prop:"Control",name:"Control",pkg:"",typ:$funcType([],[CM],false)},{prop:"Form",name:"Form",pkg:"",typ:$funcType([],[HJ],false)}];JU.methods=[{prop:"Form",name:"Form",pkg:"",typ:$funcType([],[HJ],false)}];JV.methods=[{prop:"Rel",name:"Rel",pkg:"",typ:$funcType([],[IP],false)},{prop:"Sizes",name:"Sizes",pkg:"",typ:$funcType([],[IP],false)},{prop:"Sheet",name:"Sheet",pkg:"",typ:$funcType([],[DJ],false)}];JW.methods=[{prop:"Areas",name:"Areas",pkg:"",typ:$funcType([],[IG],false)},{prop:"Images",name:"Images",pkg:"",typ:$funcType([],[HE],false)}];HH.methods=[{prop:"Play",name:"Play",pkg:"",typ:$funcType([],[],false)},{prop:"Pause",name:"Pause",pkg:"",typ:$funcType([],[],false)}];FJ.methods=[{prop:"Labels",name:"Labels",pkg:"",typ:$funcType([],[HL],false)}];JX.methods=[{prop:"Form",name:"Form",pkg:"",typ:$funcType([],[HJ],false)},{prop:"ContentDocument",name:"ContentDocument",pkg:"",typ:$funcType([],[CE],false)},{prop:"ContentWindow",name:"ContentWindow",pkg:"",typ:$funcType([],[CP],false)},{prop:"Validity",name:"Validity",pkg:"",typ:$funcType([],[JJ],false)},{prop:"CheckValidity",name:"CheckValidity",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"SetCustomValidity",name:"SetCustomValidity",pkg:"",typ:$funcType([$String],[],false)}];HM.methods=[{prop:"Form",name:"Form",pkg:"",typ:$funcType([],[HJ],false)}];JY.methods=[{prop:"Form",name:"Form",pkg:"",typ:$funcType([],[HJ],false)},{prop:"Labels",name:"Labels",pkg:"",typ:$funcType([],[HL],false)},{prop:"Validity",name:"Validity",pkg:"",typ:$funcType([],[JJ],false)},{prop:"For",name:"For",pkg:"",typ:$funcType([],[IP],false)},{prop:"CheckValidity",name:"CheckValidity",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"SetCustomValidity",name:"SetCustomValidity",pkg:"",typ:$funcType([$String],[],false)}];FT.methods=[{prop:"Labels",name:"Labels",pkg:"",typ:$funcType([],[HL],false)}];JZ.methods=[{prop:"Labels",name:"Labels",pkg:"",typ:$funcType([],[HL],false)},{prop:"Form",name:"Form",pkg:"",typ:$funcType([],[HJ],false)},{prop:"Options",name:"Options",pkg:"",typ:$funcType([],[HN],false)},{prop:"SelectedOptions",name:"SelectedOptions",pkg:"",typ:$funcType([],[HN],false)},{prop:"Item",name:"Item",pkg:"",typ:$funcType([$Int],[HM],false)},{prop:"NamedItem",name:"NamedItem",pkg:"",typ:$funcType([$String],[HM],false)},{prop:"Validity",name:"Validity",pkg:"",typ:$funcType([],[JJ],false)},{prop:"CheckValidity",name:"CheckValidity",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"SetCustomValidity",name:"SetCustomValidity",pkg:"",typ:$funcType([$String],[],false)}];IJ.methods=[{prop:"Cells",name:"Cells",pkg:"",typ:$funcType([],[II],false)},{prop:"InsertCell",name:"InsertCell",pkg:"",typ:$funcType([$Int],[IH],false)},{prop:"DeleteCell",name:"DeleteCell",pkg:"",typ:$funcType([$Int],[],false)}];KA.methods=[{prop:"Rows",name:"Rows",pkg:"",typ:$funcType([],[IK],false)},{prop:"DeleteRow",name:"DeleteRow",pkg:"",typ:$funcType([$Int],[],false)},{prop:"InsertRow",name:"InsertRow",pkg:"",typ:$funcType([$Int],[IJ],false)}];KB.methods=[{prop:"Content",name:"Content",pkg:"",typ:$funcType([],[CF],false)}];KC.methods=[{prop:"Form",name:"Form",pkg:"",typ:$funcType([],[HJ],false)},{prop:"Labels",name:"Labels",pkg:"",typ:$funcType([],[HL],false)},{prop:"Validity",name:"Validity",pkg:"",typ:$funcType([],[JJ],false)},{prop:"CheckValidity",name:"CheckValidity",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"SetCustomValidity",name:"SetCustomValidity",pkg:"",typ:$funcType([$String],[],false)},{prop:"Select",name:"Select",pkg:"",typ:$funcType([],[],false)},{prop:"SetSelectionRange",name:"SetSelectionRange",pkg:"",typ:$funcType([$Int,$Int,$String],[],false)}];KE.methods=[{prop:"Track",name:"Track",pkg:"",typ:$funcType([],[KD],false)}];IW.methods=[{prop:"ToMap",name:"ToMap",pkg:"",typ:$funcType([],[IV],false)},{prop:"RemoveProperty",name:"RemoveProperty",pkg:"",typ:$funcType([$String],[],false)},{prop:"GetPropertyValue",name:"GetPropertyValue",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"GetPropertyPriority",name:"GetPropertyPriority",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"SetProperty",name:"SetProperty",pkg:"",typ:$funcType([$String,$String,$String],[],false)},{prop:"Index",name:"Index",pkg:"",typ:$funcType([$Int],[$String],false)},{prop:"Length",name:"Length",pkg:"",typ:$funcType([],[$Int],false)}];H.init([{prop:"Bubbles",name:"Bubbles",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Cancelable",name:"Cancelable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"CurrentTarget",name:"CurrentTarget",pkg:"",typ:$funcType([],[DN],false)},{prop:"DefaultPrevented",name:"DefaultPrevented",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"EventPhase",name:"EventPhase",pkg:"",typ:$funcType([],[$Int],false)},{prop:"PreventDefault",name:"PreventDefault",pkg:"",typ:$funcType([],[],false)},{prop:"StopImmediatePropagation",name:"StopImmediatePropagation",pkg:"",typ:$funcType([],[],false)},{prop:"StopPropagation",name:"StopPropagation",pkg:"",typ:$funcType([],[],false)},{prop:"Target",name:"Target",pkg:"",typ:$funcType([],[DN],false)},{prop:"Timestamp",name:"Timestamp",pkg:"",typ:$funcType([],[A.Time],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[$String],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[HA],false)}]);I.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""}]);L.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);M.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);N.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);O.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);P.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);Q.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);R.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""},{prop:"Code",name:"Code",embedded:false,exported:true,typ:$Int,tag:"js:\"code\""},{prop:"Reason",name:"Reason",embedded:false,exported:true,typ:$String,tag:"js:\"reason\""},{prop:"WasClean",name:"WasClean",embedded:false,exported:true,typ:$Bool,tag:"js:\"wasClean\""}]);S.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);T.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);U.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);V.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);W.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);X.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);Y.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);Z.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AA.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AB.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AC.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AD.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AE.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AF.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AG.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AH.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""},{prop:"AltKey",name:"AltKey",embedded:false,exported:true,typ:$Bool,tag:"js:\"altKey\""},{prop:"CharCode",name:"CharCode",embedded:false,exported:true,typ:$Int,tag:"js:\"charCode\""},{prop:"CtrlKey",name:"CtrlKey",embedded:false,exported:true,typ:$Bool,tag:"js:\"ctrlKey\""},{prop:"Key",name:"Key",embedded:false,exported:true,typ:$String,tag:"js:\"key\""},{prop:"KeyIdentifier",name:"KeyIdentifier",embedded:false,exported:true,typ:$String,tag:"js:\"keyIdentifier\""},{prop:"KeyCode",name:"KeyCode",embedded:false,exported:true,typ:$Int,tag:"js:\"keyCode\""},{prop:"Locale",name:"Locale",embedded:false,exported:true,typ:$String,tag:"js:\"locale\""},{prop:"Location",name:"Location",embedded:false,exported:true,typ:$Int,tag:"js:\"location\""},{prop:"KeyLocation",name:"KeyLocation",embedded:false,exported:true,typ:$Int,tag:"js:\"keyLocation\""},{prop:"MetaKey",name:"MetaKey",embedded:false,exported:true,typ:$Bool,tag:"js:\"metaKey\""},{prop:"Repeat",name:"Repeat",embedded:false,exported:true,typ:$Bool,tag:"js:\"repeat\""},{prop:"ShiftKey",name:"ShiftKey",embedded:false,exported:true,typ:$Bool,tag:"js:\"shiftKey\""}]);AI.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AJ.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""},{prop:"Data",name:"Data",embedded:false,exported:true,typ:HA,tag:"js:\"data\""}]);AK.init("",[{prop:"UIEvent",name:"UIEvent",embedded:true,exported:true,typ:GV,tag:""},{prop:"AltKey",name:"AltKey",embedded:false,exported:true,typ:$Bool,tag:"js:\"altKey\""},{prop:"Button",name:"Button",embedded:false,exported:true,typ:$Int,tag:"js:\"button\""},{prop:"ClientX",name:"ClientX",embedded:false,exported:true,typ:$Int,tag:"js:\"clientX\""},{prop:"ClientY",name:"ClientY",embedded:false,exported:true,typ:$Int,tag:"js:\"clientY\""},{prop:"CtrlKey",name:"CtrlKey",embedded:false,exported:true,typ:$Bool,tag:"js:\"ctrlKey\""},{prop:"MetaKey",name:"MetaKey",embedded:false,exported:true,typ:$Bool,tag:"js:\"metaKey\""},{prop:"MovementX",name:"MovementX",embedded:false,exported:true,typ:$Int,tag:"js:\"movementX\""},{prop:"MovementY",name:"MovementY",embedded:false,exported:true,typ:$Int,tag:"js:\"movementY\""},{prop:"ScreenX",name:"ScreenX",embedded:false,exported:true,typ:$Int,tag:"js:\"screenX\""},{prop:"ScreenY",name:"ScreenY",embedded:false,exported:true,typ:$Int,tag:"js:\"screenY\""},{prop:"ShiftKey",name:"ShiftKey",embedded:false,exported:true,typ:$Bool,tag:"js:\"shiftKey\""}]);AL.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AM.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AN.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AO.init("",[{prop:"MouseEvent",name:"MouseEvent",embedded:true,exported:true,typ:GW,tag:""}]);AP.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AQ.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AR.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AS.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AT.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AU.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AV.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AW.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AX.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);AY.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""},{prop:"AltKey",name:"AltKey",embedded:false,exported:true,typ:$Bool,tag:"js:\"altKey\""},{prop:"CtrlKey",name:"CtrlKey",embedded:false,exported:true,typ:$Bool,tag:"js:\"ctrlKey\""},{prop:"MetaKey",name:"MetaKey",embedded:false,exported:true,typ:$Bool,tag:"js:\"metaKey\""},{prop:"ShiftKey",name:"ShiftKey",embedded:false,exported:true,typ:$Bool,tag:"js:\"shiftKey\""}]);BA.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""},{prop:"Identifier",name:"Identifier",embedded:false,exported:true,typ:$Int,tag:"js:\"identifier\""},{prop:"ScreenX",name:"ScreenX",embedded:false,exported:true,typ:$Float64,tag:"js:\"screenX\""},{prop:"ScreenY",name:"ScreenY",embedded:false,exported:true,typ:$Float64,tag:"js:\"screenY\""},{prop:"ClientX",name:"ClientX",embedded:false,exported:true,typ:$Float64,tag:"js:\"clientX\""},{prop:"ClientY",name:"ClientY",embedded:false,exported:true,typ:$Float64,tag:"js:\"clientY\""},{prop:"PageX",name:"PageX",embedded:false,exported:true,typ:$Float64,tag:"js:\"pageX\""},{prop:"PageY",name:"PageY",embedded:false,exported:true,typ:$Float64,tag:"js:\"pageY\""},{prop:"RadiusX",name:"RadiusX",embedded:false,exported:true,typ:$Float64,tag:"js:\"radiusX\""},{prop:"RadiusY",name:"RadiusY",embedded:false,exported:true,typ:$Float64,tag:"js:\"radiusY\""},{prop:"RotationAngle",name:"RotationAngle",embedded:false,exported:true,typ:$Float64,tag:"js:\"rotationAngle\""},{prop:"Force",name:"Force",embedded:false,exported:true,typ:$Float64,tag:"js:\"force\""}]);BB.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);BC.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);BD.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);BE.init("",[{prop:"BasicEvent",name:"BasicEvent",embedded:true,exported:true,typ:GU,tag:""}]);BF.init("",[{prop:"MouseEvent",name:"MouseEvent",embedded:true,exported:true,typ:GW,tag:""},{prop:"DeltaX",name:"DeltaX",embedded:false,exported:true,typ:$Float64,tag:"js:\"deltaX\""},{prop:"DeltaY",name:"DeltaY",embedded:false,exported:true,typ:$Float64,tag:"js:\"deltaY\""},{prop:"DeltaZ",name:"DeltaZ",embedded:false,exported:true,typ:$Float64,tag:"js:\"deltaZ\""},{prop:"DeltaMode",name:"DeltaMode",embedded:false,exported:true,typ:$Int,tag:"js:\"deltaMode\""}]);CD.init("honnef.co/go/js/dom",[{prop:"dtl",name:"dtl",embedded:false,exported:false,typ:HA,tag:""},{prop:"o",name:"o",embedded:false,exported:false,typ:HA,tag:""},{prop:"sa",name:"sa",embedded:false,exported:false,typ:$String,tag:""},{prop:"Length",name:"Length",embedded:false,exported:true,typ:$Int,tag:"js:\"length\""}]);CE.init([{prop:"AddEventListener",name:"AddEventListener",pkg:"",typ:$funcType([$String,$Bool,IO],[HZ],false)},{prop:"AdoptNode",name:"AdoptNode",pkg:"",typ:$funcType([DL],[DL],false)},{prop:"AppendChild",name:"AppendChild",pkg:"",typ:$funcType([DL],[],false)},{prop:"Async",name:"Async",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"BaseURI",name:"BaseURI",pkg:"",typ:$funcType([],[$String],false)},{prop:"ChildNodes",name:"ChildNodes",pkg:"",typ:$funcType([],[HC],false)},{prop:"CloneNode",name:"CloneNode",pkg:"",typ:$funcType([$Bool],[DL],false)},{prop:"CompareDocumentPosition",name:"CompareDocumentPosition",pkg:"",typ:$funcType([DL],[$Int],false)},{prop:"Contains",name:"Contains",pkg:"",typ:$funcType([DL],[$Bool],false)},{prop:"CreateDocumentFragment",name:"CreateDocumentFragment",pkg:"",typ:$funcType([],[CF],false)},{prop:"CreateElement",name:"CreateElement",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"CreateElementNS",name:"CreateElementNS",pkg:"",typ:$funcType([$String,$String],[DN],false)},{prop:"CreateTextNode",name:"CreateTextNode",pkg:"",typ:$funcType([$String],[HX],false)},{prop:"DispatchEvent",name:"DispatchEvent",pkg:"",typ:$funcType([H],[$Bool],false)},{prop:"Doctype",name:"Doctype",pkg:"",typ:$funcType([],[DH],false)},{prop:"DocumentElement",name:"DocumentElement",pkg:"",typ:$funcType([],[DN],false)},{prop:"DocumentURI",name:"DocumentURI",pkg:"",typ:$funcType([],[$String],false)},{prop:"ElementFromPoint",name:"ElementFromPoint",pkg:"",typ:$funcType([$Int,$Int],[DN],false)},{prop:"EnableStyleSheetsForSet",name:"EnableStyleSheetsForSet",pkg:"",typ:$funcType([$String],[],false)},{prop:"FirstChild",name:"FirstChild",pkg:"",typ:$funcType([],[DL],false)},{prop:"GetElementByID",name:"GetElementByID",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"GetElementsByClassName",name:"GetElementsByClassName",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"GetElementsByTagName",name:"GetElementsByTagName",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"GetElementsByTagNameNS",name:"GetElementsByTagNameNS",pkg:"",typ:$funcType([$String,$String],[HD],false)},{prop:"HasChildNodes",name:"HasChildNodes",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Implementation",name:"Implementation",pkg:"",typ:$funcType([],[DI],false)},{prop:"ImportNode",name:"ImportNode",pkg:"",typ:$funcType([DL,$Bool],[DL],false)},{prop:"InsertBefore",name:"InsertBefore",pkg:"",typ:$funcType([DL,DL],[],false)},{prop:"IsDefaultNamespace",name:"IsDefaultNamespace",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"IsEqualNode",name:"IsEqualNode",pkg:"",typ:$funcType([DL],[$Bool],false)},{prop:"LastChild",name:"LastChild",pkg:"",typ:$funcType([],[DL],false)},{prop:"LastStyleSheetSet",name:"LastStyleSheetSet",pkg:"",typ:$funcType([],[$String],false)},{prop:"LookupNamespaceURI",name:"LookupNamespaceURI",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"LookupPrefix",name:"LookupPrefix",pkg:"",typ:$funcType([],[$String],false)},{prop:"NextSibling",name:"NextSibling",pkg:"",typ:$funcType([],[DL],false)},{prop:"NodeName",name:"NodeName",pkg:"",typ:$funcType([],[$String],false)},{prop:"NodeType",name:"NodeType",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NodeValue",name:"NodeValue",pkg:"",typ:$funcType([],[$String],false)},{prop:"Normalize",name:"Normalize",pkg:"",typ:$funcType([],[],false)},{prop:"OwnerDocument",name:"OwnerDocument",pkg:"",typ:$funcType([],[CE],false)},{prop:"ParentElement",name:"ParentElement",pkg:"",typ:$funcType([],[DN],false)},{prop:"ParentNode",name:"ParentNode",pkg:"",typ:$funcType([],[DL],false)},{prop:"PreferredStyleSheetSet",name:"PreferredStyleSheetSet",pkg:"",typ:$funcType([],[$String],false)},{prop:"PreviousSibling",name:"PreviousSibling",pkg:"",typ:$funcType([],[DL],false)},{prop:"QuerySelector",name:"QuerySelector",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"QuerySelectorAll",name:"QuerySelectorAll",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"RemoveChild",name:"RemoveChild",pkg:"",typ:$funcType([DL],[],false)},{prop:"RemoveEventListener",name:"RemoveEventListener",pkg:"",typ:$funcType([$String,$Bool,HZ],[],false)},{prop:"ReplaceChild",name:"ReplaceChild",pkg:"",typ:$funcType([DL,DL],[],false)},{prop:"SelectedStyleSheetSet",name:"SelectedStyleSheetSet",pkg:"",typ:$funcType([],[$String],false)},{prop:"SetAsync",name:"SetAsync",pkg:"",typ:$funcType([$Bool],[],false)},{prop:"SetNodeValue",name:"SetNodeValue",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetTextContent",name:"SetTextContent",pkg:"",typ:$funcType([$String],[],false)},{prop:"StyleSheetSets",name:"StyleSheetSets",pkg:"",typ:$funcType([],[IQ],false)},{prop:"StyleSheets",name:"StyleSheets",pkg:"",typ:$funcType([],[IQ],false)},{prop:"TextContent",name:"TextContent",pkg:"",typ:$funcType([],[$String],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[HA],false)}]);CF.init([{prop:"AddEventListener",name:"AddEventListener",pkg:"",typ:$funcType([$String,$Bool,IO],[HZ],false)},{prop:"AppendChild",name:"AppendChild",pkg:"",typ:$funcType([DL],[],false)},{prop:"BaseURI",name:"BaseURI",pkg:"",typ:$funcType([],[$String],false)},{prop:"ChildNodes",name:"ChildNodes",pkg:"",typ:$funcType([],[HC],false)},{prop:"CloneNode",name:"CloneNode",pkg:"",typ:$funcType([$Bool],[DL],false)},{prop:"CompareDocumentPosition",name:"CompareDocumentPosition",pkg:"",typ:$funcType([DL],[$Int],false)},{prop:"Contains",name:"Contains",pkg:"",typ:$funcType([DL],[$Bool],false)},{prop:"DispatchEvent",name:"DispatchEvent",pkg:"",typ:$funcType([H],[$Bool],false)},{prop:"FirstChild",name:"FirstChild",pkg:"",typ:$funcType([],[DL],false)},{prop:"GetElementByID",name:"GetElementByID",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"HasChildNodes",name:"HasChildNodes",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"InsertBefore",name:"InsertBefore",pkg:"",typ:$funcType([DL,DL],[],false)},{prop:"IsDefaultNamespace",name:"IsDefaultNamespace",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"IsEqualNode",name:"IsEqualNode",pkg:"",typ:$funcType([DL],[$Bool],false)},{prop:"LastChild",name:"LastChild",pkg:"",typ:$funcType([],[DL],false)},{prop:"LookupNamespaceURI",name:"LookupNamespaceURI",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"LookupPrefix",name:"LookupPrefix",pkg:"",typ:$funcType([],[$String],false)},{prop:"NextSibling",name:"NextSibling",pkg:"",typ:$funcType([],[DL],false)},{prop:"NodeName",name:"NodeName",pkg:"",typ:$funcType([],[$String],false)},{prop:"NodeType",name:"NodeType",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NodeValue",name:"NodeValue",pkg:"",typ:$funcType([],[$String],false)},{prop:"Normalize",name:"Normalize",pkg:"",typ:$funcType([],[],false)},{prop:"OwnerDocument",name:"OwnerDocument",pkg:"",typ:$funcType([],[CE],false)},{prop:"ParentElement",name:"ParentElement",pkg:"",typ:$funcType([],[DN],false)},{prop:"ParentNode",name:"ParentNode",pkg:"",typ:$funcType([],[DL],false)},{prop:"PreviousSibling",name:"PreviousSibling",pkg:"",typ:$funcType([],[DL],false)},{prop:"QuerySelector",name:"QuerySelector",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"QuerySelectorAll",name:"QuerySelectorAll",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"RemoveChild",name:"RemoveChild",pkg:"",typ:$funcType([DL],[],false)},{prop:"RemoveEventListener",name:"RemoveEventListener",pkg:"",typ:$funcType([$String,$Bool,HZ],[],false)},{prop:"ReplaceChild",name:"ReplaceChild",pkg:"",typ:$funcType([DL,DL],[],false)},{prop:"SetNodeValue",name:"SetNodeValue",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetTextContent",name:"SetTextContent",pkg:"",typ:$funcType([$String],[],false)},{prop:"TextContent",name:"TextContent",pkg:"",typ:$funcType([],[$String],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[HA],false)}]);CH.init("",[{prop:"BasicNode",name:"BasicNode",embedded:true,exported:true,typ:IS,tag:""}]);CI.init("",[{prop:"BasicNode",name:"BasicNode",embedded:true,exported:true,typ:IS,tag:""}]);CJ.init("honnef.co/go/js/dom",[{prop:"document",name:"document",embedded:true,exported:false,typ:IT,tag:""}]);CK.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""},{prop:"Href",name:"Href",embedded:false,exported:true,typ:$String,tag:"js:\"href\""},{prop:"Protocol",name:"Protocol",embedded:false,exported:true,typ:$String,tag:"js:\"protocol\""},{prop:"Host",name:"Host",embedded:false,exported:true,typ:$String,tag:"js:\"host\""},{prop:"Hostname",name:"Hostname",embedded:false,exported:true,typ:$String,tag:"js:\"hostname\""},{prop:"Port",name:"Port",embedded:false,exported:true,typ:$String,tag:"js:\"port\""},{prop:"Pathname",name:"Pathname",embedded:false,exported:true,typ:$String,tag:"js:\"pathname\""},{prop:"Search",name:"Search",embedded:false,exported:true,typ:$String,tag:"js:\"search\""},{prop:"Hash",name:"Hash",embedded:false,exported:true,typ:$String,tag:"js:\"hash\""},{prop:"Username",name:"Username",embedded:false,exported:true,typ:$String,tag:"js:\"username\""},{prop:"Password",name:"Password",embedded:false,exported:true,typ:$String,tag:"js:\"password\""},{prop:"Origin",name:"Origin",embedded:false,exported:true,typ:$String,tag:"js:\"origin\""}]);CL.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""},{prop:"URLUtils",name:"URLUtils",embedded:true,exported:true,typ:HG,tag:""}]);CM.init([{prop:"AccessKey",name:"AccessKey",pkg:"",typ:$funcType([],[$String],false)},{prop:"AccessKeyLabel",name:"AccessKeyLabel",pkg:"",typ:$funcType([],[$String],false)},{prop:"AddEventListener",name:"AddEventListener",pkg:"",typ:$funcType([$String,$Bool,IO],[HZ],false)},{prop:"AppendChild",name:"AppendChild",pkg:"",typ:$funcType([DL],[],false)},{prop:"Attributes",name:"Attributes",pkg:"",typ:$funcType([],[IV],false)},{prop:"BaseURI",name:"BaseURI",pkg:"",typ:$funcType([],[$String],false)},{prop:"Blur",name:"Blur",pkg:"",typ:$funcType([],[],false)},{prop:"ChildNodes",name:"ChildNodes",pkg:"",typ:$funcType([],[HC],false)},{prop:"Class",name:"Class",pkg:"",typ:$funcType([],[IP],false)},{prop:"Click",name:"Click",pkg:"",typ:$funcType([],[],false)},{prop:"CloneNode",name:"CloneNode",pkg:"",typ:$funcType([$Bool],[DL],false)},{prop:"Closest",name:"Closest",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"CompareDocumentPosition",name:"CompareDocumentPosition",pkg:"",typ:$funcType([DL],[$Int],false)},{prop:"Contains",name:"Contains",pkg:"",typ:$funcType([DL],[$Bool],false)},{prop:"ContentEditable",name:"ContentEditable",pkg:"",typ:$funcType([],[$String],false)},{prop:"Dataset",name:"Dataset",pkg:"",typ:$funcType([],[IV],false)},{prop:"Dir",name:"Dir",pkg:"",typ:$funcType([],[$String],false)},{prop:"DispatchEvent",name:"DispatchEvent",pkg:"",typ:$funcType([H],[$Bool],false)},{prop:"Draggable",name:"Draggable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"FirstChild",name:"FirstChild",pkg:"",typ:$funcType([],[DL],false)},{prop:"Focus",name:"Focus",pkg:"",typ:$funcType([],[],false)},{prop:"GetAttribute",name:"GetAttribute",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"GetAttributeNS",name:"GetAttributeNS",pkg:"",typ:$funcType([$String,$String],[$String],false)},{prop:"GetBoundingClientRect",name:"GetBoundingClientRect",pkg:"",typ:$funcType([],[DO],false)},{prop:"GetElementsByClassName",name:"GetElementsByClassName",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"GetElementsByTagName",name:"GetElementsByTagName",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"GetElementsByTagNameNS",name:"GetElementsByTagNameNS",pkg:"",typ:$funcType([$String,$String],[HD],false)},{prop:"HasAttribute",name:"HasAttribute",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"HasAttributeNS",name:"HasAttributeNS",pkg:"",typ:$funcType([$String,$String],[$Bool],false)},{prop:"HasChildNodes",name:"HasChildNodes",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"ID",name:"ID",pkg:"",typ:$funcType([],[$String],false)},{prop:"InnerHTML",name:"InnerHTML",pkg:"",typ:$funcType([],[$String],false)},{prop:"InsertBefore",name:"InsertBefore",pkg:"",typ:$funcType([DL,DL],[],false)},{prop:"IsContentEditable",name:"IsContentEditable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsDefaultNamespace",name:"IsDefaultNamespace",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"IsEqualNode",name:"IsEqualNode",pkg:"",typ:$funcType([DL],[$Bool],false)},{prop:"Lang",name:"Lang",pkg:"",typ:$funcType([],[$String],false)},{prop:"LastChild",name:"LastChild",pkg:"",typ:$funcType([],[DL],false)},{prop:"LookupNamespaceURI",name:"LookupNamespaceURI",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"LookupPrefix",name:"LookupPrefix",pkg:"",typ:$funcType([],[$String],false)},{prop:"Matches",name:"Matches",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"NextElementSibling",name:"NextElementSibling",pkg:"",typ:$funcType([],[DN],false)},{prop:"NextSibling",name:"NextSibling",pkg:"",typ:$funcType([],[DL],false)},{prop:"NodeName",name:"NodeName",pkg:"",typ:$funcType([],[$String],false)},{prop:"NodeType",name:"NodeType",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NodeValue",name:"NodeValue",pkg:"",typ:$funcType([],[$String],false)},{prop:"Normalize",name:"Normalize",pkg:"",typ:$funcType([],[],false)},{prop:"OffsetHeight",name:"OffsetHeight",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"OffsetLeft",name:"OffsetLeft",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"OffsetParent",name:"OffsetParent",pkg:"",typ:$funcType([],[CM],false)},{prop:"OffsetTop",name:"OffsetTop",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"OffsetWidth",name:"OffsetWidth",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"OuterHTML",name:"OuterHTML",pkg:"",typ:$funcType([],[$String],false)},{prop:"OwnerDocument",name:"OwnerDocument",pkg:"",typ:$funcType([],[CE],false)},{prop:"ParentElement",name:"ParentElement",pkg:"",typ:$funcType([],[DN],false)},{prop:"ParentNode",name:"ParentNode",pkg:"",typ:$funcType([],[DL],false)},{prop:"PreviousElementSibling",name:"PreviousElementSibling",pkg:"",typ:$funcType([],[DN],false)},{prop:"PreviousSibling",name:"PreviousSibling",pkg:"",typ:$funcType([],[DL],false)},{prop:"QuerySelector",name:"QuerySelector",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"QuerySelectorAll",name:"QuerySelectorAll",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"RemoveAttribute",name:"RemoveAttribute",pkg:"",typ:$funcType([$String],[],false)},{prop:"RemoveAttributeNS",name:"RemoveAttributeNS",pkg:"",typ:$funcType([$String,$String],[],false)},{prop:"RemoveChild",name:"RemoveChild",pkg:"",typ:$funcType([DL],[],false)},{prop:"RemoveEventListener",name:"RemoveEventListener",pkg:"",typ:$funcType([$String,$Bool,HZ],[],false)},{prop:"ReplaceChild",name:"ReplaceChild",pkg:"",typ:$funcType([DL,DL],[],false)},{prop:"SetAccessKey",name:"SetAccessKey",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetAccessKeyLabel",name:"SetAccessKeyLabel",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetAttribute",name:"SetAttribute",pkg:"",typ:$funcType([$String,$String],[],false)},{prop:"SetAttributeNS",name:"SetAttributeNS",pkg:"",typ:$funcType([$String,$String,$String],[],false)},{prop:"SetContentEditable",name:"SetContentEditable",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetDir",name:"SetDir",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetDraggable",name:"SetDraggable",pkg:"",typ:$funcType([$Bool],[],false)},{prop:"SetID",name:"SetID",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetInnerHTML",name:"SetInnerHTML",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetLang",name:"SetLang",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetNodeValue",name:"SetNodeValue",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetOuterHTML",name:"SetOuterHTML",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetTextContent",name:"SetTextContent",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetTitle",name:"SetTitle",pkg:"",typ:$funcType([$String],[],false)},{prop:"Style",name:"Style",pkg:"",typ:$funcType([],[IW],false)},{prop:"TagName",name:"TagName",pkg:"",typ:$funcType([],[$String],false)},{prop:"TextContent",name:"TextContent",pkg:"",typ:$funcType([],[$String],false)},{prop:"Title",name:"Title",pkg:"",typ:$funcType([],[$String],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[HA],false)}]);CP.init([{prop:"AddEventListener",name:"AddEventListener",pkg:"",typ:$funcType([$String,$Bool,IO],[HZ],false)},{prop:"Alert",name:"Alert",pkg:"",typ:$funcType([$String],[],false)},{prop:"Back",name:"Back",pkg:"",typ:$funcType([],[],false)},{prop:"Blur",name:"Blur",pkg:"",typ:$funcType([],[],false)},{prop:"CancelAnimationFrame",name:"CancelAnimationFrame",pkg:"",typ:$funcType([$Int],[],false)},{prop:"ClearInterval",name:"ClearInterval",pkg:"",typ:$funcType([$Int],[],false)},{prop:"ClearTimeout",name:"ClearTimeout",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[],false)},{prop:"Confirm",name:"Confirm",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"Console",name:"Console",pkg:"",typ:$funcType([],[IX],false)},{prop:"DispatchEvent",name:"DispatchEvent",pkg:"",typ:$funcType([H],[$Bool],false)},{prop:"Document",name:"Document",pkg:"",typ:$funcType([],[CE],false)},{prop:"Focus",name:"Focus",pkg:"",typ:$funcType([],[],false)},{prop:"Forward",name:"Forward",pkg:"",typ:$funcType([],[],false)},{prop:"FrameElement",name:"FrameElement",pkg:"",typ:$funcType([],[DN],false)},{prop:"GetComputedStyle",name:"GetComputedStyle",pkg:"",typ:$funcType([DN,$String],[IW],false)},{prop:"GetSelection",name:"GetSelection",pkg:"",typ:$funcType([],[CS],false)},{prop:"History",name:"History",pkg:"",typ:$funcType([],[DE],false)},{prop:"Home",name:"Home",pkg:"",typ:$funcType([],[],false)},{prop:"InnerHeight",name:"InnerHeight",pkg:"",typ:$funcType([],[$Int],false)},{prop:"InnerWidth",name:"InnerWidth",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Length",name:"Length",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Location",name:"Location",pkg:"",typ:$funcType([],[IR],false)},{prop:"MoveBy",name:"MoveBy",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"MoveTo",name:"MoveTo",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"Navigator",name:"Navigator",pkg:"",typ:$funcType([],[CU],false)},{prop:"Open",name:"Open",pkg:"",typ:$funcType([$String,$String,$String],[CP],false)},{prop:"OpenDialog",name:"OpenDialog",pkg:"",typ:$funcType([$String,$String,$String,GZ],[CP],false)},{prop:"Opener",name:"Opener",pkg:"",typ:$funcType([],[CP],false)},{prop:"OuterHeight",name:"OuterHeight",pkg:"",typ:$funcType([],[$Int],false)},{prop:"OuterWidth",name:"OuterWidth",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Parent",name:"Parent",pkg:"",typ:$funcType([],[CP],false)},{prop:"PostMessage",name:"PostMessage",pkg:"",typ:$funcType([$String,$String,GZ],[],false)},{prop:"Print",name:"Print",pkg:"",typ:$funcType([],[],false)},{prop:"Prompt",name:"Prompt",pkg:"",typ:$funcType([$String,$String],[$String],false)},{prop:"RemoveEventListener",name:"RemoveEventListener",pkg:"",typ:$funcType([$String,$Bool,HZ],[],false)},{prop:"RequestAnimationFrame",name:"RequestAnimationFrame",pkg:"",typ:$funcType([IY],[$Int],false)},{prop:"ResizeBy",name:"ResizeBy",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"ResizeTo",name:"ResizeTo",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"Screen",name:"Screen",pkg:"",typ:$funcType([],[IZ],false)},{prop:"ScreenX",name:"ScreenX",pkg:"",typ:$funcType([],[$Int],false)},{prop:"ScreenY",name:"ScreenY",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Scroll",name:"Scroll",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"ScrollBy",name:"ScrollBy",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"ScrollByLines",name:"ScrollByLines",pkg:"",typ:$funcType([$Int],[],false)},{prop:"ScrollMaxX",name:"ScrollMaxX",pkg:"",typ:$funcType([],[$Int],false)},{prop:"ScrollMaxY",name:"ScrollMaxY",pkg:"",typ:$funcType([],[$Int],false)},{prop:"ScrollTo",name:"ScrollTo",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"ScrollX",name:"ScrollX",pkg:"",typ:$funcType([],[$Int],false)},{prop:"ScrollY",name:"ScrollY",pkg:"",typ:$funcType([],[$Int],false)},{prop:"SetCursor",name:"SetCursor",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetInterval",name:"SetInterval",pkg:"",typ:$funcType([HY,$Int],[$Int],false)},{prop:"SetName",name:"SetName",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetTimeout",name:"SetTimeout",pkg:"",typ:$funcType([HY,$Int],[$Int],false)},{prop:"Stop",name:"Stop",pkg:"",typ:$funcType([],[],false)},{prop:"Top",name:"Top",pkg:"",typ:$funcType([],[CP],false)}]);CQ.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""}]);CS.init([]);CT.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""},{prop:"AvailTop",name:"AvailTop",embedded:false,exported:true,typ:$Int,tag:"js:\"availTop\""},{prop:"AvailLeft",name:"AvailLeft",embedded:false,exported:true,typ:$Int,tag:"js:\"availLeft\""},{prop:"AvailHeight",name:"AvailHeight",embedded:false,exported:true,typ:$Int,tag:"js:\"availHeight\""},{prop:"AvailWidth",name:"AvailWidth",embedded:false,exported:true,typ:$Int,tag:"js:\"availWidth\""},{prop:"ColorDepth",name:"ColorDepth",embedded:false,exported:true,typ:$Int,tag:"js:\"colorDepth\""},{prop:"Height",name:"Height",embedded:false,exported:true,typ:$Int,tag:"js:\"height\""},{prop:"Left",name:"Left",embedded:false,exported:true,typ:$Int,tag:"js:\"left\""},{prop:"PixelDepth",name:"PixelDepth",embedded:false,exported:true,typ:$Int,tag:"js:\"pixelDepth\""},{prop:"Top",name:"Top",embedded:false,exported:true,typ:$Int,tag:"js:\"top\""},{prop:"Width",name:"Width",embedded:false,exported:true,typ:$Int,tag:"js:\"width\""}]);CU.init([{prop:"AppName",name:"AppName",pkg:"",typ:$funcType([],[$String],false)},{prop:"AppVersion",name:"AppVersion",pkg:"",typ:$funcType([],[$String],false)},{prop:"CookieEnabled",name:"CookieEnabled",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"DoNotTrack",name:"DoNotTrack",pkg:"",typ:$funcType([],[$String],false)},{prop:"Geolocation",name:"Geolocation",pkg:"",typ:$funcType([],[CZ],false)},{prop:"Language",name:"Language",pkg:"",typ:$funcType([],[$String],false)},{prop:"Online",name:"Online",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Platform",name:"Platform",pkg:"",typ:$funcType([],[$String],false)},{prop:"Product",name:"Product",pkg:"",typ:$funcType([],[$String],false)},{prop:"RegisterProtocolHandler",name:"RegisterProtocolHandler",pkg:"",typ:$funcType([$String,$String,$String],[],false)},{prop:"UserAgent",name:"UserAgent",pkg:"",typ:$funcType([],[$String],false)}]);CZ.init([{prop:"ClearWatch",name:"ClearWatch",pkg:"",typ:$funcType([$Int],[],false)},{prop:"CurrentPosition",name:"CurrentPosition",pkg:"",typ:$funcType([JB,JC,DB],[DC],false)},{prop:"WatchPosition",name:"WatchPosition",pkg:"",typ:$funcType([JB,JC,DB],[$Int],false)}]);DA.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""},{prop:"Code",name:"Code",embedded:false,exported:true,typ:$Int,tag:"js:\"code\""}]);DB.init("",[{prop:"EnableHighAccuracy",name:"EnableHighAccuracy",embedded:false,exported:true,typ:$Bool,tag:""},{prop:"Timeout",name:"Timeout",embedded:false,exported:true,typ:A.Duration,tag:""},{prop:"MaximumAge",name:"MaximumAge",embedded:false,exported:true,typ:A.Duration,tag:""}]);DC.init("",[{prop:"Coords",name:"Coords",embedded:false,exported:true,typ:JE,tag:""},{prop:"Timestamp",name:"Timestamp",embedded:false,exported:true,typ:A.Time,tag:""}]);DD.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""},{prop:"Latitude",name:"Latitude",embedded:false,exported:true,typ:$Float64,tag:"js:\"latitude\""},{prop:"Longitude",name:"Longitude",embedded:false,exported:true,typ:$Float64,tag:"js:\"longitude\""},{prop:"Altitude",name:"Altitude",embedded:false,exported:true,typ:$Float64,tag:"js:\"altitude\""},{prop:"Accuracy",name:"Accuracy",embedded:false,exported:true,typ:$Float64,tag:"js:\"accuracy\""},{prop:"AltitudeAccuracy",name:"AltitudeAccuracy",embedded:false,exported:true,typ:$Float64,tag:"js:\"altitudeAccuracy\""},{prop:"Heading",name:"Heading",embedded:false,exported:true,typ:$Float64,tag:"js:\"heading\""},{prop:"Speed",name:"Speed",embedded:false,exported:true,typ:$Float64,tag:"js:\"speed\""}]);DE.init([{prop:"Back",name:"Back",pkg:"",typ:$funcType([],[],false)},{prop:"Forward",name:"Forward",pkg:"",typ:$funcType([],[],false)},{prop:"Go",name:"Go",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Length",name:"Length",pkg:"",typ:$funcType([],[$Int],false)},{prop:"PushState",name:"PushState",pkg:"",typ:$funcType([$emptyInterface,$String,$String],[],false)},{prop:"ReplaceState",name:"ReplaceState",pkg:"",typ:$funcType([$emptyInterface,$String,$String],[],false)},{prop:"State",name:"State",pkg:"",typ:$funcType([],[$emptyInterface],false)}]);DF.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""}]);DH.init([]);DI.init([]);DJ.init([]);DL.init([{prop:"AddEventListener",name:"AddEventListener",pkg:"",typ:$funcType([$String,$Bool,IO],[HZ],false)},{prop:"AppendChild",name:"AppendChild",pkg:"",typ:$funcType([DL],[],false)},{prop:"BaseURI",name:"BaseURI",pkg:"",typ:$funcType([],[$String],false)},{prop:"ChildNodes",name:"ChildNodes",pkg:"",typ:$funcType([],[HC],false)},{prop:"CloneNode",name:"CloneNode",pkg:"",typ:$funcType([$Bool],[DL],false)},{prop:"CompareDocumentPosition",name:"CompareDocumentPosition",pkg:"",typ:$funcType([DL],[$Int],false)},{prop:"Contains",name:"Contains",pkg:"",typ:$funcType([DL],[$Bool],false)},{prop:"DispatchEvent",name:"DispatchEvent",pkg:"",typ:$funcType([H],[$Bool],false)},{prop:"FirstChild",name:"FirstChild",pkg:"",typ:$funcType([],[DL],false)},{prop:"HasChildNodes",name:"HasChildNodes",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"InsertBefore",name:"InsertBefore",pkg:"",typ:$funcType([DL,DL],[],false)},{prop:"IsDefaultNamespace",name:"IsDefaultNamespace",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"IsEqualNode",name:"IsEqualNode",pkg:"",typ:$funcType([DL],[$Bool],false)},{prop:"LastChild",name:"LastChild",pkg:"",typ:$funcType([],[DL],false)},{prop:"LookupNamespaceURI",name:"LookupNamespaceURI",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"LookupPrefix",name:"LookupPrefix",pkg:"",typ:$funcType([],[$String],false)},{prop:"NextSibling",name:"NextSibling",pkg:"",typ:$funcType([],[DL],false)},{prop:"NodeName",name:"NodeName",pkg:"",typ:$funcType([],[$String],false)},{prop:"NodeType",name:"NodeType",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NodeValue",name:"NodeValue",pkg:"",typ:$funcType([],[$String],false)},{prop:"Normalize",name:"Normalize",pkg:"",typ:$funcType([],[],false)},{prop:"OwnerDocument",name:"OwnerDocument",pkg:"",typ:$funcType([],[CE],false)},{prop:"ParentElement",name:"ParentElement",pkg:"",typ:$funcType([],[DN],false)},{prop:"ParentNode",name:"ParentNode",pkg:"",typ:$funcType([],[DL],false)},{prop:"PreviousSibling",name:"PreviousSibling",pkg:"",typ:$funcType([],[DL],false)},{prop:"RemoveChild",name:"RemoveChild",pkg:"",typ:$funcType([DL],[],false)},{prop:"RemoveEventListener",name:"RemoveEventListener",pkg:"",typ:$funcType([$String,$Bool,HZ],[],false)},{prop:"ReplaceChild",name:"ReplaceChild",pkg:"",typ:$funcType([DL,DL],[],false)},{prop:"SetNodeValue",name:"SetNodeValue",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetTextContent",name:"SetTextContent",pkg:"",typ:$funcType([$String],[],false)},{prop:"TextContent",name:"TextContent",pkg:"",typ:$funcType([],[$String],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[HA],false)}]);DM.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""}]);DN.init([{prop:"AddEventListener",name:"AddEventListener",pkg:"",typ:$funcType([$String,$Bool,IO],[HZ],false)},{prop:"AppendChild",name:"AppendChild",pkg:"",typ:$funcType([DL],[],false)},{prop:"Attributes",name:"Attributes",pkg:"",typ:$funcType([],[IV],false)},{prop:"BaseURI",name:"BaseURI",pkg:"",typ:$funcType([],[$String],false)},{prop:"ChildNodes",name:"ChildNodes",pkg:"",typ:$funcType([],[HC],false)},{prop:"Class",name:"Class",pkg:"",typ:$funcType([],[IP],false)},{prop:"CloneNode",name:"CloneNode",pkg:"",typ:$funcType([$Bool],[DL],false)},{prop:"Closest",name:"Closest",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"CompareDocumentPosition",name:"CompareDocumentPosition",pkg:"",typ:$funcType([DL],[$Int],false)},{prop:"Contains",name:"Contains",pkg:"",typ:$funcType([DL],[$Bool],false)},{prop:"DispatchEvent",name:"DispatchEvent",pkg:"",typ:$funcType([H],[$Bool],false)},{prop:"FirstChild",name:"FirstChild",pkg:"",typ:$funcType([],[DL],false)},{prop:"GetAttribute",name:"GetAttribute",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"GetAttributeNS",name:"GetAttributeNS",pkg:"",typ:$funcType([$String,$String],[$String],false)},{prop:"GetBoundingClientRect",name:"GetBoundingClientRect",pkg:"",typ:$funcType([],[DO],false)},{prop:"GetElementsByClassName",name:"GetElementsByClassName",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"GetElementsByTagName",name:"GetElementsByTagName",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"GetElementsByTagNameNS",name:"GetElementsByTagNameNS",pkg:"",typ:$funcType([$String,$String],[HD],false)},{prop:"HasAttribute",name:"HasAttribute",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"HasAttributeNS",name:"HasAttributeNS",pkg:"",typ:$funcType([$String,$String],[$Bool],false)},{prop:"HasChildNodes",name:"HasChildNodes",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"ID",name:"ID",pkg:"",typ:$funcType([],[$String],false)},{prop:"InnerHTML",name:"InnerHTML",pkg:"",typ:$funcType([],[$String],false)},{prop:"InsertBefore",name:"InsertBefore",pkg:"",typ:$funcType([DL,DL],[],false)},{prop:"IsDefaultNamespace",name:"IsDefaultNamespace",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"IsEqualNode",name:"IsEqualNode",pkg:"",typ:$funcType([DL],[$Bool],false)},{prop:"LastChild",name:"LastChild",pkg:"",typ:$funcType([],[DL],false)},{prop:"LookupNamespaceURI",name:"LookupNamespaceURI",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"LookupPrefix",name:"LookupPrefix",pkg:"",typ:$funcType([],[$String],false)},{prop:"Matches",name:"Matches",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"NextElementSibling",name:"NextElementSibling",pkg:"",typ:$funcType([],[DN],false)},{prop:"NextSibling",name:"NextSibling",pkg:"",typ:$funcType([],[DL],false)},{prop:"NodeName",name:"NodeName",pkg:"",typ:$funcType([],[$String],false)},{prop:"NodeType",name:"NodeType",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NodeValue",name:"NodeValue",pkg:"",typ:$funcType([],[$String],false)},{prop:"Normalize",name:"Normalize",pkg:"",typ:$funcType([],[],false)},{prop:"OuterHTML",name:"OuterHTML",pkg:"",typ:$funcType([],[$String],false)},{prop:"OwnerDocument",name:"OwnerDocument",pkg:"",typ:$funcType([],[CE],false)},{prop:"ParentElement",name:"ParentElement",pkg:"",typ:$funcType([],[DN],false)},{prop:"ParentNode",name:"ParentNode",pkg:"",typ:$funcType([],[DL],false)},{prop:"PreviousElementSibling",name:"PreviousElementSibling",pkg:"",typ:$funcType([],[DN],false)},{prop:"PreviousSibling",name:"PreviousSibling",pkg:"",typ:$funcType([],[DL],false)},{prop:"QuerySelector",name:"QuerySelector",pkg:"",typ:$funcType([$String],[DN],false)},{prop:"QuerySelectorAll",name:"QuerySelectorAll",pkg:"",typ:$funcType([$String],[HD],false)},{prop:"RemoveAttribute",name:"RemoveAttribute",pkg:"",typ:$funcType([$String],[],false)},{prop:"RemoveAttributeNS",name:"RemoveAttributeNS",pkg:"",typ:$funcType([$String,$String],[],false)},{prop:"RemoveChild",name:"RemoveChild",pkg:"",typ:$funcType([DL],[],false)},{prop:"RemoveEventListener",name:"RemoveEventListener",pkg:"",typ:$funcType([$String,$Bool,HZ],[],false)},{prop:"ReplaceChild",name:"ReplaceChild",pkg:"",typ:$funcType([DL,DL],[],false)},{prop:"SetAttribute",name:"SetAttribute",pkg:"",typ:$funcType([$String,$String],[],false)},{prop:"SetAttributeNS",name:"SetAttributeNS",pkg:"",typ:$funcType([$String,$String,$String],[],false)},{prop:"SetID",name:"SetID",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetInnerHTML",name:"SetInnerHTML",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetNodeValue",name:"SetNodeValue",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetOuterHTML",name:"SetOuterHTML",pkg:"",typ:$funcType([$String],[],false)},{prop:"SetTextContent",name:"SetTextContent",pkg:"",typ:$funcType([$String],[],false)},{prop:"TagName",name:"TagName",pkg:"",typ:$funcType([],[$String],false)},{prop:"TextContent",name:"TextContent",pkg:"",typ:$funcType([],[$String],false)},{prop:"Underlying",name:"Underlying",pkg:"",typ:$funcType([],[HA],false)}]);DO.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""},{prop:"Height",name:"Height",embedded:false,exported:true,typ:$Float64,tag:"js:\"height\""},{prop:"Width",name:"Width",embedded:false,exported:true,typ:$Float64,tag:"js:\"width\""},{prop:"Left",name:"Left",embedded:false,exported:true,typ:$Float64,tag:"js:\"left\""},{prop:"Right",name:"Right",embedded:false,exported:true,typ:$Float64,tag:"js:\"right\""},{prop:"Top",name:"Top",embedded:false,exported:true,typ:$Float64,tag:"js:\"top\""},{prop:"Bottom",name:"Bottom",embedded:false,exported:true,typ:$Float64,tag:"js:\"bottom\""}]);DR.init("",[{prop:"BasicElement",name:"BasicElement",embedded:true,exported:true,typ:JF,tag:""}]);DS.init("",[{prop:"BasicNode",name:"BasicNode",embedded:true,exported:true,typ:IS,tag:""}]);DT.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"URLUtils",name:"URLUtils",embedded:true,exported:true,typ:HG,tag:""},{prop:"HrefLang",name:"HrefLang",embedded:false,exported:true,typ:$String,tag:"js:\"hreflang\""},{prop:"Media",name:"Media",embedded:false,exported:true,typ:$String,tag:"js:\"media\""},{prop:"TabIndex",name:"TabIndex",embedded:false,exported:true,typ:$Int,tag:"js:\"tabIndex\""},{prop:"Target",name:"Target",embedded:false,exported:true,typ:$String,tag:"js:\"target\""},{prop:"Text",name:"Text",embedded:false,exported:true,typ:$String,tag:"js:\"text\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""}]);DU.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Alt",name:"Alt",embedded:false,exported:true,typ:$String,tag:"js:\"alt\""},{prop:"Coords",name:"Coords",embedded:false,exported:true,typ:$String,tag:"js:\"coords\""},{prop:"HrefLang",name:"HrefLang",embedded:false,exported:true,typ:$String,tag:"js:\"hreflang\""},{prop:"Media",name:"Media",embedded:false,exported:true,typ:$String,tag:"js:\"media\""},{prop:"Search",name:"Search",embedded:false,exported:true,typ:$String,tag:"js:\"search\""},{prop:"Shape",name:"Shape",embedded:false,exported:true,typ:$String,tag:"js:\"shape\""},{prop:"TabIndex",name:"TabIndex",embedded:false,exported:true,typ:$Int,tag:"js:\"tabIndex\""},{prop:"Target",name:"Target",embedded:false,exported:true,typ:$String,tag:"js:\"target\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""}]);DV.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"URLUtils",name:"URLUtils",embedded:true,exported:true,typ:HG,tag:""},{prop:"Alt",name:"Alt",embedded:false,exported:true,typ:$String,tag:"js:\"alt\""},{prop:"Coords",name:"Coords",embedded:false,exported:true,typ:$String,tag:"js:\"coords\""},{prop:"HrefLang",name:"HrefLang",embedded:false,exported:true,typ:$String,tag:"js:\"hreflang\""},{prop:"Media",name:"Media",embedded:false,exported:true,typ:$String,tag:"js:\"media\""},{prop:"Search",name:"Search",embedded:false,exported:true,typ:$String,tag:"js:\"search\""},{prop:"Shape",name:"Shape",embedded:false,exported:true,typ:$String,tag:"js:\"shape\""},{prop:"TabIndex",name:"TabIndex",embedded:false,exported:true,typ:$Int,tag:"js:\"tabIndex\""},{prop:"Target",name:"Target",embedded:false,exported:true,typ:$String,tag:"js:\"target\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""}]);DW.init("",[{prop:"HTMLMediaElement",name:"HTMLMediaElement",embedded:true,exported:true,typ:HH,tag:""}]);DX.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);DY.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);DZ.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);EA.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"AutoFocus",name:"AutoFocus",embedded:false,exported:true,typ:$Bool,tag:"js:\"autofocus\""},{prop:"Disabled",name:"Disabled",embedded:false,exported:true,typ:$Bool,tag:"js:\"disabled\""},{prop:"FormAction",name:"FormAction",embedded:false,exported:true,typ:$String,tag:"js:\"formAction\""},{prop:"FormEncType",name:"FormEncType",embedded:false,exported:true,typ:$String,tag:"js:\"formEncType\""},{prop:"FormMethod",name:"FormMethod",embedded:false,exported:true,typ:$String,tag:"js:\"formMethod\""},{prop:"FormNoValidate",name:"FormNoValidate",embedded:false,exported:true,typ:$Bool,tag:"js:\"formNoValidate\""},{prop:"FormTarget",name:"FormTarget",embedded:false,exported:true,typ:$String,tag:"js:\"formTarget\""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:"js:\"name\""},{prop:"TabIndex",name:"TabIndex",embedded:false,exported:true,typ:$Int,tag:"js:\"tabIndex\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""},{prop:"ValidationMessage",name:"ValidationMessage",embedded:false,exported:true,typ:$String,tag:"js:\"validationMessage\""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:$String,tag:"js:\"value\""},{prop:"WillValidate",name:"WillValidate",embedded:false,exported:true,typ:$Bool,tag:"js:\"willValidate\""}]);EB.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Height",name:"Height",embedded:false,exported:true,typ:$Int,tag:"js:\"height\""},{prop:"Width",name:"Width",embedded:false,exported:true,typ:$Int,tag:"js:\"width\""}]);EC.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""},{prop:"FillStyle",name:"FillStyle",embedded:false,exported:true,typ:$String,tag:"js:\"fillStyle\""},{prop:"StrokeStyle",name:"StrokeStyle",embedded:false,exported:true,typ:$String,tag:"js:\"strokeStyle\""},{prop:"ShadowColor",name:"ShadowColor",embedded:false,exported:true,typ:$String,tag:"js:\"shadowColor\""},{prop:"ShadowBlur",name:"ShadowBlur",embedded:false,exported:true,typ:$Int,tag:"js:\"shadowBlur\""},{prop:"ShadowOffsetX",name:"ShadowOffsetX",embedded:false,exported:true,typ:$Int,tag:"js:\"shadowOffsetX\""},{prop:"ShadowOffsetY",name:"ShadowOffsetY",embedded:false,exported:true,typ:$Int,tag:"js:\"shadowOffsetY\""},{prop:"LineCap",name:"LineCap",embedded:false,exported:true,typ:$String,tag:"js:\"lineCap\""},{prop:"LineJoin",name:"LineJoin",embedded:false,exported:true,typ:$String,tag:"js:\"lineJoin\""},{prop:"LineWidth",name:"LineWidth",embedded:false,exported:true,typ:$Int,tag:"js:\"lineWidth\""},{prop:"MiterLimit",name:"MiterLimit",embedded:false,exported:true,typ:$Int,tag:"js:\"miterLimit\""},{prop:"Font",name:"Font",embedded:false,exported:true,typ:$String,tag:"js:\"font\""},{prop:"TextAlign",name:"TextAlign",embedded:false,exported:true,typ:$String,tag:"js:\"textAlign\""},{prop:"TextBaseline",name:"TextBaseline",embedded:false,exported:true,typ:$String,tag:"js:\"textBaseline\""},{prop:"GlobalAlpha",name:"GlobalAlpha",embedded:false,exported:true,typ:$Float64,tag:"js:\"globalAlpha\""},{prop:"GlobalCompositeOperation",name:"GlobalCompositeOperation",embedded:false,exported:true,typ:$String,tag:"js:\"globalCompositeOperation\""}]);ED.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""},{prop:"Width",name:"Width",embedded:false,exported:true,typ:$Int,tag:"js:\"width\""},{prop:"Height",name:"Height",embedded:false,exported:true,typ:$Int,tag:"js:\"height\""},{prop:"Data",name:"Data",embedded:false,exported:true,typ:HA,tag:"js:\"data\""}]);EE.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""}]);EF.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""}]);EG.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""},{prop:"Width",name:"Width",embedded:false,exported:true,typ:$Float64,tag:"js:\"width\""},{prop:"ActualBoundingBoxLeft",name:"ActualBoundingBoxLeft",embedded:false,exported:true,typ:$Float64,tag:"js:\"actualBoundingBoxLeft\""},{prop:"ActualBoundingBoxRight",name:"ActualBoundingBoxRight",embedded:false,exported:true,typ:$Float64,tag:"js:\"actualBoundingBoxRight\""},{prop:"FontBoundingBoxAscent",name:"FontBoundingBoxAscent",embedded:false,exported:true,typ:$Float64,tag:"js:\"fontBoundingBoxAscent\""},{prop:"FontBoundingBoxDescent",name:"FontBoundingBoxDescent",embedded:false,exported:true,typ:$Float64,tag:"js:\"fontBoundingBoxDescent\""},{prop:"ActualBoundingBoxAscent",name:"ActualBoundingBoxAscent",embedded:false,exported:true,typ:$Float64,tag:"js:\"actualBoundingBoxAscent\""},{prop:"ActualBoundingBoxDescent",name:"ActualBoundingBoxDescent",embedded:false,exported:true,typ:$Float64,tag:"js:\"actualBoundingBoxDescent\""},{prop:"EmHeightAscent",name:"EmHeightAscent",embedded:false,exported:true,typ:$Float64,tag:"js:\"emHeightAscent\""},{prop:"EmHeightDescent",name:"EmHeightDescent",embedded:false,exported:true,typ:$Float64,tag:"js:\"emHeightDescent\""},{prop:"HangingBaseline",name:"HangingBaseline",embedded:false,exported:true,typ:$Float64,tag:"js:\"hangingBaseline\""},{prop:"AlphabeticBaseline",name:"AlphabeticBaseline",embedded:false,exported:true,typ:$Float64,tag:"js:\"alphabeticBaseline\""},{prop:"IdeographicBaseline",name:"IdeographicBaseline",embedded:false,exported:true,typ:$Float64,tag:"js:\"ideographicBaseline\""}]);EH.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);EI.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:$String,tag:"js:\"value\""}]);EJ.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);EK.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);EL.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);EM.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Src",name:"Src",embedded:false,exported:true,typ:$String,tag:"js:\"src\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""},{prop:"Width",name:"Width",embedded:false,exported:true,typ:$String,tag:"js:\"width\""}]);EN.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Disabled",name:"Disabled",embedded:false,exported:true,typ:$Bool,tag:"js:\"disabled\""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:"js:\"name\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""},{prop:"ValidationMessage",name:"ValidationMessage",embedded:false,exported:true,typ:$String,tag:"js:\"validationMessage\""},{prop:"WillValidate",name:"WillValidate",embedded:false,exported:true,typ:$Bool,tag:"js:\"willValidate\""}]);EO.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);EP.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"AcceptCharset",name:"AcceptCharset",embedded:false,exported:true,typ:$String,tag:"js:\"acceptCharset\""},{prop:"Action",name:"Action",embedded:false,exported:true,typ:$String,tag:"js:\"action\""},{prop:"Autocomplete",name:"Autocomplete",embedded:false,exported:true,typ:$String,tag:"js:\"autocomplete\""},{prop:"Encoding",name:"Encoding",embedded:false,exported:true,typ:$String,tag:"js:\"encoding\""},{prop:"Enctype",name:"Enctype",embedded:false,exported:true,typ:$String,tag:"js:\"enctype\""},{prop:"Length",name:"Length",embedded:false,exported:true,typ:$Int,tag:"js:\"length\""},{prop:"Method",name:"Method",embedded:false,exported:true,typ:$String,tag:"js:\"method\""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:"js:\"name\""},{prop:"NoValidate",name:"NoValidate",embedded:false,exported:true,typ:$Bool,tag:"js:\"noValidate\""},{prop:"Target",name:"Target",embedded:false,exported:true,typ:$String,tag:"js:\"target\""}]);EQ.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);ER.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);ES.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);ET.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);EU.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);EV.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);EW.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Width",name:"Width",embedded:false,exported:true,typ:$String,tag:"js:\"width\""},{prop:"Height",name:"Height",embedded:false,exported:true,typ:$String,tag:"js:\"height\""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:"js:\"name\""},{prop:"Src",name:"Src",embedded:false,exported:true,typ:$String,tag:"js:\"src\""},{prop:"SrcDoc",name:"SrcDoc",embedded:false,exported:true,typ:$String,tag:"js:\"srcdoc\""},{prop:"Seamless",name:"Seamless",embedded:false,exported:true,typ:$Bool,tag:"js:\"seamless\""}]);EX.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Complete",name:"Complete",embedded:false,exported:true,typ:$Bool,tag:"js:\"complete\""},{prop:"CrossOrigin",name:"CrossOrigin",embedded:false,exported:true,typ:$String,tag:"js:\"crossOrigin\""},{prop:"Height",name:"Height",embedded:false,exported:true,typ:$Int,tag:"js:\"height\""},{prop:"IsMap",name:"IsMap",embedded:false,exported:true,typ:$Bool,tag:"js:\"isMap\""},{prop:"NaturalHeight",name:"NaturalHeight",embedded:false,exported:true,typ:$Int,tag:"js:\"naturalHeight\""},{prop:"NaturalWidth",name:"NaturalWidth",embedded:false,exported:true,typ:$Int,tag:"js:\"naturalWidth\""},{prop:"Src",name:"Src",embedded:false,exported:true,typ:$String,tag:"js:\"src\""},{prop:"UseMap",name:"UseMap",embedded:false,exported:true,typ:$String,tag:"js:\"useMap\""},{prop:"Width",name:"Width",embedded:false,exported:true,typ:$Int,tag:"js:\"width\""}]);EY.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Accept",name:"Accept",embedded:false,exported:true,typ:$String,tag:"js:\"accept\""},{prop:"Alt",name:"Alt",embedded:false,exported:true,typ:$String,tag:"js:\"alt\""},{prop:"Autocomplete",name:"Autocomplete",embedded:false,exported:true,typ:$String,tag:"js:\"autocomplete\""},{prop:"Autofocus",name:"Autofocus",embedded:false,exported:true,typ:$Bool,tag:"js:\"autofocus\""},{prop:"Checked",name:"Checked",embedded:false,exported:true,typ:$Bool,tag:"js:\"checked\""},{prop:"DefaultChecked",name:"DefaultChecked",embedded:false,exported:true,typ:$Bool,tag:"js:\"defaultChecked\""},{prop:"DefaultValue",name:"DefaultValue",embedded:false,exported:true,typ:$String,tag:"js:\"defaultValue\""},{prop:"DirName",name:"DirName",embedded:false,exported:true,typ:$String,tag:"js:\"dirName\""},{prop:"Disabled",name:"Disabled",embedded:false,exported:true,typ:$Bool,tag:"js:\"disabled\""},{prop:"FormAction",name:"FormAction",embedded:false,exported:true,typ:$String,tag:"js:\"formAction\""},{prop:"FormEncType",name:"FormEncType",embedded:false,exported:true,typ:$String,tag:"js:\"formEncType\""},{prop:"FormMethod",name:"FormMethod",embedded:false,exported:true,typ:$String,tag:"js:\"formMethod\""},{prop:"FormNoValidate",name:"FormNoValidate",embedded:false,exported:true,typ:$Bool,tag:"js:\"formNoValidate\""},{prop:"FormTarget",name:"FormTarget",embedded:false,exported:true,typ:$String,tag:"js:\"formTarget\""},{prop:"Height",name:"Height",embedded:false,exported:true,typ:$String,tag:"js:\"height\""},{prop:"Indeterminate",name:"Indeterminate",embedded:false,exported:true,typ:$Bool,tag:"js:\"indeterminate\""},{prop:"Max",name:"Max",embedded:false,exported:true,typ:$String,tag:"js:\"max\""},{prop:"MaxLength",name:"MaxLength",embedded:false,exported:true,typ:$Int,tag:"js:\"maxLength\""},{prop:"Min",name:"Min",embedded:false,exported:true,typ:$String,tag:"js:\"min\""},{prop:"Multiple",name:"Multiple",embedded:false,exported:true,typ:$Bool,tag:"js:\"multiple\""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:"js:\"name\""},{prop:"Pattern",name:"Pattern",embedded:false,exported:true,typ:$String,tag:"js:\"pattern\""},{prop:"Placeholder",name:"Placeholder",embedded:false,exported:true,typ:$String,tag:"js:\"placeholder\""},{prop:"ReadOnly",name:"ReadOnly",embedded:false,exported:true,typ:$Bool,tag:"js:\"readOnly\""},{prop:"Required",name:"Required",embedded:false,exported:true,typ:$Bool,tag:"js:\"required\""},{prop:"SelectionDirection",name:"SelectionDirection",embedded:false,exported:true,typ:$String,tag:"js:\"selectionDirection\""},{prop:"SelectionEnd",name:"SelectionEnd",embedded:false,exported:true,typ:$Int,tag:"js:\"selectionEnd\""},{prop:"SelectionStart",name:"SelectionStart",embedded:false,exported:true,typ:$Int,tag:"js:\"selectionStart\""},{prop:"Size",name:"Size",embedded:false,exported:true,typ:$Int,tag:"js:\"size\""},{prop:"Src",name:"Src",embedded:false,exported:true,typ:$String,tag:"js:\"src\""},{prop:"Step",name:"Step",embedded:false,exported:true,typ:$String,tag:"js:\"step\""},{prop:"TabIndex",name:"TabIndex",embedded:false,exported:true,typ:$Int,tag:"js:\"tabIndex\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""},{prop:"ValidationMessage",name:"ValidationMessage",embedded:false,exported:true,typ:$String,tag:"js:\"validationMessage\""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:$String,tag:"js:\"value\""},{prop:"ValueAsDate",name:"ValueAsDate",embedded:false,exported:true,typ:A.Time,tag:"js:\"valueAsDate\""},{prop:"ValueAsNumber",name:"ValueAsNumber",embedded:false,exported:true,typ:$Float64,tag:"js:\"valueAsNumber\""},{prop:"Width",name:"Width",embedded:false,exported:true,typ:$String,tag:"js:\"width\""},{prop:"WillValidate",name:"WillValidate",embedded:false,exported:true,typ:$Bool,tag:"js:\"willValidate\""}]);EZ.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""}]);FA.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Autofocus",name:"Autofocus",embedded:false,exported:true,typ:$Bool,tag:"js:\"autofocus\""},{prop:"Challenge",name:"Challenge",embedded:false,exported:true,typ:$String,tag:"js:\"challenge\""},{prop:"Disabled",name:"Disabled",embedded:false,exported:true,typ:$Bool,tag:"js:\"disabled\""},{prop:"Keytype",name:"Keytype",embedded:false,exported:true,typ:$String,tag:"js:\"keytype\""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:"js:\"name\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""},{prop:"ValidationMessage",name:"ValidationMessage",embedded:false,exported:true,typ:$String,tag:"js:\"validationMessage\""},{prop:"WillValidate",name:"WillValidate",embedded:false,exported:true,typ:$Bool,tag:"js:\"willValidate\""}]);FB.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:$Int,tag:"js:\"value\""}]);FC.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"For",name:"For",embedded:false,exported:true,typ:$String,tag:"js:\"htmlFor\""}]);FD.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);FE.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Disabled",name:"Disabled",embedded:false,exported:true,typ:$Bool,tag:"js:\"disabled\""},{prop:"Href",name:"Href",embedded:false,exported:true,typ:$String,tag:"js:\"href\""},{prop:"HrefLang",name:"HrefLang",embedded:false,exported:true,typ:$String,tag:"js:\"hrefLang\""},{prop:"Media",name:"Media",embedded:false,exported:true,typ:$String,tag:"js:\"media\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""}]);FF.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:"js:\"name\""}]);FG.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Paused",name:"Paused",embedded:false,exported:true,typ:$Bool,tag:"js:\"paused\""}]);FH.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);FI.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Content",name:"Content",embedded:false,exported:true,typ:$String,tag:"js:\"content\""},{prop:"HTTPEquiv",name:"HTTPEquiv",embedded:false,exported:true,typ:$String,tag:"js:\"httpEquiv\""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:"js:\"name\""}]);FJ.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"High",name:"High",embedded:false,exported:true,typ:$Float64,tag:"js:\"high\""},{prop:"Low",name:"Low",embedded:false,exported:true,typ:$Float64,tag:"js:\"low\""},{prop:"Max",name:"Max",embedded:false,exported:true,typ:$Float64,tag:"js:\"max\""},{prop:"Min",name:"Min",embedded:false,exported:true,typ:$Float64,tag:"js:\"min\""},{prop:"Optimum",name:"Optimum",embedded:false,exported:true,typ:$Float64,tag:"js:\"optimum\""}]);FK.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Cite",name:"Cite",embedded:false,exported:true,typ:$String,tag:"js:\"cite\""},{prop:"DateTime",name:"DateTime",embedded:false,exported:true,typ:$String,tag:"js:\"dateTime\""}]);FL.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Reversed",name:"Reversed",embedded:false,exported:true,typ:$Bool,tag:"js:\"reversed\""},{prop:"Start",name:"Start",embedded:false,exported:true,typ:$Int,tag:"js:\"start\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""}]);FM.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Data",name:"Data",embedded:false,exported:true,typ:$String,tag:"js:\"data\""},{prop:"Height",name:"Height",embedded:false,exported:true,typ:$String,tag:"js:\"height\""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:"js:\"name\""},{prop:"TabIndex",name:"TabIndex",embedded:false,exported:true,typ:$Int,tag:"js:\"tabIndex\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""},{prop:"TypeMustMatch",name:"TypeMustMatch",embedded:false,exported:true,typ:$Bool,tag:"js:\"typeMustMatch\""},{prop:"UseMap",name:"UseMap",embedded:false,exported:true,typ:$String,tag:"js:\"useMap\""},{prop:"ValidationMessage",name:"ValidationMessage",embedded:false,exported:true,typ:$String,tag:"js:\"validationMessage\""},{prop:"With",name:"With",embedded:false,exported:true,typ:$String,tag:"js:\"with\""},{prop:"WillValidate",name:"WillValidate",embedded:false,exported:true,typ:$Bool,tag:"js:\"willValidate\""}]);FN.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Disabled",name:"Disabled",embedded:false,exported:true,typ:$Bool,tag:"js:\"disabled\""},{prop:"Label",name:"Label",embedded:false,exported:true,typ:$String,tag:"js:\"label\""}]);FO.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"DefaultSelected",name:"DefaultSelected",embedded:false,exported:true,typ:$Bool,tag:"js:\"defaultSelected\""},{prop:"Disabled",name:"Disabled",embedded:false,exported:true,typ:$Bool,tag:"js:\"disabled\""},{prop:"Index",name:"Index",embedded:false,exported:true,typ:$Int,tag:"js:\"index\""},{prop:"Label",name:"Label",embedded:false,exported:true,typ:$String,tag:"js:\"label\""},{prop:"Selected",name:"Selected",embedded:false,exported:true,typ:$Bool,tag:"js:\"selected\""},{prop:"Text",name:"Text",embedded:false,exported:true,typ:$String,tag:"js:\"text\""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:$String,tag:"js:\"value\""}]);FP.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"DefaultValue",name:"DefaultValue",embedded:false,exported:true,typ:$String,tag:"js:\"defaultValue\""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:"js:\"name\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""},{prop:"ValidationMessage",name:"ValidationMessage",embedded:false,exported:true,typ:$String,tag:"js:\"validationMessage\""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:$String,tag:"js:\"value\""},{prop:"WillValidate",name:"WillValidate",embedded:false,exported:true,typ:$Bool,tag:"js:\"willValidate\""}]);FQ.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);FR.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:"js:\"name\""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:$String,tag:"js:\"value\""}]);FS.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);FT.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Max",name:"Max",embedded:false,exported:true,typ:$Float64,tag:"js:\"max\""},{prop:"Position",name:"Position",embedded:false,exported:true,typ:$Float64,tag:"js:\"position\""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:$Float64,tag:"js:\"value\""}]);FU.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Cite",name:"Cite",embedded:false,exported:true,typ:$String,tag:"js:\"cite\""}]);FV.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""},{prop:"Src",name:"Src",embedded:false,exported:true,typ:$String,tag:"js:\"src\""},{prop:"Charset",name:"Charset",embedded:false,exported:true,typ:$String,tag:"js:\"charset\""},{prop:"Async",name:"Async",embedded:false,exported:true,typ:$Bool,tag:"js:\"async\""},{prop:"Defer",name:"Defer",embedded:false,exported:true,typ:$Bool,tag:"js:\"defer\""},{prop:"Text",name:"Text",embedded:false,exported:true,typ:$String,tag:"js:\"text\""}]);FW.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Autofocus",name:"Autofocus",embedded:false,exported:true,typ:$Bool,tag:"js:\"autofocus\""},{prop:"Disabled",name:"Disabled",embedded:false,exported:true,typ:$Bool,tag:"js:\"disabled\""},{prop:"Length",name:"Length",embedded:false,exported:true,typ:$Int,tag:"js:\"length\""},{prop:"Multiple",name:"Multiple",embedded:false,exported:true,typ:$Bool,tag:"js:\"multiple\""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:"js:\"name\""},{prop:"Required",name:"Required",embedded:false,exported:true,typ:$Bool,tag:"js:\"required\""},{prop:"SelectedIndex",name:"SelectedIndex",embedded:false,exported:true,typ:$Int,tag:"js:\"selectedIndex\""},{prop:"Size",name:"Size",embedded:false,exported:true,typ:$Int,tag:"js:\"size\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""},{prop:"ValidationMessage",name:"ValidationMessage",embedded:false,exported:true,typ:$String,tag:"js:\"validationMessage\""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:$String,tag:"js:\"value\""},{prop:"WillValidate",name:"WillValidate",embedded:false,exported:true,typ:$Bool,tag:"js:\"willValidate\""}]);FX.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Media",name:"Media",embedded:false,exported:true,typ:$String,tag:"js:\"media\""},{prop:"Src",name:"Src",embedded:false,exported:true,typ:$String,tag:"js:\"src\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""}]);FY.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);FZ.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);GA.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);GB.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"ColSpan",name:"ColSpan",embedded:false,exported:true,typ:$Int,tag:"js:\"colSpan\""},{prop:"RowSpan",name:"RowSpan",embedded:false,exported:true,typ:$Int,tag:"js:\"rowSpan\""},{prop:"CellIndex",name:"CellIndex",embedded:false,exported:true,typ:$Int,tag:"js:\"cellIndex\""}]);GC.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Span",name:"Span",embedded:false,exported:true,typ:$Int,tag:"js:\"span\""}]);GD.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);GE.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);GF.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Abbr",name:"Abbr",embedded:false,exported:true,typ:$String,tag:"js:\"abbr\""},{prop:"Scope",name:"Scope",embedded:false,exported:true,typ:$String,tag:"js:\"scope\""}]);GG.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"RowIndex",name:"RowIndex",embedded:false,exported:true,typ:$Int,tag:"js:\"rowIndex\""},{prop:"SectionRowIndex",name:"SectionRowIndex",embedded:false,exported:true,typ:$Int,tag:"js:\"sectionRowIndex\""}]);GH.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);GI.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);GJ.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Autocomplete",name:"Autocomplete",embedded:false,exported:true,typ:$String,tag:"js:\"autocomplete\""},{prop:"Autofocus",name:"Autofocus",embedded:false,exported:true,typ:$Bool,tag:"js:\"autofocus\""},{prop:"Cols",name:"Cols",embedded:false,exported:true,typ:$Int,tag:"js:\"cols\""},{prop:"DefaultValue",name:"DefaultValue",embedded:false,exported:true,typ:$String,tag:"js:\"defaultValue\""},{prop:"DirName",name:"DirName",embedded:false,exported:true,typ:$String,tag:"js:\"dirName\""},{prop:"Disabled",name:"Disabled",embedded:false,exported:true,typ:$Bool,tag:"js:\"disabled\""},{prop:"MaxLength",name:"MaxLength",embedded:false,exported:true,typ:$Int,tag:"js:\"maxLength\""},{prop:"Name",name:"Name",embedded:false,exported:true,typ:$String,tag:"js:\"name\""},{prop:"Placeholder",name:"Placeholder",embedded:false,exported:true,typ:$String,tag:"js:\"placeholder\""},{prop:"ReadOnly",name:"ReadOnly",embedded:false,exported:true,typ:$Bool,tag:"js:\"readOnly\""},{prop:"Required",name:"Required",embedded:false,exported:true,typ:$Bool,tag:"js:\"required\""},{prop:"Rows",name:"Rows",embedded:false,exported:true,typ:$Int,tag:"js:\"rows\""},{prop:"SelectionDirection",name:"SelectionDirection",embedded:false,exported:true,typ:$String,tag:"js:\"selectionDirection\""},{prop:"SelectionStart",name:"SelectionStart",embedded:false,exported:true,typ:$Int,tag:"js:\"selectionStart\""},{prop:"SelectionEnd",name:"SelectionEnd",embedded:false,exported:true,typ:$Int,tag:"js:\"selectionEnd\""},{prop:"TabIndex",name:"TabIndex",embedded:false,exported:true,typ:$Int,tag:"js:\"tabIndex\""},{prop:"TextLength",name:"TextLength",embedded:false,exported:true,typ:$Int,tag:"js:\"textLength\""},{prop:"Type",name:"Type",embedded:false,exported:true,typ:$String,tag:"js:\"type\""},{prop:"ValidationMessage",name:"ValidationMessage",embedded:false,exported:true,typ:$String,tag:"js:\"validationMessage\""},{prop:"Value",name:"Value",embedded:false,exported:true,typ:$String,tag:"js:\"value\""},{prop:"WillValidate",name:"WillValidate",embedded:false,exported:true,typ:$Bool,tag:"js:\"willValidate\""},{prop:"Wrap",name:"Wrap",embedded:false,exported:true,typ:$String,tag:"js:\"wrap\""}]);GK.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"DateTime",name:"DateTime",embedded:false,exported:true,typ:$String,tag:"js:\"dateTime\""}]);GL.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Text",name:"Text",embedded:false,exported:true,typ:$String,tag:"js:\"text\""}]);GM.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""}]);GN.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""},{prop:"Kind",name:"Kind",embedded:false,exported:true,typ:$String,tag:"js:\"kind\""},{prop:"Src",name:"Src",embedded:false,exported:true,typ:$String,tag:"js:\"src\""},{prop:"Srclang",name:"Srclang",embedded:false,exported:true,typ:$String,tag:"js:\"srclang\""},{prop:"Label",name:"Label",embedded:false,exported:true,typ:$String,tag:"js:\"label\""},{prop:"Default",name:"Default",embedded:false,exported:true,typ:$Bool,tag:"js:\"default\""},{prop:"ReadyState",name:"ReadyState",embedded:false,exported:true,typ:$Int,tag:"js:\"readyState\""}]);GO.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);GP.init("",[{prop:"BasicHTMLElement",name:"BasicHTMLElement",embedded:true,exported:true,typ:HF,tag:""}]);GQ.init("",[{prop:"HTMLMediaElement",name:"HTMLMediaElement",embedded:true,exported:true,typ:HH,tag:""}]);GR.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""},{prop:"CustomError",name:"CustomError",embedded:false,exported:true,typ:$Bool,tag:"js:\"customError\""},{prop:"PatternMismatch",name:"PatternMismatch",embedded:false,exported:true,typ:$Bool,tag:"js:\"patternMismatch\""},{prop:"RangeOverflow",name:"RangeOverflow",embedded:false,exported:true,typ:$Bool,tag:"js:\"rangeOverflow\""},{prop:"RangeUnderflow",name:"RangeUnderflow",embedded:false,exported:true,typ:$Bool,tag:"js:\"rangeUnderflow\""},{prop:"StepMismatch",name:"StepMismatch",embedded:false,exported:true,typ:$Bool,tag:"js:\"stepMismatch\""},{prop:"TooLong",name:"TooLong",embedded:false,exported:true,typ:$Bool,tag:"js:\"tooLong\""},{prop:"TypeMismatch",name:"TypeMismatch",embedded:false,exported:true,typ:$Bool,tag:"js:\"typeMismatch\""},{prop:"Valid",name:"Valid",embedded:false,exported:true,typ:$Bool,tag:"js:\"valid\""},{prop:"ValueMissing",name:"ValueMissing",embedded:false,exported:true,typ:$Bool,tag:"js:\"valueMissing\""}]);GS.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:HA,tag:""}]);GT.init("",[{prop:"BasicNode",name:"BasicNode",embedded:true,exported:true,typ:IS,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=B.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["honnef.co/go/js/util"]=(function(){var $pkg={},$init,A,G,L,M;A=$packages["github.com/gopherjs/gopherjs/js"];G=$pkg.EventTarget=$newType(0,$kindStruct,"util.EventTarget",true,"honnef.co/go/js/util",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});L=$ptrType(A.Object);M=$funcType([L],[],false);G.ptr.prototype.AddEventListener=function(a,b,c){var a,b,c,d;d=this;d.Object.addEventListener($externalize(a,$String),$externalize(c,M),$externalize(b,$Bool));};G.prototype.AddEventListener=function(a,b,c){return this.$val.AddEventListener(a,b,c);};G.ptr.prototype.RemoveEventListener=function(a,b,c){var a,b,c,d;d=this;d.Object.removeEventListener($externalize(a,$String),$externalize(c,M),$externalize(b,$Bool));};G.prototype.RemoveEventListener=function(a,b,c){return this.$val.RemoveEventListener(a,b,c);};G.methods=[{prop:"AddEventListener",name:"AddEventListener",pkg:"",typ:$funcType([$String,$Bool,M],[],false)},{prop:"RemoveEventListener",name:"RemoveEventListener",pkg:"",typ:$funcType([$String,$Bool,M],[],false)}];G.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:L,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["honnef.co/go/js/xhr"]=(function(){var $pkg={},$init,A,B,C,D,E,I,J,K,L,F;A=$packages["errors"];B=$packages["github.com/gopherjs/gopherjs/js"];C=$packages["honnef.co/go/js/util"];D=$pkg.Request=$newType(0,$kindStruct,"xhr.Request",true,"honnef.co/go/js/xhr",true,function(Object_,EventTarget_,ReadyState_,Response_,ResponseText_,ResponseType_,ResponseXML_,Status_,StatusText_,Timeout_,WithCredentials_,ch_){this.$val=this;if(arguments.length===0){this.Object=null;this.EventTarget=new C.EventTarget.ptr(null);this.ReadyState=0;this.Response=null;this.ResponseText="";this.ResponseType="";this.ResponseXML=null;this.Status=0;this.StatusText="";this.Timeout=0;this.WithCredentials=false;this.ch=$chanNil;return;}this.Object=Object_;this.EventTarget=EventTarget_;this.ReadyState=ReadyState_;this.Response=Response_;this.ResponseText=ResponseText_;this.ResponseType=ResponseType_;this.ResponseXML=ResponseXML_;this.Status=Status_;this.StatusText=StatusText_;this.Timeout=Timeout_;this.WithCredentials=WithCredentials_;this.ch=ch_;});E=$pkg.Upload=$newType(0,$kindStruct,"xhr.Upload",true,"honnef.co/go/js/xhr",true,function(Object_,EventTarget_){this.$val=this;if(arguments.length===0){this.Object=null;this.EventTarget=new C.EventTarget.ptr(null);return;}this.Object=Object_;this.EventTarget=EventTarget_;});I=$ptrType(E);J=$ptrType(D);K=$ptrType(B.Object);L=$chanType($error,false,false);D.ptr.prototype.Upload=function(){var a,b;a=this;b=a.Object.upload;return new E.ptr(b,new C.EventTarget.ptr(b));};D.prototype.Upload=function(){return this.$val.Upload();};F=function(a,b){var a,b,c,d;c=new($global.XMLHttpRequest)();d=new D.ptr(c,new C.EventTarget.ptr(c),0,null,"","",null,0,"",0,false,$chanNil);d.Object.open($externalize(a,$String),$externalize(b,$String),$externalize(true,$Bool));return d;};$pkg.NewRequest=F;D.ptr.prototype.ResponseHeaders=function(){var a;a=this;return $internalize(a.Object.getAllResponseHeaders(),$String);};D.prototype.ResponseHeaders=function(){return this.$val.ResponseHeaders();};D.ptr.prototype.ResponseHeader=function(a){var a,b,c;b=this;c=b.Object.getResponseHeader($externalize(a,$String));if(c===null){return"";}return $internalize(c,$String);};D.prototype.ResponseHeader=function(a){return this.$val.ResponseHeader(a);};D.ptr.prototype.Abort=function(){var a,b;a=this;if(a.ch===$chanNil){return;}a.Object.abort();b=$select([[a.ch,$pkg.ErrAborted],[]]);if(b[0]===0){}else if(b[0]===1){}};D.prototype.Abort=function(){return this.$val.Abort();};D.ptr.prototype.OverrideMimeType=function(a){var a,b;b=this;b.Object.overrideMimeType($externalize(a,$String));};D.prototype.OverrideMimeType=function(a){return this.$val.OverrideMimeType(a);};D.ptr.prototype.Send=function(a){var{a,b,c,d,$s,$r,$c}=$restore(this,{a});$s=$s||0;s:while(true){switch($s){case 0:b=[b];b[0]=this;if(!(b[0].ch===$chanNil)){$panic(new $String("must not use a Request for multiple requests"));}b[0].ch=new $Chan($error,1);$clone(b[0].EventTarget,C.EventTarget).AddEventListener("load",false,(function(b){return function(c){var c;$go((function(b){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=$send(b[0].ch,$ifaceNil);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b),[]);};})(b));$clone(b[0].EventTarget,C.EventTarget).AddEventListener("error",false,(function(b){return function(c){var c;$go((function(b){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=$send(b[0].ch,$pkg.ErrFailure);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b),[]);};})(b));$clone(b[0].EventTarget,C.EventTarget).AddEventListener("timeout",false,(function(b){return function(c){var c;$go((function(b){return function $b(){var{$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=$send(b[0].ch,$pkg.ErrTimeout);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,$s};return $f;};})(b),[]);};})(b));b[0].Object.send($externalize(a,$emptyInterface));c=$recv(b[0].ch);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c[0];$s=-1;return d;}return;}var $f={$blk:D.ptr.prototype.Send,$c:true,$r,a,b,c,d,$s};return $f;};D.prototype.Send=function(a){return this.$val.Send(a);};D.ptr.prototype.SetRequestHeader=function(a,b){var a,b,c;c=this;c.Object.setRequestHeader($externalize(a,$String),$externalize(b,$String));};D.prototype.SetRequestHeader=function(a,b){return this.$val.SetRequestHeader(a,b);};J.methods=[{prop:"Upload",name:"Upload",pkg:"",typ:$funcType([],[I],false)},{prop:"ResponseHeaders",name:"ResponseHeaders",pkg:"",typ:$funcType([],[$String],false)},{prop:"ResponseHeader",name:"ResponseHeader",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"Abort",name:"Abort",pkg:"",typ:$funcType([],[],false)},{prop:"OverrideMimeType",name:"OverrideMimeType",pkg:"",typ:$funcType([$String],[],false)},{prop:"Send",name:"Send",pkg:"",typ:$funcType([$emptyInterface],[$error],false)},{prop:"SetRequestHeader",name:"SetRequestHeader",pkg:"",typ:$funcType([$String,$String],[],false)}];D.init("honnef.co/go/js/xhr",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:K,tag:""},{prop:"EventTarget",name:"EventTarget",embedded:true,exported:true,typ:C.EventTarget,tag:""},{prop:"ReadyState",name:"ReadyState",embedded:false,exported:true,typ:$Int,tag:"js:\"readyState\""},{prop:"Response",name:"Response",embedded:false,exported:true,typ:K,tag:"js:\"response\""},{prop:"ResponseText",name:"ResponseText",embedded:false,exported:true,typ:$String,tag:"js:\"responseText\""},{prop:"ResponseType",name:"ResponseType",embedded:false,exported:true,typ:$String,tag:"js:\"responseType\""},{prop:"ResponseXML",name:"ResponseXML",embedded:false,exported:true,typ:K,tag:"js:\"responseXML\""},{prop:"Status",name:"Status",embedded:false,exported:true,typ:$Int,tag:"js:\"status\""},{prop:"StatusText",name:"StatusText",embedded:false,exported:true,typ:$String,tag:"js:\"statusText\""},{prop:"Timeout",name:"Timeout",embedded:false,exported:true,typ:$Int,tag:"js:\"timeout\""},{prop:"WithCredentials",name:"WithCredentials",embedded:false,exported:true,typ:$Bool,tag:"js:\"withCredentials\""},{prop:"ch",name:"ch",embedded:false,exported:false,typ:L,tag:""}]);E.init("",[{prop:"Object",name:"Object",embedded:true,exported:true,typ:K,tag:""},{prop:"EventTarget",name:"EventTarget",embedded:true,exported:true,typ:C.EventTarget,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.ErrAborted=A.New("request aborted");$pkg.ErrTimeout=A.New("request timed out");$pkg.ErrFailure=A.New("send failed");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/gopherjs/gopherjs.github.io/playground"]=(function(){var $pkg={},$init,A,K,L,M,N,B,C,D,E,F,G,O,P,H,I,J,Q,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,R,S,T;A=$packages["bytes"];K=$packages["github.com/gopherjs/gopherjs.github.io/playground/internal/imports"];L=$packages["github.com/gopherjs/gopherjs/compiler"];M=$packages["github.com/gopherjs/gopherjs/js"];N=$packages["github.com/neelance/go-angularjs"];B=$packages["go/ast"];C=$packages["go/format"];D=$packages["go/parser"];E=$packages["go/scanner"];F=$packages["go/token"];G=$packages["go/types"];O=$packages["honnef.co/go/js/dom"];P=$packages["honnef.co/go/js/xhr"];H=$packages["runtime"];I=$packages["strings"];J=$packages["time"];Q=$pkg.Line=$newType(4,$kindMap,"main.Line",true,"github.com/gopherjs/gopherjs.github.io/playground",true,null);U=$sliceType(Q);V=$structType("",[]);W=$sliceType($String);X=$sliceType($Uint8);Y=$ptrType(L.Archive);Z=$ptrType(L.Decl);AA=$sliceType(Z);AB=$sliceType(L.GoLinkname);AC=$ptrType(J.Location);AD=$ptrType(B.File);AE=$sliceType(AD);AF=$sliceType(Y);AG=$ptrType(F.FileSet);AH=$funcType([$Bool],[],false);AI=$ptrType(K.Options);AJ=$funcType([],[],false);AK=$ptrType(O.HTMLInputElement);S=function(){var{a,b,c,d,e,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:a=[a];b=[b];c=O.GetWindow().Top();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.Location();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}b[0]=d;a[0]=new $Chan(V,0);e=N.NewModule("playground",W.nil,$throwNilPointerError);e.NewController("PlaygroundCtrl",(function(a,b){return function $b(f){var{f,g,h,i,j,k,l,m,n,o,p,q,$s,$r,$c}=$restore(this,{f});$s=$s||0;s:while(true){switch($s){case 0:f=[f];g=[g];h=[h];i=[i];j=[j];k=[k];l=[l];m=[m];n=[n];o=[o];if(I.HasPrefix($internalize(b[0].URLUtils.Object.hash,$String),"#/")){$s=1;continue;}$s=2;continue;case 1:i[0]=$substring($internalize(b[0].URLUtils.Object.hash,$String),2);n[0]=P.NewRequest("GET","https://snippets.gopherjs.org/p/"+i[0]);n[0].Object.responseType=$externalize("arraybuffer",$String);$go((function(a,b,f,g,h,i,j,k,l,m,n,o){return function $b(){var{p,q,r,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:p=[p];q=n[0].Send($ifaceNil);$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;if(!($interfaceIsEqual(r,$ifaceNil))||!((($parseInt(n[0].Object.status)>>0)===200))){f[0].Apply((function(a,b,f,g,h,i,j,k,l,m,n,o,p){return function(){f[0].Object.output=$externalize(new U([$makeMap($String.keyFor,[{k:"type",v:"err"},{k:"content",v:"failed to load snippet \""+i[0]+"\""}])]),U);};})(a,b,f,g,h,i,j,k,l,m,n,o,p));$s=-1;return;}p[0]=$assertType($internalize(new($global.Uint8Array)(n[0].Object.response),$emptyInterface),X);f[0].Apply((function(a,b,f,g,h,i,j,k,l,m,n,o,p){return function(){f[0].Object.code=$externalize(($bytesToString(p[0])),$String);$close(a[0]);};})(a,b,f,g,h,i,j,k,l,m,n,o,p));$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,p,q,r,$s};return $f;};})(a,b,f,g,h,i,j,k,l,m,n,o),[]);$s=3;continue;case 2:f[0].Object.code=$externalize("package main\n\nimport (\n\t\"fmt\"\n\t\"syscall/js\"\n)\n\nfunc main() {\n\tfmt.Println(\"Hello, playground\")\n\tjs.Global().Call(\"alert\", \"Hello, JavaScript\")\n\tprintln(\"Hello, JS console\")\n}\n",$String);$close(a[0]);case 3:f[0].Object.imports=$externalize(true,$Bool);f[0].Object.shareUrl=$externalize("",$String);f[0].Object.showShareUrl=$externalize(false,$Bool);f[0].Object.version=$externalize("1.18.0+go1.18.5",$String);k[0]=new $global.Map();m[0]=false;j[0]=new L.ImportContext.ptr(new $global.Map(),(function(a,b,f,g,h,i,j,k,l,m,n,o){return function(p){var p,q,r,s,t,u;q=(r=$mapIndex(k[0],$String.keyFor(p)),r!==undefined?[r.v,true]:[Y.nil,false]);s=q[0];t=q[1];if(t){return[s,$ifaceNil];}u=p;(m[0]||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(u),{k:u,v:new V.ptr()});return[new L.Archive.ptr("","",W.nil,X.nil,AA.nil,X.nil,X.nil,false,AB.nil,new J.Time.ptr(new $Uint64(0,0),new $Int64(0,0),AC.nil)),$ifaceNil];};})(a,b,f,g,h,i,j,k,l,m,n,o));h[0]=F.NewFileSet();l[0]=0;T(f[0]);g[0]=N.ElementById("code");g[0].On("input",(function(a,b,f,g,h,i,j,k,l,m,n,o){return function(p){var p;f[0].Object.showShareUrl=$externalize(false,$Bool);b[0].URLUtils.Object.hash=$externalize("",$String);};})(a,b,f,g,h,i,j,k,l,m,n,o));g[0].On("keydown",(function(a,b,f,g,h,i,j,k,l,m,n,o){return function(p){var p,q,r,s,t,u,v,w,x,y;q="";r=$parseInt(p.Object.keyCode)>>0;if(r===(9)){q="\t";}else if(r===(13)){q="\n";s=$parseInt(g[0].Prop("selectionStart"))>>0;t=$internalize(f[0].Object.code,$String);u=I.LastIndex($substring(t,0,s),"\n")+1>>0;while(true){if(!(u>0;}}if(!(q==="")){f[0].Object.showShareUrl=$externalize(false,$Bool);b[0].URLUtils.Object.hash=$externalize("",$String);w=$parseInt(g[0].Prop("selectionStart"))>>0;x=$parseInt(g[0].Prop("selectionEnd"))>>0;y=$internalize(f[0].Object.code,$String);f[0].Apply((function(a,b,f,g,h,i,j,k,l,m,n,o){return function(){f[0].Object.code=$externalize($substring(y,0,w)+q+$substring(y,x),$String);};})(a,b,f,g,h,i,j,k,l,m,n,o));g[0].SetProp(new $String("selectionStart"),new $Int((w+q.length>>0)));g[0].SetProp(new $String("selectionEnd"),new $Int((w+q.length>>0)));p.PreventDefault();}};})(a,b,f,g,h,i,j,k,l,m,n,o));o[0]=$throwNilPointerError;o[0]=(function(a,b,f,g,h,i,j,k,l,m,n,o){return function $b(p){var{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,p,q,r,s,t,u,v,w,x,y,z,$s,$r,$c}=$restore(this,{p});$s=$s||0;s:while(true){switch($s){case 0:p=[p];R=U.nil;f[0].Object.output=$externalize(R,U);m[0]=new $global.Map();r=D.ParseFile(h[0],"prog.go",(new X($stringToBytes($internalize(f[0].Object.code,$String)))),4);$s=1;case 1:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;s=q[0];t=q[1];if(!($interfaceIsEqual(t,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:u=$assertType(t,E.ErrorList,true);v=u[0];w=u[1];if(w){$s=4;continue;}$s=5;continue;case 4:x=v;y=0;case 6:if(!(y=x.$length)?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+y]);aa=$clone(z,E.Error).Error();$s=8;case 8:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}R=$append(R,$makeMap($String.keyFor,[{k:"type",v:"err"},{k:"content",v:aa}]));y++;$s=6;continue;case 7:f[0].Object.output=$externalize(R,U);$s=-1;return;case 5:ab=t.Error();$s=9;case 9:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}f[0].Object.output=$externalize(new U([$makeMap($String.keyFor,[{k:"type",v:"err"},{k:"content",v:ab}])]),U);$s=-1;return;case 3:ad=L.Compile("main",new AE([s]),h[0],j[0],false);$s=10;case 10:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=ad;ae=ac[0];t=ac[1];af="main";(k[0]||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(af),{k:af,v:ae});if(!($interfaceIsEqual(t,$ifaceNil))&&((m[0]?m[0].size:0)===0)){$s=11;continue;}$s=12;continue;case 11:ag=$assertType(t,L.ErrorList,true);ah=ag[0];ai=ag[1];if(ai){$s=13;continue;}$s=14;continue;case 13:aj=U.nil;ak=ah;al=0;case 15:if(!(al=ak.$length)?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+al]);an=am.Error();$s=17;case 17:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}aj=$append(aj,$makeMap($String.keyFor,[{k:"type",v:"err"},{k:"content",v:an}]));al++;$s=15;continue;case 16:f[0].Object.output=$externalize(aj,U);$s=-1;return;case 14:ao=t.Error();$s=18;case 18:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}f[0].Object.output=$externalize(new U([$makeMap($String.keyFor,[{k:"type",v:"err"},{k:"content",v:ao}])]),U);$s=-1;return;case 12:ap=AF.nil;if((m[0]?m[0].size:0)===0){$s=19;continue;}$s=20;continue;case 19:ar=L.ImportDependencies(ae,j[0].Import);$s=21;case 21:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}aq=ar;ap=aq[0];case 20:if(!(((m[0]?m[0].size:0)===0))){$s=22;continue;}$s=23;continue;case 22:l[0]=0;as=m[0];at=0;au=as?as.keys():undefined;av=as?as.size:0;while(true){if(!(at>0)===200))){$s=2;continue;}$s=3;continue;case 2:f[0].Apply((function(a,aw,b,ba,bb,bc,f,g,h,i,j,k,l,m,n,o,p){return function(){f[0].Object.output=$externalize(new U([$makeMap($String.keyFor,[{k:"type",v:"err"},{k:"content",v:"failed to load package \""+ba[0]+"\""}])]),U);};})(a,aw,b,ba,bb,bc,f,g,h,i,j,k,l,m,n,o,p));$s=-1;return;case 3:be=$assertType($internalize(new($global.Uint8Array)(aw[0].Object.response),$emptyInterface),X);bg=L.ReadArchive(ba[0]+".a",A.NewReader(be));$s=4;case 4:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bf=bg;bh=ba[0];(k[0]||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(bh),{k:bh,v:bf[0]});bb[0]=bf[1];if(!($interfaceIsEqual(bb[0],$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:f[0].Apply((function(a,aw,b,ba,bb,bc,f,g,h,i,j,k,l,m,n,o,p){return function $b(){var{bi,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:bi=bb[0].Error();$s=1;case 1:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}f[0].Object.output=$externalize(new U([$makeMap($String.keyFor,[{k:"type",v:"err"},{k:"content",v:bi}])]),U);$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,bi,$s};return $f;};})(a,aw,b,ba,bb,bc,f,g,h,i,j,k,l,m,n,o,p));$s=-1;return;case 6:bj=(bi=$mapIndex(k[0],$String.keyFor(ba[0])),bi!==undefined?bi.v:Y.nil).RegisterTypes(j[0].Packages);$s=7;case 7:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bc[0]=bj;if(!($interfaceIsEqual(bc[0],$ifaceNil))){f[0].Apply((function(a,aw,b,ba,bb,bc,f,g,h,i,j,k,l,m,n,o,p){return function $b(){var{bk,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:bk=bc[0].Error();$s=1;case 1:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}f[0].Object.output=$externalize(new U([$makeMap($String.keyFor,[{k:"type",v:"err"},{k:"content",v:bk}])]),U);$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,bk,$s};return $f;};})(a,aw,b,ba,bb,bc,f,g,h,i,j,k,l,m,n,o,p));$s=-1;return;}l[0]=l[0]+(1)>>0;if(l[0]===(m[0]?m[0].size:0)){$s=8;continue;}$s=9;continue;case 8:$r=o[0](p[0]);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,$s};return $f;};})(a,aw,b,f,g,h,i,j,k,l,m,n,o,p),[az]);at++;}$s=-1;return;case 23:if(p[0]){$s=-1;return;}ba=A.NewBuffer(X.nil);bb=ba.WriteString("try{\n");$s=24;case 24:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}bb;bc=L.WriteProgramCode(ap,new L.SourceMapFilter.ptr(ba,$throwNilPointerError,0,0,AG.nil),H.Version());$s=25;case 25:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bc;bd=ba.WriteString("} catch (err) {\ngoPanicHandler(err.message);\n}\n");$s=26;case 26:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}bd;$checkForDeadlock=$externalize(true,$Bool);$global.eval(ba.String());$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,p,q,r,s,t,u,v,w,x,y,z,$s};return $f;};})(a,b,f,g,h,i,j,k,l,m,n,o);f[0].Object.run=$externalize(o[0],AH);$go((function(a,b,f,g,h,i,j,k,l,m,n,o){return function $b(){var{p,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:p=$recv(a[0]);$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p[0];$r=o[0](true);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,p,$s};return $f;};})(a,b,f,g,h,i,j,k,l,m,n,o),[]);f[0].Object.format=$externalize((function(a,b,f,g,h,i,j,k,l,m,n,o){return function $b(){var{p,q,r,s,t,u,v,w,x,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:p=(new X($stringToBytes($internalize(f[0].Object.code,$String))));q=X.nil;r=$ifaceNil;s=!!(f[0].Object.imports);if(s){$s=2;continue;}if(s===(false)){$s=3;continue;}$s=4;continue;case 2:u=K.Process("prog.go",p,AI.nil);$s=5;case 5:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;q=t[0];r=t[1];$s=4;continue;case 3:w=C.Source(p);$s=6;case 6:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}v=w;q=v[0];r=v[1];case 4:case 1:if(!($interfaceIsEqual(r,$ifaceNil))){$s=7;continue;}$s=8;continue;case 7:x=r.Error();$s=9;case 9:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}f[0].Object.output=$externalize(new U([$makeMap($String.keyFor,[{k:"type",v:"err"},{k:"content",v:x}])]),U);$s=-1;return;case 8:f[0].Object.code=$externalize(($bytesToString(q)),$String);f[0].Object.output=$externalize(new U([]),U);$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,p,q,r,s,t,u,v,w,x,$s};return $f;};})(a,b,f,g,h,i,j,k,l,m,n,o),AJ);f[0].Object.share=$externalize((function(a,b,f,g,h,i,j,k,l,m,n,o){return function(){var p;p=P.NewRequest("POST","https://snippets.gopherjs.org/share");p.Object.responseType=$externalize("arraybuffer",$String);$go((function(a,b,f,g,h,i,j,k,l,m,n,o){return function $b(){var{q,r,s,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:q=[q];r=p.Send((new X($stringToBytes($internalize(f[0].Object.code,$String)))));$s=1;case 1:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;if(!($interfaceIsEqual(s,$ifaceNil))||!((($parseInt(p.Object.status)>>0)===200))){f[0].Apply((function(a,b,f,g,h,i,j,k,l,m,n,o,q){return function(){f[0].Object.output=$externalize(new U([$makeMap($String.keyFor,[{k:"type",v:"err"},{k:"content",v:"failed to share snippet"}])]),U);};})(a,b,f,g,h,i,j,k,l,m,n,o,q));$s=-1;return;}q[0]=$assertType($internalize(new($global.Uint8Array)(p.Object.response),$emptyInterface),X);f[0].Apply((function(a,b,f,g,h,i,j,k,l,m,n,o,q){return function(){var t;t=($bytesToString(q[0]));b[0].URLUtils.Object.hash=$externalize("#/"+t,$String);f[0].Object.shareUrl=$externalize($internalize(b[0].Object,$String),$String);f[0].Object.showShareUrl=$externalize(true,$Bool);$go((function(a,b,f,g,h,i,j,k,l,m,n,o,q){return function $b(){var{u,v,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:$r=J.Sleep(new J.Duration(0,1000000));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}u=O.GetWindow().Document();$s=2;case 2:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u.GetElementByID("share-url");$s=3;case 3:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}$r=$assertType(v,AK).Select();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,u,v,$s};return $f;};})(a,b,f,g,h,i,j,k,l,m,n,o,q),[]);};})(a,b,f,g,h,i,j,k,l,m,n,o,q));$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,q,r,s,$s};return $f;};})(a,b,f,g,h,i,j,k,l,m,n,o),[]);};})(a,b,f,g,h,i,j,k,l,m,n,o),AJ);p=O.GetWindow().Top();$s=4;case 4:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p.AddEventListener("hashchange",false,(function(a,b,f,g,h,i,j,k,l,m,n,o){return function $b(q){var{q,r,s,$s,$r,$c}=$restore(this,{q});$s=$s||0;s:while(true){switch($s){case 0:r=[r];s=[s];$r=q.PreventDefault();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(I.HasPrefix($internalize(b[0].URLUtils.Object.hash,$String),"#/")){r[0]=$substring($internalize(b[0].URLUtils.Object.hash,$String),2);s[0]=P.NewRequest("GET","https://snippets.gopherjs.org/p/"+r[0]);s[0].Object.responseType=$externalize("arraybuffer",$String);$go((function(a,b,f,g,h,i,j,k,l,m,n,o,r,s){return function $b(){var{t,u,v,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:t=[t];u=s[0].Send($ifaceNil);$s=1;case 1:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;if(!($interfaceIsEqual(v,$ifaceNil))||!((($parseInt(s[0].Object.status)>>0)===200))){f[0].Apply((function(a,b,f,g,h,i,j,k,l,m,n,o,r,s,t){return function(){f[0].Object.output=$externalize(new U([$makeMap($String.keyFor,[{k:"type",v:"err"},{k:"content",v:"failed to load snippet \""+r[0]+"\""}])]),U);};})(a,b,f,g,h,i,j,k,l,m,n,o,r,s,t));$s=-1;return;}t[0]=$assertType($internalize(new($global.Uint8Array)(s[0].Object.response),$emptyInterface),X);f[0].Apply((function(a,b,f,g,h,i,j,k,l,m,n,o,r,s,t){return function(){f[0].Object.code=$externalize(($bytesToString(t[0])),$String);};})(a,b,f,g,h,i,j,k,l,m,n,o,r,s,t));$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,t,u,v,$s};return $f;};})(a,b,f,g,h,i,j,k,l,m,n,o,r,s),[]);}$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,q,r,s,$s};return $f;};})(a,b,f,g,h,i,j,k,l,m,n,o));$s=5;case 5:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,f,g,h,i,j,k,l,m,n,o,p,q,$s};return $f;};})(a,b));$s=-1;return;}return;}var $f={$blk:S,$c:true,$r,a,b,c,d,e,$s};return $f;};T=function(a){var a;$global.goPrintToConsole=(function(b){var b,c,d,e,f,g,h,i;c=I.Split(($bytesToString(b)),"\n");if((R.$length===0)||!((d=$mapIndex((e=R.$length-1>>0,((e<0||e>=R.$length)?($throwRuntimeError("index out of range"),undefined):R.$array[R.$offset+e])),$String.keyFor("type")),d!==undefined?d.v:"")==="out")){R=$append(R,$makeMap($String.keyFor,[{k:"type",v:"out"},{k:"content",v:""}]));}f=R.$length-1>>0;g="content";(((f<0||f>=R.$length)?($throwRuntimeError("index out of range"),undefined):R.$array[R.$offset+f])||$throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(g),{k:g,v:(h=$mapIndex(((f<0||f>=R.$length)?($throwRuntimeError("index out of range"),undefined):R.$array[R.$offset+f]),$String.keyFor("content")),h!==undefined?h.v:"")+((0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]))});i=1;while(true){if(!(i=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+i])}]));i=i+(1)>>0;}a.Object.output=$externalize(R,U);a.EvalAsync((function $b(){var{j,$s,$r,$c}=$restore(this,{});$s=$s||0;s:while(true){switch($s){case 0:j=J.AfterFunc(new J.Duration(0,0),(function(){var j;j=N.ElementById("output");j.SetProp(new $String("scrollTop"),new $jsObjectPtr(j.Prop("scrollHeight")));}));$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;$s=-1;return;}return;}var $f={$blk:$b,$c:true,$r,j,$s};return $f;}));});$global.goPanicHandler=(function(b){var b;R=$append(R,$makeMap($String.keyFor,[{k:"type",v:"err"},{k:"content",v:"panic: "+b}]));a.Object.output=$externalize(R,U);});};Q.init($String,$String);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=O.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}R=U.nil;if($pkg===$mainPkg){$s=17;continue;}$s=18;continue;case 17:$r=S();$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$mainFinished=true;case 18:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); +$packages["github.com/gopherjs/gopherjs/js"] = (function() { + var $pkg = {}, $init, Object, Error, MakeFunc, init; + Object = $newType(0, $kindStruct, "js.Object", true, "github.com/gopherjs/gopherjs/js", true, function(object_) { + this.$val = this; + if (arguments.length === 0) { + this.object = null; + return; + } + this.object = object_; + }); + Error = $newType(0, $kindStruct, "js.Error", true, "github.com/gopherjs/gopherjs/js", true, function(Object_) { + this.$val = this; + if (arguments.length === 0) { + this.Object = null; + return; + } + this.Object = Object_; + }); + $pkg.Object = Object; + $pkg.Error = Error; + $pkg.$finishSetup = function() { + $ptrType(Object).prototype.Get = function Get(key) { + var key, o; + o = this; + return o.object[$externalize(key, $String)]; + }; + $ptrType(Object).prototype.Set = function Set(key, value) { + var key, o, value; + o = this; + o.object[$externalize(key, $String)] = $externalize(value, $emptyInterface); + }; + $ptrType(Object).prototype.Delete = function Delete(key) { + var key, o; + o = this; + delete o.object[$externalize(key, $String)]; + }; + $ptrType(Object).prototype.Length = function Length() { + var o; + o = this; + return $parseInt(o.object.length); + }; + $ptrType(Object).prototype.Index = function Index(i) { + var i, o; + o = this; + return o.object[i]; + }; + $ptrType(Object).prototype.SetIndex = function SetIndex(i, value) { + var i, o, value; + o = this; + o.object[i] = $externalize(value, $emptyInterface); + }; + $ptrType(Object).prototype.Call = function Call(name, args) { + var args, name, o, obj; + o = this; + return (obj = o.object, obj[$externalize(name, $String)].apply(obj, $externalize(args, sliceType))); + }; + $ptrType(Object).prototype.Invoke = function Invoke(args) { + var args, o; + o = this; + return o.object.apply(undefined, $externalize(args, sliceType)); + }; + $ptrType(Object).prototype.New = function New(args) { + var args, o; + o = this; + return new ($global.Function.prototype.bind.apply(o.object, [undefined].concat($externalize(args, sliceType)))); + }; + $ptrType(Object).prototype.Bool = function Bool() { + var o; + o = this; + return !!(o.object); + }; + $ptrType(Object).prototype.String = function String() { + var o; + o = this; + return $internalize(o.object, $String); + }; + $ptrType(Object).prototype.Int = function Int() { + var o; + o = this; + return $parseInt(o.object) >> 0; + }; + $ptrType(Object).prototype.Int64 = function Int64() { + var o; + o = this; + return $internalize(o.object, $Int64); + }; + $ptrType(Object).prototype.Uint64 = function Uint64() { + var o; + o = this; + return $internalize(o.object, $Uint64); + }; + $ptrType(Object).prototype.Float = function Float() { + var o; + o = this; + return $parseFloat(o.object); + }; + $ptrType(Object).prototype.Interface = function Interface() { + var o; + o = this; + return $internalize(o.object, $emptyInterface); + }; + $ptrType(Object).prototype.Unsafe = function Unsafe() { + var o; + o = this; + return o.object; + }; + $ptrType(Error).prototype.Error = function Error$1() { + var err; + err = this; + return "JavaScript error: " + $internalize(err.Object.message, $String); + }; + $ptrType(Error).prototype.Stack = function Stack() { + var err; + err = this; + return $internalize(err.Object.stack, $String); + }; + MakeFunc = function MakeFunc$1(fn) { + var fn; + return $makeFunc(fn); + }; + $pkg.MakeFunc = MakeFunc; + init = function init$1() { + var e; + e = new Error.ptr(null); + $unused(e); + }; + ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "SetIndex", name: "SetIndex", pkg: "", typ: $funcType([$Int, $emptyInterface], [], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType], [ptrType], true)}, {prop: "Invoke", name: "Invoke", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "New", name: "New", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Unsafe", name: "Unsafe", pkg: "", typ: $funcType([], [$Uintptr], false)}]; + ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Stack", name: "Stack", pkg: "", typ: $funcType([], [$String], false)}]; + Object.init("github.com/gopherjs/gopherjs/js", [{prop: "object", name: "object", embedded: false, exported: false, typ: ptrType, tag: ""}]); + Error.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["runtime"] = (function() { + var $pkg = {}, $init, js, _type, TypeAssertionError, basicFrame, Frames, Frame, Func, errorString, buildVersion, knownPositions, positionCounters, hiddenFrames, knownFrames, init, GOROOT, registerPosition, itoa, callstack, parseCallstack, ParseCallFrame, Caller, Callers, CallersFrames, SetFinalizer, FuncForPC, KeepAlive, throw$1, nanotime, fastrand; + js = $packages["github.com/gopherjs/gopherjs/js"]; + _type = $newType(0, $kindStruct, "runtime._type", true, "runtime", false, function(str_) { + this.$val = this; + if (arguments.length === 0) { + this.str = ""; + return; + } + this.str = str_; + }); + TypeAssertionError = $newType(0, $kindStruct, "runtime.TypeAssertionError", true, "runtime", true, function(_interface_, concrete_, asserted_, missingMethod_) { + this.$val = this; + if (arguments.length === 0) { + this._interface = ptrType$1.nil; + this.concrete = ptrType$1.nil; + this.asserted = ptrType$1.nil; + this.missingMethod = ""; + return; + } + this._interface = _interface_; + this.concrete = concrete_; + this.asserted = asserted_; + this.missingMethod = missingMethod_; + }); + basicFrame = $newType(0, $kindStruct, "runtime.basicFrame", true, "runtime", false, function(FuncName_, File_, Line_, Col_) { + this.$val = this; + if (arguments.length === 0) { + this.FuncName = ""; + this.File = ""; + this.Line = 0; + this.Col = 0; + return; + } + this.FuncName = FuncName_; + this.File = File_; + this.Line = Line_; + this.Col = Col_; + }); + Frames = $newType(0, $kindStruct, "runtime.Frames", true, "runtime", true, function(frames_, current_) { + this.$val = this; + if (arguments.length === 0) { + this.frames = sliceType$2.nil; + this.current = 0; + return; + } + this.frames = frames_; + this.current = current_; + }); + Frame = $newType(0, $kindStruct, "runtime.Frame", true, "runtime", true, function(PC_, Func_, Function_, File_, Line_, Entry_) { + this.$val = this; + if (arguments.length === 0) { + this.PC = 0; + this.Func = ptrType.nil; + this.Function = ""; + this.File = ""; + this.Line = 0; + this.Entry = 0; + return; + } + this.PC = PC_; + this.Func = Func_; + this.Function = Function_; + this.File = File_; + this.Line = Line_; + this.Entry = Entry_; + }); + Func = $newType(0, $kindStruct, "runtime.Func", true, "runtime", true, function(name_, file_, line_, opaque_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.file = ""; + this.line = 0; + this.opaque = new structType.ptr(); + return; + } + this.name = name_; + this.file = file_; + this.line = line_; + this.opaque = opaque_; + }); + errorString = $newType(8, $kindString, "runtime.errorString", true, "runtime", false, null); + $pkg._type = _type; + $pkg.TypeAssertionError = TypeAssertionError; + $pkg.basicFrame = basicFrame; + $pkg.Frames = Frames; + $pkg.Frame = Frame; + $pkg.Func = Func; + $pkg.errorString = errorString; + $pkg.$finishSetup = function() { + $ptrType(_type).prototype.string = function string() { + var t; + t = this; + return t.str; + }; + $ptrType(_type).prototype.pkgpath = function pkgpath() { + var t; + t = this; + return ""; + }; + $ptrType(TypeAssertionError).prototype.RuntimeError = function RuntimeError() { + }; + $ptrType(TypeAssertionError).prototype.Error = function Error$1() { + var as, cs, e, inter, msg; + e = this; + inter = "interface"; + if (!(e._interface === ptrType$1.nil)) { + inter = e._interface.string(); + } + as = e.asserted.string(); + if (e.concrete === ptrType$1.nil) { + return "interface conversion: " + inter + " is nil, not " + as; + } + cs = e.concrete.string(); + if (e.missingMethod === "") { + msg = "interface conversion: " + inter + " is " + cs + ", not " + as; + if (cs === as) { + if (!(e.concrete.pkgpath() === e.asserted.pkgpath())) { + msg = msg + (" (types from different packages)"); + } else { + msg = msg + (" (types from different scopes)"); + } + } + return msg; + } + return "interface conversion: " + cs + " is not " + as + ": missing method " + e.missingMethod; + }; + init = function init$1() { + var e, jsPkg; + jsPkg = $packages[$externalize("github.com/gopherjs/gopherjs/js", $String)]; + $jsObjectPtr = jsPkg.Object.ptr; + $jsErrorPtr = jsPkg.Error.ptr; + $throwRuntimeError = throw$1; + buildVersion = $internalize($goVersion, $String); + e = $ifaceNil; + e = new TypeAssertionError.ptr(ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, ""); + $unused(e); + }; + GOROOT = function GOROOT$1() { + var process, v, v$1; + process = $global.process; + if (process === undefined || process.env === undefined) { + return "/"; + } + v = process.env.GOPHERJS_GOROOT; + if (!(v === undefined) && !($internalize(v, $String) === "")) { + return $internalize(v, $String); + } else { + v$1 = process.env.GOROOT; + if (!(v$1 === undefined) && !($internalize(v$1, $String) === "")) { + return $internalize(v$1, $String); + } + } + return "/usr/local/go"; + }; + $pkg.GOROOT = GOROOT; + registerPosition = function registerPosition$1(funcName, file, line, col) { + var _entry, _key, _tuple, col, f, file, found, funcName, key, line, pc, pc$1; + key = file + ":" + itoa(line) + ":" + itoa(col); + _tuple = (_entry = $mapIndex(knownPositions,$String.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [0, false]); + pc = _tuple[0]; + found = _tuple[1]; + if (found) { + return pc; + } + f = new Func.ptr(funcName, file, line, new structType.ptr()); + pc$1 = ((positionCounters.$length >>> 0)); + positionCounters = $append(positionCounters, f); + _key = key; (knownPositions || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: pc$1 }); + return pc$1; + }; + itoa = function itoa$1(i) { + var i; + return $internalize(new ($global.String)(i), $String); + }; + callstack = function callstack$1(skip, limit) { + var limit, lines, skip; + skip = (skip + 1 >> 0) + 1 >> 0; + lines = new ($global.Error)().stack.split($externalize("\n", $String)).slice(skip, skip + limit >> 0); + return parseCallstack(lines); + }; + parseCallstack = function parseCallstack$1(lines) { + var _entry, _entry$1, _tuple, alias, frame, frames, i, l, lines, ok; + frames = new sliceType$1([]); + l = $parseInt(lines.length); + i = 0; + while (true) { + if (!(i < l)) { break; } + frame = $clone(ParseCallFrame(lines[i]), basicFrame); + if ((_entry = $mapIndex(hiddenFrames,$String.keyFor(frame.FuncName)), _entry !== undefined ? _entry.v : false)) { + i = i + (1) >> 0; + continue; + } + _tuple = (_entry$1 = $mapIndex(knownFrames,$String.keyFor(frame.FuncName)), _entry$1 !== undefined ? [_entry$1.v, true] : ["", false]); + alias = _tuple[0]; + ok = _tuple[1]; + if (ok) { + frame.FuncName = alias; + } + frames = $append(frames, frame); + if (frame.FuncName === "runtime.goexit") { + break; + } + i = i + (1) >> 0; + } + return frames; + }; + ParseCallFrame = function ParseCallFrame$1(info) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, col, file, fn, funcName, idx, info, line, openIdx, parts, parts$1, parts$2, pos, split; + if (($parseInt(info.indexOf($externalize("@", $String))) >> 0) >= 0) { + split = new ($global.RegExp)($externalize("[@:]", $String)); + parts = info.split(split); + return new basicFrame.ptr($internalize(parts[0], $String), $internalize(parts.slice(1, $parseInt(parts.length) - 2 >> 0).join($externalize(":", $String)), $String), $parseInt(parts[($parseInt(parts.length) - 2 >> 0)]) >> 0, $parseInt(parts[($parseInt(parts.length) - 1 >> 0)]) >> 0); + } + openIdx = $parseInt(info.lastIndexOf($externalize("(", $String))) >> 0; + if (openIdx === -1) { + parts$1 = info.split($externalize(":", $String)); + return new basicFrame.ptr("", $internalize(parts$1.slice(0, $parseInt(parts$1.length) - 2 >> 0).join($externalize(":", $String)).replace(new ($global.RegExp)($externalize("^\\s*at ", $String)), $externalize("", $String)), $String), $parseInt(parts$1[($parseInt(parts$1.length) - 2 >> 0)]) >> 0, $parseInt(parts$1[($parseInt(parts$1.length) - 1 >> 0)]) >> 0); + } + _tmp = ""; + _tmp$1 = ""; + file = _tmp; + funcName = _tmp$1; + _tmp$2 = 0; + _tmp$3 = 0; + line = _tmp$2; + col = _tmp$3; + pos = info.substring(openIdx + 1 >> 0, $parseInt(info.indexOf($externalize(")", $String))) >> 0); + parts$2 = pos.split($externalize(":", $String)); + if ($internalize(pos, $String) === "") { + file = ""; + } else { + file = $internalize(parts$2.slice(0, $parseInt(parts$2.length) - 2 >> 0).join($externalize(":", $String)), $String); + line = $parseInt(parts$2[($parseInt(parts$2.length) - 2 >> 0)]) >> 0; + col = $parseInt(parts$2[($parseInt(parts$2.length) - 1 >> 0)]) >> 0; + } + fn = info.substring(($parseInt(info.indexOf($externalize("at ", $String))) >> 0) + 3 >> 0, $parseInt(info.indexOf($externalize(" (", $String))) >> 0); + idx = $parseInt(fn.indexOf($externalize("[as ", $String))) >> 0; + if (idx > 0) { + fn = fn.substring(idx + 4 >> 0, fn.indexOf($externalize("]", $String))); + } + funcName = $internalize(fn, $String); + return new basicFrame.ptr(funcName, file, line, col); + }; + $pkg.ParseCallFrame = ParseCallFrame; + Caller = function Caller$1(skip) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, file, frames, line, ok, pc, skip; + pc = 0; + file = ""; + line = 0; + ok = false; + skip = skip + 1 >> 0; + frames = callstack(skip, 1); + if (!((frames.$length === 1))) { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = 0; + _tmp$3 = false; + pc = _tmp; + file = _tmp$1; + line = _tmp$2; + ok = _tmp$3; + return [pc, file, line, ok]; + } + pc = registerPosition((0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).FuncName, (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).File, (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).Line, (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).Col); + _tmp$4 = pc; + _tmp$5 = (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).File; + _tmp$6 = (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).Line; + _tmp$7 = true; + pc = _tmp$4; + file = _tmp$5; + line = _tmp$6; + ok = _tmp$7; + return [pc, file, line, ok]; + }; + $pkg.Caller = Caller; + Callers = function Callers$1(skip, pc) { + var _i, _ref, frame, frames, i, pc, skip; + frames = callstack(skip, pc.$length); + _ref = frames; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + frame = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), basicFrame); + ((i < 0 || i >= pc.$length) ? ($throwRuntimeError("index out of range"), undefined) : pc.$array[pc.$offset + i] = registerPosition(frame.FuncName, frame.File, frame.Line, frame.Col)); + _i++; + } + return frames.$length; + }; + $pkg.Callers = Callers; + CallersFrames = function CallersFrames$1(callers) { + var _i, _ref, callers, fun, pc, result; + result = new Frames.ptr(sliceType$2.nil, 0); + _ref = callers; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + pc = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + fun = FuncForPC(pc); + result.frames = $append(result.frames, new Frame.ptr(pc, fun, fun.name, fun.file, fun.line, fun.Entry())); + _i++; + } + return result; + }; + $pkg.CallersFrames = CallersFrames; + $ptrType(Frames).prototype.Next = function Next() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, ci, f, frame, more, x, x$1; + frame = new Frame.ptr(0, ptrType.nil, "", "", 0, 0); + more = false; + ci = this; + if (ci.current >= ci.frames.$length) { + _tmp = new Frame.ptr(0, ptrType.nil, "", "", 0, 0); + _tmp$1 = false; + Frame.copy(frame, _tmp); + more = _tmp$1; + return [frame, more]; + } + f = $clone((x = ci.frames, x$1 = ci.current, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])), Frame); + ci.current = ci.current + (1) >> 0; + _tmp$2 = $clone(f, Frame); + _tmp$3 = ci.current < ci.frames.$length; + Frame.copy(frame, _tmp$2); + more = _tmp$3; + return [frame, more]; + }; + SetFinalizer = function SetFinalizer$1(x, f) { + var f, x; + }; + $pkg.SetFinalizer = SetFinalizer; + $ptrType(Func).prototype.Entry = function Entry() { + return 0; + }; + $ptrType(Func).prototype.FileLine = function FileLine(pc) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, f, file, line, pc; + file = ""; + line = 0; + f = this; + if (f === ptrType.nil) { + _tmp = ""; + _tmp$1 = 0; + file = _tmp; + line = _tmp$1; + return [file, line]; + } + _tmp$2 = f.file; + _tmp$3 = f.line; + file = _tmp$2; + line = _tmp$3; + return [file, line]; + }; + $ptrType(Func).prototype.Name = function Name() { + var f; + f = this; + if (f === ptrType.nil || f.name === "") { + return ""; + } + return f.name; + }; + FuncForPC = function FuncForPC$1(pc) { + var ipc, pc; + ipc = ((pc >> 0)); + if (ipc >= positionCounters.$length) { + $panic(new $String("GopherJS: pc=" + itoa(ipc) + " is out of range of known position counters")); + } + return ((ipc < 0 || ipc >= positionCounters.$length) ? ($throwRuntimeError("index out of range"), undefined) : positionCounters.$array[positionCounters.$offset + ipc]); + }; + $pkg.FuncForPC = FuncForPC; + KeepAlive = function KeepAlive$1(param) { + var param; + }; + $pkg.KeepAlive = KeepAlive; + errorString.prototype.RuntimeError = function RuntimeError$1() { + var e; + e = this.$val; + }; + $ptrType(errorString).prototype.RuntimeError = function(...$args) { return new errorString(this.$get()).RuntimeError(...$args); }; + errorString.prototype.Error = function Error$2() { + var e; + e = this.$val; + return "runtime error: " + (e); + }; + $ptrType(errorString).prototype.Error = function(...$args) { return new errorString(this.$get()).Error(...$args); }; + throw$1 = function throw$2(s) { + var s; + $panic(new errorString((s))); + }; + nanotime = function nanotime$1() { + return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000)); + }; + fastrand = function fastrand$1() { + return (($parseFloat($global.Math.random()) * 4.294967295e+09 >>> 0)); + }; + ptrType$1.methods = [{prop: "string", name: "string", pkg: "runtime", typ: $funcType([], [$String], false)}, {prop: "pkgpath", name: "pkgpath", pkg: "runtime", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$3.methods = [{prop: "Next", name: "Next", pkg: "", typ: $funcType([], [Frame, $Bool], false)}]; + ptrType.methods = [{prop: "Entry", name: "Entry", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "FileLine", name: "FileLine", pkg: "", typ: $funcType([$Uintptr], [$String, $Int], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}]; + errorString.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + _type.init("runtime", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); + TypeAssertionError.init("runtime", [{prop: "_interface", name: "_interface", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "concrete", name: "concrete", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "asserted", name: "asserted", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "missingMethod", name: "missingMethod", embedded: false, exported: false, typ: $String, tag: ""}]); + basicFrame.init("", [{prop: "FuncName", name: "FuncName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "File", name: "File", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Line", name: "Line", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Col", name: "Col", embedded: false, exported: true, typ: $Int, tag: ""}]); + Frames.init("runtime", [{prop: "frames", name: "frames", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "current", name: "current", embedded: false, exported: false, typ: $Int, tag: ""}]); + Frame.init("", [{prop: "PC", name: "PC", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Function", name: "Function", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "File", name: "File", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Line", name: "Line", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Entry", name: "Entry", embedded: false, exported: true, typ: $Uintptr, tag: ""}]); + Func.init("runtime", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "file", name: "file", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "line", name: "line", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "opaque", name: "opaque", embedded: false, exported: false, typ: structType, tag: ""}]); + $linknames["runtime.nanotime"] = nanotime; + $linknames["runtime.fastrand"] = fastrand; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buildVersion = ""; + knownPositions = $makeMap($String.keyFor, []); + positionCounters = new sliceType([]); + hiddenFrames = $makeMap($String.keyFor, [{ k: "$callDeferred", v: true }]); + knownFrames = $makeMap($String.keyFor, [{ k: "$panic", v: "runtime.gopanic" }, { k: "$goroutine", v: "runtime.goexit" }]); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/goarch"] = (function() { + var $pkg = {}, $init; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/reflectlite"] = (function() { + var $pkg = {}, $init, js, goarch, Value, flag, ValueError, Type, Kind, tflag, rtype, method, chanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, nameOff, typeOff, textOff, errorString, Method, uncommonType, funcType, name, nameData, mapIter, TypeEx, uint8Type, nameOffList, typeOffList, kindNames, callHelper, initialized, idJsType, idReflectType, idKindType, idRtype, uncommonTypeMap, nameMap, jsObjectPtr, selectHelper, implements$1, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, unquote, Swapper, init, jsType, reflectType, setKindType, newName, newNameOff, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, TypeOf, ValueOf, FuncOf, SliceOf, unsafe_New, typedmemmove, keyFor, mapaccess, mapiterinit, mapiterkey, mapiternext, maplen, methodReceiver, valueInterface, ifaceE2I, methodName, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, PtrTo, copyVal; + js = $packages["github.com/gopherjs/gopherjs/js"]; + goarch = $packages["internal/goarch"]; + Value = $newType(0, $kindStruct, "reflectlite.Value", true, "internal/reflectlite", true, function(typ_, ptr_, flag_) { + this.$val = this; + if (arguments.length === 0) { + this.typ = ptrType$1.nil; + this.ptr = 0; + this.flag = 0; + return; + } + this.typ = typ_; + this.ptr = ptr_; + this.flag = flag_; + }); + flag = $newType(4, $kindUintptr, "reflectlite.flag", true, "internal/reflectlite", false, null); + ValueError = $newType(0, $kindStruct, "reflectlite.ValueError", true, "internal/reflectlite", true, function(Method_, Kind_) { + this.$val = this; + if (arguments.length === 0) { + this.Method = ""; + this.Kind = 0; + return; + } + this.Method = Method_; + this.Kind = Kind_; + }); + Type = $newType(8, $kindInterface, "reflectlite.Type", true, "internal/reflectlite", true, null); + Kind = $newType(4, $kindUint, "reflectlite.Kind", true, "internal/reflectlite", true, null); + tflag = $newType(1, $kindUint8, "reflectlite.tflag", true, "internal/reflectlite", false, null); + rtype = $newType(0, $kindStruct, "reflectlite.rtype", true, "internal/reflectlite", false, function(size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, equal_, gcdata_, str_, ptrToThis_) { + this.$val = this; + if (arguments.length === 0) { + this.size = 0; + this.ptrdata = 0; + this.hash = 0; + this.tflag = 0; + this.align = 0; + this.fieldAlign = 0; + this.kind = 0; + this.equal = $throwNilPointerError; + this.gcdata = ptrType$6.nil; + this.str = 0; + this.ptrToThis = 0; + return; + } + this.size = size_; + this.ptrdata = ptrdata_; + this.hash = hash_; + this.tflag = tflag_; + this.align = align_; + this.fieldAlign = fieldAlign_; + this.kind = kind_; + this.equal = equal_; + this.gcdata = gcdata_; + this.str = str_; + this.ptrToThis = ptrToThis_; + }); + method = $newType(0, $kindStruct, "reflectlite.method", true, "internal/reflectlite", false, function(name_, mtyp_, ifn_, tfn_) { + this.$val = this; + if (arguments.length === 0) { + this.name = 0; + this.mtyp = 0; + this.ifn = 0; + this.tfn = 0; + return; + } + this.name = name_; + this.mtyp = mtyp_; + this.ifn = ifn_; + this.tfn = tfn_; + }); + chanDir = $newType(4, $kindInt, "reflectlite.chanDir", true, "internal/reflectlite", false, null); + arrayType = $newType(0, $kindStruct, "reflectlite.arrayType", true, "internal/reflectlite", false, function(rtype_, elem_, slice_, len_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); + this.elem = ptrType$1.nil; + this.slice = ptrType$1.nil; + this.len = 0; + return; + } + this.rtype = rtype_; + this.elem = elem_; + this.slice = slice_; + this.len = len_; + }); + chanType = $newType(0, $kindStruct, "reflectlite.chanType", true, "internal/reflectlite", false, function(rtype_, elem_, dir_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); + this.elem = ptrType$1.nil; + this.dir = 0; + return; + } + this.rtype = rtype_; + this.elem = elem_; + this.dir = dir_; + }); + imethod = $newType(0, $kindStruct, "reflectlite.imethod", true, "internal/reflectlite", false, function(name_, typ_) { + this.$val = this; + if (arguments.length === 0) { + this.name = 0; + this.typ = 0; + return; + } + this.name = name_; + this.typ = typ_; + }); + interfaceType = $newType(0, $kindStruct, "reflectlite.interfaceType", true, "internal/reflectlite", false, function(rtype_, pkgPath_, methods_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); + this.pkgPath = new name.ptr(ptrType$6.nil); + this.methods = sliceType$9.nil; + return; + } + this.rtype = rtype_; + this.pkgPath = pkgPath_; + this.methods = methods_; + }); + mapType = $newType(0, $kindStruct, "reflectlite.mapType", true, "internal/reflectlite", false, function(rtype_, key_, elem_, bucket_, hasher_, keysize_, valuesize_, bucketsize_, flags_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); + this.key = ptrType$1.nil; + this.elem = ptrType$1.nil; + this.bucket = ptrType$1.nil; + this.hasher = $throwNilPointerError; + this.keysize = 0; + this.valuesize = 0; + this.bucketsize = 0; + this.flags = 0; + return; + } + this.rtype = rtype_; + this.key = key_; + this.elem = elem_; + this.bucket = bucket_; + this.hasher = hasher_; + this.keysize = keysize_; + this.valuesize = valuesize_; + this.bucketsize = bucketsize_; + this.flags = flags_; + }); + ptrType = $newType(0, $kindStruct, "reflectlite.ptrType", true, "internal/reflectlite", false, function(rtype_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); + this.elem = ptrType$1.nil; + return; + } + this.rtype = rtype_; + this.elem = elem_; + }); + sliceType = $newType(0, $kindStruct, "reflectlite.sliceType", true, "internal/reflectlite", false, function(rtype_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); + this.elem = ptrType$1.nil; + return; + } + this.rtype = rtype_; + this.elem = elem_; + }); + structField = $newType(0, $kindStruct, "reflectlite.structField", true, "internal/reflectlite", false, function(name_, typ_, offset_) { + this.$val = this; + if (arguments.length === 0) { + this.name = new name.ptr(ptrType$6.nil); + this.typ = ptrType$1.nil; + this.offset = 0; + return; + } + this.name = name_; + this.typ = typ_; + this.offset = offset_; + }); + structType = $newType(0, $kindStruct, "reflectlite.structType", true, "internal/reflectlite", false, function(rtype_, pkgPath_, fields_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); + this.pkgPath = new name.ptr(ptrType$6.nil); + this.fields = sliceType$10.nil; + return; + } + this.rtype = rtype_; + this.pkgPath = pkgPath_; + this.fields = fields_; + }); + nameOff = $newType(4, $kindInt32, "reflectlite.nameOff", true, "internal/reflectlite", false, null); + typeOff = $newType(4, $kindInt32, "reflectlite.typeOff", true, "internal/reflectlite", false, null); + textOff = $newType(4, $kindInt32, "reflectlite.textOff", true, "internal/reflectlite", false, null); + errorString = $newType(0, $kindStruct, "reflectlite.errorString", true, "internal/reflectlite", false, function(s_) { + this.$val = this; + if (arguments.length === 0) { + this.s = ""; + return; + } + this.s = s_; + }); + Method = $newType(0, $kindStruct, "reflectlite.Method", true, "internal/reflectlite", true, function(Name_, PkgPath_, Type_, Func_, Index_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.PkgPath = ""; + this.Type = $ifaceNil; + this.Func = new Value.ptr(ptrType$1.nil, 0, 0); + this.Index = 0; + return; + } + this.Name = Name_; + this.PkgPath = PkgPath_; + this.Type = Type_; + this.Func = Func_; + this.Index = Index_; + }); + uncommonType = $newType(0, $kindStruct, "reflectlite.uncommonType", true, "internal/reflectlite", false, function(pkgPath_, mcount_, xcount_, moff_, _methods_) { + this.$val = this; + if (arguments.length === 0) { + this.pkgPath = 0; + this.mcount = 0; + this.xcount = 0; + this.moff = 0; + this._methods = sliceType$5.nil; + return; + } + this.pkgPath = pkgPath_; + this.mcount = mcount_; + this.xcount = xcount_; + this.moff = moff_; + this._methods = _methods_; + }); + funcType = $newType(0, $kindStruct, "reflectlite.funcType", true, "internal/reflectlite", false, function(rtype_, inCount_, outCount_, _in_, _out_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); + this.inCount = 0; + this.outCount = 0; + this._in = sliceType$2.nil; + this._out = sliceType$2.nil; + return; + } + this.rtype = rtype_; + this.inCount = inCount_; + this.outCount = outCount_; + this._in = _in_; + this._out = _out_; + }); + name = $newType(0, $kindStruct, "reflectlite.name", true, "internal/reflectlite", false, function(bytes_) { + this.$val = this; + if (arguments.length === 0) { + this.bytes = ptrType$6.nil; + return; + } + this.bytes = bytes_; + }); + nameData = $newType(0, $kindStruct, "reflectlite.nameData", true, "internal/reflectlite", false, function(name_, tag_, exported_, embedded_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.tag = ""; + this.exported = false; + this.embedded = false; + return; + } + this.name = name_; + this.tag = tag_; + this.exported = exported_; + this.embedded = embedded_; + }); + mapIter = $newType(0, $kindStruct, "reflectlite.mapIter", true, "internal/reflectlite", false, function(t_, m_, keys_, i_, last_) { + this.$val = this; + if (arguments.length === 0) { + this.t = $ifaceNil; + this.m = null; + this.keys = null; + this.i = 0; + this.last = null; + return; + } + this.t = t_; + this.m = m_; + this.keys = keys_; + this.i = i_; + this.last = last_; + }); + TypeEx = $newType(8, $kindInterface, "reflectlite.TypeEx", true, "internal/reflectlite", true, null); + $pkg.Value = Value; + $pkg.flag = flag; + $pkg.ValueError = ValueError; + $pkg.Type = Type; + $pkg.Kind = Kind; + $pkg.tflag = tflag; + $pkg.rtype = rtype; + $pkg.method = method; + $pkg.chanDir = chanDir; + $pkg.arrayType = arrayType; + $pkg.chanType = chanType; + $pkg.imethod = imethod; + $pkg.interfaceType = interfaceType; + $pkg.mapType = mapType; + $pkg.ptrType = ptrType; + $pkg.sliceType = sliceType; + $pkg.structField = structField; + $pkg.structType = structType; + $pkg.nameOff = nameOff; + $pkg.typeOff = typeOff; + $pkg.textOff = textOff; + $pkg.errorString = errorString; + $pkg.Method = Method; + $pkg.uncommonType = uncommonType; + $pkg.funcType = funcType; + $pkg.name = name; + $pkg.nameData = nameData; + $pkg.mapIter = mapIter; + $pkg.TypeEx = TypeEx; + $pkg.$finishSetup = function() { + flag.prototype.kind = function kind() { + var f; + f = this.$val; + return ((((f & 31) >>> 0) >>> 0)); + }; + $ptrType(flag).prototype.kind = function(...$args) { return new flag(this.$get()).kind(...$args); }; + flag.prototype.ro = function ro() { + var f; + f = this.$val; + if (!((((f & 96) >>> 0) === 0))) { + return 32; + } + return 0; + }; + $ptrType(flag).prototype.ro = function(...$args) { return new flag(this.$get()).ro(...$args); }; + $ptrType(Value).prototype.pointer = function pointer() { + var v; + v = this; + if (!((v.typ.size === 4)) || !v.typ.pointers()) { + $panic(new $String("can't call pointer on a non-pointer Value")); + } + if (!((((v.flag & 128) >>> 0) === 0))) { + return (v.ptr).$get(); + } + return v.ptr; + }; + Value.prototype.pointer = function(...$args) { return this.$val.pointer(...$args); }; + $ptrType(ValueError).prototype.Error = function Error() { + var e; + e = this; + if (e.Kind === 0) { + return "reflect: call of " + e.Method + " on zero Value"; + } + return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value"; + }; + flag.prototype.mustBeExported = function mustBeExported() { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(methodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); + } + }; + $ptrType(flag).prototype.mustBeExported = function(...$args) { return new flag(this.$get()).mustBeExported(...$args); }; + flag.prototype.mustBeAssignable = function mustBeAssignable() { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(methodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); + } + if (((f & 256) >>> 0) === 0) { + $panic(new $String("reflect: " + methodName() + " using unaddressable value")); + } + }; + $ptrType(flag).prototype.mustBeAssignable = function(...$args) { return new flag(this.$get()).mustBeAssignable(...$args); }; + $ptrType(Value).prototype.CanSet = function CanSet() { + var v; + v = this; + return ((v.flag & 352) >>> 0) === 256; + }; + Value.prototype.CanSet = function(...$args) { return this.$val.CanSet(...$args); }; + $ptrType(Value).prototype.IsValid = function IsValid() { + var v; + v = this; + return !((v.flag === 0)); + }; + Value.prototype.IsValid = function(...$args) { return this.$val.IsValid(...$args); }; + $ptrType(Value).prototype.Kind = function Kind$1() { + var v; + v = this; + return new flag(v.flag).kind(); + }; + Value.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; + $ptrType(Value).prototype.Type = function Type$1() { + var f, v; + v = this; + f = v.flag; + if (f === 0) { + $panic(new ValueError.ptr("reflectlite.Value.Type", 0)); + } + return v.typ; + }; + Value.prototype.Type = function(...$args) { return this.$val.Type(...$args); }; + $ptrType(structField).prototype.embedded = function embedded() { + var f; + f = this; + return $clone(f.name, name).embedded(); + }; + Kind.prototype.String = function String() { + var k; + k = this.$val; + if (((k >> 0)) < kindNames.$length) { + return ((k < 0 || k >= kindNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + k]); + } + return (0 >= kindNames.$length ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + 0]); + }; + $ptrType(Kind).prototype.String = function(...$args) { return new Kind(this.$get()).String(...$args); }; + $ptrType(rtype).prototype.String = function String$1() { + var s, t; + t = this; + s = $clone(t.nameOff(t.str), name).name(); + if (!((((t.tflag & 2) >>> 0) === 0))) { + return $substring(s, 1); + } + return s; + }; + $ptrType(rtype).prototype.Size = function Size() { + var t; + t = this; + return t.size; + }; + $ptrType(rtype).prototype.Kind = function Kind$2() { + var t; + t = this; + return ((((t.kind & 31) >>> 0) >>> 0)); + }; + $ptrType(rtype).prototype.pointers = function pointers() { + var t; + t = this; + return !((t.ptrdata === 0)); + }; + $ptrType(rtype).prototype.common = function common() { + var t; + t = this; + return t; + }; + $ptrType(rtype).prototype.exportedMethods = function exportedMethods() { + var t, ut; + t = this; + ut = t.uncommon(); + if (ut === ptrType$4.nil) { + return sliceType$5.nil; + } + return ut.exportedMethods(); + }; + $ptrType(rtype).prototype.NumMethod = function NumMethod() { + var t, tt; + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + return tt.NumMethod(); + } + return t.exportedMethods().$length; + }; + $ptrType(rtype).prototype.PkgPath = function PkgPath() { + var t, ut; + t = this; + if (((t.tflag & 4) >>> 0) === 0) { + return ""; + } + ut = t.uncommon(); + if (ut === ptrType$4.nil) { + return ""; + } + return $clone(t.nameOff(ut.pkgPath), name).name(); + }; + $ptrType(rtype).prototype.hasName = function hasName() { + var t; + t = this; + return !((((t.tflag & 4) >>> 0) === 0)); + }; + $ptrType(rtype).prototype.Name = function Name() { + var _1, i, s, sqBrackets, t; + t = this; + if (!t.hasName()) { + return ""; + } + s = t.String(); + i = s.length - 1 >> 0; + sqBrackets = 0; + while (true) { + if (!(i >= 0 && (!((s.charCodeAt(i) === 46)) || !((sqBrackets === 0))))) { break; } + _1 = s.charCodeAt(i); + if (_1 === (93)) { + sqBrackets = sqBrackets + (1) >> 0; + } else if (_1 === (91)) { + sqBrackets = sqBrackets - (1) >> 0; + } + i = i - (1) >> 0; + } + return $substring(s, (i + 1 >> 0)); + }; + $ptrType(rtype).prototype.chanDir = function chanDir$1() { + var t, tt; + t = this; + if (!((t.Kind() === 18))) { + $panic(new $String("reflect: chanDir of non-chan type")); + } + tt = (t.kindType); + return ((tt.dir >> 0)); + }; + $ptrType(rtype).prototype.Elem = function Elem() { + var _1, t, tt, tt$1, tt$2, tt$3, tt$4; + t = this; + _1 = t.Kind(); + if (_1 === (17)) { + tt = (t.kindType); + return toType(tt.elem); + } else if (_1 === (18)) { + tt$1 = (t.kindType); + return toType(tt$1.elem); + } else if (_1 === (21)) { + tt$2 = (t.kindType); + return toType(tt$2.elem); + } else if (_1 === (22)) { + tt$3 = (t.kindType); + return toType(tt$3.elem); + } else if (_1 === (23)) { + tt$4 = (t.kindType); + return toType(tt$4.elem); + } + $panic(new $String("reflect: Elem of invalid type")); + }; + $ptrType(rtype).prototype.In = function In(i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: In of non-func type")); + } + tt = (t.kindType); + return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + $ptrType(rtype).prototype.Len = function Len() { + var t, tt; + t = this; + if (!((t.Kind() === 17))) { + $panic(new $String("reflect: Len of non-array type")); + } + tt = (t.kindType); + return ((tt.len >> 0)); + }; + $ptrType(rtype).prototype.NumIn = function NumIn() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: NumIn of non-func type")); + } + tt = (t.kindType); + return ((tt.inCount >> 0)); + }; + $ptrType(rtype).prototype.NumOut = function NumOut() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: NumOut of non-func type")); + } + tt = (t.kindType); + return tt.out().$length; + }; + $ptrType(rtype).prototype.Out = function Out(i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: Out of non-func type")); + } + tt = (t.kindType); + return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + $ptrType(interfaceType).prototype.NumMethod = function NumMethod$1() { + var t; + t = this; + return t.methods.$length; + }; + $ptrType(rtype).prototype.Implements = function Implements(u) { + var {_r, t, u, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.Implements")); + } + _r = u.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 20))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 20))) { */ case 1: + $panic(new $String("reflect: non-interface type passed to Type.Implements")); + /* } */ case 2: + $s = -1; return implements$1($assertType(u, ptrType$1), t); + /* */ } return; } var $f = {$blk: Implements, $c: true, $r, _r, t, u, $s};return $f; + }; + $ptrType(rtype).prototype.AssignableTo = function AssignableTo(u) { + var {$24r, _r, t, u, uu, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.AssignableTo")); + } + uu = $assertType(u, ptrType$1); + _r = directlyAssignable(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r || implements$1(uu, t); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: AssignableTo, $c: true, $r, $24r, _r, t, u, uu, $s};return $f; + }; + implements$1 = function implements$2(T, V) { + var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2; + if (!((T.Kind() === 20))) { + return false; + } + t = (T.kindType); + if (t.methods.$length === 0) { + return true; + } + if (V.Kind() === 20) { + v = (V.kindType); + i = 0; + j = 0; + while (true) { + if (!(j < v.methods.$length)) { break; } + tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + tmName = $clone(t.rtype.nameOff(tm.name), name); + vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])); + vmName = $clone(V.nameOff(vm.name), name); + if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) { + if (!$clone(tmName, name).isExported()) { + tmPkgPath = $clone(tmName, name).pkgPath(); + if (tmPkgPath === "") { + tmPkgPath = $clone(t.pkgPath, name).name(); + } + vmPkgPath = $clone(vmName, name).pkgPath(); + if (vmPkgPath === "") { + vmPkgPath = $clone(v.pkgPath, name).name(); + } + if (!(tmPkgPath === vmPkgPath)) { + j = j + (1) >> 0; + continue; + } + } + i = i + (1) >> 0; + if (i >= t.methods.$length) { + return true; + } + } + j = j + (1) >> 0; + } + return false; + } + v$1 = V.uncommon(); + if (v$1 === ptrType$4.nil) { + return false; + } + i$1 = 0; + vmethods = v$1.methods(); + j$1 = 0; + while (true) { + if (!(j$1 < ((v$1.mcount >> 0)))) { break; } + tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); + tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name); + vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method); + vmName$1 = $clone(V.nameOff(vm$1.name), name); + if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) { + if (!$clone(tmName$1, name).isExported()) { + tmPkgPath$1 = $clone(tmName$1, name).pkgPath(); + if (tmPkgPath$1 === "") { + tmPkgPath$1 = $clone(t.pkgPath, name).name(); + } + vmPkgPath$1 = $clone(vmName$1, name).pkgPath(); + if (vmPkgPath$1 === "") { + vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name(); + } + if (!(tmPkgPath$1 === vmPkgPath$1)) { + j$1 = j$1 + (1) >> 0; + continue; + } + } + i$1 = i$1 + (1) >> 0; + if (i$1 >= t.methods.$length) { + return true; + } + } + j$1 = j$1 + (1) >> 0; + } + return false; + }; + directlyAssignable = function directlyAssignable$1(T, V) { + var {$24r, T, V, _r, $s, $r, $c} = $restore(this, {T, V}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (T === V) { + $s = -1; return true; + } + if (T.hasName() && V.hasName() || !((T.Kind() === V.Kind()))) { + $s = -1; return false; + } + _r = haveIdenticalUnderlyingType(T, V, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: directlyAssignable$1, $c: true, $r, $24r, T, V, _r, $s};return $f; + }; + haveIdenticalType = function haveIdenticalType$1(T, V, cmpTags) { + var {$24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s, $r, $c} = $restore(this, {T, V, cmpTags}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (cmpTags) { + $s = -1; return $interfaceIsEqual(T, V); + } + _r = T.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = V.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (!(_r === _r$1)) { _v = true; $s = 3; continue s; } + _r$2 = T.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = V.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = !((_r$2 === _r$3)); case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $s = -1; return false; + /* } */ case 2: + _r$4 = T.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg = _r$4; + _r$5 = V.common(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = _r$5; + _r$6 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r = _r$6; + $s = 11; case 11: return $24r; + /* */ } return; } var $f = {$blk: haveIdenticalType$1, $c: true, $r, $24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s};return $f; + }; + haveIdenticalUnderlyingType = function haveIdenticalUnderlyingType$1(T, V, cmpTags) { + var {$24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s, $r, $c} = $restore(this, {T, V, cmpTags}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (T === V) { + $s = -1; return true; + } + kind$1 = T.Kind(); + if (!((kind$1 === V.Kind()))) { + $s = -1; return false; + } + if (1 <= kind$1 && kind$1 <= 16 || (kind$1 === 24) || (kind$1 === 26)) { + $s = -1; return true; + } + _1 = kind$1; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (18)) { $s = 3; continue; } + /* */ if (_1 === (19)) { $s = 4; continue; } + /* */ if (_1 === (20)) { $s = 5; continue; } + /* */ if (_1 === (21)) { $s = 6; continue; } + /* */ if ((_1 === (22)) || (_1 === (23))) { $s = 7; continue; } + /* */ if (_1 === (25)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (17)) { */ case 2: + if (!(T.Len() === V.Len())) { _v = false; $s = 10; continue s; } + _r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 10: + $24r = _v; + $s = 12; case 12: return $24r; + /* } else if (_1 === (18)) { */ case 3: + if (!(V.chanDir() === 3)) { _v$1 = false; $s = 15; continue s; } + _r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = _r$1; case 15: + /* */ if (_v$1) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_v$1) { */ case 13: + $s = -1; return true; + /* } */ case 14: + if (!(V.chanDir() === T.chanDir())) { _v$2 = false; $s = 17; continue s; } + _r$2 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$2 = _r$2; case 17: + $24r$1 = _v$2; + $s = 19; case 19: return $24r$1; + /* } else if (_1 === (19)) { */ case 4: + t = (T.kindType); + v = (V.kindType); + if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) { + $s = -1; return false; + } + i = 0; + /* while (true) { */ case 20: + /* if (!(i < t.rtype.NumIn())) { break; } */ if(!(i < t.rtype.NumIn())) { $s = 21; continue; } + _r$3 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ $s = 24; case 24: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!_r$3) { */ case 22: + $s = -1; return false; + /* } */ case 23: + i = i + (1) >> 0; + $s = 20; continue; + case 21: + i$1 = 0; + /* while (true) { */ case 25: + /* if (!(i$1 < t.rtype.NumOut())) { break; } */ if(!(i$1 < t.rtype.NumOut())) { $s = 26; continue; } + _r$4 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ $s = 29; case 29: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!_r$4) { */ case 27: + $s = -1; return false; + /* } */ case 28: + i$1 = i$1 + (1) >> 0; + $s = 25; continue; + case 26: + $s = -1; return true; + /* } else if (_1 === (20)) { */ case 5: + t$1 = (T.kindType); + v$1 = (V.kindType); + if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) { + $s = -1; return true; + } + $s = -1; return false; + /* } else if (_1 === (21)) { */ case 6: + _r$5 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + if (!(_r$5)) { _v$3 = false; $s = 30; continue s; } + _r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$3 = _r$6; case 30: + $24r$2 = _v$3; + $s = 33; case 33: return $24r$2; + /* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7: + _r$7 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$3 = _r$7; + $s = 35; case 35: return $24r$3; + /* } else if (_1 === (25)) { */ case 8: + t$2 = (T.kindType); + v$2 = (V.kindType); + if (!((t$2.fields.$length === v$2.fields.$length))) { + $s = -1; return false; + } + if (!($clone(t$2.pkgPath, name).name() === $clone(v$2.pkgPath, name).name())) { + $s = -1; return false; + } + _ref = t$2.fields; + _i = 0; + /* while (true) { */ case 36: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 37; continue; } + i$2 = _i; + tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2])); + vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2])); + if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) { + $s = -1; return false; + } + _r$8 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ $s = 40; case 40: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!_r$8) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!_r$8) { */ case 38: + $s = -1; return false; + /* } */ case 39: + if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) { + $s = -1; return false; + } + if (!((tf.offset === vf.offset))) { + $s = -1; return false; + } + if (!(tf.embedded() === vf.embedded())) { + $s = -1; return false; + } + _i++; + $s = 36; continue; + case 37: + $s = -1; return true; + /* } */ case 9: + case 1: + $s = -1; return false; + /* */ } return; } var $f = {$blk: haveIdenticalUnderlyingType$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s};return $f; + }; + toType = function toType$1(t) { + var t; + if (t === ptrType$1.nil) { + return $ifaceNil; + } + return t; + }; + ifaceIndir = function ifaceIndir$1(t) { + var t; + return ((t.kind & 32) >>> 0) === 0; + }; + $ptrType(Value).prototype.object = function object() { + var _1, newVal, v, val; + v = this; + if ((v.typ.Kind() === 17) || (v.typ.Kind() === 25)) { + return v.ptr; + } + if (!((((v.flag & 128) >>> 0) === 0))) { + val = v.ptr.$get(); + if (!(val === $ifaceNil) && !(val.constructor === jsType(v.typ))) { + switch (0) { default: + _1 = v.typ.Kind(); + if ((_1 === (11)) || (_1 === (6))) { + val = new (jsType(v.typ))(val.$high, val.$low); + } else if ((_1 === (15)) || (_1 === (16))) { + val = new (jsType(v.typ))(val.$real, val.$imag); + } else if (_1 === (23)) { + if (val === val.constructor.nil) { + val = jsType(v.typ).nil; + break; + } + newVal = new (jsType(v.typ))(val.$array); + newVal.$offset = val.$offset; + newVal.$length = val.$length; + newVal.$capacity = val.$capacity; + val = newVal; + } + } + } + return val; + } + return v.ptr; + }; + Value.prototype.object = function(...$args) { return this.$val.object(...$args); }; + $ptrType(Value).prototype.assignTo = function assignTo(context, dst, target) { + var {_r, _r$1, _r$2, context, dst, fl, target, v, x, $s, $r, $c} = $restore(this, {context, dst, target}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue(context, $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + Value.copy(v, _r); + /* } */ case 2: + _r$1 = directlyAssignable(dst, v.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 5; continue; } + /* */ if (implements$1(dst, v.typ)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r$1) { */ case 5: + fl = (((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0; + fl = (fl | (((dst.Kind() >>> 0)))) >>> 0; + $s = -1; return new Value.ptr(dst, v.ptr, fl); + /* } else if (implements$1(dst, v.typ)) { */ case 6: + if (target === 0) { + target = unsafe_New(dst); + } + _r$2 = valueInterface($clone(v, Value)); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + if (dst.NumMethod() === 0) { + (target).$set(x); + } else { + ifaceE2I(dst, x, target); + } + $s = -1; return new Value.ptr(dst, target, 148); + /* } */ case 7: + case 4: + $panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String())); + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } var $f = {$blk: assignTo, $c: true, $r, _r, _r$1, _r$2, context, dst, fl, target, v, x, $s};return $f; + }; + Value.prototype.assignTo = function(...$args) { return this.$val.assignTo(...$args); }; + $ptrType(Value).prototype.Cap = function Cap() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (17)) { + return v.typ.Len(); + } else if ((_1 === (18)) || (_1 === (23))) { + return $parseInt($clone(v, Value).object().$capacity) >> 0; + } + $panic(new ValueError.ptr("reflect.Value.Cap", k)); + }; + Value.prototype.Cap = function(...$args) { return this.$val.Cap(...$args); }; + $ptrType(Value).prototype.Index = function Index(i) { + var {$24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = [a]; + a$1 = [a$1]; + c = [c]; + i = [i]; + typ = [typ]; + typ$1 = [typ$1]; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ if (_1 === (24)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (17)) { */ case 2: + tt = (v.typ.kindType); + if (i[0] < 0 || i[0] > ((tt.len >> 0))) { + $panic(new $String("reflect: array index out of range")); + } + typ[0] = tt.elem; + fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; + a[0] = v.ptr; + /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7: + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func1() { + return wrapJsObject(typ[0], a[0][i[0]]); + }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func2(x) { + var x; + a[0][i[0]] = unwrapJsObject(typ[0], x); + }; })(a, a$1, c, i, typ, typ$1))), fl); + /* } */ case 8: + _r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 10; case 10: return $24r; + /* } else if (_1 === (23)) { */ case 3: + s = $clone(v, Value).object(); + if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) { + $panic(new $String("reflect: slice index out of range")); + } + tt$1 = (v.typ.kindType); + typ$1[0] = tt$1.elem; + fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$1[0].Kind() >>> 0))) >>> 0; + i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0; + a$1[0] = s.$array; + /* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 11: + $s = -1; return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func3() { + return wrapJsObject(typ$1[0], a$1[0][i[0]]); + }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func4(x) { + var x; + a$1[0][i[0]] = unwrapJsObject(typ$1[0], x); + }; })(a, a$1, c, i, typ, typ$1))), fl$1); + /* } */ case 12: + _r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 14; case 14: return $24r$1; + /* } else if (_1 === (24)) { */ case 4: + str = (v.ptr).$get(); + if (i[0] < 0 || i[0] >= str.length) { + $panic(new $String("reflect: string index out of range")); + } + fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0; + c[0] = str.charCodeAt(i[0]); + $s = -1; return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, c)))), fl$2); + /* } else { */ case 5: + $panic(new ValueError.ptr("reflect.Value.Index", k)); + /* } */ case 6: + case 1: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } var $f = {$blk: Index, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s};return $f; + }; + Value.prototype.Index = function(...$args) { return this.$val.Index(...$args); }; + $ptrType(Value).prototype.InterfaceData = function InterfaceData() { + var v; + v = this; + $panic(new $String("InterfaceData is not supported by GopherJS")); + }; + Value.prototype.InterfaceData = function(...$args) { return this.$val.InterfaceData(...$args); }; + $ptrType(Value).prototype.IsNil = function IsNil() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (22)) || (_1 === (23))) { + return $clone(v, Value).object() === jsType(v.typ).nil; + } else if (_1 === (18)) { + return $clone(v, Value).object() === $chanNil; + } else if (_1 === (19)) { + return $clone(v, Value).object() === $throwNilPointerError; + } else if (_1 === (21)) { + return $clone(v, Value).object() === false; + } else if (_1 === (20)) { + return $clone(v, Value).object() === $ifaceNil; + } else if (_1 === (26)) { + return $clone(v, Value).object() === 0; + } else { + $panic(new ValueError.ptr("reflect.Value.IsNil", k)); + } + }; + Value.prototype.IsNil = function(...$args) { return this.$val.IsNil(...$args); }; + $ptrType(Value).prototype.Len = function Len$1() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (17)) || (_1 === (24))) { + return $parseInt($clone(v, Value).object().length); + } else if (_1 === (23)) { + return $parseInt($clone(v, Value).object().$length) >> 0; + } else if (_1 === (18)) { + return $parseInt($clone(v, Value).object().$buffer.length) >> 0; + } else if (_1 === (21)) { + return $parseInt($clone(v, Value).object().size) >> 0; + } else { + $panic(new ValueError.ptr("reflect.Value.Len", k)); + } + }; + Value.prototype.Len = function(...$args) { return this.$val.Len(...$args); }; + $ptrType(Value).prototype.Pointer = function Pointer() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (18)) || (_1 === (21)) || (_1 === (22)) || (_1 === (26))) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return $clone(v, Value).object(); + } else if (_1 === (19)) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return 1; + } else if (_1 === (23)) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return $clone(v, Value).object().$array; + } else { + $panic(new ValueError.ptr("reflect.Value.Pointer", k)); + } + }; + Value.prototype.Pointer = function(...$args) { return this.$val.Pointer(...$args); }; + $ptrType(Value).prototype.Set = function Set(x) { + var {_1, _r, _r$1, v, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(x.flag).mustBeExported(); + _r = $clone(x, Value).assignTo("reflect.Set", v.typ, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + Value.copy(x, _r); + /* */ if (!((((v.flag & 128) >>> 0) === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((((v.flag & 128) >>> 0) === 0))) { */ case 2: + _1 = v.typ.Kind(); + /* */ if (_1 === (17)) { $s = 5; continue; } + /* */ if (_1 === (20)) { $s = 6; continue; } + /* */ if (_1 === (25)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === (17)) { */ case 5: + jsType(v.typ).copy(v.ptr, x.ptr); + $s = 9; continue; + /* } else if (_1 === (20)) { */ case 6: + _r$1 = valueInterface($clone(x, Value)); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + v.ptr.$set(_r$1); + $s = 9; continue; + /* } else if (_1 === (25)) { */ case 7: + copyStruct(v.ptr, x.ptr, v.typ); + $s = 9; continue; + /* } else { */ case 8: + v.ptr.$set($clone(x, Value).object()); + /* } */ case 9: + case 4: + $s = -1; return; + /* } */ case 3: + v.ptr = x.ptr; + $s = -1; return; + /* */ } return; } var $f = {$blk: Set, $c: true, $r, _1, _r, _r$1, v, x, $s};return $f; + }; + Value.prototype.Set = function(...$args) { return this.$val.Set(...$args); }; + $ptrType(Value).prototype.SetBytes = function SetBytes(x) { + var {_r, _r$1, _v, slice, typedSlice, v, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 8))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 8))) { */ case 1: + $panic(new $String("reflect.Value.SetBytes of non-byte slice")); + /* } */ case 2: + slice = x; + if (!(v.typ.Name() === "")) { _v = true; $s = 6; continue s; } + _r$1 = v.typ.Elem().Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = !(_r$1 === ""); case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + typedSlice = new (jsType(v.typ))(slice.$array); + typedSlice.$offset = slice.$offset; + typedSlice.$length = slice.$length; + typedSlice.$capacity = slice.$capacity; + slice = typedSlice; + /* } */ case 5: + v.ptr.$set(slice); + $s = -1; return; + /* */ } return; } var $f = {$blk: SetBytes, $c: true, $r, _r, _r$1, _v, slice, typedSlice, v, x, $s};return $f; + }; + Value.prototype.SetBytes = function(...$args) { return this.$val.SetBytes(...$args); }; + $ptrType(Value).prototype.SetCap = function SetCap(n) { + var n, newSlice, s, v; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + s = v.ptr.$get(); + if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) { + $panic(new $String("reflect: slice capacity out of range in SetCap")); + } + newSlice = new (jsType(v.typ))(s.$array); + newSlice.$offset = s.$offset; + newSlice.$length = s.$length; + newSlice.$capacity = n; + v.ptr.$set(newSlice); + }; + Value.prototype.SetCap = function(...$args) { return this.$val.SetCap(...$args); }; + $ptrType(Value).prototype.SetLen = function SetLen(n) { + var n, newSlice, s, v; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + s = v.ptr.$get(); + if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) { + $panic(new $String("reflect: slice length out of range in SetLen")); + } + newSlice = new (jsType(v.typ))(s.$array); + newSlice.$offset = s.$offset; + newSlice.$length = n; + newSlice.$capacity = s.$capacity; + v.ptr.$set(newSlice); + }; + Value.prototype.SetLen = function(...$args) { return this.$val.SetLen(...$args); }; + $ptrType(Value).prototype.Slice = function Slice(i, j) { + var {$24r, $24r$1, _1, _r, _r$1, cap, i, j, kind$1, s, str, tt, typ, v, $s, $r, $c} = $restore(this, {i, j}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + cap = 0; + typ = $ifaceNil; + s = null; + kind$1 = new flag(v.flag).kind(); + _1 = kind$1; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ if (_1 === (24)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (17)) { */ case 2: + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = (v.typ.kindType); + cap = ((tt.len >> 0)); + typ = SliceOf(tt.elem); + s = new (jsType(typ))($clone(v, Value).object()); + $s = 6; continue; + /* } else if (_1 === (23)) { */ case 3: + typ = v.typ; + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + $s = 6; continue; + /* } else if (_1 === (24)) { */ case 4: + str = (v.ptr).$get(); + if (i < 0 || j < i || j > str.length) { + $panic(new $String("reflect.Value.Slice: string slice index out of bounds")); + } + _r = ValueOf(new $String($substring(str, i, j))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 8; case 8: return $24r; + /* } else { */ case 5: + $panic(new ValueError.ptr("reflect.Value.Slice", kind$1)); + /* } */ case 6: + case 1: + if (i < 0 || j < i || j > cap) { + $panic(new $String("reflect.Value.Slice: slice index out of bounds")); + } + _r$1 = makeValue(typ, $subslice(s, i, j), new flag(v.flag).ro()); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 10; case 10: return $24r$1; + /* */ } return; } var $f = {$blk: Slice, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, cap, i, j, kind$1, s, str, tt, typ, v, $s};return $f; + }; + Value.prototype.Slice = function(...$args) { return this.$val.Slice(...$args); }; + $ptrType(Value).prototype.Slice3 = function Slice3(i, j, k) { + var {$24r, _1, _r, cap, i, j, k, kind$1, s, tt, typ, v, $s, $r, $c} = $restore(this, {i, j, k}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + cap = 0; + typ = $ifaceNil; + s = null; + kind$1 = new flag(v.flag).kind(); + _1 = kind$1; + if (_1 === (17)) { + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = (v.typ.kindType); + cap = ((tt.len >> 0)); + typ = SliceOf(tt.elem); + s = new (jsType(typ))($clone(v, Value).object()); + } else if (_1 === (23)) { + typ = v.typ; + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + } else { + $panic(new ValueError.ptr("reflect.Value.Slice3", kind$1)); + } + if (i < 0 || j < i || k < j || k > cap) { + $panic(new $String("reflect.Value.Slice3: slice index out of bounds")); + } + _r = makeValue(typ, $subslice(s, i, j, k), new flag(v.flag).ro()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Slice3, $c: true, $r, $24r, _1, _r, cap, i, j, k, kind$1, s, tt, typ, v, $s};return $f; + }; + Value.prototype.Slice3 = function(...$args) { return this.$val.Slice3(...$args); }; + $ptrType(Value).prototype.Close = function Close() { + var v; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + $close($clone(v, Value).object()); + }; + Value.prototype.Close = function(...$args) { return this.$val.Close(...$args); }; + $ptrType(Value).prototype.Elem = function Elem$1() { + var {$24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (20)) { $s = 2; continue; } + /* */ if (_1 === (22)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_1 === (20)) { */ case 2: + val = $clone(v, Value).object(); + if (val === $ifaceNil) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + typ = reflectType(val.constructor); + _r = makeValue(typ, val.$val, new flag(v.flag).ro()); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 7; case 7: return $24r; + /* } else if (_1 === (22)) { */ case 3: + if ($clone(v, Value).IsNil()) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + val$1 = $clone(v, Value).object(); + tt = (v.typ.kindType); + fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; + fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0; + $s = -1; return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl); + /* } else { */ case 4: + $panic(new ValueError.ptr("reflect.Value.Elem", k)); + /* } */ case 5: + case 1: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } var $f = {$blk: Elem$1, $c: true, $r, $24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s};return $f; + }; + Value.prototype.Elem = function(...$args) { return this.$val.Elem(...$args); }; + $ptrType(Value).prototype.NumField = function NumField() { + var tt, v; + v = this; + new flag(v.flag).mustBe(25); + tt = (v.typ.kindType); + return tt.fields.$length; + }; + Value.prototype.NumField = function(...$args) { return this.$val.NumField(...$args); }; + $ptrType(Value).prototype.MapKeys = function MapKeys() { + var {_r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(21); + tt = (v.typ.kindType); + keyType = tt.key; + fl = (new flag(v.flag).ro() | ((keyType.Kind() >>> 0))) >>> 0; + m = $clone(v, Value).pointer(); + mlen = 0; + if (!(m === 0)) { + mlen = maplen(m); + } + it = mapiterinit(v.typ, m); + a = $makeSlice(sliceType$6, mlen); + i = 0; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < a.$length)) { break; } */ if(!(i < a.$length)) { $s = 2; continue; } + _r = mapiterkey(it); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + if (key === 0) { + /* break; */ $s = 2; continue; + } + Value.copy(((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]), copyVal(keyType, fl, key)); + mapiternext(it); + i = i + (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return $subslice(a, 0, i); + /* */ } return; } var $f = {$blk: MapKeys, $c: true, $r, _r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s};return $f; + }; + Value.prototype.MapKeys = function(...$args) { return this.$val.MapKeys(...$args); }; + $ptrType(Value).prototype.MapIndex = function MapIndex(key) { + var {_r, e, fl, k, key, tt, typ, v, $s, $r, $c} = $restore(this, {key}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(21); + tt = (v.typ.kindType); + _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + Value.copy(key, _r); + k = 0; + if (!((((key.flag & 128) >>> 0) === 0))) { + k = key.ptr; + } else { + k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$7(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); + } + e = mapaccess(v.typ, $clone(v, Value).pointer(), k); + if (e === 0) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + typ = tt.elem; + fl = new flag((((v.flag | key.flag) >>> 0))).ro(); + fl = (fl | (((typ.Kind() >>> 0)))) >>> 0; + $s = -1; return copyVal(typ, fl, e); + /* */ } return; } var $f = {$blk: MapIndex, $c: true, $r, _r, e, fl, k, key, tt, typ, v, $s};return $f; + }; + Value.prototype.MapIndex = function(...$args) { return this.$val.MapIndex(...$args); }; + $ptrType(Value).prototype.Field = function Field(i) { + var {$24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + jsTag = [jsTag]; + prop = [prop]; + s = [s]; + typ = [typ]; + v = this; + if (!((new flag(v.flag).kind() === 25))) { + $panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind())); + } + tt = (v.typ.kindType); + if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) { + $panic(new $String("reflect: Field index out of range")); + } + prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String); + field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + typ[0] = field.typ; + fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; + if (!$clone(field.name, name).isExported()) { + if (field.embedded()) { + fl = (fl | (64)) >>> 0; + } else { + fl = (fl | (32)) >>> 0; + } + } + tag = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag(); + /* */ if (!(tag === "") && !((i === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(tag === "") && !((i === 0))) { */ case 1: + jsTag[0] = getJsTag(tag); + /* */ if (!(jsTag[0] === "")) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(jsTag[0] === "")) { */ case 3: + /* while (true) { */ case 5: + o = [o]; + _r = $clone(v, Value).Field(0); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + Value.copy(v, _r); + /* */ if (v.typ === jsObjectPtr) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (v.typ === jsObjectPtr) { */ case 8: + o[0] = $clone(v, Value).object().object; + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, o, prop, s, typ) { return function Value·Field·func1() { + return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0])); + }; })(jsTag, o, prop, s, typ), (function(jsTag, o, prop, s, typ) { return function Value·Field·func2(x$2) { + var x$2; + o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0])); + }; })(jsTag, o, prop, s, typ))), fl); + /* } */ case 9: + /* */ if (v.typ.Kind() === 22) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (v.typ.Kind() === 22) { */ case 10: + _r$1 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + Value.copy(v, _r$1); + /* } */ case 11: + $s = 5; continue; + case 6: + /* } */ case 4: + /* } */ case 2: + s[0] = v.ptr; + /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13: + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, prop, s, typ) { return function Value·Field·func3() { + return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]); + }; })(jsTag, prop, s, typ), (function(jsTag, prop, s, typ) { return function Value·Field·func4(x$2) { + var x$2; + s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2); + }; })(jsTag, prop, s, typ))), fl); + /* } */ case 14: + _r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 16; case 16: return $24r; + /* */ } return; } var $f = {$blk: Field, $c: true, $r, $24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s};return $f; + }; + Value.prototype.Field = function(...$args) { return this.$val.Field(...$args); }; + $ptrType(errorString).prototype.Error = function Error$1() { + var e; + e = this; + return e.s; + }; + unquote = function unquote$1(s) { + var s; + if (s.length < 2) { + return [s, $ifaceNil]; + } + if ((s.charCodeAt(0) === 39) || (s.charCodeAt(0) === 34)) { + if (s.charCodeAt((s.length - 1 >> 0)) === s.charCodeAt(0)) { + return [$substring(s, 1, (s.length - 1 >> 0)), $ifaceNil]; + } + return ["", $pkg.ErrSyntax]; + } + return [s, $ifaceNil]; + }; + flag.prototype.mustBe = function mustBe(expected) { + var expected, f; + f = this.$val; + if (!((((((f & 31) >>> 0) >>> 0)) === expected))) { + $panic(new ValueError.ptr(methodName(), new flag(f).kind())); + } + }; + $ptrType(flag).prototype.mustBe = function(...$args) { return new flag(this.$get()).mustBe(...$args); }; + $ptrType(rtype).prototype.Comparable = function Comparable() { + var {$24r, _1, _r, _r$1, ft, i, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _1 = t.Kind(); + /* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { $s = 2; continue; } + /* */ if (_1 === (17)) { $s = 3; continue; } + /* */ if (_1 === (25)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2: + $s = -1; return false; + /* } else if (_1 === (17)) { */ case 3: + _r = t.Elem().Comparable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 7; case 7: return $24r; + /* } else if (_1 === (25)) { */ case 4: + i = 0; + /* while (true) { */ case 8: + /* if (!(i < t.NumField())) { break; } */ if(!(i < t.NumField())) { $s = 9; continue; } + ft = $clone(t.Field(i), structField); + _r$1 = ft.typ.Comparable(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!_r$1) { */ case 10: + $s = -1; return false; + /* } */ case 11: + i = i + (1) >> 0; + $s = 8; continue; + case 9: + /* } */ case 5: + case 1: + $s = -1; return true; + /* */ } return; } var $f = {$blk: Comparable, $c: true, $r, $24r, _1, _r, _r$1, ft, i, t, $s};return $f; + }; + $ptrType(rtype).prototype.IsVariadic = function IsVariadic() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: IsVariadic of non-func type")); + } + tt = (t.kindType); + return !((((tt.outCount & 32768) >>> 0) === 0)); + }; + $ptrType(rtype).prototype.Field = function Field$1(i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: Field of non-struct type")); + } + tt = (t.kindType); + if (i < 0 || i >= tt.fields.$length) { + $panic(new $String("reflect: Field index out of bounds")); + } + return (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(rtype).prototype.Key = function Key() { + var t, tt; + t = this; + if (!((t.Kind() === 21))) { + $panic(new $String("reflect: Key of non-map type")); + } + tt = (t.kindType); + return toType(tt.key); + }; + $ptrType(rtype).prototype.NumField = function NumField$1() { + var t, tt; + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: NumField of non-struct type")); + } + tt = (t.kindType); + return tt.fields.$length; + }; + $ptrType(rtype).prototype.Method = function Method$1(i) { + var {$24r, _i, _i$1, _r, _r$1, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + prop = [prop]; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + t = this; + /* */ if (t.Kind() === 20) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (t.Kind() === 20) { */ case 1: + tt = (t.kindType); + _r = tt.rtype.Method(i); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + Method.copy(m, _r); + $24r = m; + $s = 4; case 4: return $24r; + /* } */ case 2: + methods = t.exportedMethods(); + if (i < 0 || i >= methods.$length) { + $panic(new $String("reflect: Method index out of range")); + } + p = $clone(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]), method); + pname = $clone(t.nameOff(p.name), name); + m.Name = $clone(pname, name).name(); + fl = 19; + mtyp = t.typeOff(p.mtyp); + ft = (mtyp.kindType); + in$1 = $makeSlice(sliceType$7, 0, (1 + ft.in$().$length >> 0)); + in$1 = $append(in$1, t); + _ref = ft.in$(); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + in$1 = $append(in$1, arg); + _i++; + } + out = $makeSlice(sliceType$7, 0, ft.out().$length); + _ref$1 = ft.out(); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + out = $append(out, ret); + _i$1++; + } + _r$1 = FuncOf(in$1, out, ft.rtype.IsVariadic()); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + mt = _r$1; + m.Type = mt; + prop[0] = $internalize($methodSet(t[$externalize(idJsType, $String)])[i].prop, $String); + fn = js.MakeFunc((function(prop) { return function rtype·Method·func1(this$1, arguments$1) { + var arguments$1, rcvr, this$1; + rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]); + return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$8))); + }; })(prop)); + Value.copy(m.Func, new Value.ptr($assertType(mt, ptrType$1), (fn), fl)); + m.Index = i; + Method.copy(m, m); + $s = -1; return m; + /* */ } return; } var $f = {$blk: Method$1, $c: true, $r, $24r, _i, _i$1, _r, _r$1, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s};return $f; + }; + Swapper = function Swapper$1(slice) { + var {_1, _r, a, off, slice, v, vLen, $s, $r, $c} = $restore(this, {slice}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = [a]; + off = [off]; + vLen = [vLen]; + _r = ValueOf(slice); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = $clone(_r, Value); + if (!(($clone(v, Value).Kind() === 23))) { + $panic(new ValueError.ptr("Swapper", $clone(v, Value).Kind())); + } + vLen[0] = (($clone(v, Value).Len() >>> 0)); + _1 = vLen[0]; + if (_1 === (0)) { + $s = -1; return (function(a, off, vLen) { return function Swapper·func1(i, j) { + var i, j; + $panic(new $String("reflect: slice index out of range")); + }; })(a, off, vLen); + } else if (_1 === (1)) { + $s = -1; return (function(a, off, vLen) { return function Swapper·func2(i, j) { + var i, j; + if (!((i === 0)) || !((j === 0))) { + $panic(new $String("reflect: slice index out of range")); + } + }; })(a, off, vLen); + } + a[0] = slice.$array; + off[0] = $parseInt(slice.$offset) >> 0; + $s = -1; return (function(a, off, vLen) { return function Swapper·func3(i, j) { + var i, j, tmp; + if (((i >>> 0)) >= vLen[0] || ((j >>> 0)) >= vLen[0]) { + $panic(new $String("reflect: slice index out of range")); + } + i = i + (off[0]) >> 0; + j = j + (off[0]) >> 0; + tmp = a[0][i]; + a[0][i] = a[0][j]; + a[0][j] = tmp; + }; })(a, off, vLen); + /* */ } return; } var $f = {$blk: Swapper$1, $c: true, $r, _1, _r, a, off, slice, v, vLen, $s};return $f; + }; + $pkg.Swapper = Swapper; + init = function init$1() { + var {used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + used = (function init·func1(i) { + var i; + }); + $r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, sliceType$5.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil, 0), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), 0, 0, sliceType$2.nil, sliceType$2.nil), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), new name.ptr(ptrType$6.nil), sliceType$9.nil), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, $throwNilPointerError, 0, 0, 0, 0), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), new name.ptr(ptrType$6.nil), sliceType$10.nil), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$12 = new structField.ptr(new name.ptr(ptrType$6.nil), ptrType$1.nil, 0), new x$12.constructor.elem(x$12))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + initialized = true; + uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); + $s = -1; return; + /* */ } return; } var $f = {$blk: init$1, $c: true, $r, used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; + jsType = function jsType$1(typ) { + var typ; + return typ[$externalize(idJsType, $String)]; + }; + reflectType = function reflectType$1(typ) { + var _1, _i, _i$1, _i$2, _i$3, _key, _ref, _ref$1, _ref$2, _ref$3, dir, exported, exported$1, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, m, m$1, m$2, methodSet, methods, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut, xcount; + if (typ[$externalize(idReflectType, $String)] === undefined) { + rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), $throwNilPointerError, ptrType$6.nil, newNameOff($clone(newName(internalStr(typ.string), "", !!(typ.exported), false), name)), 0); + rt[$externalize(idJsType, $String)] = typ; + typ[$externalize(idReflectType, $String)] = rt; + methodSet = $methodSet(typ); + if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) { + rt.tflag = (rt.tflag | (1)) >>> 0; + if (!!(typ.named)) { + rt.tflag = (rt.tflag | (4)) >>> 0; + } + reflectMethods = sliceType$5.nil; + i = 0; + while (true) { + if (!(i < $parseInt(methodSet.length))) { break; } + m = methodSet[i]; + exported = internalStr(m.pkg) === ""; + if (!exported) { + i = i + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m.name), "", exported, false), name)), newTypeOff(reflectType(m.typ)), 0, 0)); + i = i + (1) >> 0; + } + xcount = ((reflectMethods.$length << 16 >>> 16)); + i$1 = 0; + while (true) { + if (!(i$1 < $parseInt(methodSet.length))) { break; } + m$1 = methodSet[i$1]; + exported$1 = internalStr(m$1.pkg) === ""; + if (exported$1) { + i$1 = i$1 + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m$1.name), "", exported$1, false), name)), newTypeOff(reflectType(m$1.typ)), 0, 0)); + i$1 = i$1 + (1) >> 0; + } + ut = new uncommonType.ptr(newNameOff($clone(newName(internalStr(typ.pkg), "", false, false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, 0, reflectMethods); + _key = rt; (uncommonTypeMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: ut }); + ut[$externalize(idJsType, $String)] = typ; + } + _1 = rt.Kind(); + if (_1 === (17)) { + setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem), ptrType$1.nil, ((($parseInt(typ.len) >> 0) >>> 0)))); + } else if (_1 === (18)) { + dir = 3; + if (!!(typ.sendOnly)) { + dir = 2; + } + if (!!(typ.recvOnly)) { + dir = 1; + } + setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0)))); + } else if (_1 === (19)) { + params = typ.params; + in$1 = $makeSlice(sliceType$2, $parseInt(params.length)); + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$2 = _i; + ((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = reflectType(params[i$2])); + _i++; + } + results = typ.results; + out = $makeSlice(sliceType$2, $parseInt(results.length)); + _ref$1 = out; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$3 = _i$1; + ((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = reflectType(results[i$3])); + _i$1++; + } + outCount = (($parseInt(results.length) << 16 >>> 16)); + if (!!(typ.variadic)) { + outCount = (outCount | (32768)) >>> 0; + } + setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out)); + } else if (_1 === (20)) { + methods = typ.methods; + imethods = $makeSlice(sliceType$9, $parseInt(methods.length)); + _ref$2 = imethods; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$4 = _i$2; + m$2 = methods[i$4]; + imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new imethod.ptr(newNameOff($clone(newName(internalStr(m$2.name), "", internalStr(m$2.pkg) === "", false), name)), newTypeOff(reflectType(m$2.typ)))); + _i$2++; + } + setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", false, false), name), imethods)); + } else if (_1 === (21)) { + setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$1.nil, $throwNilPointerError, 0, 0, 0, 0)); + } else if (_1 === (22)) { + setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem))); + } else if (_1 === (23)) { + setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem))); + } else if (_1 === (25)) { + fields = typ.fields; + reflectFields = $makeSlice(sliceType$10, $parseInt(fields.length)); + _ref$3 = reflectFields; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + i$5 = _i$3; + f = fields[i$5]; + structField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), !!(f.exported), !!(f.embedded)), name), reflectType(f.typ), ((i$5 >>> 0)))); + _i$3++; + } + setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", false, false), name), reflectFields)); + } + } + return ((typ[$externalize(idReflectType, $String)])); + }; + setKindType = function setKindType$1(rt, kindType$1) { + var kindType$1, rt; + rt[$externalize(idKindType, $String)] = kindType$1; + kindType$1[$externalize(idRtype, $String)] = rt; + }; + $ptrType(uncommonType).prototype.methods = function methods() { + var t; + t = this; + return t._methods; + }; + $ptrType(uncommonType).prototype.exportedMethods = function exportedMethods$1() { + var t; + t = this; + return $subslice(t._methods, 0, t.xcount, t.xcount); + }; + $ptrType(rtype).prototype.uncommon = function uncommon() { + var _entry, t; + t = this; + return (_entry = $mapIndex(uncommonTypeMap,ptrType$1.keyFor(t)), _entry !== undefined ? _entry.v : ptrType$4.nil); + }; + $ptrType(funcType).prototype.in$ = function in$1() { + var t; + t = this; + return t._in; + }; + $ptrType(funcType).prototype.out = function out() { + var t; + t = this; + return t._out; + }; + $ptrType(name).prototype.name = function name$1() { + var _entry, n, s; + s = ""; + n = this; + s = (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).name; + return s; + }; + name.prototype.name = function(...$args) { return this.$val.name(...$args); }; + $ptrType(name).prototype.tag = function tag() { + var _entry, n, s; + s = ""; + n = this; + s = (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).tag; + return s; + }; + name.prototype.tag = function(...$args) { return this.$val.tag(...$args); }; + $ptrType(name).prototype.pkgPath = function pkgPath() { + var n; + n = this; + return ""; + }; + name.prototype.pkgPath = function(...$args) { return this.$val.pkgPath(...$args); }; + $ptrType(name).prototype.isExported = function isExported() { + var _entry, n; + n = this; + return (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).exported; + }; + name.prototype.isExported = function(...$args) { return this.$val.isExported(...$args); }; + $ptrType(name).prototype.embedded = function embedded$1() { + var _entry, n; + n = this; + return (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).embedded; + }; + name.prototype.embedded = function(...$args) { return this.$val.embedded(...$args); }; + newName = function newName$1(n, tag$1, exported, embedded$2) { + var _key, b, embedded$2, exported, n, tag$1; + b = $newDataPointer(0, ptrType$6); + _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$6.keyFor(_key), { k: _key, v: new nameData.ptr(n, tag$1, exported, embedded$2) }); + return new name.ptr(b); + }; + $ptrType(rtype).prototype.nameOff = function nameOff$1(off) { + var off, t, x; + t = this; + return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x])); + }; + newNameOff = function newNameOff$1(n) { + var i, n; + i = nameOffList.$length; + nameOffList = $append(nameOffList, n); + return ((i >> 0)); + }; + $ptrType(rtype).prototype.typeOff = function typeOff$1(off) { + var off, t, x; + t = this; + return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x])); + }; + newTypeOff = function newTypeOff$1(t) { + var i, t; + i = typeOffList.$length; + typeOffList = $append(typeOffList, t); + return ((i >> 0)); + }; + internalStr = function internalStr$1(strObj) { + var c, strObj; + c = new structType$2.ptr(""); + c.str = strObj; + return c.str; + }; + isWrapped = function isWrapped$1(typ) { + var typ; + return !!(jsType(typ).wrapped); + }; + copyStruct = function copyStruct$1(dst, src, typ) { + var dst, fields, i, prop, src, typ; + fields = jsType(typ).fields; + i = 0; + while (true) { + if (!(i < $parseInt(fields.length))) { break; } + prop = $internalize(fields[i].prop, $String); + dst[$externalize(prop, $String)] = src[$externalize(prop, $String)]; + i = i + (1) >> 0; + } + }; + makeValue = function makeValue$1(t, v, fl) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r, $c} = $restore(this, {t, v, fl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + rt = _r; + _r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (_r$1 === 17) { _v$1 = true; $s = 5; continue s; } + _r$2 = t.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 === 25; case 5: + if (_v$1) { _v = true; $s = 4; continue s; } + _r$3 = t.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3 === 22; case 4: + /* */ if (_v) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_v) { */ case 2: + _r$4 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0); + $s = 10; case 10: return $24r; + /* } */ case 3: + _r$5 = t.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$1 = new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0); + $s = 12; case 12: return $24r$1; + /* */ } return; } var $f = {$blk: makeValue$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s};return $f; + }; + TypeOf = function TypeOf$1(i) { + var i; + if (!initialized) { + return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); + } + if ($interfaceIsEqual(i, $ifaceNil)) { + return $ifaceNil; + } + return reflectType(i.constructor); + }; + $pkg.TypeOf = TypeOf; + ValueOf = function ValueOf$1(i) { + var {$24r, _r, i, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(i, $ifaceNil)) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + _r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ValueOf$1, $c: true, $r, $24r, _r, i, $s};return $f; + }; + $pkg.ValueOf = ValueOf; + FuncOf = function FuncOf$1(in$2, out$1, variadic) { + var {_i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$2, jsIn, jsOut, out$1, v, v$1, variadic, x, $s, $r, $c} = $restore(this, {in$2, out$1, variadic}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(variadic)) { _v = false; $s = 3; continue s; } + if (in$2.$length === 0) { _v$1 = true; $s = 4; continue s; } + _r = (x = in$2.$length - 1 >> 0, ((x < 0 || x >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v$1 = !((_r === 23)); case 4: + _v = _v$1; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $panic(new $String("reflect.FuncOf: last arg of variadic func must be slice")); + /* } */ case 2: + jsIn = $makeSlice(sliceType$8, in$2.$length); + _ref = in$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v)); + _i++; + } + jsOut = $makeSlice(sliceType$8, out$1.$length); + _ref$1 = out$1; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + ((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1)); + _i$1++; + } + $s = -1; return reflectType($funcType($externalize(jsIn, sliceType$8), $externalize(jsOut, sliceType$8), $externalize(variadic, $Bool))); + /* */ } return; } var $f = {$blk: FuncOf$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$2, jsIn, jsOut, out$1, v, v$1, variadic, x, $s};return $f; + }; + $pkg.FuncOf = FuncOf; + $ptrType(rtype).prototype.ptrTo = function ptrTo() { + var t; + t = this; + return reflectType($ptrType(jsType(t))); + }; + SliceOf = function SliceOf$1(t) { + var t; + return reflectType($sliceType(jsType(t))); + }; + $pkg.SliceOf = SliceOf; + unsafe_New = function unsafe_New$1(typ) { + var _1, typ; + _1 = typ.Kind(); + if (_1 === (25)) { + return (new (jsType(typ).ptr)()); + } else if (_1 === (17)) { + return (jsType(typ).zero()); + } else { + return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo()))); + } + }; + typedmemmove = function typedmemmove$1(t, dst, src) { + var dst, src, t; + dst.$set(src.$get()); + }; + keyFor = function keyFor$1(t, key) { + var k, key, kv, t; + kv = key; + if (!(kv.$get === undefined)) { + kv = kv.$get(); + } + k = $internalize(jsType(t.Key()).keyFor(kv), $String); + return [kv, k]; + }; + mapaccess = function mapaccess$1(t, m, key) { + var _tuple, entry, k, key, m, t; + _tuple = keyFor(t, key); + k = _tuple[1]; + entry = m.get($externalize(k, $String)); + if (entry === undefined) { + return 0; + } + return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem())))); + }; + $ptrType(mapIter).prototype.skipUntilValidKey = function skipUntilValidKey() { + var iter, k; + iter = this; + while (true) { + if (!(iter.i < $parseInt(iter.keys.length))) { break; } + k = iter.keys[iter.i]; + if (!(iter.m.get(k) === undefined)) { + break; + } + iter.i = iter.i + (1) >> 0; + } + }; + mapiterinit = function mapiterinit$1(t, m) { + var m, t; + return (new mapIter.ptr(t, m, $global.Array.from(m.keys()), 0, null)); + }; + mapiterkey = function mapiterkey$1(it) { + var {$24r, _r, _r$1, _r$2, it, iter, k, kv, $s, $r, $c} = $restore(this, {it}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + iter = ($pointerOfStructConversion(it, ptrType$9)); + kv = null; + if (!(iter.last === null)) { + kv = iter.last; + } else { + iter.skipUntilValidKey(); + if (iter.i === $parseInt(iter.keys.length)) { + $s = -1; return 0; + } + k = iter.keys[iter.i]; + kv = iter.m.get(k); + iter.last = kv; + } + _r = $assertType(iter.t, TypeEx).Key(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = ($newDataPointer(kv.k, _r$2)); + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: mapiterkey$1, $c: true, $r, $24r, _r, _r$1, _r$2, it, iter, k, kv, $s};return $f; + }; + mapiternext = function mapiternext$1(it) { + var it, iter; + iter = ($pointerOfStructConversion(it, ptrType$9)); + iter.last = null; + iter.i = iter.i + (1) >> 0; + }; + maplen = function maplen$1(m) { + var m; + return $parseInt(m.size) >> 0; + }; + methodReceiver = function methodReceiver$1(op, v, i) { + var _, fn, i, m, m$1, ms, op, prop, rcvr, t, tt, v, x; + _ = ptrType$1.nil; + t = ptrType$5.nil; + fn = 0; + prop = ""; + if (v.typ.Kind() === 20) { + tt = (v.typ.kindType); + if (i < 0 || i >= tt.methods.$length) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) { + $panic(new $String("reflect: " + op + " of unexported method")); + } + t = (tt.rtype.typeOff(m.typ).kindType); + prop = $clone(tt.rtype.nameOff(m.name), name).name(); + } else { + ms = v.typ.exportedMethods(); + if (((i >>> 0)) >= ((ms.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); + if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) { + $panic(new $String("reflect: " + op + " of unexported method")); + } + t = (v.typ.typeOff(m$1.mtyp).kindType); + prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String); + } + rcvr = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr = new (jsType(v.typ))(rcvr); + } + fn = (rcvr[$externalize(prop, $String)]); + return [_, t, fn]; + }; + valueInterface = function valueInterface$1(v) { + var {_r, cv, v, $s, $r, $c} = $restore(this, {v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (v.flag === 0) { + $panic(new ValueError.ptr("reflect.Value.Interface", 0)); + } + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue("Interface", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + Value.copy(v, _r); + /* } */ case 2: + if (isWrapped(v.typ)) { + if (!((((v.flag & 128) >>> 0) === 0)) && ($clone(v, Value).Kind() === 25)) { + cv = jsType(v.typ).zero(); + copyStruct(cv, $clone(v, Value).object(), v.typ); + $s = -1; return ((new (jsType(v.typ))(cv))); + } + $s = -1; return ((new (jsType(v.typ))($clone(v, Value).object()))); + } + $s = -1; return (($clone(v, Value).object())); + /* */ } return; } var $f = {$blk: valueInterface$1, $c: true, $r, _r, cv, v, $s};return $f; + }; + ifaceE2I = function ifaceE2I$1(t, src, dst) { + var dst, src, t; + dst.$set(src); + }; + methodName = function methodName$1() { + return "?FIXME?"; + }; + makeMethodValue = function makeMethodValue$1(op, v) { + var {$24r, _r, _tuple, fn, fv, op, rcvr, v, $s, $r, $c} = $restore(this, {op, v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fn = [fn]; + rcvr = [rcvr]; + if (((v.flag & 512) >>> 0) === 0) { + $panic(new $String("reflect: internal error: invalid use of makePartialFunc")); + } + _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); + fn[0] = _tuple[2]; + rcvr[0] = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr[0] = new (jsType(v.typ))(rcvr[0]); + } + fv = js.MakeFunc((function(fn, rcvr) { return function makeMethodValue·func1(this$1, arguments$1) { + var arguments$1, this$1; + return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$8))); + }; })(fn, rcvr)); + _r = $clone(v, Value).Type().common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = new Value.ptr(_r, (fv), (new flag(v.flag).ro() | 19) >>> 0); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: makeMethodValue$1, $c: true, $r, $24r, _r, _tuple, fn, fv, op, rcvr, v, $s};return $f; + }; + wrapJsObject = function wrapJsObject$1(typ, val) { + var typ, val; + if ($interfaceIsEqual(typ, jsObjectPtr)) { + return new (jsType(jsObjectPtr))(val); + } + return val; + }; + unwrapJsObject = function unwrapJsObject$1(typ, val) { + var typ, val; + if ($interfaceIsEqual(typ, jsObjectPtr)) { + return val.object; + } + return val; + }; + getJsTag = function getJsTag$1(tag$1) { + var _tuple, i, name$2, qvalue, tag$1, value; + while (true) { + if (!(!(tag$1 === ""))) { break; } + i = 0; + while (true) { + if (!(i < tag$1.length && (tag$1.charCodeAt(i) === 32))) { break; } + i = i + (1) >> 0; + } + tag$1 = $substring(tag$1, i); + if (tag$1 === "") { + break; + } + i = 0; + while (true) { + if (!(i < tag$1.length && !((tag$1.charCodeAt(i) === 32)) && !((tag$1.charCodeAt(i) === 58)) && !((tag$1.charCodeAt(i) === 34)))) { break; } + i = i + (1) >> 0; + } + if ((i + 1 >> 0) >= tag$1.length || !((tag$1.charCodeAt(i) === 58)) || !((tag$1.charCodeAt((i + 1 >> 0)) === 34))) { + break; + } + name$2 = ($substring(tag$1, 0, i)); + tag$1 = $substring(tag$1, (i + 1 >> 0)); + i = 1; + while (true) { + if (!(i < tag$1.length && !((tag$1.charCodeAt(i) === 34)))) { break; } + if (tag$1.charCodeAt(i) === 92) { + i = i + (1) >> 0; + } + i = i + (1) >> 0; + } + if (i >= tag$1.length) { + break; + } + qvalue = ($substring(tag$1, 0, (i + 1 >> 0))); + tag$1 = $substring(tag$1, (i + 1 >> 0)); + if (name$2 === "js") { + _tuple = unquote(qvalue); + value = _tuple[0]; + return value; + } + } + return ""; + }; + PtrTo = function PtrTo$1(t) { + var t; + return $assertType(t, ptrType$1).ptrTo(); + }; + $pkg.PtrTo = PtrTo; + copyVal = function copyVal$1(typ, fl, ptr) { + var c, fl, ptr, typ; + if (ifaceIndir(typ)) { + c = unsafe_New(typ); + typedmemmove(typ, c, ptr); + return new Value.ptr(typ, c, (fl | 128) >>> 0); + } + return new Value.ptr(typ, (ptr).$get(), fl); + }; + Value.methods = [{prop: "pointer", name: "pointer", pkg: "internal/reflectlite", typ: $funcType([], [$UnsafePointer], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "numMethod", name: "numMethod", pkg: "internal/reflectlite", typ: $funcType([], [$Int], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "object", name: "object", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$2], false)}, {prop: "assignTo", name: "assignTo", pkg: "internal/reflectlite", typ: $funcType([$String, ptrType$1, $UnsafePointer], [Value], false)}, {prop: "call", name: "call", pkg: "internal/reflectlite", typ: $funcType([$String, sliceType$6], [sliceType$6], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$2], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$13], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$6], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}]; + flag.methods = [{prop: "kind", name: "kind", pkg: "internal/reflectlite", typ: $funcType([], [Kind], false)}, {prop: "ro", name: "ro", pkg: "internal/reflectlite", typ: $funcType([], [flag], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "internal/reflectlite", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "internal/reflectlite", typ: $funcType([], [], false)}, {prop: "mustBe", name: "mustBe", pkg: "internal/reflectlite", typ: $funcType([Kind], [], false)}]; + ptrType$10.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "pointers", name: "pointers", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$5], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "hasName", name: "hasName", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "chanDir", name: "chanDir", pkg: "internal/reflectlite", typ: $funcType([], [chanDir], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "kindType", name: "kindType", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [structField], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$4], false)}, {prop: "nameOff", name: "nameOff", pkg: "internal/reflectlite", typ: $funcType([nameOff], [name], false)}, {prop: "typeOff", name: "typeOff", pkg: "internal/reflectlite", typ: $funcType([typeOff], [ptrType$1], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}]; + ptrType$11.methods = [{prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}]; + ptrType$12.methods = [{prop: "embedded", name: "embedded", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}]; + ptrType$13.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "methods", name: "methods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$5], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$5], false)}]; + ptrType$5.methods = [{prop: "in$", name: "in", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$2], false)}, {prop: "out", name: "out", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$2], false)}]; + name.methods = [{prop: "data", name: "data", pkg: "internal/reflectlite", typ: $funcType([$Int, $String], [ptrType$6], false)}, {prop: "hasTag", name: "hasTag", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "readVarint", name: "readVarint", pkg: "internal/reflectlite", typ: $funcType([$Int], [$Int, $Int], false)}, {prop: "name", name: "name", pkg: "internal/reflectlite", typ: $funcType([], [$String], false)}, {prop: "tag", name: "tag", pkg: "internal/reflectlite", typ: $funcType([], [$String], false)}, {prop: "pkgPath", name: "pkgPath", pkg: "internal/reflectlite", typ: $funcType([], [$String], false)}, {prop: "isExported", name: "isExported", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "embedded", name: "embedded", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}]; + ptrType$9.methods = [{prop: "skipUntilValidKey", name: "skipUntilValidKey", pkg: "internal/reflectlite", typ: $funcType([], [], false)}]; + Value.init("internal/reflectlite", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]); + ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: ""}]); + Type.init([{prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$4], false)}]); + rtype.init("internal/reflectlite", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$2, tag: ""}, {prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: ""}]); + method.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: ""}]); + arrayType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "slice", name: "slice", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + chanType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + imethod.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: typeOff, tag: ""}]); + interfaceType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType$9, tag: ""}]); + mapType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "bucket", name: "bucket", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "hasher", name: "hasher", embedded: false, exported: false, typ: funcType$3, tag: ""}, {prop: "keysize", name: "keysize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "valuesize", name: "valuesize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "bucketsize", name: "bucketsize", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + ptrType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); + sliceType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); + structField.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: name, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + structType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$10, tag: ""}]); + errorString.init("internal/reflectlite", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}]); + Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: Value, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}]); + uncommonType.init("internal/reflectlite", [{prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mcount", name: "mcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "xcount", name: "xcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "moff", name: "moff", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_methods", name: "_methods", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); + funcType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "reflect:\"func\""}, {prop: "inCount", name: "inCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "outCount", name: "outCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_in", name: "_in", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "_out", name: "_out", embedded: false, exported: false, typ: sliceType$2, tag: ""}]); + name.init("internal/reflectlite", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: ptrType$6, tag: ""}]); + nameData.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "embedded", name: "embedded", embedded: false, exported: false, typ: $Bool, tag: ""}]); + mapIter.init("internal/reflectlite", [{prop: "t", name: "t", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + TypeEx.init([{prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$4], false)}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = goarch.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + uint8Type = ptrType$1.nil; + nameOffList = sliceType$1.nil; + typeOffList = sliceType$2.nil; + kindNames = new sliceType$3(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); + callHelper = $assertType($internalize($call, $emptyInterface), funcType$1); + $pkg.ErrSyntax = new errorString.ptr("invalid syntax"); + initialized = false; + idJsType = "_jsType"; + idReflectType = "_reflectType"; + idKindType = "kindType"; + idRtype = "_rtype"; + uncommonTypeMap = new $global.Map(); + nameMap = new $global.Map(); + jsObjectPtr = reflectType($jsObjectPtr); + selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1); + $r = init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["errors"] = (function() { + var $pkg = {}, $init, reflectlite, errorString, errorType, _r, Unwrap, Is, New; + reflectlite = $packages["internal/reflectlite"]; + errorString = $newType(0, $kindStruct, "errors.errorString", true, "errors", false, function(s_) { + this.$val = this; + if (arguments.length === 0) { + this.s = ""; + return; + } + this.s = s_; + }); + $pkg.errorString = errorString; + $pkg.$finishSetup = function() { + Unwrap = function Unwrap$1(err) { + var {$24r, _r$1, _tuple, err, ok, u, $s, $r, $c} = $restore(this, {err}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(err, interfaceType, true); + u = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + $s = -1; return $ifaceNil; + } + _r$1 = u.Unwrap(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Unwrap$1, $c: true, $r, $24r, _r$1, _tuple, err, ok, u, $s};return $f; + }; + $pkg.Unwrap = Unwrap; + Is = function Is$1(err, target) { + var {_r$1, _r$2, _r$3, _tuple, _v, err, isComparable, ok, target, x, $s, $r, $c} = $restore(this, {err, target}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(target, $ifaceNil)) { + $s = -1; return $interfaceIsEqual(err, target); + } + _r$1 = reflectlite.TypeOf(target).Comparable(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + isComparable = _r$1; + /* while (true) { */ case 2: + if (isComparable && $interfaceIsEqual(err, target)) { + $s = -1; return true; + } + _tuple = $assertType(err, interfaceType$1, true); + x = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { _v = false; $s = 6; continue s; } + _r$2 = x.Is(target); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + $s = -1; return true; + /* } */ case 5: + _r$3 = Unwrap(err); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + if ($interfaceIsEqual(err, $ifaceNil)) { + $s = -1; return false; + } + $s = 2; continue; + case 3: + $s = -1; return false; + /* */ } return; } var $f = {$blk: Is$1, $c: true, $r, _r$1, _r$2, _r$3, _tuple, _v, err, isComparable, ok, target, x, $s};return $f; + }; + $pkg.Is = Is; + New = function New$1(text) { + var text; + return new errorString.ptr(text); + }; + $pkg.New = New; + $ptrType(errorString).prototype.Error = function Error() { + var e; + e = this; + return e.s; + }; + ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + errorString.init("errors", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = reflectlite.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = reflectlite.TypeOf((ptrType.nil)).Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + errorType = _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/abi"] = (function() { + var $pkg = {}, $init, goarch, FuncPCABI0; + goarch = $packages["internal/goarch"]; + $pkg.$finishSetup = function() { + FuncPCABI0 = function() { + $throwRuntimeError("native function not implemented: internal/abi.FuncPCABI0"); + }; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = goarch.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/cpu"] = (function() { + var $pkg = {}, $init; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/bytealg"] = (function() { + var $pkg = {}, $init, cpu, Index, Cutover, Equal, IndexByteString, Count, HashStrBytes, IndexRabinKarpBytes; + cpu = $packages["internal/cpu"]; + $pkg.$finishSetup = function() { + Index = function Index$1(a, b) { + var a, b; + $panic(new $String("unimplemented")); + }; + $pkg.Index = Index; + Cutover = function Cutover$1(n) { + var n; + $panic(new $String("unimplemented")); + }; + $pkg.Cutover = Cutover; + Equal = function Equal$1(a, b) { + var _i, _ref, a, b, c, i; + if (!((a.$length === b.$length))) { + return false; + } + _ref = a; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((c === ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i])))) { + return false; + } + _i++; + } + return true; + }; + $pkg.Equal = Equal; + IndexByteString = function IndexByteString$1(s, c) { + var c, i, s; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (s.charCodeAt(i) === c) { + return i; + } + i = i + (1) >> 0; + } + return -1; + }; + $pkg.IndexByteString = IndexByteString; + Count = function Count$1(b, c) { + var _i, _ref, b, c, n, x; + n = 0; + _ref = b; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (x === c) { + n = n + (1) >> 0; + } + _i++; + } + return n; + }; + $pkg.Count = Count; + HashStrBytes = function HashStrBytes$1(sep) { + var _tmp, _tmp$1, hash, i, i$1, pow, sep, sq; + hash = 0; + i = 0; + while (true) { + if (!(i < sep.$length)) { break; } + hash = ($imul(hash, 16777619) >>> 0) + ((((i < 0 || i >= sep.$length) ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + i]) >>> 0)) >>> 0; + i = i + (1) >> 0; + } + _tmp = 1; + _tmp$1 = 16777619; + pow = _tmp; + sq = _tmp$1; + i$1 = sep.$length; + while (true) { + if (!(i$1 > 0)) { break; } + if (!(((i$1 & 1) === 0))) { + pow = $imul(pow, (sq)) >>> 0; + } + sq = $imul(sq, (sq)) >>> 0; + i$1 = (i$1 >> $min((1), 31)) >> 0; + } + return [hash, pow]; + }; + $pkg.HashStrBytes = HashStrBytes; + IndexRabinKarpBytes = function IndexRabinKarpBytes$1(s, sep) { + var _tuple, h, hashsep, i, i$1, n, pow, s, sep, x; + _tuple = HashStrBytes(sep); + hashsep = _tuple[0]; + pow = _tuple[1]; + n = sep.$length; + h = 0; + i = 0; + while (true) { + if (!(i < n)) { break; } + h = ($imul(h, 16777619) >>> 0) + ((((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]) >>> 0)) >>> 0; + i = i + (1) >> 0; + } + if ((h === hashsep) && Equal($subslice(s, 0, n), sep)) { + return 0; + } + i$1 = n; + while (true) { + if (!(i$1 < s.$length)) { break; } + h = $imul(h, (16777619)) >>> 0; + h = h + (((((i$1 < 0 || i$1 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i$1]) >>> 0))) >>> 0; + h = h - (($imul(pow, (((x = i$1 - n >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])) >>> 0))) >>> 0)) >>> 0; + i$1 = i$1 + (1) >> 0; + if ((h === hashsep) && Equal($subslice(s, (i$1 - n >> 0), i$1), sep)) { + return i$1 - n >> 0; + } + } + return -1; + }; + $pkg.IndexRabinKarpBytes = IndexRabinKarpBytes; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = cpu.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.MaxLen = 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/itoa"] = (function() { + var $pkg = {}, $init, Itoa, Uitoa; + $pkg.$finishSetup = function() { + Itoa = function Itoa$1(val) { + var val; + if (val < 0) { + return "-" + Uitoa(((-val >>> 0))); + } + return Uitoa(((val >>> 0))); + }; + $pkg.Itoa = Itoa; + Uitoa = function Uitoa$1(val) { + var _q, buf, i, q, val; + if (val === 0) { + return "0"; + } + buf = arrayType.zero(); + i = 19; + while (true) { + if (!(val >= 10)) { break; } + q = (_q = val / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((48 + val >>> 0) - ($imul(q, 10) >>> 0) >>> 0) << 24 >>> 24))); + i = i - (1) >> 0; + val = q; + } + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((48 + val >>> 0) << 24 >>> 24))); + return ($bytesToString($subslice(new sliceType(buf), i))); + }; + $pkg.Uitoa = Uitoa; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/unsafeheader"] = (function() { + var $pkg = {}, $init, Slice; + Slice = $newType(0, $kindStruct, "unsafeheader.Slice", true, "internal/unsafeheader", true, function(Data_, Len_, Cap_) { + this.$val = this; + if (arguments.length === 0) { + this.Data = 0; + this.Len = 0; + this.Cap = 0; + return; + } + this.Data = Data_; + this.Len = Len_; + this.Cap = Cap_; + }); + $pkg.Slice = Slice; + $pkg.$finishSetup = function() { + Slice.init("", [{prop: "Data", name: "Data", embedded: false, exported: true, typ: $UnsafePointer, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Cap", name: "Cap", embedded: false, exported: true, typ: $Int, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["math/bits"] = (function() { + var $pkg = {}, $init, _err, overflowError, divideError, deBruijn32tab, deBruijn64tab, Mul32, Add32, Div32, LeadingZeros, LeadingZeros32, LeadingZeros64, TrailingZeros, TrailingZeros32, TrailingZeros64, RotateLeft32, Reverse16, ReverseBytes64, Len, Len32, Len64, Add, Add64, Sub, Sub32, Sub64, Mul, Mul64, Div, Div64; + _err = $newType(8, $kindString, "bits._err", true, "math/bits", false, null); + $pkg._err = _err; + $pkg.$finishSetup = function() { + _err.prototype.Error = function Error() { + var e; + e = this.$val; + return (e); + }; + $ptrType(_err).prototype.Error = function(...$args) { return new _err(this.$get()).Error(...$args); }; + _err.prototype.RuntimeError = function RuntimeError() { + var e; + e = this.$val; + }; + $ptrType(_err).prototype.RuntimeError = function(...$args) { return new _err(this.$get()).RuntimeError(...$args); }; + Mul32 = function Mul32$1(x, y) { + var hi, lo, t, w0, w1, w2, x, x0, x1, y, y0, y1; + hi = 0; + lo = 0; + x0 = (x & 65535) >>> 0; + x1 = x >>> 16 >>> 0; + y0 = (y & 65535) >>> 0; + y1 = y >>> 16 >>> 0; + w0 = $imul(x0, y0) >>> 0; + t = ($imul(x1, y0) >>> 0) + (w0 >>> 16 >>> 0) >>> 0; + w1 = (t & 65535) >>> 0; + w2 = t >>> 16 >>> 0; + w1 = w1 + (($imul(x0, y1) >>> 0)) >>> 0; + hi = (($imul(x1, y1) >>> 0) + w2 >>> 0) + (w1 >>> 16 >>> 0) >>> 0; + lo = $imul(x, y) >>> 0; + return [hi, lo]; + }; + $pkg.Mul32 = Mul32; + Add32 = function Add32$1(x, y, carry) { + var carry, carryOut, sum, x, y; + sum = 0; + carryOut = 0; + sum = (x + y >>> 0) + carry >>> 0; + carryOut = ((((((x & y) >>> 0)) | ((((((x | y) >>> 0)) & ~sum) >>> 0))) >>> 0)) >>> 31 >>> 0; + return [sum, carryOut]; + }; + $pkg.Add32 = Add32; + Div32 = function Div32$1(hi, lo, y) { + var _q, _q$1, _tmp, _tmp$1, hi, lo, q0, q1, quo, rem, rhat, s, un0, un1, un10, un16, un21, y, y$1, y$2, y$3, y$4, y$5, yn0, yn1; + quo = 0; + rem = 0; + if (y === 0) { + $panic(divideError); + } + if (y <= hi) { + $panic(overflowError); + } + s = ((LeadingZeros32(y) >>> 0)); + y = (y$1 = (s), y$1 < 32 ? (y << y$1) : 0) >>> 0; + yn1 = y >>> 16 >>> 0; + yn0 = (y & 65535) >>> 0; + un16 = (((y$2 = s, y$2 < 32 ? (hi << y$2) : 0) >>> 0) | ((y$3 = ((32 - s >>> 0)), y$3 < 32 ? (lo >>> y$3) : 0) >>> 0)) >>> 0; + un10 = (y$4 = s, y$4 < 32 ? (lo << y$4) : 0) >>> 0; + un1 = un10 >>> 16 >>> 0; + un0 = (un10 & 65535) >>> 0; + q1 = (_q = un16 / yn1, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + rhat = un16 - ($imul(q1, yn1) >>> 0) >>> 0; + while (true) { + if (!(q1 >= 65536 || ($imul(q1, yn0) >>> 0) > (($imul(65536, rhat) >>> 0) + un1 >>> 0))) { break; } + q1 = q1 - (1) >>> 0; + rhat = rhat + (yn1) >>> 0; + if (rhat >= 65536) { + break; + } + } + un21 = (($imul(un16, 65536) >>> 0) + un1 >>> 0) - ($imul(q1, y) >>> 0) >>> 0; + q0 = (_q$1 = un21 / yn1, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + rhat = un21 - ($imul(q0, yn1) >>> 0) >>> 0; + while (true) { + if (!(q0 >= 65536 || ($imul(q0, yn0) >>> 0) > (($imul(65536, rhat) >>> 0) + un0 >>> 0))) { break; } + q0 = q0 - (1) >>> 0; + rhat = rhat + (yn1) >>> 0; + if (rhat >= 65536) { + break; + } + } + _tmp = ($imul(q1, 65536) >>> 0) + q0 >>> 0; + _tmp$1 = (y$5 = s, y$5 < 32 ? ((((($imul(un21, 65536) >>> 0) + un0 >>> 0) - ($imul(q0, y) >>> 0) >>> 0)) >>> y$5) : 0) >>> 0; + quo = _tmp; + rem = _tmp$1; + return [quo, rem]; + }; + $pkg.Div32 = Div32; + LeadingZeros = function LeadingZeros$1(x) { + var x; + return 32 - Len(x) >> 0; + }; + $pkg.LeadingZeros = LeadingZeros; + LeadingZeros32 = function LeadingZeros32$1(x) { + var x; + return 32 - Len32(x) >> 0; + }; + $pkg.LeadingZeros32 = LeadingZeros32; + LeadingZeros64 = function LeadingZeros64$1(x) { + var x; + return 64 - Len64(x) >> 0; + }; + $pkg.LeadingZeros64 = LeadingZeros64; + TrailingZeros = function TrailingZeros$1(x) { + var x; + if (true) { + return TrailingZeros32(((x >>> 0))); + } + return TrailingZeros64((new $Uint64(0, x))); + }; + $pkg.TrailingZeros = TrailingZeros; + TrailingZeros32 = function TrailingZeros32$1(x) { + var x, x$1; + if (x === 0) { + return 32; + } + return (((x$1 = ($imul((((x & (-x >>> 0)) >>> 0)), 125613361) >>> 0) >>> 27 >>> 0, ((x$1 < 0 || x$1 >= deBruijn32tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn32tab[x$1])) >> 0)); + }; + $pkg.TrailingZeros32 = TrailingZeros32; + TrailingZeros64 = function TrailingZeros64$1(x) { + var x, x$1, x$2; + if ((x.$high === 0 && x.$low === 0)) { + return 64; + } + return (((x$1 = $shiftRightUint64($mul64(((x$2 = new $Uint64(-x.$high, -x.$low), new $Uint64(x.$high & x$2.$high, (x.$low & x$2.$low) >>> 0))), new $Uint64(66559345, 3033172745)), 58), (($flatten64(x$1) < 0 || $flatten64(x$1) >= deBruijn64tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn64tab[$flatten64(x$1)])) >> 0)); + }; + $pkg.TrailingZeros64 = TrailingZeros64; + RotateLeft32 = function RotateLeft32$1(x, k) { + var k, s, x, y, y$1; + s = (((k >>> 0)) & 31) >>> 0; + return (((y = s, y < 32 ? (x << y) : 0) >>> 0) | ((y$1 = ((32 - s >>> 0)), y$1 < 32 ? (x >>> y$1) : 0) >>> 0)) >>> 0; + }; + $pkg.RotateLeft32 = RotateLeft32; + Reverse16 = function Reverse16$1(x) { + var x; + return ((("\x00\x80@\xC0 \xA0`\xE0\x10\x90P\xD00\xB0p\xF0\b\x88H\xC8(\xA8h\xE8\x18\x98X\xD88\xB8x\xF8\x04\x84D\xC4$\xA4d\xE4\x14\x94T\xD44\xB4t\xF4\f\x8CL\xCC,\xACl\xEC\x1C\x9C\\\xDC<\xBC|\xFC\x02\x82B\xC2\"\xA2b\xE2\x12\x92R\xD22\xB2r\xF2\n\x8AJ\xCA*\xAAj\xEA\x1A\x9AZ\xDA:\xBAz\xFA\x06\x86F\xC6&\xA6f\xE6\x16\x96V\xD66\xB6v\xF6\x0E\x8EN\xCE.\xAEn\xEE\x1E\x9E^\xDE>\xBE~\xFE\x01\x81A\xC1!\xA1a\xE1\x11\x91Q\xD11\xB1q\xF1\t\x89I\xC9)\xA9i\xE9\x19\x99Y\xD99\xB9y\xF9\x05\x85E\xC5%\xA5e\xE5\x15\x95U\xD55\xB5u\xF5\r\x8DM\xCD-\xADm\xED\x1D\x9D]\xDD=\xBD}\xFD\x03\x83C\xC3#\xA3c\xE3\x13\x93S\xD33\xB3s\xF3\v\x8BK\xCB+\xABk\xEB\x1B\x9B[\xDB;\xBB{\xFB\x07\x87G\xC7'\xA7g\xE7\x17\x97W\xD77\xB7w\xF7\x0F\x8FO\xCF/\xAFo\xEF\x1F\x9F_\xDF?\xBF\x7F\xFF".charCodeAt((x >>> 8 << 16 >>> 16)) << 16 >>> 16)) | ((("\x00\x80@\xC0 \xA0`\xE0\x10\x90P\xD00\xB0p\xF0\b\x88H\xC8(\xA8h\xE8\x18\x98X\xD88\xB8x\xF8\x04\x84D\xC4$\xA4d\xE4\x14\x94T\xD44\xB4t\xF4\f\x8CL\xCC,\xACl\xEC\x1C\x9C\\\xDC<\xBC|\xFC\x02\x82B\xC2\"\xA2b\xE2\x12\x92R\xD22\xB2r\xF2\n\x8AJ\xCA*\xAAj\xEA\x1A\x9AZ\xDA:\xBAz\xFA\x06\x86F\xC6&\xA6f\xE6\x16\x96V\xD66\xB6v\xF6\x0E\x8EN\xCE.\xAEn\xEE\x1E\x9E^\xDE>\xBE~\xFE\x01\x81A\xC1!\xA1a\xE1\x11\x91Q\xD11\xB1q\xF1\t\x89I\xC9)\xA9i\xE9\x19\x99Y\xD99\xB9y\xF9\x05\x85E\xC5%\xA5e\xE5\x15\x95U\xD55\xB5u\xF5\r\x8DM\xCD-\xADm\xED\x1D\x9D]\xDD=\xBD}\xFD\x03\x83C\xC3#\xA3c\xE3\x13\x93S\xD33\xB3s\xF3\v\x8BK\xCB+\xABk\xEB\x1B\x9B[\xDB;\xBB{\xFB\x07\x87G\xC7'\xA7g\xE7\x17\x97W\xD77\xB7w\xF7\x0F\x8FO\xCF/\xAFo\xEF\x1F\x9F_\xDF?\xBF\x7F\xFF".charCodeAt(((x & 255) >>> 0)) << 16 >>> 16)) << 8 << 16 >>> 16)) >>> 0; + }; + $pkg.Reverse16 = Reverse16; + ReverseBytes64 = function ReverseBytes64$1(x) { + var x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + x = (x$1 = (x$2 = $shiftRightUint64(x, 8), new $Uint64(x$2.$high & 16711935, (x$2.$low & 16711935) >>> 0)), x$3 = $shiftLeft64(new $Uint64(x.$high & 16711935, (x.$low & 16711935) >>> 0), 8), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)); + x = (x$4 = (x$5 = $shiftRightUint64(x, 16), new $Uint64(x$5.$high & 65535, (x$5.$low & 65535) >>> 0)), x$6 = $shiftLeft64(new $Uint64(x.$high & 65535, (x.$low & 65535) >>> 0), 16), new $Uint64(x$4.$high | x$6.$high, (x$4.$low | x$6.$low) >>> 0)); + return (x$7 = $shiftRightUint64(x, 32), x$8 = $shiftLeft64(x, 32), new $Uint64(x$7.$high | x$8.$high, (x$7.$low | x$8.$low) >>> 0)); + }; + $pkg.ReverseBytes64 = ReverseBytes64; + Len = function Len$1(x) { + var x; + if (true) { + return Len32(((x >>> 0))); + } + return Len64((new $Uint64(0, x))); + }; + $pkg.Len = Len; + Len32 = function Len32$1(x) { + var n, x, y, y$1; + n = 0; + if (x >= 65536) { + x = (y = (16), y < 32 ? (x >>> y) : 0) >>> 0; + n = 16; + } + if (x >= 256) { + x = (y$1 = (8), y$1 < 32 ? (x >>> y$1) : 0) >>> 0; + n = n + (8) >> 0; + } + n = n + (("\x00\x01\x02\x02\x03\x03\x03\x03\x04\x04\x04\x04\x04\x04\x04\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b".charCodeAt(x) >> 0)) >> 0; + return n; + }; + $pkg.Len32 = Len32; + Len64 = function Len64$1(x) { + var n, x; + n = 0; + if ((x.$high > 1 || (x.$high === 1 && x.$low >= 0))) { + x = $shiftRightUint64(x, (32)); + n = 32; + } + if ((x.$high > 0 || (x.$high === 0 && x.$low >= 65536))) { + x = $shiftRightUint64(x, (16)); + n = n + (16) >> 0; + } + if ((x.$high > 0 || (x.$high === 0 && x.$low >= 256))) { + x = $shiftRightUint64(x, (8)); + n = n + (8) >> 0; + } + n = n + (("\x00\x01\x02\x02\x03\x03\x03\x03\x04\x04\x04\x04\x04\x04\x04\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b".charCodeAt($flatten64(x)) >> 0)) >> 0; + return n; + }; + $pkg.Len64 = Len64; + Add = function Add$1(x, y, carry) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, c32, c64, carry, carryOut, s32, s64, sum, x, y; + sum = 0; + carryOut = 0; + if (true) { + _tuple = Add32(((x >>> 0)), ((y >>> 0)), ((carry >>> 0))); + s32 = _tuple[0]; + c32 = _tuple[1]; + _tmp = ((s32 >>> 0)); + _tmp$1 = ((c32 >>> 0)); + sum = _tmp; + carryOut = _tmp$1; + return [sum, carryOut]; + } + _tuple$1 = Add64((new $Uint64(0, x)), (new $Uint64(0, y)), (new $Uint64(0, carry))); + s64 = _tuple$1[0]; + c64 = _tuple$1[1]; + _tmp$2 = ((s64.$low >>> 0)); + _tmp$3 = ((c64.$low >>> 0)); + sum = _tmp$2; + carryOut = _tmp$3; + return [sum, carryOut]; + }; + $pkg.Add = Add; + Add64 = function Add64$1(x, y, carry) { + var carry, carryOut, sum, x, x$1, x$2, x$3, x$4, y; + sum = new $Uint64(0, 0); + carryOut = new $Uint64(0, 0); + sum = (x$1 = new $Uint64(x.$high + y.$high, x.$low + y.$low), new $Uint64(x$1.$high + carry.$high, x$1.$low + carry.$low)); + carryOut = $shiftRightUint64(((x$2 = new $Uint64(x.$high & y.$high, (x.$low & y.$low) >>> 0), x$3 = (x$4 = new $Uint64(x.$high | y.$high, (x.$low | y.$low) >>> 0), new $Uint64(x$4.$high & ~sum.$high, (x$4.$low & ~sum.$low) >>> 0)), new $Uint64(x$2.$high | x$3.$high, (x$2.$low | x$3.$low) >>> 0))), 63); + return [sum, carryOut]; + }; + $pkg.Add64 = Add64; + Sub = function Sub$1(x, y, borrow) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, b32, b64, borrow, borrowOut, d32, d64, diff, x, y; + diff = 0; + borrowOut = 0; + if (true) { + _tuple = Sub32(((x >>> 0)), ((y >>> 0)), ((borrow >>> 0))); + d32 = _tuple[0]; + b32 = _tuple[1]; + _tmp = ((d32 >>> 0)); + _tmp$1 = ((b32 >>> 0)); + diff = _tmp; + borrowOut = _tmp$1; + return [diff, borrowOut]; + } + _tuple$1 = Sub64((new $Uint64(0, x)), (new $Uint64(0, y)), (new $Uint64(0, borrow))); + d64 = _tuple$1[0]; + b64 = _tuple$1[1]; + _tmp$2 = ((d64.$low >>> 0)); + _tmp$3 = ((b64.$low >>> 0)); + diff = _tmp$2; + borrowOut = _tmp$3; + return [diff, borrowOut]; + }; + $pkg.Sub = Sub; + Sub32 = function Sub32$1(x, y, borrow) { + var borrow, borrowOut, diff, x, y; + diff = 0; + borrowOut = 0; + diff = (x - y >>> 0) - borrow >>> 0; + borrowOut = (((((((~x >>> 0) & y) >>> 0)) | ((((~(((x ^ y) >>> 0)) >>> 0) & diff) >>> 0))) >>> 0)) >>> 31 >>> 0; + return [diff, borrowOut]; + }; + $pkg.Sub32 = Sub32; + Sub64 = function Sub64$1(x, y, borrow) { + var borrow, borrowOut, diff, x, x$1, x$2, x$3, x$4, x$5, x$6, y; + diff = new $Uint64(0, 0); + borrowOut = new $Uint64(0, 0); + diff = (x$1 = new $Uint64(x.$high - y.$high, x.$low - y.$low), new $Uint64(x$1.$high - borrow.$high, x$1.$low - borrow.$low)); + borrowOut = $shiftRightUint64(((x$2 = (x$3 = new $Uint64(~x.$high, ~x.$low >>> 0), new $Uint64(x$3.$high & y.$high, (x$3.$low & y.$low) >>> 0)), x$4 = (x$5 = (x$6 = new $Uint64(x.$high ^ y.$high, (x.$low ^ y.$low) >>> 0), new $Uint64(~x$6.$high, ~x$6.$low >>> 0)), new $Uint64(x$5.$high & diff.$high, (x$5.$low & diff.$low) >>> 0)), new $Uint64(x$2.$high | x$4.$high, (x$2.$low | x$4.$low) >>> 0))), 63); + return [diff, borrowOut]; + }; + $pkg.Sub64 = Sub64; + Mul = function Mul$1(x, y) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, h, h$1, hi, l, l$1, lo, x, y; + hi = 0; + lo = 0; + if (true) { + _tuple = Mul32(((x >>> 0)), ((y >>> 0))); + h = _tuple[0]; + l = _tuple[1]; + _tmp = ((h >>> 0)); + _tmp$1 = ((l >>> 0)); + hi = _tmp; + lo = _tmp$1; + return [hi, lo]; + } + _tuple$1 = Mul64((new $Uint64(0, x)), (new $Uint64(0, y))); + h$1 = _tuple$1[0]; + l$1 = _tuple$1[1]; + _tmp$2 = ((h$1.$low >>> 0)); + _tmp$3 = ((l$1.$low >>> 0)); + hi = _tmp$2; + lo = _tmp$3; + return [hi, lo]; + }; + $pkg.Mul = Mul; + Mul64 = function Mul64$1(x, y) { + var hi, lo, t, w0, w1, w2, x, x$1, x$2, x$3, x$4, x$5, x$6, x0, x1, y, y0, y1; + hi = new $Uint64(0, 0); + lo = new $Uint64(0, 0); + x0 = new $Uint64(x.$high & 0, (x.$low & 4294967295) >>> 0); + x1 = $shiftRightUint64(x, 32); + y0 = new $Uint64(y.$high & 0, (y.$low & 4294967295) >>> 0); + y1 = $shiftRightUint64(y, 32); + w0 = $mul64(x0, y0); + t = (x$1 = $mul64(x1, y0), x$2 = $shiftRightUint64(w0, 32), new $Uint64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)); + w1 = new $Uint64(t.$high & 0, (t.$low & 4294967295) >>> 0); + w2 = $shiftRightUint64(t, 32); + w1 = (x$3 = $mul64(x0, y1), new $Uint64(w1.$high + x$3.$high, w1.$low + x$3.$low)); + hi = (x$4 = (x$5 = $mul64(x1, y1), new $Uint64(x$5.$high + w2.$high, x$5.$low + w2.$low)), x$6 = $shiftRightUint64(w1, 32), new $Uint64(x$4.$high + x$6.$high, x$4.$low + x$6.$low)); + lo = $mul64(x, y); + return [hi, lo]; + }; + $pkg.Mul64 = Mul64; + Div = function Div$1(hi, lo, y) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, hi, lo, q, q$1, quo, r, r$1, rem, y; + quo = 0; + rem = 0; + if (true) { + _tuple = Div32(((hi >>> 0)), ((lo >>> 0)), ((y >>> 0))); + q = _tuple[0]; + r = _tuple[1]; + _tmp = ((q >>> 0)); + _tmp$1 = ((r >>> 0)); + quo = _tmp; + rem = _tmp$1; + return [quo, rem]; + } + _tuple$1 = Div64((new $Uint64(0, hi)), (new $Uint64(0, lo)), (new $Uint64(0, y))); + q$1 = _tuple$1[0]; + r$1 = _tuple$1[1]; + _tmp$2 = ((q$1.$low >>> 0)); + _tmp$3 = ((r$1.$low >>> 0)); + quo = _tmp$2; + rem = _tmp$3; + return [quo, rem]; + }; + $pkg.Div = Div; + Div64 = function Div64$1(hi, lo, y) { + var _tmp, _tmp$1, hi, lo, q0, q1, quo, rem, rhat, s, un0, un1, un10, un21, un32, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, yn0, yn1; + quo = new $Uint64(0, 0); + rem = new $Uint64(0, 0); + if ((y.$high === 0 && y.$low === 0)) { + $panic(divideError); + } + if ((y.$high < hi.$high || (y.$high === hi.$high && y.$low <= hi.$low))) { + $panic(overflowError); + } + s = ((LeadingZeros64(y) >>> 0)); + y = $shiftLeft64(y, (s)); + yn1 = $shiftRightUint64(y, 32); + yn0 = new $Uint64(y.$high & 0, (y.$low & 4294967295) >>> 0); + un32 = (x = $shiftLeft64(hi, s), x$1 = $shiftRightUint64(lo, ((64 - s >>> 0))), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + un10 = $shiftLeft64(lo, s); + un1 = $shiftRightUint64(un10, 32); + un0 = new $Uint64(un10.$high & 0, (un10.$low & 4294967295) >>> 0); + q1 = $div64(un32, yn1, false); + rhat = (x$2 = $mul64(q1, yn1), new $Uint64(un32.$high - x$2.$high, un32.$low - x$2.$low)); + while (true) { + if (!((q1.$high > 1 || (q1.$high === 1 && q1.$low >= 0)) || (x$3 = $mul64(q1, yn0), x$4 = (x$5 = $mul64(new $Uint64(1, 0), rhat), new $Uint64(x$5.$high + un1.$high, x$5.$low + un1.$low)), (x$3.$high > x$4.$high || (x$3.$high === x$4.$high && x$3.$low > x$4.$low))))) { break; } + q1 = (x$6 = new $Uint64(0, 1), new $Uint64(q1.$high - x$6.$high, q1.$low - x$6.$low)); + rhat = (x$7 = yn1, new $Uint64(rhat.$high + x$7.$high, rhat.$low + x$7.$low)); + if ((rhat.$high > 1 || (rhat.$high === 1 && rhat.$low >= 0))) { + break; + } + } + un21 = (x$8 = (x$9 = $mul64(un32, new $Uint64(1, 0)), new $Uint64(x$9.$high + un1.$high, x$9.$low + un1.$low)), x$10 = $mul64(q1, y), new $Uint64(x$8.$high - x$10.$high, x$8.$low - x$10.$low)); + q0 = $div64(un21, yn1, false); + rhat = (x$11 = $mul64(q0, yn1), new $Uint64(un21.$high - x$11.$high, un21.$low - x$11.$low)); + while (true) { + if (!((q0.$high > 1 || (q0.$high === 1 && q0.$low >= 0)) || (x$12 = $mul64(q0, yn0), x$13 = (x$14 = $mul64(new $Uint64(1, 0), rhat), new $Uint64(x$14.$high + un0.$high, x$14.$low + un0.$low)), (x$12.$high > x$13.$high || (x$12.$high === x$13.$high && x$12.$low > x$13.$low))))) { break; } + q0 = (x$15 = new $Uint64(0, 1), new $Uint64(q0.$high - x$15.$high, q0.$low - x$15.$low)); + rhat = (x$16 = yn1, new $Uint64(rhat.$high + x$16.$high, rhat.$low + x$16.$low)); + if ((rhat.$high > 1 || (rhat.$high === 1 && rhat.$low >= 0))) { + break; + } + } + _tmp = (x$17 = $mul64(q1, new $Uint64(1, 0)), new $Uint64(x$17.$high + q0.$high, x$17.$low + q0.$low)); + _tmp$1 = $shiftRightUint64(((x$18 = (x$19 = $mul64(un21, new $Uint64(1, 0)), new $Uint64(x$19.$high + un0.$high, x$19.$low + un0.$low)), x$20 = $mul64(q0, y), new $Uint64(x$18.$high - x$20.$high, x$18.$low - x$20.$low))), s); + quo = _tmp; + rem = _tmp$1; + return [quo, rem]; + }; + $pkg.Div64 = Div64; + _err.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}]; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + overflowError = new _err("runtime error: integer overflow"); + divideError = new _err("runtime error: integer divide by zero"); + deBruijn32tab = $toNativeArray($kindUint8, [0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9]); + deBruijn64tab = $toNativeArray($kindUint8, [0, 1, 56, 2, 57, 49, 28, 3, 61, 58, 42, 50, 38, 29, 17, 4, 62, 47, 59, 36, 45, 43, 51, 22, 53, 39, 33, 30, 24, 18, 12, 5, 63, 55, 48, 27, 60, 41, 37, 16, 46, 35, 44, 21, 52, 32, 23, 11, 54, 26, 40, 15, 34, 20, 31, 10, 25, 14, 19, 9, 13, 8, 7, 6]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["math"] = (function() { + var $pkg = {}, $init, js, bits, buf, math, _zero, posInf, negInf, nan, log2, ldexp, Copysign, Exp, Frexp, Inf, IsInf, IsNaN, Ldexp, Log, Log2, NaN, Pow, Signbit, Sqrt, init, Float32bits, Float32frombits, Float64bits, Float64frombits, frexp, normalize, Abs; + js = $packages["github.com/gopherjs/gopherjs/js"]; + bits = $packages["math/bits"]; + $pkg.$finishSetup = function() { + log2 = function log2$1(x) { + var _tuple, exp$1, frac, x; + _tuple = Frexp(x); + frac = _tuple[0]; + exp$1 = _tuple[1]; + if (frac === 0.5) { + return ((exp$1 - 1 >> 0)); + } + return Log(frac) * 1.4426950408889634 + (exp$1); + }; + ldexp = function ldexp$1(frac, exp$1) { + var _tuple, e, exp$1, frac, m, x, x$1, x$2; + if ((frac === 0)) { + return frac; + } else if (IsInf(frac, 0) || IsNaN(frac)) { + return frac; + } + _tuple = normalize(frac); + frac = _tuple[0]; + e = _tuple[1]; + exp$1 = exp$1 + (e) >> 0; + x = Float64bits(frac); + exp$1 = exp$1 + ((((($shiftRightUint64(x, 52).$low >> 0)) & 2047) - 1023 >> 0)) >> 0; + if (exp$1 < -1075) { + return Copysign(0, frac); + } + if (exp$1 > 1023) { + if (frac < 0) { + return Inf(-1); + } + return Inf(1); + } + m = 1; + if (exp$1 < -1022) { + exp$1 = exp$1 + (53) >> 0; + m = 1.1102230246251565e-16; + } + x = (x$1 = new $Uint64(2146435072, 0), new $Uint64(x.$high & ~x$1.$high, (x.$low & ~x$1.$low) >>> 0)); + x = (x$2 = $shiftLeft64((new $Uint64(0, (exp$1 + 1023 >> 0))), 52), new $Uint64(x.$high | x$2.$high, (x.$low | x$2.$low) >>> 0)); + return m * Float64frombits(x); + }; + Copysign = function Copysign$1(x, y) { + var x, y; + if (!((x < 0 || (1 / x === negInf)) === (y < 0 || (1 / y === negInf)))) { + return -x; + } + return x; + }; + $pkg.Copysign = Copysign; + Exp = function Exp$1(x) { + var x; + return $parseFloat(math.exp(x)); + }; + $pkg.Exp = Exp; + Frexp = function Frexp$1(f) { + var _tuple, exp$1, f, frac; + frac = 0; + exp$1 = 0; + _tuple = frexp(f); + frac = _tuple[0]; + exp$1 = _tuple[1]; + return [frac, exp$1]; + }; + $pkg.Frexp = Frexp; + Inf = function Inf$1(sign) { + var sign; + if (sign >= 0) { + return posInf; + } else { + return negInf; + } + }; + $pkg.Inf = Inf; + IsInf = function IsInf$1(f, sign) { + var f, sign; + if (f === posInf) { + return sign >= 0; + } + if (f === negInf) { + return sign <= 0; + } + return false; + }; + $pkg.IsInf = IsInf; + IsNaN = function IsNaN$1(f) { + var f, is; + is = false; + is = !((f === f)); + return is; + }; + $pkg.IsNaN = IsNaN; + Ldexp = function Ldexp$1(frac, exp$1) { + var exp$1, frac; + if (-1024 < exp$1 && exp$1 < 1024) { + if (frac === 0) { + return frac; + } + return frac * $parseFloat(math.pow(2, exp$1)); + } + return ldexp(frac, exp$1); + }; + $pkg.Ldexp = Ldexp; + Log = function Log$1(x) { + var x; + if (!((x === x))) { + return nan; + } + return $parseFloat(math.log(x)); + }; + $pkg.Log = Log; + Log2 = function Log2$1(x) { + var x; + return log2(x); + }; + $pkg.Log2 = Log2; + NaN = function NaN$1() { + return nan; + }; + $pkg.NaN = NaN; + Pow = function Pow$1(x, y) { + var x, y; + if ((x === 1) || ((x === -1) && ((y === posInf) || (y === negInf)))) { + return 1; + } + return $parseFloat(math.pow(x, y)); + }; + $pkg.Pow = Pow; + Signbit = function Signbit$1(x) { + var x; + return x < 0 || (1 / x === negInf); + }; + $pkg.Signbit = Signbit; + Sqrt = function Sqrt$1(x) { + var x; + return $parseFloat(math.sqrt(x)); + }; + $pkg.Sqrt = Sqrt; + init = function init$1() { + var ab; + ab = new ($global.ArrayBuffer)(8); + buf.uint32array = new ($global.Uint32Array)(ab); + buf.float32array = new ($global.Float32Array)(ab); + buf.float64array = new ($global.Float64Array)(ab); + }; + Float32bits = function Float32bits$1(f) { + var f; + buf.float32array[0] = f; + return buf.uint32array[0]; + }; + $pkg.Float32bits = Float32bits; + Float32frombits = function Float32frombits$1(b) { + var b; + buf.uint32array[0] = b; + return buf.float32array[0]; + }; + $pkg.Float32frombits = Float32frombits; + Float64bits = function Float64bits$1(f) { + var f, x, x$1; + buf.float64array[0] = f; + return (x = $shiftLeft64((new $Uint64(0, buf.uint32array[1])), 32), x$1 = (new $Uint64(0, buf.uint32array[0])), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + }; + $pkg.Float64bits = Float64bits; + Float64frombits = function Float64frombits$1(b) { + var b; + buf.uint32array[0] = ((b.$low >>> 0)); + buf.uint32array[1] = (($shiftRightUint64(b, 32).$low >>> 0)); + return buf.float64array[0]; + }; + $pkg.Float64frombits = Float64frombits; + frexp = function frexp$1(f) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, exp$1, f, frac, x, x$1, x$2, x$3; + frac = 0; + exp$1 = 0; + if ((f === 0)) { + _tmp = f; + _tmp$1 = 0; + frac = _tmp; + exp$1 = _tmp$1; + return [frac, exp$1]; + } else if (IsInf(f, 0) || IsNaN(f)) { + _tmp$2 = f; + _tmp$3 = 0; + frac = _tmp$2; + exp$1 = _tmp$3; + return [frac, exp$1]; + } + _tuple = normalize(f); + f = _tuple[0]; + exp$1 = _tuple[1]; + x = Float64bits(f); + exp$1 = exp$1 + ((((((x$1 = $shiftRightUint64(x, 52), new $Uint64(x$1.$high & 0, (x$1.$low & 2047) >>> 0)).$low >> 0)) - 1023 >> 0) + 1 >> 0)) >> 0; + x = (x$2 = new $Uint64(2146435072, 0), new $Uint64(x.$high & ~x$2.$high, (x.$low & ~x$2.$low) >>> 0)); + x = (x$3 = new $Uint64(1071644672, 0), new $Uint64(x.$high | x$3.$high, (x.$low | x$3.$low) >>> 0)); + frac = Float64frombits(x); + return [frac, exp$1]; + }; + normalize = function normalize$1(x) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, exp$2, x, y; + y = 0; + exp$2 = 0; + if (Abs(x) < 2.2250738585072014e-308) { + _tmp = x * 4.503599627370496e+15; + _tmp$1 = -52; + y = _tmp; + exp$2 = _tmp$1; + return [y, exp$2]; + } + _tmp$2 = x; + _tmp$3 = 0; + y = _tmp$2; + exp$2 = _tmp$3; + return [y, exp$2]; + }; + Abs = function Abs$1(x) { + var x, x$1; + return Float64frombits((x$1 = Float64bits(x), new $Uint64(x$1.$high & ~2147483648, (x$1.$low & ~0) >>> 0))); + }; + $pkg.Abs = Abs; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf = new structType.ptr(arrayType.zero(), arrayType$1.zero(), arrayType$2.zero()); + math = $global.Math; + _zero = 0; + posInf = 1 / _zero; + negInf = -1 / _zero; + nan = $parseFloat($NaN); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["unicode/utf8"] = (function() { + var $pkg = {}, $init, acceptRange, first, acceptRanges, FullRune, DecodeRune, DecodeRuneInString, DecodeLastRune, DecodeLastRuneInString, RuneLen, EncodeRune, RuneCount, RuneCountInString, RuneStart, ValidString, ValidRune; + acceptRange = $newType(0, $kindStruct, "utf8.acceptRange", true, "unicode/utf8", false, function(lo_, hi_) { + this.$val = this; + if (arguments.length === 0) { + this.lo = 0; + this.hi = 0; + return; + } + this.lo = lo_; + this.hi = hi_; + }); + $pkg.acceptRange = acceptRange; + $pkg.$finishSetup = function() { + FullRune = function FullRune$1(p) { + var accept, n, p, x, x$1, x$2; + n = p.$length; + if (n === 0) { + return false; + } + x$1 = (x = (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]), ((x < 0 || x >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[x])); + if (n >= ((((x$1 & 7) >>> 0) >> 0))) { + return true; + } + accept = $clone((x$2 = x$1 >>> 4 << 24 >>> 24, ((x$2 < 0 || x$2 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$2])), acceptRange); + if (n > 1 && ((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]) < accept.lo || accept.hi < (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]))) { + return true; + } else if (n > 2 && ((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]) < 128 || 191 < (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]))) { + return true; + } + return false; + }; + $pkg.FullRune = FullRune; + DecodeRune = function DecodeRune$1(p) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, b1, b2, b3, mask, n, p, p0, r, size, sz, x, x$1; + r = 0; + size = 0; + n = p.$length; + if (n < 1) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + p0 = (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]); + x = ((p0 < 0 || p0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[p0]); + if (x >= 240) { + mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0; + _tmp$2 = (((((0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]) >> 0)) & ~mask) >> 0) | (65533 & mask); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + sz = ((((x & 7) >>> 0) >> 0)); + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + if (n < sz) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + b1 = (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]); + if (b1 < accept.lo || accept.hi < b1) { + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + } + if (sz <= 2) { + _tmp$8 = (((((p0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((b1 & 63) >>> 0) >> 0)); + _tmp$9 = 2; + r = _tmp$8; + size = _tmp$9; + return [r, size]; + } + b2 = (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]); + if (b2 < 128 || 191 < b2) { + _tmp$10 = 65533; + _tmp$11 = 1; + r = _tmp$10; + size = _tmp$11; + return [r, size]; + } + if (sz <= 3) { + _tmp$12 = ((((((p0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b2 & 63) >>> 0) >> 0)); + _tmp$13 = 3; + r = _tmp$12; + size = _tmp$13; + return [r, size]; + } + b3 = (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]); + if (b3 < 128 || 191 < b3) { + _tmp$14 = 65533; + _tmp$15 = 1; + r = _tmp$14; + size = _tmp$15; + return [r, size]; + } + _tmp$16 = (((((((p0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((b2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b3 & 63) >>> 0) >> 0)); + _tmp$17 = 4; + r = _tmp$16; + size = _tmp$17; + return [r, size]; + }; + $pkg.DecodeRune = DecodeRune; + DecodeRuneInString = function DecodeRuneInString$1(s) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, mask, n, r, s, s0, s1, s2, s3, size, sz, x, x$1; + r = 0; + size = 0; + n = s.length; + if (n < 1) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + s0 = s.charCodeAt(0); + x = ((s0 < 0 || s0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[s0]); + if (x >= 240) { + mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0; + _tmp$2 = ((((s.charCodeAt(0) >> 0)) & ~mask) >> 0) | (65533 & mask); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + sz = ((((x & 7) >>> 0) >> 0)); + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + if (n < sz) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + s1 = s.charCodeAt(1); + if (s1 < accept.lo || accept.hi < s1) { + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + } + if (sz <= 2) { + _tmp$8 = (((((s0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((s1 & 63) >>> 0) >> 0)); + _tmp$9 = 2; + r = _tmp$8; + size = _tmp$9; + return [r, size]; + } + s2 = s.charCodeAt(2); + if (s2 < 128 || 191 < s2) { + _tmp$10 = 65533; + _tmp$11 = 1; + r = _tmp$10; + size = _tmp$11; + return [r, size]; + } + if (sz <= 3) { + _tmp$12 = ((((((s0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s2 & 63) >>> 0) >> 0)); + _tmp$13 = 3; + r = _tmp$12; + size = _tmp$13; + return [r, size]; + } + s3 = s.charCodeAt(3); + if (s3 < 128 || 191 < s3) { + _tmp$14 = 65533; + _tmp$15 = 1; + r = _tmp$14; + size = _tmp$15; + return [r, size]; + } + _tmp$16 = (((((((s0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((s2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s3 & 63) >>> 0) >> 0)); + _tmp$17 = 4; + r = _tmp$16; + size = _tmp$17; + return [r, size]; + }; + $pkg.DecodeRuneInString = DecodeRuneInString; + DecodeLastRune = function DecodeLastRune$1(p) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, end, lim, p, r, size, start; + r = 0; + size = 0; + end = p.$length; + if (end === 0) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + start = end - 1 >> 0; + r = ((((start < 0 || start >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + start]) >> 0)); + if (r < 128) { + _tmp$2 = r; + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + lim = end - 4 >> 0; + if (lim < 0) { + lim = 0; + } + start = start - (1) >> 0; + while (true) { + if (!(start >= lim)) { break; } + if (RuneStart(((start < 0 || start >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + start]))) { + break; + } + start = start - (1) >> 0; + } + if (start < 0) { + start = 0; + } + _tuple = DecodeRune($subslice(p, start, end)); + r = _tuple[0]; + size = _tuple[1]; + if (!(((start + size >> 0) === end))) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + _tmp$6 = r; + _tmp$7 = size; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + }; + $pkg.DecodeLastRune = DecodeLastRune; + DecodeLastRuneInString = function DecodeLastRuneInString$1(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, end, lim, r, s, size, start; + r = 0; + size = 0; + end = s.length; + if (end === 0) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + start = end - 1 >> 0; + r = ((s.charCodeAt(start) >> 0)); + if (r < 128) { + _tmp$2 = r; + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + lim = end - 4 >> 0; + if (lim < 0) { + lim = 0; + } + start = start - (1) >> 0; + while (true) { + if (!(start >= lim)) { break; } + if (RuneStart(s.charCodeAt(start))) { + break; + } + start = start - (1) >> 0; + } + if (start < 0) { + start = 0; + } + _tuple = DecodeRuneInString($substring(s, start, end)); + r = _tuple[0]; + size = _tuple[1]; + if (!(((start + size >> 0) === end))) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + _tmp$6 = r; + _tmp$7 = size; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + }; + $pkg.DecodeLastRuneInString = DecodeLastRuneInString; + RuneLen = function RuneLen$1(r) { + var r; + if (r < 0) { + return -1; + } else if (r <= 127) { + return 1; + } else if (r <= 2047) { + return 2; + } else if (55296 <= r && r <= 57343) { + return -1; + } else if (r <= 65535) { + return 3; + } else if (r <= 1114111) { + return 4; + } + return -1; + }; + $pkg.RuneLen = RuneLen; + EncodeRune = function EncodeRune$1(p, r) { + var i, p, r; + i = ((r >>> 0)); + if (i <= 127) { + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((r << 24 >>> 24))); + return 1; + } else if (i <= 2047) { + $unused((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((192 | (((r >> 6 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 2; + } else if ((i > 1114111) || (55296 <= i && i <= 57343)) { + r = 65533; + $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 3; + } else if (i <= 65535) { + $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 3; + } else { + $unused((3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((240 | (((r >> 18 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 12 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 4; + } + }; + $pkg.EncodeRune = EncodeRune; + RuneCount = function RuneCount$1(p) { + var accept, c, c$1, c$2, c$3, i, n, np, p, size, x, x$1, x$2, x$3, x$4; + np = p.$length; + n = 0; + i = 0; + while (true) { + if (!(i < np)) { break; } + n = n + (1) >> 0; + c = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + if (c < 128) { + i = i + (1) >> 0; + continue; + } + x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]); + if (x === 241) { + i = i + (1) >> 0; + continue; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > np) { + i = i + (1) >> 0; + continue; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c$1 = (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2])); + if (c$1 < accept.lo || accept.hi < c$1) { + size = 1; + } else if (size === 2) { + } else { + c$2 = (x$3 = i + 2 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3])); + if (c$2 < 128 || 191 < c$2) { + size = 1; + } else if (size === 3) { + } else { + c$3 = (x$4 = i + 3 >> 0, ((x$4 < 0 || x$4 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$4])); + if (c$3 < 128 || 191 < c$3) { + size = 1; + } + } + } + i = i + (size) >> 0; + } + return n; + }; + $pkg.RuneCount = RuneCount; + RuneCountInString = function RuneCountInString$1(s) { + var accept, c, c$1, c$2, c$3, i, n, ns, s, size, x, x$1; + n = 0; + ns = s.length; + i = 0; + while (true) { + if (!(i < ns)) { break; } + c = s.charCodeAt(i); + if (c < 128) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]); + if (x === 241) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > ns) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c$1 = s.charCodeAt((i + 1 >> 0)); + if (c$1 < accept.lo || accept.hi < c$1) { + size = 1; + } else if (size === 2) { + } else { + c$2 = s.charCodeAt((i + 2 >> 0)); + if (c$2 < 128 || 191 < c$2) { + size = 1; + } else if (size === 3) { + } else { + c$3 = s.charCodeAt((i + 3 >> 0)); + if (c$3 < 128 || 191 < c$3) { + size = 1; + } + } + } + i = i + (size) >> 0; + n = n + (1) >> 0; + } + n = n; + return n; + }; + $pkg.RuneCountInString = RuneCountInString; + RuneStart = function RuneStart$1(b) { + var b; + return !((((b & 192) >>> 0) === 128)); + }; + $pkg.RuneStart = RuneStart; + ValidString = function ValidString$1(s) { + var accept, c, c$1, c$2, first32, i, n, s, second32, si, size, x, x$1; + while (true) { + if (!(s.length >= 8)) { break; } + first32 = (((((((s.charCodeAt(0) >>> 0)) | (((s.charCodeAt(1) >>> 0)) << 8 >>> 0)) >>> 0) | (((s.charCodeAt(2) >>> 0)) << 16 >>> 0)) >>> 0) | (((s.charCodeAt(3) >>> 0)) << 24 >>> 0)) >>> 0; + second32 = (((((((s.charCodeAt(4) >>> 0)) | (((s.charCodeAt(5) >>> 0)) << 8 >>> 0)) >>> 0) | (((s.charCodeAt(6) >>> 0)) << 16 >>> 0)) >>> 0) | (((s.charCodeAt(7) >>> 0)) << 24 >>> 0)) >>> 0; + if (!(((((((first32 | second32) >>> 0)) & 2155905152) >>> 0) === 0))) { + break; + } + s = $substring(s, 8); + } + n = s.length; + i = 0; + while (true) { + if (!(i < n)) { break; } + si = s.charCodeAt(i); + if (si < 128) { + i = i + (1) >> 0; + continue; + } + x = ((si < 0 || si >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[si]); + if (x === 241) { + return false; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > n) { + return false; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c = s.charCodeAt((i + 1 >> 0)); + if (c < accept.lo || accept.hi < c) { + return false; + } else if (size === 2) { + } else { + c$1 = s.charCodeAt((i + 2 >> 0)); + if (c$1 < 128 || 191 < c$1) { + return false; + } else if (size === 3) { + } else { + c$2 = s.charCodeAt((i + 3 >> 0)); + if (c$2 < 128 || 191 < c$2) { + return false; + } + } + } + i = i + (size) >> 0; + } + return true; + }; + $pkg.ValidString = ValidString; + ValidRune = function ValidRune$1(r) { + var r; + if (0 <= r && r < 55296) { + return true; + } else if (57343 < r && r <= 1114111) { + return true; + } + return false; + }; + $pkg.ValidRune = ValidRune; + acceptRange.init("unicode/utf8", [{prop: "lo", name: "lo", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "hi", name: "hi", embedded: false, exported: false, typ: $Uint8, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + first = $toNativeArray($kindUint8, [240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 35, 3, 3, 52, 4, 4, 4, 68, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241]); + acceptRanges = $toNativeArray($kindStruct, [$clone(new acceptRange.ptr(128, 191), acceptRange), $clone(new acceptRange.ptr(160, 191), acceptRange), $clone(new acceptRange.ptr(128, 159), acceptRange), $clone(new acceptRange.ptr(144, 191), acceptRange), $clone(new acceptRange.ptr(128, 143), acceptRange), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0)]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["strconv"] = (function() { + var $pkg = {}, $init, errors, js, bytealg, math, bits, utf8, floatInfo, decimalSlice, decimal, leftCheat, NumError, isPrint16, isNotPrint16, isPrint32, isNotPrint32, isGraphic, uint64pow10, float32info, float32info$24ptr, float64info, float64info$24ptr, detailedPowersOfTen, leftcheats, optimize, powtab, float64pow10, float32pow10, contains, quoteWith, appendQuotedWith, appendQuotedRuneWith, appendEscapedRune, Quote, AppendQuote, QuoteToASCII, AppendQuoteToASCII, AppendQuoteRune, AppendQuoteRuneToASCII, CanBackquote, unhex, UnquoteChar, Unquote, unquote, bsearch16, bsearch32, IsPrint, isInGraphicList, FormatUint, FormatInt, AppendInt, small, formatBits, isPowerOfTwo, Itoa, Atoi, ryuFtoaFixed32, ryuFtoaFixed64, formatDecimal, ryuFtoaShortest, mulByLog2Log10, mulByLog10Log2, computeBounds, ryuDigits, ryuDigits32, mult64bitPow10, mult128bitPow10, divisibleByPower5, divmod1e9, AppendFloat, genericFtoa, bigFtoa, formatDigits, roundShortest, fmtE, fmtF, fmtB, fmtX, min, max, eiselLemire64, eiselLemire32, digitZero, trim, rightShift, prefixIsLessThan, leftShift, shouldRoundUp, index, lower, syntaxError, rangeError, baseError, bitSizeError, ParseUint, ParseInt, underscoreOK, commonPrefixLenIgnoreCase, special, readFloat, atof64exact, atof32exact, atofHex, atof32, atof64, ParseFloat, parseFloatPrefix, FormatBool; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + bytealg = $packages["internal/bytealg"]; + math = $packages["math"]; + bits = $packages["math/bits"]; + utf8 = $packages["unicode/utf8"]; + floatInfo = $newType(0, $kindStruct, "strconv.floatInfo", true, "strconv", false, function(mantbits_, expbits_, bias_) { + this.$val = this; + if (arguments.length === 0) { + this.mantbits = 0; + this.expbits = 0; + this.bias = 0; + return; + } + this.mantbits = mantbits_; + this.expbits = expbits_; + this.bias = bias_; + }); + decimalSlice = $newType(0, $kindStruct, "strconv.decimalSlice", true, "strconv", false, function(d_, nd_, dp_, neg_) { + this.$val = this; + if (arguments.length === 0) { + this.d = sliceType$6.nil; + this.nd = 0; + this.dp = 0; + this.neg = false; + return; + } + this.d = d_; + this.nd = nd_; + this.dp = dp_; + this.neg = neg_; + }); + decimal = $newType(0, $kindStruct, "strconv.decimal", true, "strconv", false, function(d_, nd_, dp_, neg_, trunc_) { + this.$val = this; + if (arguments.length === 0) { + this.d = arrayType$5.zero(); + this.nd = 0; + this.dp = 0; + this.neg = false; + this.trunc = false; + return; + } + this.d = d_; + this.nd = nd_; + this.dp = dp_; + this.neg = neg_; + this.trunc = trunc_; + }); + leftCheat = $newType(0, $kindStruct, "strconv.leftCheat", true, "strconv", false, function(delta_, cutoff_) { + this.$val = this; + if (arguments.length === 0) { + this.delta = 0; + this.cutoff = ""; + return; + } + this.delta = delta_; + this.cutoff = cutoff_; + }); + NumError = $newType(0, $kindStruct, "strconv.NumError", true, "strconv", true, function(Func_, Num_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Func = ""; + this.Num = ""; + this.Err = $ifaceNil; + return; + } + this.Func = Func_; + this.Num = Num_; + this.Err = Err_; + }); + $pkg.floatInfo = floatInfo; + $pkg.decimalSlice = decimalSlice; + $pkg.decimal = decimal; + $pkg.leftCheat = leftCheat; + $pkg.NumError = NumError; + $pkg.$finishSetup = function() { + contains = function contains$1(s, c) { + var c, s; + return !((index(s, c) === -1)); + }; + quoteWith = function quoteWith$1(s, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _q, graphicOnly, quote, s; + return ($bytesToString(appendQuotedWith($makeSlice(sliceType$6, 0, (_q = ($imul(3, s.length)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), s, quote, ASCIIonly, graphicOnly))); + }; + appendQuotedWith = function appendQuotedWith$1(buf, s, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _tuple, buf, graphicOnly, nBuf, quote, r, s, width; + if ((buf.$capacity - buf.$length >> 0) < s.length) { + nBuf = $makeSlice(sliceType$6, buf.$length, (((buf.$length + 1 >> 0) + s.length >> 0) + 1 >> 0)); + $copySlice(nBuf, buf); + buf = nBuf; + } + buf = $append(buf, quote); + width = 0; + while (true) { + if (!(s.length > 0)) { break; } + r = ((s.charCodeAt(0) >> 0)); + width = 1; + if (r >= 128) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + width = _tuple[1]; + } + if ((width === 1) && (r === 65533)) { + buf = $appendSlice(buf, "\\x"); + buf = $append(buf, "0123456789abcdef".charCodeAt((s.charCodeAt(0) >>> 4 << 24 >>> 24))); + buf = $append(buf, "0123456789abcdef".charCodeAt(((s.charCodeAt(0) & 15) >>> 0))); + s = $substring(s, width); + continue; + } + buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly); + s = $substring(s, width); + } + buf = $append(buf, quote); + return buf; + }; + appendQuotedRuneWith = function appendQuotedRuneWith$1(buf, r, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, buf, graphicOnly, quote, r; + buf = $append(buf, quote); + if (!utf8.ValidRune(r)) { + r = 65533; + } + buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly); + buf = $append(buf, quote); + return buf; + }; + appendEscapedRune = function appendEscapedRune$1(buf, r, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _1, buf, graphicOnly, n, quote, r, runeTmp, s, s$1; + runeTmp = arrayType$1.zero(); + if ((r === ((quote >> 0))) || (r === 92)) { + buf = $append(buf, 92); + buf = $append(buf, ((r << 24 >>> 24))); + return buf; + } + if (ASCIIonly) { + if (r < 128 && IsPrint(r)) { + buf = $append(buf, ((r << 24 >>> 24))); + return buf; + } + } else if (IsPrint(r) || graphicOnly && isInGraphicList(r)) { + n = utf8.EncodeRune(new sliceType$6(runeTmp), r); + buf = $appendSlice(buf, $subslice(new sliceType$6(runeTmp), 0, n)); + return buf; + } + _1 = r; + if (_1 === (7)) { + buf = $appendSlice(buf, "\\a"); + } else if (_1 === (8)) { + buf = $appendSlice(buf, "\\b"); + } else if (_1 === (12)) { + buf = $appendSlice(buf, "\\f"); + } else if (_1 === (10)) { + buf = $appendSlice(buf, "\\n"); + } else if (_1 === (13)) { + buf = $appendSlice(buf, "\\r"); + } else if (_1 === (9)) { + buf = $appendSlice(buf, "\\t"); + } else if (_1 === (11)) { + buf = $appendSlice(buf, "\\v"); + } else { + if (r < 32 || (r === 127)) { + buf = $appendSlice(buf, "\\x"); + buf = $append(buf, "0123456789abcdef".charCodeAt((((r << 24 >>> 24)) >>> 4 << 24 >>> 24))); + buf = $append(buf, "0123456789abcdef".charCodeAt(((((r << 24 >>> 24)) & 15) >>> 0))); + } else if (!utf8.ValidRune(r)) { + r = 65533; + buf = $appendSlice(buf, "\\u"); + s = 12; + while (true) { + if (!(s >= 0)) { break; } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15))); + s = s - (4) >> 0; + } + } else if (r < 65536) { + buf = $appendSlice(buf, "\\u"); + s = 12; + while (true) { + if (!(s >= 0)) { break; } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15))); + s = s - (4) >> 0; + } + } else { + buf = $appendSlice(buf, "\\U"); + s$1 = 28; + while (true) { + if (!(s$1 >= 0)) { break; } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s$1 >>> 0)), 31)) >> 0) & 15))); + s$1 = s$1 - (4) >> 0; + } + } + } + return buf; + }; + Quote = function Quote$1(s) { + var s; + return quoteWith(s, 34, false, false); + }; + $pkg.Quote = Quote; + AppendQuote = function AppendQuote$1(dst, s) { + var dst, s; + return appendQuotedWith(dst, s, 34, false, false); + }; + $pkg.AppendQuote = AppendQuote; + QuoteToASCII = function QuoteToASCII$1(s) { + var s; + return quoteWith(s, 34, true, false); + }; + $pkg.QuoteToASCII = QuoteToASCII; + AppendQuoteToASCII = function AppendQuoteToASCII$1(dst, s) { + var dst, s; + return appendQuotedWith(dst, s, 34, true, false); + }; + $pkg.AppendQuoteToASCII = AppendQuoteToASCII; + AppendQuoteRune = function AppendQuoteRune$1(dst, r) { + var dst, r; + return appendQuotedRuneWith(dst, r, 39, false, false); + }; + $pkg.AppendQuoteRune = AppendQuoteRune; + AppendQuoteRuneToASCII = function AppendQuoteRuneToASCII$1(dst, r) { + var dst, r; + return appendQuotedRuneWith(dst, r, 39, true, false); + }; + $pkg.AppendQuoteRuneToASCII = AppendQuoteRuneToASCII; + CanBackquote = function CanBackquote$1(s) { + var _tuple, r, s, wid; + while (true) { + if (!(s.length > 0)) { break; } + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + wid = _tuple[1]; + s = $substring(s, wid); + if (wid > 1) { + if (r === 65279) { + return false; + } + continue; + } + if (r === 65533) { + return false; + } + if ((r < 32 && !((r === 9))) || (r === 96) || (r === 127)) { + return false; + } + } + return true; + }; + $pkg.CanBackquote = CanBackquote; + unhex = function unhex$1(b) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, c, ok, v; + v = 0; + ok = false; + c = ((b >> 0)); + if (48 <= c && c <= 57) { + _tmp = c - 48 >> 0; + _tmp$1 = true; + v = _tmp; + ok = _tmp$1; + return [v, ok]; + } else if (97 <= c && c <= 102) { + _tmp$2 = (c - 97 >> 0) + 10 >> 0; + _tmp$3 = true; + v = _tmp$2; + ok = _tmp$3; + return [v, ok]; + } else if (65 <= c && c <= 70) { + _tmp$4 = (c - 65 >> 0) + 10 >> 0; + _tmp$5 = true; + v = _tmp$4; + ok = _tmp$5; + return [v, ok]; + } + return [v, ok]; + }; + UnquoteChar = function UnquoteChar$1(s, quote) { + var _1, _2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, c, c$1, err, j, j$1, multibyte, n, ok, quote, r, s, size, tail, v, v$1, value, x, x$1; + value = 0; + multibyte = false; + tail = ""; + err = $ifaceNil; + if (s.length === 0) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + c = s.charCodeAt(0); + if ((c === quote) && ((quote === 39) || (quote === 34))) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } else if (c >= 128) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + size = _tuple[1]; + _tmp = r; + _tmp$1 = true; + _tmp$2 = $substring(s, size); + _tmp$3 = $ifaceNil; + value = _tmp; + multibyte = _tmp$1; + tail = _tmp$2; + err = _tmp$3; + return [value, multibyte, tail, err]; + } else if (!((c === 92))) { + _tmp$4 = ((s.charCodeAt(0) >> 0)); + _tmp$5 = false; + _tmp$6 = $substring(s, 1); + _tmp$7 = $ifaceNil; + value = _tmp$4; + multibyte = _tmp$5; + tail = _tmp$6; + err = _tmp$7; + return [value, multibyte, tail, err]; + } + if (s.length <= 1) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + c$1 = s.charCodeAt(1); + s = $substring(s, 2); + switch (0) { default: + _1 = c$1; + if (_1 === (97)) { + value = 7; + } else if (_1 === (98)) { + value = 8; + } else if (_1 === (102)) { + value = 12; + } else if (_1 === (110)) { + value = 10; + } else if (_1 === (114)) { + value = 13; + } else if (_1 === (116)) { + value = 9; + } else if (_1 === (118)) { + value = 11; + } else if ((_1 === (120)) || (_1 === (117)) || (_1 === (85))) { + n = 0; + _2 = c$1; + if (_2 === (120)) { + n = 2; + } else if (_2 === (117)) { + n = 4; + } else if (_2 === (85)) { + n = 8; + } + v = 0; + if (s.length < n) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + j = 0; + while (true) { + if (!(j < n)) { break; } + _tuple$1 = unhex(s.charCodeAt(j)); + x = _tuple$1[0]; + ok = _tuple$1[1]; + if (!ok) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + v = (v << 4 >> 0) | x; + j = j + (1) >> 0; + } + s = $substring(s, n); + if (c$1 === 120) { + value = v; + break; + } + if (!utf8.ValidRune(v)) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = v; + multibyte = true; + } else if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { + v$1 = ((c$1 >> 0)) - 48 >> 0; + if (s.length < 2) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + j$1 = 0; + while (true) { + if (!(j$1 < 2)) { break; } + x$1 = ((s.charCodeAt(j$1) >> 0)) - 48 >> 0; + if (x$1 < 0 || x$1 > 7) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + v$1 = ((v$1 << 3 >> 0)) | x$1; + j$1 = j$1 + (1) >> 0; + } + s = $substring(s, 2); + if (v$1 > 255) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = v$1; + } else if (_1 === (92)) { + value = 92; + } else if ((_1 === (39)) || (_1 === (34))) { + if (!((c$1 === quote))) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = ((c$1 >> 0)); + } else { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + } + tail = s; + return [value, multibyte, tail, err]; + }; + $pkg.UnquoteChar = UnquoteChar; + Unquote = function Unquote$1(s) { + var _tuple, err, out, rem, s; + _tuple = unquote(s, true); + out = _tuple[0]; + rem = _tuple[1]; + err = _tuple[2]; + if (rem.length > 0) { + return ["", $pkg.ErrSyntax]; + } + return [out, err]; + }; + $pkg.Unquote = Unquote; + unquote = function unquote$1(in$1, unescape) { + var _1, _2, _q, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, arr, buf, buf$1, end, err, err$1, i, in$1, in0, multibyte, n, n$1, out, quote, r, r$1, rem, rem$1, unescape, valid; + out = ""; + rem = ""; + err = $ifaceNil; + if (in$1.length < 2) { + _tmp = ""; + _tmp$1 = in$1; + _tmp$2 = $pkg.ErrSyntax; + out = _tmp; + rem = _tmp$1; + err = _tmp$2; + return [out, rem, err]; + } + quote = in$1.charCodeAt(0); + end = index($substring(in$1, 1), quote); + if (end < 0) { + _tmp$3 = ""; + _tmp$4 = in$1; + _tmp$5 = $pkg.ErrSyntax; + out = _tmp$3; + rem = _tmp$4; + err = _tmp$5; + return [out, rem, err]; + } + end = end + (2) >> 0; + _1 = quote; + if (_1 === (96)) { + if (!unescape) { + out = $substring(in$1, 0, end); + } else if (!contains($substring(in$1, 0, end), 13)) { + out = $substring(in$1, 1, (end - 1 >> 0)); + } else { + buf = $makeSlice(sliceType$6, 0, (((end - 1 >> 0) - 1 >> 0) - 1 >> 0)); + i = 1; + while (true) { + if (!(i < (end - 1 >> 0))) { break; } + if (!((in$1.charCodeAt(i) === 13))) { + buf = $append(buf, in$1.charCodeAt(i)); + } + i = i + (1) >> 0; + } + out = ($bytesToString(buf)); + } + _tmp$6 = out; + _tmp$7 = $substring(in$1, end); + _tmp$8 = $ifaceNil; + out = _tmp$6; + rem = _tmp$7; + err = _tmp$8; + return [out, rem, err]; + } else if ((_1 === (34)) || (_1 === (39))) { + if (!contains($substring(in$1, 0, end), 92) && !contains($substring(in$1, 0, end), 10)) { + valid = false; + _2 = quote; + if (_2 === (34)) { + valid = utf8.ValidString($substring(in$1, 1, (end - 1 >> 0))); + } else if (_2 === (39)) { + _tuple = utf8.DecodeRuneInString($substring(in$1, 1, (end - 1 >> 0))); + r = _tuple[0]; + n = _tuple[1]; + valid = (((1 + n >> 0) + 1 >> 0) === end) && (!((r === 65533)) || !((n === 1))); + } + if (valid) { + out = $substring(in$1, 0, end); + if (unescape) { + out = $substring(out, 1, (end - 1 >> 0)); + } + _tmp$9 = out; + _tmp$10 = $substring(in$1, end); + _tmp$11 = $ifaceNil; + out = _tmp$9; + rem = _tmp$10; + err = _tmp$11; + return [out, rem, err]; + } + } + buf$1 = sliceType$6.nil; + in0 = in$1; + in$1 = $substring(in$1, 1); + if (unescape) { + buf$1 = $makeSlice(sliceType$6, 0, (_q = ($imul(3, end)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + } + while (true) { + if (!(in$1.length > 0 && !((in$1.charCodeAt(0) === quote)))) { break; } + _tuple$1 = UnquoteChar(in$1, quote); + r$1 = _tuple$1[0]; + multibyte = _tuple$1[1]; + rem$1 = _tuple$1[2]; + err$1 = _tuple$1[3]; + if ((in$1.charCodeAt(0) === 10) || !($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp$12 = ""; + _tmp$13 = in0; + _tmp$14 = $pkg.ErrSyntax; + out = _tmp$12; + rem = _tmp$13; + err = _tmp$14; + return [out, rem, err]; + } + in$1 = rem$1; + if (unescape) { + if (r$1 < 128 || !multibyte) { + buf$1 = $append(buf$1, ((r$1 << 24 >>> 24))); + } else { + arr = arrayType$1.zero(); + n$1 = utf8.EncodeRune(new sliceType$6(arr), r$1); + buf$1 = $appendSlice(buf$1, $subslice(new sliceType$6(arr), 0, n$1)); + } + } + if (quote === 39) { + break; + } + } + if (!(in$1.length > 0 && (in$1.charCodeAt(0) === quote))) { + _tmp$15 = ""; + _tmp$16 = in0; + _tmp$17 = $pkg.ErrSyntax; + out = _tmp$15; + rem = _tmp$16; + err = _tmp$17; + return [out, rem, err]; + } + in$1 = $substring(in$1, 1); + if (unescape) { + _tmp$18 = ($bytesToString(buf$1)); + _tmp$19 = in$1; + _tmp$20 = $ifaceNil; + out = _tmp$18; + rem = _tmp$19; + err = _tmp$20; + return [out, rem, err]; + } + _tmp$21 = $substring(in0, 0, (in0.length - in$1.length >> 0)); + _tmp$22 = in$1; + _tmp$23 = $ifaceNil; + out = _tmp$21; + rem = _tmp$22; + err = _tmp$23; + return [out, rem, err]; + } else { + _tmp$24 = ""; + _tmp$25 = in$1; + _tmp$26 = $pkg.ErrSyntax; + out = _tmp$24; + rem = _tmp$25; + err = _tmp$26; + return [out, rem, err]; + } + }; + bsearch16 = function bsearch16$1(a, x) { + var _tmp, _tmp$1, a, h, i, j, x; + _tmp = 0; + _tmp$1 = a.$length; + i = _tmp; + j = _tmp$1; + while (true) { + if (!(i < j)) { break; } + h = i + (((j - i >> 0)) >> 1 >> 0) >> 0; + if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) { + i = h + 1 >> 0; + } else { + j = h; + } + } + return i; + }; + bsearch32 = function bsearch32$1(a, x) { + var _tmp, _tmp$1, a, h, i, j, x; + _tmp = 0; + _tmp$1 = a.$length; + i = _tmp; + j = _tmp$1; + while (true) { + if (!(i < j)) { break; } + h = i + (((j - i >> 0)) >> 1 >> 0) >> 0; + if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) { + i = h + 1 >> 0; + } else { + j = h; + } + } + return i; + }; + IsPrint = function IsPrint$1(r) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, i, i$1, isNotPrint, isNotPrint$1, isPrint, isPrint$1, j, j$1, r, rr, rr$1, x, x$1, x$2, x$3; + if (r <= 255) { + if (32 <= r && r <= 126) { + return true; + } + if (161 <= r && r <= 255) { + return !((r === 173)); + } + return false; + } + if (0 <= r && r < 65536) { + _tmp = ((r << 16 >>> 16)); + _tmp$1 = isPrint16; + _tmp$2 = isNotPrint16; + rr = _tmp; + isPrint = _tmp$1; + isNotPrint = _tmp$2; + i = bsearch16(isPrint, rr); + if (i >= isPrint.$length || rr < (x = (i & ~1) >> 0, ((x < 0 || x >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x])) || (x$1 = i | 1, ((x$1 < 0 || x$1 >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x$1])) < rr) { + return false; + } + j = bsearch16(isNotPrint, rr); + return j >= isNotPrint.$length || !((((j < 0 || j >= isNotPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint.$array[isNotPrint.$offset + j]) === rr)); + } + _tmp$3 = ((r >>> 0)); + _tmp$4 = isPrint32; + _tmp$5 = isNotPrint32; + rr$1 = _tmp$3; + isPrint$1 = _tmp$4; + isNotPrint$1 = _tmp$5; + i$1 = bsearch32(isPrint$1, rr$1); + if (i$1 >= isPrint$1.$length || rr$1 < (x$2 = (i$1 & ~1) >> 0, ((x$2 < 0 || x$2 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$2])) || (x$3 = i$1 | 1, ((x$3 < 0 || x$3 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$3])) < rr$1) { + return false; + } + if (r >= 131072) { + return true; + } + r = r - (65536) >> 0; + j$1 = bsearch16(isNotPrint$1, ((r << 16 >>> 16))); + return j$1 >= isNotPrint$1.$length || !((((j$1 < 0 || j$1 >= isNotPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint$1.$array[isNotPrint$1.$offset + j$1]) === ((r << 16 >>> 16)))); + }; + $pkg.IsPrint = IsPrint; + isInGraphicList = function isInGraphicList$1(r) { + var i, r, rr; + if (r > 65535) { + return false; + } + rr = ((r << 16 >>> 16)); + i = bsearch16(isGraphic, rr); + return i < isGraphic.$length && (rr === ((i < 0 || i >= isGraphic.$length) ? ($throwRuntimeError("index out of range"), undefined) : isGraphic.$array[isGraphic.$offset + i])); + }; + FormatUint = function FormatUint$1(i, base) { + var _tuple, base, i, s; + if (true && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { + return small(((i.$low >> 0))); + } + _tuple = formatBits(sliceType$6.nil, i, base, false, false); + s = _tuple[1]; + return s; + }; + $pkg.FormatUint = FormatUint; + FormatInt = function FormatInt$1(i, base) { + var _tuple, base, i, s; + if (true && (0 < i.$high || (0 === i.$high && 0 <= i.$low)) && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { + return small((((i.$low + ((i.$high >> 31) * 4294967296)) >> 0))); + } + _tuple = formatBits(sliceType$6.nil, (new $Uint64(i.$high, i.$low)), base, (i.$high < 0 || (i.$high === 0 && i.$low < 0)), false); + s = _tuple[1]; + return s; + }; + $pkg.FormatInt = FormatInt; + AppendInt = function AppendInt$1(dst, i, base) { + var _tuple, base, dst, i; + if (true && (0 < i.$high || (0 === i.$high && 0 <= i.$low)) && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { + return $appendSlice(dst, small((((i.$low + ((i.$high >> 31) * 4294967296)) >> 0)))); + } + _tuple = formatBits(dst, (new $Uint64(i.$high, i.$low)), base, (i.$high < 0 || (i.$high === 0 && i.$low < 0)), true); + dst = _tuple[0]; + return dst; + }; + $pkg.AppendInt = AppendInt; + small = function small$1(i) { + var i; + if (i < 10) { + return $substring("0123456789abcdefghijklmnopqrstuvwxyz", i, (i + 1 >> 0)); + } + return $substring("00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899", ($imul(i, 2)), (($imul(i, 2)) + 2 >> 0)); + }; + formatBits = function formatBits$1(dst, u, base, neg, append_) { + var _q, _q$1, _r, _r$1, a, append_, b, b$1, base, d, dst, i, is, is$1, is$2, j, m, neg, q, q$1, s, shift, u, us, us$1, x, x$1, x$2, x$3, x$4, x$5; + d = sliceType$6.nil; + s = ""; + if (base < 2 || base > 36) { + $panic(new $String("strconv: illegal AppendInt/FormatInt base")); + } + a = arrayType$2.zero(); + i = 65; + if (neg) { + u = new $Uint64(-u.$high, -u.$low); + } + if (base === 10) { + if (true) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 1000000000)))) { break; } + q = $div64(u, new $Uint64(0, 1000000000), false); + us = (((x = $mul64(q, new $Uint64(0, 1000000000)), new $Uint64(u.$high - x.$high, u.$low - x.$low)).$low >>> 0)); + j = 4; + while (true) { + if (!(j > 0)) { break; } + is = $imul((_r = us % 100, _r === _r ? _r : $throwRuntimeError("integer divide by zero")), 2) >>> 0; + us = (_q = us / (100), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + i = i - (2) >> 0; + (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$1] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 1 >>> 0)))); + (x$2 = i + 0 >> 0, ((x$2 < 0 || x$2 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$2] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 0 >>> 0)))); + j = j - (1) >> 0; + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((($imul(us, 2) >>> 0) + 1 >>> 0))); + u = q; + } + } + us$1 = ((u.$low >>> 0)); + while (true) { + if (!(us$1 >= 100)) { break; } + is$1 = $imul((_r$1 = us$1 % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")), 2) >>> 0; + us$1 = (_q$1 = us$1 / (100), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + i = i - (2) >> 0; + (x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$3] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 1 >>> 0)))); + (x$4 = i + 0 >> 0, ((x$4 < 0 || x$4 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$4] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 0 >>> 0)))); + } + is$2 = $imul(us$1, 2) >>> 0; + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$2 + 1 >>> 0))); + if (us$1 >= 10) { + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(is$2)); + } + } else if (isPowerOfTwo(base)) { + shift = (((bits.TrailingZeros(((base >>> 0))) >>> 0)) & 7) >>> 0; + b = (new $Uint64(0, base)); + m = ((base >>> 0)) - 1 >>> 0; + while (true) { + if (!((u.$high > b.$high || (u.$high === b.$high && u.$low >= b.$low)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((((u.$low >>> 0)) & m) >>> 0))); + u = $shiftRightUint64(u, (shift)); + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0)))); + } else { + b$1 = (new $Uint64(0, base)); + while (true) { + if (!((u.$high > b$1.$high || (u.$high === b$1.$high && u.$low >= b$1.$low)))) { break; } + i = i - (1) >> 0; + q$1 = $div64(u, b$1, false); + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((((x$5 = $mul64(q$1, b$1), new $Uint64(u.$high - x$5.$high, u.$low - x$5.$low)).$low >>> 0)))); + u = q$1; + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0)))); + } + if (neg) { + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = 45); + } + if (append_) { + d = $appendSlice(dst, $subslice(new sliceType$6(a), i)); + return [d, s]; + } + s = ($bytesToString($subslice(new sliceType$6(a), i))); + return [d, s]; + }; + isPowerOfTwo = function isPowerOfTwo$1(x) { + var x; + return (x & ((x - 1 >> 0))) === 0; + }; + Itoa = function Itoa$1(i) { + var i; + return $internalize(i.toString(), $String); + }; + $pkg.Itoa = Itoa; + Atoi = function Atoi$1(s) { + var floatval, i, jsValue, s, v; + if (s.length === 0) { + return [0, syntaxError("Atoi", s)]; + } + i = 0; + while (true) { + if (!(i < s.length)) { break; } + v = s.charCodeAt(i); + if (v < 48 || v > 57) { + if (!((v === 43)) && !((v === 45))) { + return [0, syntaxError("Atoi", s)]; + } + } + i = i + (1) >> 0; + } + jsValue = $global.Number($externalize(s, $String), 10); + if (!!!($global.isFinite(jsValue))) { + return [0, syntaxError("Atoi", s)]; + } + floatval = $parseFloat(jsValue); + if (floatval > 2.147483647e+09) { + return [2147483647, rangeError("Atoi", s)]; + } else if (floatval < -2.147483648e+09) { + return [-2147483648, rangeError("Atoi", s)]; + } + return [$parseInt(jsValue) >> 0, $ifaceNil]; + }; + $pkg.Atoi = Atoi; + ryuFtoaFixed32 = function ryuFtoaFixed32$1(d, mant, exp, prec) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, d, d0, dexp2, dfrac, di, e2, exact, exp, extra, extraMask, mant, prec, q, roundUp, y, y$1, y$2, y$3, y$4, y$5, y$6; + if (prec < 0) { + $panic(new $String("ryuFtoaFixed32 called with negative prec")); + } + if (prec > 9) { + $panic(new $String("ryuFtoaFixed32 called with prec > 9")); + } + if (mant === 0) { + _tmp = 0; + _tmp$1 = 0; + d.nd = _tmp; + d.dp = _tmp$1; + return; + } + e2 = exp; + b = bits.Len32(mant); + if (b < 25) { + mant = (y = ((((25 - b >> 0) >>> 0))), y < 32 ? (mant << y) : 0) >>> 0; + e2 = e2 + (((b) - 25 >> 0)) >> 0; + } + q = (-mulByLog2Log10(e2 + 24 >> 0) + prec >> 0) - 1 >> 0; + exact = q <= 27 && q >= 0; + _tuple = mult64bitPow10(mant, e2, q); + di = _tuple[0]; + dexp2 = _tuple[1]; + d0 = _tuple[2]; + if (dexp2 >= 0) { + $panic(new $String("not enough significant bits after mult64bitPow10")); + } + if (q < 0 && q >= -10 && divisibleByPower5((new $Uint64(0, mant)), -q)) { + exact = true; + d0 = true; + } + extra = ((-dexp2 >>> 0)); + extraMask = ((((y$1 = extra, y$1 < 32 ? (1 << y$1) : 0) >>> 0) - 1 >>> 0)); + _tmp$2 = (y$2 = extra, y$2 < 32 ? (di >>> y$2) : 0) >>> 0; + _tmp$3 = (di & extraMask) >>> 0; + di = _tmp$2; + dfrac = _tmp$3; + roundUp = false; + if (exact) { + roundUp = dfrac > ((y$3 = ((extra - 1 >>> 0)), y$3 < 32 ? (1 << y$3) : 0) >>> 0) || ((dfrac === ((y$4 = ((extra - 1 >>> 0)), y$4 < 32 ? (1 << y$4) : 0) >>> 0)) && !d0) || ((dfrac === ((y$5 = ((extra - 1 >>> 0)), y$5 < 32 ? (1 << y$5) : 0) >>> 0)) && d0 && (((di & 1) >>> 0) === 1)); + } else { + roundUp = ((y$6 = ((extra - 1 >>> 0)), y$6 < 32 ? (dfrac >>> y$6) : 0) >>> 0) === 1; + } + if (!((dfrac === 0))) { + d0 = false; + } + formatDecimal(d, (new $Uint64(0, di)), !d0, roundUp, prec); + d.dp = d.dp - (q) >> 0; + }; + ryuFtoaFixed64 = function ryuFtoaFixed64$1(d, mant, exp, prec) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, d, d0, dexp2, dfrac, di, e2, exact, exp, extra, extraMask, mant, prec, q, roundUp, x, x$1, x$2, x$3, x$4, x$5; + if (prec > 18) { + $panic(new $String("ryuFtoaFixed64 called with prec > 18")); + } + if ((mant.$high === 0 && mant.$low === 0)) { + _tmp = 0; + _tmp$1 = 0; + d.nd = _tmp; + d.dp = _tmp$1; + return; + } + e2 = exp; + b = bits.Len64(mant); + if (b < 55) { + mant = $shiftLeft64(mant, (((55 - b >> 0) >>> 0))); + e2 = e2 + (((b) - 55 >> 0)) >> 0; + } + q = (-mulByLog2Log10(e2 + 54 >> 0) + prec >> 0) - 1 >> 0; + exact = q <= 55 && q >= 0; + _tuple = mult128bitPow10(mant, e2, q); + di = _tuple[0]; + dexp2 = _tuple[1]; + d0 = _tuple[2]; + if (dexp2 >= 0) { + $panic(new $String("not enough significant bits after mult128bitPow10")); + } + if (q < 0 && q >= -22 && divisibleByPower5(mant, -q)) { + exact = true; + d0 = true; + } + extra = ((-dexp2 >>> 0)); + extraMask = ((x = $shiftLeft64(new $Uint64(0, 1), extra), new $Uint64(x.$high - 0, x.$low - 1))); + _tmp$2 = $shiftRightUint64(di, extra); + _tmp$3 = new $Uint64(di.$high & extraMask.$high, (di.$low & extraMask.$low) >>> 0); + di = _tmp$2; + dfrac = _tmp$3; + roundUp = false; + if (exact) { + roundUp = (x$1 = $shiftLeft64(new $Uint64(0, 1), ((extra - 1 >>> 0))), (dfrac.$high > x$1.$high || (dfrac.$high === x$1.$high && dfrac.$low > x$1.$low))) || ((x$2 = $shiftLeft64(new $Uint64(0, 1), ((extra - 1 >>> 0))), (dfrac.$high === x$2.$high && dfrac.$low === x$2.$low)) && !d0) || ((x$3 = $shiftLeft64(new $Uint64(0, 1), ((extra - 1 >>> 0))), (dfrac.$high === x$3.$high && dfrac.$low === x$3.$low)) && d0 && (x$4 = new $Uint64(di.$high & 0, (di.$low & 1) >>> 0), (x$4.$high === 0 && x$4.$low === 1))); + } else { + roundUp = (x$5 = $shiftRightUint64(dfrac, ((extra - 1 >>> 0))), (x$5.$high === 0 && x$5.$low === 1)); + } + if (!((dfrac.$high === 0 && dfrac.$low === 0))) { + d0 = false; + } + formatDecimal(d, di, !d0, roundUp, prec); + d.dp = d.dp - (q) >> 0; + }; + formatDecimal = function formatDecimal$1(d, m, trunc, roundUp, prec) { + var _q, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, a, b, d, m, max$1, n, prec, roundUp, trimmed, trunc, v, v1, v2, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + max$1 = ((prec < 0 || prec >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[prec]); + trimmed = 0; + while (true) { + if (!((m.$high > max$1.$high || (m.$high === max$1.$high && m.$low >= max$1.$low)))) { break; } + _tmp = $div64(m, new $Uint64(0, 10), false); + _tmp$1 = $div64(m, new $Uint64(0, 10), true); + a = _tmp; + b = _tmp$1; + m = a; + trimmed = trimmed + (1) >> 0; + if ((b.$high > 0 || (b.$high === 0 && b.$low > 5))) { + roundUp = true; + } else if ((b.$high < 0 || (b.$high === 0 && b.$low < 5))) { + roundUp = false; + } else { + roundUp = trunc || (x = new $Uint64(m.$high & 0, (m.$low & 1) >>> 0), (x.$high === 0 && x.$low === 1)); + } + if (!((b.$high === 0 && b.$low === 0))) { + trunc = true; + } + } + if (roundUp) { + m = (x$1 = new $Uint64(0, 1), new $Uint64(m.$high + x$1.$high, m.$low + x$1.$low)); + } + if ((m.$high > max$1.$high || (m.$high === max$1.$high && m.$low >= max$1.$low))) { + m = $div64(m, (new $Uint64(0, 10)), false); + trimmed = trimmed + (1) >> 0; + } + n = ((prec >>> 0)); + d.nd = (prec); + v = m; + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low >= 100)))) { break; } + _tmp$2 = new $Uint64(0, 0); + _tmp$3 = new $Uint64(0, 0); + v1 = _tmp$2; + v2 = _tmp$3; + if ((x$2 = $shiftRightUint64(v, 32), (x$2.$high === 0 && x$2.$low === 0))) { + _tmp$4 = (new $Uint64(0, (_q = ((v.$low >>> 0)) / 100, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")))); + _tmp$5 = (new $Uint64(0, (_r = ((v.$low >>> 0)) % 100, _r === _r ? _r : $throwRuntimeError("integer divide by zero")))); + v1 = _tmp$4; + v2 = _tmp$5; + } else { + _tmp$6 = $div64(v, new $Uint64(0, 100), false); + _tmp$7 = $div64(v, new $Uint64(0, 100), true); + v1 = _tmp$6; + v2 = _tmp$7; + } + n = n - (2) >>> 0; + (x$4 = d.d, x$5 = n + 1 >>> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt($flatten64((x$3 = $mul64(new $Uint64(0, 2), v2), new $Uint64(x$3.$high + 0, x$3.$low + 1)))))); + (x$7 = d.d, x$8 = n + 0 >>> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt($flatten64((x$6 = $mul64(new $Uint64(0, 2), v2), new $Uint64(x$6.$high + 0, x$6.$low + 0)))))); + v = v1; + } + if ((v.$high > 0 || (v.$high === 0 && v.$low > 0))) { + n = n - (1) >>> 0; + (x$10 = d.d, ((n < 0 || n >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + n] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt($flatten64((x$9 = $mul64(new $Uint64(0, 2), v), new $Uint64(x$9.$high + 0, x$9.$low + 1)))))); + } + if ((v.$high > 0 || (v.$high === 0 && v.$low >= 10))) { + n = n - (1) >>> 0; + (x$11 = d.d, ((n < 0 || n >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + n] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt($flatten64($mul64(new $Uint64(0, 2), v))))); + } + while (true) { + if (!((x$12 = d.d, x$13 = d.nd - 1 >> 0, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])) === 48)) { break; } + d.nd = d.nd - (1) >> 0; + trimmed = trimmed + (1) >> 0; + } + d.dp = d.nd + trimmed >> 0; + }; + ryuFtoaShortest = function ryuFtoaShortest$1(d, mant, exp, flt) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, c0, cup, d, dc, dc0, dc32, dl, dl0, dl32, du, du0, du32, e2, exp, extra, extraMask, flt, fracc, fracl, fracu, lok, mant, mc, ml, mu, q, uok, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + if ((mant.$high === 0 && mant.$low === 0)) { + _tmp = 0; + _tmp$1 = 0; + d.nd = _tmp; + d.dp = _tmp$1; + return; + } + if (exp <= 0 && bits.TrailingZeros64(mant) >= -exp) { + mant = $shiftRightUint64(mant, (((-exp >>> 0)))); + ryuDigits(d, mant, mant, mant, true, false); + return; + } + _tuple = computeBounds(mant, exp, flt); + ml = _tuple[0]; + mc = _tuple[1]; + mu = _tuple[2]; + e2 = _tuple[3]; + if (e2 === 0) { + ryuDigits(d, ml, mc, mu, true, false); + return; + } + q = mulByLog2Log10(-e2) + 1 >> 0; + _tmp$2 = new $Uint64(0, 0); + _tmp$3 = new $Uint64(0, 0); + _tmp$4 = new $Uint64(0, 0); + dl = _tmp$2; + dc = _tmp$3; + du = _tmp$4; + _tmp$5 = false; + _tmp$6 = false; + _tmp$7 = false; + dl0 = _tmp$5; + dc0 = _tmp$6; + du0 = _tmp$7; + if (flt === float32info) { + _tmp$8 = 0; + _tmp$9 = 0; + _tmp$10 = 0; + dl32 = _tmp$8; + dc32 = _tmp$9; + du32 = _tmp$10; + _tuple$1 = mult64bitPow10(((ml.$low >>> 0)), e2, q); + dl32 = _tuple$1[0]; + dl0 = _tuple$1[2]; + _tuple$2 = mult64bitPow10(((mc.$low >>> 0)), e2, q); + dc32 = _tuple$2[0]; + dc0 = _tuple$2[2]; + _tuple$3 = mult64bitPow10(((mu.$low >>> 0)), e2, q); + du32 = _tuple$3[0]; + e2 = _tuple$3[1]; + du0 = _tuple$3[2]; + _tmp$11 = (new $Uint64(0, dl32)); + _tmp$12 = (new $Uint64(0, dc32)); + _tmp$13 = (new $Uint64(0, du32)); + dl = _tmp$11; + dc = _tmp$12; + du = _tmp$13; + } else { + _tuple$4 = mult128bitPow10(ml, e2, q); + dl = _tuple$4[0]; + dl0 = _tuple$4[2]; + _tuple$5 = mult128bitPow10(mc, e2, q); + dc = _tuple$5[0]; + dc0 = _tuple$5[2]; + _tuple$6 = mult128bitPow10(mu, e2, q); + du = _tuple$6[0]; + e2 = _tuple$6[1]; + du0 = _tuple$6[2]; + } + if (e2 >= 0) { + $panic(new $String("not enough significant bits after mult128bitPow10")); + } + if (q > 55) { + _tmp$14 = false; + _tmp$15 = false; + _tmp$16 = false; + dl0 = _tmp$14; + dc0 = _tmp$15; + du0 = _tmp$16; + } + if (q < 0 && q >= -24) { + if (divisibleByPower5(ml, -q)) { + dl0 = true; + } + if (divisibleByPower5(mc, -q)) { + dc0 = true; + } + if (divisibleByPower5(mu, -q)) { + du0 = true; + } + } + extra = ((-e2 >>> 0)); + extraMask = ((x = $shiftLeft64(new $Uint64(0, 1), extra), new $Uint64(x.$high - 0, x.$low - 1))); + _tmp$17 = $shiftRightUint64(dl, extra); + _tmp$18 = new $Uint64(dl.$high & extraMask.$high, (dl.$low & extraMask.$low) >>> 0); + dl = _tmp$17; + fracl = _tmp$18; + _tmp$19 = $shiftRightUint64(dc, extra); + _tmp$20 = new $Uint64(dc.$high & extraMask.$high, (dc.$low & extraMask.$low) >>> 0); + dc = _tmp$19; + fracc = _tmp$20; + _tmp$21 = $shiftRightUint64(du, extra); + _tmp$22 = new $Uint64(du.$high & extraMask.$high, (du.$low & extraMask.$low) >>> 0); + du = _tmp$21; + fracu = _tmp$22; + uok = !du0 || (fracu.$high > 0 || (fracu.$high === 0 && fracu.$low > 0)); + if (du0 && (fracu.$high === 0 && fracu.$low === 0)) { + uok = (x$1 = new $Uint64(mant.$high & 0, (mant.$low & 1) >>> 0), (x$1.$high === 0 && x$1.$low === 0)); + } + if (!uok) { + du = (x$2 = new $Uint64(0, 1), new $Uint64(du.$high - x$2.$high, du.$low - x$2.$low)); + } + cup = false; + if (dc0) { + cup = (x$3 = $shiftLeft64(new $Uint64(0, 1), ((extra - 1 >>> 0))), (fracc.$high > x$3.$high || (fracc.$high === x$3.$high && fracc.$low > x$3.$low))) || ((x$4 = $shiftLeft64(new $Uint64(0, 1), ((extra - 1 >>> 0))), (fracc.$high === x$4.$high && fracc.$low === x$4.$low)) && (x$5 = new $Uint64(dc.$high & 0, (dc.$low & 1) >>> 0), (x$5.$high === 0 && x$5.$low === 1))); + } else { + cup = (x$6 = $shiftRightUint64(fracc, ((extra - 1 >>> 0))), (x$6.$high === 0 && x$6.$low === 1)); + } + lok = dl0 && (fracl.$high === 0 && fracl.$low === 0) && ((x$7 = new $Uint64(mant.$high & 0, (mant.$low & 1) >>> 0), (x$7.$high === 0 && x$7.$low === 0))); + if (!lok) { + dl = (x$8 = new $Uint64(0, 1), new $Uint64(dl.$high + x$8.$high, dl.$low + x$8.$low)); + } + c0 = dc0 && (fracc.$high === 0 && fracc.$low === 0); + ryuDigits(d, dl, dc, du, c0, cup); + d.dp = d.dp - (q) >> 0; + }; + mulByLog2Log10 = function mulByLog2Log10$1(x) { + var x; + return (($imul(x, 78913))) >> 18 >> 0; + }; + mulByLog10Log2 = function mulByLog10Log2$1(x) { + var x; + return (($imul(x, 108853))) >> 15 >> 0; + }; + computeBounds = function computeBounds$1(mant, exp, flt) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, central, e2, exp, flt, lower$1, mant, upper, x, x$1, x$2, x$3, x$4; + lower$1 = new $Uint64(0, 0); + central = new $Uint64(0, 0); + upper = new $Uint64(0, 0); + e2 = 0; + if (!((x = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high === x.$high && mant.$low === x.$low))) || (exp === ((flt.bias + 1 >> 0) - ((flt.mantbits >> 0)) >> 0))) { + _tmp = (x$1 = $mul64(new $Uint64(0, 2), mant), new $Uint64(x$1.$high - 0, x$1.$low - 1)); + _tmp$1 = $mul64(new $Uint64(0, 2), mant); + _tmp$2 = (x$2 = $mul64(new $Uint64(0, 2), mant), new $Uint64(x$2.$high + 0, x$2.$low + 1)); + lower$1 = _tmp; + central = _tmp$1; + upper = _tmp$2; + e2 = exp - 1 >> 0; + return [lower$1, central, upper, e2]; + } else { + _tmp$3 = (x$3 = $mul64(new $Uint64(0, 4), mant), new $Uint64(x$3.$high - 0, x$3.$low - 1)); + _tmp$4 = $mul64(new $Uint64(0, 4), mant); + _tmp$5 = (x$4 = $mul64(new $Uint64(0, 4), mant), new $Uint64(x$4.$high + 0, x$4.$low + 2)); + lower$1 = _tmp$3; + central = _tmp$4; + upper = _tmp$5; + e2 = exp - 2 >> 0; + return [lower$1, central, upper, e2]; + } + }; + ryuDigits = function ryuDigits$1(d, lower$1, central, upper, c0, cup) { + var _q, _r, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, c0, central, chi, clo, cup, d, lhi, llo, lower$1, n, uhi, ulo, upper, v, v1, v2, x, x$1, x$2, x$3; + _tuple = divmod1e9(lower$1); + lhi = _tuple[0]; + llo = _tuple[1]; + _tuple$1 = divmod1e9(central); + chi = _tuple$1[0]; + clo = _tuple$1[1]; + _tuple$2 = divmod1e9(upper); + uhi = _tuple$2[0]; + ulo = _tuple$2[1]; + if (uhi === 0) { + ryuDigits32(d, llo, clo, ulo, c0, cup, 8); + } else if (lhi < uhi) { + if (!((llo === 0))) { + lhi = lhi + (1) >>> 0; + } + c0 = c0 && (clo === 0); + cup = (clo > 500000000) || ((clo === 500000000) && cup); + ryuDigits32(d, lhi, chi, uhi, c0, cup, 8); + d.dp = d.dp + (9) >> 0; + } else { + d.nd = 0; + n = 9; + v = chi; + while (true) { + if (!(v > 0)) { break; } + _tmp = (_q = v / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + _tmp$1 = (_r = v % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + v1 = _tmp; + v2 = _tmp$1; + v = v1; + n = n - (1) >>> 0; + (x = d.d, ((n < 0 || n >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + n] = (((v2 + 48 >>> 0) << 24 >>> 24)))); + } + d.d = $subslice(d.d, n); + d.nd = (((9 - n >>> 0) >> 0)); + ryuDigits32(d, llo, clo, ulo, c0, cup, d.nd + 8 >> 0); + } + while (true) { + if (!(d.nd > 0 && ((x$1 = d.d, x$2 = d.nd - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 48))) { break; } + d.nd = d.nd - (1) >> 0; + } + while (true) { + if (!(d.nd > 0 && ((x$3 = d.d, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])) === 48))) { break; } + d.nd = d.nd - (1) >> 0; + d.dp = d.dp - (1) >> 0; + d.d = $subslice(d.d, 1); + } + }; + ryuDigits32 = function ryuDigits32$1(d, lower$1, central, upper, c0, cup, endindex) { + var _q, _q$1, _q$2, _q$3, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, c, c0, cNextDigit, cdigit, central, cup, d, endindex, l, lower$1, n, trimmed, u, upper, v, v1, v2, x, x$1, x$2, x$3; + if (upper === 0) { + d.dp = endindex + 1 >> 0; + return; + } + trimmed = 0; + cNextDigit = 0; + while (true) { + if (!(upper > 0)) { break; } + l = (_q = ((lower$1 + 9 >>> 0)) / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + _tmp = (_q$1 = central / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + _tmp$1 = (_r = central % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + c = _tmp; + cdigit = _tmp$1; + u = (_q$2 = upper / 10, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero")); + if (l > u) { + break; + } + if ((l === (c + 1 >>> 0)) && c < u) { + c = c + (1) >>> 0; + cdigit = 0; + cup = false; + } + trimmed = trimmed + (1) >> 0; + c0 = c0 && (cNextDigit === 0); + cNextDigit = ((cdigit >> 0)); + _tmp$2 = l; + _tmp$3 = c; + _tmp$4 = u; + lower$1 = _tmp$2; + central = _tmp$3; + upper = _tmp$4; + } + if (trimmed > 0) { + cup = cNextDigit > 5 || ((cNextDigit === 5) && !c0) || ((cNextDigit === 5) && c0 && (((central & 1) >>> 0) === 1)); + } + if (central < upper && cup) { + central = central + (1) >>> 0; + } + endindex = endindex - (trimmed) >> 0; + v = central; + n = endindex; + while (true) { + if (!(n > d.nd)) { break; } + _tmp$5 = (_q$3 = v / 100, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >>> 0 : $throwRuntimeError("integer divide by zero")); + _tmp$6 = (_r$1 = v % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); + v1 = _tmp$5; + v2 = _tmp$6; + (x = d.d, ((n < 0 || n >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + n] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((($imul(2, v2) >>> 0) + 1 >>> 0)))); + (x$1 = d.d, x$2 = n - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((($imul(2, v2) >>> 0) + 0 >>> 0)))); + n = n - (2) >> 0; + v = v1; + } + if (n === d.nd) { + (x$3 = d.d, ((n < 0 || n >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + n] = (((v + 48 >>> 0) << 24 >>> 24)))); + } + d.nd = endindex + 1 >> 0; + d.dp = d.nd + trimmed >> 0; + }; + mult64bitPow10 = function mult64bitPow10$1(m, e2, q) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e2, exact, hi, lo, m, pow, q, resE, resM, x, x$1, x$2, x$3, x$4; + resM = 0; + resE = 0; + exact = false; + if (q === 0) { + _tmp = m << 6 >>> 0; + _tmp$1 = e2 - 6 >> 0; + _tmp$2 = true; + resM = _tmp; + resE = _tmp$1; + exact = _tmp$2; + return [resM, resE, exact]; + } + if (q < -348 || 347 < q) { + $panic(new $String("mult64bitPow10: power of 10 is out of range")); + } + pow = (x = q - -348 >> 0, ((x < 0 || x >= detailedPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : detailedPowersOfTen[x]))[1]; + if (q < 0) { + pow = (x$1 = new $Uint64(0, 1), new $Uint64(pow.$high + x$1.$high, pow.$low + x$1.$low)); + } + _tuple = bits.Mul64((new $Uint64(0, m)), pow); + hi = _tuple[0]; + lo = _tuple[1]; + e2 = e2 + (((mulByLog10Log2(q) - 63 >> 0) + 57 >> 0)) >> 0; + _tmp$3 = (((x$2 = $shiftLeft64(hi, 7), x$3 = $shiftRightUint64(lo, 57), new $Uint64(x$2.$high | x$3.$high, (x$2.$low | x$3.$low) >>> 0)).$low >>> 0)); + _tmp$4 = e2; + _tmp$5 = (x$4 = $shiftLeft64(lo, 7), (x$4.$high === 0 && x$4.$low === 0)); + resM = _tmp$3; + resE = _tmp$4; + exact = _tmp$5; + return [resM, resE, exact]; + }; + mult128bitPow10 = function mult128bitPow10$1(m, e2, q) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, carry, e2, exact, h0, h1, l0, l1, m, mid, pow, q, resE, resM, x, x$1, x$2, x$3, x$4, x$5, x$6; + resM = new $Uint64(0, 0); + resE = 0; + exact = false; + if (q === 0) { + _tmp = $shiftLeft64(m, 8); + _tmp$1 = e2 - 8 >> 0; + _tmp$2 = true; + resM = _tmp; + resE = _tmp$1; + exact = _tmp$2; + return [resM, resE, exact]; + } + if (q < -348 || 347 < q) { + $panic(new $String("mult128bitPow10: power of 10 is out of range")); + } + pow = $clone((x = q - -348 >> 0, ((x < 0 || x >= detailedPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : detailedPowersOfTen[x])), arrayType); + if (q < 0) { + pow[0] = (x$1 = pow[0], x$2 = new $Uint64(0, 1), new $Uint64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)); + } + e2 = e2 + (((mulByLog10Log2(q) - 127 >> 0) + 119 >> 0)) >> 0; + _tuple = bits.Mul64(m, pow[0]); + l1 = _tuple[0]; + l0 = _tuple[1]; + _tuple$1 = bits.Mul64(m, pow[1]); + h1 = _tuple$1[0]; + h0 = _tuple$1[1]; + _tuple$2 = bits.Add64(l1, h0, new $Uint64(0, 0)); + mid = _tuple$2[0]; + carry = _tuple$2[1]; + h1 = (x$3 = carry, new $Uint64(h1.$high + x$3.$high, h1.$low + x$3.$low)); + _tmp$3 = (x$4 = $shiftLeft64(h1, 9), x$5 = $shiftRightUint64(mid, 55), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)); + _tmp$4 = e2; + _tmp$5 = (x$6 = $shiftLeft64(mid, 9), (x$6.$high === 0 && x$6.$low === 0)) && (l0.$high === 0 && l0.$low === 0); + resM = _tmp$3; + resE = _tmp$4; + exact = _tmp$5; + return [resM, resE, exact]; + }; + divisibleByPower5 = function divisibleByPower5$1(m, k) { + var i, k, m, x; + if ((m.$high === 0 && m.$low === 0)) { + return true; + } + i = 0; + while (true) { + if (!(i < k)) { break; } + if (!((x = $div64(m, new $Uint64(0, 5), true), (x.$high === 0 && x.$low === 0)))) { + return false; + } + m = $div64(m, (new $Uint64(0, 5)), false); + i = i + (1) >> 0; + } + return true; + }; + divmod1e9 = function divmod1e9$1(x) { + var _tuple, hi, q, x, x$1; + if (false) { + return [(($div64(x, new $Uint64(0, 1000000000), false).$low >>> 0)), (($div64(x, new $Uint64(0, 1000000000), true).$low >>> 0))]; + } + _tuple = bits.Mul64($shiftRightUint64(x, 1), new $Uint64(2305843009, 917808536)); + hi = _tuple[0]; + q = $shiftRightUint64(hi, 28); + return [((q.$low >>> 0)), (((x$1 = $mul64(q, new $Uint64(0, 1000000000)), new $Uint64(x.$high - x$1.$high, x.$low - x$1.$low)).$low >>> 0))]; + }; + AppendFloat = function AppendFloat$1(dst, f, fmt, prec, bitSize) { + var bitSize, dst, f, fmt, prec; + return genericFtoa(dst, f, fmt, prec, bitSize); + }; + $pkg.AppendFloat = AppendFloat; + genericFtoa = function genericFtoa$1(dst, val, fmt, prec, bitSize) { + var _1, _2, _3, _4, bitSize, bits$1, buf, buf$1, digits, digs, dst, exp, flt, fmt, mant, neg, ok, prec, s, shortest, val, x, x$1, x$2, x$3, y, y$1; + bits$1 = new $Uint64(0, 0); + flt = ptrType.nil; + _1 = bitSize; + if (_1 === (32)) { + bits$1 = (new $Uint64(0, math.Float32bits(($fround(val))))); + flt = float32info; + } else if (_1 === (64)) { + bits$1 = math.Float64bits(val); + flt = float64info; + } else { + $panic(new $String("strconv: illegal AppendFloat/FormatFloat bitSize")); + } + neg = !((x = $shiftRightUint64(bits$1, ((flt.expbits + flt.mantbits >>> 0))), (x.$high === 0 && x.$low === 0))); + exp = (($shiftRightUint64(bits$1, flt.mantbits).$low >> 0)) & ((((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)); + mant = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$2.$high - 0, x$2.$low - 1)), new $Uint64(bits$1.$high & x$1.$high, (bits$1.$low & x$1.$low) >>> 0)); + _2 = exp; + if (_2 === ((((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0))) { + s = ""; + if (!((mant.$high === 0 && mant.$low === 0))) { + s = "NaN"; + } else if (neg) { + s = "-Inf"; + } else { + s = "+Inf"; + } + return $appendSlice(dst, s); + } else if (_2 === (0)) { + exp = exp + (1) >> 0; + } else { + mant = (x$3 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high | x$3.$high, (mant.$low | x$3.$low) >>> 0)); + } + exp = exp + (flt.bias) >> 0; + if (fmt === 98) { + return fmtB(dst, neg, mant, exp, flt); + } + if ((fmt === 120) || (fmt === 88)) { + return fmtX(dst, prec, fmt, neg, mant, exp, flt); + } + if (!optimize) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false); + ok = false; + shortest = prec < 0; + if (shortest) { + buf = arrayType$3.zero(); + digs.d = new sliceType$6(buf); + ryuFtoaShortest(digs, mant, exp - ((flt.mantbits >> 0)) >> 0, flt); + ok = true; + _3 = fmt; + if ((_3 === (101)) || (_3 === (69))) { + prec = max(digs.nd - 1 >> 0, 0); + } else if (_3 === (102)) { + prec = max(digs.nd - digs.dp >> 0, 0); + } else if ((_3 === (103)) || (_3 === (71))) { + prec = digs.nd; + } + } else if (!((fmt === 102))) { + digits = prec; + _4 = fmt; + if ((_4 === (101)) || (_4 === (69))) { + digits = digits + (1) >> 0; + } else if ((_4 === (103)) || (_4 === (71))) { + if (prec === 0) { + prec = 1; + } + digits = prec; + } else { + digits = 1; + } + buf$1 = arrayType$4.zero(); + if ((bitSize === 32) && digits <= 9) { + digs.d = new sliceType$6(buf$1); + ryuFtoaFixed32(digs, ((mant.$low >>> 0)), exp - ((flt.mantbits >> 0)) >> 0, digits); + ok = true; + } else if (digits <= 18) { + digs.d = new sliceType$6(buf$1); + ryuFtoaFixed64(digs, mant, exp - ((flt.mantbits >> 0)) >> 0, digits); + ok = true; + } + } + if (!ok) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt); + }; + bigFtoa = function bigFtoa$1(dst, prec, fmt, neg, mant, exp, flt) { + var _1, _2, d, digs, dst, exp, flt, fmt, mant, neg, prec, shortest; + d = new decimal.ptr(arrayType$5.zero(), 0, 0, false, false); + d.Assign(mant); + d.Shift(exp - ((flt.mantbits >> 0)) >> 0); + digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false); + shortest = prec < 0; + if (shortest) { + roundShortest(d, mant, exp, flt); + decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false)); + _1 = fmt; + if ((_1 === (101)) || (_1 === (69))) { + prec = digs.nd - 1 >> 0; + } else if (_1 === (102)) { + prec = max(digs.nd - digs.dp >> 0, 0); + } else if ((_1 === (103)) || (_1 === (71))) { + prec = digs.nd; + } + } else { + _2 = fmt; + if ((_2 === (101)) || (_2 === (69))) { + d.Round(prec + 1 >> 0); + } else if (_2 === (102)) { + d.Round(d.dp + prec >> 0); + } else if ((_2 === (103)) || (_2 === (71))) { + if (prec === 0) { + prec = 1; + } + d.Round(prec); + } + decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false)); + } + return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt); + }; + formatDigits = function formatDigits$1(dst, shortest, neg, digs, prec, fmt) { + var _1, digs, dst, eprec, exp, fmt, neg, prec, shortest; + _1 = fmt; + if ((_1 === (101)) || (_1 === (69))) { + return fmtE(dst, neg, $clone(digs, decimalSlice), prec, fmt); + } else if (_1 === (102)) { + return fmtF(dst, neg, $clone(digs, decimalSlice), prec); + } else if ((_1 === (103)) || (_1 === (71))) { + eprec = prec; + if (eprec > digs.nd && digs.nd >= digs.dp) { + eprec = digs.nd; + } + if (shortest) { + eprec = 6; + } + exp = digs.dp - 1 >> 0; + if (exp < -4 || exp >= eprec) { + if (prec > digs.nd) { + prec = digs.nd; + } + return fmtE(dst, neg, $clone(digs, decimalSlice), prec - 1 >> 0, (fmt + 101 << 24 >>> 24) - 103 << 24 >>> 24); + } + if (prec > digs.dp) { + prec = digs.nd; + } + return fmtF(dst, neg, $clone(digs, decimalSlice), max(prec - digs.dp >> 0, 0)); + } + return $append(dst, 37, fmt); + }; + roundShortest = function roundShortest$1(d, mant, exp, flt) { + var d, exp, explo, flt, inclusive, l, li, lower$1, m, mant, mantlo, mi, minexp, okdown, okup, u, ui, upper, upperdelta, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + if ((mant.$high === 0 && mant.$low === 0)) { + d.nd = 0; + return; + } + minexp = flt.bias + 1 >> 0; + if (exp > minexp && ($imul(332, ((d.dp - d.nd >> 0)))) >= ($imul(100, ((exp - ((flt.mantbits >> 0)) >> 0))))) { + return; + } + upper = new decimal.ptr(arrayType$5.zero(), 0, 0, false, false); + upper.Assign((x = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x.$high + 0, x.$low + 1))); + upper.Shift((exp - ((flt.mantbits >> 0)) >> 0) - 1 >> 0); + mantlo = new $Uint64(0, 0); + explo = 0; + if ((x$1 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high > x$1.$high || (mant.$high === x$1.$high && mant.$low > x$1.$low))) || (exp === minexp)) { + mantlo = new $Uint64(mant.$high - 0, mant.$low - 1); + explo = exp; + } else { + mantlo = (x$2 = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x$2.$high - 0, x$2.$low - 1)); + explo = exp - 1 >> 0; + } + lower$1 = new decimal.ptr(arrayType$5.zero(), 0, 0, false, false); + lower$1.Assign((x$3 = $mul64(mantlo, new $Uint64(0, 2)), new $Uint64(x$3.$high + 0, x$3.$low + 1))); + lower$1.Shift((explo - ((flt.mantbits >> 0)) >> 0) - 1 >> 0); + inclusive = (x$4 = $div64(mant, new $Uint64(0, 2), true), (x$4.$high === 0 && x$4.$low === 0)); + upperdelta = 0; + ui = 0; + while (true) { + mi = (ui - upper.dp >> 0) + d.dp >> 0; + if (mi >= d.nd) { + break; + } + li = (ui - upper.dp >> 0) + lower$1.dp >> 0; + l = 48; + if (li >= 0 && li < lower$1.nd) { + l = (x$5 = lower$1.d, ((li < 0 || li >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[li])); + } + m = 48; + if (mi >= 0) { + m = (x$6 = d.d, ((mi < 0 || mi >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[mi])); + } + u = 48; + if (ui < upper.nd) { + u = (x$7 = upper.d, ((ui < 0 || ui >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[ui])); + } + okdown = !((l === m)) || inclusive && ((li + 1 >> 0) === lower$1.nd); + if ((upperdelta === 0) && (m + 1 << 24 >>> 24) < u) { + upperdelta = 2; + } else if ((upperdelta === 0) && !((m === u))) { + upperdelta = 1; + } else if ((upperdelta === 1) && (!((m === 57)) || !((u === 48)))) { + upperdelta = 2; + } + okup = upperdelta > 0 && (inclusive || upperdelta > 1 || (ui + 1 >> 0) < upper.nd); + if (okdown && okup) { + d.Round(mi + 1 >> 0); + return; + } else if (okdown) { + d.RoundDown(mi + 1 >> 0); + return; + } else if (okup) { + d.RoundUp(mi + 1 >> 0); + return; + } + ui = ui + (1) >> 0; + } + }; + fmtE = function fmtE$1(dst, neg, d, prec, fmt) { + var _q, _q$1, _q$2, _r, _r$1, _r$2, ch, d, dst, exp, fmt, i, m, neg, prec, x; + if (neg) { + dst = $append(dst, 45); + } + ch = 48; + if (!((d.nd === 0))) { + ch = (x = d.d, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + } + dst = $append(dst, ch); + if (prec > 0) { + dst = $append(dst, 46); + i = 1; + m = min(d.nd, prec + 1 >> 0); + if (i < m) { + dst = $appendSlice(dst, $subslice(d.d, i, m)); + i = m; + } + while (true) { + if (!(i <= prec)) { break; } + dst = $append(dst, 48); + i = i + (1) >> 0; + } + } + dst = $append(dst, fmt); + exp = d.dp - 1 >> 0; + if (d.nd === 0) { + exp = 0; + } + if (exp < 0) { + ch = 45; + exp = -exp; + } else { + ch = 43; + } + dst = $append(dst, ch); + if (exp < 10) { + dst = $append(dst, 48, ((exp << 24 >>> 24)) + 48 << 24 >>> 24); + } else if (exp < 100) { + dst = $append(dst, (((_q = exp / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r = exp % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); + } else { + dst = $append(dst, (((_q$1 = exp / 100, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (_r$1 = (((_q$2 = exp / 10, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) % 10, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24, (((_r$2 = exp % 10, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); + } + return dst; + }; + fmtF = function fmtF$1(dst, neg, d, prec) { + var ch, d, dst, i, j, m, neg, prec, x; + if (neg) { + dst = $append(dst, 45); + } + if (d.dp > 0) { + m = min(d.nd, d.dp); + dst = $appendSlice(dst, $subslice(d.d, 0, m)); + while (true) { + if (!(m < d.dp)) { break; } + dst = $append(dst, 48); + m = m + (1) >> 0; + } + } else { + dst = $append(dst, 48); + } + if (prec > 0) { + dst = $append(dst, 46); + i = 0; + while (true) { + if (!(i < prec)) { break; } + ch = 48; + j = d.dp + i >> 0; + if (0 <= j && j < d.nd) { + ch = (x = d.d, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); + } + dst = $append(dst, ch); + i = i + (1) >> 0; + } + } + return dst; + }; + fmtB = function fmtB$1(dst, neg, mant, exp, flt) { + var _tuple, _tuple$1, dst, exp, flt, mant, neg; + if (neg) { + dst = $append(dst, 45); + } + _tuple = formatBits(dst, mant, 10, false, true); + dst = _tuple[0]; + dst = $append(dst, 112); + exp = exp - (((flt.mantbits >> 0))) >> 0; + if (exp >= 0) { + dst = $append(dst, 43); + } + _tuple$1 = formatBits(dst, (new $Uint64(0, exp)), 10, exp < 0, true); + dst = _tuple$1[0]; + return dst; + }; + fmtX = function fmtX$1(dst, prec, fmt, neg, mant, exp, flt) { + var _q, _q$1, _q$2, _q$3, _q$4, _q$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, ch, dst, exp, extra, flt, fmt, hex, i, mant, neg, prec, shift, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + if ((mant.$high === 0 && mant.$low === 0)) { + exp = 0; + } + mant = $shiftLeft64(mant, ((60 - flt.mantbits >>> 0))); + while (true) { + if (!(!((mant.$high === 0 && mant.$low === 0)) && (x = new $Uint64(mant.$high & 268435456, (mant.$low & 0) >>> 0), (x.$high === 0 && x.$low === 0)))) { break; } + mant = $shiftLeft64(mant, (1)); + exp = exp - (1) >> 0; + } + if (prec >= 0 && prec < 15) { + shift = ((($imul(prec, 4)) >>> 0)); + extra = (x$1 = $shiftLeft64(mant, shift), new $Uint64(x$1.$high & 268435455, (x$1.$low & 4294967295) >>> 0)); + mant = $shiftRightUint64(mant, ((60 - shift >>> 0))); + if ((x$2 = (x$3 = new $Uint64(mant.$high & 0, (mant.$low & 1) >>> 0), new $Uint64(extra.$high | x$3.$high, (extra.$low | x$3.$low) >>> 0)), (x$2.$high > 134217728 || (x$2.$high === 134217728 && x$2.$low > 0)))) { + mant = (x$4 = new $Uint64(0, 1), new $Uint64(mant.$high + x$4.$high, mant.$low + x$4.$low)); + } + mant = $shiftLeft64(mant, ((60 - shift >>> 0))); + if (!((x$5 = new $Uint64(mant.$high & 536870912, (mant.$low & 0) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { + mant = $shiftRightUint64(mant, (1)); + exp = exp + (1) >> 0; + } + } + hex = "0123456789abcdef"; + if (fmt === 88) { + hex = "0123456789ABCDEF"; + } + if (neg) { + dst = $append(dst, 45); + } + dst = $append(dst, 48, fmt, 48 + (((x$6 = $shiftRightUint64(mant, 60), new $Uint64(x$6.$high & 0, (x$6.$low & 1) >>> 0)).$low << 24 >>> 24)) << 24 >>> 24); + mant = $shiftLeft64(mant, (4)); + if (prec < 0 && !((mant.$high === 0 && mant.$low === 0))) { + dst = $append(dst, 46); + while (true) { + if (!(!((mant.$high === 0 && mant.$low === 0)))) { break; } + dst = $append(dst, hex.charCodeAt($flatten64((x$7 = $shiftRightUint64(mant, 60), new $Uint64(x$7.$high & 0, (x$7.$low & 15) >>> 0))))); + mant = $shiftLeft64(mant, (4)); + } + } else if (prec > 0) { + dst = $append(dst, 46); + i = 0; + while (true) { + if (!(i < prec)) { break; } + dst = $append(dst, hex.charCodeAt($flatten64((x$8 = $shiftRightUint64(mant, 60), new $Uint64(x$8.$high & 0, (x$8.$low & 15) >>> 0))))); + mant = $shiftLeft64(mant, (4)); + i = i + (1) >> 0; + } + } + ch = 80; + if (fmt === lower(fmt)) { + ch = 112; + } + dst = $append(dst, ch); + if (exp < 0) { + ch = 45; + exp = -exp; + } else { + ch = 43; + } + dst = $append(dst, ch); + if (exp < 100) { + dst = $append(dst, (((_q = exp / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r = exp % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); + } else if (exp < 1000) { + dst = $append(dst, (((_q$1 = exp / 100, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r$1 = ((_q$2 = exp / 10, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))) % 10, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r$2 = exp % 10, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); + } else { + dst = $append(dst, (((_q$3 = exp / 1000, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (_r$3 = (((_q$4 = exp / 100, (_q$4 === _q$4 && _q$4 !== 1/0 && _q$4 !== -1/0) ? _q$4 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) % 10, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24, (((_r$4 = ((_q$5 = exp / 10, (_q$5 === _q$5 && _q$5 !== 1/0 && _q$5 !== -1/0) ? _q$5 >> 0 : $throwRuntimeError("integer divide by zero"))) % 10, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r$5 = exp % 10, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); + } + return dst; + }; + min = function min$1(a, b) { + var a, b; + if (a < b) { + return a; + } + return b; + }; + max = function max$1(a, b) { + var a, b; + if (a > b) { + return a; + } + return b; + }; + eiselLemire64 = function eiselLemire64$1(man, exp10, neg) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, clz, exp10, f, man, mergedHi, mergedLo, msb, neg, ok, retBits, retExp2, retMantissa, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xHi, xLo, yHi, yLo; + f = 0; + ok = false; + if ((man.$high === 0 && man.$low === 0)) { + if (neg) { + f = math.Float64frombits(new $Uint64(2147483648, 0)); + } + _tmp = f; + _tmp$1 = true; + f = _tmp; + ok = _tmp$1; + return [f, ok]; + } + if (exp10 < -348 || 347 < exp10) { + _tmp$2 = 0; + _tmp$3 = false; + f = _tmp$2; + ok = _tmp$3; + return [f, ok]; + } + clz = bits.LeadingZeros64(man); + man = $shiftLeft64(man, (((clz >>> 0)))); + retExp2 = (x = (new $Uint64(0, (((($imul(217706, exp10)) >> 16 >> 0) + 64 >> 0) + 1023 >> 0))), x$1 = (new $Uint64(0, clz)), new $Uint64(x.$high - x$1.$high, x.$low - x$1.$low)); + _tuple = bits.Mul64(man, (x$2 = exp10 - -348 >> 0, ((x$2 < 0 || x$2 >= detailedPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : detailedPowersOfTen[x$2]))[1]); + xHi = _tuple[0]; + xLo = _tuple[1]; + if ((x$3 = new $Uint64(xHi.$high & 0, (xHi.$low & 511) >>> 0), (x$3.$high === 0 && x$3.$low === 511)) && (x$4 = new $Uint64(xLo.$high + man.$high, xLo.$low + man.$low), (x$4.$high < man.$high || (x$4.$high === man.$high && x$4.$low < man.$low)))) { + _tuple$1 = bits.Mul64(man, (x$5 = exp10 - -348 >> 0, ((x$5 < 0 || x$5 >= detailedPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : detailedPowersOfTen[x$5]))[0]); + yHi = _tuple$1[0]; + yLo = _tuple$1[1]; + _tmp$4 = xHi; + _tmp$5 = new $Uint64(xLo.$high + yHi.$high, xLo.$low + yHi.$low); + mergedHi = _tmp$4; + mergedLo = _tmp$5; + if ((mergedLo.$high < xLo.$high || (mergedLo.$high === xLo.$high && mergedLo.$low < xLo.$low))) { + mergedHi = (x$6 = new $Uint64(0, 1), new $Uint64(mergedHi.$high + x$6.$high, mergedHi.$low + x$6.$low)); + } + if ((x$7 = new $Uint64(mergedHi.$high & 0, (mergedHi.$low & 511) >>> 0), (x$7.$high === 0 && x$7.$low === 511)) && (x$8 = new $Uint64(mergedLo.$high + 0, mergedLo.$low + 1), (x$8.$high === 0 && x$8.$low === 0)) && (x$9 = new $Uint64(yLo.$high + man.$high, yLo.$low + man.$low), (x$9.$high < man.$high || (x$9.$high === man.$high && x$9.$low < man.$low)))) { + _tmp$6 = 0; + _tmp$7 = false; + f = _tmp$6; + ok = _tmp$7; + return [f, ok]; + } + _tmp$8 = mergedHi; + _tmp$9 = mergedLo; + xHi = _tmp$8; + xLo = _tmp$9; + } + msb = $shiftRightUint64(xHi, 63); + retMantissa = $shiftRightUint64(xHi, $flatten64((new $Uint64(msb.$high + 0, msb.$low + 9)))); + retExp2 = (x$10 = new $Uint64(0 ^ msb.$high, (1 ^ msb.$low) >>> 0), new $Uint64(retExp2.$high - x$10.$high, retExp2.$low - x$10.$low)); + if ((xLo.$high === 0 && xLo.$low === 0) && (x$11 = new $Uint64(xHi.$high & 0, (xHi.$low & 511) >>> 0), (x$11.$high === 0 && x$11.$low === 0)) && (x$12 = new $Uint64(retMantissa.$high & 0, (retMantissa.$low & 3) >>> 0), (x$12.$high === 0 && x$12.$low === 1))) { + _tmp$10 = 0; + _tmp$11 = false; + f = _tmp$10; + ok = _tmp$11; + return [f, ok]; + } + retMantissa = (x$13 = new $Uint64(retMantissa.$high & 0, (retMantissa.$low & 1) >>> 0), new $Uint64(retMantissa.$high + x$13.$high, retMantissa.$low + x$13.$low)); + retMantissa = $shiftRightUint64(retMantissa, (1)); + if ((x$14 = $shiftRightUint64(retMantissa, 53), (x$14.$high > 0 || (x$14.$high === 0 && x$14.$low > 0)))) { + retMantissa = $shiftRightUint64(retMantissa, (1)); + retExp2 = (x$15 = new $Uint64(0, 1), new $Uint64(retExp2.$high + x$15.$high, retExp2.$low + x$15.$low)); + } + if ((x$16 = new $Uint64(retExp2.$high - 0, retExp2.$low - 1), (x$16.$high > 0 || (x$16.$high === 0 && x$16.$low >= 2046)))) { + _tmp$12 = 0; + _tmp$13 = false; + f = _tmp$12; + ok = _tmp$13; + return [f, ok]; + } + retBits = (x$17 = $shiftLeft64(retExp2, 52), x$18 = new $Uint64(retMantissa.$high & 1048575, (retMantissa.$low & 4294967295) >>> 0), new $Uint64(x$17.$high | x$18.$high, (x$17.$low | x$18.$low) >>> 0)); + if (neg) { + retBits = (x$19 = new $Uint64(2147483648, 0), new $Uint64(retBits.$high | x$19.$high, (retBits.$low | x$19.$low) >>> 0)); + } + _tmp$14 = math.Float64frombits(retBits); + _tmp$15 = true; + f = _tmp$14; + ok = _tmp$15; + return [f, ok]; + }; + eiselLemire32 = function eiselLemire32$1(man, exp10, neg) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, clz, exp10, f, man, mergedHi, mergedLo, msb, neg, ok, retBits, retExp2, retMantissa, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xHi, xLo, yHi, yLo; + f = 0; + ok = false; + if ((man.$high === 0 && man.$low === 0)) { + if (neg) { + f = math.Float32frombits(2147483648); + } + _tmp = f; + _tmp$1 = true; + f = _tmp; + ok = _tmp$1; + return [f, ok]; + } + if (exp10 < -348 || 347 < exp10) { + _tmp$2 = 0; + _tmp$3 = false; + f = _tmp$2; + ok = _tmp$3; + return [f, ok]; + } + clz = bits.LeadingZeros64(man); + man = $shiftLeft64(man, (((clz >>> 0)))); + retExp2 = (x = (new $Uint64(0, (((($imul(217706, exp10)) >> 16 >> 0) + 64 >> 0) + 127 >> 0))), x$1 = (new $Uint64(0, clz)), new $Uint64(x.$high - x$1.$high, x.$low - x$1.$low)); + _tuple = bits.Mul64(man, (x$2 = exp10 - -348 >> 0, ((x$2 < 0 || x$2 >= detailedPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : detailedPowersOfTen[x$2]))[1]); + xHi = _tuple[0]; + xLo = _tuple[1]; + if ((x$3 = new $Uint64(xHi.$high & 63, (xHi.$low & 4294967295) >>> 0), (x$3.$high === 63 && x$3.$low === 4294967295)) && (x$4 = new $Uint64(xLo.$high + man.$high, xLo.$low + man.$low), (x$4.$high < man.$high || (x$4.$high === man.$high && x$4.$low < man.$low)))) { + _tuple$1 = bits.Mul64(man, (x$5 = exp10 - -348 >> 0, ((x$5 < 0 || x$5 >= detailedPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : detailedPowersOfTen[x$5]))[0]); + yHi = _tuple$1[0]; + yLo = _tuple$1[1]; + _tmp$4 = xHi; + _tmp$5 = new $Uint64(xLo.$high + yHi.$high, xLo.$low + yHi.$low); + mergedHi = _tmp$4; + mergedLo = _tmp$5; + if ((mergedLo.$high < xLo.$high || (mergedLo.$high === xLo.$high && mergedLo.$low < xLo.$low))) { + mergedHi = (x$6 = new $Uint64(0, 1), new $Uint64(mergedHi.$high + x$6.$high, mergedHi.$low + x$6.$low)); + } + if ((x$7 = new $Uint64(mergedHi.$high & 63, (mergedHi.$low & 4294967295) >>> 0), (x$7.$high === 63 && x$7.$low === 4294967295)) && (x$8 = new $Uint64(mergedLo.$high + 0, mergedLo.$low + 1), (x$8.$high === 0 && x$8.$low === 0)) && (x$9 = new $Uint64(yLo.$high + man.$high, yLo.$low + man.$low), (x$9.$high < man.$high || (x$9.$high === man.$high && x$9.$low < man.$low)))) { + _tmp$6 = 0; + _tmp$7 = false; + f = _tmp$6; + ok = _tmp$7; + return [f, ok]; + } + _tmp$8 = mergedHi; + _tmp$9 = mergedLo; + xHi = _tmp$8; + xLo = _tmp$9; + } + msb = $shiftRightUint64(xHi, 63); + retMantissa = $shiftRightUint64(xHi, $flatten64((new $Uint64(msb.$high + 0, msb.$low + 38)))); + retExp2 = (x$10 = new $Uint64(0 ^ msb.$high, (1 ^ msb.$low) >>> 0), new $Uint64(retExp2.$high - x$10.$high, retExp2.$low - x$10.$low)); + if ((xLo.$high === 0 && xLo.$low === 0) && (x$11 = new $Uint64(xHi.$high & 63, (xHi.$low & 4294967295) >>> 0), (x$11.$high === 0 && x$11.$low === 0)) && (x$12 = new $Uint64(retMantissa.$high & 0, (retMantissa.$low & 3) >>> 0), (x$12.$high === 0 && x$12.$low === 1))) { + _tmp$10 = 0; + _tmp$11 = false; + f = _tmp$10; + ok = _tmp$11; + return [f, ok]; + } + retMantissa = (x$13 = new $Uint64(retMantissa.$high & 0, (retMantissa.$low & 1) >>> 0), new $Uint64(retMantissa.$high + x$13.$high, retMantissa.$low + x$13.$low)); + retMantissa = $shiftRightUint64(retMantissa, (1)); + if ((x$14 = $shiftRightUint64(retMantissa, 24), (x$14.$high > 0 || (x$14.$high === 0 && x$14.$low > 0)))) { + retMantissa = $shiftRightUint64(retMantissa, (1)); + retExp2 = (x$15 = new $Uint64(0, 1), new $Uint64(retExp2.$high + x$15.$high, retExp2.$low + x$15.$low)); + } + if ((x$16 = new $Uint64(retExp2.$high - 0, retExp2.$low - 1), (x$16.$high > 0 || (x$16.$high === 0 && x$16.$low >= 254)))) { + _tmp$12 = 0; + _tmp$13 = false; + f = _tmp$12; + ok = _tmp$13; + return [f, ok]; + } + retBits = (x$17 = $shiftLeft64(retExp2, 23), x$18 = new $Uint64(retMantissa.$high & 0, (retMantissa.$low & 8388607) >>> 0), new $Uint64(x$17.$high | x$18.$high, (x$17.$low | x$18.$low) >>> 0)); + if (neg) { + retBits = (x$19 = new $Uint64(0, 2147483648), new $Uint64(retBits.$high | x$19.$high, (retBits.$low | x$19.$low) >>> 0)); + } + _tmp$14 = math.Float32frombits(((retBits.$low >>> 0))); + _tmp$15 = true; + f = _tmp$14; + ok = _tmp$15; + return [f, ok]; + }; + $ptrType(decimal).prototype.String = function String() { + var a, buf, n, w; + a = this; + n = 10 + a.nd >> 0; + if (a.dp > 0) { + n = n + (a.dp) >> 0; + } + if (a.dp < 0) { + n = n + (-a.dp) >> 0; + } + buf = $makeSlice(sliceType$6, n); + w = 0; + if ((a.nd === 0)) { + return "0"; + } else if (a.dp <= 0) { + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48); + w = w + (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + w = w + (1) >> 0; + w = w + (digitZero($subslice(buf, w, (w + -a.dp >> 0)))) >> 0; + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0; + } else if (a.dp < a.nd) { + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.dp))) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + w = w + (1) >> 0; + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), a.dp, a.nd))) >> 0; + } else { + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0; + w = w + (digitZero($subslice(buf, w, ((w + a.dp >> 0) - a.nd >> 0)))) >> 0; + } + return ($bytesToString($subslice(buf, 0, w))); + }; + digitZero = function digitZero$1(dst) { + var _i, _ref, dst, i; + _ref = dst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + i] = 48); + _i++; + } + return dst.$length; + }; + trim = function trim$1(a) { + var a, x, x$1; + while (true) { + if (!(a.nd > 0 && ((x = a.d, x$1 = a.nd - 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) === 48))) { break; } + a.nd = a.nd - (1) >> 0; + } + if (a.nd === 0) { + a.dp = 0; + } + }; + $ptrType(decimal).prototype.Assign = function Assign(v) { + var a, buf, n, v, v1, x, x$1, x$2; + a = this; + buf = arrayType$4.zero(); + n = 0; + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } + v1 = $div64(v, new $Uint64(0, 10), false); + v = (x = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x.$high, v.$low - x.$low)); + ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24))); + n = n + (1) >> 0; + v = v1; + } + a.nd = 0; + n = n - (1) >> 0; + while (true) { + if (!(n >= 0)) { break; } + (x$1 = a.d, x$2 = a.nd, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2] = ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n]))); + a.nd = a.nd + (1) >> 0; + n = n - (1) >> 0; + } + a.dp = a.nd; + trim(a); + }; + rightShift = function rightShift$1(a, k) { + var a, c, c$1, dig, dig$1, k, mask, n, r, w, x, x$1, x$2, x$3, y, y$1, y$2, y$3, y$4; + r = 0; + w = 0; + n = 0; + while (true) { + if (!(((y = k, y < 32 ? (n >>> y) : 0) >>> 0) === 0)) { break; } + if (r >= a.nd) { + if (n === 0) { + a.nd = 0; + return; + } + while (true) { + if (!(((y$1 = k, y$1 < 32 ? (n >>> y$1) : 0) >>> 0) === 0)) { break; } + n = $imul(n, 10) >>> 0; + r = r + (1) >> 0; + } + break; + } + c = (((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)); + n = (($imul(n, 10) >>> 0) + c >>> 0) - 48 >>> 0; + r = r + (1) >> 0; + } + a.dp = a.dp - ((r - 1 >> 0)) >> 0; + mask = (((y$2 = k, y$2 < 32 ? (1 << y$2) : 0) >>> 0)) - 1 >>> 0; + while (true) { + if (!(r < a.nd)) { break; } + c$1 = (((x$1 = a.d, ((r < 0 || r >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[r])) >>> 0)); + dig = (y$3 = k, y$3 < 32 ? (n >>> y$3) : 0) >>> 0; + n = (n & (mask)) >>> 0; + (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((dig + 48 >>> 0) << 24 >>> 24)))); + w = w + (1) >> 0; + n = (($imul(n, 10) >>> 0) + c$1 >>> 0) - 48 >>> 0; + r = r + (1) >> 0; + } + while (true) { + if (!(n > 0)) { break; } + dig$1 = (y$4 = k, y$4 < 32 ? (n >>> y$4) : 0) >>> 0; + n = (n & (mask)) >>> 0; + if (w < 800) { + (x$3 = a.d, ((w < 0 || w >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[w] = (((dig$1 + 48 >>> 0) << 24 >>> 24)))); + w = w + (1) >> 0; + } else if (dig$1 > 0) { + a.trunc = true; + } + n = $imul(n, 10) >>> 0; + } + a.nd = w; + trim(a); + }; + prefixIsLessThan = function prefixIsLessThan$1(b, s) { + var b, i, s; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (i >= b.$length) { + return true; + } + if (!((((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) === s.charCodeAt(i)))) { + return ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) < s.charCodeAt(i); + } + i = i + (1) >> 0; + } + return false; + }; + leftShift = function leftShift$1(a, k) { + var _q, _q$1, a, delta, k, n, quo, quo$1, r, rem, rem$1, w, x, x$1, x$2, y; + delta = ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).delta; + if (prefixIsLessThan($subslice(new sliceType$6(a.d), 0, a.nd), ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).cutoff)) { + delta = delta - (1) >> 0; + } + r = a.nd; + w = a.nd + delta >> 0; + n = 0; + r = r - (1) >> 0; + while (true) { + if (!(r >= 0)) { break; } + n = n + (((y = k, y < 32 ? ((((((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)) - 48 >>> 0)) << y) : 0) >>> 0)) >>> 0; + quo = (_q = n / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + rem = n - ($imul(10, quo) >>> 0) >>> 0; + w = w - (1) >> 0; + if (w < 800) { + (x$1 = a.d, ((w < 0 || w >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[w] = (((rem + 48 >>> 0) << 24 >>> 24)))); + } else if (!((rem === 0))) { + a.trunc = true; + } + n = quo; + r = r - (1) >> 0; + } + while (true) { + if (!(n > 0)) { break; } + quo$1 = (_q$1 = n / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + rem$1 = n - ($imul(10, quo$1) >>> 0) >>> 0; + w = w - (1) >> 0; + if (w < 800) { + (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((rem$1 + 48 >>> 0) << 24 >>> 24)))); + } else if (!((rem$1 === 0))) { + a.trunc = true; + } + n = quo$1; + } + a.nd = a.nd + (delta) >> 0; + if (a.nd >= 800) { + a.nd = 800; + } + a.dp = a.dp + (delta) >> 0; + trim(a); + }; + $ptrType(decimal).prototype.Shift = function Shift(k) { + var a, k; + a = this; + if ((a.nd === 0)) { + } else if (k > 0) { + while (true) { + if (!(k > 28)) { break; } + leftShift(a, 28); + k = k - (28) >> 0; + } + leftShift(a, ((k >>> 0))); + } else if (k < 0) { + while (true) { + if (!(k < -28)) { break; } + rightShift(a, 28); + k = k + (28) >> 0; + } + rightShift(a, ((-k >>> 0))); + } + }; + shouldRoundUp = function shouldRoundUp$1(a, nd) { + var _r, a, nd, x, x$1, x$2, x$3; + if (nd < 0 || nd >= a.nd) { + return false; + } + if (((x = a.d, ((nd < 0 || nd >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[nd])) === 53) && ((nd + 1 >> 0) === a.nd)) { + if (a.trunc) { + return true; + } + return nd > 0 && !(((_r = (((x$1 = a.d, x$2 = nd - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])) - 48 << 24 >>> 24)) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0)); + } + return (x$3 = a.d, ((nd < 0 || nd >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[nd])) >= 53; + }; + $ptrType(decimal).prototype.Round = function Round(nd) { + var a, nd; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + if (shouldRoundUp(a, nd)) { + a.RoundUp(nd); + } else { + a.RoundDown(nd); + } + }; + $ptrType(decimal).prototype.RoundDown = function RoundDown(nd) { + var a, nd; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + a.nd = nd; + trim(a); + }; + $ptrType(decimal).prototype.RoundUp = function RoundUp(nd) { + var a, c, i, nd, x, x$1, x$2; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + i = nd - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + c = (x = a.d, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])); + if (c < 57) { + (x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = ((x$1 = a.d, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])) + (1) << 24 >>> 24))); + a.nd = i + 1 >> 0; + return; + } + i = i - (1) >> 0; + } + a.d[0] = 49; + a.nd = 1; + a.dp = a.dp + (1) >> 0; + }; + $ptrType(decimal).prototype.RoundedInteger = function RoundedInteger() { + var a, i, n, x, x$1, x$2, x$3; + a = this; + if (a.dp > 20) { + return new $Uint64(4294967295, 4294967295); + } + i = 0; + n = new $Uint64(0, 0); + i = 0; + while (true) { + if (!(i < a.dp && i < a.nd)) { break; } + n = (x = $mul64(n, new $Uint64(0, 10)), x$1 = (new $Uint64(0, ((x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])) - 48 << 24 >>> 24))), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + i = i + (1) >> 0; + } + while (true) { + if (!(i < a.dp)) { break; } + n = $mul64(n, (new $Uint64(0, 10))); + i = i + (1) >> 0; + } + if (shouldRoundUp(a, a.dp)) { + n = (x$3 = new $Uint64(0, 1), new $Uint64(n.$high + x$3.$high, n.$low + x$3.$low)); + } + return n; + }; + index = function index$1(s, c) { + var c, s; + return bytealg.IndexByteString(s, c); + }; + lower = function lower$1(c) { + var c; + return (c | 32) >>> 0; + }; + $ptrType(NumError).prototype.Error = function Error() { + var {$24r, _r, e, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = "strconv." + e.Func + ": " + "parsing " + Quote(e.Num) + ": " + _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Error, $c: true, $r, $24r, _r, e, $s};return $f; + }; + $ptrType(NumError).prototype.Unwrap = function Unwrap() { + var e; + e = this; + return e.Err; + }; + syntaxError = function syntaxError$1(fn, str) { + var fn, str; + return new NumError.ptr(fn, str, $pkg.ErrSyntax); + }; + rangeError = function rangeError$1(fn, str) { + var fn, str; + return new NumError.ptr(fn, str, $pkg.ErrRange); + }; + baseError = function baseError$1(fn, str, base) { + var base, fn, str; + return new NumError.ptr(fn, str, errors.New("invalid base " + Itoa(base))); + }; + bitSizeError = function bitSizeError$1(fn, str, bitSize) { + var bitSize, fn, str; + return new NumError.ptr(fn, str, errors.New("invalid bit size " + Itoa(bitSize))); + }; + ParseUint = function ParseUint$1(s, base, bitSize) { + var _1, _i, _ref, base, base0, bitSize, c, cutoff, d, maxVal, n, n1, s, s0, underscores, x, x$1, x$2; + if (s === "") { + return [new $Uint64(0, 0), syntaxError("ParseUint", s)]; + } + base0 = base === 0; + s0 = s; + if (2 <= base && base <= 36) { + } else if ((base === 0)) { + base = 10; + if (s.charCodeAt(0) === 48) { + if (s.length >= 3 && (lower(s.charCodeAt(1)) === 98)) { + base = 2; + s = $substring(s, 2); + } else if (s.length >= 3 && (lower(s.charCodeAt(1)) === 111)) { + base = 8; + s = $substring(s, 2); + } else if (s.length >= 3 && (lower(s.charCodeAt(1)) === 120)) { + base = 16; + s = $substring(s, 2); + } else { + base = 8; + s = $substring(s, 1); + } + } + } else { + return [new $Uint64(0, 0), baseError("ParseUint", s0, base)]; + } + if (bitSize === 0) { + bitSize = 32; + } else if (bitSize < 0 || bitSize > 64) { + return [new $Uint64(0, 0), bitSizeError("ParseUint", s0, bitSize)]; + } + cutoff = new $Uint64(0, 0); + _1 = base; + if (_1 === (10)) { + cutoff = new $Uint64(429496729, 2576980378); + } else if (_1 === (16)) { + cutoff = new $Uint64(268435456, 0); + } else { + cutoff = (x = $div64(new $Uint64(4294967295, 4294967295), (new $Uint64(0, base)), false), new $Uint64(x.$high + 0, x.$low + 1)); + } + maxVal = (x$1 = $shiftLeft64(new $Uint64(0, 1), ((bitSize >>> 0))), new $Uint64(x$1.$high - 0, x$1.$low - 1)); + underscores = false; + n = new $Uint64(0, 0); + _ref = (new sliceType$6($stringToBytes(s))); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + d = 0; + if ((c === 95) && base0) { + underscores = true; + _i++; + continue; + } else if (48 <= c && c <= 57) { + d = c - 48 << 24 >>> 24; + } else if (97 <= lower(c) && lower(c) <= 122) { + d = (lower(c) - 97 << 24 >>> 24) + 10 << 24 >>> 24; + } else { + return [new $Uint64(0, 0), syntaxError("ParseUint", s0)]; + } + if (d >= ((base << 24 >>> 24))) { + return [new $Uint64(0, 0), syntaxError("ParseUint", s0)]; + } + if ((n.$high > cutoff.$high || (n.$high === cutoff.$high && n.$low >= cutoff.$low))) { + return [maxVal, rangeError("ParseUint", s0)]; + } + n = $mul64(n, ((new $Uint64(0, base)))); + n1 = (x$2 = (new $Uint64(0, d)), new $Uint64(n.$high + x$2.$high, n.$low + x$2.$low)); + if ((n1.$high < n.$high || (n1.$high === n.$high && n1.$low < n.$low)) || (n1.$high > maxVal.$high || (n1.$high === maxVal.$high && n1.$low > maxVal.$low))) { + return [maxVal, rangeError("ParseUint", s0)]; + } + n = n1; + _i++; + } + if (underscores && !underscoreOK(s0)) { + return [new $Uint64(0, 0), syntaxError("ParseUint", s0)]; + } + return [n, $ifaceNil]; + }; + $pkg.ParseUint = ParseUint; + ParseInt = function ParseInt$1(s, base, bitSize) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, base, bitSize, cutoff, err, i, n, neg, s, s0, un, x, x$1; + i = new $Int64(0, 0); + err = $ifaceNil; + if (s === "") { + _tmp = new $Int64(0, 0); + _tmp$1 = syntaxError("ParseInt", s); + i = _tmp; + err = _tmp$1; + return [i, err]; + } + s0 = s; + neg = false; + if (s.charCodeAt(0) === 43) { + s = $substring(s, 1); + } else if (s.charCodeAt(0) === 45) { + neg = true; + s = $substring(s, 1); + } + un = new $Uint64(0, 0); + _tuple = ParseUint(s, base, bitSize); + un = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil)) && !($interfaceIsEqual($assertType(err, ptrType$1).Err, $pkg.ErrRange))) { + $assertType(err, ptrType$1).Func = "ParseInt"; + $assertType(err, ptrType$1).Num = s0; + _tmp$2 = new $Int64(0, 0); + _tmp$3 = err; + i = _tmp$2; + err = _tmp$3; + return [i, err]; + } + if (bitSize === 0) { + bitSize = 32; + } + cutoff = ($shiftLeft64(new $Uint64(0, 1), (((bitSize - 1 >> 0) >>> 0)))); + if (!neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low >= cutoff.$low))) { + _tmp$4 = ((x = new $Uint64(cutoff.$high - 0, cutoff.$low - 1), new $Int64(x.$high, x.$low))); + _tmp$5 = rangeError("ParseInt", s0); + i = _tmp$4; + err = _tmp$5; + return [i, err]; + } + if (neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low > cutoff.$low))) { + _tmp$6 = (x$1 = (new $Int64(cutoff.$high, cutoff.$low)), new $Int64(-x$1.$high, -x$1.$low)); + _tmp$7 = rangeError("ParseInt", s0); + i = _tmp$6; + err = _tmp$7; + return [i, err]; + } + n = (new $Int64(un.$high, un.$low)); + if (neg) { + n = new $Int64(-n.$high, -n.$low); + } + _tmp$8 = n; + _tmp$9 = $ifaceNil; + i = _tmp$8; + err = _tmp$9; + return [i, err]; + }; + $pkg.ParseInt = ParseInt; + underscoreOK = function underscoreOK$1(s) { + var hex, i, s, saw; + saw = 94; + i = 0; + if (s.length >= 1 && ((s.charCodeAt(0) === 45) || (s.charCodeAt(0) === 43))) { + s = $substring(s, 1); + } + hex = false; + if (s.length >= 2 && (s.charCodeAt(0) === 48) && ((lower(s.charCodeAt(1)) === 98) || (lower(s.charCodeAt(1)) === 111) || (lower(s.charCodeAt(1)) === 120))) { + i = 2; + saw = 48; + hex = lower(s.charCodeAt(1)) === 120; + } + while (true) { + if (!(i < s.length)) { break; } + if (48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57 || hex && 97 <= lower(s.charCodeAt(i)) && lower(s.charCodeAt(i)) <= 102) { + saw = 48; + i = i + (1) >> 0; + continue; + } + if (s.charCodeAt(i) === 95) { + if (!((saw === 48))) { + return false; + } + saw = 95; + i = i + (1) >> 0; + continue; + } + if (saw === 95) { + return false; + } + saw = 33; + i = i + (1) >> 0; + } + return !((saw === 95)); + }; + commonPrefixLenIgnoreCase = function commonPrefixLenIgnoreCase$1(s, prefix) { + var c, i, n, prefix, s; + n = prefix.length; + if (n > s.length) { + n = s.length; + } + i = 0; + while (true) { + if (!(i < n)) { break; } + c = s.charCodeAt(i); + if (65 <= c && c <= 90) { + c = c + (32) << 24 >>> 24; + } + if (!((c === prefix.charCodeAt(i)))) { + return i; + } + i = i + (1) >> 0; + } + return n; + }; + special = function special$1(s) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, f, n, n$1, nsign, ok, s, sign; + f = 0; + n = 0; + ok = false; + if (s.length === 0) { + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = false; + f = _tmp; + n = _tmp$1; + ok = _tmp$2; + return [f, n, ok]; + } + sign = 1; + nsign = 0; + _1 = s.charCodeAt(0); + if ((_1 === (43)) || (_1 === (45))) { + if (s.charCodeAt(0) === 45) { + sign = -1; + } + nsign = 1; + s = $substring(s, 1); + n$1 = commonPrefixLenIgnoreCase(s, "infinity"); + if (3 < n$1 && n$1 < 8) { + n$1 = 3; + } + if ((n$1 === 3) || (n$1 === 8)) { + _tmp$3 = math.Inf(sign); + _tmp$4 = nsign + n$1 >> 0; + _tmp$5 = true; + f = _tmp$3; + n = _tmp$4; + ok = _tmp$5; + return [f, n, ok]; + } + } else if ((_1 === (105)) || (_1 === (73))) { + n$1 = commonPrefixLenIgnoreCase(s, "infinity"); + if (3 < n$1 && n$1 < 8) { + n$1 = 3; + } + if ((n$1 === 3) || (n$1 === 8)) { + _tmp$6 = math.Inf(sign); + _tmp$7 = nsign + n$1 >> 0; + _tmp$8 = true; + f = _tmp$6; + n = _tmp$7; + ok = _tmp$8; + return [f, n, ok]; + } + } else if ((_1 === (110)) || (_1 === (78))) { + if (commonPrefixLenIgnoreCase(s, "nan") === 3) { + _tmp$9 = math.NaN(); + _tmp$10 = 3; + _tmp$11 = true; + f = _tmp$9; + n = _tmp$10; + ok = _tmp$11; + return [f, n, ok]; + } + } + _tmp$12 = 0; + _tmp$13 = 0; + _tmp$14 = false; + f = _tmp$12; + n = _tmp$13; + ok = _tmp$14; + return [f, n, ok]; + }; + $ptrType(decimal).prototype.set = function set(s) { + var b, e, esign, i, ok, s, sawdigits, sawdot, x, x$1; + ok = false; + b = this; + i = 0; + b.neg = false; + b.trunc = false; + if (i >= s.length) { + return ok; + } + if ((s.charCodeAt(i) === 43)) { + i = i + (1) >> 0; + } else if ((s.charCodeAt(i) === 45)) { + b.neg = true; + i = i + (1) >> 0; + } + sawdot = false; + sawdigits = false; + while (true) { + if (!(i < s.length)) { break; } + if ((s.charCodeAt(i) === 95)) { + i = i + (1) >> 0; + continue; + } else if ((s.charCodeAt(i) === 46)) { + if (sawdot) { + return ok; + } + sawdot = true; + b.dp = b.nd; + i = i + (1) >> 0; + continue; + } else if (48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57) { + sawdigits = true; + if ((s.charCodeAt(i) === 48) && (b.nd === 0)) { + b.dp = b.dp - (1) >> 0; + i = i + (1) >> 0; + continue; + } + if (b.nd < 800) { + (x = b.d, x$1 = b.nd, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1] = s.charCodeAt(i))); + b.nd = b.nd + (1) >> 0; + } else if (!((s.charCodeAt(i) === 48))) { + b.trunc = true; + } + i = i + (1) >> 0; + continue; + } + break; + } + if (!sawdigits) { + return ok; + } + if (!sawdot) { + b.dp = b.nd; + } + if (i < s.length && (lower(s.charCodeAt(i)) === 101)) { + i = i + (1) >> 0; + if (i >= s.length) { + return ok; + } + esign = 1; + if (s.charCodeAt(i) === 43) { + i = i + (1) >> 0; + } else if (s.charCodeAt(i) === 45) { + i = i + (1) >> 0; + esign = -1; + } + if (i >= s.length || s.charCodeAt(i) < 48 || s.charCodeAt(i) > 57) { + return ok; + } + e = 0; + while (true) { + if (!(i < s.length && (48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57 || (s.charCodeAt(i) === 95)))) { break; } + if (s.charCodeAt(i) === 95) { + i = i + (1) >> 0; + continue; + } + if (e < 10000) { + e = (($imul(e, 10)) + ((s.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + } + i = i + (1) >> 0; + } + b.dp = b.dp + (($imul(e, esign))) >> 0; + } + if (!((i === s.length))) { + return ok; + } + ok = true; + return ok; + }; + readFloat = function readFloat$1(s) { + var _1, base, c, dp, e, esign, exp, expChar, hex, i, mantissa, maxMantDigits, nd, ndMant, neg, ok, s, sawdigits, sawdot, trunc, underscores, x, x$1; + mantissa = new $Uint64(0, 0); + exp = 0; + neg = false; + trunc = false; + hex = false; + i = 0; + ok = false; + underscores = false; + if (i >= s.length) { + return [mantissa, exp, neg, trunc, hex, i, ok]; + } + if ((s.charCodeAt(i) === 43)) { + i = i + (1) >> 0; + } else if ((s.charCodeAt(i) === 45)) { + neg = true; + i = i + (1) >> 0; + } + base = new $Uint64(0, 10); + maxMantDigits = 19; + expChar = 101; + if ((i + 2 >> 0) < s.length && (s.charCodeAt(i) === 48) && (lower(s.charCodeAt((i + 1 >> 0))) === 120)) { + base = new $Uint64(0, 16); + maxMantDigits = 16; + i = i + (2) >> 0; + expChar = 112; + hex = true; + } + sawdot = false; + sawdigits = false; + nd = 0; + ndMant = 0; + dp = 0; + loop: + while (true) { + if (!(i < s.length)) { break; } + c = s.charCodeAt(i); + _1 = true; + if (_1 === ((c === 95))) { + underscores = true; + i = i + (1) >> 0; + continue; + } else if (_1 === ((c === 46))) { + if (sawdot) { + break loop; + } + sawdot = true; + dp = nd; + i = i + (1) >> 0; + continue; + } else if (_1 === (48 <= c && c <= 57)) { + sawdigits = true; + if ((c === 48) && (nd === 0)) { + dp = dp - (1) >> 0; + i = i + (1) >> 0; + continue; + } + nd = nd + (1) >> 0; + if (ndMant < maxMantDigits) { + mantissa = $mul64(mantissa, (base)); + mantissa = (x = (new $Uint64(0, (c - 48 << 24 >>> 24))), new $Uint64(mantissa.$high + x.$high, mantissa.$low + x.$low)); + ndMant = ndMant + (1) >> 0; + } else if (!((c === 48))) { + trunc = true; + } + i = i + (1) >> 0; + continue; + } else if (_1 === ((base.$high === 0 && base.$low === 16) && 97 <= lower(c) && lower(c) <= 102)) { + sawdigits = true; + nd = nd + (1) >> 0; + if (ndMant < maxMantDigits) { + mantissa = $mul64(mantissa, (new $Uint64(0, 16))); + mantissa = (x$1 = (new $Uint64(0, ((lower(c) - 97 << 24 >>> 24) + 10 << 24 >>> 24))), new $Uint64(mantissa.$high + x$1.$high, mantissa.$low + x$1.$low)); + ndMant = ndMant + (1) >> 0; + } else { + trunc = true; + } + i = i + (1) >> 0; + continue; + } + break; + } + if (!sawdigits) { + return [mantissa, exp, neg, trunc, hex, i, ok]; + } + if (!sawdot) { + dp = nd; + } + if ((base.$high === 0 && base.$low === 16)) { + dp = $imul(dp, (4)); + ndMant = $imul(ndMant, (4)); + } + if (i < s.length && (lower(s.charCodeAt(i)) === expChar)) { + i = i + (1) >> 0; + if (i >= s.length) { + return [mantissa, exp, neg, trunc, hex, i, ok]; + } + esign = 1; + if (s.charCodeAt(i) === 43) { + i = i + (1) >> 0; + } else if (s.charCodeAt(i) === 45) { + i = i + (1) >> 0; + esign = -1; + } + if (i >= s.length || s.charCodeAt(i) < 48 || s.charCodeAt(i) > 57) { + return [mantissa, exp, neg, trunc, hex, i, ok]; + } + e = 0; + while (true) { + if (!(i < s.length && (48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57 || (s.charCodeAt(i) === 95)))) { break; } + if (s.charCodeAt(i) === 95) { + underscores = true; + i = i + (1) >> 0; + continue; + } + if (e < 10000) { + e = (($imul(e, 10)) + ((s.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + } + i = i + (1) >> 0; + } + dp = dp + (($imul(e, esign))) >> 0; + } else if ((base.$high === 0 && base.$low === 16)) { + return [mantissa, exp, neg, trunc, hex, i, ok]; + } + if (!((mantissa.$high === 0 && mantissa.$low === 0))) { + exp = dp - ndMant >> 0; + } + if (underscores && !underscoreOK($substring(s, 0, i))) { + return [mantissa, exp, neg, trunc, hex, i, ok]; + } + ok = true; + return [mantissa, exp, neg, trunc, hex, i, ok]; + }; + $ptrType(decimal).prototype.floatBits = function floatBits(flt) { + var _tmp, _tmp$1, b, bits$1, d, exp, flt, mant, n, n$1, n$2, overflow, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y, y$1, y$2, y$3, $s; + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = new $Uint64(0, 0); + overflow = false; + d = this; + exp = 0; + mant = new $Uint64(0, 0); + /* */ if (d.nd === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (d.nd === 0) { */ case 1: + mant = new $Uint64(0, 0); + exp = flt.bias; + /* goto out */ $s = 3; continue; + /* } */ case 2: + /* */ if (d.dp > 310) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (d.dp > 310) { */ case 4: + /* goto overflow */ $s = 6; continue; + /* } */ case 5: + /* */ if (d.dp < -330) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (d.dp < -330) { */ case 7: + mant = new $Uint64(0, 0); + exp = flt.bias; + /* goto out */ $s = 3; continue; + /* } */ case 8: + exp = 0; + while (true) { + if (!(d.dp > 0)) { break; } + n = 0; + if (d.dp >= powtab.$length) { + n = 27; + } else { + n = (x = d.dp, ((x < 0 || x >= powtab.$length) ? ($throwRuntimeError("index out of range"), undefined) : powtab.$array[powtab.$offset + x])); + } + d.Shift(-n); + exp = exp + (n) >> 0; + } + while (true) { + if (!(d.dp < 0 || (d.dp === 0) && d.d[0] < 53)) { break; } + n$1 = 0; + if (-d.dp >= powtab.$length) { + n$1 = 27; + } else { + n$1 = (x$1 = -d.dp, ((x$1 < 0 || x$1 >= powtab.$length) ? ($throwRuntimeError("index out of range"), undefined) : powtab.$array[powtab.$offset + x$1])); + } + d.Shift(n$1); + exp = exp - (n$1) >> 0; + } + exp = exp - (1) >> 0; + if (exp < (flt.bias + 1 >> 0)) { + n$2 = (flt.bias + 1 >> 0) - exp >> 0; + d.Shift(-n$2); + exp = exp + (n$2) >> 0; + } + /* */ if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { */ case 9: + /* goto overflow */ $s = 6; continue; + /* } */ case 10: + d.Shift((((1 + flt.mantbits >>> 0) >> 0))); + mant = d.RoundedInteger(); + /* */ if ((x$2 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ((x$2 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) { */ case 11: + mant = $shiftRightUint64(mant, (1)); + exp = exp + (1) >> 0; + /* */ if ((exp - flt.bias >> 0) >= (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ((exp - flt.bias >> 0) >= (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0)) { */ case 13: + /* goto overflow */ $s = 6; continue; + /* } */ case 14: + /* } */ case 12: + if ((x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high & x$4.$high, (mant.$low & x$4.$low) >>> 0)), (x$3.$high === 0 && x$3.$low === 0))) { + exp = flt.bias; + } + /* goto out */ $s = 3; continue; + /* overflow: */ case 6: + mant = new $Uint64(0, 0); + exp = (((y$2 = flt.expbits, y$2 < 32 ? (1 << y$2) : 0) >> 0) - 1 >> 0) + flt.bias >> 0; + overflow = true; + /* out: */ case 3: + bits$1 = (x$5 = (x$6 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$6.$high - 0, x$6.$low - 1)), new $Uint64(mant.$high & x$5.$high, (mant.$low & x$5.$low) >>> 0)); + bits$1 = (x$7 = $shiftLeft64((new $Uint64(0, (((exp - flt.bias >> 0)) & ((((y$3 = flt.expbits, y$3 < 32 ? (1 << y$3) : 0) >> 0) - 1 >> 0))))), flt.mantbits), new $Uint64(bits$1.$high | x$7.$high, (bits$1.$low | x$7.$low) >>> 0)); + if (d.neg) { + bits$1 = (x$8 = $shiftLeft64($shiftLeft64(new $Uint64(0, 1), flt.mantbits), flt.expbits), new $Uint64(bits$1.$high | x$8.$high, (bits$1.$low | x$8.$low) >>> 0)); + } + _tmp = bits$1; + _tmp$1 = overflow; + b = _tmp; + overflow = _tmp$1; + $s = -1; return [b, overflow]; + /* */ } return; } + }; + atof64exact = function atof64exact$1(mantissa, exp, neg) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, exp, f, mantissa, neg, ok, x, x$1, x$2; + f = 0; + ok = false; + if (!((x = $shiftRightUint64(mantissa, float64info.mantbits), (x.$high === 0 && x.$low === 0)))) { + return [f, ok]; + } + f = ($flatten64(mantissa)); + if (neg) { + f = -f; + } + if ((exp === 0)) { + _tmp = f; + _tmp$1 = true; + f = _tmp; + ok = _tmp$1; + return [f, ok]; + } else if (exp > 0 && exp <= 37) { + if (exp > 22) { + f = f * ((x$1 = exp - 22 >> 0, ((x$1 < 0 || x$1 >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + x$1]))); + exp = 22; + } + if (f > 1e+15 || f < -1e+15) { + return [f, ok]; + } + _tmp$2 = f * ((exp < 0 || exp >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + exp]); + _tmp$3 = true; + f = _tmp$2; + ok = _tmp$3; + return [f, ok]; + } else if (exp < 0 && exp >= -22) { + _tmp$4 = f / (x$2 = -exp, ((x$2 < 0 || x$2 >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + x$2])); + _tmp$5 = true; + f = _tmp$4; + ok = _tmp$5; + return [f, ok]; + } + return [f, ok]; + }; + atof32exact = function atof32exact$1(mantissa, exp, neg) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, exp, f, mantissa, neg, ok, x, x$1, x$2; + f = 0; + ok = false; + if (!((x = $shiftRightUint64(mantissa, float32info.mantbits), (x.$high === 0 && x.$low === 0)))) { + return [f, ok]; + } + f = ($flatten64(mantissa)); + if (neg) { + f = -f; + } + if ((exp === 0)) { + _tmp = f; + _tmp$1 = true; + f = _tmp; + ok = _tmp$1; + return [f, ok]; + } else if (exp > 0 && exp <= 17) { + if (exp > 10) { + f = $fround(f * ((x$1 = exp - 10 >> 0, ((x$1 < 0 || x$1 >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + x$1])))); + exp = 10; + } + if (f > 1e+07 || f < -1e+07) { + return [f, ok]; + } + _tmp$2 = $fround(f * ((exp < 0 || exp >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + exp])); + _tmp$3 = true; + f = _tmp$2; + ok = _tmp$3; + return [f, ok]; + } else if (exp < 0 && exp >= -10) { + _tmp$4 = $fround(f / (x$2 = -exp, ((x$2 < 0 || x$2 >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + x$2]))); + _tmp$5 = true; + f = _tmp$4; + ok = _tmp$5; + return [f, ok]; + } + return [f, ok]; + }; + atofHex = function atofHex$1(s, flt, mantissa, exp, neg, trunc) { + var bits$1, err, exp, flt, mantissa, maxExp, minExp, neg, round, s, trunc, x, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, y$1; + maxExp = (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) + flt.bias >> 0) - 2 >> 0; + minExp = flt.bias + 1 >> 0; + exp = exp + (((flt.mantbits >> 0))) >> 0; + while (true) { + if (!(!((mantissa.$high === 0 && mantissa.$low === 0)) && (x = $shiftRightUint64(mantissa, ((flt.mantbits + 2 >>> 0))), (x.$high === 0 && x.$low === 0)))) { break; } + mantissa = $shiftLeft64(mantissa, (1)); + exp = exp - (1) >> 0; + } + if (trunc) { + mantissa = (x$1 = new $Uint64(0, 1), new $Uint64(mantissa.$high | x$1.$high, (mantissa.$low | x$1.$low) >>> 0)); + } + while (true) { + if (!(!((x$2 = $shiftRightUint64(mantissa, (((1 + flt.mantbits >>> 0) + 2 >>> 0))), (x$2.$high === 0 && x$2.$low === 0))))) { break; } + mantissa = (x$3 = $shiftRightUint64(mantissa, 1), x$4 = new $Uint64(mantissa.$high & 0, (mantissa.$low & 1) >>> 0), new $Uint64(x$3.$high | x$4.$high, (x$3.$low | x$4.$low) >>> 0)); + exp = exp + (1) >> 0; + } + while (true) { + if (!((mantissa.$high > 0 || (mantissa.$high === 0 && mantissa.$low > 1)) && exp < (minExp - 2 >> 0))) { break; } + mantissa = (x$5 = $shiftRightUint64(mantissa, 1), x$6 = new $Uint64(mantissa.$high & 0, (mantissa.$low & 1) >>> 0), new $Uint64(x$5.$high | x$6.$high, (x$5.$low | x$6.$low) >>> 0)); + exp = exp + (1) >> 0; + } + round = new $Uint64(mantissa.$high & 0, (mantissa.$low & 3) >>> 0); + mantissa = $shiftRightUint64(mantissa, (2)); + round = (x$7 = new $Uint64(mantissa.$high & 0, (mantissa.$low & 1) >>> 0), new $Uint64(round.$high | x$7.$high, (round.$low | x$7.$low) >>> 0)); + exp = exp + (2) >> 0; + if ((round.$high === 0 && round.$low === 3)) { + mantissa = (x$8 = new $Uint64(0, 1), new $Uint64(mantissa.$high + x$8.$high, mantissa.$low + x$8.$low)); + if ((x$9 = $shiftLeft64(new $Uint64(0, 1), ((1 + flt.mantbits >>> 0))), (mantissa.$high === x$9.$high && mantissa.$low === x$9.$low))) { + mantissa = $shiftRightUint64(mantissa, (1)); + exp = exp + (1) >> 0; + } + } + if ((x$10 = $shiftRightUint64(mantissa, flt.mantbits), (x$10.$high === 0 && x$10.$low === 0))) { + exp = flt.bias; + } + err = $ifaceNil; + if (exp > maxExp) { + mantissa = $shiftLeft64(new $Uint64(0, 1), flt.mantbits); + exp = maxExp + 1 >> 0; + err = rangeError("ParseFloat", s); + } + bits$1 = (x$11 = (x$12 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$12.$high - 0, x$12.$low - 1)), new $Uint64(mantissa.$high & x$11.$high, (mantissa.$low & x$11.$low) >>> 0)); + bits$1 = (x$13 = $shiftLeft64((new $Uint64(0, (((exp - flt.bias >> 0)) & ((((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0))))), flt.mantbits), new $Uint64(bits$1.$high | x$13.$high, (bits$1.$low | x$13.$low) >>> 0)); + if (neg) { + bits$1 = (x$14 = $shiftLeft64($shiftLeft64(new $Uint64(0, 1), flt.mantbits), flt.expbits), new $Uint64(bits$1.$high | x$14.$high, (bits$1.$low | x$14.$low) >>> 0)); + } + if (flt === float32info) { + return [(math.Float32frombits(((bits$1.$low >>> 0)))), err]; + } + return [math.Float64frombits(bits$1), err]; + }; + atof32 = function atof32$1(s) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, b, d, err, err$1, exp, f, f$1, f$2, f$3, fUp, hex, mantissa, n, n$1, neg, ok, ok$1, ok$2, ok$3, ok$4, ovf, s, trunc, val; + f = 0; + n = 0; + err = $ifaceNil; + _tuple = special(s); + val = _tuple[0]; + n$1 = _tuple[1]; + ok = _tuple[2]; + if (ok) { + _tmp = ($fround(val)); + _tmp$1 = n$1; + _tmp$2 = $ifaceNil; + f = _tmp; + n = _tmp$1; + err = _tmp$2; + return [f, n, err]; + } + _tuple$1 = readFloat(s); + mantissa = _tuple$1[0]; + exp = _tuple$1[1]; + neg = _tuple$1[2]; + trunc = _tuple$1[3]; + hex = _tuple$1[4]; + n = _tuple$1[5]; + ok$1 = _tuple$1[6]; + if (!ok$1) { + _tmp$3 = 0; + _tmp$4 = n; + _tmp$5 = syntaxError("ParseFloat", s); + f = _tmp$3; + n = _tmp$4; + err = _tmp$5; + return [f, n, err]; + } + if (hex) { + _tuple$2 = atofHex($substring(s, 0, n), float32info, mantissa, exp, neg, trunc); + f$1 = _tuple$2[0]; + err$1 = _tuple$2[1]; + _tmp$6 = ($fround(f$1)); + _tmp$7 = n; + _tmp$8 = err$1; + f = _tmp$6; + n = _tmp$7; + err = _tmp$8; + return [f, n, err]; + } + if (optimize) { + if (!trunc) { + _tuple$3 = atof32exact(mantissa, exp, neg); + f$2 = _tuple$3[0]; + ok$2 = _tuple$3[1]; + if (ok$2) { + _tmp$9 = f$2; + _tmp$10 = n; + _tmp$11 = $ifaceNil; + f = _tmp$9; + n = _tmp$10; + err = _tmp$11; + return [f, n, err]; + } + } + _tuple$4 = eiselLemire32(mantissa, exp, neg); + f$3 = _tuple$4[0]; + ok$3 = _tuple$4[1]; + if (ok$3) { + if (!trunc) { + _tmp$12 = f$3; + _tmp$13 = n; + _tmp$14 = $ifaceNil; + f = _tmp$12; + n = _tmp$13; + err = _tmp$14; + return [f, n, err]; + } + _tuple$5 = eiselLemire32(new $Uint64(mantissa.$high + 0, mantissa.$low + 1), exp, neg); + fUp = _tuple$5[0]; + ok$4 = _tuple$5[1]; + if (ok$4 && (f$3 === fUp)) { + _tmp$15 = f$3; + _tmp$16 = n; + _tmp$17 = $ifaceNil; + f = _tmp$15; + n = _tmp$16; + err = _tmp$17; + return [f, n, err]; + } + } + } + d = new decimal.ptr(arrayType$5.zero(), 0, 0, false, false); + if (!d.set($substring(s, 0, n))) { + _tmp$18 = 0; + _tmp$19 = n; + _tmp$20 = syntaxError("ParseFloat", s); + f = _tmp$18; + n = _tmp$19; + err = _tmp$20; + return [f, n, err]; + } + _tuple$6 = d.floatBits(float32info); + b = _tuple$6[0]; + ovf = _tuple$6[1]; + f = math.Float32frombits(((b.$low >>> 0))); + if (ovf) { + err = rangeError("ParseFloat", s); + } + _tmp$21 = f; + _tmp$22 = n; + _tmp$23 = err; + f = _tmp$21; + n = _tmp$22; + err = _tmp$23; + return [f, n, err]; + }; + atof64 = function atof64$1(s) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, b, d, err, err$1, exp, f, f$1, f$2, f$3, fUp, hex, mantissa, n, n$1, neg, ok, ok$1, ok$2, ok$3, ok$4, ovf, s, trunc, val; + f = 0; + n = 0; + err = $ifaceNil; + _tuple = special(s); + val = _tuple[0]; + n$1 = _tuple[1]; + ok = _tuple[2]; + if (ok) { + _tmp = val; + _tmp$1 = n$1; + _tmp$2 = $ifaceNil; + f = _tmp; + n = _tmp$1; + err = _tmp$2; + return [f, n, err]; + } + _tuple$1 = readFloat(s); + mantissa = _tuple$1[0]; + exp = _tuple$1[1]; + neg = _tuple$1[2]; + trunc = _tuple$1[3]; + hex = _tuple$1[4]; + n = _tuple$1[5]; + ok$1 = _tuple$1[6]; + if (!ok$1) { + _tmp$3 = 0; + _tmp$4 = n; + _tmp$5 = syntaxError("ParseFloat", s); + f = _tmp$3; + n = _tmp$4; + err = _tmp$5; + return [f, n, err]; + } + if (hex) { + _tuple$2 = atofHex($substring(s, 0, n), float64info, mantissa, exp, neg, trunc); + f$1 = _tuple$2[0]; + err$1 = _tuple$2[1]; + _tmp$6 = f$1; + _tmp$7 = n; + _tmp$8 = err$1; + f = _tmp$6; + n = _tmp$7; + err = _tmp$8; + return [f, n, err]; + } + if (optimize) { + if (!trunc) { + _tuple$3 = atof64exact(mantissa, exp, neg); + f$2 = _tuple$3[0]; + ok$2 = _tuple$3[1]; + if (ok$2) { + _tmp$9 = f$2; + _tmp$10 = n; + _tmp$11 = $ifaceNil; + f = _tmp$9; + n = _tmp$10; + err = _tmp$11; + return [f, n, err]; + } + } + _tuple$4 = eiselLemire64(mantissa, exp, neg); + f$3 = _tuple$4[0]; + ok$3 = _tuple$4[1]; + if (ok$3) { + if (!trunc) { + _tmp$12 = f$3; + _tmp$13 = n; + _tmp$14 = $ifaceNil; + f = _tmp$12; + n = _tmp$13; + err = _tmp$14; + return [f, n, err]; + } + _tuple$5 = eiselLemire64(new $Uint64(mantissa.$high + 0, mantissa.$low + 1), exp, neg); + fUp = _tuple$5[0]; + ok$4 = _tuple$5[1]; + if (ok$4 && (f$3 === fUp)) { + _tmp$15 = f$3; + _tmp$16 = n; + _tmp$17 = $ifaceNil; + f = _tmp$15; + n = _tmp$16; + err = _tmp$17; + return [f, n, err]; + } + } + } + d = new decimal.ptr(arrayType$5.zero(), 0, 0, false, false); + if (!d.set($substring(s, 0, n))) { + _tmp$18 = 0; + _tmp$19 = n; + _tmp$20 = syntaxError("ParseFloat", s); + f = _tmp$18; + n = _tmp$19; + err = _tmp$20; + return [f, n, err]; + } + _tuple$6 = d.floatBits(float64info); + b = _tuple$6[0]; + ovf = _tuple$6[1]; + f = math.Float64frombits(b); + if (ovf) { + err = rangeError("ParseFloat", s); + } + _tmp$21 = f; + _tmp$22 = n; + _tmp$23 = err; + f = _tmp$21; + n = _tmp$22; + err = _tmp$23; + return [f, n, err]; + }; + ParseFloat = function ParseFloat$1(s, bitSize) { + var _tuple, bitSize, err, f, n, s; + _tuple = parseFloatPrefix(s, bitSize); + f = _tuple[0]; + n = _tuple[1]; + err = _tuple[2]; + if (!((n === s.length)) && ($interfaceIsEqual(err, $ifaceNil) || !($interfaceIsEqual($assertType(err, ptrType$1).Err, $pkg.ErrSyntax)))) { + return [0, syntaxError("ParseFloat", s)]; + } + return [f, err]; + }; + $pkg.ParseFloat = ParseFloat; + parseFloatPrefix = function parseFloatPrefix$1(s, bitSize) { + var _tuple, bitSize, err, f, n, s; + if (bitSize === 32) { + _tuple = atof32(s); + f = _tuple[0]; + n = _tuple[1]; + err = _tuple[2]; + return [(f), n, err]; + } + return atof64(s); + }; + FormatBool = function FormatBool$1(b) { + var b; + if (b) { + return "true"; + } + return "false"; + }; + $pkg.FormatBool = FormatBool; + ptrType$2.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Assign", name: "Assign", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "Shift", name: "Shift", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundDown", name: "RoundDown", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundUp", name: "RoundUp", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundedInteger", name: "RoundedInteger", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "set", name: "set", pkg: "strconv", typ: $funcType([$String], [$Bool], false)}, {prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType], [$Uint64, $Bool], false)}]; + ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; + floatInfo.init("strconv", [{prop: "mantbits", name: "mantbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "expbits", name: "expbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "bias", name: "bias", embedded: false, exported: false, typ: $Int, tag: ""}]); + decimalSlice.init("strconv", [{prop: "d", name: "d", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}]); + decimal.init("strconv", [{prop: "d", name: "d", embedded: false, exported: false, typ: arrayType$5, tag: ""}, {prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "trunc", name: "trunc", embedded: false, exported: false, typ: $Bool, tag: ""}]); + leftCheat.init("strconv", [{prop: "delta", name: "delta", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cutoff", name: "cutoff", embedded: false, exported: false, typ: $String, tag: ""}]); + NumError.init("", [{prop: "Func", name: "Func", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Num", name: "Num", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + isPrint16 = new sliceType([32, 126, 161, 887, 890, 895, 900, 1366, 1369, 1418, 1421, 1479, 1488, 1514, 1519, 1524, 1542, 1563, 1566, 1805, 1808, 1866, 1869, 1969, 1984, 2042, 2045, 2093, 2096, 2139, 2142, 2154, 2208, 2247, 2259, 2444, 2447, 2448, 2451, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2531, 2534, 2558, 2561, 2570, 2575, 2576, 2579, 2617, 2620, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2654, 2662, 2678, 2689, 2745, 2748, 2765, 2768, 2768, 2784, 2787, 2790, 2801, 2809, 2828, 2831, 2832, 2835, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2901, 2903, 2908, 2915, 2918, 2935, 2946, 2954, 2958, 2965, 2969, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3021, 3024, 3024, 3031, 3031, 3046, 3066, 3072, 3129, 3133, 3149, 3157, 3162, 3168, 3171, 3174, 3183, 3191, 3257, 3260, 3277, 3285, 3286, 3294, 3299, 3302, 3314, 3328, 3407, 3412, 3427, 3430, 3478, 3482, 3517, 3520, 3526, 3530, 3530, 3535, 3551, 3558, 3567, 3570, 3572, 3585, 3642, 3647, 3675, 3713, 3773, 3776, 3789, 3792, 3801, 3804, 3807, 3840, 3948, 3953, 4058, 4096, 4295, 4301, 4301, 4304, 4685, 4688, 4701, 4704, 4749, 4752, 4789, 4792, 4805, 4808, 4885, 4888, 4954, 4957, 4988, 4992, 5017, 5024, 5109, 5112, 5117, 5120, 5788, 5792, 5880, 5888, 5908, 5920, 5942, 5952, 5971, 5984, 6003, 6016, 6109, 6112, 6121, 6128, 6137, 6144, 6157, 6160, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6443, 6448, 6459, 6464, 6464, 6468, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6622, 6683, 6686, 6780, 6783, 6793, 6800, 6809, 6816, 6829, 6832, 6848, 6912, 6987, 6992, 7036, 7040, 7155, 7164, 7223, 7227, 7241, 7245, 7304, 7312, 7354, 7357, 7367, 7376, 7418, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8061, 8064, 8147, 8150, 8175, 8178, 8190, 8208, 8231, 8240, 8286, 8304, 8305, 8308, 8348, 8352, 8383, 8400, 8432, 8448, 8587, 8592, 9254, 9280, 9290, 9312, 11123, 11126, 11507, 11513, 11559, 11565, 11565, 11568, 11623, 11631, 11632, 11647, 11670, 11680, 11858, 11904, 12019, 12032, 12245, 12272, 12283, 12289, 12438, 12441, 12543, 12549, 12771, 12784, 40956, 40960, 42124, 42128, 42182, 42192, 42539, 42560, 42743, 42752, 42943, 42946, 42954, 42997, 43052, 43056, 43065, 43072, 43127, 43136, 43205, 43214, 43225, 43232, 43347, 43359, 43388, 43392, 43481, 43486, 43574, 43584, 43597, 43600, 43609, 43612, 43714, 43739, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43883, 43888, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64449, 64467, 64831, 64848, 64911, 64914, 64967, 65008, 65021, 65024, 65049, 65056, 65131, 65136, 65276, 65281, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65504, 65518, 65532, 65533]); + isNotPrint16 = new sliceType([173, 907, 909, 930, 1328, 1424, 1757, 2111, 2143, 2229, 2274, 2436, 2473, 2481, 2526, 2564, 2601, 2609, 2612, 2615, 2621, 2653, 2692, 2702, 2706, 2729, 2737, 2740, 2758, 2762, 2816, 2820, 2857, 2865, 2868, 2910, 2948, 2961, 2971, 2973, 3017, 3085, 3089, 3113, 3141, 3145, 3159, 3213, 3217, 3241, 3252, 3269, 3273, 3295, 3312, 3341, 3345, 3397, 3401, 3456, 3460, 3506, 3516, 3541, 3543, 3715, 3717, 3723, 3748, 3750, 3781, 3783, 3912, 3992, 4029, 4045, 4294, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, 4881, 5760, 5901, 5997, 6001, 6431, 6751, 7674, 8024, 8026, 8028, 8030, 8117, 8133, 8156, 8181, 8335, 11158, 11311, 11359, 11558, 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11930, 12352, 12592, 12687, 12831, 43470, 43519, 43815, 43823, 64311, 64317, 64319, 64322, 64325, 65107, 65127, 65141, 65511]); + isPrint32 = new sliceType$1([65536, 65613, 65616, 65629, 65664, 65786, 65792, 65794, 65799, 65843, 65847, 65948, 65952, 65952, 66000, 66045, 66176, 66204, 66208, 66256, 66272, 66299, 66304, 66339, 66349, 66378, 66384, 66426, 66432, 66499, 66504, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66927, 66927, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67640, 67644, 67644, 67647, 67742, 67751, 67759, 67808, 67829, 67835, 67867, 67871, 67897, 67903, 67903, 67968, 68023, 68028, 68047, 68050, 68102, 68108, 68149, 68152, 68154, 68159, 68168, 68176, 68184, 68192, 68255, 68288, 68326, 68331, 68342, 68352, 68405, 68409, 68437, 68440, 68466, 68472, 68497, 68505, 68508, 68521, 68527, 68608, 68680, 68736, 68786, 68800, 68850, 68858, 68903, 68912, 68921, 69216, 69293, 69296, 69297, 69376, 69415, 69424, 69465, 69552, 69579, 69600, 69622, 69632, 69709, 69714, 69743, 69759, 69825, 69840, 69864, 69872, 69881, 69888, 69959, 69968, 70006, 70016, 70132, 70144, 70206, 70272, 70313, 70320, 70378, 70384, 70393, 70400, 70412, 70415, 70416, 70419, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70753, 70784, 70855, 70864, 70873, 71040, 71093, 71096, 71133, 71168, 71236, 71248, 71257, 71264, 71276, 71296, 71352, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71487, 71680, 71739, 71840, 71922, 71935, 71942, 71945, 71945, 71948, 71992, 71995, 72006, 72016, 72025, 72096, 72103, 72106, 72151, 72154, 72164, 72192, 72263, 72272, 72354, 72384, 72440, 72704, 72773, 72784, 72812, 72816, 72847, 72850, 72886, 72960, 73014, 73018, 73031, 73040, 73049, 73056, 73112, 73120, 73129, 73440, 73464, 73648, 73648, 73664, 73713, 73727, 74649, 74752, 74868, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92777, 92782, 92783, 92880, 92909, 92912, 92917, 92928, 92997, 93008, 93047, 93053, 93071, 93760, 93850, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94180, 94192, 94193, 94208, 100343, 100352, 101589, 101632, 101640, 110592, 110878, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113820, 113823, 118784, 119029, 119040, 119078, 119081, 119154, 119163, 119272, 119296, 119365, 119520, 119539, 119552, 119638, 119648, 119672, 119808, 119967, 119970, 119970, 119973, 119974, 119977, 120074, 120077, 120134, 120138, 120485, 120488, 120779, 120782, 121483, 121499, 121519, 122880, 122904, 122907, 122922, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123215, 123584, 123641, 123647, 123647, 124928, 125124, 125127, 125142, 125184, 125259, 125264, 125273, 125278, 125279, 126065, 126132, 126209, 126269, 126464, 126500, 126503, 126523, 126530, 126530, 126535, 126548, 126551, 126564, 126567, 126619, 126625, 126651, 126704, 126705, 126976, 127019, 127024, 127123, 127136, 127150, 127153, 127221, 127232, 127405, 127462, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 128727, 128736, 128748, 128752, 128764, 128768, 128883, 128896, 128984, 128992, 129003, 129024, 129035, 129040, 129095, 129104, 129113, 129120, 129159, 129168, 129197, 129200, 129201, 129280, 129619, 129632, 129645, 129648, 129652, 129656, 129658, 129664, 129670, 129680, 129704, 129712, 129718, 129728, 129730, 129744, 129750, 129792, 129994, 130032, 130041, 131072, 173789, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 196608, 201546, 917760, 917999]); + isNotPrint32 = new sliceType([12, 39, 59, 62, 399, 926, 2057, 2102, 2134, 2291, 2564, 2580, 2584, 3711, 3754, 4285, 4405, 4576, 4626, 4743, 4745, 4750, 4766, 4868, 4905, 4913, 4916, 4922, 5212, 6420, 6423, 6454, 7177, 7223, 7336, 7431, 7434, 7483, 7486, 7526, 7529, 7567, 7570, 9327, 27231, 27482, 27490, 54357, 54429, 54445, 54458, 54460, 54468, 54534, 54549, 54557, 54586, 54591, 54597, 54609, 55968, 57351, 57378, 57381, 60932, 60960, 60963, 60968, 60979, 60984, 60986, 61000, 61002, 61004, 61008, 61011, 61016, 61018, 61020, 61022, 61024, 61027, 61035, 61043, 61048, 61053, 61055, 61066, 61092, 61098, 61632, 61648, 63865, 63948, 64403]); + isGraphic = new sliceType([160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8239, 8287, 12288]); + uint64pow10 = $toNativeArray($kindUint64, [new $Uint64(0, 1), new $Uint64(0, 10), new $Uint64(0, 100), new $Uint64(0, 1000), new $Uint64(0, 10000), new $Uint64(0, 100000), new $Uint64(0, 1000000), new $Uint64(0, 10000000), new $Uint64(0, 100000000), new $Uint64(0, 1000000000), new $Uint64(2, 1410065408), new $Uint64(23, 1215752192), new $Uint64(232, 3567587328), new $Uint64(2328, 1316134912), new $Uint64(23283, 276447232), new $Uint64(232830, 2764472320), new $Uint64(2328306, 1874919424), new $Uint64(23283064, 1569325056), new $Uint64(232830643, 2808348672), new $Uint64(2328306436, 2313682944)]); + float32info = new floatInfo.ptr(23, 8, -127); + float64info = new floatInfo.ptr(52, 11, -1023); + detailedPowersOfTen = $toNativeArray($kindArray, [$clone($toNativeArray($kindUint64, [new $Uint64(389204073, 3445679187), new $Uint64(4203730336, 136053384)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(243252546, 542936756), new $Uint64(2627331460, 85033365)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1377807506, 2826154593), new $Uint64(3284164325, 106291706)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3869743031, 1385209593), new $Uint64(4105205406, 1206606456)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2418589394, 2476368732), new $Uint64(2565753378, 3975354507)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1949494919, 947977267), new $Uint64(3207191723, 2821709486)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(289385001, 111229759), new $Uint64(4008989654, 2453395034)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1254607449, 2753873159), new $Uint64(2505618534, 459630072)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1568259312, 221115977), new $Uint64(3132023167, 2722021238)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4107807788, 276394972), new $Uint64(3915028959, 2328784723)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2030508955, 2320230505), new $Uint64(2446893099, 3066103188)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2538136194, 1826546308), new $Uint64(3058616374, 2758887161)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4246412067, 135699237), new $Uint64(3823270468, 1301125303)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4264620277, 3842908407), new $Uint64(2389544042, 2960686962)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3183291699, 1582410037), new $Uint64(2986930053, 1553375055)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2905372800, 904270722), new $Uint64(3733662566, 3015460643)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1278987088, 565169201), new $Uint64(2333539104, 810921078)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3746217508, 706461501), new $Uint64(2916923880, 1013651347)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3609030061, 883076877), new $Uint64(3646154850, 1267064184)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2255643788, 1088793960), new $Uint64(2278846781, 1865656939)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1745812911, 1360992450), new $Uint64(2848558476, 3405812998)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(34782491, 627498738), new $Uint64(3560698095, 4257266248)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(21739056, 4150283095), new $Uint64(2225436309, 4271404141)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1100915645, 892886573), new $Uint64(2781795387, 2118029704)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1376144556, 2189850041), new $Uint64(3477244234, 1573795306)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1933832171, 3516139923), new $Uint64(2173277646, 2057363890)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(269806566, 3321433080), new $Uint64(2716597058, 424221215)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3558483680, 2004307702), new $Uint64(3395746322, 2677760166)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2300620952, 2505384628), new $Uint64(4244682903, 1199716560)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1437888095, 1565865392), new $Uint64(2652926814, 2360435586)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3944843767, 883589917), new $Uint64(3316158518, 803060834)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2783571061, 30745572), new $Uint64(4145198147, 3151309691)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1202861001, 556086894), new $Uint64(2590748842, 1432697645)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2577318075, 1768850442), new $Uint64(3238436052, 3938355704)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3221647594, 1137321229), new $Uint64(4048045066, 627977334)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(939787922, 1784567592), new $Uint64(2530028166, 1466227658)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3322218551, 83225842), new $Uint64(3162535207, 3980268220)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4152773188, 3325257774), new $Uint64(3953169009, 3901593451)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2058612330, 4225769757), new $Uint64(2470730631, 827883171)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1499523589, 3134728548), new $Uint64(3088413288, 4256079436)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1874404487, 697185213), new $Uint64(3860516611, 1025131999)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2782115540, 2046353494), new $Uint64(2412822882, 103836587)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2403902601, 2557941868), new $Uint64(3016028602, 2277279382)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(857394603, 4271169159), new $Uint64(3770035753, 699115580)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2683355275, 2132609812), new $Uint64(2356272345, 3121301797)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(132968622, 1592020441), new $Uint64(2945340432, 680401775)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3387436249, 4137509200), new $Uint64(3681675540, 850502218)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3190889480, 975330514), new $Uint64(2301047212, 2679047534)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1841128202, 1219163142), new $Uint64(2876309015, 3348809418)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(153926604, 3671437576), new $Uint64(3595386269, 3112269949)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(633075040, 147164837), new $Uint64(2247116418, 2482039630)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2938827448, 183956046), new $Uint64(2808895523, 955065889)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(452308838, 229945057), new $Uint64(3511119404, 120090538)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1356434847, 3364941133), new $Uint64(2194449627, 2222540234)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3843027207, 3132434592), new $Uint64(2743062034, 1704433468)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(508816713, 2841801416), new $Uint64(3428827542, 4278025484)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(636020892, 331026298), new $Uint64(4286034428, 3200048207)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2008125793, 2354375084), new $Uint64(2678771517, 4147513777)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3583899065, 4016710679), new $Uint64(3348464397, 1963166749)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1258648360, 1799662877), new $Uint64(4185580496, 3527700261)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1323526137, 1124789298), new $Uint64(2615987810, 2204812663)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(580665847, 2479728447), new $Uint64(3269984763, 608532181)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1799574133, 2025918735), new $Uint64(4087480953, 3981890698)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2198475657, 1803070121), new $Uint64(2554675596, 878068950)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(600610923, 3327579475), new $Uint64(3193344495, 1097586188)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(750763654, 3085732520), new $Uint64(3991680619, 298240911)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2079840020, 854841001), new $Uint64(2494800386, 3944496953)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3673541849, 1068551251), new $Uint64(3118500483, 2783137543)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3518185487, 2409430888), new $Uint64(3898125604, 2405180105)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(588253193, 3116507041), new $Uint64(2436328502, 3650721214)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2882800140, 674408330), new $Uint64(3045410628, 2415917869)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(382274703, 843010412), new $Uint64(3806763285, 3019897337)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2923276249, 2137494243), new $Uint64(2379227053, 2424306747)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2580353487, 3745609628), new $Uint64(2974033816, 4104125258)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1077958211, 3608270211), new $Uint64(3717542271, 835189277)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1210594794, 1718297970), new $Uint64(2323463919, 2132606034)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3660727141, 388815), new $Uint64(2904329899, 1592015718)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2428425278, 1074227842), new $Uint64(3630412374, 916277824)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1517765798, 3892617873), new $Uint64(2269007733, 3793899112)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1897207248, 2718288694), new $Uint64(2836259667, 1521148418)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(224025412, 3397860867), new $Uint64(3545324584, 827693699)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3898112266, 4271146690), new $Uint64(2215827865, 517308561)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1651414861, 3191449714), new $Uint64(2769784831, 1720377526)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4211752225, 768086671), new $Uint64(3462231039, 1076730083)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2095474228, 3164408729), new $Uint64(2163894399, 2283569038)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(471859137, 3955510912), new $Uint64(2704867999, 1780719474)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2737307570, 1723163168), new $Uint64(3381084999, 1152157518)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1274150815, 6470312), new $Uint64(4226356249, 366455074)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1870086083, 1614656681), new $Uint64(2641472655, 2913388981)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3411349428, 944579027), new $Uint64(3301840819, 2567994402)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2116703137, 1180723784), new $Uint64(4127301024, 2136251179)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(786068548, 3422306925), new $Uint64(2579563140, 1335156987)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4203811157, 4277883656), new $Uint64(3224453925, 1668946233)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2033538475, 2126129098), new $Uint64(4030567406, 3159924616)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1270961547, 791959774), new $Uint64(2519104629, 901211061)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2662443757, 4211175190), new $Uint64(3148880786, 2200255650)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1180571049, 2042743516), new $Uint64(3936100983, 602835915)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(200985993, 3961069257), new $Uint64(2460063114, 1987385183)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3472457964, 1730111099), new $Uint64(3075078893, 336747830)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2193088807, 2162638874), new $Uint64(3843848616, 1494676612)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3518164152, 2962262032), new $Uint64(2402405385, 934172882)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2250221542, 3702827541), new $Uint64(3003006731, 2241457927)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1739035104, 2481050778), new $Uint64(3753758414, 1728080585)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3771251500, 1550656736), new $Uint64(2346099009, 6308541)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1492838903, 1938320920), new $Uint64(2932623761, 1081627501)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2939790453, 1349159326), new $Uint64(3665779701, 2425776200)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1837369033, 1380095491), new $Uint64(2291112313, 2052981037)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3370453115, 2798861187), new $Uint64(2863890391, 3639968120)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4213066394, 2424834660), new $Uint64(3579862989, 3476218326)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1559424672, 2589263487), new $Uint64(2237414368, 2709507366)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4096764488, 3236579358), new $Uint64(2796767960, 3386884207)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4047213786, 4045724198), new $Uint64(3495959950, 4233605259)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1992637704, 3602319448), new $Uint64(2184974969, 1572261463)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1417055307, 207932014), new $Uint64(2731218711, 3039068653)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2845060957, 3481140489), new $Uint64(3414023389, 2725093992)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3556326197, 1130200140), new $Uint64(4267529237, 185142018)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3296445697, 1243245999), new $Uint64(2667205773, 652584673)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(899331649, 2627799323), new $Uint64(3334007216, 1889472666)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3271648210, 63523682), new $Uint64(4167509020, 2361840832)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2044780131, 1113444125), new $Uint64(2604693137, 3623634168)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2555975164, 318063332), new $Uint64(3255866422, 1308317238)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1047485307, 397579165), new $Uint64(4069833027, 3782880196)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2802161964, 4006583362), new $Uint64(2543645642, 1827429210)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1355218808, 713261907), new $Uint64(3179557053, 136802865)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2767765334, 891577384), new $Uint64(3974446316, 1244745405)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2266724245, 3778461337), new $Uint64(2484028947, 2925449526)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(685921659, 1501851199), new $Uint64(3105036184, 2583070084)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(857402074, 803572175), new $Uint64(3881295230, 3228837605)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1072747208, 1575974433), new $Uint64(2425809519, 944281679)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(267192186, 1969968041), new $Uint64(3032261899, 106610275)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3555215705, 314976404), new $Uint64(3790327373, 3354488315)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1685138903, 2881214812), new $Uint64(2368954608, 2633426109)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3180165453, 2527776691), new $Uint64(2961193260, 3291782636)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3975206816, 4233462688), new $Uint64(3701491575, 4114728295)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4095116996, 2645914180), new $Uint64(2313432234, 4182317920)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(823928949, 3307392725), new $Uint64(2891790293, 3080413753)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2103653011, 913015435), new $Uint64(3614737867, 629291719)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2925395868, 33763735), new $Uint64(2259211166, 4151403708)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3656744835, 42204668), new $Uint64(2824013958, 3041770987)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3497189219, 3273981307), new $Uint64(3530017448, 1654730086)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1112001438, 1509367405), new $Uint64(2206260905, 1034206304)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1390001797, 4034192904), new $Uint64(2757826131, 2366499704)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1737502247, 1821515659), new $Uint64(3447282664, 1884382806)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(12197080, 2749060022), new $Uint64(2154551665, 1177739254)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2162729998, 3436325028), new $Uint64(2693189581, 2545915891)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1629670674, 2147922637), new $Uint64(3366486976, 4256136688)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2037088343, 537419649), new $Uint64(4208108721, 1025203564)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3420663862, 1946500016), new $Uint64(2630067950, 3325106787)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3202088004, 285641372), new $Uint64(3287584938, 2008899836)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4002610005, 357051716), new $Uint64(4109481173, 363641147)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1964760341, 760028234), new $Uint64(2568425733, 764146629)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3529692250, 2023777117), new $Uint64(3210532166, 2028925110)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2264631665, 382237748), new $Uint64(4013165208, 388672740)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3562878438, 2923253152), new $Uint64(2508228255, 242920462)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2306114400, 1506582793), new $Uint64(3135285318, 3524876050)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(735159352, 1883228491), new $Uint64(3919106648, 2258611415)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2070087331, 1177017807), new $Uint64(2449441655, 1411632134)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(440125516, 397530434), new $Uint64(3061802069, 690798344)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(550156895, 496913043), new $Uint64(3827252586, 1937239754)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1417589883, 1921183388), new $Uint64(2392032866, 2284516670)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3919471002, 1327737411), new $Uint64(2990041083, 708162189)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1678113280, 3807155412), new $Uint64(3737551353, 4106428209)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3733175360, 2379472132), new $Uint64(2335969596, 955904894)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2518985552, 2974340165), new $Uint64(2919961995, 1194881118)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1001248292, 3717925207), new $Uint64(3649952494, 419859574)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3847005655, 176219606), new $Uint64(2281220308, 3483637705)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1587531596, 3441499980), new $Uint64(2851525386, 59579836)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1984414496, 6907679), new $Uint64(3564406732, 2221958443)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(703388148, 4317299), new $Uint64(2227754207, 3536207675)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4100460657, 5396624), new $Uint64(2784692759, 3346517769)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1904350349, 1080487604), new $Uint64(3480865949, 3109405388)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3337702616, 1212175664), new $Uint64(2175541218, 2480249279)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3098386446, 1515219580), new $Uint64(2719426523, 952827951)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2799241233, 4041508124), new $Uint64(3399283154, 117293115)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2425309718, 1830659683), new $Uint64(4249103942, 2294100042)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2589560398, 70420478), new $Uint64(2655689964, 360070702)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1089466849, 2235509245), new $Uint64(3319612455, 450088378)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3509317209, 3868128380), new $Uint64(4149515568, 3783835944)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2193323256, 806967502), new $Uint64(2593447230, 2364897465)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3815395894, 1008709377), new $Uint64(3241809038, 808638183)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3695503043, 3408370369), new $Uint64(4052261297, 3158281377)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(699076666, 1593360569), new $Uint64(2532663311, 363313125)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1947587656, 4139184359), new $Uint64(3165829138, 3675366878)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(287000923, 879013153), new $Uint64(3957286423, 2446724950)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3400601049, 12512308), new $Uint64(2473304014, 3139815829)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1029525839, 1089382210), new $Uint64(3091630018, 1777286139)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(213165475, 287985938), new $Uint64(3864537523, 74124026)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1206970245, 3938087595), new $Uint64(2415335951, 3804423900)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1508712807, 1701384022), new $Uint64(3019169939, 3681788051)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(812149185, 1052988204), new $Uint64(3773962424, 3528493240)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(507593240, 3342472187), new $Uint64(2358726515, 2205308275)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3855717022, 4178090234), new $Uint64(2948408144, 1682893519)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3745904454, 3075129145), new $Uint64(3685510180, 2103616899)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1804319372, 848213891), new $Uint64(2303443862, 3462244210)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(107915567, 1060267364), new $Uint64(2879304828, 2180321615)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3356119931, 251592381), new $Uint64(3599131035, 2725402018)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3171316780, 3915341622), new $Uint64(2249456897, 1166505349)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(742920504, 599209732), new $Uint64(2811821121, 2531873511)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4149876102, 749012165), new $Uint64(3514776401, 4238583712)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2593672563, 3689358075), new $Uint64(2196735251, 1038502084)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3242090704, 3537955770), new $Uint64(2745919064, 224385781)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(831387909, 127477416), new $Uint64(3432398830, 280482227)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4260460358, 1233088594), new $Uint64(4290498537, 2498086431)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4273400459, 3991905843), new $Uint64(2681561585, 4245658579)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4268008750, 3916140480), new $Uint64(3351951982, 2085847752)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1040043642, 2747691952), new $Uint64(4189939978, 459826043)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(113156364, 2791049294), new $Uint64(2618712486, 1361133101)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1215187279, 3488811618), new $Uint64(3273390607, 3848900024)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1518984099, 3287272698), new $Uint64(4091738259, 3737383206)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4170590534, 1517674524), new $Uint64(2557336412, 1798993591)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4139496343, 4044576803), new $Uint64(3196670515, 2248741989)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1953144957, 3981979180), new $Uint64(3995838144, 1737185663)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2831328334, 3025607900), new $Uint64(2497398840, 1085741039)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2465418594, 1634526227), new $Uint64(3121748550, 1357176299)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2008031418, 4190641431), new $Uint64(3902185687, 3843954022)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(181277812, 3692892718), new $Uint64(2438866054, 4013084000)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(226597266, 321148602), new $Uint64(3048582568, 2868871352)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(283246582, 2548919401), new $Uint64(3810728210, 3586089190)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3398254586, 519332801), new $Uint64(2381705131, 3315047567)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3174076408, 2796649650), new $Uint64(2977131414, 3070067635)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2893853686, 3495812062), new $Uint64(3721414268, 1690100896)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1808658554, 1111140715), new $Uint64(2325883917, 3203796708)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2260823192, 3536409542), new $Uint64(2907354897, 783520413)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3899770815, 125544631), new $Uint64(3634193621, 2053142340)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(289873111, 1689078130), new $Uint64(2271371013, 1820084875)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3583566861, 1037605839), new $Uint64(2839213766, 3348847917)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1258233104, 2370749123), new $Uint64(3549017208, 2038576249)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3470750250, 1481718202), new $Uint64(2218135755, 1274110155)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3264695988, 3999631400), new $Uint64(2772669694, 518895870)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1933386338, 704571954), new $Uint64(3465837117, 2796103486)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(134624637, 1514099295), new $Uint64(2166148198, 2284435591)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3389506268, 2966365943), new $Uint64(2707685248, 708060840)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4236882835, 3707957429), new $Uint64(3384606560, 885076050)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3148619896, 3561204962), new $Uint64(4230758200, 1106345063)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3578500171, 2225753101), new $Uint64(2644223875, 691465664)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(178157918, 1708449553), new $Uint64(3305279843, 4085557553)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1296439221, 4283045589), new $Uint64(4131599804, 4033205117)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1347145425, 3213774405), new $Uint64(2582249878, 373269550)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3831415430, 795992534), new $Uint64(3227812347, 2614070585)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1568043815, 3142474316), new $Uint64(4034765434, 2193846408)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(980027384, 3574659183), new $Uint64(2521728396, 2444895829)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2298776055, 173356683), new $Uint64(3152160495, 3056119786)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(725986420, 3437921326), new $Uint64(3940200619, 2746407909)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(990612425, 1217181), new $Uint64(2462625387, 1179634031)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(164523707, 1075263300), new $Uint64(3078281734, 400800715)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3426880106, 270337301), new $Uint64(3847852167, 2648484541)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2678670978, 1242702637), new $Uint64(2404907604, 3265915574)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1200855074, 3700861945), new $Uint64(3006134505, 4082394468)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1501068843, 2478593783), new $Uint64(3757668132, 1881767613)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1475038939, 1012250202), new $Uint64(2348542582, 3323588406)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3991282322, 191570929), new $Uint64(2935678228, 2007001859)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3915361078, 2386947309), new $Uint64(3669597785, 2508752324)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(299617026, 418100244), new $Uint64(2293498615, 4252324763)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3595746754, 2670108953), new $Uint64(2866873269, 4241664129)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1273457971, 1190152543), new $Uint64(3583591587, 2080854690)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1869653056, 206974427), new $Uint64(2239744742, 763663269)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3410808144, 258718034), new $Uint64(2799680927, 3102062734)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2116026532, 323397543), new $Uint64(3499601159, 2803836594)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2396258406, 2349607112), new $Uint64(2187250724, 3363010607)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1921581184, 789525242), new $Uint64(2734063405, 4203763259)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1328234656, 986906553), new $Uint64(3417579257, 2033478602)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3807776968, 1233633192), new $Uint64(4271974071, 3615590076)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(232376957, 771020745), new $Uint64(2669983794, 3870356534)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2437954844, 2037517755), new $Uint64(3337479743, 2690462019)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1973701731, 2546897194), new $Uint64(4171849679, 2289335700)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3381047230, 1054939834), new $Uint64(2607406049, 3041447548)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4226309037, 3466158440), new $Uint64(3259257562, 580583963)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4209144473, 1111472579), new $Uint64(4074071952, 2873213602)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3704457119, 3379024922), new $Uint64(2546294970, 1795758501)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1409345927, 3150039328), new $Uint64(3182868713, 97214479)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(687940585, 2863807336), new $Uint64(3978585891, 1195259923)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4188059250, 179266849), new $Uint64(2486616182, 210166539)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4161332238, 2371567209), new $Uint64(3108270227, 2410191822)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3054181650, 816975364), new $Uint64(3885337784, 1938997954)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2982605355, 1584351426), new $Uint64(2428336115, 1211873721)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(507031222, 906697459), new $Uint64(3035420144, 441100328)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(633789027, 3280855472), new $Uint64(3794275180, 551375410)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1469859966, 1513663758), new $Uint64(2371421987, 2492093279)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(763583133, 4039563345), new $Uint64(2964277484, 2041374775)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4175704389, 1828228709), new $Uint64(3705346855, 2551718468)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(462331595, 1679513855), new $Uint64(2315841784, 3205436779)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3799139966, 1025650495), new $Uint64(2894802230, 4006795973)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1527699485, 3429546767), new $Uint64(3618502788, 2861011319)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2565424914, 2680337641), new $Uint64(2261564242, 3935615722)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1059297495, 1202938404), new $Uint64(2826955303, 2772036005)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2397863693, 429931181), new $Uint64(3533694129, 2391303182)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(424922984, 805577900), new $Uint64(2208558830, 4178919049)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1604895554, 1006972375), new $Uint64(2760698538, 3076165163)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(932377618, 3406199117), new $Uint64(3450873173, 1697722806)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3803961483, 3202616272), new $Uint64(2156795733, 1597947665)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1533726382, 2929528516), new $Uint64(2695994666, 3071176406)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4064641626, 1514426997), new $Uint64(3369993333, 1691486859)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4007060208, 4040517394), new $Uint64(4212491666, 3188100398)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1430670806, 2525323371), new $Uint64(2632807291, 3066304573)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2862080332, 1009170566), new $Uint64(3291009114, 2759138892)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3577600415, 1261463208), new $Uint64(4113761393, 1301439967)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3846612995, 2399027241), new $Uint64(2571100870, 3497754539)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3734524420, 1925042227), new $Uint64(3213876088, 2224709526)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2520671877, 2406302784), new $Uint64(4017345110, 2780886908)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3722903571, 2040810152), new $Uint64(2510840694, 664312493)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1432403992, 1477270866), new $Uint64(3138550867, 2977874265)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2864246814, 1846588582), new $Uint64(3923188584, 2648601007)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3400766995, 80376040), new $Uint64(2451992865, 1655375629)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1029733271, 3321695522), new $Uint64(3064991081, 3142961361)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2360908413, 3078377578), new $Uint64(3831238852, 707476229)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2012438670, 2460856898), new $Uint64(2394524282, 2589656291)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1441806514, 928587475), new $Uint64(2993155353, 1089586716)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1802258142, 3308217992), new $Uint64(3741444191, 2435725219)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(589540427, 993894421), new $Uint64(2338402619, 3132940998)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2884409182, 168626202), new $Uint64(2923003274, 2842434423)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2531769653, 2358266401), new $Uint64(3653754093, 1405559381)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2119226945, 2010787412), new $Uint64(2283596308, 1415345525)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3722775505, 3587226089), new $Uint64(2854495385, 1769181906)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2505985734, 1262807140), new $Uint64(3568119231, 3285219207)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3176853819, 4010479934), new $Uint64(2230074519, 3663874740)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3971067274, 3939358094), new $Uint64(2787593149, 3506101601)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1742608621, 2776713970), new $Uint64(3484491437, 1161401530)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2162872212, 2272317143), new $Uint64(2177807148, 1262746868)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2703590265, 2840396429), new $Uint64(2722258935, 1578433585)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(158262360, 329270064), new $Uint64(3402823669, 899300158)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2345311598, 411587580), new $Uint64(4253529586, 2197867021)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2002690660, 3478467709), new $Uint64(2658455991, 2447408712)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2503363326, 53117341), new $Uint64(3323069989, 1985519066)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(981720509, 2213880324), new $Uint64(4153837486, 3555640657)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3297929878, 1920546114), new $Uint64(2596148429, 1148533586)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1974928700, 253198995), new $Uint64(3245185536, 2509408807)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1394919051, 316498744), new $Uint64(4056481920, 3136761009)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3556178966, 3955908099), new $Uint64(2535301200, 1960475630)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2297740060, 2797401476), new $Uint64(3169126500, 2450594538)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(724691427, 3496751845), new $Uint64(3961408125, 3063243173)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(989803054, 1648598991), new $Uint64(2475880078, 2451397895)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(163511993, 4208232386), new $Uint64(3094850098, 916763721)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1278131816, 2039065011), new $Uint64(3868562622, 3293438299)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(261961473, 1274415632), new $Uint64(2417851639, 984657113)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1401193665, 2666761364), new $Uint64(3022314549, 157079567)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(677750258, 112226233), new $Uint64(3777893186, 1270091283)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4181690295, 1143883219), new $Uint64(2361183241, 1867548875)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4153371045, 356112200), new $Uint64(2951479051, 3408177918)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3044230158, 1518882075), new $Uint64(3689348814, 3186480574)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(828902024, 4170526768), new $Uint64(2305843009, 917808535)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4257353003, 918191165), new $Uint64(2882303761, 2221002492)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1026723958, 73997132), new $Uint64(3602879701, 3849994940)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2789186121, 3267473679), new $Uint64(2251799813, 2943117749)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(265257180, 863116627), new $Uint64(2814749767, 457671715)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3552796947, 1078895784), new $Uint64(3518437208, 3793315115)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1683627180, 137438953), new $Uint64(2199023255, 2370821947)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1030792151, 171798691), new $Uint64(2748779069, 1889785610)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3435973836, 3435973836), new $Uint64(3435973836, 3435973836)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2147483648, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2684354560, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3355443200, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(4194304000, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2621440000, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3276800000, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(4096000000, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2560000000, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3200000000, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(4000000000, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2500000000, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3125000000, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3906250000, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2441406250, 0)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3051757812, 2147483648)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3814697265, 2684354560)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2384185791, 67108864)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2980232238, 3305111552)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3725290298, 1983905792)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2328306436, 2313682944)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2910383045, 2892103680)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3637978807, 393904128)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2273736754, 1856802816)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2842170943, 173519872)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3552713678, 3438125312)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2220446049, 1075086496)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2775557561, 2417599944)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3469446951, 4095741754)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1073741824, 0), new $Uint64(2168404344, 4170451332)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1342177280, 0), new $Uint64(2710505431, 918096869)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2751463424, 0), new $Uint64(3388131789, 73879262)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1291845632, 0), new $Uint64(4235164736, 1166090902)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4028628992, 0), new $Uint64(2646977960, 728806813)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1814560768, 0), new $Uint64(3308722450, 911008517)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3341942784, 0), new $Uint64(4135903062, 3286244294)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1014972416, 0), new $Uint64(2584939414, 980160860)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1268715520, 0), new $Uint64(3231174267, 3372684723)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(512152576, 0), new $Uint64(4038967834, 3142114080)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(320095360, 0), new $Uint64(2524354896, 3037563124)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(400119200, 0), new $Uint64(3155443620, 3796953905)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1573890824, 0), new $Uint64(3944304526, 451225085)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1520552677, 0), new $Uint64(2465190328, 3503241150)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4048174494, 1073741824), new $Uint64(3081487911, 84084141)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1838992645, 3489660928), new $Uint64(3851859888, 3326330649)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3833724963, 2717908992), new $Uint64(2407412430, 2078956655)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3718414380, 2323644416), new $Uint64(3009265538, 451212171)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3574276151, 2904555520), new $Uint64(3761581922, 2711498862)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1160180770, 3425959936), new $Uint64(2350988701, 2768428613)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2523967787, 2134966272), new $Uint64(2938735877, 239310294)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1007476086, 1594966016), new $Uint64(3673419846, 1372879692)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2777156201, 4218079232), new $Uint64(2295887403, 4079275279)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2397703428, 2051373568), new $Uint64(2869859254, 4025352275)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1923387461, 2564216960), new $Uint64(3587324068, 2884206696)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1202117163, 2139506512), new $Uint64(2242077542, 3950112833)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2576388278, 1600641316), new $Uint64(2802596928, 2790157393)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4294227171, 4148285293), new $Uint64(3503246160, 3487696741)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3220762894, 2055807396), new $Uint64(2189528850, 2179810463)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2952211794, 422275597), new $Uint64(2736911063, 577279431)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2616522918, 2675328144), new $Uint64(3421138828, 3942824761)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(49428176, 1196676532), new $Uint64(4276423536, 633563656)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(30892610, 747922832), new $Uint64(2672764710, 395977285)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1112357586, 3082387189), new $Uint64(3340955887, 2642455254)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3537930631, 1705500338), new $Uint64(4176194859, 2229327243)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1674335732, 2676550447), new $Uint64(2610121787, 856458615)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1019177841, 3345688059), new $Uint64(3262652233, 4291798741)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2347714126, 960884602), new $Uint64(4078315292, 2143522954)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2541063152, 3821778348), new $Uint64(2548947057, 3487185494)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1028845293, 482255639), new $Uint64(3186183822, 1137756396)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1286056616, 1676561373), new $Uint64(3982729777, 3569679143)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2414398121, 1047850858), new $Uint64(2489206111, 620436728)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3017997651, 2383555396), new $Uint64(3111507638, 3996771382)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1625013416, 1905702422), new $Uint64(3889384548, 2848480580)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3163117033, 1191064013), new $Uint64(2430865342, 3927784010)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1806412643, 2562571841), new $Uint64(3038581678, 2762246365)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3331757628, 2129472977), new $Uint64(3798227098, 1305324308)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4229832165, 3478404258), new $Uint64(2373891936, 1889569516)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(992322911, 1126779851), new $Uint64(2967364920, 2361961896)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1240403639, 334732990), new $Uint64(3709206150, 2952452370)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1848994098, 1819820855), new $Uint64(2318253844, 771540907)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1237500799, 127292420), new $Uint64(2897817305, 964426134)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3694359646, 3380340998), new $Uint64(3622271631, 2279274491)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1772103867, 1038971299), new $Uint64(2263919769, 3035159293)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3288871658, 224972300), new $Uint64(2829899712, 572723644)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4111089572, 2428699024), new $Uint64(3537374640, 715904555)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2032560070, 3665420538), new $Uint64(2210859150, 447440347)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1466958264, 2434292024), new $Uint64(2763573937, 2706784082)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3981181478, 3042865030), new $Uint64(3454467422, 162254630)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1414496600, 828048820), new $Uint64(2159042138, 3322634616)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1768120750, 1035061025), new $Uint64(2698802673, 2005809622)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(62667289, 3441309929), new $Uint64(3373503341, 3581003852)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(78334112, 1080411939), new $Uint64(4216879177, 1255029343)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1659571556, 675257462), new $Uint64(2635549485, 3468747899)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1000722621, 844071828), new $Uint64(3294436857, 1114709402)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3398386924, 2128831609), new $Uint64(4118046071, 2467128576)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2123991827, 3478003403), new $Uint64(2573778794, 3152568096)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2654989784, 3273762430), new $Uint64(3217223493, 1793226472)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3318737230, 4092203038), new $Uint64(4021529366, 3315274914)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3147952593, 1483885074), new $Uint64(2513455854, 998304997)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(713715269, 2928598167), new $Uint64(3141819817, 3395364895)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4113369559, 439522237), new $Uint64(3927274772, 1022980646)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1497114150, 1885314134), new $Uint64(2454546732, 2786846552)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1871392688, 209159020), new $Uint64(3068183415, 3483558190)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(191757212, 261448775), new $Uint64(3835229269, 3280705914)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1193590081, 2310889132), new $Uint64(2397018293, 2587312108)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1491987601, 3962353239), new $Uint64(2996272867, 12914663)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(791242678, 1731716077), new $Uint64(3745341083, 3237368801)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3178881234, 8580724), new $Uint64(2340838177, 1486484588)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3973601542, 2158209553), new $Uint64(2926047721, 2931847559)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3893260104, 550278293), new $Uint64(3657559652, 443583977)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(822674829, 343923933), new $Uint64(2285974782, 2424723634)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3175827184, 1503646741), new $Uint64(2857468478, 883420894)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1822300332, 1879558426), new $Uint64(3571835597, 3251759766)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(65195883, 3322207664), new $Uint64(2232397248, 2569220766)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2228978502, 3079017756), new $Uint64(2790496560, 3211525957)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3859964952, 1701288547), new $Uint64(3488120700, 4014407446)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1338736271, 1063305342), new $Uint64(2180075438, 361521006)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3820903987, 255389853), new $Uint64(2725094297, 2599384905)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1554904511, 3540462789), new $Uint64(3406367872, 28005660)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1943630639, 3351836662), new $Uint64(4257959840, 35007075)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(677898237, 3705510650), new $Uint64(2661224900, 21879422)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2994856445, 1410662840), new $Uint64(3326531125, 27349277)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(522345084, 2837070374), new $Uint64(4158163906, 1107928421)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(863336589, 3920652632), new $Uint64(2598852441, 1766197087)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(5428913, 1679590318), new $Uint64(3248565551, 3281488183)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3228011613, 3173229722), new $Uint64(4060706939, 3028118404)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4164990906, 2520139488), new $Uint64(2537941837, 1355703090)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3058754985, 1002690712), new $Uint64(3172427296, 2768370687)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2749701907, 2327105214), new $Uint64(3965534120, 3460463359)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3329176428, 917569847), new $Uint64(2478458825, 2162789599)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3087728711, 1146962308), new $Uint64(3098073531, 3777228823)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2785919065, 359961061), new $Uint64(3872591914, 3647794205)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2278070327, 2909330223), new $Uint64(2420369946, 3353613202)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(700104261, 2562920955), new $Uint64(3025462433, 2044532855)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4096355798, 4277393018), new $Uint64(3781828041, 3629407892)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(412738726, 1599628812), new $Uint64(2363642526, 657767197)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1589665231, 4147019663), new $Uint64(2954553157, 2969692644)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1987081539, 4110032755), new $Uint64(3693191447, 490890333)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1778796874, 2031899560), new $Uint64(2308244654, 1917419194)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(76012445, 392390802), new $Uint64(2885305818, 249290345)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1168757380, 1564230326), new $Uint64(3606632272, 2459096579)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(193602450, 3125127602), new $Uint64(2254145170, 1536935362)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2389486711, 1758925854), new $Uint64(2817681462, 4068652850)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(839374741, 1124915494), new $Uint64(3522101828, 2938332415)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2135221949, 1239943096), new $Uint64(2201313642, 3983941407)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1595285612, 2623670694), new $Uint64(2751642053, 2832443111)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(920365191, 3279588367), new $Uint64(3439552567, 319328417)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3259582804, 3660355465), new $Uint64(2149720354, 1810192996)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4074478506, 280477036), new $Uint64(2687150443, 115257597)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1871872660, 2498079943), new $Uint64(3358938053, 3365297469)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3413582649, 3122599929), new $Uint64(4198672567, 985396364)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4280972804, 341012219), new $Uint64(2624170354, 2226485463)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4277474181, 426265274), new $Uint64(3280212943, 635623181)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2125617254, 1606573417), new $Uint64(4100266178, 4015754449)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4012865343, 4225333857), new $Uint64(2562666361, 3583588354)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2868598031, 4207925498), new $Uint64(3203332952, 1258259971)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2512005715, 4186165048), new $Uint64(4004166190, 1572824964)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3717487220, 2079482243), new $Uint64(2502603868, 4204241074)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2499375377, 2599352804), new $Uint64(3128254836, 960334047)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2050477398, 27965533), new $Uint64(3910318545, 1200417559)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2892161109, 3238703930), new $Uint64(2443949090, 3434615534)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1467717739, 827154441), new $Uint64(3054936363, 2145785770)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3982130821, 4255168523), new $Uint64(3818670454, 1608490388)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(341348115, 3196351239), new $Uint64(2386669033, 4226531965)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1500426968, 2921697224), new $Uint64(2983336292, 2061939484)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1875533710, 3652121531), new $Uint64(3729170365, 2577424355)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(635337657, 1208834132), new $Uint64(2330731478, 2147761134)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2941655719, 2584784490), new $Uint64(2913414348, 537217769)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(455844177, 2157238788), new $Uint64(3641767935, 671522212)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2432386258, 4032628802), new $Uint64(2276104959, 2030314118)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(892999175, 2893302355), new $Uint64(2845131199, 1464150824)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1116248969, 2542886120), new $Uint64(3556413999, 756446706)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1771397429, 4273658385), new $Uint64(2222758749, 2083391927)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1140504963, 2120847509), new $Uint64(2778448436, 3677981733)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2499373028, 1577317563), new $Uint64(3473060546, 302509870)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(488366318, 3133307125), new $Uint64(2170662841, 1262810493)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1684199722, 1769150258), new $Uint64(2713328551, 2652254940)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2105249653, 63954174), new $Uint64(3391660689, 2241576851)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1557820242, 1153684542), new $Uint64(4239575861, 3875712888)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(973637651, 1794794663), new $Uint64(2649734913, 2959191467)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(143305240, 1169751504), new $Uint64(3312168642, 477763862)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2326615198, 1462189381), new $Uint64(4140210802, 2744688475)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(917263586, 4135093835), new $Uint64(2587631751, 2789172121)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2220321307, 3021383645), new $Uint64(3234539689, 2412723327)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1701659810, 2702987733), new $Uint64(4043174611, 4089645983)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2674150117, 2763109157), new $Uint64(2526984132, 2019157827)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2268945823, 232660974), new $Uint64(3158730165, 2523947284)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2836182278, 3512051690), new $Uint64(3948412706, 4228675929)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(162001188, 1121290482), new $Uint64(2467757941, 3716664280)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(202501485, 1401613103), new $Uint64(3084697427, 1424604878)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2400610504, 2825758202), new $Uint64(3855871784, 707014273)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4184736125, 1766098876), new $Uint64(2409919865, 441883920)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(935952860, 3281365420), new $Uint64(3012399831, 1626096725)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2243682899, 4101706775), new $Uint64(3765499789, 958879082)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2476043636, 2026695822), new $Uint64(2353437368, 1136170338)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(947570897, 2533369778), new $Uint64(2941796710, 1420212923)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(110721797, 4240454046), new $Uint64(3677245887, 3922749802)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1142942947, 3187154691), new $Uint64(2298278679, 4062331362)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3576162332, 2910201539), new $Uint64(2872848349, 4004172378)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2322719267, 3637751924), new $Uint64(3591060437, 1783990001)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4136054102, 1736724041), new $Uint64(2244412773, 1651864662)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3022583980, 23421403), new $Uint64(2805515966, 3138572652)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3778229975, 29276754), new $Uint64(3506894958, 1775732167)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3972006470, 1628910707), new $Uint64(2191809349, 36090780)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(670040791, 4183622032), new $Uint64(2739761686, 1118855300)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(837550989, 4155785716), new $Uint64(3424702107, 3546052773)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2120680561, 1973506673), new $Uint64(4280877634, 3358824142)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(251683526, 3917796230), new $Uint64(2675548521, 3173006913)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1388346232, 2749761640), new $Uint64(3344435652, 745033169)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2809174614, 3437202050), new $Uint64(4180544565, 931291461)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2292605046, 1074509457), new $Uint64(2612840353, 1118928075)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1792014483, 3490620469), new $Uint64(3266050441, 2472401918)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(92534456, 3289533763), new $Uint64(4082563051, 4164244222)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3279059507, 2055958602), new $Uint64(2551601907, 2065781726)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1951340736, 1496206428), new $Uint64(3189502384, 1508485334)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(291692272, 1870258035), new $Uint64(3986877980, 1885606668)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2329791318, 1168911272), new $Uint64(2491798737, 3325987815)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1838497323, 3608622738), new $Uint64(3114748422, 936259297)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3371863478, 3437036599), new $Uint64(3893435527, 3317807769)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(496801938, 1074406050), new $Uint64(2433397204, 3684242592)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(621002422, 3490491211), new $Uint64(3041746506, 310335944)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(776253028, 2215630365), new $Uint64(3802183132, 2535403578)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1558899966, 3532252626), new $Uint64(2376364457, 3732110884)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1948624958, 2267832135), new $Uint64(2970455572, 1443913133)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3509523022, 687306521), new $Uint64(3713069465, 1804891416)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2193451888, 3650792047), new $Uint64(2320668415, 3812411695)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1668073037, 268522763), new $Uint64(2900835519, 3691772795)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1011349472, 1409395278), new $Uint64(3626044399, 3540974170)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1705835244, 880872049), new $Uint64(2266277749, 3823721592)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2132294055, 1101090061), new $Uint64(2832847187, 1558426518)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(517883921, 302620752), new $Uint64(3541058984, 874291324)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2471161098, 2873492530), new $Uint64(2213161865, 546432077)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4162693197, 1444382015), new $Uint64(2766452331, 1756781920)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(908399200, 2879219342), new $Uint64(3458065414, 1122235577)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3252104060, 1799512089), new $Uint64(2161290883, 3922622707)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2991388251, 2249390111), new $Uint64(2701613604, 3829536560)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3739235314, 1737995815), new $Uint64(3377017006, 491953404)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(379076847, 25011121), new $Uint64(4221271257, 2762425404)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2384406677, 1626244686), new $Uint64(2638294536, 115903141)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4054250170, 3106547682), new $Uint64(3297868170, 144878926)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2920329065, 1735700955), new $Uint64(4122335212, 2328582306)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2898947489, 3769167657), new $Uint64(2576459507, 3602847589)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(402458890, 1490234099), new $Uint64(3220574384, 3429817663)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3724299084, 4010276272), new $Uint64(4025717980, 4287272078)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1253945104, 358939022), new $Uint64(2516073738, 532061401)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2641173204, 448673777), new $Uint64(3145092172, 2812560399)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2227724681, 560842221), new $Uint64(3931365215, 3515700499)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(855457013, 3034880948), new $Uint64(2457103259, 3807925548)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1069321267, 572375713), new $Uint64(3071379074, 3686165111)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(262909759, 3936695114), new $Uint64(3839223843, 2460222741)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(701189511, 4071047182), new $Uint64(2399514902, 1000768301)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1950228713, 4015067154), new $Uint64(2999393627, 3398444024)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2437785892, 1797608470), new $Uint64(3749242034, 3174313206)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(449874358, 3270988942), new $Uint64(2343276271, 3057687578)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2709826596, 1941252529), new $Uint64(2929095339, 2748367648)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3387283245, 2426565662), new $Uint64(3661369174, 2361717736)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2117052028, 2053474450), new $Uint64(2288355734, 402331761)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3720056859, 2566843063), new $Uint64(2860444667, 2650398349)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1428845602, 2134812005), new $Uint64(3575555834, 2239256113)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3577383061, 2407999327), new $Uint64(2234722396, 2473276894)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2324245178, 4083740983), new $Uint64(2793402995, 3091596118)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(757822825, 2957192581), new $Uint64(3491753744, 2790753324)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2621122914, 237632627), new $Uint64(2182346090, 1744220827)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2202661818, 2444524431), new $Uint64(2727932613, 32792386)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(605843625, 908171891), new $Uint64(3409915766, 1114732307)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3978530003, 2208956688), new $Uint64(4262394707, 3540899031)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4097193988, 843727018), new $Uint64(2663996692, 1676190982)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2974008837, 1054658773), new $Uint64(3329995865, 2095238728)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3717511046, 2392065290), new $Uint64(4162494831, 3692790234)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3397186228, 421298982), new $Uint64(2601559269, 3918606632)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4246482785, 526623728), new $Uint64(3251949087, 1677032818)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3160619833, 1732021484), new $Uint64(4064936359, 1022549199)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3586000131, 3766867987), new $Uint64(2540585224, 2249705985)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1261274692, 3634843160), new $Uint64(3175731530, 2812132482)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3724077014, 248586654), new $Uint64(3969664413, 1367681954)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3401289957, 3376592131), new $Uint64(2481040258, 1391672133)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1030386975, 999514691), new $Uint64(3101300322, 3887073815)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(214241895, 175651540), new $Uint64(3876625403, 2711358621)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(670772096, 1720394949), new $Uint64(2422890877, 1157728226)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2985948768, 2150493686), new $Uint64(3028613596, 2520902106)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1584952312, 2688117107), new $Uint64(3785766995, 3151127633)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3674949755, 1680073192), new $Uint64(2366104372, 1432583858)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2446203546, 1026349666), new $Uint64(2957630465, 1790729823)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1984012608, 3430420731), new $Uint64(3697038081, 3312154103)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2850620616, 2144012957), new $Uint64(2310648801, 459483578)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1415792122, 2680016196), new $Uint64(2888311001, 1648096297)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2843481977, 1202536597), new $Uint64(3610388751, 3133862195)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1240305323, 3435939933), new $Uint64(2256492969, 3569276608)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1550381654, 3221183092), new $Uint64(2820616212, 1240370288)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1937977068, 1878995217), new $Uint64(3525770265, 1550462860)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3358719315, 3321855659), new $Uint64(2203606415, 3653393847)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3124657320, 3078577749), new $Uint64(2754508019, 3493000485)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(684596178, 3848222187), new $Uint64(3443135024, 3292508783)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2038485347, 3478880691), new $Uint64(2151959390, 2057817989)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3621848508, 3274859039), new $Uint64(2689949238, 424788838)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2379826987, 4093573799), new $Uint64(3362436547, 2678469696)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2974783734, 4043225425), new $Uint64(4203045684, 2274345296)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1859239834, 1453274067), new $Uint64(2626903552, 3568949458)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(176566144, 3964076232), new $Uint64(3283629441, 166219527)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3441933153, 660127994), new $Uint64(4104536801, 1281516232)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2151208220, 3096934556), new $Uint64(2565335500, 3485302205)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3762752099, 3871168195), new $Uint64(3206669376, 61660460)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(408472828, 3765218420), new $Uint64(4008336720, 77075576)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(255295518, 205777864), new $Uint64(2505210450, 48172235)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3540344869, 2404705978), new $Uint64(3131513062, 2207698941)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1204205614, 4079624297), new $Uint64(3914391328, 612140029)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1289499421, 1476023361), new $Uint64(2446494580, 382587518)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3759357924, 2918771026), new $Uint64(3058118225, 478234397)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1477971933, 3648463782), new $Uint64(3822647781, 1671534821)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1460603370, 2817160776), new $Uint64(2389154863, 1581580175)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(752012389, 1373967322), new $Uint64(2986443579, 903233395)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4161240958, 2791200977), new $Uint64(3733054474, 55299919)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4211388335, 670758786), new $Uint64(2333159046, 1108304273)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2043009946, 4059673955), new $Uint64(2916448807, 3532863990)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(406278785, 2927108796), new $Uint64(3645561009, 3342338164)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2401407889, 218830261), new $Uint64(2278475631, 478348616)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3001759861, 1347279650), new $Uint64(2848094538, 3819161242)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1604716178, 2757841387), new $Uint64(3560118173, 2626467905)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3687302171, 2797392691), new $Uint64(2225073858, 2178413352)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(314160418, 2422999040), new $Uint64(2781342323, 575533043)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3613925995, 881265152), new $Uint64(3476677903, 3940641775)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3869316483, 13919808), new $Uint64(2172923689, 4073513845)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1615420131, 3238625232), new $Uint64(2716154612, 1870666835)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(945533340, 2974539716), new $Uint64(3395193265, 2338333544)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1181916675, 3718174645), new $Uint64(4243991581, 3996658754)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1812439746, 1786988241), new $Uint64(2652494738, 3034782633)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3339291507, 86251653), new $Uint64(3315618423, 1645994643)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3100372559, 3329040039), new $Uint64(4144523029, 983751480)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1937732849, 3691262760), new $Uint64(2590326893, 1151715587)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1348424238, 1392852978), new $Uint64(3237908616, 2513386308)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1685530297, 3888549871), new $Uint64(4047385770, 3141732885)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1590327348, 819730933), new $Uint64(2529616106, 3037324877)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3061651009, 1024663666), new $Uint64(3162020133, 1649172448)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3827063761, 2354571407), new $Uint64(3952525166, 3135207384)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2391914850, 4155961689), new $Uint64(2470328229, 885762791)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1916151739, 3047468464), new $Uint64(3087910286, 2180945313)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3468931498, 2735593756), new $Uint64(3859887858, 578697993)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(557469450, 2783487921), new $Uint64(2412429911, 1435428070)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2844320461, 1331876253), new $Uint64(3015537389, 720543263)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2481658752, 2738587141), new $Uint64(3769421736, 1974420903)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3161649456, 1711616963), new $Uint64(2355888585, 1234013064)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(3952061820, 2139521204), new $Uint64(2944860731, 2616258154)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2792593627, 2674401505), new $Uint64(3681075914, 2196580869)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2282241929, 1134630028), new $Uint64(2300672446, 2446604867)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1779060587, 2492029360), new $Uint64(2875840558, 910772436)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(2223825734, 2041294876), new $Uint64(3594800697, 3285949193)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(4074245644, 202067473), new $Uint64(2246750436, 443105509)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1871581583, 252584341), new $Uint64(2808438045, 553881887)]), arrayType), $clone($toNativeArray($kindUint64, [new $Uint64(1265735154, 3536955899), new $Uint64(3510547556, 1766094183)]), arrayType)]); + leftcheats = new sliceType$2([$clone(new leftCheat.ptr(0, ""), leftCheat), $clone(new leftCheat.ptr(1, "5"), leftCheat), $clone(new leftCheat.ptr(1, "25"), leftCheat), $clone(new leftCheat.ptr(1, "125"), leftCheat), $clone(new leftCheat.ptr(2, "625"), leftCheat), $clone(new leftCheat.ptr(2, "3125"), leftCheat), $clone(new leftCheat.ptr(2, "15625"), leftCheat), $clone(new leftCheat.ptr(3, "78125"), leftCheat), $clone(new leftCheat.ptr(3, "390625"), leftCheat), $clone(new leftCheat.ptr(3, "1953125"), leftCheat), $clone(new leftCheat.ptr(4, "9765625"), leftCheat), $clone(new leftCheat.ptr(4, "48828125"), leftCheat), $clone(new leftCheat.ptr(4, "244140625"), leftCheat), $clone(new leftCheat.ptr(4, "1220703125"), leftCheat), $clone(new leftCheat.ptr(5, "6103515625"), leftCheat), $clone(new leftCheat.ptr(5, "30517578125"), leftCheat), $clone(new leftCheat.ptr(5, "152587890625"), leftCheat), $clone(new leftCheat.ptr(6, "762939453125"), leftCheat), $clone(new leftCheat.ptr(6, "3814697265625"), leftCheat), $clone(new leftCheat.ptr(6, "19073486328125"), leftCheat), $clone(new leftCheat.ptr(7, "95367431640625"), leftCheat), $clone(new leftCheat.ptr(7, "476837158203125"), leftCheat), $clone(new leftCheat.ptr(7, "2384185791015625"), leftCheat), $clone(new leftCheat.ptr(7, "11920928955078125"), leftCheat), $clone(new leftCheat.ptr(8, "59604644775390625"), leftCheat), $clone(new leftCheat.ptr(8, "298023223876953125"), leftCheat), $clone(new leftCheat.ptr(8, "1490116119384765625"), leftCheat), $clone(new leftCheat.ptr(9, "7450580596923828125"), leftCheat), $clone(new leftCheat.ptr(9, "37252902984619140625"), leftCheat), $clone(new leftCheat.ptr(9, "186264514923095703125"), leftCheat), $clone(new leftCheat.ptr(10, "931322574615478515625"), leftCheat), $clone(new leftCheat.ptr(10, "4656612873077392578125"), leftCheat), $clone(new leftCheat.ptr(10, "23283064365386962890625"), leftCheat), $clone(new leftCheat.ptr(10, "116415321826934814453125"), leftCheat), $clone(new leftCheat.ptr(11, "582076609134674072265625"), leftCheat), $clone(new leftCheat.ptr(11, "2910383045673370361328125"), leftCheat), $clone(new leftCheat.ptr(11, "14551915228366851806640625"), leftCheat), $clone(new leftCheat.ptr(12, "72759576141834259033203125"), leftCheat), $clone(new leftCheat.ptr(12, "363797880709171295166015625"), leftCheat), $clone(new leftCheat.ptr(12, "1818989403545856475830078125"), leftCheat), $clone(new leftCheat.ptr(13, "9094947017729282379150390625"), leftCheat), $clone(new leftCheat.ptr(13, "45474735088646411895751953125"), leftCheat), $clone(new leftCheat.ptr(13, "227373675443232059478759765625"), leftCheat), $clone(new leftCheat.ptr(13, "1136868377216160297393798828125"), leftCheat), $clone(new leftCheat.ptr(14, "5684341886080801486968994140625"), leftCheat), $clone(new leftCheat.ptr(14, "28421709430404007434844970703125"), leftCheat), $clone(new leftCheat.ptr(14, "142108547152020037174224853515625"), leftCheat), $clone(new leftCheat.ptr(15, "710542735760100185871124267578125"), leftCheat), $clone(new leftCheat.ptr(15, "3552713678800500929355621337890625"), leftCheat), $clone(new leftCheat.ptr(15, "17763568394002504646778106689453125"), leftCheat), $clone(new leftCheat.ptr(16, "88817841970012523233890533447265625"), leftCheat), $clone(new leftCheat.ptr(16, "444089209850062616169452667236328125"), leftCheat), $clone(new leftCheat.ptr(16, "2220446049250313080847263336181640625"), leftCheat), $clone(new leftCheat.ptr(16, "11102230246251565404236316680908203125"), leftCheat), $clone(new leftCheat.ptr(17, "55511151231257827021181583404541015625"), leftCheat), $clone(new leftCheat.ptr(17, "277555756156289135105907917022705078125"), leftCheat), $clone(new leftCheat.ptr(17, "1387778780781445675529539585113525390625"), leftCheat), $clone(new leftCheat.ptr(18, "6938893903907228377647697925567626953125"), leftCheat), $clone(new leftCheat.ptr(18, "34694469519536141888238489627838134765625"), leftCheat), $clone(new leftCheat.ptr(18, "173472347597680709441192448139190673828125"), leftCheat), $clone(new leftCheat.ptr(19, "867361737988403547205962240695953369140625"), leftCheat)]); + $pkg.ErrRange = errors.New("value out of range"); + $pkg.ErrSyntax = errors.New("invalid syntax"); + optimize = true; + powtab = new sliceType$3([1, 3, 6, 9, 13, 16, 19, 23, 26]); + float64pow10 = new sliceType$4([1, 10, 100, 1000, 10000, 100000, 1e+06, 1e+07, 1e+08, 1e+09, 1e+10, 1e+11, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20, 1e+21, 1e+22]); + float32pow10 = new sliceType$5([1, 10, 100, 1000, 10000, 100000, 1e+06, 1e+07, 1e+08, 1e+09, 1e+10]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/race"] = (function() { + var $pkg = {}, $init, Acquire, Release, ReleaseMerge, Disable, Enable; + $pkg.$finishSetup = function() { + Acquire = function Acquire$1(addr) { + var addr; + }; + $pkg.Acquire = Acquire; + Release = function Release$1(addr) { + var addr; + }; + $pkg.Release = Release; + ReleaseMerge = function ReleaseMerge$1(addr) { + var addr; + }; + $pkg.ReleaseMerge = ReleaseMerge; + Disable = function Disable$1() { + }; + $pkg.Disable = Disable; + Enable = function Enable$1() { + }; + $pkg.Enable = Enable; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["sync/atomic"] = (function() { + var $pkg = {}, $init, js, Value, Pointer = [], CompareAndSwapInt32, CompareAndSwapUint64, AddInt32, AddUint32, LoadInt32, LoadUint32, LoadUint64, StoreInt32, StoreUint32, sameType; + js = $packages["github.com/gopherjs/gopherjs/js"]; + Value = $newType(0, $kindStruct, "atomic.Value", true, "sync/atomic", true, function(v_) { + this.$val = this; + if (arguments.length === 0) { + this.v = $ifaceNil; + return; + } + this.v = v_; + }); + Pointer[0 /* go/token.File */] = $newType(0, $kindStruct, "atomic.Pointer[go/token.File]", true, "sync/atomic", true, function(v_) { + this.$val = this; + if (arguments.length === 0) { + this.v = ptrType$5.nil; + return; + } + this.v = v_; + }); + $pkg.Value = Value; + $pkg.Pointer = Pointer; + $pkg.$finishSetup = function() { + CompareAndSwapInt32 = function CompareAndSwapInt32$1(addr, old, new$1) { + var addr, new$1, old; + if (addr.$get() === old) { + addr.$set(new$1); + return true; + } + return false; + }; + $pkg.CompareAndSwapInt32 = CompareAndSwapInt32; + CompareAndSwapUint64 = function CompareAndSwapUint64$1(addr, old, new$1) { + var addr, new$1, old, x; + if ((x = addr.$get(), (x.$high === old.$high && x.$low === old.$low))) { + addr.$set(new$1); + return true; + } + return false; + }; + $pkg.CompareAndSwapUint64 = CompareAndSwapUint64; + AddInt32 = function AddInt32$1(addr, delta) { + var addr, delta, new$1; + new$1 = addr.$get() + delta >> 0; + addr.$set(new$1); + return new$1; + }; + $pkg.AddInt32 = AddInt32; + AddUint32 = function AddUint32$1(addr, delta) { + var addr, delta, new$1; + new$1 = addr.$get() + delta >>> 0; + addr.$set(new$1); + return new$1; + }; + $pkg.AddUint32 = AddUint32; + LoadInt32 = function LoadInt32$1(addr) { + var addr; + return addr.$get(); + }; + $pkg.LoadInt32 = LoadInt32; + LoadUint32 = function LoadUint32$1(addr) { + var addr; + return addr.$get(); + }; + $pkg.LoadUint32 = LoadUint32; + LoadUint64 = function LoadUint64$1(addr) { + var addr; + return addr.$get(); + }; + $pkg.LoadUint64 = LoadUint64; + StoreInt32 = function StoreInt32$1(addr, val) { + var addr, val; + addr.$set(val); + }; + $pkg.StoreInt32 = StoreInt32; + StoreUint32 = function StoreUint32$1(addr, val) { + var addr, val; + addr.$set(val); + }; + $pkg.StoreUint32 = StoreUint32; + $ptrType(Value).prototype.Load = function Load$6() { + var v, x; + x = $ifaceNil; + v = this; + x = v.v; + return x; + }; + $ptrType(Value).prototype.Store = function Store$6(new$1) { + var new$1, v; + v = this; + v.checkNew("store", new$1); + v.v = new$1; + }; + $ptrType(Value).prototype.Swap = function Swap$6(new$1) { + var _tmp, _tmp$1, new$1, old, v; + old = $ifaceNil; + v = this; + v.checkNew("swap", new$1); + _tmp = v.v; + _tmp$1 = new$1; + old = _tmp; + v.v = _tmp$1; + old = old; + return old; + }; + $ptrType(Value).prototype.CompareAndSwap = function CompareAndSwap$6(old, new$1) { + var new$1, old, swapped, v; + swapped = false; + v = this; + v.checkNew("compare and swap", new$1); + if (!($interfaceIsEqual(v.v, $ifaceNil) && $interfaceIsEqual(old, $ifaceNil)) && !sameType(old, new$1)) { + $panic(new $String("sync/atomic: compare and swap of inconsistently typed values into Value")); + } + if (!($interfaceIsEqual(v.v, old))) { + swapped = false; + return swapped; + } + v.v = new$1; + swapped = true; + return swapped; + }; + $ptrType(Value).prototype.checkNew = function checkNew(op, new$1) { + var new$1, op, v; + v = this; + if ($interfaceIsEqual(new$1, $ifaceNil)) { + $panic(new $String("sync/atomic: " + op + " of nil value into Value")); + } + if (!($interfaceIsEqual(v.v, $ifaceNil)) && !sameType(new$1, v.v)) { + $panic(new $String("sync/atomic: " + op + " of inconsistently typed value into Value")); + } + }; + sameType = function sameType$1(x, y) { + var x, y; + return x.constructor === y.constructor; + }; + $ptrType(Pointer[0 /* go/token.File */]).prototype.Load = function Load$7() { + var x; + x = this; + return x.v; + }; + $ptrType(Pointer[0 /* go/token.File */]).prototype.Store = function Store$7(val) { + var val, x; + x = this; + x.v = val; + }; + $ptrType(Pointer[0 /* go/token.File */]).prototype.Swap = function Swap$7(new$1) { + var new$1, old, x; + old = ptrType$5.nil; + x = this; + old = x.v; + x.v = new$1; + old = old; + return old; + }; + $ptrType(Pointer[0 /* go/token.File */]).prototype.CompareAndSwap = function CompareAndSwap$7(old, new$1) { + var new$1, old, x; + x = this; + if (x.v === old) { + x.v = new$1; + return true; + } + return false; + }; + ptrType$6.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$Bool], false)}, {prop: "checkNew", name: "checkNew", pkg: "sync/atomic", typ: $funcType([$String, $emptyInterface], [], false)}]; + ptrType$14.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$5], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$5], [ptrType$5], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$5, ptrType$5], [$Bool], false)}]; + Value.init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]); + Pointer[0 /* go/token.File */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$5, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["sync"] = (function() { + var $pkg = {}, $init, js, race, atomic, RWMutex, rlocker, notifyList, Once, Mutex, Locker, Pool, expunged, semWaiters, semAwoken, init, runtime_doSpin, fatal, runtime_Semacquire, runtime_SemacquireMutex, runtime_Semrelease, runtime_notifyListCheck, runtime_canSpin, runtime_nanotime, throw$1; + js = $packages["github.com/gopherjs/gopherjs/js"]; + race = $packages["internal/race"]; + atomic = $packages["sync/atomic"]; + RWMutex = $newType(0, $kindStruct, "sync.RWMutex", true, "sync", true, function(w_, writerSem_, readerSem_, readerCount_, readerWait_) { + this.$val = this; + if (arguments.length === 0) { + this.w = new Mutex.ptr(0, 0); + this.writerSem = 0; + this.readerSem = 0; + this.readerCount = 0; + this.readerWait = 0; + return; + } + this.w = w_; + this.writerSem = writerSem_; + this.readerSem = readerSem_; + this.readerCount = readerCount_; + this.readerWait = readerWait_; + }); + rlocker = $newType(0, $kindStruct, "sync.rlocker", true, "sync", false, function(w_, writerSem_, readerSem_, readerCount_, readerWait_) { + this.$val = this; + if (arguments.length === 0) { + this.w = new Mutex.ptr(0, 0); + this.writerSem = 0; + this.readerSem = 0; + this.readerCount = 0; + this.readerWait = 0; + return; + } + this.w = w_; + this.writerSem = writerSem_; + this.readerSem = readerSem_; + this.readerCount = readerCount_; + this.readerWait = readerWait_; + }); + notifyList = $newType(0, $kindStruct, "sync.notifyList", true, "sync", false, function(wait_, notify_, lock_, head_, tail_) { + this.$val = this; + if (arguments.length === 0) { + this.wait = 0; + this.notify = 0; + this.lock = 0; + this.head = 0; + this.tail = 0; + return; + } + this.wait = wait_; + this.notify = notify_; + this.lock = lock_; + this.head = head_; + this.tail = tail_; + }); + Once = $newType(0, $kindStruct, "sync.Once", true, "sync", true, function(done_, m_) { + this.$val = this; + if (arguments.length === 0) { + this.done = 0; + this.m = new Mutex.ptr(0, 0); + return; + } + this.done = done_; + this.m = m_; + }); + Mutex = $newType(0, $kindStruct, "sync.Mutex", true, "sync", true, function(state_, sema_) { + this.$val = this; + if (arguments.length === 0) { + this.state = 0; + this.sema = 0; + return; + } + this.state = state_; + this.sema = sema_; + }); + Locker = $newType(8, $kindInterface, "sync.Locker", true, "sync", true, null); + Pool = $newType(0, $kindStruct, "sync.Pool", true, "sync", true, function(store_, New_) { + this.$val = this; + if (arguments.length === 0) { + this.store = sliceType$3.nil; + this.New = $throwNilPointerError; + return; + } + this.store = store_; + this.New = New_; + }); + $pkg.RWMutex = RWMutex; + $pkg.rlocker = rlocker; + $pkg.notifyList = notifyList; + $pkg.Once = Once; + $pkg.Mutex = Mutex; + $pkg.Locker = Locker; + $pkg.Pool = Pool; + $pkg.$finishSetup = function() { + $ptrType(RWMutex).prototype.RLock = function RLock() { + var {rw, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Disable(); + } + /* */ if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { */ case 1: + $r = runtime_SemacquireMutex((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false, 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (false) { + race.Enable(); + race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: RLock, $c: true, $r, rw, $s};return $f; + }; + $ptrType(RWMutex).prototype.TryRLock = function TryRLock() { + var c, rw; + rw = this; + if (false) { + $unused(rw.w.state); + race.Disable(); + } + while (true) { + c = atomic.LoadInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw)))); + if (c < 0) { + if (false) { + race.Enable(); + } + return false; + } + if (atomic.CompareAndSwapInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), c, c + 1 >> 0)) { + if (false) { + race.Enable(); + race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + } + return true; + } + } + }; + $ptrType(RWMutex).prototype.RUnlock = function RUnlock() { + var {r, rw, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.ReleaseMerge(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + race.Disable(); + } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), -1); + /* */ if (r < 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (r < 0) { */ case 1: + $r = rw.rUnlockSlow(r); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (false) { + race.Enable(); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: RUnlock, $c: true, $r, r, rw, $s};return $f; + }; + $ptrType(RWMutex).prototype.rUnlockSlow = function rUnlockSlow(r) { + var {r, rw, $s, $r, $c} = $restore(this, {r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rw = this; + /* */ if (((r + 1 >> 0) === 0) || ((r + 1 >> 0) === -1073741824)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (((r + 1 >> 0) === 0) || ((r + 1 >> 0) === -1073741824)) { */ case 1: + race.Enable(); + $r = fatal("sync: RUnlock of unlocked RWMutex"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + /* */ if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$2(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$2(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { */ case 4: + $r = runtime_Semrelease((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false, 1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: rUnlockSlow, $c: true, $r, r, rw, $s};return $f; + }; + $ptrType(RWMutex).prototype.Lock = function Lock() { + var {r, rw, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Disable(); + } + $r = rw.w.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), -1073741824) + 1073741824 >> 0; + /* */ if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$2(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$2(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { */ case 2: + $r = runtime_SemacquireMutex((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false, 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + if (false) { + race.Enable(); + race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Acquire(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: Lock, $c: true, $r, r, rw, $s};return $f; + }; + $ptrType(RWMutex).prototype.TryLock = function TryLock() { + var {rw, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Disable(); + } + if (!rw.w.TryLock()) { + if (false) { + race.Enable(); + } + $s = -1; return false; + } + /* */ if (!atomic.CompareAndSwapInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 0, -1073741824)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!atomic.CompareAndSwapInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 0, -1073741824)) { */ case 1: + $r = rw.w.Unlock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (false) { + race.Enable(); + } + $s = -1; return false; + /* } */ case 2: + if (false) { + race.Enable(); + race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Acquire(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + } + $s = -1; return true; + /* */ } return; } var $f = {$blk: TryLock, $c: true, $r, rw, $s};return $f; + }; + $ptrType(RWMutex).prototype.Unlock = function Unlock() { + var {i, r, rw, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Release(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Disable(); + } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1073741824); + /* */ if (r >= 1073741824) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (r >= 1073741824) { */ case 1: + race.Enable(); + $r = fatal("sync: Unlock of unlocked RWMutex"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + i = 0; + /* while (true) { */ case 4: + /* if (!(i < ((r >> 0)))) { break; } */ if(!(i < ((r >> 0)))) { $s = 5; continue; } + $r = runtime_Semrelease((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false, 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + $s = 4; continue; + case 5: + $r = rw.w.Unlock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (false) { + race.Enable(); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: Unlock, $c: true, $r, i, r, rw, $s};return $f; + }; + $ptrType(RWMutex).prototype.RLocker = function RLocker() { + var rw; + rw = this; + return ($pointerOfStructConversion(rw, ptrType$3)); + }; + $ptrType(rlocker).prototype.Lock = function Lock$1() { + var {r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + $r = ($pointerOfStructConversion(r, ptrType$4)).RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Lock$1, $c: true, $r, r, $s};return $f; + }; + $ptrType(rlocker).prototype.Unlock = function Unlock$1() { + var {r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + $r = ($pointerOfStructConversion(r, ptrType$4)).RUnlock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Unlock$1, $c: true, $r, r, $s};return $f; + }; + init = function init$1() { + var n; + n = new notifyList.ptr(0, 0, 0, 0, 0); + runtime_notifyListCheck(20); + }; + runtime_doSpin = function() { + $throwRuntimeError("native function not implemented: sync.runtime_doSpin"); + }; + $ptrType(Once).prototype.Do = function Do(f) { + var {f, o, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + o = this; + /* */ if (atomic.LoadUint32((o.$ptr_done || (o.$ptr_done = new ptrType$1(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o)))) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (atomic.LoadUint32((o.$ptr_done || (o.$ptr_done = new ptrType$1(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o)))) === 0) { */ case 1: + $r = o.doSlow(f); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Do, $c: true, $r, f, o, $s};return $f; + }; + $ptrType(Once).prototype.doSlow = function doSlow(f) { + var {f, o, $s, $deferred, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + o = this; + $r = o.m.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(o.m, "Unlock"), []]); + /* */ if (o.done === 0) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (o.done === 0) { */ case 2: + $deferred.push([atomic.StoreUint32, [(o.$ptr_done || (o.$ptr_done = new ptrType$1(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o))), 1]]); + $r = f(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: doSlow, $c: true, $r, f, o, $s, $deferred};return $f; } } + }; + fatal = function() { + $throwRuntimeError("native function not implemented: sync.fatal"); + }; + $ptrType(Mutex).prototype.Lock = function Lock$2() { + var {m, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), 0, 1)) { + if (false) { + race.Acquire((m)); + } + $s = -1; return; + } + $r = m.lockSlow(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Lock$2, $c: true, $r, m, $s};return $f; + }; + $ptrType(Mutex).prototype.TryLock = function TryLock$1() { + var m, old; + m = this; + old = m.state; + if (!(((old & 5) === 0))) { + return false; + } + if (!atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, old | 1)) { + return false; + } + if (false) { + race.Acquire((m)); + } + return true; + }; + $ptrType(Mutex).prototype.lockSlow = function lockSlow() { + var {_r, _r$1, _v, awoke, delta, iter, m, new$1, old, queueLifo, starving, waitStartTime, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + waitStartTime = new $Int64(0, 0); + starving = false; + awoke = false; + iter = 0; + old = m.state; + /* while (true) { */ case 1: + /* */ if (((old & 5) === 1) && runtime_canSpin(iter)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (((old & 5) === 1) && runtime_canSpin(iter)) { */ case 3: + if (!awoke && ((old & 2) === 0) && !(((old >> 3 >> 0) === 0)) && atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, old | 2)) { + awoke = true; + } + $r = runtime_doSpin(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + iter = iter + (1) >> 0; + old = m.state; + /* continue; */ $s = 1; continue; + /* } */ case 4: + new$1 = old; + if ((old & 4) === 0) { + new$1 = new$1 | (1); + } + if (!(((old & 5) === 0))) { + new$1 = new$1 + (8) >> 0; + } + if (starving && !(((old & 1) === 0))) { + new$1 = new$1 | (4); + } + if (awoke) { + if ((new$1 & 2) === 0) { + throw$1("sync: inconsistent mutex state"); + } + new$1 = (new$1 & ~(2)) >> 0; + } + /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 6: + if ((old & 5) === 0) { + /* break; */ $s = 2; continue; + } + queueLifo = !((waitStartTime.$high === 0 && waitStartTime.$low === 0)); + /* */ if ((waitStartTime.$high === 0 && waitStartTime.$low === 0)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((waitStartTime.$high === 0 && waitStartTime.$low === 0)) { */ case 9: + _r = runtime_nanotime(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + waitStartTime = _r; + /* } */ case 10: + $r = runtime_SemacquireMutex((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), queueLifo, 1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (starving) { _v = true; $s = 13; continue s; } + _r$1 = runtime_nanotime(); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = (x = (x$1 = _r$1, new $Int64(x$1.$high - waitStartTime.$high, x$1.$low - waitStartTime.$low)), (x.$high > 0 || (x.$high === 0 && x.$low > 1000000))); case 13: + starving = _v; + old = m.state; + if (!(((old & 4) === 0))) { + if (!(((old & 3) === 0)) || ((old >> 3 >> 0) === 0)) { + throw$1("sync: inconsistent mutex state"); + } + delta = -7; + if (!starving || ((old >> 3 >> 0) === 1)) { + delta = delta - (4) >> 0; + } + atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), delta); + /* break; */ $s = 2; continue; + } + awoke = true; + iter = 0; + $s = 8; continue; + /* } else { */ case 7: + old = m.state; + /* } */ case 8: + $s = 1; continue; + case 2: + if (false) { + race.Acquire((m)); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: lockSlow, $c: true, $r, _r, _r$1, _v, awoke, delta, iter, m, new$1, old, queueLifo, starving, waitStartTime, x, x$1, $s};return $f; + }; + $ptrType(Mutex).prototype.Unlock = function Unlock$2() { + var {m, new$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + if (false) { + $unused(m.state); + race.Release((m)); + } + new$1 = atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), -1); + /* */ if (!((new$1 === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((new$1 === 0))) { */ case 1: + $r = m.unlockSlow(new$1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Unlock$2, $c: true, $r, m, new$1, $s};return $f; + }; + $ptrType(Mutex).prototype.unlockSlow = function unlockSlow(new$1) { + var {m, new$1, old, $s, $r, $c} = $restore(this, {new$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + /* */ if ((((new$1 + 1 >> 0)) & 1) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((((new$1 + 1 >> 0)) & 1) === 0) { */ case 1: + $r = fatal("sync: unlock of unlocked mutex"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + /* */ if ((new$1 & 4) === 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((new$1 & 4) === 0) { */ case 4: + old = new$1; + /* while (true) { */ case 7: + if (((old >> 3 >> 0) === 0) || !(((old & 7) === 0))) { + $s = -1; return; + } + new$1 = ((old - 8 >> 0)) | 2; + /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 9: + $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), false, 1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 10: + old = m.state; + $s = 7; continue; + case 8: + $s = 6; continue; + /* } else { */ case 5: + $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), true, 1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: unlockSlow, $c: true, $r, m, new$1, old, $s};return $f; + }; + runtime_Semacquire = function runtime_Semacquire$1(s) { + var {s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = runtime_SemacquireMutex(s, false, 1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: runtime_Semacquire$1, $c: true, $r, s, $s};return $f; + }; + runtime_SemacquireMutex = function runtime_SemacquireMutex$1(s, lifo, skipframes) { + var {_entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _key$1, _key$2, _r, ch, lifo, s, skipframes, $s, $r, $c} = $restore(this, {s, lifo, skipframes}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (((s.$get() - (_entry = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (((s.$get() - (_entry = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { */ case 1: + ch = new $Chan($Bool, 0); + if (lifo) { + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: $appendSlice(new sliceType$2([ch]), (_entry$1 = $mapIndex(semWaiters,ptrType$1.keyFor(s)), _entry$1 !== undefined ? _entry$1.v : sliceType$2.nil)) }); + } else { + _key$1 = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$1), { k: _key$1, v: $append((_entry$2 = $mapIndex(semWaiters,ptrType$1.keyFor(s)), _entry$2 !== undefined ? _entry$2.v : sliceType$2.nil), ch) }); + } + _r = $recv(ch); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r[0]; + _key$2 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$2), { k: _key$2, v: (_entry$3 = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry$3 !== undefined ? _entry$3.v : 0) - (1) >>> 0 }); + if ((_entry$4 = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry$4 !== undefined ? _entry$4.v : 0) === 0) { + $mapDelete(semAwoken, ptrType$1.keyFor(s)); + } + /* } */ case 2: + s.$set(s.$get() - (1) >>> 0); + $s = -1; return; + /* */ } return; } var $f = {$blk: runtime_SemacquireMutex$1, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _key$1, _key$2, _r, ch, lifo, s, skipframes, $s};return $f; + }; + runtime_Semrelease = function runtime_Semrelease$1(s, handoff, skipframes) { + var {_entry, _entry$1, _key, _key$1, ch, handoff, s, skipframes, w, $s, $r, $c} = $restore(this, {s, handoff, skipframes}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s.$set(s.$get() + (1) >>> 0); + w = (_entry = $mapIndex(semWaiters,ptrType$1.keyFor(s)), _entry !== undefined ? _entry.v : sliceType$2.nil); + if (w.$length === 0) { + $s = -1; return; + } + ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]); + w = $subslice(w, 1); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: w }); + if (w.$length === 0) { + $mapDelete(semWaiters, ptrType$1.keyFor(s)); + } + _key$1 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$1), { k: _key$1, v: (_entry$1 = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry$1 !== undefined ? _entry$1.v : 0) + (1) >>> 0 }); + $r = $send(ch, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: runtime_Semrelease$1, $c: true, $r, _entry, _entry$1, _key, _key$1, ch, handoff, s, skipframes, w, $s};return $f; + }; + runtime_notifyListCheck = function runtime_notifyListCheck$1(size) { + var size; + }; + runtime_canSpin = function runtime_canSpin$1(i) { + var i; + return false; + }; + runtime_nanotime = function() { + $throwRuntimeError("native function not implemented: sync.runtime_nanotime"); + }; + throw$1 = function throw$2(s) { + var s; + $throwRuntimeError($externalize(s, $String)); + }; + $ptrType(Pool).prototype.Get = function Get() { + var {$24r, _r, p, x, x$1, x$2, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (p.store.$length === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.store.$length === 0) { */ case 1: + /* */ if (!(p.New === $throwNilPointerError)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(p.New === $throwNilPointerError)) { */ case 3: + _r = p.New(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 6; case 6: return $24r; + /* } */ case 4: + $s = -1; return $ifaceNil; + /* } */ case 2: + x$2 = (x = p.store, x$1 = p.store.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + p.store = $subslice(p.store, 0, (p.store.$length - 1 >> 0)); + $s = -1; return x$2; + /* */ } return; } var $f = {$blk: Get, $c: true, $r, $24r, _r, p, x, x$1, x$2, $s};return $f; + }; + $ptrType(Pool).prototype.Put = function Put(x) { + var p, x; + p = this; + if ($interfaceIsEqual(x, $ifaceNil)) { + return; + } + p.store = $append(p.store, x); + }; + ptrType$4.methods = [{prop: "RLock", name: "RLock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryRLock", name: "TryRLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "RUnlock", name: "RUnlock", pkg: "", typ: $funcType([], [], false)}, {prop: "rUnlockSlow", name: "rUnlockSlow", pkg: "sync", typ: $funcType([$Int32], [], false)}, {prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryLock", name: "TryLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "RLocker", name: "RLocker", pkg: "", typ: $funcType([], [Locker], false)}]; + ptrType$3.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + ptrType$14.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "doSlow", name: "doSlow", pkg: "sync", typ: $funcType([funcType], [], false)}]; + ptrType$15.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryLock", name: "TryLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "lockSlow", name: "lockSlow", pkg: "sync", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "unlockSlow", name: "unlockSlow", pkg: "sync", typ: $funcType([$Int32], [], false)}]; + ptrType$18.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$emptyInterface], [], false)}]; + RWMutex.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: ""}]); + rlocker.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: ""}]); + notifyList.init("sync", [{prop: "wait", name: "wait", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "notify", name: "notify", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "lock", name: "lock", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "head", name: "head", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "tail", name: "tail", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}]); + Once.init("sync", [{prop: "done", name: "done", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: Mutex, tag: ""}]); + Mutex.init("sync", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "sema", name: "sema", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + Locker.init([{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]); + Pool.init("sync", [{prop: "store", name: "store", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: funcType$2, tag: ""}]); + $linknames["sync.runtime_Semacquire"] = runtime_Semacquire; + $linknames["sync.runtime_Semrelease"] = runtime_Semrelease; + $pkg.$initLinknames = function() { + runtime_nanotime = $linknames["runtime.nanotime"]; +}; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = race.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + expunged = (new Uint8Array(8)); + semWaiters = new $global.Map(); + semAwoken = new $global.Map(); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["unicode"] = (function() { + var $pkg = {}, $init, RangeTable, Range16, Range32, CaseRange, d, foldPair, _C, _Cc, _Cf, _Co, _Cs, _L, _Ll, _Lm, _Lo, _Lt, _Lu, _M, _Mc, _Me, _Mn, _N, _Nd, _Nl, _No, _P, _Pc, _Pd, _Pe, _Pf, _Pi, _Po, _Ps, _S, _Sc, _Sk, _Sm, _So, _Z, _Zl, _Zp, _Zs, _Adlam, _Ahom, _Anatolian_Hieroglyphs, _Arabic, _Armenian, _Avestan, _Balinese, _Bamum, _Bassa_Vah, _Batak, _Bengali, _Bhaiksuki, _Bopomofo, _Brahmi, _Braille, _Buginese, _Buhid, _Canadian_Aboriginal, _Carian, _Caucasian_Albanian, _Chakma, _Cham, _Cherokee, _Chorasmian, _Common, _Coptic, _Cuneiform, _Cypriot, _Cyrillic, _Deseret, _Devanagari, _Dives_Akuru, _Dogra, _Duployan, _Egyptian_Hieroglyphs, _Elbasan, _Elymaic, _Ethiopic, _Georgian, _Glagolitic, _Gothic, _Grantha, _Greek, _Gujarati, _Gunjala_Gondi, _Gurmukhi, _Han, _Hangul, _Hanifi_Rohingya, _Hanunoo, _Hatran, _Hebrew, _Hiragana, _Imperial_Aramaic, _Inherited, _Inscriptional_Pahlavi, _Inscriptional_Parthian, _Javanese, _Kaithi, _Kannada, _Katakana, _Kayah_Li, _Kharoshthi, _Khitan_Small_Script, _Khmer, _Khojki, _Khudawadi, _Lao, _Latin, _Lepcha, _Limbu, _Linear_A, _Linear_B, _Lisu, _Lycian, _Lydian, _Mahajani, _Makasar, _Malayalam, _Mandaic, _Manichaean, _Marchen, _Masaram_Gondi, _Medefaidrin, _Meetei_Mayek, _Mende_Kikakui, _Meroitic_Cursive, _Meroitic_Hieroglyphs, _Miao, _Modi, _Mongolian, _Mro, _Multani, _Myanmar, _Nabataean, _Nandinagari, _New_Tai_Lue, _Newa, _Nko, _Nushu, _Nyiakeng_Puachue_Hmong, _Ogham, _Ol_Chiki, _Old_Hungarian, _Old_Italic, _Old_North_Arabian, _Old_Permic, _Old_Persian, _Old_Sogdian, _Old_South_Arabian, _Old_Turkic, _Oriya, _Osage, _Osmanya, _Pahawh_Hmong, _Palmyrene, _Pau_Cin_Hau, _Phags_Pa, _Phoenician, _Psalter_Pahlavi, _Rejang, _Runic, _Samaritan, _Saurashtra, _Sharada, _Shavian, _Siddham, _SignWriting, _Sinhala, _Sogdian, _Sora_Sompeng, _Soyombo, _Sundanese, _Syloti_Nagri, _Syriac, _Tagalog, _Tagbanwa, _Tai_Le, _Tai_Tham, _Tai_Viet, _Takri, _Tamil, _Tangut, _Telugu, _Thaana, _Thai, _Tibetan, _Tifinagh, _Tirhuta, _Ugaritic, _Vai, _Wancho, _Warang_Citi, _Yezidi, _Yi, _Zanabazar_Square, _White_Space, _CaseRanges, properties, asciiFold, caseOrbit, foldL, foldLl, foldLt, foldLu, foldM, foldMn, foldCommon, foldGreek, foldInherited, is16, is32, Is, isExcludingLatin, IsUpper, To, ToUpper, ToLower, SimpleFold, IsGraphic, IsPrint, In, IsLetter, IsPunct, IsSpace, to, IsDigit; + RangeTable = $newType(0, $kindStruct, "unicode.RangeTable", true, "unicode", true, function(R16_, R32_, LatinOffset_) { + this.$val = this; + if (arguments.length === 0) { + this.R16 = sliceType.nil; + this.R32 = sliceType$1.nil; + this.LatinOffset = 0; + return; + } + this.R16 = R16_; + this.R32 = R32_; + this.LatinOffset = LatinOffset_; + }); + Range16 = $newType(0, $kindStruct, "unicode.Range16", true, "unicode", true, function(Lo_, Hi_, Stride_) { + this.$val = this; + if (arguments.length === 0) { + this.Lo = 0; + this.Hi = 0; + this.Stride = 0; + return; + } + this.Lo = Lo_; + this.Hi = Hi_; + this.Stride = Stride_; + }); + Range32 = $newType(0, $kindStruct, "unicode.Range32", true, "unicode", true, function(Lo_, Hi_, Stride_) { + this.$val = this; + if (arguments.length === 0) { + this.Lo = 0; + this.Hi = 0; + this.Stride = 0; + return; + } + this.Lo = Lo_; + this.Hi = Hi_; + this.Stride = Stride_; + }); + CaseRange = $newType(0, $kindStruct, "unicode.CaseRange", true, "unicode", true, function(Lo_, Hi_, Delta_) { + this.$val = this; + if (arguments.length === 0) { + this.Lo = 0; + this.Hi = 0; + this.Delta = arrayType.zero(); + return; + } + this.Lo = Lo_; + this.Hi = Hi_; + this.Delta = Delta_; + }); + d = $newType(12, $kindArray, "unicode.d", true, "unicode", false, null); + foldPair = $newType(0, $kindStruct, "unicode.foldPair", true, "unicode", false, function(From_, To_) { + this.$val = this; + if (arguments.length === 0) { + this.From = 0; + this.To = 0; + return; + } + this.From = From_; + this.To = To_; + }); + $pkg.RangeTable = RangeTable; + $pkg.Range16 = Range16; + $pkg.Range32 = Range32; + $pkg.CaseRange = CaseRange; + $pkg.d = d; + $pkg.foldPair = foldPair; + $pkg.$finishSetup = function() { + is16 = function is16$1(ranges, r) { + var _i, _q, _r, _r$1, _ref, hi, i, lo, m, r, range_, range_$1, ranges; + if (ranges.$length <= 18 || r <= 255) { + _ref = ranges; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + i]); + if (r < range_.Lo) { + return false; + } + if (r <= range_.Hi) { + return (range_.Stride === 1) || ((_r = ((r - range_.Lo << 16 >>> 16)) % range_.Stride, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0); + } + _i++; + } + return false; + } + lo = 0; + hi = ranges.$length; + while (true) { + if (!(lo < hi)) { break; } + m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + range_$1 = ((m < 0 || m >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + m]); + if (range_$1.Lo <= r && r <= range_$1.Hi) { + return (range_$1.Stride === 1) || ((_r$1 = ((r - range_$1.Lo << 16 >>> 16)) % range_$1.Stride, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0); + } + if (r < range_$1.Lo) { + hi = m; + } else { + lo = m + 1 >> 0; + } + } + return false; + }; + is32 = function is32$1(ranges, r) { + var _i, _q, _r, _r$1, _ref, hi, i, lo, m, r, range_, range_$1, ranges; + if (ranges.$length <= 18) { + _ref = ranges; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + i]); + if (r < range_.Lo) { + return false; + } + if (r <= range_.Hi) { + return (range_.Stride === 1) || ((_r = ((r - range_.Lo >>> 0)) % range_.Stride, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0); + } + _i++; + } + return false; + } + lo = 0; + hi = ranges.$length; + while (true) { + if (!(lo < hi)) { break; } + m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + range_$1 = $clone(((m < 0 || m >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + m]), Range32); + if (range_$1.Lo <= r && r <= range_$1.Hi) { + return (range_$1.Stride === 1) || ((_r$1 = ((r - range_$1.Lo >>> 0)) % range_$1.Stride, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0); + } + if (r < range_$1.Lo) { + hi = m; + } else { + lo = m + 1 >> 0; + } + } + return false; + }; + Is = function Is$1(rangeTab, r) { + var r, r16, r32, rangeTab, x; + r16 = rangeTab.R16; + if (r16.$length > 0 && ((r >>> 0)) <= (((x = r16.$length - 1 >> 0, ((x < 0 || x >= r16.$length) ? ($throwRuntimeError("index out of range"), undefined) : r16.$array[r16.$offset + x])).Hi >>> 0))) { + return is16(r16, ((r << 16 >>> 16))); + } + r32 = rangeTab.R32; + if (r32.$length > 0 && r >= (((0 >= r32.$length ? ($throwRuntimeError("index out of range"), undefined) : r32.$array[r32.$offset + 0]).Lo >> 0))) { + return is32(r32, ((r >>> 0))); + } + return false; + }; + $pkg.Is = Is; + isExcludingLatin = function isExcludingLatin$1(rangeTab, r) { + var off, r, r16, r32, rangeTab, x; + r16 = rangeTab.R16; + off = rangeTab.LatinOffset; + if (r16.$length > off && ((r >>> 0)) <= (((x = r16.$length - 1 >> 0, ((x < 0 || x >= r16.$length) ? ($throwRuntimeError("index out of range"), undefined) : r16.$array[r16.$offset + x])).Hi >>> 0))) { + return is16($subslice(r16, off), ((r << 16 >>> 16))); + } + r32 = rangeTab.R32; + if (r32.$length > 0 && r >= (((0 >= r32.$length ? ($throwRuntimeError("index out of range"), undefined) : r32.$array[r32.$offset + 0]).Lo >> 0))) { + return is32(r32, ((r >>> 0))); + } + return false; + }; + IsUpper = function IsUpper$1(r) { + var r, x; + if (((r >>> 0)) <= 255) { + return (((x = ((r << 24 >>> 24)), ((x < 0 || x >= properties.length) ? ($throwRuntimeError("index out of range"), undefined) : properties[x])) & 96) >>> 0) === 32; + } + return isExcludingLatin($pkg.Upper, r); + }; + $pkg.IsUpper = IsUpper; + To = function To$1(_case, r) { + var _case, _tuple, r; + _tuple = to(_case, r, $pkg.CaseRanges); + r = _tuple[0]; + return r; + }; + $pkg.To = To; + ToUpper = function ToUpper$1(r) { + var r; + if (r <= 127) { + if (97 <= r && r <= 122) { + r = r - (32) >> 0; + } + return r; + } + return To(0, r); + }; + $pkg.ToUpper = ToUpper; + ToLower = function ToLower$1(r) { + var r; + if (r <= 127) { + if (65 <= r && r <= 90) { + r = r + (32) >> 0; + } + return r; + } + return To(1, r); + }; + $pkg.ToLower = ToLower; + SimpleFold = function SimpleFold$1(r) { + var _q, hi, l, lo, m, r; + if (r < 0 || r > 1114111) { + return r; + } + if (((r >> 0)) < 128) { + return ((((r < 0 || r >= asciiFold.length) ? ($throwRuntimeError("index out of range"), undefined) : asciiFold[r]) >> 0)); + } + lo = 0; + hi = caseOrbit.$length; + while (true) { + if (!(lo < hi)) { break; } + m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + if (((((m < 0 || m >= caseOrbit.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseOrbit.$array[caseOrbit.$offset + m]).From >> 0)) < r) { + lo = m + 1 >> 0; + } else { + hi = m; + } + } + if (lo < caseOrbit.$length && (((((lo < 0 || lo >= caseOrbit.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseOrbit.$array[caseOrbit.$offset + lo]).From >> 0)) === r)) { + return ((((lo < 0 || lo >= caseOrbit.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseOrbit.$array[caseOrbit.$offset + lo]).To >> 0)); + } + l = ToLower(r); + if (!((l === r))) { + return l; + } + return ToUpper(r); + }; + $pkg.SimpleFold = SimpleFold; + IsGraphic = function IsGraphic$1(r) { + var r, x; + if (((r >>> 0)) <= 255) { + return !(((((x = ((r << 24 >>> 24)), ((x < 0 || x >= properties.length) ? ($throwRuntimeError("index out of range"), undefined) : properties[x])) & 144) >>> 0) === 0)); + } + return In(r, $pkg.GraphicRanges); + }; + $pkg.IsGraphic = IsGraphic; + IsPrint = function IsPrint$1(r) { + var r, x; + if (((r >>> 0)) <= 255) { + return !(((((x = ((r << 24 >>> 24)), ((x < 0 || x >= properties.length) ? ($throwRuntimeError("index out of range"), undefined) : properties[x])) & 128) >>> 0) === 0)); + } + return In(r, $pkg.PrintRanges); + }; + $pkg.IsPrint = IsPrint; + In = function In$1(r, ranges) { + var _i, _ref, inside, r, ranges; + _ref = ranges; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + inside = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (Is(inside, r)) { + return true; + } + _i++; + } + return false; + }; + $pkg.In = In; + IsLetter = function IsLetter$1(r) { + var r, x; + if (((r >>> 0)) <= 255) { + return !(((((x = ((r << 24 >>> 24)), ((x < 0 || x >= properties.length) ? ($throwRuntimeError("index out of range"), undefined) : properties[x])) & 96) >>> 0) === 0)); + } + return isExcludingLatin($pkg.Letter, r); + }; + $pkg.IsLetter = IsLetter; + IsPunct = function IsPunct$1(r) { + var r, x; + if (((r >>> 0)) <= 255) { + return !(((((x = ((r << 24 >>> 24)), ((x < 0 || x >= properties.length) ? ($throwRuntimeError("index out of range"), undefined) : properties[x])) & 2) >>> 0) === 0)); + } + return Is($pkg.Punct, r); + }; + $pkg.IsPunct = IsPunct; + IsSpace = function IsSpace$1(r) { + var _1, r; + if (((r >>> 0)) <= 255) { + _1 = r; + if ((_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12)) || (_1 === (13)) || (_1 === (32)) || (_1 === (133)) || (_1 === (160))) { + return true; + } + return false; + } + return isExcludingLatin($pkg.White_Space, r); + }; + $pkg.IsSpace = IsSpace; + to = function to$1(_case, r, caseRange) { + var _case, _q, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, caseRange, cr, delta, foundMapping, hi, lo, m, mappedRune, r, x; + mappedRune = 0; + foundMapping = false; + if (_case < 0 || 3 <= _case) { + _tmp = 65533; + _tmp$1 = false; + mappedRune = _tmp; + foundMapping = _tmp$1; + return [mappedRune, foundMapping]; + } + lo = 0; + hi = caseRange.$length; + while (true) { + if (!(lo < hi)) { break; } + m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + cr = ((m < 0 || m >= caseRange.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseRange.$array[caseRange.$offset + m]); + if (((cr.Lo >> 0)) <= r && r <= ((cr.Hi >> 0))) { + delta = ((x = cr.Delta, ((_case < 0 || _case >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[_case]))); + if (delta > 1114111) { + _tmp$2 = ((cr.Lo >> 0)) + ((((((r - ((cr.Lo >> 0)) >> 0)) & ~1) >> 0) | (((_case & 1) >> 0)))) >> 0; + _tmp$3 = true; + mappedRune = _tmp$2; + foundMapping = _tmp$3; + return [mappedRune, foundMapping]; + } + _tmp$4 = r + delta >> 0; + _tmp$5 = true; + mappedRune = _tmp$4; + foundMapping = _tmp$5; + return [mappedRune, foundMapping]; + } + if (r < ((cr.Lo >> 0))) { + hi = m; + } else { + lo = m + 1 >> 0; + } + } + _tmp$6 = r; + _tmp$7 = false; + mappedRune = _tmp$6; + foundMapping = _tmp$7; + return [mappedRune, foundMapping]; + }; + IsDigit = function IsDigit$1(r) { + var r; + if (r <= 255) { + return 48 <= r && r <= 57; + } + return isExcludingLatin($pkg.Digit, r); + }; + $pkg.IsDigit = IsDigit; + RangeTable.init("", [{prop: "R16", name: "R16", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "R32", name: "R32", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "LatinOffset", name: "LatinOffset", embedded: false, exported: true, typ: $Int, tag: ""}]); + Range16.init("", [{prop: "Lo", name: "Lo", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Hi", name: "Hi", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Uint16, tag: ""}]); + Range32.init("", [{prop: "Lo", name: "Lo", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Hi", name: "Hi", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Uint32, tag: ""}]); + CaseRange.init("", [{prop: "Lo", name: "Lo", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Hi", name: "Hi", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Delta", name: "Delta", embedded: false, exported: true, typ: d, tag: ""}]); + d.init($Int32, 3); + foldPair.init("", [{prop: "From", name: "From", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "To", name: "To", embedded: false, exported: true, typ: $Uint16, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _C = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(0, 31, 1), Range16), $clone(new Range16.ptr(127, 159, 1), Range16), $clone(new Range16.ptr(173, 1536, 1363), Range16), $clone(new Range16.ptr(1537, 1541, 1), Range16), $clone(new Range16.ptr(1564, 1757, 193), Range16), $clone(new Range16.ptr(1807, 2274, 467), Range16), $clone(new Range16.ptr(6158, 8203, 2045), Range16), $clone(new Range16.ptr(8204, 8207, 1), Range16), $clone(new Range16.ptr(8234, 8238, 1), Range16), $clone(new Range16.ptr(8288, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8303, 1), Range16), $clone(new Range16.ptr(55296, 63743, 1), Range16), $clone(new Range16.ptr(65279, 65529, 250), Range16), $clone(new Range16.ptr(65530, 65531, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69821, 69837, 16), Range32), $clone(new Range32.ptr(78896, 78904, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(119155, 119162, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32), $clone(new Range32.ptr(983040, 1048573, 1), Range32), $clone(new Range32.ptr(1048576, 1114109, 1), Range32)]), 2); + _Cc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(0, 31, 1), Range16), $clone(new Range16.ptr(127, 159, 1), Range16)]), sliceType$1.nil, 2); + _Cf = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(173, 1536, 1363), Range16), $clone(new Range16.ptr(1537, 1541, 1), Range16), $clone(new Range16.ptr(1564, 1757, 193), Range16), $clone(new Range16.ptr(1807, 2274, 467), Range16), $clone(new Range16.ptr(6158, 8203, 2045), Range16), $clone(new Range16.ptr(8204, 8207, 1), Range16), $clone(new Range16.ptr(8234, 8238, 1), Range16), $clone(new Range16.ptr(8288, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8303, 1), Range16), $clone(new Range16.ptr(65279, 65529, 250), Range16), $clone(new Range16.ptr(65530, 65531, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69821, 69837, 16), Range32), $clone(new Range32.ptr(78896, 78904, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(119155, 119162, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32)]), 0); + _Co = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(57344, 63743, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(983040, 1048573, 1), Range32), $clone(new Range32.ptr(1048576, 1114109, 1), Range32)]), 0); + _Cs = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(55296, 57343, 1), Range16)]), sliceType$1.nil, 0); + _L = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(170, 181, 11), Range16), $clone(new Range16.ptr(186, 192, 6), Range16), $clone(new Range16.ptr(193, 214, 1), Range16), $clone(new Range16.ptr(216, 246, 1), Range16), $clone(new Range16.ptr(248, 705, 1), Range16), $clone(new Range16.ptr(710, 721, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(748, 750, 2), Range16), $clone(new Range16.ptr(880, 884, 1), Range16), $clone(new Range16.ptr(886, 887, 1), Range16), $clone(new Range16.ptr(890, 893, 1), Range16), $clone(new Range16.ptr(895, 902, 7), Range16), $clone(new Range16.ptr(904, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 929, 1), Range16), $clone(new Range16.ptr(931, 1013, 1), Range16), $clone(new Range16.ptr(1015, 1153, 1), Range16), $clone(new Range16.ptr(1162, 1327, 1), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(1369, 1376, 7), Range16), $clone(new Range16.ptr(1377, 1416, 1), Range16), $clone(new Range16.ptr(1488, 1514, 1), Range16), $clone(new Range16.ptr(1519, 1522, 1), Range16), $clone(new Range16.ptr(1568, 1610, 1), Range16), $clone(new Range16.ptr(1646, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1747, 1), Range16), $clone(new Range16.ptr(1749, 1765, 16), Range16), $clone(new Range16.ptr(1766, 1774, 8), Range16), $clone(new Range16.ptr(1775, 1786, 11), Range16), $clone(new Range16.ptr(1787, 1788, 1), Range16), $clone(new Range16.ptr(1791, 1808, 17), Range16), $clone(new Range16.ptr(1810, 1839, 1), Range16), $clone(new Range16.ptr(1869, 1957, 1), Range16), $clone(new Range16.ptr(1969, 1994, 25), Range16), $clone(new Range16.ptr(1995, 2026, 1), Range16), $clone(new Range16.ptr(2036, 2037, 1), Range16), $clone(new Range16.ptr(2042, 2048, 6), Range16), $clone(new Range16.ptr(2049, 2069, 1), Range16), $clone(new Range16.ptr(2074, 2084, 10), Range16), $clone(new Range16.ptr(2088, 2112, 24), Range16), $clone(new Range16.ptr(2113, 2136, 1), Range16), $clone(new Range16.ptr(2144, 2154, 1), Range16), $clone(new Range16.ptr(2208, 2228, 1), Range16), $clone(new Range16.ptr(2230, 2247, 1), Range16), $clone(new Range16.ptr(2308, 2361, 1), Range16), $clone(new Range16.ptr(2365, 2384, 19), Range16), $clone(new Range16.ptr(2392, 2401, 1), Range16), $clone(new Range16.ptr(2417, 2432, 1), Range16), $clone(new Range16.ptr(2437, 2444, 1), Range16), $clone(new Range16.ptr(2447, 2448, 1), Range16), $clone(new Range16.ptr(2451, 2472, 1), Range16), $clone(new Range16.ptr(2474, 2480, 1), Range16), $clone(new Range16.ptr(2482, 2486, 4), Range16), $clone(new Range16.ptr(2487, 2489, 1), Range16), $clone(new Range16.ptr(2493, 2510, 17), Range16), $clone(new Range16.ptr(2524, 2525, 1), Range16), $clone(new Range16.ptr(2527, 2529, 1), Range16), $clone(new Range16.ptr(2544, 2545, 1), Range16), $clone(new Range16.ptr(2556, 2565, 9), Range16), $clone(new Range16.ptr(2566, 2570, 1), Range16), $clone(new Range16.ptr(2575, 2576, 1), Range16), $clone(new Range16.ptr(2579, 2600, 1), Range16), $clone(new Range16.ptr(2602, 2608, 1), Range16), $clone(new Range16.ptr(2610, 2611, 1), Range16), $clone(new Range16.ptr(2613, 2614, 1), Range16), $clone(new Range16.ptr(2616, 2617, 1), Range16), $clone(new Range16.ptr(2649, 2652, 1), Range16), $clone(new Range16.ptr(2654, 2674, 20), Range16), $clone(new Range16.ptr(2675, 2676, 1), Range16), $clone(new Range16.ptr(2693, 2701, 1), Range16), $clone(new Range16.ptr(2703, 2705, 1), Range16), $clone(new Range16.ptr(2707, 2728, 1), Range16), $clone(new Range16.ptr(2730, 2736, 1), Range16), $clone(new Range16.ptr(2738, 2739, 1), Range16), $clone(new Range16.ptr(2741, 2745, 1), Range16), $clone(new Range16.ptr(2749, 2768, 19), Range16), $clone(new Range16.ptr(2784, 2785, 1), Range16), $clone(new Range16.ptr(2809, 2821, 12), Range16), $clone(new Range16.ptr(2822, 2828, 1), Range16), $clone(new Range16.ptr(2831, 2832, 1), Range16), $clone(new Range16.ptr(2835, 2856, 1), Range16), $clone(new Range16.ptr(2858, 2864, 1), Range16), $clone(new Range16.ptr(2866, 2867, 1), Range16), $clone(new Range16.ptr(2869, 2873, 1), Range16), $clone(new Range16.ptr(2877, 2908, 31), Range16), $clone(new Range16.ptr(2909, 2911, 2), Range16), $clone(new Range16.ptr(2912, 2913, 1), Range16), $clone(new Range16.ptr(2929, 2947, 18), Range16), $clone(new Range16.ptr(2949, 2954, 1), Range16), $clone(new Range16.ptr(2958, 2960, 1), Range16), $clone(new Range16.ptr(2962, 2965, 1), Range16), $clone(new Range16.ptr(2969, 2970, 1), Range16), $clone(new Range16.ptr(2972, 2974, 2), Range16), $clone(new Range16.ptr(2975, 2979, 4), Range16), $clone(new Range16.ptr(2980, 2984, 4), Range16), $clone(new Range16.ptr(2985, 2986, 1), Range16), $clone(new Range16.ptr(2990, 3001, 1), Range16), $clone(new Range16.ptr(3024, 3077, 53), Range16), $clone(new Range16.ptr(3078, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3133, 3160, 27), Range16), $clone(new Range16.ptr(3161, 3162, 1), Range16), $clone(new Range16.ptr(3168, 3169, 1), Range16), $clone(new Range16.ptr(3200, 3205, 5), Range16), $clone(new Range16.ptr(3206, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3261, 3294, 33), Range16), $clone(new Range16.ptr(3296, 3297, 1), Range16), $clone(new Range16.ptr(3313, 3314, 1), Range16), $clone(new Range16.ptr(3332, 3340, 1), Range16), $clone(new Range16.ptr(3342, 3344, 1), Range16), $clone(new Range16.ptr(3346, 3386, 1), Range16), $clone(new Range16.ptr(3389, 3406, 17), Range16), $clone(new Range16.ptr(3412, 3414, 1), Range16), $clone(new Range16.ptr(3423, 3425, 1), Range16), $clone(new Range16.ptr(3450, 3455, 1), Range16), $clone(new Range16.ptr(3461, 3478, 1), Range16), $clone(new Range16.ptr(3482, 3505, 1), Range16), $clone(new Range16.ptr(3507, 3515, 1), Range16), $clone(new Range16.ptr(3517, 3520, 3), Range16), $clone(new Range16.ptr(3521, 3526, 1), Range16), $clone(new Range16.ptr(3585, 3632, 1), Range16), $clone(new Range16.ptr(3634, 3635, 1), Range16), $clone(new Range16.ptr(3648, 3654, 1), Range16), $clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3760, 1), Range16), $clone(new Range16.ptr(3762, 3763, 1), Range16), $clone(new Range16.ptr(3773, 3776, 3), Range16), $clone(new Range16.ptr(3777, 3780, 1), Range16), $clone(new Range16.ptr(3782, 3804, 22), Range16), $clone(new Range16.ptr(3805, 3807, 1), Range16), $clone(new Range16.ptr(3840, 3904, 64), Range16), $clone(new Range16.ptr(3905, 3911, 1), Range16), $clone(new Range16.ptr(3913, 3948, 1), Range16), $clone(new Range16.ptr(3976, 3980, 1), Range16), $clone(new Range16.ptr(4096, 4138, 1), Range16), $clone(new Range16.ptr(4159, 4176, 17), Range16), $clone(new Range16.ptr(4177, 4181, 1), Range16), $clone(new Range16.ptr(4186, 4189, 1), Range16), $clone(new Range16.ptr(4193, 4197, 4), Range16), $clone(new Range16.ptr(4198, 4206, 8), Range16), $clone(new Range16.ptr(4207, 4208, 1), Range16), $clone(new Range16.ptr(4213, 4225, 1), Range16), $clone(new Range16.ptr(4238, 4256, 18), Range16), $clone(new Range16.ptr(4257, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4348, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4992, 5007, 1), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(5121, 5740, 1), Range16), $clone(new Range16.ptr(5743, 5759, 1), Range16), $clone(new Range16.ptr(5761, 5786, 1), Range16), $clone(new Range16.ptr(5792, 5866, 1), Range16), $clone(new Range16.ptr(5873, 5880, 1), Range16), $clone(new Range16.ptr(5888, 5900, 1), Range16), $clone(new Range16.ptr(5902, 5905, 1), Range16), $clone(new Range16.ptr(5920, 5937, 1), Range16), $clone(new Range16.ptr(5952, 5969, 1), Range16), $clone(new Range16.ptr(5984, 5996, 1), Range16), $clone(new Range16.ptr(5998, 6000, 1), Range16), $clone(new Range16.ptr(6016, 6067, 1), Range16), $clone(new Range16.ptr(6103, 6108, 5), Range16), $clone(new Range16.ptr(6176, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6276, 1), Range16), $clone(new Range16.ptr(6279, 6312, 1), Range16), $clone(new Range16.ptr(6314, 6320, 6), Range16), $clone(new Range16.ptr(6321, 6389, 1), Range16), $clone(new Range16.ptr(6400, 6430, 1), Range16), $clone(new Range16.ptr(6480, 6509, 1), Range16), $clone(new Range16.ptr(6512, 6516, 1), Range16), $clone(new Range16.ptr(6528, 6571, 1), Range16), $clone(new Range16.ptr(6576, 6601, 1), Range16), $clone(new Range16.ptr(6656, 6678, 1), Range16), $clone(new Range16.ptr(6688, 6740, 1), Range16), $clone(new Range16.ptr(6823, 6917, 94), Range16), $clone(new Range16.ptr(6918, 6963, 1), Range16), $clone(new Range16.ptr(6981, 6987, 1), Range16), $clone(new Range16.ptr(7043, 7072, 1), Range16), $clone(new Range16.ptr(7086, 7087, 1), Range16), $clone(new Range16.ptr(7098, 7141, 1), Range16), $clone(new Range16.ptr(7168, 7203, 1), Range16), $clone(new Range16.ptr(7245, 7247, 1), Range16), $clone(new Range16.ptr(7258, 7293, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7401, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7414, 1), Range16), $clone(new Range16.ptr(7418, 7424, 6), Range16), $clone(new Range16.ptr(7425, 7615, 1), Range16), $clone(new Range16.ptr(7680, 7957, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7968, 8005, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8016, 8023, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8032, 8061, 1), Range16), $clone(new Range16.ptr(8064, 8116, 1), Range16), $clone(new Range16.ptr(8118, 8124, 1), Range16), $clone(new Range16.ptr(8126, 8130, 4), Range16), $clone(new Range16.ptr(8131, 8132, 1), Range16), $clone(new Range16.ptr(8134, 8140, 1), Range16), $clone(new Range16.ptr(8144, 8147, 1), Range16), $clone(new Range16.ptr(8150, 8155, 1), Range16), $clone(new Range16.ptr(8160, 8172, 1), Range16), $clone(new Range16.ptr(8178, 8180, 1), Range16), $clone(new Range16.ptr(8182, 8188, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(8450, 8455, 5), Range16), $clone(new Range16.ptr(8458, 8467, 1), Range16), $clone(new Range16.ptr(8469, 8473, 4), Range16), $clone(new Range16.ptr(8474, 8477, 1), Range16), $clone(new Range16.ptr(8484, 8490, 2), Range16), $clone(new Range16.ptr(8491, 8493, 1), Range16), $clone(new Range16.ptr(8495, 8505, 1), Range16), $clone(new Range16.ptr(8508, 8511, 1), Range16), $clone(new Range16.ptr(8517, 8521, 1), Range16), $clone(new Range16.ptr(8526, 8579, 53), Range16), $clone(new Range16.ptr(8580, 11264, 2684), Range16), $clone(new Range16.ptr(11265, 11310, 1), Range16), $clone(new Range16.ptr(11312, 11358, 1), Range16), $clone(new Range16.ptr(11360, 11492, 1), Range16), $clone(new Range16.ptr(11499, 11502, 1), Range16), $clone(new Range16.ptr(11506, 11507, 1), Range16), $clone(new Range16.ptr(11520, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(11568, 11623, 1), Range16), $clone(new Range16.ptr(11631, 11648, 17), Range16), $clone(new Range16.ptr(11649, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(11823, 12293, 470), Range16), $clone(new Range16.ptr(12294, 12337, 43), Range16), $clone(new Range16.ptr(12338, 12341, 1), Range16), $clone(new Range16.ptr(12347, 12348, 1), Range16), $clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12445, 12447, 1), Range16), $clone(new Range16.ptr(12449, 12538, 1), Range16), $clone(new Range16.ptr(12540, 12543, 1), Range16), $clone(new Range16.ptr(12549, 12591, 1), Range16), $clone(new Range16.ptr(12593, 12686, 1), Range16), $clone(new Range16.ptr(12704, 12735, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 40956, 1), Range16), $clone(new Range16.ptr(40960, 42124, 1), Range16), $clone(new Range16.ptr(42192, 42237, 1), Range16), $clone(new Range16.ptr(42240, 42508, 1), Range16), $clone(new Range16.ptr(42512, 42527, 1), Range16), $clone(new Range16.ptr(42538, 42539, 1), Range16), $clone(new Range16.ptr(42560, 42606, 1), Range16), $clone(new Range16.ptr(42623, 42653, 1), Range16), $clone(new Range16.ptr(42656, 42725, 1), Range16), $clone(new Range16.ptr(42775, 42783, 1), Range16), $clone(new Range16.ptr(42786, 42888, 1), Range16), $clone(new Range16.ptr(42891, 42943, 1), Range16), $clone(new Range16.ptr(42946, 42954, 1), Range16), $clone(new Range16.ptr(42997, 43009, 1), Range16), $clone(new Range16.ptr(43011, 43013, 1), Range16), $clone(new Range16.ptr(43015, 43018, 1), Range16), $clone(new Range16.ptr(43020, 43042, 1), Range16), $clone(new Range16.ptr(43072, 43123, 1), Range16), $clone(new Range16.ptr(43138, 43187, 1), Range16), $clone(new Range16.ptr(43250, 43255, 1), Range16), $clone(new Range16.ptr(43259, 43261, 2), Range16), $clone(new Range16.ptr(43262, 43274, 12), Range16), $clone(new Range16.ptr(43275, 43301, 1), Range16), $clone(new Range16.ptr(43312, 43334, 1), Range16), $clone(new Range16.ptr(43360, 43388, 1), Range16), $clone(new Range16.ptr(43396, 43442, 1), Range16), $clone(new Range16.ptr(43471, 43488, 17), Range16), $clone(new Range16.ptr(43489, 43492, 1), Range16), $clone(new Range16.ptr(43494, 43503, 1), Range16), $clone(new Range16.ptr(43514, 43518, 1), Range16), $clone(new Range16.ptr(43520, 43560, 1), Range16), $clone(new Range16.ptr(43584, 43586, 1), Range16), $clone(new Range16.ptr(43588, 43595, 1), Range16), $clone(new Range16.ptr(43616, 43638, 1), Range16), $clone(new Range16.ptr(43642, 43646, 4), Range16), $clone(new Range16.ptr(43647, 43695, 1), Range16), $clone(new Range16.ptr(43697, 43701, 4), Range16), $clone(new Range16.ptr(43702, 43705, 3), Range16), $clone(new Range16.ptr(43706, 43709, 1), Range16), $clone(new Range16.ptr(43712, 43714, 2), Range16), $clone(new Range16.ptr(43739, 43741, 1), Range16), $clone(new Range16.ptr(43744, 43754, 1), Range16), $clone(new Range16.ptr(43762, 43764, 1), Range16), $clone(new Range16.ptr(43777, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16), $clone(new Range16.ptr(43824, 43866, 1), Range16), $clone(new Range16.ptr(43868, 43881, 1), Range16), $clone(new Range16.ptr(43888, 44002, 1), Range16), $clone(new Range16.ptr(44032, 55203, 1), Range16), $clone(new Range16.ptr(55216, 55238, 1), Range16), $clone(new Range16.ptr(55243, 55291, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(64275, 64279, 1), Range16), $clone(new Range16.ptr(64285, 64287, 2), Range16), $clone(new Range16.ptr(64288, 64296, 1), Range16), $clone(new Range16.ptr(64298, 64310, 1), Range16), $clone(new Range16.ptr(64312, 64316, 1), Range16), $clone(new Range16.ptr(64318, 64320, 2), Range16), $clone(new Range16.ptr(64321, 64323, 2), Range16), $clone(new Range16.ptr(64324, 64326, 2), Range16), $clone(new Range16.ptr(64327, 64433, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64848, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(65008, 65019, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16), $clone(new Range16.ptr(65382, 65470, 1), Range16), $clone(new Range16.ptr(65474, 65479, 1), Range16), $clone(new Range16.ptr(65482, 65487, 1), Range16), $clone(new Range16.ptr(65490, 65495, 1), Range16), $clone(new Range16.ptr(65498, 65500, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65536, 65547, 1), Range32), $clone(new Range32.ptr(65549, 65574, 1), Range32), $clone(new Range32.ptr(65576, 65594, 1), Range32), $clone(new Range32.ptr(65596, 65597, 1), Range32), $clone(new Range32.ptr(65599, 65613, 1), Range32), $clone(new Range32.ptr(65616, 65629, 1), Range32), $clone(new Range32.ptr(65664, 65786, 1), Range32), $clone(new Range32.ptr(66176, 66204, 1), Range32), $clone(new Range32.ptr(66208, 66256, 1), Range32), $clone(new Range32.ptr(66304, 66335, 1), Range32), $clone(new Range32.ptr(66349, 66368, 1), Range32), $clone(new Range32.ptr(66370, 66377, 1), Range32), $clone(new Range32.ptr(66384, 66421, 1), Range32), $clone(new Range32.ptr(66432, 66461, 1), Range32), $clone(new Range32.ptr(66464, 66499, 1), Range32), $clone(new Range32.ptr(66504, 66511, 1), Range32), $clone(new Range32.ptr(66560, 66717, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(66816, 66855, 1), Range32), $clone(new Range32.ptr(66864, 66915, 1), Range32), $clone(new Range32.ptr(67072, 67382, 1), Range32), $clone(new Range32.ptr(67392, 67413, 1), Range32), $clone(new Range32.ptr(67424, 67431, 1), Range32), $clone(new Range32.ptr(67584, 67589, 1), Range32), $clone(new Range32.ptr(67592, 67594, 2), Range32), $clone(new Range32.ptr(67595, 67637, 1), Range32), $clone(new Range32.ptr(67639, 67640, 1), Range32), $clone(new Range32.ptr(67644, 67647, 3), Range32), $clone(new Range32.ptr(67648, 67669, 1), Range32), $clone(new Range32.ptr(67680, 67702, 1), Range32), $clone(new Range32.ptr(67712, 67742, 1), Range32), $clone(new Range32.ptr(67808, 67826, 1), Range32), $clone(new Range32.ptr(67828, 67829, 1), Range32), $clone(new Range32.ptr(67840, 67861, 1), Range32), $clone(new Range32.ptr(67872, 67897, 1), Range32), $clone(new Range32.ptr(67968, 68023, 1), Range32), $clone(new Range32.ptr(68030, 68031, 1), Range32), $clone(new Range32.ptr(68096, 68112, 16), Range32), $clone(new Range32.ptr(68113, 68115, 1), Range32), $clone(new Range32.ptr(68117, 68119, 1), Range32), $clone(new Range32.ptr(68121, 68149, 1), Range32), $clone(new Range32.ptr(68192, 68220, 1), Range32), $clone(new Range32.ptr(68224, 68252, 1), Range32), $clone(new Range32.ptr(68288, 68295, 1), Range32), $clone(new Range32.ptr(68297, 68324, 1), Range32), $clone(new Range32.ptr(68352, 68405, 1), Range32), $clone(new Range32.ptr(68416, 68437, 1), Range32), $clone(new Range32.ptr(68448, 68466, 1), Range32), $clone(new Range32.ptr(68480, 68497, 1), Range32), $clone(new Range32.ptr(68608, 68680, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(68864, 68899, 1), Range32), $clone(new Range32.ptr(69248, 69289, 1), Range32), $clone(new Range32.ptr(69296, 69297, 1), Range32), $clone(new Range32.ptr(69376, 69404, 1), Range32), $clone(new Range32.ptr(69415, 69424, 9), Range32), $clone(new Range32.ptr(69425, 69445, 1), Range32), $clone(new Range32.ptr(69552, 69572, 1), Range32), $clone(new Range32.ptr(69600, 69622, 1), Range32), $clone(new Range32.ptr(69635, 69687, 1), Range32), $clone(new Range32.ptr(69763, 69807, 1), Range32), $clone(new Range32.ptr(69840, 69864, 1), Range32), $clone(new Range32.ptr(69891, 69926, 1), Range32), $clone(new Range32.ptr(69956, 69959, 3), Range32), $clone(new Range32.ptr(69968, 70002, 1), Range32), $clone(new Range32.ptr(70006, 70019, 13), Range32), $clone(new Range32.ptr(70020, 70066, 1), Range32), $clone(new Range32.ptr(70081, 70084, 1), Range32), $clone(new Range32.ptr(70106, 70108, 2), Range32), $clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70187, 1), Range32), $clone(new Range32.ptr(70272, 70278, 1), Range32), $clone(new Range32.ptr(70280, 70282, 2), Range32), $clone(new Range32.ptr(70283, 70285, 1), Range32), $clone(new Range32.ptr(70287, 70301, 1), Range32), $clone(new Range32.ptr(70303, 70312, 1), Range32), $clone(new Range32.ptr(70320, 70366, 1), Range32), $clone(new Range32.ptr(70405, 70412, 1), Range32), $clone(new Range32.ptr(70415, 70416, 1), Range32), $clone(new Range32.ptr(70419, 70440, 1), Range32), $clone(new Range32.ptr(70442, 70448, 1), Range32), $clone(new Range32.ptr(70450, 70451, 1), Range32), $clone(new Range32.ptr(70453, 70457, 1), Range32), $clone(new Range32.ptr(70461, 70480, 19), Range32), $clone(new Range32.ptr(70493, 70497, 1), Range32), $clone(new Range32.ptr(70656, 70708, 1), Range32), $clone(new Range32.ptr(70727, 70730, 1), Range32), $clone(new Range32.ptr(70751, 70753, 1), Range32), $clone(new Range32.ptr(70784, 70831, 1), Range32), $clone(new Range32.ptr(70852, 70853, 1), Range32), $clone(new Range32.ptr(70855, 71040, 185), Range32), $clone(new Range32.ptr(71041, 71086, 1), Range32), $clone(new Range32.ptr(71128, 71131, 1), Range32), $clone(new Range32.ptr(71168, 71215, 1), Range32), $clone(new Range32.ptr(71236, 71296, 60), Range32), $clone(new Range32.ptr(71297, 71338, 1), Range32), $clone(new Range32.ptr(71352, 71424, 72), Range32), $clone(new Range32.ptr(71425, 71450, 1), Range32), $clone(new Range32.ptr(71680, 71723, 1), Range32), $clone(new Range32.ptr(71840, 71903, 1), Range32), $clone(new Range32.ptr(71935, 71942, 1), Range32), $clone(new Range32.ptr(71945, 71948, 3), Range32), $clone(new Range32.ptr(71949, 71955, 1), Range32), $clone(new Range32.ptr(71957, 71958, 1), Range32), $clone(new Range32.ptr(71960, 71983, 1), Range32), $clone(new Range32.ptr(71999, 72001, 2), Range32), $clone(new Range32.ptr(72096, 72103, 1), Range32), $clone(new Range32.ptr(72106, 72144, 1), Range32), $clone(new Range32.ptr(72161, 72163, 2), Range32), $clone(new Range32.ptr(72192, 72203, 11), Range32), $clone(new Range32.ptr(72204, 72242, 1), Range32), $clone(new Range32.ptr(72250, 72272, 22), Range32), $clone(new Range32.ptr(72284, 72329, 1), Range32), $clone(new Range32.ptr(72349, 72384, 35), Range32), $clone(new Range32.ptr(72385, 72440, 1), Range32), $clone(new Range32.ptr(72704, 72712, 1), Range32), $clone(new Range32.ptr(72714, 72750, 1), Range32), $clone(new Range32.ptr(72768, 72818, 50), Range32), $clone(new Range32.ptr(72819, 72847, 1), Range32), $clone(new Range32.ptr(72960, 72966, 1), Range32), $clone(new Range32.ptr(72968, 72969, 1), Range32), $clone(new Range32.ptr(72971, 73008, 1), Range32), $clone(new Range32.ptr(73030, 73056, 26), Range32), $clone(new Range32.ptr(73057, 73061, 1), Range32), $clone(new Range32.ptr(73063, 73064, 1), Range32), $clone(new Range32.ptr(73066, 73097, 1), Range32), $clone(new Range32.ptr(73112, 73440, 328), Range32), $clone(new Range32.ptr(73441, 73458, 1), Range32), $clone(new Range32.ptr(73648, 73728, 80), Range32), $clone(new Range32.ptr(73729, 74649, 1), Range32), $clone(new Range32.ptr(74880, 75075, 1), Range32), $clone(new Range32.ptr(77824, 78894, 1), Range32), $clone(new Range32.ptr(82944, 83526, 1), Range32), $clone(new Range32.ptr(92160, 92728, 1), Range32), $clone(new Range32.ptr(92736, 92766, 1), Range32), $clone(new Range32.ptr(92880, 92909, 1), Range32), $clone(new Range32.ptr(92928, 92975, 1), Range32), $clone(new Range32.ptr(92992, 92995, 1), Range32), $clone(new Range32.ptr(93027, 93047, 1), Range32), $clone(new Range32.ptr(93053, 93071, 1), Range32), $clone(new Range32.ptr(93760, 93823, 1), Range32), $clone(new Range32.ptr(93952, 94026, 1), Range32), $clone(new Range32.ptr(94032, 94099, 67), Range32), $clone(new Range32.ptr(94100, 94111, 1), Range32), $clone(new Range32.ptr(94176, 94177, 1), Range32), $clone(new Range32.ptr(94179, 94208, 29), Range32), $clone(new Range32.ptr(94209, 100343, 1), Range32), $clone(new Range32.ptr(100352, 101589, 1), Range32), $clone(new Range32.ptr(101632, 101640, 1), Range32), $clone(new Range32.ptr(110592, 110878, 1), Range32), $clone(new Range32.ptr(110928, 110930, 1), Range32), $clone(new Range32.ptr(110948, 110951, 1), Range32), $clone(new Range32.ptr(110960, 111355, 1), Range32), $clone(new Range32.ptr(113664, 113770, 1), Range32), $clone(new Range32.ptr(113776, 113788, 1), Range32), $clone(new Range32.ptr(113792, 113800, 1), Range32), $clone(new Range32.ptr(113808, 113817, 1), Range32), $clone(new Range32.ptr(119808, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119964, 1), Range32), $clone(new Range32.ptr(119966, 119967, 1), Range32), $clone(new Range32.ptr(119970, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120094, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120146, 120485, 1), Range32), $clone(new Range32.ptr(120488, 120512, 1), Range32), $clone(new Range32.ptr(120514, 120538, 1), Range32), $clone(new Range32.ptr(120540, 120570, 1), Range32), $clone(new Range32.ptr(120572, 120596, 1), Range32), $clone(new Range32.ptr(120598, 120628, 1), Range32), $clone(new Range32.ptr(120630, 120654, 1), Range32), $clone(new Range32.ptr(120656, 120686, 1), Range32), $clone(new Range32.ptr(120688, 120712, 1), Range32), $clone(new Range32.ptr(120714, 120744, 1), Range32), $clone(new Range32.ptr(120746, 120770, 1), Range32), $clone(new Range32.ptr(120772, 120779, 1), Range32), $clone(new Range32.ptr(123136, 123180, 1), Range32), $clone(new Range32.ptr(123191, 123197, 1), Range32), $clone(new Range32.ptr(123214, 123584, 370), Range32), $clone(new Range32.ptr(123585, 123627, 1), Range32), $clone(new Range32.ptr(124928, 125124, 1), Range32), $clone(new Range32.ptr(125184, 125251, 1), Range32), $clone(new Range32.ptr(125259, 126464, 1205), Range32), $clone(new Range32.ptr(126465, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(131072, 173789, 1), Range32), $clone(new Range32.ptr(173824, 177972, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32)]), 6); + _Ll = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(181, 223, 42), Range16), $clone(new Range16.ptr(224, 246, 1), Range16), $clone(new Range16.ptr(248, 255, 1), Range16), $clone(new Range16.ptr(257, 311, 2), Range16), $clone(new Range16.ptr(312, 328, 2), Range16), $clone(new Range16.ptr(329, 375, 2), Range16), $clone(new Range16.ptr(378, 382, 2), Range16), $clone(new Range16.ptr(383, 384, 1), Range16), $clone(new Range16.ptr(387, 389, 2), Range16), $clone(new Range16.ptr(392, 396, 4), Range16), $clone(new Range16.ptr(397, 402, 5), Range16), $clone(new Range16.ptr(405, 409, 4), Range16), $clone(new Range16.ptr(410, 411, 1), Range16), $clone(new Range16.ptr(414, 417, 3), Range16), $clone(new Range16.ptr(419, 421, 2), Range16), $clone(new Range16.ptr(424, 426, 2), Range16), $clone(new Range16.ptr(427, 429, 2), Range16), $clone(new Range16.ptr(432, 436, 4), Range16), $clone(new Range16.ptr(438, 441, 3), Range16), $clone(new Range16.ptr(442, 445, 3), Range16), $clone(new Range16.ptr(446, 447, 1), Range16), $clone(new Range16.ptr(454, 460, 3), Range16), $clone(new Range16.ptr(462, 476, 2), Range16), $clone(new Range16.ptr(477, 495, 2), Range16), $clone(new Range16.ptr(496, 499, 3), Range16), $clone(new Range16.ptr(501, 505, 4), Range16), $clone(new Range16.ptr(507, 563, 2), Range16), $clone(new Range16.ptr(564, 569, 1), Range16), $clone(new Range16.ptr(572, 575, 3), Range16), $clone(new Range16.ptr(576, 578, 2), Range16), $clone(new Range16.ptr(583, 591, 2), Range16), $clone(new Range16.ptr(592, 659, 1), Range16), $clone(new Range16.ptr(661, 687, 1), Range16), $clone(new Range16.ptr(881, 883, 2), Range16), $clone(new Range16.ptr(887, 891, 4), Range16), $clone(new Range16.ptr(892, 893, 1), Range16), $clone(new Range16.ptr(912, 940, 28), Range16), $clone(new Range16.ptr(941, 974, 1), Range16), $clone(new Range16.ptr(976, 977, 1), Range16), $clone(new Range16.ptr(981, 983, 1), Range16), $clone(new Range16.ptr(985, 1007, 2), Range16), $clone(new Range16.ptr(1008, 1011, 1), Range16), $clone(new Range16.ptr(1013, 1019, 3), Range16), $clone(new Range16.ptr(1020, 1072, 52), Range16), $clone(new Range16.ptr(1073, 1119, 1), Range16), $clone(new Range16.ptr(1121, 1153, 2), Range16), $clone(new Range16.ptr(1163, 1215, 2), Range16), $clone(new Range16.ptr(1218, 1230, 2), Range16), $clone(new Range16.ptr(1231, 1327, 2), Range16), $clone(new Range16.ptr(1376, 1416, 1), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4349, 4351, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7424, 7467, 1), Range16), $clone(new Range16.ptr(7531, 7543, 1), Range16), $clone(new Range16.ptr(7545, 7578, 1), Range16), $clone(new Range16.ptr(7681, 7829, 2), Range16), $clone(new Range16.ptr(7830, 7837, 1), Range16), $clone(new Range16.ptr(7839, 7935, 2), Range16), $clone(new Range16.ptr(7936, 7943, 1), Range16), $clone(new Range16.ptr(7952, 7957, 1), Range16), $clone(new Range16.ptr(7968, 7975, 1), Range16), $clone(new Range16.ptr(7984, 7991, 1), Range16), $clone(new Range16.ptr(8000, 8005, 1), Range16), $clone(new Range16.ptr(8016, 8023, 1), Range16), $clone(new Range16.ptr(8032, 8039, 1), Range16), $clone(new Range16.ptr(8048, 8061, 1), Range16), $clone(new Range16.ptr(8064, 8071, 1), Range16), $clone(new Range16.ptr(8080, 8087, 1), Range16), $clone(new Range16.ptr(8096, 8103, 1), Range16), $clone(new Range16.ptr(8112, 8116, 1), Range16), $clone(new Range16.ptr(8118, 8119, 1), Range16), $clone(new Range16.ptr(8126, 8130, 4), Range16), $clone(new Range16.ptr(8131, 8132, 1), Range16), $clone(new Range16.ptr(8134, 8135, 1), Range16), $clone(new Range16.ptr(8144, 8147, 1), Range16), $clone(new Range16.ptr(8150, 8151, 1), Range16), $clone(new Range16.ptr(8160, 8167, 1), Range16), $clone(new Range16.ptr(8178, 8180, 1), Range16), $clone(new Range16.ptr(8182, 8183, 1), Range16), $clone(new Range16.ptr(8458, 8462, 4), Range16), $clone(new Range16.ptr(8463, 8467, 4), Range16), $clone(new Range16.ptr(8495, 8505, 5), Range16), $clone(new Range16.ptr(8508, 8509, 1), Range16), $clone(new Range16.ptr(8518, 8521, 1), Range16), $clone(new Range16.ptr(8526, 8580, 54), Range16), $clone(new Range16.ptr(11312, 11358, 1), Range16), $clone(new Range16.ptr(11361, 11365, 4), Range16), $clone(new Range16.ptr(11366, 11372, 2), Range16), $clone(new Range16.ptr(11377, 11379, 2), Range16), $clone(new Range16.ptr(11380, 11382, 2), Range16), $clone(new Range16.ptr(11383, 11387, 1), Range16), $clone(new Range16.ptr(11393, 11491, 2), Range16), $clone(new Range16.ptr(11492, 11500, 8), Range16), $clone(new Range16.ptr(11502, 11507, 5), Range16), $clone(new Range16.ptr(11520, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(42561, 42605, 2), Range16), $clone(new Range16.ptr(42625, 42651, 2), Range16), $clone(new Range16.ptr(42787, 42799, 2), Range16), $clone(new Range16.ptr(42800, 42801, 1), Range16), $clone(new Range16.ptr(42803, 42865, 2), Range16), $clone(new Range16.ptr(42866, 42872, 1), Range16), $clone(new Range16.ptr(42874, 42876, 2), Range16), $clone(new Range16.ptr(42879, 42887, 2), Range16), $clone(new Range16.ptr(42892, 42894, 2), Range16), $clone(new Range16.ptr(42897, 42899, 2), Range16), $clone(new Range16.ptr(42900, 42901, 1), Range16), $clone(new Range16.ptr(42903, 42921, 2), Range16), $clone(new Range16.ptr(42927, 42933, 6), Range16), $clone(new Range16.ptr(42935, 42943, 2), Range16), $clone(new Range16.ptr(42947, 42952, 5), Range16), $clone(new Range16.ptr(42954, 42998, 44), Range16), $clone(new Range16.ptr(43002, 43824, 822), Range16), $clone(new Range16.ptr(43825, 43866, 1), Range16), $clone(new Range16.ptr(43872, 43880, 1), Range16), $clone(new Range16.ptr(43888, 43967, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(64275, 64279, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66600, 66639, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(71872, 71903, 1), Range32), $clone(new Range32.ptr(93792, 93823, 1), Range32), $clone(new Range32.ptr(119834, 119859, 1), Range32), $clone(new Range32.ptr(119886, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119911, 1), Range32), $clone(new Range32.ptr(119938, 119963, 1), Range32), $clone(new Range32.ptr(119990, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120015, 1), Range32), $clone(new Range32.ptr(120042, 120067, 1), Range32), $clone(new Range32.ptr(120094, 120119, 1), Range32), $clone(new Range32.ptr(120146, 120171, 1), Range32), $clone(new Range32.ptr(120198, 120223, 1), Range32), $clone(new Range32.ptr(120250, 120275, 1), Range32), $clone(new Range32.ptr(120302, 120327, 1), Range32), $clone(new Range32.ptr(120354, 120379, 1), Range32), $clone(new Range32.ptr(120406, 120431, 1), Range32), $clone(new Range32.ptr(120458, 120485, 1), Range32), $clone(new Range32.ptr(120514, 120538, 1), Range32), $clone(new Range32.ptr(120540, 120545, 1), Range32), $clone(new Range32.ptr(120572, 120596, 1), Range32), $clone(new Range32.ptr(120598, 120603, 1), Range32), $clone(new Range32.ptr(120630, 120654, 1), Range32), $clone(new Range32.ptr(120656, 120661, 1), Range32), $clone(new Range32.ptr(120688, 120712, 1), Range32), $clone(new Range32.ptr(120714, 120719, 1), Range32), $clone(new Range32.ptr(120746, 120770, 1), Range32), $clone(new Range32.ptr(120772, 120777, 1), Range32), $clone(new Range32.ptr(120779, 125218, 4439), Range32), $clone(new Range32.ptr(125219, 125251, 1), Range32)]), 4); + _Lm = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(688, 705, 1), Range16), $clone(new Range16.ptr(710, 721, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(748, 750, 2), Range16), $clone(new Range16.ptr(884, 890, 6), Range16), $clone(new Range16.ptr(1369, 1600, 231), Range16), $clone(new Range16.ptr(1765, 1766, 1), Range16), $clone(new Range16.ptr(2036, 2037, 1), Range16), $clone(new Range16.ptr(2042, 2074, 32), Range16), $clone(new Range16.ptr(2084, 2088, 4), Range16), $clone(new Range16.ptr(2417, 3654, 1237), Range16), $clone(new Range16.ptr(3782, 4348, 566), Range16), $clone(new Range16.ptr(6103, 6211, 108), Range16), $clone(new Range16.ptr(6823, 7288, 465), Range16), $clone(new Range16.ptr(7289, 7293, 1), Range16), $clone(new Range16.ptr(7468, 7530, 1), Range16), $clone(new Range16.ptr(7544, 7579, 35), Range16), $clone(new Range16.ptr(7580, 7615, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(11388, 11389, 1), Range16), $clone(new Range16.ptr(11631, 11823, 192), Range16), $clone(new Range16.ptr(12293, 12337, 44), Range16), $clone(new Range16.ptr(12338, 12341, 1), Range16), $clone(new Range16.ptr(12347, 12445, 98), Range16), $clone(new Range16.ptr(12446, 12540, 94), Range16), $clone(new Range16.ptr(12541, 12542, 1), Range16), $clone(new Range16.ptr(40981, 42232, 1251), Range16), $clone(new Range16.ptr(42233, 42237, 1), Range16), $clone(new Range16.ptr(42508, 42623, 115), Range16), $clone(new Range16.ptr(42652, 42653, 1), Range16), $clone(new Range16.ptr(42775, 42783, 1), Range16), $clone(new Range16.ptr(42864, 42888, 24), Range16), $clone(new Range16.ptr(43000, 43001, 1), Range16), $clone(new Range16.ptr(43471, 43494, 23), Range16), $clone(new Range16.ptr(43632, 43741, 109), Range16), $clone(new Range16.ptr(43763, 43764, 1), Range16), $clone(new Range16.ptr(43868, 43871, 1), Range16), $clone(new Range16.ptr(43881, 65392, 21511), Range16), $clone(new Range16.ptr(65438, 65439, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(92992, 92995, 1), Range32), $clone(new Range32.ptr(94099, 94111, 1), Range32), $clone(new Range32.ptr(94176, 94177, 1), Range32), $clone(new Range32.ptr(94179, 123191, 29012), Range32), $clone(new Range32.ptr(123192, 123197, 1), Range32), $clone(new Range32.ptr(125259, 125259, 1), Range32)]), 0); + _Lo = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(170, 186, 16), Range16), $clone(new Range16.ptr(443, 448, 5), Range16), $clone(new Range16.ptr(449, 451, 1), Range16), $clone(new Range16.ptr(660, 1488, 828), Range16), $clone(new Range16.ptr(1489, 1514, 1), Range16), $clone(new Range16.ptr(1519, 1522, 1), Range16), $clone(new Range16.ptr(1568, 1599, 1), Range16), $clone(new Range16.ptr(1601, 1610, 1), Range16), $clone(new Range16.ptr(1646, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1747, 1), Range16), $clone(new Range16.ptr(1749, 1774, 25), Range16), $clone(new Range16.ptr(1775, 1786, 11), Range16), $clone(new Range16.ptr(1787, 1788, 1), Range16), $clone(new Range16.ptr(1791, 1808, 17), Range16), $clone(new Range16.ptr(1810, 1839, 1), Range16), $clone(new Range16.ptr(1869, 1957, 1), Range16), $clone(new Range16.ptr(1969, 1994, 25), Range16), $clone(new Range16.ptr(1995, 2026, 1), Range16), $clone(new Range16.ptr(2048, 2069, 1), Range16), $clone(new Range16.ptr(2112, 2136, 1), Range16), $clone(new Range16.ptr(2144, 2154, 1), Range16), $clone(new Range16.ptr(2208, 2228, 1), Range16), $clone(new Range16.ptr(2230, 2247, 1), Range16), $clone(new Range16.ptr(2308, 2361, 1), Range16), $clone(new Range16.ptr(2365, 2384, 19), Range16), $clone(new Range16.ptr(2392, 2401, 1), Range16), $clone(new Range16.ptr(2418, 2432, 1), Range16), $clone(new Range16.ptr(2437, 2444, 1), Range16), $clone(new Range16.ptr(2447, 2448, 1), Range16), $clone(new Range16.ptr(2451, 2472, 1), Range16), $clone(new Range16.ptr(2474, 2480, 1), Range16), $clone(new Range16.ptr(2482, 2486, 4), Range16), $clone(new Range16.ptr(2487, 2489, 1), Range16), $clone(new Range16.ptr(2493, 2510, 17), Range16), $clone(new Range16.ptr(2524, 2525, 1), Range16), $clone(new Range16.ptr(2527, 2529, 1), Range16), $clone(new Range16.ptr(2544, 2545, 1), Range16), $clone(new Range16.ptr(2556, 2565, 9), Range16), $clone(new Range16.ptr(2566, 2570, 1), Range16), $clone(new Range16.ptr(2575, 2576, 1), Range16), $clone(new Range16.ptr(2579, 2600, 1), Range16), $clone(new Range16.ptr(2602, 2608, 1), Range16), $clone(new Range16.ptr(2610, 2611, 1), Range16), $clone(new Range16.ptr(2613, 2614, 1), Range16), $clone(new Range16.ptr(2616, 2617, 1), Range16), $clone(new Range16.ptr(2649, 2652, 1), Range16), $clone(new Range16.ptr(2654, 2674, 20), Range16), $clone(new Range16.ptr(2675, 2676, 1), Range16), $clone(new Range16.ptr(2693, 2701, 1), Range16), $clone(new Range16.ptr(2703, 2705, 1), Range16), $clone(new Range16.ptr(2707, 2728, 1), Range16), $clone(new Range16.ptr(2730, 2736, 1), Range16), $clone(new Range16.ptr(2738, 2739, 1), Range16), $clone(new Range16.ptr(2741, 2745, 1), Range16), $clone(new Range16.ptr(2749, 2768, 19), Range16), $clone(new Range16.ptr(2784, 2785, 1), Range16), $clone(new Range16.ptr(2809, 2821, 12), Range16), $clone(new Range16.ptr(2822, 2828, 1), Range16), $clone(new Range16.ptr(2831, 2832, 1), Range16), $clone(new Range16.ptr(2835, 2856, 1), Range16), $clone(new Range16.ptr(2858, 2864, 1), Range16), $clone(new Range16.ptr(2866, 2867, 1), Range16), $clone(new Range16.ptr(2869, 2873, 1), Range16), $clone(new Range16.ptr(2877, 2908, 31), Range16), $clone(new Range16.ptr(2909, 2911, 2), Range16), $clone(new Range16.ptr(2912, 2913, 1), Range16), $clone(new Range16.ptr(2929, 2947, 18), Range16), $clone(new Range16.ptr(2949, 2954, 1), Range16), $clone(new Range16.ptr(2958, 2960, 1), Range16), $clone(new Range16.ptr(2962, 2965, 1), Range16), $clone(new Range16.ptr(2969, 2970, 1), Range16), $clone(new Range16.ptr(2972, 2974, 2), Range16), $clone(new Range16.ptr(2975, 2979, 4), Range16), $clone(new Range16.ptr(2980, 2984, 4), Range16), $clone(new Range16.ptr(2985, 2986, 1), Range16), $clone(new Range16.ptr(2990, 3001, 1), Range16), $clone(new Range16.ptr(3024, 3077, 53), Range16), $clone(new Range16.ptr(3078, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3133, 3160, 27), Range16), $clone(new Range16.ptr(3161, 3162, 1), Range16), $clone(new Range16.ptr(3168, 3169, 1), Range16), $clone(new Range16.ptr(3200, 3205, 5), Range16), $clone(new Range16.ptr(3206, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3261, 3294, 33), Range16), $clone(new Range16.ptr(3296, 3297, 1), Range16), $clone(new Range16.ptr(3313, 3314, 1), Range16), $clone(new Range16.ptr(3332, 3340, 1), Range16), $clone(new Range16.ptr(3342, 3344, 1), Range16), $clone(new Range16.ptr(3346, 3386, 1), Range16), $clone(new Range16.ptr(3389, 3406, 17), Range16), $clone(new Range16.ptr(3412, 3414, 1), Range16), $clone(new Range16.ptr(3423, 3425, 1), Range16), $clone(new Range16.ptr(3450, 3455, 1), Range16), $clone(new Range16.ptr(3461, 3478, 1), Range16), $clone(new Range16.ptr(3482, 3505, 1), Range16), $clone(new Range16.ptr(3507, 3515, 1), Range16), $clone(new Range16.ptr(3517, 3520, 3), Range16), $clone(new Range16.ptr(3521, 3526, 1), Range16), $clone(new Range16.ptr(3585, 3632, 1), Range16), $clone(new Range16.ptr(3634, 3635, 1), Range16), $clone(new Range16.ptr(3648, 3653, 1), Range16), $clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3760, 1), Range16), $clone(new Range16.ptr(3762, 3763, 1), Range16), $clone(new Range16.ptr(3773, 3776, 3), Range16), $clone(new Range16.ptr(3777, 3780, 1), Range16), $clone(new Range16.ptr(3804, 3807, 1), Range16), $clone(new Range16.ptr(3840, 3904, 64), Range16), $clone(new Range16.ptr(3905, 3911, 1), Range16), $clone(new Range16.ptr(3913, 3948, 1), Range16), $clone(new Range16.ptr(3976, 3980, 1), Range16), $clone(new Range16.ptr(4096, 4138, 1), Range16), $clone(new Range16.ptr(4159, 4176, 17), Range16), $clone(new Range16.ptr(4177, 4181, 1), Range16), $clone(new Range16.ptr(4186, 4189, 1), Range16), $clone(new Range16.ptr(4193, 4197, 4), Range16), $clone(new Range16.ptr(4198, 4206, 8), Range16), $clone(new Range16.ptr(4207, 4208, 1), Range16), $clone(new Range16.ptr(4213, 4225, 1), Range16), $clone(new Range16.ptr(4238, 4352, 114), Range16), $clone(new Range16.ptr(4353, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4992, 5007, 1), Range16), $clone(new Range16.ptr(5121, 5740, 1), Range16), $clone(new Range16.ptr(5743, 5759, 1), Range16), $clone(new Range16.ptr(5761, 5786, 1), Range16), $clone(new Range16.ptr(5792, 5866, 1), Range16), $clone(new Range16.ptr(5873, 5880, 1), Range16), $clone(new Range16.ptr(5888, 5900, 1), Range16), $clone(new Range16.ptr(5902, 5905, 1), Range16), $clone(new Range16.ptr(5920, 5937, 1), Range16), $clone(new Range16.ptr(5952, 5969, 1), Range16), $clone(new Range16.ptr(5984, 5996, 1), Range16), $clone(new Range16.ptr(5998, 6000, 1), Range16), $clone(new Range16.ptr(6016, 6067, 1), Range16), $clone(new Range16.ptr(6108, 6176, 68), Range16), $clone(new Range16.ptr(6177, 6210, 1), Range16), $clone(new Range16.ptr(6212, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6276, 1), Range16), $clone(new Range16.ptr(6279, 6312, 1), Range16), $clone(new Range16.ptr(6314, 6320, 6), Range16), $clone(new Range16.ptr(6321, 6389, 1), Range16), $clone(new Range16.ptr(6400, 6430, 1), Range16), $clone(new Range16.ptr(6480, 6509, 1), Range16), $clone(new Range16.ptr(6512, 6516, 1), Range16), $clone(new Range16.ptr(6528, 6571, 1), Range16), $clone(new Range16.ptr(6576, 6601, 1), Range16), $clone(new Range16.ptr(6656, 6678, 1), Range16), $clone(new Range16.ptr(6688, 6740, 1), Range16), $clone(new Range16.ptr(6917, 6963, 1), Range16), $clone(new Range16.ptr(6981, 6987, 1), Range16), $clone(new Range16.ptr(7043, 7072, 1), Range16), $clone(new Range16.ptr(7086, 7087, 1), Range16), $clone(new Range16.ptr(7098, 7141, 1), Range16), $clone(new Range16.ptr(7168, 7203, 1), Range16), $clone(new Range16.ptr(7245, 7247, 1), Range16), $clone(new Range16.ptr(7258, 7287, 1), Range16), $clone(new Range16.ptr(7401, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7414, 1), Range16), $clone(new Range16.ptr(7418, 8501, 1083), Range16), $clone(new Range16.ptr(8502, 8504, 1), Range16), $clone(new Range16.ptr(11568, 11623, 1), Range16), $clone(new Range16.ptr(11648, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(12294, 12348, 54), Range16), $clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12447, 12449, 2), Range16), $clone(new Range16.ptr(12450, 12538, 1), Range16), $clone(new Range16.ptr(12543, 12549, 6), Range16), $clone(new Range16.ptr(12550, 12591, 1), Range16), $clone(new Range16.ptr(12593, 12686, 1), Range16), $clone(new Range16.ptr(12704, 12735, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 40956, 1), Range16), $clone(new Range16.ptr(40960, 40980, 1), Range16), $clone(new Range16.ptr(40982, 42124, 1), Range16), $clone(new Range16.ptr(42192, 42231, 1), Range16), $clone(new Range16.ptr(42240, 42507, 1), Range16), $clone(new Range16.ptr(42512, 42527, 1), Range16), $clone(new Range16.ptr(42538, 42539, 1), Range16), $clone(new Range16.ptr(42606, 42656, 50), Range16), $clone(new Range16.ptr(42657, 42725, 1), Range16), $clone(new Range16.ptr(42895, 42999, 104), Range16), $clone(new Range16.ptr(43003, 43009, 1), Range16), $clone(new Range16.ptr(43011, 43013, 1), Range16), $clone(new Range16.ptr(43015, 43018, 1), Range16), $clone(new Range16.ptr(43020, 43042, 1), Range16), $clone(new Range16.ptr(43072, 43123, 1), Range16), $clone(new Range16.ptr(43138, 43187, 1), Range16), $clone(new Range16.ptr(43250, 43255, 1), Range16), $clone(new Range16.ptr(43259, 43261, 2), Range16), $clone(new Range16.ptr(43262, 43274, 12), Range16), $clone(new Range16.ptr(43275, 43301, 1), Range16), $clone(new Range16.ptr(43312, 43334, 1), Range16), $clone(new Range16.ptr(43360, 43388, 1), Range16), $clone(new Range16.ptr(43396, 43442, 1), Range16), $clone(new Range16.ptr(43488, 43492, 1), Range16), $clone(new Range16.ptr(43495, 43503, 1), Range16), $clone(new Range16.ptr(43514, 43518, 1), Range16), $clone(new Range16.ptr(43520, 43560, 1), Range16), $clone(new Range16.ptr(43584, 43586, 1), Range16), $clone(new Range16.ptr(43588, 43595, 1), Range16), $clone(new Range16.ptr(43616, 43631, 1), Range16), $clone(new Range16.ptr(43633, 43638, 1), Range16), $clone(new Range16.ptr(43642, 43646, 4), Range16), $clone(new Range16.ptr(43647, 43695, 1), Range16), $clone(new Range16.ptr(43697, 43701, 4), Range16), $clone(new Range16.ptr(43702, 43705, 3), Range16), $clone(new Range16.ptr(43706, 43709, 1), Range16), $clone(new Range16.ptr(43712, 43714, 2), Range16), $clone(new Range16.ptr(43739, 43740, 1), Range16), $clone(new Range16.ptr(43744, 43754, 1), Range16), $clone(new Range16.ptr(43762, 43777, 15), Range16), $clone(new Range16.ptr(43778, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16), $clone(new Range16.ptr(43968, 44002, 1), Range16), $clone(new Range16.ptr(44032, 55203, 1), Range16), $clone(new Range16.ptr(55216, 55238, 1), Range16), $clone(new Range16.ptr(55243, 55291, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16), $clone(new Range16.ptr(64285, 64287, 2), Range16), $clone(new Range16.ptr(64288, 64296, 1), Range16), $clone(new Range16.ptr(64298, 64310, 1), Range16), $clone(new Range16.ptr(64312, 64316, 1), Range16), $clone(new Range16.ptr(64318, 64320, 2), Range16), $clone(new Range16.ptr(64321, 64323, 2), Range16), $clone(new Range16.ptr(64324, 64326, 2), Range16), $clone(new Range16.ptr(64327, 64433, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64848, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(65008, 65019, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16), $clone(new Range16.ptr(65382, 65391, 1), Range16), $clone(new Range16.ptr(65393, 65437, 1), Range16), $clone(new Range16.ptr(65440, 65470, 1), Range16), $clone(new Range16.ptr(65474, 65479, 1), Range16), $clone(new Range16.ptr(65482, 65487, 1), Range16), $clone(new Range16.ptr(65490, 65495, 1), Range16), $clone(new Range16.ptr(65498, 65500, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65536, 65547, 1), Range32), $clone(new Range32.ptr(65549, 65574, 1), Range32), $clone(new Range32.ptr(65576, 65594, 1), Range32), $clone(new Range32.ptr(65596, 65597, 1), Range32), $clone(new Range32.ptr(65599, 65613, 1), Range32), $clone(new Range32.ptr(65616, 65629, 1), Range32), $clone(new Range32.ptr(65664, 65786, 1), Range32), $clone(new Range32.ptr(66176, 66204, 1), Range32), $clone(new Range32.ptr(66208, 66256, 1), Range32), $clone(new Range32.ptr(66304, 66335, 1), Range32), $clone(new Range32.ptr(66349, 66368, 1), Range32), $clone(new Range32.ptr(66370, 66377, 1), Range32), $clone(new Range32.ptr(66384, 66421, 1), Range32), $clone(new Range32.ptr(66432, 66461, 1), Range32), $clone(new Range32.ptr(66464, 66499, 1), Range32), $clone(new Range32.ptr(66504, 66511, 1), Range32), $clone(new Range32.ptr(66640, 66717, 1), Range32), $clone(new Range32.ptr(66816, 66855, 1), Range32), $clone(new Range32.ptr(66864, 66915, 1), Range32), $clone(new Range32.ptr(67072, 67382, 1), Range32), $clone(new Range32.ptr(67392, 67413, 1), Range32), $clone(new Range32.ptr(67424, 67431, 1), Range32), $clone(new Range32.ptr(67584, 67589, 1), Range32), $clone(new Range32.ptr(67592, 67594, 2), Range32), $clone(new Range32.ptr(67595, 67637, 1), Range32), $clone(new Range32.ptr(67639, 67640, 1), Range32), $clone(new Range32.ptr(67644, 67647, 3), Range32), $clone(new Range32.ptr(67648, 67669, 1), Range32), $clone(new Range32.ptr(67680, 67702, 1), Range32), $clone(new Range32.ptr(67712, 67742, 1), Range32), $clone(new Range32.ptr(67808, 67826, 1), Range32), $clone(new Range32.ptr(67828, 67829, 1), Range32), $clone(new Range32.ptr(67840, 67861, 1), Range32), $clone(new Range32.ptr(67872, 67897, 1), Range32), $clone(new Range32.ptr(67968, 68023, 1), Range32), $clone(new Range32.ptr(68030, 68031, 1), Range32), $clone(new Range32.ptr(68096, 68112, 16), Range32), $clone(new Range32.ptr(68113, 68115, 1), Range32), $clone(new Range32.ptr(68117, 68119, 1), Range32), $clone(new Range32.ptr(68121, 68149, 1), Range32), $clone(new Range32.ptr(68192, 68220, 1), Range32), $clone(new Range32.ptr(68224, 68252, 1), Range32), $clone(new Range32.ptr(68288, 68295, 1), Range32), $clone(new Range32.ptr(68297, 68324, 1), Range32), $clone(new Range32.ptr(68352, 68405, 1), Range32), $clone(new Range32.ptr(68416, 68437, 1), Range32), $clone(new Range32.ptr(68448, 68466, 1), Range32), $clone(new Range32.ptr(68480, 68497, 1), Range32), $clone(new Range32.ptr(68608, 68680, 1), Range32), $clone(new Range32.ptr(68864, 68899, 1), Range32), $clone(new Range32.ptr(69248, 69289, 1), Range32), $clone(new Range32.ptr(69296, 69297, 1), Range32), $clone(new Range32.ptr(69376, 69404, 1), Range32), $clone(new Range32.ptr(69415, 69424, 9), Range32), $clone(new Range32.ptr(69425, 69445, 1), Range32), $clone(new Range32.ptr(69552, 69572, 1), Range32), $clone(new Range32.ptr(69600, 69622, 1), Range32), $clone(new Range32.ptr(69635, 69687, 1), Range32), $clone(new Range32.ptr(69763, 69807, 1), Range32), $clone(new Range32.ptr(69840, 69864, 1), Range32), $clone(new Range32.ptr(69891, 69926, 1), Range32), $clone(new Range32.ptr(69956, 69959, 3), Range32), $clone(new Range32.ptr(69968, 70002, 1), Range32), $clone(new Range32.ptr(70006, 70019, 13), Range32), $clone(new Range32.ptr(70020, 70066, 1), Range32), $clone(new Range32.ptr(70081, 70084, 1), Range32), $clone(new Range32.ptr(70106, 70108, 2), Range32), $clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70187, 1), Range32), $clone(new Range32.ptr(70272, 70278, 1), Range32), $clone(new Range32.ptr(70280, 70282, 2), Range32), $clone(new Range32.ptr(70283, 70285, 1), Range32), $clone(new Range32.ptr(70287, 70301, 1), Range32), $clone(new Range32.ptr(70303, 70312, 1), Range32), $clone(new Range32.ptr(70320, 70366, 1), Range32), $clone(new Range32.ptr(70405, 70412, 1), Range32), $clone(new Range32.ptr(70415, 70416, 1), Range32), $clone(new Range32.ptr(70419, 70440, 1), Range32), $clone(new Range32.ptr(70442, 70448, 1), Range32), $clone(new Range32.ptr(70450, 70451, 1), Range32), $clone(new Range32.ptr(70453, 70457, 1), Range32), $clone(new Range32.ptr(70461, 70480, 19), Range32), $clone(new Range32.ptr(70493, 70497, 1), Range32), $clone(new Range32.ptr(70656, 70708, 1), Range32), $clone(new Range32.ptr(70727, 70730, 1), Range32), $clone(new Range32.ptr(70751, 70753, 1), Range32), $clone(new Range32.ptr(70784, 70831, 1), Range32), $clone(new Range32.ptr(70852, 70853, 1), Range32), $clone(new Range32.ptr(70855, 71040, 185), Range32), $clone(new Range32.ptr(71041, 71086, 1), Range32), $clone(new Range32.ptr(71128, 71131, 1), Range32), $clone(new Range32.ptr(71168, 71215, 1), Range32), $clone(new Range32.ptr(71236, 71296, 60), Range32), $clone(new Range32.ptr(71297, 71338, 1), Range32), $clone(new Range32.ptr(71352, 71424, 72), Range32), $clone(new Range32.ptr(71425, 71450, 1), Range32), $clone(new Range32.ptr(71680, 71723, 1), Range32), $clone(new Range32.ptr(71935, 71942, 1), Range32), $clone(new Range32.ptr(71945, 71948, 3), Range32), $clone(new Range32.ptr(71949, 71955, 1), Range32), $clone(new Range32.ptr(71957, 71958, 1), Range32), $clone(new Range32.ptr(71960, 71983, 1), Range32), $clone(new Range32.ptr(71999, 72001, 2), Range32), $clone(new Range32.ptr(72096, 72103, 1), Range32), $clone(new Range32.ptr(72106, 72144, 1), Range32), $clone(new Range32.ptr(72161, 72163, 2), Range32), $clone(new Range32.ptr(72192, 72203, 11), Range32), $clone(new Range32.ptr(72204, 72242, 1), Range32), $clone(new Range32.ptr(72250, 72272, 22), Range32), $clone(new Range32.ptr(72284, 72329, 1), Range32), $clone(new Range32.ptr(72349, 72384, 35), Range32), $clone(new Range32.ptr(72385, 72440, 1), Range32), $clone(new Range32.ptr(72704, 72712, 1), Range32), $clone(new Range32.ptr(72714, 72750, 1), Range32), $clone(new Range32.ptr(72768, 72818, 50), Range32), $clone(new Range32.ptr(72819, 72847, 1), Range32), $clone(new Range32.ptr(72960, 72966, 1), Range32), $clone(new Range32.ptr(72968, 72969, 1), Range32), $clone(new Range32.ptr(72971, 73008, 1), Range32), $clone(new Range32.ptr(73030, 73056, 26), Range32), $clone(new Range32.ptr(73057, 73061, 1), Range32), $clone(new Range32.ptr(73063, 73064, 1), Range32), $clone(new Range32.ptr(73066, 73097, 1), Range32), $clone(new Range32.ptr(73112, 73440, 328), Range32), $clone(new Range32.ptr(73441, 73458, 1), Range32), $clone(new Range32.ptr(73648, 73728, 80), Range32), $clone(new Range32.ptr(73729, 74649, 1), Range32), $clone(new Range32.ptr(74880, 75075, 1), Range32), $clone(new Range32.ptr(77824, 78894, 1), Range32), $clone(new Range32.ptr(82944, 83526, 1), Range32), $clone(new Range32.ptr(92160, 92728, 1), Range32), $clone(new Range32.ptr(92736, 92766, 1), Range32), $clone(new Range32.ptr(92880, 92909, 1), Range32), $clone(new Range32.ptr(92928, 92975, 1), Range32), $clone(new Range32.ptr(93027, 93047, 1), Range32), $clone(new Range32.ptr(93053, 93071, 1), Range32), $clone(new Range32.ptr(93952, 94026, 1), Range32), $clone(new Range32.ptr(94032, 94208, 176), Range32), $clone(new Range32.ptr(94209, 100343, 1), Range32), $clone(new Range32.ptr(100352, 101589, 1), Range32), $clone(new Range32.ptr(101632, 101640, 1), Range32), $clone(new Range32.ptr(110592, 110878, 1), Range32), $clone(new Range32.ptr(110928, 110930, 1), Range32), $clone(new Range32.ptr(110948, 110951, 1), Range32), $clone(new Range32.ptr(110960, 111355, 1), Range32), $clone(new Range32.ptr(113664, 113770, 1), Range32), $clone(new Range32.ptr(113776, 113788, 1), Range32), $clone(new Range32.ptr(113792, 113800, 1), Range32), $clone(new Range32.ptr(113808, 113817, 1), Range32), $clone(new Range32.ptr(123136, 123180, 1), Range32), $clone(new Range32.ptr(123214, 123584, 370), Range32), $clone(new Range32.ptr(123585, 123627, 1), Range32), $clone(new Range32.ptr(124928, 125124, 1), Range32), $clone(new Range32.ptr(126464, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(131072, 173789, 1), Range32), $clone(new Range32.ptr(173824, 177972, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32)]), 1); + _Lt = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(453, 459, 3), Range16), $clone(new Range16.ptr(498, 8072, 7574), Range16), $clone(new Range16.ptr(8073, 8079, 1), Range16), $clone(new Range16.ptr(8088, 8095, 1), Range16), $clone(new Range16.ptr(8104, 8111, 1), Range16), $clone(new Range16.ptr(8124, 8140, 16), Range16), $clone(new Range16.ptr(8188, 8188, 1), Range16)]), sliceType$1.nil, 0); + _Lu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 222, 1), Range16), $clone(new Range16.ptr(256, 310, 2), Range16), $clone(new Range16.ptr(313, 327, 2), Range16), $clone(new Range16.ptr(330, 376, 2), Range16), $clone(new Range16.ptr(377, 381, 2), Range16), $clone(new Range16.ptr(385, 386, 1), Range16), $clone(new Range16.ptr(388, 390, 2), Range16), $clone(new Range16.ptr(391, 393, 2), Range16), $clone(new Range16.ptr(394, 395, 1), Range16), $clone(new Range16.ptr(398, 401, 1), Range16), $clone(new Range16.ptr(403, 404, 1), Range16), $clone(new Range16.ptr(406, 408, 1), Range16), $clone(new Range16.ptr(412, 413, 1), Range16), $clone(new Range16.ptr(415, 416, 1), Range16), $clone(new Range16.ptr(418, 422, 2), Range16), $clone(new Range16.ptr(423, 425, 2), Range16), $clone(new Range16.ptr(428, 430, 2), Range16), $clone(new Range16.ptr(431, 433, 2), Range16), $clone(new Range16.ptr(434, 435, 1), Range16), $clone(new Range16.ptr(437, 439, 2), Range16), $clone(new Range16.ptr(440, 444, 4), Range16), $clone(new Range16.ptr(452, 461, 3), Range16), $clone(new Range16.ptr(463, 475, 2), Range16), $clone(new Range16.ptr(478, 494, 2), Range16), $clone(new Range16.ptr(497, 500, 3), Range16), $clone(new Range16.ptr(502, 504, 1), Range16), $clone(new Range16.ptr(506, 562, 2), Range16), $clone(new Range16.ptr(570, 571, 1), Range16), $clone(new Range16.ptr(573, 574, 1), Range16), $clone(new Range16.ptr(577, 579, 2), Range16), $clone(new Range16.ptr(580, 582, 1), Range16), $clone(new Range16.ptr(584, 590, 2), Range16), $clone(new Range16.ptr(880, 882, 2), Range16), $clone(new Range16.ptr(886, 895, 9), Range16), $clone(new Range16.ptr(902, 904, 2), Range16), $clone(new Range16.ptr(905, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 913, 2), Range16), $clone(new Range16.ptr(914, 929, 1), Range16), $clone(new Range16.ptr(931, 939, 1), Range16), $clone(new Range16.ptr(975, 978, 3), Range16), $clone(new Range16.ptr(979, 980, 1), Range16), $clone(new Range16.ptr(984, 1006, 2), Range16), $clone(new Range16.ptr(1012, 1015, 3), Range16), $clone(new Range16.ptr(1017, 1018, 1), Range16), $clone(new Range16.ptr(1021, 1071, 1), Range16), $clone(new Range16.ptr(1120, 1152, 2), Range16), $clone(new Range16.ptr(1162, 1216, 2), Range16), $clone(new Range16.ptr(1217, 1229, 2), Range16), $clone(new Range16.ptr(1232, 1326, 2), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(4256, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7680, 7828, 2), Range16), $clone(new Range16.ptr(7838, 7934, 2), Range16), $clone(new Range16.ptr(7944, 7951, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7976, 7983, 1), Range16), $clone(new Range16.ptr(7992, 7999, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8040, 8047, 1), Range16), $clone(new Range16.ptr(8120, 8123, 1), Range16), $clone(new Range16.ptr(8136, 8139, 1), Range16), $clone(new Range16.ptr(8152, 8155, 1), Range16), $clone(new Range16.ptr(8168, 8172, 1), Range16), $clone(new Range16.ptr(8184, 8187, 1), Range16), $clone(new Range16.ptr(8450, 8455, 5), Range16), $clone(new Range16.ptr(8459, 8461, 1), Range16), $clone(new Range16.ptr(8464, 8466, 1), Range16), $clone(new Range16.ptr(8469, 8473, 4), Range16), $clone(new Range16.ptr(8474, 8477, 1), Range16), $clone(new Range16.ptr(8484, 8490, 2), Range16), $clone(new Range16.ptr(8491, 8493, 1), Range16), $clone(new Range16.ptr(8496, 8499, 1), Range16), $clone(new Range16.ptr(8510, 8511, 1), Range16), $clone(new Range16.ptr(8517, 8579, 62), Range16), $clone(new Range16.ptr(11264, 11310, 1), Range16), $clone(new Range16.ptr(11360, 11362, 2), Range16), $clone(new Range16.ptr(11363, 11364, 1), Range16), $clone(new Range16.ptr(11367, 11373, 2), Range16), $clone(new Range16.ptr(11374, 11376, 1), Range16), $clone(new Range16.ptr(11378, 11381, 3), Range16), $clone(new Range16.ptr(11390, 11392, 1), Range16), $clone(new Range16.ptr(11394, 11490, 2), Range16), $clone(new Range16.ptr(11499, 11501, 2), Range16), $clone(new Range16.ptr(11506, 42560, 31054), Range16), $clone(new Range16.ptr(42562, 42604, 2), Range16), $clone(new Range16.ptr(42624, 42650, 2), Range16), $clone(new Range16.ptr(42786, 42798, 2), Range16), $clone(new Range16.ptr(42802, 42862, 2), Range16), $clone(new Range16.ptr(42873, 42877, 2), Range16), $clone(new Range16.ptr(42878, 42886, 2), Range16), $clone(new Range16.ptr(42891, 42893, 2), Range16), $clone(new Range16.ptr(42896, 42898, 2), Range16), $clone(new Range16.ptr(42902, 42922, 2), Range16), $clone(new Range16.ptr(42923, 42926, 1), Range16), $clone(new Range16.ptr(42928, 42932, 1), Range16), $clone(new Range16.ptr(42934, 42942, 2), Range16), $clone(new Range16.ptr(42946, 42948, 2), Range16), $clone(new Range16.ptr(42949, 42951, 1), Range16), $clone(new Range16.ptr(42953, 42997, 44), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66560, 66599, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(71840, 71871, 1), Range32), $clone(new Range32.ptr(93760, 93791, 1), Range32), $clone(new Range32.ptr(119808, 119833, 1), Range32), $clone(new Range32.ptr(119860, 119885, 1), Range32), $clone(new Range32.ptr(119912, 119937, 1), Range32), $clone(new Range32.ptr(119964, 119966, 2), Range32), $clone(new Range32.ptr(119967, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119989, 1), Range32), $clone(new Range32.ptr(120016, 120041, 1), Range32), $clone(new Range32.ptr(120068, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120120, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120172, 120197, 1), Range32), $clone(new Range32.ptr(120224, 120249, 1), Range32), $clone(new Range32.ptr(120276, 120301, 1), Range32), $clone(new Range32.ptr(120328, 120353, 1), Range32), $clone(new Range32.ptr(120380, 120405, 1), Range32), $clone(new Range32.ptr(120432, 120457, 1), Range32), $clone(new Range32.ptr(120488, 120512, 1), Range32), $clone(new Range32.ptr(120546, 120570, 1), Range32), $clone(new Range32.ptr(120604, 120628, 1), Range32), $clone(new Range32.ptr(120662, 120686, 1), Range32), $clone(new Range32.ptr(120720, 120744, 1), Range32), $clone(new Range32.ptr(120778, 125184, 4406), Range32), $clone(new Range32.ptr(125185, 125217, 1), Range32)]), 3); + _M = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1155, 1161, 1), Range16), $clone(new Range16.ptr(1425, 1469, 1), Range16), $clone(new Range16.ptr(1471, 1473, 2), Range16), $clone(new Range16.ptr(1474, 1476, 2), Range16), $clone(new Range16.ptr(1477, 1479, 2), Range16), $clone(new Range16.ptr(1552, 1562, 1), Range16), $clone(new Range16.ptr(1611, 1631, 1), Range16), $clone(new Range16.ptr(1648, 1750, 102), Range16), $clone(new Range16.ptr(1751, 1756, 1), Range16), $clone(new Range16.ptr(1759, 1764, 1), Range16), $clone(new Range16.ptr(1767, 1768, 1), Range16), $clone(new Range16.ptr(1770, 1773, 1), Range16), $clone(new Range16.ptr(1809, 1840, 31), Range16), $clone(new Range16.ptr(1841, 1866, 1), Range16), $clone(new Range16.ptr(1958, 1968, 1), Range16), $clone(new Range16.ptr(2027, 2035, 1), Range16), $clone(new Range16.ptr(2045, 2070, 25), Range16), $clone(new Range16.ptr(2071, 2073, 1), Range16), $clone(new Range16.ptr(2075, 2083, 1), Range16), $clone(new Range16.ptr(2085, 2087, 1), Range16), $clone(new Range16.ptr(2089, 2093, 1), Range16), $clone(new Range16.ptr(2137, 2139, 1), Range16), $clone(new Range16.ptr(2259, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2307, 1), Range16), $clone(new Range16.ptr(2362, 2364, 1), Range16), $clone(new Range16.ptr(2366, 2383, 1), Range16), $clone(new Range16.ptr(2385, 2391, 1), Range16), $clone(new Range16.ptr(2402, 2403, 1), Range16), $clone(new Range16.ptr(2433, 2435, 1), Range16), $clone(new Range16.ptr(2492, 2494, 2), Range16), $clone(new Range16.ptr(2495, 2500, 1), Range16), $clone(new Range16.ptr(2503, 2504, 1), Range16), $clone(new Range16.ptr(2507, 2509, 1), Range16), $clone(new Range16.ptr(2519, 2530, 11), Range16), $clone(new Range16.ptr(2531, 2558, 27), Range16), $clone(new Range16.ptr(2561, 2563, 1), Range16), $clone(new Range16.ptr(2620, 2622, 2), Range16), $clone(new Range16.ptr(2623, 2626, 1), Range16), $clone(new Range16.ptr(2631, 2632, 1), Range16), $clone(new Range16.ptr(2635, 2637, 1), Range16), $clone(new Range16.ptr(2641, 2672, 31), Range16), $clone(new Range16.ptr(2673, 2677, 4), Range16), $clone(new Range16.ptr(2689, 2691, 1), Range16), $clone(new Range16.ptr(2748, 2750, 2), Range16), $clone(new Range16.ptr(2751, 2757, 1), Range16), $clone(new Range16.ptr(2759, 2761, 1), Range16), $clone(new Range16.ptr(2763, 2765, 1), Range16), $clone(new Range16.ptr(2786, 2787, 1), Range16), $clone(new Range16.ptr(2810, 2815, 1), Range16), $clone(new Range16.ptr(2817, 2819, 1), Range16), $clone(new Range16.ptr(2876, 2878, 2), Range16), $clone(new Range16.ptr(2879, 2884, 1), Range16), $clone(new Range16.ptr(2887, 2888, 1), Range16), $clone(new Range16.ptr(2891, 2893, 1), Range16), $clone(new Range16.ptr(2901, 2903, 1), Range16), $clone(new Range16.ptr(2914, 2915, 1), Range16), $clone(new Range16.ptr(2946, 3006, 60), Range16), $clone(new Range16.ptr(3007, 3010, 1), Range16), $clone(new Range16.ptr(3014, 3016, 1), Range16), $clone(new Range16.ptr(3018, 3021, 1), Range16), $clone(new Range16.ptr(3031, 3072, 41), Range16), $clone(new Range16.ptr(3073, 3076, 1), Range16), $clone(new Range16.ptr(3134, 3140, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3170, 3171, 1), Range16), $clone(new Range16.ptr(3201, 3203, 1), Range16), $clone(new Range16.ptr(3260, 3262, 2), Range16), $clone(new Range16.ptr(3263, 3268, 1), Range16), $clone(new Range16.ptr(3270, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3277, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3298, 3299, 1), Range16), $clone(new Range16.ptr(3328, 3331, 1), Range16), $clone(new Range16.ptr(3387, 3388, 1), Range16), $clone(new Range16.ptr(3390, 3396, 1), Range16), $clone(new Range16.ptr(3398, 3400, 1), Range16), $clone(new Range16.ptr(3402, 3405, 1), Range16), $clone(new Range16.ptr(3415, 3426, 11), Range16), $clone(new Range16.ptr(3427, 3457, 30), Range16), $clone(new Range16.ptr(3458, 3459, 1), Range16), $clone(new Range16.ptr(3530, 3535, 5), Range16), $clone(new Range16.ptr(3536, 3540, 1), Range16), $clone(new Range16.ptr(3542, 3544, 2), Range16), $clone(new Range16.ptr(3545, 3551, 1), Range16), $clone(new Range16.ptr(3570, 3571, 1), Range16), $clone(new Range16.ptr(3633, 3636, 3), Range16), $clone(new Range16.ptr(3637, 3642, 1), Range16), $clone(new Range16.ptr(3655, 3662, 1), Range16), $clone(new Range16.ptr(3761, 3764, 3), Range16), $clone(new Range16.ptr(3765, 3772, 1), Range16), $clone(new Range16.ptr(3784, 3789, 1), Range16), $clone(new Range16.ptr(3864, 3865, 1), Range16), $clone(new Range16.ptr(3893, 3897, 2), Range16), $clone(new Range16.ptr(3902, 3903, 1), Range16), $clone(new Range16.ptr(3953, 3972, 1), Range16), $clone(new Range16.ptr(3974, 3975, 1), Range16), $clone(new Range16.ptr(3981, 3991, 1), Range16), $clone(new Range16.ptr(3993, 4028, 1), Range16), $clone(new Range16.ptr(4038, 4139, 101), Range16), $clone(new Range16.ptr(4140, 4158, 1), Range16), $clone(new Range16.ptr(4182, 4185, 1), Range16), $clone(new Range16.ptr(4190, 4192, 1), Range16), $clone(new Range16.ptr(4194, 4196, 1), Range16), $clone(new Range16.ptr(4199, 4205, 1), Range16), $clone(new Range16.ptr(4209, 4212, 1), Range16), $clone(new Range16.ptr(4226, 4237, 1), Range16), $clone(new Range16.ptr(4239, 4250, 11), Range16), $clone(new Range16.ptr(4251, 4253, 1), Range16), $clone(new Range16.ptr(4957, 4959, 1), Range16), $clone(new Range16.ptr(5906, 5908, 1), Range16), $clone(new Range16.ptr(5938, 5940, 1), Range16), $clone(new Range16.ptr(5970, 5971, 1), Range16), $clone(new Range16.ptr(6002, 6003, 1), Range16), $clone(new Range16.ptr(6068, 6099, 1), Range16), $clone(new Range16.ptr(6109, 6155, 46), Range16), $clone(new Range16.ptr(6156, 6157, 1), Range16), $clone(new Range16.ptr(6277, 6278, 1), Range16), $clone(new Range16.ptr(6313, 6432, 119), Range16), $clone(new Range16.ptr(6433, 6443, 1), Range16), $clone(new Range16.ptr(6448, 6459, 1), Range16), $clone(new Range16.ptr(6679, 6683, 1), Range16), $clone(new Range16.ptr(6741, 6750, 1), Range16), $clone(new Range16.ptr(6752, 6780, 1), Range16), $clone(new Range16.ptr(6783, 6832, 49), Range16), $clone(new Range16.ptr(6833, 6848, 1), Range16), $clone(new Range16.ptr(6912, 6916, 1), Range16), $clone(new Range16.ptr(6964, 6980, 1), Range16), $clone(new Range16.ptr(7019, 7027, 1), Range16), $clone(new Range16.ptr(7040, 7042, 1), Range16), $clone(new Range16.ptr(7073, 7085, 1), Range16), $clone(new Range16.ptr(7142, 7155, 1), Range16), $clone(new Range16.ptr(7204, 7223, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7415, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7673, 1), Range16), $clone(new Range16.ptr(7675, 7679, 1), Range16), $clone(new Range16.ptr(8400, 8432, 1), Range16), $clone(new Range16.ptr(11503, 11505, 1), Range16), $clone(new Range16.ptr(11647, 11744, 97), Range16), $clone(new Range16.ptr(11745, 11775, 1), Range16), $clone(new Range16.ptr(12330, 12335, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(42607, 42610, 1), Range16), $clone(new Range16.ptr(42612, 42621, 1), Range16), $clone(new Range16.ptr(42654, 42655, 1), Range16), $clone(new Range16.ptr(42736, 42737, 1), Range16), $clone(new Range16.ptr(43010, 43014, 4), Range16), $clone(new Range16.ptr(43019, 43043, 24), Range16), $clone(new Range16.ptr(43044, 43047, 1), Range16), $clone(new Range16.ptr(43052, 43136, 84), Range16), $clone(new Range16.ptr(43137, 43188, 51), Range16), $clone(new Range16.ptr(43189, 43205, 1), Range16), $clone(new Range16.ptr(43232, 43249, 1), Range16), $clone(new Range16.ptr(43263, 43302, 39), Range16), $clone(new Range16.ptr(43303, 43309, 1), Range16), $clone(new Range16.ptr(43335, 43347, 1), Range16), $clone(new Range16.ptr(43392, 43395, 1), Range16), $clone(new Range16.ptr(43443, 43456, 1), Range16), $clone(new Range16.ptr(43493, 43561, 68), Range16), $clone(new Range16.ptr(43562, 43574, 1), Range16), $clone(new Range16.ptr(43587, 43596, 9), Range16), $clone(new Range16.ptr(43597, 43643, 46), Range16), $clone(new Range16.ptr(43644, 43645, 1), Range16), $clone(new Range16.ptr(43696, 43698, 2), Range16), $clone(new Range16.ptr(43699, 43700, 1), Range16), $clone(new Range16.ptr(43703, 43704, 1), Range16), $clone(new Range16.ptr(43710, 43711, 1), Range16), $clone(new Range16.ptr(43713, 43755, 42), Range16), $clone(new Range16.ptr(43756, 43759, 1), Range16), $clone(new Range16.ptr(43765, 43766, 1), Range16), $clone(new Range16.ptr(44003, 44010, 1), Range16), $clone(new Range16.ptr(44012, 44013, 1), Range16), $clone(new Range16.ptr(64286, 65024, 738), Range16), $clone(new Range16.ptr(65025, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65071, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(66422, 66426, 1), Range32), $clone(new Range32.ptr(68097, 68099, 1), Range32), $clone(new Range32.ptr(68101, 68102, 1), Range32), $clone(new Range32.ptr(68108, 68111, 1), Range32), $clone(new Range32.ptr(68152, 68154, 1), Range32), $clone(new Range32.ptr(68159, 68325, 166), Range32), $clone(new Range32.ptr(68326, 68900, 574), Range32), $clone(new Range32.ptr(68901, 68903, 1), Range32), $clone(new Range32.ptr(69291, 69292, 1), Range32), $clone(new Range32.ptr(69446, 69456, 1), Range32), $clone(new Range32.ptr(69632, 69634, 1), Range32), $clone(new Range32.ptr(69688, 69702, 1), Range32), $clone(new Range32.ptr(69759, 69762, 1), Range32), $clone(new Range32.ptr(69808, 69818, 1), Range32), $clone(new Range32.ptr(69888, 69890, 1), Range32), $clone(new Range32.ptr(69927, 69940, 1), Range32), $clone(new Range32.ptr(69957, 69958, 1), Range32), $clone(new Range32.ptr(70003, 70016, 13), Range32), $clone(new Range32.ptr(70017, 70018, 1), Range32), $clone(new Range32.ptr(70067, 70080, 1), Range32), $clone(new Range32.ptr(70089, 70092, 1), Range32), $clone(new Range32.ptr(70094, 70095, 1), Range32), $clone(new Range32.ptr(70188, 70199, 1), Range32), $clone(new Range32.ptr(70206, 70367, 161), Range32), $clone(new Range32.ptr(70368, 70378, 1), Range32), $clone(new Range32.ptr(70400, 70403, 1), Range32), $clone(new Range32.ptr(70459, 70460, 1), Range32), $clone(new Range32.ptr(70462, 70468, 1), Range32), $clone(new Range32.ptr(70471, 70472, 1), Range32), $clone(new Range32.ptr(70475, 70477, 1), Range32), $clone(new Range32.ptr(70487, 70498, 11), Range32), $clone(new Range32.ptr(70499, 70502, 3), Range32), $clone(new Range32.ptr(70503, 70508, 1), Range32), $clone(new Range32.ptr(70512, 70516, 1), Range32), $clone(new Range32.ptr(70709, 70726, 1), Range32), $clone(new Range32.ptr(70750, 70832, 82), Range32), $clone(new Range32.ptr(70833, 70851, 1), Range32), $clone(new Range32.ptr(71087, 71093, 1), Range32), $clone(new Range32.ptr(71096, 71104, 1), Range32), $clone(new Range32.ptr(71132, 71133, 1), Range32), $clone(new Range32.ptr(71216, 71232, 1), Range32), $clone(new Range32.ptr(71339, 71351, 1), Range32), $clone(new Range32.ptr(71453, 71467, 1), Range32), $clone(new Range32.ptr(71724, 71738, 1), Range32), $clone(new Range32.ptr(71984, 71989, 1), Range32), $clone(new Range32.ptr(71991, 71992, 1), Range32), $clone(new Range32.ptr(71995, 71998, 1), Range32), $clone(new Range32.ptr(72000, 72002, 2), Range32), $clone(new Range32.ptr(72003, 72145, 142), Range32), $clone(new Range32.ptr(72146, 72151, 1), Range32), $clone(new Range32.ptr(72154, 72160, 1), Range32), $clone(new Range32.ptr(72164, 72193, 29), Range32), $clone(new Range32.ptr(72194, 72202, 1), Range32), $clone(new Range32.ptr(72243, 72249, 1), Range32), $clone(new Range32.ptr(72251, 72254, 1), Range32), $clone(new Range32.ptr(72263, 72273, 10), Range32), $clone(new Range32.ptr(72274, 72283, 1), Range32), $clone(new Range32.ptr(72330, 72345, 1), Range32), $clone(new Range32.ptr(72751, 72758, 1), Range32), $clone(new Range32.ptr(72760, 72767, 1), Range32), $clone(new Range32.ptr(72850, 72871, 1), Range32), $clone(new Range32.ptr(72873, 72886, 1), Range32), $clone(new Range32.ptr(73009, 73014, 1), Range32), $clone(new Range32.ptr(73018, 73020, 2), Range32), $clone(new Range32.ptr(73021, 73023, 2), Range32), $clone(new Range32.ptr(73024, 73029, 1), Range32), $clone(new Range32.ptr(73031, 73098, 67), Range32), $clone(new Range32.ptr(73099, 73102, 1), Range32), $clone(new Range32.ptr(73104, 73105, 1), Range32), $clone(new Range32.ptr(73107, 73111, 1), Range32), $clone(new Range32.ptr(73459, 73462, 1), Range32), $clone(new Range32.ptr(92912, 92916, 1), Range32), $clone(new Range32.ptr(92976, 92982, 1), Range32), $clone(new Range32.ptr(94031, 94033, 2), Range32), $clone(new Range32.ptr(94034, 94087, 1), Range32), $clone(new Range32.ptr(94095, 94098, 1), Range32), $clone(new Range32.ptr(94180, 94192, 12), Range32), $clone(new Range32.ptr(94193, 113821, 19628), Range32), $clone(new Range32.ptr(113822, 119141, 5319), Range32), $clone(new Range32.ptr(119142, 119145, 1), Range32), $clone(new Range32.ptr(119149, 119154, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(119362, 119364, 1), Range32), $clone(new Range32.ptr(121344, 121398, 1), Range32), $clone(new Range32.ptr(121403, 121452, 1), Range32), $clone(new Range32.ptr(121461, 121476, 15), Range32), $clone(new Range32.ptr(121499, 121503, 1), Range32), $clone(new Range32.ptr(121505, 121519, 1), Range32), $clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32), $clone(new Range32.ptr(123184, 123190, 1), Range32), $clone(new Range32.ptr(123628, 123631, 1), Range32), $clone(new Range32.ptr(125136, 125142, 1), Range32), $clone(new Range32.ptr(125252, 125258, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); + _Mc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2307, 2363, 56), Range16), $clone(new Range16.ptr(2366, 2368, 1), Range16), $clone(new Range16.ptr(2377, 2380, 1), Range16), $clone(new Range16.ptr(2382, 2383, 1), Range16), $clone(new Range16.ptr(2434, 2435, 1), Range16), $clone(new Range16.ptr(2494, 2496, 1), Range16), $clone(new Range16.ptr(2503, 2504, 1), Range16), $clone(new Range16.ptr(2507, 2508, 1), Range16), $clone(new Range16.ptr(2519, 2563, 44), Range16), $clone(new Range16.ptr(2622, 2624, 1), Range16), $clone(new Range16.ptr(2691, 2750, 59), Range16), $clone(new Range16.ptr(2751, 2752, 1), Range16), $clone(new Range16.ptr(2761, 2763, 2), Range16), $clone(new Range16.ptr(2764, 2818, 54), Range16), $clone(new Range16.ptr(2819, 2878, 59), Range16), $clone(new Range16.ptr(2880, 2887, 7), Range16), $clone(new Range16.ptr(2888, 2891, 3), Range16), $clone(new Range16.ptr(2892, 2903, 11), Range16), $clone(new Range16.ptr(3006, 3007, 1), Range16), $clone(new Range16.ptr(3009, 3010, 1), Range16), $clone(new Range16.ptr(3014, 3016, 1), Range16), $clone(new Range16.ptr(3018, 3020, 1), Range16), $clone(new Range16.ptr(3031, 3073, 42), Range16), $clone(new Range16.ptr(3074, 3075, 1), Range16), $clone(new Range16.ptr(3137, 3140, 1), Range16), $clone(new Range16.ptr(3202, 3203, 1), Range16), $clone(new Range16.ptr(3262, 3264, 2), Range16), $clone(new Range16.ptr(3265, 3268, 1), Range16), $clone(new Range16.ptr(3271, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3275, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3330, 3331, 1), Range16), $clone(new Range16.ptr(3390, 3392, 1), Range16), $clone(new Range16.ptr(3398, 3400, 1), Range16), $clone(new Range16.ptr(3402, 3404, 1), Range16), $clone(new Range16.ptr(3415, 3458, 43), Range16), $clone(new Range16.ptr(3459, 3535, 76), Range16), $clone(new Range16.ptr(3536, 3537, 1), Range16), $clone(new Range16.ptr(3544, 3551, 1), Range16), $clone(new Range16.ptr(3570, 3571, 1), Range16), $clone(new Range16.ptr(3902, 3903, 1), Range16), $clone(new Range16.ptr(3967, 4139, 172), Range16), $clone(new Range16.ptr(4140, 4145, 5), Range16), $clone(new Range16.ptr(4152, 4155, 3), Range16), $clone(new Range16.ptr(4156, 4182, 26), Range16), $clone(new Range16.ptr(4183, 4194, 11), Range16), $clone(new Range16.ptr(4195, 4196, 1), Range16), $clone(new Range16.ptr(4199, 4205, 1), Range16), $clone(new Range16.ptr(4227, 4228, 1), Range16), $clone(new Range16.ptr(4231, 4236, 1), Range16), $clone(new Range16.ptr(4239, 4250, 11), Range16), $clone(new Range16.ptr(4251, 4252, 1), Range16), $clone(new Range16.ptr(6070, 6078, 8), Range16), $clone(new Range16.ptr(6079, 6085, 1), Range16), $clone(new Range16.ptr(6087, 6088, 1), Range16), $clone(new Range16.ptr(6435, 6438, 1), Range16), $clone(new Range16.ptr(6441, 6443, 1), Range16), $clone(new Range16.ptr(6448, 6449, 1), Range16), $clone(new Range16.ptr(6451, 6456, 1), Range16), $clone(new Range16.ptr(6681, 6682, 1), Range16), $clone(new Range16.ptr(6741, 6743, 2), Range16), $clone(new Range16.ptr(6753, 6755, 2), Range16), $clone(new Range16.ptr(6756, 6765, 9), Range16), $clone(new Range16.ptr(6766, 6770, 1), Range16), $clone(new Range16.ptr(6916, 6965, 49), Range16), $clone(new Range16.ptr(6971, 6973, 2), Range16), $clone(new Range16.ptr(6974, 6977, 1), Range16), $clone(new Range16.ptr(6979, 6980, 1), Range16), $clone(new Range16.ptr(7042, 7073, 31), Range16), $clone(new Range16.ptr(7078, 7079, 1), Range16), $clone(new Range16.ptr(7082, 7143, 61), Range16), $clone(new Range16.ptr(7146, 7148, 1), Range16), $clone(new Range16.ptr(7150, 7154, 4), Range16), $clone(new Range16.ptr(7155, 7204, 49), Range16), $clone(new Range16.ptr(7205, 7211, 1), Range16), $clone(new Range16.ptr(7220, 7221, 1), Range16), $clone(new Range16.ptr(7393, 7415, 22), Range16), $clone(new Range16.ptr(12334, 12335, 1), Range16), $clone(new Range16.ptr(43043, 43044, 1), Range16), $clone(new Range16.ptr(43047, 43136, 89), Range16), $clone(new Range16.ptr(43137, 43188, 51), Range16), $clone(new Range16.ptr(43189, 43203, 1), Range16), $clone(new Range16.ptr(43346, 43347, 1), Range16), $clone(new Range16.ptr(43395, 43444, 49), Range16), $clone(new Range16.ptr(43445, 43450, 5), Range16), $clone(new Range16.ptr(43451, 43454, 3), Range16), $clone(new Range16.ptr(43455, 43456, 1), Range16), $clone(new Range16.ptr(43567, 43568, 1), Range16), $clone(new Range16.ptr(43571, 43572, 1), Range16), $clone(new Range16.ptr(43597, 43643, 46), Range16), $clone(new Range16.ptr(43645, 43755, 110), Range16), $clone(new Range16.ptr(43758, 43759, 1), Range16), $clone(new Range16.ptr(43765, 44003, 238), Range16), $clone(new Range16.ptr(44004, 44006, 2), Range16), $clone(new Range16.ptr(44007, 44009, 2), Range16), $clone(new Range16.ptr(44010, 44012, 2), Range16)]), new sliceType$1([$clone(new Range32.ptr(69632, 69634, 2), Range32), $clone(new Range32.ptr(69762, 69808, 46), Range32), $clone(new Range32.ptr(69809, 69810, 1), Range32), $clone(new Range32.ptr(69815, 69816, 1), Range32), $clone(new Range32.ptr(69932, 69957, 25), Range32), $clone(new Range32.ptr(69958, 70018, 60), Range32), $clone(new Range32.ptr(70067, 70069, 1), Range32), $clone(new Range32.ptr(70079, 70080, 1), Range32), $clone(new Range32.ptr(70094, 70188, 94), Range32), $clone(new Range32.ptr(70189, 70190, 1), Range32), $clone(new Range32.ptr(70194, 70195, 1), Range32), $clone(new Range32.ptr(70197, 70368, 171), Range32), $clone(new Range32.ptr(70369, 70370, 1), Range32), $clone(new Range32.ptr(70402, 70403, 1), Range32), $clone(new Range32.ptr(70462, 70463, 1), Range32), $clone(new Range32.ptr(70465, 70468, 1), Range32), $clone(new Range32.ptr(70471, 70472, 1), Range32), $clone(new Range32.ptr(70475, 70477, 1), Range32), $clone(new Range32.ptr(70487, 70498, 11), Range32), $clone(new Range32.ptr(70499, 70709, 210), Range32), $clone(new Range32.ptr(70710, 70711, 1), Range32), $clone(new Range32.ptr(70720, 70721, 1), Range32), $clone(new Range32.ptr(70725, 70832, 107), Range32), $clone(new Range32.ptr(70833, 70834, 1), Range32), $clone(new Range32.ptr(70841, 70843, 2), Range32), $clone(new Range32.ptr(70844, 70846, 1), Range32), $clone(new Range32.ptr(70849, 71087, 238), Range32), $clone(new Range32.ptr(71088, 71089, 1), Range32), $clone(new Range32.ptr(71096, 71099, 1), Range32), $clone(new Range32.ptr(71102, 71216, 114), Range32), $clone(new Range32.ptr(71217, 71218, 1), Range32), $clone(new Range32.ptr(71227, 71228, 1), Range32), $clone(new Range32.ptr(71230, 71340, 110), Range32), $clone(new Range32.ptr(71342, 71343, 1), Range32), $clone(new Range32.ptr(71350, 71456, 106), Range32), $clone(new Range32.ptr(71457, 71462, 5), Range32), $clone(new Range32.ptr(71724, 71726, 1), Range32), $clone(new Range32.ptr(71736, 71984, 248), Range32), $clone(new Range32.ptr(71985, 71989, 1), Range32), $clone(new Range32.ptr(71991, 71992, 1), Range32), $clone(new Range32.ptr(71997, 72000, 3), Range32), $clone(new Range32.ptr(72002, 72145, 143), Range32), $clone(new Range32.ptr(72146, 72147, 1), Range32), $clone(new Range32.ptr(72156, 72159, 1), Range32), $clone(new Range32.ptr(72164, 72249, 85), Range32), $clone(new Range32.ptr(72279, 72280, 1), Range32), $clone(new Range32.ptr(72343, 72751, 408), Range32), $clone(new Range32.ptr(72766, 72873, 107), Range32), $clone(new Range32.ptr(72881, 72884, 3), Range32), $clone(new Range32.ptr(73098, 73102, 1), Range32), $clone(new Range32.ptr(73107, 73108, 1), Range32), $clone(new Range32.ptr(73110, 73461, 351), Range32), $clone(new Range32.ptr(73462, 94033, 20571), Range32), $clone(new Range32.ptr(94034, 94087, 1), Range32), $clone(new Range32.ptr(94192, 94193, 1), Range32), $clone(new Range32.ptr(119141, 119142, 1), Range32), $clone(new Range32.ptr(119149, 119154, 1), Range32)]), 0); + _Me = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1160, 1161, 1), Range16), $clone(new Range16.ptr(6846, 8413, 1567), Range16), $clone(new Range16.ptr(8414, 8416, 1), Range16), $clone(new Range16.ptr(8418, 8420, 1), Range16), $clone(new Range16.ptr(42608, 42610, 1), Range16)]), sliceType$1.nil, 0); + _Mn = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1155, 1159, 1), Range16), $clone(new Range16.ptr(1425, 1469, 1), Range16), $clone(new Range16.ptr(1471, 1473, 2), Range16), $clone(new Range16.ptr(1474, 1476, 2), Range16), $clone(new Range16.ptr(1477, 1479, 2), Range16), $clone(new Range16.ptr(1552, 1562, 1), Range16), $clone(new Range16.ptr(1611, 1631, 1), Range16), $clone(new Range16.ptr(1648, 1750, 102), Range16), $clone(new Range16.ptr(1751, 1756, 1), Range16), $clone(new Range16.ptr(1759, 1764, 1), Range16), $clone(new Range16.ptr(1767, 1768, 1), Range16), $clone(new Range16.ptr(1770, 1773, 1), Range16), $clone(new Range16.ptr(1809, 1840, 31), Range16), $clone(new Range16.ptr(1841, 1866, 1), Range16), $clone(new Range16.ptr(1958, 1968, 1), Range16), $clone(new Range16.ptr(2027, 2035, 1), Range16), $clone(new Range16.ptr(2045, 2070, 25), Range16), $clone(new Range16.ptr(2071, 2073, 1), Range16), $clone(new Range16.ptr(2075, 2083, 1), Range16), $clone(new Range16.ptr(2085, 2087, 1), Range16), $clone(new Range16.ptr(2089, 2093, 1), Range16), $clone(new Range16.ptr(2137, 2139, 1), Range16), $clone(new Range16.ptr(2259, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2306, 1), Range16), $clone(new Range16.ptr(2362, 2364, 2), Range16), $clone(new Range16.ptr(2369, 2376, 1), Range16), $clone(new Range16.ptr(2381, 2385, 4), Range16), $clone(new Range16.ptr(2386, 2391, 1), Range16), $clone(new Range16.ptr(2402, 2403, 1), Range16), $clone(new Range16.ptr(2433, 2492, 59), Range16), $clone(new Range16.ptr(2497, 2500, 1), Range16), $clone(new Range16.ptr(2509, 2530, 21), Range16), $clone(new Range16.ptr(2531, 2558, 27), Range16), $clone(new Range16.ptr(2561, 2562, 1), Range16), $clone(new Range16.ptr(2620, 2625, 5), Range16), $clone(new Range16.ptr(2626, 2631, 5), Range16), $clone(new Range16.ptr(2632, 2635, 3), Range16), $clone(new Range16.ptr(2636, 2637, 1), Range16), $clone(new Range16.ptr(2641, 2672, 31), Range16), $clone(new Range16.ptr(2673, 2677, 4), Range16), $clone(new Range16.ptr(2689, 2690, 1), Range16), $clone(new Range16.ptr(2748, 2753, 5), Range16), $clone(new Range16.ptr(2754, 2757, 1), Range16), $clone(new Range16.ptr(2759, 2760, 1), Range16), $clone(new Range16.ptr(2765, 2786, 21), Range16), $clone(new Range16.ptr(2787, 2810, 23), Range16), $clone(new Range16.ptr(2811, 2815, 1), Range16), $clone(new Range16.ptr(2817, 2876, 59), Range16), $clone(new Range16.ptr(2879, 2881, 2), Range16), $clone(new Range16.ptr(2882, 2884, 1), Range16), $clone(new Range16.ptr(2893, 2901, 8), Range16), $clone(new Range16.ptr(2902, 2914, 12), Range16), $clone(new Range16.ptr(2915, 2946, 31), Range16), $clone(new Range16.ptr(3008, 3021, 13), Range16), $clone(new Range16.ptr(3072, 3076, 4), Range16), $clone(new Range16.ptr(3134, 3136, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3170, 3171, 1), Range16), $clone(new Range16.ptr(3201, 3260, 59), Range16), $clone(new Range16.ptr(3263, 3270, 7), Range16), $clone(new Range16.ptr(3276, 3277, 1), Range16), $clone(new Range16.ptr(3298, 3299, 1), Range16), $clone(new Range16.ptr(3328, 3329, 1), Range16), $clone(new Range16.ptr(3387, 3388, 1), Range16), $clone(new Range16.ptr(3393, 3396, 1), Range16), $clone(new Range16.ptr(3405, 3426, 21), Range16), $clone(new Range16.ptr(3427, 3457, 30), Range16), $clone(new Range16.ptr(3530, 3538, 8), Range16), $clone(new Range16.ptr(3539, 3540, 1), Range16), $clone(new Range16.ptr(3542, 3633, 91), Range16), $clone(new Range16.ptr(3636, 3642, 1), Range16), $clone(new Range16.ptr(3655, 3662, 1), Range16), $clone(new Range16.ptr(3761, 3764, 3), Range16), $clone(new Range16.ptr(3765, 3772, 1), Range16), $clone(new Range16.ptr(3784, 3789, 1), Range16), $clone(new Range16.ptr(3864, 3865, 1), Range16), $clone(new Range16.ptr(3893, 3897, 2), Range16), $clone(new Range16.ptr(3953, 3966, 1), Range16), $clone(new Range16.ptr(3968, 3972, 1), Range16), $clone(new Range16.ptr(3974, 3975, 1), Range16), $clone(new Range16.ptr(3981, 3991, 1), Range16), $clone(new Range16.ptr(3993, 4028, 1), Range16), $clone(new Range16.ptr(4038, 4141, 103), Range16), $clone(new Range16.ptr(4142, 4144, 1), Range16), $clone(new Range16.ptr(4146, 4151, 1), Range16), $clone(new Range16.ptr(4153, 4154, 1), Range16), $clone(new Range16.ptr(4157, 4158, 1), Range16), $clone(new Range16.ptr(4184, 4185, 1), Range16), $clone(new Range16.ptr(4190, 4192, 1), Range16), $clone(new Range16.ptr(4209, 4212, 1), Range16), $clone(new Range16.ptr(4226, 4229, 3), Range16), $clone(new Range16.ptr(4230, 4237, 7), Range16), $clone(new Range16.ptr(4253, 4957, 704), Range16), $clone(new Range16.ptr(4958, 4959, 1), Range16), $clone(new Range16.ptr(5906, 5908, 1), Range16), $clone(new Range16.ptr(5938, 5940, 1), Range16), $clone(new Range16.ptr(5970, 5971, 1), Range16), $clone(new Range16.ptr(6002, 6003, 1), Range16), $clone(new Range16.ptr(6068, 6069, 1), Range16), $clone(new Range16.ptr(6071, 6077, 1), Range16), $clone(new Range16.ptr(6086, 6089, 3), Range16), $clone(new Range16.ptr(6090, 6099, 1), Range16), $clone(new Range16.ptr(6109, 6155, 46), Range16), $clone(new Range16.ptr(6156, 6157, 1), Range16), $clone(new Range16.ptr(6277, 6278, 1), Range16), $clone(new Range16.ptr(6313, 6432, 119), Range16), $clone(new Range16.ptr(6433, 6434, 1), Range16), $clone(new Range16.ptr(6439, 6440, 1), Range16), $clone(new Range16.ptr(6450, 6457, 7), Range16), $clone(new Range16.ptr(6458, 6459, 1), Range16), $clone(new Range16.ptr(6679, 6680, 1), Range16), $clone(new Range16.ptr(6683, 6742, 59), Range16), $clone(new Range16.ptr(6744, 6750, 1), Range16), $clone(new Range16.ptr(6752, 6754, 2), Range16), $clone(new Range16.ptr(6757, 6764, 1), Range16), $clone(new Range16.ptr(6771, 6780, 1), Range16), $clone(new Range16.ptr(6783, 6832, 49), Range16), $clone(new Range16.ptr(6833, 6845, 1), Range16), $clone(new Range16.ptr(6847, 6848, 1), Range16), $clone(new Range16.ptr(6912, 6915, 1), Range16), $clone(new Range16.ptr(6964, 6966, 2), Range16), $clone(new Range16.ptr(6967, 6970, 1), Range16), $clone(new Range16.ptr(6972, 6978, 6), Range16), $clone(new Range16.ptr(7019, 7027, 1), Range16), $clone(new Range16.ptr(7040, 7041, 1), Range16), $clone(new Range16.ptr(7074, 7077, 1), Range16), $clone(new Range16.ptr(7080, 7081, 1), Range16), $clone(new Range16.ptr(7083, 7085, 1), Range16), $clone(new Range16.ptr(7142, 7144, 2), Range16), $clone(new Range16.ptr(7145, 7149, 4), Range16), $clone(new Range16.ptr(7151, 7153, 1), Range16), $clone(new Range16.ptr(7212, 7219, 1), Range16), $clone(new Range16.ptr(7222, 7223, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7392, 1), Range16), $clone(new Range16.ptr(7394, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7416, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7673, 1), Range16), $clone(new Range16.ptr(7675, 7679, 1), Range16), $clone(new Range16.ptr(8400, 8412, 1), Range16), $clone(new Range16.ptr(8417, 8421, 4), Range16), $clone(new Range16.ptr(8422, 8432, 1), Range16), $clone(new Range16.ptr(11503, 11505, 1), Range16), $clone(new Range16.ptr(11647, 11744, 97), Range16), $clone(new Range16.ptr(11745, 11775, 1), Range16), $clone(new Range16.ptr(12330, 12333, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(42607, 42612, 5), Range16), $clone(new Range16.ptr(42613, 42621, 1), Range16), $clone(new Range16.ptr(42654, 42655, 1), Range16), $clone(new Range16.ptr(42736, 42737, 1), Range16), $clone(new Range16.ptr(43010, 43014, 4), Range16), $clone(new Range16.ptr(43019, 43045, 26), Range16), $clone(new Range16.ptr(43046, 43052, 6), Range16), $clone(new Range16.ptr(43204, 43205, 1), Range16), $clone(new Range16.ptr(43232, 43249, 1), Range16), $clone(new Range16.ptr(43263, 43302, 39), Range16), $clone(new Range16.ptr(43303, 43309, 1), Range16), $clone(new Range16.ptr(43335, 43345, 1), Range16), $clone(new Range16.ptr(43392, 43394, 1), Range16), $clone(new Range16.ptr(43443, 43446, 3), Range16), $clone(new Range16.ptr(43447, 43449, 1), Range16), $clone(new Range16.ptr(43452, 43453, 1), Range16), $clone(new Range16.ptr(43493, 43561, 68), Range16), $clone(new Range16.ptr(43562, 43566, 1), Range16), $clone(new Range16.ptr(43569, 43570, 1), Range16), $clone(new Range16.ptr(43573, 43574, 1), Range16), $clone(new Range16.ptr(43587, 43596, 9), Range16), $clone(new Range16.ptr(43644, 43696, 52), Range16), $clone(new Range16.ptr(43698, 43700, 1), Range16), $clone(new Range16.ptr(43703, 43704, 1), Range16), $clone(new Range16.ptr(43710, 43711, 1), Range16), $clone(new Range16.ptr(43713, 43756, 43), Range16), $clone(new Range16.ptr(43757, 43766, 9), Range16), $clone(new Range16.ptr(44005, 44008, 3), Range16), $clone(new Range16.ptr(44013, 64286, 20273), Range16), $clone(new Range16.ptr(65024, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65071, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(66422, 66426, 1), Range32), $clone(new Range32.ptr(68097, 68099, 1), Range32), $clone(new Range32.ptr(68101, 68102, 1), Range32), $clone(new Range32.ptr(68108, 68111, 1), Range32), $clone(new Range32.ptr(68152, 68154, 1), Range32), $clone(new Range32.ptr(68159, 68325, 166), Range32), $clone(new Range32.ptr(68326, 68900, 574), Range32), $clone(new Range32.ptr(68901, 68903, 1), Range32), $clone(new Range32.ptr(69291, 69292, 1), Range32), $clone(new Range32.ptr(69446, 69456, 1), Range32), $clone(new Range32.ptr(69633, 69688, 55), Range32), $clone(new Range32.ptr(69689, 69702, 1), Range32), $clone(new Range32.ptr(69759, 69761, 1), Range32), $clone(new Range32.ptr(69811, 69814, 1), Range32), $clone(new Range32.ptr(69817, 69818, 1), Range32), $clone(new Range32.ptr(69888, 69890, 1), Range32), $clone(new Range32.ptr(69927, 69931, 1), Range32), $clone(new Range32.ptr(69933, 69940, 1), Range32), $clone(new Range32.ptr(70003, 70016, 13), Range32), $clone(new Range32.ptr(70017, 70070, 53), Range32), $clone(new Range32.ptr(70071, 70078, 1), Range32), $clone(new Range32.ptr(70089, 70092, 1), Range32), $clone(new Range32.ptr(70095, 70191, 96), Range32), $clone(new Range32.ptr(70192, 70193, 1), Range32), $clone(new Range32.ptr(70196, 70198, 2), Range32), $clone(new Range32.ptr(70199, 70206, 7), Range32), $clone(new Range32.ptr(70367, 70371, 4), Range32), $clone(new Range32.ptr(70372, 70378, 1), Range32), $clone(new Range32.ptr(70400, 70401, 1), Range32), $clone(new Range32.ptr(70459, 70460, 1), Range32), $clone(new Range32.ptr(70464, 70502, 38), Range32), $clone(new Range32.ptr(70503, 70508, 1), Range32), $clone(new Range32.ptr(70512, 70516, 1), Range32), $clone(new Range32.ptr(70712, 70719, 1), Range32), $clone(new Range32.ptr(70722, 70724, 1), Range32), $clone(new Range32.ptr(70726, 70750, 24), Range32), $clone(new Range32.ptr(70835, 70840, 1), Range32), $clone(new Range32.ptr(70842, 70847, 5), Range32), $clone(new Range32.ptr(70848, 70850, 2), Range32), $clone(new Range32.ptr(70851, 71090, 239), Range32), $clone(new Range32.ptr(71091, 71093, 1), Range32), $clone(new Range32.ptr(71100, 71101, 1), Range32), $clone(new Range32.ptr(71103, 71104, 1), Range32), $clone(new Range32.ptr(71132, 71133, 1), Range32), $clone(new Range32.ptr(71219, 71226, 1), Range32), $clone(new Range32.ptr(71229, 71231, 2), Range32), $clone(new Range32.ptr(71232, 71339, 107), Range32), $clone(new Range32.ptr(71341, 71344, 3), Range32), $clone(new Range32.ptr(71345, 71349, 1), Range32), $clone(new Range32.ptr(71351, 71453, 102), Range32), $clone(new Range32.ptr(71454, 71455, 1), Range32), $clone(new Range32.ptr(71458, 71461, 1), Range32), $clone(new Range32.ptr(71463, 71467, 1), Range32), $clone(new Range32.ptr(71727, 71735, 1), Range32), $clone(new Range32.ptr(71737, 71738, 1), Range32), $clone(new Range32.ptr(71995, 71996, 1), Range32), $clone(new Range32.ptr(71998, 72003, 5), Range32), $clone(new Range32.ptr(72148, 72151, 1), Range32), $clone(new Range32.ptr(72154, 72155, 1), Range32), $clone(new Range32.ptr(72160, 72193, 33), Range32), $clone(new Range32.ptr(72194, 72202, 1), Range32), $clone(new Range32.ptr(72243, 72248, 1), Range32), $clone(new Range32.ptr(72251, 72254, 1), Range32), $clone(new Range32.ptr(72263, 72273, 10), Range32), $clone(new Range32.ptr(72274, 72278, 1), Range32), $clone(new Range32.ptr(72281, 72283, 1), Range32), $clone(new Range32.ptr(72330, 72342, 1), Range32), $clone(new Range32.ptr(72344, 72345, 1), Range32), $clone(new Range32.ptr(72752, 72758, 1), Range32), $clone(new Range32.ptr(72760, 72765, 1), Range32), $clone(new Range32.ptr(72767, 72850, 83), Range32), $clone(new Range32.ptr(72851, 72871, 1), Range32), $clone(new Range32.ptr(72874, 72880, 1), Range32), $clone(new Range32.ptr(72882, 72883, 1), Range32), $clone(new Range32.ptr(72885, 72886, 1), Range32), $clone(new Range32.ptr(73009, 73014, 1), Range32), $clone(new Range32.ptr(73018, 73020, 2), Range32), $clone(new Range32.ptr(73021, 73023, 2), Range32), $clone(new Range32.ptr(73024, 73029, 1), Range32), $clone(new Range32.ptr(73031, 73104, 73), Range32), $clone(new Range32.ptr(73105, 73109, 4), Range32), $clone(new Range32.ptr(73111, 73459, 348), Range32), $clone(new Range32.ptr(73460, 92912, 19452), Range32), $clone(new Range32.ptr(92913, 92916, 1), Range32), $clone(new Range32.ptr(92976, 92982, 1), Range32), $clone(new Range32.ptr(94031, 94095, 64), Range32), $clone(new Range32.ptr(94096, 94098, 1), Range32), $clone(new Range32.ptr(94180, 113821, 19641), Range32), $clone(new Range32.ptr(113822, 119143, 5321), Range32), $clone(new Range32.ptr(119144, 119145, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(119362, 119364, 1), Range32), $clone(new Range32.ptr(121344, 121398, 1), Range32), $clone(new Range32.ptr(121403, 121452, 1), Range32), $clone(new Range32.ptr(121461, 121476, 15), Range32), $clone(new Range32.ptr(121499, 121503, 1), Range32), $clone(new Range32.ptr(121505, 121519, 1), Range32), $clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32), $clone(new Range32.ptr(123184, 123190, 1), Range32), $clone(new Range32.ptr(123628, 123631, 1), Range32), $clone(new Range32.ptr(125136, 125142, 1), Range32), $clone(new Range32.ptr(125252, 125258, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); + _N = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(48, 57, 1), Range16), $clone(new Range16.ptr(178, 179, 1), Range16), $clone(new Range16.ptr(185, 188, 3), Range16), $clone(new Range16.ptr(189, 190, 1), Range16), $clone(new Range16.ptr(1632, 1641, 1), Range16), $clone(new Range16.ptr(1776, 1785, 1), Range16), $clone(new Range16.ptr(1984, 1993, 1), Range16), $clone(new Range16.ptr(2406, 2415, 1), Range16), $clone(new Range16.ptr(2534, 2543, 1), Range16), $clone(new Range16.ptr(2548, 2553, 1), Range16), $clone(new Range16.ptr(2662, 2671, 1), Range16), $clone(new Range16.ptr(2790, 2799, 1), Range16), $clone(new Range16.ptr(2918, 2927, 1), Range16), $clone(new Range16.ptr(2930, 2935, 1), Range16), $clone(new Range16.ptr(3046, 3058, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3192, 3198, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3416, 3422, 1), Range16), $clone(new Range16.ptr(3430, 3448, 1), Range16), $clone(new Range16.ptr(3558, 3567, 1), Range16), $clone(new Range16.ptr(3664, 3673, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3872, 3891, 1), Range16), $clone(new Range16.ptr(4160, 4169, 1), Range16), $clone(new Range16.ptr(4240, 4249, 1), Range16), $clone(new Range16.ptr(4969, 4988, 1), Range16), $clone(new Range16.ptr(5870, 5872, 1), Range16), $clone(new Range16.ptr(6112, 6121, 1), Range16), $clone(new Range16.ptr(6128, 6137, 1), Range16), $clone(new Range16.ptr(6160, 6169, 1), Range16), $clone(new Range16.ptr(6470, 6479, 1), Range16), $clone(new Range16.ptr(6608, 6618, 1), Range16), $clone(new Range16.ptr(6784, 6793, 1), Range16), $clone(new Range16.ptr(6800, 6809, 1), Range16), $clone(new Range16.ptr(6992, 7001, 1), Range16), $clone(new Range16.ptr(7088, 7097, 1), Range16), $clone(new Range16.ptr(7232, 7241, 1), Range16), $clone(new Range16.ptr(7248, 7257, 1), Range16), $clone(new Range16.ptr(8304, 8308, 4), Range16), $clone(new Range16.ptr(8309, 8313, 1), Range16), $clone(new Range16.ptr(8320, 8329, 1), Range16), $clone(new Range16.ptr(8528, 8578, 1), Range16), $clone(new Range16.ptr(8581, 8585, 1), Range16), $clone(new Range16.ptr(9312, 9371, 1), Range16), $clone(new Range16.ptr(9450, 9471, 1), Range16), $clone(new Range16.ptr(10102, 10131, 1), Range16), $clone(new Range16.ptr(11517, 12295, 778), Range16), $clone(new Range16.ptr(12321, 12329, 1), Range16), $clone(new Range16.ptr(12344, 12346, 1), Range16), $clone(new Range16.ptr(12690, 12693, 1), Range16), $clone(new Range16.ptr(12832, 12841, 1), Range16), $clone(new Range16.ptr(12872, 12879, 1), Range16), $clone(new Range16.ptr(12881, 12895, 1), Range16), $clone(new Range16.ptr(12928, 12937, 1), Range16), $clone(new Range16.ptr(12977, 12991, 1), Range16), $clone(new Range16.ptr(42528, 42537, 1), Range16), $clone(new Range16.ptr(42726, 42735, 1), Range16), $clone(new Range16.ptr(43056, 43061, 1), Range16), $clone(new Range16.ptr(43216, 43225, 1), Range16), $clone(new Range16.ptr(43264, 43273, 1), Range16), $clone(new Range16.ptr(43472, 43481, 1), Range16), $clone(new Range16.ptr(43504, 43513, 1), Range16), $clone(new Range16.ptr(43600, 43609, 1), Range16), $clone(new Range16.ptr(44016, 44025, 1), Range16), $clone(new Range16.ptr(65296, 65305, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65856, 65912, 1), Range32), $clone(new Range32.ptr(65930, 65931, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(66336, 66339, 1), Range32), $clone(new Range32.ptr(66369, 66378, 9), Range32), $clone(new Range32.ptr(66513, 66517, 1), Range32), $clone(new Range32.ptr(66720, 66729, 1), Range32), $clone(new Range32.ptr(67672, 67679, 1), Range32), $clone(new Range32.ptr(67705, 67711, 1), Range32), $clone(new Range32.ptr(67751, 67759, 1), Range32), $clone(new Range32.ptr(67835, 67839, 1), Range32), $clone(new Range32.ptr(67862, 67867, 1), Range32), $clone(new Range32.ptr(68028, 68029, 1), Range32), $clone(new Range32.ptr(68032, 68047, 1), Range32), $clone(new Range32.ptr(68050, 68095, 1), Range32), $clone(new Range32.ptr(68160, 68168, 1), Range32), $clone(new Range32.ptr(68221, 68222, 1), Range32), $clone(new Range32.ptr(68253, 68255, 1), Range32), $clone(new Range32.ptr(68331, 68335, 1), Range32), $clone(new Range32.ptr(68440, 68447, 1), Range32), $clone(new Range32.ptr(68472, 68479, 1), Range32), $clone(new Range32.ptr(68521, 68527, 1), Range32), $clone(new Range32.ptr(68858, 68863, 1), Range32), $clone(new Range32.ptr(68912, 68921, 1), Range32), $clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(69405, 69414, 1), Range32), $clone(new Range32.ptr(69457, 69460, 1), Range32), $clone(new Range32.ptr(69573, 69579, 1), Range32), $clone(new Range32.ptr(69714, 69743, 1), Range32), $clone(new Range32.ptr(69872, 69881, 1), Range32), $clone(new Range32.ptr(69942, 69951, 1), Range32), $clone(new Range32.ptr(70096, 70105, 1), Range32), $clone(new Range32.ptr(70113, 70132, 1), Range32), $clone(new Range32.ptr(70384, 70393, 1), Range32), $clone(new Range32.ptr(70736, 70745, 1), Range32), $clone(new Range32.ptr(70864, 70873, 1), Range32), $clone(new Range32.ptr(71248, 71257, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32), $clone(new Range32.ptr(71472, 71483, 1), Range32), $clone(new Range32.ptr(71904, 71922, 1), Range32), $clone(new Range32.ptr(72016, 72025, 1), Range32), $clone(new Range32.ptr(72784, 72812, 1), Range32), $clone(new Range32.ptr(73040, 73049, 1), Range32), $clone(new Range32.ptr(73120, 73129, 1), Range32), $clone(new Range32.ptr(73664, 73684, 1), Range32), $clone(new Range32.ptr(74752, 74862, 1), Range32), $clone(new Range32.ptr(92768, 92777, 1), Range32), $clone(new Range32.ptr(93008, 93017, 1), Range32), $clone(new Range32.ptr(93019, 93025, 1), Range32), $clone(new Range32.ptr(93824, 93846, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(123200, 123209, 1), Range32), $clone(new Range32.ptr(123632, 123641, 1), Range32), $clone(new Range32.ptr(125127, 125135, 1), Range32), $clone(new Range32.ptr(125264, 125273, 1), Range32), $clone(new Range32.ptr(126065, 126123, 1), Range32), $clone(new Range32.ptr(126125, 126127, 1), Range32), $clone(new Range32.ptr(126129, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126253, 1), Range32), $clone(new Range32.ptr(126255, 126269, 1), Range32), $clone(new Range32.ptr(127232, 127244, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32)]), 4); + _Nd = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(48, 57, 1), Range16), $clone(new Range16.ptr(1632, 1641, 1), Range16), $clone(new Range16.ptr(1776, 1785, 1), Range16), $clone(new Range16.ptr(1984, 1993, 1), Range16), $clone(new Range16.ptr(2406, 2415, 1), Range16), $clone(new Range16.ptr(2534, 2543, 1), Range16), $clone(new Range16.ptr(2662, 2671, 1), Range16), $clone(new Range16.ptr(2790, 2799, 1), Range16), $clone(new Range16.ptr(2918, 2927, 1), Range16), $clone(new Range16.ptr(3046, 3055, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3430, 3439, 1), Range16), $clone(new Range16.ptr(3558, 3567, 1), Range16), $clone(new Range16.ptr(3664, 3673, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3872, 3881, 1), Range16), $clone(new Range16.ptr(4160, 4169, 1), Range16), $clone(new Range16.ptr(4240, 4249, 1), Range16), $clone(new Range16.ptr(6112, 6121, 1), Range16), $clone(new Range16.ptr(6160, 6169, 1), Range16), $clone(new Range16.ptr(6470, 6479, 1), Range16), $clone(new Range16.ptr(6608, 6617, 1), Range16), $clone(new Range16.ptr(6784, 6793, 1), Range16), $clone(new Range16.ptr(6800, 6809, 1), Range16), $clone(new Range16.ptr(6992, 7001, 1), Range16), $clone(new Range16.ptr(7088, 7097, 1), Range16), $clone(new Range16.ptr(7232, 7241, 1), Range16), $clone(new Range16.ptr(7248, 7257, 1), Range16), $clone(new Range16.ptr(42528, 42537, 1), Range16), $clone(new Range16.ptr(43216, 43225, 1), Range16), $clone(new Range16.ptr(43264, 43273, 1), Range16), $clone(new Range16.ptr(43472, 43481, 1), Range16), $clone(new Range16.ptr(43504, 43513, 1), Range16), $clone(new Range16.ptr(43600, 43609, 1), Range16), $clone(new Range16.ptr(44016, 44025, 1), Range16), $clone(new Range16.ptr(65296, 65305, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66720, 66729, 1), Range32), $clone(new Range32.ptr(68912, 68921, 1), Range32), $clone(new Range32.ptr(69734, 69743, 1), Range32), $clone(new Range32.ptr(69872, 69881, 1), Range32), $clone(new Range32.ptr(69942, 69951, 1), Range32), $clone(new Range32.ptr(70096, 70105, 1), Range32), $clone(new Range32.ptr(70384, 70393, 1), Range32), $clone(new Range32.ptr(70736, 70745, 1), Range32), $clone(new Range32.ptr(70864, 70873, 1), Range32), $clone(new Range32.ptr(71248, 71257, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32), $clone(new Range32.ptr(71472, 71481, 1), Range32), $clone(new Range32.ptr(71904, 71913, 1), Range32), $clone(new Range32.ptr(72016, 72025, 1), Range32), $clone(new Range32.ptr(72784, 72793, 1), Range32), $clone(new Range32.ptr(73040, 73049, 1), Range32), $clone(new Range32.ptr(73120, 73129, 1), Range32), $clone(new Range32.ptr(92768, 92777, 1), Range32), $clone(new Range32.ptr(93008, 93017, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(123200, 123209, 1), Range32), $clone(new Range32.ptr(123632, 123641, 1), Range32), $clone(new Range32.ptr(125264, 125273, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32)]), 1); + _Nl = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5870, 5872, 1), Range16), $clone(new Range16.ptr(8544, 8578, 1), Range16), $clone(new Range16.ptr(8581, 8584, 1), Range16), $clone(new Range16.ptr(12295, 12321, 26), Range16), $clone(new Range16.ptr(12322, 12329, 1), Range16), $clone(new Range16.ptr(12344, 12346, 1), Range16), $clone(new Range16.ptr(42726, 42735, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65856, 65908, 1), Range32), $clone(new Range32.ptr(66369, 66378, 9), Range32), $clone(new Range32.ptr(66513, 66517, 1), Range32), $clone(new Range32.ptr(74752, 74862, 1), Range32)]), 0); + _No = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(178, 179, 1), Range16), $clone(new Range16.ptr(185, 188, 3), Range16), $clone(new Range16.ptr(189, 190, 1), Range16), $clone(new Range16.ptr(2548, 2553, 1), Range16), $clone(new Range16.ptr(2930, 2935, 1), Range16), $clone(new Range16.ptr(3056, 3058, 1), Range16), $clone(new Range16.ptr(3192, 3198, 1), Range16), $clone(new Range16.ptr(3416, 3422, 1), Range16), $clone(new Range16.ptr(3440, 3448, 1), Range16), $clone(new Range16.ptr(3882, 3891, 1), Range16), $clone(new Range16.ptr(4969, 4988, 1), Range16), $clone(new Range16.ptr(6128, 6137, 1), Range16), $clone(new Range16.ptr(6618, 8304, 1686), Range16), $clone(new Range16.ptr(8308, 8313, 1), Range16), $clone(new Range16.ptr(8320, 8329, 1), Range16), $clone(new Range16.ptr(8528, 8543, 1), Range16), $clone(new Range16.ptr(8585, 9312, 727), Range16), $clone(new Range16.ptr(9313, 9371, 1), Range16), $clone(new Range16.ptr(9450, 9471, 1), Range16), $clone(new Range16.ptr(10102, 10131, 1), Range16), $clone(new Range16.ptr(11517, 12690, 1173), Range16), $clone(new Range16.ptr(12691, 12693, 1), Range16), $clone(new Range16.ptr(12832, 12841, 1), Range16), $clone(new Range16.ptr(12872, 12879, 1), Range16), $clone(new Range16.ptr(12881, 12895, 1), Range16), $clone(new Range16.ptr(12928, 12937, 1), Range16), $clone(new Range16.ptr(12977, 12991, 1), Range16), $clone(new Range16.ptr(43056, 43061, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65909, 65912, 1), Range32), $clone(new Range32.ptr(65930, 65931, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(66336, 66339, 1), Range32), $clone(new Range32.ptr(67672, 67679, 1), Range32), $clone(new Range32.ptr(67705, 67711, 1), Range32), $clone(new Range32.ptr(67751, 67759, 1), Range32), $clone(new Range32.ptr(67835, 67839, 1), Range32), $clone(new Range32.ptr(67862, 67867, 1), Range32), $clone(new Range32.ptr(68028, 68029, 1), Range32), $clone(new Range32.ptr(68032, 68047, 1), Range32), $clone(new Range32.ptr(68050, 68095, 1), Range32), $clone(new Range32.ptr(68160, 68168, 1), Range32), $clone(new Range32.ptr(68221, 68222, 1), Range32), $clone(new Range32.ptr(68253, 68255, 1), Range32), $clone(new Range32.ptr(68331, 68335, 1), Range32), $clone(new Range32.ptr(68440, 68447, 1), Range32), $clone(new Range32.ptr(68472, 68479, 1), Range32), $clone(new Range32.ptr(68521, 68527, 1), Range32), $clone(new Range32.ptr(68858, 68863, 1), Range32), $clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(69405, 69414, 1), Range32), $clone(new Range32.ptr(69457, 69460, 1), Range32), $clone(new Range32.ptr(69573, 69579, 1), Range32), $clone(new Range32.ptr(69714, 69733, 1), Range32), $clone(new Range32.ptr(70113, 70132, 1), Range32), $clone(new Range32.ptr(71482, 71483, 1), Range32), $clone(new Range32.ptr(71914, 71922, 1), Range32), $clone(new Range32.ptr(72794, 72812, 1), Range32), $clone(new Range32.ptr(73664, 73684, 1), Range32), $clone(new Range32.ptr(93019, 93025, 1), Range32), $clone(new Range32.ptr(93824, 93846, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(125127, 125135, 1), Range32), $clone(new Range32.ptr(126065, 126123, 1), Range32), $clone(new Range32.ptr(126125, 126127, 1), Range32), $clone(new Range32.ptr(126129, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126253, 1), Range32), $clone(new Range32.ptr(126255, 126269, 1), Range32), $clone(new Range32.ptr(127232, 127244, 1), Range32)]), 3); + _P = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(33, 35, 1), Range16), $clone(new Range16.ptr(37, 42, 1), Range16), $clone(new Range16.ptr(44, 47, 1), Range16), $clone(new Range16.ptr(58, 59, 1), Range16), $clone(new Range16.ptr(63, 64, 1), Range16), $clone(new Range16.ptr(91, 93, 1), Range16), $clone(new Range16.ptr(95, 123, 28), Range16), $clone(new Range16.ptr(125, 161, 36), Range16), $clone(new Range16.ptr(167, 171, 4), Range16), $clone(new Range16.ptr(182, 183, 1), Range16), $clone(new Range16.ptr(187, 191, 4), Range16), $clone(new Range16.ptr(894, 903, 9), Range16), $clone(new Range16.ptr(1370, 1375, 1), Range16), $clone(new Range16.ptr(1417, 1418, 1), Range16), $clone(new Range16.ptr(1470, 1472, 2), Range16), $clone(new Range16.ptr(1475, 1478, 3), Range16), $clone(new Range16.ptr(1523, 1524, 1), Range16), $clone(new Range16.ptr(1545, 1546, 1), Range16), $clone(new Range16.ptr(1548, 1549, 1), Range16), $clone(new Range16.ptr(1563, 1566, 3), Range16), $clone(new Range16.ptr(1567, 1642, 75), Range16), $clone(new Range16.ptr(1643, 1645, 1), Range16), $clone(new Range16.ptr(1748, 1792, 44), Range16), $clone(new Range16.ptr(1793, 1805, 1), Range16), $clone(new Range16.ptr(2039, 2041, 1), Range16), $clone(new Range16.ptr(2096, 2110, 1), Range16), $clone(new Range16.ptr(2142, 2404, 262), Range16), $clone(new Range16.ptr(2405, 2416, 11), Range16), $clone(new Range16.ptr(2557, 2678, 121), Range16), $clone(new Range16.ptr(2800, 3191, 391), Range16), $clone(new Range16.ptr(3204, 3572, 368), Range16), $clone(new Range16.ptr(3663, 3674, 11), Range16), $clone(new Range16.ptr(3675, 3844, 169), Range16), $clone(new Range16.ptr(3845, 3858, 1), Range16), $clone(new Range16.ptr(3860, 3898, 38), Range16), $clone(new Range16.ptr(3899, 3901, 1), Range16), $clone(new Range16.ptr(3973, 4048, 75), Range16), $clone(new Range16.ptr(4049, 4052, 1), Range16), $clone(new Range16.ptr(4057, 4058, 1), Range16), $clone(new Range16.ptr(4170, 4175, 1), Range16), $clone(new Range16.ptr(4347, 4960, 613), Range16), $clone(new Range16.ptr(4961, 4968, 1), Range16), $clone(new Range16.ptr(5120, 5742, 622), Range16), $clone(new Range16.ptr(5787, 5788, 1), Range16), $clone(new Range16.ptr(5867, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6100, 6102, 1), Range16), $clone(new Range16.ptr(6104, 6106, 1), Range16), $clone(new Range16.ptr(6144, 6154, 1), Range16), $clone(new Range16.ptr(6468, 6469, 1), Range16), $clone(new Range16.ptr(6686, 6687, 1), Range16), $clone(new Range16.ptr(6816, 6822, 1), Range16), $clone(new Range16.ptr(6824, 6829, 1), Range16), $clone(new Range16.ptr(7002, 7008, 1), Range16), $clone(new Range16.ptr(7164, 7167, 1), Range16), $clone(new Range16.ptr(7227, 7231, 1), Range16), $clone(new Range16.ptr(7294, 7295, 1), Range16), $clone(new Range16.ptr(7360, 7367, 1), Range16), $clone(new Range16.ptr(7379, 8208, 829), Range16), $clone(new Range16.ptr(8209, 8231, 1), Range16), $clone(new Range16.ptr(8240, 8259, 1), Range16), $clone(new Range16.ptr(8261, 8273, 1), Range16), $clone(new Range16.ptr(8275, 8286, 1), Range16), $clone(new Range16.ptr(8317, 8318, 1), Range16), $clone(new Range16.ptr(8333, 8334, 1), Range16), $clone(new Range16.ptr(8968, 8971, 1), Range16), $clone(new Range16.ptr(9001, 9002, 1), Range16), $clone(new Range16.ptr(10088, 10101, 1), Range16), $clone(new Range16.ptr(10181, 10182, 1), Range16), $clone(new Range16.ptr(10214, 10223, 1), Range16), $clone(new Range16.ptr(10627, 10648, 1), Range16), $clone(new Range16.ptr(10712, 10715, 1), Range16), $clone(new Range16.ptr(10748, 10749, 1), Range16), $clone(new Range16.ptr(11513, 11516, 1), Range16), $clone(new Range16.ptr(11518, 11519, 1), Range16), $clone(new Range16.ptr(11632, 11776, 144), Range16), $clone(new Range16.ptr(11777, 11822, 1), Range16), $clone(new Range16.ptr(11824, 11855, 1), Range16), $clone(new Range16.ptr(11858, 12289, 431), Range16), $clone(new Range16.ptr(12290, 12291, 1), Range16), $clone(new Range16.ptr(12296, 12305, 1), Range16), $clone(new Range16.ptr(12308, 12319, 1), Range16), $clone(new Range16.ptr(12336, 12349, 13), Range16), $clone(new Range16.ptr(12448, 12539, 91), Range16), $clone(new Range16.ptr(42238, 42239, 1), Range16), $clone(new Range16.ptr(42509, 42511, 1), Range16), $clone(new Range16.ptr(42611, 42622, 11), Range16), $clone(new Range16.ptr(42738, 42743, 1), Range16), $clone(new Range16.ptr(43124, 43127, 1), Range16), $clone(new Range16.ptr(43214, 43215, 1), Range16), $clone(new Range16.ptr(43256, 43258, 1), Range16), $clone(new Range16.ptr(43260, 43310, 50), Range16), $clone(new Range16.ptr(43311, 43359, 48), Range16), $clone(new Range16.ptr(43457, 43469, 1), Range16), $clone(new Range16.ptr(43486, 43487, 1), Range16), $clone(new Range16.ptr(43612, 43615, 1), Range16), $clone(new Range16.ptr(43742, 43743, 1), Range16), $clone(new Range16.ptr(43760, 43761, 1), Range16), $clone(new Range16.ptr(44011, 64830, 20819), Range16), $clone(new Range16.ptr(64831, 65040, 209), Range16), $clone(new Range16.ptr(65041, 65049, 1), Range16), $clone(new Range16.ptr(65072, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65121, 1), Range16), $clone(new Range16.ptr(65123, 65128, 5), Range16), $clone(new Range16.ptr(65130, 65131, 1), Range16), $clone(new Range16.ptr(65281, 65283, 1), Range16), $clone(new Range16.ptr(65285, 65290, 1), Range16), $clone(new Range16.ptr(65292, 65295, 1), Range16), $clone(new Range16.ptr(65306, 65307, 1), Range16), $clone(new Range16.ptr(65311, 65312, 1), Range16), $clone(new Range16.ptr(65339, 65341, 1), Range16), $clone(new Range16.ptr(65343, 65371, 28), Range16), $clone(new Range16.ptr(65373, 65375, 2), Range16), $clone(new Range16.ptr(65376, 65381, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(66463, 66512, 49), Range32), $clone(new Range32.ptr(66927, 67671, 744), Range32), $clone(new Range32.ptr(67871, 67903, 32), Range32), $clone(new Range32.ptr(68176, 68184, 1), Range32), $clone(new Range32.ptr(68223, 68336, 113), Range32), $clone(new Range32.ptr(68337, 68342, 1), Range32), $clone(new Range32.ptr(68409, 68415, 1), Range32), $clone(new Range32.ptr(68505, 68508, 1), Range32), $clone(new Range32.ptr(69293, 69461, 168), Range32), $clone(new Range32.ptr(69462, 69465, 1), Range32), $clone(new Range32.ptr(69703, 69709, 1), Range32), $clone(new Range32.ptr(69819, 69820, 1), Range32), $clone(new Range32.ptr(69822, 69825, 1), Range32), $clone(new Range32.ptr(69952, 69955, 1), Range32), $clone(new Range32.ptr(70004, 70005, 1), Range32), $clone(new Range32.ptr(70085, 70088, 1), Range32), $clone(new Range32.ptr(70093, 70107, 14), Range32), $clone(new Range32.ptr(70109, 70111, 1), Range32), $clone(new Range32.ptr(70200, 70205, 1), Range32), $clone(new Range32.ptr(70313, 70731, 418), Range32), $clone(new Range32.ptr(70732, 70735, 1), Range32), $clone(new Range32.ptr(70746, 70747, 1), Range32), $clone(new Range32.ptr(70749, 70854, 105), Range32), $clone(new Range32.ptr(71105, 71127, 1), Range32), $clone(new Range32.ptr(71233, 71235, 1), Range32), $clone(new Range32.ptr(71264, 71276, 1), Range32), $clone(new Range32.ptr(71484, 71486, 1), Range32), $clone(new Range32.ptr(71739, 72004, 265), Range32), $clone(new Range32.ptr(72005, 72006, 1), Range32), $clone(new Range32.ptr(72162, 72255, 93), Range32), $clone(new Range32.ptr(72256, 72262, 1), Range32), $clone(new Range32.ptr(72346, 72348, 1), Range32), $clone(new Range32.ptr(72350, 72354, 1), Range32), $clone(new Range32.ptr(72769, 72773, 1), Range32), $clone(new Range32.ptr(72816, 72817, 1), Range32), $clone(new Range32.ptr(73463, 73464, 1), Range32), $clone(new Range32.ptr(73727, 74864, 1137), Range32), $clone(new Range32.ptr(74865, 74868, 1), Range32), $clone(new Range32.ptr(92782, 92783, 1), Range32), $clone(new Range32.ptr(92917, 92983, 66), Range32), $clone(new Range32.ptr(92984, 92987, 1), Range32), $clone(new Range32.ptr(92996, 93847, 851), Range32), $clone(new Range32.ptr(93848, 93850, 1), Range32), $clone(new Range32.ptr(94178, 113823, 19645), Range32), $clone(new Range32.ptr(121479, 121483, 1), Range32), $clone(new Range32.ptr(125278, 125279, 1), Range32)]), 11); + _Pc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(95, 8255, 8160), Range16), $clone(new Range16.ptr(8256, 8276, 20), Range16), $clone(new Range16.ptr(65075, 65076, 1), Range16), $clone(new Range16.ptr(65101, 65103, 1), Range16), $clone(new Range16.ptr(65343, 65343, 1), Range16)]), sliceType$1.nil, 0); + _Pd = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(45, 1418, 1373), Range16), $clone(new Range16.ptr(1470, 5120, 3650), Range16), $clone(new Range16.ptr(6150, 8208, 2058), Range16), $clone(new Range16.ptr(8209, 8213, 1), Range16), $clone(new Range16.ptr(11799, 11802, 3), Range16), $clone(new Range16.ptr(11834, 11835, 1), Range16), $clone(new Range16.ptr(11840, 12316, 476), Range16), $clone(new Range16.ptr(12336, 12448, 112), Range16), $clone(new Range16.ptr(65073, 65074, 1), Range16), $clone(new Range16.ptr(65112, 65123, 11), Range16), $clone(new Range16.ptr(65293, 65293, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69293, 69293, 1), Range32)]), 0); + _Pe = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(41, 93, 52), Range16), $clone(new Range16.ptr(125, 3899, 3774), Range16), $clone(new Range16.ptr(3901, 5788, 1887), Range16), $clone(new Range16.ptr(8262, 8318, 56), Range16), $clone(new Range16.ptr(8334, 8969, 635), Range16), $clone(new Range16.ptr(8971, 9002, 31), Range16), $clone(new Range16.ptr(10089, 10101, 2), Range16), $clone(new Range16.ptr(10182, 10215, 33), Range16), $clone(new Range16.ptr(10217, 10223, 2), Range16), $clone(new Range16.ptr(10628, 10648, 2), Range16), $clone(new Range16.ptr(10713, 10715, 2), Range16), $clone(new Range16.ptr(10749, 11811, 1062), Range16), $clone(new Range16.ptr(11813, 11817, 2), Range16), $clone(new Range16.ptr(12297, 12305, 2), Range16), $clone(new Range16.ptr(12309, 12315, 2), Range16), $clone(new Range16.ptr(12318, 12319, 1), Range16), $clone(new Range16.ptr(64830, 65048, 218), Range16), $clone(new Range16.ptr(65078, 65092, 2), Range16), $clone(new Range16.ptr(65096, 65114, 18), Range16), $clone(new Range16.ptr(65116, 65118, 2), Range16), $clone(new Range16.ptr(65289, 65341, 52), Range16), $clone(new Range16.ptr(65373, 65379, 3), Range16)]), sliceType$1.nil, 1); + _Pf = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(187, 8217, 8030), Range16), $clone(new Range16.ptr(8221, 8250, 29), Range16), $clone(new Range16.ptr(11779, 11781, 2), Range16), $clone(new Range16.ptr(11786, 11789, 3), Range16), $clone(new Range16.ptr(11805, 11809, 4), Range16)]), sliceType$1.nil, 0); + _Pi = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(171, 8216, 8045), Range16), $clone(new Range16.ptr(8219, 8220, 1), Range16), $clone(new Range16.ptr(8223, 8249, 26), Range16), $clone(new Range16.ptr(11778, 11780, 2), Range16), $clone(new Range16.ptr(11785, 11788, 3), Range16), $clone(new Range16.ptr(11804, 11808, 4), Range16)]), sliceType$1.nil, 0); + _Po = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(33, 35, 1), Range16), $clone(new Range16.ptr(37, 39, 1), Range16), $clone(new Range16.ptr(42, 46, 2), Range16), $clone(new Range16.ptr(47, 58, 11), Range16), $clone(new Range16.ptr(59, 63, 4), Range16), $clone(new Range16.ptr(64, 92, 28), Range16), $clone(new Range16.ptr(161, 167, 6), Range16), $clone(new Range16.ptr(182, 183, 1), Range16), $clone(new Range16.ptr(191, 894, 703), Range16), $clone(new Range16.ptr(903, 1370, 467), Range16), $clone(new Range16.ptr(1371, 1375, 1), Range16), $clone(new Range16.ptr(1417, 1472, 55), Range16), $clone(new Range16.ptr(1475, 1478, 3), Range16), $clone(new Range16.ptr(1523, 1524, 1), Range16), $clone(new Range16.ptr(1545, 1546, 1), Range16), $clone(new Range16.ptr(1548, 1549, 1), Range16), $clone(new Range16.ptr(1563, 1566, 3), Range16), $clone(new Range16.ptr(1567, 1642, 75), Range16), $clone(new Range16.ptr(1643, 1645, 1), Range16), $clone(new Range16.ptr(1748, 1792, 44), Range16), $clone(new Range16.ptr(1793, 1805, 1), Range16), $clone(new Range16.ptr(2039, 2041, 1), Range16), $clone(new Range16.ptr(2096, 2110, 1), Range16), $clone(new Range16.ptr(2142, 2404, 262), Range16), $clone(new Range16.ptr(2405, 2416, 11), Range16), $clone(new Range16.ptr(2557, 2678, 121), Range16), $clone(new Range16.ptr(2800, 3191, 391), Range16), $clone(new Range16.ptr(3204, 3572, 368), Range16), $clone(new Range16.ptr(3663, 3674, 11), Range16), $clone(new Range16.ptr(3675, 3844, 169), Range16), $clone(new Range16.ptr(3845, 3858, 1), Range16), $clone(new Range16.ptr(3860, 3973, 113), Range16), $clone(new Range16.ptr(4048, 4052, 1), Range16), $clone(new Range16.ptr(4057, 4058, 1), Range16), $clone(new Range16.ptr(4170, 4175, 1), Range16), $clone(new Range16.ptr(4347, 4960, 613), Range16), $clone(new Range16.ptr(4961, 4968, 1), Range16), $clone(new Range16.ptr(5742, 5867, 125), Range16), $clone(new Range16.ptr(5868, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6100, 6102, 1), Range16), $clone(new Range16.ptr(6104, 6106, 1), Range16), $clone(new Range16.ptr(6144, 6149, 1), Range16), $clone(new Range16.ptr(6151, 6154, 1), Range16), $clone(new Range16.ptr(6468, 6469, 1), Range16), $clone(new Range16.ptr(6686, 6687, 1), Range16), $clone(new Range16.ptr(6816, 6822, 1), Range16), $clone(new Range16.ptr(6824, 6829, 1), Range16), $clone(new Range16.ptr(7002, 7008, 1), Range16), $clone(new Range16.ptr(7164, 7167, 1), Range16), $clone(new Range16.ptr(7227, 7231, 1), Range16), $clone(new Range16.ptr(7294, 7295, 1), Range16), $clone(new Range16.ptr(7360, 7367, 1), Range16), $clone(new Range16.ptr(7379, 8214, 835), Range16), $clone(new Range16.ptr(8215, 8224, 9), Range16), $clone(new Range16.ptr(8225, 8231, 1), Range16), $clone(new Range16.ptr(8240, 8248, 1), Range16), $clone(new Range16.ptr(8251, 8254, 1), Range16), $clone(new Range16.ptr(8257, 8259, 1), Range16), $clone(new Range16.ptr(8263, 8273, 1), Range16), $clone(new Range16.ptr(8275, 8277, 2), Range16), $clone(new Range16.ptr(8278, 8286, 1), Range16), $clone(new Range16.ptr(11513, 11516, 1), Range16), $clone(new Range16.ptr(11518, 11519, 1), Range16), $clone(new Range16.ptr(11632, 11776, 144), Range16), $clone(new Range16.ptr(11777, 11782, 5), Range16), $clone(new Range16.ptr(11783, 11784, 1), Range16), $clone(new Range16.ptr(11787, 11790, 3), Range16), $clone(new Range16.ptr(11791, 11798, 1), Range16), $clone(new Range16.ptr(11800, 11801, 1), Range16), $clone(new Range16.ptr(11803, 11806, 3), Range16), $clone(new Range16.ptr(11807, 11818, 11), Range16), $clone(new Range16.ptr(11819, 11822, 1), Range16), $clone(new Range16.ptr(11824, 11833, 1), Range16), $clone(new Range16.ptr(11836, 11839, 1), Range16), $clone(new Range16.ptr(11841, 11843, 2), Range16), $clone(new Range16.ptr(11844, 11855, 1), Range16), $clone(new Range16.ptr(11858, 12289, 431), Range16), $clone(new Range16.ptr(12290, 12291, 1), Range16), $clone(new Range16.ptr(12349, 12539, 190), Range16), $clone(new Range16.ptr(42238, 42239, 1), Range16), $clone(new Range16.ptr(42509, 42511, 1), Range16), $clone(new Range16.ptr(42611, 42622, 11), Range16), $clone(new Range16.ptr(42738, 42743, 1), Range16), $clone(new Range16.ptr(43124, 43127, 1), Range16), $clone(new Range16.ptr(43214, 43215, 1), Range16), $clone(new Range16.ptr(43256, 43258, 1), Range16), $clone(new Range16.ptr(43260, 43310, 50), Range16), $clone(new Range16.ptr(43311, 43359, 48), Range16), $clone(new Range16.ptr(43457, 43469, 1), Range16), $clone(new Range16.ptr(43486, 43487, 1), Range16), $clone(new Range16.ptr(43612, 43615, 1), Range16), $clone(new Range16.ptr(43742, 43743, 1), Range16), $clone(new Range16.ptr(43760, 43761, 1), Range16), $clone(new Range16.ptr(44011, 65040, 21029), Range16), $clone(new Range16.ptr(65041, 65046, 1), Range16), $clone(new Range16.ptr(65049, 65072, 23), Range16), $clone(new Range16.ptr(65093, 65094, 1), Range16), $clone(new Range16.ptr(65097, 65100, 1), Range16), $clone(new Range16.ptr(65104, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65111, 1), Range16), $clone(new Range16.ptr(65119, 65121, 1), Range16), $clone(new Range16.ptr(65128, 65130, 2), Range16), $clone(new Range16.ptr(65131, 65281, 150), Range16), $clone(new Range16.ptr(65282, 65283, 1), Range16), $clone(new Range16.ptr(65285, 65287, 1), Range16), $clone(new Range16.ptr(65290, 65294, 2), Range16), $clone(new Range16.ptr(65295, 65306, 11), Range16), $clone(new Range16.ptr(65307, 65311, 4), Range16), $clone(new Range16.ptr(65312, 65340, 28), Range16), $clone(new Range16.ptr(65377, 65380, 3), Range16), $clone(new Range16.ptr(65381, 65381, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(66463, 66512, 49), Range32), $clone(new Range32.ptr(66927, 67671, 744), Range32), $clone(new Range32.ptr(67871, 67903, 32), Range32), $clone(new Range32.ptr(68176, 68184, 1), Range32), $clone(new Range32.ptr(68223, 68336, 113), Range32), $clone(new Range32.ptr(68337, 68342, 1), Range32), $clone(new Range32.ptr(68409, 68415, 1), Range32), $clone(new Range32.ptr(68505, 68508, 1), Range32), $clone(new Range32.ptr(69461, 69465, 1), Range32), $clone(new Range32.ptr(69703, 69709, 1), Range32), $clone(new Range32.ptr(69819, 69820, 1), Range32), $clone(new Range32.ptr(69822, 69825, 1), Range32), $clone(new Range32.ptr(69952, 69955, 1), Range32), $clone(new Range32.ptr(70004, 70005, 1), Range32), $clone(new Range32.ptr(70085, 70088, 1), Range32), $clone(new Range32.ptr(70093, 70107, 14), Range32), $clone(new Range32.ptr(70109, 70111, 1), Range32), $clone(new Range32.ptr(70200, 70205, 1), Range32), $clone(new Range32.ptr(70313, 70731, 418), Range32), $clone(new Range32.ptr(70732, 70735, 1), Range32), $clone(new Range32.ptr(70746, 70747, 1), Range32), $clone(new Range32.ptr(70749, 70854, 105), Range32), $clone(new Range32.ptr(71105, 71127, 1), Range32), $clone(new Range32.ptr(71233, 71235, 1), Range32), $clone(new Range32.ptr(71264, 71276, 1), Range32), $clone(new Range32.ptr(71484, 71486, 1), Range32), $clone(new Range32.ptr(71739, 72004, 265), Range32), $clone(new Range32.ptr(72005, 72006, 1), Range32), $clone(new Range32.ptr(72162, 72255, 93), Range32), $clone(new Range32.ptr(72256, 72262, 1), Range32), $clone(new Range32.ptr(72346, 72348, 1), Range32), $clone(new Range32.ptr(72350, 72354, 1), Range32), $clone(new Range32.ptr(72769, 72773, 1), Range32), $clone(new Range32.ptr(72816, 72817, 1), Range32), $clone(new Range32.ptr(73463, 73464, 1), Range32), $clone(new Range32.ptr(73727, 74864, 1137), Range32), $clone(new Range32.ptr(74865, 74868, 1), Range32), $clone(new Range32.ptr(92782, 92783, 1), Range32), $clone(new Range32.ptr(92917, 92983, 66), Range32), $clone(new Range32.ptr(92984, 92987, 1), Range32), $clone(new Range32.ptr(92996, 93847, 851), Range32), $clone(new Range32.ptr(93848, 93850, 1), Range32), $clone(new Range32.ptr(94178, 113823, 19645), Range32), $clone(new Range32.ptr(121479, 121483, 1), Range32), $clone(new Range32.ptr(125278, 125279, 1), Range32)]), 8); + _Ps = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(40, 91, 51), Range16), $clone(new Range16.ptr(123, 3898, 3775), Range16), $clone(new Range16.ptr(3900, 5787, 1887), Range16), $clone(new Range16.ptr(8218, 8222, 4), Range16), $clone(new Range16.ptr(8261, 8317, 56), Range16), $clone(new Range16.ptr(8333, 8968, 635), Range16), $clone(new Range16.ptr(8970, 9001, 31), Range16), $clone(new Range16.ptr(10088, 10100, 2), Range16), $clone(new Range16.ptr(10181, 10214, 33), Range16), $clone(new Range16.ptr(10216, 10222, 2), Range16), $clone(new Range16.ptr(10627, 10647, 2), Range16), $clone(new Range16.ptr(10712, 10714, 2), Range16), $clone(new Range16.ptr(10748, 11810, 1062), Range16), $clone(new Range16.ptr(11812, 11816, 2), Range16), $clone(new Range16.ptr(11842, 12296, 454), Range16), $clone(new Range16.ptr(12298, 12304, 2), Range16), $clone(new Range16.ptr(12308, 12314, 2), Range16), $clone(new Range16.ptr(12317, 64831, 52514), Range16), $clone(new Range16.ptr(65047, 65077, 30), Range16), $clone(new Range16.ptr(65079, 65091, 2), Range16), $clone(new Range16.ptr(65095, 65113, 18), Range16), $clone(new Range16.ptr(65115, 65117, 2), Range16), $clone(new Range16.ptr(65288, 65339, 51), Range16), $clone(new Range16.ptr(65371, 65375, 4), Range16), $clone(new Range16.ptr(65378, 65378, 1), Range16)]), sliceType$1.nil, 1); + _S = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(36, 43, 7), Range16), $clone(new Range16.ptr(60, 62, 1), Range16), $clone(new Range16.ptr(94, 96, 2), Range16), $clone(new Range16.ptr(124, 126, 2), Range16), $clone(new Range16.ptr(162, 166, 1), Range16), $clone(new Range16.ptr(168, 169, 1), Range16), $clone(new Range16.ptr(172, 174, 2), Range16), $clone(new Range16.ptr(175, 177, 1), Range16), $clone(new Range16.ptr(180, 184, 4), Range16), $clone(new Range16.ptr(215, 247, 32), Range16), $clone(new Range16.ptr(706, 709, 1), Range16), $clone(new Range16.ptr(722, 735, 1), Range16), $clone(new Range16.ptr(741, 747, 1), Range16), $clone(new Range16.ptr(749, 751, 2), Range16), $clone(new Range16.ptr(752, 767, 1), Range16), $clone(new Range16.ptr(885, 900, 15), Range16), $clone(new Range16.ptr(901, 1014, 113), Range16), $clone(new Range16.ptr(1154, 1421, 267), Range16), $clone(new Range16.ptr(1422, 1423, 1), Range16), $clone(new Range16.ptr(1542, 1544, 1), Range16), $clone(new Range16.ptr(1547, 1550, 3), Range16), $clone(new Range16.ptr(1551, 1758, 207), Range16), $clone(new Range16.ptr(1769, 1789, 20), Range16), $clone(new Range16.ptr(1790, 2038, 248), Range16), $clone(new Range16.ptr(2046, 2047, 1), Range16), $clone(new Range16.ptr(2546, 2547, 1), Range16), $clone(new Range16.ptr(2554, 2555, 1), Range16), $clone(new Range16.ptr(2801, 2928, 127), Range16), $clone(new Range16.ptr(3059, 3066, 1), Range16), $clone(new Range16.ptr(3199, 3407, 208), Range16), $clone(new Range16.ptr(3449, 3647, 198), Range16), $clone(new Range16.ptr(3841, 3843, 1), Range16), $clone(new Range16.ptr(3859, 3861, 2), Range16), $clone(new Range16.ptr(3862, 3863, 1), Range16), $clone(new Range16.ptr(3866, 3871, 1), Range16), $clone(new Range16.ptr(3892, 3896, 2), Range16), $clone(new Range16.ptr(4030, 4037, 1), Range16), $clone(new Range16.ptr(4039, 4044, 1), Range16), $clone(new Range16.ptr(4046, 4047, 1), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4254, 4255, 1), Range16), $clone(new Range16.ptr(5008, 5017, 1), Range16), $clone(new Range16.ptr(5741, 6107, 366), Range16), $clone(new Range16.ptr(6464, 6622, 158), Range16), $clone(new Range16.ptr(6623, 6655, 1), Range16), $clone(new Range16.ptr(7009, 7018, 1), Range16), $clone(new Range16.ptr(7028, 7036, 1), Range16), $clone(new Range16.ptr(8125, 8127, 2), Range16), $clone(new Range16.ptr(8128, 8129, 1), Range16), $clone(new Range16.ptr(8141, 8143, 1), Range16), $clone(new Range16.ptr(8157, 8159, 1), Range16), $clone(new Range16.ptr(8173, 8175, 1), Range16), $clone(new Range16.ptr(8189, 8190, 1), Range16), $clone(new Range16.ptr(8260, 8274, 14), Range16), $clone(new Range16.ptr(8314, 8316, 1), Range16), $clone(new Range16.ptr(8330, 8332, 1), Range16), $clone(new Range16.ptr(8352, 8383, 1), Range16), $clone(new Range16.ptr(8448, 8449, 1), Range16), $clone(new Range16.ptr(8451, 8454, 1), Range16), $clone(new Range16.ptr(8456, 8457, 1), Range16), $clone(new Range16.ptr(8468, 8470, 2), Range16), $clone(new Range16.ptr(8471, 8472, 1), Range16), $clone(new Range16.ptr(8478, 8483, 1), Range16), $clone(new Range16.ptr(8485, 8489, 2), Range16), $clone(new Range16.ptr(8494, 8506, 12), Range16), $clone(new Range16.ptr(8507, 8512, 5), Range16), $clone(new Range16.ptr(8513, 8516, 1), Range16), $clone(new Range16.ptr(8522, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8586, 59), Range16), $clone(new Range16.ptr(8587, 8592, 5), Range16), $clone(new Range16.ptr(8593, 8967, 1), Range16), $clone(new Range16.ptr(8972, 9000, 1), Range16), $clone(new Range16.ptr(9003, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9372, 9449, 1), Range16), $clone(new Range16.ptr(9472, 10087, 1), Range16), $clone(new Range16.ptr(10132, 10180, 1), Range16), $clone(new Range16.ptr(10183, 10213, 1), Range16), $clone(new Range16.ptr(10224, 10626, 1), Range16), $clone(new Range16.ptr(10649, 10711, 1), Range16), $clone(new Range16.ptr(10716, 10747, 1), Range16), $clone(new Range16.ptr(10750, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11493, 11498, 1), Range16), $clone(new Range16.ptr(11856, 11857, 1), Range16), $clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12292, 12306, 14), Range16), $clone(new Range16.ptr(12307, 12320, 13), Range16), $clone(new Range16.ptr(12342, 12343, 1), Range16), $clone(new Range16.ptr(12350, 12351, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(12688, 12689, 1), Range16), $clone(new Range16.ptr(12694, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12800, 12830, 1), Range16), $clone(new Range16.ptr(12842, 12871, 1), Range16), $clone(new Range16.ptr(12880, 12896, 16), Range16), $clone(new Range16.ptr(12897, 12927, 1), Range16), $clone(new Range16.ptr(12938, 12976, 1), Range16), $clone(new Range16.ptr(12992, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42128, 42182, 1), Range16), $clone(new Range16.ptr(42752, 42774, 1), Range16), $clone(new Range16.ptr(42784, 42785, 1), Range16), $clone(new Range16.ptr(42889, 42890, 1), Range16), $clone(new Range16.ptr(43048, 43051, 1), Range16), $clone(new Range16.ptr(43062, 43065, 1), Range16), $clone(new Range16.ptr(43639, 43641, 1), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64297, 20414), Range16), $clone(new Range16.ptr(64434, 64449, 1), Range16), $clone(new Range16.ptr(65020, 65021, 1), Range16), $clone(new Range16.ptr(65122, 65124, 2), Range16), $clone(new Range16.ptr(65125, 65126, 1), Range16), $clone(new Range16.ptr(65129, 65284, 155), Range16), $clone(new Range16.ptr(65291, 65308, 17), Range16), $clone(new Range16.ptr(65309, 65310, 1), Range16), $clone(new Range16.ptr(65342, 65344, 2), Range16), $clone(new Range16.ptr(65372, 65374, 2), Range16), $clone(new Range16.ptr(65504, 65510, 1), Range16), $clone(new Range16.ptr(65512, 65518, 1), Range16), $clone(new Range16.ptr(65532, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65913, 65929, 1), Range32), $clone(new Range32.ptr(65932, 65934, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(65952, 66000, 48), Range32), $clone(new Range32.ptr(66001, 66044, 1), Range32), $clone(new Range32.ptr(67703, 67704, 1), Range32), $clone(new Range32.ptr(68296, 71487, 3191), Range32), $clone(new Range32.ptr(73685, 73713, 1), Range32), $clone(new Range32.ptr(92988, 92991, 1), Range32), $clone(new Range32.ptr(92997, 113820, 20823), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119140, 1), Range32), $clone(new Range32.ptr(119146, 119148, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119272, 1), Range32), $clone(new Range32.ptr(119296, 119361, 1), Range32), $clone(new Range32.ptr(119365, 119552, 187), Range32), $clone(new Range32.ptr(119553, 119638, 1), Range32), $clone(new Range32.ptr(120513, 120539, 26), Range32), $clone(new Range32.ptr(120571, 120597, 26), Range32), $clone(new Range32.ptr(120629, 120655, 26), Range32), $clone(new Range32.ptr(120687, 120713, 26), Range32), $clone(new Range32.ptr(120745, 120771, 26), Range32), $clone(new Range32.ptr(120832, 121343, 1), Range32), $clone(new Range32.ptr(121399, 121402, 1), Range32), $clone(new Range32.ptr(121453, 121460, 1), Range32), $clone(new Range32.ptr(121462, 121475, 1), Range32), $clone(new Range32.ptr(121477, 121478, 1), Range32), $clone(new Range32.ptr(123215, 123647, 432), Range32), $clone(new Range32.ptr(126124, 126128, 4), Range32), $clone(new Range32.ptr(126254, 126704, 450), Range32), $clone(new Range32.ptr(126705, 126976, 271), Range32), $clone(new Range32.ptr(126977, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127245, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 128727, 1), Range32), $clone(new Range32.ptr(128736, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128883, 1), Range32), $clone(new Range32.ptr(128896, 128984, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129024, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129400, 1), Range32), $clone(new Range32.ptr(129402, 129483, 1), Range32), $clone(new Range32.ptr(129485, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129652, 1), Range32), $clone(new Range32.ptr(129656, 129658, 1), Range32), $clone(new Range32.ptr(129664, 129670, 1), Range32), $clone(new Range32.ptr(129680, 129704, 1), Range32), $clone(new Range32.ptr(129712, 129718, 1), Range32), $clone(new Range32.ptr(129728, 129730, 1), Range32), $clone(new Range32.ptr(129744, 129750, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32)]), 10); + _Sc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(36, 162, 126), Range16), $clone(new Range16.ptr(163, 165, 1), Range16), $clone(new Range16.ptr(1423, 1547, 124), Range16), $clone(new Range16.ptr(2046, 2047, 1), Range16), $clone(new Range16.ptr(2546, 2547, 1), Range16), $clone(new Range16.ptr(2555, 2801, 246), Range16), $clone(new Range16.ptr(3065, 3647, 582), Range16), $clone(new Range16.ptr(6107, 8352, 2245), Range16), $clone(new Range16.ptr(8353, 8383, 1), Range16), $clone(new Range16.ptr(43064, 65020, 21956), Range16), $clone(new Range16.ptr(65129, 65284, 155), Range16), $clone(new Range16.ptr(65504, 65505, 1), Range16), $clone(new Range16.ptr(65509, 65510, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(73693, 73696, 1), Range32), $clone(new Range32.ptr(123647, 126128, 2481), Range32)]), 2); + _Sk = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(94, 96, 2), Range16), $clone(new Range16.ptr(168, 175, 7), Range16), $clone(new Range16.ptr(180, 184, 4), Range16), $clone(new Range16.ptr(706, 709, 1), Range16), $clone(new Range16.ptr(722, 735, 1), Range16), $clone(new Range16.ptr(741, 747, 1), Range16), $clone(new Range16.ptr(749, 751, 2), Range16), $clone(new Range16.ptr(752, 767, 1), Range16), $clone(new Range16.ptr(885, 900, 15), Range16), $clone(new Range16.ptr(901, 8125, 7224), Range16), $clone(new Range16.ptr(8127, 8129, 1), Range16), $clone(new Range16.ptr(8141, 8143, 1), Range16), $clone(new Range16.ptr(8157, 8159, 1), Range16), $clone(new Range16.ptr(8173, 8175, 1), Range16), $clone(new Range16.ptr(8189, 8190, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(42752, 42774, 1), Range16), $clone(new Range16.ptr(42784, 42785, 1), Range16), $clone(new Range16.ptr(42889, 42890, 1), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64434, 20551), Range16), $clone(new Range16.ptr(64435, 64449, 1), Range16), $clone(new Range16.ptr(65342, 65344, 2), Range16), $clone(new Range16.ptr(65507, 65507, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(127995, 127999, 1), Range32)]), 3); + _Sm = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43, 60, 17), Range16), $clone(new Range16.ptr(61, 62, 1), Range16), $clone(new Range16.ptr(124, 126, 2), Range16), $clone(new Range16.ptr(172, 177, 5), Range16), $clone(new Range16.ptr(215, 247, 32), Range16), $clone(new Range16.ptr(1014, 1542, 528), Range16), $clone(new Range16.ptr(1543, 1544, 1), Range16), $clone(new Range16.ptr(8260, 8274, 14), Range16), $clone(new Range16.ptr(8314, 8316, 1), Range16), $clone(new Range16.ptr(8330, 8332, 1), Range16), $clone(new Range16.ptr(8472, 8512, 40), Range16), $clone(new Range16.ptr(8513, 8516, 1), Range16), $clone(new Range16.ptr(8523, 8592, 69), Range16), $clone(new Range16.ptr(8593, 8596, 1), Range16), $clone(new Range16.ptr(8602, 8603, 1), Range16), $clone(new Range16.ptr(8608, 8614, 3), Range16), $clone(new Range16.ptr(8622, 8654, 32), Range16), $clone(new Range16.ptr(8655, 8658, 3), Range16), $clone(new Range16.ptr(8660, 8692, 32), Range16), $clone(new Range16.ptr(8693, 8959, 1), Range16), $clone(new Range16.ptr(8992, 8993, 1), Range16), $clone(new Range16.ptr(9084, 9115, 31), Range16), $clone(new Range16.ptr(9116, 9139, 1), Range16), $clone(new Range16.ptr(9180, 9185, 1), Range16), $clone(new Range16.ptr(9655, 9665, 10), Range16), $clone(new Range16.ptr(9720, 9727, 1), Range16), $clone(new Range16.ptr(9839, 10176, 337), Range16), $clone(new Range16.ptr(10177, 10180, 1), Range16), $clone(new Range16.ptr(10183, 10213, 1), Range16), $clone(new Range16.ptr(10224, 10239, 1), Range16), $clone(new Range16.ptr(10496, 10626, 1), Range16), $clone(new Range16.ptr(10649, 10711, 1), Range16), $clone(new Range16.ptr(10716, 10747, 1), Range16), $clone(new Range16.ptr(10750, 11007, 1), Range16), $clone(new Range16.ptr(11056, 11076, 1), Range16), $clone(new Range16.ptr(11079, 11084, 1), Range16), $clone(new Range16.ptr(64297, 65122, 825), Range16), $clone(new Range16.ptr(65124, 65126, 1), Range16), $clone(new Range16.ptr(65291, 65308, 17), Range16), $clone(new Range16.ptr(65309, 65310, 1), Range16), $clone(new Range16.ptr(65372, 65374, 2), Range16), $clone(new Range16.ptr(65506, 65513, 7), Range16), $clone(new Range16.ptr(65514, 65516, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(120513, 120539, 26), Range32), $clone(new Range32.ptr(120571, 120597, 26), Range32), $clone(new Range32.ptr(120629, 120655, 26), Range32), $clone(new Range32.ptr(120687, 120713, 26), Range32), $clone(new Range32.ptr(120745, 120771, 26), Range32), $clone(new Range32.ptr(126704, 126705, 1), Range32)]), 5); + _So = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(166, 169, 3), Range16), $clone(new Range16.ptr(174, 176, 2), Range16), $clone(new Range16.ptr(1154, 1421, 267), Range16), $clone(new Range16.ptr(1422, 1550, 128), Range16), $clone(new Range16.ptr(1551, 1758, 207), Range16), $clone(new Range16.ptr(1769, 1789, 20), Range16), $clone(new Range16.ptr(1790, 2038, 248), Range16), $clone(new Range16.ptr(2554, 2928, 374), Range16), $clone(new Range16.ptr(3059, 3064, 1), Range16), $clone(new Range16.ptr(3066, 3199, 133), Range16), $clone(new Range16.ptr(3407, 3449, 42), Range16), $clone(new Range16.ptr(3841, 3843, 1), Range16), $clone(new Range16.ptr(3859, 3861, 2), Range16), $clone(new Range16.ptr(3862, 3863, 1), Range16), $clone(new Range16.ptr(3866, 3871, 1), Range16), $clone(new Range16.ptr(3892, 3896, 2), Range16), $clone(new Range16.ptr(4030, 4037, 1), Range16), $clone(new Range16.ptr(4039, 4044, 1), Range16), $clone(new Range16.ptr(4046, 4047, 1), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4254, 4255, 1), Range16), $clone(new Range16.ptr(5008, 5017, 1), Range16), $clone(new Range16.ptr(5741, 6464, 723), Range16), $clone(new Range16.ptr(6622, 6655, 1), Range16), $clone(new Range16.ptr(7009, 7018, 1), Range16), $clone(new Range16.ptr(7028, 7036, 1), Range16), $clone(new Range16.ptr(8448, 8449, 1), Range16), $clone(new Range16.ptr(8451, 8454, 1), Range16), $clone(new Range16.ptr(8456, 8457, 1), Range16), $clone(new Range16.ptr(8468, 8470, 2), Range16), $clone(new Range16.ptr(8471, 8478, 7), Range16), $clone(new Range16.ptr(8479, 8483, 1), Range16), $clone(new Range16.ptr(8485, 8489, 2), Range16), $clone(new Range16.ptr(8494, 8506, 12), Range16), $clone(new Range16.ptr(8507, 8522, 15), Range16), $clone(new Range16.ptr(8524, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8586, 59), Range16), $clone(new Range16.ptr(8587, 8597, 10), Range16), $clone(new Range16.ptr(8598, 8601, 1), Range16), $clone(new Range16.ptr(8604, 8607, 1), Range16), $clone(new Range16.ptr(8609, 8610, 1), Range16), $clone(new Range16.ptr(8612, 8613, 1), Range16), $clone(new Range16.ptr(8615, 8621, 1), Range16), $clone(new Range16.ptr(8623, 8653, 1), Range16), $clone(new Range16.ptr(8656, 8657, 1), Range16), $clone(new Range16.ptr(8659, 8661, 2), Range16), $clone(new Range16.ptr(8662, 8691, 1), Range16), $clone(new Range16.ptr(8960, 8967, 1), Range16), $clone(new Range16.ptr(8972, 8991, 1), Range16), $clone(new Range16.ptr(8994, 9000, 1), Range16), $clone(new Range16.ptr(9003, 9083, 1), Range16), $clone(new Range16.ptr(9085, 9114, 1), Range16), $clone(new Range16.ptr(9140, 9179, 1), Range16), $clone(new Range16.ptr(9186, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9372, 9449, 1), Range16), $clone(new Range16.ptr(9472, 9654, 1), Range16), $clone(new Range16.ptr(9656, 9664, 1), Range16), $clone(new Range16.ptr(9666, 9719, 1), Range16), $clone(new Range16.ptr(9728, 9838, 1), Range16), $clone(new Range16.ptr(9840, 10087, 1), Range16), $clone(new Range16.ptr(10132, 10175, 1), Range16), $clone(new Range16.ptr(10240, 10495, 1), Range16), $clone(new Range16.ptr(11008, 11055, 1), Range16), $clone(new Range16.ptr(11077, 11078, 1), Range16), $clone(new Range16.ptr(11085, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11493, 11498, 1), Range16), $clone(new Range16.ptr(11856, 11857, 1), Range16), $clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12292, 12306, 14), Range16), $clone(new Range16.ptr(12307, 12320, 13), Range16), $clone(new Range16.ptr(12342, 12343, 1), Range16), $clone(new Range16.ptr(12350, 12351, 1), Range16), $clone(new Range16.ptr(12688, 12689, 1), Range16), $clone(new Range16.ptr(12694, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12800, 12830, 1), Range16), $clone(new Range16.ptr(12842, 12871, 1), Range16), $clone(new Range16.ptr(12880, 12896, 16), Range16), $clone(new Range16.ptr(12897, 12927, 1), Range16), $clone(new Range16.ptr(12938, 12976, 1), Range16), $clone(new Range16.ptr(12992, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42128, 42182, 1), Range16), $clone(new Range16.ptr(43048, 43051, 1), Range16), $clone(new Range16.ptr(43062, 43063, 1), Range16), $clone(new Range16.ptr(43065, 43639, 574), Range16), $clone(new Range16.ptr(43640, 43641, 1), Range16), $clone(new Range16.ptr(65021, 65508, 487), Range16), $clone(new Range16.ptr(65512, 65517, 5), Range16), $clone(new Range16.ptr(65518, 65532, 14), Range16), $clone(new Range16.ptr(65533, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65913, 65929, 1), Range32), $clone(new Range32.ptr(65932, 65934, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(65952, 66000, 48), Range32), $clone(new Range32.ptr(66001, 66044, 1), Range32), $clone(new Range32.ptr(67703, 67704, 1), Range32), $clone(new Range32.ptr(68296, 71487, 3191), Range32), $clone(new Range32.ptr(73685, 73692, 1), Range32), $clone(new Range32.ptr(73697, 73713, 1), Range32), $clone(new Range32.ptr(92988, 92991, 1), Range32), $clone(new Range32.ptr(92997, 113820, 20823), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119140, 1), Range32), $clone(new Range32.ptr(119146, 119148, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119272, 1), Range32), $clone(new Range32.ptr(119296, 119361, 1), Range32), $clone(new Range32.ptr(119365, 119552, 187), Range32), $clone(new Range32.ptr(119553, 119638, 1), Range32), $clone(new Range32.ptr(120832, 121343, 1), Range32), $clone(new Range32.ptr(121399, 121402, 1), Range32), $clone(new Range32.ptr(121453, 121460, 1), Range32), $clone(new Range32.ptr(121462, 121475, 1), Range32), $clone(new Range32.ptr(121477, 121478, 1), Range32), $clone(new Range32.ptr(123215, 126124, 2909), Range32), $clone(new Range32.ptr(126254, 126976, 722), Range32), $clone(new Range32.ptr(126977, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127245, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 127994, 1), Range32), $clone(new Range32.ptr(128000, 128727, 1), Range32), $clone(new Range32.ptr(128736, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128883, 1), Range32), $clone(new Range32.ptr(128896, 128984, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129024, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129400, 1), Range32), $clone(new Range32.ptr(129402, 129483, 1), Range32), $clone(new Range32.ptr(129485, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129652, 1), Range32), $clone(new Range32.ptr(129656, 129658, 1), Range32), $clone(new Range32.ptr(129664, 129670, 1), Range32), $clone(new Range32.ptr(129680, 129704, 1), Range32), $clone(new Range32.ptr(129712, 129718, 1), Range32), $clone(new Range32.ptr(129728, 129730, 1), Range32), $clone(new Range32.ptr(129744, 129750, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32)]), 2); + _Z = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(32, 160, 128), Range16), $clone(new Range16.ptr(5760, 8192, 2432), Range16), $clone(new Range16.ptr(8193, 8202, 1), Range16), $clone(new Range16.ptr(8232, 8233, 1), Range16), $clone(new Range16.ptr(8239, 8287, 48), Range16), $clone(new Range16.ptr(12288, 12288, 1), Range16)]), sliceType$1.nil, 1); + _Zl = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(8232, 8232, 1), Range16)]), sliceType$1.nil, 0); + _Zp = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(8233, 8233, 1), Range16)]), sliceType$1.nil, 0); + _Zs = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(32, 160, 128), Range16), $clone(new Range16.ptr(5760, 8192, 2432), Range16), $clone(new Range16.ptr(8193, 8202, 1), Range16), $clone(new Range16.ptr(8239, 8287, 48), Range16), $clone(new Range16.ptr(12288, 12288, 1), Range16)]), sliceType$1.nil, 1); + $pkg.Cc = _Cc; + $pkg.Cf = _Cf; + $pkg.Co = _Co; + $pkg.Cs = _Cs; + $pkg.Digit = _Nd; + $pkg.Nd = _Nd; + $pkg.Letter = _L; + $pkg.L = _L; + $pkg.Lm = _Lm; + $pkg.Lo = _Lo; + $pkg.Ll = _Ll; + $pkg.M = _M; + $pkg.Mc = _Mc; + $pkg.Me = _Me; + $pkg.Mn = _Mn; + $pkg.Nl = _Nl; + $pkg.No = _No; + $pkg.N = _N; + $pkg.C = _C; + $pkg.Pc = _Pc; + $pkg.Pd = _Pd; + $pkg.Pe = _Pe; + $pkg.Pf = _Pf; + $pkg.Pi = _Pi; + $pkg.Po = _Po; + $pkg.Ps = _Ps; + $pkg.Punct = _P; + $pkg.P = _P; + $pkg.Sc = _Sc; + $pkg.Sk = _Sk; + $pkg.Sm = _Sm; + $pkg.So = _So; + $pkg.Z = _Z; + $pkg.S = _S; + $pkg.Lt = _Lt; + $pkg.Upper = _Lu; + $pkg.Lu = _Lu; + $pkg.Zl = _Zl; + $pkg.Zp = _Zp; + $pkg.Zs = _Zs; + $pkg.Categories = $makeMap($String.keyFor, [{ k: "C", v: $pkg.C }, { k: "Cc", v: $pkg.Cc }, { k: "Cf", v: $pkg.Cf }, { k: "Co", v: $pkg.Co }, { k: "Cs", v: $pkg.Cs }, { k: "L", v: $pkg.L }, { k: "Ll", v: $pkg.Ll }, { k: "Lm", v: $pkg.Lm }, { k: "Lo", v: $pkg.Lo }, { k: "Lt", v: $pkg.Lt }, { k: "Lu", v: $pkg.Lu }, { k: "M", v: $pkg.M }, { k: "Mc", v: $pkg.Mc }, { k: "Me", v: $pkg.Me }, { k: "Mn", v: $pkg.Mn }, { k: "N", v: $pkg.N }, { k: "Nd", v: $pkg.Nd }, { k: "Nl", v: $pkg.Nl }, { k: "No", v: $pkg.No }, { k: "P", v: $pkg.P }, { k: "Pc", v: $pkg.Pc }, { k: "Pd", v: $pkg.Pd }, { k: "Pe", v: $pkg.Pe }, { k: "Pf", v: $pkg.Pf }, { k: "Pi", v: $pkg.Pi }, { k: "Po", v: $pkg.Po }, { k: "Ps", v: $pkg.Ps }, { k: "S", v: $pkg.S }, { k: "Sc", v: $pkg.Sc }, { k: "Sk", v: $pkg.Sk }, { k: "Sm", v: $pkg.Sm }, { k: "So", v: $pkg.So }, { k: "Z", v: $pkg.Z }, { k: "Zl", v: $pkg.Zl }, { k: "Zp", v: $pkg.Zp }, { k: "Zs", v: $pkg.Zs }]); + _Adlam = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(125184, 125259, 1), Range32), $clone(new Range32.ptr(125264, 125273, 1), Range32), $clone(new Range32.ptr(125278, 125279, 1), Range32)]), 0); + _Ahom = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71424, 71450, 1), Range32), $clone(new Range32.ptr(71453, 71467, 1), Range32), $clone(new Range32.ptr(71472, 71487, 1), Range32)]), 0); + _Anatolian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(82944, 83526, 1), Range32)]), 0); + _Arabic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1536, 1540, 1), Range16), $clone(new Range16.ptr(1542, 1547, 1), Range16), $clone(new Range16.ptr(1549, 1562, 1), Range16), $clone(new Range16.ptr(1564, 1568, 2), Range16), $clone(new Range16.ptr(1569, 1599, 1), Range16), $clone(new Range16.ptr(1601, 1610, 1), Range16), $clone(new Range16.ptr(1622, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1756, 1), Range16), $clone(new Range16.ptr(1758, 1791, 1), Range16), $clone(new Range16.ptr(1872, 1919, 1), Range16), $clone(new Range16.ptr(2208, 2228, 1), Range16), $clone(new Range16.ptr(2230, 2247, 1), Range16), $clone(new Range16.ptr(2259, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2303, 1), Range16), $clone(new Range16.ptr(64336, 64449, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64848, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(65008, 65021, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(126464, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(126704, 126705, 1), Range32)]), 0); + _Armenian = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(1369, 1418, 1), Range16), $clone(new Range16.ptr(1421, 1423, 1), Range16), $clone(new Range16.ptr(64275, 64279, 1), Range16)]), sliceType$1.nil, 0); + _Avestan = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68352, 68405, 1), Range32), $clone(new Range32.ptr(68409, 68415, 1), Range32)]), 0); + _Balinese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6912, 6987, 1), Range16), $clone(new Range16.ptr(6992, 7036, 1), Range16)]), sliceType$1.nil, 0); + _Bamum = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(42656, 42743, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(92160, 92728, 1), Range32)]), 0); + _Bassa_Vah = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(92880, 92909, 1), Range32), $clone(new Range32.ptr(92912, 92917, 1), Range32)]), 0); + _Batak = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(7104, 7155, 1), Range16), $clone(new Range16.ptr(7164, 7167, 1), Range16)]), sliceType$1.nil, 0); + _Bengali = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2432, 2435, 1), Range16), $clone(new Range16.ptr(2437, 2444, 1), Range16), $clone(new Range16.ptr(2447, 2448, 1), Range16), $clone(new Range16.ptr(2451, 2472, 1), Range16), $clone(new Range16.ptr(2474, 2480, 1), Range16), $clone(new Range16.ptr(2482, 2486, 4), Range16), $clone(new Range16.ptr(2487, 2489, 1), Range16), $clone(new Range16.ptr(2492, 2500, 1), Range16), $clone(new Range16.ptr(2503, 2504, 1), Range16), $clone(new Range16.ptr(2507, 2510, 1), Range16), $clone(new Range16.ptr(2519, 2524, 5), Range16), $clone(new Range16.ptr(2525, 2527, 2), Range16), $clone(new Range16.ptr(2528, 2531, 1), Range16), $clone(new Range16.ptr(2534, 2558, 1), Range16)]), sliceType$1.nil, 0); + _Bhaiksuki = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(72704, 72712, 1), Range32), $clone(new Range32.ptr(72714, 72758, 1), Range32), $clone(new Range32.ptr(72760, 72773, 1), Range32), $clone(new Range32.ptr(72784, 72812, 1), Range32)]), 0); + _Bopomofo = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(746, 747, 1), Range16), $clone(new Range16.ptr(12549, 12591, 1), Range16), $clone(new Range16.ptr(12704, 12735, 1), Range16)]), sliceType$1.nil, 0); + _Brahmi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69632, 69709, 1), Range32), $clone(new Range32.ptr(69714, 69743, 1), Range32), $clone(new Range32.ptr(69759, 69759, 1), Range32)]), 0); + _Braille = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(10240, 10495, 1), Range16)]), sliceType$1.nil, 0); + _Buginese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6656, 6683, 1), Range16), $clone(new Range16.ptr(6686, 6687, 1), Range16)]), sliceType$1.nil, 0); + _Buhid = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5952, 5971, 1), Range16)]), sliceType$1.nil, 0); + _Canadian_Aboriginal = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5120, 5759, 1), Range16), $clone(new Range16.ptr(6320, 6389, 1), Range16)]), sliceType$1.nil, 0); + _Carian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66208, 66256, 1), Range32)]), 0); + _Caucasian_Albanian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66864, 66915, 1), Range32), $clone(new Range32.ptr(66927, 66927, 1), Range32)]), 0); + _Chakma = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69888, 69940, 1), Range32), $clone(new Range32.ptr(69942, 69959, 1), Range32)]), 0); + _Cham = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43520, 43574, 1), Range16), $clone(new Range16.ptr(43584, 43597, 1), Range16), $clone(new Range16.ptr(43600, 43609, 1), Range16), $clone(new Range16.ptr(43612, 43615, 1), Range16)]), sliceType$1.nil, 0); + _Cherokee = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(43888, 43967, 1), Range16)]), sliceType$1.nil, 0); + _Chorasmian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69552, 69579, 1), Range32)]), 0); + _Common = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(0, 64, 1), Range16), $clone(new Range16.ptr(91, 96, 1), Range16), $clone(new Range16.ptr(123, 169, 1), Range16), $clone(new Range16.ptr(171, 185, 1), Range16), $clone(new Range16.ptr(187, 191, 1), Range16), $clone(new Range16.ptr(215, 247, 32), Range16), $clone(new Range16.ptr(697, 735, 1), Range16), $clone(new Range16.ptr(741, 745, 1), Range16), $clone(new Range16.ptr(748, 767, 1), Range16), $clone(new Range16.ptr(884, 894, 10), Range16), $clone(new Range16.ptr(901, 903, 2), Range16), $clone(new Range16.ptr(1541, 1548, 7), Range16), $clone(new Range16.ptr(1563, 1567, 4), Range16), $clone(new Range16.ptr(1600, 1757, 157), Range16), $clone(new Range16.ptr(2274, 2404, 130), Range16), $clone(new Range16.ptr(2405, 3647, 1242), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4347, 5867, 1520), Range16), $clone(new Range16.ptr(5868, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6146, 6147, 1), Range16), $clone(new Range16.ptr(6149, 7379, 1230), Range16), $clone(new Range16.ptr(7393, 7401, 8), Range16), $clone(new Range16.ptr(7402, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7415, 1), Range16), $clone(new Range16.ptr(7418, 8192, 774), Range16), $clone(new Range16.ptr(8193, 8203, 1), Range16), $clone(new Range16.ptr(8206, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8304, 1), Range16), $clone(new Range16.ptr(8308, 8318, 1), Range16), $clone(new Range16.ptr(8320, 8334, 1), Range16), $clone(new Range16.ptr(8352, 8383, 1), Range16), $clone(new Range16.ptr(8448, 8485, 1), Range16), $clone(new Range16.ptr(8487, 8489, 1), Range16), $clone(new Range16.ptr(8492, 8497, 1), Range16), $clone(new Range16.ptr(8499, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8543, 1), Range16), $clone(new Range16.ptr(8585, 8587, 1), Range16), $clone(new Range16.ptr(8592, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9312, 10239, 1), Range16), $clone(new Range16.ptr(10496, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11776, 11858, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12288, 12292, 1), Range16), $clone(new Range16.ptr(12294, 12296, 2), Range16), $clone(new Range16.ptr(12297, 12320, 1), Range16), $clone(new Range16.ptr(12336, 12343, 1), Range16), $clone(new Range16.ptr(12348, 12351, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(12448, 12539, 91), Range16), $clone(new Range16.ptr(12540, 12688, 148), Range16), $clone(new Range16.ptr(12689, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12832, 12895, 1), Range16), $clone(new Range16.ptr(12927, 13007, 1), Range16), $clone(new Range16.ptr(13055, 13144, 89), Range16), $clone(new Range16.ptr(13145, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42752, 42785, 1), Range16), $clone(new Range16.ptr(42888, 42890, 1), Range16), $clone(new Range16.ptr(43056, 43065, 1), Range16), $clone(new Range16.ptr(43310, 43471, 161), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64830, 20947), Range16), $clone(new Range16.ptr(64831, 65040, 209), Range16), $clone(new Range16.ptr(65041, 65049, 1), Range16), $clone(new Range16.ptr(65072, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65126, 1), Range16), $clone(new Range16.ptr(65128, 65131, 1), Range16), $clone(new Range16.ptr(65279, 65281, 2), Range16), $clone(new Range16.ptr(65282, 65312, 1), Range16), $clone(new Range16.ptr(65339, 65344, 1), Range16), $clone(new Range16.ptr(65371, 65381, 1), Range16), $clone(new Range16.ptr(65392, 65438, 46), Range16), $clone(new Range16.ptr(65439, 65504, 65), Range16), $clone(new Range16.ptr(65505, 65510, 1), Range16), $clone(new Range16.ptr(65512, 65518, 1), Range16), $clone(new Range16.ptr(65529, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(66000, 66044, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(94178, 94179, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119142, 1), Range32), $clone(new Range32.ptr(119146, 119162, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119272, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119552, 119638, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(119808, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119964, 1), Range32), $clone(new Range32.ptr(119966, 119967, 1), Range32), $clone(new Range32.ptr(119970, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120094, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120146, 120485, 1), Range32), $clone(new Range32.ptr(120488, 120779, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(126065, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126269, 1), Range32), $clone(new Range32.ptr(126976, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127232, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127487, 1), Range32), $clone(new Range32.ptr(127489, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 128727, 1), Range32), $clone(new Range32.ptr(128736, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128883, 1), Range32), $clone(new Range32.ptr(128896, 128984, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129024, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129400, 1), Range32), $clone(new Range32.ptr(129402, 129483, 1), Range32), $clone(new Range32.ptr(129485, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129652, 1), Range32), $clone(new Range32.ptr(129656, 129658, 1), Range32), $clone(new Range32.ptr(129664, 129670, 1), Range32), $clone(new Range32.ptr(129680, 129704, 1), Range32), $clone(new Range32.ptr(129712, 129718, 1), Range32), $clone(new Range32.ptr(129728, 129730, 1), Range32), $clone(new Range32.ptr(129744, 129750, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32)]), 6); + _Coptic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(994, 1007, 1), Range16), $clone(new Range16.ptr(11392, 11507, 1), Range16), $clone(new Range16.ptr(11513, 11519, 1), Range16)]), sliceType$1.nil, 0); + _Cuneiform = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(73728, 74649, 1), Range32), $clone(new Range32.ptr(74752, 74862, 1), Range32), $clone(new Range32.ptr(74864, 74868, 1), Range32), $clone(new Range32.ptr(74880, 75075, 1), Range32)]), 0); + _Cypriot = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67584, 67589, 1), Range32), $clone(new Range32.ptr(67592, 67594, 2), Range32), $clone(new Range32.ptr(67595, 67637, 1), Range32), $clone(new Range32.ptr(67639, 67640, 1), Range32), $clone(new Range32.ptr(67644, 67647, 3), Range32)]), 0); + _Cyrillic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1024, 1156, 1), Range16), $clone(new Range16.ptr(1159, 1327, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7467, 7544, 77), Range16), $clone(new Range16.ptr(11744, 11775, 1), Range16), $clone(new Range16.ptr(42560, 42655, 1), Range16), $clone(new Range16.ptr(65070, 65071, 1), Range16)]), sliceType$1.nil, 0); + _Deseret = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66560, 66639, 1), Range32)]), 0); + _Devanagari = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2304, 2384, 1), Range16), $clone(new Range16.ptr(2389, 2403, 1), Range16), $clone(new Range16.ptr(2406, 2431, 1), Range16), $clone(new Range16.ptr(43232, 43263, 1), Range16)]), sliceType$1.nil, 0); + _Dives_Akuru = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71936, 71942, 1), Range32), $clone(new Range32.ptr(71945, 71948, 3), Range32), $clone(new Range32.ptr(71949, 71955, 1), Range32), $clone(new Range32.ptr(71957, 71958, 1), Range32), $clone(new Range32.ptr(71960, 71989, 1), Range32), $clone(new Range32.ptr(71991, 71992, 1), Range32), $clone(new Range32.ptr(71995, 72006, 1), Range32), $clone(new Range32.ptr(72016, 72025, 1), Range32)]), 0); + _Dogra = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71680, 71739, 1), Range32)]), 0); + _Duployan = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(113664, 113770, 1), Range32), $clone(new Range32.ptr(113776, 113788, 1), Range32), $clone(new Range32.ptr(113792, 113800, 1), Range32), $clone(new Range32.ptr(113808, 113817, 1), Range32), $clone(new Range32.ptr(113820, 113823, 1), Range32)]), 0); + _Egyptian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(77824, 78894, 1), Range32), $clone(new Range32.ptr(78896, 78904, 1), Range32)]), 0); + _Elbasan = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66816, 66855, 1), Range32)]), 0); + _Elymaic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69600, 69622, 1), Range32)]), 0); + _Ethiopic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4608, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4957, 4988, 1), Range16), $clone(new Range16.ptr(4992, 5017, 1), Range16), $clone(new Range16.ptr(11648, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(43777, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16)]), sliceType$1.nil, 0); + _Georgian = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4256, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4348, 4351, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(11520, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16)]), sliceType$1.nil, 0); + _Glagolitic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(11264, 11310, 1), Range16), $clone(new Range16.ptr(11312, 11358, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32)]), 0); + _Gothic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66352, 66378, 1), Range32)]), 0); + _Grantha = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70400, 70403, 1), Range32), $clone(new Range32.ptr(70405, 70412, 1), Range32), $clone(new Range32.ptr(70415, 70416, 1), Range32), $clone(new Range32.ptr(70419, 70440, 1), Range32), $clone(new Range32.ptr(70442, 70448, 1), Range32), $clone(new Range32.ptr(70450, 70451, 1), Range32), $clone(new Range32.ptr(70453, 70457, 1), Range32), $clone(new Range32.ptr(70460, 70468, 1), Range32), $clone(new Range32.ptr(70471, 70472, 1), Range32), $clone(new Range32.ptr(70475, 70477, 1), Range32), $clone(new Range32.ptr(70480, 70487, 7), Range32), $clone(new Range32.ptr(70493, 70499, 1), Range32), $clone(new Range32.ptr(70502, 70508, 1), Range32), $clone(new Range32.ptr(70512, 70516, 1), Range32)]), 0); + _Greek = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(880, 883, 1), Range16), $clone(new Range16.ptr(885, 887, 1), Range16), $clone(new Range16.ptr(890, 893, 1), Range16), $clone(new Range16.ptr(895, 900, 5), Range16), $clone(new Range16.ptr(902, 904, 2), Range16), $clone(new Range16.ptr(905, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 929, 1), Range16), $clone(new Range16.ptr(931, 993, 1), Range16), $clone(new Range16.ptr(1008, 1023, 1), Range16), $clone(new Range16.ptr(7462, 7466, 1), Range16), $clone(new Range16.ptr(7517, 7521, 1), Range16), $clone(new Range16.ptr(7526, 7530, 1), Range16), $clone(new Range16.ptr(7615, 7936, 321), Range16), $clone(new Range16.ptr(7937, 7957, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7968, 8005, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8016, 8023, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8032, 8061, 1), Range16), $clone(new Range16.ptr(8064, 8116, 1), Range16), $clone(new Range16.ptr(8118, 8132, 1), Range16), $clone(new Range16.ptr(8134, 8147, 1), Range16), $clone(new Range16.ptr(8150, 8155, 1), Range16), $clone(new Range16.ptr(8157, 8175, 1), Range16), $clone(new Range16.ptr(8178, 8180, 1), Range16), $clone(new Range16.ptr(8182, 8190, 1), Range16), $clone(new Range16.ptr(8486, 43877, 35391), Range16)]), new sliceType$1([$clone(new Range32.ptr(65856, 65934, 1), Range32), $clone(new Range32.ptr(65952, 119296, 53344), Range32), $clone(new Range32.ptr(119297, 119365, 1), Range32)]), 0); + _Gujarati = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2689, 2691, 1), Range16), $clone(new Range16.ptr(2693, 2701, 1), Range16), $clone(new Range16.ptr(2703, 2705, 1), Range16), $clone(new Range16.ptr(2707, 2728, 1), Range16), $clone(new Range16.ptr(2730, 2736, 1), Range16), $clone(new Range16.ptr(2738, 2739, 1), Range16), $clone(new Range16.ptr(2741, 2745, 1), Range16), $clone(new Range16.ptr(2748, 2757, 1), Range16), $clone(new Range16.ptr(2759, 2761, 1), Range16), $clone(new Range16.ptr(2763, 2765, 1), Range16), $clone(new Range16.ptr(2768, 2784, 16), Range16), $clone(new Range16.ptr(2785, 2787, 1), Range16), $clone(new Range16.ptr(2790, 2801, 1), Range16), $clone(new Range16.ptr(2809, 2815, 1), Range16)]), sliceType$1.nil, 0); + _Gunjala_Gondi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(73056, 73061, 1), Range32), $clone(new Range32.ptr(73063, 73064, 1), Range32), $clone(new Range32.ptr(73066, 73102, 1), Range32), $clone(new Range32.ptr(73104, 73105, 1), Range32), $clone(new Range32.ptr(73107, 73112, 1), Range32), $clone(new Range32.ptr(73120, 73129, 1), Range32)]), 0); + _Gurmukhi = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2561, 2563, 1), Range16), $clone(new Range16.ptr(2565, 2570, 1), Range16), $clone(new Range16.ptr(2575, 2576, 1), Range16), $clone(new Range16.ptr(2579, 2600, 1), Range16), $clone(new Range16.ptr(2602, 2608, 1), Range16), $clone(new Range16.ptr(2610, 2611, 1), Range16), $clone(new Range16.ptr(2613, 2614, 1), Range16), $clone(new Range16.ptr(2616, 2617, 1), Range16), $clone(new Range16.ptr(2620, 2622, 2), Range16), $clone(new Range16.ptr(2623, 2626, 1), Range16), $clone(new Range16.ptr(2631, 2632, 1), Range16), $clone(new Range16.ptr(2635, 2637, 1), Range16), $clone(new Range16.ptr(2641, 2649, 8), Range16), $clone(new Range16.ptr(2650, 2652, 1), Range16), $clone(new Range16.ptr(2654, 2662, 8), Range16), $clone(new Range16.ptr(2663, 2678, 1), Range16)]), sliceType$1.nil, 0); + _Han = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12293, 12295, 2), Range16), $clone(new Range16.ptr(12321, 12329, 1), Range16), $clone(new Range16.ptr(12344, 12347, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 40956, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(94192, 94193, 1), Range32), $clone(new Range32.ptr(131072, 173789, 1), Range32), $clone(new Range32.ptr(173824, 177972, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32)]), 0); + _Hangul = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4352, 4607, 1), Range16), $clone(new Range16.ptr(12334, 12335, 1), Range16), $clone(new Range16.ptr(12593, 12686, 1), Range16), $clone(new Range16.ptr(12800, 12830, 1), Range16), $clone(new Range16.ptr(12896, 12926, 1), Range16), $clone(new Range16.ptr(43360, 43388, 1), Range16), $clone(new Range16.ptr(44032, 55203, 1), Range16), $clone(new Range16.ptr(55216, 55238, 1), Range16), $clone(new Range16.ptr(55243, 55291, 1), Range16), $clone(new Range16.ptr(65440, 65470, 1), Range16), $clone(new Range16.ptr(65474, 65479, 1), Range16), $clone(new Range16.ptr(65482, 65487, 1), Range16), $clone(new Range16.ptr(65490, 65495, 1), Range16), $clone(new Range16.ptr(65498, 65500, 1), Range16)]), sliceType$1.nil, 0); + _Hanifi_Rohingya = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68864, 68903, 1), Range32), $clone(new Range32.ptr(68912, 68921, 1), Range32)]), 0); + _Hanunoo = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5920, 5940, 1), Range16)]), sliceType$1.nil, 0); + _Hatran = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67808, 67826, 1), Range32), $clone(new Range32.ptr(67828, 67829, 1), Range32), $clone(new Range32.ptr(67835, 67839, 1), Range32)]), 0); + _Hebrew = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1425, 1479, 1), Range16), $clone(new Range16.ptr(1488, 1514, 1), Range16), $clone(new Range16.ptr(1519, 1524, 1), Range16), $clone(new Range16.ptr(64285, 64310, 1), Range16), $clone(new Range16.ptr(64312, 64316, 1), Range16), $clone(new Range16.ptr(64318, 64320, 2), Range16), $clone(new Range16.ptr(64321, 64323, 2), Range16), $clone(new Range16.ptr(64324, 64326, 2), Range16), $clone(new Range16.ptr(64327, 64335, 1), Range16)]), sliceType$1.nil, 0); + _Hiragana = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12445, 12447, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(110593, 110878, 1), Range32), $clone(new Range32.ptr(110928, 110930, 1), Range32), $clone(new Range32.ptr(127488, 127488, 1), Range32)]), 0); + _Imperial_Aramaic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67648, 67669, 1), Range32), $clone(new Range32.ptr(67671, 67679, 1), Range32)]), 0); + _Inherited = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1157, 1158, 1), Range16), $clone(new Range16.ptr(1611, 1621, 1), Range16), $clone(new Range16.ptr(1648, 2385, 737), Range16), $clone(new Range16.ptr(2386, 2388, 1), Range16), $clone(new Range16.ptr(6832, 6848, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7392, 1), Range16), $clone(new Range16.ptr(7394, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7416, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7673, 1), Range16), $clone(new Range16.ptr(7675, 7679, 1), Range16), $clone(new Range16.ptr(8204, 8205, 1), Range16), $clone(new Range16.ptr(8400, 8432, 1), Range16), $clone(new Range16.ptr(12330, 12333, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(65024, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65069, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(70459, 119143, 48684), Range32), $clone(new Range32.ptr(119144, 119145, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); + _Inscriptional_Pahlavi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68448, 68466, 1), Range32), $clone(new Range32.ptr(68472, 68479, 1), Range32)]), 0); + _Inscriptional_Parthian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68416, 68437, 1), Range32), $clone(new Range32.ptr(68440, 68447, 1), Range32)]), 0); + _Javanese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43392, 43469, 1), Range16), $clone(new Range16.ptr(43472, 43481, 1), Range16), $clone(new Range16.ptr(43486, 43487, 1), Range16)]), sliceType$1.nil, 0); + _Kaithi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69760, 69825, 1), Range32), $clone(new Range32.ptr(69837, 69837, 1), Range32)]), 0); + _Kannada = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3200, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3260, 3268, 1), Range16), $clone(new Range16.ptr(3270, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3277, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3294, 3296, 2), Range16), $clone(new Range16.ptr(3297, 3299, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3313, 3314, 1), Range16)]), sliceType$1.nil, 0); + _Katakana = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(12449, 12538, 1), Range16), $clone(new Range16.ptr(12541, 12543, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13008, 13054, 1), Range16), $clone(new Range16.ptr(13056, 13143, 1), Range16), $clone(new Range16.ptr(65382, 65391, 1), Range16), $clone(new Range16.ptr(65393, 65437, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(110592, 110948, 356), Range32), $clone(new Range32.ptr(110949, 110951, 1), Range32)]), 0); + _Kayah_Li = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43264, 43309, 1), Range16), $clone(new Range16.ptr(43311, 43311, 1), Range16)]), sliceType$1.nil, 0); + _Kharoshthi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68096, 68099, 1), Range32), $clone(new Range32.ptr(68101, 68102, 1), Range32), $clone(new Range32.ptr(68108, 68115, 1), Range32), $clone(new Range32.ptr(68117, 68119, 1), Range32), $clone(new Range32.ptr(68121, 68149, 1), Range32), $clone(new Range32.ptr(68152, 68154, 1), Range32), $clone(new Range32.ptr(68159, 68168, 1), Range32), $clone(new Range32.ptr(68176, 68184, 1), Range32)]), 0); + _Khitan_Small_Script = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(94180, 101120, 6940), Range32), $clone(new Range32.ptr(101121, 101589, 1), Range32)]), 0); + _Khmer = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6016, 6109, 1), Range16), $clone(new Range16.ptr(6112, 6121, 1), Range16), $clone(new Range16.ptr(6128, 6137, 1), Range16), $clone(new Range16.ptr(6624, 6655, 1), Range16)]), sliceType$1.nil, 0); + _Khojki = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70206, 1), Range32)]), 0); + _Khudawadi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70320, 70378, 1), Range32), $clone(new Range32.ptr(70384, 70393, 1), Range32)]), 0); + _Lao = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3773, 1), Range16), $clone(new Range16.ptr(3776, 3780, 1), Range16), $clone(new Range16.ptr(3782, 3784, 2), Range16), $clone(new Range16.ptr(3785, 3789, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3804, 3807, 1), Range16)]), sliceType$1.nil, 0); + _Latin = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(170, 186, 16), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 246, 1), Range16), $clone(new Range16.ptr(248, 696, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(7424, 7461, 1), Range16), $clone(new Range16.ptr(7468, 7516, 1), Range16), $clone(new Range16.ptr(7522, 7525, 1), Range16), $clone(new Range16.ptr(7531, 7543, 1), Range16), $clone(new Range16.ptr(7545, 7614, 1), Range16), $clone(new Range16.ptr(7680, 7935, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(8490, 8491, 1), Range16), $clone(new Range16.ptr(8498, 8526, 28), Range16), $clone(new Range16.ptr(8544, 8584, 1), Range16), $clone(new Range16.ptr(11360, 11391, 1), Range16), $clone(new Range16.ptr(42786, 42887, 1), Range16), $clone(new Range16.ptr(42891, 42943, 1), Range16), $clone(new Range16.ptr(42946, 42954, 1), Range16), $clone(new Range16.ptr(42997, 43007, 1), Range16), $clone(new Range16.ptr(43824, 43866, 1), Range16), $clone(new Range16.ptr(43868, 43876, 1), Range16), $clone(new Range16.ptr(43878, 43881, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), sliceType$1.nil, 5); + _Lepcha = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(7168, 7223, 1), Range16), $clone(new Range16.ptr(7227, 7241, 1), Range16), $clone(new Range16.ptr(7245, 7247, 1), Range16)]), sliceType$1.nil, 0); + _Limbu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6400, 6430, 1), Range16), $clone(new Range16.ptr(6432, 6443, 1), Range16), $clone(new Range16.ptr(6448, 6459, 1), Range16), $clone(new Range16.ptr(6464, 6468, 4), Range16), $clone(new Range16.ptr(6469, 6479, 1), Range16)]), sliceType$1.nil, 0); + _Linear_A = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67072, 67382, 1), Range32), $clone(new Range32.ptr(67392, 67413, 1), Range32), $clone(new Range32.ptr(67424, 67431, 1), Range32)]), 0); + _Linear_B = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(65536, 65547, 1), Range32), $clone(new Range32.ptr(65549, 65574, 1), Range32), $clone(new Range32.ptr(65576, 65594, 1), Range32), $clone(new Range32.ptr(65596, 65597, 1), Range32), $clone(new Range32.ptr(65599, 65613, 1), Range32), $clone(new Range32.ptr(65616, 65629, 1), Range32), $clone(new Range32.ptr(65664, 65786, 1), Range32)]), 0); + _Lisu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(42192, 42239, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(73648, 73648, 1), Range32)]), 0); + _Lycian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66176, 66204, 1), Range32)]), 0); + _Lydian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67872, 67897, 1), Range32), $clone(new Range32.ptr(67903, 67903, 1), Range32)]), 0); + _Mahajani = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69968, 70006, 1), Range32)]), 0); + _Makasar = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(73440, 73464, 1), Range32)]), 0); + _Malayalam = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3328, 3340, 1), Range16), $clone(new Range16.ptr(3342, 3344, 1), Range16), $clone(new Range16.ptr(3346, 3396, 1), Range16), $clone(new Range16.ptr(3398, 3400, 1), Range16), $clone(new Range16.ptr(3402, 3407, 1), Range16), $clone(new Range16.ptr(3412, 3427, 1), Range16), $clone(new Range16.ptr(3430, 3455, 1), Range16)]), sliceType$1.nil, 0); + _Mandaic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2112, 2139, 1), Range16), $clone(new Range16.ptr(2142, 2142, 1), Range16)]), sliceType$1.nil, 0); + _Manichaean = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68288, 68326, 1), Range32), $clone(new Range32.ptr(68331, 68342, 1), Range32)]), 0); + _Marchen = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(72816, 72847, 1), Range32), $clone(new Range32.ptr(72850, 72871, 1), Range32), $clone(new Range32.ptr(72873, 72886, 1), Range32)]), 0); + _Masaram_Gondi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(72960, 72966, 1), Range32), $clone(new Range32.ptr(72968, 72969, 1), Range32), $clone(new Range32.ptr(72971, 73014, 1), Range32), $clone(new Range32.ptr(73018, 73020, 2), Range32), $clone(new Range32.ptr(73021, 73023, 2), Range32), $clone(new Range32.ptr(73024, 73031, 1), Range32), $clone(new Range32.ptr(73040, 73049, 1), Range32)]), 0); + _Medefaidrin = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(93760, 93850, 1), Range32)]), 0); + _Meetei_Mayek = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43744, 43766, 1), Range16), $clone(new Range16.ptr(43968, 44013, 1), Range16), $clone(new Range16.ptr(44016, 44025, 1), Range16)]), sliceType$1.nil, 0); + _Mende_Kikakui = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(124928, 125124, 1), Range32), $clone(new Range32.ptr(125127, 125142, 1), Range32)]), 0); + _Meroitic_Cursive = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68000, 68023, 1), Range32), $clone(new Range32.ptr(68028, 68047, 1), Range32), $clone(new Range32.ptr(68050, 68095, 1), Range32)]), 0); + _Meroitic_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67968, 67999, 1), Range32)]), 0); + _Miao = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(93952, 94026, 1), Range32), $clone(new Range32.ptr(94031, 94087, 1), Range32), $clone(new Range32.ptr(94095, 94111, 1), Range32)]), 0); + _Modi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71168, 71236, 1), Range32), $clone(new Range32.ptr(71248, 71257, 1), Range32)]), 0); + _Mongolian = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6144, 6145, 1), Range16), $clone(new Range16.ptr(6148, 6150, 2), Range16), $clone(new Range16.ptr(6151, 6158, 1), Range16), $clone(new Range16.ptr(6160, 6169, 1), Range16), $clone(new Range16.ptr(6176, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6314, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(71264, 71276, 1), Range32)]), 0); + _Mro = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(92736, 92766, 1), Range32), $clone(new Range32.ptr(92768, 92777, 1), Range32), $clone(new Range32.ptr(92782, 92783, 1), Range32)]), 0); + _Multani = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70272, 70278, 1), Range32), $clone(new Range32.ptr(70280, 70282, 2), Range32), $clone(new Range32.ptr(70283, 70285, 1), Range32), $clone(new Range32.ptr(70287, 70301, 1), Range32), $clone(new Range32.ptr(70303, 70313, 1), Range32)]), 0); + _Myanmar = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4096, 4255, 1), Range16), $clone(new Range16.ptr(43488, 43518, 1), Range16), $clone(new Range16.ptr(43616, 43647, 1), Range16)]), sliceType$1.nil, 0); + _Nabataean = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67712, 67742, 1), Range32), $clone(new Range32.ptr(67751, 67759, 1), Range32)]), 0); + _Nandinagari = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(72096, 72103, 1), Range32), $clone(new Range32.ptr(72106, 72151, 1), Range32), $clone(new Range32.ptr(72154, 72164, 1), Range32)]), 0); + _New_Tai_Lue = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6528, 6571, 1), Range16), $clone(new Range16.ptr(6576, 6601, 1), Range16), $clone(new Range16.ptr(6608, 6618, 1), Range16), $clone(new Range16.ptr(6622, 6623, 1), Range16)]), sliceType$1.nil, 0); + _Newa = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70656, 70747, 1), Range32), $clone(new Range32.ptr(70749, 70753, 1), Range32)]), 0); + _Nko = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1984, 2042, 1), Range16), $clone(new Range16.ptr(2045, 2047, 1), Range16)]), sliceType$1.nil, 0); + _Nushu = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(94177, 110960, 16783), Range32), $clone(new Range32.ptr(110961, 111355, 1), Range32)]), 0); + _Nyiakeng_Puachue_Hmong = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(123136, 123180, 1), Range32), $clone(new Range32.ptr(123184, 123197, 1), Range32), $clone(new Range32.ptr(123200, 123209, 1), Range32), $clone(new Range32.ptr(123214, 123215, 1), Range32)]), 0); + _Ogham = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5760, 5788, 1), Range16)]), sliceType$1.nil, 0); + _Ol_Chiki = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(7248, 7295, 1), Range16)]), sliceType$1.nil, 0); + _Old_Hungarian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(68858, 68863, 1), Range32)]), 0); + _Old_Italic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66304, 66339, 1), Range32), $clone(new Range32.ptr(66349, 66351, 1), Range32)]), 0); + _Old_North_Arabian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68224, 68255, 1), Range32)]), 0); + _Old_Permic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66384, 66426, 1), Range32)]), 0); + _Old_Persian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66464, 66499, 1), Range32), $clone(new Range32.ptr(66504, 66517, 1), Range32)]), 0); + _Old_Sogdian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69376, 69415, 1), Range32)]), 0); + _Old_South_Arabian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68192, 68223, 1), Range32)]), 0); + _Old_Turkic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68608, 68680, 1), Range32)]), 0); + _Oriya = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2817, 2819, 1), Range16), $clone(new Range16.ptr(2821, 2828, 1), Range16), $clone(new Range16.ptr(2831, 2832, 1), Range16), $clone(new Range16.ptr(2835, 2856, 1), Range16), $clone(new Range16.ptr(2858, 2864, 1), Range16), $clone(new Range16.ptr(2866, 2867, 1), Range16), $clone(new Range16.ptr(2869, 2873, 1), Range16), $clone(new Range16.ptr(2876, 2884, 1), Range16), $clone(new Range16.ptr(2887, 2888, 1), Range16), $clone(new Range16.ptr(2891, 2893, 1), Range16), $clone(new Range16.ptr(2901, 2903, 1), Range16), $clone(new Range16.ptr(2908, 2909, 1), Range16), $clone(new Range16.ptr(2911, 2915, 1), Range16), $clone(new Range16.ptr(2918, 2935, 1), Range16)]), sliceType$1.nil, 0); + _Osage = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32)]), 0); + _Osmanya = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66688, 66717, 1), Range32), $clone(new Range32.ptr(66720, 66729, 1), Range32)]), 0); + _Pahawh_Hmong = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(92928, 92997, 1), Range32), $clone(new Range32.ptr(93008, 93017, 1), Range32), $clone(new Range32.ptr(93019, 93025, 1), Range32), $clone(new Range32.ptr(93027, 93047, 1), Range32), $clone(new Range32.ptr(93053, 93071, 1), Range32)]), 0); + _Palmyrene = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67680, 67711, 1), Range32)]), 0); + _Pau_Cin_Hau = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(72384, 72440, 1), Range32)]), 0); + _Phags_Pa = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43072, 43127, 1), Range16)]), sliceType$1.nil, 0); + _Phoenician = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67840, 67867, 1), Range32), $clone(new Range32.ptr(67871, 67871, 1), Range32)]), 0); + _Psalter_Pahlavi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68480, 68497, 1), Range32), $clone(new Range32.ptr(68505, 68508, 1), Range32), $clone(new Range32.ptr(68521, 68527, 1), Range32)]), 0); + _Rejang = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43312, 43347, 1), Range16), $clone(new Range16.ptr(43359, 43359, 1), Range16)]), sliceType$1.nil, 0); + _Runic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5792, 5866, 1), Range16), $clone(new Range16.ptr(5870, 5880, 1), Range16)]), sliceType$1.nil, 0); + _Samaritan = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2048, 2093, 1), Range16), $clone(new Range16.ptr(2096, 2110, 1), Range16)]), sliceType$1.nil, 0); + _Saurashtra = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43136, 43205, 1), Range16), $clone(new Range16.ptr(43214, 43225, 1), Range16)]), sliceType$1.nil, 0); + _Sharada = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70016, 70111, 1), Range32)]), 0); + _Shavian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66640, 66687, 1), Range32)]), 0); + _Siddham = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71040, 71093, 1), Range32), $clone(new Range32.ptr(71096, 71133, 1), Range32)]), 0); + _SignWriting = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(120832, 121483, 1), Range32), $clone(new Range32.ptr(121499, 121503, 1), Range32), $clone(new Range32.ptr(121505, 121519, 1), Range32)]), 0); + _Sinhala = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3457, 3459, 1), Range16), $clone(new Range16.ptr(3461, 3478, 1), Range16), $clone(new Range16.ptr(3482, 3505, 1), Range16), $clone(new Range16.ptr(3507, 3515, 1), Range16), $clone(new Range16.ptr(3517, 3520, 3), Range16), $clone(new Range16.ptr(3521, 3526, 1), Range16), $clone(new Range16.ptr(3530, 3535, 5), Range16), $clone(new Range16.ptr(3536, 3540, 1), Range16), $clone(new Range16.ptr(3542, 3544, 2), Range16), $clone(new Range16.ptr(3545, 3551, 1), Range16), $clone(new Range16.ptr(3558, 3567, 1), Range16), $clone(new Range16.ptr(3570, 3572, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(70113, 70132, 1), Range32)]), 0); + _Sogdian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69424, 69465, 1), Range32)]), 0); + _Sora_Sompeng = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69840, 69864, 1), Range32), $clone(new Range32.ptr(69872, 69881, 1), Range32)]), 0); + _Soyombo = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(72272, 72354, 1), Range32)]), 0); + _Sundanese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(7040, 7103, 1), Range16), $clone(new Range16.ptr(7360, 7367, 1), Range16)]), sliceType$1.nil, 0); + _Syloti_Nagri = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43008, 43052, 1), Range16)]), sliceType$1.nil, 0); + _Syriac = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1792, 1805, 1), Range16), $clone(new Range16.ptr(1807, 1866, 1), Range16), $clone(new Range16.ptr(1869, 1871, 1), Range16), $clone(new Range16.ptr(2144, 2154, 1), Range16)]), sliceType$1.nil, 0); + _Tagalog = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5888, 5900, 1), Range16), $clone(new Range16.ptr(5902, 5908, 1), Range16)]), sliceType$1.nil, 0); + _Tagbanwa = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5984, 5996, 1), Range16), $clone(new Range16.ptr(5998, 6000, 1), Range16), $clone(new Range16.ptr(6002, 6003, 1), Range16)]), sliceType$1.nil, 0); + _Tai_Le = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6480, 6509, 1), Range16), $clone(new Range16.ptr(6512, 6516, 1), Range16)]), sliceType$1.nil, 0); + _Tai_Tham = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6688, 6750, 1), Range16), $clone(new Range16.ptr(6752, 6780, 1), Range16), $clone(new Range16.ptr(6783, 6793, 1), Range16), $clone(new Range16.ptr(6800, 6809, 1), Range16), $clone(new Range16.ptr(6816, 6829, 1), Range16)]), sliceType$1.nil, 0); + _Tai_Viet = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43648, 43714, 1), Range16), $clone(new Range16.ptr(43739, 43743, 1), Range16)]), sliceType$1.nil, 0); + _Takri = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71296, 71352, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32)]), 0); + _Tamil = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2946, 2947, 1), Range16), $clone(new Range16.ptr(2949, 2954, 1), Range16), $clone(new Range16.ptr(2958, 2960, 1), Range16), $clone(new Range16.ptr(2962, 2965, 1), Range16), $clone(new Range16.ptr(2969, 2970, 1), Range16), $clone(new Range16.ptr(2972, 2974, 2), Range16), $clone(new Range16.ptr(2975, 2979, 4), Range16), $clone(new Range16.ptr(2980, 2984, 4), Range16), $clone(new Range16.ptr(2985, 2986, 1), Range16), $clone(new Range16.ptr(2990, 3001, 1), Range16), $clone(new Range16.ptr(3006, 3010, 1), Range16), $clone(new Range16.ptr(3014, 3016, 1), Range16), $clone(new Range16.ptr(3018, 3021, 1), Range16), $clone(new Range16.ptr(3024, 3031, 7), Range16), $clone(new Range16.ptr(3046, 3066, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(73664, 73713, 1), Range32), $clone(new Range32.ptr(73727, 73727, 1), Range32)]), 0); + _Tangut = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(94176, 94208, 32), Range32), $clone(new Range32.ptr(94209, 100343, 1), Range32), $clone(new Range32.ptr(100352, 101119, 1), Range32), $clone(new Range32.ptr(101632, 101640, 1), Range32)]), 0); + _Telugu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3072, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3133, 3140, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3160, 3162, 1), Range16), $clone(new Range16.ptr(3168, 3171, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3191, 3199, 1), Range16)]), sliceType$1.nil, 0); + _Thaana = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1920, 1969, 1), Range16)]), sliceType$1.nil, 0); + _Thai = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3585, 3642, 1), Range16), $clone(new Range16.ptr(3648, 3675, 1), Range16)]), sliceType$1.nil, 0); + _Tibetan = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3840, 3911, 1), Range16), $clone(new Range16.ptr(3913, 3948, 1), Range16), $clone(new Range16.ptr(3953, 3991, 1), Range16), $clone(new Range16.ptr(3993, 4028, 1), Range16), $clone(new Range16.ptr(4030, 4044, 1), Range16), $clone(new Range16.ptr(4046, 4052, 1), Range16), $clone(new Range16.ptr(4057, 4058, 1), Range16)]), sliceType$1.nil, 0); + _Tifinagh = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(11568, 11623, 1), Range16), $clone(new Range16.ptr(11631, 11632, 1), Range16), $clone(new Range16.ptr(11647, 11647, 1), Range16)]), sliceType$1.nil, 0); + _Tirhuta = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70784, 70855, 1), Range32), $clone(new Range32.ptr(70864, 70873, 1), Range32)]), 0); + _Ugaritic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66432, 66461, 1), Range32), $clone(new Range32.ptr(66463, 66463, 1), Range32)]), 0); + _Vai = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(42240, 42539, 1), Range16)]), sliceType$1.nil, 0); + _Wancho = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(123584, 123641, 1), Range32), $clone(new Range32.ptr(123647, 123647, 1), Range32)]), 0); + _Warang_Citi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71840, 71922, 1), Range32), $clone(new Range32.ptr(71935, 71935, 1), Range32)]), 0); + _Yezidi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69248, 69289, 1), Range32), $clone(new Range32.ptr(69291, 69293, 1), Range32), $clone(new Range32.ptr(69296, 69297, 1), Range32)]), 0); + _Yi = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(40960, 42124, 1), Range16), $clone(new Range16.ptr(42128, 42182, 1), Range16)]), sliceType$1.nil, 0); + _Zanabazar_Square = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(72192, 72263, 1), Range32)]), 0); + $pkg.Adlam = _Adlam; + $pkg.Ahom = _Ahom; + $pkg.Anatolian_Hieroglyphs = _Anatolian_Hieroglyphs; + $pkg.Arabic = _Arabic; + $pkg.Armenian = _Armenian; + $pkg.Avestan = _Avestan; + $pkg.Balinese = _Balinese; + $pkg.Bamum = _Bamum; + $pkg.Bassa_Vah = _Bassa_Vah; + $pkg.Batak = _Batak; + $pkg.Bengali = _Bengali; + $pkg.Bhaiksuki = _Bhaiksuki; + $pkg.Bopomofo = _Bopomofo; + $pkg.Brahmi = _Brahmi; + $pkg.Braille = _Braille; + $pkg.Buginese = _Buginese; + $pkg.Buhid = _Buhid; + $pkg.Canadian_Aboriginal = _Canadian_Aboriginal; + $pkg.Carian = _Carian; + $pkg.Caucasian_Albanian = _Caucasian_Albanian; + $pkg.Chakma = _Chakma; + $pkg.Cham = _Cham; + $pkg.Cherokee = _Cherokee; + $pkg.Chorasmian = _Chorasmian; + $pkg.Common = _Common; + $pkg.Coptic = _Coptic; + $pkg.Cuneiform = _Cuneiform; + $pkg.Cypriot = _Cypriot; + $pkg.Cyrillic = _Cyrillic; + $pkg.Deseret = _Deseret; + $pkg.Devanagari = _Devanagari; + $pkg.Dives_Akuru = _Dives_Akuru; + $pkg.Dogra = _Dogra; + $pkg.Duployan = _Duployan; + $pkg.Egyptian_Hieroglyphs = _Egyptian_Hieroglyphs; + $pkg.Elbasan = _Elbasan; + $pkg.Elymaic = _Elymaic; + $pkg.Ethiopic = _Ethiopic; + $pkg.Georgian = _Georgian; + $pkg.Glagolitic = _Glagolitic; + $pkg.Gothic = _Gothic; + $pkg.Grantha = _Grantha; + $pkg.Greek = _Greek; + $pkg.Gujarati = _Gujarati; + $pkg.Gunjala_Gondi = _Gunjala_Gondi; + $pkg.Gurmukhi = _Gurmukhi; + $pkg.Han = _Han; + $pkg.Hangul = _Hangul; + $pkg.Hanifi_Rohingya = _Hanifi_Rohingya; + $pkg.Hanunoo = _Hanunoo; + $pkg.Hatran = _Hatran; + $pkg.Hebrew = _Hebrew; + $pkg.Hiragana = _Hiragana; + $pkg.Imperial_Aramaic = _Imperial_Aramaic; + $pkg.Inherited = _Inherited; + $pkg.Inscriptional_Pahlavi = _Inscriptional_Pahlavi; + $pkg.Inscriptional_Parthian = _Inscriptional_Parthian; + $pkg.Javanese = _Javanese; + $pkg.Kaithi = _Kaithi; + $pkg.Kannada = _Kannada; + $pkg.Katakana = _Katakana; + $pkg.Kayah_Li = _Kayah_Li; + $pkg.Kharoshthi = _Kharoshthi; + $pkg.Khitan_Small_Script = _Khitan_Small_Script; + $pkg.Khmer = _Khmer; + $pkg.Khojki = _Khojki; + $pkg.Khudawadi = _Khudawadi; + $pkg.Lao = _Lao; + $pkg.Latin = _Latin; + $pkg.Lepcha = _Lepcha; + $pkg.Limbu = _Limbu; + $pkg.Linear_A = _Linear_A; + $pkg.Linear_B = _Linear_B; + $pkg.Lisu = _Lisu; + $pkg.Lycian = _Lycian; + $pkg.Lydian = _Lydian; + $pkg.Mahajani = _Mahajani; + $pkg.Makasar = _Makasar; + $pkg.Malayalam = _Malayalam; + $pkg.Mandaic = _Mandaic; + $pkg.Manichaean = _Manichaean; + $pkg.Marchen = _Marchen; + $pkg.Masaram_Gondi = _Masaram_Gondi; + $pkg.Medefaidrin = _Medefaidrin; + $pkg.Meetei_Mayek = _Meetei_Mayek; + $pkg.Mende_Kikakui = _Mende_Kikakui; + $pkg.Meroitic_Cursive = _Meroitic_Cursive; + $pkg.Meroitic_Hieroglyphs = _Meroitic_Hieroglyphs; + $pkg.Miao = _Miao; + $pkg.Modi = _Modi; + $pkg.Mongolian = _Mongolian; + $pkg.Mro = _Mro; + $pkg.Multani = _Multani; + $pkg.Myanmar = _Myanmar; + $pkg.Nabataean = _Nabataean; + $pkg.Nandinagari = _Nandinagari; + $pkg.New_Tai_Lue = _New_Tai_Lue; + $pkg.Newa = _Newa; + $pkg.Nko = _Nko; + $pkg.Nushu = _Nushu; + $pkg.Nyiakeng_Puachue_Hmong = _Nyiakeng_Puachue_Hmong; + $pkg.Ogham = _Ogham; + $pkg.Ol_Chiki = _Ol_Chiki; + $pkg.Old_Hungarian = _Old_Hungarian; + $pkg.Old_Italic = _Old_Italic; + $pkg.Old_North_Arabian = _Old_North_Arabian; + $pkg.Old_Permic = _Old_Permic; + $pkg.Old_Persian = _Old_Persian; + $pkg.Old_Sogdian = _Old_Sogdian; + $pkg.Old_South_Arabian = _Old_South_Arabian; + $pkg.Old_Turkic = _Old_Turkic; + $pkg.Oriya = _Oriya; + $pkg.Osage = _Osage; + $pkg.Osmanya = _Osmanya; + $pkg.Pahawh_Hmong = _Pahawh_Hmong; + $pkg.Palmyrene = _Palmyrene; + $pkg.Pau_Cin_Hau = _Pau_Cin_Hau; + $pkg.Phags_Pa = _Phags_Pa; + $pkg.Phoenician = _Phoenician; + $pkg.Psalter_Pahlavi = _Psalter_Pahlavi; + $pkg.Rejang = _Rejang; + $pkg.Runic = _Runic; + $pkg.Samaritan = _Samaritan; + $pkg.Saurashtra = _Saurashtra; + $pkg.Sharada = _Sharada; + $pkg.Shavian = _Shavian; + $pkg.Siddham = _Siddham; + $pkg.SignWriting = _SignWriting; + $pkg.Sinhala = _Sinhala; + $pkg.Sogdian = _Sogdian; + $pkg.Sora_Sompeng = _Sora_Sompeng; + $pkg.Soyombo = _Soyombo; + $pkg.Sundanese = _Sundanese; + $pkg.Syloti_Nagri = _Syloti_Nagri; + $pkg.Syriac = _Syriac; + $pkg.Tagalog = _Tagalog; + $pkg.Tagbanwa = _Tagbanwa; + $pkg.Tai_Le = _Tai_Le; + $pkg.Tai_Tham = _Tai_Tham; + $pkg.Tai_Viet = _Tai_Viet; + $pkg.Takri = _Takri; + $pkg.Tamil = _Tamil; + $pkg.Tangut = _Tangut; + $pkg.Telugu = _Telugu; + $pkg.Thaana = _Thaana; + $pkg.Thai = _Thai; + $pkg.Tibetan = _Tibetan; + $pkg.Tifinagh = _Tifinagh; + $pkg.Tirhuta = _Tirhuta; + $pkg.Ugaritic = _Ugaritic; + $pkg.Vai = _Vai; + $pkg.Wancho = _Wancho; + $pkg.Warang_Citi = _Warang_Citi; + $pkg.Yezidi = _Yezidi; + $pkg.Yi = _Yi; + $pkg.Zanabazar_Square = _Zanabazar_Square; + $pkg.Scripts = $makeMap($String.keyFor, [{ k: "Adlam", v: $pkg.Adlam }, { k: "Ahom", v: $pkg.Ahom }, { k: "Anatolian_Hieroglyphs", v: $pkg.Anatolian_Hieroglyphs }, { k: "Arabic", v: $pkg.Arabic }, { k: "Armenian", v: $pkg.Armenian }, { k: "Avestan", v: $pkg.Avestan }, { k: "Balinese", v: $pkg.Balinese }, { k: "Bamum", v: $pkg.Bamum }, { k: "Bassa_Vah", v: $pkg.Bassa_Vah }, { k: "Batak", v: $pkg.Batak }, { k: "Bengali", v: $pkg.Bengali }, { k: "Bhaiksuki", v: $pkg.Bhaiksuki }, { k: "Bopomofo", v: $pkg.Bopomofo }, { k: "Brahmi", v: $pkg.Brahmi }, { k: "Braille", v: $pkg.Braille }, { k: "Buginese", v: $pkg.Buginese }, { k: "Buhid", v: $pkg.Buhid }, { k: "Canadian_Aboriginal", v: $pkg.Canadian_Aboriginal }, { k: "Carian", v: $pkg.Carian }, { k: "Caucasian_Albanian", v: $pkg.Caucasian_Albanian }, { k: "Chakma", v: $pkg.Chakma }, { k: "Cham", v: $pkg.Cham }, { k: "Cherokee", v: $pkg.Cherokee }, { k: "Chorasmian", v: $pkg.Chorasmian }, { k: "Common", v: $pkg.Common }, { k: "Coptic", v: $pkg.Coptic }, { k: "Cuneiform", v: $pkg.Cuneiform }, { k: "Cypriot", v: $pkg.Cypriot }, { k: "Cyrillic", v: $pkg.Cyrillic }, { k: "Deseret", v: $pkg.Deseret }, { k: "Devanagari", v: $pkg.Devanagari }, { k: "Dives_Akuru", v: $pkg.Dives_Akuru }, { k: "Dogra", v: $pkg.Dogra }, { k: "Duployan", v: $pkg.Duployan }, { k: "Egyptian_Hieroglyphs", v: $pkg.Egyptian_Hieroglyphs }, { k: "Elbasan", v: $pkg.Elbasan }, { k: "Elymaic", v: $pkg.Elymaic }, { k: "Ethiopic", v: $pkg.Ethiopic }, { k: "Georgian", v: $pkg.Georgian }, { k: "Glagolitic", v: $pkg.Glagolitic }, { k: "Gothic", v: $pkg.Gothic }, { k: "Grantha", v: $pkg.Grantha }, { k: "Greek", v: $pkg.Greek }, { k: "Gujarati", v: $pkg.Gujarati }, { k: "Gunjala_Gondi", v: $pkg.Gunjala_Gondi }, { k: "Gurmukhi", v: $pkg.Gurmukhi }, { k: "Han", v: $pkg.Han }, { k: "Hangul", v: $pkg.Hangul }, { k: "Hanifi_Rohingya", v: $pkg.Hanifi_Rohingya }, { k: "Hanunoo", v: $pkg.Hanunoo }, { k: "Hatran", v: $pkg.Hatran }, { k: "Hebrew", v: $pkg.Hebrew }, { k: "Hiragana", v: $pkg.Hiragana }, { k: "Imperial_Aramaic", v: $pkg.Imperial_Aramaic }, { k: "Inherited", v: $pkg.Inherited }, { k: "Inscriptional_Pahlavi", v: $pkg.Inscriptional_Pahlavi }, { k: "Inscriptional_Parthian", v: $pkg.Inscriptional_Parthian }, { k: "Javanese", v: $pkg.Javanese }, { k: "Kaithi", v: $pkg.Kaithi }, { k: "Kannada", v: $pkg.Kannada }, { k: "Katakana", v: $pkg.Katakana }, { k: "Kayah_Li", v: $pkg.Kayah_Li }, { k: "Kharoshthi", v: $pkg.Kharoshthi }, { k: "Khitan_Small_Script", v: $pkg.Khitan_Small_Script }, { k: "Khmer", v: $pkg.Khmer }, { k: "Khojki", v: $pkg.Khojki }, { k: "Khudawadi", v: $pkg.Khudawadi }, { k: "Lao", v: $pkg.Lao }, { k: "Latin", v: $pkg.Latin }, { k: "Lepcha", v: $pkg.Lepcha }, { k: "Limbu", v: $pkg.Limbu }, { k: "Linear_A", v: $pkg.Linear_A }, { k: "Linear_B", v: $pkg.Linear_B }, { k: "Lisu", v: $pkg.Lisu }, { k: "Lycian", v: $pkg.Lycian }, { k: "Lydian", v: $pkg.Lydian }, { k: "Mahajani", v: $pkg.Mahajani }, { k: "Makasar", v: $pkg.Makasar }, { k: "Malayalam", v: $pkg.Malayalam }, { k: "Mandaic", v: $pkg.Mandaic }, { k: "Manichaean", v: $pkg.Manichaean }, { k: "Marchen", v: $pkg.Marchen }, { k: "Masaram_Gondi", v: $pkg.Masaram_Gondi }, { k: "Medefaidrin", v: $pkg.Medefaidrin }, { k: "Meetei_Mayek", v: $pkg.Meetei_Mayek }, { k: "Mende_Kikakui", v: $pkg.Mende_Kikakui }, { k: "Meroitic_Cursive", v: $pkg.Meroitic_Cursive }, { k: "Meroitic_Hieroglyphs", v: $pkg.Meroitic_Hieroglyphs }, { k: "Miao", v: $pkg.Miao }, { k: "Modi", v: $pkg.Modi }, { k: "Mongolian", v: $pkg.Mongolian }, { k: "Mro", v: $pkg.Mro }, { k: "Multani", v: $pkg.Multani }, { k: "Myanmar", v: $pkg.Myanmar }, { k: "Nabataean", v: $pkg.Nabataean }, { k: "Nandinagari", v: $pkg.Nandinagari }, { k: "New_Tai_Lue", v: $pkg.New_Tai_Lue }, { k: "Newa", v: $pkg.Newa }, { k: "Nko", v: $pkg.Nko }, { k: "Nushu", v: $pkg.Nushu }, { k: "Nyiakeng_Puachue_Hmong", v: $pkg.Nyiakeng_Puachue_Hmong }, { k: "Ogham", v: $pkg.Ogham }, { k: "Ol_Chiki", v: $pkg.Ol_Chiki }, { k: "Old_Hungarian", v: $pkg.Old_Hungarian }, { k: "Old_Italic", v: $pkg.Old_Italic }, { k: "Old_North_Arabian", v: $pkg.Old_North_Arabian }, { k: "Old_Permic", v: $pkg.Old_Permic }, { k: "Old_Persian", v: $pkg.Old_Persian }, { k: "Old_Sogdian", v: $pkg.Old_Sogdian }, { k: "Old_South_Arabian", v: $pkg.Old_South_Arabian }, { k: "Old_Turkic", v: $pkg.Old_Turkic }, { k: "Oriya", v: $pkg.Oriya }, { k: "Osage", v: $pkg.Osage }, { k: "Osmanya", v: $pkg.Osmanya }, { k: "Pahawh_Hmong", v: $pkg.Pahawh_Hmong }, { k: "Palmyrene", v: $pkg.Palmyrene }, { k: "Pau_Cin_Hau", v: $pkg.Pau_Cin_Hau }, { k: "Phags_Pa", v: $pkg.Phags_Pa }, { k: "Phoenician", v: $pkg.Phoenician }, { k: "Psalter_Pahlavi", v: $pkg.Psalter_Pahlavi }, { k: "Rejang", v: $pkg.Rejang }, { k: "Runic", v: $pkg.Runic }, { k: "Samaritan", v: $pkg.Samaritan }, { k: "Saurashtra", v: $pkg.Saurashtra }, { k: "Sharada", v: $pkg.Sharada }, { k: "Shavian", v: $pkg.Shavian }, { k: "Siddham", v: $pkg.Siddham }, { k: "SignWriting", v: $pkg.SignWriting }, { k: "Sinhala", v: $pkg.Sinhala }, { k: "Sogdian", v: $pkg.Sogdian }, { k: "Sora_Sompeng", v: $pkg.Sora_Sompeng }, { k: "Soyombo", v: $pkg.Soyombo }, { k: "Sundanese", v: $pkg.Sundanese }, { k: "Syloti_Nagri", v: $pkg.Syloti_Nagri }, { k: "Syriac", v: $pkg.Syriac }, { k: "Tagalog", v: $pkg.Tagalog }, { k: "Tagbanwa", v: $pkg.Tagbanwa }, { k: "Tai_Le", v: $pkg.Tai_Le }, { k: "Tai_Tham", v: $pkg.Tai_Tham }, { k: "Tai_Viet", v: $pkg.Tai_Viet }, { k: "Takri", v: $pkg.Takri }, { k: "Tamil", v: $pkg.Tamil }, { k: "Tangut", v: $pkg.Tangut }, { k: "Telugu", v: $pkg.Telugu }, { k: "Thaana", v: $pkg.Thaana }, { k: "Thai", v: $pkg.Thai }, { k: "Tibetan", v: $pkg.Tibetan }, { k: "Tifinagh", v: $pkg.Tifinagh }, { k: "Tirhuta", v: $pkg.Tirhuta }, { k: "Ugaritic", v: $pkg.Ugaritic }, { k: "Vai", v: $pkg.Vai }, { k: "Wancho", v: $pkg.Wancho }, { k: "Warang_Citi", v: $pkg.Warang_Citi }, { k: "Yezidi", v: $pkg.Yezidi }, { k: "Yi", v: $pkg.Yi }, { k: "Zanabazar_Square", v: $pkg.Zanabazar_Square }]); + _White_Space = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(9, 13, 1), Range16), $clone(new Range16.ptr(32, 133, 101), Range16), $clone(new Range16.ptr(160, 5760, 5600), Range16), $clone(new Range16.ptr(8192, 8202, 1), Range16), $clone(new Range16.ptr(8232, 8233, 1), Range16), $clone(new Range16.ptr(8239, 8287, 48), Range16), $clone(new Range16.ptr(12288, 12288, 1), Range16)]), sliceType$1.nil, 2); + $pkg.White_Space = _White_Space; + _CaseRanges = new sliceType$2([$clone(new CaseRange.ptr(65, 90, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(97, 122, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(181, 181, $clone($toNativeArray($kindInt32, [743, 0, 743]), d)), CaseRange), $clone(new CaseRange.ptr(192, 214, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(216, 222, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(224, 246, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(248, 254, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(255, 255, $clone($toNativeArray($kindInt32, [121, 0, 121]), d)), CaseRange), $clone(new CaseRange.ptr(256, 303, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(304, 304, $clone($toNativeArray($kindInt32, [0, -199, 0]), d)), CaseRange), $clone(new CaseRange.ptr(305, 305, $clone($toNativeArray($kindInt32, [-232, 0, -232]), d)), CaseRange), $clone(new CaseRange.ptr(306, 311, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(313, 328, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(330, 375, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(376, 376, $clone($toNativeArray($kindInt32, [0, -121, 0]), d)), CaseRange), $clone(new CaseRange.ptr(377, 382, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(383, 383, $clone($toNativeArray($kindInt32, [-300, 0, -300]), d)), CaseRange), $clone(new CaseRange.ptr(384, 384, $clone($toNativeArray($kindInt32, [195, 0, 195]), d)), CaseRange), $clone(new CaseRange.ptr(385, 385, $clone($toNativeArray($kindInt32, [0, 210, 0]), d)), CaseRange), $clone(new CaseRange.ptr(386, 389, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(390, 390, $clone($toNativeArray($kindInt32, [0, 206, 0]), d)), CaseRange), $clone(new CaseRange.ptr(391, 392, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(393, 394, $clone($toNativeArray($kindInt32, [0, 205, 0]), d)), CaseRange), $clone(new CaseRange.ptr(395, 396, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(398, 398, $clone($toNativeArray($kindInt32, [0, 79, 0]), d)), CaseRange), $clone(new CaseRange.ptr(399, 399, $clone($toNativeArray($kindInt32, [0, 202, 0]), d)), CaseRange), $clone(new CaseRange.ptr(400, 400, $clone($toNativeArray($kindInt32, [0, 203, 0]), d)), CaseRange), $clone(new CaseRange.ptr(401, 402, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(403, 403, $clone($toNativeArray($kindInt32, [0, 205, 0]), d)), CaseRange), $clone(new CaseRange.ptr(404, 404, $clone($toNativeArray($kindInt32, [0, 207, 0]), d)), CaseRange), $clone(new CaseRange.ptr(405, 405, $clone($toNativeArray($kindInt32, [97, 0, 97]), d)), CaseRange), $clone(new CaseRange.ptr(406, 406, $clone($toNativeArray($kindInt32, [0, 211, 0]), d)), CaseRange), $clone(new CaseRange.ptr(407, 407, $clone($toNativeArray($kindInt32, [0, 209, 0]), d)), CaseRange), $clone(new CaseRange.ptr(408, 409, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(410, 410, $clone($toNativeArray($kindInt32, [163, 0, 163]), d)), CaseRange), $clone(new CaseRange.ptr(412, 412, $clone($toNativeArray($kindInt32, [0, 211, 0]), d)), CaseRange), $clone(new CaseRange.ptr(413, 413, $clone($toNativeArray($kindInt32, [0, 213, 0]), d)), CaseRange), $clone(new CaseRange.ptr(414, 414, $clone($toNativeArray($kindInt32, [130, 0, 130]), d)), CaseRange), $clone(new CaseRange.ptr(415, 415, $clone($toNativeArray($kindInt32, [0, 214, 0]), d)), CaseRange), $clone(new CaseRange.ptr(416, 421, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(422, 422, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(423, 424, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(425, 425, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(428, 429, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(430, 430, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(431, 432, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(433, 434, $clone($toNativeArray($kindInt32, [0, 217, 0]), d)), CaseRange), $clone(new CaseRange.ptr(435, 438, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(439, 439, $clone($toNativeArray($kindInt32, [0, 219, 0]), d)), CaseRange), $clone(new CaseRange.ptr(440, 441, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(444, 445, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(447, 447, $clone($toNativeArray($kindInt32, [56, 0, 56]), d)), CaseRange), $clone(new CaseRange.ptr(452, 452, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(453, 453, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(454, 454, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(455, 455, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(456, 456, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(457, 457, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(458, 458, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(459, 459, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(460, 460, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(461, 476, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(477, 477, $clone($toNativeArray($kindInt32, [-79, 0, -79]), d)), CaseRange), $clone(new CaseRange.ptr(478, 495, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(497, 497, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(498, 498, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(499, 499, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(500, 501, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(502, 502, $clone($toNativeArray($kindInt32, [0, -97, 0]), d)), CaseRange), $clone(new CaseRange.ptr(503, 503, $clone($toNativeArray($kindInt32, [0, -56, 0]), d)), CaseRange), $clone(new CaseRange.ptr(504, 543, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(544, 544, $clone($toNativeArray($kindInt32, [0, -130, 0]), d)), CaseRange), $clone(new CaseRange.ptr(546, 563, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(570, 570, $clone($toNativeArray($kindInt32, [0, 10795, 0]), d)), CaseRange), $clone(new CaseRange.ptr(571, 572, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(573, 573, $clone($toNativeArray($kindInt32, [0, -163, 0]), d)), CaseRange), $clone(new CaseRange.ptr(574, 574, $clone($toNativeArray($kindInt32, [0, 10792, 0]), d)), CaseRange), $clone(new CaseRange.ptr(575, 576, $clone($toNativeArray($kindInt32, [10815, 0, 10815]), d)), CaseRange), $clone(new CaseRange.ptr(577, 578, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(579, 579, $clone($toNativeArray($kindInt32, [0, -195, 0]), d)), CaseRange), $clone(new CaseRange.ptr(580, 580, $clone($toNativeArray($kindInt32, [0, 69, 0]), d)), CaseRange), $clone(new CaseRange.ptr(581, 581, $clone($toNativeArray($kindInt32, [0, 71, 0]), d)), CaseRange), $clone(new CaseRange.ptr(582, 591, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(592, 592, $clone($toNativeArray($kindInt32, [10783, 0, 10783]), d)), CaseRange), $clone(new CaseRange.ptr(593, 593, $clone($toNativeArray($kindInt32, [10780, 0, 10780]), d)), CaseRange), $clone(new CaseRange.ptr(594, 594, $clone($toNativeArray($kindInt32, [10782, 0, 10782]), d)), CaseRange), $clone(new CaseRange.ptr(595, 595, $clone($toNativeArray($kindInt32, [-210, 0, -210]), d)), CaseRange), $clone(new CaseRange.ptr(596, 596, $clone($toNativeArray($kindInt32, [-206, 0, -206]), d)), CaseRange), $clone(new CaseRange.ptr(598, 599, $clone($toNativeArray($kindInt32, [-205, 0, -205]), d)), CaseRange), $clone(new CaseRange.ptr(601, 601, $clone($toNativeArray($kindInt32, [-202, 0, -202]), d)), CaseRange), $clone(new CaseRange.ptr(603, 603, $clone($toNativeArray($kindInt32, [-203, 0, -203]), d)), CaseRange), $clone(new CaseRange.ptr(604, 604, $clone($toNativeArray($kindInt32, [42319, 0, 42319]), d)), CaseRange), $clone(new CaseRange.ptr(608, 608, $clone($toNativeArray($kindInt32, [-205, 0, -205]), d)), CaseRange), $clone(new CaseRange.ptr(609, 609, $clone($toNativeArray($kindInt32, [42315, 0, 42315]), d)), CaseRange), $clone(new CaseRange.ptr(611, 611, $clone($toNativeArray($kindInt32, [-207, 0, -207]), d)), CaseRange), $clone(new CaseRange.ptr(613, 613, $clone($toNativeArray($kindInt32, [42280, 0, 42280]), d)), CaseRange), $clone(new CaseRange.ptr(614, 614, $clone($toNativeArray($kindInt32, [42308, 0, 42308]), d)), CaseRange), $clone(new CaseRange.ptr(616, 616, $clone($toNativeArray($kindInt32, [-209, 0, -209]), d)), CaseRange), $clone(new CaseRange.ptr(617, 617, $clone($toNativeArray($kindInt32, [-211, 0, -211]), d)), CaseRange), $clone(new CaseRange.ptr(618, 618, $clone($toNativeArray($kindInt32, [42308, 0, 42308]), d)), CaseRange), $clone(new CaseRange.ptr(619, 619, $clone($toNativeArray($kindInt32, [10743, 0, 10743]), d)), CaseRange), $clone(new CaseRange.ptr(620, 620, $clone($toNativeArray($kindInt32, [42305, 0, 42305]), d)), CaseRange), $clone(new CaseRange.ptr(623, 623, $clone($toNativeArray($kindInt32, [-211, 0, -211]), d)), CaseRange), $clone(new CaseRange.ptr(625, 625, $clone($toNativeArray($kindInt32, [10749, 0, 10749]), d)), CaseRange), $clone(new CaseRange.ptr(626, 626, $clone($toNativeArray($kindInt32, [-213, 0, -213]), d)), CaseRange), $clone(new CaseRange.ptr(629, 629, $clone($toNativeArray($kindInt32, [-214, 0, -214]), d)), CaseRange), $clone(new CaseRange.ptr(637, 637, $clone($toNativeArray($kindInt32, [10727, 0, 10727]), d)), CaseRange), $clone(new CaseRange.ptr(640, 640, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(642, 642, $clone($toNativeArray($kindInt32, [42307, 0, 42307]), d)), CaseRange), $clone(new CaseRange.ptr(643, 643, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(647, 647, $clone($toNativeArray($kindInt32, [42282, 0, 42282]), d)), CaseRange), $clone(new CaseRange.ptr(648, 648, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(649, 649, $clone($toNativeArray($kindInt32, [-69, 0, -69]), d)), CaseRange), $clone(new CaseRange.ptr(650, 651, $clone($toNativeArray($kindInt32, [-217, 0, -217]), d)), CaseRange), $clone(new CaseRange.ptr(652, 652, $clone($toNativeArray($kindInt32, [-71, 0, -71]), d)), CaseRange), $clone(new CaseRange.ptr(658, 658, $clone($toNativeArray($kindInt32, [-219, 0, -219]), d)), CaseRange), $clone(new CaseRange.ptr(669, 669, $clone($toNativeArray($kindInt32, [42261, 0, 42261]), d)), CaseRange), $clone(new CaseRange.ptr(670, 670, $clone($toNativeArray($kindInt32, [42258, 0, 42258]), d)), CaseRange), $clone(new CaseRange.ptr(837, 837, $clone($toNativeArray($kindInt32, [84, 0, 84]), d)), CaseRange), $clone(new CaseRange.ptr(880, 883, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(886, 887, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(891, 893, $clone($toNativeArray($kindInt32, [130, 0, 130]), d)), CaseRange), $clone(new CaseRange.ptr(895, 895, $clone($toNativeArray($kindInt32, [0, 116, 0]), d)), CaseRange), $clone(new CaseRange.ptr(902, 902, $clone($toNativeArray($kindInt32, [0, 38, 0]), d)), CaseRange), $clone(new CaseRange.ptr(904, 906, $clone($toNativeArray($kindInt32, [0, 37, 0]), d)), CaseRange), $clone(new CaseRange.ptr(908, 908, $clone($toNativeArray($kindInt32, [0, 64, 0]), d)), CaseRange), $clone(new CaseRange.ptr(910, 911, $clone($toNativeArray($kindInt32, [0, 63, 0]), d)), CaseRange), $clone(new CaseRange.ptr(913, 929, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(931, 939, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(940, 940, $clone($toNativeArray($kindInt32, [-38, 0, -38]), d)), CaseRange), $clone(new CaseRange.ptr(941, 943, $clone($toNativeArray($kindInt32, [-37, 0, -37]), d)), CaseRange), $clone(new CaseRange.ptr(945, 961, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(962, 962, $clone($toNativeArray($kindInt32, [-31, 0, -31]), d)), CaseRange), $clone(new CaseRange.ptr(963, 971, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(972, 972, $clone($toNativeArray($kindInt32, [-64, 0, -64]), d)), CaseRange), $clone(new CaseRange.ptr(973, 974, $clone($toNativeArray($kindInt32, [-63, 0, -63]), d)), CaseRange), $clone(new CaseRange.ptr(975, 975, $clone($toNativeArray($kindInt32, [0, 8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(976, 976, $clone($toNativeArray($kindInt32, [-62, 0, -62]), d)), CaseRange), $clone(new CaseRange.ptr(977, 977, $clone($toNativeArray($kindInt32, [-57, 0, -57]), d)), CaseRange), $clone(new CaseRange.ptr(981, 981, $clone($toNativeArray($kindInt32, [-47, 0, -47]), d)), CaseRange), $clone(new CaseRange.ptr(982, 982, $clone($toNativeArray($kindInt32, [-54, 0, -54]), d)), CaseRange), $clone(new CaseRange.ptr(983, 983, $clone($toNativeArray($kindInt32, [-8, 0, -8]), d)), CaseRange), $clone(new CaseRange.ptr(984, 1007, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1008, 1008, $clone($toNativeArray($kindInt32, [-86, 0, -86]), d)), CaseRange), $clone(new CaseRange.ptr(1009, 1009, $clone($toNativeArray($kindInt32, [-80, 0, -80]), d)), CaseRange), $clone(new CaseRange.ptr(1010, 1010, $clone($toNativeArray($kindInt32, [7, 0, 7]), d)), CaseRange), $clone(new CaseRange.ptr(1011, 1011, $clone($toNativeArray($kindInt32, [-116, 0, -116]), d)), CaseRange), $clone(new CaseRange.ptr(1012, 1012, $clone($toNativeArray($kindInt32, [0, -60, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1013, 1013, $clone($toNativeArray($kindInt32, [-96, 0, -96]), d)), CaseRange), $clone(new CaseRange.ptr(1015, 1016, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1017, 1017, $clone($toNativeArray($kindInt32, [0, -7, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1018, 1019, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1021, 1023, $clone($toNativeArray($kindInt32, [0, -130, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1024, 1039, $clone($toNativeArray($kindInt32, [0, 80, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1040, 1071, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1072, 1103, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(1104, 1119, $clone($toNativeArray($kindInt32, [-80, 0, -80]), d)), CaseRange), $clone(new CaseRange.ptr(1120, 1153, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1162, 1215, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1216, 1216, $clone($toNativeArray($kindInt32, [0, 15, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1217, 1230, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1231, 1231, $clone($toNativeArray($kindInt32, [-15, 0, -15]), d)), CaseRange), $clone(new CaseRange.ptr(1232, 1327, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1329, 1366, $clone($toNativeArray($kindInt32, [0, 48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1377, 1414, $clone($toNativeArray($kindInt32, [-48, 0, -48]), d)), CaseRange), $clone(new CaseRange.ptr(4256, 4293, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4295, 4295, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4301, 4301, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4304, 4346, $clone($toNativeArray($kindInt32, [3008, 0, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4349, 4351, $clone($toNativeArray($kindInt32, [3008, 0, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5024, 5103, $clone($toNativeArray($kindInt32, [0, 38864, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5104, 5109, $clone($toNativeArray($kindInt32, [0, 8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5112, 5117, $clone($toNativeArray($kindInt32, [-8, 0, -8]), d)), CaseRange), $clone(new CaseRange.ptr(7296, 7296, $clone($toNativeArray($kindInt32, [-6254, 0, -6254]), d)), CaseRange), $clone(new CaseRange.ptr(7297, 7297, $clone($toNativeArray($kindInt32, [-6253, 0, -6253]), d)), CaseRange), $clone(new CaseRange.ptr(7298, 7298, $clone($toNativeArray($kindInt32, [-6244, 0, -6244]), d)), CaseRange), $clone(new CaseRange.ptr(7299, 7300, $clone($toNativeArray($kindInt32, [-6242, 0, -6242]), d)), CaseRange), $clone(new CaseRange.ptr(7301, 7301, $clone($toNativeArray($kindInt32, [-6243, 0, -6243]), d)), CaseRange), $clone(new CaseRange.ptr(7302, 7302, $clone($toNativeArray($kindInt32, [-6236, 0, -6236]), d)), CaseRange), $clone(new CaseRange.ptr(7303, 7303, $clone($toNativeArray($kindInt32, [-6181, 0, -6181]), d)), CaseRange), $clone(new CaseRange.ptr(7304, 7304, $clone($toNativeArray($kindInt32, [35266, 0, 35266]), d)), CaseRange), $clone(new CaseRange.ptr(7312, 7354, $clone($toNativeArray($kindInt32, [0, -3008, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7357, 7359, $clone($toNativeArray($kindInt32, [0, -3008, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7545, 7545, $clone($toNativeArray($kindInt32, [35332, 0, 35332]), d)), CaseRange), $clone(new CaseRange.ptr(7549, 7549, $clone($toNativeArray($kindInt32, [3814, 0, 3814]), d)), CaseRange), $clone(new CaseRange.ptr(7566, 7566, $clone($toNativeArray($kindInt32, [35384, 0, 35384]), d)), CaseRange), $clone(new CaseRange.ptr(7680, 7829, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(7835, 7835, $clone($toNativeArray($kindInt32, [-59, 0, -59]), d)), CaseRange), $clone(new CaseRange.ptr(7838, 7838, $clone($toNativeArray($kindInt32, [0, -7615, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7840, 7935, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(7936, 7943, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7944, 7951, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7952, 7957, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7960, 7965, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7968, 7975, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7976, 7983, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7984, 7991, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7992, 7999, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8000, 8005, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8008, 8013, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8017, 8017, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8019, 8019, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8021, 8021, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8023, 8023, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8025, 8025, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8027, 8027, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8029, 8029, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8031, 8031, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8032, 8039, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8040, 8047, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8048, 8049, $clone($toNativeArray($kindInt32, [74, 0, 74]), d)), CaseRange), $clone(new CaseRange.ptr(8050, 8053, $clone($toNativeArray($kindInt32, [86, 0, 86]), d)), CaseRange), $clone(new CaseRange.ptr(8054, 8055, $clone($toNativeArray($kindInt32, [100, 0, 100]), d)), CaseRange), $clone(new CaseRange.ptr(8056, 8057, $clone($toNativeArray($kindInt32, [128, 0, 128]), d)), CaseRange), $clone(new CaseRange.ptr(8058, 8059, $clone($toNativeArray($kindInt32, [112, 0, 112]), d)), CaseRange), $clone(new CaseRange.ptr(8060, 8061, $clone($toNativeArray($kindInt32, [126, 0, 126]), d)), CaseRange), $clone(new CaseRange.ptr(8064, 8071, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8072, 8079, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8080, 8087, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8088, 8095, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8096, 8103, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8104, 8111, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8112, 8113, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8115, 8115, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8120, 8121, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8122, 8123, $clone($toNativeArray($kindInt32, [0, -74, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8124, 8124, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8126, 8126, $clone($toNativeArray($kindInt32, [-7205, 0, -7205]), d)), CaseRange), $clone(new CaseRange.ptr(8131, 8131, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8136, 8139, $clone($toNativeArray($kindInt32, [0, -86, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8140, 8140, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8144, 8145, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8152, 8153, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8154, 8155, $clone($toNativeArray($kindInt32, [0, -100, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8160, 8161, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8165, 8165, $clone($toNativeArray($kindInt32, [7, 0, 7]), d)), CaseRange), $clone(new CaseRange.ptr(8168, 8169, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8170, 8171, $clone($toNativeArray($kindInt32, [0, -112, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8172, 8172, $clone($toNativeArray($kindInt32, [0, -7, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8179, 8179, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8184, 8185, $clone($toNativeArray($kindInt32, [0, -128, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8186, 8187, $clone($toNativeArray($kindInt32, [0, -126, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8188, 8188, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8486, 8486, $clone($toNativeArray($kindInt32, [0, -7517, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8490, 8490, $clone($toNativeArray($kindInt32, [0, -8383, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8491, 8491, $clone($toNativeArray($kindInt32, [0, -8262, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8498, 8498, $clone($toNativeArray($kindInt32, [0, 28, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8526, 8526, $clone($toNativeArray($kindInt32, [-28, 0, -28]), d)), CaseRange), $clone(new CaseRange.ptr(8544, 8559, $clone($toNativeArray($kindInt32, [0, 16, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8560, 8575, $clone($toNativeArray($kindInt32, [-16, 0, -16]), d)), CaseRange), $clone(new CaseRange.ptr(8579, 8580, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(9398, 9423, $clone($toNativeArray($kindInt32, [0, 26, 0]), d)), CaseRange), $clone(new CaseRange.ptr(9424, 9449, $clone($toNativeArray($kindInt32, [-26, 0, -26]), d)), CaseRange), $clone(new CaseRange.ptr(11264, 11310, $clone($toNativeArray($kindInt32, [0, 48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11312, 11358, $clone($toNativeArray($kindInt32, [-48, 0, -48]), d)), CaseRange), $clone(new CaseRange.ptr(11360, 11361, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11362, 11362, $clone($toNativeArray($kindInt32, [0, -10743, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11363, 11363, $clone($toNativeArray($kindInt32, [0, -3814, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11364, 11364, $clone($toNativeArray($kindInt32, [0, -10727, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11365, 11365, $clone($toNativeArray($kindInt32, [-10795, 0, -10795]), d)), CaseRange), $clone(new CaseRange.ptr(11366, 11366, $clone($toNativeArray($kindInt32, [-10792, 0, -10792]), d)), CaseRange), $clone(new CaseRange.ptr(11367, 11372, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11373, 11373, $clone($toNativeArray($kindInt32, [0, -10780, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11374, 11374, $clone($toNativeArray($kindInt32, [0, -10749, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11375, 11375, $clone($toNativeArray($kindInt32, [0, -10783, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11376, 11376, $clone($toNativeArray($kindInt32, [0, -10782, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11378, 11379, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11381, 11382, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11390, 11391, $clone($toNativeArray($kindInt32, [0, -10815, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11392, 11491, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11499, 11502, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11506, 11507, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11520, 11557, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(11559, 11559, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(11565, 11565, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(42560, 42605, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42624, 42651, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42786, 42799, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42802, 42863, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42873, 42876, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42877, 42877, $clone($toNativeArray($kindInt32, [0, -35332, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42878, 42887, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42891, 42892, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42893, 42893, $clone($toNativeArray($kindInt32, [0, -42280, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42896, 42899, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42900, 42900, $clone($toNativeArray($kindInt32, [48, 0, 48]), d)), CaseRange), $clone(new CaseRange.ptr(42902, 42921, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42922, 42922, $clone($toNativeArray($kindInt32, [0, -42308, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42923, 42923, $clone($toNativeArray($kindInt32, [0, -42319, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42924, 42924, $clone($toNativeArray($kindInt32, [0, -42315, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42925, 42925, $clone($toNativeArray($kindInt32, [0, -42305, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42926, 42926, $clone($toNativeArray($kindInt32, [0, -42308, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42928, 42928, $clone($toNativeArray($kindInt32, [0, -42258, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42929, 42929, $clone($toNativeArray($kindInt32, [0, -42282, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42930, 42930, $clone($toNativeArray($kindInt32, [0, -42261, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42931, 42931, $clone($toNativeArray($kindInt32, [0, 928, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42932, 42943, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42946, 42947, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42948, 42948, $clone($toNativeArray($kindInt32, [0, -48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42949, 42949, $clone($toNativeArray($kindInt32, [0, -42307, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42950, 42950, $clone($toNativeArray($kindInt32, [0, -35384, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42951, 42954, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42997, 42998, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(43859, 43859, $clone($toNativeArray($kindInt32, [-928, 0, -928]), d)), CaseRange), $clone(new CaseRange.ptr(43888, 43967, $clone($toNativeArray($kindInt32, [-38864, 0, -38864]), d)), CaseRange), $clone(new CaseRange.ptr(65313, 65338, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(65345, 65370, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(66560, 66599, $clone($toNativeArray($kindInt32, [0, 40, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66600, 66639, $clone($toNativeArray($kindInt32, [-40, 0, -40]), d)), CaseRange), $clone(new CaseRange.ptr(66736, 66771, $clone($toNativeArray($kindInt32, [0, 40, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66776, 66811, $clone($toNativeArray($kindInt32, [-40, 0, -40]), d)), CaseRange), $clone(new CaseRange.ptr(68736, 68786, $clone($toNativeArray($kindInt32, [0, 64, 0]), d)), CaseRange), $clone(new CaseRange.ptr(68800, 68850, $clone($toNativeArray($kindInt32, [-64, 0, -64]), d)), CaseRange), $clone(new CaseRange.ptr(71840, 71871, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(71872, 71903, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(93760, 93791, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(93792, 93823, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(125184, 125217, $clone($toNativeArray($kindInt32, [0, 34, 0]), d)), CaseRange), $clone(new CaseRange.ptr(125218, 125251, $clone($toNativeArray($kindInt32, [-34, 0, -34]), d)), CaseRange)]); + $pkg.CaseRanges = _CaseRanges; + properties = $toNativeArray($kindUint8, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 144, 130, 130, 130, 136, 130, 130, 130, 130, 130, 130, 136, 130, 130, 130, 130, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 130, 130, 136, 136, 136, 130, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 130, 130, 130, 136, 130, 136, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 130, 136, 130, 136, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 130, 136, 136, 136, 136, 136, 130, 136, 136, 224, 130, 136, 0, 136, 136, 136, 136, 132, 132, 136, 192, 130, 130, 136, 132, 224, 130, 132, 132, 132, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 136, 160, 160, 160, 160, 160, 160, 160, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 136, 192, 192, 192, 192, 192, 192, 192, 192]); + asciiFold = $toNativeArray($kindUint16, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 91, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 8490, 76, 77, 78, 79, 80, 81, 82, 383, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127]); + caseOrbit = new sliceType$3([$clone(new foldPair.ptr(75, 107), foldPair), $clone(new foldPair.ptr(83, 115), foldPair), $clone(new foldPair.ptr(107, 8490), foldPair), $clone(new foldPair.ptr(115, 383), foldPair), $clone(new foldPair.ptr(181, 924), foldPair), $clone(new foldPair.ptr(197, 229), foldPair), $clone(new foldPair.ptr(223, 7838), foldPair), $clone(new foldPair.ptr(229, 8491), foldPair), $clone(new foldPair.ptr(304, 304), foldPair), $clone(new foldPair.ptr(305, 305), foldPair), $clone(new foldPair.ptr(383, 83), foldPair), $clone(new foldPair.ptr(452, 453), foldPair), $clone(new foldPair.ptr(453, 454), foldPair), $clone(new foldPair.ptr(454, 452), foldPair), $clone(new foldPair.ptr(455, 456), foldPair), $clone(new foldPair.ptr(456, 457), foldPair), $clone(new foldPair.ptr(457, 455), foldPair), $clone(new foldPair.ptr(458, 459), foldPair), $clone(new foldPair.ptr(459, 460), foldPair), $clone(new foldPair.ptr(460, 458), foldPair), $clone(new foldPair.ptr(497, 498), foldPair), $clone(new foldPair.ptr(498, 499), foldPair), $clone(new foldPair.ptr(499, 497), foldPair), $clone(new foldPair.ptr(837, 921), foldPair), $clone(new foldPair.ptr(914, 946), foldPair), $clone(new foldPair.ptr(917, 949), foldPair), $clone(new foldPair.ptr(920, 952), foldPair), $clone(new foldPair.ptr(921, 953), foldPair), $clone(new foldPair.ptr(922, 954), foldPair), $clone(new foldPair.ptr(924, 956), foldPair), $clone(new foldPair.ptr(928, 960), foldPair), $clone(new foldPair.ptr(929, 961), foldPair), $clone(new foldPair.ptr(931, 962), foldPair), $clone(new foldPair.ptr(934, 966), foldPair), $clone(new foldPair.ptr(937, 969), foldPair), $clone(new foldPair.ptr(946, 976), foldPair), $clone(new foldPair.ptr(949, 1013), foldPair), $clone(new foldPair.ptr(952, 977), foldPair), $clone(new foldPair.ptr(953, 8126), foldPair), $clone(new foldPair.ptr(954, 1008), foldPair), $clone(new foldPair.ptr(956, 181), foldPair), $clone(new foldPair.ptr(960, 982), foldPair), $clone(new foldPair.ptr(961, 1009), foldPair), $clone(new foldPair.ptr(962, 963), foldPair), $clone(new foldPair.ptr(963, 931), foldPair), $clone(new foldPair.ptr(966, 981), foldPair), $clone(new foldPair.ptr(969, 8486), foldPair), $clone(new foldPair.ptr(976, 914), foldPair), $clone(new foldPair.ptr(977, 1012), foldPair), $clone(new foldPair.ptr(981, 934), foldPair), $clone(new foldPair.ptr(982, 928), foldPair), $clone(new foldPair.ptr(1008, 922), foldPair), $clone(new foldPair.ptr(1009, 929), foldPair), $clone(new foldPair.ptr(1012, 920), foldPair), $clone(new foldPair.ptr(1013, 917), foldPair), $clone(new foldPair.ptr(1042, 1074), foldPair), $clone(new foldPair.ptr(1044, 1076), foldPair), $clone(new foldPair.ptr(1054, 1086), foldPair), $clone(new foldPair.ptr(1057, 1089), foldPair), $clone(new foldPair.ptr(1058, 1090), foldPair), $clone(new foldPair.ptr(1066, 1098), foldPair), $clone(new foldPair.ptr(1074, 7296), foldPair), $clone(new foldPair.ptr(1076, 7297), foldPair), $clone(new foldPair.ptr(1086, 7298), foldPair), $clone(new foldPair.ptr(1089, 7299), foldPair), $clone(new foldPair.ptr(1090, 7300), foldPair), $clone(new foldPair.ptr(1098, 7302), foldPair), $clone(new foldPair.ptr(1122, 1123), foldPair), $clone(new foldPair.ptr(1123, 7303), foldPair), $clone(new foldPair.ptr(7296, 1042), foldPair), $clone(new foldPair.ptr(7297, 1044), foldPair), $clone(new foldPair.ptr(7298, 1054), foldPair), $clone(new foldPair.ptr(7299, 1057), foldPair), $clone(new foldPair.ptr(7300, 7301), foldPair), $clone(new foldPair.ptr(7301, 1058), foldPair), $clone(new foldPair.ptr(7302, 1066), foldPair), $clone(new foldPair.ptr(7303, 1122), foldPair), $clone(new foldPair.ptr(7304, 42570), foldPair), $clone(new foldPair.ptr(7776, 7777), foldPair), $clone(new foldPair.ptr(7777, 7835), foldPair), $clone(new foldPair.ptr(7835, 7776), foldPair), $clone(new foldPair.ptr(7838, 223), foldPair), $clone(new foldPair.ptr(8126, 837), foldPair), $clone(new foldPair.ptr(8486, 937), foldPair), $clone(new foldPair.ptr(8490, 75), foldPair), $clone(new foldPair.ptr(8491, 197), foldPair), $clone(new foldPair.ptr(42570, 42571), foldPair), $clone(new foldPair.ptr(42571, 7304), foldPair)]); + foldL = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(837, 837, 1), Range16)]), sliceType$1.nil, 0); + foldLl = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 222, 1), Range16), $clone(new Range16.ptr(256, 302, 2), Range16), $clone(new Range16.ptr(306, 310, 2), Range16), $clone(new Range16.ptr(313, 327, 2), Range16), $clone(new Range16.ptr(330, 376, 2), Range16), $clone(new Range16.ptr(377, 381, 2), Range16), $clone(new Range16.ptr(385, 386, 1), Range16), $clone(new Range16.ptr(388, 390, 2), Range16), $clone(new Range16.ptr(391, 393, 2), Range16), $clone(new Range16.ptr(394, 395, 1), Range16), $clone(new Range16.ptr(398, 401, 1), Range16), $clone(new Range16.ptr(403, 404, 1), Range16), $clone(new Range16.ptr(406, 408, 1), Range16), $clone(new Range16.ptr(412, 413, 1), Range16), $clone(new Range16.ptr(415, 416, 1), Range16), $clone(new Range16.ptr(418, 422, 2), Range16), $clone(new Range16.ptr(423, 425, 2), Range16), $clone(new Range16.ptr(428, 430, 2), Range16), $clone(new Range16.ptr(431, 433, 2), Range16), $clone(new Range16.ptr(434, 435, 1), Range16), $clone(new Range16.ptr(437, 439, 2), Range16), $clone(new Range16.ptr(440, 444, 4), Range16), $clone(new Range16.ptr(452, 453, 1), Range16), $clone(new Range16.ptr(455, 456, 1), Range16), $clone(new Range16.ptr(458, 459, 1), Range16), $clone(new Range16.ptr(461, 475, 2), Range16), $clone(new Range16.ptr(478, 494, 2), Range16), $clone(new Range16.ptr(497, 498, 1), Range16), $clone(new Range16.ptr(500, 502, 2), Range16), $clone(new Range16.ptr(503, 504, 1), Range16), $clone(new Range16.ptr(506, 562, 2), Range16), $clone(new Range16.ptr(570, 571, 1), Range16), $clone(new Range16.ptr(573, 574, 1), Range16), $clone(new Range16.ptr(577, 579, 2), Range16), $clone(new Range16.ptr(580, 582, 1), Range16), $clone(new Range16.ptr(584, 590, 2), Range16), $clone(new Range16.ptr(837, 880, 43), Range16), $clone(new Range16.ptr(882, 886, 4), Range16), $clone(new Range16.ptr(895, 902, 7), Range16), $clone(new Range16.ptr(904, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 913, 2), Range16), $clone(new Range16.ptr(914, 929, 1), Range16), $clone(new Range16.ptr(931, 939, 1), Range16), $clone(new Range16.ptr(975, 984, 9), Range16), $clone(new Range16.ptr(986, 1006, 2), Range16), $clone(new Range16.ptr(1012, 1015, 3), Range16), $clone(new Range16.ptr(1017, 1018, 1), Range16), $clone(new Range16.ptr(1021, 1071, 1), Range16), $clone(new Range16.ptr(1120, 1152, 2), Range16), $clone(new Range16.ptr(1162, 1216, 2), Range16), $clone(new Range16.ptr(1217, 1229, 2), Range16), $clone(new Range16.ptr(1232, 1326, 2), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(4256, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7680, 7828, 2), Range16), $clone(new Range16.ptr(7838, 7934, 2), Range16), $clone(new Range16.ptr(7944, 7951, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7976, 7983, 1), Range16), $clone(new Range16.ptr(7992, 7999, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8040, 8047, 1), Range16), $clone(new Range16.ptr(8072, 8079, 1), Range16), $clone(new Range16.ptr(8088, 8095, 1), Range16), $clone(new Range16.ptr(8104, 8111, 1), Range16), $clone(new Range16.ptr(8120, 8124, 1), Range16), $clone(new Range16.ptr(8136, 8140, 1), Range16), $clone(new Range16.ptr(8152, 8155, 1), Range16), $clone(new Range16.ptr(8168, 8172, 1), Range16), $clone(new Range16.ptr(8184, 8188, 1), Range16), $clone(new Range16.ptr(8486, 8490, 4), Range16), $clone(new Range16.ptr(8491, 8498, 7), Range16), $clone(new Range16.ptr(8579, 11264, 2685), Range16), $clone(new Range16.ptr(11265, 11310, 1), Range16), $clone(new Range16.ptr(11360, 11362, 2), Range16), $clone(new Range16.ptr(11363, 11364, 1), Range16), $clone(new Range16.ptr(11367, 11373, 2), Range16), $clone(new Range16.ptr(11374, 11376, 1), Range16), $clone(new Range16.ptr(11378, 11381, 3), Range16), $clone(new Range16.ptr(11390, 11392, 1), Range16), $clone(new Range16.ptr(11394, 11490, 2), Range16), $clone(new Range16.ptr(11499, 11501, 2), Range16), $clone(new Range16.ptr(11506, 42560, 31054), Range16), $clone(new Range16.ptr(42562, 42604, 2), Range16), $clone(new Range16.ptr(42624, 42650, 2), Range16), $clone(new Range16.ptr(42786, 42798, 2), Range16), $clone(new Range16.ptr(42802, 42862, 2), Range16), $clone(new Range16.ptr(42873, 42877, 2), Range16), $clone(new Range16.ptr(42878, 42886, 2), Range16), $clone(new Range16.ptr(42891, 42893, 2), Range16), $clone(new Range16.ptr(42896, 42898, 2), Range16), $clone(new Range16.ptr(42902, 42922, 2), Range16), $clone(new Range16.ptr(42923, 42926, 1), Range16), $clone(new Range16.ptr(42928, 42932, 1), Range16), $clone(new Range16.ptr(42934, 42942, 2), Range16), $clone(new Range16.ptr(42946, 42948, 2), Range16), $clone(new Range16.ptr(42949, 42951, 1), Range16), $clone(new Range16.ptr(42953, 42997, 44), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66560, 66599, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(71840, 71871, 1), Range32), $clone(new Range32.ptr(93760, 93791, 1), Range32), $clone(new Range32.ptr(125184, 125217, 1), Range32)]), 3); + foldLt = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(452, 454, 2), Range16), $clone(new Range16.ptr(455, 457, 2), Range16), $clone(new Range16.ptr(458, 460, 2), Range16), $clone(new Range16.ptr(497, 499, 2), Range16), $clone(new Range16.ptr(8064, 8071, 1), Range16), $clone(new Range16.ptr(8080, 8087, 1), Range16), $clone(new Range16.ptr(8096, 8103, 1), Range16), $clone(new Range16.ptr(8115, 8131, 16), Range16), $clone(new Range16.ptr(8179, 8179, 1), Range16)]), sliceType$1.nil, 0); + foldLu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(181, 223, 42), Range16), $clone(new Range16.ptr(224, 246, 1), Range16), $clone(new Range16.ptr(248, 255, 1), Range16), $clone(new Range16.ptr(257, 303, 2), Range16), $clone(new Range16.ptr(307, 311, 2), Range16), $clone(new Range16.ptr(314, 328, 2), Range16), $clone(new Range16.ptr(331, 375, 2), Range16), $clone(new Range16.ptr(378, 382, 2), Range16), $clone(new Range16.ptr(383, 384, 1), Range16), $clone(new Range16.ptr(387, 389, 2), Range16), $clone(new Range16.ptr(392, 396, 4), Range16), $clone(new Range16.ptr(402, 405, 3), Range16), $clone(new Range16.ptr(409, 410, 1), Range16), $clone(new Range16.ptr(414, 417, 3), Range16), $clone(new Range16.ptr(419, 421, 2), Range16), $clone(new Range16.ptr(424, 429, 5), Range16), $clone(new Range16.ptr(432, 436, 4), Range16), $clone(new Range16.ptr(438, 441, 3), Range16), $clone(new Range16.ptr(445, 447, 2), Range16), $clone(new Range16.ptr(453, 454, 1), Range16), $clone(new Range16.ptr(456, 457, 1), Range16), $clone(new Range16.ptr(459, 460, 1), Range16), $clone(new Range16.ptr(462, 476, 2), Range16), $clone(new Range16.ptr(477, 495, 2), Range16), $clone(new Range16.ptr(498, 499, 1), Range16), $clone(new Range16.ptr(501, 505, 4), Range16), $clone(new Range16.ptr(507, 543, 2), Range16), $clone(new Range16.ptr(547, 563, 2), Range16), $clone(new Range16.ptr(572, 575, 3), Range16), $clone(new Range16.ptr(576, 578, 2), Range16), $clone(new Range16.ptr(583, 591, 2), Range16), $clone(new Range16.ptr(592, 596, 1), Range16), $clone(new Range16.ptr(598, 599, 1), Range16), $clone(new Range16.ptr(601, 603, 2), Range16), $clone(new Range16.ptr(604, 608, 4), Range16), $clone(new Range16.ptr(609, 613, 2), Range16), $clone(new Range16.ptr(614, 616, 2), Range16), $clone(new Range16.ptr(617, 620, 1), Range16), $clone(new Range16.ptr(623, 625, 2), Range16), $clone(new Range16.ptr(626, 629, 3), Range16), $clone(new Range16.ptr(637, 640, 3), Range16), $clone(new Range16.ptr(642, 643, 1), Range16), $clone(new Range16.ptr(647, 652, 1), Range16), $clone(new Range16.ptr(658, 669, 11), Range16), $clone(new Range16.ptr(670, 837, 167), Range16), $clone(new Range16.ptr(881, 883, 2), Range16), $clone(new Range16.ptr(887, 891, 4), Range16), $clone(new Range16.ptr(892, 893, 1), Range16), $clone(new Range16.ptr(940, 943, 1), Range16), $clone(new Range16.ptr(945, 974, 1), Range16), $clone(new Range16.ptr(976, 977, 1), Range16), $clone(new Range16.ptr(981, 983, 1), Range16), $clone(new Range16.ptr(985, 1007, 2), Range16), $clone(new Range16.ptr(1008, 1011, 1), Range16), $clone(new Range16.ptr(1013, 1019, 3), Range16), $clone(new Range16.ptr(1072, 1119, 1), Range16), $clone(new Range16.ptr(1121, 1153, 2), Range16), $clone(new Range16.ptr(1163, 1215, 2), Range16), $clone(new Range16.ptr(1218, 1230, 2), Range16), $clone(new Range16.ptr(1231, 1327, 2), Range16), $clone(new Range16.ptr(1377, 1414, 1), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4349, 4351, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7545, 7549, 4), Range16), $clone(new Range16.ptr(7566, 7681, 115), Range16), $clone(new Range16.ptr(7683, 7829, 2), Range16), $clone(new Range16.ptr(7835, 7841, 6), Range16), $clone(new Range16.ptr(7843, 7935, 2), Range16), $clone(new Range16.ptr(7936, 7943, 1), Range16), $clone(new Range16.ptr(7952, 7957, 1), Range16), $clone(new Range16.ptr(7968, 7975, 1), Range16), $clone(new Range16.ptr(7984, 7991, 1), Range16), $clone(new Range16.ptr(8000, 8005, 1), Range16), $clone(new Range16.ptr(8017, 8023, 2), Range16), $clone(new Range16.ptr(8032, 8039, 1), Range16), $clone(new Range16.ptr(8048, 8061, 1), Range16), $clone(new Range16.ptr(8112, 8113, 1), Range16), $clone(new Range16.ptr(8126, 8144, 18), Range16), $clone(new Range16.ptr(8145, 8160, 15), Range16), $clone(new Range16.ptr(8161, 8165, 4), Range16), $clone(new Range16.ptr(8526, 8580, 54), Range16), $clone(new Range16.ptr(11312, 11358, 1), Range16), $clone(new Range16.ptr(11361, 11365, 4), Range16), $clone(new Range16.ptr(11366, 11372, 2), Range16), $clone(new Range16.ptr(11379, 11382, 3), Range16), $clone(new Range16.ptr(11393, 11491, 2), Range16), $clone(new Range16.ptr(11500, 11502, 2), Range16), $clone(new Range16.ptr(11507, 11520, 13), Range16), $clone(new Range16.ptr(11521, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(42561, 42605, 2), Range16), $clone(new Range16.ptr(42625, 42651, 2), Range16), $clone(new Range16.ptr(42787, 42799, 2), Range16), $clone(new Range16.ptr(42803, 42863, 2), Range16), $clone(new Range16.ptr(42874, 42876, 2), Range16), $clone(new Range16.ptr(42879, 42887, 2), Range16), $clone(new Range16.ptr(42892, 42897, 5), Range16), $clone(new Range16.ptr(42899, 42900, 1), Range16), $clone(new Range16.ptr(42903, 42921, 2), Range16), $clone(new Range16.ptr(42933, 42943, 2), Range16), $clone(new Range16.ptr(42947, 42952, 5), Range16), $clone(new Range16.ptr(42954, 42998, 44), Range16), $clone(new Range16.ptr(43859, 43888, 29), Range16), $clone(new Range16.ptr(43889, 43967, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66600, 66639, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(71872, 71903, 1), Range32), $clone(new Range32.ptr(93792, 93823, 1), Range32), $clone(new Range32.ptr(125218, 125251, 1), Range32)]), 4); + foldM = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(921, 953, 32), Range16), $clone(new Range16.ptr(8126, 8126, 1), Range16)]), sliceType$1.nil, 0); + foldMn = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(921, 953, 32), Range16), $clone(new Range16.ptr(8126, 8126, 1), Range16)]), sliceType$1.nil, 0); + $pkg.FoldCategory = $makeMap($String.keyFor, [{ k: "L", v: foldL }, { k: "Ll", v: foldLl }, { k: "Lt", v: foldLt }, { k: "Lu", v: foldLu }, { k: "M", v: foldM }, { k: "Mn", v: foldMn }]); + foldCommon = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(924, 956, 32), Range16)]), sliceType$1.nil, 0); + foldGreek = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(181, 837, 656), Range16)]), sliceType$1.nil, 0); + foldInherited = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(921, 953, 32), Range16), $clone(new Range16.ptr(8126, 8126, 1), Range16)]), sliceType$1.nil, 0); + $pkg.FoldScript = $makeMap($String.keyFor, [{ k: "Common", v: foldCommon }, { k: "Greek", v: foldGreek }, { k: "Inherited", v: foldInherited }]); + $pkg.GraphicRanges = new sliceType$4([$pkg.L, $pkg.M, $pkg.N, $pkg.P, $pkg.S, $pkg.Zs]); + $pkg.PrintRanges = new sliceType$4([$pkg.L, $pkg.M, $pkg.N, $pkg.P, $pkg.S]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["reflect"] = (function() { + var $pkg = {}, $init, errors, js, abi, bytealg, goarch, itoa, unsafeheader, math, runtime, strconv, sync, unicode, utf8, Value, flag, ValueError, MapIter, Type, Kind, tflag, rtype, method, ChanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, Method, nameOff, typeOff, textOff, StructField, StructTag, fieldScan, uncommonType, funcType, name, nameData, hiter, nameOffList, typeOffList, kindNames, initialized, nameMap, bytesType, uint8Type, stringType, callHelper, jsObjectPtr, selectHelper, valueMethodName, copyVal, overflowFloat32, convertOp, makeFloat, makeFloat32, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I, PtrTo, PointerTo, implements$1, specialChannelAssignability, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, methodValueCallCodePtr, methodValueCall, init, New, jsType, reflectType, setKindType, newName, newMethodName, resolveReflectName, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, keyFor, mapaccess, mapassign, mapdelete, mapaccess_faststr, mapassign_faststr, mapdelete_faststr, mapiterinit, mapiterkey, mapiterelem, mapiternext, maplen, cvtDirect, cvtSliceArrayPtr, methodReceiver, valueInterface, ifaceE2I, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, chanrecv, chansend, verifyNotInHeapPtr; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + abi = $packages["internal/abi"]; + bytealg = $packages["internal/bytealg"]; + goarch = $packages["internal/goarch"]; + itoa = $packages["internal/itoa"]; + unsafeheader = $packages["internal/unsafeheader"]; + math = $packages["math"]; + runtime = $packages["runtime"]; + strconv = $packages["strconv"]; + sync = $packages["sync"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Value = $newType(0, $kindStruct, "reflect.Value", true, "reflect", true, function(typ_, ptr_, flag_) { + this.$val = this; + if (arguments.length === 0) { + this.typ = ptrType$1.nil; + this.ptr = 0; + this.flag = 0; + return; + } + this.typ = typ_; + this.ptr = ptr_; + this.flag = flag_; + }); + flag = $newType(4, $kindUintptr, "reflect.flag", true, "reflect", false, null); + ValueError = $newType(0, $kindStruct, "reflect.ValueError", true, "reflect", true, function(Method_, Kind_) { + this.$val = this; + if (arguments.length === 0) { + this.Method = ""; + this.Kind = 0; + return; + } + this.Method = Method_; + this.Kind = Kind_; + }); + MapIter = $newType(0, $kindStruct, "reflect.MapIter", true, "reflect", true, function(m_, hiter_) { + this.$val = this; + if (arguments.length === 0) { + this.m = new Value.ptr(ptrType$1.nil, 0, 0); + this.hiter = new hiter.ptr($ifaceNil, null, null, 0, null); + return; + } + this.m = m_; + this.hiter = hiter_; + }); + Type = $newType(8, $kindInterface, "reflect.Type", true, "reflect", true, null); + Kind = $newType(4, $kindUint, "reflect.Kind", true, "reflect", true, null); + tflag = $newType(1, $kindUint8, "reflect.tflag", true, "reflect", false, null); + rtype = $newType(0, $kindStruct, "reflect.rtype", true, "reflect", false, function(size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, equal_, gcdata_, str_, ptrToThis_) { + this.$val = this; + if (arguments.length === 0) { + this.size = 0; + this.ptrdata = 0; + this.hash = 0; + this.tflag = 0; + this.align = 0; + this.fieldAlign = 0; + this.kind = 0; + this.equal = $throwNilPointerError; + this.gcdata = ptrType$14.nil; + this.str = 0; + this.ptrToThis = 0; + return; + } + this.size = size_; + this.ptrdata = ptrdata_; + this.hash = hash_; + this.tflag = tflag_; + this.align = align_; + this.fieldAlign = fieldAlign_; + this.kind = kind_; + this.equal = equal_; + this.gcdata = gcdata_; + this.str = str_; + this.ptrToThis = ptrToThis_; + }); + method = $newType(0, $kindStruct, "reflect.method", true, "reflect", false, function(name_, mtyp_, ifn_, tfn_) { + this.$val = this; + if (arguments.length === 0) { + this.name = 0; + this.mtyp = 0; + this.ifn = 0; + this.tfn = 0; + return; + } + this.name = name_; + this.mtyp = mtyp_; + this.ifn = ifn_; + this.tfn = tfn_; + }); + ChanDir = $newType(4, $kindInt, "reflect.ChanDir", true, "reflect", true, null); + arrayType = $newType(0, $kindStruct, "reflect.arrayType", true, "reflect", false, function(rtype_, elem_, slice_, len_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0); + this.elem = ptrType$1.nil; + this.slice = ptrType$1.nil; + this.len = 0; + return; + } + this.rtype = rtype_; + this.elem = elem_; + this.slice = slice_; + this.len = len_; + }); + chanType = $newType(0, $kindStruct, "reflect.chanType", true, "reflect", false, function(rtype_, elem_, dir_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0); + this.elem = ptrType$1.nil; + this.dir = 0; + return; + } + this.rtype = rtype_; + this.elem = elem_; + this.dir = dir_; + }); + imethod = $newType(0, $kindStruct, "reflect.imethod", true, "reflect", false, function(name_, typ_) { + this.$val = this; + if (arguments.length === 0) { + this.name = 0; + this.typ = 0; + return; + } + this.name = name_; + this.typ = typ_; + }); + interfaceType = $newType(0, $kindStruct, "reflect.interfaceType", true, "reflect", false, function(rtype_, pkgPath_, methods_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0); + this.pkgPath = new name.ptr(ptrType$14.nil); + this.methods = sliceType$15.nil; + return; + } + this.rtype = rtype_; + this.pkgPath = pkgPath_; + this.methods = methods_; + }); + mapType = $newType(0, $kindStruct, "reflect.mapType", true, "reflect", false, function(rtype_, key_, elem_, bucket_, hasher_, keysize_, valuesize_, bucketsize_, flags_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0); + this.key = ptrType$1.nil; + this.elem = ptrType$1.nil; + this.bucket = ptrType$1.nil; + this.hasher = $throwNilPointerError; + this.keysize = 0; + this.valuesize = 0; + this.bucketsize = 0; + this.flags = 0; + return; + } + this.rtype = rtype_; + this.key = key_; + this.elem = elem_; + this.bucket = bucket_; + this.hasher = hasher_; + this.keysize = keysize_; + this.valuesize = valuesize_; + this.bucketsize = bucketsize_; + this.flags = flags_; + }); + ptrType = $newType(0, $kindStruct, "reflect.ptrType", true, "reflect", false, function(rtype_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0); + this.elem = ptrType$1.nil; + return; + } + this.rtype = rtype_; + this.elem = elem_; + }); + sliceType = $newType(0, $kindStruct, "reflect.sliceType", true, "reflect", false, function(rtype_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0); + this.elem = ptrType$1.nil; + return; + } + this.rtype = rtype_; + this.elem = elem_; + }); + structField = $newType(0, $kindStruct, "reflect.structField", true, "reflect", false, function(name_, typ_, offset_) { + this.$val = this; + if (arguments.length === 0) { + this.name = new name.ptr(ptrType$14.nil); + this.typ = ptrType$1.nil; + this.offset = 0; + return; + } + this.name = name_; + this.typ = typ_; + this.offset = offset_; + }); + structType = $newType(0, $kindStruct, "reflect.structType", true, "reflect", false, function(rtype_, pkgPath_, fields_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0); + this.pkgPath = new name.ptr(ptrType$14.nil); + this.fields = sliceType$16.nil; + return; + } + this.rtype = rtype_; + this.pkgPath = pkgPath_; + this.fields = fields_; + }); + Method = $newType(0, $kindStruct, "reflect.Method", true, "reflect", true, function(Name_, PkgPath_, Type_, Func_, Index_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.PkgPath = ""; + this.Type = $ifaceNil; + this.Func = new Value.ptr(ptrType$1.nil, 0, 0); + this.Index = 0; + return; + } + this.Name = Name_; + this.PkgPath = PkgPath_; + this.Type = Type_; + this.Func = Func_; + this.Index = Index_; + }); + nameOff = $newType(4, $kindInt32, "reflect.nameOff", true, "reflect", false, null); + typeOff = $newType(4, $kindInt32, "reflect.typeOff", true, "reflect", false, null); + textOff = $newType(4, $kindInt32, "reflect.textOff", true, "reflect", false, null); + StructField = $newType(0, $kindStruct, "reflect.StructField", true, "reflect", true, function(Name_, PkgPath_, Type_, Tag_, Offset_, Index_, Anonymous_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.PkgPath = ""; + this.Type = $ifaceNil; + this.Tag = ""; + this.Offset = 0; + this.Index = sliceType$7.nil; + this.Anonymous = false; + return; + } + this.Name = Name_; + this.PkgPath = PkgPath_; + this.Type = Type_; + this.Tag = Tag_; + this.Offset = Offset_; + this.Index = Index_; + this.Anonymous = Anonymous_; + }); + StructTag = $newType(8, $kindString, "reflect.StructTag", true, "reflect", true, null); + fieldScan = $newType(0, $kindStruct, "reflect.fieldScan", true, "reflect", false, function(typ_, index_) { + this.$val = this; + if (arguments.length === 0) { + this.typ = ptrType$13.nil; + this.index = sliceType$7.nil; + return; + } + this.typ = typ_; + this.index = index_; + }); + uncommonType = $newType(0, $kindStruct, "reflect.uncommonType", true, "reflect", false, function(pkgPath_, mcount_, xcount_, moff_, _methods_) { + this.$val = this; + if (arguments.length === 0) { + this.pkgPath = 0; + this.mcount = 0; + this.xcount = 0; + this.moff = 0; + this._methods = sliceType$12.nil; + return; + } + this.pkgPath = pkgPath_; + this.mcount = mcount_; + this.xcount = xcount_; + this.moff = moff_; + this._methods = _methods_; + }); + funcType = $newType(0, $kindStruct, "reflect.funcType", true, "reflect", false, function(rtype_, inCount_, outCount_, _in_, _out_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0); + this.inCount = 0; + this.outCount = 0; + this._in = sliceType$2.nil; + this._out = sliceType$2.nil; + return; + } + this.rtype = rtype_; + this.inCount = inCount_; + this.outCount = outCount_; + this._in = _in_; + this._out = _out_; + }); + name = $newType(0, $kindStruct, "reflect.name", true, "reflect", false, function(bytes_) { + this.$val = this; + if (arguments.length === 0) { + this.bytes = ptrType$14.nil; + return; + } + this.bytes = bytes_; + }); + nameData = $newType(0, $kindStruct, "reflect.nameData", true, "reflect", false, function(name_, tag_, exported_, embedded_, pkgPath_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.tag = ""; + this.exported = false; + this.embedded = false; + this.pkgPath = ""; + return; + } + this.name = name_; + this.tag = tag_; + this.exported = exported_; + this.embedded = embedded_; + this.pkgPath = pkgPath_; + }); + hiter = $newType(0, $kindStruct, "reflect.hiter", true, "reflect", false, function(t_, m_, keys_, i_, last_) { + this.$val = this; + if (arguments.length === 0) { + this.t = $ifaceNil; + this.m = null; + this.keys = null; + this.i = 0; + this.last = null; + return; + } + this.t = t_; + this.m = m_; + this.keys = keys_; + this.i = i_; + this.last = last_; + }); + $pkg.Value = Value; + $pkg.flag = flag; + $pkg.ValueError = ValueError; + $pkg.MapIter = MapIter; + $pkg.Type = Type; + $pkg.Kind = Kind; + $pkg.tflag = tflag; + $pkg.rtype = rtype; + $pkg.method = method; + $pkg.ChanDir = ChanDir; + $pkg.arrayType = arrayType; + $pkg.chanType = chanType; + $pkg.imethod = imethod; + $pkg.interfaceType = interfaceType; + $pkg.mapType = mapType; + $pkg.ptrType = ptrType; + $pkg.sliceType = sliceType; + $pkg.structField = structField; + $pkg.structType = structType; + $pkg.Method = Method; + $pkg.nameOff = nameOff; + $pkg.typeOff = typeOff; + $pkg.textOff = textOff; + $pkg.StructField = StructField; + $pkg.StructTag = StructTag; + $pkg.fieldScan = fieldScan; + $pkg.uncommonType = uncommonType; + $pkg.funcType = funcType; + $pkg.name = name; + $pkg.nameData = nameData; + $pkg.hiter = hiter; + $pkg.$finishSetup = function() { + flag.prototype.kind = function kind() { + var f; + f = this.$val; + return ((((f & 31) >>> 0) >>> 0)); + }; + $ptrType(flag).prototype.kind = function(...$args) { return new flag(this.$get()).kind(...$args); }; + flag.prototype.ro = function ro() { + var f; + f = this.$val; + if (!((((f & 96) >>> 0) === 0))) { + return 32; + } + return 0; + }; + $ptrType(flag).prototype.ro = function(...$args) { return new flag(this.$get()).ro(...$args); }; + $ptrType(Value).prototype.pointer = function pointer() { + var v; + v = this; + if (!((v.typ.size === 4)) || !v.typ.pointers()) { + $panic(new $String("can't call pointer on a non-pointer Value")); + } + if (!((((v.flag & 128) >>> 0) === 0))) { + return (v.ptr).$get(); + } + return v.ptr; + }; + Value.prototype.pointer = function(...$args) { return this.$val.pointer(...$args); }; + $ptrType(ValueError).prototype.Error = function Error() { + var e; + e = this; + if (e.Kind === 0) { + return "reflect: call of " + e.Method + " on zero Value"; + } + return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value"; + }; + valueMethodName = function valueMethodName$1() { + var _tuple, frame, frames, methodName, more, n, name$1, pc; + pc = arrayType$2.zero(); + n = runtime.Callers(1, new sliceType$8(pc)); + frames = runtime.CallersFrames($subslice(new sliceType$8(pc), 0, n)); + frame = new runtime.Frame.ptr(0, ptrType$4.nil, "", "", 0, 0); + more = true; + while (true) { + if (!(more)) { break; } + _tuple = frames.Next(); + runtime.Frame.copy(frame, _tuple[0]); + more = _tuple[1]; + name$1 = frame.Function; + if (name$1.length > 14 && $substring(name$1, 0, 14) === "reflect.Value.") { + methodName = $substring(name$1, 14); + if (methodName.length > 0 && 65 <= methodName.charCodeAt(0) && methodName.charCodeAt(0) <= 90) { + return name$1; + } + } + } + return "unknown method"; + }; + flag.prototype.mustBe = function mustBe(expected) { + var expected, f; + f = this.$val; + if (!((((((f & 31) >>> 0) >>> 0)) === expected))) { + $panic(new ValueError.ptr(valueMethodName(), new flag(f).kind())); + } + }; + $ptrType(flag).prototype.mustBe = function(...$args) { return new flag(this.$get()).mustBe(...$args); }; + flag.prototype.mustBeExported = function mustBeExported() { + var f; + f = this.$val; + if ((f === 0) || !((((f & 96) >>> 0) === 0))) { + new flag(f).mustBeExportedSlow(); + } + }; + $ptrType(flag).prototype.mustBeExported = function(...$args) { return new flag(this.$get()).mustBeExported(...$args); }; + flag.prototype.mustBeExportedSlow = function mustBeExportedSlow() { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(valueMethodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + valueMethodName() + " using value obtained using unexported field")); + } + }; + $ptrType(flag).prototype.mustBeExportedSlow = function(...$args) { return new flag(this.$get()).mustBeExportedSlow(...$args); }; + flag.prototype.mustBeAssignable = function mustBeAssignable() { + var f; + f = this.$val; + if (!((((f & 96) >>> 0) === 0)) || (((f & 256) >>> 0) === 0)) { + new flag(f).mustBeAssignableSlow(); + } + }; + $ptrType(flag).prototype.mustBeAssignable = function(...$args) { return new flag(this.$get()).mustBeAssignable(...$args); }; + flag.prototype.mustBeAssignableSlow = function mustBeAssignableSlow() { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(valueMethodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + valueMethodName() + " using value obtained using unexported field")); + } + if (((f & 256) >>> 0) === 0) { + $panic(new $String("reflect: " + valueMethodName() + " using unaddressable value")); + } + }; + $ptrType(flag).prototype.mustBeAssignableSlow = function(...$args) { return new flag(this.$get()).mustBeAssignableSlow(...$args); }; + $ptrType(Value).prototype.Addr = function Addr() { + var fl, v; + v = this; + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Addr of unaddressable value")); + } + fl = (v.flag & 96) >>> 0; + return new Value.ptr(v.typ.ptrTo(), v.ptr, (fl | 22) >>> 0); + }; + Value.prototype.Addr = function(...$args) { return this.$val.Addr(...$args); }; + $ptrType(Value).prototype.Bool = function Bool() { + var v; + v = this; + if (!((new flag(v.flag).kind() === 1))) { + $clone(v, Value).panicNotBool(); + } + return (v.ptr).$get(); + }; + Value.prototype.Bool = function(...$args) { return this.$val.Bool(...$args); }; + $ptrType(Value).prototype.panicNotBool = function panicNotBool() { + var v; + v = this; + new flag(v.flag).mustBe(1); + }; + Value.prototype.panicNotBool = function(...$args) { return this.$val.panicNotBool(...$args); }; + $ptrType(Value).prototype.Bytes = function Bytes() { + var {$24r, _r, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + if (v.typ === bytesType) { + $s = -1; return (v.ptr).$get(); + } + _r = $clone(v, Value).bytesSlow(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Bytes, $c: true, $r, $24r, _r, v, $s};return $f; + }; + Value.prototype.Bytes = function(...$args) { return this.$val.Bytes(...$args); }; + $ptrType(Value).prototype.runes = function runes() { + var {_r, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 5))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 5))) { */ case 1: + $panic(new $String("reflect.Value.Bytes of non-rune slice")); + /* } */ case 2: + $s = -1; return (v.ptr).$get(); + /* */ } return; } var $f = {$blk: runes, $c: true, $r, _r, v, $s};return $f; + }; + Value.prototype.runes = function(...$args) { return this.$val.runes(...$args); }; + $ptrType(Value).prototype.CanAddr = function CanAddr() { + var v; + v = this; + return !((((v.flag & 256) >>> 0) === 0)); + }; + Value.prototype.CanAddr = function(...$args) { return this.$val.CanAddr(...$args); }; + $ptrType(Value).prototype.CanSet = function CanSet() { + var v; + v = this; + return ((v.flag & 352) >>> 0) === 256; + }; + Value.prototype.CanSet = function(...$args) { return this.$val.CanSet(...$args); }; + $ptrType(Value).prototype.Call = function Call(in$1) { + var {$24r, _r, in$1, v, $s, $r, $c} = $restore(this, {in$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(19); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).call("Call", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Call, $c: true, $r, $24r, _r, in$1, v, $s};return $f; + }; + Value.prototype.Call = function(...$args) { return this.$val.Call(...$args); }; + $ptrType(Value).prototype.CallSlice = function CallSlice(in$1) { + var {$24r, _r, in$1, v, $s, $r, $c} = $restore(this, {in$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(19); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).call("CallSlice", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: CallSlice, $c: true, $r, $24r, _r, in$1, v, $s};return $f; + }; + Value.prototype.CallSlice = function(...$args) { return this.$val.CallSlice(...$args); }; + $ptrType(Value).prototype.CanComplex = function CanComplex() { + var _1, v; + v = this; + _1 = new flag(v.flag).kind(); + if ((_1 === (15)) || (_1 === (16))) { + return true; + } else { + return false; + } + }; + Value.prototype.CanComplex = function(...$args) { return this.$val.CanComplex(...$args); }; + $ptrType(Value).prototype.Complex = function Complex() { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + return ((x = (v.ptr).$get(), new $Complex128(x.$real, x.$imag))); + } else if (_1 === (16)) { + return (v.ptr).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Complex", new flag(v.flag).kind())); + }; + Value.prototype.Complex = function(...$args) { return this.$val.Complex(...$args); }; + $ptrType(Value).prototype.FieldByIndex = function FieldByIndex(index) { + var {$24r, _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s, $r, $c} = $restore(this, {index}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (index.$length === 1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (index.$length === 1) { */ case 1: + _r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + new flag(v.flag).mustBe(25); + _ref = index; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (i > 0) { */ case 7: + if (!($clone(v, Value).Kind() === 22)) { _v = false; $s = 11; continue s; } + _r$1 = v.typ.Elem().Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 === 25; case 11: + /* */ if (_v) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_v) { */ case 9: + if ($clone(v, Value).IsNil()) { + $panic(new $String("reflect: indirection through nil pointer to embedded struct")); + } + _r$2 = $clone(v, Value).Elem(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + v = _r$2; + /* } */ case 10: + /* } */ case 8: + _r$3 = $clone(v, Value).Field(x); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + v = _r$3; + _i++; + $s = 5; continue; + case 6: + $s = -1; return v; + /* */ } return; } var $f = {$blk: FieldByIndex, $c: true, $r, $24r, _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s};return $f; + }; + Value.prototype.FieldByIndex = function(...$args) { return this.$val.FieldByIndex(...$args); }; + $ptrType(Value).prototype.FieldByIndexErr = function FieldByIndexErr(index) { + var {$24r, $24r$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _v, i, index, v, x, $s, $r, $c} = $restore(this, {index}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (index.$length === 1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (index.$length === 1) { */ case 1: + _r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = [_r, $ifaceNil]; + $s = 4; case 4: return $24r; + /* } */ case 2: + new flag(v.flag).mustBe(25); + _ref = index; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (i > 0) { */ case 7: + if (!($clone(v, Value).Kind() === 22)) { _v = false; $s = 11; continue s; } + _r$1 = v.typ.Elem().Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 === 25; case 11: + /* */ if (_v) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_v) { */ case 9: + /* */ if ($clone(v, Value).IsNil()) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ($clone(v, Value).IsNil()) { */ case 13: + _r$2 = v.typ.Elem().Name(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = errors.New("reflect: indirection through nil pointer to embedded struct field " + _r$2); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = [new Value.ptr(ptrType$1.nil, 0, 0), _r$3]; + $s = 17; case 17: return $24r$1; + /* } */ case 14: + _r$4 = $clone(v, Value).Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + v = _r$4; + /* } */ case 10: + /* } */ case 8: + _r$5 = $clone(v, Value).Field(x); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + v = _r$5; + _i++; + $s = 5; continue; + case 6: + $s = -1; return [v, $ifaceNil]; + /* */ } return; } var $f = {$blk: FieldByIndexErr, $c: true, $r, $24r, $24r$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _v, i, index, v, x, $s};return $f; + }; + Value.prototype.FieldByIndexErr = function(...$args) { return this.$val.FieldByIndexErr(...$args); }; + $ptrType(Value).prototype.FieldByName = function FieldByName(name$1) { + var {$24r, _r, _r$1, _tuple, f, name$1, ok, v, $s, $r, $c} = $restore(this, {name$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(25); + _r = v.typ.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = $clone(_tuple[0], StructField); + ok = _tuple[1]; + /* */ if (ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (ok) { */ case 2: + _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 5; case 5: return $24r; + /* } */ case 3: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } var $f = {$blk: FieldByName, $c: true, $r, $24r, _r, _r$1, _tuple, f, name$1, ok, v, $s};return $f; + }; + Value.prototype.FieldByName = function(...$args) { return this.$val.FieldByName(...$args); }; + $ptrType(Value).prototype.FieldByNameFunc = function FieldByNameFunc(match) { + var {$24r, _r, _r$1, _tuple, f, match, ok, v, $s, $r, $c} = $restore(this, {match}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + _r = v.typ.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = $clone(_tuple[0], StructField); + ok = _tuple[1]; + /* */ if (ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (ok) { */ case 2: + _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 5; case 5: return $24r; + /* } */ case 3: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } var $f = {$blk: FieldByNameFunc, $c: true, $r, $24r, _r, _r$1, _tuple, f, match, ok, v, $s};return $f; + }; + Value.prototype.FieldByNameFunc = function(...$args) { return this.$val.FieldByNameFunc(...$args); }; + $ptrType(Value).prototype.CanFloat = function CanFloat() { + var _1, v; + v = this; + _1 = new flag(v.flag).kind(); + if ((_1 === (13)) || (_1 === (14))) { + return true; + } else { + return false; + } + }; + Value.prototype.CanFloat = function(...$args) { return this.$val.CanFloat(...$args); }; + $ptrType(Value).prototype.Float = function Float() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + return ((v.ptr).$get()); + } else if (_1 === (14)) { + return (v.ptr).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Float", new flag(v.flag).kind())); + }; + Value.prototype.Float = function(...$args) { return this.$val.Float(...$args); }; + $ptrType(Value).prototype.CanInt = function CanInt() { + var _1, v; + v = this; + _1 = new flag(v.flag).kind(); + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + return true; + } else { + return false; + } + }; + Value.prototype.CanInt = function(...$args) { return this.$val.CanInt(...$args); }; + $ptrType(Value).prototype.Int = function Int() { + var _1, k, p, v; + v = this; + k = new flag(v.flag).kind(); + p = v.ptr; + _1 = k; + if (_1 === (2)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (3)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (4)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (5)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (6)) { + return (p).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Int", new flag(v.flag).kind())); + }; + Value.prototype.Int = function(...$args) { return this.$val.Int(...$args); }; + $ptrType(Value).prototype.CanInterface = function CanInterface() { + var v; + v = this; + if (v.flag === 0) { + $panic(new ValueError.ptr("reflect.Value.CanInterface", 0)); + } + return ((v.flag & 96) >>> 0) === 0; + }; + Value.prototype.CanInterface = function(...$args) { return this.$val.CanInterface(...$args); }; + $ptrType(Value).prototype.Interface = function Interface() { + var {$24r, _r, i, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = $ifaceNil; + v = this; + _r = valueInterface($clone(v, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + $24r = i; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Interface, $c: true, $r, $24r, _r, i, v, $s};return $f; + }; + Value.prototype.Interface = function(...$args) { return this.$val.Interface(...$args); }; + $ptrType(Value).prototype.IsValid = function IsValid() { + var v; + v = this; + return !((v.flag === 0)); + }; + Value.prototype.IsValid = function(...$args) { return this.$val.IsValid(...$args); }; + $ptrType(Value).prototype.IsZero = function IsZero() { + var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, c, i, i$1, v, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + _1 = new flag(v.flag).kind(); + /* */ if (_1 === (1)) { $s = 2; continue; } + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 3; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 4; continue; } + /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 5; continue; } + /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 6; continue; } + /* */ if (_1 === (17)) { $s = 7; continue; } + /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { $s = 8; continue; } + /* */ if (_1 === (24)) { $s = 9; continue; } + /* */ if (_1 === (25)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === (1)) { */ case 2: + $s = -1; return !$clone(v, Value).Bool(); + /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 3: + $s = -1; return (x = $clone(v, Value).Int(), (x.$high === 0 && x.$low === 0)); + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 4: + $s = -1; return (x$1 = $clone(v, Value).Uint(), (x$1.$high === 0 && x$1.$low === 0)); + /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 5: + $s = -1; return (x$2 = math.Float64bits($clone(v, Value).Float()), (x$2.$high === 0 && x$2.$low === 0)); + /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 6: + c = $clone(v, Value).Complex(); + $s = -1; return (x$3 = math.Float64bits(c.$real), (x$3.$high === 0 && x$3.$low === 0)) && (x$4 = math.Float64bits(c.$imag), (x$4.$high === 0 && x$4.$low === 0)); + /* } else if (_1 === (17)) { */ case 7: + i = 0; + /* while (true) { */ case 13: + _r = $clone(v, Value).Len(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* if (!(i < _r)) { break; } */ if(!(i < _r)) { $s = 14; continue; } + _r$1 = $clone(v, Value).Index(i); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = $clone(_r$1, Value).IsZero(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!_r$2) { */ case 16: + $s = -1; return false; + /* } */ case 17: + i = i + (1) >> 0; + $s = 13; continue; + case 14: + $s = -1; return true; + /* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { */ case 8: + $s = -1; return $clone(v, Value).IsNil(); + /* } else if (_1 === (24)) { */ case 9: + _r$3 = $clone(v, Value).Len(); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3 === 0; + $s = 21; case 21: return $24r; + /* } else if (_1 === (25)) { */ case 10: + i$1 = 0; + /* while (true) { */ case 22: + /* if (!(i$1 < $clone(v, Value).NumField())) { break; } */ if(!(i$1 < $clone(v, Value).NumField())) { $s = 23; continue; } + _r$4 = $clone(v, Value).Field(i$1); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = $clone(_r$4, Value).IsZero(); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!_r$5) { */ case 24: + $s = -1; return false; + /* } */ case 25: + i$1 = i$1 + (1) >> 0; + $s = 22; continue; + case 23: + $s = -1; return true; + /* } else { */ case 11: + $panic(new ValueError.ptr("reflect.Value.IsZero", $clone(v, Value).Kind())); + /* } */ case 12: + case 1: + $s = -1; return false; + /* */ } return; } var $f = {$blk: IsZero, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, c, i, i$1, v, x, x$1, x$2, x$3, x$4, $s};return $f; + }; + Value.prototype.IsZero = function(...$args) { return this.$val.IsZero(...$args); }; + $ptrType(Value).prototype.Kind = function Kind$1() { + var v; + v = this; + return new flag(v.flag).kind(); + }; + Value.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; + $ptrType(Value).prototype.MapIndex = function MapIndex(key) { + var {_r, e, fl, k, k$1, key, tt, typ, v, $s, $r, $c} = $restore(this, {key}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(21); + tt = (v.typ.kindType); + e = 0; + /* */ if ((tt.key === stringType || (new flag(key.flag).kind() === 24)) && tt.key === key.typ && tt.elem.size <= 128) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((tt.key === stringType || (new flag(key.flag).kind() === 24)) && tt.key === key.typ && tt.elem.size <= 128) { */ case 1: + k = (key.ptr).$get(); + e = mapaccess_faststr(v.typ, $clone(v, Value).pointer(), k); + $s = 3; continue; + /* } else { */ case 2: + _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + k$1 = 0; + if (!((((key.flag & 128) >>> 0) === 0))) { + k$1 = key.ptr; + } else { + k$1 = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); + } + e = mapaccess(v.typ, $clone(v, Value).pointer(), k$1); + /* } */ case 3: + if (e === 0) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + typ = tt.elem; + fl = new flag((((v.flag | key.flag) >>> 0))).ro(); + fl = (fl | (((typ.Kind() >>> 0)))) >>> 0; + $s = -1; return copyVal(typ, fl, e); + /* */ } return; } var $f = {$blk: MapIndex, $c: true, $r, _r, e, fl, k, k$1, key, tt, typ, v, $s};return $f; + }; + Value.prototype.MapIndex = function(...$args) { return this.$val.MapIndex(...$args); }; + $ptrType(Value).prototype.MapKeys = function MapKeys() { + var {_r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + it = [it]; + v = this; + new flag(v.flag).mustBe(21); + tt = (v.typ.kindType); + keyType = tt.key; + fl = (new flag(v.flag).ro() | ((keyType.Kind() >>> 0))) >>> 0; + m = $clone(v, Value).pointer(); + mlen = 0; + if (!(m === 0)) { + mlen = maplen(m); + } + it[0] = new hiter.ptr($ifaceNil, null, null, 0, null); + mapiterinit(v.typ, m, it[0]); + a = $makeSlice(sliceType$9, mlen); + i = 0; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < a.$length)) { break; } */ if(!(i < a.$length)) { $s = 2; continue; } + _r = mapiterkey(it[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + if (key === 0) { + /* break; */ $s = 2; continue; + } + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = copyVal(keyType, fl, key)); + mapiternext(it[0]); + i = i + (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return $subslice(a, 0, i); + /* */ } return; } var $f = {$blk: MapKeys, $c: true, $r, _r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s};return $f; + }; + Value.prototype.MapKeys = function(...$args) { return this.$val.MapKeys(...$args); }; + $ptrType(hiter).prototype.initialized = function initialized$1() { + var h; + h = this; + return !($interfaceIsEqual(h.t, $ifaceNil)); + }; + $ptrType(MapIter).prototype.Key = function Key() { + var {_r, iter, iterkey, ktype, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + iter = this; + if (!iter.hiter.initialized()) { + $panic(new $String("MapIter.Key called before Next")); + } + _r = mapiterkey(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + iterkey = _r; + if (iterkey === 0) { + $panic(new $String("MapIter.Key called on exhausted iterator")); + } + t = (iter.m.typ.kindType); + ktype = t.key; + $s = -1; return copyVal(ktype, (new flag(iter.m.flag).ro() | ((ktype.Kind() >>> 0))) >>> 0, iterkey); + /* */ } return; } var $f = {$blk: Key, $c: true, $r, _r, iter, iterkey, ktype, t, $s};return $f; + }; + $ptrType(Value).prototype.SetIterKey = function SetIterKey(iter) { + var {_r, _r$1, iter, iterkey, key, ktype, t, target, v, $s, $r, $c} = $restore(this, {iter}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + if (!iter.hiter.initialized()) { + $panic(new $String("reflect: Value.SetIterKey called before Next")); + } + _r = mapiterkey(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + iterkey = _r; + if (iterkey === 0) { + $panic(new $String("reflect: Value.SetIterKey called on exhausted iterator")); + } + new flag(v.flag).mustBeAssignable(); + target = 0; + if (new flag(v.flag).kind() === 20) { + target = v.ptr; + } + t = (iter.m.typ.kindType); + ktype = t.key; + key = new Value.ptr(ktype, iterkey, (((iter.m.flag | ((ktype.Kind() >>> 0))) >>> 0) | 128) >>> 0); + _r$1 = $clone(key, Value).assignTo("reflect.MapIter.SetKey", v.typ, target); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + key = _r$1; + typedmemmove(v.typ, v.ptr, key.ptr); + $s = -1; return; + /* */ } return; } var $f = {$blk: SetIterKey, $c: true, $r, _r, _r$1, iter, iterkey, key, ktype, t, target, v, $s};return $f; + }; + Value.prototype.SetIterKey = function(...$args) { return this.$val.SetIterKey(...$args); }; + $ptrType(MapIter).prototype.Value = function Value$1() { + var {_r, iter, iterelem, t, vtype, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + iter = this; + if (!iter.hiter.initialized()) { + $panic(new $String("MapIter.Value called before Next")); + } + _r = mapiterelem(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + iterelem = _r; + if (iterelem === 0) { + $panic(new $String("MapIter.Value called on exhausted iterator")); + } + t = (iter.m.typ.kindType); + vtype = t.elem; + $s = -1; return copyVal(vtype, (new flag(iter.m.flag).ro() | ((vtype.Kind() >>> 0))) >>> 0, iterelem); + /* */ } return; } var $f = {$blk: Value$1, $c: true, $r, _r, iter, iterelem, t, vtype, $s};return $f; + }; + $ptrType(Value).prototype.SetIterValue = function SetIterValue(iter) { + var {_r, _r$1, elem, iter, iterelem, t, target, v, vtype, $s, $r, $c} = $restore(this, {iter}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + if (!iter.hiter.initialized()) { + $panic(new $String("reflect: Value.SetIterValue called before Next")); + } + _r = mapiterelem(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + iterelem = _r; + if (iterelem === 0) { + $panic(new $String("reflect: Value.SetIterValue called on exhausted iterator")); + } + new flag(v.flag).mustBeAssignable(); + target = 0; + if (new flag(v.flag).kind() === 20) { + target = v.ptr; + } + t = (iter.m.typ.kindType); + vtype = t.elem; + elem = new Value.ptr(vtype, iterelem, (((iter.m.flag | ((vtype.Kind() >>> 0))) >>> 0) | 128) >>> 0); + _r$1 = $clone(elem, Value).assignTo("reflect.MapIter.SetValue", v.typ, target); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + elem = _r$1; + typedmemmove(v.typ, v.ptr, elem.ptr); + $s = -1; return; + /* */ } return; } var $f = {$blk: SetIterValue, $c: true, $r, _r, _r$1, elem, iter, iterelem, t, target, v, vtype, $s};return $f; + }; + Value.prototype.SetIterValue = function(...$args) { return this.$val.SetIterValue(...$args); }; + $ptrType(MapIter).prototype.Next = function Next() { + var {$24r, _r, _r$1, iter, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + iter = this; + if (!$clone(iter.m, Value).IsValid()) { + $panic(new $String("MapIter.Next called on an iterator that does not have an associated map Value")); + } + /* */ if (!iter.hiter.initialized()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!iter.hiter.initialized()) { */ case 1: + mapiterinit(iter.m.typ, $clone(iter.m, Value).pointer(), iter.hiter); + $s = 3; continue; + /* } else { */ case 2: + _r = mapiterkey(iter.hiter); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r === 0) { */ case 4: + $panic(new $String("MapIter.Next called on exhausted iterator")); + /* } */ case 5: + mapiternext(iter.hiter); + /* } */ case 3: + _r$1 = mapiterkey(iter.hiter); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = !(_r$1 === 0); + $s = 8; case 8: return $24r; + /* */ } return; } var $f = {$blk: Next, $c: true, $r, $24r, _r, _r$1, iter, $s};return $f; + }; + $ptrType(MapIter).prototype.Reset = function Reset(v) { + var iter, v; + iter = this; + if ($clone(v, Value).IsValid()) { + new flag(v.flag).mustBe(21); + } + iter.m = v; + hiter.copy(iter.hiter, new hiter.ptr($ifaceNil, null, null, 0, null)); + }; + $ptrType(Value).prototype.MapRange = function MapRange() { + var v; + v = this; + if (!((new flag(v.flag).kind() === 21))) { + new flag(v.flag).panicNotMap(); + } + return new MapIter.ptr($clone(v, Value), new hiter.ptr($ifaceNil, null, null, 0, null)); + }; + Value.prototype.MapRange = function(...$args) { return this.$val.MapRange(...$args); }; + flag.prototype.panicNotMap = function panicNotMap() { + var f; + f = this.$val; + new flag(f).mustBe(21); + }; + $ptrType(flag).prototype.panicNotMap = function(...$args) { return new flag(this.$get()).panicNotMap(...$args); }; + copyVal = function copyVal$1(typ, fl, ptr) { + var c, fl, ptr, typ; + if (ifaceIndir(typ)) { + c = unsafe_New(typ); + typedmemmove(typ, c, ptr); + return new Value.ptr(typ, c, (fl | 128) >>> 0); + } + return new Value.ptr(typ, (ptr).$get(), fl); + }; + $ptrType(Value).prototype.Method = function Method$1(i) { + var fl, i, v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.Method", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0)) || ((i >>> 0)) >= ((v.typ.NumMethod() >>> 0))) { + $panic(new $String("reflect: Method index out of range")); + } + if ((v.typ.Kind() === 20) && $clone(v, Value).IsNil()) { + $panic(new $String("reflect: Method on nil interface value")); + } + fl = (new flag(v.flag).ro() | (((v.flag & 128) >>> 0))) >>> 0; + fl = (fl | (19)) >>> 0; + fl = (fl | ((((((i >>> 0)) << 10 >>> 0) | 512) >>> 0))) >>> 0; + return new Value.ptr(v.typ, v.ptr, fl); + }; + Value.prototype.Method = function(...$args) { return this.$val.Method(...$args); }; + $ptrType(Value).prototype.NumMethod = function NumMethod() { + var v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.NumMethod", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0))) { + return 0; + } + return v.typ.NumMethod(); + }; + Value.prototype.NumMethod = function(...$args) { return this.$val.NumMethod(...$args); }; + $ptrType(Value).prototype.MethodByName = function MethodByName(name$1) { + var {_r, _tuple, m, name$1, ok, v, $s, $r, $c} = $restore(this, {name$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.MethodByName", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0))) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + _r = v.typ.MethodByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = $clone(_tuple[0], Method); + ok = _tuple[1]; + if (!ok) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + $s = -1; return $clone(v, Value).Method(m.Index); + /* */ } return; } var $f = {$blk: MethodByName, $c: true, $r, _r, _tuple, m, name$1, ok, v, $s};return $f; + }; + Value.prototype.MethodByName = function(...$args) { return this.$val.MethodByName(...$args); }; + $ptrType(Value).prototype.NumField = function NumField() { + var tt, v; + v = this; + new flag(v.flag).mustBe(25); + tt = (v.typ.kindType); + return tt.fields.$length; + }; + Value.prototype.NumField = function(...$args) { return this.$val.NumField(...$args); }; + $ptrType(Value).prototype.OverflowComplex = function OverflowComplex(x) { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + return overflowFloat32(x.$real) || overflowFloat32(x.$imag); + } else if (_1 === (16)) { + return false; + } + $panic(new ValueError.ptr("reflect.Value.OverflowComplex", new flag(v.flag).kind())); + }; + Value.prototype.OverflowComplex = function(...$args) { return this.$val.OverflowComplex(...$args); }; + $ptrType(Value).prototype.OverflowFloat = function OverflowFloat(x) { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + return overflowFloat32(x); + } else if (_1 === (14)) { + return false; + } + $panic(new ValueError.ptr("reflect.Value.OverflowFloat", new flag(v.flag).kind())); + }; + Value.prototype.OverflowFloat = function(...$args) { return this.$val.OverflowFloat(...$args); }; + overflowFloat32 = function overflowFloat32$1(x) { + var x; + if (x < 0) { + x = -x; + } + return 3.4028234663852886e+38 < x && x <= 1.7976931348623157e+308; + }; + $ptrType(Value).prototype.OverflowInt = function OverflowInt(x) { + var _1, bitSize, k, trunc, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + bitSize = $imul(v.typ.size, 8) >>> 0; + trunc = $shiftRightInt64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); + return !((x.$high === trunc.$high && x.$low === trunc.$low)); + } + $panic(new ValueError.ptr("reflect.Value.OverflowInt", new flag(v.flag).kind())); + }; + Value.prototype.OverflowInt = function(...$args) { return this.$val.OverflowInt(...$args); }; + $ptrType(Value).prototype.OverflowUint = function OverflowUint(x) { + var _1, bitSize, k, trunc, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (7)) || (_1 === (12)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) { + bitSize = $imul(v.typ.size, 8) >>> 0; + trunc = $shiftRightUint64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); + return !((x.$high === trunc.$high && x.$low === trunc.$low)); + } + $panic(new ValueError.ptr("reflect.Value.OverflowUint", new flag(v.flag).kind())); + }; + Value.prototype.OverflowUint = function(...$args) { return this.$val.OverflowUint(...$args); }; + $ptrType(Value).prototype.Recv = function Recv() { + var {$24r, _r, _tuple, ok, v, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).recv(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + x = _tuple[0]; + ok = _tuple[1]; + $24r = [x, ok]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Recv, $c: true, $r, $24r, _r, _tuple, ok, v, x, $s};return $f; + }; + Value.prototype.Recv = function(...$args) { return this.$val.Recv(...$args); }; + $ptrType(Value).prototype.recv = function recv(nb) { + var {_r, _tuple, nb, ok, p, selected, t, tt, v, val, $s, $r, $c} = $restore(this, {nb}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + val = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + tt = (v.typ.kindType); + if ((((tt.dir >> 0)) & 1) === 0) { + $panic(new $String("reflect: recv on send-only channel")); + } + t = tt.elem; + val = new Value.ptr(t, 0, ((t.Kind() >>> 0))); + p = 0; + if (ifaceIndir(t)) { + p = unsafe_New(t); + val.ptr = p; + val.flag = (val.flag | (128)) >>> 0; + } else { + p = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val)))); + } + _r = chanrecv($clone(v, Value).pointer(), nb, p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + selected = _tuple[0]; + ok = _tuple[1]; + if (!selected) { + val = new Value.ptr(ptrType$1.nil, 0, 0); + } + $s = -1; return [val, ok]; + /* */ } return; } var $f = {$blk: recv, $c: true, $r, _r, _tuple, nb, ok, p, selected, t, tt, v, val, $s};return $f; + }; + Value.prototype.recv = function(...$args) { return this.$val.recv(...$args); }; + $ptrType(Value).prototype.Send = function Send(x) { + var {_r, v, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).send($clone(x, Value), false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* */ } return; } var $f = {$blk: Send, $c: true, $r, _r, v, x, $s};return $f; + }; + Value.prototype.Send = function(...$args) { return this.$val.Send(...$args); }; + $ptrType(Value).prototype.send = function send(x, nb) { + var {$24r, _r, _r$1, nb, p, selected, tt, v, x, $s, $r, $c} = $restore(this, {x, nb}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + selected = false; + v = this; + tt = (v.typ.kindType); + if ((((tt.dir >> 0)) & 2) === 0) { + $panic(new $String("reflect: send on recv-only channel")); + } + new flag(x.flag).mustBeExported(); + _r = $clone(x, Value).assignTo("reflect.Value.Send", tt.elem, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x = _r; + p = 0; + if (!((((x.flag & 128) >>> 0) === 0))) { + p = x.ptr; + } else { + p = ((x.$ptr_ptr || (x.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, x)))); + } + _r$1 = chansend($clone(v, Value).pointer(), p, nb); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + selected = _r$1; + $24r = selected; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: send, $c: true, $r, $24r, _r, _r$1, nb, p, selected, tt, v, x, $s};return $f; + }; + Value.prototype.send = function(...$args) { return this.$val.send(...$args); }; + $ptrType(Value).prototype.SetBool = function SetBool(x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(1); + (v.ptr).$set(x); + }; + Value.prototype.SetBool = function(...$args) { return this.$val.SetBool(...$args); }; + $ptrType(Value).prototype.setRunes = function setRunes(x) { + var {_r, v, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 5))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 5))) { */ case 1: + $panic(new $String("reflect.Value.setRunes of non-rune slice")); + /* } */ case 2: + (v.ptr).$set(x); + $s = -1; return; + /* */ } return; } var $f = {$blk: setRunes, $c: true, $r, _r, v, x, $s};return $f; + }; + Value.prototype.setRunes = function(...$args) { return this.$val.setRunes(...$args); }; + $ptrType(Value).prototype.SetComplex = function SetComplex(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + (v.ptr).$set((new $Complex64(x.$real, x.$imag))); + } else if (_1 === (16)) { + (v.ptr).$set(x); + } else { + $panic(new ValueError.ptr("reflect.Value.SetComplex", new flag(v.flag).kind())); + } + }; + Value.prototype.SetComplex = function(...$args) { return this.$val.SetComplex(...$args); }; + $ptrType(Value).prototype.SetFloat = function SetFloat(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + (v.ptr).$set(($fround(x))); + } else if (_1 === (14)) { + (v.ptr).$set(x); + } else { + $panic(new ValueError.ptr("reflect.Value.SetFloat", new flag(v.flag).kind())); + } + }; + Value.prototype.SetFloat = function(...$args) { return this.$val.SetFloat(...$args); }; + $ptrType(Value).prototype.SetInt = function SetInt(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (2)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); + } else if (_1 === (3)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 24 >> 24))); + } else if (_1 === (4)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 16 >> 16))); + } else if (_1 === (5)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); + } else if (_1 === (6)) { + (v.ptr).$set(x); + } else { + $panic(new ValueError.ptr("reflect.Value.SetInt", new flag(v.flag).kind())); + } + }; + Value.prototype.SetInt = function(...$args) { return this.$val.SetInt(...$args); }; + $ptrType(Value).prototype.SetMapIndex = function SetMapIndex(key, elem) { + var {_r, _r$1, _r$2, e, e$1, elem, k, k$1, key, tt, v, $s, $r, $c} = $restore(this, {key, elem}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(21); + new flag(v.flag).mustBeExported(); + new flag(key.flag).mustBeExported(); + tt = (v.typ.kindType); + /* */ if ((tt.key === stringType || (new flag(key.flag).kind() === 24)) && tt.key === key.typ && tt.elem.size <= 128) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((tt.key === stringType || (new flag(key.flag).kind() === 24)) && tt.key === key.typ && tt.elem.size <= 128) { */ case 1: + k = (key.ptr).$get(); + if (elem.typ === ptrType$1.nil) { + mapdelete_faststr(v.typ, $clone(v, Value).pointer(), k); + $s = -1; return; + } + new flag(elem.flag).mustBeExported(); + _r = $clone(elem, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + elem = _r; + e = 0; + if (!((((elem.flag & 128) >>> 0) === 0))) { + e = elem.ptr; + } else { + e = ((elem.$ptr_ptr || (elem.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, elem)))); + } + $r = mapassign_faststr(v.typ, $clone(v, Value).pointer(), k, e); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 2: + _r$1 = $clone(key, Value).assignTo("reflect.Value.SetMapIndex", tt.key, 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + key = _r$1; + k$1 = 0; + if (!((((key.flag & 128) >>> 0) === 0))) { + k$1 = key.ptr; + } else { + k$1 = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); + } + if (elem.typ === ptrType$1.nil) { + mapdelete(v.typ, $clone(v, Value).pointer(), k$1); + $s = -1; return; + } + new flag(elem.flag).mustBeExported(); + _r$2 = $clone(elem, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + elem = _r$2; + e$1 = 0; + if (!((((elem.flag & 128) >>> 0) === 0))) { + e$1 = elem.ptr; + } else { + e$1 = ((elem.$ptr_ptr || (elem.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, elem)))); + } + $r = mapassign(v.typ, $clone(v, Value).pointer(), k$1, e$1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: SetMapIndex, $c: true, $r, _r, _r$1, _r$2, e, e$1, elem, k, k$1, key, tt, v, $s};return $f; + }; + Value.prototype.SetMapIndex = function(...$args) { return this.$val.SetMapIndex(...$args); }; + $ptrType(Value).prototype.SetUint = function SetUint(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (7)) { + (v.ptr).$set(((x.$low >>> 0))); + } else if (_1 === (8)) { + (v.ptr).$set(((x.$low << 24 >>> 24))); + } else if (_1 === (9)) { + (v.ptr).$set(((x.$low << 16 >>> 16))); + } else if (_1 === (10)) { + (v.ptr).$set(((x.$low >>> 0))); + } else if (_1 === (11)) { + (v.ptr).$set(x); + } else if (_1 === (12)) { + (v.ptr).$set(((x.$low >>> 0))); + } else { + $panic(new ValueError.ptr("reflect.Value.SetUint", new flag(v.flag).kind())); + } + }; + Value.prototype.SetUint = function(...$args) { return this.$val.SetUint(...$args); }; + $ptrType(Value).prototype.SetPointer = function SetPointer(x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(26); + (v.ptr).$set(x); + }; + Value.prototype.SetPointer = function(...$args) { return this.$val.SetPointer(...$args); }; + $ptrType(Value).prototype.SetString = function SetString(x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(24); + (v.ptr).$set(x); + }; + Value.prototype.SetString = function(...$args) { return this.$val.SetString(...$args); }; + $ptrType(Value).prototype.String = function String() { + var {$24r, _r, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + if (new flag(v.flag).kind() === 24) { + $s = -1; return (v.ptr).$get(); + } + _r = $clone(v, Value).stringNonString(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r, v, $s};return $f; + }; + Value.prototype.String = function(...$args) { return this.$val.String(...$args); }; + $ptrType(Value).prototype.stringNonString = function stringNonString() { + var {$24r, _r, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + if (new flag(v.flag).kind() === 0) { + $s = -1; return ""; + } + _r = $clone(v, Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = "<" + _r + " Value>"; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: stringNonString, $c: true, $r, $24r, _r, v, $s};return $f; + }; + Value.prototype.stringNonString = function(...$args) { return this.$val.stringNonString(...$args); }; + $ptrType(Value).prototype.TryRecv = function TryRecv() { + var {$24r, _r, _tuple, ok, v, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).recv(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + x = _tuple[0]; + ok = _tuple[1]; + $24r = [x, ok]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: TryRecv, $c: true, $r, $24r, _r, _tuple, ok, v, x, $s};return $f; + }; + Value.prototype.TryRecv = function(...$args) { return this.$val.TryRecv(...$args); }; + $ptrType(Value).prototype.TrySend = function TrySend(x) { + var {$24r, _r, v, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).send($clone(x, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: TrySend, $c: true, $r, $24r, _r, v, x, $s};return $f; + }; + Value.prototype.TrySend = function(...$args) { return this.$val.TrySend(...$args); }; + $ptrType(Value).prototype.Type = function Type$1() { + var v; + v = this; + if (!((v.flag === 0)) && (((v.flag & 512) >>> 0) === 0)) { + return v.typ; + } + return $clone(v, Value).typeSlow(); + }; + Value.prototype.Type = function(...$args) { return this.$val.Type(...$args); }; + $ptrType(Value).prototype.typeSlow = function typeSlow() { + var i, m, m$1, ms, tt, v, x; + v = this; + if (v.flag === 0) { + $panic(new ValueError.ptr("reflect.Value.Type", 0)); + } + if (((v.flag & 512) >>> 0) === 0) { + return v.typ; + } + i = ((v.flag >> 0)) >> 10 >> 0; + if (v.typ.Kind() === 20) { + tt = (v.typ.kindType); + if (((i >>> 0)) >= ((tt.methods.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + return v.typ.typeOff(m.typ); + } + ms = v.typ.exportedMethods(); + if (((i >>> 0)) >= ((ms.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); + return v.typ.typeOff(m$1.mtyp); + }; + Value.prototype.typeSlow = function(...$args) { return this.$val.typeSlow(...$args); }; + $ptrType(Value).prototype.CanUint = function CanUint() { + var _1, v; + v = this; + _1 = new flag(v.flag).kind(); + if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + return true; + } else { + return false; + } + }; + Value.prototype.CanUint = function(...$args) { return this.$val.CanUint(...$args); }; + $ptrType(Value).prototype.Uint = function Uint() { + var _1, k, p, v, x; + v = this; + k = new flag(v.flag).kind(); + p = v.ptr; + _1 = k; + if (_1 === (7)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (8)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (9)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (10)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (11)) { + return (p).$get(); + } else if (_1 === (12)) { + return ((x = (p).$get(), new $Uint64(0, x.constructor === Number ? x : 1))); + } + $panic(new ValueError.ptr("reflect.Value.Uint", new flag(v.flag).kind())); + }; + Value.prototype.Uint = function(...$args) { return this.$val.Uint(...$args); }; + $ptrType(Value).prototype.UnsafeAddr = function UnsafeAddr() { + var v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.UnsafeAddr", 0)); + } + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.UnsafeAddr of unaddressable value")); + } + return (v.ptr); + }; + Value.prototype.UnsafeAddr = function(...$args) { return this.$val.UnsafeAddr(...$args); }; + $ptrType(Value).prototype.UnsafePointer = function UnsafePointer() { + var {_1, _r, code, k, p, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + code = [code]; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (22)) { $s = 2; continue; } + /* */ if ((_1 === (18)) || (_1 === (21)) || (_1 === (26))) { $s = 3; continue; } + /* */ if (_1 === (19)) { $s = 4; continue; } + /* */ if (_1 === (23)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (22)) { */ case 2: + if (v.typ.ptrdata === 0) { + if (!verifyNotInHeapPtr((v.ptr).$get())) { + $panic(new $String("reflect: reflect.Value.UnsafePointer on an invalid notinheap pointer")); + } + $s = -1; return (v.ptr).$get(); + } + $s = -1; return $clone(v, Value).pointer(); + /* } else if ((_1 === (18)) || (_1 === (21)) || (_1 === (26))) { */ case 3: + $s = -1; return $clone(v, Value).pointer(); + /* } else if (_1 === (19)) { */ case 4: + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 7: + _r = methodValueCallCodePtr(); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + code[0] = _r; + $s = -1; return code[0]; + /* } */ case 8: + p = $clone(v, Value).pointer(); + if (!(p === 0)) { + p = (p).$get(); + } + $s = -1; return p; + /* } else if (_1 === (23)) { */ case 5: + $s = -1; return ($pointerOfStructConversion(v.ptr, ptrType$9)).Data; + /* } */ case 6: + case 1: + $panic(new ValueError.ptr("reflect.Value.UnsafePointer", new flag(v.flag).kind())); + $s = -1; return 0; + /* */ } return; } var $f = {$blk: UnsafePointer, $c: true, $r, _1, _r, code, k, p, v, $s};return $f; + }; + Value.prototype.UnsafePointer = function(...$args) { return this.$val.UnsafePointer(...$args); }; + $ptrType(Value).prototype.Convert = function Convert(t) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, op, t, v, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue("Convert", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* } */ case 2: + _r$1 = t.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = convertOp(_r$1, v.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + op = _r$2; + /* */ if (op === $throwNilPointerError) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (op === $throwNilPointerError) { */ case 6: + _r$3 = t.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $panic(new $String("reflect.Value.Convert: value of type " + v.typ.String() + " cannot be converted to type " + _r$3)); + /* } */ case 7: + _r$4 = op($clone(v, Value), t); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 10; case 10: return $24r; + /* */ } return; } var $f = {$blk: Convert, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, op, t, v, $s};return $f; + }; + Value.prototype.Convert = function(...$args) { return this.$val.Convert(...$args); }; + $ptrType(Value).prototype.CanConvert = function CanConvert(t) { + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, n, t, v, vt, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + vt = $clone(v, Value).Type(); + _r = vt.ConvertibleTo(t); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $s = -1; return false; + /* } */ case 2: + _r$1 = vt.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (!(_r$1 === 23)) { _v$1 = false; $s = 7; continue s; } + _r$2 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 === 22; case 7: + if (!(_v$1)) { _v = false; $s = 6; continue s; } + _r$3 = t.Elem(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = _r$3.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = _r$4 === 17; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + _r$5 = t.Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = _r$5.Len(); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + n = _r$6; + _r$7 = $clone(v, Value).Len(); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (n > _r$7) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (n > _r$7) { */ case 14: + $s = -1; return false; + /* } */ case 15: + /* } */ case 5: + $s = -1; return true; + /* */ } return; } var $f = {$blk: CanConvert, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, n, t, v, vt, $s};return $f; + }; + Value.prototype.CanConvert = function(...$args) { return this.$val.CanConvert(...$args); }; + convertOp = function convertOp$1(dst, src) { + var {_1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, dst, src, $s, $r, $c} = $restore(this, {dst, src}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _1 = src.Kind(); + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 2; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 3; continue; } + /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 4; continue; } + /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 5; continue; } + /* */ if (_1 === (24)) { $s = 6; continue; } + /* */ if (_1 === (23)) { $s = 7; continue; } + /* */ if (_1 === (18)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2: + _2 = dst.Kind(); + if ((_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { + $s = -1; return cvtInt; + } else if ((_2 === (13)) || (_2 === (14))) { + $s = -1; return cvtIntFloat; + } else if (_2 === (24)) { + $s = -1; return cvtIntString; + } + $s = 9; continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3: + _3 = dst.Kind(); + if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6)) || (_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { + $s = -1; return cvtUint; + } else if ((_3 === (13)) || (_3 === (14))) { + $s = -1; return cvtUintFloat; + } else if (_3 === (24)) { + $s = -1; return cvtUintString; + } + $s = 9; continue; + /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 4: + _4 = dst.Kind(); + if ((_4 === (2)) || (_4 === (3)) || (_4 === (4)) || (_4 === (5)) || (_4 === (6))) { + $s = -1; return cvtFloatInt; + } else if ((_4 === (7)) || (_4 === (8)) || (_4 === (9)) || (_4 === (10)) || (_4 === (11)) || (_4 === (12))) { + $s = -1; return cvtFloatUint; + } else if ((_4 === (13)) || (_4 === (14))) { + $s = -1; return cvtFloat; + } + $s = 9; continue; + /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 5: + _5 = dst.Kind(); + if ((_5 === (15)) || (_5 === (16))) { + $s = -1; return cvtComplex; + } + $s = 9; continue; + /* } else if (_1 === (24)) { */ case 6: + if (!(dst.Kind() === 23)) { _v = false; $s = 12; continue s; } + _r = dst.Elem().PkgPath(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r === ""; case 12: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + _r$1 = dst.Elem().Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _6 = _r$1; + if (_6 === (8)) { + $s = -1; return cvtStringBytes; + } else if (_6 === (5)) { + $s = -1; return cvtStringRunes; + } + case 14: + /* } */ case 11: + $s = 9; continue; + /* } else if (_1 === (23)) { */ case 7: + if (!(dst.Kind() === 24)) { _v$1 = false; $s = 18; continue s; } + _r$2 = src.Elem().PkgPath(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 === ""; case 18: + /* */ if (_v$1) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_v$1) { */ case 16: + _r$3 = src.Elem().Kind(); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _7 = _r$3; + if (_7 === (8)) { + $s = -1; return cvtBytesString; + } else if (_7 === (5)) { + $s = -1; return cvtRunesString; + } + case 20: + /* } */ case 17: + if (!(dst.Kind() === 22)) { _v$3 = false; $s = 25; continue s; } + _r$4 = dst.Elem().Kind(); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v$3 = _r$4 === 17; case 25: + if (!(_v$3)) { _v$2 = false; $s = 24; continue s; } + _r$5 = dst.Elem().Elem(); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v$2 = $interfaceIsEqual(src.Elem(), _r$5); case 24: + /* */ if (_v$2) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (_v$2) { */ case 22: + $s = -1; return cvtSliceArrayPtr; + /* } */ case 23: + $s = 9; continue; + /* } else if (_1 === (18)) { */ case 8: + if (!(dst.Kind() === 18)) { _v$4 = false; $s = 30; continue s; } + _r$6 = specialChannelAssignability(dst, src); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$4 = _r$6; case 30: + /* */ if (_v$4) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (_v$4) { */ case 28: + $s = -1; return cvtDirect; + /* } */ case 29: + /* } */ case 9: + case 1: + _r$7 = haveIdenticalUnderlyingType(dst, src, false); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (_r$7) { */ case 32: + $s = -1; return cvtDirect; + /* } */ case 33: + if (!((dst.Kind() === 22) && dst.Name() === "" && (src.Kind() === 22) && src.Name() === "")) { _v$5 = false; $s = 37; continue s; } + _r$8 = dst.Elem().common(); /* */ $s = 38; case 38: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg = _r$8; + _r$9 = src.Elem().common(); /* */ $s = 39; case 39: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$1 = _r$9; + _r$10 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 40; case 40: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v$5 = _r$10; case 37: + /* */ if (_v$5) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (_v$5) { */ case 35: + $s = -1; return cvtDirect; + /* } */ case 36: + if (implements$1(dst, src)) { + if (src.Kind() === 20) { + $s = -1; return cvtI2I; + } + $s = -1; return cvtT2I; + } + $s = -1; return $throwNilPointerError; + /* */ } return; } var $f = {$blk: convertOp$1, $c: true, $r, _1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, dst, src, $s};return $f; + }; + makeFloat = function makeFloat$1(f, v, t) { + var {_1, _r, f, ptr, t, typ, v, $s, $r, $c} = $restore(this, {f, v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.size; + if (_1 === (4)) { + (ptr).$set(($fround(v))); + } else if (_1 === (8)) { + (ptr).$set(v); + } + $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } return; } var $f = {$blk: makeFloat$1, $c: true, $r, _1, _r, f, ptr, t, typ, v, $s};return $f; + }; + makeFloat32 = function makeFloat32$1(f, v, t) { + var {_r, f, ptr, t, typ, v, $s, $r, $c} = $restore(this, {f, v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + ptr = unsafe_New(typ); + (ptr).$set(v); + $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } return; } var $f = {$blk: makeFloat32$1, $c: true, $r, _r, f, ptr, t, typ, v, $s};return $f; + }; + makeComplex = function makeComplex$1(f, v, t) { + var {_1, _r, f, ptr, t, typ, v, $s, $r, $c} = $restore(this, {f, v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.size; + if (_1 === (8)) { + (ptr).$set((new $Complex64(v.$real, v.$imag))); + } else if (_1 === (16)) { + (ptr).$set(v); + } + $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } return; } var $f = {$blk: makeComplex$1, $c: true, $r, _1, _r, f, ptr, t, typ, v, $s};return $f; + }; + makeString = function makeString$1(f, v, t) { + var {_r, f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + $clone(ret, Value).SetString(v); + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; return ret; + /* */ } return; } var $f = {$blk: makeString$1, $c: true, $r, _r, f, ret, t, v, $s};return $f; + }; + makeBytes = function makeBytes$1(f, v, t) { + var {_r, f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + $r = $clone(ret, Value).SetBytes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; return ret; + /* */ } return; } var $f = {$blk: makeBytes$1, $c: true, $r, _r, f, ret, t, v, $s};return $f; + }; + makeRunes = function makeRunes$1(f, v, t) { + var {_r, f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + $r = $clone(ret, Value).setRunes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; return ret; + /* */ } return; } var $f = {$blk: makeRunes$1, $c: true, $r, _r, f, ret, t, v, $s};return $f; + }; + cvtInt = function cvtInt$1(v, t) { + var {$24r, _r, t, v, x, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), ((x = $clone(v, Value).Int(), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: cvtInt$1, $c: true, $r, $24r, _r, t, v, x, $s};return $f; + }; + cvtUint = function cvtUint$1(v, t) { + var {$24r, _r, t, v, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), $clone(v, Value).Uint(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: cvtUint$1, $c: true, $r, $24r, _r, t, v, $s};return $f; + }; + cvtFloatInt = function cvtFloatInt$1(v, t) { + var {$24r, _r, t, v, x, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), ((x = (new $Int64(0, $clone(v, Value).Float())), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: cvtFloatInt$1, $c: true, $r, $24r, _r, t, v, x, $s};return $f; + }; + cvtFloatUint = function cvtFloatUint$1(v, t) { + var {$24r, _r, t, v, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), (new $Uint64(0, $clone(v, Value).Float())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: cvtFloatUint$1, $c: true, $r, $24r, _r, t, v, $s};return $f; + }; + cvtIntFloat = function cvtIntFloat$1(v, t) { + var {$24r, _r, t, v, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Int())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: cvtIntFloat$1, $c: true, $r, $24r, _r, t, v, $s};return $f; + }; + cvtUintFloat = function cvtUintFloat$1(v, t) { + var {$24r, _r, t, v, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Uint())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: cvtUintFloat$1, $c: true, $r, $24r, _r, t, v, $s};return $f; + }; + cvtFloat = function cvtFloat$1(v, t) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _v, t, v, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = $clone(v, Value).Type().Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (!(_r === 13)) { _v = false; $s = 3; continue s; } + _r$1 = t.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 === 13; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + _r$2 = makeFloat32(new flag(v.flag).ro(), (v.ptr).$get(), t); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 7; case 7: return $24r; + /* } */ case 2: + _r$3 = makeFloat(new flag(v.flag).ro(), $clone(v, Value).Float(), t); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = _r$3; + $s = 9; case 9: return $24r$1; + /* */ } return; } var $f = {$blk: cvtFloat$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _v, t, v, $s};return $f; + }; + cvtComplex = function cvtComplex$1(v, t) { + var {$24r, _r, t, v, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = makeComplex(new flag(v.flag).ro(), $clone(v, Value).Complex(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: cvtComplex$1, $c: true, $r, $24r, _r, t, v, $s};return $f; + }; + cvtIntString = function cvtIntString$1(v, t) { + var {$24r, _r, s, t, v, x, x$1, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = "\xEF\xBF\xBD"; + x = $clone(v, Value).Int(); + if ((x$1 = (new $Int64(0, (((x.$low + ((x.$high >> 31) * 4294967296)) >> 0)))), (x$1.$high === x.$high && x$1.$low === x.$low))) { + s = ($encodeRune((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0)))); + } + _r = makeString(new flag(v.flag).ro(), s, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: cvtIntString$1, $c: true, $r, $24r, _r, s, t, v, x, x$1, $s};return $f; + }; + cvtUintString = function cvtUintString$1(v, t) { + var {$24r, _r, s, t, v, x, x$1, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = "\xEF\xBF\xBD"; + x = $clone(v, Value).Uint(); + if ((x$1 = (new $Uint64(0, ((x.$low >> 0)))), (x$1.$high === x.$high && x$1.$low === x.$low))) { + s = ($encodeRune(((x.$low >> 0)))); + } + _r = makeString(new flag(v.flag).ro(), s, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: cvtUintString$1, $c: true, $r, $24r, _r, s, t, v, x, x$1, $s};return $f; + }; + cvtBytesString = function cvtBytesString$1(v, t) { + var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).Bytes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = ($bytesToString(_r)); + _arg$2 = t; + _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: cvtBytesString$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f; + }; + cvtStringBytes = function cvtStringBytes$1(v, t) { + var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = (new sliceType$4($stringToBytes(_r))); + _arg$2 = t; + _r$1 = makeBytes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: cvtStringBytes$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f; + }; + cvtRunesString = function cvtRunesString$1(v, t) { + var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).runes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = ($runesToString(_r)); + _arg$2 = t; + _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: cvtRunesString$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f; + }; + cvtStringRunes = function cvtStringRunes$1(v, t) { + var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = (new sliceType$11($stringToRunes(_r))); + _arg$2 = t; + _r$1 = makeRunes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: cvtStringRunes$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f; + }; + cvtT2I = function cvtT2I$1(v, typ) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s, $r, $c} = $restore(this, {v, typ}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = typ.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = unsafe_New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + target = _r$1; + _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + _r$3 = typ.NumMethod(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$3 === 0) { */ case 4: + (target).$set(x); + $s = 6; continue; + /* } else { */ case 5: + ifaceE2I($assertType(typ, ptrType$1), x, target); + /* } */ case 6: + _r$4 = typ.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = new Value.ptr(_r$4, target, (((new flag(v.flag).ro() | 128) >>> 0) | 20) >>> 0); + $s = 9; case 9: return $24r; + /* */ } return; } var $f = {$blk: cvtT2I$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s};return $f; + }; + cvtI2I = function cvtI2I$1(v, typ) { + var {$24r, _r, _r$1, _r$2, ret, typ, v, $s, $r, $c} = $restore(this, {v, typ}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if ($clone(v, Value).IsNil()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($clone(v, Value).IsNil()) { */ case 1: + _r = Zero(typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + ret.flag = (ret.flag | (new flag(v.flag).ro())) >>> 0; + $s = -1; return ret; + /* } */ case 2: + _r$1 = $clone(v, Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = cvtT2I($clone(_r$1, Value), typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: cvtI2I$1, $c: true, $r, $24r, _r, _r$1, _r$2, ret, typ, v, $s};return $f; + }; + $ptrType(structField).prototype.embedded = function embedded() { + var f; + f = this; + return $clone(f.name, name).embedded(); + }; + $ptrType(Method).prototype.IsExported = function IsExported() { + var m; + m = this; + return m.PkgPath === ""; + }; + Method.prototype.IsExported = function(...$args) { return this.$val.IsExported(...$args); }; + Kind.prototype.String = function String$1() { + var k, x; + k = this.$val; + if (((k >>> 0)) < ((kindNames.$length >>> 0))) { + return (x = ((k >>> 0)), ((x < 0 || x >= kindNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + x])); + } + return "kind" + strconv.Itoa(((k >> 0))); + }; + $ptrType(Kind).prototype.String = function(...$args) { return new Kind(this.$get()).String(...$args); }; + $ptrType(rtype).prototype.String = function String$2() { + var s, t; + t = this; + s = $clone(t.nameOff(t.str), name).name(); + if (!((((t.tflag & 2) >>> 0) === 0))) { + return $substring(s, 1); + } + return s; + }; + $ptrType(rtype).prototype.Size = function Size() { + var t; + t = this; + return t.size; + }; + $ptrType(rtype).prototype.Bits = function Bits() { + var k, t; + t = this; + if (t === ptrType$1.nil) { + $panic(new $String("reflect: Bits of nil Type")); + } + k = t.Kind(); + if (k < 2 || k > 16) { + $panic(new $String("reflect: Bits of non-arithmetic Type " + t.String())); + } + return $imul(((t.size >> 0)), 8); + }; + $ptrType(rtype).prototype.Align = function Align() { + var t; + t = this; + return ((t.align >> 0)); + }; + $ptrType(rtype).prototype.FieldAlign = function FieldAlign() { + var t; + t = this; + return ((t.fieldAlign >> 0)); + }; + $ptrType(rtype).prototype.Kind = function Kind$2() { + var t; + t = this; + return ((((t.kind & 31) >>> 0) >>> 0)); + }; + $ptrType(rtype).prototype.common = function common() { + var t; + t = this; + return t; + }; + $ptrType(rtype).prototype.exportedMethods = function exportedMethods() { + var t, ut; + t = this; + ut = t.uncommon(); + if (ut === ptrType$10.nil) { + return sliceType$12.nil; + } + return ut.exportedMethods(); + }; + $ptrType(rtype).prototype.NumMethod = function NumMethod$1() { + var t, tt; + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + return tt.NumMethod(); + } + return t.exportedMethods().$length; + }; + $ptrType(rtype).prototype.MethodByName = function MethodByName$1(name$1) { + var {$24r, _i, _r, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, i, m, name$1, ok, p, t, tt, ut, $s, $r, $c} = $restore(this, {name$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + ok = false; + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + _tuple = tt.MethodByName(name$1); + Method.copy(m, _tuple[0]); + ok = _tuple[1]; + $s = -1; return [m, ok]; + } + ut = t.uncommon(); + if (ut === ptrType$10.nil) { + _tmp = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + _tmp$1 = false; + Method.copy(m, _tmp); + ok = _tmp$1; + $s = -1; return [m, ok]; + } + _ref = ut.exportedMethods(); + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + p = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), method); + /* */ if ($clone(t.nameOff(p.name), name).name() === name$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($clone(t.nameOff(p.name), name).name() === name$1) { */ case 3: + _r = t.Method(i); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$2 = $clone(_r, Method); + _tmp$3 = true; + Method.copy(m, _tmp$2); + ok = _tmp$3; + $24r = [m, ok]; + $s = 6; case 6: return $24r; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + _tmp$4 = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + _tmp$5 = false; + Method.copy(m, _tmp$4); + ok = _tmp$5; + $s = -1; return [m, ok]; + /* */ } return; } var $f = {$blk: MethodByName$1, $c: true, $r, $24r, _i, _r, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, i, m, name$1, ok, p, t, tt, ut, $s};return $f; + }; + $ptrType(rtype).prototype.PkgPath = function PkgPath() { + var t, ut; + t = this; + if (((t.tflag & 4) >>> 0) === 0) { + return ""; + } + ut = t.uncommon(); + if (ut === ptrType$10.nil) { + return ""; + } + return $clone(t.nameOff(ut.pkgPath), name).name(); + }; + $ptrType(rtype).prototype.hasName = function hasName() { + var t; + t = this; + return !((((t.tflag & 4) >>> 0) === 0)); + }; + $ptrType(rtype).prototype.Name = function Name() { + var _1, i, s, sqBrackets, t; + t = this; + if (!t.hasName()) { + return ""; + } + s = t.String(); + i = s.length - 1 >> 0; + sqBrackets = 0; + while (true) { + if (!(i >= 0 && (!((s.charCodeAt(i) === 46)) || !((sqBrackets === 0))))) { break; } + _1 = s.charCodeAt(i); + if (_1 === (93)) { + sqBrackets = sqBrackets + (1) >> 0; + } else if (_1 === (91)) { + sqBrackets = sqBrackets - (1) >> 0; + } + i = i - (1) >> 0; + } + return $substring(s, (i + 1 >> 0)); + }; + $ptrType(rtype).prototype.ChanDir = function ChanDir$1() { + var t, tt; + t = this; + if (!((t.Kind() === 18))) { + $panic(new $String("reflect: ChanDir of non-chan type " + t.String())); + } + tt = (t.kindType); + return ((tt.dir >> 0)); + }; + $ptrType(rtype).prototype.IsVariadic = function IsVariadic() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: IsVariadic of non-func type " + t.String())); + } + tt = (t.kindType); + return !((((tt.outCount & 32768) >>> 0) === 0)); + }; + $ptrType(rtype).prototype.Elem = function Elem() { + var _1, t, tt, tt$1, tt$2, tt$3, tt$4; + t = this; + _1 = t.Kind(); + if (_1 === (17)) { + tt = (t.kindType); + return toType(tt.elem); + } else if (_1 === (18)) { + tt$1 = (t.kindType); + return toType(tt$1.elem); + } else if (_1 === (21)) { + tt$2 = (t.kindType); + return toType(tt$2.elem); + } else if (_1 === (22)) { + tt$3 = (t.kindType); + return toType(tt$3.elem); + } else if (_1 === (23)) { + tt$4 = (t.kindType); + return toType(tt$4.elem); + } + $panic(new $String("reflect: Elem of invalid type " + t.String())); + }; + $ptrType(rtype).prototype.Field = function Field(i) { + var i, t, tt; + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: Field of non-struct type " + t.String())); + } + tt = (t.kindType); + return tt.Field(i); + }; + $ptrType(rtype).prototype.FieldByIndex = function FieldByIndex$1(index) { + var {$24r, _r, index, t, tt, $s, $r, $c} = $restore(this, {index}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByIndex of non-struct type " + t.String())); + } + tt = (t.kindType); + _r = tt.FieldByIndex(index); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: FieldByIndex$1, $c: true, $r, $24r, _r, index, t, tt, $s};return $f; + }; + $ptrType(rtype).prototype.FieldByName = function FieldByName$1(name$1) { + var {$24r, _r, name$1, t, tt, $s, $r, $c} = $restore(this, {name$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByName of non-struct type " + t.String())); + } + tt = (t.kindType); + _r = tt.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: FieldByName$1, $c: true, $r, $24r, _r, name$1, t, tt, $s};return $f; + }; + $ptrType(rtype).prototype.FieldByNameFunc = function FieldByNameFunc$1(match) { + var {$24r, _r, match, t, tt, $s, $r, $c} = $restore(this, {match}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByNameFunc of non-struct type " + t.String())); + } + tt = (t.kindType); + _r = tt.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: FieldByNameFunc$1, $c: true, $r, $24r, _r, match, t, tt, $s};return $f; + }; + $ptrType(rtype).prototype.In = function In(i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: In of non-func type " + t.String())); + } + tt = (t.kindType); + return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + $ptrType(rtype).prototype.Key = function Key$1() { + var t, tt; + t = this; + if (!((t.Kind() === 21))) { + $panic(new $String("reflect: Key of non-map type " + t.String())); + } + tt = (t.kindType); + return toType(tt.key); + }; + $ptrType(rtype).prototype.Len = function Len() { + var t, tt; + t = this; + if (!((t.Kind() === 17))) { + $panic(new $String("reflect: Len of non-array type " + t.String())); + } + tt = (t.kindType); + return ((tt.len >> 0)); + }; + $ptrType(rtype).prototype.NumField = function NumField$1() { + var t, tt; + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: NumField of non-struct type " + t.String())); + } + tt = (t.kindType); + return tt.fields.$length; + }; + $ptrType(rtype).prototype.NumIn = function NumIn() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: NumIn of non-func type " + t.String())); + } + tt = (t.kindType); + return ((tt.inCount >> 0)); + }; + $ptrType(rtype).prototype.NumOut = function NumOut() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: NumOut of non-func type " + t.String())); + } + tt = (t.kindType); + return tt.out().$length; + }; + $ptrType(rtype).prototype.Out = function Out(i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: Out of non-func type " + t.String())); + } + tt = (t.kindType); + return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + ChanDir.prototype.String = function String$3() { + var _1, d; + d = this.$val; + _1 = d; + if (_1 === (2)) { + return "chan<-"; + } else if (_1 === (1)) { + return "<-chan"; + } else if (_1 === (3)) { + return "chan"; + } + return "ChanDir" + strconv.Itoa(((d >> 0))); + }; + $ptrType(ChanDir).prototype.String = function(...$args) { return new ChanDir(this.$get()).String(...$args); }; + $ptrType(interfaceType).prototype.Method = function Method$2(i) { + var i, m, p, pname, t, x; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + t = this; + if (i < 0 || i >= t.methods.$length) { + return m; + } + p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + pname = $clone(t.rtype.nameOff(p.name), name); + m.Name = $clone(pname, name).name(); + if (!$clone(pname, name).isExported()) { + m.PkgPath = $clone(pname, name).pkgPath(); + if (m.PkgPath === "") { + m.PkgPath = $clone(t.pkgPath, name).name(); + } + } + m.Type = toType(t.rtype.typeOff(p.typ)); + m.Index = i; + return m; + }; + $ptrType(interfaceType).prototype.NumMethod = function NumMethod$2() { + var t; + t = this; + return t.methods.$length; + }; + $ptrType(interfaceType).prototype.MethodByName = function MethodByName$2(name$1) { + var _i, _ref, _tmp, _tmp$1, i, m, name$1, ok, p, t, x; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + ok = false; + t = this; + if (t === ptrType$11.nil) { + return [m, ok]; + } + p = ptrType$12.nil; + _ref = t.methods; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if ($clone(t.rtype.nameOff(p.name), name).name() === name$1) { + _tmp = $clone(t.Method(i), Method); + _tmp$1 = true; + Method.copy(m, _tmp); + ok = _tmp$1; + return [m, ok]; + } + _i++; + } + return [m, ok]; + }; + $ptrType(StructField).prototype.IsExported = function IsExported$1() { + var f; + f = this; + return f.PkgPath === ""; + }; + StructField.prototype.IsExported = function(...$args) { return this.$val.IsExported(...$args); }; + StructTag.prototype.Get = function Get(key) { + var _tuple, key, tag, v; + tag = this.$val; + _tuple = new StructTag(tag).Lookup(key); + v = _tuple[0]; + return v; + }; + $ptrType(StructTag).prototype.Get = function(...$args) { return new StructTag(this.$get()).Get(...$args); }; + StructTag.prototype.Lookup = function Lookup(key) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, i, key, name$1, ok, qvalue, tag, value, value$1; + value = ""; + ok = false; + tag = this.$val; + while (true) { + if (!(!(tag === ""))) { break; } + i = 0; + while (true) { + if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; } + i = i + (1) >> 0; + } + tag = $substring(tag, i); + if (tag === "") { + break; + } + i = 0; + while (true) { + if (!(i < tag.length && tag.charCodeAt(i) > 32 && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)) && !((tag.charCodeAt(i) === 127)))) { break; } + i = i + (1) >> 0; + } + if ((i === 0) || (i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { + break; + } + name$1 = ($substring(tag, 0, i)); + tag = $substring(tag, (i + 1 >> 0)); + i = 1; + while (true) { + if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; } + if (tag.charCodeAt(i) === 92) { + i = i + (1) >> 0; + } + i = i + (1) >> 0; + } + if (i >= tag.length) { + break; + } + qvalue = ($substring(tag, 0, (i + 1 >> 0))); + tag = $substring(tag, (i + 1 >> 0)); + if (key === name$1) { + _tuple = strconv.Unquote(qvalue); + value$1 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + break; + } + _tmp = value$1; + _tmp$1 = true; + value = _tmp; + ok = _tmp$1; + return [value, ok]; + } + } + _tmp$2 = ""; + _tmp$3 = false; + value = _tmp$2; + ok = _tmp$3; + return [value, ok]; + }; + $ptrType(StructTag).prototype.Lookup = function(...$args) { return new StructTag(this.$get()).Lookup(...$args); }; + $ptrType(structType).prototype.Field = function Field$1(i) { + var f, i, p, t, tag, x; + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$7.nil, false); + t = this; + if (i < 0 || i >= t.fields.$length) { + $panic(new $String("reflect: Field index out of bounds")); + } + p = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + f.Type = toType(p.typ); + f.Name = $clone(p.name, name).name(); + f.Anonymous = p.embedded(); + if (!$clone(p.name, name).isExported()) { + f.PkgPath = $clone(t.pkgPath, name).name(); + } + tag = $clone(p.name, name).tag(); + if (!(tag === "")) { + f.Tag = (tag); + } + f.Offset = p.offset; + f.Index = new sliceType$7([i]); + return f; + }; + $ptrType(structType).prototype.FieldByIndex = function FieldByIndex$2(index) { + var {_i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s, $r, $c} = $restore(this, {index}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$7.nil, false); + t = this; + f.Type = toType(t.rtype); + _ref = index; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i > 0) { */ case 3: + ft = f.Type; + _r = ft.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (!(_r === 22)) { _v = false; $s = 7; continue s; } + _r$1 = ft.Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2 === 25; case 7: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_v) { */ case 5: + _r$3 = ft.Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ft = _r$3; + /* } */ case 6: + f.Type = ft; + /* } */ case 4: + _r$4 = f.Type.Field(x); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + StructField.copy(f, _r$4); + _i++; + $s = 1; continue; + case 2: + $s = -1; return f; + /* */ } return; } var $f = {$blk: FieldByIndex$2, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s};return $f; + }; + $ptrType(structType).prototype.FieldByNameFunc = function FieldByNameFunc$2(match) { + var {_entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s, $r, $c} = $restore(this, {match}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + result = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$7.nil, false); + ok = false; + t = this; + current = new sliceType$13([]); + next = new sliceType$13([$clone(new fieldScan.ptr(t, sliceType$7.nil), fieldScan)]); + nextCount = false; + visited = $makeMap(ptrType$13.keyFor, []); + /* while (true) { */ case 1: + /* if (!(next.$length > 0)) { break; } */ if(!(next.$length > 0)) { $s = 2; continue; } + _tmp = next; + _tmp$1 = $subslice(current, 0, 0); + current = _tmp; + next = _tmp$1; + count = nextCount; + nextCount = false; + _ref = current; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + scan = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), fieldScan); + t$1 = scan.typ; + if ((_entry = $mapIndex(visited,ptrType$13.keyFor(t$1)), _entry !== undefined ? _entry.v : false)) { + _i++; + /* continue; */ $s = 3; continue; + } + _key = t$1; (visited || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key), { k: _key, v: true }); + _ref$1 = t$1.fields; + _i$1 = 0; + /* while (true) { */ case 5: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } + i = _i$1; + f = (x = t$1.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + fname = $clone(f.name, name).name(); + ntyp = ptrType$1.nil; + /* */ if (f.embedded()) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (f.embedded()) { */ case 7: + ntyp = f.typ; + /* */ if (ntyp.Kind() === 22) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (ntyp.Kind() === 22) { */ case 9: + _r = ntyp.Elem().common(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ntyp = _r; + /* } */ case 10: + /* } */ case 8: + _r$1 = match(fname); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_r$1) { */ case 12: + if ((_entry$1 = $mapIndex(count,ptrType$13.keyFor(t$1)), _entry$1 !== undefined ? _entry$1.v : 0) > 1 || ok) { + _tmp$2 = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$7.nil, false); + _tmp$3 = false; + StructField.copy(result, _tmp$2); + ok = _tmp$3; + $s = -1; return [result, ok]; + } + StructField.copy(result, t$1.Field(i)); + result.Index = sliceType$7.nil; + result.Index = $appendSlice(result.Index, scan.index); + result.Index = $append(result.Index, i); + ok = true; + _i$1++; + /* continue; */ $s = 5; continue; + /* } */ case 13: + if (ok || ntyp === ptrType$1.nil || !((ntyp.Kind() === 25))) { + _i$1++; + /* continue; */ $s = 5; continue; + } + styp = (ntyp.kindType); + if ((_entry$2 = $mapIndex(nextCount,ptrType$13.keyFor(styp)), _entry$2 !== undefined ? _entry$2.v : 0) > 0) { + _key$1 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key$1), { k: _key$1, v: 2 }); + _i$1++; + /* continue; */ $s = 5; continue; + } + if (nextCount === false) { + nextCount = $makeMap(ptrType$13.keyFor, []); + } + _key$2 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key$2), { k: _key$2, v: 1 }); + if ((_entry$3 = $mapIndex(count,ptrType$13.keyFor(t$1)), _entry$3 !== undefined ? _entry$3.v : 0) > 1) { + _key$3 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key$3), { k: _key$3, v: 2 }); + } + index = sliceType$7.nil; + index = $appendSlice(index, scan.index); + index = $append(index, i); + next = $append(next, new fieldScan.ptr(styp, index)); + _i$1++; + $s = 5; continue; + case 6: + _i++; + $s = 3; continue; + case 4: + if (ok) { + /* break; */ $s = 2; continue; + } + $s = 1; continue; + case 2: + $s = -1; return [result, ok]; + /* */ } return; } var $f = {$blk: FieldByNameFunc$2, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s};return $f; + }; + $ptrType(structType).prototype.FieldByName = function FieldByName$2(name$1) { + var {$24r, _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name$1, present, t, tf, x, $s, $r, $c} = $restore(this, {name$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + name$1 = [name$1]; + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$7.nil, false); + present = false; + t = this; + hasEmbeds = false; + if (!(name$1[0] === "")) { + _ref = t.fields; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + tf = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if ($clone(tf.name, name).name() === name$1[0]) { + _tmp = $clone(t.Field(i), StructField); + _tmp$1 = true; + StructField.copy(f, _tmp); + present = _tmp$1; + $s = -1; return [f, present]; + } + if (tf.embedded()) { + hasEmbeds = true; + } + _i++; + } + } + if (!hasEmbeds) { + $s = -1; return [f, present]; + } + _r = t.FieldByNameFunc((function(name$1) { return function structType·FieldByName·func1(s) { + var s; + return s === name$1[0]; + }; })(name$1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + StructField.copy(f, _tuple[0]); + present = _tuple[1]; + $24r = [f, present]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: FieldByName$2, $c: true, $r, $24r, _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name$1, present, t, tf, x, $s};return $f; + }; + PtrTo = function PtrTo$1(t) { + var t; + return PointerTo(t); + }; + $pkg.PtrTo = PtrTo; + PointerTo = function PointerTo$1(t) { + var t; + return $assertType(t, ptrType$1).ptrTo(); + }; + $pkg.PointerTo = PointerTo; + $ptrType(rtype).prototype.Implements = function Implements(u) { + var {_r, t, u, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.Implements")); + } + _r = u.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 20))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 20))) { */ case 1: + $panic(new $String("reflect: non-interface type passed to Type.Implements")); + /* } */ case 2: + $s = -1; return implements$1($assertType(u, ptrType$1), t); + /* */ } return; } var $f = {$blk: Implements, $c: true, $r, _r, t, u, $s};return $f; + }; + $ptrType(rtype).prototype.AssignableTo = function AssignableTo(u) { + var {$24r, _r, t, u, uu, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.AssignableTo")); + } + uu = $assertType(u, ptrType$1); + _r = directlyAssignable(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r || implements$1(uu, t); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: AssignableTo, $c: true, $r, $24r, _r, t, u, uu, $s};return $f; + }; + $ptrType(rtype).prototype.ConvertibleTo = function ConvertibleTo(u) { + var {$24r, _r, t, u, uu, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.ConvertibleTo")); + } + uu = $assertType(u, ptrType$1); + _r = convertOp(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = !(_r === $throwNilPointerError); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ConvertibleTo, $c: true, $r, $24r, _r, t, u, uu, $s};return $f; + }; + implements$1 = function implements$2(T, V) { + var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2; + if (!((T.Kind() === 20))) { + return false; + } + t = (T.kindType); + if (t.methods.$length === 0) { + return true; + } + if (V.Kind() === 20) { + v = (V.kindType); + i = 0; + j = 0; + while (true) { + if (!(j < v.methods.$length)) { break; } + tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + tmName = $clone(t.rtype.nameOff(tm.name), name); + vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])); + vmName = $clone(V.nameOff(vm.name), name); + if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) { + if (!$clone(tmName, name).isExported()) { + tmPkgPath = $clone(tmName, name).pkgPath(); + if (tmPkgPath === "") { + tmPkgPath = $clone(t.pkgPath, name).name(); + } + vmPkgPath = $clone(vmName, name).pkgPath(); + if (vmPkgPath === "") { + vmPkgPath = $clone(v.pkgPath, name).name(); + } + if (!(tmPkgPath === vmPkgPath)) { + j = j + (1) >> 0; + continue; + } + } + i = i + (1) >> 0; + if (i >= t.methods.$length) { + return true; + } + } + j = j + (1) >> 0; + } + return false; + } + v$1 = V.uncommon(); + if (v$1 === ptrType$10.nil) { + return false; + } + i$1 = 0; + vmethods = v$1.methods(); + j$1 = 0; + while (true) { + if (!(j$1 < ((v$1.mcount >> 0)))) { break; } + tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); + tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name); + vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method); + vmName$1 = $clone(V.nameOff(vm$1.name), name); + if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) { + if (!$clone(tmName$1, name).isExported()) { + tmPkgPath$1 = $clone(tmName$1, name).pkgPath(); + if (tmPkgPath$1 === "") { + tmPkgPath$1 = $clone(t.pkgPath, name).name(); + } + vmPkgPath$1 = $clone(vmName$1, name).pkgPath(); + if (vmPkgPath$1 === "") { + vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name(); + } + if (!(tmPkgPath$1 === vmPkgPath$1)) { + j$1 = j$1 + (1) >> 0; + continue; + } + } + i$1 = i$1 + (1) >> 0; + if (i$1 >= t.methods.$length) { + return true; + } + } + j$1 = j$1 + (1) >> 0; + } + return false; + }; + specialChannelAssignability = function specialChannelAssignability$1(T, V) { + var {$24r, T, V, _r, _v, $s, $r, $c} = $restore(this, {T, V}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!((V.ChanDir() === 3) && (T.Name() === "" || V.Name() === ""))) { _v = false; $s = 1; continue s; } + _r = haveIdenticalType(T.Elem(), V.Elem(), true); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 1: + $24r = _v; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: specialChannelAssignability$1, $c: true, $r, $24r, T, V, _r, _v, $s};return $f; + }; + directlyAssignable = function directlyAssignable$1(T, V) { + var {$24r, T, V, _r, _r$1, _v, $s, $r, $c} = $restore(this, {T, V}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (T === V) { + $s = -1; return true; + } + if (T.hasName() && V.hasName() || !((T.Kind() === V.Kind()))) { + $s = -1; return false; + } + if (!(T.Kind() === 18)) { _v = false; $s = 3; continue s; } + _r = specialChannelAssignability(T, V); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $s = -1; return true; + /* } */ case 2: + _r$1 = haveIdenticalUnderlyingType(T, V, true); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: directlyAssignable$1, $c: true, $r, $24r, T, V, _r, _r$1, _v, $s};return $f; + }; + haveIdenticalType = function haveIdenticalType$1(T, V, cmpTags) { + var {$24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, cmpTags, $s, $r, $c} = $restore(this, {T, V, cmpTags}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (cmpTags) { + $s = -1; return $interfaceIsEqual(T, V); + } + _r = T.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = V.Name(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (!(_r === _r$1)) { _v$1 = true; $s = 4; continue s; } + _r$2 = T.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = V.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v$1 = !((_r$2 === _r$3)); case 4: + if (_v$1) { _v = true; $s = 3; continue s; } + _r$4 = T.PkgPath(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = V.PkgPath(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v = !(_r$4 === _r$5); case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $s = -1; return false; + /* } */ case 2: + _r$6 = T.common(); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg = _r$6; + _r$7 = V.common(); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$1 = _r$7; + _r$8 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r = _r$8; + $s = 14; case 14: return $24r; + /* */ } return; } var $f = {$blk: haveIdenticalType$1, $c: true, $r, $24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, cmpTags, $s};return $f; + }; + haveIdenticalUnderlyingType = function haveIdenticalUnderlyingType$1(T, V, cmpTags) { + var {$24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _v, _v$1, _v$2, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s, $r, $c} = $restore(this, {T, V, cmpTags}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (T === V) { + $s = -1; return true; + } + kind$1 = T.Kind(); + if (!((kind$1 === V.Kind()))) { + $s = -1; return false; + } + if (1 <= kind$1 && kind$1 <= 16 || (kind$1 === 24) || (kind$1 === 26)) { + $s = -1; return true; + } + _1 = kind$1; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (18)) { $s = 3; continue; } + /* */ if (_1 === (19)) { $s = 4; continue; } + /* */ if (_1 === (20)) { $s = 5; continue; } + /* */ if (_1 === (21)) { $s = 6; continue; } + /* */ if ((_1 === (22)) || (_1 === (23))) { $s = 7; continue; } + /* */ if (_1 === (25)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (17)) { */ case 2: + if (!(T.Len() === V.Len())) { _v = false; $s = 10; continue s; } + _r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 10: + $24r = _v; + $s = 12; case 12: return $24r; + /* } else if (_1 === (18)) { */ case 3: + if (!(V.ChanDir() === T.ChanDir())) { _v$1 = false; $s = 13; continue s; } + _r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = _r$1; case 13: + $24r$1 = _v$1; + $s = 15; case 15: return $24r$1; + /* } else if (_1 === (19)) { */ case 4: + t = (T.kindType); + v = (V.kindType); + if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) { + $s = -1; return false; + } + i = 0; + /* while (true) { */ case 16: + /* if (!(i < t.rtype.NumIn())) { break; } */ if(!(i < t.rtype.NumIn())) { $s = 17; continue; } + _r$2 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!_r$2) { */ case 18: + $s = -1; return false; + /* } */ case 19: + i = i + (1) >> 0; + $s = 16; continue; + case 17: + i$1 = 0; + /* while (true) { */ case 21: + /* if (!(i$1 < t.rtype.NumOut())) { break; } */ if(!(i$1 < t.rtype.NumOut())) { $s = 22; continue; } + _r$3 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!_r$3) { */ case 23: + $s = -1; return false; + /* } */ case 24: + i$1 = i$1 + (1) >> 0; + $s = 21; continue; + case 22: + $s = -1; return true; + /* } else if (_1 === (20)) { */ case 5: + t$1 = (T.kindType); + v$1 = (V.kindType); + if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) { + $s = -1; return true; + } + $s = -1; return false; + /* } else if (_1 === (21)) { */ case 6: + _r$4 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + if (!(_r$4)) { _v$2 = false; $s = 26; continue s; } + _r$5 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v$2 = _r$5; case 26: + $24r$2 = _v$2; + $s = 29; case 29: return $24r$2; + /* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7: + _r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$3 = _r$6; + $s = 31; case 31: return $24r$3; + /* } else if (_1 === (25)) { */ case 8: + t$2 = (T.kindType); + v$2 = (V.kindType); + if (!((t$2.fields.$length === v$2.fields.$length))) { + $s = -1; return false; + } + if (!($clone(t$2.pkgPath, name).name() === $clone(v$2.pkgPath, name).name())) { + $s = -1; return false; + } + _ref = t$2.fields; + _i = 0; + /* while (true) { */ case 32: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 33; continue; } + i$2 = _i; + tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2])); + vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2])); + if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) { + $s = -1; return false; + } + _r$7 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ $s = 36; case 36: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (!_r$7) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!_r$7) { */ case 34: + $s = -1; return false; + /* } */ case 35: + if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) { + $s = -1; return false; + } + if (!((tf.offset === vf.offset))) { + $s = -1; return false; + } + if (!(tf.embedded() === vf.embedded())) { + $s = -1; return false; + } + _i++; + $s = 32; continue; + case 33: + $s = -1; return true; + /* } */ case 9: + case 1: + $s = -1; return false; + /* */ } return; } var $f = {$blk: haveIdenticalUnderlyingType$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _v, _v$1, _v$2, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s};return $f; + }; + toType = function toType$1(t) { + var t; + if (t === ptrType$1.nil) { + return $ifaceNil; + } + return t; + }; + ifaceIndir = function ifaceIndir$1(t) { + var t; + return ((t.kind & 32) >>> 0) === 0; + }; + methodValueCallCodePtr = function methodValueCallCodePtr$1() { + var {$24r, _r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = abi.FuncPCABI0(new funcType$2(methodValueCall)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: methodValueCallCodePtr$1, $c: true, $r, $24r, _r, $s};return $f; + }; + methodValueCall = function() { + $throwRuntimeError("native function not implemented: reflect.methodValueCall"); + }; + init = function init$1() { + var {used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + used = (function init·func1(i) { + var i; + }); + $r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, sliceType$12.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), ptrType$1.nil, 0), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), 0, 0, sliceType$2.nil, sliceType$2.nil), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), new name.ptr(ptrType$14.nil), sliceType$15.nil), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, $throwNilPointerError, 0, 0, 0, 0), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), ptrType$1.nil), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), ptrType$1.nil), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), new name.ptr(ptrType$14.nil), sliceType$16.nil), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$12 = new structField.ptr(new name.ptr(ptrType$14.nil), ptrType$1.nil, 0), new x$12.constructor.elem(x$12))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + initialized = true; + uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); + $s = -1; return; + /* */ } return; } var $f = {$blk: init$1, $c: true, $r, used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; + New = function New$1(typ) { + var fl, pt, ptr, t, typ; + if ($interfaceIsEqual(typ, $ifaceNil)) { + $panic(new $String("reflect: New(nil)")); + } + t = $assertType(typ, ptrType$1); + pt = t.ptrTo(); + ptr = unsafe_New(t); + fl = 22; + return new Value.ptr(pt, ptr, fl); + }; + $pkg.New = New; + jsType = function jsType$1(typ) { + var typ; + return typ.jsType; + }; + reflectType = function reflectType$1(typ) { + var _1, _i, _i$1, _i$2, _i$3, _ref, _ref$1, _ref$2, _ref$3, dir, exported, exported$1, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, m, m$1, m$2, methodSet, methods, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut, xcount; + if (typ.reflectType === undefined) { + rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), $throwNilPointerError, ptrType$14.nil, resolveReflectName($clone(newName(internalStr(typ.string), "", !!(typ.exported), false), name)), 0); + rt.jsType = typ; + typ.reflectType = rt; + methodSet = $methodSet(typ); + if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) { + rt.tflag = (rt.tflag | (1)) >>> 0; + if (!!(typ.named)) { + rt.tflag = (rt.tflag | (4)) >>> 0; + } + reflectMethods = sliceType$12.nil; + i = 0; + while (true) { + if (!(i < $parseInt(methodSet.length))) { break; } + m = methodSet[i]; + exported = internalStr(m.pkg) === ""; + if (!exported) { + i = i + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new method.ptr(resolveReflectName($clone(newMethodName(m), name)), newTypeOff(reflectType(m.typ)), 0, 0)); + i = i + (1) >> 0; + } + xcount = ((reflectMethods.$length << 16 >>> 16)); + i$1 = 0; + while (true) { + if (!(i$1 < $parseInt(methodSet.length))) { break; } + m$1 = methodSet[i$1]; + exported$1 = internalStr(m$1.pkg) === ""; + if (exported$1) { + i$1 = i$1 + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new method.ptr(resolveReflectName($clone(newMethodName(m$1), name)), newTypeOff(reflectType(m$1.typ)), 0, 0)); + i$1 = i$1 + (1) >> 0; + } + ut = new uncommonType.ptr(resolveReflectName($clone(newName(internalStr(typ.pkg), "", false, false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, 0, reflectMethods); + ut.jsType = typ; + rt.uncommonType = ut; + } + _1 = rt.Kind(); + if (_1 === (17)) { + setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), reflectType(typ.elem), ptrType$1.nil, ((($parseInt(typ.len) >> 0) >>> 0)))); + } else if (_1 === (18)) { + dir = 3; + if (!!(typ.sendOnly)) { + dir = 2; + } + if (!!(typ.recvOnly)) { + dir = 1; + } + setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0)))); + } else if (_1 === (19)) { + params = typ.params; + in$1 = $makeSlice(sliceType$2, $parseInt(params.length)); + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$2 = _i; + ((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = reflectType(params[i$2])); + _i++; + } + results = typ.results; + out = $makeSlice(sliceType$2, $parseInt(results.length)); + _ref$1 = out; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$3 = _i$1; + ((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = reflectType(results[i$3])); + _i$1++; + } + outCount = (($parseInt(results.length) << 16 >>> 16)); + if (!!(typ.variadic)) { + outCount = (outCount | (32768)) >>> 0; + } + setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out)); + } else if (_1 === (20)) { + methods = typ.methods; + imethods = $makeSlice(sliceType$15, $parseInt(methods.length)); + _ref$2 = imethods; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$4 = _i$2; + m$2 = methods[i$4]; + imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new imethod.ptr(resolveReflectName($clone(newMethodName(m$2), name)), newTypeOff(reflectType(m$2.typ)))); + _i$2++; + } + setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", false, false), name), imethods)); + } else if (_1 === (21)) { + setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$1.nil, $throwNilPointerError, 0, 0, 0, 0)); + } else if (_1 === (22)) { + setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), reflectType(typ.elem))); + } else if (_1 === (23)) { + setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0), reflectType(typ.elem))); + } else if (_1 === (25)) { + fields = typ.fields; + reflectFields = $makeSlice(sliceType$16, $parseInt(fields.length)); + _ref$3 = reflectFields; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + i$5 = _i$3; + f = fields[i$5]; + structField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), !!(f.exported), !!(f.embedded)), name), reflectType(f.typ), ((i$5 >>> 0)))); + _i$3++; + } + setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", false, false), name), reflectFields)); + } + } + return ((typ.reflectType)); + }; + setKindType = function setKindType$1(rt, kindType) { + var kindType, rt; + rt.kindType = kindType; + kindType.rtype = rt; + }; + $ptrType(uncommonType).prototype.methods = function methods() { + var t; + t = this; + return t._methods; + }; + $ptrType(uncommonType).prototype.exportedMethods = function exportedMethods$1() { + var t; + t = this; + return $subslice(t._methods, 0, t.xcount, t.xcount); + }; + $ptrType(rtype).prototype.uncommon = function uncommon() { + var obj, t; + t = this; + obj = t.uncommonType; + if (obj === undefined) { + return ptrType$10.nil; + } + return ((obj)); + }; + $ptrType(funcType).prototype.in$ = function in$1() { + var t; + t = this; + return t._in; + }; + $ptrType(funcType).prototype.out = function out() { + var t; + t = this; + return t._out; + }; + $ptrType(name).prototype.name = function name$1() { + var _entry, n, s; + s = ""; + n = this; + s = (_entry = $mapIndex(nameMap,ptrType$14.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$18.nil).name; + return s; + }; + name.prototype.name = function(...$args) { return this.$val.name(...$args); }; + $ptrType(name).prototype.tag = function tag() { + var _entry, n, s; + s = ""; + n = this; + s = (_entry = $mapIndex(nameMap,ptrType$14.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$18.nil).tag; + return s; + }; + name.prototype.tag = function(...$args) { return this.$val.tag(...$args); }; + $ptrType(name).prototype.pkgPath = function pkgPath() { + var _entry, n; + n = this; + return (_entry = $mapIndex(nameMap,ptrType$14.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$18.nil).pkgPath; + }; + name.prototype.pkgPath = function(...$args) { return this.$val.pkgPath(...$args); }; + $ptrType(name).prototype.isExported = function isExported() { + var _entry, n; + n = this; + return (_entry = $mapIndex(nameMap,ptrType$14.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$18.nil).exported; + }; + name.prototype.isExported = function(...$args) { return this.$val.isExported(...$args); }; + $ptrType(name).prototype.embedded = function embedded$1() { + var _entry, n; + n = this; + return (_entry = $mapIndex(nameMap,ptrType$14.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$18.nil).embedded; + }; + name.prototype.embedded = function(...$args) { return this.$val.embedded(...$args); }; + newName = function newName$1(n, tag$1, exported, embedded$2) { + var _key, b, embedded$2, exported, n, tag$1; + b = $newDataPointer(0, ptrType$14); + _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$14.keyFor(_key), { k: _key, v: new nameData.ptr(n, tag$1, exported, embedded$2, "") }); + return new name.ptr(b); + }; + newMethodName = function newMethodName$1(m) { + var _key, b, m; + b = $newDataPointer(0, ptrType$14); + _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$14.keyFor(_key), { k: _key, v: new nameData.ptr(internalStr(m.name), "", internalStr(m.pkg) === "", false, internalStr(m.pkg)) }); + return new name.ptr(b); + }; + $ptrType(rtype).prototype.nameOff = function nameOff$1(off) { + var off, t, x; + t = this; + return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x])); + }; + resolveReflectName = function resolveReflectName$1(n) { + var i, n; + i = nameOffList.$length; + nameOffList = $append(nameOffList, n); + return ((i >> 0)); + }; + $ptrType(rtype).prototype.typeOff = function typeOff$1(off) { + var off, t, x; + t = this; + return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x])); + }; + newTypeOff = function newTypeOff$1(t) { + var i, t; + i = typeOffList.$length; + typeOffList = $append(typeOffList, t); + return ((i >> 0)); + }; + internalStr = function internalStr$1(strObj) { + var c, strObj; + c = new structType$3.ptr(""); + c.str = strObj; + return c.str; + }; + isWrapped = function isWrapped$1(typ) { + var typ; + return !!(jsType(typ).wrapped); + }; + copyStruct = function copyStruct$1(dst, src, typ) { + var dst, fields, i, prop, src, typ; + fields = jsType(typ).fields; + i = 0; + while (true) { + if (!(i < $parseInt(fields.length))) { break; } + prop = $internalize(fields[i].prop, $String); + dst[$externalize(prop, $String)] = src[$externalize(prop, $String)]; + i = i + (1) >> 0; + } + }; + makeValue = function makeValue$1(t, v, fl) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r, $c} = $restore(this, {t, v, fl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + rt = _r; + _r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (_r$1 === 17) { _v$1 = true; $s = 5; continue s; } + _r$2 = t.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 === 25; case 5: + if (_v$1) { _v = true; $s = 4; continue s; } + _r$3 = t.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3 === 22; case 4: + /* */ if (_v) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_v) { */ case 2: + _r$4 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0); + $s = 10; case 10: return $24r; + /* } */ case 3: + _r$5 = t.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$1 = new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0); + $s = 12; case 12: return $24r$1; + /* */ } return; } var $f = {$blk: makeValue$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s};return $f; + }; + MakeSlice = function MakeSlice$1(typ, len, cap) { + var {$24r, _r, _r$1, cap, len, typ, $s, $r, $c} = $restore(this, {typ, len, cap}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + typ = [typ]; + _r = typ[0].Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 23))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 23))) { */ case 1: + $panic(new $String("reflect.MakeSlice of non-slice type")); + /* } */ case 2: + if (len < 0) { + $panic(new $String("reflect.MakeSlice: negative len")); + } + if (cap < 0) { + $panic(new $String("reflect.MakeSlice: negative cap")); + } + if (len > cap) { + $panic(new $String("reflect.MakeSlice: len > cap")); + } + _r$1 = makeValue(typ[0], $makeSlice(jsType(typ[0]), len, cap, (function(typ) { return function MakeSlice·func1() { + var {$24r, _r$1, _r$2, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = typ[0].Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = jsType(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2.zero(); + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: MakeSlice·func1, $c: true, $r, $24r, _r$1, _r$2, $s};return $f; + }; })(typ)), 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: MakeSlice$1, $c: true, $r, $24r, _r, _r$1, cap, len, typ, $s};return $f; + }; + $pkg.MakeSlice = MakeSlice; + TypeOf = function TypeOf$1(i) { + var i; + if (!initialized) { + return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, 0, 0); + } + if ($interfaceIsEqual(i, $ifaceNil)) { + return $ifaceNil; + } + return reflectType(i.constructor); + }; + $pkg.TypeOf = TypeOf; + ValueOf = function ValueOf$1(i) { + var {$24r, _r, i, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(i, $ifaceNil)) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + _r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ValueOf$1, $c: true, $r, $24r, _r, i, $s};return $f; + }; + $pkg.ValueOf = ValueOf; + FuncOf = function FuncOf$1(in$2, out$1, variadic) { + var {_i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$2, jsIn, jsOut, out$1, v, v$1, variadic, x, $s, $r, $c} = $restore(this, {in$2, out$1, variadic}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(variadic)) { _v = false; $s = 3; continue s; } + if (in$2.$length === 0) { _v$1 = true; $s = 4; continue s; } + _r = (x = in$2.$length - 1 >> 0, ((x < 0 || x >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v$1 = !((_r === 23)); case 4: + _v = _v$1; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $panic(new $String("reflect.FuncOf: last arg of variadic func must be slice")); + /* } */ case 2: + jsIn = $makeSlice(sliceType$17, in$2.$length); + _ref = in$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v)); + _i++; + } + jsOut = $makeSlice(sliceType$17, out$1.$length); + _ref$1 = out$1; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + ((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1)); + _i$1++; + } + $s = -1; return reflectType($funcType($externalize(jsIn, sliceType$17), $externalize(jsOut, sliceType$17), $externalize(variadic, $Bool))); + /* */ } return; } var $f = {$blk: FuncOf$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$2, jsIn, jsOut, out$1, v, v$1, variadic, x, $s};return $f; + }; + $pkg.FuncOf = FuncOf; + $ptrType(rtype).prototype.ptrTo = function ptrTo() { + var t; + t = this; + return reflectType($ptrType(jsType(t))); + }; + SliceOf = function SliceOf$1(t) { + var t; + return reflectType($sliceType(jsType(t))); + }; + $pkg.SliceOf = SliceOf; + Zero = function Zero$1(typ) { + var {$24r, _r, typ, $s, $r, $c} = $restore(this, {typ}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = makeValue(typ, jsType(typ).zero(), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Zero$1, $c: true, $r, $24r, _r, typ, $s};return $f; + }; + $pkg.Zero = Zero; + unsafe_New = function unsafe_New$1(typ) { + var _1, typ; + _1 = typ.Kind(); + if (_1 === (25)) { + return (new (jsType(typ).ptr)()); + } else if (_1 === (17)) { + return (jsType(typ).zero()); + } else { + return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo()))); + } + }; + makeInt = function makeInt$1(f, bits, t) { + var {_1, _r, bits, f, ptr, t, typ, $s, $r, $c} = $restore(this, {f, bits, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.Kind(); + if (_1 === (3)) { + (ptr).$set(((bits.$low << 24 >> 24))); + } else if (_1 === (4)) { + (ptr).$set(((bits.$low << 16 >> 16))); + } else if ((_1 === (2)) || (_1 === (5))) { + (ptr).$set(((bits.$low >> 0))); + } else if (_1 === (6)) { + (ptr).$set((new $Int64(bits.$high, bits.$low))); + } else if (_1 === (8)) { + (ptr).$set(((bits.$low << 24 >>> 24))); + } else if (_1 === (9)) { + (ptr).$set(((bits.$low << 16 >>> 16))); + } else if ((_1 === (7)) || (_1 === (10)) || (_1 === (12))) { + (ptr).$set(((bits.$low >>> 0))); + } else if (_1 === (11)) { + (ptr).$set((bits)); + } + $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } return; } var $f = {$blk: makeInt$1, $c: true, $r, _1, _r, bits, f, ptr, t, typ, $s};return $f; + }; + typedmemmove = function typedmemmove$1(t, dst, src) { + var dst, src, t; + dst.$set(src.$get()); + }; + keyFor = function keyFor$1(t, key) { + var k, key, kv, t; + kv = key; + if (!(kv.$get === undefined)) { + kv = kv.$get(); + } + k = jsType(t.Key()).keyFor(kv); + return [kv, k]; + }; + mapaccess = function mapaccess$1(t, m, key) { + var _tuple, entry, k, key, m, t; + if (!!!(m)) { + return 0; + } + _tuple = keyFor(t, key); + k = _tuple[1]; + entry = m.get(k); + if (entry === undefined) { + return 0; + } + return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem())))); + }; + mapassign = function mapassign$1(t, m, key, val) { + var {_r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s, $r, $c} = $restore(this, {t, m, key, val}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = keyFor(t, key); + kv = _tuple[0]; + k = _tuple[1]; + jsVal = val.$get(); + et = t.Elem(); + _r = et.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === 25) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r === 25) { */ case 1: + newVal = jsType(et).zero(); + copyStruct(newVal, jsVal, et); + jsVal = newVal; + /* } */ case 2: + entry = new ($global.Object)(); + entry.k = kv; + entry.v = jsVal; + m.set(k, entry); + $s = -1; return; + /* */ } return; } var $f = {$blk: mapassign$1, $c: true, $r, _r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s};return $f; + }; + mapdelete = function mapdelete$1(t, m, key) { + var _tuple, k, key, m, t; + _tuple = keyFor(t, key); + k = _tuple[1]; + if (!!!(m)) { + return; + } + m.delete(k); + }; + mapaccess_faststr = function mapaccess_faststr$1(t, m, key) { + var key, key$24ptr, m, t, val; + val = 0; + val = mapaccess(t, m, ((key$24ptr || (key$24ptr = new ptrType$19(function() { return key; }, function($v) { key = $v; }))))); + return val; + }; + mapassign_faststr = function mapassign_faststr$1(t, m, key, val) { + var {key, m, t, val, $s, $r, $c} = $restore(this, {t, m, key, val}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + key = [key]; + $r = mapassign(t, m, ((key.$ptr || (key.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, key)))), val); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: mapassign_faststr$1, $c: true, $r, key, m, t, val, $s};return $f; + }; + mapdelete_faststr = function mapdelete_faststr$1(t, m, key) { + var key, key$24ptr, m, t; + mapdelete(t, m, ((key$24ptr || (key$24ptr = new ptrType$19(function() { return key; }, function($v) { key = $v; }))))); + }; + $ptrType(hiter).prototype.skipUntilValidKey = function skipUntilValidKey() { + var entry, iter, k; + iter = this; + while (true) { + if (!(iter.i < $parseInt(iter.keys.length))) { break; } + k = iter.keys[iter.i]; + entry = iter.m.get(k); + if (!(entry === undefined)) { + break; + } + iter.i = iter.i + (1) >> 0; + } + }; + mapiterinit = function mapiterinit$1(t, m, it) { + var it, keys, keysIter, m, mapObj, t; + mapObj = m; + keys = new ($global.Array)(); + if (!(mapObj.keys === undefined)) { + keysIter = mapObj.keys(); + if (!(mapObj.keys === undefined)) { + keys = $global.Array.from(keysIter); + } + } + hiter.copy(it, new hiter.ptr(t, mapObj, keys, 0, null)); + }; + mapiterkey = function mapiterkey$1(it) { + var {$24r, _r, _r$1, _r$2, it, k, kv, $s, $r, $c} = $restore(this, {it}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + kv = null; + if (!(it.last === null)) { + kv = it.last; + } else { + it.skipUntilValidKey(); + if (it.i === $parseInt(it.keys.length)) { + $s = -1; return 0; + } + k = it.keys[it.i]; + kv = it.m.get(k); + it.last = kv; + } + _r = it.t.Key(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = ($newDataPointer(kv.k, _r$2)); + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: mapiterkey$1, $c: true, $r, $24r, _r, _r$1, _r$2, it, k, kv, $s};return $f; + }; + mapiterelem = function mapiterelem$1(it) { + var {$24r, _r, _r$1, _r$2, it, k, kv, $s, $r, $c} = $restore(this, {it}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + kv = null; + if (!(it.last === null)) { + kv = it.last; + } else { + it.skipUntilValidKey(); + if (it.i === $parseInt(it.keys.length)) { + $s = -1; return 0; + } + k = it.keys[it.i]; + kv = it.m.get(k); + it.last = kv; + } + _r = it.t.Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = ($newDataPointer(kv.v, _r$2)); + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: mapiterelem$1, $c: true, $r, $24r, _r, _r$1, _r$2, it, k, kv, $s};return $f; + }; + mapiternext = function mapiternext$1(it) { + var it; + it.last = null; + it.i = it.i + (1) >> 0; + }; + maplen = function maplen$1(m) { + var m; + return $parseInt(m.size) >> 0; + }; + cvtDirect = function cvtDirect$1(v, typ) { + var {$24r, $24r$1, _1, _2, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s, $r, $c} = $restore(this, {v, typ}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + srcVal = $clone(v, Value).object(); + /* */ if (srcVal === jsType(v.typ).nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (srcVal === jsType(v.typ).nil) { */ case 1: + _r = makeValue(typ, jsType(typ).nil, v.flag); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + val = null; + _r$1 = typ.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + k = _r$1; + _1 = k; + /* */ if (_1 === (23)) { $s = 7; continue; } + /* */ if (_1 === (22)) { $s = 8; continue; } + /* */ if (_1 === (25)) { $s = 9; continue; } + /* */ if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24)) || (_1 === (26))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === (23)) { */ case 7: + slice = new (jsType(typ))(srcVal.$array); + slice.$offset = srcVal.$offset; + slice.$length = srcVal.$length; + slice.$capacity = srcVal.$capacity; + val = $newDataPointer(slice, jsType(PtrTo(typ))); + $s = 12; continue; + /* } else if (_1 === (22)) { */ case 8: + _r$2 = typ.Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _2 = _r$3; + /* */ if (_2 === (25)) { $s = 16; continue; } + /* */ if (_2 === (17)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (_2 === (25)) { */ case 16: + _r$4 = typ.Elem(); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(_r$4, v.typ.Elem())) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ($interfaceIsEqual(_r$4, v.typ.Elem())) { */ case 20: + val = srcVal; + /* break; */ $s = 13; continue; + /* } */ case 21: + val = new (jsType(typ))(); + _arg = val; + _arg$1 = srcVal; + _r$5 = typ.Elem(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$2 = _r$5; + $r = copyStruct(_arg, _arg$1, _arg$2); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else if (_2 === (17)) { */ case 17: + val = srcVal; + $s = 19; continue; + /* } else { */ case 18: + val = new (jsType(typ))(srcVal.$get, srcVal.$set); + /* } */ case 19: + case 13: + $s = 12; continue; + /* } else if (_1 === (25)) { */ case 9: + val = new (jsType(typ).ptr)(); + copyStruct(val, srcVal, typ); + $s = 12; continue; + /* } else if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24)) || (_1 === (26))) { */ case 10: + val = v.ptr; + $s = 12; continue; + /* } else { */ case 11: + $panic(new ValueError.ptr("reflect.Convert", k)); + /* } */ case 12: + case 5: + _r$6 = typ.common(); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = typ.Kind(); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$1 = new Value.ptr(_r$6, (val), (((new flag(v.flag).ro() | ((v.flag & 128) >>> 0)) >>> 0) | ((_r$7 >>> 0))) >>> 0); + $s = 27; case 27: return $24r$1; + /* */ } return; } var $f = {$blk: cvtDirect$1, $c: true, $r, $24r, $24r$1, _1, _2, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s};return $f; + }; + cvtSliceArrayPtr = function cvtSliceArrayPtr$1(v, t) { + var {$24r, _r, _r$1, _r$2, alen, array, slen, slice, t, v, $s, $r, $c} = $restore(this, {v, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + slice = $clone(v, Value).object(); + slen = $parseInt(slice.$length) >> 0; + _r = t.Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Len(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + alen = _r$1; + if (alen > slen) { + $panic(new $String("reflect: cannot convert slice with length " + itoa.Itoa(slen) + " to pointer to array with length " + itoa.Itoa(alen))); + } + array = $sliceToGoArray(slice, jsType(t)); + _r$2 = t.common(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = new Value.ptr(_r$2, (array), (((v.flag & ~415) >>> 0) | 22) >>> 0); + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: cvtSliceArrayPtr$1, $c: true, $r, $24r, _r, _r$1, _r$2, alen, array, slen, slice, t, v, $s};return $f; + }; + methodReceiver = function methodReceiver$1(op, v, i) { + var _, fn, i, m, m$1, ms, op, prop, rcvr, t, tt, v, x; + _ = ptrType$1.nil; + t = ptrType$20.nil; + fn = 0; + prop = ""; + if (v.typ.Kind() === 20) { + tt = (v.typ.kindType); + if (i < 0 || i >= tt.methods.$length) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) { + $panic(new $String("reflect: " + op + " of unexported method")); + } + t = (tt.rtype.typeOff(m.typ).kindType); + prop = $clone(tt.rtype.nameOff(m.name), name).name(); + } else { + ms = v.typ.exportedMethods(); + if (((i >>> 0)) >= ((ms.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); + if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) { + $panic(new $String("reflect: " + op + " of unexported method")); + } + t = (v.typ.typeOff(m$1.mtyp).kindType); + prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String); + } + rcvr = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr = new (jsType(v.typ))(rcvr); + } + fn = (rcvr[$externalize(prop, $String)]); + return [_, t, fn]; + }; + valueInterface = function valueInterface$1(v, safe) { + var {_r, cv, safe, v, $s, $r, $c} = $restore(this, {v, safe}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (v.flag === 0) { + $panic(new ValueError.ptr("reflect.Value.Interface", 0)); + } + if (safe && !((((v.flag & 96) >>> 0) === 0))) { + $panic(new $String("reflect.Value.Interface: cannot return value obtained from unexported field or method")); + } + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue("Interface", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* } */ case 2: + if (isWrapped(v.typ)) { + if (!((((v.flag & 128) >>> 0) === 0)) && ($clone(v, Value).Kind() === 25)) { + cv = jsType(v.typ).zero(); + copyStruct(cv, $clone(v, Value).object(), v.typ); + $s = -1; return ((new (jsType(v.typ))(cv))); + } + $s = -1; return ((new (jsType(v.typ))($clone(v, Value).object()))); + } + $s = -1; return (($clone(v, Value).object())); + /* */ } return; } var $f = {$blk: valueInterface$1, $c: true, $r, _r, cv, safe, v, $s};return $f; + }; + ifaceE2I = function ifaceE2I$1(t, src, dst) { + var dst, src, t; + dst.$set(src); + }; + makeMethodValue = function makeMethodValue$1(op, v) { + var {$24r, _r, _tuple, fn, fv, op, rcvr, v, $s, $r, $c} = $restore(this, {op, v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fn = [fn]; + rcvr = [rcvr]; + if (((v.flag & 512) >>> 0) === 0) { + $panic(new $String("reflect: internal error: invalid use of makePartialFunc")); + } + _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); + fn[0] = _tuple[2]; + rcvr[0] = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr[0] = new (jsType(v.typ))(rcvr[0]); + } + fv = js.MakeFunc((function(fn, rcvr) { return function makeMethodValue·func1(this$1, arguments$1) { + var arguments$1, this$1; + return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$17))); + }; })(fn, rcvr)); + _r = $clone(v, Value).Type().common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = new Value.ptr(_r, (fv), (new flag(v.flag).ro() | 19) >>> 0); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: makeMethodValue$1, $c: true, $r, $24r, _r, _tuple, fn, fv, op, rcvr, v, $s};return $f; + }; + $ptrType(rtype).prototype.pointers = function pointers() { + var _1, t; + t = this; + _1 = t.Kind(); + if ((_1 === (22)) || (_1 === (21)) || (_1 === (18)) || (_1 === (19)) || (_1 === (25)) || (_1 === (17))) { + return true; + } else { + return false; + } + }; + $ptrType(rtype).prototype.Comparable = function Comparable() { + var {$24r, _1, _r, _r$1, i, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _1 = t.Kind(); + /* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { $s = 2; continue; } + /* */ if (_1 === (17)) { $s = 3; continue; } + /* */ if (_1 === (25)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2: + $s = -1; return false; + /* } else if (_1 === (17)) { */ case 3: + _r = t.Elem().Comparable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 7; case 7: return $24r; + /* } else if (_1 === (25)) { */ case 4: + i = 0; + /* while (true) { */ case 8: + /* if (!(i < t.NumField())) { break; } */ if(!(i < t.NumField())) { $s = 9; continue; } + _r$1 = t.Field(i).Type.Comparable(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!_r$1) { */ case 10: + $s = -1; return false; + /* } */ case 11: + i = i + (1) >> 0; + $s = 8; continue; + case 9: + /* } */ case 5: + case 1: + $s = -1; return true; + /* */ } return; } var $f = {$blk: Comparable, $c: true, $r, $24r, _1, _r, _r$1, i, t, $s};return $f; + }; + $ptrType(rtype).prototype.Method = function Method$3(i) { + var {_i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$2, m, methods$1, mt, mtyp, out$1, p, pname, prop, ret, t, tt, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + prop = [prop]; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + Method.copy(m, tt.Method(i)); + $s = -1; return m; + } + methods$1 = t.exportedMethods(); + if (i < 0 || i >= methods$1.$length) { + $panic(new $String("reflect: Method index out of range")); + } + p = $clone(((i < 0 || i >= methods$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods$1.$array[methods$1.$offset + i]), method); + pname = $clone(t.nameOff(p.name), name); + m.Name = $clone(pname, name).name(); + fl = 19; + mtyp = t.typeOff(p.mtyp); + ft = (mtyp.kindType); + in$2 = $makeSlice(sliceType$18, 0, (1 + ft.in$().$length >> 0)); + in$2 = $append(in$2, t); + _ref = ft.in$(); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + in$2 = $append(in$2, arg); + _i++; + } + out$1 = $makeSlice(sliceType$18, 0, ft.out().$length); + _ref$1 = ft.out(); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + out$1 = $append(out$1, ret); + _i$1++; + } + _r = FuncOf(in$2, out$1, ft.rtype.IsVariadic()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + mt = _r; + m.Type = mt; + prop[0] = $internalize($methodSet(t.jsType)[i].prop, $String); + fn = js.MakeFunc((function(prop) { return function rtype·Method·func1(this$1, arguments$1) { + var arguments$1, rcvr, this$1; + rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]); + return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$17))); + }; })(prop)); + m.Func = new Value.ptr($assertType(mt, ptrType$1), (fn), fl); + m.Index = i; + Method.copy(m, m); + $s = -1; return m; + /* */ } return; } var $f = {$blk: Method$3, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$2, m, methods$1, mt, mtyp, out$1, p, pname, prop, ret, t, tt, $s};return $f; + }; + $ptrType(Value).prototype.object = function object() { + var _1, newVal, v, val; + v = this; + if ((v.typ.Kind() === 17) || (v.typ.Kind() === 25)) { + return v.ptr; + } + if (!((((v.flag & 128) >>> 0) === 0))) { + val = v.ptr.$get(); + if (!(val === $ifaceNil) && !(val.constructor === jsType(v.typ))) { + switch (0) { default: + _1 = v.typ.Kind(); + if ((_1 === (11)) || (_1 === (6))) { + val = new (jsType(v.typ))(val.$high, val.$low); + } else if ((_1 === (15)) || (_1 === (16))) { + val = new (jsType(v.typ))(val.$real, val.$imag); + } else if (_1 === (23)) { + if (val === val.constructor.nil) { + val = jsType(v.typ).nil; + break; + } + newVal = new (jsType(v.typ))(val.$array); + newVal.$offset = val.$offset; + newVal.$length = val.$length; + newVal.$capacity = val.$capacity; + val = newVal; + } + } + } + return val; + } + return v.ptr; + }; + Value.prototype.object = function(...$args) { return this.$val.object(...$args); }; + $ptrType(Value).prototype.assignTo = function assignTo(context, dst, target) { + var {_r, _r$1, _r$2, context, dst, fl, target, v, x, $s, $r, $c} = $restore(this, {context, dst, target}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue(context, $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* } */ case 2: + _r$1 = directlyAssignable(dst, v.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 5; continue; } + /* */ if (implements$1(dst, v.typ)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r$1) { */ case 5: + fl = (((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0; + fl = (fl | (((dst.Kind() >>> 0)))) >>> 0; + $s = -1; return new Value.ptr(dst, v.ptr, fl); + /* } else if (implements$1(dst, v.typ)) { */ case 6: + if (target === 0) { + target = unsafe_New(dst); + } + _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + if (dst.NumMethod() === 0) { + (target).$set(x); + } else { + ifaceE2I(dst, x, target); + } + $s = -1; return new Value.ptr(dst, target, 148); + /* } */ case 7: + case 4: + $panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String())); + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } var $f = {$blk: assignTo, $c: true, $r, _r, _r$1, _r$2, context, dst, fl, target, v, x, $s};return $f; + }; + Value.prototype.assignTo = function(...$args) { return this.$val.assignTo(...$args); }; + $ptrType(Value).prototype.call = function call$2(op, in$2) { + var {$24r, _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$2, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s, $r, $c} = $restore(this, {op, in$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + t = ptrType$20.nil; + fn = 0; + rcvr = null; + if (!((((v.flag & 512) >>> 0) === 0))) { + _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); + t = _tuple[1]; + fn = _tuple[2]; + rcvr = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr = new (jsType(v.typ))(rcvr); + } + } else { + t = (v.typ.kindType); + fn = ($clone(v, Value).object()); + rcvr = undefined; + } + if (fn === 0) { + $panic(new $String("reflect.Value.Call: call of nil function")); + } + isSlice = op === "CallSlice"; + n = t.rtype.NumIn(); + if (isSlice) { + if (!t.rtype.IsVariadic()) { + $panic(new $String("reflect: CallSlice of non-variadic function")); + } + if (in$2.$length < n) { + $panic(new $String("reflect: CallSlice with too few input arguments")); + } + if (in$2.$length > n) { + $panic(new $String("reflect: CallSlice with too many input arguments")); + } + } else { + if (t.rtype.IsVariadic()) { + n = n - (1) >> 0; + } + if (in$2.$length < n) { + $panic(new $String("reflect: Call with too few input arguments")); + } + if (!t.rtype.IsVariadic() && in$2.$length > n) { + $panic(new $String("reflect: Call with too many input arguments")); + } + } + _ref = in$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ($clone(x, Value).Kind() === 0) { + $panic(new $String("reflect: " + op + " using zero Value argument")); + } + _i++; + } + i = 0; + /* while (true) { */ case 1: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } + _tmp = $clone(((i < 0 || i >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + i]), Value).Type(); + _tmp$1 = t.rtype.In(i); + xt = _tmp; + targ = _tmp$1; + _r = xt.AssignableTo(targ); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + _r$1 = xt.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = targ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $panic(new $String("reflect: " + op + " using " + _r$1 + " as type " + _r$2)); + /* } */ case 4: + i = i + (1) >> 0; + $s = 1; continue; + case 2: + /* */ if (!isSlice && t.rtype.IsVariadic()) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!isSlice && t.rtype.IsVariadic()) { */ case 8: + m = in$2.$length - n >> 0; + _r$3 = MakeSlice(t.rtype.In(n), m, m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + slice = _r$3; + _r$4 = t.rtype.In(n).Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + elem = _r$4; + i$1 = 0; + /* while (true) { */ case 12: + /* if (!(i$1 < m)) { break; } */ if(!(i$1 < m)) { $s = 13; continue; } + x$2 = (x$1 = n + i$1 >> 0, ((x$1 < 0 || x$1 >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + x$1])); + xt$1 = $clone(x$2, Value).Type(); + _r$5 = xt$1.AssignableTo(elem); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!_r$5) { */ case 14: + _r$6 = xt$1.String(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = elem.String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $panic(new $String("reflect: cannot use " + _r$6 + " as type " + _r$7 + " in " + op)); + /* } */ case 15: + _r$8 = $clone(slice, Value).Index(i$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $r = $clone(_r$8, Value).Set($clone(x$2, Value)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + $s = 12; continue; + case 13: + origIn = in$2; + in$2 = $makeSlice(sliceType$9, (n + 1 >> 0)); + $copySlice($subslice(in$2, 0, n), origIn); + ((n < 0 || n >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + n] = slice); + /* } */ case 9: + nin = in$2.$length; + if (!((nin === t.rtype.NumIn()))) { + $panic(new $String("reflect.Value.Call: wrong argument count")); + } + nout = t.rtype.NumOut(); + argsArray = new ($global.Array)(t.rtype.NumIn()); + _ref$1 = in$2; + _i$1 = 0; + /* while (true) { */ case 21: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 22; continue; } + i$2 = _i$1; + arg = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _arg = t.rtype.In(i$2); + _r$9 = t.rtype.In(i$2).common(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$1 = _r$9; + _arg$2 = 0; + _r$10 = $clone(arg, Value).assignTo("reflect.Value.Call", _arg$1, _arg$2); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = $clone(_r$10, Value).object(); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _arg$3 = _r$11; + _r$12 = unwrapJsObject(_arg, _arg$3); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + argsArray[i$2] = _r$12; + _i$1++; + $s = 21; continue; + case 22: + _r$13 = callHelper(new sliceType$5([new $jsObjectPtr(fn), new $jsObjectPtr(rcvr), new $jsObjectPtr(argsArray)])); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + results = _r$13; + _1 = nout; + /* */ if (_1 === (0)) { $s = 29; continue; } + /* */ if (_1 === (1)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (_1 === (0)) { */ case 29: + $s = -1; return sliceType$9.nil; + /* } else if (_1 === (1)) { */ case 30: + _r$14 = makeValue(t.rtype.Out(0), wrapJsObject(t.rtype.Out(0), results), 0); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $24r = new sliceType$9([$clone(_r$14, Value)]); + $s = 34; case 34: return $24r; + /* } else { */ case 31: + ret = $makeSlice(sliceType$9, nout); + _ref$2 = ret; + _i$2 = 0; + /* while (true) { */ case 35: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 36; continue; } + i$3 = _i$2; + _r$15 = makeValue(t.rtype.Out(i$3), wrapJsObject(t.rtype.Out(i$3), results[i$3]), 0); /* */ $s = 37; case 37: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + ((i$3 < 0 || i$3 >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i$3] = _r$15); + _i$2++; + $s = 35; continue; + case 36: + $s = -1; return ret; + /* } */ case 32: + case 28: + $s = -1; return sliceType$9.nil; + /* */ } return; } var $f = {$blk: call$2, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$2, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s};return $f; + }; + Value.prototype.call = function(...$args) { return this.$val.call(...$args); }; + $ptrType(Value).prototype.Cap = function Cap() { + var {$24r, _1, _r, _r$1, k, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if ((_1 === (18)) || (_1 === (23))) { $s = 3; continue; } + /* */ if (_1 === (22)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (17)) { */ case 2: + $s = -1; return v.typ.Len(); + /* } else if ((_1 === (18)) || (_1 === (23))) { */ case 3: + $s = -1; return $parseInt($clone(v, Value).object().$capacity) >> 0; + /* } else if (_1 === (22)) { */ case 4: + _r = v.typ.Elem().Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === 17) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r === 17) { */ case 6: + _r$1 = v.typ.Elem().Len(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 10; case 10: return $24r; + /* } */ case 7: + $panic(new $String("reflect: call of reflect.Value.Cap on ptr to non-array Value")); + /* } */ case 5: + case 1: + $panic(new ValueError.ptr("reflect.Value.Cap", k)); + $s = -1; return 0; + /* */ } return; } var $f = {$blk: Cap, $c: true, $r, $24r, _1, _r, _r$1, k, v, $s};return $f; + }; + Value.prototype.Cap = function(...$args) { return this.$val.Cap(...$args); }; + wrapJsObject = function wrapJsObject$1(typ, val) { + var typ, val; + if ($interfaceIsEqual(typ, jsObjectPtr)) { + return new (jsType(jsObjectPtr))(val); + } + return val; + }; + unwrapJsObject = function unwrapJsObject$1(typ, val) { + var typ, val; + if ($interfaceIsEqual(typ, jsObjectPtr)) { + return val.object; + } + return val; + }; + $ptrType(Value).prototype.Elem = function Elem$1() { + var {$24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (20)) { $s = 2; continue; } + /* */ if (_1 === (22)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_1 === (20)) { */ case 2: + val = $clone(v, Value).object(); + if (val === $ifaceNil) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + typ = reflectType(val.constructor); + _r = makeValue(typ, val.$val, new flag(v.flag).ro()); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 7; case 7: return $24r; + /* } else if (_1 === (22)) { */ case 3: + if ($clone(v, Value).IsNil()) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + val$1 = $clone(v, Value).object(); + tt = (v.typ.kindType); + fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; + fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0; + $s = -1; return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl); + /* } else { */ case 4: + $panic(new ValueError.ptr("reflect.Value.Elem", k)); + /* } */ case 5: + case 1: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } var $f = {$blk: Elem$1, $c: true, $r, $24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s};return $f; + }; + Value.prototype.Elem = function(...$args) { return this.$val.Elem(...$args); }; + $ptrType(Value).prototype.Field = function Field$2(i) { + var {$24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag$1, tt, typ, v, x, x$1, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + jsTag = [jsTag]; + prop = [prop]; + s = [s]; + typ = [typ]; + v = this; + if (!((new flag(v.flag).kind() === 25))) { + $panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind())); + } + tt = (v.typ.kindType); + if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) { + $panic(new $String("reflect: Field index out of range")); + } + prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String); + field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + typ[0] = field.typ; + fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; + if (!$clone(field.name, name).isExported()) { + if (field.embedded()) { + fl = (fl | (64)) >>> 0; + } else { + fl = (fl | (32)) >>> 0; + } + } + tag$1 = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag(); + /* */ if (!(tag$1 === "") && !((i === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(tag$1 === "") && !((i === 0))) { */ case 1: + jsTag[0] = getJsTag(tag$1); + /* */ if (!(jsTag[0] === "")) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(jsTag[0] === "")) { */ case 3: + /* while (true) { */ case 5: + o = [o]; + _r = $clone(v, Value).Field(0); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* */ if (v.typ === jsObjectPtr) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (v.typ === jsObjectPtr) { */ case 8: + o[0] = $clone(v, Value).object().object; + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, o, prop, s, typ) { return function Value·Field·func1() { + return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0])); + }; })(jsTag, o, prop, s, typ), (function(jsTag, o, prop, s, typ) { return function Value·Field·func2(x$2) { + var x$2; + o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0])); + }; })(jsTag, o, prop, s, typ))), fl); + /* } */ case 9: + /* */ if (v.typ.Kind() === 22) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (v.typ.Kind() === 22) { */ case 10: + _r$1 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + v = _r$1; + /* } */ case 11: + $s = 5; continue; + case 6: + /* } */ case 4: + /* } */ case 2: + s[0] = v.ptr; + /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13: + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, prop, s, typ) { return function Value·Field·func3() { + return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]); + }; })(jsTag, prop, s, typ), (function(jsTag, prop, s, typ) { return function Value·Field·func4(x$2) { + var x$2; + s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2); + }; })(jsTag, prop, s, typ))), fl); + /* } */ case 14: + _r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 16; case 16: return $24r; + /* */ } return; } var $f = {$blk: Field$2, $c: true, $r, $24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag$1, tt, typ, v, x, x$1, $s};return $f; + }; + Value.prototype.Field = function(...$args) { return this.$val.Field(...$args); }; + getJsTag = function getJsTag$1(tag$1) { + var _tuple, i, name$2, qvalue, tag$1, value; + while (true) { + if (!(!(tag$1 === ""))) { break; } + i = 0; + while (true) { + if (!(i < tag$1.length && (tag$1.charCodeAt(i) === 32))) { break; } + i = i + (1) >> 0; + } + tag$1 = $substring(tag$1, i); + if (tag$1 === "") { + break; + } + i = 0; + while (true) { + if (!(i < tag$1.length && !((tag$1.charCodeAt(i) === 32)) && !((tag$1.charCodeAt(i) === 58)) && !((tag$1.charCodeAt(i) === 34)))) { break; } + i = i + (1) >> 0; + } + if ((i + 1 >> 0) >= tag$1.length || !((tag$1.charCodeAt(i) === 58)) || !((tag$1.charCodeAt((i + 1 >> 0)) === 34))) { + break; + } + name$2 = ($substring(tag$1, 0, i)); + tag$1 = $substring(tag$1, (i + 1 >> 0)); + i = 1; + while (true) { + if (!(i < tag$1.length && !((tag$1.charCodeAt(i) === 34)))) { break; } + if (tag$1.charCodeAt(i) === 92) { + i = i + (1) >> 0; + } + i = i + (1) >> 0; + } + if (i >= tag$1.length) { + break; + } + qvalue = ($substring(tag$1, 0, (i + 1 >> 0))); + tag$1 = $substring(tag$1, (i + 1 >> 0)); + if (name$2 === "js") { + _tuple = strconv.Unquote(qvalue); + value = _tuple[0]; + return value; + } + } + return ""; + }; + $ptrType(Value).prototype.Index = function Index(i) { + var {$24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = [a]; + a$1 = [a$1]; + c = [c]; + i = [i]; + typ = [typ]; + typ$1 = [typ$1]; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ if (_1 === (24)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (17)) { */ case 2: + tt = (v.typ.kindType); + if (i[0] < 0 || i[0] > ((tt.len >> 0))) { + $panic(new $String("reflect: array index out of range")); + } + typ[0] = tt.elem; + fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; + a[0] = v.ptr; + /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7: + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func1() { + return wrapJsObject(typ[0], a[0][i[0]]); + }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func2(x) { + var x; + a[0][i[0]] = unwrapJsObject(typ[0], x); + }; })(a, a$1, c, i, typ, typ$1))), fl); + /* } */ case 8: + _r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 10; case 10: return $24r; + /* } else if (_1 === (23)) { */ case 3: + s = $clone(v, Value).object(); + if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) { + $panic(new $String("reflect: slice index out of range")); + } + tt$1 = (v.typ.kindType); + typ$1[0] = tt$1.elem; + fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$1[0].Kind() >>> 0))) >>> 0; + i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0; + a$1[0] = s.$array; + /* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 11: + $s = -1; return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func3() { + return wrapJsObject(typ$1[0], a$1[0][i[0]]); + }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func4(x) { + var x; + a$1[0][i[0]] = unwrapJsObject(typ$1[0], x); + }; })(a, a$1, c, i, typ, typ$1))), fl$1); + /* } */ case 12: + _r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 14; case 14: return $24r$1; + /* } else if (_1 === (24)) { */ case 4: + str = (v.ptr).$get(); + if (i[0] < 0 || i[0] >= str.length) { + $panic(new $String("reflect: string index out of range")); + } + fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0; + c[0] = str.charCodeAt(i[0]); + $s = -1; return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$14(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, c)))), fl$2); + /* } else { */ case 5: + $panic(new ValueError.ptr("reflect.Value.Index", k)); + /* } */ case 6: + case 1: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } var $f = {$blk: Index, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s};return $f; + }; + Value.prototype.Index = function(...$args) { return this.$val.Index(...$args); }; + $ptrType(Value).prototype.InterfaceData = function InterfaceData() { + var v; + v = this; + $panic(errors.New("InterfaceData is not supported by GopherJS")); + }; + Value.prototype.InterfaceData = function(...$args) { return this.$val.InterfaceData(...$args); }; + $ptrType(Value).prototype.IsNil = function IsNil() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (22)) || (_1 === (23))) { + return $clone(v, Value).object() === jsType(v.typ).nil; + } else if (_1 === (18)) { + return $clone(v, Value).object() === $chanNil; + } else if (_1 === (19)) { + return $clone(v, Value).object() === $throwNilPointerError; + } else if (_1 === (21)) { + return $clone(v, Value).object() === false; + } else if (_1 === (20)) { + return $clone(v, Value).object() === $ifaceNil; + } else if (_1 === (26)) { + return $clone(v, Value).object() === 0; + } else { + $panic(new ValueError.ptr("reflect.Value.IsNil", k)); + } + }; + Value.prototype.IsNil = function(...$args) { return this.$val.IsNil(...$args); }; + $ptrType(Value).prototype.Len = function Len$1() { + var {$24r, _1, _r, _r$1, k, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if ((_1 === (17)) || (_1 === (24))) { $s = 2; continue; } + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ if (_1 === (18)) { $s = 4; continue; } + /* */ if (_1 === (21)) { $s = 5; continue; } + /* */ if (_1 === (22)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((_1 === (17)) || (_1 === (24))) { */ case 2: + $s = -1; return $parseInt($clone(v, Value).object().length); + /* } else if (_1 === (23)) { */ case 3: + $s = -1; return $parseInt($clone(v, Value).object().$length) >> 0; + /* } else if (_1 === (18)) { */ case 4: + $s = -1; return $parseInt($clone(v, Value).object().$buffer.length) >> 0; + /* } else if (_1 === (21)) { */ case 5: + $s = -1; return $parseInt($clone(v, Value).object().size) >> 0; + /* } else if (_1 === (22)) { */ case 6: + _r = v.typ.Elem().Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === 17) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r === 17) { */ case 9: + _r$1 = v.typ.Elem().Len(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 13; case 13: return $24r; + /* } */ case 10: + $panic(new $String("reflect: call of reflect.Value.Len on ptr to non-array Value")); + $s = 8; continue; + /* } else { */ case 7: + $panic(new ValueError.ptr("reflect.Value.Len", k)); + /* } */ case 8: + case 1: + $s = -1; return 0; + /* */ } return; } var $f = {$blk: Len$1, $c: true, $r, $24r, _1, _r, _r$1, k, v, $s};return $f; + }; + Value.prototype.Len = function(...$args) { return this.$val.Len(...$args); }; + $ptrType(Value).prototype.Pointer = function Pointer() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (18)) || (_1 === (21)) || (_1 === (22)) || (_1 === (26))) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return $clone(v, Value).object(); + } else if (_1 === (19)) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return 1; + } else if (_1 === (23)) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return $clone(v, Value).object().$array; + } else { + $panic(new ValueError.ptr("reflect.Value.Pointer", k)); + } + }; + Value.prototype.Pointer = function(...$args) { return this.$val.Pointer(...$args); }; + $ptrType(Value).prototype.Set = function Set(x) { + var {_1, _r, _r$1, v, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(x.flag).mustBeExported(); + _r = $clone(x, Value).assignTo("reflect.Set", v.typ, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x = _r; + /* */ if (!((((v.flag & 128) >>> 0) === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((((v.flag & 128) >>> 0) === 0))) { */ case 2: + _1 = v.typ.Kind(); + /* */ if ((_1 === (17)) || (_1 === (25))) { $s = 5; continue; } + /* */ if (_1 === (20)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((_1 === (17)) || (_1 === (25))) { */ case 5: + jsType(v.typ).copy(v.ptr, x.ptr); + $s = 8; continue; + /* } else if (_1 === (20)) { */ case 6: + _r$1 = valueInterface($clone(x, Value), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + v.ptr.$set(_r$1); + $s = 8; continue; + /* } else { */ case 7: + v.ptr.$set($clone(x, Value).object()); + /* } */ case 8: + case 4: + $s = -1; return; + /* } */ case 3: + v.ptr = x.ptr; + $s = -1; return; + /* */ } return; } var $f = {$blk: Set, $c: true, $r, _1, _r, _r$1, v, x, $s};return $f; + }; + Value.prototype.Set = function(...$args) { return this.$val.Set(...$args); }; + $ptrType(Value).prototype.bytesSlow = function bytesSlow() { + var {_1, _r, _r$1, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + _1 = new flag(v.flag).kind(); + /* */ if (_1 === (23)) { $s = 2; continue; } + /* */ if (_1 === (17)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_1 === (23)) { */ case 2: + _r = v.typ.Elem().Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 8))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((_r === 8))) { */ case 5: + $panic(new $String("reflect.Value.Bytes of non-byte slice")); + /* } */ case 6: + $s = -1; return (v.ptr).$get(); + /* } else if (_1 === (17)) { */ case 3: + _r$1 = v.typ.Elem().Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!((_r$1 === 8))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!((_r$1 === 8))) { */ case 8: + $panic(new $String("reflect.Value.Bytes of non-byte array")); + /* } */ case 9: + if (!$clone(v, Value).CanAddr()) { + $panic(new $String("reflect.Value.Bytes of unaddressable byte array")); + } + $s = -1; return $assertType($internalize(v.ptr, $emptyInterface), sliceType$4); + /* } */ case 4: + case 1: + $panic(new ValueError.ptr("reflect.Value.Bytes", new flag(v.flag).kind())); + $s = -1; return sliceType$4.nil; + /* */ } return; } var $f = {$blk: bytesSlow, $c: true, $r, _1, _r, _r$1, v, $s};return $f; + }; + Value.prototype.bytesSlow = function(...$args) { return this.$val.bytesSlow(...$args); }; + $ptrType(Value).prototype.SetBytes = function SetBytes(x) { + var {_r, _r$1, _v, slice, typedSlice, v, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 8))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 8))) { */ case 1: + $panic(new $String("reflect.Value.SetBytes of non-byte slice")); + /* } */ case 2: + slice = x; + if (!(v.typ.Name() === "")) { _v = true; $s = 6; continue s; } + _r$1 = v.typ.Elem().Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = !(_r$1 === ""); case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + typedSlice = new (jsType(v.typ))(slice.$array); + typedSlice.$offset = slice.$offset; + typedSlice.$length = slice.$length; + typedSlice.$capacity = slice.$capacity; + slice = typedSlice; + /* } */ case 5: + v.ptr.$set(slice); + $s = -1; return; + /* */ } return; } var $f = {$blk: SetBytes, $c: true, $r, _r, _r$1, _v, slice, typedSlice, v, x, $s};return $f; + }; + Value.prototype.SetBytes = function(...$args) { return this.$val.SetBytes(...$args); }; + $ptrType(Value).prototype.SetCap = function SetCap(n) { + var n, newSlice, s, v; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + s = v.ptr.$get(); + if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) { + $panic(new $String("reflect: slice capacity out of range in SetCap")); + } + newSlice = new (jsType(v.typ))(s.$array); + newSlice.$offset = s.$offset; + newSlice.$length = s.$length; + newSlice.$capacity = n; + v.ptr.$set(newSlice); + }; + Value.prototype.SetCap = function(...$args) { return this.$val.SetCap(...$args); }; + $ptrType(Value).prototype.SetLen = function SetLen(n) { + var n, newSlice, s, v; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + s = v.ptr.$get(); + if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) { + $panic(new $String("reflect: slice length out of range in SetLen")); + } + newSlice = new (jsType(v.typ))(s.$array); + newSlice.$offset = s.$offset; + newSlice.$length = n; + newSlice.$capacity = s.$capacity; + v.ptr.$set(newSlice); + }; + Value.prototype.SetLen = function(...$args) { return this.$val.SetLen(...$args); }; + $ptrType(Value).prototype.Slice = function Slice(i, j) { + var {$24r, $24r$1, _1, _r, _r$1, cap, i, j, kind$1, s, str, tt, typ, v, $s, $r, $c} = $restore(this, {i, j}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + cap = 0; + typ = $ifaceNil; + s = null; + kind$1 = new flag(v.flag).kind(); + _1 = kind$1; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ if (_1 === (24)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (17)) { */ case 2: + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = (v.typ.kindType); + cap = ((tt.len >> 0)); + typ = SliceOf(tt.elem); + s = new (jsType(typ))($clone(v, Value).object()); + $s = 6; continue; + /* } else if (_1 === (23)) { */ case 3: + typ = v.typ; + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + $s = 6; continue; + /* } else if (_1 === (24)) { */ case 4: + str = (v.ptr).$get(); + if (i < 0 || j < i || j > str.length) { + $panic(new $String("reflect.Value.Slice: string slice index out of bounds")); + } + _r = ValueOf(new $String($substring(str, i, j))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 8; case 8: return $24r; + /* } else { */ case 5: + $panic(new ValueError.ptr("reflect.Value.Slice", kind$1)); + /* } */ case 6: + case 1: + if (i < 0 || j < i || j > cap) { + $panic(new $String("reflect.Value.Slice: slice index out of bounds")); + } + _r$1 = makeValue(typ, $subslice(s, i, j), new flag(v.flag).ro()); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 10; case 10: return $24r$1; + /* */ } return; } var $f = {$blk: Slice, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, cap, i, j, kind$1, s, str, tt, typ, v, $s};return $f; + }; + Value.prototype.Slice = function(...$args) { return this.$val.Slice(...$args); }; + $ptrType(Value).prototype.Slice3 = function Slice3(i, j, k) { + var {$24r, _1, _r, cap, i, j, k, kind$1, s, tt, typ, v, $s, $r, $c} = $restore(this, {i, j, k}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + cap = 0; + typ = $ifaceNil; + s = null; + kind$1 = new flag(v.flag).kind(); + _1 = kind$1; + if (_1 === (17)) { + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = (v.typ.kindType); + cap = ((tt.len >> 0)); + typ = SliceOf(tt.elem); + s = new (jsType(typ))($clone(v, Value).object()); + } else if (_1 === (23)) { + typ = v.typ; + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + } else { + $panic(new ValueError.ptr("reflect.Value.Slice3", kind$1)); + } + if (i < 0 || j < i || k < j || k > cap) { + $panic(new $String("reflect.Value.Slice3: slice index out of bounds")); + } + _r = makeValue(typ, $subslice(s, i, j, k), new flag(v.flag).ro()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Slice3, $c: true, $r, $24r, _1, _r, cap, i, j, k, kind$1, s, tt, typ, v, $s};return $f; + }; + Value.prototype.Slice3 = function(...$args) { return this.$val.Slice3(...$args); }; + $ptrType(Value).prototype.Close = function Close() { + var v; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + $close($clone(v, Value).object()); + }; + Value.prototype.Close = function(...$args) { return this.$val.Close(...$args); }; + chanrecv = function chanrecv$1(ch, nb, val) { + var {_r, _tmp, _tmp$1, _tmp$2, _tmp$3, ch, comms, nb, received, recvRes, selectRes, selected, val, $s, $r, $c} = $restore(this, {ch, nb, val}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + selected = false; + received = false; + comms = new sliceType$19([new sliceType$17([ch])]); + if (nb) { + comms = $append(comms, new sliceType$17([])); + } + _r = selectHelper(new sliceType$5([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + selectRes = _r; + if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { + _tmp = false; + _tmp$1 = false; + selected = _tmp; + received = _tmp$1; + $s = -1; return [selected, received]; + } + recvRes = selectRes[1]; + val.$set(recvRes[0]); + _tmp$2 = true; + _tmp$3 = !!(recvRes[1]); + selected = _tmp$2; + received = _tmp$3; + $s = -1; return [selected, received]; + /* */ } return; } var $f = {$blk: chanrecv$1, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, ch, comms, nb, received, recvRes, selectRes, selected, val, $s};return $f; + }; + chansend = function chansend$1(ch, val, nb) { + var {_r, ch, comms, nb, selectRes, val, $s, $r, $c} = $restore(this, {ch, val, nb}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + comms = new sliceType$19([new sliceType$17([ch, val.$get()])]); + if (nb) { + comms = $append(comms, new sliceType$17([])); + } + _r = selectHelper(new sliceType$5([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + selectRes = _r; + if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { + $s = -1; return false; + } + $s = -1; return true; + /* */ } return; } var $f = {$blk: chansend$1, $c: true, $r, _r, ch, comms, nb, selectRes, val, $s};return $f; + }; + verifyNotInHeapPtr = function verifyNotInHeapPtr$1(p) { + var p; + return true; + }; + Value.methods = [{prop: "pointer", name: "pointer", pkg: "reflect", typ: $funcType([], [$UnsafePointer], false)}, {prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "panicNotBool", name: "panicNotBool", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$4], false)}, {prop: "runes", name: "runes", pkg: "reflect", typ: $funcType([], [sliceType$11], false)}, {prop: "CanAddr", name: "CanAddr", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false)}, {prop: "CallSlice", name: "CallSlice", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false)}, {prop: "capNonSlice", name: "capNonSlice", pkg: "reflect", typ: $funcType([], [$Int], false)}, {prop: "CanComplex", name: "CanComplex", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Complex", name: "Complex", pkg: "", typ: $funcType([], [$Complex128], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$7], [Value], false)}, {prop: "FieldByIndexErr", name: "FieldByIndexErr", pkg: "", typ: $funcType([sliceType$7], [Value, $error], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [Value], false)}, {prop: "CanFloat", name: "CanFloat", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "CanInt", name: "CanInt", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "CanInterface", name: "CanInterface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "lenNonSlice", name: "lenNonSlice", pkg: "reflect", typ: $funcType([], [$Int], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$9], false)}, {prop: "SetIterKey", name: "SetIterKey", pkg: "", typ: $funcType([ptrType$23], [], false)}, {prop: "SetIterValue", name: "SetIterValue", pkg: "", typ: $funcType([ptrType$23], [], false)}, {prop: "MapRange", name: "MapRange", pkg: "", typ: $funcType([], [ptrType$23], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "OverflowComplex", name: "OverflowComplex", pkg: "", typ: $funcType([$Complex128], [$Bool], false)}, {prop: "OverflowFloat", name: "OverflowFloat", pkg: "", typ: $funcType([$Float64], [$Bool], false)}, {prop: "OverflowInt", name: "OverflowInt", pkg: "", typ: $funcType([$Int64], [$Bool], false)}, {prop: "OverflowUint", name: "OverflowUint", pkg: "", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "recv", name: "recv", pkg: "reflect", typ: $funcType([$Bool], [Value, $Bool], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([Value], [], false)}, {prop: "send", name: "send", pkg: "reflect", typ: $funcType([Value, $Bool], [$Bool], false)}, {prop: "SetBool", name: "SetBool", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "setRunes", name: "setRunes", pkg: "reflect", typ: $funcType([sliceType$11], [], false)}, {prop: "SetComplex", name: "SetComplex", pkg: "", typ: $funcType([$Complex128], [], false)}, {prop: "SetFloat", name: "SetFloat", pkg: "", typ: $funcType([$Float64], [], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "SetMapIndex", name: "SetMapIndex", pkg: "", typ: $funcType([Value, Value], [], false)}, {prop: "SetUint", name: "SetUint", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "SetPointer", name: "SetPointer", pkg: "", typ: $funcType([$UnsafePointer], [], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "stringNonString", name: "stringNonString", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "TryRecv", name: "TryRecv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "TrySend", name: "TrySend", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "typeSlow", name: "typeSlow", pkg: "reflect", typ: $funcType([], [Type], false)}, {prop: "CanUint", name: "CanUint", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Uint", name: "Uint", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "UnsafeAddr", name: "UnsafeAddr", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "UnsafePointer", name: "UnsafePointer", pkg: "", typ: $funcType([], [$UnsafePointer], false)}, {prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Type], [Value], false)}, {prop: "CanConvert", name: "CanConvert", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "object", name: "object", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "assignTo", name: "assignTo", pkg: "reflect", typ: $funcType([$String, ptrType$1, $UnsafePointer], [Value], false)}, {prop: "call", name: "call", pkg: "reflect", typ: $funcType([$String, sliceType$9], [sliceType$9], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$8], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "bytesSlow", name: "bytesSlow", pkg: "reflect", typ: $funcType([], [sliceType$4], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$4], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}]; + flag.methods = [{prop: "kind", name: "kind", pkg: "reflect", typ: $funcType([], [Kind], false)}, {prop: "ro", name: "ro", pkg: "reflect", typ: $funcType([], [flag], false)}, {prop: "mustBe", name: "mustBe", pkg: "reflect", typ: $funcType([Kind], [], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeExportedSlow", name: "mustBeExportedSlow", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeAssignableSlow", name: "mustBeAssignableSlow", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "panicNotMap", name: "panicNotMap", pkg: "reflect", typ: $funcType([], [], false)}]; + ptrType$24.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$23.methods = [{prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([Value], [], false)}]; + Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "textOff", name: "textOff", pkg: "reflect", typ: $funcType([textOff], [$UnsafePointer], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$12], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "hasName", name: "hasName", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$7], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "gcSlice", name: "gcSlice", pkg: "reflect", typ: $funcType([$Uintptr, $Uintptr], [sliceType$4], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$10], false)}, {prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([nameOff], [name], false)}, {prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([typeOff], [ptrType$1], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "pointers", name: "pointers", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}]; + ChanDir.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$11.methods = [{prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}]; + ptrType$26.methods = [{prop: "embedded", name: "embedded", pkg: "reflect", typ: $funcType([], [$Bool], false)}]; + ptrType$13.methods = [{prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$7], [StructField], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}]; + Method.methods = [{prop: "IsExported", name: "IsExported", pkg: "", typ: $funcType([], [$Bool], false)}]; + StructField.methods = [{prop: "IsExported", name: "IsExported", pkg: "", typ: $funcType([], [$Bool], false)}]; + StructTag.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [$String, $Bool], false)}]; + ptrType$10.methods = [{prop: "methods", name: "methods", pkg: "reflect", typ: $funcType([], [sliceType$12], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$12], false)}]; + ptrType$20.methods = [{prop: "in$", name: "in", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}, {prop: "out", name: "out", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}]; + name.methods = [{prop: "data", name: "data", pkg: "reflect", typ: $funcType([$Int, $String], [ptrType$14], false)}, {prop: "hasTag", name: "hasTag", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "readVarint", name: "readVarint", pkg: "reflect", typ: $funcType([$Int], [$Int, $Int], false)}, {prop: "name", name: "name", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "tag", name: "tag", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "pkgPath", name: "pkgPath", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "isExported", name: "isExported", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "embedded", name: "embedded", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "setPkgPath", name: "setPkgPath", pkg: "reflect", typ: $funcType([$String], [], false)}]; + ptrType$27.methods = [{prop: "initialized", name: "initialized", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "skipUntilValidKey", name: "skipUntilValidKey", pkg: "reflect", typ: $funcType([], [], false)}]; + Value.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]); + ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: ""}]); + MapIter.init("reflect", [{prop: "m", name: "m", embedded: false, exported: false, typ: Value, tag: ""}, {prop: "hiter", name: "hiter", embedded: false, exported: false, typ: hiter, tag: ""}]); + Type.init([{prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$7], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$10], false)}]); + rtype.init("reflect", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$4, tag: ""}, {prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$14, tag: ""}, {prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: ""}]); + method.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: ""}]); + arrayType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "slice", name: "slice", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + chanType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + imethod.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: typeOff, tag: ""}]); + interfaceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType$15, tag: ""}]); + mapType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "bucket", name: "bucket", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "hasher", name: "hasher", embedded: false, exported: false, typ: funcType$5, tag: ""}, {prop: "keysize", name: "keysize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "valuesize", name: "valuesize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "bucketsize", name: "bucketsize", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + ptrType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); + sliceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); + structField.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: name, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + structType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$16, tag: ""}]); + Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: Value, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}]); + StructField.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Tag", name: "Tag", embedded: false, exported: true, typ: StructTag, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "Anonymous", name: "Anonymous", embedded: false, exported: true, typ: $Bool, tag: ""}]); + fieldScan.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); + uncommonType.init("reflect", [{prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mcount", name: "mcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "xcount", name: "xcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "moff", name: "moff", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_methods", name: "_methods", embedded: false, exported: false, typ: sliceType$12, tag: ""}]); + funcType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "reflect:\"func\""}, {prop: "inCount", name: "inCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "outCount", name: "outCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_in", name: "_in", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "_out", name: "_out", embedded: false, exported: false, typ: sliceType$2, tag: ""}]); + name.init("reflect", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: ptrType$14, tag: ""}]); + nameData.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "embedded", name: "embedded", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: $String, tag: ""}]); + hiter.init("reflect", [{prop: "t", name: "t", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = abi.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = goarch.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = itoa.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unsafeheader.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + nameOffList = sliceType$1.nil; + typeOffList = sliceType$2.nil; + kindNames = new sliceType$3(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); + initialized = false; + nameMap = new $global.Map(); + bytesType = $assertType(TypeOf((sliceType$4.nil)), ptrType$1); + uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); + stringType = $assertType(TypeOf(new $String("")), ptrType$1); + callHelper = $assertType($internalize($call, $emptyInterface), funcType$1); + jsObjectPtr = reflectType($jsObjectPtr); + selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1); + $r = init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["sort"] = (function() { + var $pkg = {}, $init, reflectlite, bits, xorshift, lessSwap, StringSlice, reflectValueOf, reflectSwapper, insertionSort, siftDown, heapSort, pdqsort, partition, partitionEqual, partialInsertionSort, breakPatterns, choosePivot, order2, median, medianAdjacent, reverseRange, swapRange, stable, symMerge, rotate, insertionSort_func, siftDown_func, heapSort_func, pdqsort_func, partition_func, partitionEqual_func, partialInsertionSort_func, breakPatterns_func, choosePivot_func, order2_func, median_func, medianAdjacent_func, reverseRange_func, Sort, nextPowerOfTwo, IsSorted, Strings, Stable, Slice, Search, SearchStrings; + reflectlite = $packages["internal/reflectlite"]; + bits = $packages["math/bits"]; + xorshift = $newType(8, $kindUint64, "sort.xorshift", true, "sort", false, null); + lessSwap = $newType(0, $kindStruct, "sort.lessSwap", true, "sort", false, function(Less_, Swap_) { + this.$val = this; + if (arguments.length === 0) { + this.Less = $throwNilPointerError; + this.Swap = $throwNilPointerError; + return; + } + this.Less = Less_; + this.Swap = Swap_; + }); + StringSlice = $newType(12, $kindSlice, "sort.StringSlice", true, "sort", true, null); + $pkg.xorshift = xorshift; + $pkg.lessSwap = lessSwap; + $pkg.StringSlice = StringSlice; + $pkg.$finishSetup = function() { + insertionSort = function insertionSort$1(data, a, b) { + var {_r, _v, a, b, data, i, j, $s, $r, $c} = $restore(this, {data, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = a + 1 >> 0; + /* while (true) { */ case 1: + /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 2; continue; } + j = i; + /* while (true) { */ case 3: + if (!(j > a)) { _v = false; $s = 5; continue s; } + _r = data.Less(j, j - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 4; continue; } + $r = data.Swap(j, j - 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j = j - (1) >> 0; + $s = 3; continue; + case 4: + i = i + (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: insertionSort$1, $c: true, $r, _r, _v, a, b, data, i, j, $s};return $f; + }; + siftDown = function siftDown$1(data, lo, hi, first) { + var {_r, _r$1, _v, child, data, first, hi, lo, root, $s, $r, $c} = $restore(this, {data, lo, hi, first}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + root = lo; + /* while (true) { */ case 1: + child = ($imul(2, root)) + 1 >> 0; + if (child >= hi) { + /* break; */ $s = 2; continue; + } + if (!((child + 1 >> 0) < hi)) { _v = false; $s = 5; continue s; } + _r = data.Less(first + child >> 0, (first + child >> 0) + 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + child = child + (1) >> 0; + /* } */ case 4: + _r$1 = data.Less(first + root >> 0, first + child >> 0); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$1) { */ case 7: + $s = -1; return; + /* } */ case 8: + $r = data.Swap(first + root >> 0, first + child >> 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + root = child; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: siftDown$1, $c: true, $r, _r, _r$1, _v, child, data, first, hi, lo, root, $s};return $f; + }; + heapSort = function heapSort$1(data, a, b) { + var {_q, a, b, data, first, hi, i, i$1, lo, $s, $r, $c} = $restore(this, {data, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + first = a; + lo = 0; + hi = b - a >> 0; + i = (_q = ((hi - 1 >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* while (true) { */ case 1: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 2; continue; } + $r = siftDown(data, i, hi, first); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i - (1) >> 0; + $s = 1; continue; + case 2: + i$1 = hi - 1 >> 0; + /* while (true) { */ case 4: + /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 5; continue; } + $r = data.Swap(first, first + i$1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = siftDown(data, lo, i$1, first); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 - (1) >> 0; + $s = 4; continue; + case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: heapSort$1, $c: true, $r, _q, a, b, data, first, hi, i, i$1, lo, $s};return $f; + }; + pdqsort = function pdqsort$1(data, a, b, limit) { + var {_q, _r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tuple, _tuple$1, _v, a, alreadyPartitioned, b, balanceThreshold, data, hint, leftLen, length, limit, mid, mid$1, pivot, rightLen, wasBalanced, wasPartitioned, $s, $r, $c} = $restore(this, {data, a, b, limit}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + wasBalanced = true; + wasPartitioned = true; + /* while (true) { */ case 1: + length = b - a >> 0; + /* */ if (length <= 12) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (length <= 12) { */ case 3: + $r = insertionSort(data, a, b); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + /* */ if (limit === 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (limit === 0) { */ case 6: + $r = heapSort(data, a, b); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 7: + /* */ if (!wasBalanced) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!wasBalanced) { */ case 9: + $r = breakPatterns(data, a, b); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + limit = limit - (1) >> 0; + /* } */ case 10: + _r = choosePivot(data, a, b); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + pivot = _tuple[0]; + hint = _tuple[1]; + /* */ if (hint === 2) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (hint === 2) { */ case 13: + $r = reverseRange(data, a, b); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pivot = ((b - 1 >> 0)) - ((pivot - a >> 0)) >> 0; + hint = 1; + /* } */ case 14: + /* */ if (wasBalanced && wasPartitioned && (hint === 1)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (wasBalanced && wasPartitioned && (hint === 1)) { */ case 16: + _r$1 = partialInsertionSort(data, a, b); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_r$1) { */ case 18: + $s = -1; return; + /* } */ case 19: + /* } */ case 17: + if (!(a > 0)) { _v = false; $s = 23; continue s; } + _r$2 = data.Less(a - 1 >> 0, pivot); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = !_r$2; case 23: + /* */ if (_v) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_v) { */ case 21: + _r$3 = partitionEqual(data, a, b, pivot); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + mid = _r$3; + a = mid; + /* continue; */ $s = 1; continue; + /* } */ case 22: + _r$4 = partition(data, a, b, pivot); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + mid$1 = _tuple$1[0]; + alreadyPartitioned = _tuple$1[1]; + wasPartitioned = alreadyPartitioned; + _tmp = mid$1 - a >> 0; + _tmp$1 = b - mid$1 >> 0; + leftLen = _tmp; + rightLen = _tmp$1; + balanceThreshold = (_q = length / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* */ if (leftLen < rightLen) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (leftLen < rightLen) { */ case 27: + wasBalanced = leftLen >= balanceThreshold; + $r = pdqsort(data, a, mid$1, limit); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = mid$1 + 1 >> 0; + $s = 29; continue; + /* } else { */ case 28: + wasBalanced = rightLen >= balanceThreshold; + $r = pdqsort(data, mid$1 + 1 >> 0, b, limit); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = mid$1; + /* } */ case 29: + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: pdqsort$1, $c: true, $r, _q, _r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tuple, _tuple$1, _v, a, alreadyPartitioned, b, balanceThreshold, data, hint, leftLen, length, limit, mid, mid$1, pivot, rightLen, wasBalanced, wasPartitioned, $s};return $f; + }; + partition = function partition$1(data, a, b, pivot) { + var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _v, _v$1, _v$2, _v$3, a, alreadyPartitioned, b, data, i, j, newpivot, pivot, $s, $r, $c} = $restore(this, {data, a, b, pivot}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + newpivot = 0; + alreadyPartitioned = false; + $r = data.Swap(a, pivot); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp = a + 1 >> 0; + _tmp$1 = b - 1 >> 0; + i = _tmp; + j = _tmp$1; + /* while (true) { */ case 2: + if (!(i <= j)) { _v = false; $s = 4; continue s; } + _r = data.Less(i, a); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 4: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 3; continue; } + i = i + (1) >> 0; + $s = 2; continue; + case 3: + /* while (true) { */ case 6: + if (!(i <= j)) { _v$1 = false; $s = 8; continue s; } + _r$1 = data.Less(j, a); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = !_r$1; case 8: + /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 7; continue; } + j = j - (1) >> 0; + $s = 6; continue; + case 7: + /* */ if (i > j) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (i > j) { */ case 10: + $r = data.Swap(j, a); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$2 = j; + _tmp$3 = true; + newpivot = _tmp$2; + alreadyPartitioned = _tmp$3; + $s = -1; return [newpivot, alreadyPartitioned]; + /* } */ case 11: + $r = data.Swap(i, j); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + j = j - (1) >> 0; + /* while (true) { */ case 14: + /* while (true) { */ case 16: + if (!(i <= j)) { _v$2 = false; $s = 18; continue s; } + _r$2 = data.Less(i, a); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$2 = _r$2; case 18: + /* if (!(_v$2)) { break; } */ if(!(_v$2)) { $s = 17; continue; } + i = i + (1) >> 0; + $s = 16; continue; + case 17: + /* while (true) { */ case 20: + if (!(i <= j)) { _v$3 = false; $s = 22; continue s; } + _r$3 = data.Less(j, a); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v$3 = !_r$3; case 22: + /* if (!(_v$3)) { break; } */ if(!(_v$3)) { $s = 21; continue; } + j = j - (1) >> 0; + $s = 20; continue; + case 21: + if (i > j) { + /* break; */ $s = 15; continue; + } + $r = data.Swap(i, j); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + j = j - (1) >> 0; + $s = 14; continue; + case 15: + $r = data.Swap(j, a); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$4 = j; + _tmp$5 = false; + newpivot = _tmp$4; + alreadyPartitioned = _tmp$5; + $s = -1; return [newpivot, alreadyPartitioned]; + /* */ } return; } var $f = {$blk: partition$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _v, _v$1, _v$2, _v$3, a, alreadyPartitioned, b, data, i, j, newpivot, pivot, $s};return $f; + }; + partitionEqual = function partitionEqual$1(data, a, b, pivot) { + var {_r, _r$1, _tmp, _tmp$1, _v, _v$1, a, b, data, i, j, newpivot, pivot, $s, $r, $c} = $restore(this, {data, a, b, pivot}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + newpivot = 0; + $r = data.Swap(a, pivot); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp = a + 1 >> 0; + _tmp$1 = b - 1 >> 0; + i = _tmp; + j = _tmp$1; + /* while (true) { */ case 2: + /* while (true) { */ case 4: + if (!(i <= j)) { _v = false; $s = 6; continue s; } + _r = data.Less(a, i); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = !_r; case 6: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 5; continue; } + i = i + (1) >> 0; + $s = 4; continue; + case 5: + /* while (true) { */ case 8: + if (!(i <= j)) { _v$1 = false; $s = 10; continue s; } + _r$1 = data.Less(a, j); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = _r$1; case 10: + /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 9; continue; } + j = j - (1) >> 0; + $s = 8; continue; + case 9: + if (i > j) { + /* break; */ $s = 3; continue; + } + $r = data.Swap(i, j); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + j = j - (1) >> 0; + $s = 2; continue; + case 3: + newpivot = i; + $s = -1; return newpivot; + /* */ } return; } var $f = {$blk: partitionEqual$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _v, _v$1, a, b, data, i, j, newpivot, pivot, $s};return $f; + }; + partialInsertionSort = function partialInsertionSort$1(data, a, b) { + var {_r, _r$1, _r$2, _v, a, b, data, i, j, j$1, j$2, $s, $r, $c} = $restore(this, {data, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = a + 1 >> 0; + j = 0; + /* while (true) { */ case 1: + /* if (!(j < 5)) { break; } */ if(!(j < 5)) { $s = 2; continue; } + /* while (true) { */ case 3: + if (!(i < b)) { _v = false; $s = 5; continue s; } + _r = data.Less(i, i - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = !_r; case 5: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 4; continue; } + i = i + (1) >> 0; + $s = 3; continue; + case 4: + if (i === b) { + $s = -1; return true; + } + if ((b - a >> 0) < 50) { + $s = -1; return false; + } + $r = data.Swap(i, i - 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((i - a >> 0) >= 2) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((i - a >> 0) >= 2) { */ case 8: + j$1 = i - 1 >> 0; + /* while (true) { */ case 10: + /* if (!(j$1 >= 1)) { break; } */ if(!(j$1 >= 1)) { $s = 11; continue; } + _r$1 = data.Less(j$1, j$1 - 1 >> 0); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!_r$1) { */ case 12: + /* break; */ $s = 11; continue; + /* } */ case 13: + $r = data.Swap(j$1, j$1 - 1 >> 0); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j$1 = j$1 - (1) >> 0; + $s = 10; continue; + case 11: + /* } */ case 9: + /* */ if ((b - i >> 0) >= 2) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if ((b - i >> 0) >= 2) { */ case 16: + j$2 = i + 1 >> 0; + /* while (true) { */ case 18: + /* if (!(j$2 < b)) { break; } */ if(!(j$2 < b)) { $s = 19; continue; } + _r$2 = data.Less(j$2, j$2 - 1 >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!_r$2) { */ case 20: + /* break; */ $s = 19; continue; + /* } */ case 21: + $r = data.Swap(j$2, j$2 - 1 >> 0); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j$2 = j$2 + (1) >> 0; + $s = 18; continue; + case 19: + /* } */ case 17: + j = j + (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: partialInsertionSort$1, $c: true, $r, _r, _r$1, _r$2, _v, a, b, data, i, j, j$1, j$2, $s};return $f; + }; + breakPatterns = function breakPatterns$1(data, a, b) { + var {_q, _q$1, a, b, data, idx, length, modulus, other, random, random$24ptr, $s, $r, $c} = $restore(this, {data, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + length = b - a >> 0; + /* */ if (length >= 8) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (length >= 8) { */ case 1: + random = (new xorshift(0, length)); + modulus = nextPowerOfTwo(length); + idx = (a + ($imul(((_q = length / 4, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), 2)) >> 0) - 1 >> 0; + /* while (true) { */ case 3: + /* if (!(idx <= ((a + ($imul(((_q$1 = length / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), 2)) >> 0) + 1 >> 0))) { break; } */ if(!(idx <= ((a + ($imul(((_q$1 = length / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), 2)) >> 0) + 1 >> 0))) { $s = 4; continue; } + other = (((((((random$24ptr || (random$24ptr = new ptrType(function() { return random; }, function($v) { random = $v; }))).Next().$low >>> 0)) & ((modulus - 1 >>> 0))) >>> 0) >> 0)); + if (other >= length) { + other = other - (length) >> 0; + } + $r = data.Swap(idx, a + other >> 0); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + idx = idx + (1) >> 0; + $s = 3; continue; + case 4: + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: breakPatterns$1, $c: true, $r, _q, _q$1, a, b, data, idx, length, modulus, other, random, random$24ptr, $s};return $f; + }; + choosePivot = function choosePivot$1(data, a, b) { + var {_1, _q, _q$1, _q$2, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a, b, data, hint, i, j, k, l, pivot, swaps, $s, $r, $c} = $restore(this, {data, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + swaps = [swaps]; + pivot = 0; + hint = 0; + l = b - a >> 0; + swaps[0] = 0; + i = a + ($imul((_q = l / 4, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 1)) >> 0; + j = a + ($imul((_q$1 = l / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 2)) >> 0; + k = a + ($imul((_q$2 = l / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")), 3)) >> 0; + /* */ if (l >= 8) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l >= 8) { */ case 1: + /* */ if (l >= 50) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (l >= 50) { */ case 3: + _r = medianAdjacent(data, i, (swaps.$ptr || (swaps.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, swaps)))); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + _r$1 = medianAdjacent(data, j, (swaps.$ptr || (swaps.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, swaps)))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + j = _r$1; + _r$2 = medianAdjacent(data, k, (swaps.$ptr || (swaps.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, swaps)))); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + k = _r$2; + /* } */ case 4: + _r$3 = median(data, i, j, k, (swaps.$ptr || (swaps.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, swaps)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + j = _r$3; + /* } */ case 2: + _1 = swaps[0]; + if (_1 === (0)) { + _tmp = j; + _tmp$1 = 1; + pivot = _tmp; + hint = _tmp$1; + $s = -1; return [pivot, hint]; + } else if (_1 === (12)) { + _tmp$2 = j; + _tmp$3 = 2; + pivot = _tmp$2; + hint = _tmp$3; + $s = -1; return [pivot, hint]; + } else { + _tmp$4 = j; + _tmp$5 = 0; + pivot = _tmp$4; + hint = _tmp$5; + $s = -1; return [pivot, hint]; + } + $s = -1; return [pivot, hint]; + /* */ } return; } var $f = {$blk: choosePivot$1, $c: true, $r, _1, _q, _q$1, _q$2, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a, b, data, hint, i, j, k, l, pivot, swaps, $s};return $f; + }; + order2 = function order2$1(data, a, b, swaps) { + var {_r, a, b, data, swaps, $s, $r, $c} = $restore(this, {data, a, b, swaps}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = data.Less(b, a); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + swaps.$set(swaps.$get() + (1) >> 0); + $s = -1; return [b, a]; + /* } */ case 2: + $s = -1; return [a, b]; + /* */ } return; } var $f = {$blk: order2$1, $c: true, $r, _r, a, b, data, swaps, $s};return $f; + }; + median = function median$1(data, a, b, c, swaps) { + var {_r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, a, b, c, data, swaps, $s, $r, $c} = $restore(this, {data, a, b, c, swaps}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = order2(data, a, b, swaps); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + a = _tuple[0]; + b = _tuple[1]; + _r$1 = order2(data, b, c, swaps); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + b = _tuple$1[0]; + c = _tuple$1[1]; + _r$2 = order2(data, a, b, swaps); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + a = _tuple$2[0]; + b = _tuple$2[1]; + $s = -1; return b; + /* */ } return; } var $f = {$blk: median$1, $c: true, $r, _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, a, b, c, data, swaps, $s};return $f; + }; + medianAdjacent = function medianAdjacent$1(data, a, swaps) { + var {$24r, _r, a, data, swaps, $s, $r, $c} = $restore(this, {data, a, swaps}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = median(data, a - 1 >> 0, a, a + 1 >> 0, swaps); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: medianAdjacent$1, $c: true, $r, $24r, _r, a, data, swaps, $s};return $f; + }; + reverseRange = function reverseRange$1(data, a, b) { + var {a, b, data, i, j, $s, $r, $c} = $restore(this, {data, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = a; + j = b - 1 >> 0; + /* while (true) { */ case 1: + /* if (!(i < j)) { break; } */ if(!(i < j)) { $s = 2; continue; } + $r = data.Swap(i, j); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + j = j - (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: reverseRange$1, $c: true, $r, a, b, data, i, j, $s};return $f; + }; + swapRange = function swapRange$1(data, a, b, n) { + var {a, b, data, i, n, $s, $r, $c} = $restore(this, {data, a, b, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = 0; + /* while (true) { */ case 1: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } + $r = data.Swap(a + i >> 0, b + i >> 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: swapRange$1, $c: true, $r, a, b, data, i, n, $s};return $f; + }; + stable = function stable$1(data, n) { + var {_tmp, _tmp$1, _tmp$2, _tmp$3, a, b, blockSize, data, m, n, $s, $r, $c} = $restore(this, {data, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + blockSize = 20; + _tmp = 0; + _tmp$1 = blockSize; + a = _tmp; + b = _tmp$1; + /* while (true) { */ case 1: + /* if (!(b <= n)) { break; } */ if(!(b <= n)) { $s = 2; continue; } + $r = insertionSort(data, a, b); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = b; + b = b + (blockSize) >> 0; + $s = 1; continue; + case 2: + $r = insertionSort(data, a, n); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 5: + /* if (!(blockSize < n)) { break; } */ if(!(blockSize < n)) { $s = 6; continue; } + _tmp$2 = 0; + _tmp$3 = $imul(2, blockSize); + a = _tmp$2; + b = _tmp$3; + /* while (true) { */ case 7: + /* if (!(b <= n)) { break; } */ if(!(b <= n)) { $s = 8; continue; } + $r = symMerge(data, a, a + blockSize >> 0, b); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = b; + b = b + (($imul(2, blockSize))) >> 0; + $s = 7; continue; + case 8: + m = a + blockSize >> 0; + /* */ if (m < n) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (m < n) { */ case 10: + $r = symMerge(data, a, m, n); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + blockSize = $imul(blockSize, (2)); + $s = 5; continue; + case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: stable$1, $c: true, $r, _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, blockSize, data, m, n, $s};return $f; + }; + symMerge = function symMerge$1(data, a, m, b) { + var {_r, _r$1, _r$2, _tmp, _tmp$1, a, b, c, data, end, h, h$1, i, i$1, j, j$1, k, k$1, m, mid, n, p, r, start, $s, $r, $c} = $restore(this, {data, a, m, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if ((m - a >> 0) === 1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((m - a >> 0) === 1) { */ case 1: + i = m; + j = b; + /* while (true) { */ case 3: + /* if (!(i < j)) { break; } */ if(!(i < j)) { $s = 4; continue; } + h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + _r = data.Less(h, a); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r) { */ case 5: + i = h + 1 >> 0; + $s = 7; continue; + /* } else { */ case 6: + j = h; + /* } */ case 7: + $s = 3; continue; + case 4: + k = a; + /* while (true) { */ case 9: + /* if (!(k < (i - 1 >> 0))) { break; } */ if(!(k < (i - 1 >> 0))) { $s = 10; continue; } + $r = data.Swap(k, k + 1 >> 0); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + k = k + (1) >> 0; + $s = 9; continue; + case 10: + $s = -1; return; + /* } */ case 2: + /* */ if ((b - m >> 0) === 1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((b - m >> 0) === 1) { */ case 12: + i$1 = a; + j$1 = m; + /* while (true) { */ case 14: + /* if (!(i$1 < j$1)) { break; } */ if(!(i$1 < j$1)) { $s = 15; continue; } + h$1 = ((((((i$1 + j$1 >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + _r$1 = data.Less(m, h$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!_r$1) { */ case 16: + i$1 = h$1 + 1 >> 0; + $s = 18; continue; + /* } else { */ case 17: + j$1 = h$1; + /* } */ case 18: + $s = 14; continue; + case 15: + k$1 = m; + /* while (true) { */ case 20: + /* if (!(k$1 > i$1)) { break; } */ if(!(k$1 > i$1)) { $s = 21; continue; } + $r = data.Swap(k$1, k$1 - 1 >> 0); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + k$1 = k$1 - (1) >> 0; + $s = 20; continue; + case 21: + $s = -1; return; + /* } */ case 13: + mid = ((((((a + b >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + n = mid + m >> 0; + _tmp = 0; + _tmp$1 = 0; + start = _tmp; + r = _tmp$1; + if (m > mid) { + start = n - b >> 0; + r = mid; + } else { + start = a; + r = m; + } + p = n - 1 >> 0; + /* while (true) { */ case 23: + /* if (!(start < r)) { break; } */ if(!(start < r)) { $s = 24; continue; } + c = ((((((start + r >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + _r$2 = data.Less(p - c >> 0, c); /* */ $s = 28; case 28: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!_r$2) { */ case 25: + start = c + 1 >> 0; + $s = 27; continue; + /* } else { */ case 26: + r = c; + /* } */ case 27: + $s = 23; continue; + case 24: + end = n - start >> 0; + /* */ if (start < m && m < end) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (start < m && m < end) { */ case 29: + $r = rotate(data, start, m, end); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 30: + /* */ if (a < start && start < mid) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (a < start && start < mid) { */ case 32: + $r = symMerge(data, a, start, mid); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 33: + /* */ if (mid < end && end < b) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (mid < end && end < b) { */ case 35: + $r = symMerge(data, mid, end, b); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 36: + $s = -1; return; + /* */ } return; } var $f = {$blk: symMerge$1, $c: true, $r, _r, _r$1, _r$2, _tmp, _tmp$1, a, b, c, data, end, h, h$1, i, i$1, j, j$1, k, k$1, m, mid, n, p, r, start, $s};return $f; + }; + rotate = function rotate$1(data, a, m, b) { + var {a, b, data, i, j, m, $s, $r, $c} = $restore(this, {data, a, m, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = m - a >> 0; + j = b - m >> 0; + /* while (true) { */ case 1: + /* if (!(!((i === j)))) { break; } */ if(!(!((i === j)))) { $s = 2; continue; } + /* */ if (i > j) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i > j) { */ case 3: + $r = swapRange(data, m - i >> 0, m, j); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i - (j) >> 0; + $s = 5; continue; + /* } else { */ case 4: + $r = swapRange(data, m - i >> 0, (m + j >> 0) - i >> 0, i); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j = j - (i) >> 0; + /* } */ case 5: + $s = 1; continue; + case 2: + $r = swapRange(data, m - i >> 0, m, i); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: rotate$1, $c: true, $r, a, b, data, i, j, m, $s};return $f; + }; + insertionSort_func = function insertionSort_func$1(data, a, b) { + var {_r, _v, a, b, data, i, j, $s, $r, $c} = $restore(this, {data, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = a + 1 >> 0; + /* while (true) { */ case 1: + /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 2; continue; } + j = i; + /* while (true) { */ case 3: + if (!(j > a)) { _v = false; $s = 5; continue s; } + _r = data.Less(j, j - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 4; continue; } + $r = data.Swap(j, j - 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j = j - (1) >> 0; + $s = 3; continue; + case 4: + i = i + (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: insertionSort_func$1, $c: true, $r, _r, _v, a, b, data, i, j, $s};return $f; + }; + siftDown_func = function siftDown_func$1(data, lo, hi, first) { + var {_r, _r$1, _v, child, data, first, hi, lo, root, $s, $r, $c} = $restore(this, {data, lo, hi, first}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + root = lo; + /* while (true) { */ case 1: + child = ($imul(2, root)) + 1 >> 0; + if (child >= hi) { + /* break; */ $s = 2; continue; + } + if (!((child + 1 >> 0) < hi)) { _v = false; $s = 5; continue s; } + _r = data.Less(first + child >> 0, (first + child >> 0) + 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + child = child + (1) >> 0; + /* } */ case 4: + _r$1 = data.Less(first + root >> 0, first + child >> 0); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$1) { */ case 7: + $s = -1; return; + /* } */ case 8: + $r = data.Swap(first + root >> 0, first + child >> 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + root = child; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: siftDown_func$1, $c: true, $r, _r, _r$1, _v, child, data, first, hi, lo, root, $s};return $f; + }; + heapSort_func = function heapSort_func$1(data, a, b) { + var {_q, a, b, data, first, hi, i, i$1, lo, $s, $r, $c} = $restore(this, {data, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + first = a; + lo = 0; + hi = b - a >> 0; + i = (_q = ((hi - 1 >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* while (true) { */ case 1: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 2; continue; } + $r = siftDown_func($clone(data, lessSwap), i, hi, first); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i - (1) >> 0; + $s = 1; continue; + case 2: + i$1 = hi - 1 >> 0; + /* while (true) { */ case 4: + /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 5; continue; } + $r = data.Swap(first, first + i$1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = siftDown_func($clone(data, lessSwap), lo, i$1, first); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 - (1) >> 0; + $s = 4; continue; + case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: heapSort_func$1, $c: true, $r, _q, a, b, data, first, hi, i, i$1, lo, $s};return $f; + }; + pdqsort_func = function pdqsort_func$1(data, a, b, limit) { + var {_q, _r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tuple, _tuple$1, _v, a, alreadyPartitioned, b, balanceThreshold, data, hint, leftLen, length, limit, mid, mid$1, pivot, rightLen, wasBalanced, wasPartitioned, $s, $r, $c} = $restore(this, {data, a, b, limit}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + wasBalanced = true; + wasPartitioned = true; + /* while (true) { */ case 1: + length = b - a >> 0; + /* */ if (length <= 12) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (length <= 12) { */ case 3: + $r = insertionSort_func($clone(data, lessSwap), a, b); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + /* */ if (limit === 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (limit === 0) { */ case 6: + $r = heapSort_func($clone(data, lessSwap), a, b); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 7: + /* */ if (!wasBalanced) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!wasBalanced) { */ case 9: + $r = breakPatterns_func($clone(data, lessSwap), a, b); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + limit = limit - (1) >> 0; + /* } */ case 10: + _r = choosePivot_func($clone(data, lessSwap), a, b); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + pivot = _tuple[0]; + hint = _tuple[1]; + /* */ if (hint === 2) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (hint === 2) { */ case 13: + $r = reverseRange_func($clone(data, lessSwap), a, b); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pivot = ((b - 1 >> 0)) - ((pivot - a >> 0)) >> 0; + hint = 1; + /* } */ case 14: + /* */ if (wasBalanced && wasPartitioned && (hint === 1)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (wasBalanced && wasPartitioned && (hint === 1)) { */ case 16: + _r$1 = partialInsertionSort_func($clone(data, lessSwap), a, b); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_r$1) { */ case 18: + $s = -1; return; + /* } */ case 19: + /* } */ case 17: + if (!(a > 0)) { _v = false; $s = 23; continue s; } + _r$2 = data.Less(a - 1 >> 0, pivot); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = !_r$2; case 23: + /* */ if (_v) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_v) { */ case 21: + _r$3 = partitionEqual_func($clone(data, lessSwap), a, b, pivot); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + mid = _r$3; + a = mid; + /* continue; */ $s = 1; continue; + /* } */ case 22: + _r$4 = partition_func($clone(data, lessSwap), a, b, pivot); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + mid$1 = _tuple$1[0]; + alreadyPartitioned = _tuple$1[1]; + wasPartitioned = alreadyPartitioned; + _tmp = mid$1 - a >> 0; + _tmp$1 = b - mid$1 >> 0; + leftLen = _tmp; + rightLen = _tmp$1; + balanceThreshold = (_q = length / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* */ if (leftLen < rightLen) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (leftLen < rightLen) { */ case 27: + wasBalanced = leftLen >= balanceThreshold; + $r = pdqsort_func($clone(data, lessSwap), a, mid$1, limit); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = mid$1 + 1 >> 0; + $s = 29; continue; + /* } else { */ case 28: + wasBalanced = rightLen >= balanceThreshold; + $r = pdqsort_func($clone(data, lessSwap), mid$1 + 1 >> 0, b, limit); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = mid$1; + /* } */ case 29: + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: pdqsort_func$1, $c: true, $r, _q, _r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tuple, _tuple$1, _v, a, alreadyPartitioned, b, balanceThreshold, data, hint, leftLen, length, limit, mid, mid$1, pivot, rightLen, wasBalanced, wasPartitioned, $s};return $f; + }; + partition_func = function partition_func$1(data, a, b, pivot) { + var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _v, _v$1, _v$2, _v$3, a, alreadyPartitioned, b, data, i, j, newpivot, pivot, $s, $r, $c} = $restore(this, {data, a, b, pivot}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + newpivot = 0; + alreadyPartitioned = false; + $r = data.Swap(a, pivot); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp = a + 1 >> 0; + _tmp$1 = b - 1 >> 0; + i = _tmp; + j = _tmp$1; + /* while (true) { */ case 2: + if (!(i <= j)) { _v = false; $s = 4; continue s; } + _r = data.Less(i, a); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 4: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 3; continue; } + i = i + (1) >> 0; + $s = 2; continue; + case 3: + /* while (true) { */ case 6: + if (!(i <= j)) { _v$1 = false; $s = 8; continue s; } + _r$1 = data.Less(j, a); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = !_r$1; case 8: + /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 7; continue; } + j = j - (1) >> 0; + $s = 6; continue; + case 7: + /* */ if (i > j) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (i > j) { */ case 10: + $r = data.Swap(j, a); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$2 = j; + _tmp$3 = true; + newpivot = _tmp$2; + alreadyPartitioned = _tmp$3; + $s = -1; return [newpivot, alreadyPartitioned]; + /* } */ case 11: + $r = data.Swap(i, j); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + j = j - (1) >> 0; + /* while (true) { */ case 14: + /* while (true) { */ case 16: + if (!(i <= j)) { _v$2 = false; $s = 18; continue s; } + _r$2 = data.Less(i, a); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$2 = _r$2; case 18: + /* if (!(_v$2)) { break; } */ if(!(_v$2)) { $s = 17; continue; } + i = i + (1) >> 0; + $s = 16; continue; + case 17: + /* while (true) { */ case 20: + if (!(i <= j)) { _v$3 = false; $s = 22; continue s; } + _r$3 = data.Less(j, a); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v$3 = !_r$3; case 22: + /* if (!(_v$3)) { break; } */ if(!(_v$3)) { $s = 21; continue; } + j = j - (1) >> 0; + $s = 20; continue; + case 21: + if (i > j) { + /* break; */ $s = 15; continue; + } + $r = data.Swap(i, j); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + j = j - (1) >> 0; + $s = 14; continue; + case 15: + $r = data.Swap(j, a); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$4 = j; + _tmp$5 = false; + newpivot = _tmp$4; + alreadyPartitioned = _tmp$5; + $s = -1; return [newpivot, alreadyPartitioned]; + /* */ } return; } var $f = {$blk: partition_func$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _v, _v$1, _v$2, _v$3, a, alreadyPartitioned, b, data, i, j, newpivot, pivot, $s};return $f; + }; + partitionEqual_func = function partitionEqual_func$1(data, a, b, pivot) { + var {_r, _r$1, _tmp, _tmp$1, _v, _v$1, a, b, data, i, j, newpivot, pivot, $s, $r, $c} = $restore(this, {data, a, b, pivot}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + newpivot = 0; + $r = data.Swap(a, pivot); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp = a + 1 >> 0; + _tmp$1 = b - 1 >> 0; + i = _tmp; + j = _tmp$1; + /* while (true) { */ case 2: + /* while (true) { */ case 4: + if (!(i <= j)) { _v = false; $s = 6; continue s; } + _r = data.Less(a, i); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = !_r; case 6: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 5; continue; } + i = i + (1) >> 0; + $s = 4; continue; + case 5: + /* while (true) { */ case 8: + if (!(i <= j)) { _v$1 = false; $s = 10; continue s; } + _r$1 = data.Less(a, j); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = _r$1; case 10: + /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 9; continue; } + j = j - (1) >> 0; + $s = 8; continue; + case 9: + if (i > j) { + /* break; */ $s = 3; continue; + } + $r = data.Swap(i, j); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + j = j - (1) >> 0; + $s = 2; continue; + case 3: + newpivot = i; + $s = -1; return newpivot; + /* */ } return; } var $f = {$blk: partitionEqual_func$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _v, _v$1, a, b, data, i, j, newpivot, pivot, $s};return $f; + }; + partialInsertionSort_func = function partialInsertionSort_func$1(data, a, b) { + var {_r, _r$1, _r$2, _v, a, b, data, i, j, j$1, j$2, $s, $r, $c} = $restore(this, {data, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = a + 1 >> 0; + j = 0; + /* while (true) { */ case 1: + /* if (!(j < 5)) { break; } */ if(!(j < 5)) { $s = 2; continue; } + /* while (true) { */ case 3: + if (!(i < b)) { _v = false; $s = 5; continue s; } + _r = data.Less(i, i - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = !_r; case 5: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 4; continue; } + i = i + (1) >> 0; + $s = 3; continue; + case 4: + if (i === b) { + $s = -1; return true; + } + if ((b - a >> 0) < 50) { + $s = -1; return false; + } + $r = data.Swap(i, i - 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((i - a >> 0) >= 2) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((i - a >> 0) >= 2) { */ case 8: + j$1 = i - 1 >> 0; + /* while (true) { */ case 10: + /* if (!(j$1 >= 1)) { break; } */ if(!(j$1 >= 1)) { $s = 11; continue; } + _r$1 = data.Less(j$1, j$1 - 1 >> 0); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!_r$1) { */ case 12: + /* break; */ $s = 11; continue; + /* } */ case 13: + $r = data.Swap(j$1, j$1 - 1 >> 0); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j$1 = j$1 - (1) >> 0; + $s = 10; continue; + case 11: + /* } */ case 9: + /* */ if ((b - i >> 0) >= 2) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if ((b - i >> 0) >= 2) { */ case 16: + j$2 = i + 1 >> 0; + /* while (true) { */ case 18: + /* if (!(j$2 < b)) { break; } */ if(!(j$2 < b)) { $s = 19; continue; } + _r$2 = data.Less(j$2, j$2 - 1 >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!_r$2) { */ case 20: + /* break; */ $s = 19; continue; + /* } */ case 21: + $r = data.Swap(j$2, j$2 - 1 >> 0); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j$2 = j$2 + (1) >> 0; + $s = 18; continue; + case 19: + /* } */ case 17: + j = j + (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: partialInsertionSort_func$1, $c: true, $r, _r, _r$1, _r$2, _v, a, b, data, i, j, j$1, j$2, $s};return $f; + }; + breakPatterns_func = function breakPatterns_func$1(data, a, b) { + var {_q, _q$1, a, b, data, idx, length, modulus, other, random, random$24ptr, $s, $r, $c} = $restore(this, {data, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + length = b - a >> 0; + /* */ if (length >= 8) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (length >= 8) { */ case 1: + random = (new xorshift(0, length)); + modulus = nextPowerOfTwo(length); + idx = (a + ($imul(((_q = length / 4, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), 2)) >> 0) - 1 >> 0; + /* while (true) { */ case 3: + /* if (!(idx <= ((a + ($imul(((_q$1 = length / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), 2)) >> 0) + 1 >> 0))) { break; } */ if(!(idx <= ((a + ($imul(((_q$1 = length / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), 2)) >> 0) + 1 >> 0))) { $s = 4; continue; } + other = (((((((random$24ptr || (random$24ptr = new ptrType(function() { return random; }, function($v) { random = $v; }))).Next().$low >>> 0)) & ((modulus - 1 >>> 0))) >>> 0) >> 0)); + if (other >= length) { + other = other - (length) >> 0; + } + $r = data.Swap(idx, a + other >> 0); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + idx = idx + (1) >> 0; + $s = 3; continue; + case 4: + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: breakPatterns_func$1, $c: true, $r, _q, _q$1, a, b, data, idx, length, modulus, other, random, random$24ptr, $s};return $f; + }; + choosePivot_func = function choosePivot_func$1(data, a, b) { + var {_1, _q, _q$1, _q$2, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a, b, data, hint, i, j, k, l, pivot, swaps, $s, $r, $c} = $restore(this, {data, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + swaps = [swaps]; + pivot = 0; + hint = 0; + l = b - a >> 0; + swaps[0] = 0; + i = a + ($imul((_q = l / 4, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 1)) >> 0; + j = a + ($imul((_q$1 = l / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 2)) >> 0; + k = a + ($imul((_q$2 = l / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")), 3)) >> 0; + /* */ if (l >= 8) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l >= 8) { */ case 1: + /* */ if (l >= 50) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (l >= 50) { */ case 3: + _r = medianAdjacent_func($clone(data, lessSwap), i, (swaps.$ptr || (swaps.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, swaps)))); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + _r$1 = medianAdjacent_func($clone(data, lessSwap), j, (swaps.$ptr || (swaps.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, swaps)))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + j = _r$1; + _r$2 = medianAdjacent_func($clone(data, lessSwap), k, (swaps.$ptr || (swaps.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, swaps)))); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + k = _r$2; + /* } */ case 4: + _r$3 = median_func($clone(data, lessSwap), i, j, k, (swaps.$ptr || (swaps.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, swaps)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + j = _r$3; + /* } */ case 2: + _1 = swaps[0]; + if (_1 === (0)) { + _tmp = j; + _tmp$1 = 1; + pivot = _tmp; + hint = _tmp$1; + $s = -1; return [pivot, hint]; + } else if (_1 === (12)) { + _tmp$2 = j; + _tmp$3 = 2; + pivot = _tmp$2; + hint = _tmp$3; + $s = -1; return [pivot, hint]; + } else { + _tmp$4 = j; + _tmp$5 = 0; + pivot = _tmp$4; + hint = _tmp$5; + $s = -1; return [pivot, hint]; + } + $s = -1; return [pivot, hint]; + /* */ } return; } var $f = {$blk: choosePivot_func$1, $c: true, $r, _1, _q, _q$1, _q$2, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a, b, data, hint, i, j, k, l, pivot, swaps, $s};return $f; + }; + order2_func = function order2_func$1(data, a, b, swaps) { + var {_r, a, b, data, swaps, $s, $r, $c} = $restore(this, {data, a, b, swaps}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = data.Less(b, a); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + swaps.$set(swaps.$get() + (1) >> 0); + $s = -1; return [b, a]; + /* } */ case 2: + $s = -1; return [a, b]; + /* */ } return; } var $f = {$blk: order2_func$1, $c: true, $r, _r, a, b, data, swaps, $s};return $f; + }; + median_func = function median_func$1(data, a, b, c, swaps) { + var {_r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, a, b, c, data, swaps, $s, $r, $c} = $restore(this, {data, a, b, c, swaps}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = order2_func($clone(data, lessSwap), a, b, swaps); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + a = _tuple[0]; + b = _tuple[1]; + _r$1 = order2_func($clone(data, lessSwap), b, c, swaps); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + b = _tuple$1[0]; + c = _tuple$1[1]; + _r$2 = order2_func($clone(data, lessSwap), a, b, swaps); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + a = _tuple$2[0]; + b = _tuple$2[1]; + $s = -1; return b; + /* */ } return; } var $f = {$blk: median_func$1, $c: true, $r, _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, a, b, c, data, swaps, $s};return $f; + }; + medianAdjacent_func = function medianAdjacent_func$1(data, a, swaps) { + var {$24r, _r, a, data, swaps, $s, $r, $c} = $restore(this, {data, a, swaps}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = median_func($clone(data, lessSwap), a - 1 >> 0, a, a + 1 >> 0, swaps); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: medianAdjacent_func$1, $c: true, $r, $24r, _r, a, data, swaps, $s};return $f; + }; + reverseRange_func = function reverseRange_func$1(data, a, b) { + var {a, b, data, i, j, $s, $r, $c} = $restore(this, {data, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = a; + j = b - 1 >> 0; + /* while (true) { */ case 1: + /* if (!(i < j)) { break; } */ if(!(i < j)) { $s = 2; continue; } + $r = data.Swap(i, j); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + j = j - (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: reverseRange_func$1, $c: true, $r, a, b, data, i, j, $s};return $f; + }; + Sort = function Sort$1(data) { + var {_r, data, limit, n, $s, $r, $c} = $restore(this, {data}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = data.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + n = _r; + if (n <= 1) { + $s = -1; return; + } + limit = bits.Len(((n >>> 0))); + $r = pdqsort(data, 0, n, limit); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Sort$1, $c: true, $r, _r, data, limit, n, $s};return $f; + }; + $pkg.Sort = Sort; + $ptrType(xorshift).prototype.Next = function Next() { + var r, x, x$1, x$2, x$3, x$4, x$5, x$6; + r = this; + r.$set((x = r.$get(), x$1 = $shiftLeft64(r.$get(), 13), new xorshift(x.$high ^ x$1.$high, (x.$low ^ x$1.$low) >>> 0))); + r.$set((x$2 = r.$get(), x$3 = $shiftRightUint64(r.$get(), 17), new xorshift(x$2.$high ^ x$3.$high, (x$2.$low ^ x$3.$low) >>> 0))); + r.$set((x$4 = r.$get(), x$5 = $shiftLeft64(r.$get(), 5), new xorshift(x$4.$high ^ x$5.$high, (x$4.$low ^ x$5.$low) >>> 0))); + return ((x$6 = r.$get(), new $Uint64(x$6.$high, x$6.$low))); + }; + nextPowerOfTwo = function nextPowerOfTwo$1(length) { + var length, shift, y; + shift = ((bits.Len(((length >>> 0))) >>> 0)); + return (((y = shift, y < 32 ? (1 << y) : 0) >>> 0)); + }; + IsSorted = function IsSorted$1(data) { + var {_r, _r$1, data, i, n, $s, $r, $c} = $restore(this, {data}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = data.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + n = _r; + i = n - 1 >> 0; + /* while (true) { */ case 2: + /* if (!(i > 0)) { break; } */ if(!(i > 0)) { $s = 3; continue; } + _r$1 = data.Less(i, i - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + $s = -1; return false; + /* } */ case 5: + i = i - (1) >> 0; + $s = 2; continue; + case 3: + $s = -1; return true; + /* */ } return; } var $f = {$blk: IsSorted$1, $c: true, $r, _r, _r$1, data, i, n, $s};return $f; + }; + $pkg.IsSorted = IsSorted; + StringSlice.prototype.Len = function Len$2() { + var x; + x = this; + return x.$length; + }; + $ptrType(StringSlice).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + StringSlice.prototype.Less = function Less$3(i, j) { + var i, j, x; + x = this; + return ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) < ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]); + }; + $ptrType(StringSlice).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + StringSlice.prototype.Swap = function Swap$2(i, j) { + var _tmp, _tmp$1, i, j, x; + x = this; + _tmp = ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]); + _tmp$1 = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]); + ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = _tmp); + ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j] = _tmp$1); + }; + $ptrType(StringSlice).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + StringSlice.prototype.Sort = function Sort$4() { + var {x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + $r = Sort(x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Sort$4, $c: true, $r, x, $s};return $f; + }; + $ptrType(StringSlice).prototype.Sort = function(...$args) { return this.$get().Sort(...$args); }; + Strings = function Strings$1(x) { + var {x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = Sort(($convertSliceType(x, StringSlice))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Strings$1, $c: true, $r, x, $s};return $f; + }; + $pkg.Strings = Strings; + Stable = function Stable$1(data) { + var {_arg, _arg$1, _r, data, $s, $r, $c} = $restore(this, {data}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = data; + _r = data.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $r = stable(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Stable$1, $c: true, $r, _arg, _arg$1, _r, data, $s};return $f; + }; + $pkg.Stable = Stable; + Slice = function Slice$1(x, less) { + var {_r, _r$1, length, less, limit, rv, swap, x, $s, $r, $c} = $restore(this, {x, less}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = reflectValueOf(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + rv = $clone(_r, reflectlite.Value); + _r$1 = reflectSwapper(x); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + swap = _r$1; + length = $clone(rv, reflectlite.Value).Len(); + limit = bits.Len(((length >>> 0))); + $r = pdqsort_func($clone(new lessSwap.ptr(less, swap), lessSwap), 0, length, limit); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Slice$1, $c: true, $r, _r, _r$1, length, less, limit, rv, swap, x, $s};return $f; + }; + $pkg.Slice = Slice; + Search = function Search$1(n, f) { + var {_r, _tmp, _tmp$1, f, h, i, j, n, $s, $r, $c} = $restore(this, {n, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tmp = 0; + _tmp$1 = n; + i = _tmp; + j = _tmp$1; + /* while (true) { */ case 1: + /* if (!(i < j)) { break; } */ if(!(i < j)) { $s = 2; continue; } + h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + _r = f(h); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + i = h + 1 >> 0; + $s = 5; continue; + /* } else { */ case 4: + j = h; + /* } */ case 5: + $s = 1; continue; + case 2: + $s = -1; return i; + /* */ } return; } var $f = {$blk: Search$1, $c: true, $r, _r, _tmp, _tmp$1, f, h, i, j, n, $s};return $f; + }; + $pkg.Search = Search; + SearchStrings = function SearchStrings$1(a, x) { + var {$24r, _r, a, x, $s, $r, $c} = $restore(this, {a, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = [a]; + x = [x]; + _r = Search(a[0].$length, (function(a, x) { return function SearchStrings·func1(i) { + var i; + return ((i < 0 || i >= a[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : a[0].$array[a[0].$offset + i]) >= x[0]; + }; })(a, x)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: SearchStrings$1, $c: true, $r, $24r, _r, a, x, $s};return $f; + }; + $pkg.SearchStrings = SearchStrings; + StringSlice.prototype.Search = function Search$4(x) { + var {$24r, _r, p, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = SearchStrings($convertSliceType(p, sliceType$2), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Search$4, $c: true, $r, $24r, _r, p, x, $s};return $f; + }; + $ptrType(StringSlice).prototype.Search = function(...$args) { return this.$get().Search(...$args); }; + ptrType.methods = [{prop: "Next", name: "Next", pkg: "", typ: $funcType([], [$Uint64], false)}]; + StringSlice.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Sort", name: "Sort", pkg: "", typ: $funcType([], [], false)}, {prop: "Search", name: "Search", pkg: "", typ: $funcType([$String], [$Int], false)}]; + lessSwap.init("", [{prop: "Less", name: "Less", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "Swap", name: "Swap", embedded: false, exported: true, typ: funcType$1, tag: ""}]); + StringSlice.init($String); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = reflectlite.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + reflectValueOf = reflectlite.ValueOf; + reflectSwapper = reflectlite.Swapper; + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/fmtsort"] = (function() { + var $pkg = {}, $init, reflect, sort, SortedMap, Sort, compare, nilCompare, floatCompare, isNaN; + reflect = $packages["reflect"]; + sort = $packages["sort"]; + SortedMap = $newType(0, $kindStruct, "fmtsort.SortedMap", true, "internal/fmtsort", true, function(Key_, Value_) { + this.$val = this; + if (arguments.length === 0) { + this.Key = sliceType.nil; + this.Value = sliceType.nil; + return; + } + this.Key = Key_; + this.Value = Value_; + }); + $pkg.SortedMap = SortedMap; + $pkg.$finishSetup = function() { + $ptrType(SortedMap).prototype.Len = function Len() { + var o; + o = this; + return o.Key.$length; + }; + $ptrType(SortedMap).prototype.Less = function Less(i, j) { + var {$24r, _r, i, j, o, x, x$1, $s, $r, $c} = $restore(this, {i, j}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + o = this; + _r = compare($clone((x = o.Key, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), reflect.Value), $clone((x$1 = o.Key, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r < 0; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Less, $c: true, $r, $24r, _r, i, j, o, x, x$1, $s};return $f; + }; + $ptrType(SortedMap).prototype.Swap = function Swap(i, j) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, i, j, o, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + o = this; + _tmp = (x = o.Key, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); + _tmp$1 = (x$1 = o.Key, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + (x$2 = o.Key, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i] = _tmp)); + (x$3 = o.Key, ((j < 0 || j >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + j] = _tmp$1)); + _tmp$2 = (x$4 = o.Value, ((j < 0 || j >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + j])); + _tmp$3 = (x$5 = o.Value, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i])); + (x$6 = o.Value, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = _tmp$2)); + (x$7 = o.Value, ((j < 0 || j >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + j] = _tmp$3)); + }; + Sort = function Sort$1(mapValue) { + var {_r, _r$1, _r$2, _r$3, _r$4, iter, key, mapValue, n, sorted, value, $s, $r, $c} = $restore(this, {mapValue}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = $clone(mapValue, reflect.Value).Type().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 21))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 21))) { */ case 1: + $s = -1; return ptrType.nil; + /* } */ case 2: + _r$1 = $clone(mapValue, reflect.Value).Len(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + n = _r$1; + key = $makeSlice(sliceType, 0, n); + value = $makeSlice(sliceType, 0, n); + iter = $clone(mapValue, reflect.Value).MapRange(); + /* while (true) { */ case 5: + _r$2 = iter.Next(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* if (!(_r$2)) { break; } */ if(!(_r$2)) { $s = 6; continue; } + _r$3 = iter.Key(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + key = $append(key, _r$3); + _r$4 = iter.Value(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + value = $append(value, _r$4); + $s = 5; continue; + case 6: + sorted = new SortedMap.ptr(key, value); + $r = sort.Stable(sorted); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return sorted; + /* */ } return; } var $f = {$blk: Sort$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, iter, key, mapValue, n, sorted, value, $s};return $f; + }; + $pkg.Sort = Sort; + compare = function compare$1(aVal, bVal) { + var {$24r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s, $r, $c} = $restore(this, {aVal, bVal}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tmp = $clone(aVal, reflect.Value).Type(); + _tmp$1 = $clone(bVal, reflect.Value).Type(); + aType = _tmp; + bType = _tmp$1; + if (!($interfaceIsEqual(aType, bType))) { + $s = -1; return -1; + } + _1 = $clone(aVal, reflect.Value).Kind(); + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 2; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 3; continue; } + /* */ if (_1 === (24)) { $s = 4; continue; } + /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 5; continue; } + /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 6; continue; } + /* */ if (_1 === (1)) { $s = 7; continue; } + /* */ if ((_1 === (22)) || (_1 === (26))) { $s = 8; continue; } + /* */ if (_1 === (18)) { $s = 9; continue; } + /* */ if (_1 === (25)) { $s = 10; continue; } + /* */ if (_1 === (17)) { $s = 11; continue; } + /* */ if (_1 === (20)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2: + _tmp$2 = $clone(aVal, reflect.Value).Int(); + _tmp$3 = $clone(bVal, reflect.Value).Int(); + a = _tmp$2; + b = _tmp$3; + if ((a.$high < b.$high || (a.$high === b.$high && a.$low < b.$low))) { + $s = -1; return -1; + } else if ((a.$high > b.$high || (a.$high === b.$high && a.$low > b.$low))) { + $s = -1; return 1; + } else { + $s = -1; return 0; + } + $s = 14; continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3: + _tmp$4 = $clone(aVal, reflect.Value).Uint(); + _tmp$5 = $clone(bVal, reflect.Value).Uint(); + a$1 = _tmp$4; + b$1 = _tmp$5; + if ((a$1.$high < b$1.$high || (a$1.$high === b$1.$high && a$1.$low < b$1.$low))) { + $s = -1; return -1; + } else if ((a$1.$high > b$1.$high || (a$1.$high === b$1.$high && a$1.$low > b$1.$low))) { + $s = -1; return 1; + } else { + $s = -1; return 0; + } + $s = 14; continue; + /* } else if (_1 === (24)) { */ case 4: + _r = $clone(aVal, reflect.Value).String(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$6 = _r; + _r$1 = $clone(bVal, reflect.Value).String(); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tmp$7 = _r$1; + a$2 = _tmp$6; + b$2 = _tmp$7; + if (a$2 < b$2) { + $s = -1; return -1; + } else if (a$2 > b$2) { + $s = -1; return 1; + } else { + $s = -1; return 0; + } + $s = 14; continue; + /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 5: + $s = -1; return floatCompare($clone(aVal, reflect.Value).Float(), $clone(bVal, reflect.Value).Float()); + /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 6: + _tmp$8 = $clone(aVal, reflect.Value).Complex(); + _tmp$9 = $clone(bVal, reflect.Value).Complex(); + a$3 = _tmp$8; + b$3 = _tmp$9; + c = floatCompare(a$3.$real, b$3.$real); + if (!((c === 0))) { + $s = -1; return c; + } + $s = -1; return floatCompare(a$3.$imag, b$3.$imag); + /* } else if (_1 === (1)) { */ case 7: + _tmp$10 = $clone(aVal, reflect.Value).Bool(); + _tmp$11 = $clone(bVal, reflect.Value).Bool(); + a$4 = _tmp$10; + b$4 = _tmp$11; + if (a$4 === b$4) { + $s = -1; return 0; + } else if (a$4) { + $s = -1; return 1; + } else { + $s = -1; return -1; + } + $s = 14; continue; + /* } else if ((_1 === (22)) || (_1 === (26))) { */ case 8: + _tmp$12 = $clone(aVal, reflect.Value).Pointer(); + _tmp$13 = $clone(bVal, reflect.Value).Pointer(); + a$5 = _tmp$12; + b$5 = _tmp$13; + if (a$5 < b$5) { + $s = -1; return -1; + } else if (a$5 > b$5) { + $s = -1; return 1; + } else { + $s = -1; return 0; + } + $s = 14; continue; + /* } else if (_1 === (18)) { */ case 9: + _tuple = nilCompare($clone(aVal, reflect.Value), $clone(bVal, reflect.Value)); + c$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return c$1; + } + _tmp$14 = $clone(aVal, reflect.Value).Pointer(); + _tmp$15 = $clone(bVal, reflect.Value).Pointer(); + ap = _tmp$14; + bp = _tmp$15; + if (ap < bp) { + $s = -1; return -1; + } else if (ap > bp) { + $s = -1; return 1; + } else { + $s = -1; return 0; + } + $s = 14; continue; + /* } else if (_1 === (25)) { */ case 10: + i = 0; + /* while (true) { */ case 17: + /* if (!(i < $clone(aVal, reflect.Value).NumField())) { break; } */ if(!(i < $clone(aVal, reflect.Value).NumField())) { $s = 18; continue; } + _r$2 = $clone(aVal, reflect.Value).Field(i); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = $clone(_r$2, reflect.Value); + _r$3 = $clone(bVal, reflect.Value).Field(i); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$3, reflect.Value); + _r$4 = compare(_arg, _arg$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + c$2 = _r$4; + if (!((c$2 === 0))) { + $s = -1; return c$2; + } + i = i + (1) >> 0; + $s = 17; continue; + case 18: + $s = -1; return 0; + /* } else if (_1 === (17)) { */ case 11: + i$1 = 0; + /* while (true) { */ case 22: + _r$5 = $clone(aVal, reflect.Value).Len(); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* if (!(i$1 < _r$5)) { break; } */ if(!(i$1 < _r$5)) { $s = 23; continue; } + _r$6 = $clone(aVal, reflect.Value).Index(i$1); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$2 = $clone(_r$6, reflect.Value); + _r$7 = $clone(bVal, reflect.Value).Index(i$1); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$3 = $clone(_r$7, reflect.Value); + _r$8 = compare(_arg$2, _arg$3); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + c$3 = _r$8; + if (!((c$3 === 0))) { + $s = -1; return c$3; + } + i$1 = i$1 + (1) >> 0; + $s = 22; continue; + case 23: + $s = -1; return 0; + /* } else if (_1 === (20)) { */ case 12: + _tuple$1 = nilCompare($clone(aVal, reflect.Value), $clone(bVal, reflect.Value)); + c$4 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (ok$1) { + $s = -1; return c$4; + } + _r$9 = $clone(aVal, reflect.Value).Elem(); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = $clone(_r$9, reflect.Value).Type(); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = reflect.ValueOf(_r$10); /* */ $s = 30; case 30: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _arg$4 = $clone(_r$11, reflect.Value); + _r$12 = $clone(bVal, reflect.Value).Elem(); /* */ $s = 31; case 31: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$13 = $clone(_r$12, reflect.Value).Type(); /* */ $s = 32; case 32: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = reflect.ValueOf(_r$13); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _arg$5 = $clone(_r$14, reflect.Value); + _r$15 = compare(_arg$4, _arg$5); /* */ $s = 34; case 34: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + c$5 = _r$15; + if (!((c$5 === 0))) { + $s = -1; return c$5; + } + _r$16 = $clone(aVal, reflect.Value).Elem(); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _arg$6 = $clone(_r$16, reflect.Value); + _r$17 = $clone(bVal, reflect.Value).Elem(); /* */ $s = 36; case 36: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _arg$7 = $clone(_r$17, reflect.Value); + _r$18 = compare(_arg$6, _arg$7); /* */ $s = 37; case 37: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + $24r = _r$18; + $s = 38; case 38: return $24r; + /* } else { */ case 13: + _r$19 = aType.String(); /* */ $s = 39; case 39: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + $panic(new $String("bad type in compare: " + _r$19)); + /* } */ case 14: + case 1: + $s = -1; return 0; + /* */ } return; } var $f = {$blk: compare$1, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s};return $f; + }; + nilCompare = function nilCompare$1(aVal, bVal) { + var aVal, bVal; + if ($clone(aVal, reflect.Value).IsNil()) { + if ($clone(bVal, reflect.Value).IsNil()) { + return [0, true]; + } + return [-1, true]; + } + if ($clone(bVal, reflect.Value).IsNil()) { + return [1, true]; + } + return [0, false]; + }; + floatCompare = function floatCompare$1(a, b) { + var a, b; + if (isNaN(a)) { + return -1; + } else if (isNaN(b)) { + return 1; + } else if (a < b) { + return -1; + } else if (a > b) { + return 1; + } + return 0; + }; + isNaN = function isNaN$1(a) { + var a; + return !((a === a)); + }; + ptrType.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + SortedMap.init("", [{prop: "Key", name: "Key", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: sliceType, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = reflect.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["io"] = (function() { + var $pkg = {}, $init, errors, sync, onceError, pipe, PipeReader, PipeWriter, Reader, Writer, Closer, ReadCloser, WriteCloser, ReaderFrom, WriterTo, ByteScanner, RuneReader, RuneScanner, StringWriter, LimitedReader, discard, errInvalidWrite, errWhence, errOffset, x, blackHolePool, Pipe, WriteString, Copy, copyBuffer, ReadAll; + errors = $packages["errors"]; + sync = $packages["sync"]; + onceError = $newType(0, $kindStruct, "io.onceError", true, "io", false, function(Mutex_, err_) { + this.$val = this; + if (arguments.length === 0) { + this.Mutex = new sync.Mutex.ptr(0, 0); + this.err = $ifaceNil; + return; + } + this.Mutex = Mutex_; + this.err = err_; + }); + pipe = $newType(0, $kindStruct, "io.pipe", true, "io", false, function(wrMu_, wrCh_, rdCh_, once_, done_, rerr_, werr_) { + this.$val = this; + if (arguments.length === 0) { + this.wrMu = new sync.Mutex.ptr(0, 0); + this.wrCh = $chanNil; + this.rdCh = $chanNil; + this.once = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); + this.done = $chanNil; + this.rerr = new onceError.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil); + this.werr = new onceError.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil); + return; + } + this.wrMu = wrMu_; + this.wrCh = wrCh_; + this.rdCh = rdCh_; + this.once = once_; + this.done = done_; + this.rerr = rerr_; + this.werr = werr_; + }); + PipeReader = $newType(0, $kindStruct, "io.PipeReader", true, "io", true, function(p_) { + this.$val = this; + if (arguments.length === 0) { + this.p = ptrType$5.nil; + return; + } + this.p = p_; + }); + PipeWriter = $newType(0, $kindStruct, "io.PipeWriter", true, "io", true, function(p_) { + this.$val = this; + if (arguments.length === 0) { + this.p = ptrType$5.nil; + return; + } + this.p = p_; + }); + Reader = $newType(8, $kindInterface, "io.Reader", true, "io", true, null); + Writer = $newType(8, $kindInterface, "io.Writer", true, "io", true, null); + Closer = $newType(8, $kindInterface, "io.Closer", true, "io", true, null); + ReadCloser = $newType(8, $kindInterface, "io.ReadCloser", true, "io", true, null); + WriteCloser = $newType(8, $kindInterface, "io.WriteCloser", true, "io", true, null); + ReaderFrom = $newType(8, $kindInterface, "io.ReaderFrom", true, "io", true, null); + WriterTo = $newType(8, $kindInterface, "io.WriterTo", true, "io", true, null); + ByteScanner = $newType(8, $kindInterface, "io.ByteScanner", true, "io", true, null); + RuneReader = $newType(8, $kindInterface, "io.RuneReader", true, "io", true, null); + RuneScanner = $newType(8, $kindInterface, "io.RuneScanner", true, "io", true, null); + StringWriter = $newType(8, $kindInterface, "io.StringWriter", true, "io", true, null); + LimitedReader = $newType(0, $kindStruct, "io.LimitedReader", true, "io", true, function(R_, N_) { + this.$val = this; + if (arguments.length === 0) { + this.R = $ifaceNil; + this.N = new $Int64(0, 0); + return; + } + this.R = R_; + this.N = N_; + }); + discard = $newType(0, $kindStruct, "io.discard", true, "io", false, function() { this.$val = this; }); + $pkg.onceError = onceError; + $pkg.pipe = pipe; + $pkg.PipeReader = PipeReader; + $pkg.PipeWriter = PipeWriter; + $pkg.Reader = Reader; + $pkg.Writer = Writer; + $pkg.Closer = Closer; + $pkg.ReadCloser = ReadCloser; + $pkg.WriteCloser = WriteCloser; + $pkg.ReaderFrom = ReaderFrom; + $pkg.WriterTo = WriterTo; + $pkg.ByteScanner = ByteScanner; + $pkg.RuneReader = RuneReader; + $pkg.RuneScanner = RuneScanner; + $pkg.StringWriter = StringWriter; + $pkg.LimitedReader = LimitedReader; + $pkg.discard = discard; + $pkg.$finishSetup = function() { + $ptrType(onceError).prototype.Store = function Store(err) { + var {a, err, $s, $deferred, $r, $c} = $restore(this, {err}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + a = this; + $r = a.Mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(a.Mutex, "Unlock"), []]); + /* */ if (!($interfaceIsEqual(a.err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(a.err, $ifaceNil))) { */ case 2: + $s = 4; case 4: return; + /* } */ case 3: + a.err = err; + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Store, $c: true, $r, a, err, $s, $deferred};return $f; } } + }; + $ptrType(onceError).prototype.Load = function Load() { + var {$24r, a, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + a = this; + $r = a.Mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(a.Mutex, "Unlock"), []]); + $24r = a.err; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Load, $c: true, $r, $24r, a, $s, $deferred};return $f; } } + }; + $ptrType(pipe).prototype.read = function read(b) { + var {$24r, $24r$1, _r, _r$1, _r$2, _selection, _selection$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, bw, err, n, nr, p, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + p = this; + _selection = $select([[p.done], []]); + /* */ if (_selection[0] === 0) { $s = 1; continue; } + /* */ if (_selection[0] === 1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_selection[0] === 0) { */ case 1: + _tmp = 0; + _r = p.readCloseError(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$1 = _r; + n = _tmp; + err = _tmp$1; + $24r = [n, err]; + $s = 5; case 5: return $24r; + /* } else if (_selection[0] === 1) { */ case 2: + /* } */ case 3: + _r$1 = $select([[p.wrCh], [p.done]]); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _selection$1 = _r$1; + /* */ if (_selection$1[0] === 0) { $s = 7; continue; } + /* */ if (_selection$1[0] === 1) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_selection$1[0] === 0) { */ case 7: + bw = _selection$1[1][0]; + nr = $copySlice(b, bw); + $r = $send(p.rdCh, nr); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$2 = nr; + _tmp$3 = $ifaceNil; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + /* } else if (_selection$1[0] === 1) { */ case 8: + _tmp$4 = 0; + _r$2 = p.readCloseError(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tmp$5 = _r$2; + n = _tmp$4; + err = _tmp$5; + $24r$1 = [n, err]; + $s = 12; case 12: return $24r$1; + /* } */ case 9: + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: read, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _selection, _selection$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, bw, err, n, nr, p, $s};return $f; + }; + $ptrType(pipe).prototype.closeRead = function closeRead(err) { + var {err, p, $s, $r, $c} = $restore(this, {err}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = [p]; + p[0] = this; + if ($interfaceIsEqual(err, $ifaceNil)) { + err = $pkg.ErrClosedPipe; + } + $r = p[0].rerr.Store(err); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p[0].once.Do((function(p) { return function pipe·closeRead·func1() { + $close(p[0].done); + }; })(p)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: closeRead, $c: true, $r, err, p, $s};return $f; + }; + $ptrType(pipe).prototype.write = function write(b) { + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _selection, _selection$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, err, n, nw, once, p, $s, $deferred, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + n = 0; + err = $ifaceNil; + p = this; + _selection = $select([[p.done], []]); + /* */ if (_selection[0] === 0) { $s = 1; continue; } + /* */ if (_selection[0] === 1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_selection[0] === 0) { */ case 1: + _tmp = 0; + _r = p.writeCloseError(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$1 = _r; + n = _tmp; + err = _tmp$1; + $24r = [n, err]; + $s = 5; case 5: return $24r; + /* } else if (_selection[0] === 1) { */ case 2: + $r = p.wrMu.Lock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(p.wrMu, "Unlock"), []]); + /* } */ case 3: + once = true; + /* while (true) { */ case 7: + /* if (!(once || b.$length > 0)) { break; } */ if(!(once || b.$length > 0)) { $s = 8; continue; } + _r$1 = $select([[p.wrCh, b], [p.done]]); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _selection$1 = _r$1; + /* */ if (_selection$1[0] === 0) { $s = 10; continue; } + /* */ if (_selection$1[0] === 1) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_selection$1[0] === 0) { */ case 10: + _r$2 = $recv(p.rdCh); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + nw = _r$2[0]; + b = $subslice(b, nw); + n = n + (nw) >> 0; + $s = 12; continue; + /* } else if (_selection$1[0] === 1) { */ case 11: + _tmp$2 = n; + _r$3 = p.writeCloseError(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tmp$3 = _r$3; + n = _tmp$2; + err = _tmp$3; + $24r$1 = [n, err]; + $s = 15; case 15: return $24r$1; + /* } */ case 12: + once = false; + $s = 7; continue; + case 8: + _tmp$4 = n; + _tmp$5 = $ifaceNil; + n = _tmp$4; + err = _tmp$5; + $24r$2 = [n, err]; + $s = 16; case 16: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [n, err]; } if($curGoroutine.asleep) { var $f = {$blk: write, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _selection, _selection$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, err, n, nw, once, p, $s, $deferred};return $f; } } + }; + $ptrType(pipe).prototype.closeWrite = function closeWrite(err) { + var {err, p, $s, $r, $c} = $restore(this, {err}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = [p]; + p[0] = this; + if ($interfaceIsEqual(err, $ifaceNil)) { + err = $pkg.EOF; + } + $r = p[0].werr.Store(err); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p[0].once.Do((function(p) { return function pipe·closeWrite·func1() { + $close(p[0].done); + }; })(p)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: closeWrite, $c: true, $r, err, p, $s};return $f; + }; + $ptrType(pipe).prototype.readCloseError = function readCloseError() { + var {_r, _r$1, p, rerr, werr, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = p.rerr.Load(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + rerr = _r; + _r$1 = p.werr.Load(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + werr = _r$1; + if ($interfaceIsEqual(rerr, $ifaceNil) && !($interfaceIsEqual(werr, $ifaceNil))) { + $s = -1; return werr; + } + $s = -1; return $pkg.ErrClosedPipe; + /* */ } return; } var $f = {$blk: readCloseError, $c: true, $r, _r, _r$1, p, rerr, werr, $s};return $f; + }; + $ptrType(pipe).prototype.writeCloseError = function writeCloseError() { + var {_r, _r$1, p, rerr, werr, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = p.werr.Load(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + werr = _r; + _r$1 = p.rerr.Load(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + rerr = _r$1; + if ($interfaceIsEqual(werr, $ifaceNil) && !($interfaceIsEqual(rerr, $ifaceNil))) { + $s = -1; return rerr; + } + $s = -1; return $pkg.ErrClosedPipe; + /* */ } return; } var $f = {$blk: writeCloseError, $c: true, $r, _r, _r$1, p, rerr, werr, $s};return $f; + }; + $ptrType(PipeReader).prototype.Read = function Read(data) { + var {$24r, _r, _tuple, data, err, n, r, $s, $r, $c} = $restore(this, {data}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + r = this; + _r = r.p.read(data); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $24r = [n, err]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Read, $c: true, $r, $24r, _r, _tuple, data, err, n, r, $s};return $f; + }; + $ptrType(PipeReader).prototype.Close = function Close() { + var {$24r, _r, r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.CloseWithError($ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Close, $c: true, $r, $24r, _r, r, $s};return $f; + }; + $ptrType(PipeReader).prototype.CloseWithError = function CloseWithError(err) { + var {$24r, _r, err, r, $s, $r, $c} = $restore(this, {err}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.p.closeRead(err); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: CloseWithError, $c: true, $r, $24r, _r, err, r, $s};return $f; + }; + $ptrType(PipeWriter).prototype.Write = function Write(data) { + var {$24r, _r, _tuple, data, err, n, w, $s, $r, $c} = $restore(this, {data}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + w = this; + _r = w.p.write(data); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $24r = [n, err]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Write, $c: true, $r, $24r, _r, _tuple, data, err, n, w, $s};return $f; + }; + $ptrType(PipeWriter).prototype.Close = function Close$1() { + var {$24r, _r, w, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + _r = w.CloseWithError($ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Close$1, $c: true, $r, $24r, _r, w, $s};return $f; + }; + $ptrType(PipeWriter).prototype.CloseWithError = function CloseWithError$1(err) { + var {$24r, _r, err, w, $s, $r, $c} = $restore(this, {err}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + _r = w.p.closeWrite(err); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: CloseWithError$1, $c: true, $r, $24r, _r, err, w, $s};return $f; + }; + Pipe = function Pipe$1() { + var p; + p = new pipe.ptr(new sync.Mutex.ptr(0, 0), new $Chan(sliceType$1, 0), new $Chan($Int, 0), new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), new $Chan(structType, 0), new onceError.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil), new onceError.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil)); + return [new PipeReader.ptr(p), new PipeWriter.ptr(p)]; + }; + $pkg.Pipe = Pipe; + WriteString = function WriteString$2(w, s) { + var {$24r, $24r$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, err, n, ok, s, sw, w, $s, $r, $c} = $restore(this, {w, s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _tuple = $assertType(w, StringWriter, true); + sw = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + _r = sw.WriteString(s); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + n = _tuple$1[0]; + err = _tuple$1[1]; + $24r = [n, err]; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = w.Write((new sliceType$1($stringToBytes(s)))); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$2 = _r$1; + n = _tuple$2[0]; + err = _tuple$2[1]; + $24r$1 = [n, err]; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: WriteString$2, $c: true, $r, $24r, $24r$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, err, n, ok, s, sw, w, $s};return $f; + }; + $pkg.WriteString = WriteString; + Copy = function Copy$1(dst, src) { + var {$24r, _r, _tuple, dst, err, src, written, $s, $r, $c} = $restore(this, {dst, src}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + written = new $Int64(0, 0); + err = $ifaceNil; + _r = copyBuffer(dst, src, sliceType$1.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + written = _tuple[0]; + err = _tuple[1]; + $24r = [written, err]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Copy$1, $c: true, $r, $24r, _r, _tuple, dst, err, src, written, $s};return $f; + }; + $pkg.Copy = Copy; + copyBuffer = function copyBuffer$1(dst, src, buf) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, buf, dst, er, err, ew, l, nr, nw, ok, ok$1, ok$2, rt, size, src, written, wt, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {dst, src, buf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + written = new $Int64(0, 0); + err = $ifaceNil; + _tuple = $assertType(src, WriterTo, true); + wt = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + _r = wt.WriteTo(dst); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + written = _tuple$1[0]; + err = _tuple$1[1]; + $24r = [written, err]; + $s = 4; case 4: return $24r; + /* } */ case 2: + _tuple$2 = $assertType(dst, ReaderFrom, true); + rt = _tuple$2[0]; + ok$1 = _tuple$2[1]; + /* */ if (ok$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (ok$1) { */ case 5: + _r$1 = rt.ReadFrom(src); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$3 = _r$1; + written = _tuple$3[0]; + err = _tuple$3[1]; + $24r$1 = [written, err]; + $s = 8; case 8: return $24r$1; + /* } */ case 6: + if (buf === sliceType$1.nil) { + size = 32768; + _tuple$4 = $assertType(src, ptrType$3, true); + l = _tuple$4[0]; + ok$2 = _tuple$4[1]; + if (ok$2 && (x$2 = (new $Int64(0, size)), x$3 = l.N, (x$2.$high > x$3.$high || (x$2.$high === x$3.$high && x$2.$low > x$3.$low)))) { + if ((x$4 = l.N, (x$4.$high < 0 || (x$4.$high === 0 && x$4.$low < 1)))) { + size = 1; + } else { + size = (((x$5 = l.N, x$5.$low + ((x$5.$high >> 31) * 4294967296)) >> 0)); + } + } + buf = $makeSlice(sliceType$1, size); + } + /* while (true) { */ case 9: + _r$2 = src.Read(buf); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$5 = _r$2; + nr = _tuple$5[0]; + er = _tuple$5[1]; + /* */ if (nr > 0) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (nr > 0) { */ case 12: + _r$3 = dst.Write($subslice(buf, 0, nr)); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$6 = _r$3; + nw = _tuple$6[0]; + ew = _tuple$6[1]; + if (nw < 0 || nr < nw) { + nw = 0; + if ($interfaceIsEqual(ew, $ifaceNil)) { + ew = errInvalidWrite; + } + } + written = (x$6 = (new $Int64(0, nw)), new $Int64(written.$high + x$6.$high, written.$low + x$6.$low)); + if (!($interfaceIsEqual(ew, $ifaceNil))) { + err = ew; + /* break; */ $s = 10; continue; + } + if (!((nr === nw))) { + err = $pkg.ErrShortWrite; + /* break; */ $s = 10; continue; + } + /* } */ case 13: + if (!($interfaceIsEqual(er, $ifaceNil))) { + if (!($interfaceIsEqual(er, $pkg.EOF))) { + err = er; + } + /* break; */ $s = 10; continue; + } + $s = 9; continue; + case 10: + _tmp = written; + _tmp$1 = err; + written = _tmp; + err = _tmp$1; + $s = -1; return [written, err]; + /* */ } return; } var $f = {$blk: copyBuffer$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, buf, dst, er, err, ew, l, nr, nw, ok, ok$1, ok$2, rt, size, src, written, wt, x$2, x$3, x$4, x$5, x$6, $s};return $f; + }; + $ptrType(LimitedReader).prototype.Read = function Read$3(p) { + var {_r, _tmp, _tmp$1, _tuple, err, l, n, p, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + l = this; + if ((x$2 = l.N, (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 0)))) { + _tmp = 0; + _tmp$1 = $pkg.EOF; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if ((x$3 = (new $Int64(0, p.$length)), x$4 = l.N, (x$3.$high > x$4.$high || (x$3.$high === x$4.$high && x$3.$low > x$4.$low)))) { + p = $subslice(p, 0, $flatten64(l.N)); + } + _r = l.R.Read(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + l.N = (x$5 = l.N, x$6 = (new $Int64(0, n)), new $Int64(x$5.$high - x$6.$high, x$5.$low - x$6.$low)); + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: Read$3, $c: true, $r, _r, _tmp, _tmp$1, _tuple, err, l, n, p, x$2, x$3, x$4, x$5, x$6, $s};return $f; + }; + $ptrType(discard).prototype.Write = function Write$2(p) { + var p; + return [p.$length, $ifaceNil]; + }; + discard.prototype.Write = function(...$args) { return this.$val.Write(...$args); }; + $ptrType(discard).prototype.WriteString = function WriteString$3(s) { + var s; + return [s.length, $ifaceNil]; + }; + discard.prototype.WriteString = function(...$args) { return this.$val.WriteString(...$args); }; + $ptrType(discard).prototype.ReadFrom = function ReadFrom(r) { + var {_r, _r$1, _tmp, _tmp$1, _tuple, bufp, err, n, r, readSize, x$2, $s, $r, $c} = $restore(this, {r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = new $Int64(0, 0); + err = $ifaceNil; + _r = blackHolePool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + bufp = $assertType(_r, ptrType$2); + readSize = 0; + /* while (true) { */ case 2: + _r$1 = r.Read(bufp.$get()); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + readSize = _tuple[0]; + err = _tuple[1]; + n = (x$2 = (new $Int64(0, readSize)), new $Int64(n.$high + x$2.$high, n.$low + x$2.$low)); + if (!($interfaceIsEqual(err, $ifaceNil))) { + blackHolePool.Put(bufp); + if ($interfaceIsEqual(err, $pkg.EOF)) { + _tmp = n; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + $s = -1; return [n, err]; + } + $s = 2; continue; + case 3: + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: ReadFrom, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tuple, bufp, err, n, r, readSize, x$2, $s};return $f; + }; + discard.prototype.ReadFrom = function(...$args) { return this.$val.ReadFrom(...$args); }; + ReadAll = function ReadAll$1(r) { + var {_r, _tuple, b, err, n, r, $s, $r, $c} = $restore(this, {r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = $makeSlice(sliceType$1, 0, 512); + /* while (true) { */ case 1: + if (b.$length === b.$capacity) { + b = $subslice($append(b, 0), 0, b.$length); + } + _r = r.Read($subslice(b, b.$length, b.$capacity)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + b = $subslice(b, 0, (b.$length + n >> 0)); + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, $pkg.EOF)) { + err = $ifaceNil; + } + $s = -1; return [b, err]; + } + $s = 1; continue; + case 2: + $s = -1; return [sliceType$1.nil, $ifaceNil]; + /* */ } return; } var $f = {$blk: ReadAll$1, $c: true, $r, _r, _tuple, b, err, n, r, $s};return $f; + }; + $pkg.ReadAll = ReadAll; + ptrType$4.methods = [{prop: "Store", name: "Store", pkg: "", typ: $funcType([$error], [], false)}, {prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$5.methods = [{prop: "read", name: "read", pkg: "io", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "closeRead", name: "closeRead", pkg: "io", typ: $funcType([$error], [$error], false)}, {prop: "write", name: "write", pkg: "io", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "closeWrite", name: "closeWrite", pkg: "io", typ: $funcType([$error], [$error], false)}, {prop: "readCloseError", name: "readCloseError", pkg: "io", typ: $funcType([], [$error], false)}, {prop: "writeCloseError", name: "writeCloseError", pkg: "io", typ: $funcType([], [$error], false)}]; + ptrType$6.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "CloseWithError", name: "CloseWithError", pkg: "", typ: $funcType([$error], [$error], false)}]; + ptrType$7.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "CloseWithError", name: "CloseWithError", pkg: "", typ: $funcType([$error], [$error], false)}]; + ptrType$3.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}]; + discard.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([Reader], [$Int64, $error], false)}]; + onceError.init("io", [{prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: sync.Mutex, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); + pipe.init("io", [{prop: "wrMu", name: "wrMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "wrCh", name: "wrCh", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "rdCh", name: "rdCh", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "once", name: "once", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "rerr", name: "rerr", embedded: false, exported: false, typ: onceError, tag: ""}, {prop: "werr", name: "werr", embedded: false, exported: false, typ: onceError, tag: ""}]); + PipeReader.init("io", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$5, tag: ""}]); + PipeWriter.init("io", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$5, tag: ""}]); + Reader.init([{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}]); + Writer.init([{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}]); + Closer.init([{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]); + ReadCloser.init([{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}]); + WriteCloser.init([{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}]); + ReaderFrom.init([{prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([Reader], [$Int64, $error], false)}]); + WriterTo.init([{prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([Writer], [$Int64, $error], false)}]); + ByteScanner.init([{prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}]); + RuneReader.init([{prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}]); + RuneScanner.init([{prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}]); + StringWriter.init([{prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]); + LimitedReader.init("", [{prop: "R", name: "R", embedded: false, exported: true, typ: Reader, tag: ""}, {prop: "N", name: "N", embedded: false, exported: true, typ: $Int64, tag: ""}]); + discard.init("", []); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrClosedPipe = errors.New("io: read/write on closed pipe"); + $pkg.ErrShortWrite = errors.New("short write"); + errInvalidWrite = errors.New("invalid write result"); + $pkg.ErrShortBuffer = errors.New("short buffer"); + $pkg.EOF = errors.New("EOF"); + $pkg.ErrUnexpectedEOF = errors.New("unexpected EOF"); + $pkg.ErrNoProgress = errors.New("multiple Read calls return no data or error"); + errWhence = errors.New("Seek: invalid whence"); + errOffset = errors.New("Seek: invalid offset"); + $pkg.Discard = (x = new discard.ptr(), new x.constructor.elem(x)); + blackHolePool = new sync.Pool.ptr(sliceType.nil, (function func1() { + var b, b$24ptr; + b = $makeSlice(sliceType$1, 8192); + return (b$24ptr || (b$24ptr = new ptrType$2(function() { return b; }, function($v) { b = $v; }))); + })); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/oserror"] = (function() { + var $pkg = {}, $init, errors; + errors = $packages["errors"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrInvalid = errors.New("invalid argument"); + $pkg.ErrPermission = errors.New("permission denied"); + $pkg.ErrExist = errors.New("file already exists"); + $pkg.ErrNotExist = errors.New("file does not exist"); + $pkg.ErrClosed = errors.New("file already closed"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["syscall/js"] = (function() { + var $pkg = {}, $init, js, Type, Func, Error, Value, ValueError, id, instanceOf, typeOf, typeNames, Global, Null, Undefined, FuncOf, objectToValue, init, getValueType, ValueOf, convertArgs, convertJSError, CopyBytesToGo, CopyBytesToJS; + js = $packages["github.com/gopherjs/gopherjs/js"]; + Type = $newType(4, $kindInt, "js.Type", true, "syscall/js", true, null); + Func = $newType(0, $kindStruct, "js.Func", true, "syscall/js", true, function(Value_) { + this.$val = this; + if (arguments.length === 0) { + this.Value = new Value.ptr(null, false, arrayType.zero()); + return; + } + this.Value = Value_; + }); + Error = $newType(0, $kindStruct, "js.Error", true, "syscall/js", true, function(Value_) { + this.$val = this; + if (arguments.length === 0) { + this.Value = new Value.ptr(null, false, arrayType.zero()); + return; + } + this.Value = Value_; + }); + Value = $newType(0, $kindStruct, "js.Value", true, "syscall/js", true, function(v_, inited_, _$2_) { + this.$val = this; + if (arguments.length === 0) { + this.v = null; + this.inited = false; + this._$2 = arrayType.zero(); + return; + } + this.v = v_; + this.inited = inited_; + this._$2 = _$2_; + }); + ValueError = $newType(0, $kindStruct, "js.ValueError", true, "syscall/js", true, function(Method_, Type_) { + this.$val = this; + if (arguments.length === 0) { + this.Method = ""; + this.Type = 0; + return; + } + this.Method = Method_; + this.Type = Type_; + }); + $pkg.Type = Type; + $pkg.Func = Func; + $pkg.Error = Error; + $pkg.Value = Value; + $pkg.ValueError = ValueError; + $pkg.$finishSetup = function() { + Type.prototype.String = function String() { + var t; + t = this.$val; + if (((t >> 0)) < 0 || typeNames.$length <= ((t >> 0))) { + $panic(new $String("bad type")); + } + return ((t < 0 || t >= typeNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeNames.$array[typeNames.$offset + t]); + }; + $ptrType(Type).prototype.String = function(...$args) { return new Type(this.$get()).String(...$args); }; + Type.prototype.isObject = function isObject() { + var t; + t = this.$val; + return (t === 6) || (t === 7); + }; + $ptrType(Type).prototype.isObject = function(...$args) { return new Type(this.$get()).isObject(...$args); }; + Global = function Global$1() { + return objectToValue($global); + }; + $pkg.Global = Global; + Null = function Null$1() { + return objectToValue(null); + }; + $pkg.Null = Null; + Undefined = function Undefined$1() { + return objectToValue(undefined); + }; + $pkg.Undefined = Undefined; + $ptrType(Func).prototype.Release = function Release() { + var f; + f = this; + $exportedFunctions = ($parseInt($exportedFunctions) >> 0) - 1 >> 0; + Value.copy(f.Value, Null()); + }; + Func.prototype.Release = function(...$args) { return this.$val.Release(...$args); }; + FuncOf = function FuncOf$1(fn) { + var fn; + $exportedFunctions = ($parseInt($exportedFunctions) >> 0) + 1 >> 0; + return new Func.ptr($clone(objectToValue(js.MakeFunc((function FuncOf·func1(this$1, args) { + var {$24r, _i, _r, _ref, a, args, i, this$1, vargs, $s, $r, $c} = $restore(this, {this$1, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + vargs = $makeSlice(sliceType$1, args.$length); + _ref = args; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + a = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + Value.copy(((i < 0 || i >= vargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : vargs.$array[vargs.$offset + i]), objectToValue(a)); + _i++; + } + _r = fn($clone(objectToValue(this$1), Value), vargs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: FuncOf·func1, $c: true, $r, $24r, _i, _r, _ref, a, args, i, this$1, vargs, $s};return $f; + }))), Value)); + }; + $pkg.FuncOf = FuncOf; + $ptrType(Error).prototype.Error = function Error$1() { + var e; + e = this; + return "JavaScript error: " + $clone($clone(e.Value, Value).Get("message"), Value).String(); + }; + Error.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; + objectToValue = function objectToValue$1(obj) { + var obj; + if (obj === undefined) { + return new Value.ptr(null, false, arrayType.zero()); + } + return new Value.ptr(obj, true, arrayType.zero()); + }; + init = function init$1() { + if (!($global === null)) { + id = $id; + instanceOf = $instanceOf; + typeOf = $typeOf; + } + }; + getValueType = function getValueType$1(obj) { + var _i, _ref, name, name2, obj, type2; + if (obj === null) { + return 1; + } + name = $internalize(typeOf(obj), $String); + _ref = typeNames; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + type2 = _i; + name2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (name === name2) { + return ((type2 >> 0)); + } + _i++; + } + return 6; + }; + ValueOf = function ValueOf$1(x) { + var _ref, x, x$1, x$2, x$3, x$4, x$5; + _ref = x; + if ($assertType(_ref, Value, true)[1]) { + x$1 = $clone(_ref.$val, Value); + return x$1; + } else if ($assertType(_ref, Func, true)[1]) { + x$2 = $clone(_ref.$val, Func); + return x$2.Value; + } else if (_ref === $ifaceNil) { + x$3 = _ref; + return Null(); + } else if ($assertType(_ref, $Bool, true)[1] || $assertType(_ref, $Int, true)[1] || $assertType(_ref, $Int8, true)[1] || $assertType(_ref, $Int16, true)[1] || $assertType(_ref, $Int32, true)[1] || $assertType(_ref, $Int64, true)[1] || $assertType(_ref, $Uint, true)[1] || $assertType(_ref, $Uint8, true)[1] || $assertType(_ref, $Uint16, true)[1] || $assertType(_ref, $Uint32, true)[1] || $assertType(_ref, $Uint64, true)[1] || $assertType(_ref, $Float32, true)[1] || $assertType(_ref, $Float64, true)[1] || $assertType(_ref, $UnsafePointer, true)[1] || $assertType(_ref, $String, true)[1] || $assertType(_ref, mapType, true)[1] || $assertType(_ref, sliceType$2, true)[1]) { + x$4 = _ref; + return objectToValue(id($externalize(x$4, $emptyInterface))); + } else { + x$5 = _ref; + $panic(new $String("ValueOf: invalid value")); + } + }; + $pkg.ValueOf = ValueOf; + $ptrType(Value).prototype.internal = function internal() { + var v; + v = this; + if (!v.inited) { + return undefined; + } + return v.v; + }; + Value.prototype.internal = function(...$args) { return this.$val.internal(...$args); }; + $ptrType(Value).prototype.Bool = function Bool() { + var v, vType; + v = this; + vType = $clone(v, Value).Type(); + if (!((vType === 2))) { + $panic(new ValueError.ptr("Value.Bool", vType)); + } + return !!($clone(v, Value).internal()); + }; + Value.prototype.Bool = function(...$args) { return this.$val.Bool(...$args); }; + convertArgs = function convertArgs$1(args) { + var _i, _ref, arg, args, newArgs, v; + newArgs = new sliceType$2([]); + _ref = args; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + v = $clone(ValueOf(arg), Value); + newArgs = $append(newArgs, new $jsObjectPtr($clone(v, Value).internal())); + _i++; + } + return newArgs; + }; + convertJSError = function convertJSError$1() { + var _tuple, err, jsErr, ok, x; + err = $recover(); + if ($interfaceIsEqual(err, $ifaceNil)) { + return; + } + _tuple = $assertType(err, ptrType, true); + jsErr = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $panic((x = new Error.ptr($clone(objectToValue(jsErr.Object), Value)), new x.constructor.elem(x))); + } + $panic(err); + }; + $ptrType(Value).prototype.Call = function Call(m, args) { + var args, m, obj, propType, v, vType, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + v = this; + vType = $clone(v, Value).Type(); + if (!((vType === 6)) && !((vType === 7))) { + $panic(new ValueError.ptr("Value.Call", vType)); + } + propType = $clone($clone(v, Value).Get(m), Value).Type(); + if (!((propType === 7))) { + $panic(new $String("js: Value.Call: property " + m + " is not a function, got " + new Type(propType).String())); + } + $deferred.push([convertJSError, []]); + return objectToValue((obj = $clone(v, Value).internal(), obj[$externalize(m, $String)].apply(obj, $externalize(convertArgs(args), sliceType$2)))); + /* */ } catch(err) { $err = err; return new Value.ptr(null, false, arrayType.zero()); } finally { $callDeferred($deferred, $err); } + }; + Value.prototype.Call = function(...$args) { return this.$val.Call(...$args); }; + $ptrType(Value).prototype.Float = function Float() { + var v, vType; + v = this; + vType = $clone(v, Value).Type(); + if (!((vType === 3))) { + $panic(new ValueError.ptr("Value.Float", vType)); + } + return $parseFloat($clone(v, Value).internal()); + }; + Value.prototype.Float = function(...$args) { return this.$val.Float(...$args); }; + $ptrType(Value).prototype.Get = function Get(p) { + var p, v, vType; + v = this; + vType = $clone(v, Value).Type(); + if (!new Type(vType).isObject()) { + $panic(new ValueError.ptr("Value.Get", vType)); + } + return objectToValue($clone(v, Value).internal()[$externalize(p, $String)]); + }; + Value.prototype.Get = function(...$args) { return this.$val.Get(...$args); }; + $ptrType(Value).prototype.Index = function Index(i) { + var i, v, vType; + v = this; + vType = $clone(v, Value).Type(); + if (!new Type(vType).isObject()) { + $panic(new ValueError.ptr("Value.Index", vType)); + } + return objectToValue($clone(v, Value).internal()[i]); + }; + Value.prototype.Index = function(...$args) { return this.$val.Index(...$args); }; + $ptrType(Value).prototype.Int = function Int() { + var v, vType; + v = this; + vType = $clone(v, Value).Type(); + if (!((vType === 3))) { + $panic(new ValueError.ptr("Value.Int", vType)); + } + return $parseInt($clone(v, Value).internal()) >> 0; + }; + Value.prototype.Int = function(...$args) { return this.$val.Int(...$args); }; + $ptrType(Value).prototype.InstanceOf = function InstanceOf(t) { + var t, v; + v = this; + return !!(instanceOf($clone(v, Value).internal(), $clone(t, Value).internal())); + }; + Value.prototype.InstanceOf = function(...$args) { return this.$val.InstanceOf(...$args); }; + $ptrType(Value).prototype.Invoke = function Invoke(args) { + var args, v, vType; + v = this; + vType = $clone(v, Value).Type(); + if (!((vType === 7))) { + $panic(new ValueError.ptr("Value.Invoke", vType)); + } + return objectToValue($clone(v, Value).internal().apply(undefined, $externalize(convertArgs(args), sliceType$2))); + }; + Value.prototype.Invoke = function(...$args) { return this.$val.Invoke(...$args); }; + $ptrType(Value).prototype.JSValue = function JSValue() { + var v; + v = this; + return v; + }; + Value.prototype.JSValue = function(...$args) { return this.$val.JSValue(...$args); }; + $ptrType(Value).prototype.Length = function Length() { + var v; + v = this; + return $parseInt($clone(v, Value).internal().length); + }; + Value.prototype.Length = function(...$args) { return this.$val.Length(...$args); }; + $ptrType(Value).prototype.New = function New(args) { + var args, v, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + v = this; + $deferred.push([(function Value·New·func1() { + var _tuple, err, jsErr, ok, vType, x; + err = $recover(); + if ($interfaceIsEqual(err, $ifaceNil)) { + return; + } + vType = $clone(v, Value).Type(); + if (!((vType === 7))) { + $panic(new ValueError.ptr("Value.New", vType)); + } + _tuple = $assertType(err, ptrType, true); + jsErr = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $panic((x = new Error.ptr($clone(objectToValue(jsErr.Object), Value)), new x.constructor.elem(x))); + } + $panic(err); + }), []]); + return objectToValue(new ($global.Function.prototype.bind.apply($clone(v, Value).internal(), [undefined].concat($externalize(convertArgs(args), sliceType$2))))); + /* */ } catch(err) { $err = err; return new Value.ptr(null, false, arrayType.zero()); } finally { $callDeferred($deferred, $err); } + }; + Value.prototype.New = function(...$args) { return this.$val.New(...$args); }; + $ptrType(Value).prototype.Set = function Set(p, x) { + var p, v, vType, x, x$1; + v = this; + vType = $clone(v, Value).Type(); + if (!new Type(vType).isObject()) { + $panic(new ValueError.ptr("Value.Set", vType)); + } + $clone(v, Value).internal()[$externalize(p, $String)] = $externalize((x$1 = convertArgs(new sliceType$2([x])), (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), $emptyInterface); + }; + Value.prototype.Set = function(...$args) { return this.$val.Set(...$args); }; + $ptrType(Value).prototype.SetIndex = function SetIndex(i, x) { + var i, v, vType, x, x$1; + v = this; + vType = $clone(v, Value).Type(); + if (!new Type(vType).isObject()) { + $panic(new ValueError.ptr("Value.SetIndex", vType)); + } + $clone(v, Value).internal()[i] = $externalize((x$1 = convertArgs(new sliceType$2([x])), (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), $emptyInterface); + }; + Value.prototype.SetIndex = function(...$args) { return this.$val.SetIndex(...$args); }; + $ptrType(Value).prototype.String = function String$1() { + var _1, v; + v = this; + _1 = $clone(v, Value).Type(); + if (_1 === (4)) { + return $internalize($clone(v, Value).internal(), $String); + } else if (_1 === (0)) { + return ""; + } else if (_1 === (1)) { + return ""; + } else if (_1 === (2)) { + return ""; + } else if (_1 === (3)) { + return ""; + } else if (_1 === (5)) { + return ""; + } else if (_1 === (6)) { + return ""; + } else if (_1 === (7)) { + return ""; + } else { + $panic(new $String("bad type")); + } + }; + Value.prototype.String = function(...$args) { return this.$val.String(...$args); }; + $ptrType(Value).prototype.Truthy = function Truthy() { + var v; + v = this; + return !!($clone(v, Value).internal()); + }; + Value.prototype.Truthy = function(...$args) { return this.$val.Truthy(...$args); }; + $ptrType(Value).prototype.Type = function Type$1() { + var v; + v = this; + return (getValueType($clone(v, Value).internal())); + }; + Value.prototype.Type = function(...$args) { return this.$val.Type(...$args); }; + $ptrType(Value).prototype.IsNull = function IsNull() { + var v; + v = this; + return $clone(v, Value).Type() === 1; + }; + Value.prototype.IsNull = function(...$args) { return this.$val.IsNull(...$args); }; + $ptrType(Value).prototype.IsUndefined = function IsUndefined() { + var v; + v = this; + return !v.inited; + }; + Value.prototype.IsUndefined = function(...$args) { return this.$val.IsUndefined(...$args); }; + $ptrType(Value).prototype.IsNaN = function IsNaN() { + var v; + v = this; + return !!($global.isNaN($clone(v, Value).internal())); + }; + Value.prototype.IsNaN = function(...$args) { return this.$val.IsNaN(...$args); }; + $ptrType(Value).prototype.Delete = function Delete(p) { + var p, v, vType; + v = this; + vType = $clone(v, Value).Type(); + if (!new Type(vType).isObject()) { + $panic(new ValueError.ptr("Value.Delete", vType)); + } + delete $clone(v, Value).internal()[$externalize(p, $String)]; + }; + Value.prototype.Delete = function(...$args) { return this.$val.Delete(...$args); }; + $ptrType(Value).prototype.Equal = function Equal(w) { + var v, w; + v = this; + return $clone(v, Value).internal() === $clone(w, Value).internal(); + }; + Value.prototype.Equal = function(...$args) { return this.$val.Equal(...$args); }; + $ptrType(ValueError).prototype.Error = function Error$2() { + var e; + e = this; + return "syscall/js: call of " + e.Method + " on " + new Type(e.Type).String(); + }; + CopyBytesToGo = function CopyBytesToGo$1(dst, src) { + var dlen, dst, src, vlen; + vlen = $parseInt(src.v.length); + dlen = dst.$length; + if (dlen < vlen) { + vlen = dlen; + } + $copySlice(dst, $assertType($internalize(src.v, $emptyInterface), sliceType$3)); + return vlen; + }; + $pkg.CopyBytesToGo = CopyBytesToGo; + CopyBytesToJS = function CopyBytesToJS$1(dst, src) { + var _tuple, dst, dt, ok, src; + _tuple = $assertType($internalize(dst.v, $emptyInterface), sliceType$3, true); + dt = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + $panic(new $String("syscall/js: CopyBytesToJS: expected dst to be an Uint8Array")); + } + return $copySlice(dt, src); + }; + $pkg.CopyBytesToJS = CopyBytesToJS; + Type.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isObject", name: "isObject", pkg: "syscall/js", typ: $funcType([], [$Bool], false)}]; + Func.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}]; + Error.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + Value.methods = [{prop: "internal", name: "internal", pkg: "syscall/js", typ: $funcType([], [ptrType$1], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType$2], [Value], true)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "InstanceOf", name: "InstanceOf", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "Invoke", name: "Invoke", pkg: "", typ: $funcType([sliceType$2], [Value], true)}, {prop: "JSValue", name: "JSValue", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "New", name: "New", pkg: "", typ: $funcType([sliceType$2], [Value], true)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}, {prop: "SetIndex", name: "SetIndex", pkg: "", typ: $funcType([$Int, $emptyInterface], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Truthy", name: "Truthy", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "IsNull", name: "IsNull", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsUndefined", name: "IsUndefined", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsNaN", name: "IsNaN", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Value], [$Bool], false)}]; + ptrType$2.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + Func.init("", [{prop: "Value", name: "Value", embedded: true, exported: true, typ: Value, tag: ""}]); + Error.init("", [{prop: "Value", name: "Value", embedded: true, exported: true, typ: Value, tag: ""}]); + Value.init("syscall/js", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "inited", name: "inited", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "_$2", name: "_", embedded: false, exported: false, typ: arrayType, tag: ""}]); + ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + id = null; + instanceOf = null; + typeOf = null; + typeNames = new sliceType(["undefined", "null", "boolean", "number", "string", "symbol", "object", "function"]); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["syscall"] = (function() { + var $pkg = {}, $init, errors, bytealg, itoa, oserror, runtime, sync, js, Errno, Signal, Stat_t, WaitStatus, Rusage, ProcAttr, SysProcAttr, Iovec, Timeval, Sockaddr, SockaddrInet4, SockaddrInet6, RawConn, jsFile, filesMu, envOnce, envLock, env, errorstr, errEAGAIN, errEINVAL, errENOENT, errnoByCode, signals, jsProcess, jsFS, constants, uint8Array, nodeWRONLY, nodeRDWR, nodeCREATE, nodeTRUNC, nodeAPPEND, nodeEXCL, files, envs, faketimeWrite, errnoErr, Getwd, Kill, StartProcess, Wait4, StopIO, Accept, Recvfrom, Sendto, Recvmsg, SendmsgN, SetReadDeadline, SetWriteDeadline, Shutdown, SetNonblock, runtime_envs, setStat, Exit, fsCall, fdToFile, Open, Close, CloseOnExec, ReadDirent, Stat, Lstat, Fstat, Chmod, Fchmod, Fchown, Ftruncate, Getcwd, Chdir, Fchdir, Readlink, Fsync, Read, Write, Pread, Pwrite, Seek, Dup, Pipe, checkPath, recoverErr, mapJSError, copyenv, Getenv, Environ; + errors = $packages["errors"]; + bytealg = $packages["internal/bytealg"]; + itoa = $packages["internal/itoa"]; + oserror = $packages["internal/oserror"]; + runtime = $packages["runtime"]; + sync = $packages["sync"]; + js = $packages["syscall/js"]; + Errno = $newType(4, $kindUintptr, "syscall.Errno", true, "syscall", true, null); + Signal = $newType(4, $kindInt, "syscall.Signal", true, "syscall", true, null); + Stat_t = $newType(0, $kindStruct, "syscall.Stat_t", true, "syscall", true, function(Dev_, Ino_, Mode_, Nlink_, Uid_, Gid_, Rdev_, Size_, Blksize_, Blocks_, Atime_, AtimeNsec_, Mtime_, MtimeNsec_, Ctime_, CtimeNsec_) { + this.$val = this; + if (arguments.length === 0) { + this.Dev = new $Int64(0, 0); + this.Ino = new $Uint64(0, 0); + this.Mode = 0; + this.Nlink = 0; + this.Uid = 0; + this.Gid = 0; + this.Rdev = new $Int64(0, 0); + this.Size = new $Int64(0, 0); + this.Blksize = 0; + this.Blocks = 0; + this.Atime = new $Int64(0, 0); + this.AtimeNsec = new $Int64(0, 0); + this.Mtime = new $Int64(0, 0); + this.MtimeNsec = new $Int64(0, 0); + this.Ctime = new $Int64(0, 0); + this.CtimeNsec = new $Int64(0, 0); + return; + } + this.Dev = Dev_; + this.Ino = Ino_; + this.Mode = Mode_; + this.Nlink = Nlink_; + this.Uid = Uid_; + this.Gid = Gid_; + this.Rdev = Rdev_; + this.Size = Size_; + this.Blksize = Blksize_; + this.Blocks = Blocks_; + this.Atime = Atime_; + this.AtimeNsec = AtimeNsec_; + this.Mtime = Mtime_; + this.MtimeNsec = MtimeNsec_; + this.Ctime = Ctime_; + this.CtimeNsec = CtimeNsec_; + }); + WaitStatus = $newType(4, $kindUint32, "syscall.WaitStatus", true, "syscall", true, null); + Rusage = $newType(0, $kindStruct, "syscall.Rusage", true, "syscall", true, function(Utime_, Stime_) { + this.$val = this; + if (arguments.length === 0) { + this.Utime = new Timeval.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Stime = new Timeval.ptr(new $Int64(0, 0), new $Int64(0, 0)); + return; + } + this.Utime = Utime_; + this.Stime = Stime_; + }); + ProcAttr = $newType(0, $kindStruct, "syscall.ProcAttr", true, "syscall", true, function(Dir_, Env_, Files_, Sys_) { + this.$val = this; + if (arguments.length === 0) { + this.Dir = ""; + this.Env = sliceType.nil; + this.Files = sliceType$4.nil; + this.Sys = ptrType$3.nil; + return; + } + this.Dir = Dir_; + this.Env = Env_; + this.Files = Files_; + this.Sys = Sys_; + }); + SysProcAttr = $newType(0, $kindStruct, "syscall.SysProcAttr", true, "syscall", true, function() { this.$val = this; }); + Iovec = $newType(0, $kindStruct, "syscall.Iovec", true, "syscall", true, function() { this.$val = this; }); + Timeval = $newType(0, $kindStruct, "syscall.Timeval", true, "syscall", true, function(Sec_, Usec_) { + this.$val = this; + if (arguments.length === 0) { + this.Sec = new $Int64(0, 0); + this.Usec = new $Int64(0, 0); + return; + } + this.Sec = Sec_; + this.Usec = Usec_; + }); + Sockaddr = $newType(8, $kindInterface, "syscall.Sockaddr", true, "syscall", true, null); + SockaddrInet4 = $newType(0, $kindStruct, "syscall.SockaddrInet4", true, "syscall", true, function(Port_, Addr_) { + this.$val = this; + if (arguments.length === 0) { + this.Port = 0; + this.Addr = arrayType$3.zero(); + return; + } + this.Port = Port_; + this.Addr = Addr_; + }); + SockaddrInet6 = $newType(0, $kindStruct, "syscall.SockaddrInet6", true, "syscall", true, function(Port_, ZoneId_, Addr_) { + this.$val = this; + if (arguments.length === 0) { + this.Port = 0; + this.ZoneId = 0; + this.Addr = arrayType$4.zero(); + return; + } + this.Port = Port_; + this.ZoneId = ZoneId_; + this.Addr = Addr_; + }); + RawConn = $newType(8, $kindInterface, "syscall.RawConn", true, "syscall", true, null); + jsFile = $newType(0, $kindStruct, "syscall.jsFile", true, "syscall", false, function(path_, entries_, dirIdx_, pos_, seeked_) { + this.$val = this; + if (arguments.length === 0) { + this.path = ""; + this.entries = sliceType.nil; + this.dirIdx = 0; + this.pos = new $Int64(0, 0); + this.seeked = false; + return; + } + this.path = path_; + this.entries = entries_; + this.dirIdx = dirIdx_; + this.pos = pos_; + this.seeked = seeked_; + }); + $pkg.Errno = Errno; + $pkg.Signal = Signal; + $pkg.Stat_t = Stat_t; + $pkg.WaitStatus = WaitStatus; + $pkg.Rusage = Rusage; + $pkg.ProcAttr = ProcAttr; + $pkg.SysProcAttr = SysProcAttr; + $pkg.Iovec = Iovec; + $pkg.Timeval = Timeval; + $pkg.Sockaddr = Sockaddr; + $pkg.SockaddrInet4 = SockaddrInet4; + $pkg.SockaddrInet6 = SockaddrInet6; + $pkg.RawConn = RawConn; + $pkg.jsFile = jsFile; + $pkg.$finishSetup = function() { + faketimeWrite = function faketimeWrite$1(fd, p) { + var fd, p; + $panic(new $String("not implemented")); + }; + errnoErr = function errnoErr$1(e) { + var _1, e; + _1 = e; + if (_1 === (0)) { + return $ifaceNil; + } else if (_1 === (11)) { + return errEAGAIN; + } else if (_1 === (22)) { + return errEINVAL; + } else if (_1 === (2)) { + return errENOENT; + } + return new Errno(e); + }; + Errno.prototype.Error = function Error() { + var e, s; + e = this.$val; + if (0 <= ((e >> 0)) && ((e >> 0)) < 2054) { + s = ((e < 0 || e >= errorstr.length) ? ($throwRuntimeError("index out of range"), undefined) : errorstr[e]); + if (!(s === "")) { + return s; + } + } + return "errno " + itoa.Itoa(((e >> 0))); + }; + $ptrType(Errno).prototype.Error = function(...$args) { return new Errno(this.$get()).Error(...$args); }; + Errno.prototype.Is = function Is(target) { + var _1, e, target; + e = this.$val; + _1 = target; + if ($interfaceIsEqual(_1, (oserror.ErrPermission))) { + return (e === 13) || (e === 1); + } else if ($interfaceIsEqual(_1, (oserror.ErrExist))) { + return (e === 17) || (e === 39); + } else if ($interfaceIsEqual(_1, (oserror.ErrNotExist))) { + return e === 2; + } + return false; + }; + $ptrType(Errno).prototype.Is = function(...$args) { return new Errno(this.$get()).Is(...$args); }; + Errno.prototype.Temporary = function Temporary() { + var e; + e = this.$val; + return (e === 4) || (e === 24) || new Errno(e).Timeout(); + }; + $ptrType(Errno).prototype.Temporary = function(...$args) { return new Errno(this.$get()).Temporary(...$args); }; + Errno.prototype.Timeout = function Timeout() { + var e; + e = this.$val; + return (e === 11) || (e === 11) || (e === 110); + }; + $ptrType(Errno).prototype.Timeout = function(...$args) { return new Errno(this.$get()).Timeout(...$args); }; + Signal.prototype.Signal = function Signal$1() { + var s; + s = this.$val; + }; + $ptrType(Signal).prototype.Signal = function(...$args) { return new Signal(this.$get()).Signal(...$args); }; + Signal.prototype.String = function String() { + var s, str; + s = this.$val; + if (0 <= s && ((s >> 0)) < 0) { + str = ((s < 0 || s >= signals.length) ? ($throwRuntimeError("index out of range"), undefined) : signals[s]); + if (!(str === "")) { + return str; + } + } + return "signal " + itoa.Itoa(((s >> 0))); + }; + $ptrType(Signal).prototype.String = function(...$args) { return new Signal(this.$get()).String(...$args); }; + WaitStatus.prototype.Exited = function Exited() { + var w; + w = this.$val; + return false; + }; + $ptrType(WaitStatus).prototype.Exited = function(...$args) { return new WaitStatus(this.$get()).Exited(...$args); }; + WaitStatus.prototype.ExitStatus = function ExitStatus() { + var w; + w = this.$val; + return 0; + }; + $ptrType(WaitStatus).prototype.ExitStatus = function(...$args) { return new WaitStatus(this.$get()).ExitStatus(...$args); }; + WaitStatus.prototype.Signaled = function Signaled() { + var w; + w = this.$val; + return false; + }; + $ptrType(WaitStatus).prototype.Signaled = function(...$args) { return new WaitStatus(this.$get()).Signaled(...$args); }; + WaitStatus.prototype.Signal = function Signal$2() { + var w; + w = this.$val; + return 0; + }; + $ptrType(WaitStatus).prototype.Signal = function(...$args) { return new WaitStatus(this.$get()).Signal(...$args); }; + WaitStatus.prototype.CoreDump = function CoreDump() { + var w; + w = this.$val; + return false; + }; + $ptrType(WaitStatus).prototype.CoreDump = function(...$args) { return new WaitStatus(this.$get()).CoreDump(...$args); }; + WaitStatus.prototype.Stopped = function Stopped() { + var w; + w = this.$val; + return false; + }; + $ptrType(WaitStatus).prototype.Stopped = function(...$args) { return new WaitStatus(this.$get()).Stopped(...$args); }; + WaitStatus.prototype.Continued = function Continued() { + var w; + w = this.$val; + return false; + }; + $ptrType(WaitStatus).prototype.Continued = function(...$args) { return new WaitStatus(this.$get()).Continued(...$args); }; + WaitStatus.prototype.StopSignal = function StopSignal() { + var w; + w = this.$val; + return 0; + }; + $ptrType(WaitStatus).prototype.StopSignal = function(...$args) { return new WaitStatus(this.$get()).StopSignal(...$args); }; + WaitStatus.prototype.TrapCause = function TrapCause() { + var w; + w = this.$val; + return 0; + }; + $ptrType(WaitStatus).prototype.TrapCause = function(...$args) { return new WaitStatus(this.$get()).TrapCause(...$args); }; + Getwd = function Getwd$1() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, buf, err, n, wd; + wd = ""; + err = $ifaceNil; + buf = arrayType$1.zero(); + _tuple = Getcwd($subslice(new sliceType$1(buf), 0)); + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = ""; + _tmp$1 = err; + wd = _tmp; + err = _tmp$1; + return [wd, err]; + } + _tmp$2 = ($bytesToString($subslice(new sliceType$1(buf), 0, n))); + _tmp$3 = $ifaceNil; + wd = _tmp$2; + err = _tmp$3; + return [wd, err]; + }; + $pkg.Getwd = Getwd; + Kill = function Kill$1(pid, signum) { + var pid, signum; + return new Errno(38); + }; + $pkg.Kill = Kill; + StartProcess = function StartProcess$1(argv0, argv, attr) { + var _tmp, _tmp$1, _tmp$2, argv, argv0, attr, err, handle, pid; + pid = 0; + handle = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = new Errno(38); + pid = _tmp; + handle = _tmp$1; + err = _tmp$2; + return [pid, handle, err]; + }; + $pkg.StartProcess = StartProcess; + Wait4 = function Wait4$1(pid, wstatus, options, rusage) { + var _tmp, _tmp$1, err, options, pid, rusage, wpid, wstatus; + wpid = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = new Errno(38); + wpid = _tmp; + err = _tmp$1; + return [wpid, err]; + }; + $pkg.Wait4 = Wait4; + $ptrType(Timeval).prototype.Unix = function Unix$1() { + var _tmp, _tmp$1, nsec, sec, tv; + sec = new $Int64(0, 0); + nsec = new $Int64(0, 0); + tv = this; + _tmp = (tv.Sec); + _tmp$1 = $mul64((tv.Usec), new $Int64(0, 1000)); + sec = _tmp; + nsec = _tmp$1; + return [sec, nsec]; + }; + $ptrType(Timeval).prototype.Nano = function Nano$1() { + var tv, x, x$1; + tv = this; + return (x = $mul64((tv.Sec), new $Int64(0, 1000000000)), x$1 = $mul64((tv.Usec), new $Int64(0, 1000)), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + }; + StopIO = function StopIO$1(fd) { + var fd; + return new Errno(38); + }; + $pkg.StopIO = StopIO; + Accept = function Accept$1(fd) { + var _tmp, _tmp$1, _tmp$2, err, fd, newfd, sa; + newfd = 0; + sa = $ifaceNil; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = $ifaceNil; + _tmp$2 = new Errno(38); + newfd = _tmp; + sa = _tmp$1; + err = _tmp$2; + return [newfd, sa, err]; + }; + $pkg.Accept = Accept; + Recvfrom = function Recvfrom$1(fd, p, flags) { + var _tmp, _tmp$1, _tmp$2, err, fd, flags, from, n, p; + n = 0; + from = $ifaceNil; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = $ifaceNil; + _tmp$2 = new Errno(38); + n = _tmp; + from = _tmp$1; + err = _tmp$2; + return [n, from, err]; + }; + $pkg.Recvfrom = Recvfrom; + Sendto = function Sendto$1(fd, p, flags, to) { + var fd, flags, p, to; + return new Errno(38); + }; + $pkg.Sendto = Sendto; + Recvmsg = function Recvmsg$1(fd, p, oob, flags) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, err, fd, flags, from, n, oob, oobn, p, recvflags; + n = 0; + oobn = 0; + recvflags = 0; + from = $ifaceNil; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = 0; + _tmp$3 = $ifaceNil; + _tmp$4 = new Errno(38); + n = _tmp; + oobn = _tmp$1; + recvflags = _tmp$2; + from = _tmp$3; + err = _tmp$4; + return [n, oobn, recvflags, from, err]; + }; + $pkg.Recvmsg = Recvmsg; + SendmsgN = function SendmsgN$1(fd, p, oob, to, flags) { + var _tmp, _tmp$1, err, fd, flags, n, oob, p, to; + n = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = new Errno(38); + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + $pkg.SendmsgN = SendmsgN; + SetReadDeadline = function SetReadDeadline$1(fd, t) { + var fd, t; + return new Errno(38); + }; + $pkg.SetReadDeadline = SetReadDeadline; + SetWriteDeadline = function SetWriteDeadline$1(fd, t) { + var fd, t; + return new Errno(38); + }; + $pkg.SetWriteDeadline = SetWriteDeadline; + Shutdown = function Shutdown$1(fd, how) { + var fd, how; + return new Errno(38); + }; + $pkg.Shutdown = Shutdown; + SetNonblock = function SetNonblock$1(fd, nonblocking) { + var fd, nonblocking; + return $ifaceNil; + }; + $pkg.SetNonblock = SetNonblock; + runtime_envs = function runtime_envs$1() { + var envkeys, envs$1, i, jsEnv, key, process; + process = $clone($clone(js.Global(), js.Value).Get("process"), js.Value); + if ($clone(process, js.Value).IsUndefined()) { + return sliceType.nil; + } + jsEnv = $clone($clone(process, js.Value).Get("env"), js.Value); + if ($clone(jsEnv, js.Value).IsUndefined()) { + return sliceType.nil; + } + envkeys = $clone($clone($clone(js.Global(), js.Value).Get("Object"), js.Value).Call("keys", new sliceType$2([new jsEnv.constructor.elem(jsEnv)])), js.Value); + envs$1 = $makeSlice(sliceType, $clone(envkeys, js.Value).Length()); + i = 0; + while (true) { + if (!(i < $clone(envkeys, js.Value).Length())) { break; } + key = $clone($clone(envkeys, js.Value).Index(i), js.Value).String(); + ((i < 0 || i >= envs$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : envs$1.$array[envs$1.$offset + i] = key + "=" + $clone($clone(jsEnv, js.Value).Get(key), js.Value).String()); + i = i + (1) >> 0; + } + return envs$1; + }; + setStat = function setStat$1(st, jsSt) { + var atime, ctime, jsSt, mtime, st; + st.Dev = (new $Int64(0, $clone($clone(jsSt, js.Value).Get("dev"), js.Value).Int())); + st.Ino = (new $Uint64(0, $clone($clone(jsSt, js.Value).Get("ino"), js.Value).Int())); + st.Mode = (($clone($clone(jsSt, js.Value).Get("mode"), js.Value).Int() >>> 0)); + st.Nlink = (($clone($clone(jsSt, js.Value).Get("nlink"), js.Value).Int() >>> 0)); + st.Uid = (($clone($clone(jsSt, js.Value).Get("uid"), js.Value).Int() >>> 0)); + st.Gid = (($clone($clone(jsSt, js.Value).Get("gid"), js.Value).Int() >>> 0)); + st.Rdev = (new $Int64(0, $clone($clone(jsSt, js.Value).Get("rdev"), js.Value).Int())); + st.Size = (new $Int64(0, $clone($clone(jsSt, js.Value).Get("size"), js.Value).Int())); + st.Blksize = (($clone($clone(jsSt, js.Value).Get("blksize"), js.Value).Int() >> 0)); + st.Blocks = (($clone($clone(jsSt, js.Value).Get("blocks"), js.Value).Int() >> 0)); + atime = (new $Int64(0, $clone($clone(jsSt, js.Value).Get("atimeMs"), js.Value).Float())); + st.Atime = $div64(atime, new $Int64(0, 1000), false); + st.AtimeNsec = $mul64(($div64(atime, new $Int64(0, 1000), true)), new $Int64(0, 1000000)); + mtime = (new $Int64(0, $clone($clone(jsSt, js.Value).Get("mtimeMs"), js.Value).Float())); + st.Mtime = $div64(mtime, new $Int64(0, 1000), false); + st.MtimeNsec = $mul64(($div64(mtime, new $Int64(0, 1000), true)), new $Int64(0, 1000000)); + ctime = (new $Int64(0, $clone($clone(jsSt, js.Value).Get("ctimeMs"), js.Value).Float())); + st.Ctime = $div64(ctime, new $Int64(0, 1000), false); + st.CtimeNsec = $mul64(($div64(ctime, new $Int64(0, 1000), true)), new $Int64(0, 1000000)); + }; + Exit = function Exit$1(code) { + var code, process; + process = $clone($clone(js.Global(), js.Value).Get("process"), js.Value); + if (!$clone(process, js.Value).IsUndefined()) { + $clone(process, js.Value).Call("exit", new sliceType$2([new $Int(code)])); + return; + } + if (!((code === 0))) { + $clone($clone(js.Global(), js.Value).Get("console"), js.Value).Call("warn", new sliceType$2([new $String("Go program exited with non-zero code:"), new $Int(code)])); + } + }; + $pkg.Exit = Exit; + fsCall = function fsCall$1(name, args) { + var {_r, args, c, f, name, res, $s, $deferred, $r, $c} = $restore(this, {name, args}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + c = [c]; + c[0] = new $Chan(callResult, 1); + f = $clone(js.FuncOf((function(c) { return function fsCall·func1(this$1, args$1) { + var {args$1, jsErr, res, this$1, $s, $r, $c} = $restore(this, {this$1, args$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + res = new callResult.ptr(new js.Value.ptr(null, false, arrayType$2.zero()), $ifaceNil); + if (args$1.$length >= 1) { + jsErr = $clone((0 >= args$1.$length ? ($throwRuntimeError("index out of range"), undefined) : args$1.$array[args$1.$offset + 0]), js.Value); + if (!$clone(jsErr, js.Value).IsUndefined() && !$clone(jsErr, js.Value).IsNull()) { + res.err = mapJSError($clone(jsErr, js.Value)); + } + } + js.Value.copy(res.val, js.Undefined()); + if (args$1.$length >= 2) { + js.Value.copy(res.val, (1 >= args$1.$length ? ($throwRuntimeError("index out of range"), undefined) : args$1.$array[args$1.$offset + 1])); + } + $r = $send(c[0], $clone($clone(res, callResult), callResult)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: fsCall·func1, $c: true, $r, args$1, jsErr, res, this$1, $s};return $f; + }; })(c)), js.Func); + $deferred.push([$methodVal($clone(f, js.Func), "Release"), []]); + if ($clone($clone(jsFS, js.Value).Get(name), js.Value).IsUndefined()) { + $s = -1; return [js.Undefined(), new Errno(38)]; + } + $clone(jsFS, js.Value).Call(name, $append(args, new f.constructor.elem(f))); + _r = $recv(c[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + res = $clone(_r[0], callResult); + $s = -1; return [res.val, res.err]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new js.Value.ptr(null, false, arrayType$2.zero()), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: fsCall$1, $c: true, $r, _r, args, c, f, name, res, $s, $deferred};return $f; } } + }; + fdToFile = function fdToFile$1(fd) { + var {_entry, _tuple, f, fd, ok, $s, $r, $c} = $restore(this, {fd}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = filesMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple = (_entry = $mapIndex(files,$Int.keyFor(fd)), _entry !== undefined ? [_entry.v, true] : [ptrType$2.nil, false]); + f = _tuple[0]; + ok = _tuple[1]; + $r = filesMu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!ok) { + $s = -1; return [ptrType$2.nil, new Errno(9)]; + } + $s = -1; return [f, $ifaceNil]; + /* */ } return; } var $f = {$blk: fdToFile$1, $c: true, $r, _entry, _tuple, f, fd, ok, $s};return $f; + }; + Open = function Open$1(path, openmode, perm) { + var {_i, _key, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, cwd, dir, entries, err, err$1, err$2, err$3, f, fd, flags, i, jsFD, openmode, path, perm, stat, $s, $r, $c} = $restore(this, {path, openmode, perm}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + err = checkPath(path); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + flags = 0; + if (!(((openmode & 1) === 0))) { + flags = flags | (nodeWRONLY); + } + if (!(((openmode & 2) === 0))) { + flags = flags | (nodeRDWR); + } + if (!(((openmode & 64) === 0))) { + flags = flags | (nodeCREATE); + } + if (!(((openmode & 512) === 0))) { + flags = flags | (nodeTRUNC); + } + if (!(((openmode & 1024) === 0))) { + flags = flags | (nodeAPPEND); + } + if (!(((openmode & 128) === 0))) { + flags = flags | (nodeEXCL); + } + if (!(((openmode & 4096) === 0))) { + $s = -1; return [0, errors.New("syscall.Open: O_SYNC is not supported by js/wasm")]; + } + _r = fsCall("open", new sliceType$2([new $String(path), new $Int(flags), new $Uint32(perm)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + jsFD = $clone(_tuple[0], js.Value); + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, err$1]; + } + fd = $clone(jsFD, js.Value).Int(); + entries = sliceType.nil; + _r$1 = fsCall("fstat", new sliceType$2([new $Int(fd)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + stat = $clone(_tuple$1[0], js.Value); + err$2 = _tuple$1[1]; + /* */ if ($interfaceIsEqual(err$2, $ifaceNil) && $clone($clone(stat, js.Value).Call("isDirectory", sliceType$2.nil), js.Value).Bool()) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($interfaceIsEqual(err$2, $ifaceNil) && $clone($clone(stat, js.Value).Call("isDirectory", sliceType$2.nil), js.Value).Bool()) { */ case 3: + _r$2 = fsCall("readdir", new sliceType$2([new $String(path)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + dir = $clone(_tuple$2[0], js.Value); + err$3 = _tuple$2[1]; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + $s = -1; return [0, err$3]; + } + entries = $makeSlice(sliceType, $clone(dir, js.Value).Length()); + _ref = entries; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= entries.$length) ? ($throwRuntimeError("index out of range"), undefined) : entries.$array[entries.$offset + i] = $clone($clone(dir, js.Value).Index(i), js.Value).String()); + _i++; + } + /* } */ case 4: + if (!((path.charCodeAt(0) === 47))) { + cwd = $clone($clone(jsProcess, js.Value).Call("cwd", sliceType$2.nil), js.Value).String(); + path = cwd + "/" + path; + } + f = new jsFile.ptr(path, entries, 0, new $Int64(0, 0), false); + $r = filesMu.Lock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _key = fd; (files || $throwRuntimeError("assignment to entry in nil map")).set($Int.keyFor(_key), { k: _key, v: f }); + $r = filesMu.Unlock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [fd, $ifaceNil]; + /* */ } return; } var $f = {$blk: Open$1, $c: true, $r, _i, _key, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, cwd, dir, entries, err, err$1, err$2, err$3, f, fd, flags, i, jsFD, openmode, path, perm, stat, $s};return $f; + }; + $pkg.Open = Open; + Close = function Close$1(fd) { + var {_r, _tuple, err, fd, $s, $r, $c} = $restore(this, {fd}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = filesMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $mapDelete(files, $Int.keyFor(fd)); + $r = filesMu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = fsCall("close", new sliceType$2([new $Int(fd)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } var $f = {$blk: Close$1, $c: true, $r, _r, _tuple, err, fd, $s};return $f; + }; + $pkg.Close = Close; + CloseOnExec = function CloseOnExec$1(fd) { + var fd; + }; + $pkg.CloseOnExec = CloseOnExec; + ReadDirent = function ReadDirent$1(fd, buf) { + var {_r, _tuple, buf, entry, err, f, fd, l, n, x, x$1, $s, $r, $c} = $restore(this, {fd, buf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fdToFile(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + if (f.entries === sliceType.nil) { + $s = -1; return [0, new Errno(22)]; + } + n = 0; + while (true) { + if (!(f.dirIdx < f.entries.$length)) { break; } + entry = (x = f.entries, x$1 = f.dirIdx, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + l = 2 + entry.length >> 0; + if (l > buf.$length) { + break; + } + (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0] = ((l << 24 >>> 24))); + (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1] = (((l >> 8 >> 0) << 24 >>> 24))); + $copyString($subslice(buf, 2), entry); + buf = $subslice(buf, l); + n = n + (l) >> 0; + f.dirIdx = f.dirIdx + (1) >> 0; + } + $s = -1; return [n, $ifaceNil]; + /* */ } return; } var $f = {$blk: ReadDirent$1, $c: true, $r, _r, _tuple, buf, entry, err, f, fd, l, n, x, x$1, $s};return $f; + }; + $pkg.ReadDirent = ReadDirent; + Stat = function Stat$1(path, st) { + var {_r, _tuple, err, err$1, jsSt, path, st, $s, $r, $c} = $restore(this, {path, st}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + err = checkPath(path); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = fsCall("stat", new sliceType$2([new $String(path)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + jsSt = $clone(_tuple[0], js.Value); + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + setStat(st, $clone(jsSt, js.Value)); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Stat$1, $c: true, $r, _r, _tuple, err, err$1, jsSt, path, st, $s};return $f; + }; + $pkg.Stat = Stat; + Lstat = function Lstat$1(path, st) { + var {_r, _tuple, err, err$1, jsSt, path, st, $s, $r, $c} = $restore(this, {path, st}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + err = checkPath(path); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = fsCall("lstat", new sliceType$2([new $String(path)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + jsSt = $clone(_tuple[0], js.Value); + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + setStat(st, $clone(jsSt, js.Value)); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Lstat$1, $c: true, $r, _r, _tuple, err, err$1, jsSt, path, st, $s};return $f; + }; + $pkg.Lstat = Lstat; + Fstat = function Fstat$1(fd, st) { + var {_r, _tuple, err, fd, jsSt, st, $s, $r, $c} = $restore(this, {fd, st}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fsCall("fstat", new sliceType$2([new $Int(fd)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + jsSt = $clone(_tuple[0], js.Value); + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + setStat(st, $clone(jsSt, js.Value)); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Fstat$1, $c: true, $r, _r, _tuple, err, fd, jsSt, st, $s};return $f; + }; + $pkg.Fstat = Fstat; + Chmod = function Chmod$1(path, mode) { + var {_r, _tuple, err, err$1, mode, path, $s, $r, $c} = $restore(this, {path, mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + err = checkPath(path); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = fsCall("chmod", new sliceType$2([new $String(path), new $Uint32(mode)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err$1 = _tuple[1]; + $s = -1; return err$1; + /* */ } return; } var $f = {$blk: Chmod$1, $c: true, $r, _r, _tuple, err, err$1, mode, path, $s};return $f; + }; + $pkg.Chmod = Chmod; + Fchmod = function Fchmod$1(fd, mode) { + var {_r, _tuple, err, fd, mode, $s, $r, $c} = $restore(this, {fd, mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fsCall("fchmod", new sliceType$2([new $Int(fd), new $Uint32(mode)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } var $f = {$blk: Fchmod$1, $c: true, $r, _r, _tuple, err, fd, mode, $s};return $f; + }; + $pkg.Fchmod = Fchmod; + Fchown = function Fchown$1(fd, uid, gid) { + var {_r, _tuple, err, fd, gid, uid, $s, $r, $c} = $restore(this, {fd, uid, gid}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fsCall("fchown", new sliceType$2([new $Int(fd), new $Uint32(((uid >>> 0))), new $Uint32(((gid >>> 0)))])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } var $f = {$blk: Fchown$1, $c: true, $r, _r, _tuple, err, fd, gid, uid, $s};return $f; + }; + $pkg.Fchown = Fchown; + Ftruncate = function Ftruncate$1(fd, length) { + var {_r, _tuple, err, fd, length, $s, $r, $c} = $restore(this, {fd, length}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fsCall("ftruncate", new sliceType$2([new $Int(fd), length])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } var $f = {$blk: Ftruncate$1, $c: true, $r, _r, _tuple, err, fd, length, $s};return $f; + }; + $pkg.Ftruncate = Ftruncate; + Getcwd = function Getcwd$1(buf) { + var buf, cwd, err, err$24ptr, n, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + n = 0; + err = $ifaceNil; + $deferred.push([recoverErr, [(err$24ptr || (err$24ptr = new ptrType(function() { return err; }, function($v) { err = $v; })))]]); + cwd = $clone($clone(jsProcess, js.Value).Call("cwd", sliceType$2.nil), js.Value).String(); + n = $copyString(buf, cwd); + return [n, err]; + /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [n, err]; } } + }; + $pkg.Getcwd = Getcwd; + Chdir = function Chdir$1(path) { + var err, err$1, err$24ptr, path, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + err = $ifaceNil; + err$1 = checkPath(path); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + err = err$1; + return err; + } + $deferred.push([recoverErr, [(err$24ptr || (err$24ptr = new ptrType(function() { return err; }, function($v) { err = $v; })))]]); + $clone(jsProcess, js.Value).Call("chdir", new sliceType$2([new $String(path)])); + return err; + /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err; } } + }; + $pkg.Chdir = Chdir; + Fchdir = function Fchdir$1(fd) { + var {_r, _tuple, err, f, fd, $s, $r, $c} = $restore(this, {fd}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fdToFile(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $s = -1; return Chdir(f.path); + /* */ } return; } var $f = {$blk: Fchdir$1, $c: true, $r, _r, _tuple, err, f, fd, $s};return $f; + }; + $pkg.Fchdir = Fchdir; + Readlink = function Readlink$1(path, buf) { + var {_r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, buf, dst, err, err$1, n, path, $s, $r, $c} = $restore(this, {path, buf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + err$1 = checkPath(path); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + _r = fsCall("readlink", new sliceType$2([new $String(path)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + dst = $clone(_tuple[0], js.Value); + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$2 = 0; + _tmp$3 = err; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + n = $copyString(buf, $clone(dst, js.Value).String()); + _tmp$4 = n; + _tmp$5 = $ifaceNil; + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: Readlink$1, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, buf, dst, err, err$1, n, path, $s};return $f; + }; + $pkg.Readlink = Readlink; + Fsync = function Fsync$1(fd) { + var {_r, _tuple, err, fd, $s, $r, $c} = $restore(this, {fd}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fsCall("fsync", new sliceType$2([new $Int(fd)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } var $f = {$blk: Fsync$1, $c: true, $r, _r, _tuple, err, fd, $s};return $f; + }; + $pkg.Fsync = Fsync; + Read = function Read$1(fd, b) { + var {_r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, b, buf, err, err$1, f, fd, n, n$1, n2, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {fd, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fdToFile(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + /* */ if (f.seeked) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (f.seeked) { */ case 2: + _r$1 = Pread(fd, b, f.pos); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + n = _tuple$1[0]; + err$1 = _tuple$1[1]; + f.pos = (x = f.pos, x$1 = (new $Int64(0, n)), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + $s = -1; return [n, err$1]; + /* } */ case 3: + buf = $clone($clone(uint8Array, js.Value).New(new sliceType$2([new $Int(b.$length)])), js.Value); + _r$2 = fsCall("read", new sliceType$2([new $Int(fd), new buf.constructor.elem(buf), new $Int(0), new $Int(b.$length), $ifaceNil])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + n$1 = $clone(_tuple$2[0], js.Value); + err = _tuple$2[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + js.CopyBytesToGo(b, $clone(buf, js.Value)); + n2 = $clone(n$1, js.Value).Int(); + f.pos = (x$2 = f.pos, x$3 = (new $Int64(0, n2)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); + $s = -1; return [n2, err]; + /* */ } return; } var $f = {$blk: Read$1, $c: true, $r, _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, b, buf, err, err$1, f, fd, n, n$1, n2, x, x$1, x$2, x$3, $s};return $f; + }; + $pkg.Read = Read; + Write = function Write$1(fd, b) { + var {_r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, b, buf, err, err$1, f, fd, n, n$1, n$2, n2, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {fd, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fdToFile(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + /* */ if (f.seeked) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (f.seeked) { */ case 2: + _r$1 = Pwrite(fd, b, f.pos); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + n = _tuple$1[0]; + err$1 = _tuple$1[1]; + f.pos = (x = f.pos, x$1 = (new $Int64(0, n)), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + $s = -1; return [n, err$1]; + /* } */ case 3: + if (false && ((fd === 1) || (fd === 2))) { + n$1 = faketimeWrite(fd, b); + if (n$1 < 0) { + $s = -1; return [0, errnoErr(((-n$1 >>> 0)))]; + } + $s = -1; return [n$1, $ifaceNil]; + } + buf = $clone($clone(uint8Array, js.Value).New(new sliceType$2([new $Int(b.$length)])), js.Value); + js.CopyBytesToJS($clone(buf, js.Value), b); + _r$2 = fsCall("write", new sliceType$2([new $Int(fd), new buf.constructor.elem(buf), new $Int(0), new $Int(b.$length), $ifaceNil])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + n$2 = $clone(_tuple$2[0], js.Value); + err = _tuple$2[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + n2 = $clone(n$2, js.Value).Int(); + f.pos = (x$2 = f.pos, x$3 = (new $Int64(0, n2)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); + $s = -1; return [n2, err]; + /* */ } return; } var $f = {$blk: Write$1, $c: true, $r, _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, b, buf, err, err$1, f, fd, n, n$1, n$2, n2, x, x$1, x$2, x$3, $s};return $f; + }; + $pkg.Write = Write; + Pread = function Pread$1(fd, b, offset) { + var {_r, _tuple, b, buf, err, fd, n, offset, $s, $r, $c} = $restore(this, {fd, b, offset}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = $clone($clone(uint8Array, js.Value).New(new sliceType$2([new $Int(b.$length)])), js.Value); + _r = fsCall("read", new sliceType$2([new $Int(fd), new buf.constructor.elem(buf), new $Int(0), new $Int(b.$length), offset])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = $clone(_tuple[0], js.Value); + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + js.CopyBytesToGo(b, $clone(buf, js.Value)); + $s = -1; return [$clone(n, js.Value).Int(), $ifaceNil]; + /* */ } return; } var $f = {$blk: Pread$1, $c: true, $r, _r, _tuple, b, buf, err, fd, n, offset, $s};return $f; + }; + $pkg.Pread = Pread; + Pwrite = function Pwrite$1(fd, b, offset) { + var {_r, _tuple, b, buf, err, fd, n, offset, $s, $r, $c} = $restore(this, {fd, b, offset}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = $clone($clone(uint8Array, js.Value).New(new sliceType$2([new $Int(b.$length)])), js.Value); + js.CopyBytesToJS($clone(buf, js.Value), b); + _r = fsCall("write", new sliceType$2([new $Int(fd), new buf.constructor.elem(buf), new $Int(0), new $Int(b.$length), offset])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = $clone(_tuple[0], js.Value); + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $s = -1; return [$clone(n, js.Value).Int(), $ifaceNil]; + /* */ } return; } var $f = {$blk: Pwrite$1, $c: true, $r, _r, _tuple, b, buf, err, fd, n, offset, $s};return $f; + }; + $pkg.Pwrite = Pwrite; + Seek = function Seek$1(fd, offset, whence) { + var {_1, _r, _r$1, _tuple, err, err$1, f, fd, newPos, offset, st, whence, x, x$1, $s, $r, $c} = $restore(this, {fd, offset, whence}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + st = [st]; + _r = fdToFile(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err]; + } + newPos = new $Int64(0, 0); + _1 = whence; + /* */ if (_1 === (0)) { $s = 3; continue; } + /* */ if (_1 === (1)) { $s = 4; continue; } + /* */ if (_1 === (2)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (0)) { */ case 3: + newPos = offset; + $s = 7; continue; + /* } else if (_1 === (1)) { */ case 4: + newPos = (x = f.pos, new $Int64(x.$high + offset.$high, x.$low + offset.$low)); + $s = 7; continue; + /* } else if (_1 === (2)) { */ case 5: + st[0] = new Stat_t.ptr(new $Int64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0)); + _r$1 = Fstat(fd, st[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err$1]; + } + newPos = (x$1 = st[0].Size, new $Int64(x$1.$high + offset.$high, x$1.$low + offset.$low)); + $s = 7; continue; + /* } else { */ case 6: + $s = -1; return [new $Int64(0, 0), errnoErr(22)]; + /* } */ case 7: + case 2: + if ((newPos.$high < 0 || (newPos.$high === 0 && newPos.$low < 0))) { + $s = -1; return [new $Int64(0, 0), errnoErr(22)]; + } + f.seeked = true; + f.dirIdx = 0; + f.pos = newPos; + $s = -1; return [newPos, $ifaceNil]; + /* */ } return; } var $f = {$blk: Seek$1, $c: true, $r, _1, _r, _r$1, _tuple, err, err$1, f, fd, newPos, offset, st, whence, x, x$1, $s};return $f; + }; + $pkg.Seek = Seek; + Dup = function Dup$1(fd) { + var fd; + return [0, new Errno(38)]; + }; + $pkg.Dup = Dup; + Pipe = function Pipe$1(fd) { + var fd; + return new Errno(38); + }; + $pkg.Pipe = Pipe; + checkPath = function checkPath$1(path) { + var i, path; + if (path === "") { + return new Errno(22); + } + i = 0; + while (true) { + if (!(i < path.length)) { break; } + if (path.charCodeAt(i) === 0) { + return new Errno(22); + } + i = i + (1) >> 0; + } + return $ifaceNil; + }; + recoverErr = function recoverErr$1(errPtr) { + var _tuple, err, errPtr, jsErr, ok; + err = $recover(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tuple = $assertType(err, js.Error, true); + jsErr = $clone(_tuple[0], js.Error); + ok = _tuple[1]; + if (!ok) { + $panic(err); + } + errPtr.$set(mapJSError($clone(jsErr.Value, js.Value))); + } + }; + mapJSError = function mapJSError$1(jsErr) { + var _entry, _tuple, errno, jsErr, ok; + _tuple = (_entry = $mapIndex(errnoByCode,$String.keyFor($clone($clone(jsErr, js.Value).Get("code"), js.Value).String())), _entry !== undefined ? [_entry.v, true] : [0, false]); + errno = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + $panic(new jsErr.constructor.elem(jsErr)); + } + return errnoErr((errno)); + }; + copyenv = function copyenv$1() { + var _entry, _i, _key, _ref, _tuple, i, j, key, ok, s; + env = new $global.Map(); + _ref = envs; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + j = 0; + while (true) { + if (!(j < s.length)) { break; } + if (s.charCodeAt(j) === 61) { + key = $substring(s, 0, j); + _tuple = (_entry = $mapIndex(env,$String.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [0, false]); + ok = _tuple[1]; + if (!ok) { + _key = key; (env || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: i }); + } else { + ((i < 0 || i >= envs.$length) ? ($throwRuntimeError("index out of range"), undefined) : envs.$array[envs.$offset + i] = ""); + } + break; + } + j = j + (1) >> 0; + } + _i++; + } + }; + Getenv = function Getenv$1(key) { + var {$24r, $24r$1, $24r$2, _entry, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, found, i, i$1, key, ok, s, value, $s, $deferred, $r, $c} = $restore(this, {key}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + value = ""; + found = false; + $r = envOnce.Do(copyenv); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (key.length === 0) { + _tmp = ""; + _tmp$1 = false; + value = _tmp; + found = _tmp$1; + $s = -1; return [value, found]; + } + $r = envLock.RLock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(envLock, "RUnlock"), []]); + _tuple = (_entry = $mapIndex(env,$String.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [0, false]); + i = _tuple[0]; + ok = _tuple[1]; + /* */ if (!ok) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!ok) { */ case 3: + _tmp$2 = ""; + _tmp$3 = false; + value = _tmp$2; + found = _tmp$3; + $24r = [value, found]; + $s = 5; case 5: return $24r; + /* } */ case 4: + s = ((i < 0 || i >= envs.$length) ? ($throwRuntimeError("index out of range"), undefined) : envs.$array[envs.$offset + i]); + i$1 = 0; + /* while (true) { */ case 6: + /* if (!(i$1 < s.length)) { break; } */ if(!(i$1 < s.length)) { $s = 7; continue; } + /* */ if (s.charCodeAt(i$1) === 61) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (s.charCodeAt(i$1) === 61) { */ case 8: + _tmp$4 = $substring(s, (i$1 + 1 >> 0)); + _tmp$5 = true; + value = _tmp$4; + found = _tmp$5; + $24r$1 = [value, found]; + $s = 10; case 10: return $24r$1; + /* } */ case 9: + i$1 = i$1 + (1) >> 0; + $s = 6; continue; + case 7: + _tmp$6 = ""; + _tmp$7 = false; + value = _tmp$6; + found = _tmp$7; + $24r$2 = [value, found]; + $s = 11; case 11: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [value, found]; } if($curGoroutine.asleep) { var $f = {$blk: Getenv$1, $c: true, $r, $24r, $24r$1, $24r$2, _entry, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, found, i, i$1, key, ok, s, value, $s, $deferred};return $f; } } + }; + $pkg.Getenv = Getenv; + Environ = function Environ$1() { + var {$24r, _i, _ref, a, env$1, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + $r = envOnce.Do(copyenv); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = envLock.RLock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(envLock, "RUnlock"), []]); + a = $makeSlice(sliceType, 0, envs.$length); + _ref = envs; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + env$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(env$1 === "")) { + a = $append(a, env$1); + } + _i++; + } + $24r = a; + $s = 3; case 3: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return sliceType.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Environ$1, $c: true, $r, $24r, _i, _ref, a, env$1, $s, $deferred};return $f; } } + }; + $pkg.Environ = Environ; + Errno.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Is", name: "Is", pkg: "", typ: $funcType([$error], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; + Signal.methods = [{prop: "Signal", name: "Signal", pkg: "", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + WaitStatus.methods = [{prop: "Exited", name: "Exited", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ExitStatus", name: "ExitStatus", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Signaled", name: "Signaled", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Signal", name: "Signal", pkg: "", typ: $funcType([], [Signal], false)}, {prop: "CoreDump", name: "CoreDump", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Stopped", name: "Stopped", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Continued", name: "Continued", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "StopSignal", name: "StopSignal", pkg: "", typ: $funcType([], [Signal], false)}, {prop: "TrapCause", name: "TrapCause", pkg: "", typ: $funcType([], [$Int], false)}]; + ptrType$5.methods = [{prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64, $Int64], false)}, {prop: "Nano", name: "Nano", pkg: "", typ: $funcType([], [$Int64], false)}]; + Stat_t.init("", [{prop: "Dev", name: "Dev", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Ino", name: "Ino", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Nlink", name: "Nlink", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Uid", name: "Uid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Gid", name: "Gid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Rdev", name: "Rdev", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Size", name: "Size", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Blksize", name: "Blksize", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Blocks", name: "Blocks", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Atime", name: "Atime", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "AtimeNsec", name: "AtimeNsec", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Mtime", name: "Mtime", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "MtimeNsec", name: "MtimeNsec", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Ctime", name: "Ctime", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "CtimeNsec", name: "CtimeNsec", embedded: false, exported: true, typ: $Int64, tag: ""}]); + Rusage.init("", [{prop: "Utime", name: "Utime", embedded: false, exported: true, typ: Timeval, tag: ""}, {prop: "Stime", name: "Stime", embedded: false, exported: true, typ: Timeval, tag: ""}]); + ProcAttr.init("", [{prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Env", name: "Env", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Files", name: "Files", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "Sys", name: "Sys", embedded: false, exported: true, typ: ptrType$3, tag: ""}]); + SysProcAttr.init("", []); + Iovec.init("", []); + Timeval.init("", [{prop: "Sec", name: "Sec", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Usec", name: "Usec", embedded: false, exported: true, typ: $Int64, tag: ""}]); + Sockaddr.init([]); + SockaddrInet4.init("", [{prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$3, tag: ""}]); + SockaddrInet6.init("", [{prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "ZoneId", name: "ZoneId", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$4, tag: ""}]); + RawConn.init([{prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$2], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$2], [$error], false)}]); + jsFile.init("syscall", [{prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "entries", name: "entries", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "dirIdx", name: "dirIdx", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "seeked", name: "seeked", embedded: false, exported: false, typ: $Bool, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = itoa.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = oserror.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ForkLock = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0); + filesMu = new sync.Mutex.ptr(0, 0); + envOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); + envLock = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0); + env = false; + errorstr = $toNativeArray($kindString, ["", "Operation not permitted", "No such file or directory", "No such process", "Interrupted system call", "I/O error", "No such device or address", "Argument list too long", "Exec format error", "Bad file number", "No child processes", "Try again", "Out of memory", "Permission denied", "Bad address", "", "Device or resource busy", "File exists", "Cross-device link", "No such device", "Not a directory", "Is a directory", "Invalid argument", "File table overflow", "Too many open files", "Not a typewriter", "", "File too large", "No space left on device", "Illegal seek", "Read-only file system", "Too many links", "Broken pipe", "Math arg out of domain of func", "Math result not representable", "Deadlock condition", "File name too long", "No record locks available", "not implemented on js", "Directory not empty", "Too many symbolic links", "", "No message of desired type", "Identifier removed", "Channel number out of range", "Level 2 not synchronized", "Level 3 halted", "Level 3 reset", "Link number out of range", "Protocol driver not attached", "No CSI structure available", "Level 2 halted", "Invalid exchange", "Invalid request descriptor", "Exchange full", "No anode", "Invalid request code", "Invalid slot", "", "Bad font file fmt", "Device not a stream", "No data (for no delay io)", "Timer expired", "Out of streams resources", "Machine is not on the network", "Package not installed", "The object is remote", "The link has been severed", "Advertise error", "Srmount error", "Communication error on send", "Protocol error", "Multihop attempted", "Cross mount point (not really error)", "Trying to read unreadable message", "Value too large for defined data type", "Given log. name not unique", "f.d. invalid for this operation", "Remote address changed", "Can't access a needed shared lib", "Accessing a corrupted shared lib", ".lib section in a.out corrupted", "Attempting to link in too many libs", "Attempting to exec a shared library", "", "", "", "", "Socket operation on non-socket", "Destination address required", "Message too long", "Protocol wrong type for socket", "Protocol not available", "Unknown protocol", "Socket type not supported", "Operation not supported on transport endpoint", "Protocol family not supported", "Address family not supported by protocol family", "Address already in use", "Address not available", "Network interface is not configured", "Network is unreachable", "", "Connection aborted", "Connection reset by peer", "No buffer space available", "Socket is already connected", "Socket is not connected", "Can't send after socket shutdown", "", "Connection timed out", "Connection refused", "Host is down", "Host is unreachable", "Socket already connected", "Connection already in progress", "", "", "", "", "", "", "Quota exceeded", "No medium (in tape drive)", "", "Operation canceled.", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Inode is remote (not really error)", "Inappropriate file type or format", "No more files", "", "No such host or network path", "Filename exists with different case"]); + errEAGAIN = new Errno(11); + errEINVAL = new Errno(22); + errENOENT = new Errno(2); + errnoByCode = $makeMap($String.keyFor, [{ k: "EPERM", v: 1 }, { k: "ENOENT", v: 2 }, { k: "ESRCH", v: 3 }, { k: "EINTR", v: 4 }, { k: "EIO", v: 5 }, { k: "ENXIO", v: 6 }, { k: "E2BIG", v: 7 }, { k: "ENOEXEC", v: 8 }, { k: "EBADF", v: 9 }, { k: "ECHILD", v: 10 }, { k: "EAGAIN", v: 11 }, { k: "ENOMEM", v: 12 }, { k: "EACCES", v: 13 }, { k: "EFAULT", v: 14 }, { k: "EBUSY", v: 16 }, { k: "EEXIST", v: 17 }, { k: "EXDEV", v: 18 }, { k: "ENODEV", v: 19 }, { k: "ENOTDIR", v: 20 }, { k: "EISDIR", v: 21 }, { k: "EINVAL", v: 22 }, { k: "ENFILE", v: 23 }, { k: "EMFILE", v: 24 }, { k: "ENOTTY", v: 25 }, { k: "EFBIG", v: 27 }, { k: "ENOSPC", v: 28 }, { k: "ESPIPE", v: 29 }, { k: "EROFS", v: 30 }, { k: "EMLINK", v: 31 }, { k: "EPIPE", v: 32 }, { k: "ENAMETOOLONG", v: 36 }, { k: "ENOSYS", v: 38 }, { k: "EDQUOT", v: 122 }, { k: "EDOM", v: 33 }, { k: "ERANGE", v: 34 }, { k: "EDEADLK", v: 35 }, { k: "ENOLCK", v: 37 }, { k: "ENOTEMPTY", v: 39 }, { k: "ELOOP", v: 40 }, { k: "ENOMSG", v: 42 }, { k: "EIDRM", v: 43 }, { k: "ECHRNG", v: 44 }, { k: "EL2NSYNC", v: 45 }, { k: "EL3HLT", v: 46 }, { k: "EL3RST", v: 47 }, { k: "ELNRNG", v: 48 }, { k: "EUNATCH", v: 49 }, { k: "ENOCSI", v: 50 }, { k: "EL2HLT", v: 51 }, { k: "EBADE", v: 52 }, { k: "EBADR", v: 53 }, { k: "EXFULL", v: 54 }, { k: "ENOANO", v: 55 }, { k: "EBADRQC", v: 56 }, { k: "EBADSLT", v: 57 }, { k: "EDEADLOCK", v: 35 }, { k: "EBFONT", v: 59 }, { k: "ENOSTR", v: 60 }, { k: "ENODATA", v: 61 }, { k: "ETIME", v: 62 }, { k: "ENOSR", v: 63 }, { k: "ENONET", v: 64 }, { k: "ENOPKG", v: 65 }, { k: "EREMOTE", v: 66 }, { k: "ENOLINK", v: 67 }, { k: "EADV", v: 68 }, { k: "ESRMNT", v: 69 }, { k: "ECOMM", v: 70 }, { k: "EPROTO", v: 71 }, { k: "EMULTIHOP", v: 72 }, { k: "EDOTDOT", v: 73 }, { k: "EBADMSG", v: 74 }, { k: "EOVERFLOW", v: 75 }, { k: "ENOTUNIQ", v: 76 }, { k: "EBADFD", v: 77 }, { k: "EREMCHG", v: 78 }, { k: "ELIBACC", v: 79 }, { k: "ELIBBAD", v: 80 }, { k: "ELIBSCN", v: 81 }, { k: "ELIBMAX", v: 82 }, { k: "ELIBEXEC", v: 83 }, { k: "EILSEQ", v: 84 }, { k: "EUSERS", v: 87 }, { k: "ENOTSOCK", v: 88 }, { k: "EDESTADDRREQ", v: 89 }, { k: "EMSGSIZE", v: 90 }, { k: "EPROTOTYPE", v: 91 }, { k: "ENOPROTOOPT", v: 92 }, { k: "EPROTONOSUPPORT", v: 93 }, { k: "ESOCKTNOSUPPORT", v: 94 }, { k: "EOPNOTSUPP", v: 95 }, { k: "EPFNOSUPPORT", v: 96 }, { k: "EAFNOSUPPORT", v: 97 }, { k: "EADDRINUSE", v: 98 }, { k: "EADDRNOTAVAIL", v: 99 }, { k: "ENETDOWN", v: 100 }, { k: "ENETUNREACH", v: 101 }, { k: "ENETRESET", v: 102 }, { k: "ECONNABORTED", v: 103 }, { k: "ECONNRESET", v: 104 }, { k: "ENOBUFS", v: 105 }, { k: "EISCONN", v: 106 }, { k: "ENOTCONN", v: 107 }, { k: "ESHUTDOWN", v: 108 }, { k: "ETOOMANYREFS", v: 109 }, { k: "ETIMEDOUT", v: 110 }, { k: "ECONNREFUSED", v: 111 }, { k: "EHOSTDOWN", v: 112 }, { k: "EHOSTUNREACH", v: 113 }, { k: "EALREADY", v: 114 }, { k: "EINPROGRESS", v: 115 }, { k: "ESTALE", v: 116 }, { k: "ENOTSUP", v: 95 }, { k: "ENOMEDIUM", v: 123 }, { k: "ECANCELED", v: 125 }, { k: "ELBIN", v: 2048 }, { k: "EFTYPE", v: 2049 }, { k: "ENMFILE", v: 2050 }, { k: "EPROCLIM", v: 2051 }, { k: "ENOSHARE", v: 2052 }, { k: "ECASECLASH", v: 2053 }, { k: "EWOULDBLOCK", v: 11 }]); + signals = arrayType.zero(); + jsProcess = $clone($clone(js.Global(), js.Value).Get("process"), js.Value); + jsFS = $clone($clone(js.Global(), js.Value).Get("fs"), js.Value); + constants = $clone($clone(jsFS, js.Value).Get("constants"), js.Value); + uint8Array = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value); + nodeWRONLY = $clone($clone(constants, js.Value).Get("O_WRONLY"), js.Value).Int(); + nodeRDWR = $clone($clone(constants, js.Value).Get("O_RDWR"), js.Value).Int(); + nodeCREATE = $clone($clone(constants, js.Value).Get("O_CREAT"), js.Value).Int(); + nodeTRUNC = $clone($clone(constants, js.Value).Get("O_TRUNC"), js.Value).Int(); + nodeAPPEND = $clone($clone(constants, js.Value).Get("O_APPEND"), js.Value).Int(); + nodeEXCL = $clone($clone(constants, js.Value).Get("O_EXCL"), js.Value).Int(); + files = $makeMap($Int.keyFor, [{ k: 0, v: new jsFile.ptr("", sliceType.nil, 0, new $Int64(0, 0), false) }, { k: 1, v: new jsFile.ptr("", sliceType.nil, 0, new $Int64(0, 0), false) }, { k: 2, v: new jsFile.ptr("", sliceType.nil, 0, new $Int64(0, 0), false) }]); + envs = runtime_envs(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/syscall/unix"] = (function() { + var $pkg = {}, $init, syscall, IsNonblock, RecvfromInet4, RecvfromInet6, SendtoInet4, SendtoInet6, SendmsgNInet4, SendmsgNInet6, RecvmsgInet4, RecvmsgInet6; + syscall = $packages["syscall"]; + $pkg.$finishSetup = function() { + IsNonblock = function IsNonblock$1(fd) { + var _tmp, _tmp$1, err, fd, nonblocking; + nonblocking = false; + err = $ifaceNil; + _tmp = false; + _tmp$1 = $ifaceNil; + nonblocking = _tmp; + err = _tmp$1; + return [nonblocking, err]; + }; + $pkg.IsNonblock = IsNonblock; + RecvfromInet4 = function RecvfromInet4$1(fd, p, flags, from) { + var fd, flags, from, p; + return [0, new syscall.Errno(38)]; + }; + $pkg.RecvfromInet4 = RecvfromInet4; + RecvfromInet6 = function RecvfromInet6$1(fd, p, flags, from) { + var _tmp, _tmp$1, err, fd, flags, from, n, p; + n = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = new syscall.Errno(38); + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + $pkg.RecvfromInet6 = RecvfromInet6; + SendtoInet4 = function SendtoInet4$1(fd, p, flags, to) { + var err, fd, flags, p, to; + err = $ifaceNil; + err = new syscall.Errno(38); + return err; + }; + $pkg.SendtoInet4 = SendtoInet4; + SendtoInet6 = function SendtoInet6$1(fd, p, flags, to) { + var err, fd, flags, p, to; + err = $ifaceNil; + err = new syscall.Errno(38); + return err; + }; + $pkg.SendtoInet6 = SendtoInet6; + SendmsgNInet4 = function SendmsgNInet4$1(fd, p, oob, to, flags) { + var _tmp, _tmp$1, err, fd, flags, n, oob, p, to; + n = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = new syscall.Errno(38); + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + $pkg.SendmsgNInet4 = SendmsgNInet4; + SendmsgNInet6 = function SendmsgNInet6$1(fd, p, oob, to, flags) { + var _tmp, _tmp$1, err, fd, flags, n, oob, p, to; + n = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = new syscall.Errno(38); + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + $pkg.SendmsgNInet6 = SendmsgNInet6; + RecvmsgInet4 = function RecvmsgInet4$1(fd, p, oob, flags, from) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, err, fd, flags, from, n, oob, oobn, p, recvflags; + n = 0; + oobn = 0; + recvflags = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = 0; + _tmp$3 = new syscall.Errno(38); + n = _tmp; + oobn = _tmp$1; + recvflags = _tmp$2; + err = _tmp$3; + return [n, oobn, recvflags, err]; + }; + $pkg.RecvmsgInet4 = RecvmsgInet4; + RecvmsgInet6 = function RecvmsgInet6$1(fd, p, oob, flags, from) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, err, fd, flags, from, n, oob, oobn, p, recvflags; + n = 0; + oobn = 0; + recvflags = 0; + err = $ifaceNil; + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = 0; + _tmp$3 = new syscall.Errno(38); + n = _tmp; + oobn = _tmp$1; + recvflags = _tmp$2; + err = _tmp$3; + return [n, oobn, recvflags, err]; + }; + $pkg.RecvmsgInet6 = RecvmsgInet6; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = syscall.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/nosync"] = (function() { + var $pkg = {}, $init, Pool, Once, Mutex, RWMutex, Map; + Pool = $newType(0, $kindStruct, "nosync.Pool", true, "github.com/gopherjs/gopherjs/nosync", true, function(store_, New_) { + this.$val = this; + if (arguments.length === 0) { + this.store = sliceType.nil; + this.New = $throwNilPointerError; + return; + } + this.store = store_; + this.New = New_; + }); + Once = $newType(0, $kindStruct, "nosync.Once", true, "github.com/gopherjs/gopherjs/nosync", true, function(doing_, done_) { + this.$val = this; + if (arguments.length === 0) { + this.doing = false; + this.done = false; + return; + } + this.doing = doing_; + this.done = done_; + }); + Mutex = $newType(0, $kindStruct, "nosync.Mutex", true, "github.com/gopherjs/gopherjs/nosync", true, function(locked_, _$1_, _$2_, _$3_, _$4_) { + this.$val = this; + if (arguments.length === 0) { + this.locked = false; + this._$1 = false; + this._$2 = false; + this._$3 = false; + this._$4 = 0; + return; + } + this.locked = locked_; + this._$1 = _$1_; + this._$2 = _$2_; + this._$3 = _$3_; + this._$4 = _$4_; + }); + RWMutex = $newType(0, $kindStruct, "nosync.RWMutex", true, "github.com/gopherjs/gopherjs/nosync", true, function(_$0_, writeLocked_, _$2_, _$3_, _$4_, readLockCounter_, _$6_, _$7_) { + this.$val = this; + if (arguments.length === 0) { + this._$0 = new Mutex.ptr(false, false, false, false, 0); + this.writeLocked = false; + this._$2 = false; + this._$3 = false; + this._$4 = false; + this.readLockCounter = 0; + this._$6 = 0; + this._$7 = 0; + return; + } + this._$0 = _$0_; + this.writeLocked = writeLocked_; + this._$2 = _$2_; + this._$3 = _$3_; + this._$4 = _$4_; + this.readLockCounter = readLockCounter_; + this._$6 = _$6_; + this._$7 = _$7_; + }); + Map = $newType(0, $kindStruct, "nosync.Map", true, "github.com/gopherjs/gopherjs/nosync", true, function(m_) { + this.$val = this; + if (arguments.length === 0) { + this.m = false; + return; + } + this.m = m_; + }); + $pkg.Pool = Pool; + $pkg.Once = Once; + $pkg.Mutex = Mutex; + $pkg.RWMutex = RWMutex; + $pkg.Map = Map; + $pkg.$finishSetup = function() { + $ptrType(Pool).prototype.Get = function Get() { + var {$24r, _r, p, x, x$1, x$2, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (p.store.$length === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.store.$length === 0) { */ case 1: + /* */ if (!(p.New === $throwNilPointerError)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(p.New === $throwNilPointerError)) { */ case 3: + _r = p.New(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 6; case 6: return $24r; + /* } */ case 4: + $s = -1; return $ifaceNil; + /* } */ case 2: + x$2 = (x = p.store, x$1 = p.store.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + p.store = $subslice(p.store, 0, (p.store.$length - 1 >> 0)); + $s = -1; return x$2; + /* */ } return; } var $f = {$blk: Get, $c: true, $r, $24r, _r, p, x, x$1, x$2, $s};return $f; + }; + $ptrType(Pool).prototype.Put = function Put(x) { + var p, x; + p = this; + if ($interfaceIsEqual(x, $ifaceNil)) { + return; + } + p.store = $append(p.store, x); + }; + $ptrType(Once).prototype.Do = function Do(f) { + var {f, o, $s, $deferred, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + o = [o]; + o[0] = this; + if (o[0].done) { + $s = -1; return; + } + if (o[0].doing) { + $panic(new $String("nosync: Do called within f")); + } + o[0].doing = true; + $deferred.push([(function(o) { return function Once·Do·func1() { + o[0].doing = false; + o[0].done = true; + }; })(o), []]); + $r = f(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Do, $c: true, $r, f, o, $s, $deferred};return $f; } } + }; + $ptrType(Mutex).prototype.Lock = function Lock() { + var m; + m = this; + if (m.locked) { + $panic(new $String("nosync: mutex is already locked")); + } + m.locked = true; + }; + $ptrType(Mutex).prototype.Unlock = function Unlock() { + var m; + m = this; + if (!m.locked) { + $panic(new $String("nosync: unlock of unlocked mutex")); + } + m.locked = false; + }; + $ptrType(RWMutex).prototype.Lock = function Lock$1() { + var rw; + rw = this; + if (!((rw.readLockCounter === 0)) || rw.writeLocked) { + $panic(new $String("nosync: mutex is already locked")); + } + rw.writeLocked = true; + }; + $ptrType(RWMutex).prototype.Unlock = function Unlock$1() { + var rw; + rw = this; + if (!rw.writeLocked) { + $panic(new $String("nosync: unlock of unlocked mutex")); + } + rw.writeLocked = false; + }; + $ptrType(RWMutex).prototype.RLock = function RLock() { + var rw; + rw = this; + if (rw.writeLocked) { + $panic(new $String("nosync: mutex is already locked")); + } + rw.readLockCounter = rw.readLockCounter + (1) >> 0; + }; + $ptrType(RWMutex).prototype.RUnlock = function RUnlock() { + var rw; + rw = this; + if (rw.readLockCounter === 0) { + $panic(new $String("nosync: unlock of unlocked mutex")); + } + rw.readLockCounter = rw.readLockCounter - (1) >> 0; + }; + $ptrType(Map).prototype.Load = function Load(key) { + var _entry, _tmp, _tmp$1, _tuple, key, m, ok, value; + value = $ifaceNil; + ok = false; + m = this; + _tuple = (_entry = $mapIndex(m.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); + value = _tuple[0]; + ok = _tuple[1]; + _tmp = value; + _tmp$1 = ok; + value = _tmp; + ok = _tmp$1; + return [value, ok]; + }; + $ptrType(Map).prototype.Store = function Store(key, value) { + var _key, key, m, value; + m = this; + if (m.m === false) { + m.m = new $global.Map(); + } + _key = key; (m.m || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: value }); + }; + $ptrType(Map).prototype.LoadOrStore = function LoadOrStore(key, value) { + var _entry, _key, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, actual, key, loaded, m, ok, value, value$1; + actual = $ifaceNil; + loaded = false; + m = this; + _tuple = (_entry = $mapIndex(m.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); + value$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + _tmp = value$1; + _tmp$1 = true; + actual = _tmp; + loaded = _tmp$1; + return [actual, loaded]; + } + if (m.m === false) { + m.m = new $global.Map(); + } + _key = key; (m.m || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: value }); + _tmp$2 = value; + _tmp$3 = false; + actual = _tmp$2; + loaded = _tmp$3; + return [actual, loaded]; + }; + $ptrType(Map).prototype.Delete = function Delete(key) { + var key, m; + m = this; + if (m.m === false) { + return; + } + $mapDelete(m.m, $emptyInterface.keyFor(key)); + }; + $ptrType(Map).prototype.Range = function Range(f) { + var {_entry, _i, _key, _keys, _r, _ref, _size, f, k, m, v, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + _ref = m.m; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + /* while (true) { */ case 1: + /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 2; continue; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + /* continue; */ $s = 1; continue; + } + k = _entry.k; + v = _entry.v; + _r = f(k, v); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + /* break; */ $s = 2; continue; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Range, $c: true, $r, _entry, _i, _key, _keys, _r, _ref, _size, f, k, m, v, $s};return $f; + }; + ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$emptyInterface], [], false)}]; + ptrType$1.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType$1], [], false)}]; + ptrType$2.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + ptrType$3.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "RLock", name: "RLock", pkg: "", typ: $funcType([], [], false)}, {prop: "RUnlock", name: "RUnlock", pkg: "", typ: $funcType([], [], false)}]; + ptrType$5.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [], false)}, {prop: "LoadOrStore", name: "LoadOrStore", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Range", name: "Range", pkg: "", typ: $funcType([funcType$2], [], false)}]; + Pool.init("github.com/gopherjs/gopherjs/nosync", [{prop: "store", name: "store", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: funcType, tag: ""}]); + Once.init("github.com/gopherjs/gopherjs/nosync", [{prop: "doing", name: "doing", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Mutex.init("github.com/gopherjs/gopherjs/nosync", [{prop: "locked", name: "locked", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "_$1", name: "_", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "_$2", name: "_", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "_$3", name: "_", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "_$4", name: "_", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + RWMutex.init("github.com/gopherjs/gopherjs/nosync", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writeLocked", name: "writeLocked", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "_$2", name: "_", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "_$3", name: "_", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "_$4", name: "_", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "readLockCounter", name: "readLockCounter", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "_$6", name: "_", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "_$7", name: "_", embedded: false, exported: false, typ: $Int32, tag: ""}]); + Map.init("github.com/gopherjs/gopherjs/nosync", [{prop: "m", name: "m", embedded: false, exported: false, typ: mapType, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["time"] = (function() { + var $pkg = {}, $init, errors, js, nosync, runtime, syscall, Location, zone, zoneTrans, ruleKind, rule, Time, Month, Weekday, Duration, ParseError, localLoc, localLoc$24ptr, localOnce, badData, utcLoc, utcLoc$24ptr, errLocation, daysBefore, startNano, x, _r, zoneSources, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, atoiError, errBad, errLeadingInt, FixedZone, tzset, tzsetName, tzsetOffset, tzsetRule, tzsetNum, tzruleTime, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, absDate, daysIn, daysSinceEpoch, runtimeNano, Now, unixTime, Unix, isLeap, norm, Date, div, initLocal, itoa, init, now, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi, stdFracSecond, digitsLen, separator, formatNano, quote, isDigit, getnum, getnum3, cutspace, skip, Parse, parse, parseTimeZone, parseGMT, parseSignedOffset, commaOrPeriod, parseNanoseconds, leadingInt; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + runtime = $packages["runtime"]; + syscall = $packages["syscall"]; + Location = $newType(0, $kindStruct, "time.Location", true, "time", true, function(name_, zone_, tx_, extend_, cacheStart_, cacheEnd_, cacheZone_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.zone = sliceType.nil; + this.tx = sliceType$1.nil; + this.extend = ""; + this.cacheStart = new $Int64(0, 0); + this.cacheEnd = new $Int64(0, 0); + this.cacheZone = ptrType.nil; + return; + } + this.name = name_; + this.zone = zone_; + this.tx = tx_; + this.extend = extend_; + this.cacheStart = cacheStart_; + this.cacheEnd = cacheEnd_; + this.cacheZone = cacheZone_; + }); + zone = $newType(0, $kindStruct, "time.zone", true, "time", false, function(name_, offset_, isDST_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.offset = 0; + this.isDST = false; + return; + } + this.name = name_; + this.offset = offset_; + this.isDST = isDST_; + }); + zoneTrans = $newType(0, $kindStruct, "time.zoneTrans", true, "time", false, function(when_, index_, isstd_, isutc_) { + this.$val = this; + if (arguments.length === 0) { + this.when = new $Int64(0, 0); + this.index = 0; + this.isstd = false; + this.isutc = false; + return; + } + this.when = when_; + this.index = index_; + this.isstd = isstd_; + this.isutc = isutc_; + }); + ruleKind = $newType(4, $kindInt, "time.ruleKind", true, "time", false, null); + rule = $newType(0, $kindStruct, "time.rule", true, "time", false, function(kind_, day_, week_, mon_, time_) { + this.$val = this; + if (arguments.length === 0) { + this.kind = 0; + this.day = 0; + this.week = 0; + this.mon = 0; + this.time = 0; + return; + } + this.kind = kind_; + this.day = day_; + this.week = week_; + this.mon = mon_; + this.time = time_; + }); + Time = $newType(0, $kindStruct, "time.Time", true, "time", true, function(wall_, ext_, loc_) { + this.$val = this; + if (arguments.length === 0) { + this.wall = new $Uint64(0, 0); + this.ext = new $Int64(0, 0); + this.loc = ptrType$2.nil; + return; + } + this.wall = wall_; + this.ext = ext_; + this.loc = loc_; + }); + Month = $newType(4, $kindInt, "time.Month", true, "time", true, null); + Weekday = $newType(4, $kindInt, "time.Weekday", true, "time", true, null); + Duration = $newType(8, $kindInt64, "time.Duration", true, "time", true, null); + ParseError = $newType(0, $kindStruct, "time.ParseError", true, "time", true, function(Layout_, Value_, LayoutElem_, ValueElem_, Message_) { + this.$val = this; + if (arguments.length === 0) { + this.Layout = ""; + this.Value = ""; + this.LayoutElem = ""; + this.ValueElem = ""; + this.Message = ""; + return; + } + this.Layout = Layout_; + this.Value = Value_; + this.LayoutElem = LayoutElem_; + this.ValueElem = ValueElem_; + this.Message = Message_; + }); + $pkg.Location = Location; + $pkg.zone = zone; + $pkg.zoneTrans = zoneTrans; + $pkg.ruleKind = ruleKind; + $pkg.rule = rule; + $pkg.Time = Time; + $pkg.Month = Month; + $pkg.Weekday = Weekday; + $pkg.Duration = Duration; + $pkg.ParseError = ParseError; + $pkg.$finishSetup = function() { + $ptrType(Location).prototype.get = function get() { + var {l, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this; + if (l === ptrType$2.nil) { + $s = -1; return utcLoc; + } + /* */ if (l === localLoc) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l === localLoc) { */ case 1: + $r = localOnce.Do(initLocal); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return l; + /* */ } return; } var $f = {$blk: get, $c: true, $r, l, $s};return $f; + }; + $ptrType(Location).prototype.String = function String() { + var {$24r, _r$1, l, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this; + _r$1 = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1.name; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r$1, l, $s};return $f; + }; + FixedZone = function FixedZone$1(name, offset) { + var l, name, offset, x$1; + l = new Location.ptr(name, new sliceType([$clone(new zone.ptr(name, offset, false), zone)]), new sliceType$1([$clone(new zoneTrans.ptr(new $Int64(-2147483648, 0), 0, false, false), zoneTrans)]), "", new $Int64(-2147483648, 0), new $Int64(2147483647, 4294967295), ptrType.nil); + l.cacheZone = (x$1 = l.zone, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + return l; + }; + $pkg.FixedZone = FixedZone; + $ptrType(Location).prototype.lookup = function lookup$1(sec) { + var {_q, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tuple, eend, eisDST, ename, end, eoffset, estart, hi, isDST, l, lim, lo, m, name, offset, ok, sec, start, tx, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, zone$1, zone$2, zone$3, $s, $r, $c} = $restore(this, {sec}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + name = ""; + offset = 0; + start = new $Int64(0, 0); + end = new $Int64(0, 0); + isDST = false; + l = this; + _r$1 = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + l = _r$1; + if (l.zone.$length === 0) { + name = "UTC"; + offset = 0; + start = new $Int64(-2147483648, 0); + end = new $Int64(2147483647, 4294967295); + isDST = false; + $s = -1; return [name, offset, start, end, isDST]; + } + zone$1 = l.cacheZone; + if (!(zone$1 === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { + name = zone$1.name; + offset = zone$1.offset; + start = l.cacheStart; + end = l.cacheEnd; + isDST = zone$1.isDST; + $s = -1; return [name, offset, start, end, isDST]; + } + if ((l.tx.$length === 0) || (x$3 = (x$4 = l.tx, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).when, (sec.$high < x$3.$high || (sec.$high === x$3.$high && sec.$low < x$3.$low)))) { + zone$2 = (x$5 = l.zone, x$6 = l.lookupFirstZone(), ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])); + name = zone$2.name; + offset = zone$2.offset; + start = new $Int64(-2147483648, 0); + if (l.tx.$length > 0) { + end = (x$7 = l.tx, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).when; + } else { + end = new $Int64(2147483647, 4294967295); + } + isDST = zone$2.isDST; + $s = -1; return [name, offset, start, end, isDST]; + } + tx = l.tx; + end = new $Int64(2147483647, 4294967295); + lo = 0; + hi = tx.$length; + while (true) { + if (!((hi - lo >> 0) > 1)) { break; } + m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + lim = ((m < 0 || m >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + m]).when; + if ((sec.$high < lim.$high || (sec.$high === lim.$high && sec.$low < lim.$low))) { + end = lim; + hi = m; + } else { + lo = m; + } + } + zone$3 = (x$8 = l.zone, x$9 = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).index, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); + name = zone$3.name; + offset = zone$3.offset; + start = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).when; + isDST = zone$3.isDST; + if ((lo === (tx.$length - 1 >> 0)) && !(l.extend === "")) { + _tuple = tzset(l.extend, start, sec); + ename = _tuple[0]; + eoffset = _tuple[1]; + estart = _tuple[2]; + eend = _tuple[3]; + eisDST = _tuple[4]; + ok = _tuple[5]; + if (ok) { + _tmp = ename; + _tmp$1 = eoffset; + _tmp$2 = estart; + _tmp$3 = eend; + _tmp$4 = eisDST; + name = _tmp; + offset = _tmp$1; + start = _tmp$2; + end = _tmp$3; + isDST = _tmp$4; + $s = -1; return [name, offset, start, end, isDST]; + } + } + $s = -1; return [name, offset, start, end, isDST]; + /* */ } return; } var $f = {$blk: lookup$1, $c: true, $r, _q, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tuple, eend, eisDST, ename, end, eoffset, estart, hi, isDST, l, lim, lo, m, name, offset, ok, sec, start, tx, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, zone$1, zone$2, zone$3, $s};return $f; + }; + $ptrType(Location).prototype.lookupFirstZone = function lookupFirstZone() { + var _i, _ref, l, x$1, x$2, x$3, x$4, x$5, x$6, zi, zi$1; + l = this; + if (!l.firstZoneUsed()) { + return 0; + } + if (l.tx.$length > 0 && (x$1 = l.zone, x$2 = (x$3 = l.tx, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).index, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).isDST) { + zi = (((x$4 = l.tx, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).index >> 0)) - 1 >> 0; + while (true) { + if (!(zi >= 0)) { break; } + if (!(x$5 = l.zone, ((zi < 0 || zi >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + zi])).isDST) { + return zi; + } + zi = zi - (1) >> 0; + } + } + _ref = l.zone; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + zi$1 = _i; + if (!(x$6 = l.zone, ((zi$1 < 0 || zi$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + zi$1])).isDST) { + return zi$1; + } + _i++; + } + return 0; + }; + $ptrType(Location).prototype.firstZoneUsed = function firstZoneUsed() { + var _i, _ref, l, tx; + l = this; + _ref = l.tx; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + tx = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), zoneTrans); + if (tx.index === 0) { + return true; + } + _i++; + } + return false; + }; + tzset = function tzset$1(s, lastTxSec, sec) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$6, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, abs, d, dstIsDST, dstName, dstOffset, end, endRule, endSec, isDST, lastTxSec, name, offset, ok, s, sec, start, startRule, startSec, stdIsDST, stdName, stdOffset, x$1, x$2, x$3, x$4, x$5, x$6, yday, year, ysec; + name = ""; + offset = 0; + start = new $Int64(0, 0); + end = new $Int64(0, 0); + isDST = false; + ok = false; + _tmp = ""; + _tmp$1 = ""; + stdName = _tmp; + dstName = _tmp$1; + _tmp$2 = 0; + _tmp$3 = 0; + stdOffset = _tmp$2; + dstOffset = _tmp$3; + _tuple = tzsetName(s); + stdName = _tuple[0]; + s = _tuple[1]; + ok = _tuple[2]; + if (ok) { + _tuple$1 = tzsetOffset(s); + stdOffset = _tuple$1[0]; + s = _tuple$1[1]; + ok = _tuple$1[2]; + } + if (!ok) { + _tmp$4 = ""; + _tmp$5 = 0; + _tmp$6 = new $Int64(0, 0); + _tmp$7 = new $Int64(0, 0); + _tmp$8 = false; + _tmp$9 = false; + name = _tmp$4; + offset = _tmp$5; + start = _tmp$6; + end = _tmp$7; + isDST = _tmp$8; + ok = _tmp$9; + return [name, offset, start, end, isDST, ok]; + } + stdOffset = -stdOffset; + if ((s.length === 0) || (s.charCodeAt(0) === 44)) { + _tmp$10 = stdName; + _tmp$11 = stdOffset; + _tmp$12 = lastTxSec; + _tmp$13 = new $Int64(2147483647, 4294967295); + _tmp$14 = false; + _tmp$15 = true; + name = _tmp$10; + offset = _tmp$11; + start = _tmp$12; + end = _tmp$13; + isDST = _tmp$14; + ok = _tmp$15; + return [name, offset, start, end, isDST, ok]; + } + _tuple$2 = tzsetName(s); + dstName = _tuple$2[0]; + s = _tuple$2[1]; + ok = _tuple$2[2]; + if (ok) { + if ((s.length === 0) || (s.charCodeAt(0) === 44)) { + dstOffset = stdOffset + 3600 >> 0; + } else { + _tuple$3 = tzsetOffset(s); + dstOffset = _tuple$3[0]; + s = _tuple$3[1]; + ok = _tuple$3[2]; + dstOffset = -dstOffset; + } + } + if (!ok) { + _tmp$16 = ""; + _tmp$17 = 0; + _tmp$18 = new $Int64(0, 0); + _tmp$19 = new $Int64(0, 0); + _tmp$20 = false; + _tmp$21 = false; + name = _tmp$16; + offset = _tmp$17; + start = _tmp$18; + end = _tmp$19; + isDST = _tmp$20; + ok = _tmp$21; + return [name, offset, start, end, isDST, ok]; + } + if (s.length === 0) { + s = ",M3.2.0,M11.1.0"; + } + if (!((s.charCodeAt(0) === 44)) && !((s.charCodeAt(0) === 59))) { + _tmp$22 = ""; + _tmp$23 = 0; + _tmp$24 = new $Int64(0, 0); + _tmp$25 = new $Int64(0, 0); + _tmp$26 = false; + _tmp$27 = false; + name = _tmp$22; + offset = _tmp$23; + start = _tmp$24; + end = _tmp$25; + isDST = _tmp$26; + ok = _tmp$27; + return [name, offset, start, end, isDST, ok]; + } + s = $substring(s, 1); + _tmp$28 = new rule.ptr(0, 0, 0, 0, 0); + _tmp$29 = new rule.ptr(0, 0, 0, 0, 0); + startRule = $clone(_tmp$28, rule); + endRule = $clone(_tmp$29, rule); + _tuple$4 = tzsetRule(s); + rule.copy(startRule, _tuple$4[0]); + s = _tuple$4[1]; + ok = _tuple$4[2]; + if (!ok || (s.length === 0) || !((s.charCodeAt(0) === 44))) { + _tmp$30 = ""; + _tmp$31 = 0; + _tmp$32 = new $Int64(0, 0); + _tmp$33 = new $Int64(0, 0); + _tmp$34 = false; + _tmp$35 = false; + name = _tmp$30; + offset = _tmp$31; + start = _tmp$32; + end = _tmp$33; + isDST = _tmp$34; + ok = _tmp$35; + return [name, offset, start, end, isDST, ok]; + } + s = $substring(s, 1); + _tuple$5 = tzsetRule(s); + rule.copy(endRule, _tuple$5[0]); + s = _tuple$5[1]; + ok = _tuple$5[2]; + if (!ok || s.length > 0) { + _tmp$36 = ""; + _tmp$37 = 0; + _tmp$38 = new $Int64(0, 0); + _tmp$39 = new $Int64(0, 0); + _tmp$40 = false; + _tmp$41 = false; + name = _tmp$36; + offset = _tmp$37; + start = _tmp$38; + end = _tmp$39; + isDST = _tmp$40; + ok = _tmp$41; + return [name, offset, start, end, isDST, ok]; + } + _tuple$6 = absDate(((x$1 = (x$2 = new $Int64(sec.$high + 14, sec.$low + 2006054656), new $Int64(x$2.$high + 2147483631, x$2.$low + 2739393024)), new $Uint64(x$1.$high, x$1.$low))), false); + year = _tuple$6[0]; + yday = _tuple$6[3]; + ysec = (x$3 = (new $Int64(0, ($imul(yday, 86400)))), x$4 = $div64(sec, new $Int64(0, 86400), true), new $Int64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)); + d = daysSinceEpoch(year); + abs = ((x$5 = $mul64(d, new $Uint64(0, 86400)), new $Int64(x$5.$high, x$5.$low))); + abs = (x$6 = new $Int64(-2147483647, 3844486912), new $Int64(abs.$high + x$6.$high, abs.$low + x$6.$low)); + startSec = (new $Int64(0, tzruleTime(year, $clone(startRule, rule), stdOffset))); + endSec = (new $Int64(0, tzruleTime(year, $clone(endRule, rule), dstOffset))); + _tmp$42 = true; + _tmp$43 = false; + dstIsDST = _tmp$42; + stdIsDST = _tmp$43; + if ((endSec.$high < startSec.$high || (endSec.$high === startSec.$high && endSec.$low < startSec.$low))) { + _tmp$44 = endSec; + _tmp$45 = startSec; + startSec = _tmp$44; + endSec = _tmp$45; + _tmp$46 = dstName; + _tmp$47 = stdName; + stdName = _tmp$46; + dstName = _tmp$47; + _tmp$48 = dstOffset; + _tmp$49 = stdOffset; + stdOffset = _tmp$48; + dstOffset = _tmp$49; + _tmp$50 = dstIsDST; + _tmp$51 = stdIsDST; + stdIsDST = _tmp$50; + dstIsDST = _tmp$51; + } + if ((ysec.$high < startSec.$high || (ysec.$high === startSec.$high && ysec.$low < startSec.$low))) { + _tmp$52 = stdName; + _tmp$53 = stdOffset; + _tmp$54 = abs; + _tmp$55 = new $Int64(startSec.$high + abs.$high, startSec.$low + abs.$low); + _tmp$56 = stdIsDST; + _tmp$57 = true; + name = _tmp$52; + offset = _tmp$53; + start = _tmp$54; + end = _tmp$55; + isDST = _tmp$56; + ok = _tmp$57; + return [name, offset, start, end, isDST, ok]; + } else if ((ysec.$high > endSec.$high || (ysec.$high === endSec.$high && ysec.$low >= endSec.$low))) { + _tmp$58 = stdName; + _tmp$59 = stdOffset; + _tmp$60 = new $Int64(endSec.$high + abs.$high, endSec.$low + abs.$low); + _tmp$61 = new $Int64(abs.$high + 0, abs.$low + 31536000); + _tmp$62 = stdIsDST; + _tmp$63 = true; + name = _tmp$58; + offset = _tmp$59; + start = _tmp$60; + end = _tmp$61; + isDST = _tmp$62; + ok = _tmp$63; + return [name, offset, start, end, isDST, ok]; + } else { + _tmp$64 = dstName; + _tmp$65 = dstOffset; + _tmp$66 = new $Int64(startSec.$high + abs.$high, startSec.$low + abs.$low); + _tmp$67 = new $Int64(endSec.$high + abs.$high, endSec.$low + abs.$low); + _tmp$68 = dstIsDST; + _tmp$69 = true; + name = _tmp$64; + offset = _tmp$65; + start = _tmp$66; + end = _tmp$67; + isDST = _tmp$68; + ok = _tmp$69; + return [name, offset, start, end, isDST, ok]; + } + }; + tzsetName = function tzsetName$1(s) { + var _1, _i, _i$1, _ref, _ref$1, _rune, _rune$1, i, i$1, r, r$1, s; + if (s.length === 0) { + return ["", "", false]; + } + if (!((s.charCodeAt(0) === 60))) { + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + r = _rune[0]; + _1 = r; + if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55)) || (_1 === (56)) || (_1 === (57)) || (_1 === (44)) || (_1 === (45)) || (_1 === (43))) { + if (i < 3) { + return ["", "", false]; + } + return [$substring(s, 0, i), $substring(s, i), true]; + } + _i += _rune[1]; + } + if (s.length < 3) { + return ["", "", false]; + } + return [s, "", true]; + } else { + _ref$1 = s; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.length)) { break; } + _rune$1 = $decodeRune(_ref$1, _i$1); + i$1 = _i$1; + r$1 = _rune$1[0]; + if (r$1 === 62) { + return [$substring(s, 1, i$1), $substring(s, (i$1 + 1 >> 0)), true]; + } + _i$1 += _rune$1[1]; + } + return ["", "", false]; + } + }; + tzsetOffset = function tzsetOffset$1(s) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, hours, mins, neg, off, offset, ok, rest$1, s, secs; + offset = 0; + rest$1 = ""; + ok = false; + if (s.length === 0) { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = false; + offset = _tmp; + rest$1 = _tmp$1; + ok = _tmp$2; + return [offset, rest$1, ok]; + } + neg = false; + if (s.charCodeAt(0) === 43) { + s = $substring(s, 1); + } else if (s.charCodeAt(0) === 45) { + s = $substring(s, 1); + neg = true; + } + hours = 0; + _tuple = tzsetNum(s, 0, 168); + hours = _tuple[0]; + s = _tuple[1]; + ok = _tuple[2]; + if (!ok) { + _tmp$3 = 0; + _tmp$4 = ""; + _tmp$5 = false; + offset = _tmp$3; + rest$1 = _tmp$4; + ok = _tmp$5; + return [offset, rest$1, ok]; + } + off = $imul(hours, 3600); + if ((s.length === 0) || !((s.charCodeAt(0) === 58))) { + if (neg) { + off = -off; + } + _tmp$6 = off; + _tmp$7 = s; + _tmp$8 = true; + offset = _tmp$6; + rest$1 = _tmp$7; + ok = _tmp$8; + return [offset, rest$1, ok]; + } + mins = 0; + _tuple$1 = tzsetNum($substring(s, 1), 0, 59); + mins = _tuple$1[0]; + s = _tuple$1[1]; + ok = _tuple$1[2]; + if (!ok) { + _tmp$9 = 0; + _tmp$10 = ""; + _tmp$11 = false; + offset = _tmp$9; + rest$1 = _tmp$10; + ok = _tmp$11; + return [offset, rest$1, ok]; + } + off = off + (($imul(mins, 60))) >> 0; + if ((s.length === 0) || !((s.charCodeAt(0) === 58))) { + if (neg) { + off = -off; + } + _tmp$12 = off; + _tmp$13 = s; + _tmp$14 = true; + offset = _tmp$12; + rest$1 = _tmp$13; + ok = _tmp$14; + return [offset, rest$1, ok]; + } + secs = 0; + _tuple$2 = tzsetNum($substring(s, 1), 0, 59); + secs = _tuple$2[0]; + s = _tuple$2[1]; + ok = _tuple$2[2]; + if (!ok) { + _tmp$15 = 0; + _tmp$16 = ""; + _tmp$17 = false; + offset = _tmp$15; + rest$1 = _tmp$16; + ok = _tmp$17; + return [offset, rest$1, ok]; + } + off = off + (secs) >> 0; + if (neg) { + off = -off; + } + _tmp$18 = off; + _tmp$19 = s; + _tmp$20 = true; + offset = _tmp$18; + rest$1 = _tmp$19; + ok = _tmp$20; + return [offset, rest$1, ok]; + }; + tzsetRule = function tzsetRule$1(s) { + var _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, day, day$1, jday, mon, offset, ok, r, s, week; + r = new rule.ptr(0, 0, 0, 0, 0); + if (s.length === 0) { + return [new rule.ptr(0, 0, 0, 0, 0), "", false]; + } + ok = false; + if (s.charCodeAt(0) === 74) { + jday = 0; + _tuple = tzsetNum($substring(s, 1), 1, 365); + jday = _tuple[0]; + s = _tuple[1]; + ok = _tuple[2]; + if (!ok) { + return [new rule.ptr(0, 0, 0, 0, 0), "", false]; + } + r.kind = 0; + r.day = jday; + } else if (s.charCodeAt(0) === 77) { + mon = 0; + _tuple$1 = tzsetNum($substring(s, 1), 1, 12); + mon = _tuple$1[0]; + s = _tuple$1[1]; + ok = _tuple$1[2]; + if (!ok || (s.length === 0) || !((s.charCodeAt(0) === 46))) { + return [new rule.ptr(0, 0, 0, 0, 0), "", false]; + } + week = 0; + _tuple$2 = tzsetNum($substring(s, 1), 1, 5); + week = _tuple$2[0]; + s = _tuple$2[1]; + ok = _tuple$2[2]; + if (!ok || (s.length === 0) || !((s.charCodeAt(0) === 46))) { + return [new rule.ptr(0, 0, 0, 0, 0), "", false]; + } + day = 0; + _tuple$3 = tzsetNum($substring(s, 1), 0, 6); + day = _tuple$3[0]; + s = _tuple$3[1]; + ok = _tuple$3[2]; + if (!ok) { + return [new rule.ptr(0, 0, 0, 0, 0), "", false]; + } + r.kind = 2; + r.day = day; + r.week = week; + r.mon = mon; + } else { + day$1 = 0; + _tuple$4 = tzsetNum(s, 0, 365); + day$1 = _tuple$4[0]; + s = _tuple$4[1]; + ok = _tuple$4[2]; + if (!ok) { + return [new rule.ptr(0, 0, 0, 0, 0), "", false]; + } + r.kind = 1; + r.day = day$1; + } + if ((s.length === 0) || !((s.charCodeAt(0) === 47))) { + r.time = 7200; + return [r, s, true]; + } + _tuple$5 = tzsetOffset($substring(s, 1)); + offset = _tuple$5[0]; + s = _tuple$5[1]; + ok = _tuple$5[2]; + if (!ok) { + return [new rule.ptr(0, 0, 0, 0, 0), "", false]; + } + r.time = offset; + return [r, s, true]; + }; + tzsetNum = function tzsetNum$1(s, min, max) { + var _i, _ref, _rune, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, i, max, min, num, ok, r, rest$1, s; + num = 0; + rest$1 = ""; + ok = false; + if (s.length === 0) { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = false; + num = _tmp; + rest$1 = _tmp$1; + ok = _tmp$2; + return [num, rest$1, ok]; + } + num = 0; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + r = _rune[0]; + if (r < 48 || r > 57) { + if ((i === 0) || num < min) { + _tmp$3 = 0; + _tmp$4 = ""; + _tmp$5 = false; + num = _tmp$3; + rest$1 = _tmp$4; + ok = _tmp$5; + return [num, rest$1, ok]; + } + _tmp$6 = num; + _tmp$7 = $substring(s, i); + _tmp$8 = true; + num = _tmp$6; + rest$1 = _tmp$7; + ok = _tmp$8; + return [num, rest$1, ok]; + } + num = $imul(num, (10)); + num = num + ((((r >> 0)) - 48 >> 0)) >> 0; + if (num > max) { + _tmp$9 = 0; + _tmp$10 = ""; + _tmp$11 = false; + num = _tmp$9; + rest$1 = _tmp$10; + ok = _tmp$11; + return [num, rest$1, ok]; + } + _i += _rune[1]; + } + if (num < min) { + _tmp$12 = 0; + _tmp$13 = ""; + _tmp$14 = false; + num = _tmp$12; + rest$1 = _tmp$13; + ok = _tmp$14; + return [num, rest$1, ok]; + } + _tmp$15 = num; + _tmp$16 = ""; + _tmp$17 = true; + num = _tmp$15; + rest$1 = _tmp$16; + ok = _tmp$17; + return [num, rest$1, ok]; + }; + tzruleTime = function tzruleTime$1(year, r, off) { + var _1, _q, _q$1, _q$2, _q$3, _r$1, _r$2, _r$3, d, dow, i, m1, off, r, s, x$1, year, yy0, yy1, yy2; + s = 0; + _1 = r.kind; + if (_1 === (0)) { + s = $imul(((r.day - 1 >> 0)), 86400); + if (isLeap(year) && r.day >= 60) { + s = s + (86400) >> 0; + } + } else if (_1 === (1)) { + s = $imul(r.day, 86400); + } else if (_1 === (2)) { + m1 = (_r$1 = ((r.mon + 9 >> 0)) % 12, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 1 >> 0; + yy0 = year; + if (r.mon <= 2) { + yy0 = yy0 - (1) >> 0; + } + yy1 = (_q = yy0 / 100, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + yy2 = (_r$2 = yy0 % 100, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")); + dow = (_r$3 = (((((((_q$1 = ((($imul(26, m1)) - 2 >> 0)) / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0) + yy2 >> 0) + (_q$2 = yy2 / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0) + (_q$3 = yy1 / 4, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0) - ($imul(2, yy1)) >> 0)) % 7, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")); + if (dow < 0) { + dow = dow + (7) >> 0; + } + d = r.day - dow >> 0; + if (d < 0) { + d = d + (7) >> 0; + } + i = 1; + while (true) { + if (!(i < r.week)) { break; } + if ((d + 7 >> 0) >= daysIn(((r.mon >> 0)), year)) { + break; + } + d = d + (7) >> 0; + i = i + (1) >> 0; + } + d = d + ((((x$1 = r.mon - 1 >> 0, ((x$1 < 0 || x$1 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$1])) >> 0))) >> 0; + if (isLeap(year) && r.mon > 2) { + d = d + (1) >> 0; + } + s = $imul(d, 86400); + } + return (s + r.time >> 0) - off >> 0; + }; + $ptrType(Location).prototype.lookupName = function lookupName(name, unix) { + var {_i, _i$1, _r$1, _r$2, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, i, i$1, l, nam, name, offset, offset$1, ok, unix, x$1, x$2, x$3, zone$1, zone$2, $s, $r, $c} = $restore(this, {name, unix}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + offset = 0; + ok = false; + l = this; + _r$1 = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + l = _r$1; + _ref = l.zone; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + zone$1 = (x$1 = l.zone, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + /* */ if (zone$1.name === name) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (zone$1.name === name) { */ case 4: + _r$2 = l.lookup((x$2 = (new $Int64(0, zone$1.offset)), new $Int64(unix.$high - x$2.$high, unix.$low - x$2.$low))); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + nam = _tuple[0]; + offset$1 = _tuple[1]; + if (nam === zone$1.name) { + _tmp = offset$1; + _tmp$1 = true; + offset = _tmp; + ok = _tmp$1; + $s = -1; return [offset, ok]; + } + /* } */ case 5: + _i++; + $s = 2; continue; + case 3: + _ref$1 = l.zone; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + zone$2 = (x$3 = l.zone, ((i$1 < 0 || i$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$1])); + if (zone$2.name === name) { + _tmp$2 = zone$2.offset; + _tmp$3 = true; + offset = _tmp$2; + ok = _tmp$3; + $s = -1; return [offset, ok]; + } + _i$1++; + } + $s = -1; return [offset, ok]; + /* */ } return; } var $f = {$blk: lookupName, $c: true, $r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, i, i$1, l, nam, name, offset, offset$1, ok, unix, x$1, x$2, x$3, zone$1, zone$2, $s};return $f; + }; + $ptrType(Time).prototype.nsec = function nsec() { + var t, x$1; + t = this; + return (((x$1 = t.wall, new $Uint64(x$1.$high & 0, (x$1.$low & 1073741823) >>> 0)).$low >> 0)); + }; + $ptrType(Time).prototype.sec = function sec() { + var t, x$1, x$2, x$3, x$4; + t = this; + if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + return (x$3 = ((x$4 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$4.$high, x$4.$low))), new $Int64(13 + x$3.$high, 3618733952 + x$3.$low)); + } + return t.ext; + }; + $ptrType(Time).prototype.unixSec = function unixSec() { + var t, x$1; + t = this; + return (x$1 = t.sec(), new $Int64(x$1.$high + -15, x$1.$low + 2288912640)); + }; + $ptrType(Time).prototype.addSec = function addSec(d) { + var d, dsec, sec$1, sum, t, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + sec$1 = ((x$3 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$3.$high, x$3.$low))); + dsec = new $Int64(sec$1.$high + d.$high, sec$1.$low + d.$low); + if ((0 < dsec.$high || (0 === dsec.$high && 0 <= dsec.$low)) && (dsec.$high < 1 || (dsec.$high === 1 && dsec.$low <= 4294967295))) { + t.wall = (x$4 = (x$5 = (x$6 = t.wall, new $Uint64(x$6.$high & 0, (x$6.$low & 1073741823) >>> 0)), x$7 = $shiftLeft64((new $Uint64(dsec.$high, dsec.$low)), 30), new $Uint64(x$5.$high | x$7.$high, (x$5.$low | x$7.$low) >>> 0)), new $Uint64(x$4.$high | 2147483648, (x$4.$low | 0) >>> 0)); + return; + } + t.stripMono(); + } + sum = (x$8 = t.ext, new $Int64(x$8.$high + d.$high, x$8.$low + d.$low)); + if (((x$9 = t.ext, (sum.$high > x$9.$high || (sum.$high === x$9.$high && sum.$low > x$9.$low)))) === ((d.$high > 0 || (d.$high === 0 && d.$low > 0)))) { + t.ext = sum; + } else if ((d.$high > 0 || (d.$high === 0 && d.$low > 0))) { + t.ext = new $Int64(2147483647, 4294967295); + } else { + t.ext = new $Int64(-2147483648, 1); + } + }; + $ptrType(Time).prototype.setLoc = function setLoc(loc) { + var loc, t; + t = this; + if (loc === utcLoc) { + loc = ptrType$2.nil; + } + t.stripMono(); + t.loc = loc; + }; + $ptrType(Time).prototype.stripMono = function stripMono() { + var t, x$1, x$2, x$3, x$4; + t = this; + if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + t.ext = t.sec(); + t.wall = (x$3 = t.wall, x$4 = new $Uint64(0, 1073741823), new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)); + } + }; + $ptrType(Time).prototype.After = function After$1(u) { + var t, ts, u, us, x$1, x$2, x$3, x$4, x$5, x$6; + t = this; + if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + return (x$5 = t.ext, x$6 = u.ext, (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low))); + } + ts = t.sec(); + us = u.sec(); + return (ts.$high > us.$high || (ts.$high === us.$high && ts.$low > us.$low)) || (ts.$high === us.$high && ts.$low === us.$low) && t.nsec() > u.nsec(); + }; + Time.prototype.After = function(...$args) { return this.$val.After(...$args); }; + $ptrType(Time).prototype.Before = function Before(u) { + var t, ts, u, us, x$1, x$2, x$3, x$4, x$5, x$6; + t = this; + if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + return (x$5 = t.ext, x$6 = u.ext, (x$5.$high < x$6.$high || (x$5.$high === x$6.$high && x$5.$low < x$6.$low))); + } + ts = t.sec(); + us = u.sec(); + return (ts.$high < us.$high || (ts.$high === us.$high && ts.$low < us.$low)) || (ts.$high === us.$high && ts.$low === us.$low) && t.nsec() < u.nsec(); + }; + Time.prototype.Before = function(...$args) { return this.$val.Before(...$args); }; + $ptrType(Time).prototype.Equal = function Equal(u) { + var t, u, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + t = this; + if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + return (x$5 = t.ext, x$6 = u.ext, (x$5.$high === x$6.$high && x$5.$low === x$6.$low)); + } + return (x$7 = t.sec(), x$8 = u.sec(), (x$7.$high === x$8.$high && x$7.$low === x$8.$low)) && (t.nsec() === u.nsec()); + }; + Time.prototype.Equal = function(...$args) { return this.$val.Equal(...$args); }; + Month.prototype.String = function String$1() { + var buf, m, n, x$1; + m = this.$val; + if (1 <= m && m <= 12) { + return (x$1 = m - 1 >> 0, ((x$1 < 0 || x$1 >= longMonthNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : longMonthNames.$array[longMonthNames.$offset + x$1])); + } + buf = $makeSlice(sliceType$3, 20); + n = fmtInt(buf, (new $Uint64(0, m))); + return "%!Month(" + ($bytesToString($subslice(buf, n))) + ")"; + }; + $ptrType(Month).prototype.String = function(...$args) { return new Month(this.$get()).String(...$args); }; + Weekday.prototype.String = function String$2() { + var buf, d, n; + d = this.$val; + if (0 <= d && d <= 6) { + return ((d < 0 || d >= longDayNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : longDayNames.$array[longDayNames.$offset + d]); + } + buf = $makeSlice(sliceType$3, 20); + n = fmtInt(buf, (new $Uint64(0, d))); + return "%!Weekday(" + ($bytesToString($subslice(buf, n))) + ")"; + }; + $ptrType(Weekday).prototype.String = function(...$args) { return new Weekday(this.$get()).String(...$args); }; + $ptrType(Time).prototype.IsZero = function IsZero() { + var t, x$1; + t = this; + return (x$1 = t.sec(), (x$1.$high === 0 && x$1.$low === 0)) && (t.nsec() === 0); + }; + Time.prototype.IsZero = function(...$args) { return this.$val.IsZero(...$args); }; + $ptrType(Time).prototype.abs = function abs() { + var {_r$1, _r$2, _tuple, l, offset, sec$1, t, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + l = t.loc; + /* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l === ptrType$2.nil || l === localLoc) { */ case 1: + _r$1 = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + l = _r$1; + /* } */ case 2: + sec$1 = t.unixSec(); + /* */ if (!(l === utcLoc)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(l === utcLoc)) { */ case 4: + /* */ if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec$1.$high || (x$1.$high === sec$1.$high && x$1.$low <= sec$1.$low))) && (x$2 = l.cacheEnd, (sec$1.$high < x$2.$high || (sec$1.$high === x$2.$high && sec$1.$low < x$2.$low)))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec$1.$high || (x$1.$high === sec$1.$high && x$1.$low <= sec$1.$low))) && (x$2 = l.cacheEnd, (sec$1.$high < x$2.$high || (sec$1.$high === x$2.$high && sec$1.$low < x$2.$low)))) { */ case 6: + sec$1 = (x$3 = (new $Int64(0, l.cacheZone.offset)), new $Int64(sec$1.$high + x$3.$high, sec$1.$low + x$3.$low)); + $s = 8; continue; + /* } else { */ case 7: + _r$2 = l.lookup(sec$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + offset = _tuple[1]; + sec$1 = (x$4 = (new $Int64(0, offset)), new $Int64(sec$1.$high + x$4.$high, sec$1.$low + x$4.$low)); + /* } */ case 8: + /* } */ case 5: + $s = -1; return ((x$5 = new $Int64(sec$1.$high + 2147483646, sec$1.$low + 450480384), new $Uint64(x$5.$high, x$5.$low))); + /* */ } return; } var $f = {$blk: abs, $c: true, $r, _r$1, _r$2, _tuple, l, offset, sec$1, t, x$1, x$2, x$3, x$4, x$5, $s};return $f; + }; + Time.prototype.abs = function(...$args) { return this.$val.abs(...$args); }; + $ptrType(Time).prototype.locabs = function locabs() { + var {_r$1, _r$2, _tuple, abs$1, l, name, offset, sec$1, t, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + name = ""; + offset = 0; + abs$1 = new $Uint64(0, 0); + t = this; + l = t.loc; + /* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l === ptrType$2.nil || l === localLoc) { */ case 1: + _r$1 = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + l = _r$1; + /* } */ case 2: + sec$1 = t.unixSec(); + /* */ if (!(l === utcLoc)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(l === utcLoc)) { */ case 4: + /* */ if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec$1.$high || (x$1.$high === sec$1.$high && x$1.$low <= sec$1.$low))) && (x$2 = l.cacheEnd, (sec$1.$high < x$2.$high || (sec$1.$high === x$2.$high && sec$1.$low < x$2.$low)))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec$1.$high || (x$1.$high === sec$1.$high && x$1.$low <= sec$1.$low))) && (x$2 = l.cacheEnd, (sec$1.$high < x$2.$high || (sec$1.$high === x$2.$high && sec$1.$low < x$2.$low)))) { */ case 7: + name = l.cacheZone.name; + offset = l.cacheZone.offset; + $s = 9; continue; + /* } else { */ case 8: + _r$2 = l.lookup(sec$1); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + name = _tuple[0]; + offset = _tuple[1]; + /* } */ case 9: + sec$1 = (x$3 = (new $Int64(0, offset)), new $Int64(sec$1.$high + x$3.$high, sec$1.$low + x$3.$low)); + $s = 6; continue; + /* } else { */ case 5: + name = "UTC"; + /* } */ case 6: + abs$1 = ((x$4 = new $Int64(sec$1.$high + 2147483646, sec$1.$low + 450480384), new $Uint64(x$4.$high, x$4.$low))); + $s = -1; return [name, offset, abs$1]; + /* */ } return; } var $f = {$blk: locabs, $c: true, $r, _r$1, _r$2, _tuple, abs$1, l, name, offset, sec$1, t, x$1, x$2, x$3, x$4, $s};return $f; + }; + Time.prototype.locabs = function(...$args) { return this.$val.locabs(...$args); }; + $ptrType(Time).prototype.Date = function Date$1() { + var {_r$1, _tuple, day, month, t, year, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + year = 0; + month = 0; + day = 0; + t = this; + _r$1 = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + $s = -1; return [year, month, day]; + /* */ } return; } var $f = {$blk: Date$1, $c: true, $r, _r$1, _tuple, day, month, t, year, $s};return $f; + }; + Time.prototype.Date = function(...$args) { return this.$val.Date(...$args); }; + $ptrType(Time).prototype.Year = function Year() { + var {_r$1, _tuple, t, year, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + year = _tuple[0]; + $s = -1; return year; + /* */ } return; } var $f = {$blk: Year, $c: true, $r, _r$1, _tuple, t, year, $s};return $f; + }; + Time.prototype.Year = function(...$args) { return this.$val.Year(...$args); }; + $ptrType(Time).prototype.Month = function Month$1() { + var {_r$1, _tuple, month, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + month = _tuple[1]; + $s = -1; return month; + /* */ } return; } var $f = {$blk: Month$1, $c: true, $r, _r$1, _tuple, month, t, $s};return $f; + }; + Time.prototype.Month = function(...$args) { return this.$val.Month(...$args); }; + $ptrType(Time).prototype.Day = function Day() { + var {_r$1, _tuple, day, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + day = _tuple[2]; + $s = -1; return day; + /* */ } return; } var $f = {$blk: Day, $c: true, $r, _r$1, _tuple, day, t, $s};return $f; + }; + Time.prototype.Day = function(...$args) { return this.$val.Day(...$args); }; + $ptrType(Time).prototype.Weekday = function Weekday$1() { + var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = absWeekday(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Weekday$1, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f; + }; + Time.prototype.Weekday = function(...$args) { return this.$val.Weekday(...$args); }; + absWeekday = function absWeekday$1(abs$1) { + var _q, abs$1, sec$1; + sec$1 = $div64((new $Uint64(abs$1.$high + 0, abs$1.$low + 86400)), new $Uint64(0, 604800), true); + return (((_q = ((sec$1.$low >> 0)) / 86400, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); + }; + $ptrType(Time).prototype.ISOWeek = function ISOWeek() { + var {_q, _r$1, _tmp, _tmp$1, _tuple, abs$1, d, t, week, x$1, yday, year, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + year = 0; + week = 0; + t = this; + _r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + abs$1 = _r$1; + d = 4 - absWeekday(abs$1) >> 0; + if (d === 4) { + d = -3; + } + abs$1 = (x$1 = $mul64((new $Uint64(0, d)), new $Uint64(0, 86400)), new $Uint64(abs$1.$high + x$1.$high, abs$1.$low + x$1.$low)); + _tuple = absDate(abs$1, false); + year = _tuple[0]; + yday = _tuple[3]; + _tmp = year; + _tmp$1 = (_q = yday / 7, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0; + year = _tmp; + week = _tmp$1; + $s = -1; return [year, week]; + /* */ } return; } var $f = {$blk: ISOWeek, $c: true, $r, _q, _r$1, _tmp, _tmp$1, _tuple, abs$1, d, t, week, x$1, yday, year, $s};return $f; + }; + Time.prototype.ISOWeek = function(...$args) { return this.$val.ISOWeek(...$args); }; + $ptrType(Time).prototype.Clock = function Clock() { + var {$24r, _r$1, _r$2, _tuple, hour, min, sec$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + hour = 0; + min = 0; + sec$1 = 0; + t = this; + _r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = absClock(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + hour = _tuple[0]; + min = _tuple[1]; + sec$1 = _tuple[2]; + $24r = [hour, min, sec$1]; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Clock, $c: true, $r, $24r, _r$1, _r$2, _tuple, hour, min, sec$1, t, $s};return $f; + }; + Time.prototype.Clock = function(...$args) { return this.$val.Clock(...$args); }; + absClock = function absClock$1(abs$1) { + var _q, _q$1, abs$1, hour, min, sec$1; + hour = 0; + min = 0; + sec$1 = 0; + sec$1 = (($div64(abs$1, new $Uint64(0, 86400), true).$low >> 0)); + hour = (_q = sec$1 / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + sec$1 = sec$1 - (($imul(hour, 3600))) >> 0; + min = (_q$1 = sec$1 / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + sec$1 = sec$1 - (($imul(min, 60))) >> 0; + return [hour, min, sec$1]; + }; + $ptrType(Time).prototype.Hour = function Hour() { + var {$24r, _q, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = (_q = (($div64(_r$1, new $Uint64(0, 86400), true).$low >> 0)) / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Hour, $c: true, $r, $24r, _q, _r$1, t, $s};return $f; + }; + Time.prototype.Hour = function(...$args) { return this.$val.Hour(...$args); }; + $ptrType(Time).prototype.Minute = function Minute() { + var {$24r, _q, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = (_q = (($div64(_r$1, new $Uint64(0, 3600), true).$low >> 0)) / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Minute, $c: true, $r, $24r, _q, _r$1, t, $s};return $f; + }; + Time.prototype.Minute = function(...$args) { return this.$val.Minute(...$args); }; + $ptrType(Time).prototype.Second = function Second() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = (($div64(_r$1, new $Uint64(0, 60), true).$low >> 0)); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Second, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + Time.prototype.Second = function(...$args) { return this.$val.Second(...$args); }; + $ptrType(Time).prototype.Nanosecond = function Nanosecond() { + var t; + t = this; + return ((t.nsec() >> 0)); + }; + Time.prototype.Nanosecond = function(...$args) { return this.$val.Nanosecond(...$args); }; + $ptrType(Time).prototype.YearDay = function YearDay() { + var {_r$1, _tuple, t, yday, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + yday = _tuple[3]; + $s = -1; return yday + 1 >> 0; + /* */ } return; } var $f = {$blk: YearDay, $c: true, $r, _r$1, _tuple, t, yday, $s};return $f; + }; + Time.prototype.YearDay = function(...$args) { return this.$val.YearDay(...$args); }; + Duration.prototype.String = function String$3() { + var _tuple, _tuple$1, buf, d, neg, prec, u, w; + d = this; + buf = arrayType$2.zero(); + w = 32; + u = (new $Uint64(d.$high, d.$low)); + neg = (d.$high < 0 || (d.$high === 0 && d.$low < 0)); + if (neg) { + u = new $Uint64(-u.$high, -u.$low); + } + if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000000))) { + prec = 0; + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115); + w = w - (1) >> 0; + if ((u.$high === 0 && u.$low === 0)) { + return "0s"; + } else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000))) { + prec = 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 110); + } else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000))) { + prec = 3; + w = w - (1) >> 0; + $copyString($subslice(new sliceType$3(buf), w), "\xC2\xB5"); + } else { + prec = 6; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109); + } + _tuple = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, prec); + w = _tuple[0]; + u = _tuple[1]; + w = fmtInt($subslice(new sliceType$3(buf), 0, w), u); + } else { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115); + _tuple$1 = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, 9); + w = _tuple$1[0]; + u = _tuple$1[1]; + w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true)); + u = $div64(u, (new $Uint64(0, 60)), false); + if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109); + w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true)); + u = $div64(u, (new $Uint64(0, 60)), false); + if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 104); + w = fmtInt($subslice(new sliceType$3(buf), 0, w), u); + } + } + } + if (neg) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + } + return ($bytesToString($subslice(new sliceType$3(buf), w))); + }; + $ptrType(Duration).prototype.String = function(...$args) { return this.$get().String(...$args); }; + fmtFrac = function fmtFrac$1(buf, v, prec) { + var _tmp, _tmp$1, buf, digit, i, nv, nw, prec, print, v, w; + nw = 0; + nv = new $Uint64(0, 0); + w = buf.$length; + print = false; + i = 0; + while (true) { + if (!(i < prec)) { break; } + digit = $div64(v, new $Uint64(0, 10), true); + print = print || !((digit.$high === 0 && digit.$low === 0)); + if (print) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = (((digit.$low << 24 >>> 24)) + 48 << 24 >>> 24)); + } + v = $div64(v, (new $Uint64(0, 10)), false); + i = i + (1) >> 0; + } + if (print) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + } + _tmp = w; + _tmp$1 = v; + nw = _tmp; + nv = _tmp$1; + return [nw, nv]; + }; + fmtInt = function fmtInt$1(buf, v) { + var buf, v, w; + w = buf.$length; + if ((v.$high === 0 && v.$low === 0)) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48); + } else { + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = ((($div64(v, new $Uint64(0, 10), true).$low << 24 >>> 24)) + 48 << 24 >>> 24)); + v = $div64(v, (new $Uint64(0, 10)), false); + } + } + return w; + }; + Duration.prototype.Nanoseconds = function Nanoseconds() { + var d; + d = this; + return (new $Int64(d.$high, d.$low)); + }; + $ptrType(Duration).prototype.Nanoseconds = function(...$args) { return this.$get().Nanoseconds(...$args); }; + Duration.prototype.Microseconds = function Microseconds() { + var d; + d = this; + return $div64((new $Int64(d.$high, d.$low)), new $Int64(0, 1000), false); + }; + $ptrType(Duration).prototype.Microseconds = function(...$args) { return this.$get().Microseconds(...$args); }; + Duration.prototype.Milliseconds = function Milliseconds() { + var d; + d = this; + return $div64((new $Int64(d.$high, d.$low)), new $Int64(0, 1000000), false); + }; + $ptrType(Duration).prototype.Milliseconds = function(...$args) { return this.$get().Milliseconds(...$args); }; + Duration.prototype.Seconds = function Seconds() { + var d, nsec$1, sec$1; + d = this; + sec$1 = $div64(d, new Duration(0, 1000000000), false); + nsec$1 = $div64(d, new Duration(0, 1000000000), true); + return ($flatten64(sec$1)) + ($flatten64(nsec$1)) / 1e+09; + }; + $ptrType(Duration).prototype.Seconds = function(...$args) { return this.$get().Seconds(...$args); }; + Duration.prototype.Minutes = function Minutes() { + var d, min, nsec$1; + d = this; + min = $div64(d, new Duration(13, 4165425152), false); + nsec$1 = $div64(d, new Duration(13, 4165425152), true); + return ($flatten64(min)) + ($flatten64(nsec$1)) / 6e+10; + }; + $ptrType(Duration).prototype.Minutes = function(...$args) { return this.$get().Minutes(...$args); }; + Duration.prototype.Hours = function Hours() { + var d, hour, nsec$1; + d = this; + hour = $div64(d, new Duration(838, 817405952), false); + nsec$1 = $div64(d, new Duration(838, 817405952), true); + return ($flatten64(hour)) + ($flatten64(nsec$1)) / 3.6e+12; + }; + $ptrType(Duration).prototype.Hours = function(...$args) { return this.$get().Hours(...$args); }; + Duration.prototype.Truncate = function Truncate(m) { + var d, m, x$1; + d = this; + if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) { + return d; + } + return (x$1 = $div64(d, m, true), new Duration(d.$high - x$1.$high, d.$low - x$1.$low)); + }; + $ptrType(Duration).prototype.Truncate = function(...$args) { return this.$get().Truncate(...$args); }; + lessThanHalf = function lessThanHalf$1(x$1, y) { + var x$1, x$2, x$3, x$4, x$5, y; + return (x$2 = (x$3 = (new $Uint64(x$1.$high, x$1.$low)), x$4 = (new $Uint64(x$1.$high, x$1.$low)), new $Uint64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)), x$5 = (new $Uint64(y.$high, y.$low)), (x$2.$high < x$5.$high || (x$2.$high === x$5.$high && x$2.$low < x$5.$low))); + }; + Duration.prototype.Round = function Round(m) { + var d, d1, d1$1, m, r, x$1, x$2; + d = this; + if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) { + return d; + } + r = $div64(d, m, true); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0))) { + r = new Duration(-r.$high, -r.$low); + if (lessThanHalf(r, m)) { + return new Duration(d.$high + r.$high, d.$low + r.$low); + } + d1 = (x$1 = new Duration(d.$high - m.$high, d.$low - m.$low), new Duration(x$1.$high + r.$high, x$1.$low + r.$low)); + if ((d1.$high < d.$high || (d1.$high === d.$high && d1.$low < d.$low))) { + return d1; + } + return new Duration(-2147483648, 0); + } + if (lessThanHalf(r, m)) { + return new Duration(d.$high - r.$high, d.$low - r.$low); + } + d1$1 = (x$2 = new Duration(d.$high + m.$high, d.$low + m.$low), new Duration(x$2.$high - r.$high, x$2.$low - r.$low)); + if ((d1$1.$high > d.$high || (d1$1.$high === d.$high && d1$1.$low > d.$low))) { + return d1$1; + } + return new Duration(2147483647, 4294967295); + }; + $ptrType(Duration).prototype.Round = function(...$args) { return this.$get().Round(...$args); }; + Duration.prototype.Abs = function Abs() { + var d; + d = this; + if ((d.$high > 0 || (d.$high === 0 && d.$low >= 0))) { + return d; + } else if ((d.$high === -2147483648 && d.$low === 0)) { + return new Duration(2147483647, 4294967295); + } else { + return new Duration(-d.$high, -d.$low); + } + }; + $ptrType(Duration).prototype.Abs = function(...$args) { return this.$get().Abs(...$args); }; + $ptrType(Time).prototype.Add = function Add(d) { + var d, dsec, nsec$1, t, te, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + dsec = ((x$1 = $div64(d, new Duration(0, 1000000000), false), new $Int64(x$1.$high, x$1.$low))); + nsec$1 = t.nsec() + (((x$2 = $div64(d, new Duration(0, 1000000000), true), x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)) >> 0; + if (nsec$1 >= 1000000000) { + dsec = (x$3 = new $Int64(0, 1), new $Int64(dsec.$high + x$3.$high, dsec.$low + x$3.$low)); + nsec$1 = nsec$1 - (1000000000) >> 0; + } else if (nsec$1 < 0) { + dsec = (x$4 = new $Int64(0, 1), new $Int64(dsec.$high - x$4.$high, dsec.$low - x$4.$low)); + nsec$1 = nsec$1 + (1000000000) >> 0; + } + t.wall = (x$5 = (x$6 = t.wall, new $Uint64(x$6.$high & ~0, (x$6.$low & ~1073741823) >>> 0)), x$7 = (new $Uint64(0, nsec$1)), new $Uint64(x$5.$high | x$7.$high, (x$5.$low | x$7.$low) >>> 0)); + t.addSec(dsec); + if (!((x$8 = (x$9 = t.wall, new $Uint64(x$9.$high & 2147483648, (x$9.$low & 0) >>> 0)), (x$8.$high === 0 && x$8.$low === 0)))) { + te = (x$10 = t.ext, x$11 = (new $Int64(d.$high, d.$low)), new $Int64(x$10.$high + x$11.$high, x$10.$low + x$11.$low)); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (x$12 = t.ext, (te.$high > x$12.$high || (te.$high === x$12.$high && te.$low > x$12.$low))) || (d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (x$13 = t.ext, (te.$high < x$13.$high || (te.$high === x$13.$high && te.$low < x$13.$low)))) { + t.stripMono(); + } else { + t.ext = te; + } + } + return t; + }; + Time.prototype.Add = function(...$args) { return this.$val.Add(...$args); }; + $ptrType(Time).prototype.Sub = function Sub(u) { + var d, d$1, t, te, u, ue, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + te = t.ext; + ue = u.ext; + d = ((x$5 = new $Int64(te.$high - ue.$high, te.$low - ue.$low), new Duration(x$5.$high, x$5.$low))); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (te.$high > ue.$high || (te.$high === ue.$high && te.$low > ue.$low))) { + return new Duration(2147483647, 4294967295); + } + if ((d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (te.$high < ue.$high || (te.$high === ue.$high && te.$low < ue.$low))) { + return new Duration(-2147483648, 0); + } + return d; + } + d$1 = (x$6 = $mul64(((x$7 = (x$8 = t.sec(), x$9 = u.sec(), new $Int64(x$8.$high - x$9.$high, x$8.$low - x$9.$low)), new Duration(x$7.$high, x$7.$low))), new Duration(0, 1000000000)), x$10 = (new Duration(0, (t.nsec() - u.nsec() >> 0))), new Duration(x$6.$high + x$10.$high, x$6.$low + x$10.$low)); + if ($clone($clone(u, Time).Add(d$1), Time).Equal($clone(t, Time))) { + return d$1; + } else if ($clone(t, Time).Before($clone(u, Time))) { + return new Duration(-2147483648, 0); + } else { + return new Duration(2147483647, 4294967295); + } + }; + Time.prototype.Sub = function(...$args) { return this.$val.Sub(...$args); }; + $ptrType(Time).prototype.AddDate = function AddDate(years, months, days) { + var {$24r, _r$1, _r$2, _r$3, _tuple, _tuple$1, day, days, hour, min, month, months, sec$1, t, year, years, $s, $r, $c} = $restore(this, {years, months, days}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).Date(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + _r$2 = $clone(t, Time).Clock(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + hour = _tuple$1[0]; + min = _tuple$1[1]; + sec$1 = _tuple$1[2]; + _r$3 = Date(year + years >> 0, month + ((months >> 0)) >> 0, day + days >> 0, hour, min, sec$1, ((t.nsec() >> 0)), $clone(t, Time).Location()); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: AddDate, $c: true, $r, $24r, _r$1, _r$2, _r$3, _tuple, _tuple$1, day, days, hour, min, month, months, sec$1, t, year, years, $s};return $f; + }; + Time.prototype.AddDate = function(...$args) { return this.$val.AddDate(...$args); }; + $ptrType(Time).prototype.date = function date(full) { + var {$24r, _r$1, _r$2, _tuple, day, full, month, t, yday, year, $s, $r, $c} = $restore(this, {full}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + year = 0; + month = 0; + day = 0; + yday = 0; + t = this; + _r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = absDate(_r$1, full); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + yday = _tuple[3]; + $24r = [year, month, day, yday]; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: date, $c: true, $r, $24r, _r$1, _r$2, _tuple, day, full, month, t, yday, year, $s};return $f; + }; + Time.prototype.date = function(...$args) { return this.$val.date(...$args); }; + absDate = function absDate$1(abs$1, full) { + var _q, abs$1, begin, d, day, end, full, month, n, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, yday, year; + year = 0; + month = 0; + day = 0; + yday = 0; + d = $div64(abs$1, new $Uint64(0, 86400), false); + n = $div64(d, new $Uint64(0, 146097), false); + y = $mul64(new $Uint64(0, 400), n); + d = (x$1 = $mul64(new $Uint64(0, 146097), n), new $Uint64(d.$high - x$1.$high, d.$low - x$1.$low)); + n = $div64(d, new $Uint64(0, 36524), false); + n = (x$2 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$2.$high, n.$low - x$2.$low)); + y = (x$3 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high + x$3.$high, y.$low + x$3.$low)); + d = (x$4 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high - x$4.$high, d.$low - x$4.$low)); + n = $div64(d, new $Uint64(0, 1461), false); + y = (x$5 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high + x$5.$high, y.$low + x$5.$low)); + d = (x$6 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high - x$6.$high, d.$low - x$6.$low)); + n = $div64(d, new $Uint64(0, 365), false); + n = (x$7 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$7.$high, n.$low - x$7.$low)); + y = (x$8 = n, new $Uint64(y.$high + x$8.$high, y.$low + x$8.$low)); + d = (x$9 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high - x$9.$high, d.$low - x$9.$low)); + year = (((x$10 = (x$11 = (new $Int64(y.$high, y.$low)), new $Int64(x$11.$high + -69, x$11.$low + 4075721025)), x$10.$low + ((x$10.$high >> 31) * 4294967296)) >> 0)); + yday = ((d.$low >> 0)); + if (!full) { + return [year, month, day, yday]; + } + day = yday; + if (isLeap(year)) { + if (day > 59) { + day = day - (1) >> 0; + } else if ((day === 59)) { + month = 2; + day = 29; + return [year, month, day, yday]; + } + } + month = (((_q = day / 31, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); + end = (((x$12 = month + 1 >> 0, ((x$12 < 0 || x$12 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$12])) >> 0)); + begin = 0; + if (day >= end) { + month = month + (1) >> 0; + begin = end; + } else { + begin = ((((month < 0 || month >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[month]) >> 0)); + } + month = month + (1) >> 0; + day = (day - begin >> 0) + 1 >> 0; + return [year, month, day, yday]; + }; + daysIn = function daysIn$1(m, year) { + var m, x$1, year; + if ((m === 2) && isLeap(year)) { + return 29; + } + return (((((m < 0 || m >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[m]) - (x$1 = m - 1 >> 0, ((x$1 < 0 || x$1 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$1])) >> 0) >> 0)); + }; + daysSinceEpoch = function daysSinceEpoch$1(year) { + var d, n, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y, year; + y = ((x$1 = (x$2 = (new $Int64(0, year)), new $Int64(x$2.$high - -69, x$2.$low - 4075721025)), new $Uint64(x$1.$high, x$1.$low))); + n = $div64(y, new $Uint64(0, 400), false); + y = (x$3 = $mul64(new $Uint64(0, 400), n), new $Uint64(y.$high - x$3.$high, y.$low - x$3.$low)); + d = $mul64(new $Uint64(0, 146097), n); + n = $div64(y, new $Uint64(0, 100), false); + y = (x$4 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high - x$4.$high, y.$low - x$4.$low)); + d = (x$5 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high + x$5.$high, d.$low + x$5.$low)); + n = $div64(y, new $Uint64(0, 4), false); + y = (x$6 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high - x$6.$high, y.$low - x$6.$low)); + d = (x$7 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high + x$7.$high, d.$low + x$7.$low)); + n = y; + d = (x$8 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high + x$8.$high, d.$low + x$8.$low)); + return d; + }; + runtimeNano = function() { + $throwRuntimeError("native function not implemented: time.runtimeNano"); + }; + Now = function Now$1() { + var {_r$1, _tuple, mono$1, nsec$1, sec$1, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = now(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + sec$1 = _tuple[0]; + nsec$1 = _tuple[1]; + mono$1 = _tuple[2]; + mono$1 = (x$1 = startNano, new $Int64(mono$1.$high - x$1.$high, mono$1.$low - x$1.$low)); + sec$1 = (x$2 = new $Int64(0, 2682288000), new $Int64(sec$1.$high + x$2.$high, sec$1.$low + x$2.$low)); + if (!((x$3 = $shiftRightUint64((new $Uint64(sec$1.$high, sec$1.$low)), 33), (x$3.$high === 0 && x$3.$low === 0)))) { + $s = -1; return new Time.ptr((new $Uint64(0, nsec$1)), new $Int64(sec$1.$high + 13, sec$1.$low + 3618733952), $pkg.Local); + } + $s = -1; return new Time.ptr((x$4 = (x$5 = $shiftLeft64((new $Uint64(sec$1.$high, sec$1.$low)), 30), new $Uint64(2147483648 | x$5.$high, (0 | x$5.$low) >>> 0)), x$6 = (new $Uint64(0, nsec$1)), new $Uint64(x$4.$high | x$6.$high, (x$4.$low | x$6.$low) >>> 0)), mono$1, $pkg.Local); + /* */ } return; } var $f = {$blk: Now$1, $c: true, $r, _r$1, _tuple, mono$1, nsec$1, sec$1, x$1, x$2, x$3, x$4, x$5, x$6, $s};return $f; + }; + $pkg.Now = Now; + unixTime = function unixTime$1(sec$1, nsec$1) { + var nsec$1, sec$1; + return new Time.ptr((new $Uint64(0, nsec$1)), new $Int64(sec$1.$high + 14, sec$1.$low + 2006054656), $pkg.Local); + }; + $ptrType(Time).prototype.UTC = function UTC() { + var t; + t = this; + t.setLoc(utcLoc); + return t; + }; + Time.prototype.UTC = function(...$args) { return this.$val.UTC(...$args); }; + $ptrType(Time).prototype.Local = function Local() { + var t; + t = this; + t.setLoc($pkg.Local); + return t; + }; + Time.prototype.Local = function(...$args) { return this.$val.Local(...$args); }; + $ptrType(Time).prototype.In = function In(loc) { + var loc, t; + t = this; + if (loc === ptrType$2.nil) { + $panic(new $String("time: missing Location in call to Time.In")); + } + t.setLoc(loc); + return t; + }; + Time.prototype.In = function(...$args) { return this.$val.In(...$args); }; + $ptrType(Time).prototype.Location = function Location$1() { + var l, t; + t = this; + l = t.loc; + if (l === ptrType$2.nil) { + l = $pkg.UTC; + } + return l; + }; + Time.prototype.Location = function(...$args) { return this.$val.Location(...$args); }; + $ptrType(Time).prototype.Zone = function Zone() { + var {_r$1, _tuple, name, offset, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + name = ""; + offset = 0; + t = this; + _r$1 = t.loc.lookup(t.unixSec()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + name = _tuple[0]; + offset = _tuple[1]; + $s = -1; return [name, offset]; + /* */ } return; } var $f = {$blk: Zone, $c: true, $r, _r$1, _tuple, name, offset, t, $s};return $f; + }; + Time.prototype.Zone = function(...$args) { return this.$val.Zone(...$args); }; + $ptrType(Time).prototype.ZoneBounds = function ZoneBounds() { + var {_r$1, _tuple, end, endSec, start, startSec, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + start = new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil); + end = new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil); + t = this; + _r$1 = t.loc.lookup(t.unixSec()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + startSec = _tuple[2]; + endSec = _tuple[3]; + if (!((startSec.$high === -2147483648 && startSec.$low === 0))) { + Time.copy(start, unixTime(startSec, 0)); + start.setLoc(t.loc); + } + if (!((endSec.$high === 2147483647 && endSec.$low === 4294967295))) { + Time.copy(end, unixTime(endSec, 0)); + end.setLoc(t.loc); + } + $s = -1; return [start, end]; + /* */ } return; } var $f = {$blk: ZoneBounds, $c: true, $r, _r$1, _tuple, end, endSec, start, startSec, t, $s};return $f; + }; + Time.prototype.ZoneBounds = function(...$args) { return this.$val.ZoneBounds(...$args); }; + $ptrType(Time).prototype.Unix = function Unix$1() { + var t; + t = this; + return t.unixSec(); + }; + Time.prototype.Unix = function(...$args) { return this.$val.Unix(...$args); }; + $ptrType(Time).prototype.UnixMilli = function UnixMilli$1() { + var t, x$1, x$2; + t = this; + return (x$1 = $mul64(t.unixSec(), new $Int64(0, 1000)), x$2 = $div64((new $Int64(0, t.nsec())), new $Int64(0, 1000000), false), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)); + }; + Time.prototype.UnixMilli = function(...$args) { return this.$val.UnixMilli(...$args); }; + $ptrType(Time).prototype.UnixMicro = function UnixMicro$1() { + var t, x$1, x$2; + t = this; + return (x$1 = $mul64(t.unixSec(), new $Int64(0, 1000000)), x$2 = $div64((new $Int64(0, t.nsec())), new $Int64(0, 1000), false), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)); + }; + Time.prototype.UnixMicro = function(...$args) { return this.$val.UnixMicro(...$args); }; + $ptrType(Time).prototype.UnixNano = function UnixNano() { + var t, x$1, x$2; + t = this; + return (x$1 = $mul64((t.unixSec()), new $Int64(0, 1000000000)), x$2 = (new $Int64(0, t.nsec())), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)); + }; + Time.prototype.UnixNano = function(...$args) { return this.$val.UnixNano(...$args); }; + $ptrType(Time).prototype.MarshalBinary = function MarshalBinary() { + var {_q, _r$1, _r$2, _r$3, _tuple, enc, nsec$1, offset, offsetMin, offsetSec, sec$1, t, version, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + offsetMin = 0; + offsetSec = 0; + version = 1; + /* */ if ($clone(t, Time).Location() === $pkg.UTC) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($clone(t, Time).Location() === $pkg.UTC) { */ case 1: + offsetMin = -1; + $s = 3; continue; + /* } else { */ case 2: + _r$1 = $clone(t, Time).Zone(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + offset = _tuple[1]; + if (!(((_r$2 = offset % 60, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0))) { + version = 2; + offsetSec = (((_r$3 = offset % 60, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) << 24 >> 24)); + } + offset = (_q = offset / (60), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (offset < -32768 || (offset === -1) || offset > 32767) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalBinary: unexpected zone offset")]; + } + offsetMin = ((offset << 16 >> 16)); + /* } */ case 3: + sec$1 = t.sec(); + nsec$1 = t.nsec(); + enc = new sliceType$3([version, (($shiftRightInt64(sec$1, 56).$low << 24 >>> 24)), (($shiftRightInt64(sec$1, 48).$low << 24 >>> 24)), (($shiftRightInt64(sec$1, 40).$low << 24 >>> 24)), (($shiftRightInt64(sec$1, 32).$low << 24 >>> 24)), (($shiftRightInt64(sec$1, 24).$low << 24 >>> 24)), (($shiftRightInt64(sec$1, 16).$low << 24 >>> 24)), (($shiftRightInt64(sec$1, 8).$low << 24 >>> 24)), ((sec$1.$low << 24 >>> 24)), (((nsec$1 >> 24 >> 0) << 24 >>> 24)), (((nsec$1 >> 16 >> 0) << 24 >>> 24)), (((nsec$1 >> 8 >> 0) << 24 >>> 24)), ((nsec$1 << 24 >>> 24)), (((offsetMin >> 8 << 16 >> 16) << 24 >>> 24)), ((offsetMin << 24 >>> 24))]); + if (version === 2) { + enc = $append(enc, ((offsetSec << 24 >>> 24))); + } + $s = -1; return [enc, $ifaceNil]; + /* */ } return; } var $f = {$blk: MarshalBinary, $c: true, $r, _q, _r$1, _r$2, _r$3, _tuple, enc, nsec$1, offset, offsetMin, offsetSec, sec$1, t, version, $s};return $f; + }; + Time.prototype.MarshalBinary = function(...$args) { return this.$val.MarshalBinary(...$args); }; + $ptrType(Time).prototype.UnmarshalBinary = function UnmarshalBinary(data) { + var {_r$1, _tuple, buf, data, localoff, nsec$1, offset, sec$1, t, version, wantLen, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {data}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + buf = data; + if (buf.$length === 0) { + $s = -1; return errors.New("Time.UnmarshalBinary: no data"); + } + version = (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]); + if (!((version === 1)) && !((version === 2))) { + $s = -1; return errors.New("Time.UnmarshalBinary: unsupported version"); + } + wantLen = 15; + if (version === 2) { + wantLen = wantLen + (1) >> 0; + } + if (!((buf.$length === wantLen))) { + $s = -1; return errors.New("Time.UnmarshalBinary: invalid length"); + } + buf = $subslice(buf, 1); + sec$1 = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (x$7 = (new $Int64(0, (7 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 7]))), x$8 = $shiftLeft64((new $Int64(0, (6 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 6]))), 8), new $Int64(x$7.$high | x$8.$high, (x$7.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Int64(0, (5 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 5]))), 16), new $Int64(x$6.$high | x$9.$high, (x$6.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Int64(0, (4 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 4]))), 24), new $Int64(x$5.$high | x$10.$high, (x$5.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Int64(0, (3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]))), 32), new $Int64(x$4.$high | x$11.$high, (x$4.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Int64(0, (2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]))), 40), new $Int64(x$3.$high | x$12.$high, (x$3.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Int64(0, (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]))), 48), new $Int64(x$2.$high | x$13.$high, (x$2.$low | x$13.$low) >>> 0)), x$14 = $shiftLeft64((new $Int64(0, (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]))), 56), new $Int64(x$1.$high | x$14.$high, (x$1.$low | x$14.$low) >>> 0)); + buf = $subslice(buf, 8); + nsec$1 = (((((3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]) >> 0)) | ((((2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]) >> 0)) << 8 >> 0)) | ((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) >> 0)) << 16 >> 0)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) >> 0)) << 24 >> 0); + buf = $subslice(buf, 4); + offset = $imul(((((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) << 16 >> 16)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) << 16 >> 16)) << 8 << 16 >> 16)) >> 0)), 60); + if (version === 2) { + offset = offset + ((((2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]) >> 0))) >> 0; + } + Time.copy(t, new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil)); + t.wall = (new $Uint64(0, nsec$1)); + t.ext = sec$1; + /* */ if (offset === -60) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (offset === -60) { */ case 1: + t.setLoc(utcLoc); + $s = 3; continue; + /* } else { */ case 2: + _r$1 = $pkg.Local.lookup(t.unixSec()); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + localoff = _tuple[1]; + if (offset === localoff) { + t.setLoc($pkg.Local); + } else { + t.setLoc(FixedZone("", offset)); + } + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: UnmarshalBinary, $c: true, $r, _r$1, _tuple, buf, data, localoff, nsec$1, offset, sec$1, t, version, wantLen, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; + $ptrType(Time).prototype.GobEncode = function GobEncode() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).MarshalBinary(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: GobEncode, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + Time.prototype.GobEncode = function(...$args) { return this.$val.GobEncode(...$args); }; + $ptrType(Time).prototype.GobDecode = function GobDecode(data) { + var {$24r, _r$1, data, t, $s, $r, $c} = $restore(this, {data}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.UnmarshalBinary(data); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: GobDecode, $c: true, $r, $24r, _r$1, data, t, $s};return $f; + }; + $ptrType(Time).prototype.MarshalJSON = function MarshalJSON() { + var {_r$1, _r$2, b, t, y, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + y = _r$1; + if (y < 0 || y >= 10000) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalJSON: year outside of range [0,9999]")]; + } + b = $makeSlice(sliceType$3, 0, 37); + b = $append(b, 34); + _r$2 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + b = _r$2; + b = $append(b, 34); + $s = -1; return [b, $ifaceNil]; + /* */ } return; } var $f = {$blk: MarshalJSON, $c: true, $r, _r$1, _r$2, b, t, y, $s};return $f; + }; + Time.prototype.MarshalJSON = function(...$args) { return this.$val.MarshalJSON(...$args); }; + $ptrType(Time).prototype.UnmarshalJSON = function UnmarshalJSON(data) { + var {_r$1, _tuple, data, err, t, $s, $r, $c} = $restore(this, {data}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if (($bytesToString(data)) === "null") { + $s = -1; return $ifaceNil; + } + err = $ifaceNil; + _r$1 = Parse("\"2006-01-02T15:04:05Z07:00\"", ($bytesToString(data))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + Time.copy(t, _tuple[0]); + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } var $f = {$blk: UnmarshalJSON, $c: true, $r, _r$1, _tuple, data, err, t, $s};return $f; + }; + $ptrType(Time).prototype.MarshalText = function MarshalText() { + var {$24r, _r$1, _r$2, b, t, y, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + y = _r$1; + if (y < 0 || y >= 10000) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalText: year outside of range [0,9999]")]; + } + b = $makeSlice(sliceType$3, 0, 35); + _r$2 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = [_r$2, $ifaceNil]; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: MarshalText, $c: true, $r, $24r, _r$1, _r$2, b, t, y, $s};return $f; + }; + Time.prototype.MarshalText = function(...$args) { return this.$val.MarshalText(...$args); }; + $ptrType(Time).prototype.UnmarshalText = function UnmarshalText(data) { + var {_r$1, _tuple, data, err, t, $s, $r, $c} = $restore(this, {data}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + err = $ifaceNil; + _r$1 = Parse("2006-01-02T15:04:05Z07:00", ($bytesToString(data))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + Time.copy(t, _tuple[0]); + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } var $f = {$blk: UnmarshalText, $c: true, $r, _r$1, _tuple, data, err, t, $s};return $f; + }; + Unix = function Unix$2(sec$1, nsec$1) { + var n, nsec$1, sec$1, x$1, x$2, x$3, x$4; + if ((nsec$1.$high < 0 || (nsec$1.$high === 0 && nsec$1.$low < 0)) || (nsec$1.$high > 0 || (nsec$1.$high === 0 && nsec$1.$low >= 1000000000))) { + n = $div64(nsec$1, new $Int64(0, 1000000000), false); + sec$1 = (x$1 = n, new $Int64(sec$1.$high + x$1.$high, sec$1.$low + x$1.$low)); + nsec$1 = (x$2 = $mul64(n, new $Int64(0, 1000000000)), new $Int64(nsec$1.$high - x$2.$high, nsec$1.$low - x$2.$low)); + if ((nsec$1.$high < 0 || (nsec$1.$high === 0 && nsec$1.$low < 0))) { + nsec$1 = (x$3 = new $Int64(0, 1000000000), new $Int64(nsec$1.$high + x$3.$high, nsec$1.$low + x$3.$low)); + sec$1 = (x$4 = new $Int64(0, 1), new $Int64(sec$1.$high - x$4.$high, sec$1.$low - x$4.$low)); + } + } + return unixTime(sec$1, (((nsec$1.$low + ((nsec$1.$high >> 31) * 4294967296)) >> 0))); + }; + $pkg.Unix = Unix; + $ptrType(Time).prototype.IsDST = function IsDST() { + var {_r$1, _tuple, isDST, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.loc.lookup($clone(t, Time).Unix()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + isDST = _tuple[4]; + $s = -1; return isDST; + /* */ } return; } var $f = {$blk: IsDST, $c: true, $r, _r$1, _tuple, isDST, t, $s};return $f; + }; + Time.prototype.IsDST = function(...$args) { return this.$val.IsDST(...$args); }; + isLeap = function isLeap$1(year) { + var _r$1, _r$2, _r$3, year; + return ((_r$1 = year % 4, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0) && (!(((_r$2 = year % 100, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0)) || ((_r$3 = year % 400, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) === 0)); + }; + norm = function norm$1(hi, lo, base) { + var _q, _q$1, _tmp, _tmp$1, base, hi, lo, n, n$1, nhi, nlo; + nhi = 0; + nlo = 0; + if (lo < 0) { + n = (_q = ((-lo - 1 >> 0)) / base, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0; + hi = hi - (n) >> 0; + lo = lo + (($imul(n, base))) >> 0; + } + if (lo >= base) { + n$1 = (_q$1 = lo / base, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + hi = hi + (n$1) >> 0; + lo = lo - (($imul(n$1, base))) >> 0; + } + _tmp = hi; + _tmp$1 = lo; + nhi = _tmp; + nlo = _tmp$1; + return [nhi, nlo]; + }; + Date = function Date$2(year, month, day, hour, min, sec$1, nsec$1, loc) { + var {_r$1, _r$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, abs$1, d, day, end, hour, loc, m, min, month, nsec$1, offset, sec$1, start, t, unix, utc, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, year, $s, $r, $c} = $restore(this, {year, month, day, hour, min, sec$1, nsec$1, loc}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (loc === ptrType$2.nil) { + $panic(new $String("time: missing Location in call to Date")); + } + m = ((month >> 0)) - 1 >> 0; + _tuple = norm(year, m, 12); + year = _tuple[0]; + m = _tuple[1]; + month = ((m >> 0)) + 1 >> 0; + _tuple$1 = norm(sec$1, nsec$1, 1000000000); + sec$1 = _tuple$1[0]; + nsec$1 = _tuple$1[1]; + _tuple$2 = norm(min, sec$1, 60); + min = _tuple$2[0]; + sec$1 = _tuple$2[1]; + _tuple$3 = norm(hour, min, 60); + hour = _tuple$3[0]; + min = _tuple$3[1]; + _tuple$4 = norm(day, hour, 24); + day = _tuple$4[0]; + hour = _tuple$4[1]; + d = daysSinceEpoch(year); + d = (x$1 = (new $Uint64(0, (x$2 = month - 1 >> 0, ((x$2 < 0 || x$2 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$2])))), new $Uint64(d.$high + x$1.$high, d.$low + x$1.$low)); + if (isLeap(year) && month >= 3) { + d = (x$3 = new $Uint64(0, 1), new $Uint64(d.$high + x$3.$high, d.$low + x$3.$low)); + } + d = (x$4 = (new $Uint64(0, (day - 1 >> 0))), new $Uint64(d.$high + x$4.$high, d.$low + x$4.$low)); + abs$1 = $mul64(d, new $Uint64(0, 86400)); + abs$1 = (x$5 = (new $Uint64(0, ((($imul(hour, 3600)) + ($imul(min, 60)) >> 0) + sec$1 >> 0))), new $Uint64(abs$1.$high + x$5.$high, abs$1.$low + x$5.$low)); + unix = (x$6 = (new $Int64(abs$1.$high, abs$1.$low)), new $Int64(x$6.$high + -2147483647, x$6.$low + 3844486912)); + _r$1 = loc.lookup(unix); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$5 = _r$1; + offset = _tuple$5[1]; + start = _tuple$5[2]; + end = _tuple$5[3]; + /* */ if (!((offset === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((offset === 0))) { */ case 2: + utc = (x$7 = (new $Int64(0, offset)), new $Int64(unix.$high - x$7.$high, unix.$low - x$7.$low)); + /* */ if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low)) || (utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low)) || (utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { */ case 4: + _r$2 = loc.lookup(utc); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$6 = _r$2; + offset = _tuple$6[1]; + /* } */ case 5: + unix = (x$8 = (new $Int64(0, offset)), new $Int64(unix.$high - x$8.$high, unix.$low - x$8.$low)); + /* } */ case 3: + t = $clone(unixTime(unix, ((nsec$1 >> 0))), Time); + t.setLoc(loc); + $s = -1; return t; + /* */ } return; } var $f = {$blk: Date$2, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, abs$1, d, day, end, hour, loc, m, min, month, nsec$1, offset, sec$1, start, t, unix, utc, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, year, $s};return $f; + }; + $pkg.Date = Date; + $ptrType(Time).prototype.Truncate = function Truncate$1(d) { + var _tuple, d, r, t; + t = this; + t.stripMono(); + if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { + return t; + } + _tuple = div($clone(t, Time), d); + r = _tuple[1]; + return $clone(t, Time).Add(new Duration(-r.$high, -r.$low)); + }; + Time.prototype.Truncate = function(...$args) { return this.$val.Truncate(...$args); }; + $ptrType(Time).prototype.Round = function Round$1(d) { + var _tuple, d, r, t; + t = this; + t.stripMono(); + if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { + return t; + } + _tuple = div($clone(t, Time), d); + r = _tuple[1]; + if (lessThanHalf(r, d)) { + return $clone(t, Time).Add(new Duration(-r.$high, -r.$low)); + } + return $clone(t, Time).Add(new Duration(d.$high - r.$high, d.$low - r.$low)); + }; + Time.prototype.Round = function(...$args) { return this.$val.Round(...$args); }; + div = function div$1(t, d) { + var _q, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, d, d0, d1, d1$1, neg, nsec$1, qmod2, r, sec$1, sec$2, t, tmp, u0, u0x, u1, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + qmod2 = 0; + r = new Duration(0, 0); + neg = false; + nsec$1 = t.nsec(); + sec$1 = t.sec(); + if ((sec$1.$high < 0 || (sec$1.$high === 0 && sec$1.$low < 0))) { + neg = true; + sec$1 = new $Int64(-sec$1.$high, -sec$1.$low); + nsec$1 = -nsec$1; + if (nsec$1 < 0) { + nsec$1 = nsec$1 + (1000000000) >> 0; + sec$1 = (x$1 = new $Int64(0, 1), new $Int64(sec$1.$high - x$1.$high, sec$1.$low - x$1.$low)); + } + } + if ((d.$high < 0 || (d.$high === 0 && d.$low < 1000000000)) && (x$2 = $div64(new Duration(0, 1000000000), (new Duration(d.$high + d.$high, d.$low + d.$low)), true), (x$2.$high === 0 && x$2.$low === 0))) { + qmod2 = (((_q = nsec$1 / (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) & 1; + r = (new Duration(0, (_r$1 = nsec$1 % (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")))); + } else if ((x$3 = $div64(d, new Duration(0, 1000000000), true), (x$3.$high === 0 && x$3.$low === 0))) { + d1 = ((x$4 = $div64(d, new Duration(0, 1000000000), false), new $Int64(x$4.$high, x$4.$low))); + qmod2 = (((x$5 = $div64(sec$1, d1, false), x$5.$low + ((x$5.$high >> 31) * 4294967296)) >> 0)) & 1; + r = (x$6 = $mul64(((x$7 = $div64(sec$1, d1, true), new Duration(x$7.$high, x$7.$low))), new Duration(0, 1000000000)), x$8 = (new Duration(0, nsec$1)), new Duration(x$6.$high + x$8.$high, x$6.$low + x$8.$low)); + } else { + sec$2 = (new $Uint64(sec$1.$high, sec$1.$low)); + tmp = $mul64(($shiftRightUint64(sec$2, 32)), new $Uint64(0, 1000000000)); + u1 = $shiftRightUint64(tmp, 32); + u0 = $shiftLeft64(tmp, 32); + tmp = $mul64((new $Uint64(sec$2.$high & 0, (sec$2.$low & 4294967295) >>> 0)), new $Uint64(0, 1000000000)); + _tmp = u0; + _tmp$1 = new $Uint64(u0.$high + tmp.$high, u0.$low + tmp.$low); + u0x = _tmp; + u0 = _tmp$1; + if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) { + u1 = (x$9 = new $Uint64(0, 1), new $Uint64(u1.$high + x$9.$high, u1.$low + x$9.$low)); + } + _tmp$2 = u0; + _tmp$3 = (x$10 = (new $Uint64(0, nsec$1)), new $Uint64(u0.$high + x$10.$high, u0.$low + x$10.$low)); + u0x = _tmp$2; + u0 = _tmp$3; + if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) { + u1 = (x$11 = new $Uint64(0, 1), new $Uint64(u1.$high + x$11.$high, u1.$low + x$11.$low)); + } + d1$1 = (new $Uint64(d.$high, d.$low)); + while (true) { + if (!(!((x$12 = $shiftRightUint64(d1$1, 63), (x$12.$high === 0 && x$12.$low === 1))))) { break; } + d1$1 = $shiftLeft64(d1$1, (1)); + } + d0 = new $Uint64(0, 0); + while (true) { + qmod2 = 0; + if ((u1.$high > d1$1.$high || (u1.$high === d1$1.$high && u1.$low > d1$1.$low)) || (u1.$high === d1$1.$high && u1.$low === d1$1.$low) && (u0.$high > d0.$high || (u0.$high === d0.$high && u0.$low >= d0.$low))) { + qmod2 = 1; + _tmp$4 = u0; + _tmp$5 = new $Uint64(u0.$high - d0.$high, u0.$low - d0.$low); + u0x = _tmp$4; + u0 = _tmp$5; + if ((u0.$high > u0x.$high || (u0.$high === u0x.$high && u0.$low > u0x.$low))) { + u1 = (x$13 = new $Uint64(0, 1), new $Uint64(u1.$high - x$13.$high, u1.$low - x$13.$low)); + } + u1 = (x$14 = d1$1, new $Uint64(u1.$high - x$14.$high, u1.$low - x$14.$low)); + } + if ((d1$1.$high === 0 && d1$1.$low === 0) && (x$15 = (new $Uint64(d.$high, d.$low)), (d0.$high === x$15.$high && d0.$low === x$15.$low))) { + break; + } + d0 = $shiftRightUint64(d0, (1)); + d0 = (x$16 = $shiftLeft64((new $Uint64(d1$1.$high & 0, (d1$1.$low & 1) >>> 0)), 63), new $Uint64(d0.$high | x$16.$high, (d0.$low | x$16.$low) >>> 0)); + d1$1 = $shiftRightUint64(d1$1, (1)); + } + r = (new Duration(u0.$high, u0.$low)); + } + if (neg && !((r.$high === 0 && r.$low === 0))) { + qmod2 = (qmod2 ^ (1)) >> 0; + r = new Duration(d.$high - r.$high, d.$low - r.$low); + } + return [qmod2, r]; + }; + initLocal = function initLocal$1() { + var _q, _r$1, d, min, offset, z; + localLoc.name = "Local"; + z = new zone.ptr("", 0, false); + d = new ($global.Date)(); + offset = $imul(($parseInt(d.getTimezoneOffset()) >> 0), -1); + z.offset = $imul(offset, 60); + z.name = "UTC"; + if (offset < 0) { + z.name = z.name + ("-"); + offset = $imul(offset, (-1)); + } else { + z.name = z.name + ("+"); + } + z.name = z.name + (itoa((_q = offset / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")))); + min = (_r$1 = offset % 60, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); + if (!((min === 0))) { + z.name = z.name + (":" + itoa(min)); + } + localLoc.zone = new sliceType([$clone(z, zone)]); + }; + itoa = function itoa$1(i) { + var i; + if (i < 10) { + return $substring("0123456789", i, (i + 1 >> 0)); + } + return $substring("00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899", ($imul(i, 2)), (($imul(i, 2)) + 2 >> 0)); + }; + init = function init$1() { + $unused(Unix(new $Int64(0, 0), new $Int64(0, 0))); + }; + now = function now$1() { + var {_r$1, _tmp, _tmp$1, _tmp$2, mono$1, n, nsec$1, sec$1, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + sec$1 = new $Int64(0, 0); + nsec$1 = 0; + mono$1 = new $Int64(0, 0); + _r$1 = runtimeNano(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + n = _r$1; + _tmp = $div64(n, new $Int64(0, 1000000000), false); + _tmp$1 = (((x$1 = $div64(n, new $Int64(0, 1000000000), true), x$1.$low + ((x$1.$high >> 31) * 4294967296)) >> 0)); + _tmp$2 = n; + sec$1 = _tmp; + nsec$1 = _tmp$1; + mono$1 = _tmp$2; + $s = -1; return [sec$1, nsec$1, mono$1]; + /* */ } return; } var $f = {$blk: now$1, $c: true, $r, _r$1, _tmp, _tmp$1, _tmp$2, mono$1, n, nsec$1, sec$1, x$1, $s};return $f; + }; + startsWithLowerCase = function startsWithLowerCase$1(str) { + var c, str; + if (str.length === 0) { + return false; + } + c = str.charCodeAt(0); + return 97 <= c && c <= 122; + }; + nextStdChunk = function nextStdChunk$1(layout) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$6, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$7, _tmp$70, _tmp$71, _tmp$72, _tmp$73, _tmp$74, _tmp$75, _tmp$76, _tmp$77, _tmp$78, _tmp$79, _tmp$8, _tmp$80, _tmp$81, _tmp$82, _tmp$83, _tmp$84, _tmp$85, _tmp$86, _tmp$87, _tmp$88, _tmp$89, _tmp$9, _tmp$90, _tmp$91, _tmp$92, c, ch, code, i, j, layout, prefix, std, std$1, suffix, x$1; + prefix = ""; + std = 0; + suffix = ""; + i = 0; + while (true) { + if (!(i < layout.length)) { break; } + c = ((layout.charCodeAt(i) >> 0)); + _1 = c; + if (_1 === (74)) { + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Jan") { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "January") { + _tmp = $substring(layout, 0, i); + _tmp$1 = 257; + _tmp$2 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp; + std = _tmp$1; + suffix = _tmp$2; + return [prefix, std, suffix]; + } + if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) { + _tmp$3 = $substring(layout, 0, i); + _tmp$4 = 258; + _tmp$5 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$3; + std = _tmp$4; + suffix = _tmp$5; + return [prefix, std, suffix]; + } + } + } else if (_1 === (77)) { + if (layout.length >= (i + 3 >> 0)) { + if ($substring(layout, i, (i + 3 >> 0)) === "Mon") { + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Monday") { + _tmp$6 = $substring(layout, 0, i); + _tmp$7 = 261; + _tmp$8 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$6; + std = _tmp$7; + suffix = _tmp$8; + return [prefix, std, suffix]; + } + if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) { + _tmp$9 = $substring(layout, 0, i); + _tmp$10 = 262; + _tmp$11 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$9; + std = _tmp$10; + suffix = _tmp$11; + return [prefix, std, suffix]; + } + } + if ($substring(layout, i, (i + 3 >> 0)) === "MST") { + _tmp$12 = $substring(layout, 0, i); + _tmp$13 = 23; + _tmp$14 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$12; + std = _tmp$13; + suffix = _tmp$14; + return [prefix, std, suffix]; + } + } + } else if (_1 === (48)) { + if (layout.length >= (i + 2 >> 0) && 49 <= layout.charCodeAt((i + 1 >> 0)) && layout.charCodeAt((i + 1 >> 0)) <= 54) { + _tmp$15 = $substring(layout, 0, i); + _tmp$16 = (x$1 = layout.charCodeAt((i + 1 >> 0)) - 49 << 24 >>> 24, ((x$1 < 0 || x$1 >= std0x.length) ? ($throwRuntimeError("index out of range"), undefined) : std0x[x$1])); + _tmp$17 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$15; + std = _tmp$16; + suffix = _tmp$17; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 3 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 48) && (layout.charCodeAt((i + 2 >> 0)) === 50)) { + _tmp$18 = $substring(layout, 0, i); + _tmp$19 = 267; + _tmp$20 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$18; + std = _tmp$19; + suffix = _tmp$20; + return [prefix, std, suffix]; + } + } else if (_1 === (49)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 53)) { + _tmp$21 = $substring(layout, 0, i); + _tmp$22 = 524; + _tmp$23 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$21; + std = _tmp$22; + suffix = _tmp$23; + return [prefix, std, suffix]; + } + _tmp$24 = $substring(layout, 0, i); + _tmp$25 = 259; + _tmp$26 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$24; + std = _tmp$25; + suffix = _tmp$26; + return [prefix, std, suffix]; + } else if (_1 === (50)) { + if (layout.length >= (i + 4 >> 0) && $substring(layout, i, (i + 4 >> 0)) === "2006") { + _tmp$27 = $substring(layout, 0, i); + _tmp$28 = 275; + _tmp$29 = $substring(layout, (i + 4 >> 0)); + prefix = _tmp$27; + std = _tmp$28; + suffix = _tmp$29; + return [prefix, std, suffix]; + } + _tmp$30 = $substring(layout, 0, i); + _tmp$31 = 263; + _tmp$32 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$30; + std = _tmp$31; + suffix = _tmp$32; + return [prefix, std, suffix]; + } else if (_1 === (95)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 50)) { + if (layout.length >= (i + 5 >> 0) && $substring(layout, (i + 1 >> 0), (i + 5 >> 0)) === "2006") { + _tmp$33 = $substring(layout, 0, (i + 1 >> 0)); + _tmp$34 = 275; + _tmp$35 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$33; + std = _tmp$34; + suffix = _tmp$35; + return [prefix, std, suffix]; + } + _tmp$36 = $substring(layout, 0, i); + _tmp$37 = 264; + _tmp$38 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$36; + std = _tmp$37; + suffix = _tmp$38; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 3 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 95) && (layout.charCodeAt((i + 2 >> 0)) === 50)) { + _tmp$39 = $substring(layout, 0, i); + _tmp$40 = 266; + _tmp$41 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$39; + std = _tmp$40; + suffix = _tmp$41; + return [prefix, std, suffix]; + } + } else if (_1 === (51)) { + _tmp$42 = $substring(layout, 0, i); + _tmp$43 = 525; + _tmp$44 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$42; + std = _tmp$43; + suffix = _tmp$44; + return [prefix, std, suffix]; + } else if (_1 === (52)) { + _tmp$45 = $substring(layout, 0, i); + _tmp$46 = 527; + _tmp$47 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$45; + std = _tmp$46; + suffix = _tmp$47; + return [prefix, std, suffix]; + } else if (_1 === (53)) { + _tmp$48 = $substring(layout, 0, i); + _tmp$49 = 529; + _tmp$50 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$48; + std = _tmp$49; + suffix = _tmp$50; + return [prefix, std, suffix]; + } else if (_1 === (80)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 77)) { + _tmp$51 = $substring(layout, 0, i); + _tmp$52 = 533; + _tmp$53 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$51; + std = _tmp$52; + suffix = _tmp$53; + return [prefix, std, suffix]; + } + } else if (_1 === (112)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 109)) { + _tmp$54 = $substring(layout, 0, i); + _tmp$55 = 534; + _tmp$56 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$54; + std = _tmp$55; + suffix = _tmp$56; + return [prefix, std, suffix]; + } + } else if (_1 === (45)) { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "-070000") { + _tmp$57 = $substring(layout, 0, i); + _tmp$58 = 30; + _tmp$59 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp$57; + std = _tmp$58; + suffix = _tmp$59; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "-07:00:00") { + _tmp$60 = $substring(layout, 0, i); + _tmp$61 = 33; + _tmp$62 = $substring(layout, (i + 9 >> 0)); + prefix = _tmp$60; + std = _tmp$61; + suffix = _tmp$62; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "-0700") { + _tmp$63 = $substring(layout, 0, i); + _tmp$64 = 29; + _tmp$65 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$63; + std = _tmp$64; + suffix = _tmp$65; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "-07:00") { + _tmp$66 = $substring(layout, 0, i); + _tmp$67 = 32; + _tmp$68 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$66; + std = _tmp$67; + suffix = _tmp$68; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "-07") { + _tmp$69 = $substring(layout, 0, i); + _tmp$70 = 31; + _tmp$71 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$69; + std = _tmp$70; + suffix = _tmp$71; + return [prefix, std, suffix]; + } + } else if (_1 === (90)) { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "Z070000") { + _tmp$72 = $substring(layout, 0, i); + _tmp$73 = 25; + _tmp$74 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp$72; + std = _tmp$73; + suffix = _tmp$74; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "Z07:00:00") { + _tmp$75 = $substring(layout, 0, i); + _tmp$76 = 28; + _tmp$77 = $substring(layout, (i + 9 >> 0)); + prefix = _tmp$75; + std = _tmp$76; + suffix = _tmp$77; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "Z0700") { + _tmp$78 = $substring(layout, 0, i); + _tmp$79 = 24; + _tmp$80 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$78; + std = _tmp$79; + suffix = _tmp$80; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Z07:00") { + _tmp$81 = $substring(layout, 0, i); + _tmp$82 = 27; + _tmp$83 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$81; + std = _tmp$82; + suffix = _tmp$83; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Z07") { + _tmp$84 = $substring(layout, 0, i); + _tmp$85 = 26; + _tmp$86 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$84; + std = _tmp$85; + suffix = _tmp$86; + return [prefix, std, suffix]; + } + } else if ((_1 === (46)) || (_1 === (44))) { + if ((i + 1 >> 0) < layout.length && ((layout.charCodeAt((i + 1 >> 0)) === 48) || (layout.charCodeAt((i + 1 >> 0)) === 57))) { + ch = layout.charCodeAt((i + 1 >> 0)); + j = i + 1 >> 0; + while (true) { + if (!(j < layout.length && (layout.charCodeAt(j) === ch))) { break; } + j = j + (1) >> 0; + } + if (!isDigit(layout, j)) { + code = 34; + if (layout.charCodeAt((i + 1 >> 0)) === 57) { + code = 35; + } + std$1 = stdFracSecond(code, j - ((i + 1 >> 0)) >> 0, c); + _tmp$87 = $substring(layout, 0, i); + _tmp$88 = std$1; + _tmp$89 = $substring(layout, j); + prefix = _tmp$87; + std = _tmp$88; + suffix = _tmp$89; + return [prefix, std, suffix]; + } + } + } + i = i + (1) >> 0; + } + _tmp$90 = layout; + _tmp$91 = 0; + _tmp$92 = ""; + prefix = _tmp$90; + std = _tmp$91; + suffix = _tmp$92; + return [prefix, std, suffix]; + }; + match = function match$1(s1, s2) { + var c1, c2, i, s1, s2; + i = 0; + while (true) { + if (!(i < s1.length)) { break; } + c1 = s1.charCodeAt(i); + c2 = s2.charCodeAt(i); + if (!((c1 === c2))) { + c1 = (c1 | (32)) >>> 0; + c2 = (c2 | (32)) >>> 0; + if (!((c1 === c2)) || c1 < 97 || c1 > 122) { + return false; + } + } + i = i + (1) >> 0; + } + return true; + }; + lookup = function lookup$2(tab, val) { + var _i, _ref, i, tab, v, val; + _ref = tab; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (val.length >= v.length && match($substring(val, 0, v.length), v)) { + return [i, $substring(val, v.length), $ifaceNil]; + } + _i++; + } + return [-1, val, errBad]; + }; + appendInt = function appendInt$1(b, x$1, width) { + var _q, b, buf, i, q, u, w, width, x$1; + u = ((x$1 >>> 0)); + if (x$1 < 0) { + b = $append(b, 45); + u = ((-x$1 >>> 0)); + } + buf = arrayType$3.zero(); + i = 20; + while (true) { + if (!(u >= 10)) { break; } + i = i - (1) >> 0; + q = (_q = u / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((48 + u >>> 0) - ($imul(q, 10) >>> 0) >>> 0) << 24 >>> 24))); + u = q; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((48 + u >>> 0) << 24 >>> 24))); + w = 20 - i >> 0; + while (true) { + if (!(w < width)) { break; } + b = $append(b, 48); + w = w + (1) >> 0; + } + return $appendSlice(b, $subslice(new sliceType$3(buf), i)); + }; + atoi = function atoi$1(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, neg, q, rem, s, x$1; + x$1 = 0; + err = $ifaceNil; + neg = false; + if (!(s === "") && ((s.charCodeAt(0) === 45) || (s.charCodeAt(0) === 43))) { + neg = s.charCodeAt(0) === 45; + s = $substring(s, 1); + } + _tuple = leadingInt(s); + q = _tuple[0]; + rem = _tuple[1]; + err = _tuple[2]; + x$1 = ((q.$low >> 0)); + if (!($interfaceIsEqual(err, $ifaceNil)) || !(rem === "")) { + _tmp = 0; + _tmp$1 = atoiError; + x$1 = _tmp; + err = _tmp$1; + return [x$1, err]; + } + if (neg) { + x$1 = -x$1; + } + _tmp$2 = x$1; + _tmp$3 = $ifaceNil; + x$1 = _tmp$2; + err = _tmp$3; + return [x$1, err]; + }; + stdFracSecond = function stdFracSecond$1(code, n, c) { + var c, code, n; + if (c === 46) { + return code | ((((n & 4095)) << 16 >> 0)); + } + return (code | ((((n & 4095)) << 16 >> 0))) | 268435456; + }; + digitsLen = function digitsLen$1(std) { + var std; + return ((std >> 16 >> 0)) & 4095; + }; + separator = function separator$1(std) { + var std; + if (((std >> 28 >> 0)) === 0) { + return 46; + } + return 44; + }; + formatNano = function formatNano$1(b, nanosec, std) { + var _q, _r$1, b, buf, n, nanosec, separator$2, start, std, trim, u, x$1; + n = digitsLen(std); + separator$2 = separator(std); + trim = (std & 65535) === 35; + u = nanosec; + buf = arrayType$4.zero(); + start = 9; + while (true) { + if (!(start > 0)) { break; } + start = start - (1) >> 0; + ((start < 0 || start >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[start] = ((((_r$1 = u % 10, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24))); + u = (_q = u / (10), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + } + if (n > 9) { + n = 9; + } + if (trim) { + while (true) { + if (!(n > 0 && ((x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x$1])) === 48))) { break; } + n = n - (1) >> 0; + } + if (n === 0) { + return b; + } + } + b = $append(b, separator$2); + return $appendSlice(b, $subslice(new sliceType$3(buf), 0, n)); + }; + $ptrType(Time).prototype.String = function String$4() { + var {_r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, m0, m1, m2, s, sign, t, wid, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).Format("2006-01-02 15:04:05.999999999 -0700 MST"); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + s = _r$1; + if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + m2 = ((x$3 = t.ext, new $Uint64(x$3.$high, x$3.$low))); + sign = 43; + if ((x$4 = t.ext, (x$4.$high < 0 || (x$4.$high === 0 && x$4.$low < 0)))) { + sign = 45; + m2 = new $Uint64(-m2.$high, -m2.$low); + } + _tmp = $div64(m2, new $Uint64(0, 1000000000), false); + _tmp$1 = $div64(m2, new $Uint64(0, 1000000000), true); + m1 = _tmp; + m2 = _tmp$1; + _tmp$2 = $div64(m1, new $Uint64(0, 1000000000), false); + _tmp$3 = $div64(m1, new $Uint64(0, 1000000000), true); + m0 = _tmp$2; + m1 = _tmp$3; + buf = $makeSlice(sliceType$3, 0, 24); + buf = $appendSlice(buf, " m="); + buf = $append(buf, sign); + wid = 0; + if (!((m0.$high === 0 && m0.$low === 0))) { + buf = appendInt(buf, ((m0.$low >> 0)), 0); + wid = 9; + } + buf = appendInt(buf, ((m1.$low >> 0)), wid); + buf = $append(buf, 46); + buf = appendInt(buf, ((m2.$low >> 0)), 9); + s = s + (($bytesToString(buf))); + } + $s = -1; return s; + /* */ } return; } var $f = {$blk: String$4, $c: true, $r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, m0, m1, m2, s, sign, t, wid, x$1, x$2, x$3, x$4, $s};return $f; + }; + Time.prototype.String = function(...$args) { return this.$val.String(...$args); }; + $ptrType(Time).prototype.GoString = function GoString() { + var {_1, _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, buf, loc, month, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + buf = $makeSlice(sliceType$3, 0, 70); + buf = $appendSlice(buf, "time.Date("); + _arg = buf; + _r$1 = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + _r$2 = appendInt(_arg, _arg$1, 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + buf = _r$2; + _r$3 = $clone(t, Time).Month(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + month = _r$3; + /* */ if (1 <= month && month <= 12) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (1 <= month && month <= 12) { */ case 4: + buf = $appendSlice(buf, ", time."); + _arg$2 = buf; + _r$4 = $clone(t, Time).Month(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = new Month(_r$4).String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$3 = _r$5; + buf = $appendSlice(_arg$2, _arg$3); + $s = 6; continue; + /* } else { */ case 5: + buf = appendInt(buf, ((month >> 0)), 0); + /* } */ case 6: + buf = $appendSlice(buf, ", "); + _arg$4 = buf; + _r$6 = $clone(t, Time).Day(); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$5 = _r$6; + _r$7 = appendInt(_arg$4, _arg$5, 0); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + buf = _r$7; + buf = $appendSlice(buf, ", "); + _arg$6 = buf; + _r$8 = $clone(t, Time).Hour(); /* */ $s = 11; case 11: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg$7 = _r$8; + _r$9 = appendInt(_arg$6, _arg$7, 0); /* */ $s = 12; case 12: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + buf = _r$9; + buf = $appendSlice(buf, ", "); + _arg$8 = buf; + _r$10 = $clone(t, Time).Minute(); /* */ $s = 13; case 13: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _arg$9 = _r$10; + _r$11 = appendInt(_arg$8, _arg$9, 0); /* */ $s = 14; case 14: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + buf = _r$11; + buf = $appendSlice(buf, ", "); + _arg$10 = buf; + _r$12 = $clone(t, Time).Second(); /* */ $s = 15; case 15: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _arg$11 = _r$12; + _r$13 = appendInt(_arg$10, _arg$11, 0); /* */ $s = 16; case 16: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + buf = _r$13; + buf = $appendSlice(buf, ", "); + buf = appendInt(buf, $clone(t, Time).Nanosecond(), 0); + buf = $appendSlice(buf, ", "); + loc = $clone(t, Time).Location(); + _1 = loc; + if (_1 === ($pkg.UTC) || _1 === ptrType$2.nil) { + buf = $appendSlice(buf, "time.UTC"); + } else if (_1 === ($pkg.Local)) { + buf = $appendSlice(buf, "time.Local"); + } else { + buf = $appendSlice(buf, "time.Location("); + buf = $appendSlice(buf, (new sliceType$3($stringToBytes(quote(loc.name))))); + buf = $appendSlice(buf, ")"); + } + buf = $append(buf, 41); + $s = -1; return ($bytesToString(buf)); + /* */ } return; } var $f = {$blk: GoString, $c: true, $r, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, buf, loc, month, t, $s};return $f; + }; + Time.prototype.GoString = function(...$args) { return this.$val.GoString(...$args); }; + $ptrType(Time).prototype.Format = function Format(layout) { + var {_r$1, b, buf, layout, max, t, $s, $r, $c} = $restore(this, {layout}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + b = sliceType$3.nil; + max = layout.length + 10 >> 0; + if (max < 64) { + buf = arrayType$5.zero(); + b = $subslice(new sliceType$3(buf), 0, 0); + } else { + b = $makeSlice(sliceType$3, 0, max); + } + _r$1 = $clone(t, Time).AppendFormat(b, layout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + b = _r$1; + $s = -1; return ($bytesToString(b)); + /* */ } return; } var $f = {$blk: Format, $c: true, $r, _r$1, b, buf, layout, max, t, $s};return $f; + }; + Time.prototype.Format = function(...$args) { return this.$val.Format(...$args); }; + $ptrType(Time).prototype.AppendFormat = function AppendFormat(b, layout) { + var {_1, _q, _q$1, _q$2, _q$3, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, _tuple$3, abs$1, absoffset, b, day, hour, hr, hr$1, layout, m, min, month, name, offset, prefix, s, sec$1, std, suffix, t, y, yday, year, zone$1, zone$2, $s, $r, $c} = $restore(this, {b, layout}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = $clone(t, Time).locabs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + name = _tuple[0]; + offset = _tuple[1]; + abs$1 = _tuple[2]; + year = -1; + month = 0; + day = 0; + yday = 0; + hour = -1; + min = 0; + sec$1 = 0; + while (true) { + if (!(!(layout === ""))) { break; } + _tuple$1 = nextStdChunk(layout); + prefix = _tuple$1[0]; + std = _tuple$1[1]; + suffix = _tuple$1[2]; + if (!(prefix === "")) { + b = $appendSlice(b, prefix); + } + if (std === 0) { + break; + } + layout = suffix; + if (year < 0 && !(((std & 256) === 0))) { + _tuple$2 = absDate(abs$1, true); + year = _tuple$2[0]; + month = _tuple$2[1]; + day = _tuple$2[2]; + yday = _tuple$2[3]; + yday = yday + (1) >> 0; + } + if (hour < 0 && !(((std & 512) === 0))) { + _tuple$3 = absClock(abs$1); + hour = _tuple$3[0]; + min = _tuple$3[1]; + sec$1 = _tuple$3[2]; + } + switch (0) { default: + _1 = std & 65535; + if (_1 === (276)) { + y = year; + if (y < 0) { + y = -y; + } + b = appendInt(b, (_r$2 = y % 100, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")), 2); + } else if (_1 === (275)) { + b = appendInt(b, year, 4); + } else if (_1 === (258)) { + b = $appendSlice(b, $substring(new Month(month).String(), 0, 3)); + } else if (_1 === (257)) { + m = new Month(month).String(); + b = $appendSlice(b, m); + } else if (_1 === (259)) { + b = appendInt(b, ((month >> 0)), 0); + } else if (_1 === (260)) { + b = appendInt(b, ((month >> 0)), 2); + } else if (_1 === (262)) { + b = $appendSlice(b, $substring(new Weekday(absWeekday(abs$1)).String(), 0, 3)); + } else if (_1 === (261)) { + s = new Weekday(absWeekday(abs$1)).String(); + b = $appendSlice(b, s); + } else if (_1 === (263)) { + b = appendInt(b, day, 0); + } else if (_1 === (264)) { + if (day < 10) { + b = $append(b, 32); + } + b = appendInt(b, day, 0); + } else if (_1 === (265)) { + b = appendInt(b, day, 2); + } else if (_1 === (266)) { + if (yday < 100) { + b = $append(b, 32); + if (yday < 10) { + b = $append(b, 32); + } + } + b = appendInt(b, yday, 0); + } else if (_1 === (267)) { + b = appendInt(b, yday, 3); + } else if (_1 === (524)) { + b = appendInt(b, hour, 2); + } else if (_1 === (525)) { + hr = (_r$3 = hour % 12, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")); + if (hr === 0) { + hr = 12; + } + b = appendInt(b, hr, 0); + } else if (_1 === (526)) { + hr$1 = (_r$4 = hour % 12, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")); + if (hr$1 === 0) { + hr$1 = 12; + } + b = appendInt(b, hr$1, 2); + } else if (_1 === (527)) { + b = appendInt(b, min, 0); + } else if (_1 === (528)) { + b = appendInt(b, min, 2); + } else if (_1 === (529)) { + b = appendInt(b, sec$1, 0); + } else if (_1 === (530)) { + b = appendInt(b, sec$1, 2); + } else if (_1 === (533)) { + if (hour >= 12) { + b = $appendSlice(b, "PM"); + } else { + b = $appendSlice(b, "AM"); + } + } else if (_1 === (534)) { + if (hour >= 12) { + b = $appendSlice(b, "pm"); + } else { + b = $appendSlice(b, "am"); + } + } else if ((_1 === (24)) || (_1 === (27)) || (_1 === (25)) || (_1 === (26)) || (_1 === (28)) || (_1 === (29)) || (_1 === (32)) || (_1 === (30)) || (_1 === (31)) || (_1 === (33))) { + if ((offset === 0) && ((std === 24) || (std === 27) || (std === 25) || (std === 26) || (std === 28))) { + b = $append(b, 90); + break; + } + zone$1 = (_q = offset / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + absoffset = offset; + if (zone$1 < 0) { + b = $append(b, 45); + zone$1 = -zone$1; + absoffset = -absoffset; + } else { + b = $append(b, 43); + } + b = appendInt(b, (_q$1 = zone$1 / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 2); + if ((std === 27) || (std === 32) || (std === 28) || (std === 33)) { + b = $append(b, 58); + } + if (!((std === 31)) && !((std === 26))) { + b = appendInt(b, (_r$5 = zone$1 % 60, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")), 2); + } + if ((std === 25) || (std === 30) || (std === 33) || (std === 28)) { + if ((std === 33) || (std === 28)) { + b = $append(b, 58); + } + b = appendInt(b, (_r$6 = absoffset % 60, _r$6 === _r$6 ? _r$6 : $throwRuntimeError("integer divide by zero")), 2); + } + } else if (_1 === (23)) { + if (!(name === "")) { + b = $appendSlice(b, name); + break; + } + zone$2 = (_q$2 = offset / 60, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")); + if (zone$2 < 0) { + b = $append(b, 45); + zone$2 = -zone$2; + } else { + b = $append(b, 43); + } + b = appendInt(b, (_q$3 = zone$2 / 60, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")), 2); + b = appendInt(b, (_r$7 = zone$2 % 60, _r$7 === _r$7 ? _r$7 : $throwRuntimeError("integer divide by zero")), 2); + } else if ((_1 === (34)) || (_1 === (35))) { + b = formatNano(b, (($clone(t, Time).Nanosecond() >>> 0)), std); + } + } + } + $s = -1; return b; + /* */ } return; } var $f = {$blk: AppendFormat, $c: true, $r, _1, _q, _q$1, _q$2, _q$3, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, _tuple$3, abs$1, absoffset, b, day, hour, hr, hr$1, layout, m, min, month, name, offset, prefix, s, sec$1, std, suffix, t, y, yday, year, zone$1, zone$2, $s};return $f; + }; + Time.prototype.AppendFormat = function(...$args) { return this.$val.AppendFormat(...$args); }; + quote = function quote$1(s) { + var _i, _ref, _rune, buf, c, i, j, s, width; + buf = $makeSlice(sliceType$3, 1, (s.length + 2 >> 0)); + (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0] = 34); + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (c >= 128 || c < 32) { + width = 0; + if (c === 65533) { + width = 1; + if ((i + 2 >> 0) < s.length && $substring(s, i, (i + 3 >> 0)) === "\xEF\xBF\xBD") { + width = 3; + } + } else { + width = ($encodeRune(c)).length; + } + j = 0; + while (true) { + if (!(j < width)) { break; } + buf = $appendSlice(buf, "\\x"); + buf = $append(buf, "0123456789abcdef".charCodeAt((s.charCodeAt((i + j >> 0)) >>> 4 << 24 >>> 24))); + buf = $append(buf, "0123456789abcdef".charCodeAt(((s.charCodeAt((i + j >> 0)) & 15) >>> 0))); + j = j + (1) >> 0; + } + } else { + if ((c === 34) || (c === 92)) { + buf = $append(buf, 92); + } + buf = $appendSlice(buf, ($encodeRune(c))); + } + _i += _rune[1]; + } + buf = $append(buf, 34); + return ($bytesToString(buf)); + }; + $ptrType(ParseError).prototype.Error = function Error$1() { + var e; + e = this; + if (e.Message === "") { + return "parsing time " + quote(e.Value) + " as " + quote(e.Layout) + ": cannot parse " + quote(e.ValueElem) + " as " + quote(e.LayoutElem); + } + return "parsing time " + quote(e.Value) + e.Message; + }; + isDigit = function isDigit$1(s, i) { + var c, i, s; + if (s.length <= i) { + return false; + } + c = s.charCodeAt(i); + return 48 <= c && c <= 57; + }; + getnum = function getnum$1(s, fixed) { + var fixed, s; + if (!isDigit(s, 0)) { + return [0, s, errBad]; + } + if (!isDigit(s, 1)) { + if (fixed) { + return [0, s, errBad]; + } + return [(((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), $substring(s, 1), $ifaceNil]; + } + return [($imul((((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), 10)) + (((s.charCodeAt(1) - 48 << 24 >>> 24) >> 0)) >> 0, $substring(s, 2), $ifaceNil]; + }; + getnum3 = function getnum3$1(s, fixed) { + var _tmp, _tmp$1, fixed, i, n, s; + _tmp = 0; + _tmp$1 = 0; + n = _tmp; + i = _tmp$1; + i = 0; + while (true) { + if (!(i < 3 && isDigit(s, i))) { break; } + n = ($imul(n, 10)) + (((s.charCodeAt(i) - 48 << 24 >>> 24) >> 0)) >> 0; + i = i + (1) >> 0; + } + if ((i === 0) || fixed && !((i === 3))) { + return [0, s, errBad]; + } + return [n, $substring(s, i), $ifaceNil]; + }; + cutspace = function cutspace$1(s) { + var s; + while (true) { + if (!(s.length > 0 && (s.charCodeAt(0) === 32))) { break; } + s = $substring(s, 1); + } + return s; + }; + skip = function skip$1(value, prefix) { + var prefix, value; + while (true) { + if (!(prefix.length > 0)) { break; } + if (prefix.charCodeAt(0) === 32) { + if (value.length > 0 && !((value.charCodeAt(0) === 32))) { + return [value, errBad]; + } + prefix = cutspace(prefix); + value = cutspace(value); + continue; + } + if ((value.length === 0) || !((value.charCodeAt(0) === prefix.charCodeAt(0)))) { + return [value, errBad]; + } + prefix = $substring(prefix, 1); + value = $substring(value, 1); + } + return [value, $ifaceNil]; + }; + Parse = function Parse$1(layout, value) { + var {$24r, _r$1, layout, value, $s, $r, $c} = $restore(this, {layout, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = parse(layout, value, $pkg.UTC, $pkg.Local); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Parse$1, $c: true, $r, $24r, _r$1, layout, value, $s};return $f; + }; + $pkg.Parse = Parse; + parse = function parse$1(layout, value, defaultLocation, local) { + var {$24r, $24r$1, _1, _2, _3, _4, _q, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alayout, amSet, avalue, d, day, defaultLocation, err, hold, hour, hour$1, hr, i, i$1, layout, local, m, min, min$1, mm, month, n, n$1, name, ndigit, nsec$1, offset, offset$1, ok, ok$1, p, pmSet, prefix, rangeErrString, sec$1, seconds, sign, ss, std, stdstr, suffix, t, t$1, value, x$1, x$2, x$3, yday, year, z, zoneName, zoneOffset, $s, $r, $c} = $restore(this, {layout, value, defaultLocation, local}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tmp = layout; + _tmp$1 = value; + alayout = _tmp; + avalue = _tmp$1; + rangeErrString = ""; + amSet = false; + pmSet = false; + year = 0; + month = -1; + day = -1; + yday = -1; + hour = 0; + min = 0; + sec$1 = 0; + nsec$1 = 0; + z = ptrType$2.nil; + zoneOffset = -1; + zoneName = ""; + while (true) { + err = $ifaceNil; + _tuple = nextStdChunk(layout); + prefix = _tuple[0]; + std = _tuple[1]; + suffix = _tuple[2]; + stdstr = $substring(layout, prefix.length, (layout.length - suffix.length >> 0)); + _tuple$1 = skip(value, prefix); + value = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, prefix, value, "")]; + } + if (std === 0) { + if (!((value.length === 0))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": extra text: " + quote(value))]; + } + break; + } + layout = suffix; + p = ""; + switch (0) { default: + _1 = std & 65535; + if (_1 === (276)) { + if (value.length < 2) { + err = errBad; + break; + } + hold = value; + _tmp$2 = $substring(value, 0, 2); + _tmp$3 = $substring(value, 2); + p = _tmp$2; + value = _tmp$3; + _tuple$2 = atoi(p); + year = _tuple$2[0]; + err = _tuple$2[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + value = hold; + } else if (year >= 69) { + year = year + (1900) >> 0; + } else { + year = year + (2000) >> 0; + } + } else if (_1 === (275)) { + if (value.length < 4 || !isDigit(value, 0)) { + err = errBad; + break; + } + _tmp$4 = $substring(value, 0, 4); + _tmp$5 = $substring(value, 4); + p = _tmp$4; + value = _tmp$5; + _tuple$3 = atoi(p); + year = _tuple$3[0]; + err = _tuple$3[1]; + } else if (_1 === (258)) { + _tuple$4 = lookup(shortMonthNames, value); + month = _tuple$4[0]; + value = _tuple$4[1]; + err = _tuple$4[2]; + month = month + (1) >> 0; + } else if (_1 === (257)) { + _tuple$5 = lookup(longMonthNames, value); + month = _tuple$5[0]; + value = _tuple$5[1]; + err = _tuple$5[2]; + month = month + (1) >> 0; + } else if ((_1 === (259)) || (_1 === (260))) { + _tuple$6 = getnum(value, std === 260); + month = _tuple$6[0]; + value = _tuple$6[1]; + err = _tuple$6[2]; + if ($interfaceIsEqual(err, $ifaceNil) && (month <= 0 || 12 < month)) { + rangeErrString = "month"; + } + } else if (_1 === (262)) { + _tuple$7 = lookup(shortDayNames, value); + value = _tuple$7[1]; + err = _tuple$7[2]; + } else if (_1 === (261)) { + _tuple$8 = lookup(longDayNames, value); + value = _tuple$8[1]; + err = _tuple$8[2]; + } else if ((_1 === (263)) || (_1 === (264)) || (_1 === (265))) { + if ((std === 264) && value.length > 0 && (value.charCodeAt(0) === 32)) { + value = $substring(value, 1); + } + _tuple$9 = getnum(value, std === 265); + day = _tuple$9[0]; + value = _tuple$9[1]; + err = _tuple$9[2]; + } else if ((_1 === (266)) || (_1 === (267))) { + i = 0; + while (true) { + if (!(i < 2)) { break; } + if ((std === 266) && value.length > 0 && (value.charCodeAt(0) === 32)) { + value = $substring(value, 1); + } + i = i + (1) >> 0; + } + _tuple$10 = getnum3(value, std === 267); + yday = _tuple$10[0]; + value = _tuple$10[1]; + err = _tuple$10[2]; + } else if (_1 === (524)) { + _tuple$11 = getnum(value, false); + hour = _tuple$11[0]; + value = _tuple$11[1]; + err = _tuple$11[2]; + if (hour < 0 || 24 <= hour) { + rangeErrString = "hour"; + } + } else if ((_1 === (525)) || (_1 === (526))) { + _tuple$12 = getnum(value, std === 526); + hour = _tuple$12[0]; + value = _tuple$12[1]; + err = _tuple$12[2]; + if (hour < 0 || 12 < hour) { + rangeErrString = "hour"; + } + } else if ((_1 === (527)) || (_1 === (528))) { + _tuple$13 = getnum(value, std === 528); + min = _tuple$13[0]; + value = _tuple$13[1]; + err = _tuple$13[2]; + if (min < 0 || 60 <= min) { + rangeErrString = "minute"; + } + } else if ((_1 === (529)) || (_1 === (530))) { + _tuple$14 = getnum(value, std === 530); + sec$1 = _tuple$14[0]; + value = _tuple$14[1]; + err = _tuple$14[2]; + if (sec$1 < 0 || 60 <= sec$1) { + rangeErrString = "second"; + break; + } + if (value.length >= 2 && commaOrPeriod(value.charCodeAt(0)) && isDigit(value, 1)) { + _tuple$15 = nextStdChunk(layout); + std = _tuple$15[1]; + std = std & (65535); + if ((std === 34) || (std === 35)) { + break; + } + n = 2; + while (true) { + if (!(n < value.length && isDigit(value, n))) { break; } + n = n + (1) >> 0; + } + _tuple$16 = parseNanoseconds(value, n); + nsec$1 = _tuple$16[0]; + rangeErrString = _tuple$16[1]; + err = _tuple$16[2]; + value = $substring(value, n); + } + } else if (_1 === (533)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$6 = $substring(value, 0, 2); + _tmp$7 = $substring(value, 2); + p = _tmp$6; + value = _tmp$7; + _2 = p; + if (_2 === ("PM")) { + pmSet = true; + } else if (_2 === ("AM")) { + amSet = true; + } else { + err = errBad; + } + } else if (_1 === (534)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$8 = $substring(value, 0, 2); + _tmp$9 = $substring(value, 2); + p = _tmp$8; + value = _tmp$9; + _3 = p; + if (_3 === ("pm")) { + pmSet = true; + } else if (_3 === ("am")) { + amSet = true; + } else { + err = errBad; + } + } else if ((_1 === (24)) || (_1 === (27)) || (_1 === (25)) || (_1 === (26)) || (_1 === (28)) || (_1 === (29)) || (_1 === (31)) || (_1 === (32)) || (_1 === (30)) || (_1 === (33))) { + if (((std === 24) || (std === 26) || (std === 27)) && value.length >= 1 && (value.charCodeAt(0) === 90)) { + value = $substring(value, 1); + z = $pkg.UTC; + break; + } + _tmp$10 = ""; + _tmp$11 = ""; + _tmp$12 = ""; + _tmp$13 = ""; + sign = _tmp$10; + hour$1 = _tmp$11; + min$1 = _tmp$12; + seconds = _tmp$13; + if ((std === 27) || (std === 32)) { + if (value.length < 6) { + err = errBad; + break; + } + if (!((value.charCodeAt(3) === 58))) { + err = errBad; + break; + } + _tmp$14 = $substring(value, 0, 1); + _tmp$15 = $substring(value, 1, 3); + _tmp$16 = $substring(value, 4, 6); + _tmp$17 = "00"; + _tmp$18 = $substring(value, 6); + sign = _tmp$14; + hour$1 = _tmp$15; + min$1 = _tmp$16; + seconds = _tmp$17; + value = _tmp$18; + } else if ((std === 31) || (std === 26)) { + if (value.length < 3) { + err = errBad; + break; + } + _tmp$19 = $substring(value, 0, 1); + _tmp$20 = $substring(value, 1, 3); + _tmp$21 = "00"; + _tmp$22 = "00"; + _tmp$23 = $substring(value, 3); + sign = _tmp$19; + hour$1 = _tmp$20; + min$1 = _tmp$21; + seconds = _tmp$22; + value = _tmp$23; + } else if ((std === 28) || (std === 33)) { + if (value.length < 9) { + err = errBad; + break; + } + if (!((value.charCodeAt(3) === 58)) || !((value.charCodeAt(6) === 58))) { + err = errBad; + break; + } + _tmp$24 = $substring(value, 0, 1); + _tmp$25 = $substring(value, 1, 3); + _tmp$26 = $substring(value, 4, 6); + _tmp$27 = $substring(value, 7, 9); + _tmp$28 = $substring(value, 9); + sign = _tmp$24; + hour$1 = _tmp$25; + min$1 = _tmp$26; + seconds = _tmp$27; + value = _tmp$28; + } else if ((std === 25) || (std === 30)) { + if (value.length < 7) { + err = errBad; + break; + } + _tmp$29 = $substring(value, 0, 1); + _tmp$30 = $substring(value, 1, 3); + _tmp$31 = $substring(value, 3, 5); + _tmp$32 = $substring(value, 5, 7); + _tmp$33 = $substring(value, 7); + sign = _tmp$29; + hour$1 = _tmp$30; + min$1 = _tmp$31; + seconds = _tmp$32; + value = _tmp$33; + } else { + if (value.length < 5) { + err = errBad; + break; + } + _tmp$34 = $substring(value, 0, 1); + _tmp$35 = $substring(value, 1, 3); + _tmp$36 = $substring(value, 3, 5); + _tmp$37 = "00"; + _tmp$38 = $substring(value, 5); + sign = _tmp$34; + hour$1 = _tmp$35; + min$1 = _tmp$36; + seconds = _tmp$37; + value = _tmp$38; + } + _tmp$39 = 0; + _tmp$40 = 0; + _tmp$41 = 0; + hr = _tmp$39; + mm = _tmp$40; + ss = _tmp$41; + _tuple$17 = atoi(hour$1); + hr = _tuple$17[0]; + err = _tuple$17[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + _tuple$18 = atoi(min$1); + mm = _tuple$18[0]; + err = _tuple$18[1]; + } + if ($interfaceIsEqual(err, $ifaceNil)) { + _tuple$19 = atoi(seconds); + ss = _tuple$19[0]; + err = _tuple$19[1]; + } + zoneOffset = ($imul(((($imul(hr, 60)) + mm >> 0)), 60)) + ss >> 0; + _4 = sign.charCodeAt(0); + if (_4 === (43)) { + } else if (_4 === (45)) { + zoneOffset = -zoneOffset; + } else { + err = errBad; + } + } else if (_1 === (23)) { + if (value.length >= 3 && $substring(value, 0, 3) === "UTC") { + z = $pkg.UTC; + value = $substring(value, 3); + break; + } + _tuple$20 = parseTimeZone(value); + n$1 = _tuple$20[0]; + ok = _tuple$20[1]; + if (!ok) { + err = errBad; + break; + } + _tmp$42 = $substring(value, 0, n$1); + _tmp$43 = $substring(value, n$1); + zoneName = _tmp$42; + value = _tmp$43; + } else if (_1 === (34)) { + ndigit = 1 + digitsLen(std) >> 0; + if (value.length < ndigit) { + err = errBad; + break; + } + _tuple$21 = parseNanoseconds(value, ndigit); + nsec$1 = _tuple$21[0]; + rangeErrString = _tuple$21[1]; + err = _tuple$21[2]; + value = $substring(value, ndigit); + } else if (_1 === (35)) { + if (value.length < 2 || !commaOrPeriod(value.charCodeAt(0)) || value.charCodeAt(1) < 48 || 57 < value.charCodeAt(1)) { + break; + } + i$1 = 0; + while (true) { + if (!(i$1 < 9 && (i$1 + 1 >> 0) < value.length && 48 <= value.charCodeAt((i$1 + 1 >> 0)) && value.charCodeAt((i$1 + 1 >> 0)) <= 57)) { break; } + i$1 = i$1 + (1) >> 0; + } + _tuple$22 = parseNanoseconds(value, 1 + i$1 >> 0); + nsec$1 = _tuple$22[0]; + rangeErrString = _tuple$22[1]; + err = _tuple$22[2]; + value = $substring(value, (1 + i$1 >> 0)); + } + } + if (!(rangeErrString === "")) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, ": " + rangeErrString + " out of range")]; + } + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, "")]; + } + } + if (pmSet && hour < 12) { + hour = hour + (12) >> 0; + } else if (amSet && (hour === 12)) { + hour = 0; + } + if (yday >= 0) { + d = 0; + m = 0; + if (isLeap(year)) { + if (yday === 60) { + m = 2; + d = 29; + } else if (yday > 60) { + yday = yday - (1) >> 0; + } + } + if (yday < 1 || yday > 365) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day-of-year out of range")]; + } + if (m === 0) { + m = (_q = ((yday - 1 >> 0)) / 31, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0; + if (((((m < 0 || m >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[m]) >> 0)) < yday) { + m = m + (1) >> 0; + } + d = yday - (((x$1 = m - 1 >> 0, ((x$1 < 0 || x$1 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$1])) >> 0)) >> 0; + } + if (month >= 0 && !((month === m))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day-of-year does not match month")]; + } + month = m; + if (day >= 0 && !((day === d))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day-of-year does not match day")]; + } + day = d; + } else { + if (month < 0) { + month = 1; + } + if (day < 0) { + day = 1; + } + } + if (day < 1 || day > daysIn(((month >> 0)), year)) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day out of range")]; + } + /* */ if (!(z === ptrType$2.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(z === ptrType$2.nil)) { */ case 1: + _r$1 = Date(year, ((month >> 0)), day, hour, min, sec$1, nsec$1, z); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = [_r$1, $ifaceNil]; + $s = 4; case 4: return $24r; + /* } */ case 2: + /* */ if (!((zoneOffset === -1))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((zoneOffset === -1))) { */ case 5: + _r$2 = Date(year, ((month >> 0)), day, hour, min, sec$1, nsec$1, $pkg.UTC); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + t = $clone(_r$2, Time); + t.addSec((x$2 = (new $Int64(0, zoneOffset)), new $Int64(-x$2.$high, -x$2.$low))); + _r$3 = local.lookup(t.unixSec()); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$23 = _r$3; + name = _tuple$23[0]; + offset = _tuple$23[1]; + if ((offset === zoneOffset) && (zoneName === "" || name === zoneName)) { + t.setLoc(local); + $s = -1; return [t, $ifaceNil]; + } + t.setLoc(FixedZone(zoneName, zoneOffset)); + $s = -1; return [t, $ifaceNil]; + /* } */ case 6: + /* */ if (!(zoneName === "")) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(zoneName === "")) { */ case 9: + _r$4 = Date(year, ((month >> 0)), day, hour, min, sec$1, nsec$1, $pkg.UTC); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + t$1 = $clone(_r$4, Time); + _r$5 = local.lookupName(zoneName, t$1.unixSec()); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$24 = _r$5; + offset$1 = _tuple$24[0]; + ok$1 = _tuple$24[1]; + if (ok$1) { + t$1.addSec((x$3 = (new $Int64(0, offset$1)), new $Int64(-x$3.$high, -x$3.$low))); + t$1.setLoc(local); + $s = -1; return [t$1, $ifaceNil]; + } + if (zoneName.length > 3 && $substring(zoneName, 0, 3) === "GMT") { + _tuple$25 = atoi($substring(zoneName, 3)); + offset$1 = _tuple$25[0]; + offset$1 = $imul(offset$1, (3600)); + } + t$1.setLoc(FixedZone(zoneName, offset$1)); + $s = -1; return [t$1, $ifaceNil]; + /* } */ case 10: + _r$6 = Date(year, ((month >> 0)), day, hour, min, sec$1, nsec$1, defaultLocation); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$1 = [_r$6, $ifaceNil]; + $s = 14; case 14: return $24r$1; + /* */ } return; } var $f = {$blk: parse$1, $c: true, $r, $24r, $24r$1, _1, _2, _3, _4, _q, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alayout, amSet, avalue, d, day, defaultLocation, err, hold, hour, hour$1, hr, i, i$1, layout, local, m, min, min$1, mm, month, n, n$1, name, ndigit, nsec$1, offset, offset$1, ok, ok$1, p, pmSet, prefix, rangeErrString, sec$1, seconds, sign, ss, std, stdstr, suffix, t, t$1, value, x$1, x$2, x$3, yday, year, z, zoneName, zoneOffset, $s};return $f; + }; + parseTimeZone = function parseTimeZone$1(value) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, c, length, nUpper, ok, ok$1, value; + length = 0; + ok = false; + if (value.length < 3) { + _tmp = 0; + _tmp$1 = false; + length = _tmp; + ok = _tmp$1; + return [length, ok]; + } + if (value.length >= 4 && ($substring(value, 0, 4) === "ChST" || $substring(value, 0, 4) === "MeST")) { + _tmp$2 = 4; + _tmp$3 = true; + length = _tmp$2; + ok = _tmp$3; + return [length, ok]; + } + if ($substring(value, 0, 3) === "GMT") { + length = parseGMT(value); + _tmp$4 = length; + _tmp$5 = true; + length = _tmp$4; + ok = _tmp$5; + return [length, ok]; + } + if ((value.charCodeAt(0) === 43) || (value.charCodeAt(0) === 45)) { + length = parseSignedOffset(value); + ok$1 = length > 0; + _tmp$6 = length; + _tmp$7 = ok$1; + length = _tmp$6; + ok = _tmp$7; + return [length, ok]; + } + nUpper = 0; + nUpper = 0; + while (true) { + if (!(nUpper < 6)) { break; } + if (nUpper >= value.length) { + break; + } + c = value.charCodeAt(nUpper); + if (c < 65 || 90 < c) { + break; + } + nUpper = nUpper + (1) >> 0; + } + _1 = nUpper; + if ((_1 === (0)) || (_1 === (1)) || (_1 === (2)) || (_1 === (6))) { + _tmp$8 = 0; + _tmp$9 = false; + length = _tmp$8; + ok = _tmp$9; + return [length, ok]; + } else if (_1 === (5)) { + if (value.charCodeAt(4) === 84) { + _tmp$10 = 5; + _tmp$11 = true; + length = _tmp$10; + ok = _tmp$11; + return [length, ok]; + } + } else if (_1 === (4)) { + if ((value.charCodeAt(3) === 84) || $substring(value, 0, 4) === "WITA") { + _tmp$12 = 4; + _tmp$13 = true; + length = _tmp$12; + ok = _tmp$13; + return [length, ok]; + } + } else if (_1 === (3)) { + _tmp$14 = 3; + _tmp$15 = true; + length = _tmp$14; + ok = _tmp$15; + return [length, ok]; + } + _tmp$16 = 0; + _tmp$17 = false; + length = _tmp$16; + ok = _tmp$17; + return [length, ok]; + }; + parseGMT = function parseGMT$1(value) { + var value; + value = $substring(value, 3); + if (value.length === 0) { + return 3; + } + return 3 + parseSignedOffset(value) >> 0; + }; + parseSignedOffset = function parseSignedOffset$1(value) { + var _tuple, err, rem, sign, value, x$1; + sign = value.charCodeAt(0); + if (!((sign === 45)) && !((sign === 43))) { + return 0; + } + _tuple = leadingInt($substring(value, 1)); + x$1 = _tuple[0]; + rem = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil)) || $substring(value, 1) === rem) { + return 0; + } + if ((x$1.$high > 0 || (x$1.$high === 0 && x$1.$low > 23))) { + return 0; + } + return value.length - rem.length >> 0; + }; + commaOrPeriod = function commaOrPeriod$1(b) { + var b; + return (b === 46) || (b === 44); + }; + parseNanoseconds = function parseNanoseconds$1(value, nbytes) { + var _tuple, err, i, nbytes, ns, rangeErrString, scaleDigits, value; + ns = 0; + rangeErrString = ""; + err = $ifaceNil; + if (!commaOrPeriod(value.charCodeAt(0))) { + err = errBad; + return [ns, rangeErrString, err]; + } + if (nbytes > 10) { + value = $substring(value, 0, 10); + nbytes = 10; + } + _tuple = atoi($substring(value, 1, nbytes)); + ns = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [ns, rangeErrString, err]; + } + if (ns < 0) { + rangeErrString = "fractional second"; + return [ns, rangeErrString, err]; + } + scaleDigits = 10 - nbytes >> 0; + i = 0; + while (true) { + if (!(i < scaleDigits)) { break; } + ns = $imul(ns, (10)); + i = i + (1) >> 0; + } + return [ns, rangeErrString, err]; + }; + leadingInt = function leadingInt$1(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, c, err, i, rem, s, x$1, x$2, x$3, x$4; + x$1 = new $Uint64(0, 0); + rem = ""; + err = $ifaceNil; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + c = s.charCodeAt(i); + if (c < 48 || c > 57) { + break; + } + if ((x$1.$high > 214748364 || (x$1.$high === 214748364 && x$1.$low > 3435973836))) { + _tmp = new $Uint64(0, 0); + _tmp$1 = ""; + _tmp$2 = errLeadingInt; + x$1 = _tmp; + rem = _tmp$1; + err = _tmp$2; + return [x$1, rem, err]; + } + x$1 = (x$2 = (x$3 = $mul64(x$1, new $Uint64(0, 10)), x$4 = (new $Uint64(0, c)), new $Uint64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)), new $Uint64(x$2.$high - 0, x$2.$low - 48)); + if ((x$1.$high > 2147483648 || (x$1.$high === 2147483648 && x$1.$low > 0))) { + _tmp$3 = new $Uint64(0, 0); + _tmp$4 = ""; + _tmp$5 = errLeadingInt; + x$1 = _tmp$3; + rem = _tmp$4; + err = _tmp$5; + return [x$1, rem, err]; + } + i = i + (1) >> 0; + } + _tmp$6 = x$1; + _tmp$7 = $substring(s, i); + _tmp$8 = $ifaceNil; + x$1 = _tmp$6; + rem = _tmp$7; + err = _tmp$8; + return [x$1, rem, err]; + }; + ptrType$2.methods = [{prop: "get", name: "get", pkg: "time", typ: $funcType([], [ptrType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "lookup", name: "lookup", pkg: "time", typ: $funcType([$Int64], [$String, $Int, $Int64, $Int64, $Bool], false)}, {prop: "lookupFirstZone", name: "lookupFirstZone", pkg: "time", typ: $funcType([], [$Int], false)}, {prop: "firstZoneUsed", name: "firstZoneUsed", pkg: "time", typ: $funcType([], [$Bool], false)}, {prop: "lookupName", name: "lookupName", pkg: "time", typ: $funcType([$String, $Int64], [$Int, $Bool], false)}]; + Time.methods = [{prop: "After", name: "After", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Before", name: "Before", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "abs", name: "abs", pkg: "time", typ: $funcType([], [$Uint64], false)}, {prop: "locabs", name: "locabs", pkg: "time", typ: $funcType([], [$String, $Int, $Uint64], false)}, {prop: "Date", name: "Date", pkg: "", typ: $funcType([], [$Int, Month, $Int], false)}, {prop: "Year", name: "Year", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Month", name: "Month", pkg: "", typ: $funcType([], [Month], false)}, {prop: "Day", name: "Day", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Weekday", name: "Weekday", pkg: "", typ: $funcType([], [Weekday], false)}, {prop: "ISOWeek", name: "ISOWeek", pkg: "", typ: $funcType([], [$Int, $Int], false)}, {prop: "Clock", name: "Clock", pkg: "", typ: $funcType([], [$Int, $Int, $Int], false)}, {prop: "Hour", name: "Hour", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Minute", name: "Minute", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Second", name: "Second", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Nanosecond", name: "Nanosecond", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "YearDay", name: "YearDay", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([Time], [Duration], false)}, {prop: "AddDate", name: "AddDate", pkg: "", typ: $funcType([$Int, $Int, $Int], [Time], false)}, {prop: "date", name: "date", pkg: "time", typ: $funcType([$Bool], [$Int, Month, $Int, $Int], false)}, {prop: "UTC", name: "UTC", pkg: "", typ: $funcType([], [Time], false)}, {prop: "Local", name: "Local", pkg: "", typ: $funcType([], [Time], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([ptrType$2], [Time], false)}, {prop: "Location", name: "Location", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Zone", name: "Zone", pkg: "", typ: $funcType([], [$String, $Int], false)}, {prop: "ZoneBounds", name: "ZoneBounds", pkg: "", typ: $funcType([], [Time, Time], false)}, {prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixMilli", name: "UnixMilli", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixMicro", name: "UnixMicro", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixNano", name: "UnixNano", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "IsDST", name: "IsDST", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "AppendFormat", name: "AppendFormat", pkg: "", typ: $funcType([sliceType$3, $String], [sliceType$3], false)}]; + ptrType$4.methods = [{prop: "nsec", name: "nsec", pkg: "time", typ: $funcType([], [$Int32], false)}, {prop: "sec", name: "sec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "unixSec", name: "unixSec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "addSec", name: "addSec", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "setLoc", name: "setLoc", pkg: "time", typ: $funcType([ptrType$2], [], false)}, {prop: "stripMono", name: "stripMono", pkg: "time", typ: $funcType([], [], false)}, {prop: "setMono", name: "setMono", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "mono", name: "mono", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$3], [$error], false)}]; + Month.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + Weekday.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + Duration.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Nanoseconds", name: "Nanoseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Microseconds", name: "Microseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Milliseconds", name: "Milliseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seconds", name: "Seconds", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Minutes", name: "Minutes", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Hours", name: "Hours", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Duration], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Duration], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([], [Duration], false)}]; + ptrType$8.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + Location.init("time", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "zone", name: "zone", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "tx", name: "tx", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "extend", name: "extend", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "cacheStart", name: "cacheStart", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheEnd", name: "cacheEnd", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheZone", name: "cacheZone", embedded: false, exported: false, typ: ptrType, tag: ""}]); + zone.init("time", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "isDST", name: "isDST", embedded: false, exported: false, typ: $Bool, tag: ""}]); + zoneTrans.init("time", [{prop: "when", name: "when", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "isstd", name: "isstd", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isutc", name: "isutc", embedded: false, exported: false, typ: $Bool, tag: ""}]); + rule.init("time", [{prop: "kind", name: "kind", embedded: false, exported: false, typ: ruleKind, tag: ""}, {prop: "day", name: "day", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "week", name: "week", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "mon", name: "mon", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "time", name: "time", embedded: false, exported: false, typ: $Int, tag: ""}]); + Time.init("time", [{prop: "wall", name: "wall", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "ext", name: "ext", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "loc", name: "loc", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + ParseError.init("", [{prop: "Layout", name: "Layout", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "LayoutElem", name: "LayoutElem", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ValueElem", name: "ValueElem", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Message", name: "Message", embedded: false, exported: true, typ: $String, tag: ""}]); + $pkg.$initLinknames = function() { + runtimeNano = $linknames["runtime.nanotime"]; +}; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + localLoc = new Location.ptr("", sliceType.nil, sliceType$1.nil, "", new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); + localOnce = new nosync.Once.ptr(false, false); + badData = errors.New("malformed time zone information"); + utcLoc = new Location.ptr("UTC", sliceType.nil, sliceType$1.nil, "", new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); + $pkg.UTC = utcLoc; + $pkg.Local = localLoc; + errLocation = errors.New("time: invalid location name"); + daysBefore = $toNativeArray($kindInt32, [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]); + _r = runtimeNano(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + startNano = (x = _r, new $Int64(x.$high - 0, x.$low - 1)); + zoneSources = new sliceType$2([runtime.GOROOT() + "/lib/time/zoneinfo.zip"]); + std0x = $toNativeArray($kindInt, [260, 265, 526, 528, 530, 276]); + longDayNames = new sliceType$2(["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); + shortDayNames = new sliceType$2(["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); + shortMonthNames = new sliceType$2(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]); + longMonthNames = new sliceType$2(["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]); + atoiError = errors.New("time: invalid number"); + errBad = errors.New("bad value for field"); + errLeadingInt = errors.New("time: bad [0-9]*"); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/poll"] = (function() { + var $pkg = {}, $init, errors, unix, io, atomic, syscall, time, FD, pollDesc, fdMutex, errNetClosing, DeadlineExceededError, tryDupCloexec, tryDupCloexec$24ptr, accept, runtime_Semacquire, runtime_Semrelease, DupCloseOnExec, dupCloseOnExecOld, ignoringEINTRIO, ignoringEINTR, setDeadlineImpl, errClosing, fcntl; + errors = $packages["errors"]; + unix = $packages["internal/syscall/unix"]; + io = $packages["io"]; + atomic = $packages["sync/atomic"]; + syscall = $packages["syscall"]; + time = $packages["time"]; + FD = $newType(0, $kindStruct, "poll.FD", true, "internal/poll", true, function(fdmu_, Sysfd_, pd_, iovecs_, csema_, isBlocking_, IsStream_, ZeroReadIsEOF_, isFile_) { + this.$val = this; + if (arguments.length === 0) { + this.fdmu = new fdMutex.ptr(new $Uint64(0, 0), 0, 0); + this.Sysfd = 0; + this.pd = new pollDesc.ptr(ptrType$2.nil, false); + this.iovecs = ptrType$4.nil; + this.csema = 0; + this.isBlocking = 0; + this.IsStream = false; + this.ZeroReadIsEOF = false; + this.isFile = false; + return; + } + this.fdmu = fdmu_; + this.Sysfd = Sysfd_; + this.pd = pd_; + this.iovecs = iovecs_; + this.csema = csema_; + this.isBlocking = isBlocking_; + this.IsStream = IsStream_; + this.ZeroReadIsEOF = ZeroReadIsEOF_; + this.isFile = isFile_; + }); + pollDesc = $newType(0, $kindStruct, "poll.pollDesc", true, "internal/poll", false, function(fd_, closing_) { + this.$val = this; + if (arguments.length === 0) { + this.fd = ptrType$2.nil; + this.closing = false; + return; + } + this.fd = fd_; + this.closing = closing_; + }); + fdMutex = $newType(0, $kindStruct, "poll.fdMutex", true, "internal/poll", false, function(state_, rsema_, wsema_) { + this.$val = this; + if (arguments.length === 0) { + this.state = new $Uint64(0, 0); + this.rsema = 0; + this.wsema = 0; + return; + } + this.state = state_; + this.rsema = rsema_; + this.wsema = wsema_; + }); + errNetClosing = $newType(0, $kindStruct, "poll.errNetClosing", true, "internal/poll", false, function() { this.$val = this; }); + DeadlineExceededError = $newType(0, $kindStruct, "poll.DeadlineExceededError", true, "internal/poll", true, function() { this.$val = this; }); + $pkg.FD = FD; + $pkg.pollDesc = pollDesc; + $pkg.fdMutex = fdMutex; + $pkg.errNetClosing = errNetClosing; + $pkg.DeadlineExceededError = DeadlineExceededError; + $pkg.$finishSetup = function() { + accept = function accept$1(s) { + var {_r, _r$1, _tuple, err, ns, s, sa, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = $pkg.AcceptFunc(s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ns = _tuple[0]; + sa = _tuple[1]; + err = _tuple[2]; + if ($interfaceIsEqual(err, $ifaceNil)) { + syscall.CloseOnExec(ns); + } + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, $ifaceNil, "accept", err]; + } + err = syscall.SetNonblock(ns, true); + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$1 = $pkg.CloseFunc(ns); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return [-1, $ifaceNil, "setnonblock", err]; + /* } */ case 3: + $s = -1; return [ns, sa, "", $ifaceNil]; + /* */ } return; } var $f = {$blk: accept$1, $c: true, $r, _r, _r$1, _tuple, err, ns, s, sa, $s};return $f; + }; + runtime_Semacquire = function() { + $throwRuntimeError("native function not implemented: internal/poll.runtime_Semacquire"); + }; + runtime_Semrelease = function() { + $throwRuntimeError("native function not implemented: internal/poll.runtime_Semrelease"); + }; + $ptrType(FD).prototype.Init = function Init(net, pollable) { + var err, fd, net, pollable; + fd = this; + if (net === "file") { + fd.isFile = true; + } + if (!pollable) { + fd.isBlocking = 1; + return $ifaceNil; + } + err = fd.pd.init(fd); + if (!($interfaceIsEqual(err, $ifaceNil))) { + fd.isBlocking = 1; + } + return err; + }; + $ptrType(FD).prototype.destroy = function destroy() { + var {_r, err, fd, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fd = this; + fd.pd.close(); + _r = $pkg.CloseFunc(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + fd.Sysfd = -1; + $r = runtime_Semrelease((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return err; + /* */ } return; } var $f = {$blk: destroy, $c: true, $r, _r, err, fd, $s};return $f; + }; + $ptrType(FD).prototype.Close = function Close() { + var {_r, _r$1, err, fd, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.increfAndClose(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $s = -1; return errClosing(fd.isFile); + /* } */ case 2: + fd.pd.evict(); + _r$1 = fd.decref(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + /* */ if (fd.isBlocking === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (fd.isBlocking === 0) { */ case 5: + $r = runtime_Semacquire((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return err; + /* */ } return; } var $f = {$blk: Close, $c: true, $r, _r, _r$1, err, fd, $s};return $f; + }; + $ptrType(FD).prototype.SetBlocking = function SetBlocking() { + var {$24r, err, fd, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + atomic.StoreUint32((fd.$ptr_isBlocking || (fd.$ptr_isBlocking = new ptrType(function() { return this.$target.isBlocking; }, function($v) { this.$target.isBlocking = $v; }, fd))), 1); + $24r = syscall.SetNonblock(fd.Sysfd, false); + $s = 1; case 1: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: SetBlocking, $c: true, $r, $24r, err, fd, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Read = function Read(p) { + var {$24r, $24r$1, $24r$2, _r, _r$1, _tuple, err, err$1, err$2, fd, n, p, $s, $deferred, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + /* */ if (p.$length === 0) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (p.$length === 0) { */ case 2: + $24r = [0, $ifaceNil]; + $s = 4; case 4: return $24r; + /* } */ case 3: + err$1 = fd.pd.prepareRead(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5: + $24r$1 = [0, err$1]; + $s = 7; case 7: return $24r$1; + /* } */ case 6: + if (fd.IsStream && p.$length > 1073741824) { + p = $subslice(p, 0, 1073741824); + } + /* while (true) { */ case 8: + _r$1 = ignoringEINTRIO(syscall.Read, fd.Sysfd, p); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err$2 = _tuple[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 8; continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $24r$2 = [n, err$2]; + $s = 11; case 11: return $24r$2; + case 9: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Read, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _tuple, err, err$1, err$2, fd, n, p, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Pread = function Pread(p, off) { + var {_r, _r$1, _tuple, err, err$1, fd, n, off, p, $s, $r, $c} = $restore(this, {p, off}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + if (fd.IsStream && p.$length > 1073741824) { + p = $subslice(p, 0, 1073741824); + } + n = 0; + err$1 = $ifaceNil; + /* while (true) { */ case 1: + _r = syscall.Pread(fd.Sysfd, p, off); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, new syscall.Errno(4)))) { + /* break; */ $s = 2; continue; + } + $s = 1; continue; + case 2: + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + n = 0; + } + _r$1 = fd.decref(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + err$1 = fd.eofError(n, err$1); + $s = -1; return [n, err$1]; + /* */ } return; } var $f = {$blk: Pread, $c: true, $r, _r, _r$1, _tuple, err, err$1, fd, n, off, p, $s};return $f; + }; + $ptrType(FD).prototype.ReadFrom = function ReadFrom(p) { + var {$24r, $24r$1, _r, _tuple, err, err$1, err$2, fd, n, p, sa, $s, $deferred, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, $ifaceNil, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [0, $ifaceNil, err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + _tuple = syscall.Recvfrom(fd.Sysfd, p, 0); + n = _tuple[0]; + sa = _tuple[1]; + err$2 = _tuple[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + if ($interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 5; continue; + } + n = 0; + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $24r$1 = [n, sa, err$2]; + $s = 7; case 7: return $24r$1; + case 6: + $s = -1; return [0, $ifaceNil, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadFrom, $c: true, $r, $24r, $24r$1, _r, _tuple, err, err$1, err$2, fd, n, p, sa, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.ReadFromInet4 = function ReadFromInet4(p, from) { + var {$24r, $24r$1, _r, _tuple, err, err$1, err$2, fd, from, n, p, $s, $deferred, $r, $c} = $restore(this, {p, from}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [0, err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + _tuple = unix.RecvfromInet4(fd.Sysfd, p, 0, from); + n = _tuple[0]; + err$2 = _tuple[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + if ($interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 5; continue; + } + n = 0; + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $24r$1 = [n, err$2]; + $s = 7; case 7: return $24r$1; + case 6: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadFromInet4, $c: true, $r, $24r, $24r$1, _r, _tuple, err, err$1, err$2, fd, from, n, p, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.ReadFromInet6 = function ReadFromInet6(p, from) { + var {$24r, $24r$1, _r, _tuple, err, err$1, err$2, fd, from, n, p, $s, $deferred, $r, $c} = $restore(this, {p, from}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [0, err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + _tuple = unix.RecvfromInet6(fd.Sysfd, p, 0, from); + n = _tuple[0]; + err$2 = _tuple[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + if ($interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 5; continue; + } + n = 0; + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $24r$1 = [n, err$2]; + $s = 7; case 7: return $24r$1; + case 6: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadFromInet6, $c: true, $r, $24r, $24r$1, _r, _tuple, err, err$1, err$2, fd, from, n, p, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.ReadMsg = function ReadMsg(p, oob, flags) { + var {$24r, $24r$1, _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa, sysflags, $s, $deferred, $r, $c} = $restore(this, {p, oob, flags}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, 0, 0, $ifaceNil, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [0, 0, 0, $ifaceNil, err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + _tuple = syscall.Recvmsg(fd.Sysfd, p, oob, flags); + n = _tuple[0]; + oobn = _tuple[1]; + sysflags = _tuple[2]; + sa = _tuple[3]; + err$2 = _tuple[4]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + if ($interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 5; continue; + } + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $24r$1 = [n, oobn, sysflags, sa, err$2]; + $s = 7; case 7: return $24r$1; + case 6: + $s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadMsg, $c: true, $r, $24r, $24r$1, _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa, sysflags, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.ReadMsgInet4 = function ReadMsgInet4(p, oob, flags, sa4) { + var {$24r, $24r$1, _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa4, sysflags, $s, $deferred, $r, $c} = $restore(this, {p, oob, flags, sa4}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, 0, 0, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [0, 0, 0, err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + _tuple = unix.RecvmsgInet4(fd.Sysfd, p, oob, flags, sa4); + n = _tuple[0]; + oobn = _tuple[1]; + sysflags = _tuple[2]; + err$2 = _tuple[3]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + if ($interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 5; continue; + } + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $24r$1 = [n, oobn, sysflags, err$2]; + $s = 7; case 7: return $24r$1; + case 6: + $s = -1; return [0, 0, 0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadMsgInet4, $c: true, $r, $24r, $24r$1, _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa4, sysflags, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.ReadMsgInet6 = function ReadMsgInet6(p, oob, flags, sa6) { + var {$24r, $24r$1, _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa6, sysflags, $s, $deferred, $r, $c} = $restore(this, {p, oob, flags, sa6}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, 0, 0, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [0, 0, 0, err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + _tuple = unix.RecvmsgInet6(fd.Sysfd, p, oob, flags, sa6); + n = _tuple[0]; + oobn = _tuple[1]; + sysflags = _tuple[2]; + err$2 = _tuple[3]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + if ($interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 5; continue; + } + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $24r$1 = [n, oobn, sysflags, err$2]; + $s = 7; case 7: return $24r$1; + case 6: + $s = -1; return [0, 0, 0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadMsgInet6, $c: true, $r, $24r, $24r$1, _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa6, sysflags, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Write = function Write(p) { + var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _tuple, err, err$1, err$2, fd, max, n, nn, p, $s, $deferred, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [0, err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + nn = 0; + /* while (true) { */ case 5: + max = p.$length; + if (fd.IsStream && (max - nn >> 0) > 1073741824) { + max = nn + 1073741824 >> 0; + } + _r$1 = ignoringEINTRIO(syscall.Write, fd.Sysfd, $subslice(p, nn, max)); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err$2 = _tuple[1]; + if (n > 0) { + nn = nn + (n) >> 0; + } + /* */ if (nn === p.$length) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (nn === p.$length) { */ case 8: + $24r$1 = [nn, err$2]; + $s = 10; case 10: return $24r$1; + /* } */ case 9: + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 11: + $24r$2 = [nn, err$2]; + $s = 13; case 13: return $24r$2; + /* } */ case 12: + /* */ if (n === 0) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (n === 0) { */ case 14: + $24r$3 = [nn, io.ErrUnexpectedEOF]; + $s = 16; case 16: return $24r$3; + /* } */ case 15: + $s = 5; continue; + case 6: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Write, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _tuple, err, err$1, err$2, fd, max, n, nn, p, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Pwrite = function Pwrite(p, off) { + var {$24r, $24r$1, $24r$2, _r, _tuple, err, err$1, fd, max, n, nn, off, p, x, $s, $deferred, $r, $c} = $restore(this, {p, off}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + nn = 0; + /* while (true) { */ case 1: + max = p.$length; + if (fd.IsStream && (max - nn >> 0) > 1073741824) { + max = nn + 1073741824 >> 0; + } + _r = syscall.Pwrite(fd.Sysfd, $subslice(p, nn, max), (x = (new $Int64(0, nn)), new $Int64(off.$high + x.$high, off.$low + x.$low))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err$1 = _tuple[1]; + if ($interfaceIsEqual(err$1, new syscall.Errno(4))) { + /* continue; */ $s = 1; continue; + } + if (n > 0) { + nn = nn + (n) >> 0; + } + /* */ if (nn === p.$length) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (nn === p.$length) { */ case 4: + $24r = [nn, err$1]; + $s = 6; case 6: return $24r; + /* } */ case 5: + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 7: + $24r$1 = [nn, err$1]; + $s = 9; case 9: return $24r$1; + /* } */ case 8: + /* */ if (n === 0) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (n === 0) { */ case 10: + $24r$2 = [nn, io.ErrUnexpectedEOF]; + $s = 12; case 12: return $24r$2; + /* } */ case 11: + $s = 1; continue; + case 2: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Pwrite, $c: true, $r, $24r, $24r$1, $24r$2, _r, _tuple, err, err$1, fd, max, n, nn, off, p, x, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.WriteToInet4 = function WriteToInet4(p, sa) { + var {$24r, $24r$1, $24r$2, _r, err, err$1, err$2, fd, p, sa, $s, $deferred, $r, $c} = $restore(this, {p, sa}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [0, err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + err$2 = unix.SendtoInet4(fd.Sysfd, p, 0, sa); + if ($interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 5; continue; + } + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 7: + $24r$1 = [0, err$2]; + $s = 9; case 9: return $24r$1; + /* } */ case 8: + $24r$2 = [p.$length, $ifaceNil]; + $s = 10; case 10: return $24r$2; + case 6: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WriteToInet4, $c: true, $r, $24r, $24r$1, $24r$2, _r, err, err$1, err$2, fd, p, sa, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.WriteToInet6 = function WriteToInet6(p, sa) { + var {$24r, $24r$1, $24r$2, _r, err, err$1, err$2, fd, p, sa, $s, $deferred, $r, $c} = $restore(this, {p, sa}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [0, err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + err$2 = unix.SendtoInet6(fd.Sysfd, p, 0, sa); + if ($interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 5; continue; + } + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 7: + $24r$1 = [0, err$2]; + $s = 9; case 9: return $24r$1; + /* } */ case 8: + $24r$2 = [p.$length, $ifaceNil]; + $s = 10; case 10: return $24r$2; + case 6: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WriteToInet6, $c: true, $r, $24r, $24r$1, $24r$2, _r, err, err$1, err$2, fd, p, sa, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.WriteTo = function WriteTo(p, sa) { + var {$24r, $24r$1, $24r$2, _r, err, err$1, err$2, fd, p, sa, $s, $deferred, $r, $c} = $restore(this, {p, sa}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [0, err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + err$2 = syscall.Sendto(fd.Sysfd, p, 0, sa); + if ($interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 5; continue; + } + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 7: + $24r$1 = [0, err$2]; + $s = 9; case 9: return $24r$1; + /* } */ case 8: + $24r$2 = [p.$length, $ifaceNil]; + $s = 10; case 10: return $24r$2; + case 6: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WriteTo, $c: true, $r, $24r, $24r$1, $24r$2, _r, err, err$1, err$2, fd, p, sa, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.WriteMsg = function WriteMsg(p, oob, sa) { + var {$24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred, $r, $c} = $restore(this, {p, oob, sa}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, 0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [0, 0, err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + _tuple = syscall.SendmsgN(fd.Sysfd, p, oob, sa, 0); + n = _tuple[0]; + err$2 = _tuple[1]; + if ($interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 5; continue; + } + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 7: + $24r$1 = [n, 0, err$2]; + $s = 9; case 9: return $24r$1; + /* } */ case 8: + $24r$2 = [n, oob.$length, err$2]; + $s = 10; case 10: return $24r$2; + case 6: + $s = -1; return [0, 0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WriteMsg, $c: true, $r, $24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.WriteMsgInet4 = function WriteMsgInet4(p, oob, sa) { + var {$24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred, $r, $c} = $restore(this, {p, oob, sa}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, 0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [0, 0, err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + _tuple = unix.SendmsgNInet4(fd.Sysfd, p, oob, sa, 0); + n = _tuple[0]; + err$2 = _tuple[1]; + if ($interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 5; continue; + } + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 7: + $24r$1 = [n, 0, err$2]; + $s = 9; case 9: return $24r$1; + /* } */ case 8: + $24r$2 = [n, oob.$length, err$2]; + $s = 10; case 10: return $24r$2; + case 6: + $s = -1; return [0, 0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WriteMsgInet4, $c: true, $r, $24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.WriteMsgInet6 = function WriteMsgInet6(p, oob, sa) { + var {$24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred, $r, $c} = $restore(this, {p, oob, sa}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, 0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [0, 0, err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + _tuple = unix.SendmsgNInet6(fd.Sysfd, p, oob, sa, 0); + n = _tuple[0]; + err$2 = _tuple[1]; + if ($interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 5; continue; + } + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 7: + $24r$1 = [n, 0, err$2]; + $s = 9; case 9: return $24r$1; + /* } */ case 8: + $24r$2 = [n, oob.$length, err$2]; + $s = 10; case 10: return $24r$2; + case 6: + $s = -1; return [0, 0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WriteMsgInet6, $c: true, $r, $24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Accept = function Accept() { + var {$24r, $24r$1, $24r$2, _1, _r, _r$1, _tuple, err, err$1, err$2, errcall, fd, rsa, s, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, $ifaceNil, "", err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = [-1, $ifaceNil, "", err$1]; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + _r$1 = accept(fd.Sysfd); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + s = _tuple[0]; + rsa = _tuple[1]; + errcall = _tuple[2]; + err$2 = _tuple[3]; + /* */ if ($interfaceIsEqual(err$2, $ifaceNil)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ($interfaceIsEqual(err$2, $ifaceNil)) { */ case 8: + $24r$1 = [s, rsa, "", err$2]; + $s = 10; case 10: return $24r$1; + /* } */ case 9: + _1 = err$2; + if ($interfaceIsEqual(_1, new syscall.Errno((4)))) { + /* continue; */ $s = 5; continue; + } else if ($interfaceIsEqual(_1, new syscall.Errno((11)))) { + if (fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 5; continue; + } + } + } else if ($interfaceIsEqual(_1, new syscall.Errno((103)))) { + /* continue; */ $s = 5; continue; + } + $24r$2 = [-1, $ifaceNil, errcall, err$2]; + $s = 11; case 11: return $24r$2; + case 6: + $s = -1; return [0, $ifaceNil, "", $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Accept, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _tuple, err, err$1, err$2, errcall, fd, rsa, s, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Seek = function Seek(offset, whence) { + var {$24r, _r, err, fd, offset, whence, $s, $deferred, $r, $c} = $restore(this, {offset, whence}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Seek(fd.Sysfd, offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Seek, $c: true, $r, $24r, _r, err, fd, offset, whence, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.ReadDirent = function ReadDirent(buf) { + var {$24r, _r, _tuple, buf, err, err$1, fd, n, $s, $deferred, $r, $c} = $restore(this, {buf}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + /* while (true) { */ case 1: + _r = ignoringEINTRIO(syscall.ReadDirent, fd.Sysfd, buf); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$1, new syscall.Errno(11)) && fd.pd.pollable()) { + err$1 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$1, $ifaceNil)) { + /* continue; */ $s = 1; continue; + } + } + } + $24r = [n, err$1]; + $s = 4; case 4: return $24r; + case 2: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadDirent, $c: true, $r, $24r, _r, _tuple, buf, err, err$1, fd, n, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Fchmod = function Fchmod(mode) { + var {$24r, _r, err, fd, mode, $s, $deferred, $r, $c} = $restore(this, {mode}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = [fd]; + mode = [mode]; + fd[0] = this; + err = fd[0].incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd[0], "decref"), []]); + _r = ignoringEINTR((function(fd, mode) { return function FD·Fchmod·func1() { + var {$24r, _r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = syscall.Fchmod(fd[0].Sysfd, mode[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: FD·Fchmod·func1, $c: true, $r, $24r, _r, $s};return $f; + }; })(fd, mode)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Fchmod, $c: true, $r, $24r, _r, err, fd, mode, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Fchdir = function Fchdir() { + var {$24r, _r, err, fd, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Fchdir(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Fchdir, $c: true, $r, $24r, _r, err, fd, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Fstat = function Fstat(s) { + var {$24r, _r, err, fd, s, $s, $deferred, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = [fd]; + s = [s]; + fd[0] = this; + err = fd[0].incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd[0], "decref"), []]); + _r = ignoringEINTR((function(fd, s) { return function FD·Fstat·func1() { + var {$24r, _r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = syscall.Fstat(fd[0].Sysfd, s[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: FD·Fstat·func1, $c: true, $r, $24r, _r, $s};return $f; + }; })(fd, s)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Fstat, $c: true, $r, $24r, _r, err, fd, s, $s, $deferred};return $f; } } + }; + DupCloseOnExec = function DupCloseOnExec$1(fd) { + var {$24r, _1, _r, _tuple, e1, fd, r0, $s, $r, $c} = $restore(this, {fd}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (true && (atomic.LoadInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$1(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; })))) === 1)) { + _tuple = fcntl(fd, 1, 0); + r0 = _tuple[0]; + e1 = _tuple[1]; + if ($interfaceIsEqual(e1, $ifaceNil)) { + $s = -1; return [r0, "", $ifaceNil]; + } + _1 = $assertType(e1, syscall.Errno); + if ((_1 === (22)) || (_1 === (38))) { + atomic.StoreInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$1(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; }))), 0); + } else { + $s = -1; return [-1, "fcntl", e1]; + } + } + _r = dupCloseOnExecOld(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: DupCloseOnExec$1, $c: true, $r, $24r, _1, _r, _tuple, e1, fd, r0, $s};return $f; + }; + $pkg.DupCloseOnExec = DupCloseOnExec; + dupCloseOnExecOld = function dupCloseOnExecOld$1(fd) { + var {$24r, $24r$1, _tuple, err, fd, newfd, $s, $deferred, $r, $c} = $restore(this, {fd}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + $r = syscall.ForkLock.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(syscall.ForkLock, "RUnlock"), []]); + _tuple = syscall.Dup(fd); + newfd = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + $24r = [-1, "dup", err]; + $s = 4; case 4: return $24r; + /* } */ case 3: + syscall.CloseOnExec(newfd); + $24r$1 = [newfd, "", $ifaceNil]; + $s = 5; case 5: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: dupCloseOnExecOld$1, $c: true, $r, $24r, $24r$1, _tuple, err, fd, newfd, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Dup = function Dup() { + var {$24r, _r, err, fd, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, "", err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = DupCloseOnExec(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Dup, $c: true, $r, $24r, _r, err, fd, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.WaitWrite = function WaitWrite() { + var fd; + fd = this; + return fd.pd.waitWrite(fd.isFile); + }; + $ptrType(FD).prototype.WriteOnce = function WriteOnce(p) { + var {$24r, _r, _r$1, err, fd, p, $s, $deferred, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + _r$1 = ignoringEINTRIO(syscall.Write, fd.Sysfd, p); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WriteOnce, $c: true, $r, $24r, _r, _r$1, err, fd, p, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.RawRead = function RawRead(f) { + var {$24r, $24r$1, $24r$2, _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = err$1; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + _r$1 = f(((fd.Sysfd >>> 0))); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r$1) { */ case 7: + $24r$1 = $ifaceNil; + $s = 10; case 10: return $24r$1; + /* } */ case 8: + err$2 = fd.pd.waitRead(fd.isFile); + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 11: + $24r$2 = err$2; + $s = 13; case 13: return $24r$2; + /* } */ case 12: + $s = 5; continue; + case 6: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: RawRead, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.RawWrite = function RawWrite(f) { + var {$24r, $24r$1, $24r$2, _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2: + $24r = err$1; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* while (true) { */ case 5: + _r$1 = f(((fd.Sysfd >>> 0))); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r$1) { */ case 7: + $24r$1 = $ifaceNil; + $s = 10; case 10: return $24r$1; + /* } */ case 8: + err$2 = fd.pd.waitWrite(fd.isFile); + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 11: + $24r$2 = err$2; + $s = 13; case 13: return $24r$2; + /* } */ case 12: + $s = 5; continue; + case 6: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: RawWrite, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred};return $f; } } + }; + ignoringEINTRIO = function ignoringEINTRIO$1(fn, fd, p) { + var {_r, _tuple, err, fd, fn, n, p, $s, $r, $c} = $restore(this, {fn, fd, p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* while (true) { */ case 1: + _r = fn(fd, p); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, new syscall.Errno(4)))) { + $s = -1; return [n, err]; + } + $s = 1; continue; + case 2: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } var $f = {$blk: ignoringEINTRIO$1, $c: true, $r, _r, _tuple, err, fd, fn, n, p, $s};return $f; + }; + $ptrType(FD).prototype.eofError = function eofError(n, err) { + var err, fd, n; + fd = this; + if ((n === 0) && $interfaceIsEqual(err, $ifaceNil) && fd.ZeroReadIsEOF) { + return io.EOF; + } + return err; + }; + $ptrType(FD).prototype.Shutdown = function Shutdown(how) { + var {$24r, err, fd, how, $s, $deferred, $r, $c} = $restore(this, {how}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $24r = syscall.Shutdown(fd.Sysfd, how); + $s = 1; case 1: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Shutdown, $c: true, $r, $24r, err, fd, how, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Fchown = function Fchown(uid, gid) { + var {$24r, _r, err, fd, gid, uid, $s, $deferred, $r, $c} = $restore(this, {uid, gid}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = [fd]; + gid = [gid]; + uid = [uid]; + fd[0] = this; + err = fd[0].incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd[0], "decref"), []]); + _r = ignoringEINTR((function(fd, gid, uid) { return function FD·Fchown·func1() { + var {$24r, _r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = syscall.Fchown(fd[0].Sysfd, uid[0], gid[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: FD·Fchown·func1, $c: true, $r, $24r, _r, $s};return $f; + }; })(fd, gid, uid)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Fchown, $c: true, $r, $24r, _r, err, fd, gid, uid, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Ftruncate = function Ftruncate(size) { + var {$24r, _r, err, fd, size, $s, $deferred, $r, $c} = $restore(this, {size}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = [fd]; + size = [size]; + fd[0] = this; + err = fd[0].incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd[0], "decref"), []]); + _r = ignoringEINTR((function(fd, size) { return function FD·Ftruncate·func1() { + var {$24r, _r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = syscall.Ftruncate(fd[0].Sysfd, size[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: FD·Ftruncate·func1, $c: true, $r, $24r, _r, $s};return $f; + }; })(fd, size)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Ftruncate, $c: true, $r, $24r, _r, err, fd, size, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.RawControl = function RawControl(f) { + var {$24r, err, f, fd, $s, $deferred, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $r = f(((fd.Sysfd >>> 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r = $ifaceNil; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: RawControl, $c: true, $r, $24r, err, f, fd, $s, $deferred};return $f; } } + }; + ignoringEINTR = function ignoringEINTR$1(fn) { + var {_r, err, fn, $s, $r, $c} = $restore(this, {fn}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* while (true) { */ case 1: + _r = fn(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, new syscall.Errno(4)))) { + $s = -1; return err; + } + $s = 1; continue; + case 2: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: ignoringEINTR$1, $c: true, $r, _r, err, fn, $s};return $f; + }; + $ptrType(pollDesc).prototype.init = function init(fd) { + var fd, pd; + pd = this; + pd.fd = fd; + return $ifaceNil; + }; + $ptrType(pollDesc).prototype.close = function close() { + var pd; + pd = this; + }; + $ptrType(pollDesc).prototype.evict = function evict() { + var pd; + pd = this; + pd.closing = true; + if (!(pd.fd === ptrType$2.nil)) { + syscall.StopIO(pd.fd.Sysfd); + } + }; + $ptrType(pollDesc).prototype.prepare = function prepare(mode, isFile) { + var isFile, mode, pd; + pd = this; + if (pd.closing) { + return errClosing(isFile); + } + return $ifaceNil; + }; + $ptrType(pollDesc).prototype.prepareRead = function prepareRead(isFile) { + var isFile, pd; + pd = this; + return pd.prepare(114, isFile); + }; + $ptrType(pollDesc).prototype.prepareWrite = function prepareWrite(isFile) { + var isFile, pd; + pd = this; + return pd.prepare(119, isFile); + }; + $ptrType(pollDesc).prototype.wait = function wait(mode, isFile) { + var isFile, mode, pd; + pd = this; + if (pd.closing) { + return errClosing(isFile); + } + if (isFile) { + return $ifaceNil; + } + return $pkg.ErrDeadlineExceeded; + }; + $ptrType(pollDesc).prototype.waitRead = function waitRead(isFile) { + var isFile, pd; + pd = this; + return pd.wait(114, isFile); + }; + $ptrType(pollDesc).prototype.waitWrite = function waitWrite(isFile) { + var isFile, pd; + pd = this; + return pd.wait(119, isFile); + }; + $ptrType(pollDesc).prototype.pollable = function pollable() { + var pd; + pd = this; + return true; + }; + $ptrType(FD).prototype.SetDeadline = function SetDeadline(t) { + var {$24r, _r, fd, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fd = this; + _r = setDeadlineImpl(fd, $clone(t, time.Time), 233); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: SetDeadline, $c: true, $r, $24r, _r, fd, t, $s};return $f; + }; + $ptrType(FD).prototype.SetReadDeadline = function SetReadDeadline(t) { + var {$24r, _r, fd, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fd = this; + _r = setDeadlineImpl(fd, $clone(t, time.Time), 114); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: SetReadDeadline, $c: true, $r, $24r, _r, fd, t, $s};return $f; + }; + $ptrType(FD).prototype.SetWriteDeadline = function SetWriteDeadline(t) { + var {$24r, _r, fd, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fd = this; + _r = setDeadlineImpl(fd, $clone(t, time.Time), 119); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: SetWriteDeadline, $c: true, $r, $24r, _r, fd, t, $s};return $f; + }; + setDeadlineImpl = function setDeadlineImpl$1(fd, t, mode) { + var {_1, _r, d, err, fd, mode, t, $s, $r, $c} = $restore(this, {fd, t, mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = $clone(t, time.Time).UnixNano(); + if ($clone(t, time.Time).IsZero()) { + d = new $Int64(0, 0); + } + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _1 = mode; + if (_1 === (114)) { + syscall.SetReadDeadline(fd.Sysfd, d); + } else if (_1 === (119)) { + syscall.SetWriteDeadline(fd.Sysfd, d); + } else if (_1 === (233)) { + syscall.SetReadDeadline(fd.Sysfd, d); + syscall.SetWriteDeadline(fd.Sysfd, d); + } + _r = fd.decref(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: setDeadlineImpl$1, $c: true, $r, _1, _r, d, err, fd, mode, t, $s};return $f; + }; + $ptrType(fdMutex).prototype.incref = function incref() { + var mu, new$1, old, x, x$1; + mu = this; + while (true) { + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + return false; + } + new$1 = new $Uint64(old.$high + 0, old.$low + 8); + if ((x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { + return true; + } + } + }; + $ptrType(fdMutex).prototype.increfAndClose = function increfAndClose() { + var {mu, new$1, old, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + mu = this; + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + $s = -1; return false; + } + new$1 = (x$1 = new $Uint64(old.$high | 0, (old.$low | 1) >>> 0), new $Uint64(x$1.$high + 0, x$1.$low + 8)); + if ((x$2 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$2.$high === 0 && x$2.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + new$1 = (x$3 = new $Uint64(2147483647, 4286578688), new $Uint64(new$1.$high & ~x$3.$high, (new$1.$low & ~x$3.$low) >>> 0)); + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* while (true) { */ case 5: + /* if (!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { break; } */ if(!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { $s = 6; continue; } + old = (x$5 = new $Uint64(0, 8388608), new $Uint64(old.$high - x$5.$high, old.$low - x$5.$low)); + $r = runtime_Semrelease((mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + case 6: + /* while (true) { */ case 8: + /* if (!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { break; } */ if(!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { $s = 9; continue; } + old = (x$7 = new $Uint64(2048, 0), new $Uint64(old.$high - x$7.$high, old.$low - x$7.$low)); + $r = runtime_Semrelease((mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 8; continue; + case 9: + $s = -1; return true; + /* } */ case 4: + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: increfAndClose, $c: true, $r, mu, new$1, old, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + }; + $ptrType(fdMutex).prototype.decref = function decref() { + var mu, new$1, old, x, x$1; + mu = this; + while (true) { + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if ((x = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x.$high === 0 && x.$low === 0))) { + $panic(new $String("inconsistent poll.fdMutex")); + } + new$1 = new $Uint64(old.$high - 0, old.$low - 8); + if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { + return (x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$1.$high === 0 && x$1.$low === 1)); + } + } + }; + $ptrType(fdMutex).prototype.rwlock = function rwlock(read) { + var {_tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {read}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + mu = this; + _tmp = new $Uint64(0, 0); + _tmp$1 = new $Uint64(0, 0); + _tmp$2 = new $Uint64(0, 0); + mutexBit = _tmp; + mutexWait = _tmp$1; + mutexMask = _tmp$2; + mutexSema = ptrType.nil; + if (read) { + mutexBit = new $Uint64(0, 2); + mutexWait = new $Uint64(0, 8388608); + mutexMask = new $Uint64(2047, 4286578688); + mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); + } else { + mutexBit = new $Uint64(0, 4); + mutexWait = new $Uint64(2048, 0); + mutexMask = new $Uint64(2147481600, 0); + mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); + } + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + $s = -1; return false; + } + new$1 = new $Uint64(0, 0); + if ((x$1 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + new$1 = (x$2 = new $Uint64(old.$high | mutexBit.$high, (old.$low | mutexBit.$low) >>> 0), new $Uint64(x$2.$high + 0, x$2.$low + 8)); + if ((x$3 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$3.$high === 0 && x$3.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + } else { + new$1 = new $Uint64(old.$high + mutexWait.$high, old.$low + mutexWait.$low); + if ((x$4 = new $Uint64(new$1.$high & mutexMask.$high, (new$1.$low & mutexMask.$low) >>> 0), (x$4.$high === 0 && x$4.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + } + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + if ((x$5 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0))) { + $s = -1; return true; + } + $r = runtime_Semacquire(mutexSema); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: rwlock, $c: true, $r, _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + }; + $ptrType(fdMutex).prototype.rwunlock = function rwunlock(read) { + var {_tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {read}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + mu = this; + _tmp = new $Uint64(0, 0); + _tmp$1 = new $Uint64(0, 0); + _tmp$2 = new $Uint64(0, 0); + mutexBit = _tmp; + mutexWait = _tmp$1; + mutexMask = _tmp$2; + mutexSema = ptrType.nil; + if (read) { + mutexBit = new $Uint64(0, 2); + mutexWait = new $Uint64(0, 8388608); + mutexMask = new $Uint64(2047, 4286578688); + mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); + } else { + mutexBit = new $Uint64(0, 4); + mutexWait = new $Uint64(2048, 0); + mutexMask = new $Uint64(2147481600, 0); + mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); + } + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if ((x = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x.$high === 0 && x.$low === 0)) || (x$1 = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + $panic(new $String("inconsistent poll.fdMutex")); + } + new$1 = (x$2 = new $Uint64(old.$high & ~mutexBit.$high, (old.$low & ~mutexBit.$low) >>> 0), new $Uint64(x$2.$high - 0, x$2.$low - 8)); + if (!((x$3 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$3.$high === 0 && x$3.$low === 0)))) { + new$1 = (x$4 = mutexWait, new $Uint64(new$1.$high - x$4.$high, new$1.$low - x$4.$low)); + } + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* */ if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { */ case 5: + $r = runtime_Semrelease(mutexSema); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return (x$6 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$6.$high === 0 && x$6.$low === 1)); + /* } */ case 4: + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: rwunlock, $c: true, $r, _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, x$6, $s};return $f; + }; + $ptrType(FD).prototype.incref = function incref$1() { + var fd; + fd = this; + if (!fd.fdmu.incref()) { + return errClosing(fd.isFile); + } + return $ifaceNil; + }; + $ptrType(FD).prototype.decref = function decref$1() { + var {$24r, _r, fd, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fd = this; + /* */ if (fd.fdmu.decref()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (fd.fdmu.decref()) { */ case 1: + _r = fd.destroy(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: decref$1, $c: true, $r, $24r, _r, fd, $s};return $f; + }; + $ptrType(FD).prototype.readLock = function readLock() { + var {_r, fd, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwlock(true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $s = -1; return errClosing(fd.isFile); + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: readLock, $c: true, $r, _r, fd, $s};return $f; + }; + $ptrType(FD).prototype.readUnlock = function readUnlock() { + var {_r, _r$1, fd, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwunlock(true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + _r$1 = fd.destroy(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: readUnlock, $c: true, $r, _r, _r$1, fd, $s};return $f; + }; + $ptrType(FD).prototype.writeLock = function writeLock() { + var {_r, fd, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwlock(false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $s = -1; return errClosing(fd.isFile); + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: writeLock, $c: true, $r, _r, fd, $s};return $f; + }; + $ptrType(FD).prototype.writeUnlock = function writeUnlock() { + var {_r, _r$1, fd, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwunlock(false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + _r$1 = fd.destroy(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: writeUnlock, $c: true, $r, _r, _r$1, fd, $s};return $f; + }; + $ptrType(FD).prototype.Fsync = function Fsync() { + var {$24r, _r, err, fd, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = [fd]; + fd[0] = this; + err = fd[0].incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd[0], "decref"), []]); + _r = ignoringEINTR((function(fd) { return function FD·Fsync·func1() { + var {$24r, _r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = syscall.Fsync(fd[0].Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: FD·Fsync·func1, $c: true, $r, $24r, _r, $s};return $f; + }; })(fd)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Fsync, $c: true, $r, $24r, _r, err, fd, $s, $deferred};return $f; } } + }; + $ptrType(errNetClosing).prototype.Error = function Error() { + var e; + e = this; + return "use of closed network connection"; + }; + errNetClosing.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; + $ptrType(errNetClosing).prototype.Timeout = function Timeout() { + var e; + e = this; + return false; + }; + errNetClosing.prototype.Timeout = function(...$args) { return this.$val.Timeout(...$args); }; + $ptrType(errNetClosing).prototype.Temporary = function Temporary() { + var e; + e = this; + return false; + }; + errNetClosing.prototype.Temporary = function(...$args) { return this.$val.Temporary(...$args); }; + errClosing = function errClosing$1(isFile) { + var isFile; + if (isFile) { + return $pkg.ErrFileClosing; + } + return new $pkg.ErrNetClosing.constructor.elem($pkg.ErrNetClosing); + }; + $ptrType(DeadlineExceededError).prototype.Error = function Error$1() { + var e; + e = this; + return "i/o timeout"; + }; + $ptrType(DeadlineExceededError).prototype.Timeout = function Timeout$1() { + var e; + e = this; + return true; + }; + $ptrType(DeadlineExceededError).prototype.Temporary = function Temporary$1() { + var e; + e = this; + return true; + }; + fcntl = function fcntl$1(fd, cmd, arg) { + var arg, cmd, fd; + return [0, new syscall.Errno(38)]; + }; + ptrType$2.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, $Bool], [$error], false)}, {prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SetBlocking", name: "SetBlocking", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Pread", name: "Pread", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType], [$Int, syscall.Sockaddr, $error], false)}, {prop: "ReadFromInet4", name: "ReadFromInet4", pkg: "", typ: $funcType([sliceType, ptrType$5], [$Int, $error], false)}, {prop: "ReadFromInet6", name: "ReadFromInet6", pkg: "", typ: $funcType([sliceType, ptrType$6], [$Int, $error], false)}, {prop: "ReadMsg", name: "ReadMsg", pkg: "", typ: $funcType([sliceType, sliceType, $Int], [$Int, $Int, $Int, syscall.Sockaddr, $error], false)}, {prop: "ReadMsgInet4", name: "ReadMsgInet4", pkg: "", typ: $funcType([sliceType, sliceType, $Int, ptrType$5], [$Int, $Int, $Int, $error], false)}, {prop: "ReadMsgInet6", name: "ReadMsgInet6", pkg: "", typ: $funcType([sliceType, sliceType, $Int, ptrType$6], [$Int, $Int, $Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Pwrite", name: "Pwrite", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "WriteToInet4", name: "WriteToInet4", pkg: "", typ: $funcType([sliceType, ptrType$5], [$Int, $error], false)}, {prop: "WriteToInet6", name: "WriteToInet6", pkg: "", typ: $funcType([sliceType, ptrType$6], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType, syscall.Sockaddr], [$Int, $error], false)}, {prop: "WriteMsg", name: "WriteMsg", pkg: "", typ: $funcType([sliceType, sliceType, syscall.Sockaddr], [$Int, $Int, $error], false)}, {prop: "WriteMsgInet4", name: "WriteMsgInet4", pkg: "", typ: $funcType([sliceType, sliceType, ptrType$5], [$Int, $Int, $error], false)}, {prop: "WriteMsgInet6", name: "WriteMsgInet6", pkg: "", typ: $funcType([sliceType, sliceType, ptrType$6], [$Int, $Int, $error], false)}, {prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [$Int, syscall.Sockaddr, $String, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "ReadDirent", name: "ReadDirent", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Fchmod", name: "Fchmod", pkg: "", typ: $funcType([$Uint32], [$error], false)}, {prop: "Fchdir", name: "Fchdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Fstat", name: "Fstat", pkg: "", typ: $funcType([ptrType$7], [$error], false)}, {prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [$Int, $String, $error], false)}, {prop: "WaitWrite", name: "WaitWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "WriteOnce", name: "WriteOnce", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "RawRead", name: "RawRead", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "RawWrite", name: "RawWrite", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "eofError", name: "eofError", pkg: "internal/poll", typ: $funcType([$Int, $error], [$error], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "Fchown", name: "Fchown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Ftruncate", name: "Ftruncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "RawControl", name: "RawControl", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readLock", name: "readLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readUnlock", name: "readUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "writeLock", name: "writeLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "writeUnlock", name: "writeUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "Fsync", name: "Fsync", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$8.methods = [{prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([ptrType$2], [$error], false)}, {prop: "close", name: "close", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "evict", name: "evict", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "prepare", name: "prepare", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "prepareRead", name: "prepareRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "prepareWrite", name: "prepareWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "wait", name: "wait", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "waitRead", name: "waitRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitWrite", name: "waitWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitCanceled", name: "waitCanceled", pkg: "internal/poll", typ: $funcType([$Int], [], false)}, {prop: "pollable", name: "pollable", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}]; + ptrType$9.methods = [{prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "increfAndClose", name: "increfAndClose", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "rwlock", name: "rwlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}, {prop: "rwunlock", name: "rwunlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}]; + errNetClosing.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$10.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; + FD.init("internal/poll", [{prop: "fdmu", name: "fdmu", embedded: false, exported: false, typ: fdMutex, tag: ""}, {prop: "Sysfd", name: "Sysfd", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "pd", name: "pd", embedded: false, exported: false, typ: pollDesc, tag: ""}, {prop: "iovecs", name: "iovecs", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "csema", name: "csema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "isBlocking", name: "isBlocking", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "IsStream", name: "IsStream", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ZeroReadIsEOF", name: "ZeroReadIsEOF", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "isFile", name: "isFile", embedded: false, exported: false, typ: $Bool, tag: ""}]); + pollDesc.init("internal/poll", [{prop: "fd", name: "fd", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "closing", name: "closing", embedded: false, exported: false, typ: $Bool, tag: ""}]); + fdMutex.init("internal/poll", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "rsema", name: "rsema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "wsema", name: "wsema", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + errNetClosing.init("", []); + DeadlineExceededError.init("", []); + $pkg.$initLinknames = function() { + runtime_Semacquire = $linknames["sync.runtime_Semacquire"]; + runtime_Semrelease = $linknames["sync.runtime_Semrelease"]; +}; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unix.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.CloseFunc = syscall.Close; + $pkg.AcceptFunc = syscall.Accept; + tryDupCloexec = 1; + $pkg.ErrNetClosing = new errNetClosing.ptr(); + $pkg.ErrFileClosing = errors.New("use of closed file"); + $pkg.ErrNoDeadline = errors.New("file type does not support deadline"); + $pkg.ErrDeadlineExceeded = new DeadlineExceededError.ptr(); + $pkg.ErrNotPollable = errors.New("not pollable"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/safefilepath"] = (function() { + var $pkg = {}, $init, errors, runtime, errInvalidPath; + errors = $packages["errors"]; + runtime = $packages["runtime"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + errInvalidPath = errors.New("invalid path"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/syscall/execenv"] = (function() { + var $pkg = {}, $init, syscall, Default; + syscall = $packages["syscall"]; + $pkg.$finishSetup = function() { + Default = function Default$1(sys) { + var {$24r, _r, sys, $s, $r, $c} = $restore(this, {sys}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = syscall.Environ(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = [_r, $ifaceNil]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Default$1, $c: true, $r, $24r, _r, sys, $s};return $f; + }; + $pkg.Default = Default; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = syscall.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/testlog"] = (function() { + var $pkg = {}, $init, sync, atomic, logger, panicOnExit0, Logger, Getenv, Open, Stat, PanicOnExit0; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + $pkg.$finishSetup = function() { + Logger = function Logger$1() { + var impl; + impl = logger.Load(); + if ($interfaceIsEqual(impl, $ifaceNil)) { + return $ifaceNil; + } + return $assertType(impl, ptrType).$get(); + }; + $pkg.Logger = Logger; + Getenv = function Getenv$1(name) { + var {log, name, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + log = Logger(); + /* */ if (!($interfaceIsEqual(log, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(log, $ifaceNil))) { */ case 1: + $r = log.Getenv(name); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Getenv$1, $c: true, $r, log, name, $s};return $f; + }; + $pkg.Getenv = Getenv; + Open = function Open$1(name) { + var {log, name, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + log = Logger(); + /* */ if (!($interfaceIsEqual(log, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(log, $ifaceNil))) { */ case 1: + $r = log.Open(name); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Open$1, $c: true, $r, log, name, $s};return $f; + }; + $pkg.Open = Open; + Stat = function Stat$1(name) { + var {log, name, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + log = Logger(); + /* */ if (!($interfaceIsEqual(log, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(log, $ifaceNil))) { */ case 1: + $r = log.Stat(name); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Stat$1, $c: true, $r, log, name, $s};return $f; + }; + $pkg.Stat = Stat; + PanicOnExit0 = function PanicOnExit0$1() { + var {$24r, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + $r = panicOnExit0.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(panicOnExit0.mu, "Unlock"), []]); + $24r = panicOnExit0.val; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return false; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: PanicOnExit0$1, $c: true, $r, $24r, $s, $deferred};return $f; } } + }; + $pkg.PanicOnExit0 = PanicOnExit0; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = sync.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + logger = new atomic.Value.ptr($ifaceNil); + panicOnExit0 = new structType.ptr(new sync.Mutex.ptr(0, 0), false); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["path"] = (function() { + var $pkg = {}, $init, errors, bytealg, utf8, lazybuf, Clean, lastSlash, Split, Join; + errors = $packages["errors"]; + bytealg = $packages["internal/bytealg"]; + utf8 = $packages["unicode/utf8"]; + lazybuf = $newType(0, $kindStruct, "path.lazybuf", true, "path", false, function(s_, buf_, w_) { + this.$val = this; + if (arguments.length === 0) { + this.s = ""; + this.buf = sliceType.nil; + this.w = 0; + return; + } + this.s = s_; + this.buf = buf_; + this.w = w_; + }); + $pkg.lazybuf = lazybuf; + $pkg.$finishSetup = function() { + $ptrType(lazybuf).prototype.index = function index(i) { + var b, i, x; + b = this; + if (!(b.buf === sliceType.nil)) { + return (x = b.buf, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + } + return b.s.charCodeAt(i); + }; + $ptrType(lazybuf).prototype.append = function append(c) { + var b, c, x, x$1; + b = this; + if (b.buf === sliceType.nil) { + if (b.w < b.s.length && (b.s.charCodeAt(b.w) === c)) { + b.w = b.w + (1) >> 0; + return; + } + b.buf = $makeSlice(sliceType, b.s.length); + $copyString(b.buf, $substring(b.s, 0, b.w)); + } + (x = b.buf, x$1 = b.w, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1] = c)); + b.w = b.w + (1) >> 0; + }; + $ptrType(lazybuf).prototype.string = function string() { + var b; + b = this; + if (b.buf === sliceType.nil) { + return $substring(b.s, 0, b.w); + } + return ($bytesToString($subslice(b.buf, 0, b.w))); + }; + Clean = function Clean$1(path) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, dotdot, n, out, path, r, rooted; + if (path === "") { + return "."; + } + rooted = path.charCodeAt(0) === 47; + n = path.length; + out = new lazybuf.ptr(path, sliceType.nil, 0); + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + dotdot = _tmp$1; + if (rooted) { + out.append(47); + _tmp$2 = 1; + _tmp$3 = 1; + r = _tmp$2; + dotdot = _tmp$3; + } + while (true) { + if (!(r < n)) { break; } + if ((path.charCodeAt(r) === 47)) { + r = r + (1) >> 0; + } else if ((path.charCodeAt(r) === 46) && (((r + 1 >> 0) === n) || (path.charCodeAt((r + 1 >> 0)) === 47))) { + r = r + (1) >> 0; + } else if ((path.charCodeAt(r) === 46) && (path.charCodeAt((r + 1 >> 0)) === 46) && (((r + 2 >> 0) === n) || (path.charCodeAt((r + 2 >> 0)) === 47))) { + r = r + (2) >> 0; + if (out.w > dotdot) { + out.w = out.w - (1) >> 0; + while (true) { + if (!(out.w > dotdot && !((out.index(out.w) === 47)))) { break; } + out.w = out.w - (1) >> 0; + } + } else if (!rooted) { + if (out.w > 0) { + out.append(47); + } + out.append(46); + out.append(46); + dotdot = out.w; + } + } else { + if (rooted && !((out.w === 1)) || !rooted && !((out.w === 0))) { + out.append(47); + } + while (true) { + if (!(r < n && !((path.charCodeAt(r) === 47)))) { break; } + out.append(path.charCodeAt(r)); + r = r + (1) >> 0; + } + } + } + if (out.w === 0) { + return "."; + } + return out.string(); + }; + $pkg.Clean = Clean; + lastSlash = function lastSlash$1(s) { + var i, s; + i = s.length - 1 >> 0; + while (true) { + if (!(i >= 0 && !((s.charCodeAt(i) === 47)))) { break; } + i = i - (1) >> 0; + } + return i; + }; + Split = function Split$1(path) { + var _tmp, _tmp$1, dir, file, i, path; + dir = ""; + file = ""; + i = lastSlash(path); + _tmp = $substring(path, 0, (i + 1 >> 0)); + _tmp$1 = $substring(path, (i + 1 >> 0)); + dir = _tmp; + file = _tmp$1; + return [dir, file]; + }; + $pkg.Split = Split; + Join = function Join$1(elem) { + var _i, _i$1, _ref, _ref$1, buf, e, e$1, elem, size; + size = 0; + _ref = elem; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + size = size + (e.length) >> 0; + _i++; + } + if (size === 0) { + return ""; + } + buf = $makeSlice(sliceType, 0, ((size + elem.$length >> 0) - 1 >> 0)); + _ref$1 = elem; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + e$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (buf.$length > 0 || !(e$1 === "")) { + if (buf.$length > 0) { + buf = $append(buf, 47); + } + buf = $appendSlice(buf, e$1); + } + _i$1++; + } + return Clean(($bytesToString(buf))); + }; + $pkg.Join = Join; + ptrType.methods = [{prop: "index", name: "index", pkg: "path", typ: $funcType([$Int], [$Uint8], false)}, {prop: "append", name: "append", pkg: "path", typ: $funcType([$Uint8], [], false)}, {prop: "string", name: "string", pkg: "path", typ: $funcType([], [$String], false)}]; + lazybuf.init("path", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: $Int, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrBadPattern = errors.New("syntax error in pattern"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["io/fs"] = (function() { + var $pkg = {}, $init, errors, oserror, io, path, sort, time, utf8, dirInfo, File, DirEntry, FileInfo, FileMode, PathError, FileInfoToDirEntry, ValidPath, errInvalid, errPermission, errExist, errNotExist, errClosed; + errors = $packages["errors"]; + oserror = $packages["internal/oserror"]; + io = $packages["io"]; + path = $packages["path"]; + sort = $packages["sort"]; + time = $packages["time"]; + utf8 = $packages["unicode/utf8"]; + dirInfo = $newType(0, $kindStruct, "fs.dirInfo", true, "io/fs", false, function(fileInfo_) { + this.$val = this; + if (arguments.length === 0) { + this.fileInfo = $ifaceNil; + return; + } + this.fileInfo = fileInfo_; + }); + File = $newType(8, $kindInterface, "fs.File", true, "io/fs", true, null); + DirEntry = $newType(8, $kindInterface, "fs.DirEntry", true, "io/fs", true, null); + FileInfo = $newType(8, $kindInterface, "fs.FileInfo", true, "io/fs", true, null); + FileMode = $newType(4, $kindUint32, "fs.FileMode", true, "io/fs", true, null); + PathError = $newType(0, $kindStruct, "fs.PathError", true, "io/fs", true, function(Op_, Path_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = ""; + this.Path = ""; + this.Err = $ifaceNil; + return; + } + this.Op = Op_; + this.Path = Path_; + this.Err = Err_; + }); + $pkg.dirInfo = dirInfo; + $pkg.File = File; + $pkg.DirEntry = DirEntry; + $pkg.FileInfo = FileInfo; + $pkg.FileMode = FileMode; + $pkg.PathError = PathError; + $pkg.$finishSetup = function() { + $ptrType(dirInfo).prototype.IsDir = function IsDir$1() { + var {$24r, _r, di, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + di = this; + _r = di.fileInfo.IsDir(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: IsDir$1, $c: true, $r, $24r, _r, di, $s};return $f; + }; + dirInfo.prototype.IsDir = function(...$args) { return this.$val.IsDir(...$args); }; + $ptrType(dirInfo).prototype.Type = function Type$1() { + var {$24r, _r, _r$1, di, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + di = this; + _r = di.fileInfo.Mode(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = new FileMode(_r).Type(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Type$1, $c: true, $r, $24r, _r, _r$1, di, $s};return $f; + }; + dirInfo.prototype.Type = function(...$args) { return this.$val.Type(...$args); }; + $ptrType(dirInfo).prototype.Info = function Info$1() { + var di; + di = this; + return [di.fileInfo, $ifaceNil]; + }; + dirInfo.prototype.Info = function(...$args) { return this.$val.Info(...$args); }; + $ptrType(dirInfo).prototype.Name = function Name$1() { + var {$24r, _r, di, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + di = this; + _r = di.fileInfo.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Name$1, $c: true, $r, $24r, _r, di, $s};return $f; + }; + dirInfo.prototype.Name = function(...$args) { return this.$val.Name(...$args); }; + FileInfoToDirEntry = function FileInfoToDirEntry$1(info) { + var info, x; + if ($interfaceIsEqual(info, $ifaceNil)) { + return $ifaceNil; + } + return (x = new dirInfo.ptr(info), new x.constructor.elem(x)); + }; + $pkg.FileInfoToDirEntry = FileInfoToDirEntry; + ValidPath = function ValidPath$1(name) { + var elem, i, name; + if (!utf8.ValidString(name)) { + return false; + } + if (name === ".") { + return true; + } + while (true) { + i = 0; + while (true) { + if (!(i < name.length && !((name.charCodeAt(i) === 47)))) { break; } + i = i + (1) >> 0; + } + elem = $substring(name, 0, i); + if (elem === "" || elem === "." || elem === "..") { + return false; + } + if (i === name.length) { + return true; + } + name = $substring(name, (i + 1 >> 0)); + } + }; + $pkg.ValidPath = ValidPath; + errInvalid = function errInvalid$1() { + return oserror.ErrInvalid; + }; + errPermission = function errPermission$1() { + return oserror.ErrPermission; + }; + errExist = function errExist$1() { + return oserror.ErrExist; + }; + errNotExist = function errNotExist$1() { + return oserror.ErrNotExist; + }; + errClosed = function errClosed$1() { + return oserror.ErrClosed; + }; + FileMode.prototype.String = function String() { + var _i, _i$1, _ref, _ref$1, _rune, _rune$1, buf, c, c$1, i, i$1, m, w, y, y$1; + m = this.$val; + buf = arrayType.zero(); + w = 0; + _ref = "dalTLDpSugct?"; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (!((((m & (((y = (((31 - i >> 0) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c << 24 >>> 24))); + w = w + (1) >> 0; + } + _i += _rune[1]; + } + if (w === 0) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + w = w + (1) >> 0; + } + _ref$1 = "rwxrwxrwx"; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.length)) { break; } + _rune$1 = $decodeRune(_ref$1, _i$1); + i$1 = _i$1; + c$1 = _rune$1[0]; + if (!((((m & (((y$1 = (((8 - i$1 >> 0) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0) === 0))) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c$1 << 24 >>> 24))); + } else { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + } + w = w + (1) >> 0; + _i$1 += _rune$1[1]; + } + return ($bytesToString($subslice(new sliceType$2(buf), 0, w))); + }; + $ptrType(FileMode).prototype.String = function(...$args) { return new FileMode(this.$get()).String(...$args); }; + FileMode.prototype.IsDir = function IsDir$2() { + var m; + m = this.$val; + return !((((m & 2147483648) >>> 0) === 0)); + }; + $ptrType(FileMode).prototype.IsDir = function(...$args) { return new FileMode(this.$get()).IsDir(...$args); }; + FileMode.prototype.IsRegular = function IsRegular() { + var m; + m = this.$val; + return ((m & 2401763328) >>> 0) === 0; + }; + $ptrType(FileMode).prototype.IsRegular = function(...$args) { return new FileMode(this.$get()).IsRegular(...$args); }; + FileMode.prototype.Perm = function Perm() { + var m; + m = this.$val; + return (m & 511) >>> 0; + }; + $ptrType(FileMode).prototype.Perm = function(...$args) { return new FileMode(this.$get()).Perm(...$args); }; + FileMode.prototype.Type = function Type$2() { + var m; + m = this.$val; + return (m & 2401763328) >>> 0; + }; + $ptrType(FileMode).prototype.Type = function(...$args) { return new FileMode(this.$get()).Type(...$args); }; + $ptrType(PathError).prototype.Error = function Error() { + var {$24r, _r, e, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = e.Op + " " + e.Path + ": " + _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Error, $c: true, $r, $24r, _r, e, $s};return $f; + }; + $ptrType(PathError).prototype.Unwrap = function Unwrap() { + var e; + e = this; + return e.Err; + }; + $ptrType(PathError).prototype.Timeout = function Timeout() { + var {$24r, _r, _tuple, _v, e, ok, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + e = this; + _tuple = $assertType(e.Err, interfaceType, true); + t = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { _v = false; $s = 1; continue s; } + _r = t.Timeout(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 1: + $24r = _v; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Timeout, $c: true, $r, $24r, _r, _tuple, _v, e, ok, t, $s};return $f; + }; + dirInfo.methods = [{prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [FileInfo, $error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}]; + FileMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsRegular", name: "IsRegular", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [FileMode], false)}]; + ptrType.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; + dirInfo.init("io/fs", [{prop: "fileInfo", name: "fileInfo", embedded: false, exported: false, typ: FileInfo, tag: ""}]); + File.init([{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [FileInfo, $error], false)}]); + DirEntry.init([{prop: "Info", name: "Info", pkg: "", typ: $funcType([], [FileInfo, $error], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [FileMode], false)}]); + FileInfo.init([{prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}]); + PathError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = oserror.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = path.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.SkipDir = errors.New("skip this directory"); + $pkg.ErrInvalid = errInvalid(); + $pkg.ErrPermission = errPermission(); + $pkg.ErrExist = errExist(); + $pkg.ErrNotExist = errNotExist(); + $pkg.ErrClosed = errClosed(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["os"] = (function() { + var $pkg = {}, $init, errors, js, itoa, oserror, poll, safefilepath, execenv, unix, testlog, io, fs, runtime, sort, sync, atomic, syscall, time, fileStat, File, rawConn, file, unixDirent, LinkError, onlyWriter, ProcessState, Process, ProcAttr, Signal, timeout, SyscallError, dirInfo, readdirMode, getwdCache, testingForceReadDirLstat, errPatternHasSeparator, errWriteAtInAppendMode, lstat, dirBufPool, _r, _r$1, _r$2, sameFile, SameFile, uitox, statNolog, lstatNolog, fillFileStatFromSys, Stat, Lstat, newRawConn, init, Exit, Pipe, IsPathSeparator, basename, runtime_args, init$1, runtime_beforeExit, Getwd, fixLongPath, NewFile, newFile, epipecheck, openFileNolog, Readlink, newUnixDirent, sigpipe, syscallMode, chmod, ignoringEINTR, genericReadFrom, setStickyBit, Open, OpenFile, fixCount, UserCacheDir, Chmod, ReadFile, startProcess, newProcess, StartProcess, errNoDeadline, errDeadlineExceeded, NewSyscallError, IsNotExist, underlyingErrorIs, underlyingError, Getenv, LookupEnv, Environ, direntIno, direntReclen, direntNamlen, direntType, readInt, readIntBE, readIntLE, ReadDir; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + itoa = $packages["internal/itoa"]; + oserror = $packages["internal/oserror"]; + poll = $packages["internal/poll"]; + safefilepath = $packages["internal/safefilepath"]; + execenv = $packages["internal/syscall/execenv"]; + unix = $packages["internal/syscall/unix"]; + testlog = $packages["internal/testlog"]; + io = $packages["io"]; + fs = $packages["io/fs"]; + runtime = $packages["runtime"]; + sort = $packages["sort"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + syscall = $packages["syscall"]; + time = $packages["time"]; + fileStat = $newType(0, $kindStruct, "os.fileStat", true, "os", false, function(name_, size_, mode_, modTime_, sys_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.size = new $Int64(0, 0); + this.mode = 0; + this.modTime = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$3.nil); + this.sys = new syscall.Stat_t.ptr(new $Int64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0)); + return; + } + this.name = name_; + this.size = size_; + this.mode = mode_; + this.modTime = modTime_; + this.sys = sys_; + }); + File = $newType(0, $kindStruct, "os.File", true, "os", true, function(file_) { + this.$val = this; + if (arguments.length === 0) { + this.file = ptrType$9.nil; + return; + } + this.file = file_; + }); + rawConn = $newType(0, $kindStruct, "os.rawConn", true, "os", false, function(file_) { + this.$val = this; + if (arguments.length === 0) { + this.file = ptrType$2.nil; + return; + } + this.file = file_; + }); + file = $newType(0, $kindStruct, "os.file", true, "os", false, function(pfd_, name_, dirinfo_, nonblock_, stdoutOrErr_, appendMode_) { + this.$val = this; + if (arguments.length === 0) { + this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.pollDesc.ptr(ptrType$6.nil, false), ptrType$7.nil, 0, 0, false, false, false); + this.name = ""; + this.dirinfo = ptrType$8.nil; + this.nonblock = false; + this.stdoutOrErr = false; + this.appendMode = false; + return; + } + this.pfd = pfd_; + this.name = name_; + this.dirinfo = dirinfo_; + this.nonblock = nonblock_; + this.stdoutOrErr = stdoutOrErr_; + this.appendMode = appendMode_; + }); + unixDirent = $newType(0, $kindStruct, "os.unixDirent", true, "os", false, function(parent_, name_, typ_, info_) { + this.$val = this; + if (arguments.length === 0) { + this.parent = ""; + this.name = ""; + this.typ = 0; + this.info = $ifaceNil; + return; + } + this.parent = parent_; + this.name = name_; + this.typ = typ_; + this.info = info_; + }); + LinkError = $newType(0, $kindStruct, "os.LinkError", true, "os", true, function(Op_, Old_, New_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = ""; + this.Old = ""; + this.New = ""; + this.Err = $ifaceNil; + return; + } + this.Op = Op_; + this.Old = Old_; + this.New = New_; + this.Err = Err_; + }); + onlyWriter = $newType(0, $kindStruct, "os.onlyWriter", true, "os", false, function(Writer_) { + this.$val = this; + if (arguments.length === 0) { + this.Writer = $ifaceNil; + return; + } + this.Writer = Writer_; + }); + ProcessState = $newType(0, $kindStruct, "os.ProcessState", true, "os", true, function(pid_, status_, rusage_) { + this.$val = this; + if (arguments.length === 0) { + this.pid = 0; + this.status = 0; + this.rusage = ptrType$12.nil; + return; + } + this.pid = pid_; + this.status = status_; + this.rusage = rusage_; + }); + Process = $newType(0, $kindStruct, "os.Process", true, "os", true, function(Pid_, handle_, isdone_, sigMu_) { + this.$val = this; + if (arguments.length === 0) { + this.Pid = 0; + this.handle = 0; + this.isdone = 0; + this.sigMu = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0); + return; + } + this.Pid = Pid_; + this.handle = handle_; + this.isdone = isdone_; + this.sigMu = sigMu_; + }); + ProcAttr = $newType(0, $kindStruct, "os.ProcAttr", true, "os", true, function(Dir_, Env_, Files_, Sys_) { + this.$val = this; + if (arguments.length === 0) { + this.Dir = ""; + this.Env = sliceType.nil; + this.Files = sliceType$9.nil; + this.Sys = ptrType$15.nil; + return; + } + this.Dir = Dir_; + this.Env = Env_; + this.Files = Files_; + this.Sys = Sys_; + }); + Signal = $newType(8, $kindInterface, "os.Signal", true, "os", true, null); + timeout = $newType(8, $kindInterface, "os.timeout", true, "os", false, null); + SyscallError = $newType(0, $kindStruct, "os.SyscallError", true, "os", true, function(Syscall_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Syscall = ""; + this.Err = $ifaceNil; + return; + } + this.Syscall = Syscall_; + this.Err = Err_; + }); + dirInfo = $newType(0, $kindStruct, "os.dirInfo", true, "os", false, function(buf_, nbuf_, bufp_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = ptrType.nil; + this.nbuf = 0; + this.bufp = 0; + return; + } + this.buf = buf_; + this.nbuf = nbuf_; + this.bufp = bufp_; + }); + readdirMode = $newType(4, $kindInt, "os.readdirMode", true, "os", false, null); + $pkg.fileStat = fileStat; + $pkg.File = File; + $pkg.rawConn = rawConn; + $pkg.file = file; + $pkg.unixDirent = unixDirent; + $pkg.LinkError = LinkError; + $pkg.onlyWriter = onlyWriter; + $pkg.ProcessState = ProcessState; + $pkg.Process = Process; + $pkg.ProcAttr = ProcAttr; + $pkg.Signal = Signal; + $pkg.timeout = timeout; + $pkg.SyscallError = SyscallError; + $pkg.dirInfo = dirInfo; + $pkg.readdirMode = readdirMode; + $pkg.$finishSetup = function() { + $ptrType(Process).prototype.blockUntilWaitable = function blockUntilWaitable() { + var p; + p = this; + return [false, $ifaceNil]; + }; + $ptrType(fileStat).prototype.Size = function Size() { + var fs$1; + fs$1 = this; + return fs$1.size; + }; + $ptrType(fileStat).prototype.Mode = function Mode() { + var fs$1; + fs$1 = this; + return fs$1.mode; + }; + $ptrType(fileStat).prototype.ModTime = function ModTime() { + var fs$1; + fs$1 = this; + return fs$1.modTime; + }; + $ptrType(fileStat).prototype.Sys = function Sys() { + var fs$1; + fs$1 = this; + return fs$1.sys; + }; + sameFile = function sameFile$1(fs1, fs2) { + var fs1, fs2, x, x$1, x$2, x$3; + return (x = fs1.sys.Dev, x$1 = fs2.sys.Dev, (x.$high === x$1.$high && x.$low === x$1.$low)) && (x$2 = fs1.sys.Ino, x$3 = fs2.sys.Ino, (x$2.$high === x$3.$high && x$2.$low === x$3.$low)); + }; + $ptrType(fileStat).prototype.Name = function Name() { + var fs$1; + fs$1 = this; + return fs$1.name; + }; + $ptrType(fileStat).prototype.IsDir = function IsDir() { + var fs$1; + fs$1 = this; + return new fs.FileMode(fs$1.Mode()).IsDir(); + }; + SameFile = function SameFile$1(fi1, fi2) { + var _tuple, _tuple$1, fi1, fi2, fs1, fs2, ok1, ok2; + _tuple = $assertType(fi1, ptrType$1, true); + fs1 = _tuple[0]; + ok1 = _tuple[1]; + _tuple$1 = $assertType(fi2, ptrType$1, true); + fs2 = _tuple$1[0]; + ok2 = _tuple$1[1]; + if (!ok1 || !ok2) { + return false; + } + return sameFile(fs1, fs2); + }; + $pkg.SameFile = SameFile; + uitox = function uitox$1(val) { + var _q, _r$3, _r$4, buf, i, q, val; + if (val === 0) { + return "0x0"; + } + buf = arrayType.zero(); + i = 19; + while (true) { + if (!(val >= 16)) { break; } + q = (_q = val / 16, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = "0123456789abcdef".charCodeAt((_r$3 = val % 16, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")))); + i = i - (1) >> 0; + val = q; + } + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = "0123456789abcdef".charCodeAt((_r$4 = val % 16, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")))); + i = i - (1) >> 0; + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = 120); + i = i - (1) >> 0; + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = 48); + return ($bytesToString($subslice(new sliceType$2(buf), i))); + }; + $ptrType(File).prototype.Stat = function Stat$1() { + var {_r$3, err, f, fs$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fs$1 = [fs$1]; + f = this; + if (f === ptrType$2.nil) { + $s = -1; return [$ifaceNil, $pkg.ErrInvalid]; + } + fs$1[0] = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$3.nil), new syscall.Stat_t.ptr(new $Int64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0))); + _r$3 = f.file.pfd.Fstat(fs$1[0].sys); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, new fs.PathError.ptr("stat", f.file.name, err)]; + } + fillFileStatFromSys(fs$1[0], f.file.name); + $s = -1; return [fs$1[0], $ifaceNil]; + /* */ } return; } var $f = {$blk: Stat$1, $c: true, $r, _r$3, err, f, fs$1, $s};return $f; + }; + statNolog = function statNolog$1(name) { + var {_r$3, err, fs$1, name, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fs$1 = [fs$1]; + name = [name]; + fs$1[0] = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$3.nil), new syscall.Stat_t.ptr(new $Int64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0))); + _r$3 = ignoringEINTR((function(fs$1, name) { return function statNolog·func1() { + var {$24r, _r$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = syscall.Stat(name[0], fs$1[0].sys); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: statNolog·func1, $c: true, $r, $24r, _r$3, $s};return $f; + }; })(fs$1, name)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, new fs.PathError.ptr("stat", name[0], err)]; + } + fillFileStatFromSys(fs$1[0], name[0]); + $s = -1; return [fs$1[0], $ifaceNil]; + /* */ } return; } var $f = {$blk: statNolog$1, $c: true, $r, _r$3, err, fs$1, name, $s};return $f; + }; + lstatNolog = function lstatNolog$1(name) { + var {_r$3, err, fs$1, name, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fs$1 = [fs$1]; + name = [name]; + fs$1[0] = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$3.nil), new syscall.Stat_t.ptr(new $Int64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0))); + _r$3 = ignoringEINTR((function(fs$1, name) { return function lstatNolog·func1() { + var {$24r, _r$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = syscall.Lstat(name[0], fs$1[0].sys); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: lstatNolog·func1, $c: true, $r, $24r, _r$3, $s};return $f; + }; })(fs$1, name)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, new fs.PathError.ptr("lstat", name[0], err)]; + } + fillFileStatFromSys(fs$1[0], name[0]); + $s = -1; return [fs$1[0], $ifaceNil]; + /* */ } return; } var $f = {$blk: lstatNolog$1, $c: true, $r, _r$3, err, fs$1, name, $s};return $f; + }; + fillFileStatFromSys = function fillFileStatFromSys$1(fs$1, name) { + var _1, fs$1, name; + fs$1.name = basename(name); + fs$1.size = fs$1.sys.Size; + time.Time.copy(fs$1.modTime, time.Unix(fs$1.sys.Mtime, fs$1.sys.MtimeNsec)); + fs$1.mode = ((((fs$1.sys.Mode & 511) >>> 0) >>> 0)); + _1 = (fs$1.sys.Mode & 126976) >>> 0; + if (_1 === (24576)) { + fs$1.mode = (fs$1.mode | (67108864)) >>> 0; + } else if (_1 === (8192)) { + fs$1.mode = (fs$1.mode | (69206016)) >>> 0; + } else if (_1 === (16384)) { + fs$1.mode = (fs$1.mode | (2147483648)) >>> 0; + } else if (_1 === (4096)) { + fs$1.mode = (fs$1.mode | (33554432)) >>> 0; + } else if (_1 === (40960)) { + fs$1.mode = (fs$1.mode | (134217728)) >>> 0; + } else if (_1 === (32768)) { + } else if (_1 === (49152)) { + fs$1.mode = (fs$1.mode | (16777216)) >>> 0; + } + if (!((((fs$1.sys.Mode & 1024) >>> 0) === 0))) { + fs$1.mode = (fs$1.mode | (4194304)) >>> 0; + } + if (!((((fs$1.sys.Mode & 2048) >>> 0) === 0))) { + fs$1.mode = (fs$1.mode | (8388608)) >>> 0; + } + if (!((((fs$1.sys.Mode & 512) >>> 0) === 0))) { + fs$1.mode = (fs$1.mode | (1048576)) >>> 0; + } + }; + Stat = function Stat$2(name) { + var {$24r, _r$3, name, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = testlog.Stat(name); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = statNolog(name); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Stat$2, $c: true, $r, $24r, _r$3, name, $s};return $f; + }; + $pkg.Stat = Stat; + Lstat = function Lstat$1(name) { + var {$24r, _r$3, name, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = testlog.Stat(name); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = lstatNolog(name); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Lstat$1, $c: true, $r, $24r, _r$3, name, $s};return $f; + }; + $pkg.Lstat = Lstat; + $ptrType(File).prototype.readFrom = function readFrom(r) { + var _tmp, _tmp$1, _tmp$2, err, f, handled, n, r; + n = new $Int64(0, 0); + handled = false; + err = $ifaceNil; + f = this; + _tmp = new $Int64(0, 0); + _tmp$1 = false; + _tmp$2 = $ifaceNil; + n = _tmp; + handled = _tmp$1; + err = _tmp$2; + return [n, handled, err]; + }; + $ptrType(rawConn).prototype.Control = function Control(f) { + var {_r$3, c, err, err$1, f, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + err = c.file.checkValid("SyscallConn.Control"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = c.file.file.pfd.RawControl(f); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$1 = _r$3; + runtime.KeepAlive(c.file); + $s = -1; return err$1; + /* */ } return; } var $f = {$blk: Control, $c: true, $r, _r$3, c, err, err$1, f, $s};return $f; + }; + $ptrType(rawConn).prototype.Read = function Read(f) { + var {_r$3, c, err, err$1, f, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + err = c.file.checkValid("SyscallConn.Read"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = c.file.file.pfd.RawRead(f); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$1 = _r$3; + runtime.KeepAlive(c.file); + $s = -1; return err$1; + /* */ } return; } var $f = {$blk: Read, $c: true, $r, _r$3, c, err, err$1, f, $s};return $f; + }; + $ptrType(rawConn).prototype.Write = function Write(f) { + var {_r$3, c, err, err$1, f, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + err = c.file.checkValid("SyscallConn.Write"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = c.file.file.pfd.RawWrite(f); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$1 = _r$3; + runtime.KeepAlive(c.file); + $s = -1; return err$1; + /* */ } return; } var $f = {$blk: Write, $c: true, $r, _r$3, c, err, err$1, f, $s};return $f; + }; + newRawConn = function newRawConn$1(file$1) { + var file$1; + return [new rawConn.ptr(file$1), $ifaceNil]; + }; + init = function init$2() { + if (false) { + return; + } + $pkg.Args = runtime_args(); + }; + Exit = function Exit$1(code) { + var {_r$3, code, $s, $r, $c} = $restore(this, {code}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (code === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (code === 0) { */ case 1: + _r$3 = testlog.PanicOnExit0(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$3) { */ case 3: + $panic(new $String("unexpected call to os.Exit(0) during test")); + /* } */ case 4: + runtime_beforeExit(); + /* } */ case 2: + syscall.Exit(code); + $s = -1; return; + /* */ } return; } var $f = {$blk: Exit$1, $c: true, $r, _r$3, code, $s};return $f; + }; + $pkg.Exit = Exit; + Pipe = function Pipe$1() { + var {$24r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, e, err, p, r, w, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = ptrType$2.nil; + w = ptrType$2.nil; + err = $ifaceNil; + p = arrayType$1.zero(); + $r = syscall.ForkLock.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + e = syscall.Pipe($subslice(new sliceType$3(p), 0)); + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: + $r = syscall.ForkLock.RUnlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp = ptrType$2.nil; + _tmp$1 = ptrType$2.nil; + _tmp$2 = NewSyscallError("pipe", e); + r = _tmp; + w = _tmp$1; + err = _tmp$2; + $s = -1; return [r, w, err]; + /* } */ case 3: + syscall.CloseOnExec(p[0]); + syscall.CloseOnExec(p[1]); + $r = syscall.ForkLock.RUnlock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = newFile(((p[0] >>> 0)), "|0", 2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tmp$3 = _r$3; + _r$4 = newFile(((p[1] >>> 0)), "|1", 2); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tmp$4 = _r$4; + _tmp$5 = $ifaceNil; + r = _tmp$3; + w = _tmp$4; + err = _tmp$5; + $24r = [r, w, err]; + $s = 8; case 8: return $24r; + /* */ } return; } var $f = {$blk: Pipe$1, $c: true, $r, $24r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, e, err, p, r, w, $s};return $f; + }; + $pkg.Pipe = Pipe; + IsPathSeparator = function IsPathSeparator$1(c) { + var c; + return 47 === c; + }; + $pkg.IsPathSeparator = IsPathSeparator; + basename = function basename$1(name) { + var i, name; + i = name.length - 1 >> 0; + while (true) { + if (!(i > 0 && (name.charCodeAt(i) === 47))) { break; } + name = $substring(name, 0, i); + i = i - (1) >> 0; + } + i = i - (1) >> 0; + while (true) { + if (!(i >= 0)) { break; } + if (name.charCodeAt(i) === 47) { + name = $substring(name, (i + 1 >> 0)); + break; + } + i = i - (1) >> 0; + } + return name; + }; + runtime_args = function runtime_args$1() { + return $pkg.Args; + }; + init$1 = function init$3() { + var argv, i, process; + process = $global.process; + if (!(process === undefined)) { + argv = process.argv; + if (!(argv === undefined) && $parseInt(argv.length) >= 1) { + $pkg.Args = $makeSlice(sliceType, ($parseInt(argv.length) - 1 >> 0)); + i = 0; + while (true) { + if (!(i < ($parseInt(argv.length) - 1 >> 0))) { break; } + ((i < 0 || i >= $pkg.Args.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Args.$array[$pkg.Args.$offset + i] = $internalize(argv[(i + 1 >> 0)], $String)); + i = i + (1) >> 0; + } + } + } + if ($pkg.Args.$length === 0) { + $pkg.Args = new sliceType(["?"]); + } + }; + runtime_beforeExit = function runtime_beforeExit$1() { + }; + $ptrType(File).prototype.WriteString = function WriteString(s) { + var {$24r, _r$3, _tuple, err, f, n, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.Write((new sliceType$2($stringToBytes(s)))); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + $24r = [n, err]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: WriteString, $c: true, $r, $24r, _r$3, _tuple, err, f, n, s, $s};return $f; + }; + Getwd = function Getwd$1() { + var {_i, _r$10, _r$11, _r$12, _r$13, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, d, d$1, d$2, dir, dot, e, err, err$1, err$2, err$3, err$4, fd, name, names, parent, pd, root, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + dir = ""; + err = $ifaceNil; + if (false) { + _tuple = syscall.Getwd(); + dir = _tuple[0]; + err = _tuple[1]; + $s = -1; return [dir, err]; + } + _r$3 = statNolog("."); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + dot = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = ""; + _tmp$1 = err; + dir = _tmp; + err = _tmp$1; + $s = -1; return [dir, err]; + } + _r$4 = Getenv("PWD"); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + dir = _r$4; + /* */ if (dir.length > 0 && (dir.charCodeAt(0) === 47)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (dir.length > 0 && (dir.charCodeAt(0) === 47)) { */ case 3: + _r$5 = statNolog(dir); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + d = _tuple$2[0]; + err$1 = _tuple$2[1]; + if ($interfaceIsEqual(err$1, $ifaceNil) && SameFile(dot, d)) { + _tmp$2 = dir; + _tmp$3 = $ifaceNil; + dir = _tmp$2; + err = _tmp$3; + $s = -1; return [dir, err]; + } + /* } */ case 4: + if (true) { + s = ""; + e = $ifaceNil; + while (true) { + _tuple$3 = syscall.Getwd(); + s = _tuple$3[0]; + e = _tuple$3[1]; + if (!($interfaceIsEqual(e, new syscall.Errno(4)))) { + break; + } + } + _tmp$4 = s; + _tmp$5 = NewSyscallError("getwd", e); + dir = _tmp$4; + err = _tmp$5; + $s = -1; return [dir, err]; + } + $r = getwdCache.Mutex.Lock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + dir = getwdCache.dir; + $r = getwdCache.Mutex.Unlock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (dir.length > 0) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (dir.length > 0) { */ case 8: + _r$6 = statNolog(dir); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$4 = _r$6; + d$1 = _tuple$4[0]; + err$2 = _tuple$4[1]; + if ($interfaceIsEqual(err$2, $ifaceNil) && SameFile(dot, d$1)) { + _tmp$6 = dir; + _tmp$7 = $ifaceNil; + dir = _tmp$6; + err = _tmp$7; + $s = -1; return [dir, err]; + } + /* } */ case 9: + _r$7 = statNolog("/"); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$5 = _r$7; + root = _tuple$5[0]; + err = _tuple$5[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$8 = ""; + _tmp$9 = err; + dir = _tmp$8; + err = _tmp$9; + $s = -1; return [dir, err]; + } + if (SameFile(root, dot)) { + _tmp$10 = "/"; + _tmp$11 = $ifaceNil; + dir = _tmp$10; + err = _tmp$11; + $s = -1; return [dir, err]; + } + dir = ""; + parent = ".."; + /* while (true) { */ case 12: + if (parent.length >= 1024) { + _tmp$12 = ""; + _tmp$13 = new syscall.Errno(36); + dir = _tmp$12; + err = _tmp$13; + $s = -1; return [dir, err]; + } + _r$8 = openFileNolog(parent, 0, 0); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$6 = _r$8; + fd = _tuple$6[0]; + err$3 = _tuple$6[1]; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + _tmp$14 = ""; + _tmp$15 = err$3; + dir = _tmp$14; + err = _tmp$15; + $s = -1; return [dir, err]; + } + /* while (true) { */ case 15: + _r$9 = fd.Readdirnames(100); /* */ $s = 17; case 17: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$7 = _r$9; + names = _tuple$7[0]; + err$4 = _tuple$7[1]; + /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 18: + _r$10 = fd.Close(); /* */ $s = 20; case 20: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + _tmp$16 = ""; + _tmp$17 = err$4; + dir = _tmp$16; + err = _tmp$17; + $s = -1; return [dir, err]; + /* } */ case 19: + _ref = names; + _i = 0; + /* while (true) { */ case 21: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 22; continue; } + name = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$11 = lstatNolog(parent + "/" + name); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$8 = _r$11; + d$2 = _tuple$8[0]; + /* */ if (SameFile(d$2, dot)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (SameFile(d$2, dot)) { */ case 24: + dir = "/" + name + dir; + /* goto Found */ $s = 26; continue; + /* } */ case 25: + _i++; + $s = 21; continue; + case 22: + $s = 15; continue; + case 16: + /* Found: */ case 26: + _r$12 = fd.Stat(); /* */ $s = 27; case 27: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple$9 = _r$12; + pd = _tuple$9[0]; + err$3 = _tuple$9[1]; + _r$13 = fd.Close(); /* */ $s = 28; case 28: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + _tmp$18 = ""; + _tmp$19 = err$3; + dir = _tmp$18; + err = _tmp$19; + $s = -1; return [dir, err]; + } + if (SameFile(pd, root)) { + /* break; */ $s = 13; continue; + } + dot = pd; + parent = "../" + parent; + $s = 12; continue; + case 13: + $r = getwdCache.Mutex.Lock(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + getwdCache.dir = dir; + $r = getwdCache.Mutex.Unlock(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$20 = dir; + _tmp$21 = $ifaceNil; + dir = _tmp$20; + err = _tmp$21; + $s = -1; return [dir, err]; + /* */ } return; } var $f = {$blk: Getwd$1, $c: true, $r, _i, _r$10, _r$11, _r$12, _r$13, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, d, d$1, d$2, dir, dot, e, err, err$1, err$2, err$3, err$4, fd, name, names, parent, pd, root, s, $s};return $f; + }; + $pkg.Getwd = Getwd; + fixLongPath = function fixLongPath$1(path) { + var path; + return path; + }; + $ptrType(File).prototype.Fd = function Fd() { + var {_r$3, f, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + if (f === ptrType$2.nil) { + $s = -1; return 4294967295; + } + /* */ if (f.file.nonblock) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (f.file.nonblock) { */ case 1: + _r$3 = f.file.pfd.SetBlocking(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* } */ case 2: + $s = -1; return ((f.file.pfd.Sysfd >>> 0)); + /* */ } return; } var $f = {$blk: Fd, $c: true, $r, _r$3, f, $s};return $f; + }; + NewFile = function NewFile$1(fd, name) { + var {$24r, _r$3, _tuple, err, fd, kind, name, nb, $s, $r, $c} = $restore(this, {fd, name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + kind = 0; + _tuple = unix.IsNonblock(((fd >> 0))); + nb = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil) && nb) { + kind = 3; + } + _r$3 = newFile(fd, name, kind); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: NewFile$1, $c: true, $r, $24r, _r$3, _tuple, err, fd, kind, name, nb, $s};return $f; + }; + $pkg.NewFile = NewFile; + newFile = function newFile$1(fd, name, kind) { + var {_1, _r$3, err, err$1, err$2, f, fd, fdi, kind, name, pollable, st, typ, $s, $r, $c} = $restore(this, {fd, name, kind}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fdi = [fdi]; + st = [st]; + fdi[0] = ((fd >> 0)); + if (fdi[0] < 0) { + $s = -1; return ptrType$2.nil; + } + f = new File.ptr(new file.ptr($clone(new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), fdi[0], new poll.pollDesc.ptr(ptrType$6.nil, false), ptrType$7.nil, 0, 0, true, true, false), poll.FD), name, ptrType$8.nil, false, (fdi[0] === 1) || (fdi[0] === 2), false)); + pollable = (kind === 1) || (kind === 2) || (kind === 3); + /* */ if (kind === 1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (kind === 1) { */ case 1: + _1 = "js"; + /* */ if (_1 === ("darwin") || _1 === ("ios") || _1 === ("dragonfly") || _1 === ("freebsd") || _1 === ("netbsd") || _1 === ("openbsd")) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === ("darwin") || _1 === ("ios") || _1 === ("dragonfly") || _1 === ("freebsd") || _1 === ("netbsd") || _1 === ("openbsd")) { */ case 4: + st[0] = new syscall.Stat_t.ptr(new $Int64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0)); + _r$3 = ignoringEINTR((function(fdi, st) { return function newFile·func1() { + var {$24r, _r$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = syscall.Fstat(fdi[0], st[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: newFile·func1, $c: true, $r, $24r, _r$3, $s};return $f; + }; })(fdi, st)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + typ = (st[0].Mode & 126976) >>> 0; + if ($interfaceIsEqual(err, $ifaceNil) && ((typ === 32768) || (typ === 16384))) { + pollable = false; + } + if (false && (typ === 4096)) { + pollable = false; + } + /* } */ case 5: + case 3: + /* } */ case 2: + err$1 = f.file.pfd.Init("file", pollable); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + } else if (pollable) { + err$2 = syscall.SetNonblock(fdi[0], true); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + f.file.nonblock = true; + } + } + runtime.SetFinalizer(f.file, new funcType($methodExpr(ptrType$9, "close"))); + $s = -1; return f; + /* */ } return; } var $f = {$blk: newFile$1, $c: true, $r, _1, _r$3, err, err$1, err$2, f, fd, fdi, kind, name, pollable, st, typ, $s};return $f; + }; + epipecheck = function epipecheck$1(file$1, e) { + var {e, file$1, $s, $r, $c} = $restore(this, {file$1, e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if ($interfaceIsEqual(e, new syscall.Errno(32)) && file$1.file.stdoutOrErr) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(e, new syscall.Errno(32)) && file$1.file.stdoutOrErr) { */ case 1: + $r = sigpipe(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: epipecheck$1, $c: true, $r, e, file$1, $s};return $f; + }; + openFileNolog = function openFileNolog$1(name, flag, perm) { + var {$24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, e, err, flag, name, perm, r, setSticky, $s, $r, $c} = $restore(this, {name, flag, perm}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + setSticky = false; + /* */ if (true && !(((flag & 64) === 0)) && !((((perm & 1048576) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (true && !(((flag & 64) === 0)) && !((((perm & 1048576) >>> 0) === 0))) { */ case 1: + _r$3 = Stat(name); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + err = _tuple[1]; + if (IsNotExist(err)) { + setSticky = true; + } + /* } */ case 2: + r = 0; + /* while (true) { */ case 4: + e = $ifaceNil; + _r$4 = syscall.Open(name, flag | 0, syscallMode(perm)); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + r = _tuple$1[0]; + e = _tuple$1[1]; + if ($interfaceIsEqual(e, $ifaceNil)) { + /* break; */ $s = 5; continue; + } + if ($interfaceIsEqual(e, new syscall.Errno(4))) { + /* continue; */ $s = 4; continue; + } + $s = -1; return [ptrType$2.nil, new fs.PathError.ptr("open", name, e)]; + case 5: + /* */ if (setSticky) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (setSticky) { */ case 7: + _r$5 = setStickyBit(name); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* } */ case 8: + if (true) { + syscall.CloseOnExec(r); + } + _r$6 = newFile(((r >>> 0)), name, 1); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r = [_r$6, $ifaceNil]; + $s = 11; case 11: return $24r; + /* */ } return; } var $f = {$blk: openFileNolog$1, $c: true, $r, $24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, e, err, flag, name, perm, r, setSticky, $s};return $f; + }; + $ptrType(file).prototype.close = function close() { + var {_r$3, e, err, file$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + file$1 = this; + if (file$1 === ptrType$9.nil) { + $s = -1; return new syscall.Errno(22); + } + if (!(file$1.dirinfo === ptrType$8.nil)) { + file$1.dirinfo.close(); + file$1.dirinfo = ptrType$8.nil; + } + err = $ifaceNil; + _r$3 = file$1.pfd.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + if ($interfaceIsEqual(e, poll.ErrFileClosing)) { + e = $pkg.ErrClosed; + } + err = new fs.PathError.ptr("close", file$1.name, e); + } + runtime.SetFinalizer(file$1, $ifaceNil); + $s = -1; return err; + /* */ } return; } var $f = {$blk: close, $c: true, $r, _r$3, e, err, file$1, $s};return $f; + }; + $ptrType(File).prototype.seek = function seek(offset, whence) { + var {_r$3, _tmp, _tmp$1, _tuple, err, f, offset, ret, whence, $s, $r, $c} = $restore(this, {offset, whence}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ret = new $Int64(0, 0); + err = $ifaceNil; + f = this; + if (!(f.file.dirinfo === ptrType$8.nil)) { + f.file.dirinfo.close(); + f.file.dirinfo = ptrType$8.nil; + } + _r$3 = f.file.pfd.Seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + ret = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = ret; + _tmp$1 = err; + ret = _tmp; + err = _tmp$1; + $s = -1; return [ret, err]; + /* */ } return; } var $f = {$blk: seek, $c: true, $r, _r$3, _tmp, _tmp$1, _tuple, err, f, offset, ret, whence, $s};return $f; + }; + Readlink = function Readlink$1(name) { + var {_r$3, _r$4, _tuple, _tuple$1, b, e, len, n, name, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + len = 128; + /* while (true) { */ case 1: + b = $makeSlice(sliceType$2, len); + n = 0; + e = $ifaceNil; + /* while (true) { */ case 3: + _r$3 = syscall.Readlink(name, b); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + _r$4 = fixCount(_tuple$1[0], _tuple$1[1]); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + n = _tuple[0]; + e = _tuple[1]; + if (!($interfaceIsEqual(e, new syscall.Errno(4)))) { + /* break; */ $s = 4; continue; + } + $s = 3; continue; + case 4: + if (false && $interfaceIsEqual(e, new syscall.Errno(34))) { + len = $imul(len, (2)); + /* continue; */ $s = 1; continue; + } + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return ["", new fs.PathError.ptr("readlink", name, e)]; + } + if (n < len) { + $s = -1; return [($bytesToString($subslice(b, 0, n))), $ifaceNil]; + } + len = $imul(len, (2)); + $s = 1; continue; + case 2: + $s = -1; return ["", $ifaceNil]; + /* */ } return; } var $f = {$blk: Readlink$1, $c: true, $r, _r$3, _r$4, _tuple, _tuple$1, b, e, len, n, name, $s};return $f; + }; + $pkg.Readlink = Readlink; + $ptrType(unixDirent).prototype.Name = function Name$1() { + var d; + d = this; + return d.name; + }; + $ptrType(unixDirent).prototype.IsDir = function IsDir$1() { + var d; + d = this; + return new fs.FileMode(d.typ).IsDir(); + }; + $ptrType(unixDirent).prototype.Type = function Type() { + var d; + d = this; + return d.typ; + }; + $ptrType(unixDirent).prototype.Info = function Info() { + var {$24r, _r$3, d, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + if (!($interfaceIsEqual(d.info, $ifaceNil))) { + $s = -1; return [d.info, $ifaceNil]; + } + _r$3 = lstat(d.parent + "/" + d.name); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Info, $c: true, $r, $24r, _r$3, d, $s};return $f; + }; + newUnixDirent = function newUnixDirent$1(parent, name, typ) { + var {_r$3, _r$4, _r$5, _tuple, err, info, name, parent, typ, ude, $s, $r, $c} = $restore(this, {parent, name, typ}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ude = new unixDirent.ptr(parent, name, typ, $ifaceNil); + if (!((typ === 4294967295)) && !testingForceReadDirLstat) { + $s = -1; return [ude, $ifaceNil]; + } + _r$3 = lstat(parent + "/" + name); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + info = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, err]; + } + _r$4 = info.Mode(); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = new fs.FileMode(_r$4).Type(); /* */ $s = 3; case 3: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + ude.typ = _r$5; + ude.info = info; + $s = -1; return [ude, $ifaceNil]; + /* */ } return; } var $f = {$blk: newUnixDirent$1, $c: true, $r, _r$3, _r$4, _r$5, _tuple, err, info, name, parent, typ, ude, $s};return $f; + }; + sigpipe = function() { + $throwRuntimeError("native function not implemented: os.sigpipe"); + }; + $ptrType(File).prototype.Close = function Close() { + var {$24r, _r$3, f, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + if (f === ptrType$2.nil) { + $s = -1; return $pkg.ErrInvalid; + } + _r$3 = f.file.close(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Close, $c: true, $r, $24r, _r$3, f, $s};return $f; + }; + $ptrType(File).prototype.read = function read(b) { + var {_r$3, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: read, $c: true, $r, _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, $s};return $f; + }; + $ptrType(File).prototype.pread = function pread(b, off) { + var {_r$3, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r, $c} = $restore(this, {b, off}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Pread(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: pread, $c: true, $r, _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s};return $f; + }; + $ptrType(File).prototype.write = function write(b) { + var {_r$3, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: write, $c: true, $r, _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, $s};return $f; + }; + $ptrType(File).prototype.pwrite = function pwrite(b, off) { + var {_r$3, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r, $c} = $restore(this, {b, off}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Pwrite(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: pwrite, $c: true, $r, _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s};return $f; + }; + syscallMode = function syscallMode$1(i) { + var i, o; + o = 0; + o = (o | (((new fs.FileMode(i).Perm() >>> 0)))) >>> 0; + if (!((((i & 8388608) >>> 0) === 0))) { + o = (o | (2048)) >>> 0; + } + if (!((((i & 4194304) >>> 0) === 0))) { + o = (o | (1024)) >>> 0; + } + if (!((((i & 1048576) >>> 0) === 0))) { + o = (o | (512)) >>> 0; + } + return o; + }; + chmod = function chmod$1(name, mode) { + var {_r$3, e, longName, mode, name, $s, $r, $c} = $restore(this, {name, mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + longName = [longName]; + mode = [mode]; + longName[0] = fixLongPath(name); + _r$3 = ignoringEINTR((function(longName, mode) { return function chmod·func1() { + var {$24r, _r$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = syscall.Chmod(longName[0], syscallMode(mode[0])); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: chmod·func1, $c: true, $r, $24r, _r$3, $s};return $f; + }; })(longName, mode)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return new fs.PathError.ptr("chmod", name, e); + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: chmod$1, $c: true, $r, _r$3, e, longName, mode, name, $s};return $f; + }; + $ptrType(File).prototype.chmod = function chmod$2(mode) { + var {_r$3, e, err, f, mode, $s, $r, $c} = $restore(this, {mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("chmod"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = f.file.pfd.Fchmod(syscallMode(mode)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("chmod", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: chmod$2, $c: true, $r, _r$3, e, err, f, mode, $s};return $f; + }; + $ptrType(File).prototype.Chown = function Chown$2(uid, gid) { + var {_r$3, e, err, f, gid, uid, $s, $r, $c} = $restore(this, {uid, gid}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("chown"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = f.file.pfd.Fchown(uid, gid); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("chown", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Chown$2, $c: true, $r, _r$3, e, err, f, gid, uid, $s};return $f; + }; + $ptrType(File).prototype.Truncate = function Truncate$2(size) { + var {_r$3, e, err, f, size, $s, $r, $c} = $restore(this, {size}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("truncate"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = f.file.pfd.Ftruncate(size); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("truncate", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Truncate$2, $c: true, $r, _r$3, e, err, f, size, $s};return $f; + }; + $ptrType(File).prototype.Sync = function Sync() { + var {_r$3, e, err, f, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("sync"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = f.file.pfd.Fsync(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("sync", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Sync, $c: true, $r, _r$3, e, err, f, $s};return $f; + }; + $ptrType(File).prototype.Chdir = function Chdir$1() { + var {_r$3, e, err, f, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("chdir"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = f.file.pfd.Fchdir(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("chdir", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Chdir$1, $c: true, $r, _r$3, e, err, f, $s};return $f; + }; + $ptrType(File).prototype.setDeadline = function setDeadline(t) { + var {$24r, _r$3, err, f, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("SetDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = f.file.pfd.SetDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: setDeadline, $c: true, $r, $24r, _r$3, err, f, t, $s};return $f; + }; + $ptrType(File).prototype.setReadDeadline = function setReadDeadline(t) { + var {$24r, _r$3, err, f, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("SetReadDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = f.file.pfd.SetReadDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: setReadDeadline, $c: true, $r, $24r, _r$3, err, f, t, $s};return $f; + }; + $ptrType(File).prototype.setWriteDeadline = function setWriteDeadline(t) { + var {$24r, _r$3, err, f, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("SetWriteDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = f.file.pfd.SetWriteDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: setWriteDeadline, $c: true, $r, $24r, _r$3, err, f, t, $s};return $f; + }; + $ptrType(File).prototype.checkValid = function checkValid(op) { + var f, op; + f = this; + if (f === ptrType$2.nil) { + return $pkg.ErrInvalid; + } + return $ifaceNil; + }; + ignoringEINTR = function ignoringEINTR$1(fn) { + var {_r$3, err, fn, $s, $r, $c} = $restore(this, {fn}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* while (true) { */ case 1: + _r$3 = fn(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + if (!($interfaceIsEqual(err, new syscall.Errno(4)))) { + $s = -1; return err; + } + $s = 1; continue; + case 2: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: ignoringEINTR$1, $c: true, $r, _r$3, err, fn, $s};return $f; + }; + $ptrType(File).prototype.Name = function Name$2() { + var f; + f = this; + return f.file.name; + }; + $ptrType(LinkError).prototype.Error = function Error() { + var {$24r, _r$3, e, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + e = this; + _r$3 = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = e.Op + " " + e.Old + " " + e.New + ": " + _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Error, $c: true, $r, $24r, _r$3, e, $s};return $f; + }; + $ptrType(LinkError).prototype.Unwrap = function Unwrap() { + var e; + e = this; + return e.Err; + }; + $ptrType(File).prototype.Read = function Read$1(b) { + var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("read"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + _r$3 = f.read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + e = _tuple[1]; + _tmp$2 = n; + _tmp$3 = f.wrapErr("read", e); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: Read$1, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s};return $f; + }; + $ptrType(File).prototype.ReadAt = function ReadAt(b, off) { + var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r, $c} = $restore(this, {b, off}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("read"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { + _tmp$2 = 0; + _tmp$3 = new fs.PathError.ptr("readat", f.file.name, errors.New("negative offset")); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* while (true) { */ case 1: + /* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; } + _r$3 = f.pread(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + m = _tuple[0]; + e = _tuple[1]; + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("read", e); + /* break; */ $s = 2; continue; + } + n = n + (m) >> 0; + b = $subslice(b, m); + off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); + $s = 1; continue; + case 2: + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: ReadAt, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s};return $f; + }; + $ptrType(File).prototype.ReadFrom = function ReadFrom(r) { + var {$24r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, e, err, err$1, f, handled, n, r, $s, $r, $c} = $restore(this, {r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = new $Int64(0, 0); + err = $ifaceNil; + f = this; + err$1 = f.checkValid("write"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = new $Int64(0, 0); + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + _tuple = f.readFrom(r); + n = _tuple[0]; + handled = _tuple[1]; + e = _tuple[2]; + /* */ if (!handled) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!handled) { */ case 1: + _r$3 = genericReadFrom(f, r); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + n = _tuple$1[0]; + err = _tuple$1[1]; + $24r = [n, err]; + $s = 4; case 4: return $24r; + /* } */ case 2: + _tmp$2 = n; + _tmp$3 = f.wrapErr("write", e); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: ReadFrom, $c: true, $r, $24r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, e, err, err$1, f, handled, n, r, $s};return $f; + }; + genericReadFrom = function genericReadFrom$1(f, r) { + var {$24r, _r$3, f, r, x, $s, $r, $c} = $restore(this, {f, r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = io.Copy((x = new onlyWriter.ptr(f), new x.constructor.elem(x)), r); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: genericReadFrom$1, $c: true, $r, $24r, _r$3, f, r, x, $s};return $f; + }; + $ptrType(File).prototype.Write = function Write$1(b) { + var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("write"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + _r$3 = f.write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + e = _tuple[1]; + if (n < 0) { + n = 0; + } + if (!((n === b.$length))) { + err = io.ErrShortWrite; + } + $r = epipecheck(f, e); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("write", e); + } + _tmp$2 = n; + _tmp$3 = err; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: Write$1, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s};return $f; + }; + $ptrType(File).prototype.WriteAt = function WriteAt(b, off) { + var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r, $c} = $restore(this, {b, off}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("write"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if (f.file.appendMode) { + _tmp$2 = 0; + _tmp$3 = errWriteAtInAppendMode; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { + _tmp$4 = 0; + _tmp$5 = new fs.PathError.ptr("writeat", f.file.name, errors.New("negative offset")); + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + } + /* while (true) { */ case 1: + /* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; } + _r$3 = f.pwrite(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + m = _tuple[0]; + e = _tuple[1]; + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("write", e); + /* break; */ $s = 2; continue; + } + n = n + (m) >> 0; + b = $subslice(b, m); + off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); + $s = 1; continue; + case 2: + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: WriteAt, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, err$1, f, m, n, off, x, $s};return $f; + }; + $ptrType(File).prototype.Seek = function Seek(offset, whence) { + var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s, $r, $c} = $restore(this, {offset, whence}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ret = new $Int64(0, 0); + err = $ifaceNil; + f = this; + err$1 = f.checkValid("seek"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = new $Int64(0, 0); + _tmp$1 = err$1; + ret = _tmp; + err = _tmp$1; + $s = -1; return [ret, err]; + } + _r$3 = f.seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + r = _tuple[0]; + e = _tuple[1]; + if ($interfaceIsEqual(e, $ifaceNil) && !(f.file.dirinfo === ptrType$8.nil) && !((r.$high === 0 && r.$low === 0))) { + e = new syscall.Errno(21); + } + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp$2 = new $Int64(0, 0); + _tmp$3 = f.wrapErr("seek", e); + ret = _tmp$2; + err = _tmp$3; + $s = -1; return [ret, err]; + } + _tmp$4 = r; + _tmp$5 = $ifaceNil; + ret = _tmp$4; + err = _tmp$5; + $s = -1; return [ret, err]; + /* */ } return; } var $f = {$blk: Seek, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s};return $f; + }; + setStickyBit = function setStickyBit$1(name) { + var {$24r, _arg, _arg$1, _r$3, _r$4, _r$5, _tuple, err, fi, name, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = Stat(name); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + fi = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _arg = name; + _r$4 = fi.Mode(); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$1 = (_r$4 | 1048576) >>> 0; + _r$5 = Chmod(_arg, _arg$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = _r$5; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: setStickyBit$1, $c: true, $r, $24r, _arg, _arg$1, _r$3, _r$4, _r$5, _tuple, err, fi, name, $s};return $f; + }; + Open = function Open$1(name) { + var {$24r, _r$3, name, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = OpenFile(name, 0, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Open$1, $c: true, $r, $24r, _r$3, name, $s};return $f; + }; + $pkg.Open = Open; + OpenFile = function OpenFile$1(name, flag, perm) { + var {_r$3, _tuple, err, f, flag, name, perm, $s, $r, $c} = $restore(this, {name, flag, perm}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = testlog.Open(name); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = openFileNolog(name, flag, perm); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$2.nil, err]; + } + f.file.appendMode = !(((flag & 1024) === 0)); + $s = -1; return [f, $ifaceNil]; + /* */ } return; } var $f = {$blk: OpenFile$1, $c: true, $r, _r$3, _tuple, err, f, flag, name, perm, $s};return $f; + }; + $pkg.OpenFile = OpenFile; + fixCount = function fixCount$1(n, err) { + var err, n; + if (n < 0) { + n = 0; + } + return [n, err]; + }; + $ptrType(File).prototype.wrapErr = function wrapErr(op, err) { + var err, f, op; + f = this; + if ($interfaceIsEqual(err, $ifaceNil) || $interfaceIsEqual(err, io.EOF)) { + return err; + } + if ($interfaceIsEqual(err, poll.ErrFileClosing)) { + err = $pkg.ErrClosed; + } + return new fs.PathError.ptr(op, f.file.name, err); + }; + UserCacheDir = function UserCacheDir$1() { + var {_1, _r$3, _r$4, _r$5, _r$6, _r$7, dir, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + dir = ""; + _1 = "js"; + /* */ if (_1 === ("windows")) { $s = 2; continue; } + /* */ if (_1 === ("darwin") || _1 === ("ios")) { $s = 3; continue; } + /* */ if (_1 === ("plan9")) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === ("windows")) { */ case 2: + _r$3 = Getenv("LocalAppData"); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + dir = _r$3; + if (dir === "") { + $s = -1; return ["", errors.New("%LocalAppData% is not defined")]; + } + $s = 6; continue; + /* } else if (_1 === ("darwin") || _1 === ("ios")) { */ case 3: + _r$4 = Getenv("HOME"); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + dir = _r$4; + if (dir === "") { + $s = -1; return ["", errors.New("$HOME is not defined")]; + } + dir = dir + ("/Library/Caches"); + $s = 6; continue; + /* } else if (_1 === ("plan9")) { */ case 4: + _r$5 = Getenv("home"); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + dir = _r$5; + if (dir === "") { + $s = -1; return ["", errors.New("$home is not defined")]; + } + dir = dir + ("/lib/cache"); + $s = 6; continue; + /* } else { */ case 5: + _r$6 = Getenv("XDG_CACHE_HOME"); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + dir = _r$6; + /* */ if (dir === "") { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (dir === "") { */ case 11: + _r$7 = Getenv("HOME"); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + dir = _r$7; + if (dir === "") { + $s = -1; return ["", errors.New("neither $XDG_CACHE_HOME nor $HOME are defined")]; + } + dir = dir + ("/.cache"); + /* } */ case 12: + /* } */ case 6: + case 1: + $s = -1; return [dir, $ifaceNil]; + /* */ } return; } var $f = {$blk: UserCacheDir$1, $c: true, $r, _1, _r$3, _r$4, _r$5, _r$6, _r$7, dir, $s};return $f; + }; + $pkg.UserCacheDir = UserCacheDir; + Chmod = function Chmod$1(name, mode) { + var {$24r, _r$3, mode, name, $s, $r, $c} = $restore(this, {name, mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = chmod(name, mode); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Chmod$1, $c: true, $r, $24r, _r$3, mode, name, $s};return $f; + }; + $pkg.Chmod = Chmod; + $ptrType(File).prototype.Chmod = function Chmod$2(mode) { + var {$24r, _r$3, f, mode, $s, $r, $c} = $restore(this, {mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + _r$3 = f.chmod(mode); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Chmod$2, $c: true, $r, $24r, _r$3, f, mode, $s};return $f; + }; + $ptrType(File).prototype.SetDeadline = function SetDeadline(t) { + var {$24r, _r$3, f, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + _r$3 = f.setDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: SetDeadline, $c: true, $r, $24r, _r$3, f, t, $s};return $f; + }; + $ptrType(File).prototype.SetReadDeadline = function SetReadDeadline(t) { + var {$24r, _r$3, f, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + _r$3 = f.setReadDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: SetReadDeadline, $c: true, $r, $24r, _r$3, f, t, $s};return $f; + }; + $ptrType(File).prototype.SetWriteDeadline = function SetWriteDeadline(t) { + var {$24r, _r$3, f, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + _r$3 = f.setWriteDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: SetWriteDeadline, $c: true, $r, $24r, _r$3, f, t, $s};return $f; + }; + $ptrType(File).prototype.SyscallConn = function SyscallConn() { + var _returncast, err, f; + f = this; + err = f.checkValid("SyscallConn"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [$ifaceNil, err]; + } + _returncast = newRawConn(f); + return [_returncast[0], _returncast[1]]; + }; + ReadFile = function ReadFile$1(name) { + var {$24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, d, data, err, err$1, err$2, f, info, n, name, size, size64, x, $s, $deferred, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + _r$3 = Open(name); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType$2.nil, err]; + } + $deferred.push([$methodVal(f, "Close"), []]); + size = 0; + _r$4 = f.Stat(); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + info = _tuple$1[0]; + err$1 = _tuple$1[1]; + /* */ if ($interfaceIsEqual(err$1, $ifaceNil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($interfaceIsEqual(err$1, $ifaceNil)) { */ case 3: + _r$5 = info.Size(); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + size64 = _r$5; + if ((x = (new $Int64(0, (((size64.$low + ((size64.$high >> 31) * 4294967296)) >> 0)))), (x.$high === size64.$high && x.$low === size64.$low))) { + size = (((size64.$low + ((size64.$high >> 31) * 4294967296)) >> 0)); + } + /* } */ case 4: + size = size + (1) >> 0; + if (size < 512) { + size = 512; + } + data = $makeSlice(sliceType$2, 0, size); + /* while (true) { */ case 6: + if (data.$length >= data.$capacity) { + d = $append($subslice(data, 0, data.$capacity), 0); + data = $subslice(d, 0, data.$length); + } + _r$6 = f.Read($subslice(data, data.$length, data.$capacity)); /* */ $s = 8; case 8: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$2 = _r$6; + n = _tuple$2[0]; + err$2 = _tuple$2[1]; + data = $subslice(data, 0, (data.$length + n >> 0)); + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 9: + if ($interfaceIsEqual(err$2, io.EOF)) { + err$2 = $ifaceNil; + } + $24r = [data, err$2]; + $s = 11; case 11: return $24r; + /* } */ case 10: + $s = 6; continue; + case 7: + $s = -1; return [sliceType$2.nil, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$2.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadFile$1, $c: true, $r, $24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, d, data, err, err$1, err$2, f, info, n, name, size, size64, x, $s, $deferred};return $f; } } + }; + $pkg.ReadFile = ReadFile; + $ptrType(Process).prototype.wait = function wait() { + var {_tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, e, err, p, pid1, ps, ready, rusage, status, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rusage = [rusage]; + status = [status]; + ps = ptrType$10.nil; + err = $ifaceNil; + p = this; + if (p.Pid === -1) { + _tmp = ptrType$10.nil; + _tmp$1 = new syscall.Errno(22); + ps = _tmp; + err = _tmp$1; + $s = -1; return [ps, err]; + } + _tuple = p.blockUntilWaitable(); + ready = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$2 = ptrType$10.nil; + _tmp$3 = err; + ps = _tmp$2; + err = _tmp$3; + $s = -1; return [ps, err]; + } + /* */ if (ready) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ready) { */ case 1: + p.setDone(); + $r = p.sigMu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.sigMu.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + status[0] = 0; + rusage[0] = new syscall.Rusage.ptr(new syscall.Timeval.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timeval.ptr(new $Int64(0, 0), new $Int64(0, 0))); + pid1 = 0; + e = $ifaceNil; + while (true) { + _tuple$1 = syscall.Wait4(p.Pid, (status.$ptr || (status.$ptr = new ptrType$11(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, status))), 0, rusage[0]); + pid1 = _tuple$1[0]; + e = _tuple$1[1]; + if (!($interfaceIsEqual(e, new syscall.Errno(4)))) { + break; + } + } + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp$4 = ptrType$10.nil; + _tmp$5 = NewSyscallError("wait", e); + ps = _tmp$4; + err = _tmp$5; + $s = -1; return [ps, err]; + } + if (!((pid1 === 0))) { + p.setDone(); + } + ps = new ProcessState.ptr(pid1, status[0], rusage[0]); + _tmp$6 = ps; + _tmp$7 = $ifaceNil; + ps = _tmp$6; + err = _tmp$7; + $s = -1; return [ps, err]; + /* */ } return; } var $f = {$blk: wait, $c: true, $r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, e, err, p, pid1, ps, ready, rusage, status, $s};return $f; + }; + $ptrType(Process).prototype.signal = function signal(sig) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _tuple, e, ok, p, s, sig, $s, $deferred, $r, $c} = $restore(this, {sig}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + if (p.Pid === -1) { + $s = -1; return errors.New("os: process already released"); + } + if (p.Pid === 0) { + $s = -1; return errors.New("os: process not initialized"); + } + $r = p.sigMu.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(p.sigMu, "RUnlock"), []]); + /* */ if (p.done()) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (p.done()) { */ case 2: + $24r = $pkg.ErrProcessDone; + $s = 4; case 4: return $24r; + /* } */ case 3: + _tuple = $assertType(sig, syscall.Signal, true); + s = _tuple[0]; + ok = _tuple[1]; + /* */ if (!ok) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!ok) { */ case 5: + $24r$1 = errors.New("os: unsupported signal type"); + $s = 7; case 7: return $24r$1; + /* } */ case 6: + e = syscall.Kill(p.Pid, s); + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 8: + /* */ if ($interfaceIsEqual(e, new syscall.Errno(3))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ($interfaceIsEqual(e, new syscall.Errno(3))) { */ case 10: + $24r$2 = $pkg.ErrProcessDone; + $s = 12; case 12: return $24r$2; + /* } */ case 11: + $24r$3 = e; + $s = 13; case 13: return $24r$3; + /* } */ case 9: + $24r$4 = $ifaceNil; + $s = 14; case 14: return $24r$4; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: signal, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _tuple, e, ok, p, s, sig, $s, $deferred};return $f; } } + }; + $ptrType(Process).prototype.release = function release() { + var p; + p = this; + p.Pid = -1; + runtime.SetFinalizer(p, $ifaceNil); + return $ifaceNil; + }; + $ptrType(ProcessState).prototype.userTime = function userTime() { + var p, x; + p = this; + return $mul64(((x = p.rusage.Utime.Nano(), new time.Duration(x.$high, x.$low))), new time.Duration(0, 1)); + }; + $ptrType(ProcessState).prototype.systemTime = function systemTime() { + var p, x; + p = this; + return $mul64(((x = p.rusage.Stime.Nano(), new time.Duration(x.$high, x.$low))), new time.Duration(0, 1)); + }; + startProcess = function startProcess$1(name, argv, attr) { + var {_i, _r$3, _r$4, _r$5, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, argv, attr, e, err, err$1, f, h, name, p, pe, pid, sysattr, $s, $r, $c} = $restore(this, {name, argv, attr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = ptrType$13.nil; + err = $ifaceNil; + /* */ if (!(attr === ptrType$14.nil) && attr.Sys === ptrType$15.nil && !(attr.Dir === "")) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(attr === ptrType$14.nil) && attr.Sys === ptrType$15.nil && !(attr.Dir === "")) { */ case 1: + _r$3 = Stat(attr.Dir); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + pe = $assertType(err$1, ptrType$5); + pe.Op = "chdir"; + _tmp = ptrType$13.nil; + _tmp$1 = pe; + p = _tmp; + err = _tmp$1; + $s = -1; return [p, err]; + } + /* } */ case 2: + sysattr = new syscall.ProcAttr.ptr(attr.Dir, attr.Env, sliceType$6.nil, attr.Sys); + /* */ if (sysattr.Env === sliceType.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (sysattr.Env === sliceType.nil) { */ case 4: + _r$4 = execenv.Default(sysattr.Sys); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + sysattr.Env = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$2 = ptrType$13.nil; + _tmp$3 = err; + p = _tmp$2; + err = _tmp$3; + $s = -1; return [p, err]; + } + /* } */ case 5: + sysattr.Files = $makeSlice(sliceType$6, 0, attr.Files.$length); + _ref = attr.Files; + _i = 0; + /* while (true) { */ case 7: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 8; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$5 = f.Fd(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + sysattr.Files = $append(sysattr.Files, _r$5); + _i++; + $s = 7; continue; + case 8: + _tuple$2 = syscall.StartProcess(name, argv, sysattr); + pid = _tuple$2[0]; + h = _tuple$2[1]; + e = _tuple$2[2]; + runtime.KeepAlive(attr); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp$4 = ptrType$13.nil; + _tmp$5 = new fs.PathError.ptr("fork/exec", name, e); + p = _tmp$4; + err = _tmp$5; + $s = -1; return [p, err]; + } + _tmp$6 = newProcess(pid, h); + _tmp$7 = $ifaceNil; + p = _tmp$6; + err = _tmp$7; + $s = -1; return [p, err]; + /* */ } return; } var $f = {$blk: startProcess$1, $c: true, $r, _i, _r$3, _r$4, _r$5, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, argv, attr, e, err, err$1, f, h, name, p, pe, pid, sysattr, $s};return $f; + }; + $ptrType(Process).prototype.kill = function kill() { + var {$24r, _r$3, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r$3 = p.Signal($pkg.Kill); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: kill, $c: true, $r, $24r, _r$3, p, $s};return $f; + }; + $ptrType(ProcessState).prototype.Pid = function Pid() { + var p; + p = this; + return p.pid; + }; + $ptrType(ProcessState).prototype.exited = function exited() { + var p; + p = this; + return new syscall.WaitStatus(p.status).Exited(); + }; + $ptrType(ProcessState).prototype.success = function success() { + var p; + p = this; + return new syscall.WaitStatus(p.status).ExitStatus() === 0; + }; + $ptrType(ProcessState).prototype.sys = function sys() { + var p; + p = this; + return new syscall.WaitStatus(p.status); + }; + $ptrType(ProcessState).prototype.sysUsage = function sysUsage() { + var p; + p = this; + return p.rusage; + }; + $ptrType(ProcessState).prototype.String = function String() { + var code, p, res, status; + p = this; + if (p === ptrType$10.nil) { + return ""; + } + status = $assertType(p.Sys(), syscall.WaitStatus); + res = ""; + if (new syscall.WaitStatus(status).Exited()) { + code = new syscall.WaitStatus(status).ExitStatus(); + if (false && ((code >>> 0)) >= 65536) { + res = "exit status " + uitox(((code >>> 0))); + } else { + res = "exit status " + itoa.Itoa(code); + } + } else if (new syscall.WaitStatus(status).Signaled()) { + res = "signal: " + new syscall.Signal(new syscall.WaitStatus(status).Signal()).String(); + } else if (new syscall.WaitStatus(status).Stopped()) { + res = "stop signal: " + new syscall.Signal(new syscall.WaitStatus(status).StopSignal()).String(); + if ((new syscall.WaitStatus(status).StopSignal() === 4) && !((new syscall.WaitStatus(status).TrapCause() === 0))) { + res = res + (" (trap " + itoa.Itoa(new syscall.WaitStatus(status).TrapCause()) + ")"); + } + } else if (new syscall.WaitStatus(status).Continued()) { + res = "continued"; + } + if (new syscall.WaitStatus(status).CoreDump()) { + res = res + (" (core dumped)"); + } + return res; + }; + $ptrType(ProcessState).prototype.ExitCode = function ExitCode() { + var p; + p = this; + if (p === ptrType$10.nil) { + return -1; + } + return new syscall.WaitStatus(p.status).ExitStatus(); + }; + newProcess = function newProcess$1(pid, handle) { + var handle, p, pid; + p = new Process.ptr(pid, handle, 0, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0)); + runtime.SetFinalizer(p, new funcType$1($methodExpr(ptrType$13, "Release"))); + return p; + }; + $ptrType(Process).prototype.setDone = function setDone() { + var p; + p = this; + atomic.StoreUint32((p.$ptr_isdone || (p.$ptr_isdone = new ptrType$16(function() { return this.$target.isdone; }, function($v) { this.$target.isdone = $v; }, p))), 1); + }; + $ptrType(Process).prototype.done = function done() { + var p; + p = this; + return atomic.LoadUint32((p.$ptr_isdone || (p.$ptr_isdone = new ptrType$16(function() { return this.$target.isdone; }, function($v) { this.$target.isdone = $v; }, p)))) > 0; + }; + StartProcess = function StartProcess$1(name, argv, attr) { + var {$24r, _r$3, argv, attr, name, $s, $r, $c} = $restore(this, {name, argv, attr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = testlog.Open(name); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = startProcess(name, argv, attr); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: StartProcess$1, $c: true, $r, $24r, _r$3, argv, attr, name, $s};return $f; + }; + $pkg.StartProcess = StartProcess; + $ptrType(Process).prototype.Release = function Release() { + var p; + p = this; + return p.release(); + }; + $ptrType(Process).prototype.Kill = function Kill() { + var {$24r, _r$3, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r$3 = p.kill(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Kill, $c: true, $r, $24r, _r$3, p, $s};return $f; + }; + $ptrType(Process).prototype.Wait = function Wait() { + var {$24r, _r$3, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r$3 = p.wait(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Wait, $c: true, $r, $24r, _r$3, p, $s};return $f; + }; + $ptrType(Process).prototype.Signal = function Signal$1(sig) { + var {$24r, _r$3, p, sig, $s, $r, $c} = $restore(this, {sig}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r$3 = p.signal(sig); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Signal$1, $c: true, $r, $24r, _r$3, p, sig, $s};return $f; + }; + $ptrType(ProcessState).prototype.UserTime = function UserTime() { + var p; + p = this; + return p.userTime(); + }; + $ptrType(ProcessState).prototype.SystemTime = function SystemTime() { + var p; + p = this; + return p.systemTime(); + }; + $ptrType(ProcessState).prototype.Exited = function Exited() { + var p; + p = this; + return p.exited(); + }; + $ptrType(ProcessState).prototype.Success = function Success() { + var p; + p = this; + return p.success(); + }; + $ptrType(ProcessState).prototype.Sys = function Sys$1() { + var p; + p = this; + return p.sys(); + }; + $ptrType(ProcessState).prototype.SysUsage = function SysUsage() { + var p; + p = this; + return p.sysUsage(); + }; + errNoDeadline = function errNoDeadline$1() { + return poll.ErrNoDeadline; + }; + errDeadlineExceeded = function errDeadlineExceeded$1() { + return poll.ErrDeadlineExceeded; + }; + $ptrType(SyscallError).prototype.Error = function Error$1() { + var {$24r, _r$3, e, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + e = this; + _r$3 = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = e.Syscall + ": " + _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Error$1, $c: true, $r, $24r, _r$3, e, $s};return $f; + }; + $ptrType(SyscallError).prototype.Unwrap = function Unwrap$1() { + var e; + e = this; + return e.Err; + }; + $ptrType(SyscallError).prototype.Timeout = function Timeout() { + var {$24r, _r$3, _tuple, _v, e, ok, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + e = this; + _tuple = $assertType(e.Err, timeout, true); + t = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { _v = false; $s = 1; continue s; } + _r$3 = t.Timeout(); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 1: + $24r = _v; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Timeout, $c: true, $r, $24r, _r$3, _tuple, _v, e, ok, t, $s};return $f; + }; + NewSyscallError = function NewSyscallError$1(syscall$1, err) { + var err, syscall$1; + if ($interfaceIsEqual(err, $ifaceNil)) { + return $ifaceNil; + } + return new SyscallError.ptr(syscall$1, err); + }; + $pkg.NewSyscallError = NewSyscallError; + IsNotExist = function IsNotExist$1(err) { + var err; + return underlyingErrorIs(err, $pkg.ErrNotExist); + }; + $pkg.IsNotExist = IsNotExist; + underlyingErrorIs = function underlyingErrorIs$1(err, target) { + var _tuple, e, err, ok, target; + err = underlyingError(err); + if ($interfaceIsEqual(err, target)) { + return true; + } + _tuple = $assertType(err, syscall.Errno, true); + e = _tuple[0]; + ok = _tuple[1]; + return ok && new syscall.Errno(e).Is(target); + }; + underlyingError = function underlyingError$1(err) { + var _ref, err, err$1, err$2, err$3; + _ref = err; + if ($assertType(_ref, ptrType$5, true)[1]) { + err$1 = _ref.$val; + return err$1.Err; + } else if ($assertType(_ref, ptrType$17, true)[1]) { + err$2 = _ref.$val; + return err$2.Err; + } else if ($assertType(_ref, ptrType$18, true)[1]) { + err$3 = _ref.$val; + return err$3.Err; + } + return err; + }; + Getenv = function Getenv$1(key) { + var {_r$3, _tuple, key, v, $s, $r, $c} = $restore(this, {key}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = testlog.Getenv(key); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = syscall.Getenv(key); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + v = _tuple[0]; + $s = -1; return v; + /* */ } return; } var $f = {$blk: Getenv$1, $c: true, $r, _r$3, _tuple, key, v, $s};return $f; + }; + $pkg.Getenv = Getenv; + LookupEnv = function LookupEnv$1(key) { + var {$24r, _r$3, key, $s, $r, $c} = $restore(this, {key}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = testlog.Getenv(key); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = syscall.Getenv(key); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: LookupEnv$1, $c: true, $r, $24r, _r$3, key, $s};return $f; + }; + $pkg.LookupEnv = LookupEnv; + Environ = function Environ$1() { + var {$24r, _r$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = syscall.Environ(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Environ$1, $c: true, $r, $24r, _r$3, $s};return $f; + }; + $pkg.Environ = Environ; + direntIno = function direntIno$1(buf) { + var buf; + return [new $Uint64(0, 1), true]; + }; + direntReclen = function direntReclen$1(buf) { + var buf; + return readInt(buf, 0, 2); + }; + direntNamlen = function direntNamlen$1(buf) { + var _tuple, buf, ok, reclen; + _tuple = direntReclen(buf); + reclen = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + return [new $Uint64(0, 0), false]; + } + return [new $Uint64(reclen.$high - 0, reclen.$low - 2), true]; + }; + direntType = function direntType$1(buf) { + var buf; + return 4294967295; + }; + $ptrType(dirInfo).prototype.close = function close$1() { + var d; + d = this; + if (!(d.buf === ptrType.nil)) { + dirBufPool.Put(d.buf); + d.buf = ptrType.nil; + } + }; + $ptrType(File).prototype.readdir = function readdir(n, mode) { + var {_i, _r$3, _r$4, _r$5, _r$6, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, buf, c, d, de, dirents, err, err$1, err$2, errno, f, i, info, infos, ino, mode, n, name, names, namlen, ok, rec, reclen, x, x$1, x$2, $s, $r, $c} = $restore(this, {n, mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + names = sliceType.nil; + dirents = sliceType$7.nil; + infos = sliceType$8.nil; + err = $ifaceNil; + f = this; + /* */ if (f.file.dirinfo === ptrType$8.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (f.file.dirinfo === ptrType$8.nil) { */ case 1: + f.file.dirinfo = new dirInfo.ptr(ptrType.nil, 0, 0); + _r$3 = dirBufPool.Get(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + f.file.dirinfo.buf = $assertType(_r$3, ptrType); + /* } */ case 2: + d = f.file.dirinfo; + if (n === 0) { + n = -1; + } + /* while (true) { */ case 4: + /* if (!(!((n === 0)))) { break; } */ if(!(!((n === 0)))) { $s = 5; continue; } + /* */ if (d.bufp >= d.nbuf) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (d.bufp >= d.nbuf) { */ case 6: + d.bufp = 0; + errno = $ifaceNil; + _r$4 = f.file.pfd.ReadDirent(d.buf.$get()); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + d.nbuf = _tuple[0]; + errno = _tuple[1]; + runtime.KeepAlive(f); + if (!($interfaceIsEqual(errno, $ifaceNil))) { + _tmp = names; + _tmp$1 = dirents; + _tmp$2 = infos; + _tmp$3 = new fs.PathError.ptr("readdirent", f.file.name, errno); + names = _tmp; + dirents = _tmp$1; + infos = _tmp$2; + err = _tmp$3; + $s = -1; return [names, dirents, infos, err]; + } + if (d.nbuf <= 0) { + /* break; */ $s = 5; continue; + } + /* } */ case 7: + buf = $subslice((d.buf.$get()), d.bufp, d.nbuf); + _tuple$1 = direntReclen(buf); + reclen = _tuple$1[0]; + ok = _tuple$1[1]; + if (!ok || (x = (new $Uint64(0, buf.$length)), (reclen.$high > x.$high || (reclen.$high === x.$high && reclen.$low > x.$low)))) { + /* break; */ $s = 5; continue; + } + rec = $subslice(buf, 0, $flatten64(reclen)); + d.bufp = d.bufp + (((reclen.$low >> 0))) >> 0; + _tuple$2 = direntIno(rec); + ino = _tuple$2[0]; + ok = _tuple$2[1]; + if (!ok) { + /* break; */ $s = 5; continue; + } + if ((ino.$high === 0 && ino.$low === 0)) { + /* continue; */ $s = 4; continue; + } + _tuple$3 = direntNamlen(rec); + namlen = _tuple$3[0]; + ok = _tuple$3[1]; + if (!ok || (x$1 = new $Uint64(0 + namlen.$high, 2 + namlen.$low), x$2 = (new $Uint64(0, rec.$length)), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { + /* break; */ $s = 5; continue; + } + name = $subslice(rec, 2, $flatten64(new $Uint64(0 + namlen.$high, 2 + namlen.$low))); + _ref = name; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (c === 0) { + name = $subslice(name, 0, i); + break; + } + _i++; + } + if (($bytesToString(name)) === "." || ($bytesToString(name)) === "..") { + /* continue; */ $s = 4; continue; + } + if (n > 0) { + n = n - (1) >> 0; + } + /* */ if (mode === 0) { $s = 9; continue; } + /* */ if (mode === 1) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (mode === 0) { */ case 9: + names = $append(names, ($bytesToString(name))); + $s = 12; continue; + /* } else if (mode === 1) { */ case 10: + _r$5 = newUnixDirent(f.file.name, ($bytesToString(name)), direntType(rec)); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$4 = _r$5; + de = _tuple$4[0]; + err$1 = _tuple$4[1]; + if (IsNotExist(err$1)) { + /* continue; */ $s = 4; continue; + } + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp$4 = sliceType.nil; + _tmp$5 = dirents; + _tmp$6 = sliceType$8.nil; + _tmp$7 = err$1; + names = _tmp$4; + dirents = _tmp$5; + infos = _tmp$6; + err = _tmp$7; + $s = -1; return [names, dirents, infos, err]; + } + dirents = $append(dirents, de); + $s = 12; continue; + /* } else { */ case 11: + _r$6 = lstat(f.file.name + "/" + ($bytesToString(name))); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$5 = _r$6; + info = _tuple$5[0]; + err$2 = _tuple$5[1]; + if (IsNotExist(err$2)) { + /* continue; */ $s = 4; continue; + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$8 = sliceType.nil; + _tmp$9 = sliceType$7.nil; + _tmp$10 = infos; + _tmp$11 = err$2; + names = _tmp$8; + dirents = _tmp$9; + infos = _tmp$10; + err = _tmp$11; + $s = -1; return [names, dirents, infos, err]; + } + infos = $append(infos, info); + /* } */ case 12: + $s = 4; continue; + case 5: + if (n > 0 && (((names.$length + dirents.$length >> 0) + infos.$length >> 0) === 0)) { + _tmp$12 = sliceType.nil; + _tmp$13 = sliceType$7.nil; + _tmp$14 = sliceType$8.nil; + _tmp$15 = io.EOF; + names = _tmp$12; + dirents = _tmp$13; + infos = _tmp$14; + err = _tmp$15; + $s = -1; return [names, dirents, infos, err]; + } + _tmp$16 = names; + _tmp$17 = dirents; + _tmp$18 = infos; + _tmp$19 = $ifaceNil; + names = _tmp$16; + dirents = _tmp$17; + infos = _tmp$18; + err = _tmp$19; + $s = -1; return [names, dirents, infos, err]; + /* */ } return; } var $f = {$blk: readdir, $c: true, $r, _i, _r$3, _r$4, _r$5, _r$6, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, buf, c, d, de, dirents, err, err$1, err$2, errno, f, i, info, infos, ino, mode, n, name, names, namlen, ok, rec, reclen, x, x$1, x$2, $s};return $f; + }; + readInt = function readInt$1(b, off, size) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, off, ok, size, u; + u = new $Uint64(0, 0); + ok = false; + if (b.$length < (((off + size >>> 0) >> 0))) { + _tmp = new $Uint64(0, 0); + _tmp$1 = false; + u = _tmp; + ok = _tmp$1; + return [u, ok]; + } + if (false) { + _tmp$2 = readIntBE($subslice(b, off), size); + _tmp$3 = true; + u = _tmp$2; + ok = _tmp$3; + return [u, ok]; + } + _tmp$4 = readIntLE($subslice(b, off), size); + _tmp$5 = true; + u = _tmp$4; + ok = _tmp$5; + return [u, ok]; + }; + readIntBE = function readIntBE$1(b, size) { + var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + _1 = size; + if (_1 === (1)) { + return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))); + } else if (_1 === (2)) { + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + return (x = (new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), x$1 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + } else if (_1 === (4)) { + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), x$5 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0)); + } else if (_1 === (8)) { + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$15 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0)); + } else { + $panic(new $String("syscall: readInt with unsupported size")); + } + }; + readIntLE = function readIntLE$1(b, size) { + var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + _1 = size; + if (_1 === (1)) { + return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))); + } else if (_1 === (2)) { + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + return (x = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$1 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + } else if (_1 === (4)) { + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$5 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0)); + } else if (_1 === (8)) { + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$15 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0)); + } else { + $panic(new $String("syscall: readInt with unsupported size")); + } + }; + $ptrType(File).prototype.Readdir = function Readdir(n) { + var {_r$3, _tuple, err, f, infos, n, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + if (f === ptrType$2.nil) { + $s = -1; return [sliceType$8.nil, $pkg.ErrInvalid]; + } + _r$3 = f.readdir(n, 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + infos = _tuple[2]; + err = _tuple[3]; + if (infos === sliceType$8.nil) { + infos = new sliceType$8([]); + } + $s = -1; return [infos, err]; + /* */ } return; } var $f = {$blk: Readdir, $c: true, $r, _r$3, _tuple, err, f, infos, n, $s};return $f; + }; + $ptrType(File).prototype.Readdirnames = function Readdirnames(n) { + var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, f, n, names, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + names = sliceType.nil; + err = $ifaceNil; + f = this; + if (f === ptrType$2.nil) { + _tmp = sliceType.nil; + _tmp$1 = $pkg.ErrInvalid; + names = _tmp; + err = _tmp$1; + $s = -1; return [names, err]; + } + _r$3 = f.readdir(n, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + names = _tuple[0]; + err = _tuple[3]; + if (names === sliceType.nil) { + names = new sliceType([]); + } + _tmp$2 = names; + _tmp$3 = err; + names = _tmp$2; + err = _tmp$3; + $s = -1; return [names, err]; + /* */ } return; } var $f = {$blk: Readdirnames, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, f, n, names, $s};return $f; + }; + $ptrType(File).prototype.ReadDir = function ReadDir$1(n) { + var {_r$3, _tuple, dirents, err, f, n, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + if (f === ptrType$2.nil) { + $s = -1; return [sliceType$7.nil, $pkg.ErrInvalid]; + } + _r$3 = f.readdir(n, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + dirents = _tuple[1]; + err = _tuple[3]; + if (dirents === sliceType$7.nil) { + dirents = new sliceType$7([]); + } + $s = -1; return [dirents, err]; + /* */ } return; } var $f = {$blk: ReadDir$1, $c: true, $r, _r$3, _tuple, dirents, err, f, n, $s};return $f; + }; + ReadDir = function ReadDir$2(name) { + var {$24r, _r$3, _r$4, _tuple, _tuple$1, dirs, err, f, name, $s, $deferred, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + dirs = [dirs]; + _r$3 = Open(name); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType$7.nil, err]; + } + $deferred.push([$methodVal(f, "Close"), []]); + _r$4 = f.ReadDir(-1); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + dirs[0] = _tuple$1[0]; + err = _tuple$1[1]; + $r = sort.Slice(dirs[0], (function(dirs) { return function ReadDir·func1(i, j) { + var {$24r, _r$5, _r$6, i, j, $s, $r, $c} = $restore(this, {i, j}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$5 = ((i < 0 || i >= dirs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : dirs[0].$array[dirs[0].$offset + i]).Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = ((j < 0 || j >= dirs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : dirs[0].$array[dirs[0].$offset + j]).Name(); /* */ $s = 2; case 2: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r = _r$5 < _r$6; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: ReadDir·func1, $c: true, $r, $24r, _r$5, _r$6, i, j, $s};return $f; + }; })(dirs)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r = [dirs[0], err]; + $s = 4; case 4: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$7.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadDir$2, $c: true, $r, $24r, _r$3, _r$4, _tuple, _tuple$1, dirs, err, f, name, $s, $deferred};return $f; } } + }; + $pkg.ReadDir = ReadDir; + ptrType$1.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$2.methods = [{prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "readFrom", name: "readFrom", pkg: "os", typ: $funcType([io.Reader], [$Int64, $Bool, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "Fd", name: "Fd", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "seek", name: "seek", pkg: "os", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "read", name: "read", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pread", name: "pread", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pwrite", name: "pwrite", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "chmod", name: "chmod", pkg: "os", typ: $funcType([fs.FileMode], [$error], false)}, {prop: "Chown", name: "Chown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Sync", name: "Sync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "setDeadline", name: "setDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setReadDeadline", name: "setReadDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setWriteDeadline", name: "setWriteDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "checkValid", name: "checkValid", pkg: "os", typ: $funcType([$String], [$error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteAt", name: "WriteAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "wrapErr", name: "wrapErr", pkg: "os", typ: $funcType([$String, $error], [$error], false)}, {prop: "Chmod", name: "Chmod", pkg: "", typ: $funcType([fs.FileMode], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "readdir", name: "readdir", pkg: "os", typ: $funcType([$Int, readdirMode], [sliceType, sliceType$7, sliceType$8, $error], false)}, {prop: "Readdir", name: "Readdir", pkg: "", typ: $funcType([$Int], [sliceType$8, $error], false)}, {prop: "Readdirnames", name: "Readdirnames", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "ReadDir", name: "ReadDir", pkg: "", typ: $funcType([$Int], [sliceType$7, $error], false)}]; + ptrType$19.methods = [{prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType$2], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$3], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$3], [$error], false)}]; + ptrType$9.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [$error], false)}]; + ptrType$20.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}]; + ptrType$17.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$10.methods = [{prop: "userTime", name: "userTime", pkg: "os", typ: $funcType([], [time.Duration], false)}, {prop: "systemTime", name: "systemTime", pkg: "os", typ: $funcType([], [time.Duration], false)}, {prop: "Pid", name: "Pid", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "exited", name: "exited", pkg: "os", typ: $funcType([], [$Bool], false)}, {prop: "success", name: "success", pkg: "os", typ: $funcType([], [$Bool], false)}, {prop: "sys", name: "sys", pkg: "os", typ: $funcType([], [$emptyInterface], false)}, {prop: "sysUsage", name: "sysUsage", pkg: "os", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExitCode", name: "ExitCode", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "UserTime", name: "UserTime", pkg: "", typ: $funcType([], [time.Duration], false)}, {prop: "SystemTime", name: "SystemTime", pkg: "", typ: $funcType([], [time.Duration], false)}, {prop: "Exited", name: "Exited", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Success", name: "Success", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "SysUsage", name: "SysUsage", pkg: "", typ: $funcType([], [$emptyInterface], false)}]; + ptrType$13.methods = [{prop: "blockUntilWaitable", name: "blockUntilWaitable", pkg: "os", typ: $funcType([], [$Bool, $error], false)}, {prop: "wait", name: "wait", pkg: "os", typ: $funcType([], [ptrType$10, $error], false)}, {prop: "signal", name: "signal", pkg: "os", typ: $funcType([Signal], [$error], false)}, {prop: "release", name: "release", pkg: "os", typ: $funcType([], [$error], false)}, {prop: "kill", name: "kill", pkg: "os", typ: $funcType([], [$error], false)}, {prop: "setDone", name: "setDone", pkg: "os", typ: $funcType([], [], false)}, {prop: "done", name: "done", pkg: "os", typ: $funcType([], [$Bool], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Kill", name: "Kill", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Wait", name: "Wait", pkg: "", typ: $funcType([], [ptrType$10, $error], false)}, {prop: "Signal", name: "Signal", pkg: "", typ: $funcType([Signal], [$error], false)}]; + ptrType$18.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$8.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [], false)}]; + fileStat.init("os", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: fs.FileMode, tag: ""}, {prop: "modTime", name: "modTime", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "sys", name: "sys", embedded: false, exported: false, typ: syscall.Stat_t, tag: ""}]); + File.init("os", [{prop: "file", name: "file", embedded: true, exported: false, typ: ptrType$9, tag: ""}]); + rawConn.init("os", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + file.init("os", [{prop: "pfd", name: "pfd", embedded: false, exported: false, typ: poll.FD, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "dirinfo", name: "dirinfo", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "nonblock", name: "nonblock", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stdoutOrErr", name: "stdoutOrErr", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "appendMode", name: "appendMode", embedded: false, exported: false, typ: $Bool, tag: ""}]); + unixDirent.init("os", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: fs.FileMode, tag: ""}, {prop: "info", name: "info", embedded: false, exported: false, typ: fs.FileInfo, tag: ""}]); + LinkError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Old", name: "Old", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + onlyWriter.init("", [{prop: "Writer", name: "Writer", embedded: true, exported: true, typ: io.Writer, tag: ""}]); + ProcessState.init("os", [{prop: "pid", name: "pid", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "status", name: "status", embedded: false, exported: false, typ: syscall.WaitStatus, tag: ""}, {prop: "rusage", name: "rusage", embedded: false, exported: false, typ: ptrType$12, tag: ""}]); + Process.init("os", [{prop: "Pid", name: "Pid", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "handle", name: "handle", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "isdone", name: "isdone", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "sigMu", name: "sigMu", embedded: false, exported: false, typ: sync.RWMutex, tag: ""}]); + ProcAttr.init("", [{prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Env", name: "Env", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Files", name: "Files", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "Sys", name: "Sys", embedded: false, exported: true, typ: ptrType$15, tag: ""}]); + Signal.init([{prop: "Signal", name: "Signal", pkg: "", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); + timeout.init([{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]); + SyscallError.init("", [{prop: "Syscall", name: "Syscall", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + dirInfo.init("os", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "nbuf", name: "nbuf", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bufp", name: "bufp", embedded: false, exported: false, typ: $Int, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = itoa.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = oserror.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = poll.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = safefilepath.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = execenv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unix.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = testlog.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fs.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.Args = sliceType.nil; + getwdCache = new structType.ptr(new sync.Mutex.ptr(0, 0), ""); + testingForceReadDirLstat = false; + errPatternHasSeparator = errors.New("pattern contains path separator"); + errWriteAtInAppendMode = errors.New("os: invalid use of WriteAt on file opened with O_APPEND"); + lstat = Lstat; + $pkg.Kill = new syscall.Signal(3); + $pkg.ErrProcessDone = errors.New("os: process already finished"); + $pkg.ErrInvalid = fs.ErrInvalid; + $pkg.ErrNotExist = fs.ErrNotExist; + $pkg.ErrClosed = fs.ErrClosed; + $pkg.ErrNoDeadline = errNoDeadline(); + $pkg.ErrDeadlineExceeded = errDeadlineExceeded(); + dirBufPool = new sync.Pool.ptr(sliceType$1.nil, (function func1() { + var buf, buf$24ptr; + buf = $makeSlice(sliceType$2, 8192); + return (buf$24ptr || (buf$24ptr = new ptrType(function() { return buf; }, function($v) { buf = $v; }))); + })); + _r = NewFile(0, "/dev/stdin"); /* */ $s = 18; case 18: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $pkg.Stdin = _r; + _r$1 = NewFile(1, "/dev/stdout"); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $pkg.Stdout = _r$1; + _r$2 = NewFile(2, "/dev/stderr"); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $pkg.Stderr = _r$2; + init(); + init$1(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["fmt"] = (function() { + var $pkg = {}, $init, errors, fmtsort, io, math, os, reflect, strconv, sync, utf8, ScanState, scanError, ss, ssave, State, Formatter, Stringer, GoStringer, buffer, pp, fmtFlags, fmt, wrapError, space, ssFree, complexError, boolError, ppFree, isSpace, notSpace, indexRune, newPrinter, Fprintf, Printf, Sprintf, Fprint, Print, Sprint, Fprintln, Println, Sprintln, getField, tooLarge, parsenum, intFromArg, parseArgNumber, Errorf; + errors = $packages["errors"]; + fmtsort = $packages["internal/fmtsort"]; + io = $packages["io"]; + math = $packages["math"]; + os = $packages["os"]; + reflect = $packages["reflect"]; + strconv = $packages["strconv"]; + sync = $packages["sync"]; + utf8 = $packages["unicode/utf8"]; + ScanState = $newType(8, $kindInterface, "fmt.ScanState", true, "fmt", true, null); + scanError = $newType(0, $kindStruct, "fmt.scanError", true, "fmt", false, function(err_) { + this.$val = this; + if (arguments.length === 0) { + this.err = $ifaceNil; + return; + } + this.err = err_; + }); + ss = $newType(0, $kindStruct, "fmt.ss", true, "fmt", false, function(rs_, buf_, count_, atEOF_, ssave_) { + this.$val = this; + if (arguments.length === 0) { + this.rs = $ifaceNil; + this.buf = buffer.nil; + this.count = 0; + this.atEOF = false; + this.ssave = new ssave.ptr(false, false, false, 0, 0, 0); + return; + } + this.rs = rs_; + this.buf = buf_; + this.count = count_; + this.atEOF = atEOF_; + this.ssave = ssave_; + }); + ssave = $newType(0, $kindStruct, "fmt.ssave", true, "fmt", false, function(validSave_, nlIsEnd_, nlIsSpace_, argLimit_, limit_, maxWid_) { + this.$val = this; + if (arguments.length === 0) { + this.validSave = false; + this.nlIsEnd = false; + this.nlIsSpace = false; + this.argLimit = 0; + this.limit = 0; + this.maxWid = 0; + return; + } + this.validSave = validSave_; + this.nlIsEnd = nlIsEnd_; + this.nlIsSpace = nlIsSpace_; + this.argLimit = argLimit_; + this.limit = limit_; + this.maxWid = maxWid_; + }); + State = $newType(8, $kindInterface, "fmt.State", true, "fmt", true, null); + Formatter = $newType(8, $kindInterface, "fmt.Formatter", true, "fmt", true, null); + Stringer = $newType(8, $kindInterface, "fmt.Stringer", true, "fmt", true, null); + GoStringer = $newType(8, $kindInterface, "fmt.GoStringer", true, "fmt", true, null); + buffer = $newType(12, $kindSlice, "fmt.buffer", true, "fmt", false, null); + pp = $newType(0, $kindStruct, "fmt.pp", true, "fmt", false, function(buf_, arg_, value_, fmt_, reordered_, goodArgNum_, panicking_, erroring_, wrapErrs_, wrappedErr_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = buffer.nil; + this.arg = $ifaceNil; + this.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + this.fmt = new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType$1.zero()); + this.reordered = false; + this.goodArgNum = false; + this.panicking = false; + this.erroring = false; + this.wrapErrs = false; + this.wrappedErr = $ifaceNil; + return; + } + this.buf = buf_; + this.arg = arg_; + this.value = value_; + this.fmt = fmt_; + this.reordered = reordered_; + this.goodArgNum = goodArgNum_; + this.panicking = panicking_; + this.erroring = erroring_; + this.wrapErrs = wrapErrs_; + this.wrappedErr = wrappedErr_; + }); + fmtFlags = $newType(0, $kindStruct, "fmt.fmtFlags", true, "fmt", false, function(widPresent_, precPresent_, minus_, plus_, sharp_, space_, zero_, plusV_, sharpV_) { + this.$val = this; + if (arguments.length === 0) { + this.widPresent = false; + this.precPresent = false; + this.minus = false; + this.plus = false; + this.sharp = false; + this.space = false; + this.zero = false; + this.plusV = false; + this.sharpV = false; + return; + } + this.widPresent = widPresent_; + this.precPresent = precPresent_; + this.minus = minus_; + this.plus = plus_; + this.sharp = sharp_; + this.space = space_; + this.zero = zero_; + this.plusV = plusV_; + this.sharpV = sharpV_; + }); + fmt = $newType(0, $kindStruct, "fmt.fmt", true, "fmt", false, function(buf_, fmtFlags_, wid_, prec_, intbuf_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = ptrType$1.nil; + this.fmtFlags = new fmtFlags.ptr(false, false, false, false, false, false, false, false, false); + this.wid = 0; + this.prec = 0; + this.intbuf = arrayType$1.zero(); + return; + } + this.buf = buf_; + this.fmtFlags = fmtFlags_; + this.wid = wid_; + this.prec = prec_; + this.intbuf = intbuf_; + }); + wrapError = $newType(0, $kindStruct, "fmt.wrapError", true, "fmt", false, function(msg_, err_) { + this.$val = this; + if (arguments.length === 0) { + this.msg = ""; + this.err = $ifaceNil; + return; + } + this.msg = msg_; + this.err = err_; + }); + $pkg.ScanState = ScanState; + $pkg.scanError = scanError; + $pkg.ss = ss; + $pkg.ssave = ssave; + $pkg.State = State; + $pkg.Formatter = Formatter; + $pkg.Stringer = Stringer; + $pkg.GoStringer = GoStringer; + $pkg.buffer = buffer; + $pkg.pp = pp; + $pkg.fmtFlags = fmtFlags; + $pkg.fmt = fmt; + $pkg.wrapError = wrapError; + $pkg.$finishSetup = function() { + $ptrType(ss).prototype.Read = function Read$1(buf) { + var _tmp, _tmp$1, buf, err, n, s; + n = 0; + err = $ifaceNil; + s = this; + _tmp = 0; + _tmp$1 = errors.New("ScanState's Read should not be called. Use ReadRune"); + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + $ptrType(ss).prototype.ReadRune = function ReadRune() { + var {_r, _tuple, err, r, s, size, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = 0; + size = 0; + err = $ifaceNil; + s = this; + if (s.atEOF || s.count >= s.ssave.argLimit) { + err = io.EOF; + $s = -1; return [r, size, err]; + } + _r = s.rs.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + size = _tuple[1]; + err = _tuple[2]; + if ($interfaceIsEqual(err, $ifaceNil)) { + s.count = s.count + (1) >> 0; + if (s.ssave.nlIsEnd && (r === 10)) { + s.atEOF = true; + } + } else if ($interfaceIsEqual(err, io.EOF)) { + s.atEOF = true; + } + $s = -1; return [r, size, err]; + /* */ } return; } var $f = {$blk: ReadRune, $c: true, $r, _r, _tuple, err, r, s, size, $s};return $f; + }; + $ptrType(ss).prototype.Width = function Width() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, ok, s, wid; + wid = 0; + ok = false; + s = this; + if (s.ssave.maxWid === 1073741824) { + _tmp = 0; + _tmp$1 = false; + wid = _tmp; + ok = _tmp$1; + return [wid, ok]; + } + _tmp$2 = s.ssave.maxWid; + _tmp$3 = true; + wid = _tmp$2; + ok = _tmp$3; + return [wid, ok]; + }; + $ptrType(ss).prototype.getRune = function getRune() { + var {_r, _tuple, err, r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = 0; + s = this; + _r = s.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, io.EOF)) { + r = -1; + $s = -1; return r; + } + s.error(err); + } + $s = -1; return r; + /* */ } return; } var $f = {$blk: getRune, $c: true, $r, _r, _tuple, err, r, s, $s};return $f; + }; + $ptrType(ss).prototype.UnreadRune = function UnreadRune() { + var {_r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.rs.UnreadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + s.atEOF = false; + s.count = s.count - (1) >> 0; + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: UnreadRune, $c: true, $r, _r, s, $s};return $f; + }; + $ptrType(ss).prototype.error = function error(err) { + var err, s, x; + s = this; + $panic((x = new scanError.ptr(err), new x.constructor.elem(x))); + }; + $ptrType(ss).prototype.errorString = function errorString(err) { + var err, s, x; + s = this; + $panic((x = new scanError.ptr(errors.New(err)), new x.constructor.elem(x))); + }; + $ptrType(ss).prototype.Token = function Token(skipSpace, f) { + var {_r, err, f, s, skipSpace, tok, $s, $deferred, $r, $c} = $restore(this, {skipSpace, f}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + err = [err]; + tok = sliceType$2.nil; + err[0] = $ifaceNil; + s = this; + $deferred.push([(function(err) { return function ss·Token·func1() { + var _tuple, e, ok, se; + e = $recover(); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tuple = $assertType(e, scanError, true); + se = $clone(_tuple[0], scanError); + ok = _tuple[1]; + if (ok) { + err[0] = se.err; + } else { + $panic(e); + } + } + }; })(err), []]); + if (f === $throwNilPointerError) { + f = notSpace; + } + s.buf = $subslice(s.buf, 0, 0); + _r = s.token(skipSpace, f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tok = _r; + $s = -1; return [tok, err[0]]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [tok, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: Token, $c: true, $r, _r, err, f, s, skipSpace, tok, $s, $deferred};return $f; } } + }; + isSpace = function isSpace$1(r) { + var _i, _ref, r, rng, rx; + if (r >= 65536) { + return false; + } + rx = ((r << 16 >>> 16)); + _ref = space; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + rng = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), arrayType); + if (rx < rng[0]) { + return false; + } + if (rx <= rng[1]) { + return true; + } + _i++; + } + return false; + }; + notSpace = function notSpace$1(r) { + var r; + return !isSpace(r); + }; + $ptrType(ss).prototype.SkipSpace = function SkipSpace() { + var {_r, _r$1, _r$2, _v, r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* while (true) { */ case 1: + _r = s.getRune(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + if (r === -1) { + $s = -1; return; + } + if (!(r === 13)) { _v = false; $s = 6; continue s; } + _r$1 = s.peek("\n"); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + /* continue; */ $s = 1; continue; + /* } */ case 5: + if (r === 10) { + if (s.ssave.nlIsSpace) { + /* continue; */ $s = 1; continue; + } + s.errorString("unexpected newline"); + $s = -1; return; + } + /* */ if (!isSpace(r)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!isSpace(r)) { */ case 8: + _r$2 = s.UnreadRune(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* break; */ $s = 2; continue; + /* } */ case 9: + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: SkipSpace, $c: true, $r, _r, _r$1, _r$2, _v, r, s, $s};return $f; + }; + $ptrType(ss).prototype.token = function token(skipSpace, f) { + var {_r, _r$1, _r$2, f, r, s, skipSpace, $s, $r, $c} = $restore(this, {skipSpace, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (skipSpace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (skipSpace) { */ case 1: + $r = s.SkipSpace(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + /* while (true) { */ case 4: + _r = s.getRune(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + if (r === -1) { + /* break; */ $s = 5; continue; + } + _r$1 = f(r); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$1) { */ case 7: + _r$2 = s.UnreadRune(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* break; */ $s = 5; continue; + /* } */ case 8: + (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).writeRune(r); + $s = 4; continue; + case 5: + $s = -1; return $convertSliceType(s.buf, sliceType$2); + /* */ } return; } var $f = {$blk: token, $c: true, $r, _r, _r$1, _r$2, f, r, s, skipSpace, $s};return $f; + }; + indexRune = function indexRune$1(s, r) { + var _i, _ref, _rune, c, i, r, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (c === r) { + return i; + } + _i += _rune[1]; + } + return -1; + }; + $ptrType(ss).prototype.peek = function peek(ok) { + var {_r, _r$1, ok, r, s, $s, $r, $c} = $restore(this, {ok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.getRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + /* */ if (!((r === -1))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((r === -1))) { */ case 2: + _r$1 = s.UnreadRune(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 3: + $s = -1; return indexRune(ok, r) >= 0; + /* */ } return; } var $f = {$blk: peek, $c: true, $r, _r, _r$1, ok, r, s, $s};return $f; + }; + $ptrType(buffer).prototype.write = function write(p) { + var b, p; + b = this; + b.$set($appendSlice(b.$get(), p)); + }; + $ptrType(buffer).prototype.writeString = function writeString(s) { + var b, s; + b = this; + b.$set($appendSlice(b.$get(), s)); + }; + $ptrType(buffer).prototype.writeByte = function writeByte(c) { + var b, c; + b = this; + b.$set($append(b.$get(), c)); + }; + $ptrType(buffer).prototype.writeRune = function writeRune(r) { + var b, bp, n, r, w; + bp = this; + if (r < 128) { + bp.$set($append(bp.$get(), ((r << 24 >>> 24)))); + return; + } + b = bp.$get(); + n = b.$length; + while (true) { + if (!((n + 4 >> 0) > b.$capacity)) { break; } + b = $append(b, 0); + } + w = utf8.EncodeRune($convertSliceType($subslice(b, n, (n + 4 >> 0)), sliceType$2), r); + bp.$set($subslice(b, 0, (n + w >> 0))); + }; + newPrinter = function newPrinter$1() { + var {_r, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = ppFree.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = $assertType(_r, ptrType$24); + p.panicking = false; + p.erroring = false; + p.wrapErrs = false; + p.fmt.init((p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))); + $s = -1; return p; + /* */ } return; } var $f = {$blk: newPrinter$1, $c: true, $r, _r, p, $s};return $f; + }; + $ptrType(pp).prototype.free = function free$1() { + var p; + p = this; + if (p.buf.$capacity > 65536) { + return; + } + p.buf = $subslice(p.buf, 0, 0); + p.arg = $ifaceNil; + p.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + p.wrappedErr = $ifaceNil; + ppFree.Put(p); + }; + $ptrType(pp).prototype.Width = function Width$1() { + var _tmp, _tmp$1, ok, p, wid; + wid = 0; + ok = false; + p = this; + _tmp = p.fmt.wid; + _tmp$1 = p.fmt.fmtFlags.widPresent; + wid = _tmp; + ok = _tmp$1; + return [wid, ok]; + }; + $ptrType(pp).prototype.Precision = function Precision() { + var _tmp, _tmp$1, ok, p, prec; + prec = 0; + ok = false; + p = this; + _tmp = p.fmt.prec; + _tmp$1 = p.fmt.fmtFlags.precPresent; + prec = _tmp; + ok = _tmp$1; + return [prec, ok]; + }; + $ptrType(pp).prototype.Flag = function Flag(b) { + var _1, b, p; + p = this; + _1 = b; + if (_1 === (45)) { + return p.fmt.fmtFlags.minus; + } else if (_1 === (43)) { + return p.fmt.fmtFlags.plus || p.fmt.fmtFlags.plusV; + } else if (_1 === (35)) { + return p.fmt.fmtFlags.sharp || p.fmt.fmtFlags.sharpV; + } else if (_1 === (32)) { + return p.fmt.fmtFlags.space; + } else if (_1 === (48)) { + return p.fmt.fmtFlags.zero; + } + return false; + }; + $ptrType(pp).prototype.Write = function Write(b) { + var _tmp, _tmp$1, b, err, p, ret; + ret = 0; + err = $ifaceNil; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).write(b); + _tmp = b.$length; + _tmp$1 = $ifaceNil; + ret = _tmp; + err = _tmp$1; + return [ret, err]; + }; + $ptrType(pp).prototype.WriteString = function WriteString(s) { + var _tmp, _tmp$1, err, p, ret, s; + ret = 0; + err = $ifaceNil; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(s); + _tmp = s.length; + _tmp$1 = $ifaceNil; + ret = _tmp; + err = _tmp$1; + return [ret, err]; + }; + Fprintf = function Fprintf$1(w, format, a) { + var {_r, _r$1, _tuple, a, err, format, n, p, w, $s, $r, $c} = $restore(this, {w, format, a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrintf(format, a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = w.Write($convertSliceType(p.buf, sliceType$2)); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err = _tuple[1]; + p.free(); + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: Fprintf$1, $c: true, $r, _r, _r$1, _tuple, a, err, format, n, p, w, $s};return $f; + }; + $pkg.Fprintf = Fprintf; + Printf = function Printf$1(format, a) { + var {$24r, _r, _tuple, a, err, format, n, $s, $r, $c} = $restore(this, {format, a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = Fprintf(os.Stdout, format, a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $24r = [n, err]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Printf$1, $c: true, $r, $24r, _r, _tuple, a, err, format, n, $s};return $f; + }; + $pkg.Printf = Printf; + Sprintf = function Sprintf$1(format, a) { + var {_r, a, format, p, s, $s, $r, $c} = $restore(this, {format, a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrintf(format, a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = ($bytesToString(p.buf)); + p.free(); + $s = -1; return s; + /* */ } return; } var $f = {$blk: Sprintf$1, $c: true, $r, _r, a, format, p, s, $s};return $f; + }; + $pkg.Sprintf = Sprintf; + Fprint = function Fprint$1(w, a) { + var {_r, _r$1, _tuple, a, err, n, p, w, $s, $r, $c} = $restore(this, {w, a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrint(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = w.Write($convertSliceType(p.buf, sliceType$2)); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err = _tuple[1]; + p.free(); + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: Fprint$1, $c: true, $r, _r, _r$1, _tuple, a, err, n, p, w, $s};return $f; + }; + $pkg.Fprint = Fprint; + Print = function Print$1(a) { + var {$24r, _r, _tuple, a, err, n, $s, $r, $c} = $restore(this, {a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = Fprint(os.Stdout, a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $24r = [n, err]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Print$1, $c: true, $r, $24r, _r, _tuple, a, err, n, $s};return $f; + }; + $pkg.Print = Print; + Sprint = function Sprint$1(a) { + var {_r, a, p, s, $s, $r, $c} = $restore(this, {a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrint(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = ($bytesToString(p.buf)); + p.free(); + $s = -1; return s; + /* */ } return; } var $f = {$blk: Sprint$1, $c: true, $r, _r, a, p, s, $s};return $f; + }; + $pkg.Sprint = Sprint; + Fprintln = function Fprintln$1(w, a) { + var {_r, _r$1, _tuple, a, err, n, p, w, $s, $r, $c} = $restore(this, {w, a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrintln(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = w.Write($convertSliceType(p.buf, sliceType$2)); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err = _tuple[1]; + p.free(); + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: Fprintln$1, $c: true, $r, _r, _r$1, _tuple, a, err, n, p, w, $s};return $f; + }; + $pkg.Fprintln = Fprintln; + Println = function Println$1(a) { + var {$24r, _r, _tuple, a, err, n, $s, $r, $c} = $restore(this, {a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = Fprintln(os.Stdout, a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $24r = [n, err]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Println$1, $c: true, $r, $24r, _r, _tuple, a, err, n, $s};return $f; + }; + $pkg.Println = Println; + Sprintln = function Sprintln$1(a) { + var {_r, a, p, s, $s, $r, $c} = $restore(this, {a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrintln(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = ($bytesToString(p.buf)); + p.free(); + $s = -1; return s; + /* */ } return; } var $f = {$blk: Sprintln$1, $c: true, $r, _r, a, p, s, $s};return $f; + }; + $pkg.Sprintln = Sprintln; + getField = function getField$1(v, i) { + var {_r, _r$1, i, v, val, $s, $r, $c} = $restore(this, {v, i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = $clone(v, reflect.Value).Field(i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + val = _r; + /* */ if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { */ case 2: + _r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + val = _r$1; + /* } */ case 3: + $s = -1; return val; + /* */ } return; } var $f = {$blk: getField$1, $c: true, $r, _r, _r$1, i, v, val, $s};return $f; + }; + tooLarge = function tooLarge$1(x) { + var x; + return x > 1000000 || x < -1000000; + }; + parsenum = function parsenum$1(s, start, end) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, end, isnum, newi, num, s, start; + num = 0; + isnum = false; + newi = 0; + if (start >= end) { + _tmp = 0; + _tmp$1 = false; + _tmp$2 = end; + num = _tmp; + isnum = _tmp$1; + newi = _tmp$2; + return [num, isnum, newi]; + } + newi = start; + while (true) { + if (!(newi < end && 48 <= s.charCodeAt(newi) && s.charCodeAt(newi) <= 57)) { break; } + if (tooLarge(num)) { + _tmp$3 = 0; + _tmp$4 = false; + _tmp$5 = end; + num = _tmp$3; + isnum = _tmp$4; + newi = _tmp$5; + return [num, isnum, newi]; + } + num = ($imul(num, 10)) + (((s.charCodeAt(newi) - 48 << 24 >>> 24) >> 0)) >> 0; + isnum = true; + newi = newi + (1) >> 0; + } + return [num, isnum, newi]; + }; + $ptrType(pp).prototype.unknownType = function unknownType(v) { + var {_r, p, v, $s, $r, $c} = $restore(this, {v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + if (!$clone(v, reflect.Value).IsValid()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(63); + _r = $clone(v, reflect.Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(63); + $s = -1; return; + /* */ } return; } var $f = {$blk: unknownType, $c: true, $r, _r, p, v, $s};return $f; + }; + $ptrType(pp).prototype.badVerb = function badVerb(verb) { + var {_r, _r$1, p, verb, $s, $r, $c} = $restore(this, {verb}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + p.erroring = true; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(40); + /* */ if (!($interfaceIsEqual(p.arg, $ifaceNil))) { $s = 2; continue; } + /* */ if ($clone(p.value, reflect.Value).IsValid()) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(p.arg, $ifaceNil))) { */ case 2: + _r = reflect.TypeOf(p.arg).String(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(61); + $r = p.printArg(p.arg, 118); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else if ($clone(p.value, reflect.Value).IsValid()) { */ case 3: + _r$1 = $clone(p.value, reflect.Value).Type().String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(61); + $r = p.printValue($clone(p.value, reflect.Value), 118, 0); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + /* } */ case 5: + case 1: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41); + p.erroring = false; + $s = -1; return; + /* */ } return; } var $f = {$blk: badVerb, $c: true, $r, _r, _r$1, p, verb, $s};return $f; + }; + $ptrType(pp).prototype.fmtBool = function fmtBool(v, verb) { + var {_1, p, v, verb, $s, $r, $c} = $restore(this, {v, verb}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (116)) || (_1 === (118))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((_1 === (116)) || (_1 === (118))) { */ case 2: + p.fmt.fmtBoolean(v); + $s = 4; continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: fmtBool, $c: true, $r, _1, p, v, verb, $s};return $f; + }; + $ptrType(pp).prototype.fmt0x64 = function fmt0x64(v, leading0x) { + var leading0x, p, sharp, v; + p = this; + sharp = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = leading0x; + p.fmt.fmtInteger(v, 16, false, 118, "0123456789abcdefx"); + p.fmt.fmtFlags.sharp = sharp; + }; + $ptrType(pp).prototype.fmtInteger = function fmtInteger(v, isSigned, verb) { + var {_1, isSigned, p, v, verb, $s, $r, $c} = $restore(this, {v, isSigned, verb}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { $s = 2; continue; } + /* */ if (_1 === (100)) { $s = 3; continue; } + /* */ if (_1 === (98)) { $s = 4; continue; } + /* */ if ((_1 === (111)) || (_1 === (79))) { $s = 5; continue; } + /* */ if (_1 === (120)) { $s = 6; continue; } + /* */ if (_1 === (88)) { $s = 7; continue; } + /* */ if (_1 === (99)) { $s = 8; continue; } + /* */ if (_1 === (113)) { $s = 9; continue; } + /* */ if (_1 === (85)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === (118)) { */ case 2: + if (p.fmt.fmtFlags.sharpV && !isSigned) { + p.fmt0x64(v, true); + } else { + p.fmt.fmtInteger(v, 10, isSigned, verb, "0123456789abcdefx"); + } + $s = 12; continue; + /* } else if (_1 === (100)) { */ case 3: + p.fmt.fmtInteger(v, 10, isSigned, verb, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (98)) { */ case 4: + p.fmt.fmtInteger(v, 2, isSigned, verb, "0123456789abcdefx"); + $s = 12; continue; + /* } else if ((_1 === (111)) || (_1 === (79))) { */ case 5: + p.fmt.fmtInteger(v, 8, isSigned, verb, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (120)) { */ case 6: + p.fmt.fmtInteger(v, 16, isSigned, verb, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (88)) { */ case 7: + p.fmt.fmtInteger(v, 16, isSigned, verb, "0123456789ABCDEFX"); + $s = 12; continue; + /* } else if (_1 === (99)) { */ case 8: + p.fmt.fmtC(v); + $s = 12; continue; + /* } else if (_1 === (113)) { */ case 9: + p.fmt.fmtQc(v); + $s = 12; continue; + /* } else if (_1 === (85)) { */ case 10: + p.fmt.fmtUnicode(v); + $s = 12; continue; + /* } else { */ case 11: + $r = p.badVerb(verb); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: fmtInteger, $c: true, $r, _1, isSigned, p, v, verb, $s};return $f; + }; + $ptrType(pp).prototype.fmtFloat = function fmtFloat(v, size, verb) { + var {_1, p, size, v, verb, $s, $r, $c} = $restore(this, {v, size, verb}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { $s = 2; continue; } + /* */ if ((_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (120)) || (_1 === (88))) { $s = 3; continue; } + /* */ if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { $s = 4; continue; } + /* */ if (_1 === (70)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (118)) { */ case 2: + p.fmt.fmtFloat(v, size, 103, -1); + $s = 7; continue; + /* } else if ((_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (120)) || (_1 === (88))) { */ case 3: + p.fmt.fmtFloat(v, size, verb, -1); + $s = 7; continue; + /* } else if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { */ case 4: + p.fmt.fmtFloat(v, size, verb, 6); + $s = 7; continue; + /* } else if (_1 === (70)) { */ case 5: + p.fmt.fmtFloat(v, size, 102, 6); + $s = 7; continue; + /* } else { */ case 6: + $r = p.badVerb(verb); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: fmtFloat, $c: true, $r, _1, p, size, v, verb, $s};return $f; + }; + $ptrType(pp).prototype.fmtComplex = function fmtComplex(v, size, verb) { + var {_1, _q, _q$1, oldPlus, p, size, v, verb, $s, $r, $c} = $restore(this, {v, size, verb}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (120)) || (_1 === (88)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (120)) || (_1 === (88)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { */ case 2: + oldPlus = p.fmt.fmtFlags.plus; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(40); + $r = p.fmtFloat(v.$real, (_q = size / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.fmt.fmtFlags.plus = true; + $r = p.fmtFloat(v.$imag, (_q$1 = size / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("i)"); + p.fmt.fmtFlags.plus = oldPlus; + $s = 4; continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: fmtComplex, $c: true, $r, _1, _q, _q$1, oldPlus, p, size, v, verb, $s};return $f; + }; + $ptrType(pp).prototype.fmtString = function fmtString(v, verb) { + var {_1, p, v, verb, $s, $r, $c} = $restore(this, {v, verb}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { $s = 2; continue; } + /* */ if (_1 === (115)) { $s = 3; continue; } + /* */ if (_1 === (120)) { $s = 4; continue; } + /* */ if (_1 === (88)) { $s = 5; continue; } + /* */ if (_1 === (113)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_1 === (118)) { */ case 2: + if (p.fmt.fmtFlags.sharpV) { + p.fmt.fmtQ(v); + } else { + p.fmt.fmtS(v); + } + $s = 8; continue; + /* } else if (_1 === (115)) { */ case 3: + p.fmt.fmtS(v); + $s = 8; continue; + /* } else if (_1 === (120)) { */ case 4: + p.fmt.fmtSx(v, "0123456789abcdefx"); + $s = 8; continue; + /* } else if (_1 === (88)) { */ case 5: + p.fmt.fmtSx(v, "0123456789ABCDEFX"); + $s = 8; continue; + /* } else if (_1 === (113)) { */ case 6: + p.fmt.fmtQ(v); + $s = 8; continue; + /* } else { */ case 7: + $r = p.badVerb(verb); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: fmtString, $c: true, $r, _1, p, v, verb, $s};return $f; + }; + $ptrType(pp).prototype.fmtBytes = function fmtBytes(v, verb, typeString) { + var {_1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s, $r, $c} = $restore(this, {v, verb, typeString}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (100))) { $s = 2; continue; } + /* */ if (_1 === (115)) { $s = 3; continue; } + /* */ if (_1 === (120)) { $s = 4; continue; } + /* */ if (_1 === (88)) { $s = 5; continue; } + /* */ if (_1 === (113)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((_1 === (118)) || (_1 === (100))) { */ case 2: + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(typeString); + if (v === sliceType$2.nil) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)"); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123); + _ref = v; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + } + p.fmt0x64((new $Uint64(0, c)), true); + _i++; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(91); + _ref$1 = v; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (i$1 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + } + p.fmt.fmtInteger((new $Uint64(0, c$1)), 10, false, verb, "0123456789abcdefx"); + _i$1++; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(93); + } + $s = 8; continue; + /* } else if (_1 === (115)) { */ case 3: + p.fmt.fmtBs(v); + $s = 8; continue; + /* } else if (_1 === (120)) { */ case 4: + p.fmt.fmtBx(v, "0123456789abcdefx"); + $s = 8; continue; + /* } else if (_1 === (88)) { */ case 5: + p.fmt.fmtBx(v, "0123456789ABCDEFX"); + $s = 8; continue; + /* } else if (_1 === (113)) { */ case 6: + p.fmt.fmtQ(($bytesToString(v))); + $s = 8; continue; + /* } else { */ case 7: + _r = reflect.ValueOf(v); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r, reflect.Value), verb, 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: fmtBytes, $c: true, $r, _1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s};return $f; + }; + $ptrType(pp).prototype.fmtPointer = function fmtPointer(value, verb) { + var {_1, _2, _r, p, u, value, verb, $s, $r, $c} = $restore(this, {value, verb}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + u = 0; + _1 = $clone(value, reflect.Value).Kind(); + /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { */ case 2: + u = $clone(value, reflect.Value).Pointer(); + $s = 4; continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + case 1: + _2 = verb; + /* */ if (_2 === (118)) { $s = 7; continue; } + /* */ if (_2 === (112)) { $s = 8; continue; } + /* */ if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_2 === (118)) { */ case 7: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 12: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(40); + _r = $clone(value, reflect.Value).Type().String(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(")("); + if (u === 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("nil"); + } else { + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), true); + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41); + $s = 14; continue; + /* } else { */ case 13: + if (u === 0) { + p.fmt.padString(""); + } else { + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp); + } + /* } */ case 14: + $s = 11; continue; + /* } else if (_2 === (112)) { */ case 8: + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp); + $s = 11; continue; + /* } else if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { */ case 9: + $r = p.fmtInteger((new $Uint64(0, u.constructor === Number ? u : 1)), false, verb); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 11; continue; + /* } else { */ case 10: + $r = p.badVerb(verb); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: fmtPointer, $c: true, $r, _1, _2, _r, p, u, value, verb, $s};return $f; + }; + $ptrType(pp).prototype.catchPanic = function catchPanic(arg, verb, method) { + var {_r, arg, err, method, oldFlags, p, v, verb, $s, $r, $c} = $restore(this, {arg, verb, method}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + err = $recover(); + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1: + _r = reflect.ValueOf(arg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + if (($clone(v, reflect.Value).Kind() === 22) && $clone(v, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + $s = -1; return; + } + if (p.panicking) { + $panic(err); + } + oldFlags = $clone(p.fmt.fmtFlags, fmtFlags); + p.fmt.clearflags(); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(PANIC="); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(method); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(" method: "); + p.panicking = true; + $r = p.printArg(err, 118); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.panicking = false; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41); + fmtFlags.copy(p.fmt.fmtFlags, oldFlags); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: catchPanic, $c: true, $r, _r, arg, err, method, oldFlags, p, v, verb, $s};return $f; + }; + $ptrType(pp).prototype.handleMethods = function handleMethods(verb) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, err, formatter, handled, ok, ok$1, ok$2, p, stringer, v, v$1, verb, $s, $deferred, $r, $c} = $restore(this, {verb}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + handled = false; + p = this; + if (p.erroring) { + $s = -1; return handled; + } + /* */ if (verb === 119) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (verb === 119) { */ case 1: + _tuple = $assertType(p.arg, $error, true); + err = _tuple[0]; + ok = _tuple[1]; + /* */ if (!ok || !p.wrapErrs || !($interfaceIsEqual(p.wrappedErr, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!ok || !p.wrapErrs || !($interfaceIsEqual(p.wrappedErr, $ifaceNil))) { */ case 3: + p.wrappedErr = $ifaceNil; + p.wrapErrs = false; + $r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + handled = true; + $s = -1; return handled; + /* } */ case 4: + p.wrappedErr = err; + verb = 118; + /* } */ case 2: + _tuple$1 = $assertType(p.arg, Formatter, true); + formatter = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (ok$1) { */ case 6: + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "Format"]]); + $r = formatter.Format(p, verb); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r = handled; + $s = 9; case 9: return $24r; + /* } */ case 7: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 10: + _tuple$2 = $assertType(p.arg, GoStringer, true); + stringer = _tuple$2[0]; + ok$2 = _tuple$2[1]; + /* */ if (ok$2) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (ok$2) { */ case 13: + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "GoString"]]); + _r = stringer.GoString(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.fmt.fmtS(_r); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$1 = handled; + $s = 17; case 17: return $24r$1; + /* } */ case 14: + $s = 12; continue; + /* } else { */ case 11: + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { */ case 19: + _ref = p.arg; + /* */ if ($assertType(_ref, $error, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, Stringer, true)[1]) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if ($assertType(_ref, $error, true)[1]) { */ case 21: + v = _ref; + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "Error"]]); + _r$1 = v.Error(); /* */ $s = 24; case 24: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = p.fmtString(_r$1, verb); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$2 = handled; + $s = 26; case 26: return $24r$2; + /* } else if ($assertType(_ref, Stringer, true)[1]) { */ case 22: + v$1 = _ref; + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "String"]]); + _r$2 = v$1.String(); /* */ $s = 27; case 27: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = p.fmtString(_r$2, verb); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$3 = handled; + $s = 29; case 29: return $24r$3; + /* } */ case 23: + /* } */ case 20: + case 18: + /* } */ case 12: + handled = false; + $24r$4 = handled; + $s = 30; case 30: return $24r$4; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return handled; } if($curGoroutine.asleep) { var $f = {$blk: handleMethods, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, err, formatter, handled, ok, ok$1, ok$2, p, stringer, v, v$1, verb, $s, $deferred};return $f; } } + }; + $ptrType(pp).prototype.printArg = function printArg(arg, verb) { + var {_1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s, $r, $c} = $restore(this, {arg, verb}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + p.arg = arg; + p.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 1: + _1 = verb; + /* */ if ((_1 === (84)) || (_1 === (118))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((_1 === (84)) || (_1 === (118))) { */ case 4: + p.fmt.padString(""); + $s = 6; continue; + /* } else { */ case 5: + $r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + case 3: + $s = -1; return; + /* } */ case 2: + _2 = verb; + /* */ if (_2 === (84)) { $s = 9; continue; } + /* */ if (_2 === (112)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_2 === (84)) { */ case 9: + _r = reflect.TypeOf(arg).String(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.fmt.fmtS(_r); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } else if (_2 === (112)) { */ case 10: + _r$1 = reflect.ValueOf(arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = p.fmtPointer($clone(_r$1, reflect.Value), 112); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 11: + case 8: + _ref = arg; + /* */ if ($assertType(_ref, $Bool, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, $Float32, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, $Float64, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, $Complex64, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, $Complex128, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, $Int, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, $Int8, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, $Int16, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, $Int32, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, $Int64, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref, $Uint, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref, $Uint8, true)[1]) { $s = 27; continue; } + /* */ if ($assertType(_ref, $Uint16, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref, $Uint32, true)[1]) { $s = 29; continue; } + /* */ if ($assertType(_ref, $Uint64, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref, $Uintptr, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref, $String, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref, sliceType$2, true)[1]) { $s = 33; continue; } + /* */ if ($assertType(_ref, reflect.Value, true)[1]) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if ($assertType(_ref, $Bool, true)[1]) { */ case 16: + f = _ref.$val; + $r = p.fmtBool(f, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Float32, true)[1]) { */ case 17: + f$1 = _ref.$val; + $r = p.fmtFloat((f$1), 32, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Float64, true)[1]) { */ case 18: + f$2 = _ref.$val; + $r = p.fmtFloat(f$2, 64, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Complex64, true)[1]) { */ case 19: + f$3 = _ref.$val; + $r = p.fmtComplex((new $Complex128(f$3.$real, f$3.$imag)), 64, verb); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Complex128, true)[1]) { */ case 20: + f$4 = _ref.$val; + $r = p.fmtComplex(f$4, 128, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int, true)[1]) { */ case 21: + f$5 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$5)), true, verb); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int8, true)[1]) { */ case 22: + f$6 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$6)), true, verb); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int16, true)[1]) { */ case 23: + f$7 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$7)), true, verb); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int32, true)[1]) { */ case 24: + f$8 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$8)), true, verb); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int64, true)[1]) { */ case 25: + f$9 = _ref.$val; + $r = p.fmtInteger((new $Uint64(f$9.$high, f$9.$low)), true, verb); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint, true)[1]) { */ case 26: + f$10 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$10)), false, verb); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint8, true)[1]) { */ case 27: + f$11 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$11)), false, verb); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint16, true)[1]) { */ case 28: + f$12 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$12)), false, verb); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint32, true)[1]) { */ case 29: + f$13 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$13)), false, verb); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint64, true)[1]) { */ case 30: + f$14 = _ref.$val; + $r = p.fmtInteger(f$14, false, verb); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uintptr, true)[1]) { */ case 31: + f$15 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$15.constructor === Number ? f$15 : 1)), false, verb); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $String, true)[1]) { */ case 32: + f$16 = _ref.$val; + $r = p.fmtString(f$16, verb); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, sliceType$2, true)[1]) { */ case 33: + f$17 = _ref.$val; + $r = p.fmtBytes(f$17, verb, "[]byte"); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, reflect.Value, true)[1]) { */ case 34: + f$18 = _ref.$val; + /* */ if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { */ case 55: + _r$2 = $clone(f$18, reflect.Value).Interface(); /* */ $s = 57; case 57: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + p.arg = _r$2; + _r$3 = p.handleMethods(verb); /* */ $s = 60; case 60: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (_r$3) { */ case 58: + $s = -1; return; + /* } */ case 59: + /* } */ case 56: + $r = p.printValue($clone(f$18, reflect.Value), verb, 0); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else { */ case 35: + f$19 = _ref; + _r$4 = p.handleMethods(verb); /* */ $s = 64; case 64: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 62; continue; } + /* */ $s = 63; continue; + /* if (!_r$4) { */ case 62: + _r$5 = reflect.ValueOf(f$19); /* */ $s = 65; case 65: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$5, reflect.Value), verb, 0); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 63: + /* } */ case 36: + $s = -1; return; + /* */ } return; } var $f = {$blk: printArg, $c: true, $r, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s};return $f; + }; + $ptrType(pp).prototype.printValue = function printValue(value, verb, depth) { + var {_1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s, $r, $c} = $restore(this, {value, verb, depth}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { */ case 1: + _r = $clone(value, reflect.Value).Interface(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p.arg = _r; + _r$1 = p.handleMethods(verb); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + $s = -1; return; + /* } */ case 5: + /* } */ case 2: + p.arg = $ifaceNil; + p.value = value; + f = value; + _1 = $clone(value, reflect.Value).Kind(); + /* */ if (_1 === (0)) { $s = 8; continue; } + /* */ if (_1 === (1)) { $s = 9; continue; } + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 10; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 11; continue; } + /* */ if (_1 === (13)) { $s = 12; continue; } + /* */ if (_1 === (14)) { $s = 13; continue; } + /* */ if (_1 === (15)) { $s = 14; continue; } + /* */ if (_1 === (16)) { $s = 15; continue; } + /* */ if (_1 === (24)) { $s = 16; continue; } + /* */ if (_1 === (21)) { $s = 17; continue; } + /* */ if (_1 === (25)) { $s = 18; continue; } + /* */ if (_1 === (20)) { $s = 19; continue; } + /* */ if ((_1 === (17)) || (_1 === (23))) { $s = 20; continue; } + /* */ if (_1 === (22)) { $s = 21; continue; } + /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (_1 === (0)) { */ case 8: + /* */ if (depth === 0) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (depth === 0) { */ case 25: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + $s = 27; continue; + /* } else { */ case 26: + _2 = verb; + /* */ if (_2 === (118)) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (_2 === (118)) { */ case 29: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + $s = 31; continue; + /* } else { */ case 30: + $r = p.badVerb(verb); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 31: + case 28: + /* } */ case 27: + $s = 24; continue; + /* } else if (_1 === (1)) { */ case 9: + $r = p.fmtBool($clone(f, reflect.Value).Bool(), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 10: + $r = p.fmtInteger(((x = $clone(f, reflect.Value).Int(), new $Uint64(x.$high, x.$low))), true, verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 11: + $r = p.fmtInteger($clone(f, reflect.Value).Uint(), false, verb); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (13)) { */ case 12: + $r = p.fmtFloat($clone(f, reflect.Value).Float(), 32, verb); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (14)) { */ case 13: + $r = p.fmtFloat($clone(f, reflect.Value).Float(), 64, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (15)) { */ case 14: + $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 64, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (16)) { */ case 15: + $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 128, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (24)) { */ case 16: + _r$2 = $clone(f, reflect.Value).String(); /* */ $s = 40; case 40: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = p.fmtString(_r$2, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (21)) { */ case 17: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 42: + _r$3 = $clone(f, reflect.Value).Type().String(); /* */ $s = 45; case 45: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$3); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($clone(f, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)"); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123); + $s = 44; continue; + /* } else { */ case 43: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("map["); + /* } */ case 44: + _r$4 = fmtsort.Sort($clone(f, reflect.Value)); /* */ $s = 47; case 47: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + sorted = _r$4; + _ref = sorted.Key; + _i = 0; + /* while (true) { */ case 48: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 49; continue; } + i = _i; + key = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + } + } + $r = p.printValue($clone(key, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(58); + $r = p.printValue($clone((x$1 = sorted.Value, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), reflect.Value), verb, depth + 1 >> 0); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 48; continue; + case 49: + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(93); + } + $s = 24; continue; + /* } else if (_1 === (25)) { */ case 18: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 52: + _r$5 = $clone(f, reflect.Value).Type().String(); /* */ $s = 54; case 54: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 53: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123); + i$1 = 0; + /* while (true) { */ case 56: + /* if (!(i$1 < $clone(f, reflect.Value).NumField())) { break; } */ if(!(i$1 < $clone(f, reflect.Value).NumField())) { $s = 57; continue; } + if (i$1 > 0) { + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + } + } + /* */ if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { */ case 58: + _r$6 = $clone(f, reflect.Value).Type().Field(i$1); /* */ $s = 60; case 60: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + name = _r$6.Name; + if (!(name === "")) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(name); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(58); + } + /* } */ case 59: + _r$7 = getField($clone(f, reflect.Value), i$1); /* */ $s = 61; case 61: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$7, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + $s = 56; continue; + case 57: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125); + $s = 24; continue; + /* } else if (_1 === (20)) { */ case 19: + _r$8 = $clone(f, reflect.Value).Elem(); /* */ $s = 63; case 63: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + value$1 = _r$8; + /* */ if (!$clone(value$1, reflect.Value).IsValid()) { $s = 64; continue; } + /* */ $s = 65; continue; + /* if (!$clone(value$1, reflect.Value).IsValid()) { */ case 64: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 67: + _r$9 = $clone(f, reflect.Value).Type().String(); /* */ $s = 70; case 70: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$9); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)"); + $s = 69; continue; + /* } else { */ case 68: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + /* } */ case 69: + $s = 66; continue; + /* } else { */ case 65: + $r = p.printValue($clone(value$1, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 66: + $s = 24; continue; + /* } else if ((_1 === (17)) || (_1 === (23))) { */ case 20: + _3 = verb; + /* */ if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { $s = 74; continue; } + /* */ $s = 75; continue; + /* if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { */ case 74: + t = $clone(f, reflect.Value).Type(); + _r$10 = t.Elem(); /* */ $s = 78; case 78: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = _r$10.Kind(); /* */ $s = 79; case 79: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (_r$11 === 8) { $s = 76; continue; } + /* */ $s = 77; continue; + /* if (_r$11 === 8) { */ case 76: + bytes = sliceType$2.nil; + /* */ if ($clone(f, reflect.Value).Kind() === 23) { $s = 80; continue; } + /* */ if ($clone(f, reflect.Value).CanAddr()) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if ($clone(f, reflect.Value).Kind() === 23) { */ case 80: + _r$12 = $clone(f, reflect.Value).Bytes(); /* */ $s = 84; case 84: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + bytes = _r$12; + $s = 83; continue; + /* } else if ($clone(f, reflect.Value).CanAddr()) { */ case 81: + _r$13 = $clone(f, reflect.Value).Len(); /* */ $s = 85; case 85: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _arg = _r$13; + _r$14 = $clone(f, reflect.Value).Slice(0, _arg); /* */ $s = 86; case 86: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$15 = $clone(_r$14, reflect.Value).Bytes(); /* */ $s = 87; case 87: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + bytes = _r$15; + $s = 83; continue; + /* } else { */ case 82: + _r$16 = $clone(f, reflect.Value).Len(); /* */ $s = 88; case 88: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + bytes = $makeSlice(sliceType$2, _r$16); + _ref$1 = bytes; + _i$1 = 0; + /* while (true) { */ case 89: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 90; continue; } + i$2 = _i$1; + _r$17 = $clone(f, reflect.Value).Index(i$2); /* */ $s = 91; case 91: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$18 = $clone(_r$17, reflect.Value).Uint(); /* */ $s = 92; case 92: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + ((i$2 < 0 || i$2 >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + i$2] = ((_r$18.$low << 24 >>> 24))); + _i$1++; + $s = 89; continue; + case 90: + /* } */ case 83: + _arg$1 = bytes; + _arg$2 = verb; + _r$19 = t.String(); /* */ $s = 93; case 93: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _arg$3 = _r$19; + $r = p.fmtBytes(_arg$1, _arg$2, _arg$3); /* */ $s = 94; case 94: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 77: + /* } */ case 75: + case 73: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 95; continue; } + /* */ $s = 96; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 95: + _r$20 = $clone(f, reflect.Value).Type().String(); /* */ $s = 98; case 98: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$20); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (($clone(f, reflect.Value).Kind() === 23) && $clone(f, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)"); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123); + i$3 = 0; + /* while (true) { */ case 100: + _r$21 = $clone(f, reflect.Value).Len(); /* */ $s = 102; case 102: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + /* if (!(i$3 < _r$21)) { break; } */ if(!(i$3 < _r$21)) { $s = 101; continue; } + if (i$3 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + } + _r$22 = $clone(f, reflect.Value).Index(i$3); /* */ $s = 103; case 103: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$22, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 104; case 104: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$3 = i$3 + (1) >> 0; + $s = 100; continue; + case 101: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125); + $s = 97; continue; + /* } else { */ case 96: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(91); + i$4 = 0; + /* while (true) { */ case 105: + _r$23 = $clone(f, reflect.Value).Len(); /* */ $s = 107; case 107: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + /* if (!(i$4 < _r$23)) { break; } */ if(!(i$4 < _r$23)) { $s = 106; continue; } + if (i$4 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + } + _r$24 = $clone(f, reflect.Value).Index(i$4); /* */ $s = 108; case 108: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$24, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$4 = i$4 + (1) >> 0; + $s = 105; continue; + case 106: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(93); + /* } */ case 97: + $s = 24; continue; + /* } else if (_1 === (22)) { */ case 21: + /* */ if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { $s = 110; continue; } + /* */ $s = 111; continue; + /* if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { */ case 110: + _r$25 = $clone(f, reflect.Value).Elem(); /* */ $s = 113; case 113: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + a = _r$25; + _4 = $clone(a, reflect.Value).Kind(); + /* */ if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { $s = 114; continue; } + /* */ $s = 115; continue; + /* if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { */ case 114: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(38); + $r = p.printValue($clone(a, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 115: + case 112: + /* } */ case 111: + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 117; case 117: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { */ case 22: + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 118; case 118: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else { */ case 23: + $r = p.unknownType($clone(f, reflect.Value)); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + case 7: + $s = -1; return; + /* */ } return; } var $f = {$blk: printValue, $c: true, $r, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s};return $f; + }; + intFromArg = function intFromArg$1(a, argNum) { + var {_1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s, $r, $c} = $restore(this, {a, argNum}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + num = 0; + isInt = false; + newArgNum = 0; + newArgNum = argNum; + /* */ if (argNum < a.$length) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (argNum < a.$length) { */ case 1: + _tuple = $assertType(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), $Int, true); + num = _tuple[0]; + isInt = _tuple[1]; + /* */ if (!isInt) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!isInt) { */ case 3: + _r = reflect.ValueOf(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + _1 = $clone(v, reflect.Value).Kind(); + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + n = $clone(v, reflect.Value).Int(); + if ((x = (new $Int64(0, (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)))), (x.$high === n.$high && x.$low === n.$low))) { + num = (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)); + isInt = true; + } + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + n$1 = $clone(v, reflect.Value).Uint(); + if ((x$1 = (new $Int64(n$1.$high, n$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))) && (x$2 = (new $Uint64(0, ((n$1.$low >> 0)))), (x$2.$high === n$1.$high && x$2.$low === n$1.$low))) { + num = ((n$1.$low >> 0)); + isInt = true; + } + } + case 5: + /* } */ case 4: + newArgNum = argNum + 1 >> 0; + if (tooLarge(num)) { + num = 0; + isInt = false; + } + /* } */ case 2: + $s = -1; return [num, isInt, newArgNum]; + /* */ } return; } var $f = {$blk: intFromArg$1, $c: true, $r, _1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s};return $f; + }; + parseArgNumber = function parseArgNumber$1(format) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, format, i, index, newi, ok, ok$1, wid, width; + index = 0; + wid = 0; + ok = false; + if (format.length < 3) { + _tmp = 0; + _tmp$1 = 1; + _tmp$2 = false; + index = _tmp; + wid = _tmp$1; + ok = _tmp$2; + return [index, wid, ok]; + } + i = 1; + while (true) { + if (!(i < format.length)) { break; } + if (format.charCodeAt(i) === 93) { + _tuple = parsenum(format, 1, i); + width = _tuple[0]; + ok$1 = _tuple[1]; + newi = _tuple[2]; + if (!ok$1 || !((newi === i))) { + _tmp$3 = 0; + _tmp$4 = i + 1 >> 0; + _tmp$5 = false; + index = _tmp$3; + wid = _tmp$4; + ok = _tmp$5; + return [index, wid, ok]; + } + _tmp$6 = width - 1 >> 0; + _tmp$7 = i + 1 >> 0; + _tmp$8 = true; + index = _tmp$6; + wid = _tmp$7; + ok = _tmp$8; + return [index, wid, ok]; + } + i = i + (1) >> 0; + } + _tmp$9 = 0; + _tmp$10 = 1; + _tmp$11 = false; + index = _tmp$9; + wid = _tmp$10; + ok = _tmp$11; + return [index, wid, ok]; + }; + $ptrType(pp).prototype.argNumber = function argNumber(argNum, format, i, numArgs) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, argNum, format, found, i, index, newArgNum, newi, numArgs, ok, p, wid; + newArgNum = 0; + newi = 0; + found = false; + p = this; + if (format.length <= i || !((format.charCodeAt(i) === 91))) { + _tmp = argNum; + _tmp$1 = i; + _tmp$2 = false; + newArgNum = _tmp; + newi = _tmp$1; + found = _tmp$2; + return [newArgNum, newi, found]; + } + p.reordered = true; + _tuple = parseArgNumber($substring(format, i)); + index = _tuple[0]; + wid = _tuple[1]; + ok = _tuple[2]; + if (ok && 0 <= index && index < numArgs) { + _tmp$3 = index; + _tmp$4 = i + wid >> 0; + _tmp$5 = true; + newArgNum = _tmp$3; + newi = _tmp$4; + found = _tmp$5; + return [newArgNum, newi, found]; + } + p.goodArgNum = false; + _tmp$6 = argNum; + _tmp$7 = i + wid >> 0; + _tmp$8 = ok; + newArgNum = _tmp$6; + newi = _tmp$7; + found = _tmp$8; + return [newArgNum, newi, found]; + }; + $ptrType(pp).prototype.badArgNum = function badArgNum(verb) { + var p, verb; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(BADINDEX)"); + }; + $ptrType(pp).prototype.missingArg = function missingArg(verb) { + var p, verb; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(MISSING)"); + }; + $ptrType(pp).prototype.doPrintf = function doPrintf(format, a) { + var {_1, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s, $r, $c} = $restore(this, {format, a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + end = format.length; + argNum = 0; + afterIndex = false; + p.reordered = false; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 2; continue; } + p.goodArgNum = true; + lasti = i; + while (true) { + if (!(i < end && !((format.charCodeAt(i) === 37)))) { break; } + i = i + (1) >> 0; + } + if (i > lasti) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString($substring(format, lasti, i)); + } + if (i >= end) { + /* break; */ $s = 2; continue; + } + i = i + (1) >> 0; + p.fmt.clearflags(); + /* while (true) { */ case 3: + /* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 4; continue; } + c = format.charCodeAt(i); + _1 = c; + /* */ if (_1 === (35)) { $s = 6; continue; } + /* */ if (_1 === (48)) { $s = 7; continue; } + /* */ if (_1 === (43)) { $s = 8; continue; } + /* */ if (_1 === (45)) { $s = 9; continue; } + /* */ if (_1 === (32)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === (35)) { */ case 6: + p.fmt.fmtFlags.sharp = true; + $s = 12; continue; + /* } else if (_1 === (48)) { */ case 7: + p.fmt.fmtFlags.zero = !p.fmt.fmtFlags.minus; + $s = 12; continue; + /* } else if (_1 === (43)) { */ case 8: + p.fmt.fmtFlags.plus = true; + $s = 12; continue; + /* } else if (_1 === (45)) { */ case 9: + p.fmt.fmtFlags.minus = true; + p.fmt.fmtFlags.zero = false; + $s = 12; continue; + /* } else if (_1 === (32)) { */ case 10: + p.fmt.fmtFlags.space = true; + $s = 12; continue; + /* } else { */ case 11: + /* */ if (97 <= c && c <= 122 && argNum < a.$length) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (97 <= c && c <= 122 && argNum < a.$length) { */ case 13: + if (c === 118) { + p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = false; + p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; + p.fmt.fmtFlags.plus = false; + } + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), ((c >> 0))); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + argNum = argNum + (1) >> 0; + i = i + (1) >> 0; + /* continue formatLoop; */ $s = 1; continue s; + /* } */ case 14: + /* break simpleFormat; */ $s = 4; continue s; + /* } */ case 12: + case 5: + i = i + (1) >> 0; + $s = 3; continue; + case 4: + _tuple = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple[0]; + i = _tuple[1]; + afterIndex = _tuple[2]; + /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 16: + i = i + (1) >> 0; + _r = intFromArg(a, argNum); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + p.fmt.wid = _tuple$1[0]; + p.fmt.fmtFlags.widPresent = _tuple$1[1]; + argNum = _tuple$1[2]; + if (!p.fmt.fmtFlags.widPresent) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(BADWIDTH)"); + } + if (p.fmt.wid < 0) { + p.fmt.wid = -p.fmt.wid; + p.fmt.fmtFlags.minus = true; + p.fmt.fmtFlags.zero = false; + } + afterIndex = false; + $s = 18; continue; + /* } else { */ case 17: + _tuple$2 = parsenum(format, i, end); + p.fmt.wid = _tuple$2[0]; + p.fmt.fmtFlags.widPresent = _tuple$2[1]; + i = _tuple$2[2]; + if (afterIndex && p.fmt.fmtFlags.widPresent) { + p.goodArgNum = false; + } + /* } */ case 18: + /* */ if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { */ case 20: + i = i + (1) >> 0; + if (afterIndex) { + p.goodArgNum = false; + } + _tuple$3 = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple$3[0]; + i = _tuple$3[1]; + afterIndex = _tuple$3[2]; + /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 22: + i = i + (1) >> 0; + _r$1 = intFromArg(a, argNum); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$4 = _r$1; + p.fmt.prec = _tuple$4[0]; + p.fmt.fmtFlags.precPresent = _tuple$4[1]; + argNum = _tuple$4[2]; + if (p.fmt.prec < 0) { + p.fmt.prec = 0; + p.fmt.fmtFlags.precPresent = false; + } + if (!p.fmt.fmtFlags.precPresent) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(BADPREC)"); + } + afterIndex = false; + $s = 24; continue; + /* } else { */ case 23: + _tuple$5 = parsenum(format, i, end); + p.fmt.prec = _tuple$5[0]; + p.fmt.fmtFlags.precPresent = _tuple$5[1]; + i = _tuple$5[2]; + if (!p.fmt.fmtFlags.precPresent) { + p.fmt.prec = 0; + p.fmt.fmtFlags.precPresent = true; + } + /* } */ case 24: + /* } */ case 21: + if (!afterIndex) { + _tuple$6 = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple$6[0]; + i = _tuple$6[1]; + afterIndex = _tuple$6[2]; + } + if (i >= end) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(NOVERB)"); + /* break; */ $s = 2; continue; + } + _tmp = ((format.charCodeAt(i) >> 0)); + _tmp$1 = 1; + verb = _tmp; + size = _tmp$1; + if (verb >= 128) { + _tuple$7 = utf8.DecodeRuneInString($substring(format, i)); + verb = _tuple$7[0]; + size = _tuple$7[1]; + } + i = i + (size) >> 0; + /* */ if ((verb === 37)) { $s = 27; continue; } + /* */ if (!p.goodArgNum) { $s = 28; continue; } + /* */ if (argNum >= a.$length) { $s = 29; continue; } + /* */ if ((verb === 118)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if ((verb === 37)) { */ case 27: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(37); + $s = 32; continue; + /* } else if (!p.goodArgNum) { */ case 28: + p.badArgNum(verb); + $s = 32; continue; + /* } else if (argNum >= a.$length) { */ case 29: + p.missingArg(verb); + $s = 32; continue; + /* } else if ((verb === 118)) { */ case 30: + p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = false; + p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; + p.fmt.fmtFlags.plus = false; + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + argNum = argNum + (1) >> 0; + $s = 32; continue; + /* } else { */ case 31: + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + argNum = argNum + (1) >> 0; + /* } */ case 32: + case 26: + $s = 1; continue; + case 2: + /* */ if (!p.reordered && argNum < a.$length) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (!p.reordered && argNum < a.$length) { */ case 35: + p.fmt.clearflags(); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(EXTRA "); + _ref = $subslice(a, argNum); + _i = 0; + /* while (true) { */ case 37: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 38; continue; } + i$1 = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i$1 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + } + /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 39: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + $s = 41; continue; + /* } else { */ case 40: + _r$2 = reflect.TypeOf(arg).String(); /* */ $s = 42; case 42: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$2); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(61); + $r = p.printArg(arg, 118); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 41: + _i++; + $s = 37; continue; + case 38: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41); + /* } */ case 36: + $s = -1; return; + /* */ } return; } var $f = {$blk: doPrintf, $c: true, $r, _1, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s};return $f; + }; + $ptrType(pp).prototype.doPrint = function doPrint(a) { + var {_i, _r, _ref, _v, a, arg, argNum, isString, p, prevString, $s, $r, $c} = $restore(this, {a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + prevString = false; + _ref = a; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + argNum = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(!($interfaceIsEqual(arg, $ifaceNil)))) { _v = false; $s = 3; continue s; } + _r = reflect.TypeOf(arg).Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r === 24; case 3: + isString = _v; + if (argNum > 0 && !isString && !prevString) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + } + $r = p.printArg(arg, 118); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + prevString = isString; + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: doPrint, $c: true, $r, _i, _r, _ref, _v, a, arg, argNum, isString, p, prevString, $s};return $f; + }; + $ptrType(pp).prototype.doPrintln = function doPrintln(a) { + var {_i, _ref, a, arg, argNum, p, $s, $r, $c} = $restore(this, {a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = a; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + argNum = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (argNum > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + } + $r = p.printArg(arg, 118); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(10); + $s = -1; return; + /* */ } return; } var $f = {$blk: doPrintln, $c: true, $r, _i, _ref, a, arg, argNum, p, $s};return $f; + }; + $ptrType(fmt).prototype.clearflags = function clearflags() { + var f; + f = this; + fmtFlags.copy(f.fmtFlags, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false)); + }; + $ptrType(fmt).prototype.init = function init(buf) { + var buf, f; + f = this; + f.buf = buf; + f.clearflags(); + }; + $ptrType(fmt).prototype.writePadding = function writePadding(n) { + var _i, _ref, buf, f, i, n, newLen, oldLen, padByte, padding; + f = this; + if (n <= 0) { + return; + } + buf = f.buf.$get(); + oldLen = buf.$length; + newLen = oldLen + n >> 0; + if (newLen > buf.$capacity) { + buf = $makeSlice(buffer, (($imul(buf.$capacity, 2)) + n >> 0)); + $copySlice(buf, f.buf.$get()); + } + padByte = 32; + if (f.fmtFlags.zero) { + padByte = 48; + } + padding = $subslice(buf, oldLen, newLen); + _ref = padding; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= padding.$length) ? ($throwRuntimeError("index out of range"), undefined) : padding.$array[padding.$offset + i] = padByte); + _i++; + } + f.buf.$set($subslice(buf, 0, newLen)); + }; + $ptrType(fmt).prototype.pad = function pad(b) { + var b, f, width; + f = this; + if (!f.fmtFlags.widPresent || (f.wid === 0)) { + f.buf.write(b); + return; + } + width = f.wid - utf8.RuneCount(b) >> 0; + if (!f.fmtFlags.minus) { + f.writePadding(width); + f.buf.write(b); + } else { + f.buf.write(b); + f.writePadding(width); + } + }; + $ptrType(fmt).prototype.padString = function padString(s) { + var f, s, width; + f = this; + if (!f.fmtFlags.widPresent || (f.wid === 0)) { + f.buf.writeString(s); + return; + } + width = f.wid - utf8.RuneCountInString(s) >> 0; + if (!f.fmtFlags.minus) { + f.writePadding(width); + f.buf.writeString(s); + } else { + f.buf.writeString(s); + f.writePadding(width); + } + }; + $ptrType(fmt).prototype.fmtBoolean = function fmtBoolean(v) { + var f, v; + f = this; + if (v) { + f.padString("true"); + } else { + f.padString("false"); + } + }; + $ptrType(fmt).prototype.fmtUnicode = function fmtUnicode(u) { + var buf, f, i, oldZero, prec, u, width; + f = this; + buf = $subslice(new sliceType$2(f.intbuf), 0); + prec = 4; + if (f.fmtFlags.precPresent && f.prec > 4) { + prec = f.prec; + width = (((2 + prec >> 0) + 2 >> 0) + 4 >> 0) + 1 >> 0; + if (width > buf.$length) { + buf = $makeSlice(sliceType$2, width); + } + } + i = buf.$length; + if (f.fmtFlags.sharp && (u.$high < 0 || (u.$high === 0 && u.$low <= 1114111)) && strconv.IsPrint(((u.$low >> 0)))) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39); + i = i - (utf8.RuneLen(((u.$low >> 0)))) >> 0; + utf8.EncodeRune($subslice(buf, i), ((u.$low >> 0))); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32); + } + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0)))); + prec = prec - (1) >> 0; + u = $shiftRightUint64(u, (4)); + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(u))); + prec = prec - (1) >> 0; + while (true) { + if (!(prec > 0)) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + prec = prec - (1) >> 0; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 85); + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.pad($subslice(buf, i)); + f.fmtFlags.zero = oldZero; + }; + $ptrType(fmt).prototype.fmtInteger = function fmtInteger$1(u, base, isSigned, verb, digits) { + var _1, _2, base, buf, digits, f, i, isSigned, negative, next, oldZero, oldZero$1, prec, u, verb, width, x, x$1, x$2, x$3, x$4; + f = this; + negative = isSigned && (x = (new $Int64(u.$high, u.$low)), (x.$high < 0 || (x.$high === 0 && x.$low < 0))); + if (negative) { + u = new $Uint64(-u.$high, -u.$low); + } + buf = $subslice(new sliceType$2(f.intbuf), 0); + if (f.fmtFlags.widPresent || f.fmtFlags.precPresent) { + width = (3 + f.wid >> 0) + f.prec >> 0; + if (width > buf.$length) { + buf = $makeSlice(sliceType$2, width); + } + } + prec = 0; + if (f.fmtFlags.precPresent) { + prec = f.prec; + if ((prec === 0) && (u.$high === 0 && u.$low === 0)) { + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.writePadding(f.wid); + f.fmtFlags.zero = oldZero; + return; + } + } else if (f.fmtFlags.zero && f.fmtFlags.widPresent) { + prec = f.wid; + if (negative || f.fmtFlags.plus || f.fmtFlags.space) { + prec = prec - (1) >> 0; + } + } + i = buf.$length; + _1 = base; + if (_1 === (10)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 10)))) { break; } + i = i - (1) >> 0; + next = $div64(u, new $Uint64(0, 10), false); + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$1 = new $Uint64(0 + u.$high, 48 + u.$low), x$2 = $mul64(next, new $Uint64(0, 10)), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)).$low << 24 >>> 24))); + u = next; + } + } else if (_1 === (16)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0)))); + u = $shiftRightUint64(u, (4)); + } + } else if (_1 === (8)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 8)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$3 = new $Uint64(u.$high & 0, (u.$low & 7) >>> 0), new $Uint64(0 + x$3.$high, 48 + x$3.$low)).$low << 24 >>> 24))); + u = $shiftRightUint64(u, (3)); + } + } else if (_1 === (2)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 2)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$4 = new $Uint64(u.$high & 0, (u.$low & 1) >>> 0), new $Uint64(0 + x$4.$high, 48 + x$4.$low)).$low << 24 >>> 24))); + u = $shiftRightUint64(u, (1)); + } + } else { + $panic(new $String("fmt: unknown base; can't happen")); + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(u))); + while (true) { + if (!(i > 0 && prec > (buf.$length - i >> 0))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + if (f.fmtFlags.sharp) { + _2 = base; + if (_2 === (2)) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 98); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } else if (_2 === (8)) { + if (!((((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i]) === 48))) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + } else if (_2 === (16)) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt(16)); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + } + if (verb === 79) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 111); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + if (negative) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 45); + } else if (f.fmtFlags.plus) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43); + } else if (f.fmtFlags.space) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32); + } + oldZero$1 = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.pad($subslice(buf, i)); + f.fmtFlags.zero = oldZero$1; + }; + $ptrType(fmt).prototype.truncateString = function truncateString(s) { + var _i, _ref, _rune, f, i, n, s; + f = this; + if (f.fmtFlags.precPresent) { + n = f.prec; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + n = n - (1) >> 0; + if (n < 0) { + return $substring(s, 0, i); + } + _i += _rune[1]; + } + } + return s; + }; + $ptrType(fmt).prototype.truncate = function truncate(b) { + var _tuple, b, f, i, n, wid; + f = this; + if (f.fmtFlags.precPresent) { + n = f.prec; + i = 0; + while (true) { + if (!(i < b.$length)) { break; } + n = n - (1) >> 0; + if (n < 0) { + return $subslice(b, 0, i); + } + wid = 1; + if (((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) >= 128) { + _tuple = utf8.DecodeRune($subslice(b, i)); + wid = _tuple[1]; + } + i = i + (wid) >> 0; + } + } + return b; + }; + $ptrType(fmt).prototype.fmtS = function fmtS(s) { + var f, s; + f = this; + s = f.truncateString(s); + f.padString(s); + }; + $ptrType(fmt).prototype.fmtBs = function fmtBs(b) { + var b, f; + f = this; + b = f.truncate(b); + f.pad(b); + }; + $ptrType(fmt).prototype.fmtSbx = function fmtSbx(s, b, digits) { + var b, buf, c, digits, f, i, length, s, width; + f = this; + length = b.$length; + if (b === sliceType$2.nil) { + length = s.length; + } + if (f.fmtFlags.precPresent && f.prec < length) { + length = f.prec; + } + width = $imul(2, length); + if (width > 0) { + if (f.fmtFlags.space) { + if (f.fmtFlags.sharp) { + width = $imul(width, (2)); + } + width = width + ((length - 1 >> 0)) >> 0; + } else if (f.fmtFlags.sharp) { + width = width + (2) >> 0; + } + } else { + if (f.fmtFlags.widPresent) { + f.writePadding(f.wid); + } + return; + } + if (f.fmtFlags.widPresent && f.wid > width && !f.fmtFlags.minus) { + f.writePadding(f.wid - width >> 0); + } + buf = f.buf.$get(); + if (f.fmtFlags.sharp) { + buf = $append(buf, 48, digits.charCodeAt(16)); + } + c = 0; + i = 0; + while (true) { + if (!(i < length)) { break; } + if (f.fmtFlags.space && i > 0) { + buf = $append(buf, 32); + if (f.fmtFlags.sharp) { + buf = $append(buf, 48, digits.charCodeAt(16)); + } + } + if (!(b === sliceType$2.nil)) { + c = ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]); + } else { + c = s.charCodeAt(i); + } + buf = $append(buf, digits.charCodeAt((c >>> 4 << 24 >>> 24)), digits.charCodeAt(((c & 15) >>> 0))); + i = i + (1) >> 0; + } + f.buf.$set(buf); + if (f.fmtFlags.widPresent && f.wid > width && f.fmtFlags.minus) { + f.writePadding(f.wid - width >> 0); + } + }; + $ptrType(fmt).prototype.fmtSx = function fmtSx(s, digits) { + var digits, f, s; + f = this; + f.fmtSbx(s, sliceType$2.nil, digits); + }; + $ptrType(fmt).prototype.fmtBx = function fmtBx(b, digits) { + var b, digits, f; + f = this; + f.fmtSbx("", b, digits); + }; + $ptrType(fmt).prototype.fmtQ = function fmtQ(s) { + var buf, f, s; + f = this; + s = f.truncateString(s); + if (f.fmtFlags.sharp && strconv.CanBackquote(s)) { + f.padString("`" + s + "`"); + return; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + if (f.fmtFlags.plus) { + f.pad(strconv.AppendQuoteToASCII(buf, s)); + } else { + f.pad(strconv.AppendQuote(buf, s)); + } + }; + $ptrType(fmt).prototype.fmtC = function fmtC(c) { + var buf, c, f, r, w; + f = this; + r = ((c.$low >> 0)); + if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) { + r = 65533; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + w = utf8.EncodeRune($subslice(buf, 0, 4), r); + f.pad($subslice(buf, 0, w)); + }; + $ptrType(fmt).prototype.fmtQc = function fmtQc(c) { + var buf, c, f, r; + f = this; + r = ((c.$low >> 0)); + if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) { + r = 65533; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + if (f.fmtFlags.plus) { + f.pad(strconv.AppendQuoteRuneToASCII(buf, r)); + } else { + f.pad(strconv.AppendQuoteRune(buf, r)); + } + }; + $ptrType(fmt).prototype.fmtFloat = function fmtFloat$1(v, size, verb, prec) { + var _1, _2, digits, f, hasDecimalPoint, i, num, oldZero, prec, sawNonzeroDigit, size, tail, tailBuf, v, verb; + f = this; + if (f.fmtFlags.precPresent) { + prec = f.prec; + } + num = strconv.AppendFloat($subslice(new sliceType$2(f.intbuf), 0, 1), v, ((verb << 24 >>> 24)), prec, size); + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 45) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 43)) { + num = $subslice(num, 1); + } else { + (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 43); + } + if (f.fmtFlags.space && ((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43) && !f.fmtFlags.plus) { + (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 32); + } + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 73) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78)) { + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78) && !f.fmtFlags.space && !f.fmtFlags.plus) { + num = $subslice(num, 1); + } + f.pad(num); + f.fmtFlags.zero = oldZero; + return; + } + if (f.fmtFlags.sharp && !((verb === 98))) { + digits = 0; + _1 = verb; + if ((_1 === (118)) || (_1 === (103)) || (_1 === (71)) || (_1 === (120))) { + digits = prec; + if (digits === -1) { + digits = 6; + } + } + tailBuf = arrayType$3.zero(); + tail = $subslice(new sliceType$2(tailBuf), 0, 0); + hasDecimalPoint = false; + sawNonzeroDigit = false; + i = 1; + while (true) { + if (!(i < num.$length)) { break; } + switch (0) { default: + _2 = ((i < 0 || i >= num.$length) ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + i]); + if (_2 === (46)) { + hasDecimalPoint = true; + } else if ((_2 === (112)) || (_2 === (80))) { + tail = $appendSlice(tail, $subslice(num, i)); + num = $subslice(num, 0, i); + } else if ((_2 === (101)) || (_2 === (69))) { + if (!((verb === 120)) && !((verb === 88))) { + tail = $appendSlice(tail, $subslice(num, i)); + num = $subslice(num, 0, i); + break; + } + if (!((((i < 0 || i >= num.$length) ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + i]) === 48))) { + sawNonzeroDigit = true; + } + if (sawNonzeroDigit) { + digits = digits - (1) >> 0; + } + } else { + if (!((((i < 0 || i >= num.$length) ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + i]) === 48))) { + sawNonzeroDigit = true; + } + if (sawNonzeroDigit) { + digits = digits - (1) >> 0; + } + } + } + i = i + (1) >> 0; + } + if (!hasDecimalPoint) { + if ((num.$length === 2) && ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 48)) { + digits = digits - (1) >> 0; + } + num = $append(num, 46); + } + while (true) { + if (!(digits > 0)) { break; } + num = $append(num, 48); + digits = digits - (1) >> 0; + } + num = $appendSlice(num, tail); + } + if (f.fmtFlags.plus || !(((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43))) { + if (f.fmtFlags.zero && f.fmtFlags.widPresent && f.wid > num.$length) { + f.buf.writeByte((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0])); + f.writePadding(f.wid - num.$length >> 0); + f.buf.write($subslice(num, 1)); + return; + } + f.pad(num); + return; + } + f.pad($subslice(num, 1)); + }; + Errorf = function Errorf$1(format, a) { + var {_r, a, err, format, p, s, $s, $r, $c} = $restore(this, {format, a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + p.wrapErrs = true; + $r = p.doPrintf(format, a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = ($bytesToString(p.buf)); + err = $ifaceNil; + if ($interfaceIsEqual(p.wrappedErr, $ifaceNil)) { + err = errors.New(s); + } else { + err = new wrapError.ptr(s, p.wrappedErr); + } + p.free(); + $s = -1; return err; + /* */ } return; } var $f = {$blk: Errorf$1, $c: true, $r, _r, a, err, format, p, s, $s};return $f; + }; + $pkg.Errorf = Errorf; + $ptrType(wrapError).prototype.Error = function Error() { + var e; + e = this; + return e.msg; + }; + $ptrType(wrapError).prototype.Unwrap = function Unwrap() { + var e; + e = this; + return e.err; + }; + ptrType$4.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "getRune", name: "getRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "mustReadRune", name: "mustReadRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "error", name: "error", pkg: "fmt", typ: $funcType([$error], [], false)}, {prop: "errorString", name: "errorString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "Token", name: "Token", pkg: "", typ: $funcType([$Bool, funcType], [sliceType$2, $error], false)}, {prop: "free", name: "free", pkg: "fmt", typ: $funcType([ssave], [], false)}, {prop: "SkipSpace", name: "SkipSpace", pkg: "", typ: $funcType([], [], false)}, {prop: "token", name: "token", pkg: "fmt", typ: $funcType([$Bool, funcType], [sliceType$2], false)}, {prop: "consume", name: "consume", pkg: "fmt", typ: $funcType([$String, $Bool], [$Bool], false)}, {prop: "peek", name: "peek", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "notEOF", name: "notEOF", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "accept", name: "accept", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "okVerb", name: "okVerb", pkg: "fmt", typ: $funcType([$Int32, $String, $String], [$Bool], false)}, {prop: "scanBool", name: "scanBool", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "getBase", name: "getBase", pkg: "fmt", typ: $funcType([$Int32], [$Int, $String], false)}, {prop: "scanNumber", name: "scanNumber", pkg: "fmt", typ: $funcType([$String, $Bool], [$String], false)}, {prop: "scanRune", name: "scanRune", pkg: "fmt", typ: $funcType([$Int], [$Int64], false)}, {prop: "scanBasePrefix", name: "scanBasePrefix", pkg: "fmt", typ: $funcType([], [$Int, $String, $Bool], false)}, {prop: "scanInt", name: "scanInt", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Int64], false)}, {prop: "scanUint", name: "scanUint", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Uint64], false)}, {prop: "floatToken", name: "floatToken", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "complexTokens", name: "complexTokens", pkg: "fmt", typ: $funcType([], [$String, $String], false)}, {prop: "convertFloat", name: "convertFloat", pkg: "fmt", typ: $funcType([$String, $Int], [$Float64], false)}, {prop: "scanComplex", name: "scanComplex", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Complex128], false)}, {prop: "convertString", name: "convertString", pkg: "fmt", typ: $funcType([$Int32], [$String], false)}, {prop: "quotedString", name: "quotedString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "hexByte", name: "hexByte", pkg: "fmt", typ: $funcType([], [$Uint8, $Bool], false)}, {prop: "hexString", name: "hexString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "scanPercent", name: "scanPercent", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "scanOne", name: "scanOne", pkg: "fmt", typ: $funcType([$Int32, $emptyInterface], [], false)}, {prop: "doScan", name: "doScan", pkg: "fmt", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "advance", name: "advance", pkg: "fmt", typ: $funcType([$String], [$Int], false)}, {prop: "doScanf", name: "doScanf", pkg: "fmt", typ: $funcType([$String, sliceType$1], [$Int, $error], false)}]; + ptrType$1.methods = [{prop: "write", name: "write", pkg: "fmt", typ: $funcType([sliceType$2], [], false)}, {prop: "writeString", name: "writeString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "writeByte", name: "writeByte", pkg: "fmt", typ: $funcType([$Uint8], [], false)}, {prop: "writeRune", name: "writeRune", pkg: "fmt", typ: $funcType([$Int32], [], false)}]; + ptrType$24.methods = [{prop: "free", name: "free", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "unknownType", name: "unknownType", pkg: "fmt", typ: $funcType([reflect.Value], [], false)}, {prop: "badVerb", name: "badVerb", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "fmtBool", name: "fmtBool", pkg: "fmt", typ: $funcType([$Bool, $Int32], [], false)}, {prop: "fmt0x64", name: "fmt0x64", pkg: "fmt", typ: $funcType([$Uint64, $Bool], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Bool, $Int32], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32], [], false)}, {prop: "fmtComplex", name: "fmtComplex", pkg: "fmt", typ: $funcType([$Complex128, $Int, $Int32], [], false)}, {prop: "fmtString", name: "fmtString", pkg: "fmt", typ: $funcType([$String, $Int32], [], false)}, {prop: "fmtBytes", name: "fmtBytes", pkg: "fmt", typ: $funcType([sliceType$2, $Int32, $String], [], false)}, {prop: "fmtPointer", name: "fmtPointer", pkg: "fmt", typ: $funcType([reflect.Value, $Int32], [], false)}, {prop: "catchPanic", name: "catchPanic", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32, $String], [], false)}, {prop: "handleMethods", name: "handleMethods", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "printArg", name: "printArg", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32], [], false)}, {prop: "printValue", name: "printValue", pkg: "fmt", typ: $funcType([reflect.Value, $Int32, $Int], [], false)}, {prop: "argNumber", name: "argNumber", pkg: "fmt", typ: $funcType([$Int, $String, $Int, $Int], [$Int, $Int, $Bool], false)}, {prop: "badArgNum", name: "badArgNum", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "missingArg", name: "missingArg", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "doPrintf", name: "doPrintf", pkg: "fmt", typ: $funcType([$String, sliceType$1], [], false)}, {prop: "doPrint", name: "doPrint", pkg: "fmt", typ: $funcType([sliceType$1], [], false)}, {prop: "doPrintln", name: "doPrintln", pkg: "fmt", typ: $funcType([sliceType$1], [], false)}]; + ptrType$26.methods = [{prop: "clearflags", name: "clearflags", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "fmt", typ: $funcType([ptrType$1], [], false)}, {prop: "writePadding", name: "writePadding", pkg: "fmt", typ: $funcType([$Int], [], false)}, {prop: "pad", name: "pad", pkg: "fmt", typ: $funcType([sliceType$2], [], false)}, {prop: "padString", name: "padString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtBoolean", name: "fmtBoolean", pkg: "fmt", typ: $funcType([$Bool], [], false)}, {prop: "fmtUnicode", name: "fmtUnicode", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Int, $Bool, $Int32, $String], [], false)}, {prop: "truncateString", name: "truncateString", pkg: "fmt", typ: $funcType([$String], [$String], false)}, {prop: "truncate", name: "truncate", pkg: "fmt", typ: $funcType([sliceType$2], [sliceType$2], false)}, {prop: "fmtS", name: "fmtS", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtBs", name: "fmtBs", pkg: "fmt", typ: $funcType([sliceType$2], [], false)}, {prop: "fmtSbx", name: "fmtSbx", pkg: "fmt", typ: $funcType([$String, sliceType$2, $String], [], false)}, {prop: "fmtSx", name: "fmtSx", pkg: "fmt", typ: $funcType([$String, $String], [], false)}, {prop: "fmtBx", name: "fmtBx", pkg: "fmt", typ: $funcType([sliceType$2, $String], [], false)}, {prop: "fmtQ", name: "fmtQ", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtC", name: "fmtC", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtQc", name: "fmtQc", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32, $Int], [], false)}]; + ptrType$27.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; + ScanState.init([{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "SkipSpace", name: "SkipSpace", pkg: "", typ: $funcType([], [], false)}, {prop: "Token", name: "Token", pkg: "", typ: $funcType([$Bool, funcType], [sliceType$2, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}]); + scanError.init("fmt", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); + ss.init("fmt", [{prop: "rs", name: "rs", embedded: false, exported: false, typ: io.RuneScanner, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: ""}, {prop: "count", name: "count", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "atEOF", name: "atEOF", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ssave", name: "ssave", embedded: true, exported: false, typ: ssave, tag: ""}]); + ssave.init("fmt", [{prop: "validSave", name: "validSave", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsEnd", name: "nlIsEnd", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsSpace", name: "nlIsSpace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "argLimit", name: "argLimit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "limit", name: "limit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxWid", name: "maxWid", embedded: false, exported: false, typ: $Int, tag: ""}]); + State.init([{prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}]); + Formatter.init([{prop: "Format", name: "Format", pkg: "", typ: $funcType([State, $Int32], [], false)}]); + Stringer.init([{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); + GoStringer.init([{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]); + buffer.init($Uint8); + pp.init("fmt", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "value", name: "value", embedded: false, exported: false, typ: reflect.Value, tag: ""}, {prop: "fmt", name: "fmt", embedded: false, exported: false, typ: fmt, tag: ""}, {prop: "reordered", name: "reordered", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "goodArgNum", name: "goodArgNum", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "panicking", name: "panicking", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "erroring", name: "erroring", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wrapErrs", name: "wrapErrs", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wrappedErr", name: "wrappedErr", embedded: false, exported: false, typ: $error, tag: ""}]); + fmtFlags.init("fmt", [{prop: "widPresent", name: "widPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "precPresent", name: "precPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "minus", name: "minus", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "plus", name: "plus", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharp", name: "sharp", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "space", name: "space", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "zero", name: "zero", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "plusV", name: "plusV", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharpV", name: "sharpV", embedded: false, exported: false, typ: $Bool, tag: ""}]); + fmt.init("fmt", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "fmtFlags", name: "fmtFlags", embedded: true, exported: false, typ: fmtFlags, tag: ""}, {prop: "wid", name: "wid", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prec", name: "prec", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "intbuf", name: "intbuf", embedded: false, exported: false, typ: arrayType$1, tag: ""}]); + wrapError.init("fmt", [{prop: "msg", name: "msg", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmtsort.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + space = new sliceType([$clone($toNativeArray($kindUint16, [9, 13]), arrayType), $clone($toNativeArray($kindUint16, [32, 32]), arrayType), $clone($toNativeArray($kindUint16, [133, 133]), arrayType), $clone($toNativeArray($kindUint16, [160, 160]), arrayType), $clone($toNativeArray($kindUint16, [5760, 5760]), arrayType), $clone($toNativeArray($kindUint16, [8192, 8202]), arrayType), $clone($toNativeArray($kindUint16, [8232, 8233]), arrayType), $clone($toNativeArray($kindUint16, [8239, 8239]), arrayType), $clone($toNativeArray($kindUint16, [8287, 8287]), arrayType), $clone($toNativeArray($kindUint16, [12288, 12288]), arrayType)]); + ssFree = new sync.Pool.ptr(sliceType$1.nil, (function func1() { + return new ss.ptr($ifaceNil, buffer.nil, 0, false, new ssave.ptr(false, false, false, 0, 0, 0)); + })); + complexError = errors.New("syntax error scanning complex number"); + boolError = errors.New("syntax error scanning boolean"); + ppFree = new sync.Pool.ptr(sliceType$1.nil, (function func2() { + return new pp.ptr(buffer.nil, $ifaceNil, new reflect.Value.ptr(ptrType.nil, 0, 0), new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType$1.zero()), false, false, false, false, false, $ifaceNil); + })); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["bytes"] = (function() { + var $pkg = {}, $init, errors, bytealg, io, unicode, utf8, Reader, asciiSet, Buffer, readOp, asciiSpace, errNegativeRead, errUnreadByte, NewReader, IndexByte, Equal, Count, Contains, LastIndexByte, HasPrefix, TrimLeftFunc, TrimRightFunc, TrimFunc, indexFunc, lastIndexFunc, makeASCIISet, containsRune, TrimRight, trimRightByte, trimRightASCII, trimRightUnicode, TrimSpace, Index, Cut, growSlice, NewBufferString; + errors = $packages["errors"]; + bytealg = $packages["internal/bytealg"]; + io = $packages["io"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Reader = $newType(0, $kindStruct, "bytes.Reader", true, "bytes", true, function(s_, i_, prevRune_) { + this.$val = this; + if (arguments.length === 0) { + this.s = sliceType.nil; + this.i = new $Int64(0, 0); + this.prevRune = 0; + return; + } + this.s = s_; + this.i = i_; + this.prevRune = prevRune_; + }); + asciiSet = $newType(32, $kindArray, "bytes.asciiSet", true, "bytes", false, null); + Buffer = $newType(0, $kindStruct, "bytes.Buffer", true, "bytes", true, function(buf_, off_, lastRead_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = sliceType.nil; + this.off = 0; + this.lastRead = 0; + return; + } + this.buf = buf_; + this.off = off_; + this.lastRead = lastRead_; + }); + readOp = $newType(1, $kindInt8, "bytes.readOp", true, "bytes", false, null); + $pkg.Reader = Reader; + $pkg.asciiSet = asciiSet; + $pkg.Buffer = Buffer; + $pkg.readOp = readOp; + $pkg.$finishSetup = function() { + $ptrType(Reader).prototype.Len = function Len() { + var r, x, x$1, x$2, x$3, x$4; + r = this; + if ((x = r.i, x$1 = (new $Int64(0, r.s.$length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { + return 0; + } + return (((x$2 = (x$3 = (new $Int64(0, r.s.$length)), x$4 = r.i, new $Int64(x$3.$high - x$4.$high, x$3.$low - x$4.$low)), x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)); + }; + $ptrType(Reader).prototype.Size = function Size() { + var r; + r = this; + return (new $Int64(0, r.s.$length)); + }; + $ptrType(Reader).prototype.Read = function Read(b) { + var _tmp, _tmp$1, b, err, n, r, x, x$1, x$2, x$3; + n = 0; + err = $ifaceNil; + r = this; + if ((x = r.i, x$1 = (new $Int64(0, r.s.$length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { + _tmp = 0; + _tmp$1 = io.EOF; + n = _tmp; + err = _tmp$1; + return [n, err]; + } + r.prevRune = -1; + n = $copySlice(b, $subslice(r.s, $flatten64(r.i))); + r.i = (x$2 = r.i, x$3 = (new $Int64(0, n)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); + return [n, err]; + }; + $ptrType(Reader).prototype.ReadAt = function ReadAt(b, off) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, b, err, n, off, r, x; + n = 0; + err = $ifaceNil; + r = this; + if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { + _tmp = 0; + _tmp$1 = errors.New("bytes.Reader.ReadAt: negative offset"); + n = _tmp; + err = _tmp$1; + return [n, err]; + } + if ((x = (new $Int64(0, r.s.$length)), (off.$high > x.$high || (off.$high === x.$high && off.$low >= x.$low)))) { + _tmp$2 = 0; + _tmp$3 = io.EOF; + n = _tmp$2; + err = _tmp$3; + return [n, err]; + } + n = $copySlice(b, $subslice(r.s, $flatten64(off))); + if (n < b.$length) { + err = io.EOF; + } + return [n, err]; + }; + $ptrType(Reader).prototype.ReadByte = function ReadByte() { + var b, r, x, x$1, x$2, x$3, x$4, x$5; + r = this; + r.prevRune = -1; + if ((x = r.i, x$1 = (new $Int64(0, r.s.$length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { + return [0, io.EOF]; + } + b = (x$2 = r.s, x$3 = r.i, (($flatten64(x$3) < 0 || $flatten64(x$3) >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + $flatten64(x$3)])); + r.i = (x$4 = r.i, x$5 = new $Int64(0, 1), new $Int64(x$4.$high + x$5.$high, x$4.$low + x$5.$low)); + return [b, $ifaceNil]; + }; + $ptrType(Reader).prototype.UnreadByte = function UnreadByte() { + var r, x, x$1, x$2; + r = this; + if ((x = r.i, (x.$high < 0 || (x.$high === 0 && x.$low <= 0)))) { + return errors.New("bytes.Reader.UnreadByte: at beginning of slice"); + } + r.prevRune = -1; + r.i = (x$1 = r.i, x$2 = new $Int64(0, 1), new $Int64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); + return $ifaceNil; + }; + $ptrType(Reader).prototype.ReadRune = function ReadRune() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, c, ch, err, r, size, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + ch = 0; + size = 0; + err = $ifaceNil; + r = this; + if ((x = r.i, x$1 = (new $Int64(0, r.s.$length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { + r.prevRune = -1; + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = io.EOF; + ch = _tmp; + size = _tmp$1; + err = _tmp$2; + return [ch, size, err]; + } + r.prevRune = (((x$2 = r.i, x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)); + c = (x$3 = r.s, x$4 = r.i, (($flatten64(x$4) < 0 || $flatten64(x$4) >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + $flatten64(x$4)])); + if (c < 128) { + r.i = (x$5 = r.i, x$6 = new $Int64(0, 1), new $Int64(x$5.$high + x$6.$high, x$5.$low + x$6.$low)); + _tmp$3 = ((c >> 0)); + _tmp$4 = 1; + _tmp$5 = $ifaceNil; + ch = _tmp$3; + size = _tmp$4; + err = _tmp$5; + return [ch, size, err]; + } + _tuple = utf8.DecodeRune($subslice(r.s, $flatten64(r.i))); + ch = _tuple[0]; + size = _tuple[1]; + r.i = (x$7 = r.i, x$8 = (new $Int64(0, size)), new $Int64(x$7.$high + x$8.$high, x$7.$low + x$8.$low)); + return [ch, size, err]; + }; + $ptrType(Reader).prototype.UnreadRune = function UnreadRune() { + var r, x; + r = this; + if ((x = r.i, (x.$high < 0 || (x.$high === 0 && x.$low <= 0)))) { + return errors.New("bytes.Reader.UnreadRune: at beginning of slice"); + } + if (r.prevRune < 0) { + return errors.New("bytes.Reader.UnreadRune: previous operation was not ReadRune"); + } + r.i = (new $Int64(0, r.prevRune)); + r.prevRune = -1; + return $ifaceNil; + }; + $ptrType(Reader).prototype.Seek = function Seek(offset, whence) { + var _1, abs, offset, r, whence, x, x$1; + r = this; + r.prevRune = -1; + abs = new $Int64(0, 0); + _1 = whence; + if (_1 === (0)) { + abs = offset; + } else if (_1 === (1)) { + abs = (x = r.i, new $Int64(x.$high + offset.$high, x.$low + offset.$low)); + } else if (_1 === (2)) { + abs = (x$1 = (new $Int64(0, r.s.$length)), new $Int64(x$1.$high + offset.$high, x$1.$low + offset.$low)); + } else { + return [new $Int64(0, 0), errors.New("bytes.Reader.Seek: invalid whence")]; + } + if ((abs.$high < 0 || (abs.$high === 0 && abs.$low < 0))) { + return [new $Int64(0, 0), errors.New("bytes.Reader.Seek: negative position")]; + } + r.i = abs; + return [abs, $ifaceNil]; + }; + $ptrType(Reader).prototype.WriteTo = function WriteTo(w) { + var {_r, _tmp, _tmp$1, _tuple, b, err, m, n, r, w, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {w}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = new $Int64(0, 0); + err = $ifaceNil; + r = this; + r.prevRune = -1; + if ((x = r.i, x$1 = (new $Int64(0, r.s.$length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { + _tmp = new $Int64(0, 0); + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + b = $subslice(r.s, $flatten64(r.i)); + _r = w.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = _tuple[0]; + err = _tuple[1]; + if (m > b.$length) { + $panic(new $String("bytes.Reader.WriteTo: invalid Write count")); + } + r.i = (x$2 = r.i, x$3 = (new $Int64(0, m)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); + n = (new $Int64(0, m)); + if (!((m === b.$length)) && $interfaceIsEqual(err, $ifaceNil)) { + err = io.ErrShortWrite; + } + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: WriteTo, $c: true, $r, _r, _tmp, _tmp$1, _tuple, b, err, m, n, r, w, x, x$1, x$2, x$3, $s};return $f; + }; + $ptrType(Reader).prototype.Reset = function Reset(b) { + var b, r; + r = this; + Reader.copy(r, new Reader.ptr(b, new $Int64(0, 0), -1)); + }; + NewReader = function NewReader$1(b) { + var b; + return new Reader.ptr(b, new $Int64(0, 0), -1); + }; + $pkg.NewReader = NewReader; + IndexByte = function IndexByte$1(s, c) { + var _i, _ref, b, c, i, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (b === c) { + return i; + } + _i++; + } + return -1; + }; + $pkg.IndexByte = IndexByte; + Equal = function Equal$1(a, b) { + var _i, _ref, a, b, c, i; + if (!((a.$length === b.$length))) { + return false; + } + _ref = a; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((c === ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i])))) { + return false; + } + _i++; + } + return true; + }; + $pkg.Equal = Equal; + Count = function Count$1(s, sep) { + var i, n, s, sep; + if (sep.$length === 0) { + return utf8.RuneCount(s) + 1 >> 0; + } + if (sep.$length === 1) { + return bytealg.Count(s, (0 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 0])); + } + n = 0; + while (true) { + i = Index(s, sep); + if (i === -1) { + return n; + } + n = n + (1) >> 0; + s = $subslice(s, (i + sep.$length >> 0)); + } + }; + $pkg.Count = Count; + Contains = function Contains$1(b, subslice) { + var b, subslice; + return !((Index(b, subslice) === -1)); + }; + $pkg.Contains = Contains; + LastIndexByte = function LastIndexByte$1(s, c) { + var c, i, s; + i = s.$length - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + if (((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]) === c) { + return i; + } + i = i - (1) >> 0; + } + return -1; + }; + $pkg.LastIndexByte = LastIndexByte; + HasPrefix = function HasPrefix$1(s, prefix) { + var prefix, s; + return s.$length >= prefix.$length && Equal($subslice(s, 0, prefix.$length), prefix); + }; + $pkg.HasPrefix = HasPrefix; + TrimLeftFunc = function TrimLeftFunc$1(s, f) { + var {_r, f, i, s, $s, $r, $c} = $restore(this, {s, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = indexFunc(s, f, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + if (i === -1) { + $s = -1; return sliceType.nil; + } + $s = -1; return $subslice(s, i); + /* */ } return; } var $f = {$blk: TrimLeftFunc$1, $c: true, $r, _r, f, i, s, $s};return $f; + }; + $pkg.TrimLeftFunc = TrimLeftFunc; + TrimRightFunc = function TrimRightFunc$1(s, f) { + var {_r, _tuple, f, i, s, wid, $s, $r, $c} = $restore(this, {s, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = lastIndexFunc(s, f, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + if (i >= 0 && ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]) >= 128) { + _tuple = utf8.DecodeRune($subslice(s, i)); + wid = _tuple[1]; + i = i + (wid) >> 0; + } else { + i = i + (1) >> 0; + } + $s = -1; return $subslice(s, 0, i); + /* */ } return; } var $f = {$blk: TrimRightFunc$1, $c: true, $r, _r, _tuple, f, i, s, wid, $s};return $f; + }; + $pkg.TrimRightFunc = TrimRightFunc; + TrimFunc = function TrimFunc$1(s, f) { + var {$24r, _r, _r$1, f, s, $s, $r, $c} = $restore(this, {s, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = TrimLeftFunc(s, f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = TrimRightFunc(_r, f); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: TrimFunc$1, $c: true, $r, $24r, _r, _r$1, f, s, $s};return $f; + }; + $pkg.TrimFunc = TrimFunc; + indexFunc = function indexFunc$1(s, f, truth) { + var {_r, _tuple, f, r, s, start, truth, wid, $s, $r, $c} = $restore(this, {s, f, truth}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + start = 0; + /* while (true) { */ case 1: + /* if (!(start < s.$length)) { break; } */ if(!(start < s.$length)) { $s = 2; continue; } + wid = 1; + r = ((((start < 0 || start >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + start]) >> 0)); + if (r >= 128) { + _tuple = utf8.DecodeRune($subslice(s, start)); + r = _tuple[0]; + wid = _tuple[1]; + } + _r = f(r); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === truth) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r === truth) { */ case 3: + $s = -1; return start; + /* } */ case 4: + start = start + (wid) >> 0; + $s = 1; continue; + case 2: + $s = -1; return -1; + /* */ } return; } var $f = {$blk: indexFunc$1, $c: true, $r, _r, _tuple, f, r, s, start, truth, wid, $s};return $f; + }; + lastIndexFunc = function lastIndexFunc$1(s, f, truth) { + var {_r, _tmp, _tmp$1, _tuple, f, i, r, s, size, truth, x, $s, $r, $c} = $restore(this, {s, f, truth}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = s.$length; + /* while (true) { */ case 1: + /* if (!(i > 0)) { break; } */ if(!(i > 0)) { $s = 2; continue; } + _tmp = (((x = i - 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])) >> 0)); + _tmp$1 = 1; + r = _tmp; + size = _tmp$1; + if (r >= 128) { + _tuple = utf8.DecodeLastRune($subslice(s, 0, i)); + r = _tuple[0]; + size = _tuple[1]; + } + i = i - (size) >> 0; + _r = f(r); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === truth) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r === truth) { */ case 3: + $s = -1; return i; + /* } */ case 4: + $s = 1; continue; + case 2: + $s = -1; return -1; + /* */ } return; } var $f = {$blk: lastIndexFunc$1, $c: true, $r, _r, _tmp, _tmp$1, _tuple, f, i, r, s, size, truth, x, $s};return $f; + }; + makeASCIISet = function makeASCIISet$1(chars) { + var _index, _q, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, as, c, chars, i, ok, y; + as = arrayType$1.zero(); + ok = false; + i = 0; + while (true) { + if (!(i < chars.length)) { break; } + c = chars.charCodeAt(i); + if (c >= 128) { + _tmp = $clone(as, asciiSet); + _tmp$1 = false; + asciiSet.copy(as, _tmp); + ok = _tmp$1; + return [as, ok]; + } + _index = (_q = c / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + ((_index < 0 || _index >= as.length) ? ($throwRuntimeError("index out of range"), undefined) : as[_index] = ((((_index < 0 || _index >= as.length) ? ($throwRuntimeError("index out of range"), undefined) : as[_index]) | (((y = ((_r = c % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)); + i = i + (1) >> 0; + } + _tmp$2 = $clone(as, asciiSet); + _tmp$3 = true; + asciiSet.copy(as, _tmp$2); + ok = _tmp$3; + return [as, ok]; + }; + $ptrType(asciiSet).prototype.contains = function contains(c) { + var _q, _r, as, c, x, x$1, y; + as = this.$val; + return !((((((x = as, x$1 = (_q = c / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) & (((y = ((_r = c % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)) === 0)); + }; + containsRune = function containsRune$1(s, r) { + var _i, _ref, _rune, c, r, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (c === r) { + return true; + } + _i += _rune[1]; + } + return false; + }; + TrimRight = function TrimRight$1(s, cutset) { + var _tuple, as, cutset, ok, s; + if ((s.$length === 0) || cutset === "") { + return s; + } + if ((cutset.length === 1) && cutset.charCodeAt(0) < 128) { + return trimRightByte(s, cutset.charCodeAt(0)); + } + _tuple = makeASCIISet(cutset); + as = $clone(_tuple[0], asciiSet); + ok = _tuple[1]; + if (ok) { + return trimRightASCII(s, as); + } + return trimRightUnicode(s, cutset); + }; + $pkg.TrimRight = TrimRight; + trimRightByte = function trimRightByte$1(s, c) { + var c, s, x; + while (true) { + if (!(s.$length > 0 && ((x = s.$length - 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])) === c))) { break; } + s = $subslice(s, 0, (s.$length - 1 >> 0)); + } + return s; + }; + trimRightASCII = function trimRightASCII$1(s, as) { + var as, s, x; + while (true) { + if (!(s.$length > 0)) { break; } + if (!new ptrType(as).contains((x = s.$length - 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])))) { + break; + } + s = $subslice(s, 0, (s.$length - 1 >> 0)); + } + return s; + }; + trimRightUnicode = function trimRightUnicode$1(s, cutset) { + var _tmp, _tmp$1, _tuple, cutset, n, r, s, x; + while (true) { + if (!(s.$length > 0)) { break; } + _tmp = (((x = s.$length - 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])) >> 0)); + _tmp$1 = 1; + r = _tmp; + n = _tmp$1; + if (r >= 128) { + _tuple = utf8.DecodeLastRune(s); + r = _tuple[0]; + n = _tuple[1]; + } + if (!containsRune(cutset, r)) { + break; + } + s = $subslice(s, 0, (s.$length - n >> 0)); + } + return s; + }; + TrimSpace = function TrimSpace$1(s) { + var {$24r, $24r$1, _r, _r$1, c, c$1, s, start, stop, x, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + start = 0; + /* while (true) { */ case 1: + /* if (!(start < s.$length)) { break; } */ if(!(start < s.$length)) { $s = 2; continue; } + c = ((start < 0 || start >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + start]); + /* */ if (c >= 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (c >= 128) { */ case 3: + _r = TrimFunc($subslice(s, start), unicode.IsSpace); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 6; case 6: return $24r; + /* } */ case 4: + if (((c < 0 || c >= asciiSpace.length) ? ($throwRuntimeError("index out of range"), undefined) : asciiSpace[c]) === 0) { + /* break; */ $s = 2; continue; + } + start = start + (1) >> 0; + $s = 1; continue; + case 2: + stop = s.$length; + /* while (true) { */ case 7: + /* if (!(stop > start)) { break; } */ if(!(stop > start)) { $s = 8; continue; } + c$1 = (x = stop - 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])); + /* */ if (c$1 >= 128) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (c$1 >= 128) { */ case 9: + _r$1 = TrimFunc($subslice(s, start, stop), unicode.IsSpace); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 12; case 12: return $24r$1; + /* } */ case 10: + if (((c$1 < 0 || c$1 >= asciiSpace.length) ? ($throwRuntimeError("index out of range"), undefined) : asciiSpace[c$1]) === 0) { + /* break; */ $s = 8; continue; + } + stop = stop - (1) >> 0; + $s = 7; continue; + case 8: + if (start === stop) { + $s = -1; return sliceType.nil; + } + $s = -1; return $subslice(s, start, stop); + /* */ } return; } var $f = {$blk: TrimSpace$1, $c: true, $r, $24r, $24r$1, _r, _r$1, c, c$1, s, start, stop, x, $s};return $f; + }; + $pkg.TrimSpace = TrimSpace; + Index = function Index$1(s, sep) { + var c0, c0$1, c1, c1$1, fails, fails$1, i, i$1, j, n, o, o$1, r, s, sep, t, t$1, x, x$1; + n = sep.$length; + if ((n === 0)) { + return 0; + } else if ((n === 1)) { + return IndexByte(s, (0 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 0])); + } else if ((n === s.$length)) { + if (Equal(sep, s)) { + return 0; + } + return -1; + } else if (n > s.$length) { + return -1; + } else if (n <= bytealg.MaxLen) { + if (s.$length <= 0) { + return bytealg.Index(s, sep); + } + c0 = (0 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 0]); + c1 = (1 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 1]); + i = 0; + t = (s.$length - n >> 0) + 1 >> 0; + fails = 0; + while (true) { + if (!(i < t)) { break; } + if (!((((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]) === c0))) { + o = IndexByte($subslice(s, (i + 1 >> 0), t), c0); + if (o < 0) { + return -1; + } + i = i + ((o + 1 >> 0)) >> 0; + } + if (((x = i + 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])) === c1) && Equal($subslice(s, i, (i + n >> 0)), sep)) { + return i; + } + fails = fails + (1) >> 0; + i = i + (1) >> 0; + if (fails > bytealg.Cutover(i)) { + r = bytealg.Index($subslice(s, i), sep); + if (r >= 0) { + return r + i >> 0; + } + return -1; + } + } + return -1; + } + c0$1 = (0 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 0]); + c1$1 = (1 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 1]); + i$1 = 0; + fails$1 = 0; + t$1 = (s.$length - n >> 0) + 1 >> 0; + while (true) { + if (!(i$1 < t$1)) { break; } + if (!((((i$1 < 0 || i$1 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i$1]) === c0$1))) { + o$1 = IndexByte($subslice(s, (i$1 + 1 >> 0), t$1), c0$1); + if (o$1 < 0) { + break; + } + i$1 = i$1 + ((o$1 + 1 >> 0)) >> 0; + } + if (((x$1 = i$1 + 1 >> 0, ((x$1 < 0 || x$1 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x$1])) === c1$1) && Equal($subslice(s, i$1, (i$1 + n >> 0)), sep)) { + return i$1; + } + i$1 = i$1 + (1) >> 0; + fails$1 = fails$1 + (1) >> 0; + if (fails$1 >= (4 + (i$1 >> 4 >> 0) >> 0) && i$1 < t$1) { + j = bytealg.IndexRabinKarpBytes($subslice(s, i$1), sep); + if (j < 0) { + return -1; + } + return i$1 + j >> 0; + } + } + return -1; + }; + $pkg.Index = Index; + Cut = function Cut$1(s, sep) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, after, before, found, i, s, sep; + before = sliceType.nil; + after = sliceType.nil; + found = false; + i = Index(s, sep); + if (i >= 0) { + _tmp = $subslice(s, 0, i); + _tmp$1 = $subslice(s, (i + sep.$length >> 0)); + _tmp$2 = true; + before = _tmp; + after = _tmp$1; + found = _tmp$2; + return [before, after, found]; + } + _tmp$3 = s; + _tmp$4 = sliceType.nil; + _tmp$5 = false; + before = _tmp$3; + after = _tmp$4; + found = _tmp$5; + return [before, after, found]; + }; + $pkg.Cut = Cut; + $ptrType(Buffer).prototype.Bytes = function Bytes() { + var b; + b = this; + return $subslice(b.buf, b.off); + }; + $ptrType(Buffer).prototype.String = function String() { + var b; + b = this; + if (b === ptrType$1.nil) { + return ""; + } + return ($bytesToString($subslice(b.buf, b.off))); + }; + $ptrType(Buffer).prototype.empty = function empty() { + var b; + b = this; + return b.buf.$length <= b.off; + }; + $ptrType(Buffer).prototype.Len = function Len$1() { + var b; + b = this; + return b.buf.$length - b.off >> 0; + }; + $ptrType(Buffer).prototype.Cap = function Cap() { + var b; + b = this; + return b.buf.$capacity; + }; + $ptrType(Buffer).prototype.Truncate = function Truncate(n) { + var b, n; + b = this; + if (n === 0) { + b.Reset(); + return; + } + b.lastRead = 0; + if (n < 0 || n > b.Len()) { + $panic(new $String("bytes.Buffer: truncation out of range")); + } + b.buf = $subslice(b.buf, 0, (b.off + n >> 0)); + }; + $ptrType(Buffer).prototype.Reset = function Reset$1() { + var b; + b = this; + b.buf = $subslice(b.buf, 0, 0); + b.off = 0; + b.lastRead = 0; + }; + $ptrType(Buffer).prototype.tryGrowByReslice = function tryGrowByReslice(n) { + var b, l, n; + b = this; + l = b.buf.$length; + if (n <= (b.buf.$capacity - l >> 0)) { + b.buf = $subslice(b.buf, 0, (l + n >> 0)); + return [l, true]; + } + return [0, false]; + }; + $ptrType(Buffer).prototype.grow = function grow(n) { + var _q, _tuple, b, c, i, m, n, ok; + b = this; + m = b.Len(); + if ((m === 0) && !((b.off === 0))) { + b.Reset(); + } + _tuple = b.tryGrowByReslice(n); + i = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return i; + } + if (b.buf === sliceType.nil && n <= 64) { + b.buf = $makeSlice(sliceType, n, 64); + return 0; + } + c = b.buf.$capacity; + if (n <= ((_q = c / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) - m >> 0)) { + $copySlice(b.buf, $subslice(b.buf, b.off)); + } else if (c > ((2147483647 - c >> 0) - n >> 0)) { + $panic($pkg.ErrTooLarge); + } else { + b.buf = growSlice($subslice(b.buf, b.off), b.off + n >> 0); + } + b.off = 0; + b.buf = $subslice(b.buf, 0, (m + n >> 0)); + return m; + }; + $ptrType(Buffer).prototype.Grow = function Grow(n) { + var b, m, n; + b = this; + if (n < 0) { + $panic(new $String("bytes.Buffer.Grow: negative count")); + } + m = b.grow(n); + b.buf = $subslice(b.buf, 0, m); + }; + $ptrType(Buffer).prototype.Write = function Write(p) { + var _tmp, _tmp$1, _tuple, b, err, m, n, ok, p; + n = 0; + err = $ifaceNil; + b = this; + b.lastRead = 0; + _tuple = b.tryGrowByReslice(p.$length); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = b.grow(p.$length); + } + _tmp = $copySlice($subslice(b.buf, m), p); + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + $ptrType(Buffer).prototype.WriteString = function WriteString(s) { + var _tmp, _tmp$1, _tuple, b, err, m, n, ok, s; + n = 0; + err = $ifaceNil; + b = this; + b.lastRead = 0; + _tuple = b.tryGrowByReslice(s.length); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = b.grow(s.length); + } + _tmp = $copyString($subslice(b.buf, m), s); + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + $ptrType(Buffer).prototype.ReadFrom = function ReadFrom(r) { + var {_r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, i, m, n, r, x, $s, $r, $c} = $restore(this, {r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = new $Int64(0, 0); + err = $ifaceNil; + b = this; + b.lastRead = 0; + /* while (true) { */ case 1: + i = b.grow(512); + b.buf = $subslice(b.buf, 0, i); + _r = r.Read($subslice(b.buf, i, b.buf.$capacity)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = _tuple[0]; + e = _tuple[1]; + if (m < 0) { + $panic(errNegativeRead); + } + b.buf = $subslice(b.buf, 0, (i + m >> 0)); + n = (x = (new $Int64(0, m)), new $Int64(n.$high + x.$high, n.$low + x.$low)); + if ($interfaceIsEqual(e, io.EOF)) { + _tmp = n; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp$2 = n; + _tmp$3 = e; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + $s = 1; continue; + case 2: + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: ReadFrom, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, i, m, n, r, x, $s};return $f; + }; + growSlice = function growSlice$1(b, n) { + var b, b2, c, n, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + $deferred.push([(function growSlice·func1() { + if (!($interfaceIsEqual($recover(), $ifaceNil))) { + $panic($pkg.ErrTooLarge); + } + }), []]); + c = b.$length + n >> 0; + if (c < ($imul(2, b.$capacity))) { + c = $imul(2, b.$capacity); + } + b2 = $appendSlice((sliceType.nil), $makeSlice(sliceType, c)); + $copySlice(b2, b); + return $subslice(b2, 0, b.$length); + /* */ } catch(err) { $err = err; return sliceType.nil; } finally { $callDeferred($deferred, $err); } + }; + $ptrType(Buffer).prototype.WriteTo = function WriteTo$1(w) { + var {_r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, m, n, nBytes, w, $s, $r, $c} = $restore(this, {w}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = new $Int64(0, 0); + err = $ifaceNil; + b = this; + b.lastRead = 0; + nBytes = b.Len(); + /* */ if (nBytes > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (nBytes > 0) { */ case 1: + _r = w.Write($subslice(b.buf, b.off)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = _tuple[0]; + e = _tuple[1]; + if (m > nBytes) { + $panic(new $String("bytes.Buffer.WriteTo: invalid Write count")); + } + b.off = b.off + (m) >> 0; + n = (new $Int64(0, m)); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp = n; + _tmp$1 = e; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if (!((m === nBytes))) { + _tmp$2 = n; + _tmp$3 = io.ErrShortWrite; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* } */ case 2: + b.Reset(); + _tmp$4 = n; + _tmp$5 = $ifaceNil; + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: WriteTo$1, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, m, n, nBytes, w, $s};return $f; + }; + $ptrType(Buffer).prototype.WriteByte = function WriteByte(c) { + var _tuple, b, c, m, ok, x; + b = this; + b.lastRead = 0; + _tuple = b.tryGrowByReslice(1); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = b.grow(1); + } + (x = b.buf, ((m < 0 || m >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + m] = c)); + return $ifaceNil; + }; + $ptrType(Buffer).prototype.WriteRune = function WriteRune(r) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, err, m, n, ok, r; + n = 0; + err = $ifaceNil; + b = this; + if (((r >>> 0)) < 128) { + b.WriteByte(((r << 24 >>> 24))); + _tmp = 1; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + } + b.lastRead = 0; + _tuple = b.tryGrowByReslice(4); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = b.grow(4); + } + n = utf8.EncodeRune($subslice(b.buf, m, (m + 4 >> 0)), r); + b.buf = $subslice(b.buf, 0, (m + n >> 0)); + _tmp$2 = n; + _tmp$3 = $ifaceNil; + n = _tmp$2; + err = _tmp$3; + return [n, err]; + }; + $ptrType(Buffer).prototype.Read = function Read$1(p) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, err, n, p; + n = 0; + err = $ifaceNil; + b = this; + b.lastRead = 0; + if (b.empty()) { + b.Reset(); + if (p.$length === 0) { + _tmp = 0; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + } + _tmp$2 = 0; + _tmp$3 = io.EOF; + n = _tmp$2; + err = _tmp$3; + return [n, err]; + } + n = $copySlice(p, $subslice(b.buf, b.off)); + b.off = b.off + (n) >> 0; + if (n > 0) { + b.lastRead = -1; + } + _tmp$4 = n; + _tmp$5 = $ifaceNil; + n = _tmp$4; + err = _tmp$5; + return [n, err]; + }; + $ptrType(Buffer).prototype.Next = function Next(n) { + var b, data, m, n; + b = this; + b.lastRead = 0; + m = b.Len(); + if (n > m) { + n = m; + } + data = $subslice(b.buf, b.off, (b.off + n >> 0)); + b.off = b.off + (n) >> 0; + if (n > 0) { + b.lastRead = -1; + } + return data; + }; + $ptrType(Buffer).prototype.ReadByte = function ReadByte$1() { + var b, c, x, x$1; + b = this; + if (b.empty()) { + b.Reset(); + return [0, io.EOF]; + } + c = (x = b.buf, x$1 = b.off, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + b.off = b.off + (1) >> 0; + b.lastRead = -1; + return [c, $ifaceNil]; + }; + $ptrType(Buffer).prototype.ReadRune = function ReadRune$1() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, b, c, err, n, r, size, x, x$1; + r = 0; + size = 0; + err = $ifaceNil; + b = this; + if (b.empty()) { + b.Reset(); + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = io.EOF; + r = _tmp; + size = _tmp$1; + err = _tmp$2; + return [r, size, err]; + } + c = (x = b.buf, x$1 = b.off, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (c < 128) { + b.off = b.off + (1) >> 0; + b.lastRead = 1; + _tmp$3 = ((c >> 0)); + _tmp$4 = 1; + _tmp$5 = $ifaceNil; + r = _tmp$3; + size = _tmp$4; + err = _tmp$5; + return [r, size, err]; + } + _tuple = utf8.DecodeRune($subslice(b.buf, b.off)); + r = _tuple[0]; + n = _tuple[1]; + b.off = b.off + (n) >> 0; + b.lastRead = ((n << 24 >> 24)); + _tmp$6 = r; + _tmp$7 = n; + _tmp$8 = $ifaceNil; + r = _tmp$6; + size = _tmp$7; + err = _tmp$8; + return [r, size, err]; + }; + $ptrType(Buffer).prototype.UnreadRune = function UnreadRune$1() { + var b; + b = this; + if (b.lastRead <= 0) { + return errors.New("bytes.Buffer: UnreadRune: previous operation was not a successful ReadRune"); + } + if (b.off >= ((b.lastRead >> 0))) { + b.off = b.off - (((b.lastRead >> 0))) >> 0; + } + b.lastRead = 0; + return $ifaceNil; + }; + $ptrType(Buffer).prototype.UnreadByte = function UnreadByte$1() { + var b; + b = this; + if (b.lastRead === 0) { + return errUnreadByte; + } + b.lastRead = 0; + if (b.off > 0) { + b.off = b.off - (1) >> 0; + } + return $ifaceNil; + }; + $ptrType(Buffer).prototype.ReadBytes = function ReadBytes(delim) { + var _tmp, _tmp$1, _tuple, b, delim, err, line, slice; + line = sliceType.nil; + err = $ifaceNil; + b = this; + _tuple = b.readSlice(delim); + slice = _tuple[0]; + err = _tuple[1]; + line = $appendSlice(line, slice); + _tmp = line; + _tmp$1 = err; + line = _tmp; + err = _tmp$1; + return [line, err]; + }; + $ptrType(Buffer).prototype.readSlice = function readSlice(delim) { + var _tmp, _tmp$1, b, delim, end, err, i, line; + line = sliceType.nil; + err = $ifaceNil; + b = this; + i = IndexByte($subslice(b.buf, b.off), delim); + end = (b.off + i >> 0) + 1 >> 0; + if (i < 0) { + end = b.buf.$length; + err = io.EOF; + } + line = $subslice(b.buf, b.off, end); + b.off = end; + b.lastRead = -1; + _tmp = line; + _tmp$1 = err; + line = _tmp; + err = _tmp$1; + return [line, err]; + }; + $ptrType(Buffer).prototype.ReadString = function ReadString(delim) { + var _tmp, _tmp$1, _tuple, b, delim, err, line, slice; + line = ""; + err = $ifaceNil; + b = this; + _tuple = b.readSlice(delim); + slice = _tuple[0]; + err = _tuple[1]; + _tmp = ($bytesToString(slice)); + _tmp$1 = err; + line = _tmp; + err = _tmp$1; + return [line, err]; + }; + NewBufferString = function NewBufferString$1(s) { + var s; + return new Buffer.ptr((new sliceType($stringToBytes(s))), 0, 0); + }; + $pkg.NewBufferString = NewBufferString; + ptrType$2.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([sliceType], [], false)}]; + ptrType.methods = [{prop: "contains", name: "contains", pkg: "bytes", typ: $funcType([$Uint8], [$Bool], false)}]; + ptrType$1.methods = [{prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "empty", name: "empty", pkg: "bytes", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "tryGrowByReslice", name: "tryGrowByReslice", pkg: "bytes", typ: $funcType([$Int], [$Int, $Bool], false)}, {prop: "grow", name: "grow", pkg: "bytes", typ: $funcType([$Int], [$Int], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "readSlice", name: "readSlice", pkg: "bytes", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([$Uint8], [$String, $error], false)}]; + Reader.init("bytes", [{prop: "s", name: "s", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "prevRune", name: "prevRune", embedded: false, exported: false, typ: $Int, tag: ""}]); + asciiSet.init($Uint32, 8); + Buffer.init("bytes", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "off", name: "off", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastRead", name: "lastRead", embedded: false, exported: false, typ: readOp, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + asciiSpace = $toNativeArray($kindUint8, [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + $pkg.ErrTooLarge = errors.New("bytes.Buffer: too large"); + errNegativeRead = errors.New("bytes.Buffer: reader returned negative count from Read"); + errUnreadByte = errors.New("bytes.Buffer: UnreadByte: previous operation was not a successful read"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["strings"] = (function() { + var $pkg = {}, $init, errors, js, io, sync, unicode, utf8, asciiSet, Reader, Builder, asciiSpace, explode, Contains, ContainsAny, ContainsRune, IndexRune, IndexAny, LastIndexAny, LastIndexByte, genSplit, SplitN, Split, Fields, FieldsFunc, Join, HasPrefix, HasSuffix, Map, Repeat, ToUpper, ToLower, TrimLeftFunc, TrimRightFunc, TrimFunc, indexFunc, lastIndexFunc, makeASCIISet, TrimSpace, TrimPrefix, TrimSuffix, Replace, ReplaceAll, EqualFold, Cut, NewReader, IndexByte, Index, LastIndex, Count; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + io = $packages["io"]; + sync = $packages["sync"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + asciiSet = $newType(32, $kindArray, "strings.asciiSet", true, "strings", false, null); + Reader = $newType(0, $kindStruct, "strings.Reader", true, "strings", true, function(s_, i_, prevRune_) { + this.$val = this; + if (arguments.length === 0) { + this.s = ""; + this.i = new $Int64(0, 0); + this.prevRune = 0; + return; + } + this.s = s_; + this.i = i_; + this.prevRune = prevRune_; + }); + Builder = $newType(0, $kindStruct, "strings.Builder", true, "strings", true, function(addr_, buf_) { + this.$val = this; + if (arguments.length === 0) { + this.addr = ptrType$1.nil; + this.buf = sliceType$2.nil; + return; + } + this.addr = addr_; + this.buf = buf_; + }); + $pkg.asciiSet = asciiSet; + $pkg.Reader = Reader; + $pkg.Builder = Builder; + $pkg.$finishSetup = function() { + explode = function explode$1(s, n) { + var _tuple, a, ch, i, l, n, s, size, x; + l = utf8.RuneCountInString(s); + if (n < 0 || n > l) { + n = l; + } + a = $makeSlice(sliceType, n); + i = 0; + while (true) { + if (!(i < (n - 1 >> 0))) { break; } + _tuple = utf8.DecodeRuneInString(s); + ch = _tuple[0]; + size = _tuple[1]; + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = $substring(s, 0, size)); + s = $substring(s, size); + if (ch === 65533) { + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = "\xEF\xBF\xBD"); + } + i = i + (1) >> 0; + } + if (n > 0) { + (x = n - 1 >> 0, ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x] = s)); + } + return a; + }; + Contains = function Contains$1(s, substr) { + var s, substr; + return Index(s, substr) >= 0; + }; + $pkg.Contains = Contains; + ContainsAny = function ContainsAny$1(s, chars) { + var chars, s; + return IndexAny(s, chars) >= 0; + }; + $pkg.ContainsAny = ContainsAny; + ContainsRune = function ContainsRune$1(s, r) { + var r, s; + return IndexRune(s, r) >= 0; + }; + $pkg.ContainsRune = ContainsRune; + IndexRune = function IndexRune$1(s, r) { + var _i, _ref, _rune, i, r, r$1, s; + if (0 <= r && r < 128) { + return IndexByte(s, ((r << 24 >>> 24))); + } else if ((r === 65533)) { + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + r$1 = _rune[0]; + if (r$1 === 65533) { + return i; + } + _i += _rune[1]; + } + return -1; + } else if (!utf8.ValidRune(r)) { + return -1; + } else { + return Index(s, ($encodeRune(r))); + } + }; + $pkg.IndexRune = IndexRune; + IndexAny = function IndexAny$1(s, chars) { + var _i, _ref, _rune, _tuple, as, c, chars, i, i$1, isASCII, r, s; + if (chars === "") { + return -1; + } + if (chars.length === 1) { + r = ((chars.charCodeAt(0) >> 0)); + if (r >= 128) { + r = 65533; + } + return IndexRune(s, r); + } + if (s.length > 8) { + _tuple = makeASCIISet(chars); + as = $clone(_tuple[0], asciiSet); + isASCII = _tuple[1]; + if (isASCII) { + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (new ptrType(as).contains(s.charCodeAt(i))) { + return i; + } + i = i + (1) >> 0; + } + return -1; + } + } + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i$1 = _i; + c = _rune[0]; + if (IndexRune(chars, c) >= 0) { + return i$1; + } + _i += _rune[1]; + } + return -1; + }; + $pkg.IndexAny = IndexAny; + LastIndexAny = function LastIndexAny$1(s, chars) { + var _tuple, _tuple$1, _tuple$2, as, chars, i, i$1, i$2, isASCII, r, r$1, rc, rc$1, s, size, size$1; + if (chars === "") { + return -1; + } + if (s.length === 1) { + rc = ((s.charCodeAt(0) >> 0)); + if (rc >= 128) { + rc = 65533; + } + if (IndexRune(chars, rc) >= 0) { + return 0; + } + return -1; + } + if (s.length > 8) { + _tuple = makeASCIISet(chars); + as = $clone(_tuple[0], asciiSet); + isASCII = _tuple[1]; + if (isASCII) { + i = s.length - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + if (new ptrType(as).contains(s.charCodeAt(i))) { + return i; + } + i = i - (1) >> 0; + } + return -1; + } + } + if (chars.length === 1) { + rc$1 = ((chars.charCodeAt(0) >> 0)); + if (rc$1 >= 128) { + rc$1 = 65533; + } + i$1 = s.length; + while (true) { + if (!(i$1 > 0)) { break; } + _tuple$1 = utf8.DecodeLastRuneInString($substring(s, 0, i$1)); + r = _tuple$1[0]; + size = _tuple$1[1]; + i$1 = i$1 - (size) >> 0; + if (rc$1 === r) { + return i$1; + } + } + return -1; + } + i$2 = s.length; + while (true) { + if (!(i$2 > 0)) { break; } + _tuple$2 = utf8.DecodeLastRuneInString($substring(s, 0, i$2)); + r$1 = _tuple$2[0]; + size$1 = _tuple$2[1]; + i$2 = i$2 - (size$1) >> 0; + if (IndexRune(chars, r$1) >= 0) { + return i$2; + } + } + return -1; + }; + $pkg.LastIndexAny = LastIndexAny; + LastIndexByte = function LastIndexByte$1(s, c) { + var c, i, s; + i = s.length - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + if (s.charCodeAt(i) === c) { + return i; + } + i = i - (1) >> 0; + } + return -1; + }; + $pkg.LastIndexByte = LastIndexByte; + genSplit = function genSplit$1(s, sep, sepSave, n) { + var a, i, m, n, s, sep, sepSave; + if (n === 0) { + return sliceType.nil; + } + if (sep === "") { + return explode(s, n); + } + if (n < 0) { + n = Count(s, sep) + 1 >> 0; + } + if (n > (s.length + 1 >> 0)) { + n = s.length + 1 >> 0; + } + a = $makeSlice(sliceType, n); + n = n - (1) >> 0; + i = 0; + while (true) { + if (!(i < n)) { break; } + m = Index(s, sep); + if (m < 0) { + break; + } + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = $substring(s, 0, (m + sepSave >> 0))); + s = $substring(s, (m + sep.length >> 0)); + i = i + (1) >> 0; + } + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = s); + return $subslice(a, 0, (i + 1 >> 0)); + }; + SplitN = function SplitN$1(s, sep, n) { + var n, s, sep; + return genSplit(s, sep, 0, n); + }; + $pkg.SplitN = SplitN; + Split = function Split$1(s, sep) { + var s, sep; + return genSplit(s, sep, 0, -1); + }; + $pkg.Split = Split; + Fields = function Fields$1(s) { + var {$24r, _r, a, fieldStart, i, i$1, isSpace, n, na, r, s, setBits, wasSpace, x, x$1, x$2, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + wasSpace = 1; + setBits = 0; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + r = s.charCodeAt(i); + setBits = (setBits | (r)) >>> 0; + isSpace = ((((r < 0 || r >= asciiSpace.length) ? ($throwRuntimeError("index out of range"), undefined) : asciiSpace[r]) >> 0)); + n = n + ((wasSpace & (~isSpace >> 0))) >> 0; + wasSpace = isSpace; + i = i + (1) >> 0; + } + /* */ if (setBits >= 128) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (setBits >= 128) { */ case 1: + _r = FieldsFunc(s, unicode.IsSpace); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + a = $makeSlice(sliceType, n); + na = 0; + fieldStart = 0; + i$1 = 0; + while (true) { + if (!(i$1 < s.length && !(((x = s.charCodeAt(i$1), ((x < 0 || x >= asciiSpace.length) ? ($throwRuntimeError("index out of range"), undefined) : asciiSpace[x])) === 0)))) { break; } + i$1 = i$1 + (1) >> 0; + } + fieldStart = i$1; + while (true) { + if (!(i$1 < s.length)) { break; } + if ((x$1 = s.charCodeAt(i$1), ((x$1 < 0 || x$1 >= asciiSpace.length) ? ($throwRuntimeError("index out of range"), undefined) : asciiSpace[x$1])) === 0) { + i$1 = i$1 + (1) >> 0; + continue; + } + ((na < 0 || na >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + na] = $substring(s, fieldStart, i$1)); + na = na + (1) >> 0; + i$1 = i$1 + (1) >> 0; + while (true) { + if (!(i$1 < s.length && !(((x$2 = s.charCodeAt(i$1), ((x$2 < 0 || x$2 >= asciiSpace.length) ? ($throwRuntimeError("index out of range"), undefined) : asciiSpace[x$2])) === 0)))) { break; } + i$1 = i$1 + (1) >> 0; + } + fieldStart = i$1; + } + if (fieldStart < s.length) { + ((na < 0 || na >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + na] = $substring(s, fieldStart)); + } + $s = -1; return a; + /* */ } return; } var $f = {$blk: Fields$1, $c: true, $r, $24r, _r, a, fieldStart, i, i$1, isSpace, n, na, r, s, setBits, wasSpace, x, x$1, x$2, $s};return $f; + }; + $pkg.Fields = Fields; + FieldsFunc = function FieldsFunc$1(s, f) { + var {_i, _i$1, _r, _ref, _ref$1, _rune, a, end, f, i, rune, s, span$1, spans, start, $s, $r, $c} = $restore(this, {s, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + spans = $makeSlice(sliceType$1, 0, 32); + start = -1; + _ref = s; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.length)) { break; } */ if(!(_i < _ref.length)) { $s = 2; continue; } + _rune = $decodeRune(_ref, _i); + end = _i; + rune = _rune[0]; + _r = f(rune); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r) { */ case 3: + if (start >= 0) { + spans = $append(spans, new span.ptr(start, end)); + start = ~start >> 0; + } + $s = 5; continue; + /* } else { */ case 4: + if (start < 0) { + start = end; + } + /* } */ case 5: + _i += _rune[1]; + $s = 1; continue; + case 2: + if (start >= 0) { + spans = $append(spans, new span.ptr(start, s.length)); + } + a = $makeSlice(sliceType, spans.$length); + _ref$1 = spans; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i = _i$1; + span$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), span); + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = $substring(s, span$1.start, span$1.end)); + _i$1++; + } + $s = -1; return a; + /* */ } return; } var $f = {$blk: FieldsFunc$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _rune, a, end, f, i, rune, s, span$1, spans, start, $s};return $f; + }; + $pkg.FieldsFunc = FieldsFunc; + Join = function Join$1(elems, sep) { + var _1, _i, _ref, b, elems, i, n, s, sep; + _1 = elems.$length; + if (_1 === (0)) { + return ""; + } else if (_1 === (1)) { + return (0 >= elems.$length ? ($throwRuntimeError("index out of range"), undefined) : elems.$array[elems.$offset + 0]); + } + n = $imul(sep.length, ((elems.$length - 1 >> 0))); + i = 0; + while (true) { + if (!(i < elems.$length)) { break; } + n = n + (((i < 0 || i >= elems.$length) ? ($throwRuntimeError("index out of range"), undefined) : elems.$array[elems.$offset + i]).length) >> 0; + i = i + (1) >> 0; + } + b = new Builder.ptr(ptrType$1.nil, sliceType$2.nil); + b.Grow(n); + b.WriteString((0 >= elems.$length ? ($throwRuntimeError("index out of range"), undefined) : elems.$array[elems.$offset + 0])); + _ref = $subslice(elems, 1); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + b.WriteString(sep); + b.WriteString(s); + _i++; + } + return b.String(); + }; + $pkg.Join = Join; + HasPrefix = function HasPrefix$1(s, prefix) { + var prefix, s; + return s.length >= prefix.length && $substring(s, 0, prefix.length) === prefix; + }; + $pkg.HasPrefix = HasPrefix; + HasSuffix = function HasSuffix$1(s, suffix) { + var s, suffix; + return s.length >= suffix.length && $substring(s, (s.length - suffix.length >> 0)) === suffix; + }; + $pkg.HasSuffix = HasSuffix; + Map = function Map$1(mapping, s) { + var {_i, _i$1, _r, _r$1, _ref, _ref$1, _rune, _rune$1, _tuple, b, c, c$1, i, mapping, r, r$1, s, width, $s, $r, $c} = $restore(this, {mapping, s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = new Builder.ptr(ptrType$1.nil, sliceType$2.nil); + _ref = s; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.length)) { break; } */ if(!(_i < _ref.length)) { $s = 2; continue; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + _r = mapping(c); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + if ((r === c) && !((c === 65533))) { + _i += _rune[1]; + /* continue; */ $s = 1; continue; + } + width = 0; + if (c === 65533) { + _tuple = utf8.DecodeRuneInString($substring(s, i)); + c = _tuple[0]; + width = _tuple[1]; + if (!((width === 1)) && (r === c)) { + _i += _rune[1]; + /* continue; */ $s = 1; continue; + } + } else { + width = utf8.RuneLen(c); + } + b.Grow(s.length + 4 >> 0); + b.WriteString($substring(s, 0, i)); + if (r >= 0) { + b.WriteRune(r); + } + s = $substring(s, (i + width >> 0)); + /* break; */ $s = 2; continue; + case 2: + if (b.Cap() === 0) { + $s = -1; return s; + } + _ref$1 = s; + _i$1 = 0; + /* while (true) { */ case 4: + /* if (!(_i$1 < _ref$1.length)) { break; } */ if(!(_i$1 < _ref$1.length)) { $s = 5; continue; } + _rune$1 = $decodeRune(_ref$1, _i$1); + c$1 = _rune$1[0]; + _r$1 = mapping(c$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + r$1 = _r$1; + if (r$1 >= 0) { + if (r$1 < 128) { + b.WriteByte(((r$1 << 24 >>> 24))); + } else { + b.WriteRune(r$1); + } + } + _i$1 += _rune$1[1]; + $s = 4; continue; + case 5: + $s = -1; return b.String(); + /* */ } return; } var $f = {$blk: Map$1, $c: true, $r, _i, _i$1, _r, _r$1, _ref, _ref$1, _rune, _rune$1, _tuple, b, c, c$1, i, mapping, r, r$1, s, width, $s};return $f; + }; + $pkg.Map = Map; + Repeat = function Repeat$1(s, count) { + var _q, _q$1, b, count, n, s; + if (count === 0) { + return ""; + } + if (count < 0) { + $panic(new $String("strings: negative Repeat count")); + } else if (!(((_q = ($imul(s.length, count)) / count, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) === s.length))) { + $panic(new $String("strings: Repeat count causes overflow")); + } + n = $imul(s.length, count); + b = new Builder.ptr(ptrType$1.nil, sliceType$2.nil); + b.Grow(n); + b.WriteString(s); + while (true) { + if (!(b.Len() < n)) { break; } + if (b.Len() <= (_q$1 = n / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { + b.WriteString(b.String()); + } else { + b.WriteString($substring(b.String(), 0, (n - b.Len() >> 0))); + break; + } + } + return b.String(); + }; + $pkg.Repeat = Repeat; + ToUpper = function ToUpper$1(s) { + var {$24r, _r, _tmp, _tmp$1, b, c, c$1, hasLower, i, i$1, isASCII, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tmp = true; + _tmp$1 = false; + isASCII = _tmp; + hasLower = _tmp$1; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + c = s.charCodeAt(i); + if (c >= 128) { + isASCII = false; + break; + } + hasLower = hasLower || (97 <= c && c <= 122); + i = i + (1) >> 0; + } + if (isASCII) { + if (!hasLower) { + $s = -1; return s; + } + b = new Builder.ptr(ptrType$1.nil, sliceType$2.nil); + b.Grow(s.length); + i$1 = 0; + while (true) { + if (!(i$1 < s.length)) { break; } + c$1 = s.charCodeAt(i$1); + if (97 <= c$1 && c$1 <= 122) { + c$1 = c$1 - (32) << 24 >>> 24; + } + b.WriteByte(c$1); + i$1 = i$1 + (1) >> 0; + } + $s = -1; return b.String(); + } + _r = Map(unicode.ToUpper, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ToUpper$1, $c: true, $r, $24r, _r, _tmp, _tmp$1, b, c, c$1, hasLower, i, i$1, isASCII, s, $s};return $f; + }; + $pkg.ToUpper = ToUpper; + ToLower = function ToLower$1(s) { + var {$24r, _r, _tmp, _tmp$1, b, c, c$1, hasUpper, i, i$1, isASCII, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tmp = true; + _tmp$1 = false; + isASCII = _tmp; + hasUpper = _tmp$1; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + c = s.charCodeAt(i); + if (c >= 128) { + isASCII = false; + break; + } + hasUpper = hasUpper || (65 <= c && c <= 90); + i = i + (1) >> 0; + } + if (isASCII) { + if (!hasUpper) { + $s = -1; return s; + } + b = new Builder.ptr(ptrType$1.nil, sliceType$2.nil); + b.Grow(s.length); + i$1 = 0; + while (true) { + if (!(i$1 < s.length)) { break; } + c$1 = s.charCodeAt(i$1); + if (65 <= c$1 && c$1 <= 90) { + c$1 = c$1 + (32) << 24 >>> 24; + } + b.WriteByte(c$1); + i$1 = i$1 + (1) >> 0; + } + $s = -1; return b.String(); + } + _r = Map(unicode.ToLower, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ToLower$1, $c: true, $r, $24r, _r, _tmp, _tmp$1, b, c, c$1, hasUpper, i, i$1, isASCII, s, $s};return $f; + }; + $pkg.ToLower = ToLower; + TrimLeftFunc = function TrimLeftFunc$1(s, f) { + var {_r, f, i, s, $s, $r, $c} = $restore(this, {s, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = indexFunc(s, f, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + if (i === -1) { + $s = -1; return ""; + } + $s = -1; return $substring(s, i); + /* */ } return; } var $f = {$blk: TrimLeftFunc$1, $c: true, $r, _r, f, i, s, $s};return $f; + }; + $pkg.TrimLeftFunc = TrimLeftFunc; + TrimRightFunc = function TrimRightFunc$1(s, f) { + var {_r, _tuple, f, i, s, wid, $s, $r, $c} = $restore(this, {s, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = lastIndexFunc(s, f, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + if (i >= 0 && s.charCodeAt(i) >= 128) { + _tuple = utf8.DecodeRuneInString($substring(s, i)); + wid = _tuple[1]; + i = i + (wid) >> 0; + } else { + i = i + (1) >> 0; + } + $s = -1; return $substring(s, 0, i); + /* */ } return; } var $f = {$blk: TrimRightFunc$1, $c: true, $r, _r, _tuple, f, i, s, wid, $s};return $f; + }; + $pkg.TrimRightFunc = TrimRightFunc; + TrimFunc = function TrimFunc$1(s, f) { + var {$24r, _r, _r$1, f, s, $s, $r, $c} = $restore(this, {s, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = TrimLeftFunc(s, f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = TrimRightFunc(_r, f); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: TrimFunc$1, $c: true, $r, $24r, _r, _r$1, f, s, $s};return $f; + }; + $pkg.TrimFunc = TrimFunc; + indexFunc = function indexFunc$1(s, f, truth) { + var {_i, _r, _ref, _rune, f, i, r, s, truth, $s, $r, $c} = $restore(this, {s, f, truth}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = s; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.length)) { break; } */ if(!(_i < _ref.length)) { $s = 2; continue; } + _rune = $decodeRune(_ref, _i); + i = _i; + r = _rune[0]; + _r = f(r); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === truth) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r === truth) { */ case 3: + $s = -1; return i; + /* } */ case 4: + _i += _rune[1]; + $s = 1; continue; + case 2: + $s = -1; return -1; + /* */ } return; } var $f = {$blk: indexFunc$1, $c: true, $r, _i, _r, _ref, _rune, f, i, r, s, truth, $s};return $f; + }; + lastIndexFunc = function lastIndexFunc$1(s, f, truth) { + var {_r, _tuple, f, i, r, s, size, truth, $s, $r, $c} = $restore(this, {s, f, truth}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = s.length; + /* while (true) { */ case 1: + /* if (!(i > 0)) { break; } */ if(!(i > 0)) { $s = 2; continue; } + _tuple = utf8.DecodeLastRuneInString($substring(s, 0, i)); + r = _tuple[0]; + size = _tuple[1]; + i = i - (size) >> 0; + _r = f(r); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === truth) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r === truth) { */ case 3: + $s = -1; return i; + /* } */ case 4: + $s = 1; continue; + case 2: + $s = -1; return -1; + /* */ } return; } var $f = {$blk: lastIndexFunc$1, $c: true, $r, _r, _tuple, f, i, r, s, size, truth, $s};return $f; + }; + makeASCIISet = function makeASCIISet$1(chars) { + var _index, _q, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, as, c, chars, i, ok, y; + as = arrayType.zero(); + ok = false; + i = 0; + while (true) { + if (!(i < chars.length)) { break; } + c = chars.charCodeAt(i); + if (c >= 128) { + _tmp = $clone(as, asciiSet); + _tmp$1 = false; + asciiSet.copy(as, _tmp); + ok = _tmp$1; + return [as, ok]; + } + _index = (_q = c / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + ((_index < 0 || _index >= as.length) ? ($throwRuntimeError("index out of range"), undefined) : as[_index] = ((((_index < 0 || _index >= as.length) ? ($throwRuntimeError("index out of range"), undefined) : as[_index]) | (((y = ((_r = c % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)); + i = i + (1) >> 0; + } + _tmp$2 = $clone(as, asciiSet); + _tmp$3 = true; + asciiSet.copy(as, _tmp$2); + ok = _tmp$3; + return [as, ok]; + }; + $ptrType(asciiSet).prototype.contains = function contains(c) { + var _q, _r, as, c, x, x$1, y; + as = this.$val; + return !((((((x = as, x$1 = (_q = c / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) & (((y = ((_r = c % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)) === 0)); + }; + TrimSpace = function TrimSpace$1(s) { + var {$24r, $24r$1, _r, _r$1, c, c$1, s, start, stop, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + start = 0; + /* while (true) { */ case 1: + /* if (!(start < s.length)) { break; } */ if(!(start < s.length)) { $s = 2; continue; } + c = s.charCodeAt(start); + /* */ if (c >= 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (c >= 128) { */ case 3: + _r = TrimFunc($substring(s, start), unicode.IsSpace); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 6; case 6: return $24r; + /* } */ case 4: + if (((c < 0 || c >= asciiSpace.length) ? ($throwRuntimeError("index out of range"), undefined) : asciiSpace[c]) === 0) { + /* break; */ $s = 2; continue; + } + start = start + (1) >> 0; + $s = 1; continue; + case 2: + stop = s.length; + /* while (true) { */ case 7: + /* if (!(stop > start)) { break; } */ if(!(stop > start)) { $s = 8; continue; } + c$1 = s.charCodeAt((stop - 1 >> 0)); + /* */ if (c$1 >= 128) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (c$1 >= 128) { */ case 9: + _r$1 = TrimRightFunc($substring(s, start, stop), unicode.IsSpace); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 12; case 12: return $24r$1; + /* } */ case 10: + if (((c$1 < 0 || c$1 >= asciiSpace.length) ? ($throwRuntimeError("index out of range"), undefined) : asciiSpace[c$1]) === 0) { + /* break; */ $s = 8; continue; + } + stop = stop - (1) >> 0; + $s = 7; continue; + case 8: + $s = -1; return $substring(s, start, stop); + /* */ } return; } var $f = {$blk: TrimSpace$1, $c: true, $r, $24r, $24r$1, _r, _r$1, c, c$1, s, start, stop, $s};return $f; + }; + $pkg.TrimSpace = TrimSpace; + TrimPrefix = function TrimPrefix$1(s, prefix) { + var prefix, s; + if (HasPrefix(s, prefix)) { + return $substring(s, prefix.length); + } + return s; + }; + $pkg.TrimPrefix = TrimPrefix; + TrimSuffix = function TrimSuffix$1(s, suffix) { + var s, suffix; + if (HasSuffix(s, suffix)) { + return $substring(s, 0, (s.length - suffix.length >> 0)); + } + return s; + }; + $pkg.TrimSuffix = TrimSuffix; + Replace = function Replace$1(s, old, new$1, n) { + var _tuple, b, i, j, m, n, new$1, old, s, start, wid; + if (old === new$1 || (n === 0)) { + return s; + } + m = Count(s, old); + if (m === 0) { + return s; + } else if (n < 0 || m < n) { + n = m; + } + b = new Builder.ptr(ptrType$1.nil, sliceType$2.nil); + b.Grow(s.length + ($imul(n, ((new$1.length - old.length >> 0)))) >> 0); + start = 0; + i = 0; + while (true) { + if (!(i < n)) { break; } + j = start; + if (old.length === 0) { + if (i > 0) { + _tuple = utf8.DecodeRuneInString($substring(s, start)); + wid = _tuple[1]; + j = j + (wid) >> 0; + } + } else { + j = j + (Index($substring(s, start), old)) >> 0; + } + b.WriteString($substring(s, start, j)); + b.WriteString(new$1); + start = j + old.length >> 0; + i = i + (1) >> 0; + } + b.WriteString($substring(s, start)); + return b.String(); + }; + $pkg.Replace = Replace; + ReplaceAll = function ReplaceAll$1(s, old, new$1) { + var new$1, old, s; + return Replace(s, old, new$1, -1); + }; + $pkg.ReplaceAll = ReplaceAll; + EqualFold = function EqualFold$1(s, t) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, r, r$1, r$2, s, size, size$1, sr, t, tr; + while (true) { + if (!(!(s === "") && !(t === ""))) { break; } + _tmp = 0; + _tmp$1 = 0; + sr = _tmp; + tr = _tmp$1; + if (s.charCodeAt(0) < 128) { + _tmp$2 = ((s.charCodeAt(0) >> 0)); + _tmp$3 = $substring(s, 1); + sr = _tmp$2; + s = _tmp$3; + } else { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + size = _tuple[1]; + _tmp$4 = r; + _tmp$5 = $substring(s, size); + sr = _tmp$4; + s = _tmp$5; + } + if (t.charCodeAt(0) < 128) { + _tmp$6 = ((t.charCodeAt(0) >> 0)); + _tmp$7 = $substring(t, 1); + tr = _tmp$6; + t = _tmp$7; + } else { + _tuple$1 = utf8.DecodeRuneInString(t); + r$1 = _tuple$1[0]; + size$1 = _tuple$1[1]; + _tmp$8 = r$1; + _tmp$9 = $substring(t, size$1); + tr = _tmp$8; + t = _tmp$9; + } + if (tr === sr) { + continue; + } + if (tr < sr) { + _tmp$10 = sr; + _tmp$11 = tr; + tr = _tmp$10; + sr = _tmp$11; + } + if (tr < 128) { + if (65 <= sr && sr <= 90 && (tr === ((sr + 97 >> 0) - 65 >> 0))) { + continue; + } + return false; + } + r$2 = unicode.SimpleFold(sr); + while (true) { + if (!(!((r$2 === sr)) && r$2 < tr)) { break; } + r$2 = unicode.SimpleFold(r$2); + } + if (r$2 === tr) { + continue; + } + return false; + } + return s === t; + }; + $pkg.EqualFold = EqualFold; + Cut = function Cut$1(s, sep) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, after, before, found, i, s, sep; + before = ""; + after = ""; + found = false; + i = Index(s, sep); + if (i >= 0) { + _tmp = $substring(s, 0, i); + _tmp$1 = $substring(s, (i + sep.length >> 0)); + _tmp$2 = true; + before = _tmp; + after = _tmp$1; + found = _tmp$2; + return [before, after, found]; + } + _tmp$3 = s; + _tmp$4 = ""; + _tmp$5 = false; + before = _tmp$3; + after = _tmp$4; + found = _tmp$5; + return [before, after, found]; + }; + $pkg.Cut = Cut; + $ptrType(Reader).prototype.Len = function Len() { + var r, x, x$1, x$2, x$3, x$4; + r = this; + if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { + return 0; + } + return (((x$2 = (x$3 = (new $Int64(0, r.s.length)), x$4 = r.i, new $Int64(x$3.$high - x$4.$high, x$3.$low - x$4.$low)), x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)); + }; + $ptrType(Reader).prototype.Size = function Size() { + var r; + r = this; + return (new $Int64(0, r.s.length)); + }; + $ptrType(Reader).prototype.Read = function Read(b) { + var _tmp, _tmp$1, b, err, n, r, x, x$1, x$2, x$3; + n = 0; + err = $ifaceNil; + r = this; + if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { + _tmp = 0; + _tmp$1 = io.EOF; + n = _tmp; + err = _tmp$1; + return [n, err]; + } + r.prevRune = -1; + n = $copyString(b, $substring(r.s, $flatten64(r.i))); + r.i = (x$2 = r.i, x$3 = (new $Int64(0, n)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); + return [n, err]; + }; + $ptrType(Reader).prototype.ReadAt = function ReadAt(b, off) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, b, err, n, off, r, x; + n = 0; + err = $ifaceNil; + r = this; + if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { + _tmp = 0; + _tmp$1 = errors.New("strings.Reader.ReadAt: negative offset"); + n = _tmp; + err = _tmp$1; + return [n, err]; + } + if ((x = (new $Int64(0, r.s.length)), (off.$high > x.$high || (off.$high === x.$high && off.$low >= x.$low)))) { + _tmp$2 = 0; + _tmp$3 = io.EOF; + n = _tmp$2; + err = _tmp$3; + return [n, err]; + } + n = $copyString(b, $substring(r.s, $flatten64(off))); + if (n < b.$length) { + err = io.EOF; + } + return [n, err]; + }; + $ptrType(Reader).prototype.ReadByte = function ReadByte() { + var b, r, x, x$1, x$2, x$3; + r = this; + r.prevRune = -1; + if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { + return [0, io.EOF]; + } + b = r.s.charCodeAt($flatten64(r.i)); + r.i = (x$2 = r.i, x$3 = new $Int64(0, 1), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); + return [b, $ifaceNil]; + }; + $ptrType(Reader).prototype.UnreadByte = function UnreadByte() { + var r, x, x$1, x$2; + r = this; + if ((x = r.i, (x.$high < 0 || (x.$high === 0 && x.$low <= 0)))) { + return errors.New("strings.Reader.UnreadByte: at beginning of string"); + } + r.prevRune = -1; + r.i = (x$1 = r.i, x$2 = new $Int64(0, 1), new $Int64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); + return $ifaceNil; + }; + $ptrType(Reader).prototype.ReadRune = function ReadRune() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, c, ch, err, r, size, x, x$1, x$2, x$3, x$4, x$5, x$6; + ch = 0; + size = 0; + err = $ifaceNil; + r = this; + if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { + r.prevRune = -1; + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = io.EOF; + ch = _tmp; + size = _tmp$1; + err = _tmp$2; + return [ch, size, err]; + } + r.prevRune = (((x$2 = r.i, x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)); + c = r.s.charCodeAt($flatten64(r.i)); + if (c < 128) { + r.i = (x$3 = r.i, x$4 = new $Int64(0, 1), new $Int64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)); + _tmp$3 = ((c >> 0)); + _tmp$4 = 1; + _tmp$5 = $ifaceNil; + ch = _tmp$3; + size = _tmp$4; + err = _tmp$5; + return [ch, size, err]; + } + _tuple = utf8.DecodeRuneInString($substring(r.s, $flatten64(r.i))); + ch = _tuple[0]; + size = _tuple[1]; + r.i = (x$5 = r.i, x$6 = (new $Int64(0, size)), new $Int64(x$5.$high + x$6.$high, x$5.$low + x$6.$low)); + return [ch, size, err]; + }; + $ptrType(Reader).prototype.UnreadRune = function UnreadRune() { + var r, x; + r = this; + if ((x = r.i, (x.$high < 0 || (x.$high === 0 && x.$low <= 0)))) { + return errors.New("strings.Reader.UnreadRune: at beginning of string"); + } + if (r.prevRune < 0) { + return errors.New("strings.Reader.UnreadRune: previous operation was not ReadRune"); + } + r.i = (new $Int64(0, r.prevRune)); + r.prevRune = -1; + return $ifaceNil; + }; + $ptrType(Reader).prototype.Seek = function Seek(offset, whence) { + var _1, abs, offset, r, whence, x, x$1; + r = this; + r.prevRune = -1; + abs = new $Int64(0, 0); + _1 = whence; + if (_1 === (0)) { + abs = offset; + } else if (_1 === (1)) { + abs = (x = r.i, new $Int64(x.$high + offset.$high, x.$low + offset.$low)); + } else if (_1 === (2)) { + abs = (x$1 = (new $Int64(0, r.s.length)), new $Int64(x$1.$high + offset.$high, x$1.$low + offset.$low)); + } else { + return [new $Int64(0, 0), errors.New("strings.Reader.Seek: invalid whence")]; + } + if ((abs.$high < 0 || (abs.$high === 0 && abs.$low < 0))) { + return [new $Int64(0, 0), errors.New("strings.Reader.Seek: negative position")]; + } + r.i = abs; + return [abs, $ifaceNil]; + }; + $ptrType(Reader).prototype.WriteTo = function WriteTo(w) { + var {_r, _tmp, _tmp$1, _tuple, err, m, n, r, s, w, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {w}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = new $Int64(0, 0); + err = $ifaceNil; + r = this; + r.prevRune = -1; + if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { + _tmp = new $Int64(0, 0); + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + s = $substring(r.s, $flatten64(r.i)); + _r = io.WriteString(w, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = _tuple[0]; + err = _tuple[1]; + if (m > s.length) { + $panic(new $String("strings.Reader.WriteTo: invalid WriteString count")); + } + r.i = (x$2 = r.i, x$3 = (new $Int64(0, m)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); + n = (new $Int64(0, m)); + if (!((m === s.length)) && $interfaceIsEqual(err, $ifaceNil)) { + err = io.ErrShortWrite; + } + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: WriteTo, $c: true, $r, _r, _tmp, _tmp$1, _tuple, err, m, n, r, s, w, x, x$1, x$2, x$3, $s};return $f; + }; + $ptrType(Reader).prototype.Reset = function Reset(s) { + var r, s; + r = this; + Reader.copy(r, new Reader.ptr(s, new $Int64(0, 0), -1)); + }; + NewReader = function NewReader$1(s) { + var s; + return new Reader.ptr(s, new $Int64(0, 0), -1); + }; + $pkg.NewReader = NewReader; + IndexByte = function IndexByte$1(s, c) { + var c, s; + return $parseInt(s.indexOf($global.String.fromCharCode(c))) >> 0; + }; + $pkg.IndexByte = IndexByte; + Index = function Index$1(s, sep) { + var s, sep; + return $parseInt(s.indexOf(sep)) >> 0; + }; + $pkg.Index = Index; + LastIndex = function LastIndex$1(s, sep) { + var s, sep; + return $parseInt(s.lastIndexOf(sep)) >> 0; + }; + $pkg.LastIndex = LastIndex; + Count = function Count$1(s, sep) { + var n, pos, s, sep; + n = 0; + if ((sep.length === 0)) { + return utf8.RuneCountInString(s) + 1 >> 0; + } else if (sep.length > s.length) { + return 0; + } else if ((sep.length === s.length)) { + if (sep === s) { + return 1; + } + return 0; + } + while (true) { + pos = Index(s, sep); + if (pos === -1) { + break; + } + n = n + (1) >> 0; + s = $substring(s, (pos + sep.length >> 0)); + } + return n; + }; + $pkg.Count = Count; + $ptrType(Builder).prototype.String = function String() { + var b; + b = this; + return ($bytesToString(b.buf)); + }; + $ptrType(Builder).prototype.copyCheck = function copyCheck() { + var b; + b = this; + if (b.addr === ptrType$1.nil) { + b.addr = b; + } else if (!(b.addr === b)) { + $panic(new $String("strings: illegal use of non-zero Builder copied by value")); + } + }; + $ptrType(Builder).prototype.Len = function Len$1() { + var b; + b = this; + return b.buf.$length; + }; + $ptrType(Builder).prototype.Cap = function Cap() { + var b; + b = this; + return b.buf.$capacity; + }; + $ptrType(Builder).prototype.Reset = function Reset$1() { + var b; + b = this; + b.addr = ptrType$1.nil; + b.buf = sliceType$2.nil; + }; + $ptrType(Builder).prototype.grow = function grow(n) { + var b, buf, n; + b = this; + buf = $makeSlice(sliceType$2, b.buf.$length, (($imul(2, b.buf.$capacity)) + n >> 0)); + $copySlice(buf, b.buf); + b.buf = buf; + }; + $ptrType(Builder).prototype.Grow = function Grow(n) { + var b, n; + b = this; + b.copyCheck(); + if (n < 0) { + $panic(new $String("strings.Builder.Grow: negative count")); + } + if ((b.buf.$capacity - b.buf.$length >> 0) < n) { + b.grow(n); + } + }; + $ptrType(Builder).prototype.Write = function Write$1(p) { + var b, p; + b = this; + b.copyCheck(); + b.buf = $appendSlice(b.buf, p); + return [p.$length, $ifaceNil]; + }; + $ptrType(Builder).prototype.WriteByte = function WriteByte(c) { + var b, c; + b = this; + b.copyCheck(); + b.buf = $append(b.buf, c); + return $ifaceNil; + }; + $ptrType(Builder).prototype.WriteRune = function WriteRune(r) { + var b, l, n, r; + b = this; + b.copyCheck(); + if (((r >>> 0)) < 128) { + b.buf = $append(b.buf, ((r << 24 >>> 24))); + return [1, $ifaceNil]; + } + l = b.buf.$length; + if ((b.buf.$capacity - l >> 0) < 4) { + b.grow(4); + } + n = utf8.EncodeRune($subslice(b.buf, l, (l + 4 >> 0)), r); + b.buf = $subslice(b.buf, 0, (l + n >> 0)); + return [n, $ifaceNil]; + }; + $ptrType(Builder).prototype.WriteString = function WriteString$7(s) { + var b, s; + b = this; + b.copyCheck(); + b.buf = $appendSlice(b.buf, s); + return [s.length, $ifaceNil]; + }; + ptrType.methods = [{prop: "contains", name: "contains", pkg: "strings", typ: $funcType([$Uint8], [$Bool], false)}]; + ptrType$10.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([$String], [], false)}]; + ptrType$1.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "copyCheck", name: "copyCheck", pkg: "strings", typ: $funcType([], [], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "grow", name: "grow", pkg: "strings", typ: $funcType([$Int], [], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]; + asciiSet.init($Uint32, 8); + Reader.init("strings", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "prevRune", name: "prevRune", embedded: false, exported: false, typ: $Int, tag: ""}]); + Builder.init("strings", [{prop: "addr", name: "addr", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$2, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + asciiSpace = $toNativeArray($kindUint8, [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["bufio"] = (function() { + var $pkg = {}, $init, bytes, errors, io, strings, utf8, Scanner, SplitFunc, Reader, errNegativeRead, errNegativeWrite, NewScanner, dropCR, ScanLines, NewReaderSize, NewReader; + bytes = $packages["bytes"]; + errors = $packages["errors"]; + io = $packages["io"]; + strings = $packages["strings"]; + utf8 = $packages["unicode/utf8"]; + Scanner = $newType(0, $kindStruct, "bufio.Scanner", true, "bufio", true, function(r_, split_, maxTokenSize_, token_, buf_, start_, end_, err_, empties_, scanCalled_, done_) { + this.$val = this; + if (arguments.length === 0) { + this.r = $ifaceNil; + this.split = $throwNilPointerError; + this.maxTokenSize = 0; + this.token = sliceType.nil; + this.buf = sliceType.nil; + this.start = 0; + this.end = 0; + this.err = $ifaceNil; + this.empties = 0; + this.scanCalled = false; + this.done = false; + return; + } + this.r = r_; + this.split = split_; + this.maxTokenSize = maxTokenSize_; + this.token = token_; + this.buf = buf_; + this.start = start_; + this.end = end_; + this.err = err_; + this.empties = empties_; + this.scanCalled = scanCalled_; + this.done = done_; + }); + SplitFunc = $newType(4, $kindFunc, "bufio.SplitFunc", true, "bufio", true, null); + Reader = $newType(0, $kindStruct, "bufio.Reader", true, "bufio", true, function(buf_, rd_, r_, w_, err_, lastByte_, lastRuneSize_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = sliceType.nil; + this.rd = $ifaceNil; + this.r = 0; + this.w = 0; + this.err = $ifaceNil; + this.lastByte = 0; + this.lastRuneSize = 0; + return; + } + this.buf = buf_; + this.rd = rd_; + this.r = r_; + this.w = w_; + this.err = err_; + this.lastByte = lastByte_; + this.lastRuneSize = lastRuneSize_; + }); + $pkg.Scanner = Scanner; + $pkg.SplitFunc = SplitFunc; + $pkg.Reader = Reader; + $pkg.$finishSetup = function() { + NewScanner = function NewScanner$1(r) { + var r; + return new Scanner.ptr(r, ScanLines, 65536, sliceType.nil, sliceType.nil, 0, 0, $ifaceNil, 0, false, false); + }; + $pkg.NewScanner = NewScanner; + $ptrType(Scanner).prototype.Err = function Err() { + var s; + s = this; + if ($interfaceIsEqual(s.err, io.EOF)) { + return $ifaceNil; + } + return s.err; + }; + $ptrType(Scanner).prototype.Bytes = function Bytes() { + var s; + s = this; + return s.token; + }; + $ptrType(Scanner).prototype.Text = function Text() { + var s; + s = this; + return ($bytesToString(s.token)); + }; + $ptrType(Scanner).prototype.Scan = function Scan() { + var {_q, _r, _r$1, _tuple, _tuple$1, advance, err, err$1, loop, n, newBuf, newSize, s, token, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + if (s.done) { + $s = -1; return false; + } + s.scanCalled = true; + /* while (true) { */ case 1: + /* */ if (s.end > s.start || !($interfaceIsEqual(s.err, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (s.end > s.start || !($interfaceIsEqual(s.err, $ifaceNil))) { */ case 3: + _r = s.split($subslice(s.buf, s.start, s.end), !($interfaceIsEqual(s.err, $ifaceNil))); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + advance = _tuple[0]; + token = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, $pkg.ErrFinalToken)) { + s.token = token; + s.done = true; + $s = -1; return true; + } + s.setErr(err); + $s = -1; return false; + } + if (!s.advance(advance)) { + $s = -1; return false; + } + s.token = token; + if (!(token === sliceType.nil)) { + if ($interfaceIsEqual(s.err, $ifaceNil) || advance > 0) { + s.empties = 0; + } else { + s.empties = s.empties + (1) >> 0; + if (s.empties > 100) { + $panic(new $String("bufio.Scan: too many empty tokens without progressing")); + } + } + $s = -1; return true; + } + /* } */ case 4: + if (!($interfaceIsEqual(s.err, $ifaceNil))) { + s.start = 0; + s.end = 0; + $s = -1; return false; + } + if (s.start > 0 && ((s.end === s.buf.$length) || s.start > (_q = s.buf.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")))) { + $copySlice(s.buf, $subslice(s.buf, s.start, s.end)); + s.end = s.end - (s.start) >> 0; + s.start = 0; + } + if (s.end === s.buf.$length) { + if (s.buf.$length >= s.maxTokenSize || s.buf.$length > 1073741823) { + s.setErr($pkg.ErrTooLong); + $s = -1; return false; + } + newSize = $imul(s.buf.$length, 2); + if (newSize === 0) { + newSize = 4096; + } + if (newSize > s.maxTokenSize) { + newSize = s.maxTokenSize; + } + newBuf = $makeSlice(sliceType, newSize); + $copySlice(newBuf, $subslice(s.buf, s.start, s.end)); + s.buf = newBuf; + s.end = s.end - (s.start) >> 0; + s.start = 0; + } + loop = 0; + /* while (true) { */ case 6: + _r$1 = s.r.Read($subslice(s.buf, s.end, s.buf.$length)); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + n = _tuple$1[0]; + err$1 = _tuple$1[1]; + if (n < 0 || (s.buf.$length - s.end >> 0) < n) { + s.setErr($pkg.ErrBadReadCount); + /* break; */ $s = 7; continue; + } + s.end = s.end + (n) >> 0; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + s.setErr(err$1); + /* break; */ $s = 7; continue; + } + if (n > 0) { + s.empties = 0; + /* break; */ $s = 7; continue; + } + loop = loop + (1) >> 0; + if (loop > 100) { + s.setErr(io.ErrNoProgress); + /* break; */ $s = 7; continue; + } + $s = 6; continue; + case 7: + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: Scan, $c: true, $r, _q, _r, _r$1, _tuple, _tuple$1, advance, err, err$1, loop, n, newBuf, newSize, s, token, $s};return $f; + }; + $ptrType(Scanner).prototype.advance = function advance(n) { + var n, s; + s = this; + if (n < 0) { + s.setErr($pkg.ErrNegativeAdvance); + return false; + } + if (n > (s.end - s.start >> 0)) { + s.setErr($pkg.ErrAdvanceTooFar); + return false; + } + s.start = s.start + (n) >> 0; + return true; + }; + $ptrType(Scanner).prototype.setErr = function setErr(err) { + var err, s; + s = this; + if ($interfaceIsEqual(s.err, $ifaceNil) || $interfaceIsEqual(s.err, io.EOF)) { + s.err = err; + } + }; + $ptrType(Scanner).prototype.Buffer = function Buffer(buf, max) { + var buf, max, s; + s = this; + if (s.scanCalled) { + $panic(new $String("Buffer called after Scan")); + } + s.buf = $subslice(buf, 0, buf.$capacity); + s.maxTokenSize = max; + }; + $ptrType(Scanner).prototype.Split = function Split(split) { + var s, split; + s = this; + if (s.scanCalled) { + $panic(new $String("Split called after Scan")); + } + s.split = split; + }; + dropCR = function dropCR$1(data) { + var data, x; + if (data.$length > 0 && ((x = data.$length - 1 >> 0, ((x < 0 || x >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + x])) === 13)) { + return $subslice(data, 0, (data.$length - 1 >> 0)); + } + return data; + }; + ScanLines = function ScanLines$1(data, atEOF) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, advance$1, atEOF, data, err, i, token; + advance$1 = 0; + token = sliceType.nil; + err = $ifaceNil; + if (atEOF && (data.$length === 0)) { + _tmp = 0; + _tmp$1 = sliceType.nil; + _tmp$2 = $ifaceNil; + advance$1 = _tmp; + token = _tmp$1; + err = _tmp$2; + return [advance$1, token, err]; + } + i = bytes.IndexByte(data, 10); + if (i >= 0) { + _tmp$3 = i + 1 >> 0; + _tmp$4 = dropCR($subslice(data, 0, i)); + _tmp$5 = $ifaceNil; + advance$1 = _tmp$3; + token = _tmp$4; + err = _tmp$5; + return [advance$1, token, err]; + } + if (atEOF) { + _tmp$6 = data.$length; + _tmp$7 = dropCR(data); + _tmp$8 = $ifaceNil; + advance$1 = _tmp$6; + token = _tmp$7; + err = _tmp$8; + return [advance$1, token, err]; + } + _tmp$9 = 0; + _tmp$10 = sliceType.nil; + _tmp$11 = $ifaceNil; + advance$1 = _tmp$9; + token = _tmp$10; + err = _tmp$11; + return [advance$1, token, err]; + }; + $pkg.ScanLines = ScanLines; + NewReaderSize = function NewReaderSize$1(rd, size) { + var _tuple, b, ok, r, rd, size; + _tuple = $assertType(rd, ptrType, true); + b = _tuple[0]; + ok = _tuple[1]; + if (ok && b.buf.$length >= size) { + return b; + } + if (size < 16) { + size = 16; + } + r = new Reader.ptr(sliceType.nil, $ifaceNil, 0, 0, $ifaceNil, 0, 0); + r.reset($makeSlice(sliceType, size), rd); + return r; + }; + $pkg.NewReaderSize = NewReaderSize; + NewReader = function NewReader$1(rd) { + var rd; + return NewReaderSize(rd, 4096); + }; + $pkg.NewReader = NewReader; + $ptrType(Reader).prototype.Size = function Size() { + var b; + b = this; + return b.buf.$length; + }; + $ptrType(Reader).prototype.Reset = function Reset(r) { + var b, r; + b = this; + if (b.buf === sliceType.nil) { + b.buf = $makeSlice(sliceType, 4096); + } + b.reset(b.buf, r); + }; + $ptrType(Reader).prototype.reset = function reset(buf, r) { + var b, buf, r; + b = this; + Reader.copy(b, new Reader.ptr(buf, r, 0, 0, $ifaceNil, -1, -1)); + }; + $ptrType(Reader).prototype.fill = function fill() { + var {_r, _tuple, b, err, i, n, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = this; + if (b.r > 0) { + $copySlice(b.buf, $subslice(b.buf, b.r, b.w)); + b.w = b.w - (b.r) >> 0; + b.r = 0; + } + if (b.w >= b.buf.$length) { + $panic(new $String("bufio: tried to fill full buffer")); + } + i = 100; + /* while (true) { */ case 1: + /* if (!(i > 0)) { break; } */ if(!(i > 0)) { $s = 2; continue; } + _r = b.rd.Read($subslice(b.buf, b.w)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (n < 0) { + $panic(errNegativeRead); + } + b.w = b.w + (n) >> 0; + if (!($interfaceIsEqual(err, $ifaceNil))) { + b.err = err; + $s = -1; return; + } + if (n > 0) { + $s = -1; return; + } + i = i - (1) >> 0; + $s = 1; continue; + case 2: + b.err = io.ErrNoProgress; + $s = -1; return; + /* */ } return; } var $f = {$blk: fill, $c: true, $r, _r, _tuple, b, err, i, n, $s};return $f; + }; + $ptrType(Reader).prototype.readErr = function readErr() { + var b, err; + b = this; + err = b.err; + b.err = $ifaceNil; + return err; + }; + $ptrType(Reader).prototype.Peek = function Peek(n) { + var {avail, b, err, n, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = this; + if (n < 0) { + $s = -1; return [sliceType.nil, $pkg.ErrNegativeCount]; + } + b.lastByte = -1; + b.lastRuneSize = -1; + /* while (true) { */ case 1: + /* if (!((b.w - b.r >> 0) < n && (b.w - b.r >> 0) < b.buf.$length && $interfaceIsEqual(b.err, $ifaceNil))) { break; } */ if(!((b.w - b.r >> 0) < n && (b.w - b.r >> 0) < b.buf.$length && $interfaceIsEqual(b.err, $ifaceNil))) { $s = 2; continue; } + $r = b.fill(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 1; continue; + case 2: + if (n > b.buf.$length) { + $s = -1; return [$subslice(b.buf, b.r, b.w), $pkg.ErrBufferFull]; + } + err = $ifaceNil; + avail = b.w - b.r >> 0; + if (avail < n) { + n = avail; + err = b.readErr(); + if ($interfaceIsEqual(err, $ifaceNil)) { + err = $pkg.ErrBufferFull; + } + } + $s = -1; return [$subslice(b.buf, b.r, (b.r + n >> 0)), err]; + /* */ } return; } var $f = {$blk: Peek, $c: true, $r, avail, b, err, n, $s};return $f; + }; + $ptrType(Reader).prototype.Discard = function Discard(n) { + var {_tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, discarded, err, n, remain, skip, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + discarded = 0; + err = $ifaceNil; + b = this; + if (n < 0) { + _tmp = 0; + _tmp$1 = $pkg.ErrNegativeCount; + discarded = _tmp; + err = _tmp$1; + $s = -1; return [discarded, err]; + } + if (n === 0) { + $s = -1; return [discarded, err]; + } + b.lastByte = -1; + b.lastRuneSize = -1; + remain = n; + /* while (true) { */ case 1: + skip = b.Buffered(); + /* */ if (skip === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (skip === 0) { */ case 3: + $r = b.fill(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + skip = b.Buffered(); + /* } */ case 4: + if (skip > remain) { + skip = remain; + } + b.r = b.r + (skip) >> 0; + remain = remain - (skip) >> 0; + if (remain === 0) { + _tmp$2 = n; + _tmp$3 = $ifaceNil; + discarded = _tmp$2; + err = _tmp$3; + $s = -1; return [discarded, err]; + } + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + _tmp$4 = n - remain >> 0; + _tmp$5 = b.readErr(); + discarded = _tmp$4; + err = _tmp$5; + $s = -1; return [discarded, err]; + } + $s = 1; continue; + case 2: + $s = -1; return [discarded, err]; + /* */ } return; } var $f = {$blk: Discard, $c: true, $r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, discarded, err, n, remain, skip, $s};return $f; + }; + $ptrType(Reader).prototype.Read = function Read(p) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, b, err, n, p, x, x$1, x$2, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + b = this; + n = p.$length; + if (n === 0) { + if (b.Buffered() > 0) { + _tmp = 0; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + _tmp$2 = 0; + _tmp$3 = b.readErr(); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* */ if (b.r === b.w) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (b.r === b.w) { */ case 1: + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + _tmp$4 = 0; + _tmp$5 = b.readErr(); + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + } + /* */ if (p.$length >= b.buf.$length) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (p.$length >= b.buf.$length) { */ case 3: + _r = b.rd.Read(p); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + b.err = _tuple[1]; + if (n < 0) { + $panic(errNegativeRead); + } + if (n > 0) { + b.lastByte = (((x = n - 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) >> 0)); + b.lastRuneSize = -1; + } + _tmp$6 = n; + _tmp$7 = b.readErr(); + n = _tmp$6; + err = _tmp$7; + $s = -1; return [n, err]; + /* } */ case 4: + b.r = 0; + b.w = 0; + _r$1 = b.rd.Read(b.buf); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + n = _tuple$1[0]; + b.err = _tuple$1[1]; + if (n < 0) { + $panic(errNegativeRead); + } + if (n === 0) { + _tmp$8 = 0; + _tmp$9 = b.readErr(); + n = _tmp$8; + err = _tmp$9; + $s = -1; return [n, err]; + } + b.w = b.w + (n) >> 0; + /* } */ case 2: + n = $copySlice(p, $subslice(b.buf, b.r, b.w)); + b.r = b.r + (n) >> 0; + b.lastByte = (((x$1 = b.buf, x$2 = b.r - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) >> 0)); + b.lastRuneSize = -1; + _tmp$10 = n; + _tmp$11 = $ifaceNil; + n = _tmp$10; + err = _tmp$11; + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: Read, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, b, err, n, p, x, x$1, x$2, $s};return $f; + }; + $ptrType(Reader).prototype.ReadByte = function ReadByte() { + var {b, c, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = this; + b.lastRuneSize = -1; + /* while (true) { */ case 1: + /* if (!(b.r === b.w)) { break; } */ if(!(b.r === b.w)) { $s = 2; continue; } + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + $s = -1; return [0, b.readErr()]; + } + $r = b.fill(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 1; continue; + case 2: + c = (x = b.buf, x$1 = b.r, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + b.r = b.r + (1) >> 0; + b.lastByte = ((c >> 0)); + $s = -1; return [c, $ifaceNil]; + /* */ } return; } var $f = {$blk: ReadByte, $c: true, $r, b, c, x, x$1, $s};return $f; + }; + $ptrType(Reader).prototype.UnreadByte = function UnreadByte() { + var b, x, x$1; + b = this; + if (b.lastByte < 0 || (b.r === 0) && b.w > 0) { + return $pkg.ErrInvalidUnreadByte; + } + if (b.r > 0) { + b.r = b.r - (1) >> 0; + } else { + b.w = 1; + } + (x = b.buf, x$1 = b.r, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1] = ((b.lastByte << 24 >>> 24)))); + b.lastByte = -1; + b.lastRuneSize = -1; + return $ifaceNil; + }; + $ptrType(Reader).prototype.ReadRune = function ReadRune() { + var {_tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, b, err, r, size, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = 0; + size = 0; + err = $ifaceNil; + b = this; + /* while (true) { */ case 1: + /* if (!((b.r + 4 >> 0) > b.w && !utf8.FullRune($subslice(b.buf, b.r, b.w)) && $interfaceIsEqual(b.err, $ifaceNil) && (b.w - b.r >> 0) < b.buf.$length)) { break; } */ if(!((b.r + 4 >> 0) > b.w && !utf8.FullRune($subslice(b.buf, b.r, b.w)) && $interfaceIsEqual(b.err, $ifaceNil) && (b.w - b.r >> 0) < b.buf.$length)) { $s = 2; continue; } + $r = b.fill(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 1; continue; + case 2: + b.lastRuneSize = -1; + if (b.r === b.w) { + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = b.readErr(); + r = _tmp; + size = _tmp$1; + err = _tmp$2; + $s = -1; return [r, size, err]; + } + _tmp$3 = (((x = b.buf, x$1 = b.r, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0)); + _tmp$4 = 1; + r = _tmp$3; + size = _tmp$4; + if (r >= 128) { + _tuple = utf8.DecodeRune($subslice(b.buf, b.r, b.w)); + r = _tuple[0]; + size = _tuple[1]; + } + b.r = b.r + (size) >> 0; + b.lastByte = (((x$2 = b.buf, x$3 = b.r - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])) >> 0)); + b.lastRuneSize = size; + _tmp$5 = r; + _tmp$6 = size; + _tmp$7 = $ifaceNil; + r = _tmp$5; + size = _tmp$6; + err = _tmp$7; + $s = -1; return [r, size, err]; + /* */ } return; } var $f = {$blk: ReadRune, $c: true, $r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, b, err, r, size, x, x$1, x$2, x$3, $s};return $f; + }; + $ptrType(Reader).prototype.UnreadRune = function UnreadRune() { + var b; + b = this; + if (b.lastRuneSize < 0 || b.r < b.lastRuneSize) { + return $pkg.ErrInvalidUnreadRune; + } + b.r = b.r - (b.lastRuneSize) >> 0; + b.lastByte = -1; + b.lastRuneSize = -1; + return $ifaceNil; + }; + $ptrType(Reader).prototype.Buffered = function Buffered() { + var b; + b = this; + return b.w - b.r >> 0; + }; + $ptrType(Reader).prototype.ReadSlice = function ReadSlice(delim) { + var {b, delim, err, i, i$1, line, s, $s, $r, $c} = $restore(this, {delim}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + line = sliceType.nil; + err = $ifaceNil; + b = this; + s = 0; + /* while (true) { */ case 1: + i = bytes.IndexByte($subslice(b.buf, (b.r + s >> 0), b.w), delim); + if (i >= 0) { + i = i + (s) >> 0; + line = $subslice(b.buf, b.r, ((b.r + i >> 0) + 1 >> 0)); + b.r = b.r + ((i + 1 >> 0)) >> 0; + /* break; */ $s = 2; continue; + } + if (!($interfaceIsEqual(b.err, $ifaceNil))) { + line = $subslice(b.buf, b.r, b.w); + b.r = b.w; + err = b.readErr(); + /* break; */ $s = 2; continue; + } + if (b.Buffered() >= b.buf.$length) { + b.r = b.w; + line = b.buf; + err = $pkg.ErrBufferFull; + /* break; */ $s = 2; continue; + } + s = b.w - b.r >> 0; + $r = b.fill(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 1; continue; + case 2: + i$1 = line.$length - 1 >> 0; + if (i$1 >= 0) { + b.lastByte = ((((i$1 < 0 || i$1 >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i$1]) >> 0)); + b.lastRuneSize = -1; + } + $s = -1; return [line, err]; + /* */ } return; } var $f = {$blk: ReadSlice, $c: true, $r, b, delim, err, i, i$1, line, s, $s};return $f; + }; + $ptrType(Reader).prototype.ReadLine = function ReadLine() { + var {_r, _tmp, _tmp$1, _tmp$2, _tuple, b, drop, err, isPrefix, line, x, x$1, x$2, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + line = sliceType.nil; + isPrefix = false; + err = $ifaceNil; + b = this; + _r = b.ReadSlice(10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + line = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $pkg.ErrBufferFull)) { + if (line.$length > 0 && ((x = line.$length - 1 >> 0, ((x < 0 || x >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + x])) === 13)) { + if (b.r === 0) { + $panic(new $String("bufio: tried to rewind past start of buffer")); + } + b.r = b.r - (1) >> 0; + line = $subslice(line, 0, (line.$length - 1 >> 0)); + } + _tmp = line; + _tmp$1 = true; + _tmp$2 = $ifaceNil; + line = _tmp; + isPrefix = _tmp$1; + err = _tmp$2; + $s = -1; return [line, isPrefix, err]; + } + if (line.$length === 0) { + if (!($interfaceIsEqual(err, $ifaceNil))) { + line = sliceType.nil; + } + $s = -1; return [line, isPrefix, err]; + } + err = $ifaceNil; + if ((x$1 = line.$length - 1 >> 0, ((x$1 < 0 || x$1 >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + x$1])) === 10) { + drop = 1; + if (line.$length > 1 && ((x$2 = line.$length - 2 >> 0, ((x$2 < 0 || x$2 >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + x$2])) === 13)) { + drop = 2; + } + line = $subslice(line, 0, (line.$length - drop >> 0)); + } + $s = -1; return [line, isPrefix, err]; + /* */ } return; } var $f = {$blk: ReadLine, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tuple, b, drop, err, isPrefix, line, x, x$1, x$2, $s};return $f; + }; + $ptrType(Reader).prototype.collectFragments = function collectFragments(delim) { + var {_r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, buf, delim, e, err, finalFragment, frag, fullBuffers, totalLen, $s, $r, $c} = $restore(this, {delim}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fullBuffers = sliceType$1.nil; + finalFragment = sliceType.nil; + totalLen = 0; + err = $ifaceNil; + b = this; + frag = sliceType.nil; + /* while (true) { */ case 1: + e = $ifaceNil; + _r = b.ReadSlice(delim); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + frag = _tuple[0]; + e = _tuple[1]; + if ($interfaceIsEqual(e, $ifaceNil)) { + /* break; */ $s = 2; continue; + } + if (!($interfaceIsEqual(e, $pkg.ErrBufferFull))) { + err = e; + /* break; */ $s = 2; continue; + } + buf = $makeSlice(sliceType, frag.$length); + $copySlice(buf, frag); + fullBuffers = $append(fullBuffers, buf); + totalLen = totalLen + (buf.$length) >> 0; + $s = 1; continue; + case 2: + totalLen = totalLen + (frag.$length) >> 0; + _tmp = fullBuffers; + _tmp$1 = frag; + _tmp$2 = totalLen; + _tmp$3 = err; + fullBuffers = _tmp; + finalFragment = _tmp$1; + totalLen = _tmp$2; + err = _tmp$3; + $s = -1; return [fullBuffers, finalFragment, totalLen, err]; + /* */ } return; } var $f = {$blk: collectFragments, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, buf, delim, e, err, finalFragment, frag, fullBuffers, totalLen, $s};return $f; + }; + $ptrType(Reader).prototype.ReadBytes = function ReadBytes(delim) { + var {_i, _r, _ref, _tuple, b, buf, delim, err, frag, full, i, n, $s, $r, $c} = $restore(this, {delim}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = this; + _r = b.collectFragments(delim); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + full = _tuple[0]; + frag = _tuple[1]; + n = _tuple[2]; + err = _tuple[3]; + buf = $makeSlice(sliceType, n); + n = 0; + _ref = full; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + n = n + ($copySlice($subslice(buf, n), ((i < 0 || i >= full.$length) ? ($throwRuntimeError("index out of range"), undefined) : full.$array[full.$offset + i]))) >> 0; + _i++; + } + $copySlice($subslice(buf, n), frag); + $s = -1; return [buf, err]; + /* */ } return; } var $f = {$blk: ReadBytes, $c: true, $r, _i, _r, _ref, _tuple, b, buf, delim, err, frag, full, i, n, $s};return $f; + }; + $ptrType(Reader).prototype.ReadString = function ReadString(delim) { + var {_i, _r, _ref, _tuple, b, buf, delim, err, fb, frag, full, n, $s, $r, $c} = $restore(this, {delim}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = this; + _r = b.collectFragments(delim); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + full = _tuple[0]; + frag = _tuple[1]; + n = _tuple[2]; + err = _tuple[3]; + buf = new strings.Builder.ptr(ptrType$1.nil, sliceType.nil); + buf.Grow(n); + _ref = full; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + fb = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + buf.Write(fb); + _i++; + } + buf.Write(frag); + $s = -1; return [buf.String(), err]; + /* */ } return; } var $f = {$blk: ReadString, $c: true, $r, _i, _r, _ref, _tuple, b, buf, delim, err, fb, frag, full, n, $s};return $f; + }; + $ptrType(Reader).prototype.WriteTo = function WriteTo(w) { + var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, b, err, err$1, err$2, err$3, m, m$1, m$2, n, ok, ok$1, r, w, w$1, x, x$1, x$2, $s, $r, $c} = $restore(this, {w}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = new $Int64(0, 0); + err = $ifaceNil; + b = this; + b.lastByte = -1; + b.lastRuneSize = -1; + _r = b.writeBuf(w); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [n, err]; + } + _tuple$1 = $assertType(b.rd, io.WriterTo, true); + r = _tuple$1[0]; + ok = _tuple$1[1]; + /* */ if (ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (ok) { */ case 2: + _r$1 = r.WriteTo(w); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$2 = _r$1; + m = _tuple$2[0]; + err$1 = _tuple$2[1]; + n = (x = m, new $Int64(n.$high + x.$high, n.$low + x.$low)); + _tmp = n; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* } */ case 3: + _tuple$3 = $assertType(w, io.ReaderFrom, true); + w$1 = _tuple$3[0]; + ok$1 = _tuple$3[1]; + /* */ if (ok$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (ok$1) { */ case 5: + _r$2 = w$1.ReadFrom(b.rd); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$4 = _r$2; + m$1 = _tuple$4[0]; + err$2 = _tuple$4[1]; + n = (x$1 = m$1, new $Int64(n.$high + x$1.$high, n.$low + x$1.$low)); + _tmp$2 = n; + _tmp$3 = err$2; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + /* } */ case 6: + /* */ if ((b.w - b.r >> 0) < b.buf.$length) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((b.w - b.r >> 0) < b.buf.$length) { */ case 8: + $r = b.fill(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + /* while (true) { */ case 11: + /* if (!(b.r < b.w)) { break; } */ if(!(b.r < b.w)) { $s = 12; continue; } + _r$3 = b.writeBuf(w); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$5 = _r$3; + m$2 = _tuple$5[0]; + err$3 = _tuple$5[1]; + n = (x$2 = m$2, new $Int64(n.$high + x$2.$high, n.$low + x$2.$low)); + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + _tmp$4 = n; + _tmp$5 = err$3; + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + } + $r = b.fill(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 11; continue; + case 12: + if ($interfaceIsEqual(b.err, io.EOF)) { + b.err = $ifaceNil; + } + _tmp$6 = n; + _tmp$7 = b.readErr(); + n = _tmp$6; + err = _tmp$7; + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: WriteTo, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, b, err, err$1, err$2, err$3, m, m$1, m$2, n, ok, ok$1, r, w, w$1, x, x$1, x$2, $s};return $f; + }; + $ptrType(Reader).prototype.writeBuf = function writeBuf(w) { + var {_r, _tuple, b, err, n, w, $s, $r, $c} = $restore(this, {w}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = this; + _r = w.Write($subslice(b.buf, b.r, b.w)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (n < 0) { + $panic(errNegativeWrite); + } + b.r = b.r + (n) >> 0; + $s = -1; return [(new $Int64(0, n)), err]; + /* */ } return; } var $f = {$blk: writeBuf, $c: true, $r, _r, _tuple, b, err, n, w, $s};return $f; + }; + ptrType$3.methods = [{prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "Text", name: "Text", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Scan", name: "Scan", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "advance", name: "advance", pkg: "bufio", typ: $funcType([$Int], [$Bool], false)}, {prop: "setErr", name: "setErr", pkg: "bufio", typ: $funcType([$error], [], false)}, {prop: "Buffer", name: "Buffer", pkg: "", typ: $funcType([sliceType, $Int], [], false)}, {prop: "Split", name: "Split", pkg: "", typ: $funcType([SplitFunc], [], false)}]; + ptrType.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Reader], [], false)}, {prop: "reset", name: "reset", pkg: "bufio", typ: $funcType([sliceType, io.Reader], [], false)}, {prop: "fill", name: "fill", pkg: "bufio", typ: $funcType([], [], false)}, {prop: "readErr", name: "readErr", pkg: "bufio", typ: $funcType([], [$error], false)}, {prop: "Peek", name: "Peek", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "Discard", name: "Discard", pkg: "", typ: $funcType([$Int], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Buffered", name: "Buffered", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ReadSlice", name: "ReadSlice", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadLine", name: "ReadLine", pkg: "", typ: $funcType([], [sliceType, $Bool, $error], false)}, {prop: "collectFragments", name: "collectFragments", pkg: "bufio", typ: $funcType([$Uint8], [sliceType$1, sliceType, $Int, $error], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([$Uint8], [$String, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "writeBuf", name: "writeBuf", pkg: "bufio", typ: $funcType([io.Writer], [$Int64, $error], false)}]; + Scanner.init("bufio", [{prop: "r", name: "r", embedded: false, exported: false, typ: io.Reader, tag: ""}, {prop: "split", name: "split", embedded: false, exported: false, typ: SplitFunc, tag: ""}, {prop: "maxTokenSize", name: "maxTokenSize", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "token", name: "token", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "start", name: "start", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "empties", name: "empties", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "scanCalled", name: "scanCalled", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: $Bool, tag: ""}]); + SplitFunc.init([sliceType, $Bool], [$Int, sliceType, $error], false); + Reader.init("bufio", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "rd", name: "rd", embedded: false, exported: false, typ: io.Reader, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "lastByte", name: "lastByte", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastRuneSize", name: "lastRuneSize", embedded: false, exported: false, typ: $Int, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrTooLong = errors.New("bufio.Scanner: token too long"); + $pkg.ErrNegativeAdvance = errors.New("bufio.Scanner: SplitFunc returns negative advance count"); + $pkg.ErrAdvanceTooFar = errors.New("bufio.Scanner: SplitFunc returns advance count beyond input"); + $pkg.ErrBadReadCount = errors.New("bufio.Scanner: Read returned impossible count"); + $pkg.ErrFinalToken = errors.New("final token"); + $pkg.ErrInvalidUnreadByte = errors.New("bufio: invalid use of UnreadByte"); + $pkg.ErrInvalidUnreadRune = errors.New("bufio: invalid use of UnreadRune"); + $pkg.ErrBufferFull = errors.New("bufio: buffer full"); + $pkg.ErrNegativeCount = errors.New("bufio: negative count"); + errNegativeRead = errors.New("bufio: reader returned negative count from Read"); + errNegativeWrite = errors.New("bufio: writer returned negative count from Write"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["encoding"] = (function() { + var $pkg = {}, $init, BinaryMarshaler, BinaryUnmarshaler, TextMarshaler, TextUnmarshaler; + BinaryMarshaler = $newType(8, $kindInterface, "encoding.BinaryMarshaler", true, "encoding", true, null); + BinaryUnmarshaler = $newType(8, $kindInterface, "encoding.BinaryUnmarshaler", true, "encoding", true, null); + TextMarshaler = $newType(8, $kindInterface, "encoding.TextMarshaler", true, "encoding", true, null); + TextUnmarshaler = $newType(8, $kindInterface, "encoding.TextUnmarshaler", true, "encoding", true, null); + $pkg.BinaryMarshaler = BinaryMarshaler; + $pkg.BinaryUnmarshaler = BinaryUnmarshaler; + $pkg.TextMarshaler = TextMarshaler; + $pkg.TextUnmarshaler = TextUnmarshaler; + $pkg.$finishSetup = function() { + BinaryMarshaler.init([{prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType, $error], false)}]); + BinaryUnmarshaler.init([{prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType], [$error], false)}]); + TextMarshaler.init([{prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType, $error], false)}]); + TextUnmarshaler.init([{prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType], [$error], false)}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["encoding/binary"] = (function() { + var $pkg = {}, $init, errors, io, math, reflect, sync, bigEndian, overflow; + errors = $packages["errors"]; + io = $packages["io"]; + math = $packages["math"]; + reflect = $packages["reflect"]; + sync = $packages["sync"]; + bigEndian = $newType(0, $kindStruct, "binary.bigEndian", true, "encoding/binary", false, function() { this.$val = this; }); + $pkg.bigEndian = bigEndian; + $pkg.$finishSetup = function() { + $ptrType(bigEndian).prototype.Uint16 = function Uint16$1(b) { + var b; + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + return ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) << 16 >>> 16)) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) << 16 >>> 16)) << 8 << 16 >>> 16)) >>> 0; + }; + bigEndian.prototype.Uint16 = function(...$args) { return this.$val.Uint16(...$args); }; + $ptrType(bigEndian).prototype.PutUint16 = function PutUint16$1(b, v) { + var b, v; + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (((v >>> 8 << 16 >>> 16) << 24 >>> 24))); + (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = ((v << 24 >>> 24))); + }; + bigEndian.prototype.PutUint16 = function(...$args) { return this.$val.PutUint16(...$args); }; + $ptrType(bigEndian).prototype.AppendUint16 = function AppendUint16$1(b, v) { + var b, v; + return $append(b, (((v >>> 8 << 16 >>> 16) << 24 >>> 24)), ((v << 24 >>> 24))); + }; + bigEndian.prototype.AppendUint16 = function(...$args) { return this.$val.AppendUint16(...$args); }; + $ptrType(bigEndian).prototype.Uint32 = function Uint32$1(b) { + var b; + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return ((((((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) << 24 >>> 0)) >>> 0; + }; + bigEndian.prototype.Uint32 = function(...$args) { return this.$val.Uint32(...$args); }; + $ptrType(bigEndian).prototype.PutUint32 = function PutUint32$1(b, v) { + var b, v; + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (((v >>> 24 >>> 0) << 24 >>> 24))); + (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (((v >>> 16 >>> 0) << 24 >>> 24))); + (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (((v >>> 8 >>> 0) << 24 >>> 24))); + (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = ((v << 24 >>> 24))); + }; + bigEndian.prototype.PutUint32 = function(...$args) { return this.$val.PutUint32(...$args); }; + $ptrType(bigEndian).prototype.AppendUint32 = function AppendUint32$1(b, v) { + var b, v; + return $append(b, (((v >>> 24 >>> 0) << 24 >>> 24)), (((v >>> 16 >>> 0) << 24 >>> 24)), (((v >>> 8 >>> 0) << 24 >>> 24)), ((v << 24 >>> 24))); + }; + bigEndian.prototype.AppendUint32 = function(...$args) { return this.$val.AppendUint32(...$args); }; + $ptrType(bigEndian).prototype.Uint64 = function Uint64$1(b) { + var b, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + return (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$7 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0)); + }; + bigEndian.prototype.Uint64 = function(...$args) { return this.$val.Uint64(...$args); }; + $ptrType(bigEndian).prototype.PutUint64 = function PutUint64$1(b, v) { + var b, v; + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (($shiftRightUint64(v, 56).$low << 24 >>> 24))); + (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (($shiftRightUint64(v, 48).$low << 24 >>> 24))); + (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (($shiftRightUint64(v, 40).$low << 24 >>> 24))); + (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = (($shiftRightUint64(v, 32).$low << 24 >>> 24))); + (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4] = (($shiftRightUint64(v, 24).$low << 24 >>> 24))); + (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5] = (($shiftRightUint64(v, 16).$low << 24 >>> 24))); + (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6] = (($shiftRightUint64(v, 8).$low << 24 >>> 24))); + (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7] = ((v.$low << 24 >>> 24))); + }; + bigEndian.prototype.PutUint64 = function(...$args) { return this.$val.PutUint64(...$args); }; + $ptrType(bigEndian).prototype.AppendUint64 = function AppendUint64$1(b, v) { + var b, v; + return $append(b, (($shiftRightUint64(v, 56).$low << 24 >>> 24)), (($shiftRightUint64(v, 48).$low << 24 >>> 24)), (($shiftRightUint64(v, 40).$low << 24 >>> 24)), (($shiftRightUint64(v, 32).$low << 24 >>> 24)), (($shiftRightUint64(v, 24).$low << 24 >>> 24)), (($shiftRightUint64(v, 16).$low << 24 >>> 24)), (($shiftRightUint64(v, 8).$low << 24 >>> 24)), ((v.$low << 24 >>> 24))); + }; + bigEndian.prototype.AppendUint64 = function(...$args) { return this.$val.AppendUint64(...$args); }; + $ptrType(bigEndian).prototype.String = function String$1() { + return "BigEndian"; + }; + bigEndian.prototype.String = function(...$args) { return this.$val.String(...$args); }; + $ptrType(bigEndian).prototype.GoString = function GoString$1() { + return "binary.BigEndian"; + }; + bigEndian.prototype.GoString = function(...$args) { return this.$val.GoString(...$args); }; + bigEndian.methods = [{prop: "Uint16", name: "Uint16", pkg: "", typ: $funcType([sliceType], [$Uint16], false)}, {prop: "PutUint16", name: "PutUint16", pkg: "", typ: $funcType([sliceType, $Uint16], [], false)}, {prop: "AppendUint16", name: "AppendUint16", pkg: "", typ: $funcType([sliceType, $Uint16], [sliceType], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([sliceType], [$Uint32], false)}, {prop: "PutUint32", name: "PutUint32", pkg: "", typ: $funcType([sliceType, $Uint32], [], false)}, {prop: "AppendUint32", name: "AppendUint32", pkg: "", typ: $funcType([sliceType, $Uint32], [sliceType], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([sliceType], [$Uint64], false)}, {prop: "PutUint64", name: "PutUint64", pkg: "", typ: $funcType([sliceType, $Uint64], [], false)}, {prop: "AppendUint64", name: "AppendUint64", pkg: "", typ: $funcType([sliceType, $Uint64], [sliceType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; + bigEndian.init("", []); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.BigEndian = new bigEndian.ptr(); + overflow = errors.New("binary: varint overflows a 64-bit integer"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["encoding/gob"] = (function() { + var $pkg = {}, $init, bufio, encoding, binary, errors, fmt, nosync, io, math, bits, os, reflect, atomic, unicode, utf8, userTypeInfo, typeId, gobType, CommonType, arrayType, gobEncoderType, mapType, sliceType, fieldType, structType, wireType, typeInfo, GobEncoder, GobDecoder, gobError, encBuffer, decoderState, emptyStruct, userTypeCache, nextId, typeLock, builtinIdToType, wireTypeUserInfo, typeInfoMap, nameToConcreteType, concreteTypeToName, gobEncoderInterfaceType, _r, gobDecoderInterfaceType, _r$1, binaryMarshalerInterfaceType, _r$2, binaryUnmarshalerInterfaceType, _r$3, textMarshalerInterfaceType, _r$4, textUnmarshalerInterfaceType, _r$5, types, idToType, tBool, _r$6, tInt, _r$7, tUint, _r$8, tFloat, _r$9, tBytes, _r$10, tString, _r$11, tComplex, _r$12, tInterface, _r$13, tReserved7, _r$14, tReserved6, _r$15, tReserved5, _r$16, tReserved4, _r$17, tReserved3, _r$18, tReserved2, _r$19, tReserved1, _r$20, tWireType, x, _r$21, spaceForLength, encBufferPool, errBadCount, errBadUint, errBadType, errRange, decOpTable, emptyStructType, x$1, validUserType, implementsInterface, userType, setTypeId, init, newArrayType, newGobEncoderType, newMapType, newSliceType, newStructType, newTypeObject, isExported, isSent, getBaseType, getType, checkId, bootstrapType, lookupTypeInfo, getTypeInfo, buildTypeInfo, mustGetTypeInfo, RegisterName, Register, registerBasics, errorf, error_, decBool, decInt8, decUint8, decInt16, decUint16, decInt32, decUint32, decInt64, decUint64, float64FromBits, float32FromBits, decFloat32, decFloat64, decComplex64, decComplex128, decString, init$1; + bufio = $packages["bufio"]; + encoding = $packages["encoding"]; + binary = $packages["encoding/binary"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + io = $packages["io"]; + math = $packages["math"]; + bits = $packages["math/bits"]; + os = $packages["os"]; + reflect = $packages["reflect"]; + atomic = $packages["sync/atomic"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + userTypeInfo = $newType(0, $kindStruct, "gob.userTypeInfo", true, "encoding/gob", false, function(user_, base_, indir_, externalEnc_, externalDec_, encIndir_, decIndir_) { + this.$val = this; + if (arguments.length === 0) { + this.user = $ifaceNil; + this.base = $ifaceNil; + this.indir = 0; + this.externalEnc = 0; + this.externalDec = 0; + this.encIndir = 0; + this.decIndir = 0; + return; + } + this.user = user_; + this.base = base_; + this.indir = indir_; + this.externalEnc = externalEnc_; + this.externalDec = externalDec_; + this.encIndir = encIndir_; + this.decIndir = decIndir_; + }); + typeId = $newType(4, $kindInt32, "gob.typeId", true, "encoding/gob", false, null); + gobType = $newType(8, $kindInterface, "gob.gobType", true, "encoding/gob", false, null); + CommonType = $newType(0, $kindStruct, "gob.CommonType", true, "encoding/gob", true, function(Name_, Id_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.Id = 0; + return; + } + this.Name = Name_; + this.Id = Id_; + }); + arrayType = $newType(0, $kindStruct, "gob.arrayType", true, "encoding/gob", false, function(CommonType_, Elem_, Len_) { + this.$val = this; + if (arguments.length === 0) { + this.CommonType = new CommonType.ptr("", 0); + this.Elem = 0; + this.Len = 0; + return; + } + this.CommonType = CommonType_; + this.Elem = Elem_; + this.Len = Len_; + }); + gobEncoderType = $newType(0, $kindStruct, "gob.gobEncoderType", true, "encoding/gob", false, function(CommonType_) { + this.$val = this; + if (arguments.length === 0) { + this.CommonType = new CommonType.ptr("", 0); + return; + } + this.CommonType = CommonType_; + }); + mapType = $newType(0, $kindStruct, "gob.mapType", true, "encoding/gob", false, function(CommonType_, Key_, Elem_) { + this.$val = this; + if (arguments.length === 0) { + this.CommonType = new CommonType.ptr("", 0); + this.Key = 0; + this.Elem = 0; + return; + } + this.CommonType = CommonType_; + this.Key = Key_; + this.Elem = Elem_; + }); + sliceType = $newType(0, $kindStruct, "gob.sliceType", true, "encoding/gob", false, function(CommonType_, Elem_) { + this.$val = this; + if (arguments.length === 0) { + this.CommonType = new CommonType.ptr("", 0); + this.Elem = 0; + return; + } + this.CommonType = CommonType_; + this.Elem = Elem_; + }); + fieldType = $newType(0, $kindStruct, "gob.fieldType", true, "encoding/gob", false, function(Name_, Id_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.Id = 0; + return; + } + this.Name = Name_; + this.Id = Id_; + }); + structType = $newType(0, $kindStruct, "gob.structType", true, "encoding/gob", false, function(CommonType_, Field_) { + this.$val = this; + if (arguments.length === 0) { + this.CommonType = new CommonType.ptr("", 0); + this.Field = sliceType$3.nil; + return; + } + this.CommonType = CommonType_; + this.Field = Field_; + }); + wireType = $newType(0, $kindStruct, "gob.wireType", true, "encoding/gob", false, function(ArrayT_, SliceT_, StructT_, MapT_, GobEncoderT_, BinaryMarshalerT_, TextMarshalerT_) { + this.$val = this; + if (arguments.length === 0) { + this.ArrayT = ptrType$23.nil; + this.SliceT = ptrType$24.nil; + this.StructT = ptrType$25.nil; + this.MapT = ptrType$26.nil; + this.GobEncoderT = ptrType$27.nil; + this.BinaryMarshalerT = ptrType$27.nil; + this.TextMarshalerT = ptrType$27.nil; + return; + } + this.ArrayT = ArrayT_; + this.SliceT = SliceT_; + this.StructT = StructT_; + this.MapT = MapT_; + this.GobEncoderT = GobEncoderT_; + this.BinaryMarshalerT = BinaryMarshalerT_; + this.TextMarshalerT = TextMarshalerT_; + }); + typeInfo = $newType(0, $kindStruct, "gob.typeInfo", true, "encoding/gob", false, function(id_, encInit_, encoder_, wire_) { + this.$val = this; + if (arguments.length === 0) { + this.id = 0; + this.encInit = new nosync.Mutex.ptr(false, false, false, false, 0); + this.encoder = new atomic.Value.ptr($ifaceNil); + this.wire = ptrType$29.nil; + return; + } + this.id = id_; + this.encInit = encInit_; + this.encoder = encoder_; + this.wire = wire_; + }); + GobEncoder = $newType(8, $kindInterface, "gob.GobEncoder", true, "encoding/gob", true, null); + GobDecoder = $newType(8, $kindInterface, "gob.GobDecoder", true, "encoding/gob", true, null); + gobError = $newType(0, $kindStruct, "gob.gobError", true, "encoding/gob", false, function(err_) { + this.$val = this; + if (arguments.length === 0) { + this.err = $ifaceNil; + return; + } + this.err = err_; + }); + encBuffer = $newType(0, $kindStruct, "gob.encBuffer", true, "encoding/gob", false, function(data_, scratch_) { + this.$val = this; + if (arguments.length === 0) { + this.data = sliceType$1.nil; + this.scratch = arrayType$1.zero(); + return; + } + this.data = data_; + this.scratch = scratch_; + }); + decoderState = $newType(0, $kindStruct, "gob.decoderState", true, "encoding/gob", false, function(dec_, b_, fieldnum_, next_) { + this.$val = this; + if (arguments.length === 0) { + this.dec = ptrType$39.nil; + this.b = ptrType$40.nil; + this.fieldnum = 0; + this.next = ptrType$38.nil; + return; + } + this.dec = dec_; + this.b = b_; + this.fieldnum = fieldnum_; + this.next = next_; + }); + emptyStruct = $newType(0, $kindStruct, "gob.emptyStruct", true, "encoding/gob", false, function() { this.$val = this; }); + $pkg.userTypeInfo = userTypeInfo; + $pkg.typeId = typeId; + $pkg.gobType = gobType; + $pkg.CommonType = CommonType; + $pkg.arrayType = arrayType; + $pkg.gobEncoderType = gobEncoderType; + $pkg.mapType = mapType; + $pkg.sliceType = sliceType; + $pkg.fieldType = fieldType; + $pkg.structType = structType; + $pkg.wireType = wireType; + $pkg.typeInfo = typeInfo; + $pkg.GobEncoder = GobEncoder; + $pkg.GobDecoder = GobDecoder; + $pkg.gobError = gobError; + $pkg.encBuffer = encBuffer; + $pkg.decoderState = decoderState; + $pkg.emptyStruct = emptyStruct; + $pkg.$finishSetup = function() { + validUserType = function validUserType$1(rt) { + var {$24r, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, indir, indir$1, indir$2, indir$3, ok, ok$1, ok$2, ok$3, ok$4, pt, rt, slowpoke, ui, ui$1, ut, $s, $r, $c} = $restore(this, {rt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = userTypeCache.Load(rt); + ui = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return [$assertType(ui, ptrType), $ifaceNil]; + } + ut = new userTypeInfo.ptr($ifaceNil, $ifaceNil, 0, 0, 0, 0, 0); + ut.base = rt; + ut.user = rt; + slowpoke = ut.base; + /* while (true) { */ case 1: + pt = ut.base; + _r$22 = pt.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + /* */ if (!((_r$22 === 22))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!((_r$22 === 22))) { */ case 3: + /* break; */ $s = 2; continue; + /* } */ case 4: + _r$23 = pt.Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + ut.base = _r$23; + /* */ if ($interfaceIsEqual(ut.base, slowpoke)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($interfaceIsEqual(ut.base, slowpoke)) { */ case 7: + _r$24 = ut.base.String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = errors.New("can't represent recursive pointer type " + _r$24); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = [ptrType.nil, _r$25]; + $s = 11; case 11: return $24r; + /* } */ case 8: + /* */ if ((_r$26 = ut.indir % 2, _r$26 === _r$26 ? _r$26 : $throwRuntimeError("integer divide by zero")) === 0) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((_r$26 = ut.indir % 2, _r$26 === _r$26 ? _r$26 : $throwRuntimeError("integer divide by zero")) === 0) { */ case 12: + _r$27 = slowpoke.Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + slowpoke = _r$27; + /* } */ case 13: + ut.indir = ut.indir + (1) >> 0; + $s = 1; continue; + case 2: + _r$28 = implementsInterface(ut.user, gobEncoderInterfaceType); /* */ $s = 15; case 15: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _tuple$1 = _r$28; + ok$1 = _tuple$1[0]; + indir = _tuple$1[1]; + /* */ if (ok$1) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (ok$1) { */ case 16: + _tmp = 1; + _tmp$1 = indir; + ut.externalEnc = _tmp; + ut.encIndir = _tmp$1; + $s = 18; continue; + /* } else { */ case 17: + _r$29 = implementsInterface(ut.user, binaryMarshalerInterfaceType); /* */ $s = 19; case 19: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _tuple$2 = _r$29; + ok$2 = _tuple$2[0]; + indir$1 = _tuple$2[1]; + if (ok$2) { + _tmp$2 = 2; + _tmp$3 = indir$1; + ut.externalEnc = _tmp$2; + ut.encIndir = _tmp$3; + } + /* } */ case 18: + _r$30 = implementsInterface(ut.user, gobDecoderInterfaceType); /* */ $s = 20; case 20: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _tuple$3 = _r$30; + ok$3 = _tuple$3[0]; + indir$2 = _tuple$3[1]; + /* */ if (ok$3) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (ok$3) { */ case 21: + _tmp$4 = 1; + _tmp$5 = indir$2; + ut.externalDec = _tmp$4; + ut.decIndir = _tmp$5; + $s = 23; continue; + /* } else { */ case 22: + _r$31 = implementsInterface(ut.user, binaryUnmarshalerInterfaceType); /* */ $s = 24; case 24: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _tuple$4 = _r$31; + ok$4 = _tuple$4[0]; + indir$3 = _tuple$4[1]; + if (ok$4) { + _tmp$6 = 2; + _tmp$7 = indir$3; + ut.externalDec = _tmp$6; + ut.decIndir = _tmp$7; + } + /* } */ case 23: + _tuple$5 = userTypeCache.LoadOrStore(rt, ut); + ui$1 = _tuple$5[0]; + $s = -1; return [$assertType(ui$1, ptrType), $ifaceNil]; + /* */ } return; } var $f = {$blk: validUserType$1, $c: true, $r, $24r, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, indir, indir$1, indir$2, indir$3, ok, ok$1, ok$2, ok$3, ok$4, pt, rt, slowpoke, ui, ui$1, ut, $s};return $f; + }; + implementsInterface = function implementsInterface$1(typ, gobEncDecType) { + var {_r$22, _r$23, _r$24, _r$25, _r$26, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, gobEncDecType, indir, p, rt, success, typ, $s, $r, $c} = $restore(this, {typ, gobEncDecType}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + success = false; + indir = 0; + if ($interfaceIsEqual(typ, $ifaceNil)) { + $s = -1; return [success, indir]; + } + rt = typ; + /* while (true) { */ case 1: + _r$22 = rt.Implements(gobEncDecType); /* */ $s = 5; case 5: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + /* */ if (_r$22) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$22) { */ case 3: + _tmp = true; + _tmp$1 = indir; + success = _tmp; + indir = _tmp$1; + $s = -1; return [success, indir]; + /* } */ case 4: + p = rt; + _r$23 = p.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + /* */ if (_r$23 === 22) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r$23 === 22) { */ case 6: + indir = indir + (1) << 24 >> 24; + if (indir > 100) { + _tmp$2 = false; + _tmp$3 = 0; + success = _tmp$2; + indir = _tmp$3; + $s = -1; return [success, indir]; + } + _r$24 = p.Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + rt = _r$24; + /* continue; */ $s = 1; continue; + /* } */ case 7: + /* break; */ $s = 2; continue; + case 2: + _r$25 = typ.Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + /* */ if (!((_r$25 === 22))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((_r$25 === 22))) { */ case 10: + _r$26 = reflect.PointerTo(typ).Implements(gobEncDecType); /* */ $s = 15; case 15: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + /* */ if (_r$26) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$26) { */ case 13: + _tmp$4 = true; + _tmp$5 = -1; + success = _tmp$4; + indir = _tmp$5; + $s = -1; return [success, indir]; + /* } */ case 14: + /* } */ case 11: + _tmp$6 = false; + _tmp$7 = 0; + success = _tmp$6; + indir = _tmp$7; + $s = -1; return [success, indir]; + /* */ } return; } var $f = {$blk: implementsInterface$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, _r$26, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, gobEncDecType, indir, p, rt, success, typ, $s};return $f; + }; + userType = function userType$1(rt) { + var {_r$22, _tuple, err, rt, ut, $s, $r, $c} = $restore(this, {rt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = validUserType(rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _tuple = _r$22; + ut = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + error_(err); + } + $s = -1; return ut; + /* */ } return; } var $f = {$blk: userType$1, $c: true, $r, _r$22, _tuple, err, rt, ut, $s};return $f; + }; + setTypeId = function setTypeId$1(typ) { + var {_key, _r$22, typ, $s, $r, $c} = $restore(this, {typ}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = typ.id(); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + /* */ if (!((_r$22 === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r$22 === 0))) { */ case 1: + $s = -1; return; + /* } */ case 2: + nextId = nextId + (1) >> 0; + $r = typ.setId(nextId); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _key = nextId; (idToType || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key), { k: _key, v: typ }); + $s = -1; return; + /* */ } return; } var $f = {$blk: setTypeId$1, $c: true, $r, _key, _r$22, typ, $s};return $f; + }; + typeId.prototype.gobType = function gobType$1() { + var _entry, t; + t = this.$val; + if (t === 0) { + return $ifaceNil; + } + return (_entry = $mapIndex(idToType,typeId.keyFor(t)), _entry !== undefined ? _entry.v : $ifaceNil); + }; + $ptrType(typeId).prototype.gobType = function(...$args) { return new typeId(this.$get()).gobType(...$args); }; + typeId.prototype.string = function string() { + var {$24r, _r$22, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this.$val; + if ($interfaceIsEqual(new typeId(t).gobType(), $ifaceNil)) { + $s = -1; return ""; + } + _r$22 = new typeId(t).gobType().string(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $24r = _r$22; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: string, $c: true, $r, $24r, _r$22, t, $s};return $f; + }; + $ptrType(typeId).prototype.string = function(...$args) { return new typeId(this.$get()).string(...$args); }; + typeId.prototype.name = function name() { + var {$24r, _r$22, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this.$val; + if ($interfaceIsEqual(new typeId(t).gobType(), $ifaceNil)) { + $s = -1; return ""; + } + _r$22 = new typeId(t).gobType().name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $24r = _r$22; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: name, $c: true, $r, $24r, _r$22, t, $s};return $f; + }; + $ptrType(typeId).prototype.name = function(...$args) { return new typeId(this.$get()).name(...$args); }; + $ptrType(CommonType).prototype.id = function id() { + var t; + t = this; + return t.Id; + }; + $ptrType(CommonType).prototype.setId = function setId(id$1) { + var id$1, t; + t = this; + t.Id = id$1; + }; + $ptrType(CommonType).prototype.string = function string$1() { + var t; + t = this; + return t.Name; + }; + $ptrType(CommonType).prototype.safeString = function safeString(seen) { + var seen, t; + t = this; + return t.Name; + }; + $ptrType(CommonType).prototype.name = function name$1() { + var t; + t = this; + return t.Name; + }; + init = function init$2() { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _i, _key, _key$1, _keys, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _ref, _size, k, v, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = checkId(16, tWireType); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$22 = mustGetTypeInfo(reflect.TypeOf((x$2 = new arrayType.ptr(new CommonType.ptr("", 0), 0, 0), new x$2.constructor.elem(x$2)))); /* */ $s = 2; case 2: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _arg = _r$22.id; + $r = checkId(17, _arg); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$23 = mustGetTypeInfo(reflect.TypeOf((x$3 = new CommonType.ptr("", 0), new x$3.constructor.elem(x$3)))); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _arg$1 = _r$23.id; + $r = checkId(18, _arg$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$24 = mustGetTypeInfo(reflect.TypeOf((x$4 = new sliceType.ptr(new CommonType.ptr("", 0), 0), new x$4.constructor.elem(x$4)))); /* */ $s = 6; case 6: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$2 = _r$24.id; + $r = checkId(19, _arg$2); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$25 = mustGetTypeInfo(reflect.TypeOf((x$5 = new structType.ptr(new CommonType.ptr("", 0), sliceType$3.nil), new x$5.constructor.elem(x$5)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _arg$3 = _r$25.id; + $r = checkId(20, _arg$3); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$26 = mustGetTypeInfo(reflect.TypeOf((x$6 = new fieldType.ptr("", 0), new x$6.constructor.elem(x$6)))); /* */ $s = 10; case 10: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _arg$4 = _r$26.id; + $r = checkId(21, _arg$4); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$27 = mustGetTypeInfo(reflect.TypeOf((x$7 = new mapType.ptr(new CommonType.ptr("", 0), 0, 0), new x$7.constructor.elem(x$7)))); /* */ $s = 12; case 12: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _arg$5 = _r$27.id; + $r = checkId(23, _arg$5); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + builtinIdToType = new $global.Map(); + _ref = idToType; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + k = _entry.k; + v = _entry.v; + _key$1 = k; (builtinIdToType || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key$1), { k: _key$1, v: v }); + _i++; + } + /* */ if (nextId > 64) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (nextId > 64) { */ case 14: + _r$28 = fmt.Sprintln(new sliceType$2([new $String("nextId too large:"), new typeId(nextId)])); /* */ $s = 16; case 16: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + $panic(new $String(_r$28)); + /* } */ case 15: + nextId = 64; + $r = registerBasics(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$29 = userType(reflect.TypeOf((ptrType$29.nil))); /* */ $s = 18; case 18: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + wireTypeUserInfo = _r$29; + $s = -1; return; + /* */ } return; } var $f = {$blk: init$2, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _i, _key, _key$1, _keys, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _ref, _size, k, v, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + }; + newArrayType = function newArrayType$1(name$2) { + var a, name$2; + a = new arrayType.ptr($clone(new CommonType.ptr(name$2, 0), CommonType), 0, 0); + return a; + }; + $ptrType(arrayType).prototype.init = function init$3(elem, len) { + var {_r$22, a, elem, len, $s, $r, $c} = $restore(this, {elem, len}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = this; + $r = setTypeId(a); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$22 = elem.id(); /* */ $s = 2; case 2: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + a.Elem = _r$22; + a.Len = len; + $s = -1; return; + /* */ } return; } var $f = {$blk: init$3, $c: true, $r, _r$22, a, elem, len, $s};return $f; + }; + $ptrType(arrayType).prototype.safeString = function safeString$1(seen) { + var {$24r, _arg, _arg$1, _entry, _key, _r$22, _r$23, a, seen, $s, $r, $c} = $restore(this, {seen}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = this; + if ((_entry = $mapIndex(seen,typeId.keyFor(a.CommonType.Id)), _entry !== undefined ? _entry.v : false)) { + $s = -1; return a.CommonType.Name; + } + _key = a.CommonType.Id; (seen || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key), { k: _key, v: true }); + _arg = new $Int(a.Len); + _r$22 = new typeId(a.Elem).gobType().safeString(seen); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$22); + _r$23 = fmt.Sprintf("[%d]%s", new sliceType$2([_arg, _arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + $24r = _r$23; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: safeString$1, $c: true, $r, $24r, _arg, _arg$1, _entry, _key, _r$22, _r$23, a, seen, $s};return $f; + }; + $ptrType(arrayType).prototype.string = function string$2() { + var {$24r, _r$22, a, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = this; + _r$22 = a.safeString(new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $24r = _r$22; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: string$2, $c: true, $r, $24r, _r$22, a, $s};return $f; + }; + newGobEncoderType = function newGobEncoderType$1(name$2) { + var {g, name$2, $s, $r, $c} = $restore(this, {name$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + g = new gobEncoderType.ptr($clone(new CommonType.ptr(name$2, 0), CommonType)); + $r = setTypeId(g); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return g; + /* */ } return; } var $f = {$blk: newGobEncoderType$1, $c: true, $r, g, name$2, $s};return $f; + }; + $ptrType(gobEncoderType).prototype.safeString = function safeString$2(seen) { + var g, seen; + g = this; + return g.CommonType.Name; + }; + $ptrType(gobEncoderType).prototype.string = function string$3() { + var g; + g = this; + return g.CommonType.Name; + }; + newMapType = function newMapType$1(name$2) { + var m, name$2; + m = new mapType.ptr($clone(new CommonType.ptr(name$2, 0), CommonType), 0, 0); + return m; + }; + $ptrType(mapType).prototype.init = function init$4(key, elem) { + var {_r$22, _r$23, elem, key, m, $s, $r, $c} = $restore(this, {key, elem}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + $r = setTypeId(m); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$22 = key.id(); /* */ $s = 2; case 2: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + m.Key = _r$22; + _r$23 = elem.id(); /* */ $s = 3; case 3: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + m.Elem = _r$23; + $s = -1; return; + /* */ } return; } var $f = {$blk: init$4, $c: true, $r, _r$22, _r$23, elem, key, m, $s};return $f; + }; + $ptrType(mapType).prototype.safeString = function safeString$3(seen) { + var {$24r, _entry, _key, _r$22, _r$23, _r$24, elem, key, m, seen, $s, $r, $c} = $restore(this, {seen}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + if ((_entry = $mapIndex(seen,typeId.keyFor(m.CommonType.Id)), _entry !== undefined ? _entry.v : false)) { + $s = -1; return m.CommonType.Name; + } + _key = m.CommonType.Id; (seen || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key), { k: _key, v: true }); + _r$22 = new typeId(m.Key).gobType().safeString(seen); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + key = _r$22; + _r$23 = new typeId(m.Elem).gobType().safeString(seen); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + elem = _r$23; + _r$24 = fmt.Sprintf("map[%s]%s", new sliceType$2([new $String(key), new $String(elem)])); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r = _r$24; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: safeString$3, $c: true, $r, $24r, _entry, _key, _r$22, _r$23, _r$24, elem, key, m, seen, $s};return $f; + }; + $ptrType(mapType).prototype.string = function string$4() { + var {$24r, _r$22, m, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + _r$22 = m.safeString(new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $24r = _r$22; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: string$4, $c: true, $r, $24r, _r$22, m, $s};return $f; + }; + newSliceType = function newSliceType$1(name$2) { + var name$2, s; + s = new sliceType.ptr($clone(new CommonType.ptr(name$2, 0), CommonType), 0); + return s; + }; + $ptrType(sliceType).prototype.init = function init$5(elem) { + var {_r$22, _r$23, elem, s, $s, $r, $c} = $restore(this, {elem}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + $r = setTypeId(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$22 = elem.id(); /* */ $s = 4; case 4: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + /* */ if (_r$22 === 0) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_r$22 === 0) { */ case 2: + $r = setTypeId(elem); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + _r$23 = elem.id(); /* */ $s = 6; case 6: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + s.Elem = _r$23; + $s = -1; return; + /* */ } return; } var $f = {$blk: init$5, $c: true, $r, _r$22, _r$23, elem, s, $s};return $f; + }; + $ptrType(sliceType).prototype.safeString = function safeString$4(seen) { + var {$24r, _arg, _entry, _key, _r$22, _r$23, s, seen, $s, $r, $c} = $restore(this, {seen}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + if ((_entry = $mapIndex(seen,typeId.keyFor(s.CommonType.Id)), _entry !== undefined ? _entry.v : false)) { + $s = -1; return s.CommonType.Name; + } + _key = s.CommonType.Id; (seen || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key), { k: _key, v: true }); + _r$22 = new typeId(s.Elem).gobType().safeString(seen); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _arg = new $String(_r$22); + _r$23 = fmt.Sprintf("[]%s", new sliceType$2([_arg])); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + $24r = _r$23; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: safeString$4, $c: true, $r, $24r, _arg, _entry, _key, _r$22, _r$23, s, seen, $s};return $f; + }; + $ptrType(sliceType).prototype.string = function string$5() { + var {$24r, _r$22, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r$22 = s.safeString(new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $24r = _r$22; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: string$5, $c: true, $r, $24r, _r$22, s, $s};return $f; + }; + $ptrType(structType).prototype.safeString = function safeString$5(seen) { + var {_arg, _arg$1, _entry, _i, _key, _r$22, _r$23, _ref, _tuple, f, ok, s, seen, str, $s, $r, $c} = $restore(this, {seen}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + if (s === ptrType$25.nil) { + $s = -1; return ""; + } + _tuple = (_entry = $mapIndex(seen,typeId.keyFor(s.CommonType.Id)), _entry !== undefined ? [_entry.v, true] : [false, false]); + ok = _tuple[1]; + if (ok) { + $s = -1; return s.CommonType.Name; + } + _key = s.CommonType.Id; (seen || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key), { k: _key, v: true }); + str = s.CommonType.Name + " = struct { "; + _ref = s.Field; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _arg = new $String(f.Name); + _r$22 = new typeId(f.Id).gobType().safeString(seen); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$22); + _r$23 = fmt.Sprintf("%s %s; ", new sliceType$2([_arg, _arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + str = str + (_r$23); + _i++; + $s = 1; continue; + case 2: + str = str + ("}"); + $s = -1; return str; + /* */ } return; } var $f = {$blk: safeString$5, $c: true, $r, _arg, _arg$1, _entry, _i, _key, _r$22, _r$23, _ref, _tuple, f, ok, s, seen, str, $s};return $f; + }; + $ptrType(structType).prototype.string = function string$6() { + var {$24r, _r$22, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r$22 = s.safeString(new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $24r = _r$22; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: string$6, $c: true, $r, $24r, _r$22, s, $s};return $f; + }; + newStructType = function newStructType$1(name$2) { + var {name$2, s, $s, $r, $c} = $restore(this, {name$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = new structType.ptr($clone(new CommonType.ptr(name$2, 0), CommonType), sliceType$3.nil); + $r = setTypeId(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return s; + /* */ } return; } var $f = {$blk: newStructType$1, $c: true, $r, name$2, s, $s};return $f; + }; + newTypeObject = function newTypeObject$1(name$2, ut, rt) { + var {$24r, $24r$1, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _key, _key$1, _key$2, _key$3, _key$4, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, at, err, err$1, f, gt, i, mt, name$2, rt, st, st$1, t, t$1, tname, typ, type0, type1, ut, $s, $deferred, $r, $c} = $restore(this, {name$2, ut, rt}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + err = [err]; + rt = [rt]; + /* */ if (!((ut.externalEnc === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((ut.externalEnc === 0))) { */ case 1: + _r$22 = newGobEncoderType(name$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $24r = [_r$22, $ifaceNil]; + $s = 4; case 4: return $24r; + /* } */ case 2: + err[0] = $ifaceNil; + _tmp = $ifaceNil; + _tmp$1 = $ifaceNil; + type0 = _tmp; + type1 = _tmp$1; + $deferred.push([(function(err, rt) { return function newTypeObject·func1() { + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + $mapDelete(types, reflect.Type.keyFor(rt[0])); + } + }; })(err, rt), []]); + t = rt[0]; + _r$23 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _1 = _r$23; + /* */ if (_1 === (1)) { $s = 7; continue; } + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 8; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 9; continue; } + /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 10; continue; } + /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 11; continue; } + /* */ if (_1 === (24)) { $s = 12; continue; } + /* */ if (_1 === (20)) { $s = 13; continue; } + /* */ if (_1 === (17)) { $s = 14; continue; } + /* */ if (_1 === (21)) { $s = 15; continue; } + /* */ if (_1 === (23)) { $s = 16; continue; } + /* */ if (_1 === (25)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (_1 === (1)) { */ case 7: + $s = -1; return [new typeId(tBool).gobType(), $ifaceNil]; + /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 8: + $s = -1; return [new typeId(tInt).gobType(), $ifaceNil]; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 9: + $s = -1; return [new typeId(tUint).gobType(), $ifaceNil]; + /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 10: + $s = -1; return [new typeId(tFloat).gobType(), $ifaceNil]; + /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 11: + $s = -1; return [new typeId(tComplex).gobType(), $ifaceNil]; + /* } else if (_1 === (24)) { */ case 12: + $s = -1; return [new typeId(tString).gobType(), $ifaceNil]; + /* } else if (_1 === (20)) { */ case 13: + $s = -1; return [new typeId(tInterface).gobType(), $ifaceNil]; + /* } else if (_1 === (17)) { */ case 14: + at = newArrayType(name$2); + _key = rt[0]; (types || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key), { k: _key, v: at }); + _r$24 = t.Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg = _r$24; + _r$25 = getBaseType("", _arg); /* */ $s = 21; case 21: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _tuple = _r$25; + type0 = _tuple[0]; + err[0] = _tuple[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + $s = -1; return [$ifaceNil, err[0]]; + } + _arg$1 = type0; + _r$26 = t.Len(); /* */ $s = 22; case 22: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _arg$2 = _r$26; + $r = at.init(_arg$1, _arg$2); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [at, $ifaceNil]; + /* } else if (_1 === (21)) { */ case 15: + mt = newMapType(name$2); + _key$1 = rt[0]; (types || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key$1), { k: _key$1, v: mt }); + _r$27 = t.Key(); /* */ $s = 24; case 24: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _arg$3 = _r$27; + _r$28 = getBaseType("", _arg$3); /* */ $s = 25; case 25: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _tuple$1 = _r$28; + type0 = _tuple$1[0]; + err[0] = _tuple$1[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + $s = -1; return [$ifaceNil, err[0]]; + } + _r$29 = t.Elem(); /* */ $s = 26; case 26: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _arg$4 = _r$29; + _r$30 = getBaseType("", _arg$4); /* */ $s = 27; case 27: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _tuple$2 = _r$30; + type1 = _tuple$2[0]; + err[0] = _tuple$2[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + $s = -1; return [$ifaceNil, err[0]]; + } + $r = mt.init(type0, type1); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [mt, $ifaceNil]; + /* } else if (_1 === (23)) { */ case 16: + _r$31 = t.Elem(); /* */ $s = 31; case 31: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _r$32 = _r$31.Kind(); /* */ $s = 32; case 32: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + /* */ if (_r$32 === 8) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (_r$32 === 8) { */ case 29: + $s = -1; return [new typeId(tBytes).gobType(), $ifaceNil]; + /* } */ case 30: + st = newSliceType(name$2); + _key$2 = rt[0]; (types || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key$2), { k: _key$2, v: st }); + _r$33 = t.Elem(); /* */ $s = 33; case 33: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _r$34 = _r$33.Name(); /* */ $s = 34; case 34: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + _arg$5 = _r$34; + _r$35 = t.Elem(); /* */ $s = 35; case 35: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _arg$6 = _r$35; + _r$36 = getBaseType(_arg$5, _arg$6); /* */ $s = 36; case 36: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + _tuple$3 = _r$36; + type0 = _tuple$3[0]; + err[0] = _tuple$3[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + $s = -1; return [$ifaceNil, err[0]]; + } + $r = st.init(type0); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [st, $ifaceNil]; + /* } else if (_1 === (25)) { */ case 17: + _r$37 = newStructType(name$2); /* */ $s = 38; case 38: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + st$1 = _r$37; + _key$3 = rt[0]; (types || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key$3), { k: _key$3, v: st$1 }); + _key$4 = st$1.CommonType.id(); (idToType || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key$4), { k: _key$4, v: st$1 }); + i = 0; + /* while (true) { */ case 39: + _r$38 = t.NumField(); /* */ $s = 41; case 41: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + /* if (!(i < _r$38)) { break; } */ if(!(i < _r$38)) { $s = 40; continue; } + f = [f]; + _r$39 = t.Field(i); /* */ $s = 42; case 42: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + f[0] = $clone(_r$39, reflect.StructField); + _r$40 = isSent(f[0]); /* */ $s = 45; case 45: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + /* */ if (!_r$40) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (!_r$40) { */ case 43: + i = i + (1) >> 0; + /* continue; */ $s = 39; continue; + /* } */ case 44: + _r$41 = userType(f[0].Type); /* */ $s = 46; case 46: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + typ = _r$41.base; + _r$42 = typ.Name(); /* */ $s = 47; case 47: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } + tname = _r$42; + /* */ if (tname === "") { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (tname === "") { */ case 48: + _r$43 = userType(f[0].Type); /* */ $s = 50; case 50: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + t$1 = _r$43.base; + _r$44 = t$1.String(); /* */ $s = 51; case 51: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } + tname = _r$44; + /* } */ case 49: + _r$45 = getBaseType(tname, f[0].Type); /* */ $s = 52; case 52: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } + _tuple$4 = _r$45; + gt = _tuple$4[0]; + err$1 = _tuple$4[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [$ifaceNil, err$1]; + } + _r$46 = gt.id(); /* */ $s = 55; case 55: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } + /* */ if (_r$46 === 0) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (_r$46 === 0) { */ case 53: + $r = setTypeId(gt); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 54: + _r$47 = gt.id(); /* */ $s = 57; case 57: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } + st$1.Field = $append(st$1.Field, new fieldType.ptr(f[0].Name, _r$47)); + i = i + (1) >> 0; + $s = 39; continue; + case 40: + $s = -1; return [st$1, $ifaceNil]; + /* } else { */ case 18: + _r$48 = rt[0].String(); /* */ $s = 58; case 58: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } + _r$49 = errors.New("gob NewTypeObject can't handle type: " + _r$48); /* */ $s = 59; case 59: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } + $24r$1 = [$ifaceNil, _r$49]; + $s = 60; case 60: return $24r$1; + /* } */ case 19: + case 5: + $s = -1; return [$ifaceNil, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [$ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: newTypeObject$1, $c: true, $r, $24r, $24r$1, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _key, _key$1, _key$2, _key$3, _key$4, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, at, err, err$1, f, gt, i, mt, name$2, rt, st, st$1, t, t$1, tname, typ, type0, type1, ut, $s, $deferred};return $f; } } + }; + isExported = function isExported$1(name$2) { + var _tuple, name$2, rune; + _tuple = utf8.DecodeRuneInString(name$2); + rune = _tuple[0]; + return unicode.IsUpper(rune); + }; + isSent = function isSent$1(field) { + var {_r$22, _r$23, _r$24, _r$25, _v, field, typ, $s, $r, $c} = $restore(this, {field}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!isExported(field.Name)) { + $s = -1; return false; + } + typ = field.Type; + /* while (true) { */ case 1: + _r$22 = typ.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + /* if (!(_r$22 === 22)) { break; } */ if(!(_r$22 === 22)) { $s = 2; continue; } + _r$23 = typ.Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + typ = _r$23; + $s = 1; continue; + case 2: + _r$24 = typ.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + if (_r$24 === 18) { _v = true; $s = 7; continue s; } + _r$25 = typ.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _v = _r$25 === 19; case 7: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_v) { */ case 5: + $s = -1; return false; + /* } */ case 6: + $s = -1; return true; + /* */ } return; } var $f = {$blk: isSent$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, _v, field, typ, $s};return $f; + }; + getBaseType = function getBaseType$1(name$2, rt) { + var {$24r, _r$22, _r$23, name$2, rt, ut, $s, $r, $c} = $restore(this, {name$2, rt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = userType(rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + ut = _r$22; + _r$23 = getType(name$2, ut, ut.base); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + $24r = _r$23; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: getBaseType$1, $c: true, $r, $24r, _r$22, _r$23, name$2, rt, ut, $s};return $f; + }; + getType = function getType$1(name$2, ut, rt) { + var {_entry, _key, _r$22, _tuple, _tuple$1, err, name$2, present, rt, typ, ut, $s, $r, $c} = $restore(this, {name$2, ut, rt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = (_entry = $mapIndex(types,reflect.Type.keyFor(rt)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); + typ = _tuple[0]; + present = _tuple[1]; + if (present) { + $s = -1; return [typ, $ifaceNil]; + } + _r$22 = newTypeObject(name$2, ut, rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _tuple$1 = _r$22; + typ = _tuple$1[0]; + err = _tuple$1[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + _key = rt; (types || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key), { k: _key, v: typ }); + } + $s = -1; return [typ, err]; + /* */ } return; } var $f = {$blk: getType$1, $c: true, $r, _entry, _key, _r$22, _tuple, _tuple$1, err, name$2, present, rt, typ, ut, $s};return $f; + }; + checkId = function checkId$1(want, got) { + var {_r$22, _r$23, _r$24, _r$25, got, want, $s, $r, $c} = $restore(this, {want, got}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (!((want === got))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((want === got))) { */ case 1: + _r$22 = fmt.Fprintf(os.Stderr, "checkId: %d should be %d\n", new sliceType$2([new $Int(((got >> 0))), new $Int(((want >> 0)))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$22; + _r$23 = new typeId(got).name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _r$24 = new typeId(got).string(); /* */ $s = 5; case 5: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = new typeId(want).string(); /* */ $s = 6; case 6: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $panic(new $String("bootstrap type wrong id: " + _r$23 + " " + _r$24 + " not " + _r$25)); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: checkId$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, got, want, $s};return $f; + }; + bootstrapType = function bootstrapType$1(name$2, e, expect) { + var {_entry, _key, _r$22, _r$23, _r$24, _tuple, e, expect, name$2, present, rt, typ, $s, $r, $c} = $restore(this, {name$2, e, expect}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = reflect.TypeOf(e).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + rt = _r$22; + _tuple = (_entry = $mapIndex(types,reflect.Type.keyFor(rt)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); + present = _tuple[1]; + /* */ if (present) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (present) { */ case 2: + _r$23 = rt.String(); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + $panic(new $String("bootstrap type already present: " + name$2 + ", " + _r$23)); + /* } */ case 3: + typ = new CommonType.ptr(name$2, 0); + _key = rt; (types || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key), { k: _key, v: typ }); + $r = setTypeId(typ); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = checkId(expect, nextId); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$24 = userType(rt); /* */ $s = 7; case 7: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$24; + $s = -1; return nextId; + /* */ } return; } var $f = {$blk: bootstrapType$1, $c: true, $r, _entry, _key, _r$22, _r$23, _r$24, _tuple, e, expect, name$2, present, rt, typ, $s};return $f; + }; + $ptrType(wireType).prototype.string = function string$7() { + var w; + w = this; + if (w === ptrType$29.nil) { + return "unknown type"; + } + if (!(w.ArrayT === ptrType$23.nil)) { + return w.ArrayT.CommonType.Name; + } else if (!(w.SliceT === ptrType$24.nil)) { + return w.SliceT.CommonType.Name; + } else if (!(w.StructT === ptrType$25.nil)) { + return w.StructT.CommonType.Name; + } else if (!(w.MapT === ptrType$26.nil)) { + return w.MapT.CommonType.Name; + } else if (!(w.GobEncoderT === ptrType$27.nil)) { + return w.GobEncoderT.CommonType.Name; + } else if (!(w.BinaryMarshalerT === ptrType$27.nil)) { + return w.BinaryMarshalerT.CommonType.Name; + } else if (!(w.TextMarshalerT === ptrType$27.nil)) { + return w.TextMarshalerT.CommonType.Name; + } + return "unknown type"; + }; + lookupTypeInfo = function lookupTypeInfo$1(rt) { + var _entry, _tuple, m, rt; + _tuple = $assertType(typeInfoMap.Load(), mapType$1, true); + m = _tuple[0]; + return (_entry = $mapIndex(m,reflect.Type.keyFor(rt)), _entry !== undefined ? _entry.v : ptrType$30.nil); + }; + getTypeInfo = function getTypeInfo$1(ut) { + var {$24r, _r$22, info, rt, ut, $s, $r, $c} = $restore(this, {ut}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rt = ut.base; + if (!((ut.externalEnc === 0))) { + rt = ut.user; + } + info = lookupTypeInfo(rt); + if (!(info === ptrType$30.nil)) { + $s = -1; return [info, $ifaceNil]; + } + _r$22 = buildTypeInfo(ut, rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $24r = _r$22; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: getTypeInfo$1, $c: true, $r, $24r, _r$22, info, rt, ut, $s};return $f; + }; + buildTypeInfo = function buildTypeInfo$1(ut, rt) { + var {_1, _2, _entry, _i, _key, _key$1, _key$2, _keys, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _ref, _size, _tuple, _tuple$1, _tuple$2, err, err$1, gt, gt$1, info, info$1, k, m, newm, rt, t, typ, userType$2, ut, v, $s, $deferred, $r, $c} = $restore(this, {ut, rt}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + typeLock.Lock(); + $deferred.push([$methodVal(typeLock, "Unlock"), []]); + info = lookupTypeInfo(rt); + if (!(info === ptrType$30.nil)) { + $s = -1; return [info, $ifaceNil]; + } + _r$22 = rt.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$23 = getBaseType(_r$22, rt); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _tuple = _r$23; + gt = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$30.nil, err]; + } + _r$24 = gt.id(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + info$1 = new typeInfo.ptr(_r$24, new nosync.Mutex.ptr(false, false, false, false, 0), new atomic.Value.ptr($ifaceNil), ptrType$29.nil); + /* */ if (!((ut.externalEnc === 0))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((ut.externalEnc === 0))) { */ case 4: + _r$25 = rt.Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$26 = getType(_r$25, ut, rt); /* */ $s = 8; case 8: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _tuple$1 = _r$26; + userType$2 = _tuple$1[0]; + err$1 = _tuple$1[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [ptrType$30.nil, err$1]; + } + _r$27 = userType$2.id(); /* */ $s = 9; case 9: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$28 = new typeId(_r$27).gobType(); /* */ $s = 10; case 10: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + gt$1 = $assertType(_r$28, ptrType$27); + _1 = ut.externalEnc; + if (_1 === (1)) { + info$1.wire = new wireType.ptr(ptrType$23.nil, ptrType$24.nil, ptrType$25.nil, ptrType$26.nil, gt$1, ptrType$27.nil, ptrType$27.nil); + } else if (_1 === (2)) { + info$1.wire = new wireType.ptr(ptrType$23.nil, ptrType$24.nil, ptrType$25.nil, ptrType$26.nil, ptrType$27.nil, gt$1, ptrType$27.nil); + } else if (_1 === (3)) { + info$1.wire = new wireType.ptr(ptrType$23.nil, ptrType$24.nil, ptrType$25.nil, ptrType$26.nil, ptrType$27.nil, ptrType$27.nil, gt$1); + } + rt = ut.user; + $s = 6; continue; + /* } else { */ case 5: + t = new typeId(info$1.id).gobType(); + typ = rt; + _r$29 = typ.Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _2 = _r$29; + /* */ if (_2 === (17)) { $s = 13; continue; } + /* */ if (_2 === (21)) { $s = 14; continue; } + /* */ if (_2 === (23)) { $s = 15; continue; } + /* */ if (_2 === (25)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_2 === (17)) { */ case 13: + info$1.wire = new wireType.ptr($assertType(t, ptrType$23), ptrType$24.nil, ptrType$25.nil, ptrType$26.nil, ptrType$27.nil, ptrType$27.nil, ptrType$27.nil); + $s = 17; continue; + /* } else if (_2 === (21)) { */ case 14: + info$1.wire = new wireType.ptr(ptrType$23.nil, ptrType$24.nil, ptrType$25.nil, $assertType(t, ptrType$26), ptrType$27.nil, ptrType$27.nil, ptrType$27.nil); + $s = 17; continue; + /* } else if (_2 === (23)) { */ case 15: + _r$30 = typ.Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _r$31 = _r$30.Kind(); /* */ $s = 21; case 21: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + /* */ if (!((_r$31 === 8))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!((_r$31 === 8))) { */ case 18: + info$1.wire = new wireType.ptr(ptrType$23.nil, $assertType(t, ptrType$24), ptrType$25.nil, ptrType$26.nil, ptrType$27.nil, ptrType$27.nil, ptrType$27.nil); + /* } */ case 19: + $s = 17; continue; + /* } else if (_2 === (25)) { */ case 16: + info$1.wire = new wireType.ptr(ptrType$23.nil, ptrType$24.nil, $assertType(t, ptrType$25), ptrType$26.nil, ptrType$27.nil, ptrType$27.nil, ptrType$27.nil); + /* } */ case 17: + case 11: + /* } */ case 6: + newm = new $global.Map(); + _tuple$2 = $assertType(typeInfoMap.Load(), mapType$1, true); + m = _tuple$2[0]; + _ref = m; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + k = _entry.k; + v = _entry.v; + _key$1 = k; (newm || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key$1), { k: _key$1, v: v }); + _i++; + } + _key$2 = rt; (newm || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key$2), { k: _key$2, v: info$1 }); + typeInfoMap.Store(new mapType$1(newm)); + $s = -1; return [info$1, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$30.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: buildTypeInfo$1, $c: true, $r, _1, _2, _entry, _i, _key, _key$1, _key$2, _keys, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _ref, _size, _tuple, _tuple$1, _tuple$2, err, err$1, gt, gt$1, info, info$1, k, m, newm, rt, t, typ, userType$2, ut, v, $s, $deferred};return $f; } } + }; + mustGetTypeInfo = function mustGetTypeInfo$1(rt) { + var {_r$22, _r$23, _r$24, _tuple, err, rt, t, $s, $r, $c} = $restore(this, {rt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = userType(rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$23 = getTypeInfo(_r$22); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _tuple = _r$23; + t = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3: + _r$24 = err.Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $panic(new $String("getTypeInfo: " + _r$24)); + /* } */ case 4: + $s = -1; return t; + /* */ } return; } var $f = {$blk: mustGetTypeInfo$1, $c: true, $r, _r$22, _r$23, _r$24, _tuple, err, rt, t, $s};return $f; + }; + RegisterName = function RegisterName$1(name$2, value) { + var {_r$22, _r$23, _r$24, _tuple, _tuple$1, dup, dup$1, n, name$2, t, ut, value, $s, $r, $c} = $restore(this, {name$2, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (name$2 === "") { + $panic(new $String("attempt to register empty name")); + } + _r$22 = userType(reflect.TypeOf(value)); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + ut = _r$22; + _tuple = nameToConcreteType.LoadOrStore(new $String(name$2), reflect.TypeOf(value)); + t = _tuple[0]; + dup = _tuple[1]; + /* */ if (dup && !($interfaceIsEqual(t, ut.user))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (dup && !($interfaceIsEqual(t, ut.user))) { */ case 2: + _r$23 = fmt.Sprintf("gob: registering duplicate types for %q: %s != %s", new sliceType$2([new $String(name$2), t, ut.user])); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + $panic(new $String(_r$23)); + /* } */ case 3: + _tuple$1 = concreteTypeToName.LoadOrStore(ut.base, new $String(name$2)); + n = _tuple$1[0]; + dup$1 = _tuple$1[1]; + /* */ if (dup$1 && !($interfaceIsEqual(n, new $String(name$2)))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (dup$1 && !($interfaceIsEqual(n, new $String(name$2)))) { */ case 5: + nameToConcreteType.Delete(new $String(name$2)); + _r$24 = fmt.Sprintf("gob: registering duplicate names for %s: %q != %q", new sliceType$2([ut.user, n, new $String(name$2)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $panic(new $String(_r$24)); + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: RegisterName$1, $c: true, $r, _r$22, _r$23, _r$24, _tuple, _tuple$1, dup, dup$1, n, name$2, t, ut, value, $s};return $f; + }; + $pkg.RegisterName = RegisterName; + Register = function Register$1(value) { + var {_r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, name$2, pt, rt, star, value, $s, $r, $c} = $restore(this, {value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rt = reflect.TypeOf(value); + _r$22 = rt.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + name$2 = _r$22; + star = ""; + _r$23 = rt.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + /* */ if (_r$23 === "") { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_r$23 === "") { */ case 2: + pt = rt; + _r$24 = pt.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (_r$24 === 22) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$24 === 22) { */ case 5: + star = "*"; + rt = pt; + /* } */ case 6: + /* } */ case 3: + _r$25 = rt.Name(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + /* */ if (!(_r$25 === "")) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!(_r$25 === "")) { */ case 8: + _r$26 = rt.PkgPath(); /* */ $s = 14; case 14: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + /* */ if (_r$26 === "") { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_r$26 === "") { */ case 11: + _r$27 = rt.Name(); /* */ $s = 15; case 15: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + name$2 = star + _r$27; + $s = 13; continue; + /* } else { */ case 12: + _r$28 = rt.PkgPath(); /* */ $s = 16; case 16: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$29 = rt.Name(); /* */ $s = 17; case 17: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + name$2 = star + _r$28 + "." + _r$29; + /* } */ case 13: + /* } */ case 9: + $r = RegisterName(name$2, value); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Register$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, name$2, pt, rt, star, value, $s};return $f; + }; + $pkg.Register = Register; + registerBasics = function registerBasics$1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = Register(new $Int(0)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Int8(0)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Int16(0)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Int32(0)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Int64(0, 0)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Uint(0)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Uint8(0)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Uint16(0)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Uint32(0)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Uint64(0, 0)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Float32(0)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Float64(0)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Complex64(0, 0)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Complex128(0, 0)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Uintptr(0)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $Bool(false)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register(new $String("")); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$1.nil)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$4.nil)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$5.nil)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$6.nil)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$7.nil)); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$8.nil)); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$9.nil)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$1.nil)); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$10.nil)); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$11.nil)); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$12.nil)); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$13.nil)); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$14.nil)); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$15.nil)); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$16.nil)); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$17.nil)); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$18.nil)); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$19.nil)); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: registerBasics$1, $c: true, $r, $s};return $f; + }; + errorf = function errorf$1(format, args) { + var {_r$22, args, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = fmt.Errorf("gob: " + format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $r = error_(_r$22); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: errorf$1, $c: true, $r, _r$22, args, format, $s};return $f; + }; + error_ = function error_$1(err) { + var err, x$2; + $panic((x$2 = new gobError.ptr(err), new x$2.constructor.elem(x$2))); + }; + $ptrType(encBuffer).prototype.Write = function Write(p) { + var e, p; + e = this; + e.data = $appendSlice(e.data, p); + return [p.$length, $ifaceNil]; + }; + $ptrType(encBuffer).prototype.WriteString = function WriteString(s) { + var e, s; + e = this; + e.data = $appendSlice(e.data, s); + }; + $ptrType(encBuffer).prototype.Len = function Len() { + var e; + e = this; + return e.data.$length; + }; + $ptrType(encBuffer).prototype.Bytes = function Bytes() { + var e; + e = this; + return e.data; + }; + $ptrType(encBuffer).prototype.Reset = function Reset() { + var e; + e = this; + if (e.data.$length >= 1073741824) { + e.data = $subslice(new sliceType$1(e.scratch), 0, 0); + } else { + e.data = $subslice(e.data, 0, 0); + } + }; + $ptrType(decoderState).prototype.decodeUint = function decodeUint() { + var {_i, _ref, _tuple, b, b$1, buf, err, n, state, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x$2 = new $Uint64(0, 0); + state = this; + _tuple = state.b.ReadByte(); + b = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + error_(err); + } + if (b <= 127) { + x$2 = (new $Uint64(0, b)); + $s = -1; return x$2; + } + n = -((((b << 24 >> 24)) >> 0)); + if (n > 8) { + error_(errBadUint); + } + buf = state.b.Bytes(); + /* */ if (buf.$length < n) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (buf.$length < n) { */ case 1: + $r = errorf("invalid uint data length %d: exceeds input size %d", new sliceType$2([new $Int(n), new $Int(buf.$length)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _ref = $subslice(buf, 0, n); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + b$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + x$2 = (x$3 = $shiftLeft64(x$2, 8), x$4 = (new $Uint64(0, b$1)), new $Uint64(x$3.$high | x$4.$high, (x$3.$low | x$4.$low) >>> 0)); + _i++; + } + state.b.Drop(n); + x$2 = x$2; + $s = -1; return x$2; + /* */ } return; } var $f = {$blk: decodeUint, $c: true, $r, _i, _ref, _tuple, b, b$1, buf, err, n, state, x$2, x$3, x$4, $s};return $f; + }; + $ptrType(decoderState).prototype.decodeInt = function decodeInt() { + var {_r$22, state, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + state = this; + _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + x$2 = _r$22; + if (!((x$3 = new $Uint64(x$2.$high & 0, (x$2.$low & 1) >>> 0), (x$3.$high === 0 && x$3.$low === 0)))) { + $s = -1; return (x$4 = ((x$5 = $shiftRightUint64(x$2, 1), new $Int64(x$5.$high, x$5.$low))), new $Int64(~x$4.$high, ~x$4.$low >>> 0)); + } + $s = -1; return ((x$6 = $shiftRightUint64(x$2, 1), new $Int64(x$6.$high, x$6.$low))); + /* */ } return; } var $f = {$blk: decodeInt, $c: true, $r, _r$22, state, x$2, x$3, x$4, x$5, x$6, $s};return $f; + }; + $ptrType(decoderState).prototype.getLength = function getLength() { + var {_r$22, n, state, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + state = this; + _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + n = ((_r$22.$low >> 0)); + if (n < 0 || state.b.Len() < n || 1073741824 <= n) { + $s = -1; return [0, false]; + } + $s = -1; return [n, true]; + /* */ } return; } var $f = {$blk: getLength, $c: true, $r, _r$22, n, state, $s};return $f; + }; + decBool = function decBool$1(i, state, value) { + var {_r$22, i, state, value, x$2, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $r = $clone(value, reflect.Value).SetBool(!((x$2 = _r$22, (x$2.$high === 0 && x$2.$low === 0)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: decBool$1, $c: true, $r, _r$22, i, state, value, x$2, $s};return $f; + }; + decInt8 = function decInt8$1(i, state, value) { + var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.decodeInt(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + v = _r$22; + if ((v.$high < -1 || (v.$high === -1 && v.$low < 4294967168)) || (0 < v.$high || (0 === v.$high && 127 < v.$low))) { + error_(i.ovfl); + } + $clone(value, reflect.Value).SetInt(v); + $s = -1; return; + /* */ } return; } var $f = {$blk: decInt8$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + }; + decUint8 = function decUint8$1(i, state, value) { + var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + v = _r$22; + if ((0 < v.$high || (0 === v.$high && 255 < v.$low))) { + error_(i.ovfl); + } + $clone(value, reflect.Value).SetUint(v); + $s = -1; return; + /* */ } return; } var $f = {$blk: decUint8$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + }; + decInt16 = function decInt16$1(i, state, value) { + var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.decodeInt(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + v = _r$22; + if ((v.$high < -1 || (v.$high === -1 && v.$low < 4294934528)) || (0 < v.$high || (0 === v.$high && 32767 < v.$low))) { + error_(i.ovfl); + } + $clone(value, reflect.Value).SetInt(v); + $s = -1; return; + /* */ } return; } var $f = {$blk: decInt16$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + }; + decUint16 = function decUint16$1(i, state, value) { + var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + v = _r$22; + if ((0 < v.$high || (0 === v.$high && 65535 < v.$low))) { + error_(i.ovfl); + } + $clone(value, reflect.Value).SetUint(v); + $s = -1; return; + /* */ } return; } var $f = {$blk: decUint16$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + }; + decInt32 = function decInt32$1(i, state, value) { + var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.decodeInt(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + v = _r$22; + if ((v.$high < -1 || (v.$high === -1 && v.$low < 2147483648)) || (0 < v.$high || (0 === v.$high && 2147483647 < v.$low))) { + error_(i.ovfl); + } + $clone(value, reflect.Value).SetInt(v); + $s = -1; return; + /* */ } return; } var $f = {$blk: decInt32$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + }; + decUint32 = function decUint32$1(i, state, value) { + var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + v = _r$22; + if ((0 < v.$high || (0 === v.$high && 4294967295 < v.$low))) { + error_(i.ovfl); + } + $clone(value, reflect.Value).SetUint(v); + $s = -1; return; + /* */ } return; } var $f = {$blk: decUint32$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + }; + decInt64 = function decInt64$1(i, state, value) { + var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.decodeInt(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + v = _r$22; + $clone(value, reflect.Value).SetInt(v); + $s = -1; return; + /* */ } return; } var $f = {$blk: decInt64$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + }; + decUint64 = function decUint64$1(i, state, value) { + var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + v = _r$22; + $clone(value, reflect.Value).SetUint(v); + $s = -1; return; + /* */ } return; } var $f = {$blk: decUint64$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + }; + float64FromBits = function float64FromBits$1(u) { + var u, v; + v = bits.ReverseBytes64(u); + return math.Float64frombits(v); + }; + float32FromBits = function float32FromBits$1(u, ovfl) { + var av, ovfl, u, v; + v = float64FromBits(u); + av = v; + if (av < 0) { + av = -av; + } + if (3.4028234663852886e+38 < av && av <= 1.7976931348623157e+308) { + error_(ovfl); + } + return v; + }; + decFloat32 = function decFloat32$1(i, state, value) { + var {_r$22, _r$23, i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$23 = float32FromBits(_r$22, i.ovfl); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + $r = $clone(value, reflect.Value).SetFloat(_r$23); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: decFloat32$1, $c: true, $r, _r$22, _r$23, i, state, value, $s};return $f; + }; + decFloat64 = function decFloat64$1(i, state, value) { + var {_r$22, _r$23, i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$23 = float64FromBits(_r$22); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + $r = $clone(value, reflect.Value).SetFloat(_r$23); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: decFloat64$1, $c: true, $r, _r$22, _r$23, i, state, value, $s};return $f; + }; + decComplex64 = function decComplex64$1(i, state, value) { + var {_r$22, _r$23, _r$24, _r$25, i, imag, real, state, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$23 = float32FromBits(_r$22, i.ovfl); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + real = _r$23; + _r$24 = state.decodeUint(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = float32FromBits(_r$24, i.ovfl); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + imag = _r$25; + $clone(value, reflect.Value).SetComplex(new $Complex128(real, imag)); + $s = -1; return; + /* */ } return; } var $f = {$blk: decComplex64$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, i, imag, real, state, value, $s};return $f; + }; + decComplex128 = function decComplex128$1(i, state, value) { + var {_r$22, _r$23, _r$24, _r$25, i, imag, real, state, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$23 = float64FromBits(_r$22); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + real = _r$23; + _r$24 = state.decodeUint(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = float64FromBits(_r$24); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + imag = _r$25; + $clone(value, reflect.Value).SetComplex(new $Complex128(real, imag)); + $s = -1; return; + /* */ } return; } var $f = {$blk: decComplex128$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, i, imag, real, state, value, $s};return $f; + }; + decString = function decString$1(i, state, value) { + var {_r$22, _tuple, data, i, n, ok, s, state, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$22 = state.getLength(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _tuple = _r$22; + n = _tuple[0]; + ok = _tuple[1]; + /* */ if (!ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!ok) { */ case 2: + $r = errorf("bad %s slice length: %d", new sliceType$2([$clone(value, reflect.Value).Type(), new $Int(n)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + data = state.b.Bytes(); + /* */ if (data.$length < n) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (data.$length < n) { */ case 5: + $r = errorf("invalid string length %d: exceeds input size %d", new sliceType$2([new $Int(n), new $Int(data.$length)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + s = ($bytesToString($subslice(data, 0, n))); + state.b.Drop(n); + $clone(value, reflect.Value).SetString(s); + $s = -1; return; + /* */ } return; } var $f = {$blk: decString$1, $c: true, $r, _r$22, _tuple, data, i, n, ok, s, state, value, $s};return $f; + }; + init$1 = function init$6() { + var {_1, _2, _r$22, _r$23, _tmp, _tmp$1, iop, uop, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tmp = $throwNilPointerError; + _tmp$1 = $throwNilPointerError; + iop = _tmp; + uop = _tmp$1; + _r$22 = reflect.TypeOf(new $Int(0)).Bits(); /* */ $s = 2; case 2: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _1 = _r$22; + if (_1 === (32)) { + iop = decInt32; + uop = decUint32; + } else if (_1 === (64)) { + iop = decInt64; + uop = decUint64; + } else { + $panic(new $String("gob: unknown size of int/uint")); + } + case 1: + decOpTable[2] = iop; + decOpTable[7] = uop; + _r$23 = reflect.TypeOf(new $Uintptr(0)).Bits(); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _2 = _r$23; + if (_2 === (32)) { + uop = decUint32; + } else if (_2 === (64)) { + uop = decUint64; + } else { + $panic(new $String("gob: unknown size of uintptr")); + } + case 3: + decOpTable[12] = uop; + $s = -1; return; + /* */ } return; } var $f = {$blk: init$6, $c: true, $r, _1, _2, _r$22, _r$23, _tmp, _tmp$1, iop, uop, $s};return $f; + }; + typeId.methods = [{prop: "gobType", name: "gobType", pkg: "encoding/gob", typ: $funcType([], [gobType], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}, {prop: "name", name: "name", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$44.methods = [{prop: "id", name: "id", pkg: "encoding/gob", typ: $funcType([], [typeId], false)}, {prop: "setId", name: "setId", pkg: "encoding/gob", typ: $funcType([typeId], [], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "name", name: "name", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$23.methods = [{prop: "init", name: "init", pkg: "encoding/gob", typ: $funcType([gobType, $Int], [], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$27.methods = [{prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$26.methods = [{prop: "init", name: "init", pkg: "encoding/gob", typ: $funcType([gobType, gobType], [], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$24.methods = [{prop: "init", name: "init", pkg: "encoding/gob", typ: $funcType([gobType], [], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$25.methods = [{prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$29.methods = [{prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$33.methods = [{prop: "writeByte", name: "writeByte", pkg: "encoding/gob", typ: $funcType([$Uint8], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}]; + ptrType$38.methods = [{prop: "decodeUint", name: "decodeUint", pkg: "encoding/gob", typ: $funcType([], [$Uint64], false)}, {prop: "decodeInt", name: "decodeInt", pkg: "encoding/gob", typ: $funcType([], [$Int64], false)}, {prop: "getLength", name: "getLength", pkg: "encoding/gob", typ: $funcType([], [$Int, $Bool], false)}]; + userTypeInfo.init("encoding/gob", [{prop: "user", name: "user", embedded: false, exported: false, typ: reflect.Type, tag: ""}, {prop: "base", name: "base", embedded: false, exported: false, typ: reflect.Type, tag: ""}, {prop: "indir", name: "indir", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "externalEnc", name: "externalEnc", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "externalDec", name: "externalDec", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "encIndir", name: "encIndir", embedded: false, exported: false, typ: $Int8, tag: ""}, {prop: "decIndir", name: "decIndir", embedded: false, exported: false, typ: $Int8, tag: ""}]); + gobType.init([{prop: "id", name: "id", pkg: "encoding/gob", typ: $funcType([], [typeId], false)}, {prop: "name", name: "name", pkg: "encoding/gob", typ: $funcType([], [$String], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "setId", name: "setId", pkg: "encoding/gob", typ: $funcType([typeId], [], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]); + CommonType.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Id", name: "Id", embedded: false, exported: true, typ: typeId, tag: ""}]); + arrayType.init("", [{prop: "CommonType", name: "CommonType", embedded: true, exported: true, typ: CommonType, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: typeId, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: $Int, tag: ""}]); + gobEncoderType.init("", [{prop: "CommonType", name: "CommonType", embedded: true, exported: true, typ: CommonType, tag: ""}]); + mapType.init("", [{prop: "CommonType", name: "CommonType", embedded: true, exported: true, typ: CommonType, tag: ""}, {prop: "Key", name: "Key", embedded: false, exported: true, typ: typeId, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: typeId, tag: ""}]); + sliceType.init("", [{prop: "CommonType", name: "CommonType", embedded: true, exported: true, typ: CommonType, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: typeId, tag: ""}]); + fieldType.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Id", name: "Id", embedded: false, exported: true, typ: typeId, tag: ""}]); + structType.init("", [{prop: "CommonType", name: "CommonType", embedded: true, exported: true, typ: CommonType, tag: ""}, {prop: "Field", name: "Field", embedded: false, exported: true, typ: sliceType$3, tag: ""}]); + wireType.init("", [{prop: "ArrayT", name: "ArrayT", embedded: false, exported: true, typ: ptrType$23, tag: ""}, {prop: "SliceT", name: "SliceT", embedded: false, exported: true, typ: ptrType$24, tag: ""}, {prop: "StructT", name: "StructT", embedded: false, exported: true, typ: ptrType$25, tag: ""}, {prop: "MapT", name: "MapT", embedded: false, exported: true, typ: ptrType$26, tag: ""}, {prop: "GobEncoderT", name: "GobEncoderT", embedded: false, exported: true, typ: ptrType$27, tag: ""}, {prop: "BinaryMarshalerT", name: "BinaryMarshalerT", embedded: false, exported: true, typ: ptrType$27, tag: ""}, {prop: "TextMarshalerT", name: "TextMarshalerT", embedded: false, exported: true, typ: ptrType$27, tag: ""}]); + typeInfo.init("encoding/gob", [{prop: "id", name: "id", embedded: false, exported: false, typ: typeId, tag: ""}, {prop: "encInit", name: "encInit", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "encoder", name: "encoder", embedded: false, exported: false, typ: atomic.Value, tag: ""}, {prop: "wire", name: "wire", embedded: false, exported: false, typ: ptrType$29, tag: ""}]); + GobEncoder.init([{prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}]); + GobDecoder.init([{prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$1], [$error], false)}]); + gobError.init("encoding/gob", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); + encBuffer.init("encoding/gob", [{prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "scratch", name: "scratch", embedded: false, exported: false, typ: arrayType$1, tag: ""}]); + decoderState.init("encoding/gob", [{prop: "dec", name: "dec", embedded: false, exported: false, typ: ptrType$39, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: ptrType$40, tag: ""}, {prop: "fieldnum", name: "fieldnum", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "next", name: "next", embedded: false, exported: false, typ: ptrType$38, tag: ""}]); + emptyStruct.init("", []); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = encoding.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = binary.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + userTypeCache = new nosync.Map.ptr(false); + nextId = 0; + typeLock = new nosync.Mutex.ptr(false, false, false, false, 0); + builtinIdToType = false; + wireTypeUserInfo = ptrType.nil; + typeInfoMap = new atomic.Value.ptr($ifaceNil); + nameToConcreteType = new nosync.Map.ptr(false); + concreteTypeToName = new nosync.Map.ptr(false); + _r = reflect.TypeOf((ptrType$2.nil)).Elem(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + gobEncoderInterfaceType = _r; + _r$1 = reflect.TypeOf((ptrType$3.nil)).Elem(); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + gobDecoderInterfaceType = _r$1; + _r$2 = reflect.TypeOf((ptrType$4.nil)).Elem(); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + binaryMarshalerInterfaceType = _r$2; + _r$3 = reflect.TypeOf((ptrType$5.nil)).Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + binaryUnmarshalerInterfaceType = _r$3; + _r$4 = reflect.TypeOf((ptrType$6.nil)).Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + textMarshalerInterfaceType = _r$4; + _r$5 = reflect.TypeOf((ptrType$7.nil)).Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + textUnmarshalerInterfaceType = _r$5; + types = new $global.Map(); + idToType = new $global.Map(); + _r$6 = bootstrapType("bool", (ptrType$8.nil), 1); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + tBool = _r$6; + _r$7 = bootstrapType("int", (ptrType$9.nil), 2); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + tInt = _r$7; + _r$8 = bootstrapType("uint", (ptrType$10.nil), 3); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + tUint = _r$8; + _r$9 = bootstrapType("float", (ptrType$11.nil), 4); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + tFloat = _r$9; + _r$10 = bootstrapType("bytes", (ptrType$12.nil), 5); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + tBytes = _r$10; + _r$11 = bootstrapType("string", (ptrType$13.nil), 6); /* */ $s = 26; case 26: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + tString = _r$11; + _r$12 = bootstrapType("complex", (ptrType$14.nil), 7); /* */ $s = 27; case 27: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + tComplex = _r$12; + _r$13 = bootstrapType("interface", (ptrType$15.nil), 8); /* */ $s = 28; case 28: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + tInterface = _r$13; + _r$14 = bootstrapType("_reserved1", (ptrType$16.nil), 9); /* */ $s = 29; case 29: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + tReserved7 = _r$14; + _r$15 = bootstrapType("_reserved1", (ptrType$17.nil), 10); /* */ $s = 30; case 30: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + tReserved6 = _r$15; + _r$16 = bootstrapType("_reserved1", (ptrType$18.nil), 11); /* */ $s = 31; case 31: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + tReserved5 = _r$16; + _r$17 = bootstrapType("_reserved1", (ptrType$19.nil), 12); /* */ $s = 32; case 32: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + tReserved4 = _r$17; + _r$18 = bootstrapType("_reserved1", (ptrType$20.nil), 13); /* */ $s = 33; case 33: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + tReserved3 = _r$18; + _r$19 = bootstrapType("_reserved1", (ptrType$21.nil), 14); /* */ $s = 34; case 34: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + tReserved2 = _r$19; + _r$20 = bootstrapType("_reserved1", (ptrType$22.nil), 15); /* */ $s = 35; case 35: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + tReserved1 = _r$20; + _r$21 = mustGetTypeInfo(reflect.TypeOf((x = new wireType.ptr(ptrType$23.nil, ptrType$24.nil, ptrType$25.nil, ptrType$26.nil, ptrType$27.nil, ptrType$27.nil, ptrType$27.nil), new x.constructor.elem(x)))); /* */ $s = 36; case 36: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + tWireType = _r$21.id; + spaceForLength = $makeSlice(sliceType$1, 9); + encBufferPool = new nosync.Pool.ptr(sliceType$2.nil, (function func1() { + var e; + e = new encBuffer.ptr(sliceType$1.nil, arrayType$1.zero()); + e.data = $subslice(new sliceType$1(e.scratch), 0, 0); + return e; + })); + errBadCount = errors.New("invalid message length"); + errBadUint = errors.New("gob: encoded unsigned integer out of range"); + errBadType = errors.New("gob: unknown type id or corrupted data"); + errRange = errors.New("gob: bad data: field numbers out of bounds"); + decOpTable = $toNativeArray($kindFunc, [$throwNilPointerError, decBool, $throwNilPointerError, decInt8, decInt16, decInt32, decInt64, $throwNilPointerError, decUint8, decUint16, decUint32, decUint64, $throwNilPointerError, decFloat32, decFloat64, decComplex64, decComplex128, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, decString]); + emptyStructType = reflect.TypeOf((x$1 = new emptyStruct.ptr(), new x$1.constructor.elem(x$1))); + $r = init(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = init$1(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["compress/flate"] = (function() { + var $pkg = {}, $init, bufio, errors, fmt, io, math, bits, sort, strconv, sync, hcode, huffmanEncoder, literalNode, levelInfo, byLiteral, byFreq, huffOffset, fixedLiteralEncoding, fixedOffsetEncoding, errWriterClosed, maxNode, newHuffmanEncoder, generateFixedLiteralEncoding, generateFixedOffsetEncoding, reverseBits, init; + bufio = $packages["bufio"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + io = $packages["io"]; + math = $packages["math"]; + bits = $packages["math/bits"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + sync = $packages["sync"]; + hcode = $newType(0, $kindStruct, "flate.hcode", true, "compress/flate", false, function(code_, len_) { + this.$val = this; + if (arguments.length === 0) { + this.code = 0; + this.len = 0; + return; + } + this.code = code_; + this.len = len_; + }); + huffmanEncoder = $newType(0, $kindStruct, "flate.huffmanEncoder", true, "compress/flate", false, function(codes_, freqcache_, bitCount_, lns_, lfs_) { + this.$val = this; + if (arguments.length === 0) { + this.codes = sliceType$6.nil; + this.freqcache = sliceType$7.nil; + this.bitCount = arrayType$6.zero(); + this.lns = byLiteral.nil; + this.lfs = byFreq.nil; + return; + } + this.codes = codes_; + this.freqcache = freqcache_; + this.bitCount = bitCount_; + this.lns = lns_; + this.lfs = lfs_; + }); + literalNode = $newType(0, $kindStruct, "flate.literalNode", true, "compress/flate", false, function(literal_, freq_) { + this.$val = this; + if (arguments.length === 0) { + this.literal = 0; + this.freq = 0; + return; + } + this.literal = literal_; + this.freq = freq_; + }); + levelInfo = $newType(0, $kindStruct, "flate.levelInfo", true, "compress/flate", false, function(level_, lastFreq_, nextCharFreq_, nextPairFreq_, needed_) { + this.$val = this; + if (arguments.length === 0) { + this.level = 0; + this.lastFreq = 0; + this.nextCharFreq = 0; + this.nextPairFreq = 0; + this.needed = 0; + return; + } + this.level = level_; + this.lastFreq = lastFreq_; + this.nextCharFreq = nextCharFreq_; + this.nextPairFreq = nextPairFreq_; + this.needed = needed_; + }); + byLiteral = $newType(12, $kindSlice, "flate.byLiteral", true, "compress/flate", false, null); + byFreq = $newType(12, $kindSlice, "flate.byFreq", true, "compress/flate", false, null); + $pkg.hcode = hcode; + $pkg.huffmanEncoder = huffmanEncoder; + $pkg.literalNode = literalNode; + $pkg.levelInfo = levelInfo; + $pkg.byLiteral = byLiteral; + $pkg.byFreq = byFreq; + $pkg.$finishSetup = function() { + $ptrType(hcode).prototype.set = function set(code, length$1) { + var code, h, length$1; + h = this; + h.len = length$1; + h.code = code; + }; + maxNode = function maxNode$1() { + return new literalNode.ptr(65535, 2147483647); + }; + newHuffmanEncoder = function newHuffmanEncoder$1(size) { + var size; + return new huffmanEncoder.ptr($makeSlice(sliceType$6, size), sliceType$7.nil, arrayType$6.zero(), byLiteral.nil, byFreq.nil); + }; + generateFixedLiteralEncoding = function generateFixedLiteralEncoding$1() { + var bits$1, ch, codes, h, size; + h = newHuffmanEncoder(286); + codes = h.codes; + ch = 0; + ch = 0; + while (true) { + if (!(ch < 286)) { break; } + bits$1 = 0; + size = 0; + switch (0) { default: + if (ch < 144) { + bits$1 = ch + 48 << 16 >>> 16; + size = 8; + break; + } else if (ch < 256) { + bits$1 = (ch + 400 << 16 >>> 16) - 144 << 16 >>> 16; + size = 9; + break; + } else if (ch < 280) { + bits$1 = ch - 256 << 16 >>> 16; + size = 7; + break; + } else { + bits$1 = (ch + 192 << 16 >>> 16) - 280 << 16 >>> 16; + size = 8; + } + } + hcode.copy(((ch < 0 || ch >= codes.$length) ? ($throwRuntimeError("index out of range"), undefined) : codes.$array[codes.$offset + ch]), new hcode.ptr(reverseBits(bits$1, ((size << 24 >>> 24))), size)); + ch = ch + (1) << 16 >>> 16; + } + return h; + }; + generateFixedOffsetEncoding = function generateFixedOffsetEncoding$1() { + var _i, _ref, ch, codes, h; + h = newHuffmanEncoder(30); + codes = h.codes; + _ref = codes; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + ch = _i; + hcode.copy(((ch < 0 || ch >= codes.$length) ? ($throwRuntimeError("index out of range"), undefined) : codes.$array[codes.$offset + ch]), new hcode.ptr(reverseBits(((ch << 16 >>> 16)), 5), 5)); + _i++; + } + return h; + }; + $ptrType(huffmanEncoder).prototype.bitCounts = function bitCounts(list, maxBits) { + var bitCount, bits$1, counts, h, l, leafCounts, level, level$1, level$2, levels$1, list, maxBits, n, n$1, prevFreq, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + h = this; + if (maxBits >= 16) { + $panic(new $String("flate: maxBits too large")); + } + n = ((list.$length >> 0)); + list = $subslice(list, 0, (n + 1 >> 0)); + literalNode.copy(((n < 0 || n >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + n]), maxNode()); + if (maxBits > (n - 1 >> 0)) { + maxBits = n - 1 >> 0; + } + levels$1 = arrayType$7.zero(); + leafCounts = arrayType$9.zero(); + level = 1; + while (true) { + if (!(level <= maxBits)) { break; } + levelInfo.copy(((level < 0 || level >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[level]), new levelInfo.ptr(level, (1 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 1]).freq, (2 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 2]).freq, (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).freq + (1 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 1]).freq >> 0, 0)); + (x = ((level < 0 || level >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[level]), ((level < 0 || level >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[level] = 2)); + if (level === 1) { + ((level < 0 || level >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[level]).nextPairFreq = 2147483647; + } + level = level + (1) >> 0; + } + ((maxBits < 0 || maxBits >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[maxBits]).needed = ($imul(2, n)) - 4 >> 0; + level$1 = maxBits; + while (true) { + l = ((level$1 < 0 || level$1 >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[level$1]); + if ((l.nextPairFreq === 2147483647) && (l.nextCharFreq === 2147483647)) { + l.needed = 0; + (x$1 = level$1 + 1 >> 0, ((x$1 < 0 || x$1 >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[x$1])).nextPairFreq = 2147483647; + level$1 = level$1 + (1) >> 0; + continue; + } + prevFreq = l.lastFreq; + if (l.nextCharFreq < l.nextPairFreq) { + n$1 = (x$2 = ((level$1 < 0 || level$1 >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[level$1]), ((level$1 < 0 || level$1 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[level$1])) + 1 >> 0; + l.lastFreq = l.nextCharFreq; + (x$3 = ((level$1 < 0 || level$1 >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[level$1]), ((level$1 < 0 || level$1 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[level$1] = n$1)); + l.nextCharFreq = ((n$1 < 0 || n$1 >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + n$1]).freq; + } else { + l.lastFreq = l.nextPairFreq; + $copySlice($subslice(new sliceType$8(((level$1 < 0 || level$1 >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[level$1])), 0, level$1), $subslice(new sliceType$8((x$4 = level$1 - 1 >> 0, ((x$4 < 0 || x$4 >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[x$4]))), 0, level$1)); + (x$5 = l.level - 1 >> 0, ((x$5 < 0 || x$5 >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[x$5])).needed = 2; + } + l.needed = l.needed - (1) >> 0; + if (l.needed === 0) { + if (l.level === maxBits) { + break; + } + (x$6 = l.level + 1 >> 0, ((x$6 < 0 || x$6 >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[x$6])).nextPairFreq = prevFreq + l.lastFreq >> 0; + level$1 = level$1 + (1) >> 0; + } else { + while (true) { + if (!((x$7 = level$1 - 1 >> 0, ((x$7 < 0 || x$7 >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[x$7])).needed > 0)) { break; } + level$1 = level$1 - (1) >> 0; + } + } + } + if (!(((x$8 = ((maxBits < 0 || maxBits >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[maxBits]), ((maxBits < 0 || maxBits >= x$8.length) ? ($throwRuntimeError("index out of range"), undefined) : x$8[maxBits])) === n))) { + $panic(new $String("leafCounts[maxBits][maxBits] != n")); + } + bitCount = $subslice(new sliceType$8(h.bitCount), 0, (maxBits + 1 >> 0)); + bits$1 = 1; + counts = ((maxBits < 0 || maxBits >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[maxBits]); + level$2 = maxBits; + while (true) { + if (!(level$2 > 0)) { break; } + ((bits$1 < 0 || bits$1 >= bitCount.$length) ? ($throwRuntimeError("index out of range"), undefined) : bitCount.$array[bitCount.$offset + bits$1] = ((x$9 = counts, ((level$2 < 0 || level$2 >= x$9.length) ? ($throwRuntimeError("index out of range"), undefined) : x$9[level$2])) - (x$10 = counts, x$11 = level$2 - 1 >> 0, ((x$11 < 0 || x$11 >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[x$11])) >> 0)); + bits$1 = bits$1 + (1) >> 0; + level$2 = level$2 - (1) >> 0; + } + return bitCount; + }; + $ptrType(huffmanEncoder).prototype.assignEncodingAndSize = function assignEncodingAndSize(bitCount, list) { + var {_i, _i$1, _ref, _ref$1, bitCount, bits$1, chunk, code, h, list, n, node, x, x$1, y, $s, $r, $c} = $restore(this, {bitCount, list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + h = this; + code = 0; + _ref = bitCount; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + n = _i; + bits$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + code = (y = (1), y < 32 ? (code << y) : 0) << 16 >>> 16; + if ((n === 0) || (bits$1 === 0)) { + _i++; + /* continue; */ $s = 1; continue; + } + chunk = $subslice(list, (list.$length - ((bits$1 >> 0)) >> 0)); + $r = (h.$ptr_lns || (h.$ptr_lns = new ptrType$5(function() { return this.$target.lns; }, function($v) { this.$target.lns = $v; }, h))).sort(chunk); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$1 = chunk; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + node = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), literalNode); + hcode.copy((x = h.codes, x$1 = node.literal, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])), new hcode.ptr(reverseBits(code, ((n << 24 >>> 24))), ((n << 16 >>> 16)))); + code = code + (1) << 16 >>> 16; + _i$1++; + } + list = $subslice(list, 0, (list.$length - ((bits$1 >> 0)) >> 0)); + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: assignEncodingAndSize, $c: true, $r, _i, _i$1, _ref, _ref$1, bitCount, bits$1, chunk, code, h, list, n, node, x, x$1, y, $s};return $f; + }; + $ptrType(huffmanEncoder).prototype.generate = function generate(freq, maxBits) { + var {_i, _i$1, _ref, _ref$1, bitCount, count, f, freq, h, i, i$1, list, maxBits, node, x, x$1, x$2, $s, $r, $c} = $restore(this, {freq, maxBits}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + h = this; + if (h.freqcache === sliceType$7.nil) { + h.freqcache = $makeSlice(sliceType$7, 287); + } + list = $subslice(h.freqcache, 0, (freq.$length + 1 >> 0)); + count = 0; + _ref = freq; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((f === 0))) { + literalNode.copy(((count < 0 || count >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + count]), new literalNode.ptr(((i << 16 >>> 16)), f)); + count = count + (1) >> 0; + } else { + (x = h.codes, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).len = 0; + } + _i++; + } + list = $subslice(list, 0, count); + if (count <= 2) { + _ref$1 = list; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + node = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), literalNode); + (x$1 = h.codes, x$2 = node.literal, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).set(((i$1 << 16 >>> 16)), 1); + _i$1++; + } + $s = -1; return; + } + $r = (h.$ptr_lfs || (h.$ptr_lfs = new ptrType$6(function() { return this.$target.lfs; }, function($v) { this.$target.lfs = $v; }, h))).sort(list); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + bitCount = h.bitCounts(list, maxBits); + $r = h.assignEncodingAndSize(bitCount, list); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: generate, $c: true, $r, _i, _i$1, _ref, _ref$1, bitCount, count, f, freq, h, i, i$1, list, maxBits, node, x, x$1, x$2, $s};return $f; + }; + $ptrType(byLiteral).prototype.sort = function sort$1(a) { + var {a, s, $s, $r, $c} = $restore(this, {a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + s.$set(($convertSliceType(a, byLiteral))); + $r = sort.Sort(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: sort$1, $c: true, $r, a, s, $s};return $f; + }; + byLiteral.prototype.Len = function Len() { + var s; + s = this; + return s.$length; + }; + $ptrType(byLiteral).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + byLiteral.prototype.Less = function Less(i, j) { + var i, j, s; + s = this; + return ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]).literal < ((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]).literal; + }; + $ptrType(byLiteral).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + byLiteral.prototype.Swap = function Swap(i, j) { + var _tmp, _tmp$1, i, j, s; + s = this; + _tmp = $clone(((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]), literalNode); + _tmp$1 = $clone(((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]), literalNode); + literalNode.copy(((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]), _tmp); + literalNode.copy(((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]), _tmp$1); + }; + $ptrType(byLiteral).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + $ptrType(byFreq).prototype.sort = function sort$2(a) { + var {a, s, $s, $r, $c} = $restore(this, {a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + s.$set(($convertSliceType(a, byFreq))); + $r = sort.Sort(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: sort$2, $c: true, $r, a, s, $s};return $f; + }; + byFreq.prototype.Len = function Len$1() { + var s; + s = this; + return s.$length; + }; + $ptrType(byFreq).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + byFreq.prototype.Less = function Less$1(i, j) { + var i, j, s; + s = this; + if (((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]).freq === ((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]).freq) { + return ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]).literal < ((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]).literal; + } + return ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]).freq < ((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]).freq; + }; + $ptrType(byFreq).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + byFreq.prototype.Swap = function Swap$1(i, j) { + var _tmp, _tmp$1, i, j, s; + s = this; + _tmp = $clone(((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]), literalNode); + _tmp$1 = $clone(((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]), literalNode); + literalNode.copy(((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]), _tmp); + literalNode.copy(((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]), _tmp$1); + }; + $ptrType(byFreq).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + reverseBits = function reverseBits$1(number, bitLength$1) { + var bitLength$1, number, y; + return bits.Reverse16((y = ((16 - bitLength$1 << 24 >>> 24)), y < 32 ? (number << y) : 0) << 16 >>> 16); + }; + init = function init$2() { + var {offsetFreq, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + offsetFreq = $makeSlice(sliceType$8, 30); + (0 >= offsetFreq.$length ? ($throwRuntimeError("index out of range"), undefined) : offsetFreq.$array[offsetFreq.$offset + 0] = 1); + huffOffset = newHuffmanEncoder(30); + $r = huffOffset.generate(offsetFreq, 15); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: init$2, $c: true, $r, offsetFreq, $s};return $f; + }; + ptrType$15.methods = [{prop: "set", name: "set", pkg: "compress/flate", typ: $funcType([$Uint16, $Uint16], [], false)}]; + ptrType.methods = [{prop: "bitLength", name: "bitLength", pkg: "compress/flate", typ: $funcType([sliceType$8], [$Int], false)}, {prop: "bitCounts", name: "bitCounts", pkg: "compress/flate", typ: $funcType([sliceType$7, $Int32], [sliceType$8], false)}, {prop: "assignEncodingAndSize", name: "assignEncodingAndSize", pkg: "compress/flate", typ: $funcType([sliceType$8, sliceType$7], [], false)}, {prop: "generate", name: "generate", pkg: "compress/flate", typ: $funcType([sliceType$8, $Int32], [], false)}]; + byLiteral.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType$5.methods = [{prop: "sort", name: "sort", pkg: "compress/flate", typ: $funcType([sliceType$7], [], false)}]; + byFreq.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType$6.methods = [{prop: "sort", name: "sort", pkg: "compress/flate", typ: $funcType([sliceType$7], [], false)}]; + hcode.init("compress/flate", [{prop: "code", name: "code", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uint16, tag: ""}]); + huffmanEncoder.init("compress/flate", [{prop: "codes", name: "codes", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "freqcache", name: "freqcache", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "bitCount", name: "bitCount", embedded: false, exported: false, typ: arrayType$6, tag: ""}, {prop: "lns", name: "lns", embedded: false, exported: false, typ: byLiteral, tag: ""}, {prop: "lfs", name: "lfs", embedded: false, exported: false, typ: byFreq, tag: ""}]); + literalNode.init("compress/flate", [{prop: "literal", name: "literal", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "freq", name: "freq", embedded: false, exported: false, typ: $Int32, tag: ""}]); + levelInfo.init("compress/flate", [{prop: "level", name: "level", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "lastFreq", name: "lastFreq", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "nextCharFreq", name: "nextCharFreq", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "nextPairFreq", name: "nextPairFreq", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "needed", name: "needed", embedded: false, exported: false, typ: $Int32, tag: ""}]); + byLiteral.init(literalNode); + byFreq.init(literalNode); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + huffOffset = ptrType.nil; + fixedLiteralEncoding = generateFixedLiteralEncoding(); + fixedOffsetEncoding = generateFixedOffsetEncoding(); + errWriterClosed = errors.New("flate: closed writer"); + $r = init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["hash"] = (function() { + var $pkg = {}, $init, io, Hash; + io = $packages["io"]; + Hash = $newType(8, $kindInterface, "hash.Hash", true, "hash", true, null); + $pkg.Hash = Hash; + $pkg.$finishSetup = function() { + Hash.init([{prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType], [sliceType], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = io.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["hash/crc32"] = (function() { + var $pkg = {}, $init, errors, hash, sync, atomic, simpleMakeTable, simplePopulateTable; + errors = $packages["errors"]; + hash = $packages["hash"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + $pkg.$finishSetup = function() { + simpleMakeTable = function simpleMakeTable$1(poly) { + var poly, t; + t = arrayType.zero(); + simplePopulateTable(poly, t); + return t; + }; + simplePopulateTable = function simplePopulateTable$1(poly, t) { + var crc, i, j, poly, t, y; + i = 0; + while (true) { + if (!(i < 256)) { break; } + crc = ((i >>> 0)); + j = 0; + while (true) { + if (!(j < 8)) { break; } + if (((crc & 1) >>> 0) === 1) { + crc = (((crc >>> 1 >>> 0)) ^ poly) >>> 0; + } else { + crc = (y = (1), y < 32 ? (crc >>> y) : 0) >>> 0; + } + j = j + (1) >> 0; + } + t.nilCheck, ((i < 0 || i >= t.length) ? ($throwRuntimeError("index out of range"), undefined) : t[i] = crc); + i = i + (1) >> 0; + } + }; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = hash.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.IEEETable = simpleMakeTable(3988292384); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["compress/gzip"] = (function() { + var $pkg = {}, $init, bufio, flate, binary, errors, fmt, crc32, io, time; + bufio = $packages["bufio"]; + flate = $packages["compress/flate"]; + binary = $packages["encoding/binary"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + crc32 = $packages["hash/crc32"]; + io = $packages["io"]; + time = $packages["time"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = flate.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = binary.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = crc32.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrChecksum = errors.New("gzip: invalid checksum"); + $pkg.ErrHeader = errors.New("gzip: invalid header"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["crypto"] = (function() { + var $pkg = {}, $init, hash, io, strconv, hashes, RegisterHash; + hash = $packages["hash"]; + io = $packages["io"]; + strconv = $packages["strconv"]; + $pkg.$finishSetup = function() { + RegisterHash = function RegisterHash$1(h, f) { + var f, h; + if (h >= 20) { + $panic(new $String("crypto: RegisterHash of unknown hash function")); + } + ((h < 0 || h >= hashes.$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes.$array[hashes.$offset + h] = f); + }; + $pkg.RegisterHash = RegisterHash; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = hash.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + hashes = $makeSlice(sliceType$1, 20); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["crypto/internal/subtle"] = (function() { + var $pkg = {}, $init, js; + js = $packages["github.com/gopherjs/gopherjs/js"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["crypto/subtle"] = (function() { + var $pkg = {}, $init; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["crypto/cipher"] = (function() { + var $pkg = {}, $init, subtle, subtle$1, binary, errors, io, runtime, errOpen; + subtle = $packages["crypto/internal/subtle"]; + subtle$1 = $packages["crypto/subtle"]; + binary = $packages["encoding/binary"]; + errors = $packages["errors"]; + io = $packages["io"]; + runtime = $packages["runtime"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = subtle.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = subtle$1.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = binary.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + errOpen = errors.New("cipher: message authentication failed"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["crypto/internal/boring/sig"] = (function() { + var $pkg = {}, $init, StandardCrypto; + $pkg.$finishSetup = function() { + StandardCrypto = function StandardCrypto$1() { + }; + $pkg.StandardCrypto = StandardCrypto; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["crypto/internal/boring"] = (function() { + var $pkg = {}, $init, crypto, cipher, sig, hash, Unreachable, NewSHA224, NewSHA256; + crypto = $packages["crypto"]; + cipher = $packages["crypto/cipher"]; + sig = $packages["crypto/internal/boring/sig"]; + hash = $packages["hash"]; + $pkg.$finishSetup = function() { + Unreachable = function Unreachable$1() { + sig.StandardCrypto(); + }; + $pkg.Unreachable = Unreachable; + NewSHA224 = function NewSHA224$1() { + $panic(new $String("boringcrypto: not available")); + }; + $pkg.NewSHA224 = NewSHA224; + NewSHA256 = function NewSHA256$1() { + $panic(new $String("boringcrypto: not available")); + }; + $pkg.NewSHA256 = NewSHA256; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = crypto.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = cipher.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sig.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = hash.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["crypto/sha256"] = (function() { + var $pkg = {}, $init, crypto, boring, binary, errors, hash, bits, digest, _K, block, blockGeneric, init, appendUint64, appendUint32, consumeUint64, consumeUint32, New, New224; + crypto = $packages["crypto"]; + boring = $packages["crypto/internal/boring"]; + binary = $packages["encoding/binary"]; + errors = $packages["errors"]; + hash = $packages["hash"]; + bits = $packages["math/bits"]; + digest = $newType(0, $kindStruct, "sha256.digest", true, "crypto/sha256", false, function(h_, x_, nx_, len_, is224_) { + this.$val = this; + if (arguments.length === 0) { + this.h = arrayType$3.zero(); + this.x = arrayType$4.zero(); + this.nx = 0; + this.len = new $Uint64(0, 0); + this.is224 = false; + return; + } + this.h = h_; + this.x = x_; + this.nx = nx_; + this.len = len_; + this.is224 = is224_; + }); + $pkg.digest = digest; + $pkg.$finishSetup = function() { + block = function block$1(dig, p) { + var dig, p; + blockGeneric(dig, p); + }; + blockGeneric = function blockGeneric$1(dig, p) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, a, b, c, d, dig, e, f, g, h, h0, h1, h2, h3, h4, h5, h6, h7, i, i$1, i$2, j, p, t1, t1$1, t2, t2$1, v1, v2, w, x, x$1, x$2, x$3, x$4, x$5, x$6; + w = arrayType.zero(); + _tmp = dig.h[0]; + _tmp$1 = dig.h[1]; + _tmp$2 = dig.h[2]; + _tmp$3 = dig.h[3]; + _tmp$4 = dig.h[4]; + _tmp$5 = dig.h[5]; + _tmp$6 = dig.h[6]; + _tmp$7 = dig.h[7]; + h0 = _tmp; + h1 = _tmp$1; + h2 = _tmp$2; + h3 = _tmp$3; + h4 = _tmp$4; + h5 = _tmp$5; + h6 = _tmp$6; + h7 = _tmp$7; + while (true) { + if (!(p.$length >= 64)) { break; } + i = 0; + while (true) { + if (!(i < 16)) { break; } + j = $imul(i, 4); + ((i < 0 || i >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[i] = (((((((((((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]) >>> 0)) << 24 >>> 0) | ((((x = j + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) >>> 0)) << 16 >>> 0)) >>> 0) | ((((x$1 = j + 2 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])) >>> 0)) << 8 >>> 0)) >>> 0) | (((x$2 = j + 3 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2])) >>> 0))) >>> 0)); + i = i + (1) >> 0; + } + i$1 = 16; + while (true) { + if (!(i$1 < 64)) { break; } + v1 = (x$3 = i$1 - 2 >> 0, ((x$3 < 0 || x$3 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$3])); + t1 = ((((bits.RotateLeft32(v1, -17)) ^ (bits.RotateLeft32(v1, -19))) >>> 0) ^ ((v1 >>> 10 >>> 0))) >>> 0; + v2 = (x$4 = i$1 - 15 >> 0, ((x$4 < 0 || x$4 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$4])); + t2 = ((((bits.RotateLeft32(v2, -7)) ^ (bits.RotateLeft32(v2, -18))) >>> 0) ^ ((v2 >>> 3 >>> 0))) >>> 0; + ((i$1 < 0 || i$1 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[i$1] = (((t1 + (x$5 = i$1 - 7 >> 0, ((x$5 < 0 || x$5 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$5])) >>> 0) + t2 >>> 0) + (x$6 = i$1 - 16 >> 0, ((x$6 < 0 || x$6 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$6])) >>> 0)); + i$1 = i$1 + (1) >> 0; + } + _tmp$8 = h0; + _tmp$9 = h1; + _tmp$10 = h2; + _tmp$11 = h3; + _tmp$12 = h4; + _tmp$13 = h5; + _tmp$14 = h6; + _tmp$15 = h7; + a = _tmp$8; + b = _tmp$9; + c = _tmp$10; + d = _tmp$11; + e = _tmp$12; + f = _tmp$13; + g = _tmp$14; + h = _tmp$15; + i$2 = 0; + while (true) { + if (!(i$2 < 64)) { break; } + t1$1 = (((h + ((((((bits.RotateLeft32(e, -6)) ^ (bits.RotateLeft32(e, -11))) >>> 0) ^ (bits.RotateLeft32(e, -25))) >>> 0)) >>> 0) + ((((((e & f) >>> 0)) ^ ((((~e >>> 0) & g) >>> 0))) >>> 0)) >>> 0) + ((i$2 < 0 || i$2 >= _K.$length) ? ($throwRuntimeError("index out of range"), undefined) : _K.$array[_K.$offset + i$2]) >>> 0) + ((i$2 < 0 || i$2 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[i$2]) >>> 0; + t2$1 = ((((((bits.RotateLeft32(a, -2)) ^ (bits.RotateLeft32(a, -13))) >>> 0) ^ (bits.RotateLeft32(a, -22))) >>> 0)) + ((((((((a & b) >>> 0)) ^ (((a & c) >>> 0))) >>> 0) ^ (((b & c) >>> 0))) >>> 0)) >>> 0; + h = g; + g = f; + f = e; + e = d + t1$1 >>> 0; + d = c; + c = b; + b = a; + a = t1$1 + t2$1 >>> 0; + i$2 = i$2 + (1) >> 0; + } + h0 = h0 + (a) >>> 0; + h1 = h1 + (b) >>> 0; + h2 = h2 + (c) >>> 0; + h3 = h3 + (d) >>> 0; + h4 = h4 + (e) >>> 0; + h5 = h5 + (f) >>> 0; + h6 = h6 + (g) >>> 0; + h7 = h7 + (h) >>> 0; + p = $subslice(p, 64); + } + _tmp$16 = h0; + _tmp$17 = h1; + _tmp$18 = h2; + _tmp$19 = h3; + _tmp$20 = h4; + _tmp$21 = h5; + _tmp$22 = h6; + _tmp$23 = h7; + dig.h[0] = _tmp$16; + dig.h[1] = _tmp$17; + dig.h[2] = _tmp$18; + dig.h[3] = _tmp$19; + dig.h[4] = _tmp$20; + dig.h[5] = _tmp$21; + dig.h[6] = _tmp$22; + dig.h[7] = _tmp$23; + }; + init = function init$1() { + crypto.RegisterHash(4, New224); + crypto.RegisterHash(5, New); + }; + $ptrType(digest).prototype.MarshalBinary = function MarshalBinary() { + var b, d; + d = this; + b = $makeSlice(sliceType$1, 0, 108); + if (d.is224) { + b = $appendSlice(b, "sha\x02"); + } else { + b = $appendSlice(b, "sha\x03"); + } + b = appendUint32(b, d.h[0]); + b = appendUint32(b, d.h[1]); + b = appendUint32(b, d.h[2]); + b = appendUint32(b, d.h[3]); + b = appendUint32(b, d.h[4]); + b = appendUint32(b, d.h[5]); + b = appendUint32(b, d.h[6]); + b = appendUint32(b, d.h[7]); + b = $appendSlice(b, $subslice(new sliceType$1(d.x), 0, d.nx)); + b = $subslice(b, 0, ((b.$length + 64 >> 0) - (d.nx) >> 0)); + b = appendUint64(b, d.len); + return [b, $ifaceNil]; + }; + $ptrType(digest).prototype.UnmarshalBinary = function UnmarshalBinary(b) { + var _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, b, d; + d = this; + if (b.$length < 4 || (d.is224 && !(($bytesToString($subslice(b, 0, 4))) === "sha\x02")) || (!d.is224 && !(($bytesToString($subslice(b, 0, 4))) === "sha\x03"))) { + return errors.New("crypto/sha256: invalid hash state identifier"); + } + if (!((b.$length === 108))) { + return errors.New("crypto/sha256: invalid hash state size"); + } + b = $subslice(b, 4); + _tuple = consumeUint32(b); + b = _tuple[0]; + d.h[0] = _tuple[1]; + _tuple$1 = consumeUint32(b); + b = _tuple$1[0]; + d.h[1] = _tuple$1[1]; + _tuple$2 = consumeUint32(b); + b = _tuple$2[0]; + d.h[2] = _tuple$2[1]; + _tuple$3 = consumeUint32(b); + b = _tuple$3[0]; + d.h[3] = _tuple$3[1]; + _tuple$4 = consumeUint32(b); + b = _tuple$4[0]; + d.h[4] = _tuple$4[1]; + _tuple$5 = consumeUint32(b); + b = _tuple$5[0]; + d.h[5] = _tuple$5[1]; + _tuple$6 = consumeUint32(b); + b = _tuple$6[0]; + d.h[6] = _tuple$6[1]; + _tuple$7 = consumeUint32(b); + b = _tuple$7[0]; + d.h[7] = _tuple$7[1]; + b = $subslice(b, $copySlice(new sliceType$1(d.x), b)); + _tuple$8 = consumeUint64(b); + b = _tuple$8[0]; + d.len = _tuple$8[1]; + d.nx = (($div64(d.len, new $Uint64(0, 64), true).$low >> 0)); + return $ifaceNil; + }; + appendUint64 = function appendUint64$1(b, x) { + var a, b, x; + a = arrayType$1.zero(); + $clone(binary.BigEndian, binary.bigEndian).PutUint64(new sliceType$1(a), x); + return $appendSlice(b, new sliceType$1(a)); + }; + appendUint32 = function appendUint32$1(b, x) { + var a, b, x; + a = arrayType$2.zero(); + $clone(binary.BigEndian, binary.bigEndian).PutUint32(new sliceType$1(a), x); + return $appendSlice(b, new sliceType$1(a)); + }; + consumeUint64 = function consumeUint64$1(b) { + var b, x, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + x$14 = (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$7 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0)); + return [$subslice(b, 8), x$14]; + }; + consumeUint32 = function consumeUint32$1(b) { + var b, x; + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + x = ((((((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) << 24 >>> 0)) >>> 0; + return [$subslice(b, 4), x]; + }; + $ptrType(digest).prototype.Reset = function Reset() { + var d; + d = this; + if (!d.is224) { + d.h[0] = 1779033703; + d.h[1] = 3144134277; + d.h[2] = 1013904242; + d.h[3] = 2773480762; + d.h[4] = 1359893119; + d.h[5] = 2600822924; + d.h[6] = 528734635; + d.h[7] = 1541459225; + } else { + d.h[0] = 3238371032; + d.h[1] = 914150663; + d.h[2] = 812702999; + d.h[3] = 4144912697; + d.h[4] = 4290775857; + d.h[5] = 1750603025; + d.h[6] = 1694076839; + d.h[7] = 3204075428; + } + d.nx = 0; + d.len = new $Uint64(0, 0); + }; + New = function New$1() { + var d; + if (false) { + return boring.NewSHA256(); + } + d = new digest.ptr(arrayType$3.zero(), arrayType$4.zero(), 0, new $Uint64(0, 0), false); + d.Reset(); + return d; + }; + $pkg.New = New; + New224 = function New224$1() { + var d; + if (false) { + return boring.NewSHA224(); + } + d = new digest.ptr(arrayType$3.zero(), arrayType$4.zero(), 0, new $Uint64(0, 0), false); + d.is224 = true; + d.Reset(); + return d; + }; + $pkg.New224 = New224; + $ptrType(digest).prototype.Size = function Size() { + var d; + d = this; + if (!d.is224) { + return 32; + } + return 28; + }; + $ptrType(digest).prototype.BlockSize = function BlockSize() { + var d; + d = this; + return 64; + }; + $ptrType(digest).prototype.Write = function Write(p) { + var d, err, n, n$1, nn, p, x, x$1; + nn = 0; + err = $ifaceNil; + d = this; + boring.Unreachable(); + nn = p.$length; + d.len = (x = d.len, x$1 = (new $Uint64(0, nn)), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + if (d.nx > 0) { + n = $copySlice($subslice(new sliceType$1(d.x), d.nx), p); + d.nx = d.nx + (n) >> 0; + if (d.nx === 64) { + block(d, new sliceType$1(d.x)); + d.nx = 0; + } + p = $subslice(p, n); + } + if (p.$length >= 64) { + n$1 = (p.$length & ~63) >> 0; + block(d, $subslice(p, 0, n$1)); + p = $subslice(p, n$1); + } + if (p.$length > 0) { + d.nx = $copySlice(new sliceType$1(d.x), p); + } + return [nn, err]; + }; + $ptrType(digest).prototype.Sum = function Sum(in$1) { + var d, d0, hash$1, in$1; + d = this; + boring.Unreachable(); + d0 = $clone(d, digest); + hash$1 = $clone(d0.checkSum(), arrayType$5); + if (d0.is224) { + return $appendSlice(in$1, $subslice(new sliceType$1(hash$1), 0, 28)); + } + return $appendSlice(in$1, new sliceType$1(hash$1)); + }; + $ptrType(digest).prototype.checkSum = function checkSum() { + var d, digest$1, len, tmp, x, x$1, x$2; + d = this; + len = d.len; + tmp = arrayType$4.zero(); + tmp[0] = 128; + if ((x = $div64(len, new $Uint64(0, 64), true), (x.$high < 0 || (x.$high === 0 && x.$low < 56)))) { + d.Write($subslice(new sliceType$1(tmp), 0, $flatten64((x$1 = $div64(len, new $Uint64(0, 64), true), new $Uint64(0 - x$1.$high, 56 - x$1.$low))))); + } else { + d.Write($subslice(new sliceType$1(tmp), 0, $flatten64((x$2 = $div64(len, new $Uint64(0, 64), true), new $Uint64(0 - x$2.$high, 120 - x$2.$low))))); + } + len = $shiftLeft64(len, (3)); + $clone(binary.BigEndian, binary.bigEndian).PutUint64(new sliceType$1(tmp), len); + d.Write($subslice(new sliceType$1(tmp), 0, 8)); + if (!((d.nx === 0))) { + $panic(new $String("d.nx != 0")); + } + digest$1 = arrayType$5.zero(); + $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(new sliceType$1(digest$1), 0), d.h[0]); + $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(new sliceType$1(digest$1), 4), d.h[1]); + $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(new sliceType$1(digest$1), 8), d.h[2]); + $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(new sliceType$1(digest$1), 12), d.h[3]); + $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(new sliceType$1(digest$1), 16), d.h[4]); + $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(new sliceType$1(digest$1), 20), d.h[5]); + $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(new sliceType$1(digest$1), 24), d.h[6]); + if (!d.is224) { + $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(new sliceType$1(digest$1), 28), d.h[7]); + } + return digest$1; + }; + ptrType$1.methods = [{prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "checkSum", name: "checkSum", pkg: "crypto/sha256", typ: $funcType([], [arrayType$5], false)}]; + digest.init("crypto/sha256", [{prop: "h", name: "h", embedded: false, exported: false, typ: arrayType$3, tag: ""}, {prop: "x", name: "x", embedded: false, exported: false, typ: arrayType$4, tag: ""}, {prop: "nx", name: "nx", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "is224", name: "is224", embedded: false, exported: false, typ: $Bool, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = crypto.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = boring.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = binary.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = hash.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _K = new sliceType([1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298]); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["context"] = (function() { + var $pkg = {}, $init, errors, reflectlite, sync, atomic, time, Context, emptyCtx, background, todo, closedchan, init; + errors = $packages["errors"]; + reflectlite = $packages["internal/reflectlite"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + time = $packages["time"]; + Context = $newType(8, $kindInterface, "context.Context", true, "context", true, null); + emptyCtx = $newType(4, $kindInt, "context.emptyCtx", true, "context", false, null); + $pkg.Context = Context; + $pkg.emptyCtx = emptyCtx; + $pkg.$finishSetup = function() { + $ptrType(emptyCtx).prototype.Deadline = function Deadline() { + var deadline, ok; + deadline = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil); + ok = false; + return [deadline, ok]; + }; + $ptrType(emptyCtx).prototype.Done = function Done() { + return $chanNil; + }; + $ptrType(emptyCtx).prototype.Err = function Err() { + return $ifaceNil; + }; + $ptrType(emptyCtx).prototype.Value = function Value(key) { + var key; + return $ifaceNil; + }; + $ptrType(emptyCtx).prototype.String = function String() { + var _1, e; + e = this; + _1 = e; + if (_1 === (background)) { + return "context.Background"; + } else if (_1 === (todo)) { + return "context.TODO"; + } + return "unknown empty Context"; + }; + init = function init$1() { + $close(closedchan); + }; + ptrType.methods = [{prop: "Deadline", name: "Deadline", pkg: "", typ: $funcType([], [time.Time, $Bool], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$1], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + Context.init([{prop: "Deadline", name: "Deadline", pkg: "", typ: $funcType([], [time.Time, $Bool], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$1], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflectlite.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.Canceled = errors.New("context canceled"); + background = $newDataPointer(0, ptrType); + todo = $newDataPointer(0, ptrType); + closedchan = new $Chan(structType, 0); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["encoding/base64"] = (function() { + var $pkg = {}, $init, binary, io, strconv, Encoding, CorruptInputError, NewEncoding, assemble32, assemble64; + binary = $packages["encoding/binary"]; + io = $packages["io"]; + strconv = $packages["strconv"]; + Encoding = $newType(0, $kindStruct, "base64.Encoding", true, "encoding/base64", true, function(encode_, decodeMap_, padChar_, strict_) { + this.$val = this; + if (arguments.length === 0) { + this.encode = arrayType.zero(); + this.decodeMap = arrayType$1.zero(); + this.padChar = 0; + this.strict = false; + return; + } + this.encode = encode_; + this.decodeMap = decodeMap_; + this.padChar = padChar_; + this.strict = strict_; + }); + CorruptInputError = $newType(8, $kindInt64, "base64.CorruptInputError", true, "encoding/base64", true, null); + $pkg.Encoding = Encoding; + $pkg.CorruptInputError = CorruptInputError; + $pkg.$finishSetup = function() { + NewEncoding = function NewEncoding$1(encoder$1) { + var e, encoder$1, i, i$1, i$2, x, x$1, x$2; + if (!((encoder$1.length === 64))) { + $panic(new $String("encoding alphabet is not 64-bytes long")); + } + i = 0; + while (true) { + if (!(i < encoder$1.length)) { break; } + if ((encoder$1.charCodeAt(i) === 10) || (encoder$1.charCodeAt(i) === 13)) { + $panic(new $String("encoding alphabet contains newline character")); + } + i = i + (1) >> 0; + } + e = new Encoding.ptr(arrayType.zero(), arrayType$1.zero(), 0, false); + e.padChar = 61; + $copyString(new sliceType(e.encode), encoder$1); + i$1 = 0; + while (true) { + if (!(i$1 < 256)) { break; } + (x = e.decodeMap, ((i$1 < 0 || i$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i$1] = 255)); + i$1 = i$1 + (1) >> 0; + } + i$2 = 0; + while (true) { + if (!(i$2 < encoder$1.length)) { break; } + (x$1 = e.decodeMap, x$2 = encoder$1.charCodeAt(i$2), ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2] = ((i$2 << 24 >>> 24)))); + i$2 = i$2 + (1) >> 0; + } + return e; + }; + $pkg.NewEncoding = NewEncoding; + $ptrType(Encoding).prototype.WithPadding = function WithPadding(padding) { + var enc, i, padding, x; + enc = this; + if ((padding === 13) || (padding === 10) || padding > 255) { + $panic(new $String("invalid padding")); + } + i = 0; + while (true) { + if (!(i < 64)) { break; } + if ((((x = enc.encode, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])) >> 0)) === padding) { + $panic(new $String("padding contained in alphabet")); + } + i = i + (1) >> 0; + } + enc.padChar = padding; + return enc; + }; + Encoding.prototype.WithPadding = function(...$args) { return this.$val.WithPadding(...$args); }; + $ptrType(Encoding).prototype.Strict = function Strict() { + var enc; + enc = this; + enc.strict = true; + return enc; + }; + Encoding.prototype.Strict = function(...$args) { return this.$val.Strict(...$args); }; + $ptrType(Encoding).prototype.Encode = function Encode(dst, src) { + var _1, _q, _tmp, _tmp$1, di, dst, enc, n, remain, si, src, val, val$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + enc = this; + if (src.$length === 0) { + return; + } + $unused(enc.encode); + _tmp = 0; + _tmp$1 = 0; + di = _tmp; + si = _tmp$1; + n = $imul(((_q = src.$length / 3, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), 3); + while (true) { + if (!(si < n)) { break; } + val = (((((((x = si + 0 >> 0, ((x < 0 || x >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x])) >>> 0)) << 16 >>> 0) | ((((x$1 = si + 1 >> 0, ((x$1 < 0 || x$1 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$1])) >>> 0)) << 8 >>> 0)) >>> 0) | (((x$2 = si + 2 >> 0, ((x$2 < 0 || x$2 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$2])) >>> 0))) >>> 0; + (x$5 = di + 0 >> 0, ((x$5 < 0 || x$5 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$5] = (x$3 = enc.encode, x$4 = ((val >>> 18 >>> 0) & 63) >>> 0, ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[x$4])))); + (x$8 = di + 1 >> 0, ((x$8 < 0 || x$8 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$8] = (x$6 = enc.encode, x$7 = ((val >>> 12 >>> 0) & 63) >>> 0, ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7])))); + (x$11 = di + 2 >> 0, ((x$11 < 0 || x$11 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$11] = (x$9 = enc.encode, x$10 = ((val >>> 6 >>> 0) & 63) >>> 0, ((x$10 < 0 || x$10 >= x$9.length) ? ($throwRuntimeError("index out of range"), undefined) : x$9[x$10])))); + (x$14 = di + 3 >> 0, ((x$14 < 0 || x$14 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$14] = (x$12 = enc.encode, x$13 = (val & 63) >>> 0, ((x$13 < 0 || x$13 >= x$12.length) ? ($throwRuntimeError("index out of range"), undefined) : x$12[x$13])))); + si = si + (3) >> 0; + di = di + (4) >> 0; + } + remain = src.$length - si >> 0; + if (remain === 0) { + return; + } + val$1 = (((x$15 = si + 0 >> 0, ((x$15 < 0 || x$15 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$15])) >>> 0)) << 16 >>> 0; + if (remain === 2) { + val$1 = (val$1 | (((((x$16 = si + 1 >> 0, ((x$16 < 0 || x$16 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$16])) >>> 0)) << 8 >>> 0))) >>> 0; + } + (x$19 = di + 0 >> 0, ((x$19 < 0 || x$19 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$19] = (x$17 = enc.encode, x$18 = ((val$1 >>> 18 >>> 0) & 63) >>> 0, ((x$18 < 0 || x$18 >= x$17.length) ? ($throwRuntimeError("index out of range"), undefined) : x$17[x$18])))); + (x$22 = di + 1 >> 0, ((x$22 < 0 || x$22 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$22] = (x$20 = enc.encode, x$21 = ((val$1 >>> 12 >>> 0) & 63) >>> 0, ((x$21 < 0 || x$21 >= x$20.length) ? ($throwRuntimeError("index out of range"), undefined) : x$20[x$21])))); + _1 = remain; + if (_1 === (2)) { + (x$25 = di + 2 >> 0, ((x$25 < 0 || x$25 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$25] = (x$23 = enc.encode, x$24 = ((val$1 >>> 6 >>> 0) & 63) >>> 0, ((x$24 < 0 || x$24 >= x$23.length) ? ($throwRuntimeError("index out of range"), undefined) : x$23[x$24])))); + if (!((enc.padChar === -1))) { + (x$26 = di + 3 >> 0, ((x$26 < 0 || x$26 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$26] = ((enc.padChar << 24 >>> 24)))); + } + } else if (_1 === (1)) { + if (!((enc.padChar === -1))) { + (x$27 = di + 2 >> 0, ((x$27 < 0 || x$27 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$27] = ((enc.padChar << 24 >>> 24)))); + (x$28 = di + 3 >> 0, ((x$28 < 0 || x$28 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$28] = ((enc.padChar << 24 >>> 24)))); + } + } + }; + $ptrType(Encoding).prototype.EncodeToString = function EncodeToString(src) { + var buf, enc, src; + enc = this; + buf = $makeSlice(sliceType, enc.EncodedLen(src.$length)); + enc.Encode(buf, src); + return ($bytesToString(buf)); + }; + $ptrType(Encoding).prototype.EncodedLen = function EncodedLen(n) { + var _q, _q$1, enc, n; + enc = this; + if (enc.padChar === -1) { + return (_q = ((($imul(n, 8)) + 5 >> 0)) / 6, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + } + return $imul((_q$1 = ((n + 2 >> 0)) / 3, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 4); + }; + CorruptInputError.prototype.Error = function Error() { + var e; + e = this; + return "illegal base64 data at input byte " + strconv.FormatInt((new $Int64(e.$high, e.$low)), 10); + }; + $ptrType(CorruptInputError).prototype.Error = function(...$args) { return this.$get().Error(...$args); }; + $ptrType(Encoding).prototype.decodeQuantum = function decodeQuantum(dst, src, si) { + var _1, _2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, dbuf, dlen, dst, enc, err, in$1, j, n, nsi, out, si, src, val, x; + nsi = 0; + n = 0; + err = $ifaceNil; + enc = this; + dbuf = arrayType$4.zero(); + dlen = 4; + $unused(enc.decodeMap); + j = 0; + while (true) { + if (!(j < 4)) { break; } + if (src.$length === si) { + if ((j === 0)) { + _tmp = si; + _tmp$1 = 0; + _tmp$2 = $ifaceNil; + nsi = _tmp; + n = _tmp$1; + err = _tmp$2; + return [nsi, n, err]; + } else if (((j === 1)) || (!((enc.padChar === -1)))) { + _tmp$3 = si; + _tmp$4 = 0; + _tmp$5 = (new CorruptInputError(0, (si - j >> 0))); + nsi = _tmp$3; + n = _tmp$4; + err = _tmp$5; + return [nsi, n, err]; + } + dlen = j; + break; + } + in$1 = ((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]); + si = si + (1) >> 0; + out = (x = enc.decodeMap, ((in$1 < 0 || in$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[in$1])); + if (!((out === 255))) { + ((j < 0 || j >= dbuf.length) ? ($throwRuntimeError("index out of range"), undefined) : dbuf[j] = out); + j = j + (1) >> 0; + continue; + } + if ((in$1 === 10) || (in$1 === 13)) { + j = j - (1) >> 0; + j = j + (1) >> 0; + continue; + } + if (!((((in$1 >> 0)) === enc.padChar))) { + _tmp$6 = si; + _tmp$7 = 0; + _tmp$8 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$6; + n = _tmp$7; + err = _tmp$8; + return [nsi, n, err]; + } + _1 = j; + if ((_1 === (0)) || (_1 === (1))) { + _tmp$9 = si; + _tmp$10 = 0; + _tmp$11 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$9; + n = _tmp$10; + err = _tmp$11; + return [nsi, n, err]; + } else if (_1 === (2)) { + while (true) { + if (!(si < src.$length && ((((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) === 10) || (((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) === 13)))) { break; } + si = si + (1) >> 0; + } + if (si === src.$length) { + _tmp$12 = si; + _tmp$13 = 0; + _tmp$14 = (new CorruptInputError(0, src.$length)); + nsi = _tmp$12; + n = _tmp$13; + err = _tmp$14; + return [nsi, n, err]; + } + if (!((((((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) >> 0)) === enc.padChar))) { + _tmp$15 = si; + _tmp$16 = 0; + _tmp$17 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$15; + n = _tmp$16; + err = _tmp$17; + return [nsi, n, err]; + } + si = si + (1) >> 0; + } + while (true) { + if (!(si < src.$length && ((((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) === 10) || (((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) === 13)))) { break; } + si = si + (1) >> 0; + } + if (si < src.$length) { + err = (new CorruptInputError(0, si)); + } + dlen = j; + break; + } + val = ((((((((dbuf[0] >>> 0)) << 18 >>> 0) | (((dbuf[1] >>> 0)) << 12 >>> 0)) >>> 0) | (((dbuf[2] >>> 0)) << 6 >>> 0)) >>> 0) | ((dbuf[3] >>> 0))) >>> 0; + _tmp$18 = (((val >>> 0 >>> 0) << 24 >>> 24)); + _tmp$19 = (((val >>> 8 >>> 0) << 24 >>> 24)); + _tmp$20 = (((val >>> 16 >>> 0) << 24 >>> 24)); + dbuf[2] = _tmp$18; + dbuf[1] = _tmp$19; + dbuf[0] = _tmp$20; + _2 = dlen; + if (_2 === (4)) { + (2 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 2] = dbuf[2]); + dbuf[2] = 0; + (1 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 1] = dbuf[1]); + if (enc.strict && !((dbuf[2] === 0))) { + _tmp$21 = si; + _tmp$22 = 0; + _tmp$23 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$21; + n = _tmp$22; + err = _tmp$23; + return [nsi, n, err]; + } + dbuf[1] = 0; + (0 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 0] = dbuf[0]); + if (enc.strict && (!((dbuf[1] === 0)) || !((dbuf[2] === 0)))) { + _tmp$24 = si; + _tmp$25 = 0; + _tmp$26 = (new CorruptInputError(0, (si - 2 >> 0))); + nsi = _tmp$24; + n = _tmp$25; + err = _tmp$26; + return [nsi, n, err]; + } + } else if (_2 === (3)) { + (1 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 1] = dbuf[1]); + if (enc.strict && !((dbuf[2] === 0))) { + _tmp$27 = si; + _tmp$28 = 0; + _tmp$29 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$27; + n = _tmp$28; + err = _tmp$29; + return [nsi, n, err]; + } + dbuf[1] = 0; + (0 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 0] = dbuf[0]); + if (enc.strict && (!((dbuf[1] === 0)) || !((dbuf[2] === 0)))) { + _tmp$30 = si; + _tmp$31 = 0; + _tmp$32 = (new CorruptInputError(0, (si - 2 >> 0))); + nsi = _tmp$30; + n = _tmp$31; + err = _tmp$32; + return [nsi, n, err]; + } + } else if (_2 === (2)) { + (0 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 0] = dbuf[0]); + if (enc.strict && (!((dbuf[1] === 0)) || !((dbuf[2] === 0)))) { + _tmp$33 = si; + _tmp$34 = 0; + _tmp$35 = (new CorruptInputError(0, (si - 2 >> 0))); + nsi = _tmp$33; + n = _tmp$34; + err = _tmp$35; + return [nsi, n, err]; + } + } + _tmp$36 = si; + _tmp$37 = dlen - 1 >> 0; + _tmp$38 = err; + nsi = _tmp$36; + n = _tmp$37; + err = _tmp$38; + return [nsi, n, err]; + }; + $ptrType(Encoding).prototype.DecodeString = function DecodeString(s) { + var _tuple, dbuf, enc, err, n, s; + enc = this; + dbuf = $makeSlice(sliceType, enc.DecodedLen(s.length)); + _tuple = enc.Decode(dbuf, (new sliceType($stringToBytes(s)))); + n = _tuple[0]; + err = _tuple[1]; + return [$subslice(dbuf, 0, n), err]; + }; + $ptrType(Encoding).prototype.Decode = function Decode(dst, src) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, dn, dn$1, dst, enc, err, n, ninc, ninc$1, ninc$2, ok, ok$1, si, src, src2, src2$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + n = 0; + err = $ifaceNil; + enc = this; + if (src.$length === 0) { + _tmp = 0; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + } + $unused(enc.decodeMap); + si = 0; + while (true) { + if (!(false && (src.$length - si >> 0) >= 8 && (dst.$length - n >> 0) >= 8)) { break; } + src2 = $subslice(src, si, (si + 8 >> 0)); + _tuple = assemble64((x = enc.decodeMap, x$1 = (0 >= src2.$length ? ($throwRuntimeError("index out of range"), undefined) : src2.$array[src2.$offset + 0]), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])), (x$2 = enc.decodeMap, x$3 = (1 >= src2.$length ? ($throwRuntimeError("index out of range"), undefined) : src2.$array[src2.$offset + 1]), ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3])), (x$4 = enc.decodeMap, x$5 = (2 >= src2.$length ? ($throwRuntimeError("index out of range"), undefined) : src2.$array[src2.$offset + 2]), ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5])), (x$6 = enc.decodeMap, x$7 = (3 >= src2.$length ? ($throwRuntimeError("index out of range"), undefined) : src2.$array[src2.$offset + 3]), ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7])), (x$8 = enc.decodeMap, x$9 = (4 >= src2.$length ? ($throwRuntimeError("index out of range"), undefined) : src2.$array[src2.$offset + 4]), ((x$9 < 0 || x$9 >= x$8.length) ? ($throwRuntimeError("index out of range"), undefined) : x$8[x$9])), (x$10 = enc.decodeMap, x$11 = (5 >= src2.$length ? ($throwRuntimeError("index out of range"), undefined) : src2.$array[src2.$offset + 5]), ((x$11 < 0 || x$11 >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[x$11])), (x$12 = enc.decodeMap, x$13 = (6 >= src2.$length ? ($throwRuntimeError("index out of range"), undefined) : src2.$array[src2.$offset + 6]), ((x$13 < 0 || x$13 >= x$12.length) ? ($throwRuntimeError("index out of range"), undefined) : x$12[x$13])), (x$14 = enc.decodeMap, x$15 = (7 >= src2.$length ? ($throwRuntimeError("index out of range"), undefined) : src2.$array[src2.$offset + 7]), ((x$15 < 0 || x$15 >= x$14.length) ? ($throwRuntimeError("index out of range"), undefined) : x$14[x$15]))); + dn = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $clone(binary.BigEndian, binary.bigEndian).PutUint64($subslice(dst, n), dn); + n = n + (6) >> 0; + si = si + (8) >> 0; + } else { + ninc = 0; + _tuple$1 = enc.decodeQuantum($subslice(dst, n), src, si); + si = _tuple$1[0]; + ninc = _tuple$1[1]; + err = _tuple$1[2]; + n = n + (ninc) >> 0; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$2 = n; + _tmp$3 = err; + n = _tmp$2; + err = _tmp$3; + return [n, err]; + } + } + } + while (true) { + if (!((src.$length - si >> 0) >= 4 && (dst.$length - n >> 0) >= 4)) { break; } + src2$1 = $subslice(src, si, (si + 4 >> 0)); + _tuple$2 = assemble32((x$16 = enc.decodeMap, x$17 = (0 >= src2$1.$length ? ($throwRuntimeError("index out of range"), undefined) : src2$1.$array[src2$1.$offset + 0]), ((x$17 < 0 || x$17 >= x$16.length) ? ($throwRuntimeError("index out of range"), undefined) : x$16[x$17])), (x$18 = enc.decodeMap, x$19 = (1 >= src2$1.$length ? ($throwRuntimeError("index out of range"), undefined) : src2$1.$array[src2$1.$offset + 1]), ((x$19 < 0 || x$19 >= x$18.length) ? ($throwRuntimeError("index out of range"), undefined) : x$18[x$19])), (x$20 = enc.decodeMap, x$21 = (2 >= src2$1.$length ? ($throwRuntimeError("index out of range"), undefined) : src2$1.$array[src2$1.$offset + 2]), ((x$21 < 0 || x$21 >= x$20.length) ? ($throwRuntimeError("index out of range"), undefined) : x$20[x$21])), (x$22 = enc.decodeMap, x$23 = (3 >= src2$1.$length ? ($throwRuntimeError("index out of range"), undefined) : src2$1.$array[src2$1.$offset + 3]), ((x$23 < 0 || x$23 >= x$22.length) ? ($throwRuntimeError("index out of range"), undefined) : x$22[x$23]))); + dn$1 = _tuple$2[0]; + ok$1 = _tuple$2[1]; + if (ok$1) { + $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(dst, n), dn$1); + n = n + (3) >> 0; + si = si + (4) >> 0; + } else { + ninc$1 = 0; + _tuple$3 = enc.decodeQuantum($subslice(dst, n), src, si); + si = _tuple$3[0]; + ninc$1 = _tuple$3[1]; + err = _tuple$3[2]; + n = n + (ninc$1) >> 0; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$4 = n; + _tmp$5 = err; + n = _tmp$4; + err = _tmp$5; + return [n, err]; + } + } + } + while (true) { + if (!(si < src.$length)) { break; } + ninc$2 = 0; + _tuple$4 = enc.decodeQuantum($subslice(dst, n), src, si); + si = _tuple$4[0]; + ninc$2 = _tuple$4[1]; + err = _tuple$4[2]; + n = n + (ninc$2) >> 0; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$6 = n; + _tmp$7 = err; + n = _tmp$6; + err = _tmp$7; + return [n, err]; + } + } + _tmp$8 = n; + _tmp$9 = err; + n = _tmp$8; + err = _tmp$9; + return [n, err]; + }; + assemble32 = function assemble32$1(n1, n2, n3, n4) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, dn, n1, n2, n3, n4, ok; + dn = 0; + ok = false; + if (((((((n1 | n2) >>> 0) | n3) >>> 0) | n4) >>> 0) === 255) { + _tmp = 0; + _tmp$1 = false; + dn = _tmp; + ok = _tmp$1; + return [dn, ok]; + } + _tmp$2 = ((((((((n1 >>> 0)) << 26 >>> 0) | (((n2 >>> 0)) << 20 >>> 0)) >>> 0) | (((n3 >>> 0)) << 14 >>> 0)) >>> 0) | (((n4 >>> 0)) << 8 >>> 0)) >>> 0; + _tmp$3 = true; + dn = _tmp$2; + ok = _tmp$3; + return [dn, ok]; + }; + assemble64 = function assemble64$1(n1, n2, n3, n4, n5, n6, n7, n8) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, dn, n1, n2, n3, n4, n5, n6, n7, n8, ok, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + dn = new $Uint64(0, 0); + ok = false; + if (((((((((((((((n1 | n2) >>> 0) | n3) >>> 0) | n4) >>> 0) | n5) >>> 0) | n6) >>> 0) | n7) >>> 0) | n8) >>> 0) === 255) { + _tmp = new $Uint64(0, 0); + _tmp$1 = false; + dn = _tmp; + ok = _tmp$1; + return [dn, ok]; + } + _tmp$2 = (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = $shiftLeft64((new $Uint64(0, n1)), 58), x$7 = $shiftLeft64((new $Uint64(0, n2)), 52), new $Uint64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Uint64(0, n3)), 46), new $Uint64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Uint64(0, n4)), 40), new $Uint64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Uint64(0, n5)), 34), new $Uint64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Uint64(0, n6)), 28), new $Uint64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Uint64(0, n7)), 22), new $Uint64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Uint64(0, n8)), 16), new $Uint64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0)); + _tmp$3 = true; + dn = _tmp$2; + ok = _tmp$3; + return [dn, ok]; + }; + $ptrType(Encoding).prototype.DecodedLen = function DecodedLen(n) { + var _q, _q$1, enc, n; + enc = this; + if (enc.padChar === -1) { + return (_q = ($imul(n, 6)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + } + return $imul((_q$1 = n / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 3); + }; + Encoding.methods = [{prop: "WithPadding", name: "WithPadding", pkg: "", typ: $funcType([$Int32], [ptrType], false)}, {prop: "Strict", name: "Strict", pkg: "", typ: $funcType([], [ptrType], false)}]; + ptrType.methods = [{prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType, sliceType], [], false)}, {prop: "EncodeToString", name: "EncodeToString", pkg: "", typ: $funcType([sliceType], [$String], false)}, {prop: "EncodedLen", name: "EncodedLen", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "decodeQuantum", name: "decodeQuantum", pkg: "encoding/base64", typ: $funcType([sliceType, sliceType, $Int], [$Int, $Int, $error], false)}, {prop: "DecodeString", name: "DecodeString", pkg: "", typ: $funcType([$String], [sliceType, $error], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType, sliceType], [$Int, $error], false)}, {prop: "DecodedLen", name: "DecodedLen", pkg: "", typ: $funcType([$Int], [$Int], false)}]; + CorruptInputError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + Encoding.init("encoding/base64", [{prop: "encode", name: "encode", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "decodeMap", name: "decodeMap", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "padChar", name: "padChar", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "strict", name: "strict", embedded: false, exported: false, typ: $Bool, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = binary.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.StdEncoding = NewEncoding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); + $pkg.URLEncoding = NewEncoding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"); + $pkg.RawStdEncoding = $clone($pkg.StdEncoding, Encoding).WithPadding(-1); + $pkg.RawURLEncoding = $clone($pkg.URLEncoding, Encoding).WithPadding(-1); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["unicode/utf16"] = (function() { + var $pkg = {}, $init; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["encoding/json"] = (function() { + var $pkg = {}, $init, bytes, encoding, base64, errors, fmt, nosync, io, math, reflect, sort, strconv, strings, unicode, utf16, utf8, Marshaler, Number, marshalerType, _r, textMarshalerType, _r$1, textUnmarshalerType, _r$2, numberType; + bytes = $packages["bytes"]; + encoding = $packages["encoding"]; + base64 = $packages["encoding/base64"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + io = $packages["io"]; + math = $packages["math"]; + reflect = $packages["reflect"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf16 = $packages["unicode/utf16"]; + utf8 = $packages["unicode/utf8"]; + Marshaler = $newType(8, $kindInterface, "json.Marshaler", true, "encoding/json", true, null); + Number = $newType(8, $kindString, "json.Number", true, "encoding/json", true, null); + $pkg.Marshaler = Marshaler; + $pkg.Number = Number; + $pkg.$finishSetup = function() { + Number.prototype.String = function String$1() { + var n; + n = this.$val; + return (n); + }; + $ptrType(Number).prototype.String = function(...$args) { return new Number(this.$get()).String(...$args); }; + Number.prototype.Float64 = function Float64() { + var n; + n = this.$val; + return strconv.ParseFloat((n), 64); + }; + $ptrType(Number).prototype.Float64 = function(...$args) { return new Number(this.$get()).Float64(...$args); }; + Number.prototype.Int64 = function Int64() { + var n; + n = this.$val; + return strconv.ParseInt((n), 10, 64); + }; + $ptrType(Number).prototype.Int64 = function(...$args) { return new Number(this.$get()).Int64(...$args); }; + Number.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64, $error], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64, $error], false)}]; + Marshaler.init([{prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$2, $error], false)}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = encoding.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = base64.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf16.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = reflect.TypeOf((ptrType$1.nil)).Elem(); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + marshalerType = _r; + _r$1 = reflect.TypeOf((ptrType$2.nil)).Elem(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + textMarshalerType = _r$1; + _r$2 = reflect.TypeOf((ptrType$3.nil)).Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + textUnmarshalerType = _r$2; + numberType = reflect.TypeOf(new Number("")); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["log"] = (function() { + var $pkg = {}, $init, fmt, nosync, io, os, runtime, atomic, time, Logger, std, New, itoa; + fmt = $packages["fmt"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + io = $packages["io"]; + os = $packages["os"]; + runtime = $packages["runtime"]; + atomic = $packages["sync/atomic"]; + time = $packages["time"]; + Logger = $newType(0, $kindStruct, "log.Logger", true, "log", true, function(mu_, prefix_, flag_, out_, buf_, isDiscard_) { + this.$val = this; + if (arguments.length === 0) { + this.mu = new nosync.Mutex.ptr(false, false, false, false, 0); + this.prefix = ""; + this.flag = 0; + this.out = $ifaceNil; + this.buf = sliceType.nil; + this.isDiscard = 0; + return; + } + this.mu = mu_; + this.prefix = prefix_; + this.flag = flag_; + this.out = out_; + this.buf = buf_; + this.isDiscard = isDiscard_; + }); + $pkg.Logger = Logger; + $pkg.$finishSetup = function() { + New = function New$1(out, prefix, flag) { + var flag, l, out, prefix; + l = new Logger.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), prefix, flag, out, sliceType.nil, 0); + if ($interfaceIsEqual(out, io.Discard)) { + l.isDiscard = 1; + } + return l; + }; + $pkg.New = New; + $ptrType(Logger).prototype.SetOutput = function SetOutput$1(w) { + var isDiscard, l, w, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + l = this; + l.mu.Lock(); + $deferred.push([$methodVal(l.mu, "Unlock"), []]); + l.out = w; + isDiscard = 0; + if ($interfaceIsEqual(w, io.Discard)) { + isDiscard = 1; + } + atomic.StoreInt32((l.$ptr_isDiscard || (l.$ptr_isDiscard = new ptrType(function() { return this.$target.isDiscard; }, function($v) { this.$target.isDiscard = $v; }, l))), isDiscard); + /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); } + }; + itoa = function itoa$1(buf, i, wid) { + var _q, b, bp, buf, i, q, wid; + b = arrayType.zero(); + bp = 19; + while (true) { + if (!(i >= 10 || wid > 1)) { break; } + wid = wid - (1) >> 0; + q = (_q = i / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + ((bp < 0 || bp >= b.length) ? ($throwRuntimeError("index out of range"), undefined) : b[bp] = ((((48 + i >> 0) - ($imul(q, 10)) >> 0) << 24 >>> 24))); + bp = bp - (1) >> 0; + i = q; + } + ((bp < 0 || bp >= b.length) ? ($throwRuntimeError("index out of range"), undefined) : b[bp] = (((48 + i >> 0) << 24 >>> 24))); + buf.$set($appendSlice(buf.$get(), $subslice(new sliceType(b), bp))); + }; + $ptrType(Logger).prototype.formatHeader = function formatHeader(buf, t, file, line) { + var {_q, _r, _r$1, _tuple, _tuple$1, buf, day, file, hour, i, l, line, min, month, sec, short$1, t, year, $s, $r, $c} = $restore(this, {buf, t, file, line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this; + if ((l.flag & 64) === 0) { + buf.$set($appendSlice(buf.$get(), l.prefix)); + } + /* */ if (!(((l.flag & 7) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(((l.flag & 7) === 0))) { */ case 1: + if (!(((l.flag & 32) === 0))) { + time.Time.copy(t, $clone(t, time.Time).UTC()); + } + /* */ if (!(((l.flag & 1) === 0))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(((l.flag & 1) === 0))) { */ case 3: + _r = $clone(t, time.Time).Date(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + itoa(buf, year, 4); + buf.$set($append(buf.$get(), 47)); + itoa(buf, ((month >> 0)), 2); + buf.$set($append(buf.$get(), 47)); + itoa(buf, day, 2); + buf.$set($append(buf.$get(), 32)); + /* } */ case 4: + /* */ if (!(((l.flag & 6) === 0))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(((l.flag & 6) === 0))) { */ case 6: + _r$1 = $clone(t, time.Time).Clock(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + hour = _tuple$1[0]; + min = _tuple$1[1]; + sec = _tuple$1[2]; + itoa(buf, hour, 2); + buf.$set($append(buf.$get(), 58)); + itoa(buf, min, 2); + buf.$set($append(buf.$get(), 58)); + itoa(buf, sec, 2); + if (!(((l.flag & 4) === 0))) { + buf.$set($append(buf.$get(), 46)); + itoa(buf, (_q = $clone(t, time.Time).Nanosecond() / 1000, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 6); + } + buf.$set($append(buf.$get(), 32)); + /* } */ case 7: + /* } */ case 2: + if (!(((l.flag & 24) === 0))) { + if (!(((l.flag & 16) === 0))) { + short$1 = file; + i = file.length - 1 >> 0; + while (true) { + if (!(i > 0)) { break; } + if (file.charCodeAt(i) === 47) { + short$1 = $substring(file, (i + 1 >> 0)); + break; + } + i = i - (1) >> 0; + } + file = short$1; + } + buf.$set($appendSlice(buf.$get(), file)); + buf.$set($append(buf.$get(), 58)); + itoa(buf, line, -1); + buf.$set($appendSlice(buf.$get(), ": ")); + } + if (!(((l.flag & 64) === 0))) { + buf.$set($appendSlice(buf.$get(), l.prefix)); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: formatHeader, $c: true, $r, _q, _r, _r$1, _tuple, _tuple$1, buf, day, file, hour, i, l, line, min, month, sec, short$1, t, year, $s};return $f; + }; + $ptrType(Logger).prototype.Output = function Output$1(calldepth, s) { + var {_r, _r$1, _tuple, _tuple$1, calldepth, err, file, l, line, now, ok, s, $s, $deferred, $r, $c} = $restore(this, {calldepth, s}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + l = this; + _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + now = $clone(_r, time.Time); + file = ""; + line = 0; + l.mu.Lock(); + $deferred.push([$methodVal(l.mu, "Unlock"), []]); + if (!(((l.flag & 24) === 0))) { + l.mu.Unlock(); + ok = false; + _tuple = runtime.Caller(calldepth); + file = _tuple[1]; + line = _tuple[2]; + ok = _tuple[3]; + if (!ok) { + file = "???"; + line = 0; + } + l.mu.Lock(); + } + l.buf = $subslice(l.buf, 0, 0); + $r = l.formatHeader((l.$ptr_buf || (l.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, l))), $clone(now, time.Time), file, line); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + l.buf = $appendSlice(l.buf, s); + if ((s.length === 0) || !((s.charCodeAt((s.length - 1 >> 0)) === 10))) { + l.buf = $append(l.buf, 10); + } + _r$1 = l.out.Write(l.buf); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + err = _tuple$1[1]; + $s = -1; return err; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Output$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, calldepth, err, file, l, line, now, ok, s, $s, $deferred};return $f; } } + }; + $ptrType(Logger).prototype.Printf = function Printf$1(format, v) { + var {_arg, _r, _r$1, format, l, v, $s, $r, $c} = $restore(this, {format, v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this; + if (!((atomic.LoadInt32((l.$ptr_isDiscard || (l.$ptr_isDiscard = new ptrType(function() { return this.$target.isDiscard; }, function($v) { this.$target.isDiscard = $v; }, l)))) === 0))) { + $s = -1; return; + } + _r = fmt.Sprintf(format, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* */ } return; } var $f = {$blk: Printf$1, $c: true, $r, _arg, _r, _r$1, format, l, v, $s};return $f; + }; + $ptrType(Logger).prototype.Print = function Print$1(v) { + var {_arg, _r, _r$1, l, v, $s, $r, $c} = $restore(this, {v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this; + if (!((atomic.LoadInt32((l.$ptr_isDiscard || (l.$ptr_isDiscard = new ptrType(function() { return this.$target.isDiscard; }, function($v) { this.$target.isDiscard = $v; }, l)))) === 0))) { + $s = -1; return; + } + _r = fmt.Sprint(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* */ } return; } var $f = {$blk: Print$1, $c: true, $r, _arg, _r, _r$1, l, v, $s};return $f; + }; + $ptrType(Logger).prototype.Println = function Println$1(v) { + var {_arg, _r, _r$1, l, v, $s, $r, $c} = $restore(this, {v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this; + if (!((atomic.LoadInt32((l.$ptr_isDiscard || (l.$ptr_isDiscard = new ptrType(function() { return this.$target.isDiscard; }, function($v) { this.$target.isDiscard = $v; }, l)))) === 0))) { + $s = -1; return; + } + _r = fmt.Sprintln(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* */ } return; } var $f = {$blk: Println$1, $c: true, $r, _arg, _r, _r$1, l, v, $s};return $f; + }; + $ptrType(Logger).prototype.Fatal = function Fatal$1(v) { + var {_arg, _r, _r$1, l, v, $s, $r, $c} = $restore(this, {v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprint(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $r = os.Exit(1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Fatal$1, $c: true, $r, _arg, _r, _r$1, l, v, $s};return $f; + }; + $ptrType(Logger).prototype.Fatalf = function Fatalf$1(format, v) { + var {_arg, _r, _r$1, format, l, v, $s, $r, $c} = $restore(this, {format, v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprintf(format, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $r = os.Exit(1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Fatalf$1, $c: true, $r, _arg, _r, _r$1, format, l, v, $s};return $f; + }; + $ptrType(Logger).prototype.Fatalln = function Fatalln$1(v) { + var {_arg, _r, _r$1, l, v, $s, $r, $c} = $restore(this, {v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprintln(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $r = os.Exit(1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Fatalln$1, $c: true, $r, _arg, _r, _r$1, l, v, $s};return $f; + }; + $ptrType(Logger).prototype.Panic = function Panic$1(v) { + var {_r, _r$1, l, s, v, $s, $r, $c} = $restore(this, {v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprint(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _r$1 = l.Output(2, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $panic(new $String(s)); + $s = -1; return; + /* */ } return; } var $f = {$blk: Panic$1, $c: true, $r, _r, _r$1, l, s, v, $s};return $f; + }; + $ptrType(Logger).prototype.Panicf = function Panicf$1(format, v) { + var {_r, _r$1, format, l, s, v, $s, $r, $c} = $restore(this, {format, v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprintf(format, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _r$1 = l.Output(2, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $panic(new $String(s)); + $s = -1; return; + /* */ } return; } var $f = {$blk: Panicf$1, $c: true, $r, _r, _r$1, format, l, s, v, $s};return $f; + }; + $ptrType(Logger).prototype.Panicln = function Panicln$1(v) { + var {_r, _r$1, l, s, v, $s, $r, $c} = $restore(this, {v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this; + _r = fmt.Sprintln(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _r$1 = l.Output(2, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $panic(new $String(s)); + $s = -1; return; + /* */ } return; } var $f = {$blk: Panicln$1, $c: true, $r, _r, _r$1, l, s, v, $s};return $f; + }; + $ptrType(Logger).prototype.Flags = function Flags$1() { + var l, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + l = this; + l.mu.Lock(); + $deferred.push([$methodVal(l.mu, "Unlock"), []]); + return l.flag; + /* */ } catch(err) { $err = err; return 0; } finally { $callDeferred($deferred, $err); } + }; + $ptrType(Logger).prototype.SetFlags = function SetFlags$1(flag) { + var flag, l, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + l = this; + l.mu.Lock(); + $deferred.push([$methodVal(l.mu, "Unlock"), []]); + l.flag = flag; + /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); } + }; + $ptrType(Logger).prototype.Prefix = function Prefix$1() { + var l, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + l = this; + l.mu.Lock(); + $deferred.push([$methodVal(l.mu, "Unlock"), []]); + return l.prefix; + /* */ } catch(err) { $err = err; return ""; } finally { $callDeferred($deferred, $err); } + }; + $ptrType(Logger).prototype.SetPrefix = function SetPrefix$1(prefix) { + var l, prefix, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + l = this; + l.mu.Lock(); + $deferred.push([$methodVal(l.mu, "Unlock"), []]); + l.prefix = prefix; + /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); } + }; + $ptrType(Logger).prototype.Writer = function Writer$1() { + var l, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + l = this; + l.mu.Lock(); + $deferred.push([$methodVal(l.mu, "Unlock"), []]); + return l.out; + /* */ } catch(err) { $err = err; return $ifaceNil; } finally { $callDeferred($deferred, $err); } + }; + ptrType$2.methods = [{prop: "SetOutput", name: "SetOutput", pkg: "", typ: $funcType([io.Writer], [], false)}, {prop: "formatHeader", name: "formatHeader", pkg: "log", typ: $funcType([ptrType$1, time.Time, $String, $Int], [], false)}, {prop: "Output", name: "Output", pkg: "", typ: $funcType([$Int, $String], [$error], false)}, {prop: "Printf", name: "Printf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Print", name: "Print", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Println", name: "Println", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Fatal", name: "Fatal", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Fatalf", name: "Fatalf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Fatalln", name: "Fatalln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Panic", name: "Panic", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Panicf", name: "Panicf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Panicln", name: "Panicln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Flags", name: "Flags", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SetFlags", name: "SetFlags", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([], [$String], false)}, {prop: "SetPrefix", name: "SetPrefix", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Writer", name: "Writer", pkg: "", typ: $funcType([], [io.Writer], false)}]; + Logger.init("log", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "flag", name: "flag", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "isDiscard", name: "isDiscard", embedded: false, exported: false, typ: $Int32, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + std = New(os.Stderr, "", 3); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/sirupsen/logrus"] = (function() { + var $pkg = {}, $init, bufio, bytes, context, json, fmt, io, log, os, reflect, runtime, sort, strconv, strings, sync, atomic, time, utf8, TextFormatter, Fields, Level, LogFunction, Logger, exitFunc, MutexWrap, fieldKey, FieldMap, Hook, LevelHooks, Formatter, Entry, defaultPool, baseTimestamp, logrusPackage, minimumCallerDepth, callerInitOnce, bufferPool, std, handlers, writerFinalizer, init, checkIfTerminal, ParseLevel, New, prefixFieldClashes, init$1, NewEntry, getPackageName, getCaller, getBuffer, putBuffer, SetBufferPool, init$2, runHandler, runHandlers; + bufio = $packages["bufio"]; + bytes = $packages["bytes"]; + context = $packages["context"]; + json = $packages["encoding/json"]; + fmt = $packages["fmt"]; + io = $packages["io"]; + log = $packages["log"]; + os = $packages["os"]; + reflect = $packages["reflect"]; + runtime = $packages["runtime"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + time = $packages["time"]; + utf8 = $packages["unicode/utf8"]; + TextFormatter = $newType(0, $kindStruct, "logrus.TextFormatter", true, "github.com/sirupsen/logrus", true, function(ForceColors_, DisableColors_, ForceQuote_, DisableQuote_, EnvironmentOverrideColors_, DisableTimestamp_, FullTimestamp_, TimestampFormat_, DisableSorting_, SortingFunc_, DisableLevelTruncation_, PadLevelText_, QuoteEmptyFields_, isTerminal_, FieldMap_, CallerPrettyfier_, terminalInitOnce_, levelTextMaxLength_) { + this.$val = this; + if (arguments.length === 0) { + this.ForceColors = false; + this.DisableColors = false; + this.ForceQuote = false; + this.DisableQuote = false; + this.EnvironmentOverrideColors = false; + this.DisableTimestamp = false; + this.FullTimestamp = false; + this.TimestampFormat = ""; + this.DisableSorting = false; + this.SortingFunc = $throwNilPointerError; + this.DisableLevelTruncation = false; + this.PadLevelText = false; + this.QuoteEmptyFields = false; + this.isTerminal = false; + this.FieldMap = false; + this.CallerPrettyfier = $throwNilPointerError; + this.terminalInitOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); + this.levelTextMaxLength = 0; + return; + } + this.ForceColors = ForceColors_; + this.DisableColors = DisableColors_; + this.ForceQuote = ForceQuote_; + this.DisableQuote = DisableQuote_; + this.EnvironmentOverrideColors = EnvironmentOverrideColors_; + this.DisableTimestamp = DisableTimestamp_; + this.FullTimestamp = FullTimestamp_; + this.TimestampFormat = TimestampFormat_; + this.DisableSorting = DisableSorting_; + this.SortingFunc = SortingFunc_; + this.DisableLevelTruncation = DisableLevelTruncation_; + this.PadLevelText = PadLevelText_; + this.QuoteEmptyFields = QuoteEmptyFields_; + this.isTerminal = isTerminal_; + this.FieldMap = FieldMap_; + this.CallerPrettyfier = CallerPrettyfier_; + this.terminalInitOnce = terminalInitOnce_; + this.levelTextMaxLength = levelTextMaxLength_; + }); + Fields = $newType(4, $kindMap, "logrus.Fields", true, "github.com/sirupsen/logrus", true, null); + Level = $newType(4, $kindUint32, "logrus.Level", true, "github.com/sirupsen/logrus", true, null); + LogFunction = $newType(4, $kindFunc, "logrus.LogFunction", true, "github.com/sirupsen/logrus", true, null); + Logger = $newType(0, $kindStruct, "logrus.Logger", true, "github.com/sirupsen/logrus", true, function(Out_, Hooks_, Formatter_, ReportCaller_, Level_, mu_, entryPool_, ExitFunc_) { + this.$val = this; + if (arguments.length === 0) { + this.Out = $ifaceNil; + this.Hooks = false; + this.Formatter = $ifaceNil; + this.ReportCaller = false; + this.Level = 0; + this.mu = new MutexWrap.ptr(new sync.Mutex.ptr(0, 0), false); + this.entryPool = new sync.Pool.ptr(sliceType$2.nil, $throwNilPointerError); + this.ExitFunc = $throwNilPointerError; + return; + } + this.Out = Out_; + this.Hooks = Hooks_; + this.Formatter = Formatter_; + this.ReportCaller = ReportCaller_; + this.Level = Level_; + this.mu = mu_; + this.entryPool = entryPool_; + this.ExitFunc = ExitFunc_; + }); + exitFunc = $newType(4, $kindFunc, "logrus.exitFunc", true, "github.com/sirupsen/logrus", false, null); + MutexWrap = $newType(0, $kindStruct, "logrus.MutexWrap", true, "github.com/sirupsen/logrus", true, function(lock_, disabled_) { + this.$val = this; + if (arguments.length === 0) { + this.lock = new sync.Mutex.ptr(0, 0); + this.disabled = false; + return; + } + this.lock = lock_; + this.disabled = disabled_; + }); + fieldKey = $newType(8, $kindString, "logrus.fieldKey", true, "github.com/sirupsen/logrus", false, null); + FieldMap = $newType(4, $kindMap, "logrus.FieldMap", true, "github.com/sirupsen/logrus", true, null); + Hook = $newType(8, $kindInterface, "logrus.Hook", true, "github.com/sirupsen/logrus", true, null); + LevelHooks = $newType(4, $kindMap, "logrus.LevelHooks", true, "github.com/sirupsen/logrus", true, null); + Formatter = $newType(8, $kindInterface, "logrus.Formatter", true, "github.com/sirupsen/logrus", true, null); + Entry = $newType(0, $kindStruct, "logrus.Entry", true, "github.com/sirupsen/logrus", true, function(Logger_, Data_, Time_, Level_, Caller_, Message_, Buffer_, Context_, err_) { + this.$val = this; + if (arguments.length === 0) { + this.Logger = ptrType$1.nil; + this.Data = false; + this.Time = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil); + this.Level = 0; + this.Caller = ptrType$2.nil; + this.Message = ""; + this.Buffer = ptrType$3.nil; + this.Context = $ifaceNil; + this.err = ""; + return; + } + this.Logger = Logger_; + this.Data = Data_; + this.Time = Time_; + this.Level = Level_; + this.Caller = Caller_; + this.Message = Message_; + this.Buffer = Buffer_; + this.Context = Context_; + this.err = err_; + }); + defaultPool = $newType(0, $kindStruct, "logrus.defaultPool", true, "github.com/sirupsen/logrus", false, function(pool_) { + this.$val = this; + if (arguments.length === 0) { + this.pool = ptrType$8.nil; + return; + } + this.pool = pool_; + }); + $pkg.TextFormatter = TextFormatter; + $pkg.Fields = Fields; + $pkg.Level = Level; + $pkg.LogFunction = LogFunction; + $pkg.Logger = Logger; + $pkg.exitFunc = exitFunc; + $pkg.MutexWrap = MutexWrap; + $pkg.fieldKey = fieldKey; + $pkg.FieldMap = FieldMap; + $pkg.Hook = Hook; + $pkg.LevelHooks = LevelHooks; + $pkg.Formatter = Formatter; + $pkg.Entry = Entry; + $pkg.defaultPool = defaultPool; + $pkg.$finishSetup = function() { + $ptrType(Logger).prototype.Writer = function Writer() { + var logger; + logger = this; + return logger.WriterLevel(4); + }; + $ptrType(Logger).prototype.WriterLevel = function WriterLevel(level) { + var level, logger; + logger = this; + return NewEntry(logger).WriterLevel(level); + }; + $ptrType(Entry).prototype.Writer = function Writer$1() { + var entry; + entry = this; + return entry.WriterLevel(4); + }; + $ptrType(Entry).prototype.WriterLevel = function WriterLevel$1(level) { + var _1, _tuple, entry, level, printFunc, reader, writer; + entry = this; + _tuple = io.Pipe(); + reader = _tuple[0]; + writer = _tuple[1]; + printFunc = $throwNilPointerError; + _1 = level; + if (_1 === (6)) { + printFunc = $methodVal(entry, "Trace"); + } else if (_1 === (5)) { + printFunc = $methodVal(entry, "Debug"); + } else if (_1 === (4)) { + printFunc = $methodVal(entry, "Info"); + } else if (_1 === (3)) { + printFunc = $methodVal(entry, "Warn"); + } else if (_1 === (2)) { + printFunc = $methodVal(entry, "Error"); + } else if (_1 === (1)) { + printFunc = $methodVal(entry, "Fatal"); + } else if (_1 === (0)) { + printFunc = $methodVal(entry, "Panic"); + } else { + printFunc = $methodVal(entry, "Print"); + } + $go($methodVal(entry, "writerScanner"), [reader, printFunc]); + runtime.SetFinalizer(writer, new funcType$1(writerFinalizer)); + return writer; + }; + $ptrType(Entry).prototype.writerScanner = function writerScanner(reader, printFunc) { + var {_r, _r$1, entry, err, printFunc, reader, scanner, $s, $r, $c} = $restore(this, {reader, printFunc}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + scanner = bufio.NewScanner(reader); + /* while (true) { */ case 1: + _r = scanner.Scan(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; } + $r = printFunc(new sliceType$2([new $String(scanner.Text())])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 1; continue; + case 2: + err = scanner.Err(); + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 5: + $r = entry.Errorf("Error while reading from Writer: %s", new sliceType$2([err])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + _r$1 = reader.Close(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* */ } return; } var $f = {$blk: writerScanner, $c: true, $r, _r, _r$1, entry, err, printFunc, reader, scanner, $s};return $f; + }; + writerFinalizer = function writerFinalizer$1(writer) { + var {_r, writer, $s, $r, $c} = $restore(this, {writer}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = writer.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* */ } return; } var $f = {$blk: writerFinalizer$1, $c: true, $r, _r, writer, $s};return $f; + }; + init = function init$3() { + var {_r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + time.Time.copy(baseTimestamp, _r); + $s = -1; return; + /* */ } return; } var $f = {$blk: init$3, $c: true, $r, _r, $s};return $f; + }; + $ptrType(TextFormatter).prototype.init = function init$4(entry) { + var {_i, _r, _r$1, _ref, entry, f, level, levelTextLength, $s, $r, $c} = $restore(this, {entry}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + if (!(entry.Logger === ptrType$1.nil)) { + f.isTerminal = checkIfTerminal(entry.Logger.Out); + } + _ref = $pkg.AllLevels; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + level = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = new Level(level).String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = utf8.RuneCount((new sliceType$1($stringToBytes(_r)))); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + levelTextLength = _r$1; + if (levelTextLength > f.levelTextMaxLength) { + f.levelTextMaxLength = levelTextLength; + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: init$4, $c: true, $r, _i, _r, _r$1, _ref, entry, f, level, levelTextLength, $s};return $f; + }; + $ptrType(TextFormatter).prototype.isColored = function isColored() { + var {_r, _r$1, _tuple, _v, f, force, isColored$1, ok, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + isColored$1 = f.ForceColors || (f.isTerminal && true); + /* */ if (f.EnvironmentOverrideColors) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (f.EnvironmentOverrideColors) { */ case 1: + _r = os.LookupEnv("CLICOLOR_FORCE"); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + force = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok && !(force === "0")) { $s = 5; continue; } + if (ok && force === "0") { _v = true; $s = 8; continue s; } + _r$1 = os.Getenv("CLICOLOR"); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 === "0"; case 8: + /* */ if (_v) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (ok && !(force === "0")) { */ case 5: + isColored$1 = true; + $s = 7; continue; + /* } else if (_v) { */ case 6: + isColored$1 = false; + /* } */ case 7: + case 3: + /* } */ case 2: + $s = -1; return isColored$1 && !f.DisableColors; + /* */ } return; } var $f = {$blk: isColored, $c: true, $r, _r, _r$1, _tuple, _v, f, force, isColored$1, ok, $s};return $f; + }; + $ptrType(TextFormatter).prototype.Format = function Format(entry) { + var {_entry, _entry$1, _entry$2, _i, _i$1, _i$2, _key, _key$1, _key$2, _keys, _keys$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _size, _size$1, _tmp, _tmp$1, _tuple, b, data, entry, f, fileVal, fixedKeys, funcVal, k, k$1, key, keys, timestampFormat, v, value, $s, $r, $c} = $restore(this, {entry}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = [entry]; + f = [f]; + f[0] = this; + data = new $global.Map(); + _ref = entry[0].Data; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + k = _entry.k; + v = _entry.v; + _key$1 = k; (data || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: v }); + _i++; + } + prefixFieldClashes(data, f[0].FieldMap, $clone(entry[0], Entry).HasCaller()); + keys = $makeSlice(sliceType$4, 0, (data ? data.size : 0)); + _ref$1 = data; + _i$1 = 0; + _keys$1 = _ref$1 ? _ref$1.keys() : undefined; + _size$1 = _ref$1 ? _ref$1.size : 0; + while (true) { + if (!(_i$1 < _size$1)) { break; } + _key$2 = _keys$1.next().value; + _entry$1 = _ref$1.get(_key$2); + if (_entry$1 === undefined) { + _i$1++; + continue; + } + k$1 = _entry$1.k; + keys = $append(keys, k$1); + _i$1++; + } + _tmp = ""; + _tmp$1 = ""; + funcVal = _tmp; + fileVal = _tmp$1; + fixedKeys = $makeSlice(sliceType$4, 0, (4 + (data ? data.size : 0) >> 0)); + if (!f[0].DisableTimestamp) { + fixedKeys = $append(fixedKeys, new FieldMap(f[0].FieldMap).resolve("time")); + } + fixedKeys = $append(fixedKeys, new FieldMap(f[0].FieldMap).resolve("level")); + if (!(entry[0].Message === "")) { + fixedKeys = $append(fixedKeys, new FieldMap(f[0].FieldMap).resolve("msg")); + } + if (!(entry[0].err === "")) { + fixedKeys = $append(fixedKeys, new FieldMap(f[0].FieldMap).resolve("logrus_error")); + } + /* */ if ($clone(entry[0], Entry).HasCaller()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($clone(entry[0], Entry).HasCaller()) { */ case 1: + /* */ if (!(f[0].CallerPrettyfier === $throwNilPointerError)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(f[0].CallerPrettyfier === $throwNilPointerError)) { */ case 3: + _r = f[0].CallerPrettyfier(entry[0].Caller); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + funcVal = _tuple[0]; + fileVal = _tuple[1]; + $s = 5; continue; + /* } else { */ case 4: + funcVal = entry[0].Caller.Function; + _r$1 = fmt.Sprintf("%s:%d", new sliceType$2([new $String(entry[0].Caller.File), new $Int(entry[0].Caller.Line)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + fileVal = _r$1; + /* } */ case 5: + if (!(funcVal === "")) { + fixedKeys = $append(fixedKeys, new FieldMap(f[0].FieldMap).resolve("func")); + } + if (!(fileVal === "")) { + fixedKeys = $append(fixedKeys, new FieldMap(f[0].FieldMap).resolve("file")); + } + /* } */ case 2: + /* */ if (!f[0].DisableSorting) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!f[0].DisableSorting) { */ case 8: + /* */ if (f[0].SortingFunc === $throwNilPointerError) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (f[0].SortingFunc === $throwNilPointerError) { */ case 11: + $r = sort.Strings(keys); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + fixedKeys = $appendSlice(fixedKeys, keys); + $s = 13; continue; + /* } else { */ case 12: + _r$2 = f[0].isColored(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!_r$2) { */ case 15: + fixedKeys = $appendSlice(fixedKeys, keys); + $r = f[0].SortingFunc(fixedKeys); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 17; continue; + /* } else { */ case 16: + $r = f[0].SortingFunc(keys); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + /* } */ case 13: + $s = 10; continue; + /* } else { */ case 9: + fixedKeys = $appendSlice(fixedKeys, keys); + /* } */ case 10: + b = ptrType$3.nil; + if (!(entry[0].Buffer === ptrType$3.nil)) { + b = entry[0].Buffer; + } else { + b = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + } + $r = f[0].terminalInitOnce.Do((function(entry, f) { return function TextFormatter·Format·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = f[0].init(entry[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: TextFormatter·Format·func1, $c: true, $r, $s};return $f; + }; })(entry, f)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + timestampFormat = f[0].TimestampFormat; + if (timestampFormat === "") { + timestampFormat = "2006-01-02T15:04:05Z07:00"; + } + _r$3 = f[0].isColored(); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (_r$3) { */ case 22: + $r = f[0].printColored(b, entry[0], keys, data, timestampFormat); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else { */ case 23: + _ref$2 = fixedKeys; + _i$2 = 0; + /* while (true) { */ case 27: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 28; continue; } + key = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + value = $ifaceNil; + /* */ if (key === new FieldMap(f[0].FieldMap).resolve("time")) { $s = 30; continue; } + /* */ if (key === new FieldMap(f[0].FieldMap).resolve("level")) { $s = 31; continue; } + /* */ if (key === new FieldMap(f[0].FieldMap).resolve("msg")) { $s = 32; continue; } + /* */ if (key === new FieldMap(f[0].FieldMap).resolve("logrus_error")) { $s = 33; continue; } + /* */ if (key === new FieldMap(f[0].FieldMap).resolve("func") && $clone(entry[0], Entry).HasCaller()) { $s = 34; continue; } + /* */ if (key === new FieldMap(f[0].FieldMap).resolve("file") && $clone(entry[0], Entry).HasCaller()) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (key === new FieldMap(f[0].FieldMap).resolve("time")) { */ case 30: + _r$4 = $clone(entry[0].Time, time.Time).Format(timestampFormat); /* */ $s = 38; case 38: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + value = new $String(_r$4); + $s = 37; continue; + /* } else if (key === new FieldMap(f[0].FieldMap).resolve("level")) { */ case 31: + _r$5 = new Level(entry[0].Level).String(); /* */ $s = 39; case 39: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + value = new $String(_r$5); + $s = 37; continue; + /* } else if (key === new FieldMap(f[0].FieldMap).resolve("msg")) { */ case 32: + value = new $String(entry[0].Message); + $s = 37; continue; + /* } else if (key === new FieldMap(f[0].FieldMap).resolve("logrus_error")) { */ case 33: + value = new $String(entry[0].err); + $s = 37; continue; + /* } else if (key === new FieldMap(f[0].FieldMap).resolve("func") && $clone(entry[0], Entry).HasCaller()) { */ case 34: + value = new $String(funcVal); + $s = 37; continue; + /* } else if (key === new FieldMap(f[0].FieldMap).resolve("file") && $clone(entry[0], Entry).HasCaller()) { */ case 35: + value = new $String(fileVal); + $s = 37; continue; + /* } else { */ case 36: + value = (_entry$2 = $mapIndex(data,$String.keyFor(key)), _entry$2 !== undefined ? _entry$2.v : $ifaceNil); + /* } */ case 37: + case 29: + $r = f[0].appendKeyValue(b, key, value); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 27; continue; + case 28: + /* } */ case 24: + b.WriteByte(10); + $s = -1; return [b.Bytes(), $ifaceNil]; + /* */ } return; } var $f = {$blk: Format, $c: true, $r, _entry, _entry$1, _entry$2, _i, _i$1, _i$2, _key, _key$1, _key$2, _keys, _keys$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _size, _size$1, _tmp, _tmp$1, _tuple, b, data, entry, f, fileVal, fixedKeys, funcVal, k, k$1, key, keys, timestampFormat, v, value, $s};return $f; + }; + $ptrType(TextFormatter).prototype.printColored = function printColored(b, entry, keys, data, timestampFormat) { + var {_1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _i, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, b, caller, data, entry, f, fileVal, formatString, funcVal, k, keys, levelColor, levelText, timestampFormat, v, x, $s, $r, $c} = $restore(this, {b, entry, keys, data, timestampFormat}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + levelColor = 0; + _1 = entry.Level; + if ((_1 === (5)) || (_1 === (6))) { + levelColor = 37; + } else if (_1 === (3)) { + levelColor = 33; + } else if ((_1 === (2)) || (_1 === (1)) || (_1 === (0))) { + levelColor = 31; + } else if (_1 === (4)) { + levelColor = 36; + } else { + levelColor = 36; + } + _r = new Level(entry.Level).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = strings.ToUpper(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + levelText = _r$1; + if (!f.DisableLevelTruncation && !f.PadLevelText) { + levelText = $substring(levelText, 0, 4); + } + /* */ if (f.PadLevelText) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (f.PadLevelText) { */ case 3: + formatString = "%-" + strconv.Itoa(f.levelTextMaxLength) + "s"; + _r$2 = fmt.Sprintf(formatString, new sliceType$2([new $String(levelText)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + levelText = _r$2; + /* } */ case 4: + entry.Message = strings.TrimSuffix(entry.Message, "\n"); + caller = ""; + /* */ if ($clone(entry, Entry).HasCaller()) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($clone(entry, Entry).HasCaller()) { */ case 6: + _r$3 = fmt.Sprintf("%s()", new sliceType$2([new $String(entry.Caller.Function)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + funcVal = _r$3; + _r$4 = fmt.Sprintf("%s:%d", new sliceType$2([new $String(entry.Caller.File), new $Int(entry.Caller.Line)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + fileVal = _r$4; + /* */ if (!(f.CallerPrettyfier === $throwNilPointerError)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!(f.CallerPrettyfier === $throwNilPointerError)) { */ case 10: + _r$5 = f.CallerPrettyfier(entry.Caller); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple = _r$5; + funcVal = _tuple[0]; + fileVal = _tuple[1]; + /* } */ case 11: + if (fileVal === "") { + caller = funcVal; + } else if (funcVal === "") { + caller = fileVal; + } else { + caller = fileVal + " " + funcVal; + } + /* } */ case 7: + /* */ if (f.DisableTimestamp) { $s = 14; continue; } + /* */ if (!f.FullTimestamp) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (f.DisableTimestamp) { */ case 14: + _r$6 = fmt.Fprintf(b, "\x1B[%dm%s\x1B[0m%s %-44s ", new sliceType$2([new $Int(levelColor), new $String(levelText), new $String(caller), new $String(entry.Message)])); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + $s = 17; continue; + /* } else if (!f.FullTimestamp) { */ case 15: + _r$7 = fmt.Fprintf(b, "\x1B[%dm%s\x1B[0m[%04d]%s %-44s ", new sliceType$2([new $Int(levelColor), new $String(levelText), new $Int((((x = $div64($clone(entry.Time, time.Time).Sub($clone(baseTimestamp, time.Time)), new time.Duration(0, 1000000000), false), x.$low + ((x.$high >> 31) * 4294967296)) >> 0))), new $String(caller), new $String(entry.Message)])); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + $s = 17; continue; + /* } else { */ case 16: + _arg = b; + _arg$1 = new $Int(levelColor); + _arg$2 = new $String(levelText); + _r$8 = $clone(entry.Time, time.Time).Format(timestampFormat); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg$3 = new $String(_r$8); + _arg$4 = new $String(caller); + _arg$5 = new $String(entry.Message); + _r$9 = fmt.Fprintf(_arg, "\x1B[%dm%s\x1B[0m[%s]%s %-44s ", new sliceType$2([_arg$1, _arg$2, _arg$3, _arg$4, _arg$5])); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + /* } */ case 17: + case 13: + _ref = keys; + _i = 0; + /* while (true) { */ case 22: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 23; continue; } + k = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + v = (_entry = $mapIndex(data,$String.keyFor(k)), _entry !== undefined ? _entry.v : $ifaceNil); + _r$10 = fmt.Fprintf(b, " \x1B[%dm%s\x1B[0m=", new sliceType$2([new $Int(levelColor), new $String(k)])); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + $r = f.appendValue(b, v); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 22; continue; + case 23: + $s = -1; return; + /* */ } return; } var $f = {$blk: printColored, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _i, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, b, caller, data, entry, f, fileVal, formatString, funcVal, k, keys, levelColor, levelText, timestampFormat, v, x, $s};return $f; + }; + $ptrType(TextFormatter).prototype.needsQuoting = function needsQuoting(text) { + var _i, _ref, _rune, ch, f, text; + f = this; + if (f.ForceQuote) { + return true; + } + if (f.QuoteEmptyFields && (text.length === 0)) { + return true; + } + if (f.DisableQuote) { + return false; + } + _ref = text; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + ch = _rune[0]; + if (!((ch >= 97 && ch <= 122) || (ch >= 65 && ch <= 90) || (ch >= 48 && ch <= 57) || (ch === 45) || (ch === 46) || (ch === 95) || (ch === 47) || (ch === 64) || (ch === 94) || (ch === 43))) { + return true; + } + _i += _rune[1]; + } + return false; + }; + $ptrType(TextFormatter).prototype.appendKeyValue = function appendKeyValue(b, key, value) { + var {b, f, key, value, $s, $r, $c} = $restore(this, {b, key, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + if (b.Len() > 0) { + b.WriteByte(32); + } + b.WriteString(key); + b.WriteByte(61); + $r = f.appendValue(b, value); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: appendKeyValue, $c: true, $r, b, f, key, value, $s};return $f; + }; + $ptrType(TextFormatter).prototype.appendValue = function appendValue(b, value) { + var {_r, _r$1, _r$2, _tuple, b, f, ok, stringVal, value, $s, $r, $c} = $restore(this, {b, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + _tuple = $assertType(value, $String, true); + stringVal = _tuple[0]; + ok = _tuple[1]; + /* */ if (!ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!ok) { */ case 1: + _r = fmt.Sprint(new sliceType$2([value])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + stringVal = _r; + /* } */ case 2: + /* */ if (!f.needsQuoting(stringVal)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!f.needsQuoting(stringVal)) { */ case 4: + b.WriteString(stringVal); + $s = 6; continue; + /* } else { */ case 5: + _r$1 = fmt.Sprintf("%q", new sliceType$2([new $String(stringVal)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = b.WriteString(_r$1); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: appendValue, $c: true, $r, _r, _r$1, _r$2, _tuple, b, f, ok, stringVal, value, $s};return $f; + }; + checkIfTerminal = function checkIfTerminal$1(w) { + var w; + return false; + }; + Level.prototype.String = function String() { + var {_r, _tuple, b, err, level, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + level = this.$val; + _r = new Level(level).MarshalText(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + b = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + $s = -1; return ($bytesToString(b)); + } else { + $s = -1; return "unknown"; + } + $s = -1; return ""; + /* */ } return; } var $f = {$blk: String, $c: true, $r, _r, _tuple, b, err, level, $s};return $f; + }; + $ptrType(Level).prototype.String = function(...$args) { return new Level(this.$get()).String(...$args); }; + ParseLevel = function ParseLevel$1(lvl) { + var {$24r, _1, _r, _r$1, l, lvl, $s, $r, $c} = $restore(this, {lvl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = strings.ToLower(lvl); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _1 = _r; + if (_1 === ("panic")) { + $s = -1; return [0, $ifaceNil]; + } else if (_1 === ("fatal")) { + $s = -1; return [1, $ifaceNil]; + } else if (_1 === ("error")) { + $s = -1; return [2, $ifaceNil]; + } else if (_1 === ("warn") || _1 === ("warning")) { + $s = -1; return [3, $ifaceNil]; + } else if (_1 === ("info")) { + $s = -1; return [4, $ifaceNil]; + } else if (_1 === ("debug")) { + $s = -1; return [5, $ifaceNil]; + } else if (_1 === ("trace")) { + $s = -1; return [6, $ifaceNil]; + } + case 1: + l = 0; + _r$1 = fmt.Errorf("not a valid logrus Level: %q", new sliceType$2([new $String(lvl)])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = [l, _r$1]; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: ParseLevel$1, $c: true, $r, $24r, _1, _r, _r$1, l, lvl, $s};return $f; + }; + $pkg.ParseLevel = ParseLevel; + $ptrType(Level).prototype.UnmarshalText = function UnmarshalText(text) { + var {_r, _tuple, err, l, level, text, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + level = this; + _r = ParseLevel(($bytesToString(text))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + l = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + level.$set(l); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: UnmarshalText, $c: true, $r, _r, _tuple, err, l, level, text, $s};return $f; + }; + Level.prototype.MarshalText = function MarshalText() { + var {$24r, _1, _r, level, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + level = this.$val; + _1 = level; + if (_1 === (6)) { + $s = -1; return [(new sliceType$1($stringToBytes("trace"))), $ifaceNil]; + } else if (_1 === (5)) { + $s = -1; return [(new sliceType$1($stringToBytes("debug"))), $ifaceNil]; + } else if (_1 === (4)) { + $s = -1; return [(new sliceType$1($stringToBytes("info"))), $ifaceNil]; + } else if (_1 === (3)) { + $s = -1; return [(new sliceType$1($stringToBytes("warning"))), $ifaceNil]; + } else if (_1 === (2)) { + $s = -1; return [(new sliceType$1($stringToBytes("error"))), $ifaceNil]; + } else if (_1 === (1)) { + $s = -1; return [(new sliceType$1($stringToBytes("fatal"))), $ifaceNil]; + } else if (_1 === (0)) { + $s = -1; return [(new sliceType$1($stringToBytes("panic"))), $ifaceNil]; + } + _r = fmt.Errorf("not a valid logrus level %d", new sliceType$2([new Level(level)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = [sliceType$1.nil, _r]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: MarshalText, $c: true, $r, $24r, _1, _r, level, $s};return $f; + }; + $ptrType(Level).prototype.MarshalText = function(...$args) { return new Level(this.$get()).MarshalText(...$args); }; + $ptrType(MutexWrap).prototype.Lock = function Lock() { + var {mw, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + mw = this; + /* */ if (!mw.disabled) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!mw.disabled) { */ case 1: + $r = mw.lock.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Lock, $c: true, $r, mw, $s};return $f; + }; + $ptrType(MutexWrap).prototype.Unlock = function Unlock() { + var {mw, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + mw = this; + /* */ if (!mw.disabled) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!mw.disabled) { */ case 1: + $r = mw.lock.Unlock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Unlock, $c: true, $r, mw, $s};return $f; + }; + $ptrType(MutexWrap).prototype.Disable = function Disable() { + var mw; + mw = this; + mw.disabled = true; + }; + New = function New$1() { + return new Logger.ptr(os.Stderr, new $global.Map(), new TextFormatter.ptr(false, false, false, false, false, false, false, "", false, $throwNilPointerError, false, false, false, false, false, $throwNilPointerError, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), 0), false, 4, new MutexWrap.ptr(new sync.Mutex.ptr(0, 0), false), new sync.Pool.ptr(sliceType$2.nil, $throwNilPointerError), os.Exit); + }; + $pkg.New = New; + $ptrType(Logger).prototype.newEntry = function newEntry() { + var {_r, _tuple, entry, logger, ok, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + _r = logger.entryPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$5, true); + entry = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return entry; + } + $s = -1; return NewEntry(logger); + /* */ } return; } var $f = {$blk: newEntry, $c: true, $r, _r, _tuple, entry, logger, ok, $s};return $f; + }; + $ptrType(Logger).prototype.releaseEntry = function releaseEntry(entry) { + var entry, logger; + logger = this; + entry.Data = $makeMap($String.keyFor, []); + logger.entryPool.Put(entry); + }; + $ptrType(Logger).prototype.WithField = function WithField$1(key, value) { + var {$24r, _r, _r$1, entry, key, logger, value, $s, $deferred, $r, $c} = $restore(this, {key, value}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + logger = this; + _r = logger.newEntry(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + entry = _r; + $deferred.push([$methodVal(logger, "releaseEntry"), [entry]]); + _r$1 = entry.WithField(key, value); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$5.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithField$1, $c: true, $r, $24r, _r, _r$1, entry, key, logger, value, $s, $deferred};return $f; } } + }; + $ptrType(Logger).prototype.WithFields = function WithFields$1(fields) { + var {$24r, _r, _r$1, entry, fields, logger, $s, $deferred, $r, $c} = $restore(this, {fields}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + logger = this; + _r = logger.newEntry(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + entry = _r; + $deferred.push([$methodVal(logger, "releaseEntry"), [entry]]); + _r$1 = entry.WithFields(fields); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$5.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithFields$1, $c: true, $r, $24r, _r, _r$1, entry, fields, logger, $s, $deferred};return $f; } } + }; + $ptrType(Logger).prototype.WithError = function WithError$1(err) { + var {$24r, _r, _r$1, entry, err, logger, $s, $deferred, $r, $c} = $restore(this, {err}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + logger = this; + _r = logger.newEntry(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + entry = _r; + $deferred.push([$methodVal(logger, "releaseEntry"), [entry]]); + _r$1 = entry.WithError(err); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$5.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithError$1, $c: true, $r, $24r, _r, _r$1, entry, err, logger, $s, $deferred};return $f; } } + }; + $ptrType(Logger).prototype.WithContext = function WithContext$1(ctx) { + var {_r, ctx, entry, logger, $s, $deferred, $r, $c} = $restore(this, {ctx}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + logger = this; + _r = logger.newEntry(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + entry = _r; + $deferred.push([$methodVal(logger, "releaseEntry"), [entry]]); + $s = -1; return entry.WithContext(ctx); + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$5.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithContext$1, $c: true, $r, _r, ctx, entry, logger, $s, $deferred};return $f; } } + }; + $ptrType(Logger).prototype.WithTime = function WithTime$1(t) { + var {_r, entry, logger, t, $s, $deferred, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + logger = this; + _r = logger.newEntry(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + entry = _r; + $deferred.push([$methodVal(logger, "releaseEntry"), [entry]]); + $s = -1; return entry.WithTime($clone(t, time.Time)); + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$5.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithTime$1, $c: true, $r, _r, entry, logger, t, $s, $deferred};return $f; } } + }; + $ptrType(Logger).prototype.Logf = function Logf(level, format, args) { + var {_r, args, entry, format, level, logger, $s, $r, $c} = $restore(this, {level, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + /* */ if (logger.IsLevelEnabled(level)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (logger.IsLevelEnabled(level)) { */ case 1: + _r = logger.newEntry(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + entry = _r; + $r = entry.Logf(level, format, args); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + logger.releaseEntry(entry); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Logf, $c: true, $r, _r, args, entry, format, level, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Tracef = function Tracef$1(format, args) { + var {args, format, logger, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logf(6, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Tracef$1, $c: true, $r, args, format, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Debugf = function Debugf$1(format, args) { + var {args, format, logger, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logf(5, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Debugf$1, $c: true, $r, args, format, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Infof = function Infof$1(format, args) { + var {args, format, logger, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logf(4, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Infof$1, $c: true, $r, args, format, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Printf = function Printf$1(format, args) { + var {_r, args, entry, format, logger, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + _r = logger.newEntry(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + entry = _r; + $r = entry.Printf(format, args); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + logger.releaseEntry(entry); + $s = -1; return; + /* */ } return; } var $f = {$blk: Printf$1, $c: true, $r, _r, args, entry, format, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Warnf = function Warnf$1(format, args) { + var {args, format, logger, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logf(3, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Warnf$1, $c: true, $r, args, format, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Warningf = function Warningf$1(format, args) { + var {args, format, logger, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Warnf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Warningf$1, $c: true, $r, args, format, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Errorf = function Errorf$1(format, args) { + var {args, format, logger, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logf(2, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Errorf$1, $c: true, $r, args, format, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Fatalf = function Fatalf$1(format, args) { + var {args, format, logger, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logf(1, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = logger.Exit(1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Fatalf$1, $c: true, $r, args, format, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Panicf = function Panicf$1(format, args) { + var {args, format, logger, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logf(0, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Panicf$1, $c: true, $r, args, format, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Log = function Log(level, args) { + var {_r, args, entry, level, logger, $s, $r, $c} = $restore(this, {level, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + /* */ if (logger.IsLevelEnabled(level)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (logger.IsLevelEnabled(level)) { */ case 1: + _r = logger.newEntry(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + entry = _r; + $r = entry.Log(level, args); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + logger.releaseEntry(entry); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Log, $c: true, $r, _r, args, entry, level, logger, $s};return $f; + }; + $ptrType(Logger).prototype.LogFn = function LogFn(level, fn) { + var {_arg, _arg$1, _r, _r$1, entry, fn, level, logger, $s, $r, $c} = $restore(this, {level, fn}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + /* */ if (logger.IsLevelEnabled(level)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (logger.IsLevelEnabled(level)) { */ case 1: + _r = logger.newEntry(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + entry = _r; + _arg = level; + _r$1 = fn(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + $r = entry.Log(_arg, _arg$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + logger.releaseEntry(entry); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: LogFn, $c: true, $r, _arg, _arg$1, _r, _r$1, entry, fn, level, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Trace = function Trace$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Log(6, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Trace$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Debug = function Debug$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Log(5, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Debug$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Info = function Info$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Log(4, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Info$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Print = function Print$1(args) { + var {_r, args, entry, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + _r = logger.newEntry(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + entry = _r; + $r = entry.Print(args); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + logger.releaseEntry(entry); + $s = -1; return; + /* */ } return; } var $f = {$blk: Print$1, $c: true, $r, _r, args, entry, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Warn = function Warn$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Log(3, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Warn$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Warning = function Warning$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Warn(args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Warning$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Error = function Error$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Log(2, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Error$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Fatal = function Fatal$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Log(1, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = logger.Exit(1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Fatal$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Panic = function Panic$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Log(0, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Panic$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.TraceFn = function TraceFn$1(fn) { + var {fn, logger, $s, $r, $c} = $restore(this, {fn}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.LogFn(6, fn); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: TraceFn$1, $c: true, $r, fn, logger, $s};return $f; + }; + $ptrType(Logger).prototype.DebugFn = function DebugFn$1(fn) { + var {fn, logger, $s, $r, $c} = $restore(this, {fn}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.LogFn(5, fn); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: DebugFn$1, $c: true, $r, fn, logger, $s};return $f; + }; + $ptrType(Logger).prototype.InfoFn = function InfoFn$1(fn) { + var {fn, logger, $s, $r, $c} = $restore(this, {fn}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.LogFn(4, fn); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: InfoFn$1, $c: true, $r, fn, logger, $s};return $f; + }; + $ptrType(Logger).prototype.PrintFn = function PrintFn$1(fn) { + var {_r, _r$1, entry, fn, logger, $s, $r, $c} = $restore(this, {fn}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + _r = logger.newEntry(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + entry = _r; + _r$1 = fn(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = entry.Print(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + logger.releaseEntry(entry); + $s = -1; return; + /* */ } return; } var $f = {$blk: PrintFn$1, $c: true, $r, _r, _r$1, entry, fn, logger, $s};return $f; + }; + $ptrType(Logger).prototype.WarnFn = function WarnFn$1(fn) { + var {fn, logger, $s, $r, $c} = $restore(this, {fn}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.LogFn(3, fn); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: WarnFn$1, $c: true, $r, fn, logger, $s};return $f; + }; + $ptrType(Logger).prototype.WarningFn = function WarningFn$1(fn) { + var {fn, logger, $s, $r, $c} = $restore(this, {fn}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.WarnFn(fn); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: WarningFn$1, $c: true, $r, fn, logger, $s};return $f; + }; + $ptrType(Logger).prototype.ErrorFn = function ErrorFn$1(fn) { + var {fn, logger, $s, $r, $c} = $restore(this, {fn}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.LogFn(2, fn); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: ErrorFn$1, $c: true, $r, fn, logger, $s};return $f; + }; + $ptrType(Logger).prototype.FatalFn = function FatalFn$1(fn) { + var {fn, logger, $s, $r, $c} = $restore(this, {fn}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.LogFn(1, fn); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = logger.Exit(1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: FatalFn$1, $c: true, $r, fn, logger, $s};return $f; + }; + $ptrType(Logger).prototype.PanicFn = function PanicFn$1(fn) { + var {fn, logger, $s, $r, $c} = $restore(this, {fn}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.LogFn(0, fn); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: PanicFn$1, $c: true, $r, fn, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Logln = function Logln(level, args) { + var {_r, args, entry, level, logger, $s, $r, $c} = $restore(this, {level, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + /* */ if (logger.IsLevelEnabled(level)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (logger.IsLevelEnabled(level)) { */ case 1: + _r = logger.newEntry(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + entry = _r; + $r = entry.Logln(level, args); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + logger.releaseEntry(entry); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Logln, $c: true, $r, _r, args, entry, level, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Traceln = function Traceln$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logln(6, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Traceln$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Debugln = function Debugln$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logln(5, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Debugln$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Infoln = function Infoln$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logln(4, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Infoln$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Println = function Println$1(args) { + var {_r, args, entry, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + _r = logger.newEntry(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + entry = _r; + $r = entry.Println(args); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + logger.releaseEntry(entry); + $s = -1; return; + /* */ } return; } var $f = {$blk: Println$1, $c: true, $r, _r, args, entry, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Warnln = function Warnln$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logln(3, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Warnln$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Warningln = function Warningln$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Warnln(args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Warningln$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Errorln = function Errorln$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logln(2, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Errorln$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Fatalln = function Fatalln$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logln(1, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = logger.Exit(1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Fatalln$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Panicln = function Panicln$1(args) { + var {args, logger, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.Logln(0, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Panicln$1, $c: true, $r, args, logger, $s};return $f; + }; + $ptrType(Logger).prototype.Exit = function Exit$1(code) { + var {code, logger, $s, $r, $c} = $restore(this, {code}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = runHandlers(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (logger.ExitFunc === $throwNilPointerError) { + logger.ExitFunc = os.Exit; + } + $r = logger.ExitFunc(code); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Exit$1, $c: true, $r, code, logger, $s};return $f; + }; + $ptrType(Logger).prototype.SetNoLock = function SetNoLock() { + var logger; + logger = this; + logger.mu.Disable(); + }; + $ptrType(Logger).prototype.level = function level() { + var _ptr, logger; + logger = this; + return ((atomic.LoadUint32(((_ptr = (logger.$ptr_Level || (logger.$ptr_Level = new ptrType$7(function() { return this.$target.Level; }, function($v) { this.$target.Level = $v; }, logger))), new ptrType$6(function() { return (_ptr.$get() >>> 0); }, function($v) { _ptr.$set(($v >>> 0)); }, _ptr.$target)))) >>> 0)); + }; + $ptrType(Logger).prototype.SetLevel = function SetLevel$1(level$1) { + var _ptr, level$1, logger; + logger = this; + atomic.StoreUint32(((_ptr = (logger.$ptr_Level || (logger.$ptr_Level = new ptrType$7(function() { return this.$target.Level; }, function($v) { this.$target.Level = $v; }, logger))), new ptrType$6(function() { return (_ptr.$get() >>> 0); }, function($v) { _ptr.$set(($v >>> 0)); }, _ptr.$target))), ((level$1 >>> 0))); + }; + $ptrType(Logger).prototype.GetLevel = function GetLevel$1() { + var logger; + logger = this; + return logger.level(); + }; + $ptrType(Logger).prototype.AddHook = function AddHook$1(hook) { + var {hook, logger, $s, $deferred, $r, $c} = $restore(this, {hook}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + logger = this; + $r = logger.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(logger.mu, "Unlock"), []]); + $r = new LevelHooks(logger.Hooks).Add(hook); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: AddHook$1, $c: true, $r, hook, logger, $s, $deferred};return $f; } } + }; + $ptrType(Logger).prototype.IsLevelEnabled = function IsLevelEnabled$1(level$1) { + var level$1, logger; + logger = this; + return logger.level() >= level$1; + }; + $ptrType(Logger).prototype.SetFormatter = function SetFormatter$1(formatter) { + var {formatter, logger, $s, $deferred, $r, $c} = $restore(this, {formatter}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + logger = this; + $r = logger.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(logger.mu, "Unlock"), []]); + logger.Formatter = formatter; + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: SetFormatter$1, $c: true, $r, formatter, logger, $s, $deferred};return $f; } } + }; + $ptrType(Logger).prototype.SetOutput = function SetOutput$1(output) { + var {logger, output, $s, $deferred, $r, $c} = $restore(this, {output}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + logger = this; + $r = logger.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(logger.mu, "Unlock"), []]); + logger.Out = output; + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: SetOutput$1, $c: true, $r, logger, output, $s, $deferred};return $f; } } + }; + $ptrType(Logger).prototype.SetReportCaller = function SetReportCaller$1(reportCaller) { + var {logger, reportCaller, $s, $deferred, $r, $c} = $restore(this, {reportCaller}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + logger = this; + $r = logger.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(logger.mu, "Unlock"), []]); + logger.ReportCaller = reportCaller; + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: SetReportCaller$1, $c: true, $r, logger, reportCaller, $s, $deferred};return $f; } } + }; + $ptrType(Logger).prototype.ReplaceHooks = function ReplaceHooks(hooks) { + var {hooks, logger, oldHooks, $s, $r, $c} = $restore(this, {hooks}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + logger = this; + $r = logger.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + oldHooks = logger.Hooks; + logger.Hooks = hooks; + $r = logger.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return oldHooks; + /* */ } return; } var $f = {$blk: ReplaceHooks, $c: true, $r, hooks, logger, oldHooks, $s};return $f; + }; + FieldMap.prototype.resolve = function resolve(key) { + var _entry, _tuple, f, k, key, ok; + f = this.$val; + _tuple = (_entry = $mapIndex(f,fieldKey.keyFor(key)), _entry !== undefined ? [_entry.v, true] : ["", false]); + k = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return k; + } + return (key); + }; + $ptrType(FieldMap).prototype.resolve = function(...$args) { return new FieldMap(this.$get()).resolve(...$args); }; + LevelHooks.prototype.Add = function Add(hook) { + var {_entry, _i, _key, _r, _ref, hook, hooks, level$1, $s, $r, $c} = $restore(this, {hook}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + hooks = this.$val; + _r = hook.Levels(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + level$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _key = level$1; (hooks || $throwRuntimeError("assignment to entry in nil map")).set(Level.keyFor(_key), { k: _key, v: $append((_entry = $mapIndex(hooks,Level.keyFor(level$1)), _entry !== undefined ? _entry.v : sliceType$5.nil), hook) }); + _i++; + $s = 2; continue; + case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: Add, $c: true, $r, _entry, _i, _key, _r, _ref, hook, hooks, level$1, $s};return $f; + }; + $ptrType(LevelHooks).prototype.Add = function(...$args) { return new LevelHooks(this.$get()).Add(...$args); }; + LevelHooks.prototype.Fire = function Fire(level$1, entry) { + var {_entry, _i, _r, _ref, entry, err, hook, hooks, level$1, $s, $r, $c} = $restore(this, {level$1, entry}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + hooks = this.$val; + _ref = (_entry = $mapIndex(hooks,Level.keyFor(level$1)), _entry !== undefined ? _entry.v : sliceType$5.nil); + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + hook = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = hook.Fire(entry); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Fire, $c: true, $r, _entry, _i, _r, _ref, entry, err, hook, hooks, level$1, $s};return $f; + }; + $ptrType(LevelHooks).prototype.Fire = function(...$args) { return new LevelHooks(this.$get()).Fire(...$args); }; + prefixFieldClashes = function prefixFieldClashes$1(data, fieldMap, reportCaller) { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, data, fieldMap, fileKey, funcKey, l, l$1, l$2, l$3, levelKey, logrusErrKey, m, msgKey, ok, ok$1, ok$2, ok$3, ok$4, ok$5, reportCaller, t, timeKey; + timeKey = new FieldMap(fieldMap).resolve("time"); + _tuple = (_entry = $mapIndex(data,$String.keyFor(timeKey)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); + t = _tuple[0]; + ok = _tuple[1]; + if (ok) { + _key = "fields." + timeKey; (data || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: t }); + $mapDelete(data, $String.keyFor(timeKey)); + } + msgKey = new FieldMap(fieldMap).resolve("msg"); + _tuple$1 = (_entry$1 = $mapIndex(data,$String.keyFor(msgKey)), _entry$1 !== undefined ? [_entry$1.v, true] : [$ifaceNil, false]); + m = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (ok$1) { + _key$1 = "fields." + msgKey; (data || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: m }); + $mapDelete(data, $String.keyFor(msgKey)); + } + levelKey = new FieldMap(fieldMap).resolve("level"); + _tuple$2 = (_entry$2 = $mapIndex(data,$String.keyFor(levelKey)), _entry$2 !== undefined ? [_entry$2.v, true] : [$ifaceNil, false]); + l = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (ok$2) { + _key$2 = "fields." + levelKey; (data || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: l }); + $mapDelete(data, $String.keyFor(levelKey)); + } + logrusErrKey = new FieldMap(fieldMap).resolve("logrus_error"); + _tuple$3 = (_entry$3 = $mapIndex(data,$String.keyFor(logrusErrKey)), _entry$3 !== undefined ? [_entry$3.v, true] : [$ifaceNil, false]); + l$1 = _tuple$3[0]; + ok$3 = _tuple$3[1]; + if (ok$3) { + _key$3 = "fields." + logrusErrKey; (data || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$3), { k: _key$3, v: l$1 }); + $mapDelete(data, $String.keyFor(logrusErrKey)); + } + if (reportCaller) { + funcKey = new FieldMap(fieldMap).resolve("func"); + _tuple$4 = (_entry$4 = $mapIndex(data,$String.keyFor(funcKey)), _entry$4 !== undefined ? [_entry$4.v, true] : [$ifaceNil, false]); + l$2 = _tuple$4[0]; + ok$4 = _tuple$4[1]; + if (ok$4) { + _key$4 = "fields." + funcKey; (data || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$4), { k: _key$4, v: l$2 }); + } + fileKey = new FieldMap(fieldMap).resolve("file"); + _tuple$5 = (_entry$5 = $mapIndex(data,$String.keyFor(fileKey)), _entry$5 !== undefined ? [_entry$5.v, true] : [$ifaceNil, false]); + l$3 = _tuple$5[0]; + ok$5 = _tuple$5[1]; + if (ok$5) { + _key$5 = "fields." + fileKey; (data || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$5), { k: _key$5, v: l$3 }); + } + } + }; + init$1 = function init$5() { + minimumCallerDepth = 1; + }; + NewEntry = function NewEntry$1(logger) { + var logger; + return new Entry.ptr(logger, new $global.Map(), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), 0, ptrType$2.nil, "", ptrType$3.nil, $ifaceNil, ""); + }; + $pkg.NewEntry = NewEntry; + $ptrType(Entry).prototype.Dup = function Dup() { + var _entry, _i, _key, _key$1, _keys, _ref, _size, data, entry, k, v, x; + entry = this; + data = (x = (entry.Data ? entry.Data.size : 0), ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref = entry.Data; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + k = _entry.k; + v = _entry.v; + _key$1 = k; (data || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: v }); + _i++; + } + return new Entry.ptr(entry.Logger, data, $clone(entry.Time, time.Time), 0, ptrType$2.nil, "", ptrType$3.nil, entry.Context, entry.err); + }; + $ptrType(Entry).prototype.Bytes = function Bytes() { + var {$24r, _r, entry, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + _r = entry.Logger.Formatter.Format(entry); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Bytes, $c: true, $r, $24r, _r, entry, $s};return $f; + }; + $ptrType(Entry).prototype.String = function String$1() { + var {_r, _tuple, entry, err, serialized, str, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + _r = entry.Bytes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + serialized = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return ["", err]; + } + str = ($bytesToString(serialized)); + $s = -1; return [str, $ifaceNil]; + /* */ } return; } var $f = {$blk: String$1, $c: true, $r, _r, _tuple, entry, err, serialized, str, $s};return $f; + }; + $ptrType(Entry).prototype.WithError = function WithError$3(err) { + var {$24r, _r, entry, err, $s, $r, $c} = $restore(this, {err}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + _r = entry.WithField($pkg.ErrorKey, err); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: WithError$3, $c: true, $r, $24r, _r, entry, err, $s};return $f; + }; + $ptrType(Entry).prototype.WithContext = function WithContext$3(ctx) { + var _entry, _i, _key, _key$1, _keys, _ref, _size, ctx, dataCopy, entry, k, v, x; + entry = this; + dataCopy = (x = (entry.Data ? entry.Data.size : 0), ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref = entry.Data; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + k = _entry.k; + v = _entry.v; + _key$1 = k; (dataCopy || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: v }); + _i++; + } + return new Entry.ptr(entry.Logger, dataCopy, $clone(entry.Time, time.Time), 0, ptrType$2.nil, "", ptrType$3.nil, ctx, entry.err); + }; + $ptrType(Entry).prototype.WithField = function WithField$3(key, value) { + var {$24r, _r, entry, key, value, $s, $r, $c} = $restore(this, {key, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + _r = entry.WithFields($makeMap($String.keyFor, [{ k: key, v: value }])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: WithField$3, $c: true, $r, $24r, _r, entry, key, value, $s};return $f; + }; + $ptrType(Entry).prototype.WithFields = function WithFields$3(fields) { + var {_entry, _entry$1, _i, _i$1, _key, _key$1, _key$2, _key$3, _keys, _keys$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _size, _size$1, _v, _v$1, data, entry, fieldErr, fields, isErrField, k, k$1, t, tmp, v, v$1, x, $s, $r, $c} = $restore(this, {fields}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + data = (x = (entry.Data ? entry.Data.size : 0) + (fields ? fields.size : 0) >> 0, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref = entry.Data; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + k = _entry.k; + v = _entry.v; + _key$1 = k; (data || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: v }); + _i++; + } + fieldErr = entry.err; + _ref$1 = fields; + _i$1 = 0; + _keys$1 = _ref$1 ? _ref$1.keys() : undefined; + _size$1 = _ref$1 ? _ref$1.size : 0; + /* while (true) { */ case 1: + /* if (!(_i$1 < _size$1)) { break; } */ if(!(_i$1 < _size$1)) { $s = 2; continue; } + _key$2 = _keys$1.next().value; + _entry$1 = _ref$1.get(_key$2); + if (_entry$1 === undefined) { + _i$1++; + /* continue; */ $s = 1; continue; + } + k$1 = _entry$1.k; + v$1 = _entry$1.v; + isErrField = false; + t = reflect.TypeOf(v$1); + /* */ if (!($interfaceIsEqual(t, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(t, $ifaceNil))) { */ case 3: + _r = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if ((_r === 19)) { _v = true; $s = 8; continue s; } + _r$1 = t.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (!(_r$1 === 22)) { _v$1 = false; $s = 10; continue s; } + _r$2 = t.Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Kind(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v$1 = _r$3 === 19; case 10: + _v = _v$1; case 8: + /* */ if (_v) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_v) { */ case 6: + isErrField = true; + /* } */ case 7: + case 5: + /* } */ case 4: + /* */ if (isErrField) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (isErrField) { */ case 14: + _r$4 = fmt.Sprintf("can not add field %q", new sliceType$2([new $String(k$1)])); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + tmp = _r$4; + if (!(fieldErr === "")) { + fieldErr = entry.err + ", " + tmp; + } else { + fieldErr = tmp; + } + $s = 16; continue; + /* } else { */ case 15: + _key$3 = k$1; (data || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$3), { k: _key$3, v: v$1 }); + /* } */ case 16: + _i$1++; + $s = 1; continue; + case 2: + $s = -1; return new Entry.ptr(entry.Logger, data, $clone(entry.Time, time.Time), 0, ptrType$2.nil, "", ptrType$3.nil, entry.Context, fieldErr); + /* */ } return; } var $f = {$blk: WithFields$3, $c: true, $r, _entry, _entry$1, _i, _i$1, _key, _key$1, _key$2, _key$3, _keys, _keys$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _size, _size$1, _v, _v$1, data, entry, fieldErr, fields, isErrField, k, k$1, t, tmp, v, v$1, x, $s};return $f; + }; + $ptrType(Entry).prototype.WithTime = function WithTime$3(t) { + var _entry, _i, _key, _key$1, _keys, _ref, _size, dataCopy, entry, k, t, v, x; + entry = this; + dataCopy = (x = (entry.Data ? entry.Data.size : 0), ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref = entry.Data; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + k = _entry.k; + v = _entry.v; + _key$1 = k; (dataCopy || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: v }); + _i++; + } + return new Entry.ptr(entry.Logger, dataCopy, $clone(t, time.Time), 0, ptrType$2.nil, "", ptrType$3.nil, entry.Context, entry.err); + }; + getPackageName = function getPackageName$1(f) { + var f, lastPeriod, lastSlash; + while (true) { + lastPeriod = strings.LastIndex(f, "."); + lastSlash = strings.LastIndex(f, "/"); + if (lastPeriod > lastSlash) { + f = $substring(f, 0, lastPeriod); + } else { + break; + } + } + return f; + }; + getCaller = function getCaller$1() { + var {_tuple, _tuple$1, again, depth, f, frames, pcs, pkg, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = [f]; + $r = callerInitOnce.Do((function(f) { return function getCaller·func1() { + var funcName, i, pcs; + pcs = $makeSlice(sliceType$6, 25); + $unused(runtime.Callers(0, pcs)); + i = 0; + while (true) { + if (!(i < 25)) { break; } + funcName = runtime.FuncForPC(((i < 0 || i >= pcs.$length) ? ($throwRuntimeError("index out of range"), undefined) : pcs.$array[pcs.$offset + i])).Name(); + if (strings.Contains(funcName, "getCaller")) { + logrusPackage = getPackageName(funcName); + break; + } + i = i + (1) >> 0; + } + minimumCallerDepth = 4; + }; })(f)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pcs = $makeSlice(sliceType$6, 25); + depth = runtime.Callers(minimumCallerDepth, pcs); + frames = runtime.CallersFrames($subslice(pcs, 0, depth)); + _tuple = frames.Next(); + f[0] = $clone(_tuple[0], runtime.Frame); + again = _tuple[1]; + while (true) { + if (!(again)) { break; } + pkg = getPackageName(f[0].Function); + if (!(pkg === logrusPackage)) { + $s = -1; return f[0]; + } + _tuple$1 = frames.Next(); + runtime.Frame.copy(f[0], _tuple$1[0]); + again = _tuple$1[1]; + } + $s = -1; return ptrType$2.nil; + /* */ } return; } var $f = {$blk: getCaller$1, $c: true, $r, _tuple, _tuple$1, again, depth, f, frames, pcs, pkg, $s};return $f; + }; + $ptrType(Entry).prototype.HasCaller = function HasCaller() { + var entry, has; + has = false; + entry = this; + has = !(entry.Logger === ptrType$1.nil) && entry.Logger.ReportCaller && !(entry.Caller === ptrType$2.nil); + return has; + }; + Entry.prototype.HasCaller = function(...$args) { return this.$val.HasCaller(...$args); }; + $ptrType(Entry).prototype.log = function log$1(level$1, msg) { + var {_r, _r$1, _r$2, buffer, entry, level$1, msg, newEntry$1, reportCaller, $s, $deferred, $r, $c} = $restore(this, {level$1, msg}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + buffer = [buffer]; + newEntry$1 = [newEntry$1]; + entry = this; + buffer[0] = ptrType$3.nil; + newEntry$1[0] = entry.Dup(); + /* */ if ($clone(newEntry$1[0].Time, time.Time).IsZero()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($clone(newEntry$1[0].Time, time.Time).IsZero()) { */ case 1: + _r = time.Now(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + time.Time.copy(newEntry$1[0].Time, _r); + /* } */ case 2: + newEntry$1[0].Level = level$1; + newEntry$1[0].Message = msg; + $r = newEntry$1[0].Logger.mu.Lock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + reportCaller = newEntry$1[0].Logger.ReportCaller; + $r = newEntry$1[0].Logger.mu.Unlock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (reportCaller) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (reportCaller) { */ case 6: + _r$1 = getCaller(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + newEntry$1[0].Caller = _r$1; + /* } */ case 7: + $r = newEntry$1[0].fireHooks(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = getBuffer(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + buffer[0] = _r$2; + $deferred.push([(function(buffer, newEntry$1) { return function Entry·log·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + newEntry$1[0].Buffer = ptrType$3.nil; + $r = putBuffer(buffer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Entry·log·func1, $c: true, $r, $s};return $f; + }; })(buffer, newEntry$1), []]); + buffer[0].Reset(); + newEntry$1[0].Buffer = buffer[0]; + $r = newEntry$1[0].write(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + newEntry$1[0].Buffer = ptrType$3.nil; + if (level$1 <= 0) { + $panic(newEntry$1[0]); + } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: log$1, $c: true, $r, _r, _r$1, _r$2, buffer, entry, level$1, msg, newEntry$1, reportCaller, $s, $deferred};return $f; } } + }; + $ptrType(Entry).prototype.fireHooks = function fireHooks() { + var {_entry, _i, _key, _key$1, _keys, _r, _r$1, _ref, _size, entry, err, k, tmpHooks, v, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + tmpHooks = false; + $r = entry.Logger.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tmpHooks = (x = (entry.Logger.Hooks ? entry.Logger.Hooks.size : 0), ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref = entry.Logger.Hooks; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + k = _entry.k; + v = _entry.v; + _key$1 = k; (tmpHooks || $throwRuntimeError("assignment to entry in nil map")).set(Level.keyFor(_key$1), { k: _key$1, v: v }); + _i++; + } + $r = entry.Logger.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = new LevelHooks(tmpHooks).Fire(entry.Level, entry); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4: + _r$1 = fmt.Fprintf(os.Stderr, "Failed to fire hook: %v\n", new sliceType$2([err])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: fireHooks, $c: true, $r, _entry, _i, _key, _key$1, _keys, _r, _r$1, _ref, _size, entry, err, k, tmpHooks, v, x, $s};return $f; + }; + $ptrType(Entry).prototype.write = function write() { + var {_r, _r$1, _r$2, _r$3, _tuple, _tuple$1, entry, err, err$1, serialized, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + entry = this; + _r = entry.Logger.Formatter.Format(entry); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + serialized = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$1 = fmt.Fprintf(os.Stderr, "Failed to obtain reader, %v\n", new sliceType$2([err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* } */ case 3: + $r = entry.Logger.mu.Lock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(entry.Logger.mu, "Unlock"), []]); + _r$2 = entry.Logger.Out.Write(serialized); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + err$1 = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 7: + _r$3 = fmt.Fprintf(os.Stderr, "Failed to write to log, %v\n", new sliceType$2([err$1])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* } */ case 8: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: write, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, entry, err, err$1, serialized, $s, $deferred};return $f; } } + }; + $ptrType(Entry).prototype.Log = function Log$1(level$1, args) { + var {_arg, _arg$1, _r, args, entry, level$1, $s, $r, $c} = $restore(this, {level$1, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + /* */ if (entry.Logger.IsLevelEnabled(level$1)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (entry.Logger.IsLevelEnabled(level$1)) { */ case 1: + _arg = level$1; + _r = fmt.Sprint(args); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $r = entry.log(_arg, _arg$1); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Log$1, $c: true, $r, _arg, _arg$1, _r, args, entry, level$1, $s};return $f; + }; + $ptrType(Entry).prototype.Trace = function Trace$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Log(6, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Trace$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Debug = function Debug$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Log(5, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Debug$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Print = function Print$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Info(args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Print$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Info = function Info$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Log(4, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Info$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Warn = function Warn$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Log(3, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Warn$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Warning = function Warning$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Warn(args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Warning$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Error = function Error$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Log(2, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Error$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Fatal = function Fatal$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Log(1, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = entry.Logger.Exit(1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Fatal$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Panic = function Panic$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Log(0, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Panic$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Logf = function Logf$1(level$1, format, args) { + var {_arg, _arg$1, _r, args, entry, format, level$1, $s, $r, $c} = $restore(this, {level$1, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + /* */ if (entry.Logger.IsLevelEnabled(level$1)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (entry.Logger.IsLevelEnabled(level$1)) { */ case 1: + _arg = level$1; + _r = fmt.Sprintf(format, args); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = new $String(_r); + $r = entry.Log(_arg, new sliceType$2([_arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Logf$1, $c: true, $r, _arg, _arg$1, _r, args, entry, format, level$1, $s};return $f; + }; + $ptrType(Entry).prototype.Tracef = function Tracef$3(format, args) { + var {args, entry, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logf(6, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Tracef$3, $c: true, $r, args, entry, format, $s};return $f; + }; + $ptrType(Entry).prototype.Debugf = function Debugf$3(format, args) { + var {args, entry, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logf(5, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Debugf$3, $c: true, $r, args, entry, format, $s};return $f; + }; + $ptrType(Entry).prototype.Infof = function Infof$3(format, args) { + var {args, entry, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logf(4, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Infof$3, $c: true, $r, args, entry, format, $s};return $f; + }; + $ptrType(Entry).prototype.Printf = function Printf$3(format, args) { + var {args, entry, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Infof(format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Printf$3, $c: true, $r, args, entry, format, $s};return $f; + }; + $ptrType(Entry).prototype.Warnf = function Warnf$3(format, args) { + var {args, entry, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logf(3, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Warnf$3, $c: true, $r, args, entry, format, $s};return $f; + }; + $ptrType(Entry).prototype.Warningf = function Warningf$3(format, args) { + var {args, entry, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Warnf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Warningf$3, $c: true, $r, args, entry, format, $s};return $f; + }; + $ptrType(Entry).prototype.Errorf = function Errorf$3(format, args) { + var {args, entry, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logf(2, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Errorf$3, $c: true, $r, args, entry, format, $s};return $f; + }; + $ptrType(Entry).prototype.Fatalf = function Fatalf$3(format, args) { + var {args, entry, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logf(1, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = entry.Logger.Exit(1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Fatalf$3, $c: true, $r, args, entry, format, $s};return $f; + }; + $ptrType(Entry).prototype.Panicf = function Panicf$3(format, args) { + var {args, entry, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logf(0, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Panicf$3, $c: true, $r, args, entry, format, $s};return $f; + }; + $ptrType(Entry).prototype.Logln = function Logln$1(level$1, args) { + var {_arg, _arg$1, _r, args, entry, level$1, $s, $r, $c} = $restore(this, {level$1, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + /* */ if (entry.Logger.IsLevelEnabled(level$1)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (entry.Logger.IsLevelEnabled(level$1)) { */ case 1: + _arg = level$1; + _r = entry.sprintlnn(args); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = new $String(_r); + $r = entry.Log(_arg, new sliceType$2([_arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Logln$1, $c: true, $r, _arg, _arg$1, _r, args, entry, level$1, $s};return $f; + }; + $ptrType(Entry).prototype.Traceln = function Traceln$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logln(6, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Traceln$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Debugln = function Debugln$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logln(5, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Debugln$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Infoln = function Infoln$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logln(4, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Infoln$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Println = function Println$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Infoln(args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Println$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Warnln = function Warnln$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logln(3, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Warnln$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Warningln = function Warningln$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Warnln(args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Warningln$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Errorln = function Errorln$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logln(2, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Errorln$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Fatalln = function Fatalln$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logln(1, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = entry.Logger.Exit(1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Fatalln$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.Panicln = function Panicln$3(args) { + var {args, entry, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + $r = entry.Logln(0, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Panicln$3, $c: true, $r, args, entry, $s};return $f; + }; + $ptrType(Entry).prototype.sprintlnn = function sprintlnn(args) { + var {_r, args, entry, msg, $s, $r, $c} = $restore(this, {args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + entry = this; + _r = fmt.Sprintln(args); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + msg = _r; + $s = -1; return $substring(msg, 0, (msg.length - 1 >> 0)); + /* */ } return; } var $f = {$blk: sprintlnn, $c: true, $r, _r, args, entry, msg, $s};return $f; + }; + $ptrType(defaultPool).prototype.Put = function Put(buf) { + var buf, p; + p = this; + p.pool.Put(buf); + }; + $ptrType(defaultPool).prototype.Get = function Get() { + var {$24r, _r, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = p.pool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = $assertType(_r, ptrType$3); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Get, $c: true, $r, $24r, _r, p, $s};return $f; + }; + getBuffer = function getBuffer$1() { + var {$24r, _r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = bufferPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: getBuffer$1, $c: true, $r, $24r, _r, $s};return $f; + }; + putBuffer = function putBuffer$1(buf) { + var {buf, $s, $r, $c} = $restore(this, {buf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf.Reset(); + $r = bufferPool.Put(buf); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: putBuffer$1, $c: true, $r, buf, $s};return $f; + }; + SetBufferPool = function SetBufferPool$1(bp) { + var bp; + bufferPool = bp; + }; + $pkg.SetBufferPool = SetBufferPool; + init$2 = function init$6() { + SetBufferPool(new defaultPool.ptr(new sync.Pool.ptr(sliceType$2.nil, (function init·func1() { + return new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + })))); + }; + runHandler = function runHandler$1(handler) { + var {handler, $s, $deferred, $r, $c} = $restore(this, {handler}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + $deferred.push([(function runHandler·func1() { + var {_r, err, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + err = $recover(); + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1: + _r = fmt.Fprintln(os.Stderr, new sliceType$2([new $String("Error: Logrus exit handler error:"), err])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: runHandler·func1, $c: true, $r, _r, err, $s};return $f; + }), []]); + $r = handler(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: runHandler$1, $c: true, $r, handler, $s, $deferred};return $f; } } + }; + runHandlers = function runHandlers$1() { + var {_i, _ref, handler, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = handlers; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + handler = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = runHandler(handler); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: runHandlers$1, $c: true, $r, _i, _ref, handler, $s};return $f; + }; + ptrType$9.methods = [{prop: "init", name: "init", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$5], [], false)}, {prop: "isColored", name: "isColored", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [$Bool], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([ptrType$5], [sliceType$1, $error], false)}, {prop: "printColored", name: "printColored", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$3, ptrType$5, sliceType$4, Fields, $String], [], false)}, {prop: "needsQuoting", name: "needsQuoting", pkg: "github.com/sirupsen/logrus", typ: $funcType([$String], [$Bool], false)}, {prop: "appendKeyValue", name: "appendKeyValue", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$3, $String, $emptyInterface], [], false)}, {prop: "appendValue", name: "appendValue", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$3, $emptyInterface], [], false)}]; + Level.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}]; + ptrType$7.methods = [{prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}]; + ptrType$1.methods = [{prop: "Writer", name: "Writer", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "WriterLevel", name: "WriterLevel", pkg: "", typ: $funcType([Level], [ptrType$4], false)}, {prop: "newEntry", name: "newEntry", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [ptrType$5], false)}, {prop: "releaseEntry", name: "releaseEntry", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$5], [], false)}, {prop: "WithField", name: "WithField", pkg: "", typ: $funcType([$String, $emptyInterface], [ptrType$5], false)}, {prop: "WithFields", name: "WithFields", pkg: "", typ: $funcType([Fields], [ptrType$5], false)}, {prop: "WithError", name: "WithError", pkg: "", typ: $funcType([$error], [ptrType$5], false)}, {prop: "WithContext", name: "WithContext", pkg: "", typ: $funcType([context.Context], [ptrType$5], false)}, {prop: "WithTime", name: "WithTime", pkg: "", typ: $funcType([time.Time], [ptrType$5], false)}, {prop: "Logf", name: "Logf", pkg: "", typ: $funcType([Level, $String, sliceType$2], [], true)}, {prop: "Tracef", name: "Tracef", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Debugf", name: "Debugf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Infof", name: "Infof", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Printf", name: "Printf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Warnf", name: "Warnf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Warningf", name: "Warningf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Errorf", name: "Errorf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Fatalf", name: "Fatalf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Panicf", name: "Panicf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Log", name: "Log", pkg: "", typ: $funcType([Level, sliceType$2], [], true)}, {prop: "LogFn", name: "LogFn", pkg: "", typ: $funcType([Level, LogFunction], [], false)}, {prop: "Trace", name: "Trace", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Debug", name: "Debug", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Print", name: "Print", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warn", name: "Warn", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warning", name: "Warning", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Fatal", name: "Fatal", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Panic", name: "Panic", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "TraceFn", name: "TraceFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "DebugFn", name: "DebugFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "InfoFn", name: "InfoFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "PrintFn", name: "PrintFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "WarnFn", name: "WarnFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "WarningFn", name: "WarningFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "ErrorFn", name: "ErrorFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "FatalFn", name: "FatalFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "PanicFn", name: "PanicFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "Logln", name: "Logln", pkg: "", typ: $funcType([Level, sliceType$2], [], true)}, {prop: "Traceln", name: "Traceln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Debugln", name: "Debugln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Infoln", name: "Infoln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Println", name: "Println", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warnln", name: "Warnln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warningln", name: "Warningln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Errorln", name: "Errorln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Fatalln", name: "Fatalln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Panicln", name: "Panicln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Exit", name: "Exit", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetNoLock", name: "SetNoLock", pkg: "", typ: $funcType([], [], false)}, {prop: "level", name: "level", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [Level], false)}, {prop: "SetLevel", name: "SetLevel", pkg: "", typ: $funcType([Level], [], false)}, {prop: "GetLevel", name: "GetLevel", pkg: "", typ: $funcType([], [Level], false)}, {prop: "AddHook", name: "AddHook", pkg: "", typ: $funcType([Hook], [], false)}, {prop: "IsLevelEnabled", name: "IsLevelEnabled", pkg: "", typ: $funcType([Level], [$Bool], false)}, {prop: "SetFormatter", name: "SetFormatter", pkg: "", typ: $funcType([Formatter], [], false)}, {prop: "SetOutput", name: "SetOutput", pkg: "", typ: $funcType([io.Writer], [], false)}, {prop: "SetReportCaller", name: "SetReportCaller", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "ReplaceHooks", name: "ReplaceHooks", pkg: "", typ: $funcType([LevelHooks], [LevelHooks], false)}]; + ptrType$10.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "Disable", name: "Disable", pkg: "", typ: $funcType([], [], false)}]; + FieldMap.methods = [{prop: "resolve", name: "resolve", pkg: "github.com/sirupsen/logrus", typ: $funcType([fieldKey], [$String], false)}]; + LevelHooks.methods = [{prop: "Add", name: "Add", pkg: "", typ: $funcType([Hook], [], false)}, {prop: "Fire", name: "Fire", pkg: "", typ: $funcType([Level, ptrType$5], [$error], false)}]; + Entry.methods = [{prop: "HasCaller", name: "HasCaller", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$5.methods = [{prop: "Writer", name: "Writer", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "WriterLevel", name: "WriterLevel", pkg: "", typ: $funcType([Level], [ptrType$4], false)}, {prop: "writerScanner", name: "writerScanner", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$12, funcType$4], [], false)}, {prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String, $error], false)}, {prop: "WithError", name: "WithError", pkg: "", typ: $funcType([$error], [ptrType$5], false)}, {prop: "WithContext", name: "WithContext", pkg: "", typ: $funcType([context.Context], [ptrType$5], false)}, {prop: "WithField", name: "WithField", pkg: "", typ: $funcType([$String, $emptyInterface], [ptrType$5], false)}, {prop: "WithFields", name: "WithFields", pkg: "", typ: $funcType([Fields], [ptrType$5], false)}, {prop: "WithTime", name: "WithTime", pkg: "", typ: $funcType([time.Time], [ptrType$5], false)}, {prop: "log", name: "log", pkg: "github.com/sirupsen/logrus", typ: $funcType([Level, $String], [], false)}, {prop: "fireHooks", name: "fireHooks", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [], false)}, {prop: "write", name: "write", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [], false)}, {prop: "Log", name: "Log", pkg: "", typ: $funcType([Level, sliceType$2], [], true)}, {prop: "Trace", name: "Trace", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Debug", name: "Debug", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Print", name: "Print", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warn", name: "Warn", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warning", name: "Warning", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Fatal", name: "Fatal", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Panic", name: "Panic", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Logf", name: "Logf", pkg: "", typ: $funcType([Level, $String, sliceType$2], [], true)}, {prop: "Tracef", name: "Tracef", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Debugf", name: "Debugf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Infof", name: "Infof", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Printf", name: "Printf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Warnf", name: "Warnf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Warningf", name: "Warningf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Errorf", name: "Errorf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Fatalf", name: "Fatalf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Panicf", name: "Panicf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Logln", name: "Logln", pkg: "", typ: $funcType([Level, sliceType$2], [], true)}, {prop: "Traceln", name: "Traceln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Debugln", name: "Debugln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Infoln", name: "Infoln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Println", name: "Println", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warnln", name: "Warnln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warningln", name: "Warningln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Errorln", name: "Errorln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Fatalln", name: "Fatalln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Panicln", name: "Panicln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "sprintlnn", name: "sprintlnn", pkg: "github.com/sirupsen/logrus", typ: $funcType([sliceType$2], [$String], true)}]; + ptrType$13.methods = [{prop: "Put", name: "Put", pkg: "", typ: $funcType([ptrType$3], [], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [ptrType$3], false)}]; + TextFormatter.init("github.com/sirupsen/logrus", [{prop: "ForceColors", name: "ForceColors", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DisableColors", name: "DisableColors", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ForceQuote", name: "ForceQuote", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DisableQuote", name: "DisableQuote", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "EnvironmentOverrideColors", name: "EnvironmentOverrideColors", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DisableTimestamp", name: "DisableTimestamp", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "FullTimestamp", name: "FullTimestamp", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "TimestampFormat", name: "TimestampFormat", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "DisableSorting", name: "DisableSorting", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "SortingFunc", name: "SortingFunc", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "DisableLevelTruncation", name: "DisableLevelTruncation", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PadLevelText", name: "PadLevelText", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "QuoteEmptyFields", name: "QuoteEmptyFields", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "isTerminal", name: "isTerminal", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "FieldMap", name: "FieldMap", embedded: false, exported: true, typ: FieldMap, tag: ""}, {prop: "CallerPrettyfier", name: "CallerPrettyfier", embedded: false, exported: true, typ: funcType$3, tag: ""}, {prop: "terminalInitOnce", name: "terminalInitOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "levelTextMaxLength", name: "levelTextMaxLength", embedded: false, exported: false, typ: $Int, tag: ""}]); + Fields.init($String, $emptyInterface); + LogFunction.init([], [sliceType$2], false); + Logger.init("github.com/sirupsen/logrus", [{prop: "Out", name: "Out", embedded: false, exported: true, typ: io.Writer, tag: ""}, {prop: "Hooks", name: "Hooks", embedded: false, exported: true, typ: LevelHooks, tag: ""}, {prop: "Formatter", name: "Formatter", embedded: false, exported: true, typ: Formatter, tag: ""}, {prop: "ReportCaller", name: "ReportCaller", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Level", name: "Level", embedded: false, exported: true, typ: Level, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: MutexWrap, tag: ""}, {prop: "entryPool", name: "entryPool", embedded: false, exported: false, typ: sync.Pool, tag: ""}, {prop: "ExitFunc", name: "ExitFunc", embedded: false, exported: true, typ: exitFunc, tag: ""}]); + exitFunc.init([$Int], [], false); + MutexWrap.init("github.com/sirupsen/logrus", [{prop: "lock", name: "lock", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "disabled", name: "disabled", embedded: false, exported: false, typ: $Bool, tag: ""}]); + FieldMap.init(fieldKey, $String); + Hook.init([{prop: "Fire", name: "Fire", pkg: "", typ: $funcType([ptrType$5], [$error], false)}, {prop: "Levels", name: "Levels", pkg: "", typ: $funcType([], [sliceType], false)}]); + LevelHooks.init(Level, sliceType$5); + Formatter.init([{prop: "Format", name: "Format", pkg: "", typ: $funcType([ptrType$5], [sliceType$1, $error], false)}]); + Entry.init("github.com/sirupsen/logrus", [{prop: "Logger", name: "Logger", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: Fields, tag: ""}, {prop: "Time", name: "Time", embedded: false, exported: true, typ: time.Time, tag: ""}, {prop: "Level", name: "Level", embedded: false, exported: true, typ: Level, tag: ""}, {prop: "Caller", name: "Caller", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Message", name: "Message", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Buffer", name: "Buffer", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Context", name: "Context", embedded: false, exported: true, typ: context.Context, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $String, tag: ""}]); + defaultPool.init("github.com/sirupsen/logrus", [{prop: "pool", name: "pool", embedded: false, exported: false, typ: ptrType$8, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytes.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = context.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = json.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = log.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + baseTimestamp = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil); + logrusPackage = ""; + minimumCallerDepth = 0; + callerInitOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); + bufferPool = $ifaceNil; + $pkg.AllLevels = new sliceType([0, 1, 2, 3, 4, 5, 6]); + std = New(); + $pkg.ErrorKey = "error"; + handlers = new sliceType$3([]); + $r = init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + init$1(); + init$2(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/token"] = (function() { + var $pkg = {}, $init, fmt, nosync, sort, strconv, atomic, unicode, utf8, Token, serializedFile, serializedFileSet, Position, Pos, File, lineInfo, FileSet, keywords, tokens, init, Lookup, IsExported, searchLineInfos, NewFileSet, searchFiles, searchInts; + fmt = $packages["fmt"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + atomic = $packages["sync/atomic"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Token = $newType(4, $kindInt, "token.Token", true, "go/token", true, null); + serializedFile = $newType(0, $kindStruct, "token.serializedFile", true, "go/token", false, function(Name_, Base_, Size_, Lines_, Infos_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.Base = 0; + this.Size = 0; + this.Lines = sliceType$2.nil; + this.Infos = sliceType$3.nil; + return; + } + this.Name = Name_; + this.Base = Base_; + this.Size = Size_; + this.Lines = Lines_; + this.Infos = Infos_; + }); + serializedFileSet = $newType(0, $kindStruct, "token.serializedFileSet", true, "go/token", false, function(Base_, Files_) { + this.$val = this; + if (arguments.length === 0) { + this.Base = 0; + this.Files = sliceType.nil; + return; + } + this.Base = Base_; + this.Files = Files_; + }); + Position = $newType(0, $kindStruct, "token.Position", true, "go/token", true, function(Filename_, Offset_, Line_, Column_) { + this.$val = this; + if (arguments.length === 0) { + this.Filename = ""; + this.Offset = 0; + this.Line = 0; + this.Column = 0; + return; + } + this.Filename = Filename_; + this.Offset = Offset_; + this.Line = Line_; + this.Column = Column_; + }); + Pos = $newType(4, $kindInt, "token.Pos", true, "go/token", true, null); + File = $newType(0, $kindStruct, "token.File", true, "go/token", true, function(name_, base_, size_, mutex_, lines_, infos_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.base = 0; + this.size = 0; + this.mutex = new nosync.Mutex.ptr(false, false, false, false, 0); + this.lines = sliceType$2.nil; + this.infos = sliceType$3.nil; + return; + } + this.name = name_; + this.base = base_; + this.size = size_; + this.mutex = mutex_; + this.lines = lines_; + this.infos = infos_; + }); + lineInfo = $newType(0, $kindStruct, "token.lineInfo", true, "go/token", false, function(Offset_, Filename_, Line_, Column_) { + this.$val = this; + if (arguments.length === 0) { + this.Offset = 0; + this.Filename = ""; + this.Line = 0; + this.Column = 0; + return; + } + this.Offset = Offset_; + this.Filename = Filename_; + this.Line = Line_; + this.Column = Column_; + }); + FileSet = $newType(0, $kindStruct, "token.FileSet", true, "go/token", true, function(mutex_, base_, files_, last_) { + this.$val = this; + if (arguments.length === 0) { + this.mutex = new nosync.RWMutex.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), false, false, false, false, 0, 0, 0); + this.base = 0; + this.files = sliceType$1.nil; + this.last = new atomic.Pointer[0 /* go/token.File */].ptr(ptrType.nil); + return; + } + this.mutex = mutex_; + this.base = base_; + this.files = files_; + this.last = last_; + }); + $pkg.Token = Token; + $pkg.serializedFile = serializedFile; + $pkg.serializedFileSet = serializedFileSet; + $pkg.Position = Position; + $pkg.Pos = Pos; + $pkg.File = File; + $pkg.lineInfo = lineInfo; + $pkg.FileSet = FileSet; + $pkg.$finishSetup = function() { + Token.prototype.String = function String() { + var s, tok; + tok = this.$val; + s = ""; + if (0 <= tok && tok < 89) { + s = ((tok < 0 || tok >= tokens.length) ? ($throwRuntimeError("index out of range"), undefined) : tokens[tok]); + } + if (s === "") { + s = "token(" + strconv.Itoa(((tok >> 0))) + ")"; + } + return s; + }; + $ptrType(Token).prototype.String = function(...$args) { return new Token(this.$get()).String(...$args); }; + Token.prototype.Precedence = function Precedence() { + var _1, op; + op = this.$val; + _1 = op; + if (_1 === (35)) { + return 1; + } else if (_1 === (34)) { + return 2; + } else if ((_1 === (39)) || (_1 === (44)) || (_1 === (40)) || (_1 === (45)) || (_1 === (41)) || (_1 === (46))) { + return 3; + } else if ((_1 === (12)) || (_1 === (13)) || (_1 === (18)) || (_1 === (19))) { + return 4; + } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16)) || (_1 === (20)) || (_1 === (21)) || (_1 === (17)) || (_1 === (22))) { + return 5; + } + return 0; + }; + $ptrType(Token).prototype.Precedence = function(...$args) { return new Token(this.$get()).Precedence(...$args); }; + init = function init$1() { + var _key, i; + keywords = new $global.Map(); + i = 61; + while (true) { + if (!(i < 86)) { break; } + _key = ((i < 0 || i >= tokens.length) ? ($throwRuntimeError("index out of range"), undefined) : tokens[i]); (keywords || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: i }); + i = i + (1) >> 0; + } + }; + Lookup = function Lookup$1(ident) { + var _entry, _tuple, ident, is_keyword, tok; + _tuple = (_entry = $mapIndex(keywords,$String.keyFor(ident)), _entry !== undefined ? [_entry.v, true] : [0, false]); + tok = _tuple[0]; + is_keyword = _tuple[1]; + if (is_keyword) { + return tok; + } + return 4; + }; + $pkg.Lookup = Lookup; + Token.prototype.IsLiteral = function IsLiteral() { + var tok; + tok = this.$val; + return 3 < tok && tok < 10; + }; + $ptrType(Token).prototype.IsLiteral = function(...$args) { return new Token(this.$get()).IsLiteral(...$args); }; + Token.prototype.IsOperator = function IsOperator() { + var tok; + tok = this.$val; + return (11 < tok && tok < 59) || (tok === 88); + }; + $ptrType(Token).prototype.IsOperator = function(...$args) { return new Token(this.$get()).IsOperator(...$args); }; + Token.prototype.IsKeyword = function IsKeyword$1() { + var tok; + tok = this.$val; + return 60 < tok && tok < 86; + }; + $ptrType(Token).prototype.IsKeyword = function(...$args) { return new Token(this.$get()).IsKeyword(...$args); }; + IsExported = function IsExported$1(name) { + var _tuple, ch, name; + _tuple = utf8.DecodeRuneInString(name); + ch = _tuple[0]; + return unicode.IsUpper(ch); + }; + $pkg.IsExported = IsExported; + $ptrType(FileSet).prototype.Read = function Read(decode) { + var {_r, decode, err, f, files, i, s, ss, x, $s, $r, $c} = $restore(this, {decode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ss = [ss]; + s = this; + ss[0] = new serializedFileSet.ptr(0, sliceType.nil); + _r = decode(ss[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + s.mutex.Lock(); + s.base = ss[0].Base; + files = $makeSlice(sliceType$1, ss[0].Files.$length); + i = 0; + while (true) { + if (!(i < ss[0].Files.$length)) { break; } + f = (x = ss[0].Files, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + ((i < 0 || i >= files.$length) ? ($throwRuntimeError("index out of range"), undefined) : files.$array[files.$offset + i] = new File.ptr(f.Name, f.Base, f.Size, new nosync.Mutex.ptr(false, false, false, false, 0), f.Lines, f.Infos)); + i = i + (1) >> 0; + } + s.files = files; + s.last.Store(ptrType.nil); + s.mutex.Unlock(); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Read, $c: true, $r, _r, decode, err, f, files, i, s, ss, x, $s};return $f; + }; + $ptrType(FileSet).prototype.Write = function Write(encode) { + var {$24r, _i, _r, _ref, encode, f, files, i, s, ss, $s, $r, $c} = $restore(this, {encode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + ss = new serializedFileSet.ptr(0, sliceType.nil); + s.mutex.Lock(); + ss.Base = s.base; + files = $makeSlice(sliceType, s.files.$length); + _ref = s.files; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + f.mutex.Lock(); + serializedFile.copy(((i < 0 || i >= files.$length) ? ($throwRuntimeError("index out of range"), undefined) : files.$array[files.$offset + i]), new serializedFile.ptr(f.name, f.base, f.size, $appendSlice((sliceType$2.nil), f.lines), $appendSlice((sliceType$3.nil), f.infos))); + f.mutex.Unlock(); + _i++; + } + ss.Files = files; + s.mutex.Unlock(); + _r = encode(new ss.constructor.elem(ss)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Write, $c: true, $r, $24r, _i, _r, _ref, encode, f, files, i, s, ss, $s};return $f; + }; + $ptrType(Position).prototype.IsValid = function IsValid() { + var pos; + pos = this; + return pos.Line > 0; + }; + $ptrType(Position).prototype.String = function String$1() { + var {_r, _r$1, pos, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pos = this; + s = pos.Filename; + /* */ if (pos.IsValid()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (pos.IsValid()) { */ case 1: + if (!(s === "")) { + s = s + (":"); + } + _r = fmt.Sprintf("%d", new sliceType$4([new $Int(pos.Line)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = s + (_r); + /* */ if (!((pos.Column === 0))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((pos.Column === 0))) { */ case 4: + _r$1 = fmt.Sprintf(":%d", new sliceType$4([new $Int(pos.Column)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + s = s + (_r$1); + /* } */ case 5: + /* } */ case 2: + if (s === "") { + s = "-"; + } + $s = -1; return s; + /* */ } return; } var $f = {$blk: String$1, $c: true, $r, _r, _r$1, pos, s, $s};return $f; + }; + Position.prototype.String = function(...$args) { return this.$val.String(...$args); }; + Pos.prototype.IsValid = function IsValid$1() { + var p; + p = this.$val; + return !((p === 0)); + }; + $ptrType(Pos).prototype.IsValid = function(...$args) { return new Pos(this.$get()).IsValid(...$args); }; + $ptrType(File).prototype.Name = function Name() { + var f; + f = this; + return f.name; + }; + $ptrType(File).prototype.Base = function Base() { + var f; + f = this; + return f.base; + }; + $ptrType(File).prototype.Size = function Size() { + var f; + f = this; + return f.size; + }; + $ptrType(File).prototype.LineCount = function LineCount() { + var f, n; + f = this; + f.mutex.Lock(); + n = f.lines.$length; + f.mutex.Unlock(); + return n; + }; + $ptrType(File).prototype.AddLine = function AddLine(offset) { + var f, i, offset, x, x$1; + f = this; + f.mutex.Lock(); + i = f.lines.$length; + if (((i === 0) || (x = f.lines, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) < offset) && offset < f.size) { + f.lines = $append(f.lines, offset); + } + f.mutex.Unlock(); + }; + $ptrType(File).prototype.MergeLine = function MergeLine(line) { + var {_r, _r$1, f, line, $s, $deferred, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + f = this; + /* */ if (line < 1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (line < 1) { */ case 1: + _r = fmt.Sprintf("invalid line number %d (should be >= 1)", new sliceType$4([new $Int(line)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); + /* } */ case 2: + f.mutex.Lock(); + $deferred.push([$methodVal(f.mutex, "Unlock"), []]); + /* */ if (line >= f.lines.$length) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (line >= f.lines.$length) { */ case 4: + _r$1 = fmt.Sprintf("invalid line number %d (should be < %d)", new sliceType$4([new $Int(line), new $Int(f.lines.$length)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 5: + $copySlice($subslice(f.lines, line), $subslice(f.lines, (line + 1 >> 0))); + f.lines = $subslice(f.lines, 0, (f.lines.$length - 1 >> 0)); + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: MergeLine, $c: true, $r, _r, _r$1, f, line, $s, $deferred};return $f; } } + }; + $ptrType(File).prototype.SetLines = function SetLines(lines) { + var _i, _ref, f, i, lines, offset, size, x; + f = this; + size = f.size; + _ref = lines; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + offset = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0 && offset <= (x = i - 1 >> 0, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x])) || size <= offset) { + return false; + } + _i++; + } + f.mutex.Lock(); + f.lines = lines; + f.mutex.Unlock(); + return true; + }; + $ptrType(File).prototype.SetLinesForContent = function SetLinesForContent(content) { + var _i, _ref, b, content, f, line, lines, offset; + f = this; + lines = sliceType$2.nil; + line = 0; + _ref = content; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + offset = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (line >= 0) { + lines = $append(lines, line); + } + line = -1; + if (b === 10) { + line = offset + 1 >> 0; + } + _i++; + } + f.mutex.Lock(); + f.lines = lines; + f.mutex.Unlock(); + }; + $ptrType(File).prototype.LineStart = function LineStart(line) { + var {_r, _r$1, f, line, x, x$1, $s, $deferred, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + f = this; + /* */ if (line < 1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (line < 1) { */ case 1: + _r = fmt.Sprintf("invalid line number %d (should be >= 1)", new sliceType$4([new $Int(line)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); + /* } */ case 2: + f.mutex.Lock(); + $deferred.push([$methodVal(f.mutex, "Unlock"), []]); + /* */ if (line > f.lines.$length) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (line > f.lines.$length) { */ case 4: + _r$1 = fmt.Sprintf("invalid line number %d (should be < %d)", new sliceType$4([new $Int(line), new $Int(f.lines.$length)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 5: + $s = -1; return (((f.base + (x = f.lines, x$1 = line - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0) >> 0)); + /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: LineStart, $c: true, $r, _r, _r$1, f, line, x, x$1, $s, $deferred};return $f; } } + }; + $ptrType(File).prototype.AddLineInfo = function AddLineInfo(offset, filename, line) { + var f, filename, line, offset; + f = this; + f.AddLineColumnInfo(offset, filename, line, 1); + }; + $ptrType(File).prototype.AddLineColumnInfo = function AddLineColumnInfo(offset, filename, line, column) { + var column, f, filename, i, line, offset, x, x$1; + f = this; + f.mutex.Lock(); + i = f.infos.$length; + if ((i === 0) || (x = f.infos, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Offset < offset && offset < f.size) { + f.infos = $append(f.infos, new lineInfo.ptr(offset, filename, line, column)); + } + f.mutex.Unlock(); + }; + $ptrType(File).prototype.Pos = function Pos$1(offset) { + var {_r, f, offset, $s, $r, $c} = $restore(this, {offset}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + /* */ if (offset > f.size) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (offset > f.size) { */ case 1: + _r = fmt.Sprintf("invalid file offset %d (should be <= %d)", new sliceType$4([new $Int(offset), new $Int(f.size)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); + /* } */ case 2: + $s = -1; return (((f.base + offset >> 0) >> 0)); + /* */ } return; } var $f = {$blk: Pos$1, $c: true, $r, _r, f, offset, $s};return $f; + }; + $ptrType(File).prototype.Offset = function Offset(p) { + var {_r, f, p, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + /* */ if (((p >> 0)) < f.base || ((p >> 0)) > (f.base + f.size >> 0)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (((p >> 0)) < f.base || ((p >> 0)) > (f.base + f.size >> 0)) { */ case 1: + _r = fmt.Sprintf("invalid Pos value %d (should be in [%d, %d])", new sliceType$4([new Pos(p), new $Int(f.base), new $Int((f.base + f.size >> 0))])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); + /* } */ case 2: + $s = -1; return ((p >> 0)) - f.base >> 0; + /* */ } return; } var $f = {$blk: Offset, $c: true, $r, _r, f, p, $s};return $f; + }; + $ptrType(File).prototype.Line = function Line(p) { + var {$24r, _r, f, p, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + _r = f.Position(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r.Line; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Line, $c: true, $r, $24r, _r, f, p, $s};return $f; + }; + searchLineInfos = function searchLineInfos$1(a, x) { + var {$24r, _r, a, x, $s, $r, $c} = $restore(this, {a, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = [a]; + x = [x]; + _r = sort.Search(a[0].$length, (function(a, x) { return function searchLineInfos·func1(i) { + var i; + return ((i < 0 || i >= a[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : a[0].$array[a[0].$offset + i]).Offset > x[0]; + }; })(a, x)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r - 1 >> 0; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: searchLineInfos$1, $c: true, $r, $24r, _r, a, x, $s};return $f; + }; + $ptrType(File).prototype.unpack = function unpack(offset, adjusted) { + var {_r, _tmp, _tmp$1, adjusted, alt, column, d, f, filename, i, i$1, i$2, line, offset, x, x$1, $s, $deferred, $r, $c} = $restore(this, {offset, adjusted}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + filename = ""; + line = 0; + column = 0; + f = this; + f.mutex.Lock(); + $deferred.push([$methodVal(f.mutex, "Unlock"), []]); + filename = f.name; + i = searchInts(f.lines, offset); + if (i >= 0) { + _tmp = i + 1 >> 0; + _tmp$1 = (offset - (x = f.lines, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])) >> 0) + 1 >> 0; + line = _tmp; + column = _tmp$1; + } + /* */ if (adjusted && f.infos.$length > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (adjusted && f.infos.$length > 0) { */ case 1: + _r = searchLineInfos(f.infos, offset); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i$1 = _r; + if (i$1 >= 0) { + alt = (x$1 = f.infos, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])); + filename = alt.Filename; + i$2 = searchInts(f.lines, alt.Offset); + if (i$2 >= 0) { + d = line - ((i$2 + 1 >> 0)) >> 0; + line = alt.Line + d >> 0; + if (alt.Column === 0) { + column = 0; + } else if (d === 0) { + column = alt.Column + ((offset - alt.Offset >> 0)) >> 0; + } + } + } + /* } */ case 2: + $s = -1; return [filename, line, column]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [filename, line, column]; } if($curGoroutine.asleep) { var $f = {$blk: unpack, $c: true, $r, _r, _tmp, _tmp$1, adjusted, alt, column, d, f, filename, i, i$1, i$2, line, offset, x, x$1, $s, $deferred};return $f; } } + }; + $ptrType(File).prototype.position = function position(p, adjusted) { + var {_r, _tuple, adjusted, f, offset, p, pos, $s, $r, $c} = $restore(this, {p, adjusted}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pos = new Position.ptr("", 0, 0, 0); + f = this; + offset = ((p >> 0)) - f.base >> 0; + pos.Offset = offset; + _r = f.unpack(offset, adjusted); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + pos.Filename = _tuple[0]; + pos.Line = _tuple[1]; + pos.Column = _tuple[2]; + $s = -1; return pos; + /* */ } return; } var $f = {$blk: position, $c: true, $r, _r, _tuple, adjusted, f, offset, p, pos, $s};return $f; + }; + $ptrType(File).prototype.PositionFor = function PositionFor(p, adjusted) { + var {_r, _r$1, adjusted, f, p, pos, $s, $r, $c} = $restore(this, {p, adjusted}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pos = new Position.ptr("", 0, 0, 0); + f = this; + /* */ if (!((p === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((p === 0))) { */ case 1: + /* */ if (((p >> 0)) < f.base || ((p >> 0)) > (f.base + f.size >> 0)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (((p >> 0)) < f.base || ((p >> 0)) > (f.base + f.size >> 0)) { */ case 3: + _r = fmt.Sprintf("invalid Pos value %d (should be in [%d, %d])", new sliceType$4([new Pos(p), new $Int(f.base), new $Int((f.base + f.size >> 0))])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); + /* } */ case 4: + _r$1 = f.position(p, adjusted); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + Position.copy(pos, _r$1); + /* } */ case 2: + $s = -1; return pos; + /* */ } return; } var $f = {$blk: PositionFor, $c: true, $r, _r, _r$1, adjusted, f, p, pos, $s};return $f; + }; + $ptrType(File).prototype.Position = function Position$1(p) { + var {$24r, _r, f, p, pos, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pos = new Position.ptr("", 0, 0, 0); + f = this; + _r = f.PositionFor(p, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + Position.copy(pos, _r); + $24r = pos; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Position$1, $c: true, $r, $24r, _r, f, p, pos, $s};return $f; + }; + NewFileSet = function NewFileSet$1() { + return new FileSet.ptr(new nosync.RWMutex.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), false, false, false, false, 0, 0, 0), 1, sliceType$1.nil, new atomic.Pointer[0 /* go/token.File */].ptr(ptrType.nil)); + }; + $pkg.NewFileSet = NewFileSet; + $ptrType(FileSet).prototype.Base = function Base$1() { + var b, s; + s = this; + s.mutex.RLock(); + b = s.base; + s.mutex.RUnlock(); + return b; + }; + $ptrType(FileSet).prototype.AddFile = function AddFile(filename, base, size) { + var {_r, _r$1, base, f, filename, s, size, $s, $deferred, $r, $c} = $restore(this, {filename, base, size}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + s = this; + f = new File.ptr(filename, 0, size, new nosync.Mutex.ptr(false, false, false, false, 0), new sliceType$2([0]), sliceType$3.nil); + s.mutex.Lock(); + $deferred.push([$methodVal(s.mutex, "Unlock"), []]); + if (base < 0) { + base = s.base; + } + /* */ if (base < s.base) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (base < s.base) { */ case 1: + _r = fmt.Sprintf("invalid base %d (should be >= %d)", new sliceType$4([new $Int(base), new $Int(s.base)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); + /* } */ case 2: + f.base = base; + /* */ if (size < 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (size < 0) { */ case 4: + _r$1 = fmt.Sprintf("invalid size %d (should be >= 0)", new sliceType$4([new $Int(size)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 5: + base = base + ((size + 1 >> 0)) >> 0; + if (base < 0) { + $panic(new $String("token.Pos offset overflow (> 2G of source code in file set)")); + } + s.base = base; + s.files = $append(s.files, f); + s.last.Store(f); + $s = -1; return f; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: AddFile, $c: true, $r, _r, _r$1, base, f, filename, s, size, $s, $deferred};return $f; } } + }; + $ptrType(FileSet).prototype.Iterate = function Iterate(f) { + var {_r, _v, f, file, i, s, x, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + i = 0; + /* while (true) { */ case 1: + file = ptrType.nil; + s.mutex.RLock(); + if (i < s.files.$length) { + file = (x = s.files, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + } + s.mutex.RUnlock(); + if (file === ptrType.nil) { _v = true; $s = 5; continue s; } + _r = f(file); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = !_r; case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + /* break; */ $s = 2; continue; + /* } */ case 4: + i = i + (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Iterate, $c: true, $r, _r, _v, f, file, i, s, x, $s};return $f; + }; + searchFiles = function searchFiles$1(a, x) { + var {$24r, _r, a, x, $s, $r, $c} = $restore(this, {a, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = [a]; + x = [x]; + _r = sort.Search(a[0].$length, (function(a, x) { return function searchFiles·func1(i) { + var i; + return ((i < 0 || i >= a[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : a[0].$array[a[0].$offset + i]).base > x[0]; + }; })(a, x)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r - 1 >> 0; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: searchFiles$1, $c: true, $r, $24r, _r, a, x, $s};return $f; + }; + $ptrType(FileSet).prototype.file = function file(p) { + var {_r, f, f$1, i, p, s, x, $s, $deferred, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + s = this; + f = s.last.Load(); + if (!(f === ptrType.nil) && f.base <= ((p >> 0)) && ((p >> 0)) <= (f.base + f.size >> 0)) { + $s = -1; return f; + } + s.mutex.RLock(); + $deferred.push([$methodVal(s.mutex, "RUnlock"), []]); + _r = searchFiles(s.files, ((p >> 0))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + if (i >= 0) { + f$1 = (x = s.files, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if (((p >> 0)) <= (f$1.base + f$1.size >> 0)) { + s.last.Store(f$1); + $s = -1; return f$1; + } + } + $s = -1; return ptrType.nil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: file, $c: true, $r, _r, f, f$1, i, p, s, x, $s, $deferred};return $f; } } + }; + $ptrType(FileSet).prototype.File = function File$1(p) { + var {_r, f, p, s, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = ptrType.nil; + s = this; + /* */ if (!((p === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((p === 0))) { */ case 1: + _r = s.file(p); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + f = _r; + /* } */ case 2: + $s = -1; return f; + /* */ } return; } var $f = {$blk: File$1, $c: true, $r, _r, f, p, s, $s};return $f; + }; + $ptrType(FileSet).prototype.PositionFor = function PositionFor$1(p, adjusted) { + var {$24r, _r, _r$1, adjusted, f, p, pos, s, $s, $r, $c} = $restore(this, {p, adjusted}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pos = new Position.ptr("", 0, 0, 0); + s = this; + /* */ if (!((p === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((p === 0))) { */ case 1: + _r = s.file(p); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + f = _r; + /* */ if (!(f === ptrType.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(f === ptrType.nil)) { */ case 4: + _r$1 = f.position(p, adjusted); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + Position.copy(pos, _r$1); + $24r = pos; + $s = 7; case 7: return $24r; + /* } */ case 5: + /* } */ case 2: + $s = -1; return pos; + /* */ } return; } var $f = {$blk: PositionFor$1, $c: true, $r, $24r, _r, _r$1, adjusted, f, p, pos, s, $s};return $f; + }; + $ptrType(FileSet).prototype.Position = function Position$2(p) { + var {$24r, _r, p, pos, s, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pos = new Position.ptr("", 0, 0, 0); + s = this; + _r = s.PositionFor(p, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + Position.copy(pos, _r); + $24r = pos; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Position$2, $c: true, $r, $24r, _r, p, pos, s, $s};return $f; + }; + searchInts = function searchInts$1(a, x) { + var _tmp, _tmp$1, a, h, i, j, x; + _tmp = 0; + _tmp$1 = a.$length; + i = _tmp; + j = _tmp$1; + while (true) { + if (!(i < j)) { break; } + h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) <= x) { + i = h + 1 >> 0; + } else { + j = h; + } + } + return i - 1 >> 0; + }; + Token.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Precedence", name: "Precedence", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "IsLiteral", name: "IsLiteral", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsOperator", name: "IsOperator", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsKeyword", name: "IsKeyword", pkg: "", typ: $funcType([], [$Bool], false)}]; + Position.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}]; + Pos.methods = [{prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Base", name: "Base", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "LineCount", name: "LineCount", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AddLine", name: "AddLine", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "MergeLine", name: "MergeLine", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLines", name: "SetLines", pkg: "", typ: $funcType([sliceType$2], [$Bool], false)}, {prop: "SetLinesForContent", name: "SetLinesForContent", pkg: "", typ: $funcType([sliceType$5], [], false)}, {prop: "LineStart", name: "LineStart", pkg: "", typ: $funcType([$Int], [Pos], false)}, {prop: "AddLineInfo", name: "AddLineInfo", pkg: "", typ: $funcType([$Int, $String, $Int], [], false)}, {prop: "AddLineColumnInfo", name: "AddLineColumnInfo", pkg: "", typ: $funcType([$Int, $String, $Int, $Int], [], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([$Int], [Pos], false)}, {prop: "Offset", name: "Offset", pkg: "", typ: $funcType([Pos], [$Int], false)}, {prop: "Line", name: "Line", pkg: "", typ: $funcType([Pos], [$Int], false)}, {prop: "unpack", name: "unpack", pkg: "go/token", typ: $funcType([$Int, $Bool], [$String, $Int, $Int], false)}, {prop: "position", name: "position", pkg: "go/token", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "PositionFor", name: "PositionFor", pkg: "", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "Position", name: "Position", pkg: "", typ: $funcType([Pos], [Position], false)}]; + ptrType$2.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Base", name: "Base", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AddFile", name: "AddFile", pkg: "", typ: $funcType([$String, $Int, $Int], [ptrType], false)}, {prop: "Iterate", name: "Iterate", pkg: "", typ: $funcType([funcType$1], [], false)}, {prop: "file", name: "file", pkg: "go/token", typ: $funcType([Pos], [ptrType], false)}, {prop: "File", name: "File", pkg: "", typ: $funcType([Pos], [ptrType], false)}, {prop: "PositionFor", name: "PositionFor", pkg: "", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "Position", name: "Position", pkg: "", typ: $funcType([Pos], [Position], false)}]; + serializedFile.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Base", name: "Base", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Size", name: "Size", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Lines", name: "Lines", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "Infos", name: "Infos", embedded: false, exported: true, typ: sliceType$3, tag: ""}]); + serializedFileSet.init("", [{prop: "Base", name: "Base", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Files", name: "Files", embedded: false, exported: true, typ: sliceType, tag: ""}]); + Position.init("", [{prop: "Filename", name: "Filename", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Line", name: "Line", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Column", name: "Column", embedded: false, exported: true, typ: $Int, tag: ""}]); + File.init("go/token", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "base", name: "base", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "lines", name: "lines", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "infos", name: "infos", embedded: false, exported: false, typ: sliceType$3, tag: ""}]); + lineInfo.init("", [{prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Filename", name: "Filename", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Line", name: "Line", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Column", name: "Column", embedded: false, exported: true, typ: $Int, tag: ""}]); + FileSet.init("go/token", [{prop: "mutex", name: "mutex", embedded: false, exported: false, typ: nosync.RWMutex, tag: ""}, {prop: "base", name: "base", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "files", name: "files", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: atomic.Pointer[0 /* go/token.File */], tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + keywords = false; + tokens = $toNativeArray($kindString, ["ILLEGAL", "EOF", "COMMENT", "", "IDENT", "INT", "FLOAT", "IMAG", "CHAR", "STRING", "", "", "+", "-", "*", "/", "%", "&", "|", "^", "<<", ">>", "&^", "+=", "-=", "*=", "/=", "%=", "&=", "|=", "^=", "<<=", ">>=", "&^=", "&&", "||", "<-", "++", "--", "==", "<", ">", "=", "!", "!=", "<=", ">=", ":=", "...", "(", "[", "{", ",", ".", ")", "]", "}", ";", ":", "", "", "break", "case", "chan", "const", "continue", "default", "defer", "else", "fallthrough", "for", "func", "go", "goto", "if", "import", "interface", "map", "package", "range", "return", "select", "struct", "switch", "type", "var", "", "", "~"]); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["path/filepath"] = (function() { + var $pkg = {}, $init, errors, fs, os, runtime, sort, strings, syscall, utf8, lazybuf, evalSymlinks, walkSymlinks, IsAbs, volumeNameLen, splitList, abs, join, Clean, ToSlash, FromSlash, SplitList, Split, Join, EvalSymlinks, Abs, unixAbs, Base, Dir, VolumeName; + errors = $packages["errors"]; + fs = $packages["io/fs"]; + os = $packages["os"]; + runtime = $packages["runtime"]; + sort = $packages["sort"]; + strings = $packages["strings"]; + syscall = $packages["syscall"]; + utf8 = $packages["unicode/utf8"]; + lazybuf = $newType(0, $kindStruct, "filepath.lazybuf", true, "path/filepath", false, function(path_, buf_, w_, volAndPath_, volLen_) { + this.$val = this; + if (arguments.length === 0) { + this.path = ""; + this.buf = sliceType$1.nil; + this.w = 0; + this.volAndPath = ""; + this.volLen = 0; + return; + } + this.path = path_; + this.buf = buf_; + this.w = w_; + this.volAndPath = volAndPath_; + this.volLen = volLen_; + }); + $pkg.lazybuf = lazybuf; + $pkg.$finishSetup = function() { + evalSymlinks = function evalSymlinks$1(path) { + var {$24r, _r, path, $s, $r, $c} = $restore(this, {path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = walkSymlinks(path); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: evalSymlinks$1, $c: true, $r, $24r, _r, path, $s};return $f; + }; + walkSymlinks = function walkSymlinks$1(path) { + var {_r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tuple, _tuple$1, dest, end, err, fi, isWindowsDot, link, linksWalked, path, pathSeparator, r, r$1, start, v, vol, volLen, $s, $r, $c} = $restore(this, {path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + volLen = volumeNameLen(path); + pathSeparator = "/"; + if (volLen < path.length && os.IsPathSeparator(path.charCodeAt(volLen))) { + volLen = volLen + (1) >> 0; + } + vol = $substring(path, 0, volLen); + dest = vol; + linksWalked = 0; + _tmp = volLen; + _tmp$1 = volLen; + start = _tmp; + end = _tmp$1; + /* while (true) { */ case 1: + /* if (!(start < path.length)) { break; } */ if(!(start < path.length)) { $s = 2; continue; } + while (true) { + if (!(start < path.length && os.IsPathSeparator(path.charCodeAt(start)))) { break; } + start = start + (1) >> 0; + } + end = start; + while (true) { + if (!(end < path.length && !os.IsPathSeparator(path.charCodeAt(end)))) { break; } + end = end + (1) >> 0; + } + isWindowsDot = false && $substring(path, volumeNameLen(path)) === "."; + if (end === start) { + /* break; */ $s = 2; continue; + } else if ($substring(path, start, end) === "." && !isWindowsDot) { + start = end; + /* continue; */ $s = 1; continue; + } else if ($substring(path, start, end) === "..") { + r = 0; + r = dest.length - 1 >> 0; + while (true) { + if (!(r >= volLen)) { break; } + if (os.IsPathSeparator(dest.charCodeAt(r))) { + break; + } + r = r - (1) >> 0; + } + if (r < volLen || $substring(dest, (r + 1 >> 0)) === "..") { + if (dest.length > volLen) { + dest = dest + (pathSeparator); + } + dest = dest + (".."); + } else { + dest = $substring(dest, 0, r); + } + start = end; + /* continue; */ $s = 1; continue; + } + if (dest.length > volumeNameLen(dest) && !os.IsPathSeparator(dest.charCodeAt((dest.length - 1 >> 0)))) { + dest = dest + (pathSeparator); + } + dest = dest + ($substring(path, start, end)); + _r = os.Lstat(dest); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + fi = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return ["", err]; + } + _r$1 = fi.Mode(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (((_r$1 & 134217728) >>> 0) === 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (((_r$1 & 134217728) >>> 0) === 0) { */ case 4: + _r$2 = fi.Mode(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = new fs.FileMode(_r$2).IsDir(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3 && end < path.length) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$3 && end < path.length) { */ case 7: + $s = -1; return ["", new syscall.Errno(20)]; + /* } */ case 8: + start = end; + /* continue; */ $s = 1; continue; + /* } */ case 5: + linksWalked = linksWalked + (1) >> 0; + if (linksWalked > 255) { + $s = -1; return ["", errors.New("EvalSymlinks: too many links")]; + } + _r$4 = os.Readlink(dest); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + link = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return ["", err]; + } + if (isWindowsDot && !IsAbs(link)) { + /* break; */ $s = 2; continue; + } + path = link + $substring(path, end); + v = volumeNameLen(link); + if (v > 0) { + if (v < link.length && os.IsPathSeparator(link.charCodeAt(v))) { + v = v + (1) >> 0; + } + vol = $substring(link, 0, v); + dest = vol; + end = vol.length; + } else if (link.length > 0 && os.IsPathSeparator(link.charCodeAt(0))) { + dest = $substring(link, 0, 1); + end = 1; + } else { + r$1 = 0; + r$1 = dest.length - 1 >> 0; + while (true) { + if (!(r$1 >= volLen)) { break; } + if (os.IsPathSeparator(dest.charCodeAt(r$1))) { + break; + } + r$1 = r$1 - (1) >> 0; + } + if (r$1 < volLen) { + dest = vol; + } else { + dest = $substring(dest, 0, r$1); + } + end = 0; + } + start = end; + $s = 1; continue; + case 2: + $s = -1; return [Clean(dest), $ifaceNil]; + /* */ } return; } var $f = {$blk: walkSymlinks$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tuple, _tuple$1, dest, end, err, fi, isWindowsDot, link, linksWalked, path, pathSeparator, r, r$1, start, v, vol, volLen, $s};return $f; + }; + IsAbs = function IsAbs$1(path) { + var path; + return strings.HasPrefix(path, "/"); + }; + $pkg.IsAbs = IsAbs; + volumeNameLen = function volumeNameLen$1(path) { + var path; + return 0; + }; + splitList = function splitList$1(path) { + var path; + if (path === "") { + return new sliceType([]); + } + return strings.Split(path, ":"); + }; + abs = function abs$1(path) { + var {$24r, _r, path, $s, $r, $c} = $restore(this, {path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = unixAbs(path); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: abs$1, $c: true, $r, $24r, _r, path, $s};return $f; + }; + join = function join$1(elem) { + var _i, _ref, e, elem, i; + _ref = elem; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(e === "")) { + return Clean(strings.Join($subslice(elem, i), "/")); + } + _i++; + } + return ""; + }; + $ptrType(lazybuf).prototype.index = function index(i) { + var b, i, x; + b = this; + if (!(b.buf === sliceType$1.nil)) { + return (x = b.buf, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + } + return b.path.charCodeAt(i); + }; + $ptrType(lazybuf).prototype.append = function append(c) { + var b, c, x, x$1; + b = this; + if (b.buf === sliceType$1.nil) { + if (b.w < b.path.length && (b.path.charCodeAt(b.w) === c)) { + b.w = b.w + (1) >> 0; + return; + } + b.buf = $makeSlice(sliceType$1, b.path.length); + $copyString(b.buf, $substring(b.path, 0, b.w)); + } + (x = b.buf, x$1 = b.w, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1] = c)); + b.w = b.w + (1) >> 0; + }; + $ptrType(lazybuf).prototype.string = function string() { + var b; + b = this; + if (b.buf === sliceType$1.nil) { + return $substring(b.volAndPath, 0, (b.volLen + b.w >> 0)); + } + return $substring(b.volAndPath, 0, b.volLen) + ($bytesToString($subslice(b.buf, 0, b.w))); + }; + Clean = function Clean$1(path) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, dotdot, i, n, originalPath, out, path, r, rooted, volLen; + originalPath = path; + volLen = volumeNameLen(path); + path = $substring(path, volLen); + if (path === "") { + if (volLen > 1 && !((originalPath.charCodeAt(1) === 58))) { + return FromSlash(originalPath); + } + return originalPath + "."; + } + rooted = os.IsPathSeparator(path.charCodeAt(0)); + n = path.length; + out = new lazybuf.ptr(path, sliceType$1.nil, 0, originalPath, volLen); + _tmp = 0; + _tmp$1 = 0; + r = _tmp; + dotdot = _tmp$1; + if (rooted) { + out.append(47); + _tmp$2 = 1; + _tmp$3 = 1; + r = _tmp$2; + dotdot = _tmp$3; + } + while (true) { + if (!(r < n)) { break; } + if (os.IsPathSeparator(path.charCodeAt(r))) { + r = r + (1) >> 0; + } else if ((path.charCodeAt(r) === 46) && (((r + 1 >> 0) === n) || os.IsPathSeparator(path.charCodeAt((r + 1 >> 0))))) { + r = r + (1) >> 0; + } else if ((path.charCodeAt(r) === 46) && (path.charCodeAt((r + 1 >> 0)) === 46) && (((r + 2 >> 0) === n) || os.IsPathSeparator(path.charCodeAt((r + 2 >> 0))))) { + r = r + (2) >> 0; + if (out.w > dotdot) { + out.w = out.w - (1) >> 0; + while (true) { + if (!(out.w > dotdot && !os.IsPathSeparator(out.index(out.w)))) { break; } + out.w = out.w - (1) >> 0; + } + } else if (!rooted) { + if (out.w > 0) { + out.append(47); + } + out.append(46); + out.append(46); + dotdot = out.w; + } + } else { + if (rooted && !((out.w === 1)) || !rooted && !((out.w === 0))) { + out.append(47); + } + if (false && (out.w === 0) && (out.volLen === 0) && !((r === 0))) { + i = r; + while (true) { + if (!(i < n && !os.IsPathSeparator(path.charCodeAt(i)))) { break; } + if (path.charCodeAt(i) === 58) { + out.append(46); + out.append(47); + break; + } + i = i + (1) >> 0; + } + } + while (true) { + if (!(r < n && !os.IsPathSeparator(path.charCodeAt(r)))) { break; } + out.append(path.charCodeAt(r)); + r = r + (1) >> 0; + } + } + } + if (out.w === 0) { + out.append(46); + } + return FromSlash(out.string()); + }; + $pkg.Clean = Clean; + ToSlash = function ToSlash$1(path) { + var path; + if (true) { + return path; + } + return strings.ReplaceAll(path, "/", "/"); + }; + $pkg.ToSlash = ToSlash; + FromSlash = function FromSlash$1(path) { + var path; + if (true) { + return path; + } + return strings.ReplaceAll(path, "/", "/"); + }; + $pkg.FromSlash = FromSlash; + SplitList = function SplitList$1(path) { + var path; + return splitList(path); + }; + $pkg.SplitList = SplitList; + Split = function Split$1(path) { + var _tmp, _tmp$1, dir, file, i, path, vol; + dir = ""; + file = ""; + vol = VolumeName(path); + i = path.length - 1 >> 0; + while (true) { + if (!(i >= vol.length && !os.IsPathSeparator(path.charCodeAt(i)))) { break; } + i = i - (1) >> 0; + } + _tmp = $substring(path, 0, (i + 1 >> 0)); + _tmp$1 = $substring(path, (i + 1 >> 0)); + dir = _tmp; + file = _tmp$1; + return [dir, file]; + }; + $pkg.Split = Split; + Join = function Join$1(elem) { + var elem; + return join(elem); + }; + $pkg.Join = Join; + EvalSymlinks = function EvalSymlinks$1(path) { + var {$24r, _r, path, $s, $r, $c} = $restore(this, {path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = evalSymlinks(path); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: EvalSymlinks$1, $c: true, $r, $24r, _r, path, $s};return $f; + }; + $pkg.EvalSymlinks = EvalSymlinks; + Abs = function Abs$1(path) { + var {$24r, _r, path, $s, $r, $c} = $restore(this, {path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = abs(path); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Abs$1, $c: true, $r, $24r, _r, path, $s};return $f; + }; + $pkg.Abs = Abs; + unixAbs = function unixAbs$1(path) { + var {_r, _tuple, err, path, wd, $s, $r, $c} = $restore(this, {path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (IsAbs(path)) { + $s = -1; return [Clean(path), $ifaceNil]; + } + _r = os.Getwd(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + wd = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return ["", err]; + } + $s = -1; return [Join(new sliceType([wd, path])), $ifaceNil]; + /* */ } return; } var $f = {$blk: unixAbs$1, $c: true, $r, _r, _tuple, err, path, wd, $s};return $f; + }; + Base = function Base$1(path) { + var i, path; + if (path === "") { + return "."; + } + while (true) { + if (!(path.length > 0 && os.IsPathSeparator(path.charCodeAt((path.length - 1 >> 0))))) { break; } + path = $substring(path, 0, (path.length - 1 >> 0)); + } + path = $substring(path, VolumeName(path).length); + i = path.length - 1 >> 0; + while (true) { + if (!(i >= 0 && !os.IsPathSeparator(path.charCodeAt(i)))) { break; } + i = i - (1) >> 0; + } + if (i >= 0) { + path = $substring(path, (i + 1 >> 0)); + } + if (path === "") { + return "/"; + } + return path; + }; + $pkg.Base = Base; + Dir = function Dir$1(path) { + var dir, i, path, vol; + vol = VolumeName(path); + i = path.length - 1 >> 0; + while (true) { + if (!(i >= vol.length && !os.IsPathSeparator(path.charCodeAt(i)))) { break; } + i = i - (1) >> 0; + } + dir = Clean($substring(path, vol.length, (i + 1 >> 0))); + if (dir === "." && vol.length > 2) { + return vol; + } + return vol + dir; + }; + $pkg.Dir = Dir; + VolumeName = function VolumeName$1(path) { + var path; + return $substring(path, 0, volumeNameLen(path)); + }; + $pkg.VolumeName = VolumeName; + ptrType.methods = [{prop: "index", name: "index", pkg: "path/filepath", typ: $funcType([$Int], [$Uint8], false)}, {prop: "append", name: "append", pkg: "path/filepath", typ: $funcType([$Uint8], [], false)}, {prop: "string", name: "string", pkg: "path/filepath", typ: $funcType([], [$String], false)}]; + lazybuf.init("path/filepath", [{prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "volAndPath", name: "volAndPath", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "volLen", name: "volLen", embedded: false, exported: false, typ: $Int, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrBadPattern = errors.New("syntax error in pattern"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/scanner"] = (function() { + var $pkg = {}, $init, bytes, fmt, token, io, filepath, sort, strconv, unicode, utf8, ErrorHandler, Scanner, Mode, Error, ErrorList, prefix, trailingDigits, isLetter, isDigit, digitVal, lower, isDecimal, isHex, litname, invalidSep, stripCR; + bytes = $packages["bytes"]; + fmt = $packages["fmt"]; + token = $packages["go/token"]; + io = $packages["io"]; + filepath = $packages["path/filepath"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + ErrorHandler = $newType(4, $kindFunc, "scanner.ErrorHandler", true, "go/scanner", true, null); + Scanner = $newType(0, $kindStruct, "scanner.Scanner", true, "go/scanner", true, function(file_, dir_, src_, err_, mode_, ch_, offset_, rdOffset_, lineOffset_, insertSemi_, ErrorCount_) { + this.$val = this; + if (arguments.length === 0) { + this.file = ptrType$1.nil; + this.dir = ""; + this.src = sliceType.nil; + this.err = $throwNilPointerError; + this.mode = 0; + this.ch = 0; + this.offset = 0; + this.rdOffset = 0; + this.lineOffset = 0; + this.insertSemi = false; + this.ErrorCount = 0; + return; + } + this.file = file_; + this.dir = dir_; + this.src = src_; + this.err = err_; + this.mode = mode_; + this.ch = ch_; + this.offset = offset_; + this.rdOffset = rdOffset_; + this.lineOffset = lineOffset_; + this.insertSemi = insertSemi_; + this.ErrorCount = ErrorCount_; + }); + Mode = $newType(4, $kindUint, "scanner.Mode", true, "go/scanner", true, null); + Error = $newType(0, $kindStruct, "scanner.Error", true, "go/scanner", true, function(Pos_, Msg_) { + this.$val = this; + if (arguments.length === 0) { + this.Pos = new token.Position.ptr("", 0, 0, 0); + this.Msg = ""; + return; + } + this.Pos = Pos_; + this.Msg = Msg_; + }); + ErrorList = $newType(12, $kindSlice, "scanner.ErrorList", true, "go/scanner", true, null); + $pkg.ErrorHandler = ErrorHandler; + $pkg.Scanner = Scanner; + $pkg.Mode = Mode; + $pkg.Error = Error; + $pkg.ErrorList = ErrorList; + $pkg.$finishSetup = function() { + $ptrType(Scanner).prototype.next = function next() { + var {_tmp, _tmp$1, _tuple, r, s, w, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (s.rdOffset < s.src.$length) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (s.rdOffset < s.src.$length) { */ case 1: + s.offset = s.rdOffset; + if (s.ch === 10) { + s.lineOffset = s.offset; + s.file.AddLine(s.offset); + } + _tmp = (((x = s.src, x$1 = s.rdOffset, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0)); + _tmp$1 = 1; + r = _tmp; + w = _tmp$1; + /* */ if ((r === 0)) { $s = 5; continue; } + /* */ if (r >= 128) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((r === 0)) { */ case 5: + $r = s.error(s.offset, "illegal character NUL"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else if (r >= 128) { */ case 6: + _tuple = utf8.DecodeRune($subslice(s.src, s.rdOffset)); + r = _tuple[0]; + w = _tuple[1]; + /* */ if ((r === 65533) && (w === 1)) { $s = 9; continue; } + /* */ if ((r === 65279) && s.offset > 0) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((r === 65533) && (w === 1)) { */ case 9: + $r = s.error(s.offset, "illegal UTF-8 encoding"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 11; continue; + /* } else if ((r === 65279) && s.offset > 0) { */ case 10: + $r = s.error(s.offset, "illegal byte order mark"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + /* } */ case 7: + case 4: + s.rdOffset = s.rdOffset + (w) >> 0; + s.ch = r; + $s = 3; continue; + /* } else { */ case 2: + s.offset = s.src.$length; + if (s.ch === 10) { + s.lineOffset = s.offset; + s.file.AddLine(s.offset); + } + s.ch = -1; + /* } */ case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: next, $c: true, $r, _tmp, _tmp$1, _tuple, r, s, w, x, x$1, $s};return $f; + }; + $ptrType(Scanner).prototype.peek = function peek() { + var s, x, x$1; + s = this; + if (s.rdOffset < s.src.$length) { + return (x = s.src, x$1 = s.rdOffset, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + } + return 0; + }; + $ptrType(Scanner).prototype.Init = function Init(file, src, err, mode) { + var {_r, _tuple, err, file, mode, s, src, $s, $r, $c} = $restore(this, {file, src, err, mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (!((file.Size() === src.$length))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((file.Size() === src.$length))) { */ case 1: + _r = fmt.Sprintf("file size (%d) does not match src len (%d)", new sliceType$1([new $Int(file.Size()), new $Int(src.$length)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); + /* } */ case 2: + s.file = file; + _tuple = filepath.Split(file.Name()); + s.dir = _tuple[0]; + s.src = src; + s.err = err; + s.mode = mode; + s.ch = 32; + s.offset = 0; + s.rdOffset = 0; + s.lineOffset = 0; + s.insertSemi = false; + s.ErrorCount = 0; + $r = s.next(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (s.ch === 65279) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (s.ch === 65279) { */ case 5: + $r = s.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: Init, $c: true, $r, _r, _tuple, err, file, mode, s, src, $s};return $f; + }; + $ptrType(Scanner).prototype.error = function error(offs, msg) { + var {_r, _r$1, msg, offs, s, $s, $r, $c} = $restore(this, {offs, msg}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (!(s.err === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(s.err === $throwNilPointerError)) { */ case 1: + _r = s.file.Pos(offs); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = s.file.Position(_r); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = s.err($clone(_r$1, token.Position), msg); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + s.ErrorCount = s.ErrorCount + (1) >> 0; + $s = -1; return; + /* */ } return; } var $f = {$blk: error, $c: true, $r, _r, _r$1, msg, offs, s, $s};return $f; + }; + $ptrType(Scanner).prototype.errorf = function errorf(offs, format, args) { + var {_arg, _arg$1, _r, args, format, offs, s, $s, $r, $c} = $restore(this, {offs, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _arg = offs; + _r = fmt.Sprintf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $r = s.error(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: errorf, $c: true, $r, _arg, _arg$1, _r, args, format, offs, s, $s};return $f; + }; + $ptrType(Scanner).prototype.scanComment = function scanComment() { + var {ch, lit, next$1, numCR, offs, s, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + offs = s.offset - 1 >> 0; + next$1 = -1; + numCR = 0; + /* */ if (s.ch === 47) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (s.ch === 47) { */ case 1: + $r = s.next(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 4: + /* if (!(!((s.ch === 10)) && s.ch >= 0)) { break; } */ if(!(!((s.ch === 10)) && s.ch >= 0)) { $s = 5; continue; } + if (s.ch === 13) { + numCR = numCR + (1) >> 0; + } + $r = s.next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 4; continue; + case 5: + next$1 = s.offset; + if (s.ch === 10) { + next$1 = next$1 + (1) >> 0; + } + /* goto exit */ $s = 7; continue; + /* } */ case 2: + $r = s.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 9: + /* if (!(s.ch >= 0)) { break; } */ if(!(s.ch >= 0)) { $s = 10; continue; } + ch = s.ch; + if (ch === 13) { + numCR = numCR + (1) >> 0; + } + $r = s.next(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((ch === 42) && (s.ch === 47)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((ch === 42) && (s.ch === 47)) { */ case 12: + $r = s.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + next$1 = s.offset; + /* goto exit */ $s = 7; continue; + /* } */ case 13: + $s = 9; continue; + case 10: + $r = s.error(offs, "comment not terminated"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* exit: */ case 7: + lit = $subslice(s.src, offs, s.offset); + if (numCR > 0 && lit.$length >= 2 && ((1 >= lit.$length ? ($throwRuntimeError("index out of range"), undefined) : lit.$array[lit.$offset + 1]) === 47) && ((x = lit.$length - 1 >> 0, ((x < 0 || x >= lit.$length) ? ($throwRuntimeError("index out of range"), undefined) : lit.$array[lit.$offset + x])) === 13)) { + lit = $subslice(lit, 0, (lit.$length - 1 >> 0)); + numCR = numCR - (1) >> 0; + } + /* */ if (next$1 >= 0 && (((1 >= lit.$length ? ($throwRuntimeError("index out of range"), undefined) : lit.$array[lit.$offset + 1]) === 42) || (offs === s.lineOffset)) && bytes.HasPrefix($subslice(lit, 2), prefix)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (next$1 >= 0 && (((1 >= lit.$length ? ($throwRuntimeError("index out of range"), undefined) : lit.$array[lit.$offset + 1]) === 42) || (offs === s.lineOffset)) && bytes.HasPrefix($subslice(lit, 2), prefix)) { */ case 16: + $r = s.updateLineInfo(next$1, offs, lit); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + if (numCR > 0) { + lit = stripCR(lit, (1 >= lit.$length ? ($throwRuntimeError("index out of range"), undefined) : lit.$array[lit.$offset + 1]) === 42); + } + $s = -1; return ($bytesToString(lit)); + /* */ } return; } var $f = {$blk: scanComment, $c: true, $r, ch, lit, next$1, numCR, offs, s, x, $s};return $f; + }; + $ptrType(Scanner).prototype.updateLineInfo = function updateLineInfo(next$1, offs, text) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, col, filename, i, i2, line, n, n2, next$1, offs, ok, ok2, s, text, $s, $r, $c} = $restore(this, {next$1, offs, text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + if ((1 >= text.$length ? ($throwRuntimeError("index out of range"), undefined) : text.$array[text.$offset + 1]) === 42) { + text = $subslice(text, 0, (text.$length - 2 >> 0)); + } + text = $subslice(text, 7); + offs = offs + (7) >> 0; + _tuple = trailingDigits(text); + i = _tuple[0]; + n = _tuple[1]; + ok = _tuple[2]; + if (i === 0) { + $s = -1; return; + } + /* */ if (!ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!ok) { */ case 1: + $r = s.error(offs + i >> 0, "invalid line number: " + ($bytesToString($subslice(text, i)))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 2: + _tmp = 0; + _tmp$1 = 0; + line = _tmp; + col = _tmp$1; + _tuple$1 = trailingDigits($subslice(text, 0, (i - 1 >> 0))); + i2 = _tuple$1[0]; + n2 = _tuple$1[1]; + ok2 = _tuple$1[2]; + /* */ if (ok2) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (ok2) { */ case 4: + _tmp$2 = i2; + _tmp$3 = i; + i = _tmp$2; + i2 = _tmp$3; + _tmp$4 = n2; + _tmp$5 = n; + line = _tmp$4; + col = _tmp$5; + /* */ if ((col === 0) || col > 1073741823) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((col === 0) || col > 1073741823) { */ case 7: + $r = s.error(offs + i2 >> 0, "invalid column number: " + ($bytesToString($subslice(text, i2)))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 8: + text = $subslice(text, 0, (i2 - 1 >> 0)); + $s = 6; continue; + /* } else { */ case 5: + line = n; + /* } */ case 6: + /* */ if ((line === 0) || line > 1073741823) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((line === 0) || line > 1073741823) { */ case 10: + $r = s.error(offs + i >> 0, "invalid line number: " + ($bytesToString($subslice(text, i)))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 11: + filename = ($bytesToString($subslice(text, 0, (i - 1 >> 0)))); + /* */ if (filename === "" && ok2) { $s = 13; continue; } + /* */ if (!(filename === "")) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (filename === "" && ok2) { */ case 13: + _r = s.file.Pos(offs); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = s.file.Position(_r); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + filename = _r$1.Filename; + $s = 15; continue; + /* } else if (!(filename === "")) { */ case 14: + filename = filepath.Clean(filename); + if (!filepath.IsAbs(filename)) { + filename = filepath.Join(new sliceType$2([s.dir, filename])); + } + /* } */ case 15: + s.file.AddLineColumnInfo(next$1, filename, line, col); + $s = -1; return; + /* */ } return; } var $f = {$blk: updateLineInfo, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, col, filename, i, i2, line, n, n2, next$1, offs, ok, ok2, s, text, $s};return $f; + }; + trailingDigits = function trailingDigits$1(text) { + var _tuple, err, i, n, text; + i = bytes.LastIndexByte(text, 58); + if (i < 0) { + return [0, 0, false]; + } + _tuple = strconv.ParseUint(($bytesToString($subslice(text, (i + 1 >> 0)))), 10, 0); + n = _tuple[0]; + err = _tuple[1]; + return [i + 1 >> 0, ((n.$low >> 0)), $interfaceIsEqual(err, $ifaceNil)]; + }; + $ptrType(Scanner).prototype.findLineEnd = function findLineEnd() { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, ch, s, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + s = [s]; + s[0] = this; + $deferred.push([(function(s) { return function Scanner·findLineEnd·func1(offs) { + var {offs, $s, $r, $c} = $restore(this, {offs}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s[0].ch = 47; + s[0].offset = offs; + s[0].rdOffset = offs + 1 >> 0; + $r = s[0].next(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Scanner·findLineEnd·func1, $c: true, $r, offs, $s};return $f; + }; })(s), [s[0].offset - 1 >> 0]]); + /* while (true) { */ case 1: + /* if (!((s[0].ch === 47) || (s[0].ch === 42))) { break; } */ if(!((s[0].ch === 47) || (s[0].ch === 42))) { $s = 2; continue; } + /* */ if (s[0].ch === 47) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (s[0].ch === 47) { */ case 3: + $24r = true; + $s = 5; case 5: return $24r; + /* } */ case 4: + $r = s[0].next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 7: + /* if (!(s[0].ch >= 0)) { break; } */ if(!(s[0].ch >= 0)) { $s = 8; continue; } + ch = s[0].ch; + /* */ if (ch === 10) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (ch === 10) { */ case 9: + $24r$1 = true; + $s = 11; case 11: return $24r$1; + /* } */ case 10: + $r = s[0].next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((ch === 42) && (s[0].ch === 47)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ((ch === 42) && (s[0].ch === 47)) { */ case 13: + $r = s[0].next(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 8; continue; + /* } */ case 14: + $s = 7; continue; + case 8: + $r = s[0].skipWhitespace(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (s[0].ch < 0 || (s[0].ch === 10)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (s[0].ch < 0 || (s[0].ch === 10)) { */ case 17: + $24r$2 = true; + $s = 19; case 19: return $24r$2; + /* } */ case 18: + /* */ if (!((s[0].ch === 47))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!((s[0].ch === 47))) { */ case 20: + $24r$3 = false; + $s = 22; case 22: return $24r$3; + /* } */ case 21: + $r = s[0].next(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 1; continue; + case 2: + $24r$4 = false; + $s = 24; case 24: return $24r$4; + /* */ } return; } } catch(err) { $err = err; $s = -1; return false; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: findLineEnd, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, ch, s, $s, $deferred};return $f; } } + }; + isLetter = function isLetter$1(ch) { + var ch; + return 97 <= lower(ch) && lower(ch) <= 122 || (ch === 95) || ch >= 128 && unicode.IsLetter(ch); + }; + isDigit = function isDigit$1(ch) { + var ch; + return isDecimal(ch) || ch >= 128 && unicode.IsDigit(ch); + }; + $ptrType(Scanner).prototype.scanIdentifier = function scanIdentifier() { + var {_i, _ref, b, offs, rdOffset, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + offs = s.offset; + _ref = $subslice(s.src, s.rdOffset); + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + rdOffset = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (97 <= b && b <= 122 || 65 <= b && b <= 90 || (b === 95) || 48 <= b && b <= 57) { + _i++; + /* continue; */ $s = 1; continue; + } + s.rdOffset = s.rdOffset + (rdOffset) >> 0; + /* */ if (0 < b && b < 128) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (0 < b && b < 128) { */ case 3: + s.ch = ((b >> 0)); + s.offset = s.rdOffset; + s.rdOffset = s.rdOffset + (1) >> 0; + /* goto exit */ $s = 5; continue; + /* } */ case 4: + $r = s.next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 7: + /* if (!(isLetter(s.ch) || isDigit(s.ch))) { break; } */ if(!(isLetter(s.ch) || isDigit(s.ch))) { $s = 8; continue; } + $r = s.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + case 8: + /* goto exit */ $s = 5; continue; + case 2: + s.offset = s.src.$length; + s.rdOffset = s.src.$length; + s.ch = -1; + /* exit: */ case 5: + $s = -1; return ($bytesToString($subslice(s.src, offs, s.offset))); + /* */ } return; } var $f = {$blk: scanIdentifier, $c: true, $r, _i, _ref, b, offs, rdOffset, s, $s};return $f; + }; + digitVal = function digitVal$1(ch) { + var ch; + if (48 <= ch && ch <= 57) { + return (((ch - 48 >> 0) >> 0)); + } else if (97 <= lower(ch) && lower(ch) <= 102) { + return ((((lower(ch) - 97 >> 0) + 10 >> 0) >> 0)); + } + return 16; + }; + lower = function lower$1(ch) { + var ch; + return 32 | ch; + }; + isDecimal = function isDecimal$1(ch) { + var ch; + return 48 <= ch && ch <= 57; + }; + isHex = function isHex$1(ch) { + var ch; + return 48 <= ch && ch <= 57 || 97 <= lower(ch) && lower(ch) <= 102; + }; + $ptrType(Scanner).prototype.digits = function digits(base, invalid) { + var {base, digsep, ds, ds$1, invalid, max, s, $s, $r, $c} = $restore(this, {base, invalid}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + digsep = 0; + s = this; + /* */ if (base <= 10) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (base <= 10) { */ case 1: + max = (((48 + base >> 0) >> 0)); + /* while (true) { */ case 4: + /* if (!(isDecimal(s.ch) || (s.ch === 95))) { break; } */ if(!(isDecimal(s.ch) || (s.ch === 95))) { $s = 5; continue; } + ds = 1; + if (s.ch === 95) { + ds = 2; + } else if (s.ch >= max && invalid.$get() < 0) { + invalid.$set(s.offset); + } + digsep = digsep | (ds); + $r = s.next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 4; continue; + case 5: + $s = 3; continue; + /* } else { */ case 2: + /* while (true) { */ case 7: + /* if (!(isHex(s.ch) || (s.ch === 95))) { break; } */ if(!(isHex(s.ch) || (s.ch === 95))) { $s = 8; continue; } + ds$1 = 1; + if (s.ch === 95) { + ds$1 = 2; + } + digsep = digsep | (ds$1); + $r = s.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + case 8: + /* } */ case 3: + $s = -1; return digsep; + /* */ } return; } var $f = {$blk: digits, $c: true, $r, base, digsep, ds, ds$1, invalid, max, s, $s};return $f; + }; + $ptrType(Scanner).prototype.scanNumber = function scanNumber() { + var {_1, _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, base, digsep, ds, e, i, invalid, lit, offs, prefix$1, s, tok, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + invalid = [invalid]; + s = this; + offs = s.offset; + tok = 0; + base = 10; + prefix$1 = 0; + digsep = 0; + invalid[0] = -1; + /* */ if (!((s.ch === 46))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((s.ch === 46))) { */ case 1: + tok = 5; + /* */ if (s.ch === 48) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (s.ch === 48) { */ case 3: + $r = s.next(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = lower(s.ch); + /* */ if (_1 === (120)) { $s = 7; continue; } + /* */ if (_1 === (111)) { $s = 8; continue; } + /* */ if (_1 === (98)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_1 === (120)) { */ case 7: + $r = s.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp = 16; + _tmp$1 = 120; + base = _tmp; + prefix$1 = _tmp$1; + $s = 11; continue; + /* } else if (_1 === (111)) { */ case 8: + $r = s.next(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$2 = 8; + _tmp$3 = 111; + base = _tmp$2; + prefix$1 = _tmp$3; + $s = 11; continue; + /* } else if (_1 === (98)) { */ case 9: + $r = s.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$4 = 2; + _tmp$5 = 98; + base = _tmp$4; + prefix$1 = _tmp$5; + $s = 11; continue; + /* } else { */ case 10: + _tmp$6 = 8; + _tmp$7 = 48; + base = _tmp$6; + prefix$1 = _tmp$7; + digsep = 1; + /* } */ case 11: + case 6: + /* } */ case 4: + _r = s.digits(base, (invalid.$ptr || (invalid.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, invalid)))); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + digsep = digsep | (_r); + /* } */ case 2: + /* */ if (s.ch === 46) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (s.ch === 46) { */ case 16: + tok = 6; + /* */ if ((prefix$1 === 111) || (prefix$1 === 98)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if ((prefix$1 === 111) || (prefix$1 === 98)) { */ case 18: + $r = s.error(s.offset, "invalid radix point in " + litname(prefix$1)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 19: + $r = s.next(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = s.digits(base, (invalid.$ptr || (invalid.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, invalid)))); /* */ $s = 22; case 22: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + digsep = digsep | (_r$1); + /* } */ case 17: + /* */ if ((digsep & 1) === 0) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if ((digsep & 1) === 0) { */ case 23: + $r = s.error(s.offset, litname(prefix$1) + " has no digits"); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + e = lower(s.ch); + /* */ if ((e === 101) || (e === 112)) { $s = 26; continue; } + /* */ if ((prefix$1 === 120) && (tok === 6)) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if ((e === 101) || (e === 112)) { */ case 26: + /* */ if ((e === 101) && !((prefix$1 === 0)) && !((prefix$1 === 48))) { $s = 30; continue; } + /* */ if ((e === 112) && !((prefix$1 === 120))) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if ((e === 101) && !((prefix$1 === 0)) && !((prefix$1 === 48))) { */ case 30: + $r = s.errorf(s.offset, "%q exponent requires decimal mantissa", new sliceType$1([new $Int32(s.ch)])); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 32; continue; + /* } else if ((e === 112) && !((prefix$1 === 120))) { */ case 31: + $r = s.errorf(s.offset, "%q exponent requires hexadecimal mantissa", new sliceType$1([new $Int32(s.ch)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 32: + case 29: + $r = s.next(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tok = 6; + /* */ if ((s.ch === 43) || (s.ch === 45)) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if ((s.ch === 43) || (s.ch === 45)) { */ case 36: + $r = s.next(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 37: + _r$2 = s.digits(10, ptrType.nil); /* */ $s = 39; case 39: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ds = _r$2; + digsep = digsep | (ds); + /* */ if ((ds & 1) === 0) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if ((ds & 1) === 0) { */ case 40: + $r = s.error(s.offset, "exponent has no digits"); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 41: + $s = 28; continue; + /* } else if ((prefix$1 === 120) && (tok === 6)) { */ case 27: + $r = s.error(s.offset, "hexadecimal mantissa requires a 'p' exponent"); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 28: + /* */ if (s.ch === 105) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (s.ch === 105) { */ case 44: + tok = 7; + $r = s.next(); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 45: + lit = ($bytesToString($subslice(s.src, offs, s.offset))); + /* */ if ((tok === 5) && invalid[0] >= 0) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if ((tok === 5) && invalid[0] >= 0) { */ case 47: + $r = s.errorf(invalid[0], "invalid digit %q in %s", new sliceType$1([new $Uint8(lit.charCodeAt((invalid[0] - offs >> 0))), new $String(litname(prefix$1))])); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 48: + /* */ if (!(((digsep & 2) === 0))) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if (!(((digsep & 2) === 0))) { */ case 50: + i = invalidSep(lit); + /* */ if (i >= 0) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (i >= 0) { */ case 52: + $r = s.error(offs + i >> 0, "'_' must separate successive digits"); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 53: + /* } */ case 51: + $s = -1; return [tok, lit]; + /* */ } return; } var $f = {$blk: scanNumber, $c: true, $r, _1, _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, base, digsep, ds, e, i, invalid, lit, offs, prefix$1, s, tok, $s};return $f; + }; + litname = function litname$1(prefix$1) { + var _1, prefix$1; + _1 = prefix$1; + if (_1 === (120)) { + return "hexadecimal literal"; + } else if ((_1 === (111)) || (_1 === (48))) { + return "octal literal"; + } else if (_1 === (98)) { + return "binary literal"; + } + return "decimal literal"; + }; + invalidSep = function invalidSep$1(x) { + var d, i, p, x, x1; + x1 = 32; + d = 46; + i = 0; + if (x.length >= 2 && (x.charCodeAt(0) === 48)) { + x1 = lower(((x.charCodeAt(1) >> 0))); + if ((x1 === 120) || (x1 === 111) || (x1 === 98)) { + d = 48; + i = 2; + } + } + while (true) { + if (!(i < x.length)) { break; } + p = d; + d = ((x.charCodeAt(i) >> 0)); + if ((d === 95)) { + if (!((p === 48))) { + return i; + } + } else if (isDecimal(d) || (x1 === 120) && isHex(d)) { + d = 48; + } else { + if (p === 95) { + return i - 1 >> 0; + } + d = 46; + } + i = i + (1) >> 0; + } + if (d === 95) { + return x.length - 1 >> 0; + } + return -1; + }; + $ptrType(Scanner).prototype.scanEscape = function scanEscape(quote) { + var {_1, _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, base, d, max, msg, msg$1, n, offs, quote, s, x, $s, $r, $c} = $restore(this, {quote}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + offs = s.offset; + n = 0; + _tmp = 0; + _tmp$1 = 0; + base = _tmp; + max = _tmp$1; + _1 = s.ch; + /* */ if ((_1 === (97)) || (_1 === (98)) || (_1 === (102)) || (_1 === (110)) || (_1 === (114)) || (_1 === (116)) || (_1 === (118)) || (_1 === (92)) || (_1 === (quote))) { $s = 2; continue; } + /* */ if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { $s = 3; continue; } + /* */ if (_1 === (120)) { $s = 4; continue; } + /* */ if (_1 === (117)) { $s = 5; continue; } + /* */ if (_1 === (85)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((_1 === (97)) || (_1 === (98)) || (_1 === (102)) || (_1 === (110)) || (_1 === (114)) || (_1 === (116)) || (_1 === (118)) || (_1 === (92)) || (_1 === (quote))) { */ case 2: + $r = s.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* } else if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { */ case 3: + _tmp$2 = 3; + _tmp$3 = 8; + _tmp$4 = 255; + n = _tmp$2; + base = _tmp$3; + max = _tmp$4; + $s = 8; continue; + /* } else if (_1 === (120)) { */ case 4: + $r = s.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$5 = 2; + _tmp$6 = 16; + _tmp$7 = 255; + n = _tmp$5; + base = _tmp$6; + max = _tmp$7; + $s = 8; continue; + /* } else if (_1 === (117)) { */ case 5: + $r = s.next(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$8 = 4; + _tmp$9 = 16; + _tmp$10 = 1114111; + n = _tmp$8; + base = _tmp$9; + max = _tmp$10; + $s = 8; continue; + /* } else if (_1 === (85)) { */ case 6: + $r = s.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$11 = 8; + _tmp$12 = 16; + _tmp$13 = 1114111; + n = _tmp$11; + base = _tmp$12; + max = _tmp$13; + $s = 8; continue; + /* } else { */ case 7: + msg = "unknown escape sequence"; + if (s.ch < 0) { + msg = "escape sequence not terminated"; + } + $r = s.error(offs, msg); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 8: + case 1: + x = 0; + /* while (true) { */ case 14: + /* if (!(n > 0)) { break; } */ if(!(n > 0)) { $s = 15; continue; } + d = ((digitVal(s.ch) >>> 0)); + /* */ if (d >= base) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (d >= base) { */ case 16: + _r = fmt.Sprintf("illegal character %#U in escape sequence", new sliceType$1([new $Int32(s.ch)])); /* */ $s = 18; case 18: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + msg$1 = _r; + if (s.ch < 0) { + msg$1 = "escape sequence not terminated"; + } + $r = s.error(s.offset, msg$1); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 17: + x = ($imul(x, base) >>> 0) + d >>> 0; + $r = s.next(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + n = n - (1) >> 0; + $s = 14; continue; + case 15: + /* */ if (x > max || 55296 <= x && x < 57344) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (x > max || 55296 <= x && x < 57344) { */ case 21: + $r = s.error(offs, "escape sequence is invalid Unicode code point"); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 22: + $s = -1; return true; + /* */ } return; } var $f = {$blk: scanEscape, $c: true, $r, _1, _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, base, d, max, msg, msg$1, n, offs, quote, s, x, $s};return $f; + }; + $ptrType(Scanner).prototype.scanRune = function scanRune() { + var {_r, ch, n, offs, s, valid, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + offs = s.offset - 1 >> 0; + valid = true; + n = 0; + /* while (true) { */ case 1: + ch = s.ch; + /* */ if ((ch === 10) || ch < 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ((ch === 10) || ch < 0) { */ case 3: + /* */ if (valid) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (valid) { */ case 5: + $r = s.error(offs, "rune literal not terminated"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + valid = false; + /* } */ case 6: + /* break; */ $s = 2; continue; + /* } */ case 4: + $r = s.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (ch === 39) { + /* break; */ $s = 2; continue; + } + n = n + (1) >> 0; + /* */ if (ch === 92) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (ch === 92) { */ case 9: + _r = s.scanEscape(39); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!_r) { */ case 11: + valid = false; + /* } */ case 12: + /* } */ case 10: + $s = 1; continue; + case 2: + /* */ if (valid && !((n === 1))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (valid && !((n === 1))) { */ case 14: + $r = s.error(offs, "illegal rune literal"); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + $s = -1; return ($bytesToString($subslice(s.src, offs, s.offset))); + /* */ } return; } var $f = {$blk: scanRune, $c: true, $r, _r, ch, n, offs, s, valid, $s};return $f; + }; + $ptrType(Scanner).prototype.scanString = function scanString() { + var {_r, ch, offs, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + offs = s.offset - 1 >> 0; + /* while (true) { */ case 1: + ch = s.ch; + /* */ if ((ch === 10) || ch < 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ((ch === 10) || ch < 0) { */ case 3: + $r = s.error(offs, "string literal not terminated"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 2; continue; + /* } */ case 4: + $r = s.next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (ch === 34) { + /* break; */ $s = 2; continue; + } + /* */ if (ch === 92) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (ch === 92) { */ case 7: + _r = s.scanEscape(34); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 8: + $s = 1; continue; + case 2: + $s = -1; return ($bytesToString($subslice(s.src, offs, s.offset))); + /* */ } return; } var $f = {$blk: scanString, $c: true, $r, _r, ch, offs, s, $s};return $f; + }; + stripCR = function stripCR$1(b, comment) { + var _i, _ref, b, c, ch, comment, i, j, x, x$1; + c = $makeSlice(sliceType, b.$length); + i = 0; + _ref = b; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + ch = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((ch === 13)) || comment && i > 2 && ((x = i - 1 >> 0, ((x < 0 || x >= c.$length) ? ($throwRuntimeError("index out of range"), undefined) : c.$array[c.$offset + x])) === 42) && (j + 1 >> 0) < b.$length && ((x$1 = j + 1 >> 0, ((x$1 < 0 || x$1 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + x$1])) === 47)) { + ((i < 0 || i >= c.$length) ? ($throwRuntimeError("index out of range"), undefined) : c.$array[c.$offset + i] = ch); + i = i + (1) >> 0; + } + _i++; + } + return $subslice(c, 0, i); + }; + $ptrType(Scanner).prototype.scanRawString = function scanRawString() { + var {ch, hasCR, lit, offs, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + offs = s.offset - 1 >> 0; + hasCR = false; + /* while (true) { */ case 1: + ch = s.ch; + /* */ if (ch < 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ch < 0) { */ case 3: + $r = s.error(offs, "raw string literal not terminated"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 2; continue; + /* } */ case 4: + $r = s.next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (ch === 96) { + /* break; */ $s = 2; continue; + } + if (ch === 13) { + hasCR = true; + } + $s = 1; continue; + case 2: + lit = $subslice(s.src, offs, s.offset); + if (hasCR) { + lit = stripCR(lit, false); + } + $s = -1; return ($bytesToString(lit)); + /* */ } return; } var $f = {$blk: scanRawString, $c: true, $r, ch, hasCR, lit, offs, s, $s};return $f; + }; + $ptrType(Scanner).prototype.skipWhitespace = function skipWhitespace() { + var {s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* while (true) { */ case 1: + /* if (!((s.ch === 32) || (s.ch === 9) || (s.ch === 10) && !s.insertSemi || (s.ch === 13))) { break; } */ if(!((s.ch === 32) || (s.ch === 9) || (s.ch === 10) && !s.insertSemi || (s.ch === 13))) { $s = 2; continue; } + $r = s.next(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: skipWhitespace, $c: true, $r, s, $s};return $f; + }; + $ptrType(Scanner).prototype.switch2 = function switch2(tok0, tok1) { + var {s, tok0, tok1, $s, $r, $c} = $restore(this, {tok0, tok1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (s.ch === 61) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (s.ch === 61) { */ case 1: + $r = s.next(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return tok1; + /* } */ case 2: + $s = -1; return tok0; + /* */ } return; } var $f = {$blk: switch2, $c: true, $r, s, tok0, tok1, $s};return $f; + }; + $ptrType(Scanner).prototype.switch3 = function switch3(tok0, tok1, ch2, tok2) { + var {ch2, s, tok0, tok1, tok2, $s, $r, $c} = $restore(this, {tok0, tok1, ch2, tok2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (s.ch === 61) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (s.ch === 61) { */ case 1: + $r = s.next(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return tok1; + /* } */ case 2: + /* */ if (s.ch === ch2) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (s.ch === ch2) { */ case 4: + $r = s.next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return tok2; + /* } */ case 5: + $s = -1; return tok0; + /* */ } return; } var $f = {$blk: switch3, $c: true, $r, ch2, s, tok0, tok1, tok2, $s};return $f; + }; + $ptrType(Scanner).prototype.switch4 = function switch4(tok0, tok1, ch2, tok2, tok3) { + var {ch2, s, tok0, tok1, tok2, tok3, $s, $r, $c} = $restore(this, {tok0, tok1, ch2, tok2, tok3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (s.ch === 61) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (s.ch === 61) { */ case 1: + $r = s.next(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return tok1; + /* } */ case 2: + /* */ if (s.ch === ch2) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (s.ch === ch2) { */ case 4: + $r = s.next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (s.ch === 61) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (s.ch === 61) { */ case 7: + $r = s.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return tok3; + /* } */ case 8: + $s = -1; return tok2; + /* } */ case 5: + $s = -1; return tok0; + /* */ } return; } var $f = {$blk: switch4, $c: true, $r, ch2, s, tok0, tok1, tok2, tok3, $s};return $f; + }; + $ptrType(Scanner).prototype.Scan = function Scan() { + var {_1, _2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, _v, ch, comment, insertSemi, lit, pos, s, tok, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pos = 0; + tok = 0; + lit = ""; + s = this; + /* scanAgain: */ case 1: + $r = s.skipWhitespace(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = s.file.Pos(s.offset); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + pos = _r; + insertSemi = false; + ch = s.ch; + /* */ if (isLetter(ch)) { $s = 5; continue; } + /* */ if (isDecimal(ch) || (ch === 46) && isDecimal(((s.peek() >> 0)))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (isLetter(ch)) { */ case 5: + _r$1 = s.scanIdentifier(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lit = _r$1; + if (lit.length > 1) { + tok = token.Lookup(lit); + _1 = tok; + if ((_1 === (4)) || (_1 === (61)) || (_1 === (65)) || (_1 === (69)) || (_1 === (80))) { + insertSemi = true; + } + } else { + insertSemi = true; + tok = 4; + } + $s = 8; continue; + /* } else if (isDecimal(ch) || (ch === 46) && isDecimal(((s.peek() >> 0)))) { */ case 6: + insertSemi = true; + _r$2 = s.scanNumber(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + tok = _tuple[0]; + lit = _tuple[1]; + $s = 8; continue; + /* } else { */ case 7: + $r = s.next(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _2 = ch; + /* */ if (_2 === (-1)) { $s = 13; continue; } + /* */ if (_2 === (10)) { $s = 14; continue; } + /* */ if (_2 === (34)) { $s = 15; continue; } + /* */ if (_2 === (39)) { $s = 16; continue; } + /* */ if (_2 === (96)) { $s = 17; continue; } + /* */ if (_2 === (58)) { $s = 18; continue; } + /* */ if (_2 === (46)) { $s = 19; continue; } + /* */ if (_2 === (44)) { $s = 20; continue; } + /* */ if (_2 === (59)) { $s = 21; continue; } + /* */ if (_2 === (40)) { $s = 22; continue; } + /* */ if (_2 === (41)) { $s = 23; continue; } + /* */ if (_2 === (91)) { $s = 24; continue; } + /* */ if (_2 === (93)) { $s = 25; continue; } + /* */ if (_2 === (123)) { $s = 26; continue; } + /* */ if (_2 === (125)) { $s = 27; continue; } + /* */ if (_2 === (43)) { $s = 28; continue; } + /* */ if (_2 === (45)) { $s = 29; continue; } + /* */ if (_2 === (42)) { $s = 30; continue; } + /* */ if (_2 === (47)) { $s = 31; continue; } + /* */ if (_2 === (37)) { $s = 32; continue; } + /* */ if (_2 === (94)) { $s = 33; continue; } + /* */ if (_2 === (60)) { $s = 34; continue; } + /* */ if (_2 === (62)) { $s = 35; continue; } + /* */ if (_2 === (61)) { $s = 36; continue; } + /* */ if (_2 === (33)) { $s = 37; continue; } + /* */ if (_2 === (38)) { $s = 38; continue; } + /* */ if (_2 === (124)) { $s = 39; continue; } + /* */ if (_2 === (126)) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (_2 === (-1)) { */ case 13: + if (s.insertSemi) { + s.insertSemi = false; + _tmp = pos; + _tmp$1 = 57; + _tmp$2 = "\n"; + pos = _tmp; + tok = _tmp$1; + lit = _tmp$2; + $s = -1; return [pos, tok, lit]; + } + tok = 1; + $s = 42; continue; + /* } else if (_2 === (10)) { */ case 14: + s.insertSemi = false; + _tmp$3 = pos; + _tmp$4 = 57; + _tmp$5 = "\n"; + pos = _tmp$3; + tok = _tmp$4; + lit = _tmp$5; + $s = -1; return [pos, tok, lit]; + /* } else if (_2 === (34)) { */ case 15: + insertSemi = true; + tok = 9; + _r$3 = s.scanString(); /* */ $s = 43; case 43: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + lit = _r$3; + $s = 42; continue; + /* } else if (_2 === (39)) { */ case 16: + insertSemi = true; + tok = 8; + _r$4 = s.scanRune(); /* */ $s = 44; case 44: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + lit = _r$4; + $s = 42; continue; + /* } else if (_2 === (96)) { */ case 17: + insertSemi = true; + tok = 9; + _r$5 = s.scanRawString(); /* */ $s = 45; case 45: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + lit = _r$5; + $s = 42; continue; + /* } else if (_2 === (58)) { */ case 18: + _r$6 = s.switch2(58, 47); /* */ $s = 46; case 46: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + tok = _r$6; + $s = 42; continue; + /* } else if (_2 === (46)) { */ case 19: + tok = 53; + /* */ if ((s.ch === 46) && (s.peek() === 46)) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if ((s.ch === 46) && (s.peek() === 46)) { */ case 47: + $r = s.next(); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = s.next(); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tok = 48; + /* } */ case 48: + $s = 42; continue; + /* } else if (_2 === (44)) { */ case 20: + tok = 52; + $s = 42; continue; + /* } else if (_2 === (59)) { */ case 21: + tok = 57; + lit = ";"; + $s = 42; continue; + /* } else if (_2 === (40)) { */ case 22: + tok = 49; + $s = 42; continue; + /* } else if (_2 === (41)) { */ case 23: + insertSemi = true; + tok = 54; + $s = 42; continue; + /* } else if (_2 === (91)) { */ case 24: + tok = 50; + $s = 42; continue; + /* } else if (_2 === (93)) { */ case 25: + insertSemi = true; + tok = 55; + $s = 42; continue; + /* } else if (_2 === (123)) { */ case 26: + tok = 51; + $s = 42; continue; + /* } else if (_2 === (125)) { */ case 27: + insertSemi = true; + tok = 56; + $s = 42; continue; + /* } else if (_2 === (43)) { */ case 28: + _r$7 = s.switch3(12, 23, 43, 37); /* */ $s = 51; case 51: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + tok = _r$7; + if (tok === 37) { + insertSemi = true; + } + $s = 42; continue; + /* } else if (_2 === (45)) { */ case 29: + _r$8 = s.switch3(13, 24, 45, 38); /* */ $s = 52; case 52: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + tok = _r$8; + if (tok === 38) { + insertSemi = true; + } + $s = 42; continue; + /* } else if (_2 === (42)) { */ case 30: + _r$9 = s.switch2(14, 25); /* */ $s = 53; case 53: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + tok = _r$9; + $s = 42; continue; + /* } else if (_2 === (47)) { */ case 31: + /* */ if ((s.ch === 47) || (s.ch === 42)) { $s = 54; continue; } + /* */ $s = 55; continue; + /* if ((s.ch === 47) || (s.ch === 42)) { */ case 54: + if (!(s.insertSemi)) { _v = false; $s = 59; continue s; } + _r$10 = s.findLineEnd(); /* */ $s = 60; case 60: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v = _r$10; case 59: + /* */ if (_v) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (_v) { */ case 57: + s.ch = 47; + _r$11 = s.file.Offset(pos); /* */ $s = 61; case 61: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + s.offset = _r$11; + s.rdOffset = s.offset + 1 >> 0; + s.insertSemi = false; + _tmp$6 = pos; + _tmp$7 = 57; + _tmp$8 = "\n"; + pos = _tmp$6; + tok = _tmp$7; + lit = _tmp$8; + $s = -1; return [pos, tok, lit]; + /* } */ case 58: + _r$12 = s.scanComment(); /* */ $s = 62; case 62: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + comment = _r$12; + /* */ if (((s.mode & 1) >>> 0) === 0) { $s = 63; continue; } + /* */ $s = 64; continue; + /* if (((s.mode & 1) >>> 0) === 0) { */ case 63: + s.insertSemi = false; + /* goto scanAgain */ $s = 1; continue; + /* } */ case 64: + tok = 2; + lit = comment; + $s = 56; continue; + /* } else { */ case 55: + _r$13 = s.switch2(15, 26); /* */ $s = 65; case 65: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + tok = _r$13; + /* } */ case 56: + $s = 42; continue; + /* } else if (_2 === (37)) { */ case 32: + _r$14 = s.switch2(16, 27); /* */ $s = 66; case 66: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + tok = _r$14; + $s = 42; continue; + /* } else if (_2 === (94)) { */ case 33: + _r$15 = s.switch2(19, 30); /* */ $s = 67; case 67: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + tok = _r$15; + $s = 42; continue; + /* } else if (_2 === (60)) { */ case 34: + /* */ if (s.ch === 45) { $s = 68; continue; } + /* */ $s = 69; continue; + /* if (s.ch === 45) { */ case 68: + $r = s.next(); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tok = 36; + $s = 70; continue; + /* } else { */ case 69: + _r$16 = s.switch4(40, 45, 60, 20, 31); /* */ $s = 72; case 72: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + tok = _r$16; + /* } */ case 70: + $s = 42; continue; + /* } else if (_2 === (62)) { */ case 35: + _r$17 = s.switch4(41, 46, 62, 21, 32); /* */ $s = 73; case 73: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + tok = _r$17; + $s = 42; continue; + /* } else if (_2 === (61)) { */ case 36: + _r$18 = s.switch2(42, 39); /* */ $s = 74; case 74: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + tok = _r$18; + $s = 42; continue; + /* } else if (_2 === (33)) { */ case 37: + _r$19 = s.switch2(43, 44); /* */ $s = 75; case 75: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + tok = _r$19; + $s = 42; continue; + /* } else if (_2 === (38)) { */ case 38: + /* */ if (s.ch === 94) { $s = 76; continue; } + /* */ $s = 77; continue; + /* if (s.ch === 94) { */ case 76: + $r = s.next(); /* */ $s = 79; case 79: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$20 = s.switch2(22, 33); /* */ $s = 80; case 80: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + tok = _r$20; + $s = 78; continue; + /* } else { */ case 77: + _r$21 = s.switch3(17, 28, 38, 34); /* */ $s = 81; case 81: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + tok = _r$21; + /* } */ case 78: + $s = 42; continue; + /* } else if (_2 === (124)) { */ case 39: + _r$22 = s.switch3(18, 29, 124, 35); /* */ $s = 82; case 82: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + tok = _r$22; + $s = 42; continue; + /* } else if (_2 === (126)) { */ case 40: + tok = 88; + $s = 42; continue; + /* } else { */ case 41: + /* */ if (!((ch === 65279))) { $s = 83; continue; } + /* */ $s = 84; continue; + /* if (!((ch === 65279))) { */ case 83: + _r$23 = s.file.Offset(pos); /* */ $s = 85; case 85: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + $r = s.errorf(_r$23, "illegal character %#U", new sliceType$1([new $Int32(ch)])); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 84: + insertSemi = s.insertSemi; + tok = 0; + lit = ($encodeRune(ch)); + /* } */ case 42: + case 12: + /* } */ case 8: + case 4: + if (((s.mode & 2) >>> 0) === 0) { + s.insertSemi = insertSemi; + } + $s = -1; return [pos, tok, lit]; + /* */ } return; } var $f = {$blk: Scan, $c: true, $r, _1, _2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, _v, ch, comment, insertSemi, lit, pos, s, tok, $s};return $f; + }; + $ptrType(Error).prototype.Error = function Error$1() { + var {$24r, _r, e, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + e = this; + /* */ if (!(e.Pos.Filename === "") || e.Pos.IsValid()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(e.Pos.Filename === "") || e.Pos.IsValid()) { */ case 1: + _r = $clone(e.Pos, token.Position).String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r + ": " + e.Msg; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return e.Msg; + /* */ } return; } var $f = {$blk: Error$1, $c: true, $r, $24r, _r, e, $s};return $f; + }; + Error.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; + $ptrType(ErrorList).prototype.Add = function Add(pos, msg) { + var msg, p, pos; + p = this; + p.$set($append(p.$get(), new Error.ptr($clone(pos, token.Position), msg))); + }; + $ptrType(ErrorList).prototype.Reset = function Reset() { + var p; + p = this; + p.$set($subslice((p.$get()), 0, 0)); + }; + ErrorList.prototype.Len = function Len() { + var p; + p = this; + return p.$length; + }; + $ptrType(ErrorList).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + ErrorList.prototype.Swap = function Swap(i, j) { + var _tmp, _tmp$1, i, j, p; + p = this; + _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + _tmp$1 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); + ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$1); + }; + $ptrType(ErrorList).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + ErrorList.prototype.Less = function Less(i, j) { + var e, f, i, j, p; + p = this; + e = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]).Pos; + f = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]).Pos; + if (!(e.Filename === f.Filename)) { + return e.Filename < f.Filename; + } + if (!((e.Line === f.Line))) { + return e.Line < f.Line; + } + if (!((e.Column === f.Column))) { + return e.Column < f.Column; + } + return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]).Msg < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]).Msg; + }; + $ptrType(ErrorList).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + ErrorList.prototype.Sort = function Sort() { + var {p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + $r = sort.Sort(p); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Sort, $c: true, $r, p, $s};return $f; + }; + $ptrType(ErrorList).prototype.Sort = function(...$args) { return this.$get().Sort(...$args); }; + $ptrType(ErrorList).prototype.RemoveMultiples = function RemoveMultiples() { + var {_i, _ref, e, i, last, p, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + $r = sort.Sort(p); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + last = new token.Position.ptr("", 0, 0, 0); + i = 0; + _ref = p.$get(); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(e.Pos.Filename === last.Filename) || !((e.Pos.Line === last.Line))) { + token.Position.copy(last, e.Pos); + (x = p.$get(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = e)); + i = i + (1) >> 0; + } + _i++; + } + p.$set($subslice((p.$get()), 0, i)); + $s = -1; return; + /* */ } return; } var $f = {$blk: RemoveMultiples, $c: true, $r, _i, _ref, e, i, last, p, x, $s};return $f; + }; + ErrorList.prototype.Error = function Error$2() { + var {$24r, $24r$1, _1, _r, _r$1, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _1 = p.$length; + /* */ if (_1 === (0)) { $s = 2; continue; } + /* */ if (_1 === (1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_1 === (0)) { */ case 2: + $s = -1; return "no errors"; + /* } else if (_1 === (1)) { */ case 3: + _r = $clone((0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]), Error).Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 6; case 6: return $24r; + /* } */ case 4: + case 1: + _r$1 = fmt.Sprintf("%s (and %d more errors)", new sliceType$1([(0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]), new $Int((p.$length - 1 >> 0))])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 8; case 8: return $24r$1; + /* */ } return; } var $f = {$blk: Error$2, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, p, $s};return $f; + }; + $ptrType(ErrorList).prototype.Error = function(...$args) { return this.$get().Error(...$args); }; + ErrorList.prototype.Err = function Err() { + var p; + p = this; + if (p.$length === 0) { + return $ifaceNil; + } + return p; + }; + $ptrType(ErrorList).prototype.Err = function(...$args) { return this.$get().Err(...$args); }; + ptrType$2.methods = [{prop: "next", name: "next", pkg: "go/scanner", typ: $funcType([], [], false)}, {prop: "peek", name: "peek", pkg: "go/scanner", typ: $funcType([], [$Uint8], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$1, sliceType, ErrorHandler, Mode], [], false)}, {prop: "error", name: "error", pkg: "go/scanner", typ: $funcType([$Int, $String], [], false)}, {prop: "errorf", name: "errorf", pkg: "go/scanner", typ: $funcType([$Int, $String, sliceType$1], [], true)}, {prop: "scanComment", name: "scanComment", pkg: "go/scanner", typ: $funcType([], [$String], false)}, {prop: "updateLineInfo", name: "updateLineInfo", pkg: "go/scanner", typ: $funcType([$Int, $Int, sliceType], [], false)}, {prop: "findLineEnd", name: "findLineEnd", pkg: "go/scanner", typ: $funcType([], [$Bool], false)}, {prop: "scanIdentifier", name: "scanIdentifier", pkg: "go/scanner", typ: $funcType([], [$String], false)}, {prop: "digits", name: "digits", pkg: "go/scanner", typ: $funcType([$Int, ptrType], [$Int], false)}, {prop: "scanNumber", name: "scanNumber", pkg: "go/scanner", typ: $funcType([], [token.Token, $String], false)}, {prop: "scanEscape", name: "scanEscape", pkg: "go/scanner", typ: $funcType([$Int32], [$Bool], false)}, {prop: "scanRune", name: "scanRune", pkg: "go/scanner", typ: $funcType([], [$String], false)}, {prop: "scanString", name: "scanString", pkg: "go/scanner", typ: $funcType([], [$String], false)}, {prop: "scanRawString", name: "scanRawString", pkg: "go/scanner", typ: $funcType([], [$String], false)}, {prop: "skipWhitespace", name: "skipWhitespace", pkg: "go/scanner", typ: $funcType([], [], false)}, {prop: "switch2", name: "switch2", pkg: "go/scanner", typ: $funcType([token.Token, token.Token], [token.Token], false)}, {prop: "switch3", name: "switch3", pkg: "go/scanner", typ: $funcType([token.Token, token.Token, $Int32, token.Token], [token.Token], false)}, {prop: "switch4", name: "switch4", pkg: "go/scanner", typ: $funcType([token.Token, token.Token, $Int32, token.Token, token.Token], [token.Token], false)}, {prop: "Scan", name: "Scan", pkg: "", typ: $funcType([], [token.Pos, token.Token, $String], false)}]; + Error.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ErrorList.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Sort", name: "Sort", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$3.methods = [{prop: "Add", name: "Add", pkg: "", typ: $funcType([token.Position, $String], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "RemoveMultiples", name: "RemoveMultiples", pkg: "", typ: $funcType([], [], false)}]; + ErrorHandler.init([token.Position, $String], [], false); + Scanner.init("go/scanner", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "src", name: "src", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: ErrorHandler, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: Mode, tag: ""}, {prop: "ch", name: "ch", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "rdOffset", name: "rdOffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lineOffset", name: "lineOffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "insertSemi", name: "insertSemi", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ErrorCount", name: "ErrorCount", embedded: false, exported: true, typ: $Int, tag: ""}]); + Error.init("", [{prop: "Pos", name: "Pos", embedded: false, exported: true, typ: token.Position, tag: ""}, {prop: "Msg", name: "Msg", embedded: false, exported: true, typ: $String, tag: ""}]); + ErrorList.init(ptrType$4); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = filepath.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + prefix = (new sliceType($stringToBytes("line "))); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/ast"] = (function() { + var $pkg = {}, $init, bytes, fmt, scanner, token, io, os, reflect, sort, strconv, strings, Visitor, Scope, Object, ObjKind, Node, Expr, Stmt, Decl, Comment, CommentGroup, Field, FieldList, BadExpr, Ident, Ellipsis, BasicLit, FuncLit, CompositeLit, ParenExpr, SelectorExpr, IndexExpr, IndexListExpr, SliceExpr, TypeAssertExpr, CallExpr, StarExpr, UnaryExpr, BinaryExpr, KeyValueExpr, ChanDir, ArrayType, StructType, FuncType, InterfaceType, MapType, ChanType, BadStmt, DeclStmt, EmptyStmt, LabeledStmt, ExprStmt, SendStmt, IncDecStmt, AssignStmt, GoStmt, DeferStmt, ReturnStmt, BranchStmt, BlockStmt, IfStmt, CaseClause, SwitchStmt, TypeSwitchStmt, CommClause, SelectStmt, ForStmt, RangeStmt, Spec, ImportSpec, ValueSpec, TypeSpec, BadDecl, GenDecl, FuncDecl, File, Package, objKindStrings, walkIdentList, walkExprList, walkStmtList, walkDeclList, Walk, NewScope, NewObj, isWhitespace, stripTrailingWhitespace, isDirective, NewIdent; + bytes = $packages["bytes"]; + fmt = $packages["fmt"]; + scanner = $packages["go/scanner"]; + token = $packages["go/token"]; + io = $packages["io"]; + os = $packages["os"]; + reflect = $packages["reflect"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + Visitor = $newType(8, $kindInterface, "ast.Visitor", true, "go/ast", true, null); + Scope = $newType(0, $kindStruct, "ast.Scope", true, "go/ast", true, function(Outer_, Objects_) { + this.$val = this; + if (arguments.length === 0) { + this.Outer = ptrType$57.nil; + this.Objects = false; + return; + } + this.Outer = Outer_; + this.Objects = Objects_; + }); + Object = $newType(0, $kindStruct, "ast.Object", true, "go/ast", true, function(Kind_, Name_, Decl_, Data_, Type_) { + this.$val = this; + if (arguments.length === 0) { + this.Kind = 0; + this.Name = ""; + this.Decl = $ifaceNil; + this.Data = $ifaceNil; + this.Type = $ifaceNil; + return; + } + this.Kind = Kind_; + this.Name = Name_; + this.Decl = Decl_; + this.Data = Data_; + this.Type = Type_; + }); + ObjKind = $newType(4, $kindInt, "ast.ObjKind", true, "go/ast", true, null); + Node = $newType(8, $kindInterface, "ast.Node", true, "go/ast", true, null); + Expr = $newType(8, $kindInterface, "ast.Expr", true, "go/ast", true, null); + Stmt = $newType(8, $kindInterface, "ast.Stmt", true, "go/ast", true, null); + Decl = $newType(8, $kindInterface, "ast.Decl", true, "go/ast", true, null); + Comment = $newType(0, $kindStruct, "ast.Comment", true, "go/ast", true, function(Slash_, Text_) { + this.$val = this; + if (arguments.length === 0) { + this.Slash = 0; + this.Text = ""; + return; + } + this.Slash = Slash_; + this.Text = Text_; + }); + CommentGroup = $newType(0, $kindStruct, "ast.CommentGroup", true, "go/ast", true, function(List_) { + this.$val = this; + if (arguments.length === 0) { + this.List = sliceType$6.nil; + return; + } + this.List = List_; + }); + Field = $newType(0, $kindStruct, "ast.Field", true, "go/ast", true, function(Doc_, Names_, Type_, Tag_, Comment_) { + this.$val = this; + if (arguments.length === 0) { + this.Doc = ptrType$1.nil; + this.Names = sliceType$9.nil; + this.Type = $ifaceNil; + this.Tag = ptrType$6.nil; + this.Comment = ptrType$1.nil; + return; + } + this.Doc = Doc_; + this.Names = Names_; + this.Type = Type_; + this.Tag = Tag_; + this.Comment = Comment_; + }); + FieldList = $newType(0, $kindStruct, "ast.FieldList", true, "go/ast", true, function(Opening_, List_, Closing_) { + this.$val = this; + if (arguments.length === 0) { + this.Opening = 0; + this.List = sliceType$11.nil; + this.Closing = 0; + return; + } + this.Opening = Opening_; + this.List = List_; + this.Closing = Closing_; + }); + BadExpr = $newType(0, $kindStruct, "ast.BadExpr", true, "go/ast", true, function(From_, To_) { + this.$val = this; + if (arguments.length === 0) { + this.From = 0; + this.To = 0; + return; + } + this.From = From_; + this.To = To_; + }); + Ident = $newType(0, $kindStruct, "ast.Ident", true, "go/ast", true, function(NamePos_, Name_, Obj_) { + this.$val = this; + if (arguments.length === 0) { + this.NamePos = 0; + this.Name = ""; + this.Obj = ptrType$56.nil; + return; + } + this.NamePos = NamePos_; + this.Name = Name_; + this.Obj = Obj_; + }); + Ellipsis = $newType(0, $kindStruct, "ast.Ellipsis", true, "go/ast", true, function(Ellipsis_, Elt_) { + this.$val = this; + if (arguments.length === 0) { + this.Ellipsis = 0; + this.Elt = $ifaceNil; + return; + } + this.Ellipsis = Ellipsis_; + this.Elt = Elt_; + }); + BasicLit = $newType(0, $kindStruct, "ast.BasicLit", true, "go/ast", true, function(ValuePos_, Kind_, Value_) { + this.$val = this; + if (arguments.length === 0) { + this.ValuePos = 0; + this.Kind = 0; + this.Value = ""; + return; + } + this.ValuePos = ValuePos_; + this.Kind = Kind_; + this.Value = Value_; + }); + FuncLit = $newType(0, $kindStruct, "ast.FuncLit", true, "go/ast", true, function(Type_, Body_) { + this.$val = this; + if (arguments.length === 0) { + this.Type = ptrType$23.nil; + this.Body = ptrType$39.nil; + return; + } + this.Type = Type_; + this.Body = Body_; + }); + CompositeLit = $newType(0, $kindStruct, "ast.CompositeLit", true, "go/ast", true, function(Type_, Lbrace_, Elts_, Rbrace_, Incomplete_) { + this.$val = this; + if (arguments.length === 0) { + this.Type = $ifaceNil; + this.Lbrace = 0; + this.Elts = sliceType$12.nil; + this.Rbrace = 0; + this.Incomplete = false; + return; + } + this.Type = Type_; + this.Lbrace = Lbrace_; + this.Elts = Elts_; + this.Rbrace = Rbrace_; + this.Incomplete = Incomplete_; + }); + ParenExpr = $newType(0, $kindStruct, "ast.ParenExpr", true, "go/ast", true, function(Lparen_, X_, Rparen_) { + this.$val = this; + if (arguments.length === 0) { + this.Lparen = 0; + this.X = $ifaceNil; + this.Rparen = 0; + return; + } + this.Lparen = Lparen_; + this.X = X_; + this.Rparen = Rparen_; + }); + SelectorExpr = $newType(0, $kindStruct, "ast.SelectorExpr", true, "go/ast", true, function(X_, Sel_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + this.Sel = ptrType$5.nil; + return; + } + this.X = X_; + this.Sel = Sel_; + }); + IndexExpr = $newType(0, $kindStruct, "ast.IndexExpr", true, "go/ast", true, function(X_, Lbrack_, Index_, Rbrack_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + this.Lbrack = 0; + this.Index = $ifaceNil; + this.Rbrack = 0; + return; + } + this.X = X_; + this.Lbrack = Lbrack_; + this.Index = Index_; + this.Rbrack = Rbrack_; + }); + IndexListExpr = $newType(0, $kindStruct, "ast.IndexListExpr", true, "go/ast", true, function(X_, Lbrack_, Indices_, Rbrack_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + this.Lbrack = 0; + this.Indices = sliceType$12.nil; + this.Rbrack = 0; + return; + } + this.X = X_; + this.Lbrack = Lbrack_; + this.Indices = Indices_; + this.Rbrack = Rbrack_; + }); + SliceExpr = $newType(0, $kindStruct, "ast.SliceExpr", true, "go/ast", true, function(X_, Lbrack_, Low_, High_, Max_, Slice3_, Rbrack_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + this.Lbrack = 0; + this.Low = $ifaceNil; + this.High = $ifaceNil; + this.Max = $ifaceNil; + this.Slice3 = false; + this.Rbrack = 0; + return; + } + this.X = X_; + this.Lbrack = Lbrack_; + this.Low = Low_; + this.High = High_; + this.Max = Max_; + this.Slice3 = Slice3_; + this.Rbrack = Rbrack_; + }); + TypeAssertExpr = $newType(0, $kindStruct, "ast.TypeAssertExpr", true, "go/ast", true, function(X_, Lparen_, Type_, Rparen_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + this.Lparen = 0; + this.Type = $ifaceNil; + this.Rparen = 0; + return; + } + this.X = X_; + this.Lparen = Lparen_; + this.Type = Type_; + this.Rparen = Rparen_; + }); + CallExpr = $newType(0, $kindStruct, "ast.CallExpr", true, "go/ast", true, function(Fun_, Lparen_, Args_, Ellipsis_, Rparen_) { + this.$val = this; + if (arguments.length === 0) { + this.Fun = $ifaceNil; + this.Lparen = 0; + this.Args = sliceType$12.nil; + this.Ellipsis = 0; + this.Rparen = 0; + return; + } + this.Fun = Fun_; + this.Lparen = Lparen_; + this.Args = Args_; + this.Ellipsis = Ellipsis_; + this.Rparen = Rparen_; + }); + StarExpr = $newType(0, $kindStruct, "ast.StarExpr", true, "go/ast", true, function(Star_, X_) { + this.$val = this; + if (arguments.length === 0) { + this.Star = 0; + this.X = $ifaceNil; + return; + } + this.Star = Star_; + this.X = X_; + }); + UnaryExpr = $newType(0, $kindStruct, "ast.UnaryExpr", true, "go/ast", true, function(OpPos_, Op_, X_) { + this.$val = this; + if (arguments.length === 0) { + this.OpPos = 0; + this.Op = 0; + this.X = $ifaceNil; + return; + } + this.OpPos = OpPos_; + this.Op = Op_; + this.X = X_; + }); + BinaryExpr = $newType(0, $kindStruct, "ast.BinaryExpr", true, "go/ast", true, function(X_, OpPos_, Op_, Y_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + this.OpPos = 0; + this.Op = 0; + this.Y = $ifaceNil; + return; + } + this.X = X_; + this.OpPos = OpPos_; + this.Op = Op_; + this.Y = Y_; + }); + KeyValueExpr = $newType(0, $kindStruct, "ast.KeyValueExpr", true, "go/ast", true, function(Key_, Colon_, Value_) { + this.$val = this; + if (arguments.length === 0) { + this.Key = $ifaceNil; + this.Colon = 0; + this.Value = $ifaceNil; + return; + } + this.Key = Key_; + this.Colon = Colon_; + this.Value = Value_; + }); + ChanDir = $newType(4, $kindInt, "ast.ChanDir", true, "go/ast", true, null); + ArrayType = $newType(0, $kindStruct, "ast.ArrayType", true, "go/ast", true, function(Lbrack_, Len_, Elt_) { + this.$val = this; + if (arguments.length === 0) { + this.Lbrack = 0; + this.Len = $ifaceNil; + this.Elt = $ifaceNil; + return; + } + this.Lbrack = Lbrack_; + this.Len = Len_; + this.Elt = Elt_; + }); + StructType = $newType(0, $kindStruct, "ast.StructType", true, "go/ast", true, function(Struct_, Fields_, Incomplete_) { + this.$val = this; + if (arguments.length === 0) { + this.Struct = 0; + this.Fields = ptrType$3.nil; + this.Incomplete = false; + return; + } + this.Struct = Struct_; + this.Fields = Fields_; + this.Incomplete = Incomplete_; + }); + FuncType = $newType(0, $kindStruct, "ast.FuncType", true, "go/ast", true, function(Func_, TypeParams_, Params_, Results_) { + this.$val = this; + if (arguments.length === 0) { + this.Func = 0; + this.TypeParams = ptrType$3.nil; + this.Params = ptrType$3.nil; + this.Results = ptrType$3.nil; + return; + } + this.Func = Func_; + this.TypeParams = TypeParams_; + this.Params = Params_; + this.Results = Results_; + }); + InterfaceType = $newType(0, $kindStruct, "ast.InterfaceType", true, "go/ast", true, function(Interface_, Methods_, Incomplete_) { + this.$val = this; + if (arguments.length === 0) { + this.Interface = 0; + this.Methods = ptrType$3.nil; + this.Incomplete = false; + return; + } + this.Interface = Interface_; + this.Methods = Methods_; + this.Incomplete = Incomplete_; + }); + MapType = $newType(0, $kindStruct, "ast.MapType", true, "go/ast", true, function(Map_, Key_, Value_) { + this.$val = this; + if (arguments.length === 0) { + this.Map = 0; + this.Key = $ifaceNil; + this.Value = $ifaceNil; + return; + } + this.Map = Map_; + this.Key = Key_; + this.Value = Value_; + }); + ChanType = $newType(0, $kindStruct, "ast.ChanType", true, "go/ast", true, function(Begin_, Arrow_, Dir_, Value_) { + this.$val = this; + if (arguments.length === 0) { + this.Begin = 0; + this.Arrow = 0; + this.Dir = 0; + this.Value = $ifaceNil; + return; + } + this.Begin = Begin_; + this.Arrow = Arrow_; + this.Dir = Dir_; + this.Value = Value_; + }); + BadStmt = $newType(0, $kindStruct, "ast.BadStmt", true, "go/ast", true, function(From_, To_) { + this.$val = this; + if (arguments.length === 0) { + this.From = 0; + this.To = 0; + return; + } + this.From = From_; + this.To = To_; + }); + DeclStmt = $newType(0, $kindStruct, "ast.DeclStmt", true, "go/ast", true, function(Decl_) { + this.$val = this; + if (arguments.length === 0) { + this.Decl = $ifaceNil; + return; + } + this.Decl = Decl_; + }); + EmptyStmt = $newType(0, $kindStruct, "ast.EmptyStmt", true, "go/ast", true, function(Semicolon_, Implicit_) { + this.$val = this; + if (arguments.length === 0) { + this.Semicolon = 0; + this.Implicit = false; + return; + } + this.Semicolon = Semicolon_; + this.Implicit = Implicit_; + }); + LabeledStmt = $newType(0, $kindStruct, "ast.LabeledStmt", true, "go/ast", true, function(Label_, Colon_, Stmt_) { + this.$val = this; + if (arguments.length === 0) { + this.Label = ptrType$5.nil; + this.Colon = 0; + this.Stmt = $ifaceNil; + return; + } + this.Label = Label_; + this.Colon = Colon_; + this.Stmt = Stmt_; + }); + ExprStmt = $newType(0, $kindStruct, "ast.ExprStmt", true, "go/ast", true, function(X_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + return; + } + this.X = X_; + }); + SendStmt = $newType(0, $kindStruct, "ast.SendStmt", true, "go/ast", true, function(Chan_, Arrow_, Value_) { + this.$val = this; + if (arguments.length === 0) { + this.Chan = $ifaceNil; + this.Arrow = 0; + this.Value = $ifaceNil; + return; + } + this.Chan = Chan_; + this.Arrow = Arrow_; + this.Value = Value_; + }); + IncDecStmt = $newType(0, $kindStruct, "ast.IncDecStmt", true, "go/ast", true, function(X_, TokPos_, Tok_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + this.TokPos = 0; + this.Tok = 0; + return; + } + this.X = X_; + this.TokPos = TokPos_; + this.Tok = Tok_; + }); + AssignStmt = $newType(0, $kindStruct, "ast.AssignStmt", true, "go/ast", true, function(Lhs_, TokPos_, Tok_, Rhs_) { + this.$val = this; + if (arguments.length === 0) { + this.Lhs = sliceType$12.nil; + this.TokPos = 0; + this.Tok = 0; + this.Rhs = sliceType$12.nil; + return; + } + this.Lhs = Lhs_; + this.TokPos = TokPos_; + this.Tok = Tok_; + this.Rhs = Rhs_; + }); + GoStmt = $newType(0, $kindStruct, "ast.GoStmt", true, "go/ast", true, function(Go_, Call_) { + this.$val = this; + if (arguments.length === 0) { + this.Go = 0; + this.Call = ptrType$16.nil; + return; + } + this.Go = Go_; + this.Call = Call_; + }); + DeferStmt = $newType(0, $kindStruct, "ast.DeferStmt", true, "go/ast", true, function(Defer_, Call_) { + this.$val = this; + if (arguments.length === 0) { + this.Defer = 0; + this.Call = ptrType$16.nil; + return; + } + this.Defer = Defer_; + this.Call = Call_; + }); + ReturnStmt = $newType(0, $kindStruct, "ast.ReturnStmt", true, "go/ast", true, function(Return_, Results_) { + this.$val = this; + if (arguments.length === 0) { + this.Return = 0; + this.Results = sliceType$12.nil; + return; + } + this.Return = Return_; + this.Results = Results_; + }); + BranchStmt = $newType(0, $kindStruct, "ast.BranchStmt", true, "go/ast", true, function(TokPos_, Tok_, Label_) { + this.$val = this; + if (arguments.length === 0) { + this.TokPos = 0; + this.Tok = 0; + this.Label = ptrType$5.nil; + return; + } + this.TokPos = TokPos_; + this.Tok = Tok_; + this.Label = Label_; + }); + BlockStmt = $newType(0, $kindStruct, "ast.BlockStmt", true, "go/ast", true, function(Lbrace_, List_, Rbrace_) { + this.$val = this; + if (arguments.length === 0) { + this.Lbrace = 0; + this.List = sliceType$13.nil; + this.Rbrace = 0; + return; + } + this.Lbrace = Lbrace_; + this.List = List_; + this.Rbrace = Rbrace_; + }); + IfStmt = $newType(0, $kindStruct, "ast.IfStmt", true, "go/ast", true, function(If_, Init_, Cond_, Body_, Else_) { + this.$val = this; + if (arguments.length === 0) { + this.If = 0; + this.Init = $ifaceNil; + this.Cond = $ifaceNil; + this.Body = ptrType$39.nil; + this.Else = $ifaceNil; + return; + } + this.If = If_; + this.Init = Init_; + this.Cond = Cond_; + this.Body = Body_; + this.Else = Else_; + }); + CaseClause = $newType(0, $kindStruct, "ast.CaseClause", true, "go/ast", true, function(Case_, List_, Colon_, Body_) { + this.$val = this; + if (arguments.length === 0) { + this.Case = 0; + this.List = sliceType$12.nil; + this.Colon = 0; + this.Body = sliceType$13.nil; + return; + } + this.Case = Case_; + this.List = List_; + this.Colon = Colon_; + this.Body = Body_; + }); + SwitchStmt = $newType(0, $kindStruct, "ast.SwitchStmt", true, "go/ast", true, function(Switch_, Init_, Tag_, Body_) { + this.$val = this; + if (arguments.length === 0) { + this.Switch = 0; + this.Init = $ifaceNil; + this.Tag = $ifaceNil; + this.Body = ptrType$39.nil; + return; + } + this.Switch = Switch_; + this.Init = Init_; + this.Tag = Tag_; + this.Body = Body_; + }); + TypeSwitchStmt = $newType(0, $kindStruct, "ast.TypeSwitchStmt", true, "go/ast", true, function(Switch_, Init_, Assign_, Body_) { + this.$val = this; + if (arguments.length === 0) { + this.Switch = 0; + this.Init = $ifaceNil; + this.Assign = $ifaceNil; + this.Body = ptrType$39.nil; + return; + } + this.Switch = Switch_; + this.Init = Init_; + this.Assign = Assign_; + this.Body = Body_; + }); + CommClause = $newType(0, $kindStruct, "ast.CommClause", true, "go/ast", true, function(Case_, Comm_, Colon_, Body_) { + this.$val = this; + if (arguments.length === 0) { + this.Case = 0; + this.Comm = $ifaceNil; + this.Colon = 0; + this.Body = sliceType$13.nil; + return; + } + this.Case = Case_; + this.Comm = Comm_; + this.Colon = Colon_; + this.Body = Body_; + }); + SelectStmt = $newType(0, $kindStruct, "ast.SelectStmt", true, "go/ast", true, function(Select_, Body_) { + this.$val = this; + if (arguments.length === 0) { + this.Select = 0; + this.Body = ptrType$39.nil; + return; + } + this.Select = Select_; + this.Body = Body_; + }); + ForStmt = $newType(0, $kindStruct, "ast.ForStmt", true, "go/ast", true, function(For_, Init_, Cond_, Post_, Body_) { + this.$val = this; + if (arguments.length === 0) { + this.For = 0; + this.Init = $ifaceNil; + this.Cond = $ifaceNil; + this.Post = $ifaceNil; + this.Body = ptrType$39.nil; + return; + } + this.For = For_; + this.Init = Init_; + this.Cond = Cond_; + this.Post = Post_; + this.Body = Body_; + }); + RangeStmt = $newType(0, $kindStruct, "ast.RangeStmt", true, "go/ast", true, function(For_, Key_, Value_, TokPos_, Tok_, X_, Body_) { + this.$val = this; + if (arguments.length === 0) { + this.For = 0; + this.Key = $ifaceNil; + this.Value = $ifaceNil; + this.TokPos = 0; + this.Tok = 0; + this.X = $ifaceNil; + this.Body = ptrType$39.nil; + return; + } + this.For = For_; + this.Key = Key_; + this.Value = Value_; + this.TokPos = TokPos_; + this.Tok = Tok_; + this.X = X_; + this.Body = Body_; + }); + Spec = $newType(8, $kindInterface, "ast.Spec", true, "go/ast", true, null); + ImportSpec = $newType(0, $kindStruct, "ast.ImportSpec", true, "go/ast", true, function(Doc_, Name_, Path_, Comment_, EndPos_) { + this.$val = this; + if (arguments.length === 0) { + this.Doc = ptrType$1.nil; + this.Name = ptrType$5.nil; + this.Path = ptrType$6.nil; + this.Comment = ptrType$1.nil; + this.EndPos = 0; + return; + } + this.Doc = Doc_; + this.Name = Name_; + this.Path = Path_; + this.Comment = Comment_; + this.EndPos = EndPos_; + }); + ValueSpec = $newType(0, $kindStruct, "ast.ValueSpec", true, "go/ast", true, function(Doc_, Names_, Type_, Values_, Comment_) { + this.$val = this; + if (arguments.length === 0) { + this.Doc = ptrType$1.nil; + this.Names = sliceType$9.nil; + this.Type = $ifaceNil; + this.Values = sliceType$12.nil; + this.Comment = ptrType$1.nil; + return; + } + this.Doc = Doc_; + this.Names = Names_; + this.Type = Type_; + this.Values = Values_; + this.Comment = Comment_; + }); + TypeSpec = $newType(0, $kindStruct, "ast.TypeSpec", true, "go/ast", true, function(Doc_, Name_, TypeParams_, Assign_, Type_, Comment_) { + this.$val = this; + if (arguments.length === 0) { + this.Doc = ptrType$1.nil; + this.Name = ptrType$5.nil; + this.TypeParams = ptrType$3.nil; + this.Assign = 0; + this.Type = $ifaceNil; + this.Comment = ptrType$1.nil; + return; + } + this.Doc = Doc_; + this.Name = Name_; + this.TypeParams = TypeParams_; + this.Assign = Assign_; + this.Type = Type_; + this.Comment = Comment_; + }); + BadDecl = $newType(0, $kindStruct, "ast.BadDecl", true, "go/ast", true, function(From_, To_) { + this.$val = this; + if (arguments.length === 0) { + this.From = 0; + this.To = 0; + return; + } + this.From = From_; + this.To = To_; + }); + GenDecl = $newType(0, $kindStruct, "ast.GenDecl", true, "go/ast", true, function(Doc_, TokPos_, Tok_, Lparen_, Specs_, Rparen_) { + this.$val = this; + if (arguments.length === 0) { + this.Doc = ptrType$1.nil; + this.TokPos = 0; + this.Tok = 0; + this.Lparen = 0; + this.Specs = sliceType$14.nil; + this.Rparen = 0; + return; + } + this.Doc = Doc_; + this.TokPos = TokPos_; + this.Tok = Tok_; + this.Lparen = Lparen_; + this.Specs = Specs_; + this.Rparen = Rparen_; + }); + FuncDecl = $newType(0, $kindStruct, "ast.FuncDecl", true, "go/ast", true, function(Doc_, Recv_, Name_, Type_, Body_) { + this.$val = this; + if (arguments.length === 0) { + this.Doc = ptrType$1.nil; + this.Recv = ptrType$3.nil; + this.Name = ptrType$5.nil; + this.Type = ptrType$23.nil; + this.Body = ptrType$39.nil; + return; + } + this.Doc = Doc_; + this.Recv = Recv_; + this.Name = Name_; + this.Type = Type_; + this.Body = Body_; + }); + File = $newType(0, $kindStruct, "ast.File", true, "go/ast", true, function(Doc_, Package_, Name_, Decls_, Scope_, Imports_, Unresolved_, Comments_) { + this.$val = this; + if (arguments.length === 0) { + this.Doc = ptrType$1.nil; + this.Package = 0; + this.Name = ptrType$5.nil; + this.Decls = sliceType$7.nil; + this.Scope = ptrType$57.nil; + this.Imports = sliceType$8.nil; + this.Unresolved = sliceType$9.nil; + this.Comments = sliceType$3.nil; + return; + } + this.Doc = Doc_; + this.Package = Package_; + this.Name = Name_; + this.Decls = Decls_; + this.Scope = Scope_; + this.Imports = Imports_; + this.Unresolved = Unresolved_; + this.Comments = Comments_; + }); + Package = $newType(0, $kindStruct, "ast.Package", true, "go/ast", true, function(Name_, Scope_, Imports_, Files_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.Scope = ptrType$57.nil; + this.Imports = false; + this.Files = false; + return; + } + this.Name = Name_; + this.Scope = Scope_; + this.Imports = Imports_; + this.Files = Files_; + }); + $pkg.Visitor = Visitor; + $pkg.Scope = Scope; + $pkg.Object = Object; + $pkg.ObjKind = ObjKind; + $pkg.Node = Node; + $pkg.Expr = Expr; + $pkg.Stmt = Stmt; + $pkg.Decl = Decl; + $pkg.Comment = Comment; + $pkg.CommentGroup = CommentGroup; + $pkg.Field = Field; + $pkg.FieldList = FieldList; + $pkg.BadExpr = BadExpr; + $pkg.Ident = Ident; + $pkg.Ellipsis = Ellipsis; + $pkg.BasicLit = BasicLit; + $pkg.FuncLit = FuncLit; + $pkg.CompositeLit = CompositeLit; + $pkg.ParenExpr = ParenExpr; + $pkg.SelectorExpr = SelectorExpr; + $pkg.IndexExpr = IndexExpr; + $pkg.IndexListExpr = IndexListExpr; + $pkg.SliceExpr = SliceExpr; + $pkg.TypeAssertExpr = TypeAssertExpr; + $pkg.CallExpr = CallExpr; + $pkg.StarExpr = StarExpr; + $pkg.UnaryExpr = UnaryExpr; + $pkg.BinaryExpr = BinaryExpr; + $pkg.KeyValueExpr = KeyValueExpr; + $pkg.ChanDir = ChanDir; + $pkg.ArrayType = ArrayType; + $pkg.StructType = StructType; + $pkg.FuncType = FuncType; + $pkg.InterfaceType = InterfaceType; + $pkg.MapType = MapType; + $pkg.ChanType = ChanType; + $pkg.BadStmt = BadStmt; + $pkg.DeclStmt = DeclStmt; + $pkg.EmptyStmt = EmptyStmt; + $pkg.LabeledStmt = LabeledStmt; + $pkg.ExprStmt = ExprStmt; + $pkg.SendStmt = SendStmt; + $pkg.IncDecStmt = IncDecStmt; + $pkg.AssignStmt = AssignStmt; + $pkg.GoStmt = GoStmt; + $pkg.DeferStmt = DeferStmt; + $pkg.ReturnStmt = ReturnStmt; + $pkg.BranchStmt = BranchStmt; + $pkg.BlockStmt = BlockStmt; + $pkg.IfStmt = IfStmt; + $pkg.CaseClause = CaseClause; + $pkg.SwitchStmt = SwitchStmt; + $pkg.TypeSwitchStmt = TypeSwitchStmt; + $pkg.CommClause = CommClause; + $pkg.SelectStmt = SelectStmt; + $pkg.ForStmt = ForStmt; + $pkg.RangeStmt = RangeStmt; + $pkg.Spec = Spec; + $pkg.ImportSpec = ImportSpec; + $pkg.ValueSpec = ValueSpec; + $pkg.TypeSpec = TypeSpec; + $pkg.BadDecl = BadDecl; + $pkg.GenDecl = GenDecl; + $pkg.FuncDecl = FuncDecl; + $pkg.File = File; + $pkg.Package = Package; + $pkg.$finishSetup = function() { + walkIdentList = function walkIdentList$1(v, list) { + var {_i, _ref, list, v, x, $s, $r, $c} = $restore(this, {v, list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = Walk(v, x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkIdentList$1, $c: true, $r, _i, _ref, list, v, x, $s};return $f; + }; + walkExprList = function walkExprList$1(v, list) { + var {_i, _ref, list, v, x, $s, $r, $c} = $restore(this, {v, list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = Walk(v, x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkExprList$1, $c: true, $r, _i, _ref, list, v, x, $s};return $f; + }; + walkStmtList = function walkStmtList$1(v, list) { + var {_i, _ref, list, v, x, $s, $r, $c} = $restore(this, {v, list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = Walk(v, x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkStmtList$1, $c: true, $r, _i, _ref, list, v, x, $s};return $f; + }; + walkDeclList = function walkDeclList$1(v, list) { + var {_i, _ref, list, v, x, $s, $r, $c} = $restore(this, {v, list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = Walk(v, x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkDeclList$1, $c: true, $r, _i, _ref, list, v, x, $s};return $f; + }; + Walk = function Walk$1(v, node) { + var {_entry, _i, _i$1, _i$2, _i$3, _i$4, _key, _keys, _r, _r$1, _r$2, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, c, f, f$1, index, n, n$1, n$10, n$11, n$12, n$13, n$14, n$15, n$16, n$17, n$18, n$19, n$2, n$20, n$21, n$22, n$23, n$24, n$25, n$26, n$27, n$28, n$29, n$3, n$30, n$31, n$32, n$33, n$34, n$35, n$36, n$37, n$38, n$39, n$4, n$40, n$41, n$42, n$43, n$44, n$45, n$46, n$47, n$48, n$49, n$5, n$50, n$51, n$52, n$53, n$54, n$6, n$7, n$8, n$9, node, s, v, $s, $r, $c} = $restore(this, {v, node}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = v.Visit(node); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + if ($interfaceIsEqual(v, $ifaceNil)) { + $s = -1; return; + } + _ref = node; + /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$1, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1] || $assertType(_ref, ptrType$5, true)[1] || $assertType(_ref, ptrType$6, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$19, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, ptrType$22, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, ptrType$23, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, ptrType$24, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 27; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 29; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 33; continue; } + /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 34; continue; } + /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 35; continue; } + /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 36; continue; } + /* */ if ($assertType(_ref, ptrType$37, true)[1]) { $s = 37; continue; } + /* */ if ($assertType(_ref, ptrType$38, true)[1]) { $s = 38; continue; } + /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 39; continue; } + /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 40; continue; } + /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 41; continue; } + /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 42; continue; } + /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 43; continue; } + /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 44; continue; } + /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 45; continue; } + /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 46; continue; } + /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 47; continue; } + /* */ if ($assertType(_ref, ptrType$48, true)[1]) { $s = 48; continue; } + /* */ if ($assertType(_ref, ptrType$49, true)[1]) { $s = 49; continue; } + /* */ if ($assertType(_ref, ptrType$50, true)[1]) { $s = 50; continue; } + /* */ if ($assertType(_ref, ptrType$51, true)[1]) { $s = 51; continue; } + /* */ if ($assertType(_ref, ptrType$52, true)[1]) { $s = 52; continue; } + /* */ if ($assertType(_ref, ptrType$53, true)[1]) { $s = 53; continue; } + /* */ if ($assertType(_ref, ptrType$54, true)[1]) { $s = 54; continue; } + /* */ if ($assertType(_ref, ptrType$55, true)[1]) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if ($assertType(_ref, ptrType, true)[1]) { */ case 2: + n = _ref.$val; + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$1, true)[1]) { */ case 3: + n$1 = _ref.$val; + _ref$1 = n$1.List; + _i = 0; + /* while (true) { */ case 58: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 59; continue; } + c = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + $r = Walk(v, c); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 58; continue; + case 59: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 4: + n$2 = _ref.$val; + /* */ if (!(n$2.Doc === ptrType$1.nil)) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (!(n$2.Doc === ptrType$1.nil)) { */ case 61: + $r = Walk(v, n$2.Doc); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 62: + $r = walkIdentList(v, n$2.Names); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(n$2.Type, $ifaceNil))) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!($interfaceIsEqual(n$2.Type, $ifaceNil))) { */ case 65: + $r = Walk(v, n$2.Type); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 66: + /* */ if (!(n$2.Tag === ptrType$6.nil)) { $s = 68; continue; } + /* */ $s = 69; continue; + /* if (!(n$2.Tag === ptrType$6.nil)) { */ case 68: + $r = Walk(v, n$2.Tag); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 69: + /* */ if (!(n$2.Comment === ptrType$1.nil)) { $s = 71; continue; } + /* */ $s = 72; continue; + /* if (!(n$2.Comment === ptrType$1.nil)) { */ case 71: + $r = Walk(v, n$2.Comment); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 72: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 5: + n$3 = _ref.$val; + _ref$2 = n$3.List; + _i$1 = 0; + /* while (true) { */ case 74: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 75; continue; } + f = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + $r = Walk(v, f); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 74; continue; + case 75: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1] || $assertType(_ref, ptrType$5, true)[1] || $assertType(_ref, ptrType$6, true)[1]) { */ case 6: + n$4 = _ref; + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$7, true)[1]) { */ case 7: + n$5 = _ref.$val; + /* */ if (!($interfaceIsEqual(n$5.Elt, $ifaceNil))) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (!($interfaceIsEqual(n$5.Elt, $ifaceNil))) { */ case 77: + $r = Walk(v, n$5.Elt); /* */ $s = 79; case 79: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 78: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 8: + n$6 = _ref.$val; + $r = Walk(v, n$6.Type); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Walk(v, n$6.Body); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 9: + n$7 = _ref.$val; + /* */ if (!($interfaceIsEqual(n$7.Type, $ifaceNil))) { $s = 82; continue; } + /* */ $s = 83; continue; + /* if (!($interfaceIsEqual(n$7.Type, $ifaceNil))) { */ case 82: + $r = Walk(v, n$7.Type); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 83: + $r = walkExprList(v, n$7.Elts); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 10: + n$8 = _ref.$val; + $r = Walk(v, n$8.X); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 11: + n$9 = _ref.$val; + $r = Walk(v, n$9.X); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Walk(v, n$9.Sel); /* */ $s = 88; case 88: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 12: + n$10 = _ref.$val; + $r = Walk(v, n$10.X); /* */ $s = 89; case 89: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Walk(v, n$10.Index); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 13: + n$11 = _ref.$val; + $r = Walk(v, n$11.X); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$3 = n$11.Indices; + _i$2 = 0; + /* while (true) { */ case 92: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 93; continue; } + index = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + $r = Walk(v, index); /* */ $s = 94; case 94: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 92; continue; + case 93: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 14: + n$12 = _ref.$val; + $r = Walk(v, n$12.X); /* */ $s = 95; case 95: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(n$12.Low, $ifaceNil))) { $s = 96; continue; } + /* */ $s = 97; continue; + /* if (!($interfaceIsEqual(n$12.Low, $ifaceNil))) { */ case 96: + $r = Walk(v, n$12.Low); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 97: + /* */ if (!($interfaceIsEqual(n$12.High, $ifaceNil))) { $s = 99; continue; } + /* */ $s = 100; continue; + /* if (!($interfaceIsEqual(n$12.High, $ifaceNil))) { */ case 99: + $r = Walk(v, n$12.High); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 100: + /* */ if (!($interfaceIsEqual(n$12.Max, $ifaceNil))) { $s = 102; continue; } + /* */ $s = 103; continue; + /* if (!($interfaceIsEqual(n$12.Max, $ifaceNil))) { */ case 102: + $r = Walk(v, n$12.Max); /* */ $s = 104; case 104: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 103: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 15: + n$13 = _ref.$val; + $r = Walk(v, n$13.X); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(n$13.Type, $ifaceNil))) { $s = 106; continue; } + /* */ $s = 107; continue; + /* if (!($interfaceIsEqual(n$13.Type, $ifaceNil))) { */ case 106: + $r = Walk(v, n$13.Type); /* */ $s = 108; case 108: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 107: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 16: + n$14 = _ref.$val; + $r = Walk(v, n$14.Fun); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = walkExprList(v, n$14.Args); /* */ $s = 110; case 110: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 17: + n$15 = _ref.$val; + $r = Walk(v, n$15.X); /* */ $s = 111; case 111: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 18: + n$16 = _ref.$val; + $r = Walk(v, n$16.X); /* */ $s = 112; case 112: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$19, true)[1]) { */ case 19: + n$17 = _ref.$val; + $r = Walk(v, n$17.X); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Walk(v, n$17.Y); /* */ $s = 114; case 114: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 20: + n$18 = _ref.$val; + $r = Walk(v, n$18.Key); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Walk(v, n$18.Value); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 21: + n$19 = _ref.$val; + /* */ if (!($interfaceIsEqual(n$19.Len, $ifaceNil))) { $s = 117; continue; } + /* */ $s = 118; continue; + /* if (!($interfaceIsEqual(n$19.Len, $ifaceNil))) { */ case 117: + $r = Walk(v, n$19.Len); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 118: + $r = Walk(v, n$19.Elt); /* */ $s = 120; case 120: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$22, true)[1]) { */ case 22: + n$20 = _ref.$val; + $r = Walk(v, n$20.Fields); /* */ $s = 121; case 121: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$23, true)[1]) { */ case 23: + n$21 = _ref.$val; + /* */ if (!(n$21.TypeParams === ptrType$3.nil)) { $s = 122; continue; } + /* */ $s = 123; continue; + /* if (!(n$21.TypeParams === ptrType$3.nil)) { */ case 122: + $r = Walk(v, n$21.TypeParams); /* */ $s = 124; case 124: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 123: + /* */ if (!(n$21.Params === ptrType$3.nil)) { $s = 125; continue; } + /* */ $s = 126; continue; + /* if (!(n$21.Params === ptrType$3.nil)) { */ case 125: + $r = Walk(v, n$21.Params); /* */ $s = 127; case 127: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 126: + /* */ if (!(n$21.Results === ptrType$3.nil)) { $s = 128; continue; } + /* */ $s = 129; continue; + /* if (!(n$21.Results === ptrType$3.nil)) { */ case 128: + $r = Walk(v, n$21.Results); /* */ $s = 130; case 130: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 129: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$24, true)[1]) { */ case 24: + n$22 = _ref.$val; + $r = Walk(v, n$22.Methods); /* */ $s = 131; case 131: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 25: + n$23 = _ref.$val; + $r = Walk(v, n$23.Key); /* */ $s = 132; case 132: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Walk(v, n$23.Value); /* */ $s = 133; case 133: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 26: + n$24 = _ref.$val; + $r = Walk(v, n$24.Value); /* */ $s = 134; case 134: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 27: + n$25 = _ref.$val; + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 28: + n$26 = _ref.$val; + $r = Walk(v, n$26.Decl); /* */ $s = 135; case 135: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 29: + n$27 = _ref.$val; + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 30: + n$28 = _ref.$val; + $r = Walk(v, n$28.Label); /* */ $s = 136; case 136: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Walk(v, n$28.Stmt); /* */ $s = 137; case 137: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$31, true)[1]) { */ case 31: + n$29 = _ref.$val; + $r = Walk(v, n$29.X); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 32: + n$30 = _ref.$val; + $r = Walk(v, n$30.Chan); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Walk(v, n$30.Value); /* */ $s = 140; case 140: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 33: + n$31 = _ref.$val; + $r = Walk(v, n$31.X); /* */ $s = 141; case 141: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 34: + n$32 = _ref.$val; + $r = walkExprList(v, n$32.Lhs); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = walkExprList(v, n$32.Rhs); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$35, true)[1]) { */ case 35: + n$33 = _ref.$val; + $r = Walk(v, n$33.Call); /* */ $s = 144; case 144: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 36: + n$34 = _ref.$val; + $r = Walk(v, n$34.Call); /* */ $s = 145; case 145: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$37, true)[1]) { */ case 37: + n$35 = _ref.$val; + $r = walkExprList(v, n$35.Results); /* */ $s = 146; case 146: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$38, true)[1]) { */ case 38: + n$36 = _ref.$val; + /* */ if (!(n$36.Label === ptrType$5.nil)) { $s = 147; continue; } + /* */ $s = 148; continue; + /* if (!(n$36.Label === ptrType$5.nil)) { */ case 147: + $r = Walk(v, n$36.Label); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 148: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 39: + n$37 = _ref.$val; + $r = walkStmtList(v, n$37.List); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 40: + n$38 = _ref.$val; + /* */ if (!($interfaceIsEqual(n$38.Init, $ifaceNil))) { $s = 151; continue; } + /* */ $s = 152; continue; + /* if (!($interfaceIsEqual(n$38.Init, $ifaceNil))) { */ case 151: + $r = Walk(v, n$38.Init); /* */ $s = 153; case 153: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 152: + $r = Walk(v, n$38.Cond); /* */ $s = 154; case 154: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Walk(v, n$38.Body); /* */ $s = 155; case 155: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(n$38.Else, $ifaceNil))) { $s = 156; continue; } + /* */ $s = 157; continue; + /* if (!($interfaceIsEqual(n$38.Else, $ifaceNil))) { */ case 156: + $r = Walk(v, n$38.Else); /* */ $s = 158; case 158: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 157: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 41: + n$39 = _ref.$val; + $r = walkExprList(v, n$39.List); /* */ $s = 159; case 159: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = walkStmtList(v, n$39.Body); /* */ $s = 160; case 160: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 42: + n$40 = _ref.$val; + /* */ if (!($interfaceIsEqual(n$40.Init, $ifaceNil))) { $s = 161; continue; } + /* */ $s = 162; continue; + /* if (!($interfaceIsEqual(n$40.Init, $ifaceNil))) { */ case 161: + $r = Walk(v, n$40.Init); /* */ $s = 163; case 163: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 162: + /* */ if (!($interfaceIsEqual(n$40.Tag, $ifaceNil))) { $s = 164; continue; } + /* */ $s = 165; continue; + /* if (!($interfaceIsEqual(n$40.Tag, $ifaceNil))) { */ case 164: + $r = Walk(v, n$40.Tag); /* */ $s = 166; case 166: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 165: + $r = Walk(v, n$40.Body); /* */ $s = 167; case 167: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 43: + n$41 = _ref.$val; + /* */ if (!($interfaceIsEqual(n$41.Init, $ifaceNil))) { $s = 168; continue; } + /* */ $s = 169; continue; + /* if (!($interfaceIsEqual(n$41.Init, $ifaceNil))) { */ case 168: + $r = Walk(v, n$41.Init); /* */ $s = 170; case 170: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 169: + $r = Walk(v, n$41.Assign); /* */ $s = 171; case 171: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Walk(v, n$41.Body); /* */ $s = 172; case 172: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 44: + n$42 = _ref.$val; + /* */ if (!($interfaceIsEqual(n$42.Comm, $ifaceNil))) { $s = 173; continue; } + /* */ $s = 174; continue; + /* if (!($interfaceIsEqual(n$42.Comm, $ifaceNil))) { */ case 173: + $r = Walk(v, n$42.Comm); /* */ $s = 175; case 175: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 174: + $r = walkStmtList(v, n$42.Body); /* */ $s = 176; case 176: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 45: + n$43 = _ref.$val; + $r = Walk(v, n$43.Body); /* */ $s = 177; case 177: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 46: + n$44 = _ref.$val; + /* */ if (!($interfaceIsEqual(n$44.Init, $ifaceNil))) { $s = 178; continue; } + /* */ $s = 179; continue; + /* if (!($interfaceIsEqual(n$44.Init, $ifaceNil))) { */ case 178: + $r = Walk(v, n$44.Init); /* */ $s = 180; case 180: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 179: + /* */ if (!($interfaceIsEqual(n$44.Cond, $ifaceNil))) { $s = 181; continue; } + /* */ $s = 182; continue; + /* if (!($interfaceIsEqual(n$44.Cond, $ifaceNil))) { */ case 181: + $r = Walk(v, n$44.Cond); /* */ $s = 183; case 183: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 182: + /* */ if (!($interfaceIsEqual(n$44.Post, $ifaceNil))) { $s = 184; continue; } + /* */ $s = 185; continue; + /* if (!($interfaceIsEqual(n$44.Post, $ifaceNil))) { */ case 184: + $r = Walk(v, n$44.Post); /* */ $s = 186; case 186: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 185: + $r = Walk(v, n$44.Body); /* */ $s = 187; case 187: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 47: + n$45 = _ref.$val; + /* */ if (!($interfaceIsEqual(n$45.Key, $ifaceNil))) { $s = 188; continue; } + /* */ $s = 189; continue; + /* if (!($interfaceIsEqual(n$45.Key, $ifaceNil))) { */ case 188: + $r = Walk(v, n$45.Key); /* */ $s = 190; case 190: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 189: + /* */ if (!($interfaceIsEqual(n$45.Value, $ifaceNil))) { $s = 191; continue; } + /* */ $s = 192; continue; + /* if (!($interfaceIsEqual(n$45.Value, $ifaceNil))) { */ case 191: + $r = Walk(v, n$45.Value); /* */ $s = 193; case 193: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 192: + $r = Walk(v, n$45.X); /* */ $s = 194; case 194: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Walk(v, n$45.Body); /* */ $s = 195; case 195: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$48, true)[1]) { */ case 48: + n$46 = _ref.$val; + /* */ if (!(n$46.Doc === ptrType$1.nil)) { $s = 196; continue; } + /* */ $s = 197; continue; + /* if (!(n$46.Doc === ptrType$1.nil)) { */ case 196: + $r = Walk(v, n$46.Doc); /* */ $s = 198; case 198: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 197: + /* */ if (!(n$46.Name === ptrType$5.nil)) { $s = 199; continue; } + /* */ $s = 200; continue; + /* if (!(n$46.Name === ptrType$5.nil)) { */ case 199: + $r = Walk(v, n$46.Name); /* */ $s = 201; case 201: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 200: + $r = Walk(v, n$46.Path); /* */ $s = 202; case 202: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(n$46.Comment === ptrType$1.nil)) { $s = 203; continue; } + /* */ $s = 204; continue; + /* if (!(n$46.Comment === ptrType$1.nil)) { */ case 203: + $r = Walk(v, n$46.Comment); /* */ $s = 205; case 205: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 204: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$49, true)[1]) { */ case 49: + n$47 = _ref.$val; + /* */ if (!(n$47.Doc === ptrType$1.nil)) { $s = 206; continue; } + /* */ $s = 207; continue; + /* if (!(n$47.Doc === ptrType$1.nil)) { */ case 206: + $r = Walk(v, n$47.Doc); /* */ $s = 208; case 208: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 207: + $r = walkIdentList(v, n$47.Names); /* */ $s = 209; case 209: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(n$47.Type, $ifaceNil))) { $s = 210; continue; } + /* */ $s = 211; continue; + /* if (!($interfaceIsEqual(n$47.Type, $ifaceNil))) { */ case 210: + $r = Walk(v, n$47.Type); /* */ $s = 212; case 212: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 211: + $r = walkExprList(v, n$47.Values); /* */ $s = 213; case 213: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(n$47.Comment === ptrType$1.nil)) { $s = 214; continue; } + /* */ $s = 215; continue; + /* if (!(n$47.Comment === ptrType$1.nil)) { */ case 214: + $r = Walk(v, n$47.Comment); /* */ $s = 216; case 216: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 215: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$50, true)[1]) { */ case 50: + n$48 = _ref.$val; + /* */ if (!(n$48.Doc === ptrType$1.nil)) { $s = 217; continue; } + /* */ $s = 218; continue; + /* if (!(n$48.Doc === ptrType$1.nil)) { */ case 217: + $r = Walk(v, n$48.Doc); /* */ $s = 219; case 219: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 218: + $r = Walk(v, n$48.Name); /* */ $s = 220; case 220: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(n$48.TypeParams === ptrType$3.nil)) { $s = 221; continue; } + /* */ $s = 222; continue; + /* if (!(n$48.TypeParams === ptrType$3.nil)) { */ case 221: + $r = Walk(v, n$48.TypeParams); /* */ $s = 223; case 223: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 222: + $r = Walk(v, n$48.Type); /* */ $s = 224; case 224: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(n$48.Comment === ptrType$1.nil)) { $s = 225; continue; } + /* */ $s = 226; continue; + /* if (!(n$48.Comment === ptrType$1.nil)) { */ case 225: + $r = Walk(v, n$48.Comment); /* */ $s = 227; case 227: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 226: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$51, true)[1]) { */ case 51: + n$49 = _ref.$val; + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$52, true)[1]) { */ case 52: + n$50 = _ref.$val; + /* */ if (!(n$50.Doc === ptrType$1.nil)) { $s = 228; continue; } + /* */ $s = 229; continue; + /* if (!(n$50.Doc === ptrType$1.nil)) { */ case 228: + $r = Walk(v, n$50.Doc); /* */ $s = 230; case 230: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 229: + _ref$4 = n$50.Specs; + _i$3 = 0; + /* while (true) { */ case 231: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 232; continue; } + s = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + $r = Walk(v, s); /* */ $s = 233; case 233: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$3++; + $s = 231; continue; + case 232: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$53, true)[1]) { */ case 53: + n$51 = _ref.$val; + /* */ if (!(n$51.Doc === ptrType$1.nil)) { $s = 234; continue; } + /* */ $s = 235; continue; + /* if (!(n$51.Doc === ptrType$1.nil)) { */ case 234: + $r = Walk(v, n$51.Doc); /* */ $s = 236; case 236: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 235: + /* */ if (!(n$51.Recv === ptrType$3.nil)) { $s = 237; continue; } + /* */ $s = 238; continue; + /* if (!(n$51.Recv === ptrType$3.nil)) { */ case 237: + $r = Walk(v, n$51.Recv); /* */ $s = 239; case 239: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 238: + $r = Walk(v, n$51.Name); /* */ $s = 240; case 240: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Walk(v, n$51.Type); /* */ $s = 241; case 241: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(n$51.Body === ptrType$39.nil)) { $s = 242; continue; } + /* */ $s = 243; continue; + /* if (!(n$51.Body === ptrType$39.nil)) { */ case 242: + $r = Walk(v, n$51.Body); /* */ $s = 244; case 244: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 243: + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$54, true)[1]) { */ case 54: + n$52 = _ref.$val; + /* */ if (!(n$52.Doc === ptrType$1.nil)) { $s = 245; continue; } + /* */ $s = 246; continue; + /* if (!(n$52.Doc === ptrType$1.nil)) { */ case 245: + $r = Walk(v, n$52.Doc); /* */ $s = 247; case 247: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 246: + $r = Walk(v, n$52.Name); /* */ $s = 248; case 248: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = walkDeclList(v, n$52.Decls); /* */ $s = 249; case 249: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 57; continue; + /* } else if ($assertType(_ref, ptrType$55, true)[1]) { */ case 55: + n$53 = _ref.$val; + _ref$5 = n$53.Files; + _i$4 = 0; + _keys = _ref$5 ? _ref$5.keys() : undefined; + _size = _ref$5 ? _ref$5.size : 0; + /* while (true) { */ case 250: + /* if (!(_i$4 < _size)) { break; } */ if(!(_i$4 < _size)) { $s = 251; continue; } + _key = _keys.next().value; + _entry = _ref$5.get(_key); + if (_entry === undefined) { + _i$4++; + /* continue; */ $s = 250; continue; + } + f$1 = _entry.v; + $r = Walk(v, f$1); /* */ $s = 252; case 252: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$4++; + $s = 250; continue; + case 251: + $s = 57; continue; + /* } else { */ case 56: + n$54 = _ref; + _r$1 = fmt.Sprintf("ast.Walk: unexpected node type %T", new sliceType$1([n$54])); /* */ $s = 253; case 253: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 57: + _r$2 = v.Visit($ifaceNil); /* */ $s = 254; case 254: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return; + /* */ } return; } var $f = {$blk: Walk$1, $c: true, $r, _entry, _i, _i$1, _i$2, _i$3, _i$4, _key, _keys, _r, _r$1, _r$2, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, c, f, f$1, index, n, n$1, n$10, n$11, n$12, n$13, n$14, n$15, n$16, n$17, n$18, n$19, n$2, n$20, n$21, n$22, n$23, n$24, n$25, n$26, n$27, n$28, n$29, n$3, n$30, n$31, n$32, n$33, n$34, n$35, n$36, n$37, n$38, n$39, n$4, n$40, n$41, n$42, n$43, n$44, n$45, n$46, n$47, n$48, n$49, n$5, n$50, n$51, n$52, n$53, n$54, n$6, n$7, n$8, n$9, node, s, v, $s};return $f; + }; + $pkg.Walk = Walk; + NewScope = function NewScope$1(outer) { + var outer; + return new Scope.ptr(outer, new $global.Map()); + }; + $pkg.NewScope = NewScope; + $ptrType(Scope).prototype.Lookup = function Lookup(name) { + var _entry, name, s; + s = this; + return (_entry = $mapIndex(s.Objects,$String.keyFor(name)), _entry !== undefined ? _entry.v : ptrType$56.nil); + }; + $ptrType(Scope).prototype.Insert = function Insert(obj) { + var _entry, _key, alt, obj, s; + alt = ptrType$56.nil; + s = this; + alt = (_entry = $mapIndex(s.Objects,$String.keyFor(obj.Name)), _entry !== undefined ? _entry.v : ptrType$56.nil); + if (alt === ptrType$56.nil) { + _key = obj.Name; (s.Objects || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: obj }); + } + return alt; + }; + $ptrType(Scope).prototype.String = function String() { + var {_entry, _i, _key, _keys, _r, _r$1, _r$2, _r$3, _ref, _size, buf, obj, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + s = this; + buf[0] = new bytes.Buffer.ptr(sliceType.nil, 0, 0); + _r = fmt.Fprintf(buf[0], "scope %p {", new sliceType$1([s])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* */ if (!(s === ptrType$57.nil) && (s.Objects ? s.Objects.size : 0) > 0) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(s === ptrType$57.nil) && (s.Objects ? s.Objects.size : 0) > 0) { */ case 2: + _r$1 = fmt.Fprintln(buf[0], sliceType$1.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _ref = s.Objects; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + /* while (true) { */ case 5: + /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 6; continue; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + /* continue; */ $s = 5; continue; + } + obj = _entry.v; + _r$2 = fmt.Fprintf(buf[0], "\t%s %s\n", new sliceType$1([new ObjKind(obj.Kind), new $String(obj.Name)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _i++; + $s = 5; continue; + case 6: + /* } */ case 3: + _r$3 = fmt.Fprintf(buf[0], "}\n", sliceType$1.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: String, $c: true, $r, _entry, _i, _key, _keys, _r, _r$1, _r$2, _r$3, _ref, _size, buf, obj, s, $s};return $f; + }; + NewObj = function NewObj$1(kind, name) { + var kind, name; + return new Object.ptr(kind, name, $ifaceNil, $ifaceNil, $ifaceNil); + }; + $pkg.NewObj = NewObj; + $ptrType(Object).prototype.Pos = function Pos() { + var _i, _i$1, _i$2, _ref, _ref$1, _ref$2, _ref$3, _tuple, d, d$1, d$2, d$3, d$4, d$5, d$6, d$7, ident, isIdent, n, n$1, name, obj, x; + obj = this; + name = obj.Name; + _ref = obj.Decl; + if ($assertType(_ref, ptrType$2, true)[1]) { + d = _ref.$val; + _ref$1 = d.Names; + _i = 0; + while (true) { + if (!(_i < _ref$1.$length)) { break; } + n = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + if (n.Name === name) { + return n.Pos(); + } + _i++; + } + } else if ($assertType(_ref, ptrType$48, true)[1]) { + d$1 = _ref.$val; + if (!(d$1.Name === ptrType$5.nil) && d$1.Name.Name === name) { + return d$1.Name.Pos(); + } + return d$1.Path.Pos(); + } else if ($assertType(_ref, ptrType$49, true)[1]) { + d$2 = _ref.$val; + _ref$2 = d$2.Names; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$2.$length)) { break; } + n$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + if (n$1.Name === name) { + return n$1.Pos(); + } + _i$1++; + } + } else if ($assertType(_ref, ptrType$50, true)[1]) { + d$3 = _ref.$val; + if (d$3.Name.Name === name) { + return d$3.Name.Pos(); + } + } else if ($assertType(_ref, ptrType$53, true)[1]) { + d$4 = _ref.$val; + if (d$4.Name.Name === name) { + return d$4.Name.Pos(); + } + } else if ($assertType(_ref, ptrType$30, true)[1]) { + d$5 = _ref.$val; + if (d$5.Label.Name === name) { + return d$5.Label.Pos(); + } + } else if ($assertType(_ref, ptrType$34, true)[1]) { + d$6 = _ref.$val; + _ref$3 = d$6.Lhs; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$3.$length)) { break; } + x = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + _tuple = $assertType(x, ptrType$5, true); + ident = _tuple[0]; + isIdent = _tuple[1]; + if (isIdent && ident.Name === name) { + return ident.Pos(); + } + _i$2++; + } + } else if ($assertType(_ref, ptrType$57, true)[1]) { + d$7 = _ref.$val; + } + return 0; + }; + ObjKind.prototype.String = function String$1() { + var kind; + kind = this.$val; + return ((kind < 0 || kind >= objKindStrings.length) ? ($throwRuntimeError("index out of range"), undefined) : objKindStrings[kind]); + }; + $ptrType(ObjKind).prototype.String = function(...$args) { return new ObjKind(this.$get()).String(...$args); }; + $ptrType(Comment).prototype.Pos = function Pos$1() { + var c; + c = this; + return c.Slash; + }; + $ptrType(Comment).prototype.End = function End() { + var c; + c = this; + return (((((c.Slash >> 0)) + c.Text.length >> 0) >> 0)); + }; + $ptrType(CommentGroup).prototype.Pos = function Pos$2() { + var g, x; + g = this; + return (x = g.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Pos(); + }; + $ptrType(CommentGroup).prototype.End = function End$1() { + var g, x, x$1; + g = this; + return (x = g.List, x$1 = g.List.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).End(); + }; + isWhitespace = function isWhitespace$1(ch) { + var ch; + return (ch === 32) || (ch === 9) || (ch === 10) || (ch === 13); + }; + stripTrailingWhitespace = function stripTrailingWhitespace$1(s) { + var i, s; + i = s.length; + while (true) { + if (!(i > 0 && isWhitespace(s.charCodeAt((i - 1 >> 0))))) { break; } + i = i - (1) >> 0; + } + return $substring(s, 0, i); + }; + $ptrType(CommentGroup).prototype.Text = function Text() { + var _1, _i, _i$1, _i$2, _i$3, _ref, _ref$1, _ref$2, _ref$3, c, c$1, cl, comments, g, i, l, line, lines, n, x, x$1; + g = this; + if (g === ptrType$1.nil) { + return ""; + } + comments = $makeSlice(sliceType$5, g.List.$length); + _ref = g.List; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= comments.$length) ? ($throwRuntimeError("index out of range"), undefined) : comments.$array[comments.$offset + i] = c.Text); + _i++; + } + lines = $makeSlice(sliceType$5, 0, 10); + _ref$1 = comments; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + switch (0) { default: + _1 = c$1.charCodeAt(1); + if (_1 === (47)) { + c$1 = $substring(c$1, 2); + if (c$1.length === 0) { + break; + } + if (c$1.charCodeAt(0) === 32) { + c$1 = $substring(c$1, 1); + break; + } + if (isDirective(c$1)) { + _i$1++; + continue; + } + } else if (_1 === (42)) { + c$1 = $substring(c$1, 2, (c$1.length - 2 >> 0)); + } + } + cl = strings.Split(c$1, "\n"); + _ref$2 = cl; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + l = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + lines = $append(lines, stripTrailingWhitespace(l)); + _i$2++; + } + _i$1++; + } + n = 0; + _ref$3 = lines; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + line = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + if (!(line === "") || n > 0 && !((x = n - 1 >> 0, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x])) === "")) { + ((n < 0 || n >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + n] = line); + n = n + (1) >> 0; + } + _i$3++; + } + lines = $subslice(lines, 0, n); + if (n > 0 && !((x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$1])) === "")) { + lines = $append(lines, ""); + } + return strings.Join(lines, "\n"); + }; + isDirective = function isDirective$1(c) { + var b, c, colon, i; + if (strings.HasPrefix(c, "line ") || strings.HasPrefix(c, "extern ") || strings.HasPrefix(c, "export ")) { + return true; + } + colon = strings.Index(c, ":"); + if (colon <= 0 || (colon + 1 >> 0) >= c.length) { + return false; + } + i = 0; + while (true) { + if (!(i <= (colon + 1 >> 0))) { break; } + if (i === colon) { + i = i + (1) >> 0; + continue; + } + b = c.charCodeAt(i); + if (!(97 <= b && b <= 122 || 48 <= b && b <= 57)) { + return false; + } + i = i + (1) >> 0; + } + return true; + }; + $ptrType(Field).prototype.Pos = function Pos$3() { + var {$24r, _r, f, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + if (f.Names.$length > 0) { + $s = -1; return (x = f.Names, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Pos(); + } + /* */ if (!($interfaceIsEqual(f.Type, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(f.Type, $ifaceNil))) { */ case 1: + _r = f.Type.Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return 0; + /* */ } return; } var $f = {$blk: Pos$3, $c: true, $r, $24r, _r, f, x, $s};return $f; + }; + $ptrType(Field).prototype.End = function End$2() { + var {$24r, _r, f, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + if (!(f.Tag === ptrType$6.nil)) { + $s = -1; return f.Tag.End(); + } + /* */ if (!($interfaceIsEqual(f.Type, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(f.Type, $ifaceNil))) { */ case 1: + _r = f.Type.End(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + if (f.Names.$length > 0) { + $s = -1; return (x = f.Names, x$1 = f.Names.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).End(); + } + $s = -1; return 0; + /* */ } return; } var $f = {$blk: End$2, $c: true, $r, $24r, _r, f, x, x$1, $s};return $f; + }; + $ptrType(FieldList).prototype.Pos = function Pos$4() { + var {$24r, _r, f, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + if (new token.Pos(f.Opening).IsValid()) { + $s = -1; return f.Opening; + } + /* */ if (f.List.$length > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (f.List.$length > 0) { */ case 1: + _r = (x = f.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return 0; + /* */ } return; } var $f = {$blk: Pos$4, $c: true, $r, $24r, _r, f, x, $s};return $f; + }; + $ptrType(FieldList).prototype.End = function End$3() { + var {$24r, _r, f, n, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + if (new token.Pos(f.Closing).IsValid()) { + $s = -1; return f.Closing + 1 >> 0; + } + n = f.List.$length; + /* */ if (n > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n > 0) { */ case 1: + _r = (x = f.List, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).End(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return 0; + /* */ } return; } var $f = {$blk: End$3, $c: true, $r, $24r, _r, f, n, x, x$1, $s};return $f; + }; + $ptrType(FieldList).prototype.NumFields = function NumFields() { + var _i, _ref, f, g, m, n; + f = this; + n = 0; + if (!(f === ptrType$3.nil)) { + _ref = f.List; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + g = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + m = g.Names.$length; + if (m === 0) { + m = 1; + } + n = n + (m) >> 0; + _i++; + } + } + return n; + }; + $ptrType(BadExpr).prototype.Pos = function Pos$5() { + var x; + x = this; + return x.From; + }; + $ptrType(Ident).prototype.Pos = function Pos$6() { + var x; + x = this; + return x.NamePos; + }; + $ptrType(Ellipsis).prototype.Pos = function Pos$7() { + var x; + x = this; + return x.Ellipsis; + }; + $ptrType(BasicLit).prototype.Pos = function Pos$8() { + var x; + x = this; + return x.ValuePos; + }; + $ptrType(FuncLit).prototype.Pos = function Pos$9() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.Type.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$9, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(CompositeLit).prototype.Pos = function Pos$10() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (!($interfaceIsEqual(x.Type, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(x.Type, $ifaceNil))) { */ case 1: + _r = x.Type.Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return x.Lbrace; + /* */ } return; } var $f = {$blk: Pos$10, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(ParenExpr).prototype.Pos = function Pos$11() { + var x; + x = this; + return x.Lparen; + }; + $ptrType(SelectorExpr).prototype.Pos = function Pos$12() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$12, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(IndexExpr).prototype.Pos = function Pos$13() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$13, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(IndexListExpr).prototype.Pos = function Pos$14() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$14, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(SliceExpr).prototype.Pos = function Pos$15() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$15, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(TypeAssertExpr).prototype.Pos = function Pos$16() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$16, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(CallExpr).prototype.Pos = function Pos$17() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.Fun.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$17, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(StarExpr).prototype.Pos = function Pos$18() { + var x; + x = this; + return x.Star; + }; + $ptrType(UnaryExpr).prototype.Pos = function Pos$19() { + var x; + x = this; + return x.OpPos; + }; + $ptrType(BinaryExpr).prototype.Pos = function Pos$20() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$20, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(KeyValueExpr).prototype.Pos = function Pos$21() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.Key.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$21, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(ArrayType).prototype.Pos = function Pos$22() { + var x; + x = this; + return x.Lbrack; + }; + $ptrType(StructType).prototype.Pos = function Pos$23() { + var x; + x = this; + return x.Struct; + }; + $ptrType(FuncType).prototype.Pos = function Pos$24() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (new token.Pos(x.Func).IsValid() || x.Params === ptrType$3.nil) { + $s = -1; return x.Func; + } + _r = x.Params.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$24, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(InterfaceType).prototype.Pos = function Pos$25() { + var x; + x = this; + return x.Interface; + }; + $ptrType(MapType).prototype.Pos = function Pos$26() { + var x; + x = this; + return x.Map; + }; + $ptrType(ChanType).prototype.Pos = function Pos$27() { + var x; + x = this; + return x.Begin; + }; + $ptrType(BadExpr).prototype.End = function End$4() { + var x; + x = this; + return x.To; + }; + $ptrType(Ident).prototype.End = function End$5() { + var x; + x = this; + return (((((x.NamePos >> 0)) + x.Name.length >> 0) >> 0)); + }; + $ptrType(Ellipsis).prototype.End = function End$6() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (!($interfaceIsEqual(x.Elt, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(x.Elt, $ifaceNil))) { */ case 1: + _r = x.Elt.End(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return x.Ellipsis + 3 >> 0; + /* */ } return; } var $f = {$blk: End$6, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(BasicLit).prototype.End = function End$7() { + var x; + x = this; + return (((((x.ValuePos >> 0)) + x.Value.length >> 0) >> 0)); + }; + $ptrType(FuncLit).prototype.End = function End$8() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.Body.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$8, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(CompositeLit).prototype.End = function End$9() { + var x; + x = this; + return x.Rbrace + 1 >> 0; + }; + $ptrType(ParenExpr).prototype.End = function End$10() { + var x; + x = this; + return x.Rparen + 1 >> 0; + }; + $ptrType(SelectorExpr).prototype.End = function End$11() { + var x; + x = this; + return x.Sel.End(); + }; + $ptrType(IndexExpr).prototype.End = function End$12() { + var x; + x = this; + return x.Rbrack + 1 >> 0; + }; + $ptrType(IndexListExpr).prototype.End = function End$13() { + var x; + x = this; + return x.Rbrack + 1 >> 0; + }; + $ptrType(SliceExpr).prototype.End = function End$14() { + var x; + x = this; + return x.Rbrack + 1 >> 0; + }; + $ptrType(TypeAssertExpr).prototype.End = function End$15() { + var x; + x = this; + return x.Rparen + 1 >> 0; + }; + $ptrType(CallExpr).prototype.End = function End$16() { + var x; + x = this; + return x.Rparen + 1 >> 0; + }; + $ptrType(StarExpr).prototype.End = function End$17() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$17, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(UnaryExpr).prototype.End = function End$18() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$18, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(BinaryExpr).prototype.End = function End$19() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.Y.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$19, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(KeyValueExpr).prototype.End = function End$20() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.Value.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$20, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(ArrayType).prototype.End = function End$21() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.Elt.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$21, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(StructType).prototype.End = function End$22() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.Fields.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$22, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(FuncType).prototype.End = function End$23() { + var {$24r, $24r$1, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (!(x.Results === ptrType$3.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(x.Results === ptrType$3.nil)) { */ case 1: + _r = x.Results.End(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = x.Params.End(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: End$23, $c: true, $r, $24r, $24r$1, _r, _r$1, x, $s};return $f; + }; + $ptrType(InterfaceType).prototype.End = function End$24() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.Methods.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$24, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(MapType).prototype.End = function End$25() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.Value.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$25, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(ChanType).prototype.End = function End$26() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.Value.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$26, $c: true, $r, $24r, _r, x, $s};return $f; + }; + NewIdent = function NewIdent$1(name) { + var name; + return new Ident.ptr(0, name, ptrType$56.nil); + }; + $pkg.NewIdent = NewIdent; + $ptrType(Ident).prototype.IsExported = function IsExported$2() { + var id; + id = this; + return token.IsExported(id.Name); + }; + $ptrType(Ident).prototype.String = function String$3() { + var id; + id = this; + if (!(id === ptrType$5.nil)) { + return id.Name; + } + return ""; + }; + $ptrType(BadStmt).prototype.Pos = function Pos$28() { + var s; + s = this; + return s.From; + }; + $ptrType(DeclStmt).prototype.Pos = function Pos$29() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.Decl.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$29, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(EmptyStmt).prototype.Pos = function Pos$30() { + var s; + s = this; + return s.Semicolon; + }; + $ptrType(LabeledStmt).prototype.Pos = function Pos$31() { + var s; + s = this; + return s.Label.Pos(); + }; + $ptrType(ExprStmt).prototype.Pos = function Pos$32() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.X.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$32, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(SendStmt).prototype.Pos = function Pos$33() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.Chan.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$33, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(IncDecStmt).prototype.Pos = function Pos$34() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.X.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$34, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(AssignStmt).prototype.Pos = function Pos$35() { + var {$24r, _r, s, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = (x = s.Lhs, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$35, $c: true, $r, $24r, _r, s, x, $s};return $f; + }; + $ptrType(GoStmt).prototype.Pos = function Pos$36() { + var s; + s = this; + return s.Go; + }; + $ptrType(DeferStmt).prototype.Pos = function Pos$37() { + var s; + s = this; + return s.Defer; + }; + $ptrType(ReturnStmt).prototype.Pos = function Pos$38() { + var s; + s = this; + return s.Return; + }; + $ptrType(BranchStmt).prototype.Pos = function Pos$39() { + var s; + s = this; + return s.TokPos; + }; + $ptrType(BlockStmt).prototype.Pos = function Pos$40() { + var s; + s = this; + return s.Lbrace; + }; + $ptrType(IfStmt).prototype.Pos = function Pos$41() { + var s; + s = this; + return s.If; + }; + $ptrType(CaseClause).prototype.Pos = function Pos$42() { + var s; + s = this; + return s.Case; + }; + $ptrType(SwitchStmt).prototype.Pos = function Pos$43() { + var s; + s = this; + return s.Switch; + }; + $ptrType(TypeSwitchStmt).prototype.Pos = function Pos$44() { + var s; + s = this; + return s.Switch; + }; + $ptrType(CommClause).prototype.Pos = function Pos$45() { + var s; + s = this; + return s.Case; + }; + $ptrType(SelectStmt).prototype.Pos = function Pos$46() { + var s; + s = this; + return s.Select; + }; + $ptrType(ForStmt).prototype.Pos = function Pos$47() { + var s; + s = this; + return s.For; + }; + $ptrType(RangeStmt).prototype.Pos = function Pos$48() { + var s; + s = this; + return s.For; + }; + $ptrType(BadStmt).prototype.End = function End$27() { + var s; + s = this; + return s.To; + }; + $ptrType(DeclStmt).prototype.End = function End$28() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.Decl.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$28, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(EmptyStmt).prototype.End = function End$29() { + var s; + s = this; + if (s.Implicit) { + return s.Semicolon; + } + return s.Semicolon + 1 >> 0; + }; + $ptrType(LabeledStmt).prototype.End = function End$30() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.Stmt.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$30, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(ExprStmt).prototype.End = function End$31() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.X.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$31, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(SendStmt).prototype.End = function End$32() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.Value.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$32, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(IncDecStmt).prototype.End = function End$33() { + var s; + s = this; + return s.TokPos + 2 >> 0; + }; + $ptrType(AssignStmt).prototype.End = function End$34() { + var {$24r, _r, s, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = (x = s.Rhs, x$1 = s.Rhs.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$34, $c: true, $r, $24r, _r, s, x, x$1, $s};return $f; + }; + $ptrType(GoStmt).prototype.End = function End$35() { + var s; + s = this; + return s.Call.End(); + }; + $ptrType(DeferStmt).prototype.End = function End$36() { + var s; + s = this; + return s.Call.End(); + }; + $ptrType(ReturnStmt).prototype.End = function End$37() { + var {$24r, _r, n, s, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + n = s.Results.$length; + /* */ if (n > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n > 0) { */ case 1: + _r = (x = s.Results, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).End(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return s.Return + 6 >> 0; + /* */ } return; } var $f = {$blk: End$37, $c: true, $r, $24r, _r, n, s, x, x$1, $s};return $f; + }; + $ptrType(BranchStmt).prototype.End = function End$38() { + var s; + s = this; + if (!(s.Label === ptrType$5.nil)) { + return s.Label.End(); + } + return (((((s.TokPos >> 0)) + new token.Token(s.Tok).String().length >> 0) >> 0)); + }; + $ptrType(BlockStmt).prototype.End = function End$39() { + var {$24r, _r, n, s, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + if (new token.Pos(s.Rbrace).IsValid()) { + $s = -1; return s.Rbrace + 1 >> 0; + } + n = s.List.$length; + /* */ if (n > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n > 0) { */ case 1: + _r = (x = s.List, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).End(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return s.Lbrace + 1 >> 0; + /* */ } return; } var $f = {$blk: End$39, $c: true, $r, $24r, _r, n, s, x, x$1, $s};return $f; + }; + $ptrType(IfStmt).prototype.End = function End$40() { + var {$24r, $24r$1, _r, _r$1, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (!($interfaceIsEqual(s.Else, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(s.Else, $ifaceNil))) { */ case 1: + _r = s.Else.End(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = s.Body.End(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: End$40, $c: true, $r, $24r, $24r$1, _r, _r$1, s, $s};return $f; + }; + $ptrType(CaseClause).prototype.End = function End$41() { + var {$24r, _r, n, s, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + n = s.Body.$length; + /* */ if (n > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n > 0) { */ case 1: + _r = (x = s.Body, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).End(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return s.Colon + 1 >> 0; + /* */ } return; } var $f = {$blk: End$41, $c: true, $r, $24r, _r, n, s, x, x$1, $s};return $f; + }; + $ptrType(SwitchStmt).prototype.End = function End$42() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.Body.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$42, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(TypeSwitchStmt).prototype.End = function End$43() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.Body.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$43, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(CommClause).prototype.End = function End$44() { + var {$24r, _r, n, s, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + n = s.Body.$length; + /* */ if (n > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n > 0) { */ case 1: + _r = (x = s.Body, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).End(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return s.Colon + 1 >> 0; + /* */ } return; } var $f = {$blk: End$44, $c: true, $r, $24r, _r, n, s, x, x$1, $s};return $f; + }; + $ptrType(SelectStmt).prototype.End = function End$45() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.Body.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$45, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(ForStmt).prototype.End = function End$46() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.Body.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$46, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(RangeStmt).prototype.End = function End$47() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.Body.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$47, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(ImportSpec).prototype.Pos = function Pos$49() { + var s; + s = this; + if (!(s.Name === ptrType$5.nil)) { + return s.Name.Pos(); + } + return s.Path.Pos(); + }; + $ptrType(ValueSpec).prototype.Pos = function Pos$50() { + var s, x; + s = this; + return (x = s.Names, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Pos(); + }; + $ptrType(TypeSpec).prototype.Pos = function Pos$51() { + var s; + s = this; + return s.Name.Pos(); + }; + $ptrType(ImportSpec).prototype.End = function End$48() { + var s; + s = this; + if (!((s.EndPos === 0))) { + return s.EndPos; + } + return s.Path.End(); + }; + $ptrType(ValueSpec).prototype.End = function End$49() { + var {$24r, $24r$1, _r, _r$1, n, s, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + n = s.Values.$length; + /* */ if (n > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n > 0) { */ case 1: + _r = (x = s.Values, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).End(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + /* */ if (!($interfaceIsEqual(s.Type, $ifaceNil))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!($interfaceIsEqual(s.Type, $ifaceNil))) { */ case 5: + _r$1 = s.Type.End(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 8; case 8: return $24r$1; + /* } */ case 6: + $s = -1; return (x$2 = s.Names, x$3 = s.Names.$length - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).End(); + /* */ } return; } var $f = {$blk: End$49, $c: true, $r, $24r, $24r$1, _r, _r$1, n, s, x, x$1, x$2, x$3, $s};return $f; + }; + $ptrType(TypeSpec).prototype.End = function End$50() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = s.Type.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$50, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(BadDecl).prototype.Pos = function Pos$52() { + var d; + d = this; + return d.From; + }; + $ptrType(GenDecl).prototype.Pos = function Pos$53() { + var d; + d = this; + return d.TokPos; + }; + $ptrType(FuncDecl).prototype.Pos = function Pos$54() { + var {$24r, _r, d, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + _r = d.Type.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$54, $c: true, $r, $24r, _r, d, $s};return $f; + }; + $ptrType(BadDecl).prototype.End = function End$51() { + var d; + d = this; + return d.To; + }; + $ptrType(GenDecl).prototype.End = function End$52() { + var {$24r, _r, d, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + if (new token.Pos(d.Rparen).IsValid()) { + $s = -1; return d.Rparen + 1 >> 0; + } + _r = (x = d.Specs, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: End$52, $c: true, $r, $24r, _r, d, x, $s};return $f; + }; + $ptrType(FuncDecl).prototype.End = function End$53() { + var {$24r, $24r$1, _r, _r$1, d, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + /* */ if (!(d.Body === ptrType$39.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(d.Body === ptrType$39.nil)) { */ case 1: + _r = d.Body.End(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = d.Type.End(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: End$53, $c: true, $r, $24r, $24r$1, _r, _r$1, d, $s};return $f; + }; + $ptrType(File).prototype.Pos = function Pos$55() { + var f; + f = this; + return f.Package; + }; + $ptrType(File).prototype.End = function End$54() { + var {$24r, _r, f, n, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + n = f.Decls.$length; + /* */ if (n > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n > 0) { */ case 1: + _r = (x = f.Decls, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).End(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return f.Name.End(); + /* */ } return; } var $f = {$blk: End$54, $c: true, $r, $24r, _r, f, n, x, x$1, $s};return $f; + }; + $ptrType(Package).prototype.Pos = function Pos$56() { + var p; + p = this; + return 0; + }; + $ptrType(Package).prototype.End = function End$55() { + var p; + p = this; + return 0; + }; + ptrType$57.methods = [{prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [ptrType$56], false)}, {prop: "Insert", name: "Insert", pkg: "", typ: $funcType([ptrType$56], [ptrType$56], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$56.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]; + ObjKind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}]; + ptrType$1.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Text", name: "Text", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}]; + ptrType$3.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "NumFields", name: "NumFields", pkg: "", typ: $funcType([], [$Int], false)}]; + ptrType$4.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$5.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}, {prop: "IsExported", name: "IsExported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$7.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$6.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$8.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$9.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$10.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$11.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$12.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$13.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$14.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$15.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$16.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$17.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$18.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$19.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$20.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$21.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$22.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$23.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$24.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$25.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$26.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$27.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$28.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$29.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$30.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$31.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$32.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$33.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$34.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$35.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$36.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$37.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$38.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$39.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$40.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$41.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$42.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$43.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$44.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$45.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$46.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$47.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$48.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "specNode", name: "specNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$49.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "specNode", name: "specNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$50.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "specNode", name: "specNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$51.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "declNode", name: "declNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$52.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "declNode", name: "declNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$53.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "declNode", name: "declNode", pkg: "go/ast", typ: $funcType([], [], false)}]; + ptrType$54.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}]; + ptrType$55.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}]; + Visitor.init([{prop: "Visit", name: "Visit", pkg: "", typ: $funcType([Node], [Visitor], false)}]); + Scope.init("", [{prop: "Outer", name: "Outer", embedded: false, exported: true, typ: ptrType$57, tag: ""}, {prop: "Objects", name: "Objects", embedded: false, exported: true, typ: mapType, tag: ""}]); + Object.init("", [{prop: "Kind", name: "Kind", embedded: false, exported: true, typ: ObjKind, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Decl", name: "Decl", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: $emptyInterface, tag: ""}]); + Node.init([{prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]); + Expr.init([{prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]); + Stmt.init([{prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "stmtNode", name: "stmtNode", pkg: "go/ast", typ: $funcType([], [], false)}]); + Decl.init([{prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "declNode", name: "declNode", pkg: "go/ast", typ: $funcType([], [], false)}]); + Comment.init("", [{prop: "Slash", name: "Slash", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}]); + CommentGroup.init("", [{prop: "List", name: "List", embedded: false, exported: true, typ: sliceType$6, tag: ""}]); + Field.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Names", name: "Names", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Tag", name: "Tag", embedded: false, exported: true, typ: ptrType$6, tag: ""}, {prop: "Comment", name: "Comment", embedded: false, exported: true, typ: ptrType$1, tag: ""}]); + FieldList.init("", [{prop: "Opening", name: "Opening", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "List", name: "List", embedded: false, exported: true, typ: sliceType$11, tag: ""}, {prop: "Closing", name: "Closing", embedded: false, exported: true, typ: token.Pos, tag: ""}]); + BadExpr.init("", [{prop: "From", name: "From", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "To", name: "To", embedded: false, exported: true, typ: token.Pos, tag: ""}]); + Ident.init("", [{prop: "NamePos", name: "NamePos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Obj", name: "Obj", embedded: false, exported: true, typ: ptrType$56, tag: ""}]); + Ellipsis.init("", [{prop: "Ellipsis", name: "Ellipsis", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Elt", name: "Elt", embedded: false, exported: true, typ: Expr, tag: ""}]); + BasicLit.init("", [{prop: "ValuePos", name: "ValuePos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: token.Token, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: ""}]); + FuncLit.init("", [{prop: "Type", name: "Type", embedded: false, exported: true, typ: ptrType$23, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: ptrType$39, tag: ""}]); + CompositeLit.init("", [{prop: "Type", name: "Type", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Lbrace", name: "Lbrace", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Elts", name: "Elts", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "Rbrace", name: "Rbrace", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Incomplete", name: "Incomplete", embedded: false, exported: true, typ: $Bool, tag: ""}]); + ParenExpr.init("", [{prop: "Lparen", name: "Lparen", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Rparen", name: "Rparen", embedded: false, exported: true, typ: token.Pos, tag: ""}]); + SelectorExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Sel", name: "Sel", embedded: false, exported: true, typ: ptrType$5, tag: ""}]); + IndexExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Lbrack", name: "Lbrack", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Rbrack", name: "Rbrack", embedded: false, exported: true, typ: token.Pos, tag: ""}]); + IndexListExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Lbrack", name: "Lbrack", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Indices", name: "Indices", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "Rbrack", name: "Rbrack", embedded: false, exported: true, typ: token.Pos, tag: ""}]); + SliceExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Lbrack", name: "Lbrack", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Low", name: "Low", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "High", name: "High", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Max", name: "Max", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Slice3", name: "Slice3", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Rbrack", name: "Rbrack", embedded: false, exported: true, typ: token.Pos, tag: ""}]); + TypeAssertExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Lparen", name: "Lparen", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Rparen", name: "Rparen", embedded: false, exported: true, typ: token.Pos, tag: ""}]); + CallExpr.init("", [{prop: "Fun", name: "Fun", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Lparen", name: "Lparen", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Args", name: "Args", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "Ellipsis", name: "Ellipsis", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Rparen", name: "Rparen", embedded: false, exported: true, typ: token.Pos, tag: ""}]); + StarExpr.init("", [{prop: "Star", name: "Star", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}]); + UnaryExpr.init("", [{prop: "OpPos", name: "OpPos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Op", name: "Op", embedded: false, exported: true, typ: token.Token, tag: ""}, {prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}]); + BinaryExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "OpPos", name: "OpPos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Op", name: "Op", embedded: false, exported: true, typ: token.Token, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: Expr, tag: ""}]); + KeyValueExpr.init("", [{prop: "Key", name: "Key", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Colon", name: "Colon", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: Expr, tag: ""}]); + ArrayType.init("", [{prop: "Lbrack", name: "Lbrack", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Elt", name: "Elt", embedded: false, exported: true, typ: Expr, tag: ""}]); + StructType.init("", [{prop: "Struct", name: "Struct", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Fields", name: "Fields", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Incomplete", name: "Incomplete", embedded: false, exported: true, typ: $Bool, tag: ""}]); + FuncType.init("", [{prop: "Func", name: "Func", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "TypeParams", name: "TypeParams", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Params", name: "Params", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Results", name: "Results", embedded: false, exported: true, typ: ptrType$3, tag: ""}]); + InterfaceType.init("", [{prop: "Interface", name: "Interface", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Methods", name: "Methods", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Incomplete", name: "Incomplete", embedded: false, exported: true, typ: $Bool, tag: ""}]); + MapType.init("", [{prop: "Map", name: "Map", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Key", name: "Key", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: Expr, tag: ""}]); + ChanType.init("", [{prop: "Begin", name: "Begin", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Arrow", name: "Arrow", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Dir", name: "Dir", embedded: false, exported: true, typ: ChanDir, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: Expr, tag: ""}]); + BadStmt.init("", [{prop: "From", name: "From", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "To", name: "To", embedded: false, exported: true, typ: token.Pos, tag: ""}]); + DeclStmt.init("", [{prop: "Decl", name: "Decl", embedded: false, exported: true, typ: Decl, tag: ""}]); + EmptyStmt.init("", [{prop: "Semicolon", name: "Semicolon", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Implicit", name: "Implicit", embedded: false, exported: true, typ: $Bool, tag: ""}]); + LabeledStmt.init("", [{prop: "Label", name: "Label", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "Colon", name: "Colon", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Stmt", name: "Stmt", embedded: false, exported: true, typ: Stmt, tag: ""}]); + ExprStmt.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}]); + SendStmt.init("", [{prop: "Chan", name: "Chan", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Arrow", name: "Arrow", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: Expr, tag: ""}]); + IncDecStmt.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "TokPos", name: "TokPos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Tok", name: "Tok", embedded: false, exported: true, typ: token.Token, tag: ""}]); + AssignStmt.init("", [{prop: "Lhs", name: "Lhs", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "TokPos", name: "TokPos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Tok", name: "Tok", embedded: false, exported: true, typ: token.Token, tag: ""}, {prop: "Rhs", name: "Rhs", embedded: false, exported: true, typ: sliceType$12, tag: ""}]); + GoStmt.init("", [{prop: "Go", name: "Go", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Call", name: "Call", embedded: false, exported: true, typ: ptrType$16, tag: ""}]); + DeferStmt.init("", [{prop: "Defer", name: "Defer", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Call", name: "Call", embedded: false, exported: true, typ: ptrType$16, tag: ""}]); + ReturnStmt.init("", [{prop: "Return", name: "Return", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Results", name: "Results", embedded: false, exported: true, typ: sliceType$12, tag: ""}]); + BranchStmt.init("", [{prop: "TokPos", name: "TokPos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Tok", name: "Tok", embedded: false, exported: true, typ: token.Token, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: ptrType$5, tag: ""}]); + BlockStmt.init("", [{prop: "Lbrace", name: "Lbrace", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "List", name: "List", embedded: false, exported: true, typ: sliceType$13, tag: ""}, {prop: "Rbrace", name: "Rbrace", embedded: false, exported: true, typ: token.Pos, tag: ""}]); + IfStmt.init("", [{prop: "If", name: "If", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Init", name: "Init", embedded: false, exported: true, typ: Stmt, tag: ""}, {prop: "Cond", name: "Cond", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: ptrType$39, tag: ""}, {prop: "Else", name: "Else", embedded: false, exported: true, typ: Stmt, tag: ""}]); + CaseClause.init("", [{prop: "Case", name: "Case", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "List", name: "List", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "Colon", name: "Colon", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: sliceType$13, tag: ""}]); + SwitchStmt.init("", [{prop: "Switch", name: "Switch", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Init", name: "Init", embedded: false, exported: true, typ: Stmt, tag: ""}, {prop: "Tag", name: "Tag", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: ptrType$39, tag: ""}]); + TypeSwitchStmt.init("", [{prop: "Switch", name: "Switch", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Init", name: "Init", embedded: false, exported: true, typ: Stmt, tag: ""}, {prop: "Assign", name: "Assign", embedded: false, exported: true, typ: Stmt, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: ptrType$39, tag: ""}]); + CommClause.init("", [{prop: "Case", name: "Case", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Comm", name: "Comm", embedded: false, exported: true, typ: Stmt, tag: ""}, {prop: "Colon", name: "Colon", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: sliceType$13, tag: ""}]); + SelectStmt.init("", [{prop: "Select", name: "Select", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: ptrType$39, tag: ""}]); + ForStmt.init("", [{prop: "For", name: "For", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Init", name: "Init", embedded: false, exported: true, typ: Stmt, tag: ""}, {prop: "Cond", name: "Cond", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Post", name: "Post", embedded: false, exported: true, typ: Stmt, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: ptrType$39, tag: ""}]); + RangeStmt.init("", [{prop: "For", name: "For", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Key", name: "Key", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "TokPos", name: "TokPos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Tok", name: "Tok", embedded: false, exported: true, typ: token.Token, tag: ""}, {prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: ptrType$39, tag: ""}]); + Spec.init([{prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "specNode", name: "specNode", pkg: "go/ast", typ: $funcType([], [], false)}]); + ImportSpec.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: ptrType$6, tag: ""}, {prop: "Comment", name: "Comment", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "EndPos", name: "EndPos", embedded: false, exported: true, typ: token.Pos, tag: ""}]); + ValueSpec.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Names", name: "Names", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Values", name: "Values", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "Comment", name: "Comment", embedded: false, exported: true, typ: ptrType$1, tag: ""}]); + TypeSpec.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "TypeParams", name: "TypeParams", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Assign", name: "Assign", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Comment", name: "Comment", embedded: false, exported: true, typ: ptrType$1, tag: ""}]); + BadDecl.init("", [{prop: "From", name: "From", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "To", name: "To", embedded: false, exported: true, typ: token.Pos, tag: ""}]); + GenDecl.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "TokPos", name: "TokPos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Tok", name: "Tok", embedded: false, exported: true, typ: token.Token, tag: ""}, {prop: "Lparen", name: "Lparen", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Specs", name: "Specs", embedded: false, exported: true, typ: sliceType$14, tag: ""}, {prop: "Rparen", name: "Rparen", embedded: false, exported: true, typ: token.Pos, tag: ""}]); + FuncDecl.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Recv", name: "Recv", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: ptrType$23, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: ptrType$39, tag: ""}]); + File.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Package", name: "Package", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "Decls", name: "Decls", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "Scope", name: "Scope", embedded: false, exported: true, typ: ptrType$57, tag: ""}, {prop: "Imports", name: "Imports", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "Unresolved", name: "Unresolved", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "Comments", name: "Comments", embedded: false, exported: true, typ: sliceType$3, tag: ""}]); + Package.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Scope", name: "Scope", embedded: false, exported: true, typ: ptrType$57, tag: ""}, {prop: "Imports", name: "Imports", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "Files", name: "Files", embedded: false, exported: true, typ: mapType$2, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = scanner.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + objKindStrings = $toNativeArray($kindString, ["bad", "package", "const", "type", "var", "func", "label"]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/build/constraint"] = (function() { + var $pkg = {}, $init, errors, strings, unicode, utf8, Expr, TagExpr, NotExpr, AndExpr, OrExpr, SyntaxError, exprParser, errNotConstraint, errComplex, tag, not, andArg, and, orArg, or, Parse, splitGoBuild, parseExpr, IsPlusBuild, splitPlusBuild, parsePlusBuildExpr, isValidTag; + errors = $packages["errors"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Expr = $newType(8, $kindInterface, "constraint.Expr", true, "go/build/constraint", true, null); + TagExpr = $newType(0, $kindStruct, "constraint.TagExpr", true, "go/build/constraint", true, function(Tag_) { + this.$val = this; + if (arguments.length === 0) { + this.Tag = ""; + return; + } + this.Tag = Tag_; + }); + NotExpr = $newType(0, $kindStruct, "constraint.NotExpr", true, "go/build/constraint", true, function(X_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + return; + } + this.X = X_; + }); + AndExpr = $newType(0, $kindStruct, "constraint.AndExpr", true, "go/build/constraint", true, function(X_, Y_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + this.Y = $ifaceNil; + return; + } + this.X = X_; + this.Y = Y_; + }); + OrExpr = $newType(0, $kindStruct, "constraint.OrExpr", true, "go/build/constraint", true, function(X_, Y_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + this.Y = $ifaceNil; + return; + } + this.X = X_; + this.Y = Y_; + }); + SyntaxError = $newType(0, $kindStruct, "constraint.SyntaxError", true, "go/build/constraint", true, function(Offset_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Offset = 0; + this.Err = ""; + return; + } + this.Offset = Offset_; + this.Err = Err_; + }); + exprParser = $newType(0, $kindStruct, "constraint.exprParser", true, "go/build/constraint", false, function(s_, i_, tok_, isTag_, pos_) { + this.$val = this; + if (arguments.length === 0) { + this.s = ""; + this.i = 0; + this.tok = ""; + this.isTag = false; + this.pos = 0; + return; + } + this.s = s_; + this.i = i_; + this.tok = tok_; + this.isTag = isTag_; + this.pos = pos_; + }); + $pkg.Expr = Expr; + $pkg.TagExpr = TagExpr; + $pkg.NotExpr = NotExpr; + $pkg.AndExpr = AndExpr; + $pkg.OrExpr = OrExpr; + $pkg.SyntaxError = SyntaxError; + $pkg.exprParser = exprParser; + $pkg.$finishSetup = function() { + $ptrType(TagExpr).prototype.Eval = function Eval(ok) { + var {$24r, _r, ok, x, $s, $r, $c} = $restore(this, {ok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = ok(x.Tag); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Eval, $c: true, $r, $24r, _r, ok, x, $s};return $f; + }; + $ptrType(TagExpr).prototype.String = function String() { + var x; + x = this; + return x.Tag; + }; + tag = function tag$1(tag$2) { + var tag$2; + return new TagExpr.ptr(tag$2); + }; + $ptrType(NotExpr).prototype.Eval = function Eval$1(ok) { + var {$24r, _r, ok, x, $s, $r, $c} = $restore(this, {ok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = !_r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Eval$1, $c: true, $r, $24r, _r, ok, x, $s};return $f; + }; + $ptrType(NotExpr).prototype.String = function String$1() { + var {_r, _ref, s, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _ref = x.X; + if ($assertType(_ref, ptrType, true)[1] || $assertType(_ref, ptrType$1, true)[1]) { + s = "(" + s + ")"; + } + $s = -1; return "!" + s; + /* */ } return; } var $f = {$blk: String$1, $c: true, $r, _r, _ref, s, x, $s};return $f; + }; + not = function not$1(x) { + var x; + return new NotExpr.ptr(x); + }; + $ptrType(AndExpr).prototype.Eval = function Eval$2(ok) { + var {_r, _r$1, ok, x, xok, yok, $s, $r, $c} = $restore(this, {ok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + xok = _r; + _r$1 = x.Y.Eval(ok); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + yok = _r$1; + $s = -1; return xok && yok; + /* */ } return; } var $f = {$blk: Eval$2, $c: true, $r, _r, _r$1, ok, x, xok, yok, $s};return $f; + }; + $ptrType(AndExpr).prototype.String = function String$2() { + var {$24r, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = andArg(x.X); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = andArg(x.Y); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r + " && " + _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: String$2, $c: true, $r, $24r, _r, _r$1, x, $s};return $f; + }; + andArg = function andArg$1(x) { + var {_r, _tuple, ok, s, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = x.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _tuple = $assertType(x, ptrType$1, true); + ok = _tuple[1]; + if (ok) { + s = "(" + s + ")"; + } + $s = -1; return s; + /* */ } return; } var $f = {$blk: andArg$1, $c: true, $r, _r, _tuple, ok, s, x, $s};return $f; + }; + and = function and$1(x, y) { + var x, y; + return new AndExpr.ptr(x, y); + }; + $ptrType(OrExpr).prototype.Eval = function Eval$3(ok) { + var {_r, _r$1, ok, x, xok, yok, $s, $r, $c} = $restore(this, {ok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + xok = _r; + _r$1 = x.Y.Eval(ok); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + yok = _r$1; + $s = -1; return xok || yok; + /* */ } return; } var $f = {$blk: Eval$3, $c: true, $r, _r, _r$1, ok, x, xok, yok, $s};return $f; + }; + $ptrType(OrExpr).prototype.String = function String$3() { + var {$24r, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = orArg(x.X); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = orArg(x.Y); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r + " || " + _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: String$3, $c: true, $r, $24r, _r, _r$1, x, $s};return $f; + }; + orArg = function orArg$1(x) { + var {_r, _tuple, ok, s, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = x.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _tuple = $assertType(x, ptrType, true); + ok = _tuple[1]; + if (ok) { + s = "(" + s + ")"; + } + $s = -1; return s; + /* */ } return; } var $f = {$blk: orArg$1, $c: true, $r, _r, _tuple, ok, s, x, $s};return $f; + }; + or = function or$1(x, y) { + var x, y; + return new OrExpr.ptr(x, y); + }; + $ptrType(SyntaxError).prototype.Error = function Error() { + var e; + e = this; + return e.Err; + }; + Parse = function Parse$1(line) { + var {$24r, _r, _r$1, _r$2, _tuple, _tuple$1, line, ok, ok$1, text, text$1, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = splitGoBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + text = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return parseExpr(text); + } + _r$1 = splitPlusBuild(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + text$1 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ok$1) { */ case 3: + _r$2 = parsePlusBuildExpr(text$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = [_r$2, $ifaceNil]; + $s = 6; case 6: return $24r; + /* } */ case 4: + $s = -1; return [$ifaceNil, errNotConstraint]; + /* */ } return; } var $f = {$blk: Parse$1, $c: true, $r, $24r, _r, _r$1, _r$2, _tuple, _tuple$1, line, ok, ok$1, text, text$1, $s};return $f; + }; + $pkg.Parse = Parse; + splitGoBuild = function splitGoBuild$1(line) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, expr, line, ok, trim, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + expr = ""; + ok = false; + if (line.length > 0 && (line.charCodeAt((line.length - 1 >> 0)) === 10)) { + line = $substring(line, 0, (line.length - 1 >> 0)); + } + if (strings.Contains(line, "\n")) { + _tmp = ""; + _tmp$1 = false; + expr = _tmp; + ok = _tmp$1; + $s = -1; return [expr, ok]; + } + if (!strings.HasPrefix(line, "//go:build")) { + _tmp$2 = ""; + _tmp$3 = false; + expr = _tmp$2; + ok = _tmp$3; + $s = -1; return [expr, ok]; + } + _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + line = $substring(line, 10); + _r$1 = strings.TrimSpace(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + trim = _r$1; + if ((line.length === trim.length) && !(line === "")) { + _tmp$4 = ""; + _tmp$5 = false; + expr = _tmp$4; + ok = _tmp$5; + $s = -1; return [expr, ok]; + } + _tmp$6 = trim; + _tmp$7 = true; + expr = _tmp$6; + ok = _tmp$7; + $s = -1; return [expr, ok]; + /* */ } return; } var $f = {$blk: splitGoBuild$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, expr, line, ok, trim, $s};return $f; + }; + parseExpr = function parseExpr$1(text) { + var _tmp, _tmp$1, err, p, text, x, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + x = $ifaceNil; + err = $ifaceNil; + $deferred.push([(function parseExpr·func1() { + var _tuple, e, e$1, ok; + e = $recover(); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tuple = $assertType(e, ptrType$2, true); + e$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + err = e$1; + return; + } + $panic(e); + } + }), []]); + p = new exprParser.ptr(text, 0, "", false, 0); + x = p.or(); + if (!(p.tok === "")) { + $panic(new SyntaxError.ptr(p.pos, "unexpected token " + p.tok)); + } + _tmp = x; + _tmp$1 = $ifaceNil; + x = _tmp; + err = _tmp$1; + return [x, err]; + /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [x, err]; } } + }; + $ptrType(exprParser).prototype.or = function or$2() { + var p, x; + p = this; + x = p.and(); + while (true) { + if (!(p.tok === "||")) { break; } + x = or(x, p.and()); + } + return x; + }; + $ptrType(exprParser).prototype.and = function and$2() { + var p, x; + p = this; + x = p.not(); + while (true) { + if (!(p.tok === "&&")) { break; } + x = and(x, p.not()); + } + return x; + }; + $ptrType(exprParser).prototype.not = function not$2() { + var p; + p = this; + p.lex(); + if (p.tok === "!") { + p.lex(); + if (p.tok === "!") { + $panic(new SyntaxError.ptr(p.pos, "double negation not allowed")); + } + return not(p.atom()); + } + return p.atom(); + }; + $ptrType(exprParser).prototype.atom = function atom() { + var p, pos, tok, x, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + if (p.tok === "(") { + pos = p.pos; + $deferred.push([(function exprParser·atom·func1() { + var _tuple, e, e$1, ok; + e = $recover(); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tuple = $assertType(e, ptrType$2, true); + e$1 = _tuple[0]; + ok = _tuple[1]; + if (ok && e$1.Err === "unexpected end of expression") { + e$1.Err = "missing close paren"; + } + $panic(e); + } + }), []]); + x = p.or(); + if (!(p.tok === ")")) { + $panic(new SyntaxError.ptr(pos, "missing close paren")); + } + p.lex(); + return x; + } + if (!p.isTag) { + if (p.tok === "") { + $panic(new SyntaxError.ptr(p.pos, "unexpected end of expression")); + } + $panic(new SyntaxError.ptr(p.pos, "unexpected token " + p.tok)); + } + tok = p.tok; + p.lex(); + return tag(tok); + /* */ } catch(err) { $err = err; return $ifaceNil; } finally { $callDeferred($deferred, $err); } + }; + $ptrType(exprParser).prototype.lex = function lex() { + var _1, _i, _ref, _rune, _tuple, c, c$1, i, p, tag$2; + p = this; + p.isTag = false; + while (true) { + if (!(p.i < p.s.length && ((p.s.charCodeAt(p.i) === 32) || (p.s.charCodeAt(p.i) === 9)))) { break; } + p.i = p.i + (1) >> 0; + } + if (p.i >= p.s.length) { + p.tok = ""; + p.pos = p.i; + return; + } + _1 = p.s.charCodeAt(p.i); + if ((_1 === (40)) || (_1 === (41)) || (_1 === (33))) { + p.pos = p.i; + p.i = p.i + (1) >> 0; + p.tok = $substring(p.s, p.pos, p.i); + return; + } else if ((_1 === (38)) || (_1 === (124))) { + if ((p.i + 1 >> 0) >= p.s.length || !((p.s.charCodeAt((p.i + 1 >> 0)) === p.s.charCodeAt(p.i)))) { + $panic(new SyntaxError.ptr(p.i, "invalid syntax at " + ($encodeRune(((p.s.charCodeAt(p.i) >> 0)))))); + } + p.pos = p.i; + p.i = p.i + (2) >> 0; + p.tok = $substring(p.s, p.pos, p.i); + return; + } + tag$2 = $substring(p.s, p.i); + _ref = tag$2; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (!unicode.IsLetter(c) && !unicode.IsDigit(c) && !((c === 95)) && !((c === 46))) { + tag$2 = $substring(tag$2, 0, i); + break; + } + _i += _rune[1]; + } + if (tag$2 === "") { + _tuple = utf8.DecodeRuneInString($substring(p.s, p.i)); + c$1 = _tuple[0]; + $panic(new SyntaxError.ptr(p.i, "invalid syntax at " + ($encodeRune(c$1)))); + } + p.pos = p.i; + p.i = p.i + (tag$2.length) >> 0; + p.tok = $substring(p.s, p.pos, p.i); + p.isTag = true; + }; + IsPlusBuild = function IsPlusBuild$1(line) { + var {_r, _tuple, line, ok, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = splitPlusBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ok = _tuple[1]; + $s = -1; return ok; + /* */ } return; } var $f = {$blk: IsPlusBuild$1, $c: true, $r, _r, _tuple, line, ok, $s};return $f; + }; + $pkg.IsPlusBuild = IsPlusBuild; + splitPlusBuild = function splitPlusBuild$1(line) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, expr, line, ok, trim, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + expr = ""; + ok = false; + if (line.length > 0 && (line.charCodeAt((line.length - 1 >> 0)) === 10)) { + line = $substring(line, 0, (line.length - 1 >> 0)); + } + if (strings.Contains(line, "\n")) { + _tmp = ""; + _tmp$1 = false; + expr = _tmp; + ok = _tmp$1; + $s = -1; return [expr, ok]; + } + if (!strings.HasPrefix(line, "//")) { + _tmp$2 = ""; + _tmp$3 = false; + expr = _tmp$2; + ok = _tmp$3; + $s = -1; return [expr, ok]; + } + line = $substring(line, 2); + _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + if (!strings.HasPrefix(line, "+build")) { + _tmp$4 = ""; + _tmp$5 = false; + expr = _tmp$4; + ok = _tmp$5; + $s = -1; return [expr, ok]; + } + line = $substring(line, 6); + _r$1 = strings.TrimSpace(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + trim = _r$1; + if ((line.length === trim.length) && !(line === "")) { + _tmp$6 = ""; + _tmp$7 = false; + expr = _tmp$6; + ok = _tmp$7; + $s = -1; return [expr, ok]; + } + _tmp$8 = trim; + _tmp$9 = true; + expr = _tmp$8; + ok = _tmp$9; + $s = -1; return [expr, ok]; + /* */ } return; } var $f = {$blk: splitPlusBuild$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, expr, line, ok, trim, $s};return $f; + }; + parsePlusBuildExpr = function parsePlusBuildExpr$1(text) { + var {_i, _i$1, _r, _ref, _ref$1, clause, lit, neg, text, x, y, z, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = $ifaceNil; + _r = strings.Fields(text); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + clause = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + y = $ifaceNil; + _ref$1 = strings.Split(clause, ","); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + lit = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + z = $ifaceNil; + neg = false; + if (strings.HasPrefix(lit, "!!") || lit === "!") { + z = tag("ignore"); + } else { + if (strings.HasPrefix(lit, "!")) { + neg = true; + lit = $substring(lit, 1); + } + if (isValidTag(lit)) { + z = tag(lit); + } else { + z = tag("ignore"); + } + if (neg) { + z = not(z); + } + } + if ($interfaceIsEqual(y, $ifaceNil)) { + y = z; + } else { + y = and(y, z); + } + _i$1++; + } + if ($interfaceIsEqual(x, $ifaceNil)) { + x = y; + } else { + x = or(x, y); + } + _i++; + $s = 2; continue; + case 3: + if ($interfaceIsEqual(x, $ifaceNil)) { + x = tag("ignore"); + } + $s = -1; return x; + /* */ } return; } var $f = {$blk: parsePlusBuildExpr$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, clause, lit, neg, text, x, y, z, $s};return $f; + }; + isValidTag = function isValidTag$1(word) { + var _i, _ref, _rune, c, word; + if (word === "") { + return false; + } + _ref = word; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (!unicode.IsLetter(c) && !unicode.IsDigit(c) && !((c === 95)) && !((c === 46))) { + return false; + } + _i += _rune[1]; + } + return true; + }; + ptrType$3.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$5.methods = [{prop: "or", name: "or", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "and", name: "and", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "not", name: "not", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "atom", name: "atom", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "lex", name: "lex", pkg: "go/build/constraint", typ: $funcType([], [], false)}]; + Expr.init([{prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}]); + TagExpr.init("", [{prop: "Tag", name: "Tag", embedded: false, exported: true, typ: $String, tag: ""}]); + NotExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}]); + AndExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: Expr, tag: ""}]); + OrExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: Expr, tag: ""}]); + SyntaxError.init("", [{prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $String, tag: ""}]); + exprParser.init("go/build/constraint", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "tok", name: "tok", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "isTag", name: "isTag", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + errNotConstraint = errors.New("not a build constraint"); + errComplex = errors.New("expression too complex for // +build lines"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/doc/comment"] = (function() { + var $pkg = {}, $init, bytes, fmt, sort, strconv, strings, unicode, utf8, textPrinter, Printer, commentPrinter, Doc, LinkDef, Block, Heading, List, ListItem, Paragraph, Code, Text, Plain, Italic, Link, DocLink, Parser, parseDoc, span, spanKind, mdPrinter, htmlPrinter, stdPkgs, writeNL, wrap, wrapPenalty, blankBefore, isStdPkg, DefaultLookupPackage, parseSpans, indented, unindent, isBlank, commonPrefix, leadingSpace, isOldHeading, isHeading, parseLink, listMarker, isList, splitDocName, autoURL, isScheme, isHost, isPunct, isPath, isName, ident, isIdentASCII, validImportPath, validImportPathElem, importPathOK, inc; + bytes = $packages["bytes"]; + fmt = $packages["fmt"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + textPrinter = $newType(0, $kindStruct, "comment.textPrinter", true, "go/doc/comment", false, function(Printer_, long$1_, prefix_, codePrefix_, width_) { + this.$val = this; + if (arguments.length === 0) { + this.Printer = ptrType.nil; + this.long$1 = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + this.prefix = ""; + this.codePrefix = ""; + this.width = 0; + return; + } + this.Printer = Printer_; + this.long$1 = long$1_; + this.prefix = prefix_; + this.codePrefix = codePrefix_; + this.width = width_; + }); + Printer = $newType(0, $kindStruct, "comment.Printer", true, "go/doc/comment", true, function(HeadingLevel_, HeadingID_, DocLinkURL_, DocLinkBaseURL_, TextPrefix_, TextCodePrefix_, TextWidth_) { + this.$val = this; + if (arguments.length === 0) { + this.HeadingLevel = 0; + this.HeadingID = $throwNilPointerError; + this.DocLinkURL = $throwNilPointerError; + this.DocLinkBaseURL = ""; + this.TextPrefix = ""; + this.TextCodePrefix = ""; + this.TextWidth = 0; + return; + } + this.HeadingLevel = HeadingLevel_; + this.HeadingID = HeadingID_; + this.DocLinkURL = DocLinkURL_; + this.DocLinkBaseURL = DocLinkBaseURL_; + this.TextPrefix = TextPrefix_; + this.TextCodePrefix = TextCodePrefix_; + this.TextWidth = TextWidth_; + }); + commentPrinter = $newType(0, $kindStruct, "comment.commentPrinter", true, "go/doc/comment", false, function(Printer_, headingPrefix_, needDoc_) { + this.$val = this; + if (arguments.length === 0) { + this.Printer = ptrType.nil; + this.headingPrefix = ""; + this.needDoc = false; + return; + } + this.Printer = Printer_; + this.headingPrefix = headingPrefix_; + this.needDoc = needDoc_; + }); + Doc = $newType(0, $kindStruct, "comment.Doc", true, "go/doc/comment", true, function(Content_, Links_) { + this.$val = this; + if (arguments.length === 0) { + this.Content = sliceType$5.nil; + this.Links = sliceType$6.nil; + return; + } + this.Content = Content_; + this.Links = Links_; + }); + LinkDef = $newType(0, $kindStruct, "comment.LinkDef", true, "go/doc/comment", true, function(Text_, URL_, Used_) { + this.$val = this; + if (arguments.length === 0) { + this.Text = ""; + this.URL = ""; + this.Used = false; + return; + } + this.Text = Text_; + this.URL = URL_; + this.Used = Used_; + }); + Block = $newType(8, $kindInterface, "comment.Block", true, "go/doc/comment", true, null); + Heading = $newType(0, $kindStruct, "comment.Heading", true, "go/doc/comment", true, function(Text_) { + this.$val = this; + if (arguments.length === 0) { + this.Text = sliceType$8.nil; + return; + } + this.Text = Text_; + }); + List = $newType(0, $kindStruct, "comment.List", true, "go/doc/comment", true, function(Items_, ForceBlankBefore_, ForceBlankBetween_) { + this.$val = this; + if (arguments.length === 0) { + this.Items = sliceType$9.nil; + this.ForceBlankBefore = false; + this.ForceBlankBetween = false; + return; + } + this.Items = Items_; + this.ForceBlankBefore = ForceBlankBefore_; + this.ForceBlankBetween = ForceBlankBetween_; + }); + ListItem = $newType(0, $kindStruct, "comment.ListItem", true, "go/doc/comment", true, function(Number_, Content_) { + this.$val = this; + if (arguments.length === 0) { + this.Number = ""; + this.Content = sliceType$5.nil; + return; + } + this.Number = Number_; + this.Content = Content_; + }); + Paragraph = $newType(0, $kindStruct, "comment.Paragraph", true, "go/doc/comment", true, function(Text_) { + this.$val = this; + if (arguments.length === 0) { + this.Text = sliceType$8.nil; + return; + } + this.Text = Text_; + }); + Code = $newType(0, $kindStruct, "comment.Code", true, "go/doc/comment", true, function(Text_) { + this.$val = this; + if (arguments.length === 0) { + this.Text = ""; + return; + } + this.Text = Text_; + }); + Text = $newType(8, $kindInterface, "comment.Text", true, "go/doc/comment", true, null); + Plain = $newType(8, $kindString, "comment.Plain", true, "go/doc/comment", true, null); + Italic = $newType(8, $kindString, "comment.Italic", true, "go/doc/comment", true, null); + Link = $newType(0, $kindStruct, "comment.Link", true, "go/doc/comment", true, function(Auto_, Text_, URL_) { + this.$val = this; + if (arguments.length === 0) { + this.Auto = false; + this.Text = sliceType$8.nil; + this.URL = ""; + return; + } + this.Auto = Auto_; + this.Text = Text_; + this.URL = URL_; + }); + DocLink = $newType(0, $kindStruct, "comment.DocLink", true, "go/doc/comment", true, function(Text_, ImportPath_, Recv_, Name_) { + this.$val = this; + if (arguments.length === 0) { + this.Text = sliceType$8.nil; + this.ImportPath = ""; + this.Recv = ""; + this.Name = ""; + return; + } + this.Text = Text_; + this.ImportPath = ImportPath_; + this.Recv = Recv_; + this.Name = Name_; + }); + Parser = $newType(0, $kindStruct, "comment.Parser", true, "go/doc/comment", true, function(Words_, LookupPackage_, LookupSym_) { + this.$val = this; + if (arguments.length === 0) { + this.Words = false; + this.LookupPackage = $throwNilPointerError; + this.LookupSym = $throwNilPointerError; + return; + } + this.Words = Words_; + this.LookupPackage = LookupPackage_; + this.LookupSym = LookupSym_; + }); + parseDoc = $newType(0, $kindStruct, "comment.parseDoc", true, "go/doc/comment", false, function(Parser_, Doc_, links_, lines_, lookupSym_) { + this.$val = this; + if (arguments.length === 0) { + this.Parser = ptrType$8.nil; + this.Doc = ptrType$9.nil; + this.links = false; + this.lines = sliceType.nil; + this.lookupSym = $throwNilPointerError; + return; + } + this.Parser = Parser_; + this.Doc = Doc_; + this.links = links_; + this.lines = lines_; + this.lookupSym = lookupSym_; + }); + span = $newType(0, $kindStruct, "comment.span", true, "go/doc/comment", false, function(start_, end_, kind_) { + this.$val = this; + if (arguments.length === 0) { + this.start = 0; + this.end = 0; + this.kind = 0; + return; + } + this.start = start_; + this.end = end_; + this.kind = kind_; + }); + spanKind = $newType(4, $kindInt, "comment.spanKind", true, "go/doc/comment", false, null); + mdPrinter = $newType(0, $kindStruct, "comment.mdPrinter", true, "go/doc/comment", false, function(Printer_, headingPrefix_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Printer = ptrType.nil; + this.headingPrefix = ""; + this.raw = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + return; + } + this.Printer = Printer_; + this.headingPrefix = headingPrefix_; + this.raw = raw_; + }); + htmlPrinter = $newType(0, $kindStruct, "comment.htmlPrinter", true, "go/doc/comment", false, function(Printer_, tight_) { + this.$val = this; + if (arguments.length === 0) { + this.Printer = ptrType.nil; + this.tight = false; + return; + } + this.Printer = Printer_; + this.tight = tight_; + }); + $pkg.textPrinter = textPrinter; + $pkg.Printer = Printer; + $pkg.commentPrinter = commentPrinter; + $pkg.Doc = Doc; + $pkg.LinkDef = LinkDef; + $pkg.Block = Block; + $pkg.Heading = Heading; + $pkg.List = List; + $pkg.ListItem = ListItem; + $pkg.Paragraph = Paragraph; + $pkg.Code = Code; + $pkg.Text = Text; + $pkg.Plain = Plain; + $pkg.Italic = Italic; + $pkg.Link = Link; + $pkg.DocLink = DocLink; + $pkg.Parser = Parser; + $pkg.parseDoc = parseDoc; + $pkg.span = span; + $pkg.spanKind = spanKind; + $pkg.mdPrinter = mdPrinter; + $pkg.htmlPrinter = htmlPrinter; + $pkg.$finishSetup = function() { + $ptrType(Printer).prototype.Text = function Text$1(d) { + var {_i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, anyUsed, d, def, def$1, i, out, p, tp, x, $s, $r, $c} = $restore(this, {d}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = [out]; + p = this; + tp = new textPrinter.ptr(p, new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil), p.TextPrefix, p.TextCodePrefix, p.TextWidth); + if (tp.codePrefix === "") { + tp.codePrefix = p.TextPrefix + "\t"; + } + if (tp.width === 0) { + tp.width = 80 - utf8.RuneCountInString(tp.prefix) >> 0; + } + out[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + _ref = d.Content; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0 && blankBefore(x)) { + out[0].WriteString(tp.prefix); + writeNL(out[0]); + } + $r = tp.block(out[0], x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + anyUsed = false; + _ref$1 = d.Links; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + def = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (def.Used) { + anyUsed = true; + break; + } + _i$1++; + } + /* */ if (anyUsed) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (anyUsed) { */ case 4: + writeNL(out[0]); + _ref$2 = d.Links; + _i$2 = 0; + /* while (true) { */ case 6: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 7; continue; } + def$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + /* */ if (def$1.Used) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (def$1.Used) { */ case 8: + _r = fmt.Fprintf(out[0], "[%s]: %s\n", new sliceType$2([new $String(def$1.Text), new $String(def$1.URL)])); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 9: + _i$2++; + $s = 6; continue; + case 7: + /* } */ case 5: + $s = -1; return out[0].Bytes(); + /* */ } return; } var $f = {$blk: Text$1, $c: true, $r, _i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, anyUsed, d, def, def$1, i, out, p, tp, x, $s};return $f; + }; + writeNL = function writeNL$1(out) { + var data, n, out, x, x$1; + data = out.Bytes(); + n = 0; + while (true) { + if (!(n < data.$length && (((x = (data.$length - n >> 0) - 1 >> 0, ((x < 0 || x >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + x])) === 32) || ((x$1 = (data.$length - n >> 0) - 1 >> 0, ((x$1 < 0 || x$1 >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + x$1])) === 9)))) { break; } + n = n + (1) >> 0; + } + if (n > 0) { + out.Truncate(data.$length - n >> 0); + } + out.WriteByte(10); + }; + $ptrType(textPrinter).prototype.block = function block(out, x) { + var {_i, _i$1, _r, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, item, line, loose, out, p, text, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {out, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = x; + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 1: + x$2 = _ref.$val; + out.WriteString(p.prefix); + $r = p.text(out, "", x$2.Text); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 2: + x$3 = _ref.$val; + out.WriteString(p.prefix); + out.WriteString("# "); + $r = p.text(out, "", x$3.Text); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 3: + x$4 = _ref.$val; + text = x$4.Text; + while (true) { + if (!(!(text === ""))) { break; } + line = ""; + _tuple = strings.Cut(text, "\n"); + line = _tuple[0]; + text = _tuple[1]; + if (!(line === "")) { + out.WriteString(p.codePrefix); + out.WriteString(line); + } + writeNL(out); + } + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 4: + x$5 = _ref.$val; + loose = x$5.BlankBetween(); + _ref$1 = x$5.Items; + _i = 0; + /* while (true) { */ case 9: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 10; continue; } + i = _i; + item = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + if (i > 0 && loose) { + out.WriteString(p.prefix); + writeNL(out); + } + out.WriteString(p.prefix); + out.WriteString(" "); + if (item.Number === "") { + out.WriteString(" - "); + } else { + out.WriteString(item.Number); + out.WriteString(". "); + } + _ref$2 = item.Content; + _i$1 = 0; + /* while (true) { */ case 11: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 12; continue; } + i$1 = _i$1; + blk = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + if (i$1 > 0) { + writeNL(out); + out.WriteString(p.prefix); + out.WriteString(" "); + } + $r = p.text(out, " ", $assertType(blk, ptrType$2).Text); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 11; continue; + case 12: + _i++; + $s = 9; continue; + case 10: + $s = 6; continue; + /* } else { */ case 5: + x$1 = _ref; + _r = fmt.Fprintf(out, "?%T\n", new sliceType$2([x$1])); /* */ $s = 14; case 14: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: block, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, item, line, loose, out, p, text, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + }; + $ptrType(textPrinter).prototype.text = function text(out, indent, x) { + var {_i, _r, _r$1, _ref, i, indent, j, out, p, seq, w, words, x, x$1, $s, $r, $c} = $restore(this, {out, indent, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + p.oneLongLine(p.long$1, x); + _r = strings.Fields(p.long$1.String()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + words = _r; + p.long$1.Reset(); + seq = sliceType$3.nil; + /* */ if (p.width < 0 || (words.$length === 0)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (p.width < 0 || (words.$length === 0)) { */ case 2: + seq = new sliceType$3([0, words.$length]); + $s = 4; continue; + /* } else { */ case 3: + _r$1 = wrap(words, p.width - utf8.RuneCountInString(indent) >> 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + seq = _r$1; + /* } */ case 4: + i = 0; + while (true) { + if (!((i + 1 >> 0) < seq.$length)) { break; } + if (i > 0) { + out.WriteString(p.prefix); + out.WriteString(indent); + } + _ref = $subslice(words, ((i < 0 || i >= seq.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq.$array[seq.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= seq.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq.$array[seq.$offset + x$1]))); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + w = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (j > 0) { + out.WriteString(" "); + } + out.WriteString(w); + _i++; + } + writeNL(out); + i = i + (1) >> 0; + } + $s = -1; return; + /* */ } return; } var $f = {$blk: text, $c: true, $r, _i, _r, _r$1, _ref, i, indent, j, out, p, seq, w, words, x, x$1, $s};return $f; + }; + $ptrType(textPrinter).prototype.oneLongLine = function oneLongLine(out, x) { + var _i, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, x; + p = this; + _ref = x; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = t; + if ($assertType(_ref$1, Plain, true)[1]) { + t$1 = _ref$1.$val; + out.WriteString((t$1)); + } else if ($assertType(_ref$1, Italic, true)[1]) { + t$2 = _ref$1.$val; + out.WriteString((t$2)); + } else if ($assertType(_ref$1, ptrType$6, true)[1]) { + t$3 = _ref$1.$val; + p.oneLongLine(out, t$3.Text); + } else if ($assertType(_ref$1, ptrType$7, true)[1]) { + t$4 = _ref$1.$val; + p.oneLongLine(out, t$4.Text); + } + _i++; + } + }; + wrap = function wrap$1(words, max) { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _v, _v$1, _v$2, add, bestleft, bridge, cmp, d, f, g, i, m, m$1, m$2, max, n, s, seq, total, weight, words, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {words, max}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + add = [add]; + cmp = [cmp]; + f = [f]; + g = [g]; + max = [max]; + total = [total]; + weight = [weight]; + words = [words]; + seq = sliceType$3.nil; + add[0] = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func1(s, t) { + var s, t, x, x$1, x$2, x$3; + return new score.ptr((x = s.hi, x$1 = t.hi, new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)), (x$2 = s.lo, x$3 = t.lo, new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low))); + }; })(add, cmp, f, g, max, total, weight, words); + cmp[0] = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func2(s, t) { + var s, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + if ((x = s.hi, x$1 = t.hi, (x.$high < x$1.$high || (x.$high === x$1.$high && x.$low < x$1.$low)))) { + return -1; + } else if ((x$2 = s.hi, x$3 = t.hi, (x$2.$high > x$3.$high || (x$2.$high === x$3.$high && x$2.$low > x$3.$low)))) { + return 1; + } else if ((x$4 = s.lo, x$5 = t.lo, (x$4.$high < x$5.$high || (x$4.$high === x$5.$high && x$4.$low < x$5.$low)))) { + return -1; + } else if ((x$6 = s.lo, x$7 = t.lo, (x$6.$high > x$7.$high || (x$6.$high === x$7.$high && x$6.$low > x$7.$low)))) { + return 1; + } + return 0; + }; })(add, cmp, f, g, max, total, weight, words); + total[0] = $makeSlice(sliceType$3, (words[0].$length + 1 >> 0)); + (0 >= total[0].$length ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + 0] = 0); + _ref = words[0]; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + (x = 1 + i >> 0, ((x < 0 || x >= total[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + x] = ((((i < 0 || i >= total[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + i]) + utf8.RuneCountInString(s) >> 0) + 1 >> 0))); + _i++; + } + weight[0] = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func3(i$1, j) { + var i$1, j, n, p, v, x$1; + n = (((j < 0 || j >= total[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + j]) - 1 >> 0) - ((i$1 < 0 || i$1 >= total[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + i$1]) >> 0; + if ((j === words[0].$length) && n <= max[0]) { + return new score.ptr(new $Int64(0, 0), new $Int64(0, 0)); + } + p = wrapPenalty((x$1 = j - 1 >> 0, ((x$1 < 0 || x$1 >= words[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : words[0].$array[words[0].$offset + x$1]))); + v = $mul64((new $Int64(0, (max[0] - n >> 0))), (new $Int64(0, (max[0] - n >> 0)))); + if (n > max[0]) { + return new score.ptr(v, p); + } + return new score.ptr(new $Int64(0, 0), new $Int64(v.$high + p.$high, v.$low + p.$low)); + }; })(add, cmp, f, g, max, total, weight, words); + f[0] = new sliceType$4([$clone(new score.ptr(new $Int64(0, 0), new $Int64(0, 0)), score)]); + g[0] = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func4(i$1, j) { + var {$24r, _arg, _arg$1, _r, _r$1, i$1, j, $s, $r, $c} = $restore(this, {i$1, j}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = $clone(((i$1 < 0 || i$1 >= f[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : f[0].$array[f[0].$offset + i$1]), score); + _r = weight[0](i$1, j); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = $clone(_r, score); + _r$1 = add[0](_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: wrap·func4, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, i$1, j, $s};return $f; + }; })(add, cmp, f, g, max, total, weight, words); + bridge = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func5(a, b, c) { + var {$24r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, a, b, c, k, $s, $r, $c} = $restore(this, {a, b, c}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = [a]; + b = [b]; + c = [c]; + _r = sort.Search((words[0].$length + 1 >> 0) - c[0] >> 0, (function(a, add, b, c, cmp, f, g, max, total, weight, words) { return function wrap·func5·func1(k) { + var {$24r, _arg, _arg$1, _r, _r$1, _r$2, k, $s, $r, $c} = $restore(this, {k}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + k = k + (c[0]) >> 0; + _r = g[0](a[0], k); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = $clone(_r, score); + _r$1 = g[0](b[0], k); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$1, score); + _r$2 = cmp[0](_arg, _arg$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2 > 0; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: wrap·func5·func1, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, _r$2, k, $s};return $f; + }; })(a, add, b, c, cmp, f, g, max, total, weight, words)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + k = c[0] + _r >> 0; + if (k > words[0].$length) { + $s = -1; return true; + } + _r$1 = g[0](c[0], k); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = $clone(_r$1, score); + _r$2 = g[0](b[0], k); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$2, score); + _r$3 = cmp[0](_arg, _arg$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3 <= 0; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: wrap·func5, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, a, b, c, k, $s};return $f; + }; })(add, cmp, f, g, max, total, weight, words); + d = $makeSlice(sliceType$3, 1, words[0].$length); + (0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0] = 0); + bestleft = $makeSlice(sliceType$3, 1, words[0].$length); + (0 >= bestleft.$length ? ($throwRuntimeError("index out of range"), undefined) : bestleft.$array[bestleft.$offset + 0] = -1); + m = 1; + /* while (true) { */ case 1: + /* if (!(m < words[0].$length)) { break; } */ if(!(m < words[0].$length)) { $s = 2; continue; } + _r = g[0]((0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0]), m); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + f[0] = $append(f[0], _r); + bestleft = $append(bestleft, (0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0])); + /* while (true) { */ case 4: + if (!(d.$length > 1)) { _v = false; $s = 6; continue s; } + _r$1 = g[0]((1 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 1]), m + 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = $clone(_r$1, score); + _r$2 = g[0]((0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0]), m + 1 >> 0); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$2, score); + _r$3 = cmp[0](_arg, _arg$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3 <= 0; case 6: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 5; continue; } + d = $subslice(d, 1); + $s = 4; continue; + case 5: + /* while (true) { */ case 10: + if (!(d.$length > 1)) { _v$1 = false; $s = 12; continue s; } + _r$4 = bridge((x$1 = d.$length - 2 >> 0, ((x$1 < 0 || x$1 >= d.$length) ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + x$1])), (x$2 = d.$length - 1 >> 0, ((x$2 < 0 || x$2 >= d.$length) ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + x$2])), m); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v$1 = _r$4; case 12: + /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 11; continue; } + d = $subslice(d, 0, (d.$length - 1 >> 0)); + $s = 10; continue; + case 11: + _r$5 = g[0](m, words[0].$length); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$2 = $clone(_r$5, score); + _r$6 = g[0]((x$3 = d.$length - 1 >> 0, ((x$3 < 0 || x$3 >= d.$length) ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + x$3])), words[0].$length); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$3 = $clone(_r$6, score); + _r$7 = cmp[0](_arg$2, _arg$3); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7 < 0) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_r$7 < 0) { */ case 14: + d = $append(d, m); + if (!(d.$length === 2)) { _v$2 = false; $s = 21; continue s; } + _r$8 = g[0]((1 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 1]), m + 1 >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg$4 = $clone(_r$8, score); + _r$9 = g[0]((0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0]), m + 1 >> 0); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$5 = $clone(_r$9, score); + _r$10 = cmp[0](_arg$4, _arg$5); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v$2 = _r$10 <= 0; case 21: + /* */ if (_v$2) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (_v$2) { */ case 19: + d = $subslice(d, 1); + /* } */ case 20: + /* } */ case 15: + m = m + (1) >> 0; + $s = 1; continue; + case 2: + bestleft = $append(bestleft, (0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0])); + n = 1; + m$1 = words[0].$length; + while (true) { + if (!(m$1 > 0)) { break; } + n = n + (1) >> 0; + m$1 = ((m$1 < 0 || m$1 >= bestleft.$length) ? ($throwRuntimeError("index out of range"), undefined) : bestleft.$array[bestleft.$offset + m$1]); + } + seq = $makeSlice(sliceType$3, n); + m$2 = words[0].$length; + while (true) { + if (!(m$2 > 0)) { break; } + n = n - (1) >> 0; + ((n < 0 || n >= seq.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq.$array[seq.$offset + n] = m$2); + m$2 = ((m$2 < 0 || m$2 >= bestleft.$length) ? ($throwRuntimeError("index out of range"), undefined) : bestleft.$array[bestleft.$offset + m$2]); + } + seq = seq; + $s = -1; return seq; + /* */ } return; } var $f = {$blk: wrap$1, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _v, _v$1, _v$2, add, bestleft, bridge, cmp, d, f, g, i, m, m$1, m$2, max, n, s, seq, total, weight, words, x, x$1, x$2, x$3, $s};return $f; + }; + wrapPenalty = function wrapPenalty$1(s) { + var _1, s; + _1 = s.charCodeAt((s.length - 1 >> 0)); + if ((_1 === (46)) || (_1 === (44)) || (_1 === (58)) || (_1 === (59))) { + return new $Int64(0, 0); + } + return new $Int64(0, 64); + }; + $ptrType(Printer).prototype.headingLevel = function headingLevel() { + var p; + p = this; + if (p.HeadingLevel <= 0) { + return 3; + } + return p.HeadingLevel; + }; + $ptrType(Printer).prototype.headingID = function headingID(h) { + var {$24r, $24r$1, _r, _r$1, h, p, $s, $r, $c} = $restore(this, {h}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (p.HeadingID === $throwNilPointerError) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.HeadingID === $throwNilPointerError) { */ case 1: + _r = h.DefaultID(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = p.HeadingID(h); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: headingID, $c: true, $r, $24r, $24r$1, _r, _r$1, h, p, $s};return $f; + }; + $ptrType(Printer).prototype.docLinkURL = function docLinkURL(link) { + var {$24r, _r, link, p, $s, $r, $c} = $restore(this, {link}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (!(p.DocLinkURL === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(p.DocLinkURL === $throwNilPointerError)) { */ case 1: + _r = p.DocLinkURL(link); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return link.DefaultURL(p.DocLinkBaseURL); + /* */ } return; } var $f = {$blk: docLinkURL, $c: true, $r, $24r, _r, link, p, $s};return $f; + }; + $ptrType(DocLink).prototype.DefaultURL = function DefaultURL(baseURL) { + var baseURL, l, slash; + l = this; + if (!(l.ImportPath === "")) { + slash = ""; + if (strings.HasSuffix(baseURL, "/")) { + slash = "/"; + } else { + baseURL = baseURL + ("/"); + } + if (l.Name === "") { + return baseURL + l.ImportPath + slash; + } else if (!(l.Recv === "")) { + return baseURL + l.ImportPath + slash + "#" + l.Recv + "." + l.Name; + } else { + return baseURL + l.ImportPath + slash + "#" + l.Name; + } + } + if (!(l.Recv === "")) { + return "#" + l.Recv + "." + l.Name; + } + return "#" + l.Name; + }; + $ptrType(Heading).prototype.DefaultID = function DefaultID() { + var {_i, _r, _ref, _rune, h, out, p, r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = [out]; + h = this; + out[0] = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + p = new textPrinter.ptr(ptrType.nil, new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil), "", "", 0); + p.oneLongLine(out[0], h.Text); + _r = strings.TrimSpace(out[0].String()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + if (s === "") { + $s = -1; return ""; + } + out[0].Reset(); + out[0].WriteString("hdr-"); + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + r = _rune[0]; + if (r < 128 && isIdentASCII(((r << 24 >>> 24)))) { + out[0].WriteByte(((r << 24 >>> 24))); + } else { + out[0].WriteByte(95); + } + _i += _rune[1]; + } + $s = -1; return out[0].String(); + /* */ } return; } var $f = {$blk: DefaultID, $c: true, $r, _i, _r, _ref, _rune, h, out, p, r, s, $s};return $f; + }; + $ptrType(Printer).prototype.Comment = function Comment(d) { + var {_i, _i$1, _ref, _ref$1, cp, d, def, first, i, i$1, out, p, used, x, $s, $r, $c} = $restore(this, {d}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = [out]; + p = this; + cp = new commentPrinter.ptr(p, "", false); + out[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + _ref = d.Content; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0 && blankBefore(x)) { + out[0].WriteString("\n"); + } + $r = cp.block(out[0], x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + i$1 = 0; + while (true) { + if (!(i$1 < 2)) { break; } + used = i$1 === 0; + first = true; + _ref$1 = d.Links; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + def = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (def.Used === used) { + if (first) { + out[0].WriteString("\n"); + first = false; + } + out[0].WriteString("["); + out[0].WriteString(def.Text); + out[0].WriteString("]: "); + out[0].WriteString(def.URL); + out[0].WriteString("\n"); + } + _i$1++; + } + i$1 = i$1 + (1) >> 0; + } + $s = -1; return out[0].Bytes(); + /* */ } return; } var $f = {$blk: Comment, $c: true, $r, _i, _i$1, _ref, _ref$1, cp, d, def, first, i, i$1, out, p, used, x, $s};return $f; + }; + blankBefore = function blankBefore$1(x) { + var _tuple, ok, x, x$1; + _tuple = $assertType(x, ptrType$5, true); + x$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return x$1.BlankBefore(); + } + return true; + }; + $ptrType(commentPrinter).prototype.block = function block$1(out, x) { + var {_i, _i$1, _r, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, item, line, loose, md, out, p, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {out, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = x; + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 1: + x$2 = _ref.$val; + p.text(out, "", x$2.Text); + out.WriteString("\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 2: + x$3 = _ref.$val; + out.WriteString("# "); + p.text(out, "", x$3.Text); + out.WriteString("\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 3: + x$4 = _ref.$val; + md = x$4.Text; + while (true) { + if (!(!(md === ""))) { break; } + line = ""; + _tuple = strings.Cut(md, "\n"); + line = _tuple[0]; + md = _tuple[1]; + if (!(line === "")) { + out.WriteString("\t"); + out.WriteString(line); + } + out.WriteString("\n"); + } + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 4: + x$5 = _ref.$val; + loose = x$5.BlankBetween(); + _ref$1 = x$5.Items; + _i = 0; + while (true) { + if (!(_i < _ref$1.$length)) { break; } + i = _i; + item = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + if (i > 0 && loose) { + out.WriteString("\n"); + } + out.WriteString(" "); + if (item.Number === "") { + out.WriteString(" - "); + } else { + out.WriteString(item.Number); + out.WriteString(". "); + } + _ref$2 = item.Content; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$2.$length)) { break; } + i$1 = _i$1; + blk = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + if (i$1 > 0) { + out.WriteString("\n "); + } + p.text(out, " ", $assertType(blk, ptrType$2).Text); + out.WriteString("\n"); + _i$1++; + } + _i++; + } + $s = 6; continue; + /* } else { */ case 5: + x$1 = _ref; + _r = fmt.Fprintf(out, "?%T", new sliceType$2([x$1])); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: block$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, item, line, loose, md, out, p, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + }; + $ptrType(commentPrinter).prototype.text = function text$1(out, indent, x) { + var _i, _ref, _ref$1, indent, out, p, t, t$1, t$2, t$3, t$4, x; + p = this; + _ref = x; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = t; + if ($assertType(_ref$1, Plain, true)[1]) { + t$1 = _ref$1.$val; + p.indent(out, indent, (t$1)); + } else if ($assertType(_ref$1, Italic, true)[1]) { + t$2 = _ref$1.$val; + p.indent(out, indent, (t$2)); + } else if ($assertType(_ref$1, ptrType$6, true)[1]) { + t$3 = _ref$1.$val; + if (t$3.Auto) { + p.text(out, indent, t$3.Text); + } else { + out.WriteString("["); + p.text(out, indent, t$3.Text); + out.WriteString("]"); + } + } else if ($assertType(_ref$1, ptrType$7, true)[1]) { + t$4 = _ref$1.$val; + out.WriteString("["); + p.text(out, indent, t$4.Text); + out.WriteString("]"); + } + _i++; + } + }; + $ptrType(commentPrinter).prototype.indent = function indent(out, indent$1, s) { + var _tuple, indent$1, line, ok, out, p, rest, s; + p = this; + while (true) { + if (!(!(s === ""))) { break; } + _tuple = strings.Cut(s, "\n"); + line = _tuple[0]; + rest = _tuple[1]; + ok = _tuple[2]; + out.WriteString(line); + if (ok) { + out.WriteString("\n"); + out.WriteString(indent$1); + } + s = rest; + } + }; + $ptrType(List).prototype.BlankBefore = function BlankBefore() { + var l; + l = this; + return l.ForceBlankBefore || l.BlankBetween(); + }; + $ptrType(List).prototype.BlankBetween = function BlankBetween() { + var _i, _ref, item, l; + l = this; + if (l.ForceBlankBetween) { + return true; + } + _ref = l.Items; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + item = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((item.Content.$length === 1))) { + return true; + } + _i++; + } + return false; + }; + $ptrType(parseDoc).prototype.lookupPkg = function lookupPkg(pkg) { + var {$24r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, d, importPath, ok, ok$1, path, pkg, $s, $r, $c} = $restore(this, {pkg}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + importPath = ""; + ok = false; + d = this; + if (strings.Contains(pkg, "/")) { + if (validImportPath(pkg)) { + _tmp = pkg; + _tmp$1 = true; + importPath = _tmp; + ok = _tmp$1; + $s = -1; return [importPath, ok]; + } + _tmp$2 = ""; + _tmp$3 = false; + importPath = _tmp$2; + ok = _tmp$3; + $s = -1; return [importPath, ok]; + } + /* */ if (!(d.Parser.LookupPackage === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(d.Parser.LookupPackage === $throwNilPointerError)) { */ case 1: + _r = d.Parser.LookupPackage(pkg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + path = _tuple[0]; + ok$1 = _tuple[1]; + if (ok$1) { + _tmp$4 = path; + _tmp$5 = true; + importPath = _tmp$4; + ok = _tmp$5; + $s = -1; return [importPath, ok]; + } + /* } */ case 2: + _r$1 = DefaultLookupPackage(pkg); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + importPath = _tuple$1[0]; + ok = _tuple$1[1]; + $24r = [importPath, ok]; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: lookupPkg, $c: true, $r, $24r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, d, importPath, ok, ok$1, path, pkg, $s};return $f; + }; + isStdPkg = function isStdPkg$1(path) { + var {_r, i, path, $s, $r, $c} = $restore(this, {path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + path = [path]; + _r = sort.Search(stdPkgs.$length, (function(path) { return function isStdPkg·func1(i) { + var i; + return ((i < 0 || i >= stdPkgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : stdPkgs.$array[stdPkgs.$offset + i]) >= path[0]; + }; })(path)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + $s = -1; return i < stdPkgs.$length && ((i < 0 || i >= stdPkgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : stdPkgs.$array[stdPkgs.$offset + i]) === path[0]; + /* */ } return; } var $f = {$blk: isStdPkg$1, $c: true, $r, _r, i, path, $s};return $f; + }; + DefaultLookupPackage = function DefaultLookupPackage$1(name) { + var {_r, _tmp, _tmp$1, _tmp$2, _tmp$3, importPath, name, ok, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + importPath = ""; + ok = false; + _r = isStdPkg(name); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + _tmp = name; + _tmp$1 = true; + importPath = _tmp; + ok = _tmp$1; + $s = -1; return [importPath, ok]; + /* } */ case 2: + _tmp$2 = ""; + _tmp$3 = false; + importPath = _tmp$2; + ok = _tmp$3; + $s = -1; return [importPath, ok]; + /* */ } return; } var $f = {$blk: DefaultLookupPackage$1, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, importPath, name, ok, $s};return $f; + }; + $pkg.DefaultLookupPackage = DefaultLookupPackage; + $ptrType(Parser).prototype.Parse = function Parse(text$6) { + var {_1, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _ref$3, _ref$4, b, b$1, b$2, b$3, c, d, i, lines, p, p$1, prev, s, text$6, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {text$6}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = unindent(strings.Split(text$6, "\n")); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + lines = _r; + d = new parseDoc.ptr(p, new Doc.ptr(sliceType$5.nil, sliceType$6.nil), new $global.Map(), lines, (function Parser·Parse·func1(recv, name) { + var name, recv; + return false; + })); + if (!(p.LookupSym === $throwNilPointerError)) { + d.lookupSym = p.LookupSym; + } + prev = new span.ptr(0, 0, 0); + _r$1 = parseSpans(lines); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + s = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), span); + b = $ifaceNil; + _1 = s.kind; + /* */ if (_1 === (3)) { $s = 6; continue; } + /* */ if (_1 === (1)) { $s = 7; continue; } + /* */ if (_1 === (4)) { $s = 8; continue; } + /* */ if (_1 === (2)) { $s = 9; continue; } + /* */ if (_1 === (5)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === (3)) { */ case 6: + _r$2 = d.list($subslice(lines, s.start, s.end), prev.end < s.start); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + b = _r$2; + $s = 12; continue; + /* } else if (_1 === (1)) { */ case 7: + _r$3 = d.code($subslice(lines, s.start, s.end)); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + b = _r$3; + $s = 12; continue; + /* } else if (_1 === (4)) { */ case 8: + _r$4 = d.oldHeading((x = s.start, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x]))); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + b = _r$4; + $s = 12; continue; + /* } else if (_1 === (2)) { */ case 9: + _r$5 = d.heading((x$1 = s.start, ((x$1 < 0 || x$1 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$1]))); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + b = _r$5; + $s = 12; continue; + /* } else if (_1 === (5)) { */ case 10: + _r$6 = d.paragraph($subslice(lines, s.start, s.end)); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + b = _r$6; + $s = 12; continue; + /* } else { */ case 11: + $panic(new $String("go/doc/comment: internal error: unknown span kind")); + /* } */ case 12: + case 5: + if (!($interfaceIsEqual(b, $ifaceNil))) { + d.Doc.Content = $append(d.Doc.Content, b); + } + span.copy(prev, s); + _i++; + $s = 3; continue; + case 4: + _ref$1 = d.Doc.Content; + _i$1 = 0; + /* while (true) { */ case 18: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 19; continue; } + b$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _ref$2 = b$1; + /* */ if ($assertType(_ref$2, ptrType$2, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref$2, ptrType$5, true)[1]) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if ($assertType(_ref$2, ptrType$2, true)[1]) { */ case 20: + b$2 = _ref$2.$val; + _r$7 = d.parseLinkedText(($assertType((x$2 = b$2.Text, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])), Plain))); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + b$2.Text = _r$7; + $s = 22; continue; + /* } else if ($assertType(_ref$2, ptrType$5, true)[1]) { */ case 21: + b$3 = _ref$2.$val; + _ref$3 = b$3.Items; + _i$2 = 0; + /* while (true) { */ case 24: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 25; continue; } + i = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + _ref$4 = i.Content; + _i$3 = 0; + /* while (true) { */ case 26: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 27; continue; } + c = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + p$1 = $assertType(c, ptrType$2); + _r$8 = d.parseLinkedText(($assertType((x$3 = p$1.Text, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), Plain))); /* */ $s = 28; case 28: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + p$1.Text = _r$8; + _i$3++; + $s = 26; continue; + case 27: + _i$2++; + $s = 24; continue; + case 25: + /* } */ case 22: + _i$1++; + $s = 18; continue; + case 19: + $s = -1; return d.Doc; + /* */ } return; } var $f = {$blk: Parse, $c: true, $r, _1, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _ref$3, _ref$4, b, b$1, b$2, b$3, c, d, i, lines, p, p$1, prev, s, text$6, x, x$1, x$2, x$3, $s};return $f; + }; + parseSpans = function parseSpans$1(lines) { + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, end, forceIndent, i, kind, lines, spans, start, unindentedListOK, watchdog, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {lines}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + spans = sliceType$7.nil; + watchdog = $imul(2, lines.$length); + i = 0; + forceIndent = 0; + /* while (true) { */ case 1: + while (true) { + if (!(i < lines.$length && ((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === "")) { break; } + i = i + (1) >> 0; + } + if (i >= lines.$length) { + /* break; */ $s = 2; continue; + } + watchdog = watchdog - (1) >> 0; + if (watchdog < 0) { + $panic(new $String("go/doc/comment: internal error: not making progress")); + } + kind = 0; + start = i; + end = i; + /* */ if (i < forceIndent || indented(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i < forceIndent || indented(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]))) { */ case 3: + _r = isList(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + unindentedListOK = _r && i < forceIndent; + i = i + (1) >> 0; + /* while (true) { */ case 7: + if (!(i < lines.$length)) { _v = false; $s = 9; continue s; } + if (((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === "" || i < forceIndent || indented(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]))) { _v$1 = true; $s = 10; continue s; } + if (!(unindentedListOK)) { _v$2 = false; $s = 11; continue s; } + _r$1 = isList(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i])); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$2 = _r$1; case 11: + _v$1 = _v$2; case 10: + _v = _v$1; case 9: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 8; continue; } + if (((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === "") { + unindentedListOK = false; + } + i = i + (1) >> 0; + $s = 7; continue; + case 8: + end = i; + while (true) { + if (!(end > start && (x = end - 1 >> 0, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x])) === "")) { break; } + end = end - (1) >> 0; + } + if (end < lines.$length && strings.HasPrefix(((end < 0 || end >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + end]), "}")) { + end = end + (1) >> 0; + } + _r$2 = isList(((start < 0 || start >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + start])); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$2) { */ case 13: + kind = 3; + $s = 15; continue; + /* } else { */ case 14: + kind = 1; + /* } */ case 15: + $s = 5; continue; + /* } else { */ case 4: + i = i + (1) >> 0; + while (true) { + if (!(i < lines.$length && !(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === "") && !indented(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i])))) { break; } + i = i + (1) >> 0; + } + end = i; + if (!(i < lines.$length && !(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === ""))) { _v$3 = false; $s = 19; continue s; } + _r$3 = isList(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i])); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v$3 = !_r$3; case 19: + /* */ if (_v$3) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (_v$3) { */ case 17: + _r$4 = isList((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$1]))); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 22; continue; } + /* */ if (strings.HasSuffix((x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$2])), "{") || strings.HasSuffix((x$3 = i - 1 >> 0, ((x$3 < 0 || x$3 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$3])), "\\")) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (_r$4) { */ case 22: + forceIndent = end; + end = end - (1) >> 0; + /* while (true) { */ case 26: + if (!(end > start)) { _v$4 = false; $s = 28; continue s; } + _r$5 = isList((x$4 = end - 1 >> 0, ((x$4 < 0 || x$4 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$4]))); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v$4 = _r$5; case 28: + /* if (!(_v$4)) { break; } */ if(!(_v$4)) { $s = 27; continue; } + end = end - (1) >> 0; + $s = 26; continue; + case 27: + $s = 24; continue; + /* } else if (strings.HasSuffix((x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$2])), "{") || strings.HasSuffix((x$3 = i - 1 >> 0, ((x$3 < 0 || x$3 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$3])), "\\")) { */ case 23: + forceIndent = end; + end = end - (1) >> 0; + /* } */ case 24: + case 21: + if ((start === end) && forceIndent > start) { + i = start; + /* continue Spans; */ $s = 1; continue s; + } + /* } */ case 18: + if (!((end - start >> 0) === 1)) { _v$5 = false; $s = 34; continue s; } + _r$6 = isHeading(((start < 0 || start >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + start])); /* */ $s = 35; case 35: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$5 = _r$6; case 34: + /* */ if (_v$5) { $s = 30; continue; } + if (!((end - start >> 0) === 1)) { _v$6 = false; $s = 36; continue s; } + _r$7 = isOldHeading(((start < 0 || start >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + start]), lines, start); /* */ $s = 37; case 37: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$6 = _r$7; case 36: + /* */ if (_v$6) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (_v$5) { */ case 30: + kind = 2; + $s = 33; continue; + /* } else if (_v$6) { */ case 31: + kind = 4; + $s = 33; continue; + /* } else { */ case 32: + kind = 5; + /* } */ case 33: + /* } */ case 5: + spans = $append(spans, new span.ptr(start, end, kind)); + i = end; + $s = 1; continue; + case 2: + $s = -1; return spans; + /* */ } return; } var $f = {$blk: parseSpans$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, end, forceIndent, i, kind, lines, spans, start, unindentedListOK, watchdog, x, x$1, x$2, x$3, x$4, $s};return $f; + }; + indented = function indented$1(line) { + var line; + return !(line === "") && ((line.charCodeAt(0) === 32) || (line.charCodeAt(0) === 9)); + }; + unindent = function unindent$1(lines) { + var {_i, _i$1, _r, _ref, _ref$1, i, line, line$1, lines, out, prefix, x, x$1, $s, $r, $c} = $restore(this, {lines}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + while (true) { + if (!(lines.$length > 0 && isBlank((0 >= lines.$length ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + 0])))) { break; } + lines = $subslice(lines, 1); + } + while (true) { + if (!(lines.$length > 0 && isBlank((x = lines.$length - 1 >> 0, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x]))))) { break; } + lines = $subslice(lines, 0, (lines.$length - 1 >> 0)); + } + if (lines.$length === 0) { + $s = -1; return sliceType.nil; + } + prefix = leadingSpace((0 >= lines.$length ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + 0])); + _ref = $subslice(lines, 1); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!isBlank(line)) { + prefix = commonPrefix(prefix, leadingSpace(line)); + } + _i++; + } + out = $makeSlice(sliceType, lines.$length); + _ref$1 = lines; + _i$1 = 0; + /* while (true) { */ case 1: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } + i = _i$1; + line$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + line$1 = strings.TrimPrefix(line$1, prefix); + _r = strings.TrimSpace(line$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === "") { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r === "") { */ case 3: + line$1 = ""; + /* } */ case 4: + ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = line$1); + _i$1++; + $s = 1; continue; + case 2: + while (true) { + if (!(out.$length > 0 && (0 >= out.$length ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + 0]) === "")) { break; } + out = $subslice(out, 1); + } + while (true) { + if (!(out.$length > 0 && (x$1 = out.$length - 1 >> 0, ((x$1 < 0 || x$1 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + x$1])) === "")) { break; } + out = $subslice(out, 0, (out.$length - 1 >> 0)); + } + $s = -1; return out; + /* */ } return; } var $f = {$blk: unindent$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, i, line, line$1, lines, out, prefix, x, x$1, $s};return $f; + }; + isBlank = function isBlank$1(s) { + var s; + return (s.length === 0) || ((s.length === 1) && (s.charCodeAt(0) === 10)); + }; + commonPrefix = function commonPrefix$1(a, b) { + var a, b, i; + i = 0; + while (true) { + if (!(i < a.length && i < b.length && (a.charCodeAt(i) === b.charCodeAt(i)))) { break; } + i = i + (1) >> 0; + } + return $substring(a, 0, i); + }; + leadingSpace = function leadingSpace$1(s) { + var i, s; + i = 0; + while (true) { + if (!(i < s.length && ((s.charCodeAt(i) === 32) || (s.charCodeAt(i) === 9)))) { break; } + i = i + (1) >> 0; + } + return $substring(s, 0, i); + }; + isOldHeading = function isOldHeading$1(line, all, off) { + var {_r, _tuple, _tuple$1, _tuple$2, _tuple$3, all, b, b$1, line, off, ok, ok$1, r, x, x$1, x$2, $s, $r, $c} = $restore(this, {line, all, off}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (off <= 0 || !((x = off - 1 >> 0, ((x < 0 || x >= all.$length) ? ($throwRuntimeError("index out of range"), undefined) : all.$array[all.$offset + x])) === "") || (off + 2 >> 0) >= all.$length || !((x$1 = off + 1 >> 0, ((x$1 < 0 || x$1 >= all.$length) ? ($throwRuntimeError("index out of range"), undefined) : all.$array[all.$offset + x$1])) === "") || !(leadingSpace((x$2 = off + 2 >> 0, ((x$2 < 0 || x$2 >= all.$length) ? ($throwRuntimeError("index out of range"), undefined) : all.$array[all.$offset + x$2]))) === "")) { + $s = -1; return false; + } + _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + _tuple = utf8.DecodeRuneInString(line); + r = _tuple[0]; + if (!unicode.IsLetter(r) || !unicode.IsUpper(r)) { + $s = -1; return false; + } + _tuple$1 = utf8.DecodeLastRuneInString(line); + r = _tuple$1[0]; + if (!unicode.IsLetter(r) && !unicode.IsDigit(r)) { + $s = -1; return false; + } + if (strings.ContainsAny(line, ";:!?+*/=[]{}_^\xC2\xB0&\xC2\xA7~%#@<\">\\")) { + $s = -1; return false; + } + b = line; + while (true) { + ok = false; + _tuple$2 = strings.Cut(b, "'"); + b = _tuple$2[1]; + ok = _tuple$2[2]; + if (!ok) { + break; + } + if (!(b === "s") && !strings.HasPrefix(b, "s ")) { + $s = -1; return false; + } + } + b$1 = line; + while (true) { + ok$1 = false; + _tuple$3 = strings.Cut(b$1, "."); + b$1 = _tuple$3[1]; + ok$1 = _tuple$3[2]; + if (!ok$1) { + break; + } + if (b$1 === "" || strings.HasPrefix(b$1, " ")) { + $s = -1; return false; + } + } + $s = -1; return true; + /* */ } return; } var $f = {$blk: isOldHeading$1, $c: true, $r, _r, _tuple, _tuple$1, _tuple$2, _tuple$3, all, b, b$1, line, off, ok, ok$1, r, x, x$1, x$2, $s};return $f; + }; + $ptrType(parseDoc).prototype.oldHeading = function oldHeading(line) { + var {$24r, _r, d, line, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = new Heading.ptr(new sliceType$8([new Plain((_r))])); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: oldHeading, $c: true, $r, $24r, _r, d, line, $s};return $f; + }; + isHeading = function isHeading$1(line) { + var {$24r, _r, _v, line, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(line.length >= 2 && (line.charCodeAt(0) === 35) && ((line.charCodeAt(1) === 32) || (line.charCodeAt(1) === 9)))) { _v = false; $s = 1; continue s; } + _r = strings.TrimSpace(line); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = !(_r === "#"); case 1: + $24r = _v; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: isHeading$1, $c: true, $r, $24r, _r, _v, line, $s};return $f; + }; + $ptrType(parseDoc).prototype.heading = function heading(line) { + var {$24r, _r, d, line, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + _r = strings.TrimSpace($substring(line, 1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = new Heading.ptr(new sliceType$8([new Plain((_r))])); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: heading, $c: true, $r, $24r, _r, d, line, $s};return $f; + }; + $ptrType(parseDoc).prototype.code = function code(lines) { + var {_r, body, d, lines, $s, $r, $c} = $restore(this, {lines}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + _r = unindent(lines); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + body = _r; + body = $append(body, ""); + $s = -1; return new Code.ptr(strings.Join(body, "\n")); + /* */ } return; } var $f = {$blk: code, $c: true, $r, _r, body, d, lines, $s};return $f; + }; + $ptrType(parseDoc).prototype.paragraph = function paragraph(lines) { + var {_entry, _i, _i$1, _key, _r, _ref, _ref$1, _tuple, d, def, def$1, defs, line, lines, ok, $s, $r, $c} = $restore(this, {lines}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + defs = sliceType$6.nil; + _ref = lines; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = parseLink(line); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + def = _tuple[0]; + ok = _tuple[1]; + /* */ if (!ok) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!ok) { */ case 4: + /* goto NoDefs */ $s = 6; continue; + /* } */ case 5: + defs = $append(defs, def); + _i++; + $s = 1; continue; + case 2: + _ref$1 = defs; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + def$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + d.Doc.Links = $append(d.Doc.Links, def$1); + if ((_entry = $mapIndex(d.links,$String.keyFor(def$1.Text)), _entry !== undefined ? _entry.v : ptrType$10.nil) === ptrType$10.nil) { + _key = def$1.Text; (d.links || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: def$1 }); + } + _i$1++; + } + $s = -1; return $ifaceNil; + /* NoDefs: */ case 6: + $s = -1; return new Paragraph.ptr(new sliceType$8([new Plain((strings.Join(lines, "\n")))])); + /* */ } return; } var $f = {$blk: paragraph, $c: true, $r, _entry, _i, _i$1, _key, _r, _ref, _ref$1, _tuple, d, def, def$1, defs, line, lines, ok, $s};return $f; + }; + parseLink = function parseLink$1(line) { + var {_r, i, j, line, text$6, url, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (line === "" || !((line.charCodeAt(0) === 91))) { + $s = -1; return [ptrType$10.nil, false]; + } + i = strings.Index(line, "]:"); + if (i < 0 || (i + 3 >> 0) >= line.length || (!((line.charCodeAt((i + 2 >> 0)) === 32)) && !((line.charCodeAt((i + 2 >> 0)) === 9)))) { + $s = -1; return [ptrType$10.nil, false]; + } + text$6 = $substring(line, 1, i); + _r = strings.TrimSpace($substring(line, (i + 3 >> 0))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + url = _r; + j = strings.Index(url, "://"); + if (j < 0 || !isScheme($substring(url, 0, j))) { + $s = -1; return [ptrType$10.nil, false]; + } + $s = -1; return [new LinkDef.ptr(text$6, url, false), true]; + /* */ } return; } var $f = {$blk: parseLink$1, $c: true, $r, _r, i, j, line, text$6, url, $s};return $f; + }; + $ptrType(parseDoc).prototype.list = function list(lines, forceBlankBefore) { + var {_i, _r, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, after, d, flush, forceBlankBefore, item, line, lines, list$1, n, num, ok, text$6, $s, $r, $c} = $restore(this, {lines, forceBlankBefore}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = [d]; + item = [item]; + text$6 = [text$6]; + d[0] = this; + _r = listMarker((0 >= lines.$length ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + 0])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + num = _tuple[0]; + list$1 = new List.ptr(sliceType$9.nil, forceBlankBefore, false); + item[0] = ptrType$11.nil; + text$6[0] = sliceType.nil; + flush = (function(d, item, text$6) { return function parseDoc·list·func1() { + var {_r$1, para, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (!(item[0] === ptrType$11.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(item[0] === ptrType$11.nil)) { */ case 1: + _r$1 = d[0].paragraph(text$6[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + para = _r$1; + if (!($interfaceIsEqual(para, $ifaceNil))) { + item[0].Content = $append(item[0].Content, para); + } + /* } */ case 2: + text$6[0] = sliceType.nil; + $s = -1; return; + /* */ } return; } var $f = {$blk: parseDoc·list·func1, $c: true, $r, _r$1, para, $s};return $f; + }; })(d, item, text$6); + _ref = lines; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = listMarker(line); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + n = _tuple$1[0]; + after = _tuple$1[1]; + ok = _tuple$1[2]; + /* */ if (ok && (!(n === "")) === (!(num === ""))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (ok && (!(n === "")) === (!(num === ""))) { */ case 5: + $r = flush(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + item[0] = new ListItem.ptr(n, sliceType$5.nil); + list$1.Items = $append(list$1.Items, item[0]); + line = after; + /* } */ case 6: + _r$2 = strings.TrimSpace(line); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + line = _r$2; + /* */ if (line === "") { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (line === "") { */ case 9: + list$1.ForceBlankBetween = true; + $r = flush(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 2; continue; + /* } */ case 10: + _r$3 = strings.TrimSpace(line); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + text$6[0] = $append(text$6[0], _r$3); + _i++; + $s = 2; continue; + case 3: + $r = flush(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return list$1; + /* */ } return; } var $f = {$blk: list, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, after, d, flush, forceBlankBefore, item, line, lines, list$1, n, num, ok, text$6, $s};return $f; + }; + listMarker = function listMarker$1(line) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _v, line, n, n$1, num, ok, r, rest, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + num = ""; + rest = ""; + ok = false; + _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + if (line === "") { + _tmp = ""; + _tmp$1 = ""; + _tmp$2 = false; + num = _tmp; + rest = _tmp$1; + ok = _tmp$2; + $s = -1; return [num, rest, ok]; + } + _tuple = utf8.DecodeRuneInString(line); + r = _tuple[0]; + n = _tuple[1]; + if ((r === 8226) || (r === 42) || (r === 43) || (r === 45)) { + _tmp$3 = ""; + _tmp$4 = $substring(line, n); + num = _tmp$3; + rest = _tmp$4; + } else if (48 <= line.charCodeAt(0) && line.charCodeAt(0) <= 57) { + n$1 = 1; + while (true) { + if (!(n$1 < line.length && 48 <= line.charCodeAt(n$1) && line.charCodeAt(n$1) <= 57)) { break; } + n$1 = n$1 + (1) >> 0; + } + if (n$1 >= line.length || (!((line.charCodeAt(n$1) === 46)) && !((line.charCodeAt(n$1) === 41)))) { + _tmp$5 = ""; + _tmp$6 = ""; + _tmp$7 = false; + num = _tmp$5; + rest = _tmp$6; + ok = _tmp$7; + $s = -1; return [num, rest, ok]; + } + _tmp$8 = $substring(line, 0, n$1); + _tmp$9 = $substring(line, (n$1 + 1 >> 0)); + num = _tmp$8; + rest = _tmp$9; + } else { + _tmp$10 = ""; + _tmp$11 = ""; + _tmp$12 = false; + num = _tmp$10; + rest = _tmp$11; + ok = _tmp$12; + $s = -1; return [num, rest, ok]; + } + if (!indented(rest)) { _v = true; $s = 4; continue s; } + _r$1 = strings.TrimSpace(rest); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 === ""; case 4: + /* */ if (_v) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_v) { */ case 2: + _tmp$13 = ""; + _tmp$14 = ""; + _tmp$15 = false; + num = _tmp$13; + rest = _tmp$14; + ok = _tmp$15; + $s = -1; return [num, rest, ok]; + /* } */ case 3: + _tmp$16 = num; + _tmp$17 = rest; + _tmp$18 = true; + num = _tmp$16; + rest = _tmp$17; + ok = _tmp$18; + $s = -1; return [num, rest, ok]; + /* */ } return; } var $f = {$blk: listMarker$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _v, line, n, n$1, num, ok, r, rest, $s};return $f; + }; + isList = function isList$1(line) { + var {_r, _tuple, line, ok, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = listMarker(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ok = _tuple[2]; + $s = -1; return ok; + /* */ } return; } var $f = {$blk: isList$1, $c: true, $r, _r, _tuple, line, ok, $s};return $f; + }; + $ptrType(parseDoc).prototype.parseLinkedText = function parseLinkedText(text$6) { + var {_1, _entry, _r, _r$1, _r$2, _tuple, _tuple$1, buf, c, d, def, flush, i, link, ok, ok$1, out, start, text$6, wrote, $s, $r, $c} = $restore(this, {text$6}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = [d]; + out = [out]; + text$6 = [text$6]; + wrote = [wrote]; + d[0] = this; + out[0] = sliceType$8.nil; + wrote[0] = 0; + flush = (function(d, out, text$6, wrote) { return function parseDoc·parseLinkedText·func1(i) { + var {_r, i, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (wrote[0] < i) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (wrote[0] < i) { */ case 1: + _r = d[0].parseText(out[0], $substring(text$6[0], wrote[0], i), true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + out[0] = _r; + wrote[0] = i; + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: parseDoc·parseLinkedText·func1, $c: true, $r, _r, i, $s};return $f; + }; })(d, out, text$6, wrote); + start = -1; + buf = sliceType$1.nil; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < text$6[0].length)) { break; } */ if(!(i < text$6[0].length)) { $s = 2; continue; } + c = text$6[0].charCodeAt(i); + if ((c === 10) || (c === 9)) { + c = 32; + } + _1 = c; + /* */ if (_1 === (91)) { $s = 4; continue; } + /* */ if (_1 === (93)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (91)) { */ case 4: + start = i; + $s = 6; continue; + /* } else if (_1 === (93)) { */ case 5: + /* */ if (start >= 0) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (start >= 0) { */ case 7: + _tuple = (_entry = $mapIndex(d[0].links,$String.keyFor(($bytesToString(buf)))), _entry !== undefined ? [_entry.v, true] : [ptrType$10.nil, false]); + def = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (ok) { */ case 9: + def.Used = true; + $r = flush(start); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = d[0].parseText(sliceType$8.nil, $substring(text$6[0], (start + 1 >> 0), i), false); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + out[0] = $append(out[0], new Link.ptr(false, _r, def.URL)); + wrote[0] = i + 1 >> 0; + $s = 11; continue; + /* } else { */ case 10: + _r$1 = d[0].docLink($substring(text$6[0], (start + 1 >> 0), i), $substring(text$6[0], 0, start), $substring(text$6[0], (i + 1 >> 0))); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + link = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (ok$1) { */ case 15: + $r = flush(start); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = d[0].parseText(sliceType$8.nil, $substring(text$6[0], (start + 1 >> 0), i), false); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + link.Text = _r$2; + out[0] = $append(out[0], link); + wrote[0] = i + 1 >> 0; + /* } */ case 16: + /* } */ case 11: + /* } */ case 8: + start = -1; + buf = $subslice(buf, 0, 0); + /* } */ case 6: + case 3: + if (start >= 0 && !((i === start))) { + buf = $append(buf, c); + } + i = i + (1) >> 0; + $s = 1; continue; + case 2: + $r = flush(text$6[0].length); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return out[0]; + /* */ } return; } var $f = {$blk: parseLinkedText, $c: true, $r, _1, _entry, _r, _r$1, _r$2, _tuple, _tuple$1, buf, c, d, def, flush, i, link, ok, ok$1, out, start, text$6, wrote, $s};return $f; + }; + $ptrType(parseDoc).prototype.docLink = function docLink(text$6, before, after) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, after, before, d, link, name, ok, pkg, r, r$1, recv, text$6, $s, $r, $c} = $restore(this, {text$6, before, after}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + link = ptrType$7.nil; + ok = false; + d = this; + if (!(before === "")) { + _tuple = utf8.DecodeLastRuneInString(before); + r = _tuple[0]; + if (!unicode.IsPunct(r) && !((r === 32)) && !((r === 9)) && !((r === 10))) { + _tmp = ptrType$7.nil; + _tmp$1 = false; + link = _tmp; + ok = _tmp$1; + $s = -1; return [link, ok]; + } + } + if (!(after === "")) { + _tuple$1 = utf8.DecodeRuneInString(after); + r$1 = _tuple$1[0]; + if (!unicode.IsPunct(r$1) && !((r$1 === 32)) && !((r$1 === 9)) && !((r$1 === 10))) { + _tmp$2 = ptrType$7.nil; + _tmp$3 = false; + link = _tmp$2; + ok = _tmp$3; + $s = -1; return [link, ok]; + } + } + if (strings.HasPrefix(text$6, "*")) { + text$6 = $substring(text$6, 1); + } + _tuple$2 = splitDocName(text$6); + pkg = _tuple$2[0]; + name = _tuple$2[1]; + ok = _tuple$2[2]; + recv = ""; + if (ok) { + _tuple$3 = splitDocName(pkg); + pkg = _tuple$3[0]; + recv = _tuple$3[1]; + } + /* */ if (!(pkg === "")) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(pkg === "")) { */ case 1: + _r = d.lookupPkg(pkg); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$4 = _r; + pkg = _tuple$4[0]; + ok = _tuple$4[1]; + if (!ok) { + _tmp$4 = ptrType$7.nil; + _tmp$5 = false; + link = _tmp$4; + ok = _tmp$5; + $s = -1; return [link, ok]; + } + $s = 3; continue; + /* } else { */ case 2: + _r$1 = d.lookupSym(recv, name); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ok = _r$1; + if (!ok) { + _tmp$6 = ptrType$7.nil; + _tmp$7 = false; + link = _tmp$6; + ok = _tmp$7; + $s = -1; return [link, ok]; + } + /* } */ case 3: + link = new DocLink.ptr(sliceType$8.nil, pkg, recv, name); + _tmp$8 = link; + _tmp$9 = true; + link = _tmp$8; + ok = _tmp$9; + $s = -1; return [link, ok]; + /* */ } return; } var $f = {$blk: docLink, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, after, before, d, link, name, ok, pkg, r, r$1, recv, text$6, $s};return $f; + }; + splitDocName = function splitDocName$1(text$6) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, before, foundDot, i, name, text$6; + before = ""; + name = ""; + foundDot = false; + i = strings.LastIndex(text$6, "."); + name = $substring(text$6, (i + 1 >> 0)); + if (!isName(name)) { + _tmp = text$6; + _tmp$1 = ""; + _tmp$2 = false; + before = _tmp; + name = _tmp$1; + foundDot = _tmp$2; + return [before, name, foundDot]; + } + if (i >= 0) { + before = $substring(text$6, 0, i); + } + _tmp$3 = before; + _tmp$4 = name; + _tmp$5 = true; + before = _tmp$3; + name = _tmp$4; + foundDot = _tmp$5; + return [before, name, foundDot]; + }; + $ptrType(parseDoc).prototype.parseText = function parseText(out, s, autoLink) { + var {_entry, _tuple, _tuple$1, _tuple$2, autoLink, d, flush, i, id, italics, ok, ok$1, out, s, t, url, url$1, w, writeUntil, wrote, $s, $r, $c} = $restore(this, {out, s, autoLink}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = [out]; + s = [s]; + w = [w]; + writeUntil = [writeUntil]; + wrote = [wrote]; + d = this; + w[0] = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + wrote[0] = 0; + writeUntil[0] = (function(out, s, w, writeUntil, wrote) { return function parseDoc·parseText·func1(i) { + var i; + w[0].WriteString($substring(s[0], wrote[0], i)); + wrote[0] = i; + }; })(out, s, w, writeUntil, wrote); + flush = (function(out, s, w, writeUntil, wrote) { return function parseDoc·parseText·func2(i) { + var {i, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = writeUntil[0](i); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (w[0].Len() > 0) { + out[0] = $append(out[0], new Plain((w[0].String()))); + w[0].Reset(); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: parseDoc·parseText·func2, $c: true, $r, i, $s};return $f; + }; })(out, s, w, writeUntil, wrote); + i = 0; + /* while (true) { */ case 1: + /* if (!(i < s[0].length)) { break; } */ if(!(i < s[0].length)) { $s = 2; continue; } + t = $substring(s[0], i); + /* */ if (autoLink) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (autoLink) { */ case 3: + _tuple = autoURL(t); + url = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (ok) { */ case 5: + $r = flush(i); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out[0] = $append(out[0], new Link.ptr(true, new sliceType$8([new Plain((url))]), url)); + i = i + (url.length) >> 0; + wrote[0] = i; + /* continue; */ $s = 1; continue; + /* } */ case 6: + _tuple$1 = ident(t); + id = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (ok$1) { */ case 8: + _tuple$2 = (_entry = $mapIndex(d.Parser.Words,$String.keyFor(id)), _entry !== undefined ? [_entry.v, true] : ["", false]); + url$1 = _tuple$2[0]; + italics = _tuple$2[1]; + if (!italics) { + i = i + (id.length) >> 0; + /* continue; */ $s = 1; continue; + } + $r = flush(i); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (url$1 === "") { + out[0] = $append(out[0], new Italic((id))); + } else { + out[0] = $append(out[0], new Link.ptr(true, new sliceType$8([new Italic((id))]), url$1)); + } + i = i + (id.length) >> 0; + wrote[0] = i; + /* continue; */ $s = 1; continue; + /* } */ case 9: + /* } */ case 4: + /* */ if (strings.HasPrefix(t, "``")) { $s = 12; continue; } + /* */ if (strings.HasPrefix(t, "''")) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (strings.HasPrefix(t, "``")) { */ case 12: + if (t.length >= 3 && (t.charCodeAt(2) === 96)) { + i = i + (3) >> 0; + while (true) { + if (!(i < t.length && (t.charCodeAt(i) === 96))) { break; } + i = i + (1) >> 0; + } + /* break; */ $s = 11; continue; + } + $r = writeUntil[0](i); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w[0].WriteRune(8220); + i = i + (2) >> 0; + wrote[0] = i; + $s = 15; continue; + /* } else if (strings.HasPrefix(t, "''")) { */ case 13: + $r = writeUntil[0](i); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w[0].WriteRune(8221); + i = i + (2) >> 0; + wrote[0] = i; + $s = 15; continue; + /* } else { */ case 14: + i = i + (1) >> 0; + /* } */ case 15: + case 11: + $s = 1; continue; + case 2: + $r = flush(s[0].length); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return out[0]; + /* */ } return; } var $f = {$blk: parseText, $c: true, $r, _entry, _tuple, _tuple$1, _tuple$2, autoLink, d, flush, i, id, italics, ok, ok$1, out, s, t, url, url$1, w, writeUntil, wrote, $s};return $f; + }; + autoURL = function autoURL$1(s) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, end, i, ok, s, stk, url, x; + url = ""; + ok = false; + i = 0; + if (s.length < 7) { + _tmp = ""; + _tmp$1 = false; + url = _tmp; + ok = _tmp$1; + return [url, ok]; + } else if ((s.charCodeAt(3) === 58)) { + i = 3; + } else if ((s.charCodeAt(4) === 58)) { + i = 4; + } else if ((s.charCodeAt(5) === 58)) { + i = 5; + } else if ((s.charCodeAt(6) === 58)) { + i = 6; + } else { + _tmp$2 = ""; + _tmp$3 = false; + url = _tmp$2; + ok = _tmp$3; + return [url, ok]; + } + if ((i + 3 >> 0) > s.length || !($substring(s, i, (i + 3 >> 0)) === "://")) { + _tmp$4 = ""; + _tmp$5 = false; + url = _tmp$4; + ok = _tmp$5; + return [url, ok]; + } + if (!isScheme($substring(s, 0, i))) { + _tmp$6 = ""; + _tmp$7 = false; + url = _tmp$6; + ok = _tmp$7; + return [url, ok]; + } + i = i + (3) >> 0; + if (i >= s.length || !isHost(s.charCodeAt(i)) || isPunct(s.charCodeAt(i))) { + _tmp$8 = ""; + _tmp$9 = false; + url = _tmp$8; + ok = _tmp$9; + return [url, ok]; + } + i = i + (1) >> 0; + end = i; + while (true) { + if (!(i < s.length && isHost(s.charCodeAt(i)))) { break; } + if (!isPunct(s.charCodeAt(i))) { + end = i + 1 >> 0; + } + i = i + (1) >> 0; + } + i = end; + stk = new sliceType$1([]); + end = i; + Path: + while (true) { + if (!(i < s.length)) { break; } + if (isPunct(s.charCodeAt(i))) { + i = i + (1) >> 0; + continue; + } + if (!isPath(s.charCodeAt(i))) { + break; + } + _1 = s.charCodeAt(i); + if (_1 === (40)) { + stk = $append(stk, 41); + } else if (_1 === (123)) { + stk = $append(stk, 125); + } else if (_1 === (91)) { + stk = $append(stk, 93); + } else if ((_1 === (41)) || (_1 === (125)) || (_1 === (93))) { + if ((stk.$length === 0) || !(((x = stk.$length - 1 >> 0, ((x < 0 || x >= stk.$length) ? ($throwRuntimeError("index out of range"), undefined) : stk.$array[stk.$offset + x])) === s.charCodeAt(i)))) { + break Path; + } + stk = $subslice(stk, 0, (stk.$length - 1 >> 0)); + } + if (stk.$length === 0) { + end = i + 1 >> 0; + } + i = i + (1) >> 0; + } + _tmp$10 = $substring(s, 0, end); + _tmp$11 = true; + url = _tmp$10; + ok = _tmp$11; + return [url, ok]; + }; + isScheme = function isScheme$1(s) { + var _1, s; + _1 = s; + if (_1 === ("file") || _1 === ("ftp") || _1 === ("gopher") || _1 === ("http") || _1 === ("https") || _1 === ("mailto") || _1 === ("nntp")) { + return true; + } + return false; + }; + isHost = function isHost$1(c) { + var c, x, x$1, x$2, x$3, x$4; + return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 134176768, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 134217726, (x$4.$low & 2952790015) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); + }; + isPunct = function isPunct$1(c) { + var c, x, x$1, x$2, x$3, x$4; + return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 2348830722, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 0, (x$4.$low & 0) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); + }; + isPath = function isPath$1(c) { + var c, x, x$1, x$2, x$3, x$4; + return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 603959288, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 1879048190, (x$4.$low & 2952790015) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); + }; + isName = function isName$1(s) { + var _tuple, _tuple$1, ok, r, s, t; + _tuple = ident(s); + t = _tuple[0]; + ok = _tuple[1]; + if (!ok || !(t === s)) { + return false; + } + _tuple$1 = utf8.DecodeRuneInString(s); + r = _tuple$1[0]; + return unicode.IsUpper(r); + }; + ident = function ident$1(s) { + var _tmp, _tmp$1, _tuple, c, id, n, nr, ok, r, s; + id = ""; + ok = false; + n = 0; + while (true) { + if (!(n < s.length)) { break; } + c = s.charCodeAt(n); + if (c < 128) { + if (isIdentASCII(c) && (n > 0 || c < 48 || c > 57)) { + n = n + (1) >> 0; + continue; + } + break; + } + _tuple = utf8.DecodeRuneInString($substring(s, n)); + r = _tuple[0]; + nr = _tuple[1]; + if (unicode.IsLetter(r)) { + n = n + (nr) >> 0; + continue; + } + break; + } + _tmp = $substring(s, 0, n); + _tmp$1 = n > 0; + id = _tmp; + ok = _tmp$1; + return [id, ok]; + }; + isIdentASCII = function isIdentASCII$1(c) { + var c, x, x$1, x$2, x$3, x$4; + return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 67043328, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 134217726, (x$4.$low & 2281701374) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); + }; + validImportPath = function validImportPath$1(path) { + var _i, _ref, _rune, elemStart, i, path, r; + if (!utf8.ValidString(path)) { + return false; + } + if (path === "") { + return false; + } + if (path.charCodeAt(0) === 45) { + return false; + } + if (strings.Contains(path, "//")) { + return false; + } + if (path.charCodeAt((path.length - 1 >> 0)) === 47) { + return false; + } + elemStart = 0; + _ref = path; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + r = _rune[0]; + if (r === 47) { + if (!validImportPathElem($substring(path, elemStart, i))) { + return false; + } + elemStart = i + 1 >> 0; + } + _i += _rune[1]; + } + return validImportPathElem($substring(path, elemStart)); + }; + validImportPathElem = function validImportPathElem$1(elem) { + var elem, i; + if (elem === "" || (elem.charCodeAt(0) === 46) || (elem.charCodeAt((elem.length - 1 >> 0)) === 46)) { + return false; + } + i = 0; + while (true) { + if (!(i < elem.length)) { break; } + if (!importPathOK(elem.charCodeAt(i))) { + return false; + } + i = i + (1) >> 0; + } + return true; + }; + importPathOK = function importPathOK$1(c) { + var c, x, x$1, x$2, x$3, x$4; + return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 67069952, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 1207959550, (x$4.$low & 2281701374) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); + }; + $ptrType(Printer).prototype.Markdown = function Markdown(d) { + var {_i, _ref, d, i, mp, out, p, x, $s, $r, $c} = $restore(this, {d}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = [out]; + p = this; + mp = new mdPrinter.ptr(p, strings.Repeat("#", p.headingLevel()) + " ", new bytes.Buffer.ptr(sliceType$1.nil, 0, 0)); + out[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + _ref = d.Content; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + out[0].WriteByte(10); + } + $r = mp.block(out[0], x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return out[0].Bytes(); + /* */ } return; } var $f = {$blk: Markdown, $c: true, $r, _i, _ref, d, i, mp, out, p, x, $s};return $f; + }; + $ptrType(mdPrinter).prototype.block = function block$6(out, x) { + var {_i, _i$1, _r, _r$1, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, id, item, line, loose, md, n, out, p, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {out, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = x; + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 1: + x$2 = _ref.$val; + $r = p.text(out, x$2.Text); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out.WriteString("\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 2: + x$3 = _ref.$val; + out.WriteString(p.headingPrefix); + $r = p.text(out, x$3.Text); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = p.Printer.headingID(x$3); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + id = _r; + if (!(id === "")) { + out.WriteString(" {#"); + out.WriteString(id); + out.WriteString("}"); + } + out.WriteString("\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 3: + x$4 = _ref.$val; + md = x$4.Text; + while (true) { + if (!(!(md === ""))) { break; } + line = ""; + _tuple = strings.Cut(md, "\n"); + line = _tuple[0]; + md = _tuple[1]; + if (!(line === "")) { + out.WriteString("\t"); + out.WriteString(line); + } + out.WriteString("\n"); + } + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 4: + x$5 = _ref.$val; + loose = x$5.BlankBetween(); + _ref$1 = x$5.Items; + _i = 0; + /* while (true) { */ case 10: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 11; continue; } + i = _i; + item = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + if (i > 0 && loose) { + out.WriteString("\n"); + } + n = item.Number; + if (!(n === "")) { + out.WriteString(" "); + out.WriteString(n); + out.WriteString(". "); + } else { + out.WriteString(" - "); + } + _ref$2 = item.Content; + _i$1 = 0; + /* while (true) { */ case 12: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 13; continue; } + i$1 = _i$1; + blk = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + if (i$1 > 0) { + out.WriteString("\n "); + } + $r = p.text(out, $assertType(blk, ptrType$2).Text); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out.WriteString("\n"); + _i$1++; + $s = 12; continue; + case 13: + _i++; + $s = 10; continue; + case 11: + $s = 6; continue; + /* } else { */ case 5: + x$1 = _ref; + _r$1 = fmt.Fprintf(out, "?%T", new sliceType$2([x$1])); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: block$6, $c: true, $r, _i, _i$1, _r, _r$1, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, id, item, line, loose, md, n, out, p, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + }; + $ptrType(mdPrinter).prototype.text = function text$6(out, x) { + var {_1, _r, i, line, out, p, x, $s, $r, $c} = $restore(this, {out, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + p.raw.Reset(); + $r = p.rawText(p.raw, x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = bytes.TrimSpace(p.raw.Bytes()); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + if (line.$length === 0) { + $s = -1; return; + } + _1 = (0 >= line.$length ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + 0]); + if ((_1 === (43)) || (_1 === (45)) || (_1 === (42)) || (_1 === (35))) { + out.WriteByte(92); + } else if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55)) || (_1 === (56)) || (_1 === (57))) { + i = 1; + while (true) { + if (!(i < line.$length && 48 <= ((i < 0 || i >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i]) && ((i < 0 || i >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i]) <= 57)) { break; } + i = i + (1) >> 0; + } + if (i < line.$length && ((((i < 0 || i >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i]) === 46) || (((i < 0 || i >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i]) === 41))) { + out.Write($subslice(line, 0, i)); + out.WriteByte(92); + line = $subslice(line, i); + } + } + out.Write(line); + $s = -1; return; + /* */ } return; } var $f = {$blk: text$6, $c: true, $r, _1, _r, i, line, out, p, x, $s};return $f; + }; + $ptrType(mdPrinter).prototype.rawText = function rawText(out, x) { + var {_i, _r, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, url, x, $s, $r, $c} = $restore(this, {out, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = x; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = t; + /* */ if ($assertType(_ref$1, Plain, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, Italic, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$6, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref$1, ptrType$7, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($assertType(_ref$1, Plain, true)[1]) { */ case 3: + t$1 = _ref$1.$val; + p.escape(out, (t$1)); + $s = 7; continue; + /* } else if ($assertType(_ref$1, Italic, true)[1]) { */ case 4: + t$2 = _ref$1.$val; + out.WriteString("*"); + p.escape(out, (t$2)); + out.WriteString("*"); + $s = 7; continue; + /* } else if ($assertType(_ref$1, ptrType$6, true)[1]) { */ case 5: + t$3 = _ref$1.$val; + out.WriteString("["); + $r = p.rawText(out, t$3.Text); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out.WriteString("]("); + out.WriteString(t$3.URL); + out.WriteString(")"); + $s = 7; continue; + /* } else if ($assertType(_ref$1, ptrType$7, true)[1]) { */ case 6: + t$4 = _ref$1.$val; + _r = p.Printer.docLinkURL(t$4); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + url = _r; + if (!(url === "")) { + out.WriteString("["); + } + $r = p.rawText(out, t$4.Text); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(url === "")) { + out.WriteString("]("); + url = strings.ReplaceAll(url, "(", "%28"); + url = strings.ReplaceAll(url, ")", "%29"); + out.WriteString(url); + out.WriteString(")"); + } + /* } */ case 7: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: rawText, $c: true, $r, _i, _r, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, url, x, $s};return $f; + }; + $ptrType(mdPrinter).prototype.escape = function escape(out, s) { + var _1, i, out, p, s, start; + p = this; + start = 0; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + _1 = s.charCodeAt(i); + if (_1 === (10)) { + out.WriteString($substring(s, start, i)); + out.WriteByte(32); + start = i + 1 >> 0; + i = i + (1) >> 0; + continue; + } else if ((_1 === (96)) || (_1 === (95)) || (_1 === (42)) || (_1 === (91)) || (_1 === (60)) || (_1 === (92))) { + out.WriteString($substring(s, start, i)); + out.WriteByte(92); + out.WriteByte(s.charCodeAt(i)); + start = i + 1 >> 0; + } + i = i + (1) >> 0; + } + out.WriteString($substring(s, start)); + }; + $ptrType(Printer).prototype.HTML = function HTML(d) { + var {_i, _ref, d, hp, out, p, x, $s, $r, $c} = $restore(this, {d}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = [out]; + p = this; + hp = new htmlPrinter.ptr(p, false); + out[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + _ref = d.Content; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = hp.block(out[0], x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return out[0].Bytes(); + /* */ } return; } var $f = {$blk: HTML, $c: true, $r, _i, _ref, d, hp, out, p, x, $s};return $f; + }; + $ptrType(htmlPrinter).prototype.block = function block$7(out, x) { + var {_i, _i$1, _r, _r$1, _ref, _ref$1, _ref$2, blk, h, id, item, kind, n, next, out, p, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {out, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = x; + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 1: + x$2 = _ref.$val; + if (!p.tight) { + out.WriteString("

"); + } + $r = p.text(out, x$2.Text); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out.WriteString("\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 2: + x$3 = _ref.$val; + out.WriteString(""); + $r = p.text(out, x$3.Text); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out.WriteString("\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 3: + x$4 = _ref.$val; + out.WriteString("

");
+				p.escape(out, x$4.Text);
+				out.WriteString("
\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 4: + x$5 = _ref.$val; + kind = "ol>\n"; + if ((x$6 = x$5.Items, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])).Number === "") { + kind = "ul>\n"; + } + out.WriteString("<"); + out.WriteString(kind); + next = "1"; + _ref$1 = x$5.Items; + _i = 0; + /* while (true) { */ case 10: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 11; continue; } + item = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + out.WriteString(""); + p.tight = !x$5.BlankBetween(); + _ref$2 = item.Content; + _i$1 = 0; + /* while (true) { */ case 12: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 13; continue; } + blk = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + $r = p.block(out, blk); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 12; continue; + case 13: + p.tight = false; + _i++; + $s = 10; continue; + case 11: + out.WriteString("> 0; + while (true) { + if (!(i >= 0)) { break; } + if (((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) < 57) { + ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i] = (((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) + (1) << 24 >>> 24)); + return ($bytesToString(b)); + } + ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i] = 48); + i = i - (1) >> 0; + } + return "1" + ($bytesToString(b)); + }; + $ptrType(htmlPrinter).prototype.text = function text$7(out, x) { + var {_i, _r, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, url, x, $s, $r, $c} = $restore(this, {out, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = x; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = t; + /* */ if ($assertType(_ref$1, Plain, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, Italic, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$6, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref$1, ptrType$7, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($assertType(_ref$1, Plain, true)[1]) { */ case 3: + t$1 = _ref$1.$val; + p.escape(out, (t$1)); + $s = 7; continue; + /* } else if ($assertType(_ref$1, Italic, true)[1]) { */ case 4: + t$2 = _ref$1.$val; + out.WriteString(""); + p.escape(out, (t$2)); + out.WriteString(""); + $s = 7; continue; + /* } else if ($assertType(_ref$1, ptrType$6, true)[1]) { */ case 5: + t$3 = _ref$1.$val; + out.WriteString(""); + $r = p.text(out, t$3.Text); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out.WriteString(""); + $s = 7; continue; + /* } else if ($assertType(_ref$1, ptrType$7, true)[1]) { */ case 6: + t$4 = _ref$1.$val; + _r = p.Printer.docLinkURL(t$4); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + url = _r; + if (!(url === "")) { + out.WriteString(""); + } + $r = p.text(out, t$4.Text); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(url === "")) { + out.WriteString(""); + } + /* } */ case 7: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: text$7, $c: true, $r, _i, _r, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, url, x, $s};return $f; + }; + $ptrType(htmlPrinter).prototype.escape = function escape$1(out, s) { + var _1, i, out, p, s, start; + p = this; + start = 0; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + _1 = s.charCodeAt(i); + if (_1 === (60)) { + out.WriteString($substring(s, start, i)); + out.WriteString("<"); + start = i + 1 >> 0; + } else if (_1 === (38)) { + out.WriteString($substring(s, start, i)); + out.WriteString("&"); + start = i + 1 >> 0; + } else if (_1 === (34)) { + out.WriteString($substring(s, start, i)); + out.WriteString("""); + start = i + 1 >> 0; + } else if (_1 === (39)) { + out.WriteString($substring(s, start, i)); + out.WriteString("'"); + start = i + 1 >> 0; + } else if (_1 === (62)) { + out.WriteString($substring(s, start, i)); + out.WriteString(">"); + start = i + 1 >> 0; + } + i = i + (1) >> 0; + } + out.WriteString($substring(s, start)); + }; + ptrType$13.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([ptrType$12, Block], [], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String, sliceType$8], [], false)}, {prop: "oneLongLine", name: "oneLongLine", pkg: "go/doc/comment", typ: $funcType([ptrType$1, sliceType$8], [], false)}]; + ptrType.methods = [{prop: "Text", name: "Text", pkg: "", typ: $funcType([ptrType$9], [sliceType$1], false)}, {prop: "headingLevel", name: "headingLevel", pkg: "go/doc/comment", typ: $funcType([], [$Int], false)}, {prop: "headingID", name: "headingID", pkg: "go/doc/comment", typ: $funcType([ptrType$3], [$String], false)}, {prop: "docLinkURL", name: "docLinkURL", pkg: "go/doc/comment", typ: $funcType([ptrType$7], [$String], false)}, {prop: "Comment", name: "Comment", pkg: "", typ: $funcType([ptrType$9], [sliceType$1], false)}, {prop: "Markdown", name: "Markdown", pkg: "", typ: $funcType([ptrType$9], [sliceType$1], false)}, {prop: "HTML", name: "HTML", pkg: "", typ: $funcType([ptrType$9], [sliceType$1], false)}]; + ptrType$14.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([ptrType$12, Block], [], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String, sliceType$8], [], false)}, {prop: "indent", name: "indent", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String, $String], [], false)}]; + ptrType$3.methods = [{prop: "DefaultID", name: "DefaultID", pkg: "", typ: $funcType([], [$String], false)}, {prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + ptrType$5.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}, {prop: "BlankBefore", name: "BlankBefore", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "BlankBetween", name: "BlankBetween", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$2.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + ptrType$4.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + Plain.methods = [{prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + Italic.methods = [{prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + ptrType$6.methods = [{prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + ptrType$7.methods = [{prop: "DefaultURL", name: "DefaultURL", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + ptrType$8.methods = [{prop: "Parse", name: "Parse", pkg: "", typ: $funcType([$String], [ptrType$9], false)}]; + ptrType$15.methods = [{prop: "lookupPkg", name: "lookupPkg", pkg: "go/doc/comment", typ: $funcType([$String], [$String, $Bool], false)}, {prop: "oldHeading", name: "oldHeading", pkg: "go/doc/comment", typ: $funcType([$String], [Block], false)}, {prop: "heading", name: "heading", pkg: "go/doc/comment", typ: $funcType([$String], [Block], false)}, {prop: "code", name: "code", pkg: "go/doc/comment", typ: $funcType([sliceType], [ptrType$4], false)}, {prop: "paragraph", name: "paragraph", pkg: "go/doc/comment", typ: $funcType([sliceType], [Block], false)}, {prop: "list", name: "list", pkg: "go/doc/comment", typ: $funcType([sliceType, $Bool], [ptrType$5], false)}, {prop: "parseLinkedText", name: "parseLinkedText", pkg: "go/doc/comment", typ: $funcType([$String], [sliceType$8], false)}, {prop: "docLink", name: "docLink", pkg: "go/doc/comment", typ: $funcType([$String, $String, $String], [ptrType$7, $Bool], false)}, {prop: "parseText", name: "parseText", pkg: "go/doc/comment", typ: $funcType([sliceType$8, $String, $Bool], [sliceType$8], false)}]; + ptrType$16.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([ptrType$12, Block], [], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([ptrType$12, sliceType$8], [], false)}, {prop: "rawText", name: "rawText", pkg: "go/doc/comment", typ: $funcType([ptrType$12, sliceType$8], [], false)}, {prop: "escape", name: "escape", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String], [], false)}]; + ptrType$17.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([ptrType$12, Block], [], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([ptrType$12, sliceType$8], [], false)}, {prop: "escape", name: "escape", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String], [], false)}]; + textPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "long$1", name: "long", embedded: false, exported: false, typ: strings.Builder, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "codePrefix", name: "codePrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}]); + Printer.init("", [{prop: "HeadingLevel", name: "HeadingLevel", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "HeadingID", name: "HeadingID", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "DocLinkURL", name: "DocLinkURL", embedded: false, exported: true, typ: funcType$1, tag: ""}, {prop: "DocLinkBaseURL", name: "DocLinkBaseURL", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TextPrefix", name: "TextPrefix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TextCodePrefix", name: "TextCodePrefix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TextWidth", name: "TextWidth", embedded: false, exported: true, typ: $Int, tag: ""}]); + commentPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "headingPrefix", name: "headingPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "needDoc", name: "needDoc", embedded: false, exported: false, typ: mapType, tag: ""}]); + Doc.init("", [{prop: "Content", name: "Content", embedded: false, exported: true, typ: sliceType$5, tag: ""}, {prop: "Links", name: "Links", embedded: false, exported: true, typ: sliceType$6, tag: ""}]); + LinkDef.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "URL", name: "URL", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Used", name: "Used", embedded: false, exported: true, typ: $Bool, tag: ""}]); + Block.init([{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}]); + Heading.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}]); + List.init("", [{prop: "Items", name: "Items", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "ForceBlankBefore", name: "ForceBlankBefore", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ForceBlankBetween", name: "ForceBlankBetween", embedded: false, exported: true, typ: $Bool, tag: ""}]); + ListItem.init("", [{prop: "Number", name: "Number", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Content", name: "Content", embedded: false, exported: true, typ: sliceType$5, tag: ""}]); + Paragraph.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}]); + Code.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}]); + Text.init([{prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]); + Link.init("", [{prop: "Auto", name: "Auto", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "URL", name: "URL", embedded: false, exported: true, typ: $String, tag: ""}]); + DocLink.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "ImportPath", name: "ImportPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Recv", name: "Recv", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}]); + Parser.init("", [{prop: "Words", name: "Words", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "LookupPackage", name: "LookupPackage", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "LookupSym", name: "LookupSym", embedded: false, exported: true, typ: funcType$3, tag: ""}]); + parseDoc.init("go/doc/comment", [{prop: "Parser", name: "Parser", embedded: true, exported: true, typ: ptrType$8, tag: ""}, {prop: "Doc", name: "Doc", embedded: true, exported: true, typ: ptrType$9, tag: ""}, {prop: "links", name: "links", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "lines", name: "lines", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "lookupSym", name: "lookupSym", embedded: false, exported: false, typ: funcType$3, tag: ""}]); + span.init("go/doc/comment", [{prop: "start", name: "start", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: spanKind, tag: ""}]); + mdPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "headingPrefix", name: "headingPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: bytes.Buffer, tag: ""}]); + htmlPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "tight", name: "tight", embedded: false, exported: false, typ: $Bool, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + stdPkgs = new sliceType(["bufio", "bytes", "context", "crypto", "embed", "encoding", "errors", "expvar", "flag", "fmt", "hash", "html", "image", "io", "log", "math", "mime", "net", "os", "path", "plugin", "reflect", "regexp", "runtime", "sort", "strconv", "strings", "sync", "syscall", "testing", "time", "unicode", "unsafe"]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["regexp/syntax"] = (function() { + var $pkg = {}, $init, sort, strconv, strings, unicode, utf8, Regexp, Op, Prog, InstOp, EmptyOp, Inst, Error, ErrorCode, Flags, parser, charGroup, ranges, patchList, frag, compiler, instOpNames, code1, code2, code3, perlGroup, code4, code5, code6, code7, code8, code9, code10, code11, code12, code13, code14, code15, code16, code17, posixGroup, anyTable, _Op_index_0, anyRuneNotNL, anyRune, simplify1, writeRegexp, escape, IsWordChar, bw, dumpProg, u32, dumpInst, minFoldRune, repeatIsValid, cleanAlt, literalRegexp, Parse, parse, isValidCaptureName, isCharClass, matchRune, mergeCharClass, unicodeTable, cleanClass, appendLiteral, appendRange, appendFoldedRange, appendClass, appendFoldedClass, appendNegatedClass, appendTable, appendNegatedTable, negateClass, checkUTF8, nextRune, isalnum, unhex, makePatchList, Compile; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Regexp = $newType(0, $kindStruct, "syntax.Regexp", true, "regexp/syntax", true, function(Op_, Flags_, Sub_, Sub0_, Rune_, Rune0_, Min_, Max_, Cap_, Name_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = 0; + this.Flags = 0; + this.Sub = sliceType$4.nil; + this.Sub0 = arrayType.zero(); + this.Rune = sliceType$1.nil; + this.Rune0 = arrayType$1.zero(); + this.Min = 0; + this.Max = 0; + this.Cap = 0; + this.Name = ""; + return; + } + this.Op = Op_; + this.Flags = Flags_; + this.Sub = Sub_; + this.Sub0 = Sub0_; + this.Rune = Rune_; + this.Rune0 = Rune0_; + this.Min = Min_; + this.Max = Max_; + this.Cap = Cap_; + this.Name = Name_; + }); + Op = $newType(1, $kindUint8, "syntax.Op", true, "regexp/syntax", true, null); + Prog = $newType(0, $kindStruct, "syntax.Prog", true, "regexp/syntax", true, function(Inst_, Start_, NumCap_) { + this.$val = this; + if (arguments.length === 0) { + this.Inst = sliceType$6.nil; + this.Start = 0; + this.NumCap = 0; + return; + } + this.Inst = Inst_; + this.Start = Start_; + this.NumCap = NumCap_; + }); + InstOp = $newType(1, $kindUint8, "syntax.InstOp", true, "regexp/syntax", true, null); + EmptyOp = $newType(1, $kindUint8, "syntax.EmptyOp", true, "regexp/syntax", true, null); + Inst = $newType(0, $kindStruct, "syntax.Inst", true, "regexp/syntax", true, function(Op_, Out_, Arg_, Rune_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = 0; + this.Out = 0; + this.Arg = 0; + this.Rune = sliceType$1.nil; + return; + } + this.Op = Op_; + this.Out = Out_; + this.Arg = Arg_; + this.Rune = Rune_; + }); + Error = $newType(0, $kindStruct, "syntax.Error", true, "regexp/syntax", true, function(Code_, Expr_) { + this.$val = this; + if (arguments.length === 0) { + this.Code = ""; + this.Expr = ""; + return; + } + this.Code = Code_; + this.Expr = Expr_; + }); + ErrorCode = $newType(8, $kindString, "syntax.ErrorCode", true, "regexp/syntax", true, null); + Flags = $newType(2, $kindUint16, "syntax.Flags", true, "regexp/syntax", true, null); + parser = $newType(0, $kindStruct, "syntax.parser", true, "regexp/syntax", false, function(flags_, stack_, free_, numCap_, wholeRegexp_, tmpClass_, numRegexp_, numRunes_, repeats_, height_, size_) { + this.$val = this; + if (arguments.length === 0) { + this.flags = 0; + this.stack = sliceType$4.nil; + this.free = ptrType.nil; + this.numCap = 0; + this.wholeRegexp = ""; + this.tmpClass = sliceType$1.nil; + this.numRegexp = 0; + this.numRunes = 0; + this.repeats = new $Int64(0, 0); + this.height = false; + this.size = false; + return; + } + this.flags = flags_; + this.stack = stack_; + this.free = free_; + this.numCap = numCap_; + this.wholeRegexp = wholeRegexp_; + this.tmpClass = tmpClass_; + this.numRegexp = numRegexp_; + this.numRunes = numRunes_; + this.repeats = repeats_; + this.height = height_; + this.size = size_; + }); + charGroup = $newType(0, $kindStruct, "syntax.charGroup", true, "regexp/syntax", false, function(sign_, class$1_) { + this.$val = this; + if (arguments.length === 0) { + this.sign = 0; + this.class$1 = sliceType$1.nil; + return; + } + this.sign = sign_; + this.class$1 = class$1_; + }); + ranges = $newType(0, $kindStruct, "syntax.ranges", true, "regexp/syntax", false, function(p_) { + this.$val = this; + if (arguments.length === 0) { + this.p = ptrType$2.nil; + return; + } + this.p = p_; + }); + patchList = $newType(0, $kindStruct, "syntax.patchList", true, "regexp/syntax", false, function(head_, tail_) { + this.$val = this; + if (arguments.length === 0) { + this.head = 0; + this.tail = 0; + return; + } + this.head = head_; + this.tail = tail_; + }); + frag = $newType(0, $kindStruct, "syntax.frag", true, "regexp/syntax", false, function(i_, out_, nullable_) { + this.$val = this; + if (arguments.length === 0) { + this.i = 0; + this.out = new patchList.ptr(0, 0); + this.nullable = false; + return; + } + this.i = i_; + this.out = out_; + this.nullable = nullable_; + }); + compiler = $newType(0, $kindStruct, "syntax.compiler", true, "regexp/syntax", false, function(p_) { + this.$val = this; + if (arguments.length === 0) { + this.p = ptrType$4.nil; + return; + } + this.p = p_; + }); + $pkg.Regexp = Regexp; + $pkg.Op = Op; + $pkg.Prog = Prog; + $pkg.InstOp = InstOp; + $pkg.EmptyOp = EmptyOp; + $pkg.Inst = Inst; + $pkg.Error = Error; + $pkg.ErrorCode = ErrorCode; + $pkg.Flags = Flags; + $pkg.parser = parser; + $pkg.charGroup = charGroup; + $pkg.ranges = ranges; + $pkg.patchList = patchList; + $pkg.frag = frag; + $pkg.compiler = compiler; + $pkg.$finishSetup = function() { + $ptrType(Regexp).prototype.Simplify = function Simplify() { + var _1, _i, _ref, i, i$1, i$2, i$3, nre, nre$1, nre2, nsub, prefix, re, sub, sub$1, sub$2, suffix, x, x$1; + re = this; + if (re === ptrType.nil) { + return ptrType.nil; + } + _1 = re.Op; + if ((_1 === (13)) || (_1 === (18)) || (_1 === (19))) { + nre = re; + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + nsub = sub.Simplify(); + if (nre === re && !(nsub === sub)) { + nre = new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + Regexp.copy(nre, re); + nre.Rune = sliceType$1.nil; + nre.Sub = $appendSlice($subslice(new sliceType$4(nre.Sub0), 0, 0), $subslice(re.Sub, 0, i)); + } + if (!(nre === re)) { + nre.Sub = $append(nre.Sub, nsub); + } + _i++; + } + return nre; + } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { + sub$1 = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Simplify(); + return simplify1(re.Op, re.Flags, sub$1, re); + } else if (_1 === (17)) { + if ((re.Min === 0) && (re.Max === 0)) { + return new Regexp.ptr(2, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + } + sub$2 = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Simplify(); + if (re.Max === -1) { + if (re.Min === 0) { + return simplify1(14, re.Flags, sub$2, ptrType.nil); + } + if (re.Min === 1) { + return simplify1(15, re.Flags, sub$2, ptrType.nil); + } + nre$1 = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + nre$1.Sub = $subslice(new sliceType$4(nre$1.Sub0), 0, 0); + i$1 = 0; + while (true) { + if (!(i$1 < (re.Min - 1 >> 0))) { break; } + nre$1.Sub = $append(nre$1.Sub, sub$2); + i$1 = i$1 + (1) >> 0; + } + nre$1.Sub = $append(nre$1.Sub, simplify1(15, re.Flags, sub$2, ptrType.nil)); + return nre$1; + } + if ((re.Min === 1) && (re.Max === 1)) { + return sub$2; + } + prefix = ptrType.nil; + if (re.Min > 0) { + prefix = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + prefix.Sub = $subslice(new sliceType$4(prefix.Sub0), 0, 0); + i$2 = 0; + while (true) { + if (!(i$2 < re.Min)) { break; } + prefix.Sub = $append(prefix.Sub, sub$2); + i$2 = i$2 + (1) >> 0; + } + } + if (re.Max > re.Min) { + suffix = simplify1(16, re.Flags, sub$2, ptrType.nil); + i$3 = re.Min + 1 >> 0; + while (true) { + if (!(i$3 < re.Max)) { break; } + nre2 = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + nre2.Sub = $append($subslice(new sliceType$4(nre2.Sub0), 0, 0), sub$2, suffix); + suffix = simplify1(16, re.Flags, nre2, ptrType.nil); + i$3 = i$3 + (1) >> 0; + } + if (prefix === ptrType.nil) { + return suffix; + } + prefix.Sub = $append(prefix.Sub, suffix); + } + if (!(prefix === ptrType.nil)) { + return prefix; + } + return new Regexp.ptr(1, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + } + return re; + }; + simplify1 = function simplify1$1(op, flags, sub, re) { + var flags, op, re, sub, x; + if (sub.Op === 2) { + return sub; + } + if ((op === sub.Op) && (((flags & 32) >>> 0) === ((sub.Flags & 32) >>> 0))) { + return sub; + } + if (!(re === ptrType.nil) && (re.Op === op) && (((re.Flags & 32) >>> 0) === ((flags & 32) >>> 0)) && sub === (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))) { + return re; + } + re = new Regexp.ptr(op, flags, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + re.Sub = $append($subslice(new sliceType$4(re.Sub0), 0, 0), sub); + return re; + }; + $ptrType(Regexp).prototype.Equal = function Equal(y) { + var _1, _i, _i$1, _ref, _ref$1, i, i$1, r, sub, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y; + x = this; + if (x === ptrType.nil || y === ptrType.nil) { + return x === y; + } + if (!((x.Op === y.Op))) { + return false; + } + _1 = x.Op; + if (_1 === (10)) { + if (!((((x.Flags & 256) >>> 0) === ((y.Flags & 256) >>> 0)))) { + return false; + } + } else if ((_1 === (3)) || (_1 === (4))) { + if (!((x.Rune.$length === y.Rune.$length))) { + return false; + } + _ref = x.Rune; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((r === (x$1 = y.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]))))) { + return false; + } + _i++; + } + } else if ((_1 === (19)) || (_1 === (18))) { + if (!((x.Sub.$length === y.Sub.$length))) { + return false; + } + _ref$1 = x.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + sub = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (!sub.Equal((x$2 = y.Sub, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])))) { + return false; + } + _i$1++; + } + } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { + if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !(x$3 = x.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).Equal((x$4 = y.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])))) { + return false; + } + } else if (_1 === (17)) { + if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !((x.Min === y.Min)) || !((x.Max === y.Max)) || !(x$5 = x.Sub, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).Equal((x$6 = y.Sub, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])))) { + return false; + } + } else if (_1 === (13)) { + if (!((x.Cap === y.Cap)) || !(x.Name === y.Name) || !(x$7 = x.Sub, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).Equal((x$8 = y.Sub, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])))) { + return false; + } + } + return true; + }; + writeRegexp = function writeRegexp$1(b, re) { + var _1, _2, _i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$2, _tmp$3, b, hi, hi$1, i, i$1, i$2, lo, lo$1, r, re, sub, sub$1, sub$2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + switch (0) { default: + _1 = re.Op; + if (_1 === (1)) { + b.WriteString("[^\\x00-\\x{10FFFF}]"); + } else if (_1 === (2)) { + b.WriteString("(?:)"); + } else if (_1 === (3)) { + if (!((((re.Flags & 1) >>> 0) === 0))) { + b.WriteString("(?i:"); + } + _ref = re.Rune; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + escape(b, r, false); + _i++; + } + if (!((((re.Flags & 1) >>> 0) === 0))) { + b.WriteString(")"); + } + } else if (_1 === (4)) { + if (!(((_r = re.Rune.$length % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0))) { + b.WriteString("[invalid char class]"); + break; + } + b.WriteRune(91); + if (re.Rune.$length === 0) { + b.WriteString("^\\x00-\\x{10FFFF}"); + } else if (((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, x$2 = re.Rune.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 1114111) && re.Rune.$length > 2) { + b.WriteRune(94); + i = 1; + while (true) { + if (!(i < (re.Rune.$length - 1 >> 0))) { break; } + _tmp = (x$3 = re.Rune, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])) + 1 >> 0; + _tmp$1 = (x$4 = re.Rune, x$5 = i + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) - 1 >> 0; + lo = _tmp; + hi = _tmp$1; + escape(b, lo, lo === 45); + if (!((lo === hi))) { + b.WriteRune(45); + escape(b, hi, hi === 45); + } + i = i + (2) >> 0; + } + } else { + i$1 = 0; + while (true) { + if (!(i$1 < re.Rune.$length)) { break; } + _tmp$2 = (x$6 = re.Rune, ((i$1 < 0 || i$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i$1])); + _tmp$3 = (x$7 = re.Rune, x$8 = i$1 + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])); + lo$1 = _tmp$2; + hi$1 = _tmp$3; + escape(b, lo$1, lo$1 === 45); + if (!((lo$1 === hi$1))) { + b.WriteRune(45); + escape(b, hi$1, hi$1 === 45); + } + i$1 = i$1 + (2) >> 0; + } + } + b.WriteRune(93); + } else if (_1 === (5)) { + b.WriteString("(?-s:.)"); + } else if (_1 === (6)) { + b.WriteString("(?s:.)"); + } else if (_1 === (7)) { + b.WriteString("(?m:^)"); + } else if (_1 === (8)) { + b.WriteString("(?m:$)"); + } else if (_1 === (9)) { + b.WriteString("\\A"); + } else if (_1 === (10)) { + if (!((((re.Flags & 256) >>> 0) === 0))) { + b.WriteString("(?-m:$)"); + } else { + b.WriteString("\\z"); + } + } else if (_1 === (11)) { + b.WriteString("\\b"); + } else if (_1 === (12)) { + b.WriteString("\\B"); + } else if (_1 === (13)) { + if (!(re.Name === "")) { + b.WriteString("(?P<"); + b.WriteString(re.Name); + b.WriteRune(62); + } else { + b.WriteRune(40); + } + if (!(((x$9 = re.Sub, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])).Op === 2))) { + writeRegexp(b, (x$10 = re.Sub, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0]))); + } + b.WriteRune(41); + } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16)) || (_1 === (17))) { + sub = (x$11 = re.Sub, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0])); + if (sub.Op > 13 || (sub.Op === 3) && sub.Rune.$length > 1) { + b.WriteString("(?:"); + writeRegexp(b, sub); + b.WriteString(")"); + } else { + writeRegexp(b, sub); + } + _2 = re.Op; + if (_2 === (14)) { + b.WriteRune(42); + } else if (_2 === (15)) { + b.WriteRune(43); + } else if (_2 === (16)) { + b.WriteRune(63); + } else if (_2 === (17)) { + b.WriteRune(123); + b.WriteString(strconv.Itoa(re.Min)); + if (!((re.Max === re.Min))) { + b.WriteRune(44); + if (re.Max >= 0) { + b.WriteString(strconv.Itoa(re.Max)); + } + } + b.WriteRune(125); + } + if (!((((re.Flags & 32) >>> 0) === 0))) { + b.WriteRune(63); + } + } else if (_1 === (18)) { + _ref$1 = re.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (sub$1.Op === 19) { + b.WriteString("(?:"); + writeRegexp(b, sub$1); + b.WriteString(")"); + } else { + writeRegexp(b, sub$1); + } + _i$1++; + } + } else if (_1 === (19)) { + _ref$2 = re.Sub; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + if (i$2 > 0) { + b.WriteRune(124); + } + writeRegexp(b, sub$2); + _i$2++; + } + } else { + b.WriteString("> 0))) + ">"); + } + } + }; + $ptrType(Regexp).prototype.String = function String() { + var b, re; + re = this; + b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); + writeRegexp(b, re); + return b.String(); + }; + escape = function escape$1(b, r, force) { + var _1, b, force, r, s; + if (unicode.IsPrint(r)) { + if (strings.ContainsRune("\\.+*?()|[]{}^$", r) || force) { + b.WriteRune(92); + } + b.WriteRune(r); + return; + } + switch (0) { default: + _1 = r; + if (_1 === (7)) { + b.WriteString("\\a"); + } else if (_1 === (12)) { + b.WriteString("\\f"); + } else if (_1 === (10)) { + b.WriteString("\\n"); + } else if (_1 === (13)) { + b.WriteString("\\r"); + } else if (_1 === (9)) { + b.WriteString("\\t"); + } else if (_1 === (11)) { + b.WriteString("\\v"); + } else { + if (r < 256) { + b.WriteString("\\x"); + s = strconv.FormatInt((new $Int64(0, r)), 16); + if (s.length === 1) { + b.WriteRune(48); + } + b.WriteString(s); + break; + } + b.WriteString("\\x{"); + b.WriteString(strconv.FormatInt((new $Int64(0, r)), 16)); + b.WriteString("}"); + } + } + }; + $ptrType(Regexp).prototype.MaxCap = function MaxCap() { + var _i, _ref, m, n, re, sub; + re = this; + m = 0; + if (re.Op === 13) { + m = re.Cap; + } + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + n = sub.MaxCap(); + if (m < n) { + m = n; + } + _i++; + } + return m; + }; + $ptrType(Regexp).prototype.CapNames = function CapNames() { + var names, re; + re = this; + names = $makeSlice(sliceType, (re.MaxCap() + 1 >> 0)); + re.capNames(names); + return names; + }; + $ptrType(Regexp).prototype.capNames = function capNames(names) { + var _i, _ref, names, re, sub, x; + re = this; + if (re.Op === 13) { + (x = re.Cap, ((x < 0 || x >= names.$length) ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + x] = re.Name)); + } + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + sub.capNames(names); + _i++; + } + }; + InstOp.prototype.String = function String$1() { + var i; + i = this.$val; + if (((i >>> 0)) >= ((instOpNames.$length >>> 0))) { + return ""; + } + return ((i < 0 || i >= instOpNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : instOpNames.$array[instOpNames.$offset + i]); + }; + $ptrType(InstOp).prototype.String = function(...$args) { return new InstOp(this.$get()).String(...$args); }; + IsWordChar = function IsWordChar$1(r) { + var r; + return 65 <= r && r <= 90 || 97 <= r && r <= 122 || 48 <= r && r <= 57 || (r === 95); + }; + $pkg.IsWordChar = IsWordChar; + $ptrType(Prog).prototype.String = function String$2() { + var b, p; + p = this; + b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); + dumpProg(b, p); + return b.String(); + }; + $ptrType(Prog).prototype.skipNop = function skipNop(pc) { + var i, p, pc, x, x$1, x$2; + p = this; + i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); + while (true) { + if (!((i.Op === 6) || (i.Op === 2))) { break; } + i = (x$1 = p.Inst, x$2 = i.Out, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])); + } + return i; + }; + $ptrType(Inst).prototype.op = function op() { + var _1, i, op$1; + i = this; + op$1 = i.Op; + _1 = op$1; + if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + op$1 = 7; + } + return op$1; + }; + $ptrType(Prog).prototype.Prefix = function Prefix() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, buf, complete, i, p, prefix, x, x$1; + prefix = ""; + complete = false; + p = this; + i = p.skipNop(((p.Start >>> 0))); + if (!((i.op() === 7)) || !((i.Rune.$length === 1))) { + _tmp = ""; + _tmp$1 = i.Op === 4; + prefix = _tmp; + complete = _tmp$1; + return [prefix, complete]; + } + buf = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); + while (true) { + if (!((i.op() === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0) && !(((x = i.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 65533)))) { break; } + buf.WriteRune((x$1 = i.Rune, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))); + i = p.skipNop(i.Out); + } + _tmp$2 = buf.String(); + _tmp$3 = i.Op === 4; + prefix = _tmp$2; + complete = _tmp$3; + return [prefix, complete]; + }; + $ptrType(Prog).prototype.StartCond = function StartCond() { + var _1, flag, i, p, pc, x, x$1; + p = this; + flag = 0; + pc = ((p.Start >>> 0)); + i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); + Loop: + while (true) { + _1 = i.Op; + if (_1 === (3)) { + flag = (flag | (((i.Arg << 24 >>> 24)))) >>> 0; + } else if (_1 === (5)) { + return 255; + } else if ((_1 === (2)) || (_1 === (6))) { + } else { + break Loop; + } + pc = i.Out; + i = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])); + } + return flag; + }; + $ptrType(Inst).prototype.MatchRune = function MatchRune(r) { + var i, r; + i = this; + return !((i.MatchRunePos(r) === -1)); + }; + $ptrType(Inst).prototype.MatchRunePos = function MatchRunePos(r) { + var _1, _q, _q$1, _q$2, c, hi, i, j, lo, m, r, r0, r1, rune, x, x$1, x$2; + i = this; + rune = i.Rune; + _1 = rune.$length; + if (_1 === (0)) { + return -1; + } else if (_1 === (1)) { + r0 = (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]); + if (r === r0) { + return 0; + } + if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { + r1 = unicode.SimpleFold(r0); + while (true) { + if (!(!((r1 === r0)))) { break; } + if (r === r1) { + return 0; + } + r1 = unicode.SimpleFold(r1); + } + } + return -1; + } else if (_1 === (2)) { + if (r >= (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]) && r <= (1 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 1])) { + return 0; + } + return -1; + } else if ((_1 === (4)) || (_1 === (6)) || (_1 === (8))) { + j = 0; + while (true) { + if (!(j < rune.$length)) { break; } + if (r < ((j < 0 || j >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + j])) { + return -1; + } + if (r <= (x = j + 1 >> 0, ((x < 0 || x >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x]))) { + return (_q = j / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + } + j = j + (2) >> 0; + } + return -1; + } + lo = 0; + hi = (_q$1 = rune.$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + while (true) { + if (!(lo < hi)) { break; } + m = lo + (_q$2 = ((hi - lo >> 0)) / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + c = (x$1 = $imul(2, m), ((x$1 < 0 || x$1 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$1])); + if (c <= r) { + if (r <= (x$2 = ($imul(2, m)) + 1 >> 0, ((x$2 < 0 || x$2 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$2]))) { + return m; + } + lo = m + 1 >> 0; + } else { + hi = m; + } + } + return -1; + }; + $ptrType(Inst).prototype.MatchEmptyWidth = function MatchEmptyWidth(before, after) { + var _1, after, before, i; + i = this; + _1 = ((i.Arg << 24 >>> 24)); + if (_1 === (1)) { + return (before === 10) || (before === -1); + } else if (_1 === (2)) { + return (after === 10) || (after === -1); + } else if (_1 === (4)) { + return before === -1; + } else if (_1 === (8)) { + return after === -1; + } else if (_1 === (16)) { + return !(IsWordChar(before) === IsWordChar(after)); + } else if (_1 === (32)) { + return IsWordChar(before) === IsWordChar(after); + } + $panic(new $String("unknown empty width arg")); + }; + $ptrType(Inst).prototype.String = function String$3() { + var b, i; + i = this; + b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); + dumpInst(b, i); + return b.String(); + }; + bw = function bw$1(b, args) { + var _i, _ref, args, b, s; + _ref = args; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + b.WriteString(s); + _i++; + } + }; + dumpProg = function dumpProg$1(b, p) { + var _i, _ref, b, i, j, p, pc, x; + _ref = p.Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + i = (x = p.Inst, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); + pc = strconv.Itoa(j); + if (pc.length < 3) { + b.WriteString($substring(" ", pc.length)); + } + if (j === p.Start) { + pc = pc + ("*"); + } + bw(b, new sliceType([pc, "\t"])); + dumpInst(b, i); + bw(b, new sliceType(["\n"])); + _i++; + } + }; + u32 = function u32$1(i) { + var i; + return strconv.FormatUint((new $Uint64(0, i)), 10); + }; + dumpInst = function dumpInst$1(b, i) { + var _1, b, i; + _1 = i.Op; + if (_1 === (0)) { + bw(b, new sliceType(["alt -> ", u32(i.Out), ", ", u32(i.Arg)])); + } else if (_1 === (1)) { + bw(b, new sliceType(["altmatch -> ", u32(i.Out), ", ", u32(i.Arg)])); + } else if (_1 === (2)) { + bw(b, new sliceType(["cap ", u32(i.Arg), " -> ", u32(i.Out)])); + } else if (_1 === (3)) { + bw(b, new sliceType(["empty ", u32(i.Arg), " -> ", u32(i.Out)])); + } else if (_1 === (4)) { + bw(b, new sliceType(["match"])); + } else if (_1 === (5)) { + bw(b, new sliceType(["fail"])); + } else if (_1 === (6)) { + bw(b, new sliceType(["nop -> ", u32(i.Out)])); + } else if (_1 === (7)) { + if (i.Rune === sliceType$1.nil) { + bw(b, new sliceType(["rune "])); + } + bw(b, new sliceType(["rune ", strconv.QuoteToASCII(($runesToString(i.Rune)))])); + if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { + bw(b, new sliceType(["/i"])); + } + bw(b, new sliceType([" -> ", u32(i.Out)])); + } else if (_1 === (8)) { + bw(b, new sliceType(["rune1 ", strconv.QuoteToASCII(($runesToString(i.Rune))), " -> ", u32(i.Out)])); + } else if (_1 === (9)) { + bw(b, new sliceType(["any -> ", u32(i.Out)])); + } else if (_1 === (10)) { + bw(b, new sliceType(["anynotnl -> ", u32(i.Out)])); + } + }; + $ptrType(Error).prototype.Error = function Error$1() { + var e; + e = this; + return "error parsing regexp: " + new ErrorCode(e.Code).String() + ": `" + e.Expr + "`"; + }; + ErrorCode.prototype.String = function String$4() { + var e; + e = this.$val; + return (e); + }; + $ptrType(ErrorCode).prototype.String = function(...$args) { return new ErrorCode(this.$get()).String(...$args); }; + $ptrType(parser).prototype.newRegexp = function newRegexp(op$1) { + var op$1, p, re; + p = this; + re = p.free; + if (!(re === ptrType.nil)) { + p.free = re.Sub0[0]; + Regexp.copy(re, new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, "")); + } else { + re = new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + p.numRegexp = p.numRegexp + (1) >> 0; + } + re.Op = op$1; + return re; + }; + $ptrType(parser).prototype.reuse = function reuse(re) { + var p, re; + p = this; + if (!(p.height === false)) { + $mapDelete(p.height, ptrType.keyFor(re)); + } + re.Sub0[0] = p.free; + p.free = re; + }; + $ptrType(parser).prototype.checkLimits = function checkLimits(re) { + var p, re; + p = this; + if (p.numRunes > 33554432) { + $panic(new ErrorCode("regexp/syntax: internal error")); + } + p.checkSize(re); + p.checkHeight(re); + }; + $ptrType(parser).prototype.checkSize = function checkSize(re) { + var _i, _ref, n, p, re, re$1, x, x$1, x$2, x$3, x$4, x$5; + p = this; + if (p.size === false) { + if ((x = p.repeats, (x.$high === 0 && x.$low === 0))) { + p.repeats = new $Int64(0, 1); + } + if (re.Op === 17) { + n = re.Max; + if (n === -1) { + n = re.Min; + } + if (n <= 0) { + n = 1; + } + if ((x$1 = (new $Int64(0, n)), x$2 = $div64(new $Int64(0, 3355443), p.repeats, false), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { + p.repeats = new $Int64(0, 3355443); + } else { + p.repeats = $mul64(p.repeats, ((new $Int64(0, n)))); + } + } + if ((x$3 = (new $Int64(0, p.numRegexp)), x$4 = $div64(new $Int64(0, 3355443), p.repeats, false), (x$3.$high < x$4.$high || (x$3.$high === x$4.$high && x$3.$low < x$4.$low)))) { + return; + } + p.size = new $global.Map(); + _ref = p.stack; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + re$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + p.checkSize(re$1); + _i++; + } + } + if ((x$5 = p.calcSize(re, true), (x$5.$high > 0 || (x$5.$high === 0 && x$5.$low > 3355443)))) { + $panic(new ErrorCode("regexp/syntax: internal error")); + } + }; + $ptrType(parser).prototype.calcSize = function calcSize(re, force) { + var _1, _entry, _i, _i$1, _key, _ref, _ref$1, _tuple, force, ok, p, re, size, size$1, sub, sub$1, sub$2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + p = this; + if (!force) { + _tuple = (_entry = $mapIndex(p.size,ptrType.keyFor(re)), _entry !== undefined ? [_entry.v, true] : [new $Int64(0, 0), false]); + size = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return size; + } + } + size$1 = new $Int64(0, 0); + switch (0) { default: + _1 = re.Op; + if (_1 === (3)) { + size$1 = (new $Int64(0, re.Rune.$length)); + } else if ((_1 === (13)) || (_1 === (14))) { + size$1 = (x = p.calcSize((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), false), new $Int64(0 + x.$high, 2 + x.$low)); + } else if ((_1 === (15)) || (_1 === (16))) { + size$1 = (x$2 = p.calcSize((x$3 = re.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), false), new $Int64(0 + x$2.$high, 1 + x$2.$low)); + } else if (_1 === (18)) { + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + size$1 = (x$4 = p.calcSize(sub, false), new $Int64(size$1.$high + x$4.$high, size$1.$low + x$4.$low)); + _i++; + } + } else if (_1 === (19)) { + _ref$1 = re.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + size$1 = (x$5 = p.calcSize(sub$1, false), new $Int64(size$1.$high + x$5.$high, size$1.$low + x$5.$low)); + _i$1++; + } + if (re.Sub.$length > 1) { + size$1 = (x$6 = (x$7 = (new $Int64(0, re.Sub.$length)), new $Int64(x$7.$high - 0, x$7.$low - 1)), new $Int64(size$1.$high + x$6.$high, size$1.$low + x$6.$low)); + } + } else if (_1 === (17)) { + sub$2 = p.calcSize((x$8 = re.Sub, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])), false); + if (re.Max === -1) { + if (re.Min === 0) { + size$1 = new $Int64(0 + sub$2.$high, 2 + sub$2.$low); + } else { + size$1 = (x$9 = $mul64((new $Int64(0, re.Min)), sub$2), new $Int64(0 + x$9.$high, 1 + x$9.$low)); + } + break; + } + size$1 = (x$10 = $mul64((new $Int64(0, re.Max)), sub$2), x$11 = (new $Int64(0, (re.Max - re.Min >> 0))), new $Int64(x$10.$high + x$11.$high, x$10.$low + x$11.$low)); + } + } + if ((size$1.$high < 0 || (size$1.$high === 0 && size$1.$low < 1))) { + size$1 = new $Int64(0, 1); + } + _key = re; (p.size || $throwRuntimeError("assignment to entry in nil map")).set(ptrType.keyFor(_key), { k: _key, v: size$1 }); + return size$1; + }; + $ptrType(parser).prototype.checkHeight = function checkHeight(re) { + var _i, _ref, p, re, re$1; + p = this; + if (p.numRegexp < 1000) { + return; + } + if (p.height === false) { + p.height = new $global.Map(); + _ref = p.stack; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + re$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + p.checkHeight(re$1); + _i++; + } + } + if (p.calcHeight(re, true) > 1000) { + $panic(new ErrorCode("expression nests too deeply")); + } + }; + $ptrType(parser).prototype.calcHeight = function calcHeight(re, force) { + var _entry, _i, _key, _ref, _tuple, force, h, h$1, hsub, ok, p, re, sub; + p = this; + if (!force) { + _tuple = (_entry = $mapIndex(p.height,ptrType.keyFor(re)), _entry !== undefined ? [_entry.v, true] : [0, false]); + h = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return h; + } + } + h$1 = 1; + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + hsub = p.calcHeight(sub, false); + if (h$1 < (1 + hsub >> 0)) { + h$1 = 1 + hsub >> 0; + } + _i++; + } + _key = re; (p.height || $throwRuntimeError("assignment to entry in nil map")).set(ptrType.keyFor(_key), { k: _key, v: h$1 }); + return h$1; + }; + $ptrType(parser).prototype.push = function push(re) { + var p, re, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + p = this; + p.numRunes = p.numRunes + (re.Rune.$length) >> 0; + if ((re.Op === 4) && (re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === (x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])))) { + if (p.maybeConcat((x$16 = re.Rune, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0])), (p.flags & ~1) << 16 >>> 16)) { + return ptrType.nil; + } + re.Op = 3; + re.Rune = $subslice(re.Rune, 0, 1); + re.Flags = (p.flags & ~1) << 16 >>> 16; + } else if ((re.Op === 4) && (re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === (x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1]))) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === (x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3]))) && (unicode.SimpleFold((x$6 = re.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))) === (x$7 = re.Rune, (2 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 2]))) && (unicode.SimpleFold((x$8 = re.Rune, (2 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 2]))) === (x$9 = re.Rune, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0]))) || (re.Op === 4) && (re.Rune.$length === 2) && (((x$10 = re.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])) + 1 >> 0) === (x$11 = re.Rune, (1 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 1]))) && (unicode.SimpleFold((x$12 = re.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0]))) === (x$13 = re.Rune, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1]))) && (unicode.SimpleFold((x$14 = re.Rune, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1]))) === (x$15 = re.Rune, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])))) { + if (p.maybeConcat((x$17 = re.Rune, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])), (p.flags | 1) >>> 0)) { + return ptrType.nil; + } + re.Op = 3; + re.Rune = $subslice(re.Rune, 0, 1); + re.Flags = (p.flags | 1) >>> 0; + } else { + p.maybeConcat(-1, 0); + } + p.stack = $append(p.stack, re); + p.checkLimits(re); + return re; + }; + $ptrType(parser).prototype.maybeConcat = function maybeConcat(r, flags) { + var flags, n, p, r, re1, re2, x, x$1, x$2, x$3, x$4; + p = this; + n = p.stack.$length; + if (n < 2) { + return false; + } + re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + if (!((re1.Op === 3)) || !((re2.Op === 3)) || !((((re1.Flags & 1) >>> 0) === ((re2.Flags & 1) >>> 0)))) { + return false; + } + re2.Rune = $appendSlice(re2.Rune, re1.Rune); + if (r >= 0) { + re1.Rune = $subslice(new sliceType$1(re1.Rune0), 0, 1); + (x$4 = re1.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = r)); + re1.Flags = flags; + return true; + } + p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); + p.reuse(re1); + return false; + }; + $ptrType(parser).prototype.literal = function literal(r) { + var p, r, re; + p = this; + re = p.newRegexp(3); + re.Flags = p.flags; + if (!((((p.flags & 1) >>> 0) === 0))) { + r = minFoldRune(r); + } + re.Rune0[0] = r; + re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 1); + p.push(re); + }; + minFoldRune = function minFoldRune$1(r) { + var min, r, r0; + if (r < 65 || r > 125251) { + return r; + } + min = r; + r0 = r; + r = unicode.SimpleFold(r); + while (true) { + if (!(!((r === r0)))) { break; } + if (min > r) { + min = r; + } + r = unicode.SimpleFold(r); + } + return min; + }; + $ptrType(parser).prototype.op = function op$1(op$2) { + var op$2, p, re; + p = this; + re = p.newRegexp(op$2); + re.Flags = p.flags; + return p.push(re); + }; + $ptrType(parser).prototype.repeat = function repeat(op$2, min, max, before, after, lastRepeat) { + var after, before, flags, lastRepeat, max, min, n, op$2, p, re, sub, x, x$1, x$2, x$3, x$4; + p = this; + flags = p.flags; + if (!((((p.flags & 64) >>> 0) === 0))) { + if (after.length > 0 && (after.charCodeAt(0) === 63)) { + after = $substring(after, 1); + flags = (flags ^ (32)) << 16 >>> 16; + } + if (!(lastRepeat === "")) { + return ["", new Error.ptr("invalid nested repetition operator", $substring(lastRepeat, 0, (lastRepeat.length - after.length >> 0)))]; + } + } + n = p.stack.$length; + if (n === 0) { + return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; + } + sub = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (sub.Op >= 128) { + return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; + } + re = p.newRegexp(op$2); + re.Min = min; + re.Max = max; + re.Flags = flags; + re.Sub = $subslice(new sliceType$4(re.Sub0), 0, 1); + (x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = sub)); + (x$3 = p.stack, x$4 = n - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4] = re)); + p.checkLimits(re); + if ((op$2 === 17) && (min >= 2 || max >= 2) && !repeatIsValid(re, 1000)) { + return ["", new Error.ptr("invalid repeat count", $substring(before, 0, (before.length - after.length >> 0)))]; + } + return [after, $ifaceNil]; + }; + repeatIsValid = function repeatIsValid$1(re, n) { + var _i, _q, _ref, m, n, re, sub; + if (re.Op === 17) { + m = re.Max; + if (m === 0) { + return true; + } + if (m < 0) { + m = re.Min; + } + if (m > n) { + return false; + } + if (m > 0) { + n = (_q = n / (m), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + } + } + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!repeatIsValid(sub, n)) { + return false; + } + _i++; + } + return true; + }; + $ptrType(parser).prototype.concat = function concat() { + var {$24r, _r, _r$1, i, p, subs, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + p.maybeConcat(-1, 0); + i = p.stack.$length; + while (true) { + if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } + i = i - (1) >> 0; + } + subs = $subslice(p.stack, i); + p.stack = $subslice(p.stack, 0, i); + if (subs.$length === 0) { + $s = -1; return p.push(p.newRegexp(2)); + } + _r = p.collapse(subs, 18); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.push(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: concat, $c: true, $r, $24r, _r, _r$1, i, p, subs, x, x$1, $s};return $f; + }; + $ptrType(parser).prototype.alternate = function alternate() { + var {$24r, _r, _r$1, i, p, subs, x, x$1, x$2, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + i = p.stack.$length; + while (true) { + if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } + i = i - (1) >> 0; + } + subs = $subslice(p.stack, i); + p.stack = $subslice(p.stack, 0, i); + /* */ if (subs.$length > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (subs.$length > 0) { */ case 1: + $r = cleanAlt((x$2 = subs.$length - 1 >> 0, ((x$2 < 0 || x$2 >= subs.$length) ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + x$2]))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (subs.$length === 0) { + $s = -1; return p.push(p.newRegexp(1)); + } + _r = p.collapse(subs, 19); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.push(_r); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: alternate, $c: true, $r, $24r, _r, _r$1, i, p, subs, x, x$1, x$2, $s};return $f; + }; + cleanAlt = function cleanAlt$1(re) { + var {_1, _r, re, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {re}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _1 = re.Op; + /* */ if (_1 === (4)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_1 === (4)) { */ case 2: + _r = cleanClass((re.$ptr_Rune || (re.$ptr_Rune = new ptrType$2(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + re.Rune = _r; + if ((re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])) === 1114111)) { + re.Rune = sliceType$1.nil; + re.Op = 6; + $s = -1; return; + } + if ((re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === 0) && ((x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) === 9) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === 11) && ((x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3])) === 1114111)) { + re.Rune = sliceType$1.nil; + re.Op = 5; + $s = -1; return; + } + if ((re.Rune.$capacity - re.Rune.$length >> 0) > 100) { + re.Rune = $appendSlice($subslice(new sliceType$1(re.Rune0), 0, 0), re.Rune); + } + /* } */ case 3: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: cleanAlt$1, $c: true, $r, _1, _r, re, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + }; + $ptrType(parser).prototype.collapse = function collapse(subs, op$2) { + var {_i, _r, _ref, old, op$2, p, re, sub, subs, x, $s, $r, $c} = $restore(this, {subs, op$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + if (subs.$length === 1) { + $s = -1; return (0 >= subs.$length ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + 0]); + } + re = p.newRegexp(op$2); + re.Sub = $subslice(new sliceType$4(re.Sub0), 0, 0); + _ref = subs; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (sub.Op === op$2) { + re.Sub = $appendSlice(re.Sub, sub.Sub); + p.reuse(sub); + } else { + re.Sub = $append(re.Sub, sub); + } + _i++; + } + /* */ if (op$2 === 19) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (op$2 === 19) { */ case 1: + _r = p.factor(re.Sub); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + re.Sub = _r; + if (re.Sub.$length === 1) { + old = re; + re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + p.reuse(old); + } + /* } */ case 2: + $s = -1; return re; + /* */ } return; } var $f = {$blk: collapse, $c: true, $r, _i, _r, _ref, old, op$2, p, re, sub, subs, x, $s};return $f; + }; + $ptrType(parser).prototype.factor = function factor(sub) { + var {_i, _r, _r$1, _ref, _tmp, _tmp$1, _tuple, first, i, i$1, i$2, i$3, ifirst, iflags, istr, j, j$1, j$2, j$3, max, out, p, prefix, prefix$1, re, re$1, reuse$1, same, start, str, strflags, sub, suffix, suffix$1, x, x$1, $s, $r, $c} = $restore(this, {sub}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + if (sub.$length < 2) { + $s = -1; return sub; + } + str = sliceType$1.nil; + strflags = 0; + start = 0; + out = $subslice(sub, 0, 0); + i = 0; + /* while (true) { */ case 1: + /* if (!(i <= sub.$length)) { break; } */ if(!(i <= sub.$length)) { $s = 2; continue; } + istr = sliceType$1.nil; + iflags = 0; + if (i < sub.$length) { + _tuple = p.leadingString(((i < 0 || i >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i])); + istr = _tuple[0]; + iflags = _tuple[1]; + if (iflags === strflags) { + same = 0; + while (true) { + if (!(same < str.$length && same < istr.$length && (((same < 0 || same >= str.$length) ? ($throwRuntimeError("index out of range"), undefined) : str.$array[str.$offset + same]) === ((same < 0 || same >= istr.$length) ? ($throwRuntimeError("index out of range"), undefined) : istr.$array[istr.$offset + same])))) { break; } + same = same + (1) >> 0; + } + if (same > 0) { + str = $subslice(str, 0, same); + i = i + (1) >> 0; + /* continue; */ $s = 1; continue; + } + } + } + /* */ if (i === start) { $s = 3; continue; } + /* */ if (i === (start + 1 >> 0)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (i === start) { */ case 3: + $s = 6; continue; + /* } else if (i === (start + 1 >> 0)) { */ case 4: + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + $s = 6; continue; + /* } else { */ case 5: + prefix = p.newRegexp(3); + prefix.Flags = strflags; + prefix.Rune = $appendSlice($subslice(prefix.Rune, 0, 0), str); + j = start; + while (true) { + if (!(j < i)) { break; } + ((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j] = p.removeLeadingString(((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j]), str.$length)); + p.checkLimits(((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j])); + j = j + (1) >> 0; + } + _r = p.collapse($subslice(sub, start, i), 19); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + suffix = _r; + re = p.newRegexp(18); + re.Sub = $append($subslice(re.Sub, 0, 0), prefix, suffix); + out = $append(out, re); + /* } */ case 6: + start = i; + str = istr; + strflags = iflags; + i = i + (1) >> 0; + $s = 1; continue; + case 2: + sub = out; + start = 0; + out = $subslice(sub, 0, 0); + first = ptrType.nil; + i$1 = 0; + /* while (true) { */ case 8: + /* if (!(i$1 <= sub.$length)) { break; } */ if(!(i$1 <= sub.$length)) { $s = 9; continue; } + ifirst = ptrType.nil; + if (i$1 < sub.$length) { + ifirst = p.leadingRegexp(((i$1 < 0 || i$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$1])); + if (!(first === ptrType.nil) && first.Equal(ifirst) && (isCharClass(first) || ((first.Op === 17) && (first.Min === first.Max) && isCharClass((x = first.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))))) { + i$1 = i$1 + (1) >> 0; + /* continue; */ $s = 8; continue; + } + } + /* */ if (i$1 === start) { $s = 10; continue; } + /* */ if (i$1 === (start + 1 >> 0)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (i$1 === start) { */ case 10: + $s = 13; continue; + /* } else if (i$1 === (start + 1 >> 0)) { */ case 11: + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + $s = 13; continue; + /* } else { */ case 12: + prefix$1 = first; + j$1 = start; + while (true) { + if (!(j$1 < i$1)) { break; } + reuse$1 = !((j$1 === start)); + ((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1] = p.removeLeadingRegexp(((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1]), reuse$1)); + p.checkLimits(((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1])); + j$1 = j$1 + (1) >> 0; + } + _r$1 = p.collapse($subslice(sub, start, i$1), 19); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + suffix$1 = _r$1; + re$1 = p.newRegexp(18); + re$1.Sub = $append($subslice(re$1.Sub, 0, 0), prefix$1, suffix$1); + out = $append(out, re$1); + /* } */ case 13: + start = i$1; + first = ifirst; + i$1 = i$1 + (1) >> 0; + $s = 8; continue; + case 9: + sub = out; + start = 0; + out = $subslice(sub, 0, 0); + i$2 = 0; + /* while (true) { */ case 15: + /* if (!(i$2 <= sub.$length)) { break; } */ if(!(i$2 <= sub.$length)) { $s = 16; continue; } + if (i$2 < sub.$length && isCharClass(((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2]))) { + i$2 = i$2 + (1) >> 0; + /* continue; */ $s = 15; continue; + } + /* */ if (i$2 === start) { $s = 17; continue; } + /* */ if (i$2 === (start + 1 >> 0)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (i$2 === start) { */ case 17: + $s = 20; continue; + /* } else if (i$2 === (start + 1 >> 0)) { */ case 18: + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + $s = 20; continue; + /* } else { */ case 19: + max = start; + j$2 = start + 1 >> 0; + while (true) { + if (!(j$2 < i$2)) { break; } + if (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op || (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op === ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op) && ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Rune.$length < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Rune.$length) { + max = j$2; + } + j$2 = j$2 + (1) >> 0; + } + _tmp = ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]); + _tmp$1 = ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]); + ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start] = _tmp); + ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max] = _tmp$1); + j$3 = start + 1 >> 0; + while (true) { + if (!(j$3 < i$2)) { break; } + mergeCharClass(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]), ((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); + p.reuse(((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); + j$3 = j$3 + (1) >> 0; + } + $r = cleanAlt(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + /* } */ case 20: + if (i$2 < sub.$length) { + out = $append(out, ((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2])); + } + start = i$2 + 1 >> 0; + i$2 = i$2 + (1) >> 0; + $s = 15; continue; + case 16: + sub = out; + start = 0; + out = $subslice(sub, 0, 0); + _ref = sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$3 = _i; + if ((i$3 + 1 >> 0) < sub.$length && (((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3]).Op === 2) && ((x$1 = i$3 + 1 >> 0, ((x$1 < 0 || x$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + x$1])).Op === 2)) { + _i++; + continue; + } + out = $append(out, ((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3])); + _i++; + } + sub = out; + $s = -1; return sub; + /* */ } return; } var $f = {$blk: factor, $c: true, $r, _i, _r, _r$1, _ref, _tmp, _tmp$1, _tuple, first, i, i$1, i$2, i$3, ifirst, iflags, istr, j, j$1, j$2, j$3, max, out, p, prefix, prefix$1, re, re$1, reuse$1, same, start, str, strflags, sub, suffix, suffix$1, x, x$1, $s};return $f; + }; + $ptrType(parser).prototype.leadingString = function leadingString(re) { + var p, re, x; + p = this; + if ((re.Op === 18) && re.Sub.$length > 0) { + re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + } + if (!((re.Op === 3))) { + return [sliceType$1.nil, 0]; + } + return [re.Rune, (re.Flags & 1) >>> 0]; + }; + $ptrType(parser).prototype.removeLeadingString = function removeLeadingString(re, n) { + var _1, n, old, p, re, sub, x, x$1, x$2; + p = this; + if ((re.Op === 18) && re.Sub.$length > 0) { + sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + sub = p.removeLeadingString(sub, n); + (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = sub)); + if (sub.Op === 2) { + p.reuse(sub); + _1 = re.Sub.$length; + if ((_1 === (0)) || (_1 === (1))) { + re.Op = 2; + re.Sub = sliceType$4.nil; + } else if (_1 === (2)) { + old = re; + re = (x$2 = re.Sub, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1])); + p.reuse(old); + } else { + $copySlice(re.Sub, $subslice(re.Sub, 1)); + re.Sub = $subslice(re.Sub, 0, (re.Sub.$length - 1 >> 0)); + } + } + return re; + } + if (re.Op === 3) { + re.Rune = $subslice(re.Rune, 0, $copySlice(re.Rune, $subslice(re.Rune, n))); + if (re.Rune.$length === 0) { + re.Op = 2; + } + } + return re; + }; + $ptrType(parser).prototype.leadingRegexp = function leadingRegexp(re) { + var p, re, sub, x; + p = this; + if (re.Op === 2) { + return ptrType.nil; + } + if ((re.Op === 18) && re.Sub.$length > 0) { + sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + if (sub.Op === 2) { + return ptrType.nil; + } + return sub; + } + return re; + }; + $ptrType(parser).prototype.removeLeadingRegexp = function removeLeadingRegexp(re, reuse$1) { + var _1, old, p, re, reuse$1, x, x$1; + p = this; + if ((re.Op === 18) && re.Sub.$length > 0) { + if (reuse$1) { + p.reuse((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); + } + re.Sub = $subslice(re.Sub, 0, $copySlice(re.Sub, $subslice(re.Sub, 1))); + _1 = re.Sub.$length; + if (_1 === (0)) { + re.Op = 2; + re.Sub = sliceType$4.nil; + } else if (_1 === (1)) { + old = re; + re = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + p.reuse(old); + } + return re; + } + if (reuse$1) { + p.reuse(re); + } + return p.newRegexp(2); + }; + literalRegexp = function literalRegexp$1(s, flags) { + var _i, _ref, _rune, c, flags, re, s; + re = new Regexp.ptr(3, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + re.Flags = flags; + re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 0); + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (re.Rune.$length >= re.Rune.$capacity) { + re.Rune = (new sliceType$1($stringToRunes(s))); + break; + } + re.Rune = $append(re.Rune, c); + _i += _rune[1]; + } + return re; + }; + Parse = function Parse$1(s, flags) { + var {$24r, _r, flags, s, $s, $r, $c} = $restore(this, {s, flags}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = parse(s, flags); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Parse$1, $c: true, $r, $24r, _r, flags, s, $s};return $f; + }; + $pkg.Parse = Parse; + parse = function parse$1(s, flags) { + var {_, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _struct, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, after, after$1, before, before$1, c, c$1, err, err$1, err$2, err$3, flags, lastRepeat, lit, max, min, n, ok, op$2, p, r, r$1, re, repeat$1, rest, rest$1, rest$2, s, t, x, $s, $deferred, $r, $c} = $restore(this, {s, flags}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + err = [err]; + s = [s]; + _ = ptrType.nil; + err[0] = $ifaceNil; + $deferred.push([(function(err, s) { return function parse·func1() { + var _1, r; + r = $recover(); + _1 = r; + if ($interfaceIsEqual(_1, $ifaceNil)) { + } else if ($interfaceIsEqual(_1, new ErrorCode(("regexp/syntax: internal error")))) { + err[0] = new Error.ptr("regexp/syntax: internal error", s[0]); + } else if ($interfaceIsEqual(_1, new ErrorCode(("expression nests too deeply")))) { + err[0] = new Error.ptr("expression nests too deeply", s[0]); + } else { + $panic(r); + } + }; })(err, s), []]); + if (!((((flags & 2) >>> 0) === 0))) { + err$1 = checkUTF8(s[0]); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = ptrType.nil; + _tmp$1 = err$1; + _ = _tmp; + err[0] = _tmp$1; + $s = -1; return [_, err[0]]; + } + _tmp$2 = literalRegexp(s[0], flags); + _tmp$3 = $ifaceNil; + _ = _tmp$2; + err[0] = _tmp$3; + $s = -1; return [_, err[0]]; + } + p = new parser.ptr(0, sliceType$4.nil, ptrType.nil, 0, "", sliceType$1.nil, 0, 0, new $Int64(0, 0), false, false); + c = 0; + op$2 = 0; + lastRepeat = ""; + p.flags = flags; + p.wholeRegexp = s[0]; + t = s[0]; + /* while (true) { */ case 1: + /* if (!(!(t === ""))) { break; } */ if(!(!(t === ""))) { $s = 2; continue; } + repeat$1 = ""; + _2 = t.charCodeAt(0); + /* */ if (_2 === (40)) { $s = 4; continue; } + /* */ if (_2 === (124)) { $s = 5; continue; } + /* */ if (_2 === (41)) { $s = 6; continue; } + /* */ if (_2 === (94)) { $s = 7; continue; } + /* */ if (_2 === (36)) { $s = 8; continue; } + /* */ if (_2 === (46)) { $s = 9; continue; } + /* */ if (_2 === (91)) { $s = 10; continue; } + /* */ if ((_2 === (42)) || (_2 === (43)) || (_2 === (63))) { $s = 11; continue; } + /* */ if (_2 === (123)) { $s = 12; continue; } + /* */ if (_2 === (92)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_2 === (40)) { */ case 4: + if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2 && (t.charCodeAt(1) === 63)) { + _tuple = p.parsePerlFlags(t); + t = _tuple[0]; + err[0] = _tuple[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$4 = ptrType.nil; + _tmp$5 = err[0]; + _ = _tmp$4; + err[0] = _tmp$5; + $s = -1; return [_, err[0]]; + } + /* break; */ $s = 3; continue; + } + p.numCap = p.numCap + (1) >> 0; + p.op(128).Cap = p.numCap; + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (124)) { */ case 5: + _r = p.parseVerticalBar(); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err[0] = _r; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$6 = ptrType.nil; + _tmp$7 = err[0]; + _ = _tmp$6; + err[0] = _tmp$7; + $s = -1; return [_, err[0]]; + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (41)) { */ case 6: + _r$1 = p.parseRightParen(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err[0] = _r$1; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$8 = ptrType.nil; + _tmp$9 = err[0]; + _ = _tmp$8; + err[0] = _tmp$9; + $s = -1; return [_, err[0]]; + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (94)) { */ case 7: + if (!((((p.flags & 16) >>> 0) === 0))) { + p.op(9); + } else { + p.op(7); + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (36)) { */ case 8: + if (!((((p.flags & 16) >>> 0) === 0))) { + _struct = p.op(10); + _struct.Flags = (_struct.Flags | (256)) >>> 0; + } else { + p.op(8); + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (46)) { */ case 9: + if (!((((p.flags & 8) >>> 0) === 0))) { + p.op(6); + } else { + p.op(5); + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (91)) { */ case 10: + _r$2 = p.parseClass(t); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + t = _tuple$1[0]; + err[0] = _tuple$1[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$10 = ptrType.nil; + _tmp$11 = err[0]; + _ = _tmp$10; + err[0] = _tmp$11; + $s = -1; return [_, err[0]]; + } + $s = 15; continue; + /* } else if ((_2 === (42)) || (_2 === (43)) || (_2 === (63))) { */ case 11: + before = t; + _3 = t.charCodeAt(0); + if (_3 === (42)) { + op$2 = 14; + } else if (_3 === (43)) { + op$2 = 15; + } else if (_3 === (63)) { + op$2 = 16; + } + after = $substring(t, 1); + _tuple$2 = p.repeat(op$2, 0, 0, before, after, lastRepeat); + after = _tuple$2[0]; + err[0] = _tuple$2[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$12 = ptrType.nil; + _tmp$13 = err[0]; + _ = _tmp$12; + err[0] = _tmp$13; + $s = -1; return [_, err[0]]; + } + repeat$1 = before; + t = after; + $s = 15; continue; + /* } else if (_2 === (123)) { */ case 12: + op$2 = 17; + before$1 = t; + _tuple$3 = p.parseRepeat(t); + min = _tuple$3[0]; + max = _tuple$3[1]; + after$1 = _tuple$3[2]; + ok = _tuple$3[3]; + if (!ok) { + p.literal(123); + t = $substring(t, 1); + /* break; */ $s = 3; continue; + } + if (min < 0 || min > 1000 || max > 1000 || max >= 0 && min > max) { + _tmp$14 = ptrType.nil; + _tmp$15 = new Error.ptr("invalid repeat count", $substring(before$1, 0, (before$1.length - after$1.length >> 0))); + _ = _tmp$14; + err[0] = _tmp$15; + $s = -1; return [_, err[0]]; + } + _tuple$4 = p.repeat(op$2, min, max, before$1, after$1, lastRepeat); + after$1 = _tuple$4[0]; + err[0] = _tuple$4[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$16 = ptrType.nil; + _tmp$17 = err[0]; + _ = _tmp$16; + err[0] = _tmp$17; + $s = -1; return [_, err[0]]; + } + repeat$1 = before$1; + t = after$1; + $s = 15; continue; + /* } else if (_2 === (92)) { */ case 13: + if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2) { + _4 = t.charCodeAt(1); + if (_4 === (65)) { + p.op(9); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } else if (_4 === (98)) { + p.op(11); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } else if (_4 === (66)) { + p.op(12); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } else if (_4 === (67)) { + _tmp$18 = ptrType.nil; + _tmp$19 = new Error.ptr("invalid escape sequence", $substring(t, 0, 2)); + _ = _tmp$18; + err[0] = _tmp$19; + $s = -1; return [_, err[0]]; + } else if (_4 === (81)) { + lit = ""; + _tuple$5 = strings.Cut($substring(t, 2), "\\E"); + lit = _tuple$5[0]; + t = _tuple$5[1]; + while (true) { + if (!(!(lit === ""))) { break; } + _tuple$6 = nextRune(lit); + c$1 = _tuple$6[0]; + rest = _tuple$6[1]; + err$2 = _tuple$6[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$20 = ptrType.nil; + _tmp$21 = err$2; + _ = _tmp$20; + err[0] = _tmp$21; + $s = -1; return [_, err[0]]; + } + p.literal(c$1); + lit = rest; + } + /* break BigSwitch; */ $s = 3; continue s; + } else if (_4 === (122)) { + p.op(10); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } + } + re = p.newRegexp(4); + re.Flags = p.flags; + /* */ if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { */ case 19: + _r$3 = p.parseUnicodeClass(t, $subslice(new sliceType$1(re.Rune0), 0, 0)); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$7 = _r$3; + r = _tuple$7[0]; + rest$1 = _tuple$7[1]; + err$3 = _tuple$7[2]; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + _tmp$22 = ptrType.nil; + _tmp$23 = err$3; + _ = _tmp$22; + err[0] = _tmp$23; + $s = -1; return [_, err[0]]; + } + if (!(r === sliceType$1.nil)) { + re.Rune = r; + t = rest$1; + p.push(re); + /* break BigSwitch; */ $s = 3; continue s; + } + /* } */ case 20: + _r$4 = p.parsePerlClassEscape(t, $subslice(new sliceType$1(re.Rune0), 0, 0)); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$8 = _r$4; + r$1 = _tuple$8[0]; + rest$2 = _tuple$8[1]; + if (!(r$1 === sliceType$1.nil)) { + re.Rune = r$1; + t = rest$2; + p.push(re); + /* break BigSwitch; */ $s = 3; continue s; + } + p.reuse(re); + _tuple$9 = p.parseEscape(t); + c = _tuple$9[0]; + t = _tuple$9[1]; + err[0] = _tuple$9[2]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$24 = ptrType.nil; + _tmp$25 = err[0]; + _ = _tmp$24; + err[0] = _tmp$25; + $s = -1; return [_, err[0]]; + } + p.literal(c); + $s = 15; continue; + /* } else { */ case 14: + _tuple$10 = nextRune(t); + c = _tuple$10[0]; + t = _tuple$10[1]; + err[0] = _tuple$10[2]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$26 = ptrType.nil; + _tmp$27 = err[0]; + _ = _tmp$26; + err[0] = _tmp$27; + $s = -1; return [_, err[0]]; + } + p.literal(c); + /* } */ case 15: + case 3: + lastRepeat = repeat$1; + $s = 1; continue; + case 2: + _r$5 = p.concat(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + _r$6 = p.swapVerticalBar(); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (_r$6) { */ case 24: + p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); + /* } */ case 25: + _r$7 = p.alternate(); /* */ $s = 27; case 27: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + n = p.stack.$length; + if (!((n === 1))) { + _tmp$28 = ptrType.nil; + _tmp$29 = new Error.ptr("missing closing )", s[0]); + _ = _tmp$28; + err[0] = _tmp$29; + $s = -1; return [_, err[0]]; + } + _tmp$30 = (x = p.stack, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + _tmp$31 = $ifaceNil; + _ = _tmp$30; + err[0] = _tmp$31; + $s = -1; return [_, err[0]]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [_, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: parse$1, $c: true, $r, _, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _struct, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, after, after$1, before, before$1, c, c$1, err, err$1, err$2, err$3, flags, lastRepeat, lit, max, min, n, ok, op$2, p, r, r$1, re, repeat$1, rest, rest$1, rest$2, s, t, x, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseRepeat = function parseRepeat(s) { + var _tuple, _tuple$1, max, min, ok, ok1, p, rest, s; + min = 0; + max = 0; + rest = ""; + ok = false; + p = this; + if (s === "" || !((s.charCodeAt(0) === 123))) { + return [min, max, rest, ok]; + } + s = $substring(s, 1); + ok1 = false; + _tuple = p.parseInt(s); + min = _tuple[0]; + s = _tuple[1]; + ok1 = _tuple[2]; + if (!ok1) { + return [min, max, rest, ok]; + } + if (s === "") { + return [min, max, rest, ok]; + } + if (!((s.charCodeAt(0) === 44))) { + max = min; + } else { + s = $substring(s, 1); + if (s === "") { + return [min, max, rest, ok]; + } + if (s.charCodeAt(0) === 125) { + max = -1; + } else { + _tuple$1 = p.parseInt(s); + max = _tuple$1[0]; + s = _tuple$1[1]; + ok1 = _tuple$1[2]; + if (!ok1) { + return [min, max, rest, ok]; + } else if (max < 0) { + min = -1; + } + } + } + if (s === "" || !((s.charCodeAt(0) === 125))) { + return [min, max, rest, ok]; + } + rest = $substring(s, 1); + ok = true; + return [min, max, rest, ok]; + }; + $ptrType(parser).prototype.parsePerlFlags = function parsePerlFlags(s) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, c, capture, end, err, flags, name, p, re, rest, s, sawFlag, sign, t; + rest = ""; + err = $ifaceNil; + p = this; + t = s; + if (t.length > 4 && (t.charCodeAt(2) === 80) && (t.charCodeAt(3) === 60)) { + end = strings.IndexRune(t, 62); + if (end < 0) { + err = checkUTF8(t); + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = ""; + _tmp$1 = err; + rest = _tmp; + err = _tmp$1; + return [rest, err]; + } + _tmp$2 = ""; + _tmp$3 = new Error.ptr("invalid named capture", s); + rest = _tmp$2; + err = _tmp$3; + return [rest, err]; + } + capture = $substring(t, 0, (end + 1 >> 0)); + name = $substring(t, 4, end); + err = checkUTF8(name); + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$4 = ""; + _tmp$5 = err; + rest = _tmp$4; + err = _tmp$5; + return [rest, err]; + } + if (!isValidCaptureName(name)) { + _tmp$6 = ""; + _tmp$7 = new Error.ptr("invalid named capture", capture); + rest = _tmp$6; + err = _tmp$7; + return [rest, err]; + } + p.numCap = p.numCap + (1) >> 0; + re = p.op(128); + re.Cap = p.numCap; + re.Name = name; + _tmp$8 = $substring(t, (end + 1 >> 0)); + _tmp$9 = $ifaceNil; + rest = _tmp$8; + err = _tmp$9; + return [rest, err]; + } + c = 0; + t = $substring(t, 2); + flags = p.flags; + sign = 1; + sawFlag = false; + Loop: + while (true) { + if (!(!(t === ""))) { break; } + _tuple = nextRune(t); + c = _tuple[0]; + t = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$10 = ""; + _tmp$11 = err; + rest = _tmp$10; + err = _tmp$11; + return [rest, err]; + } + _1 = c; + if (_1 === (105)) { + flags = (flags | (1)) >>> 0; + sawFlag = true; + } else if (_1 === (109)) { + flags = (flags & ~(16)) << 16 >>> 16; + sawFlag = true; + } else if (_1 === (115)) { + flags = (flags | (8)) >>> 0; + sawFlag = true; + } else if (_1 === (85)) { + flags = (flags | (32)) >>> 0; + sawFlag = true; + } else if (_1 === (45)) { + if (sign < 0) { + break Loop; + } + sign = -1; + flags = ~flags << 16 >>> 16; + sawFlag = false; + } else if ((_1 === (58)) || (_1 === (41))) { + if (sign < 0) { + if (!sawFlag) { + break Loop; + } + flags = ~flags << 16 >>> 16; + } + if (c === 58) { + p.op(128); + } + p.flags = flags; + _tmp$12 = t; + _tmp$13 = $ifaceNil; + rest = _tmp$12; + err = _tmp$13; + return [rest, err]; + } else { + break Loop; + } + } + _tmp$14 = ""; + _tmp$15 = new Error.ptr("invalid or unsupported Perl syntax", $substring(s, 0, (s.length - t.length >> 0))); + rest = _tmp$14; + err = _tmp$15; + return [rest, err]; + }; + isValidCaptureName = function isValidCaptureName$1(name) { + var _i, _ref, _rune, c, name; + if (name === "") { + return false; + } + _ref = name; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (!((c === 95)) && !isalnum(c)) { + return false; + } + _i += _rune[1]; + } + return true; + }; + $ptrType(parser).prototype.parseInt = function parseInt(s) { + var i, n, ok, p, rest, s, t; + n = 0; + rest = ""; + ok = false; + p = this; + if (s === "" || s.charCodeAt(0) < 48 || 57 < s.charCodeAt(0)) { + return [n, rest, ok]; + } + if (s.length >= 2 && (s.charCodeAt(0) === 48) && 48 <= s.charCodeAt(1) && s.charCodeAt(1) <= 57) { + return [n, rest, ok]; + } + t = s; + while (true) { + if (!(!(s === "") && 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { break; } + s = $substring(s, 1); + } + rest = s; + ok = true; + t = $substring(t, 0, (t.length - s.length >> 0)); + i = 0; + while (true) { + if (!(i < t.length)) { break; } + if (n >= 100000000) { + n = -1; + break; + } + n = (($imul(n, 10)) + ((t.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + i = i + (1) >> 0; + } + return [n, rest, ok]; + }; + isCharClass = function isCharClass$1(re) { + var re; + return (re.Op === 3) && (re.Rune.$length === 1) || (re.Op === 4) || (re.Op === 5) || (re.Op === 6); + }; + matchRune = function matchRune$1(re, r) { + var _1, i, r, re, x, x$1, x$2, x$3; + _1 = re.Op; + if (_1 === (3)) { + return (re.Rune.$length === 1) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === r); + } else if (_1 === (4)) { + i = 0; + while (true) { + if (!(i < re.Rune.$length)) { break; } + if ((x$1 = re.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) <= r && r <= (x$2 = re.Rune, x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) { + return true; + } + i = i + (2) >> 0; + } + return false; + } else if (_1 === (5)) { + return !((r === 10)); + } else if (_1 === (6)) { + return true; + } + return false; + }; + $ptrType(parser).prototype.parseVerticalBar = function parseVerticalBar() { + var {_r, _r$1, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!_r$1) { */ case 2: + p.op(129); + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: parseVerticalBar, $c: true, $r, _r, _r$1, p, $s};return $f; + }; + mergeCharClass = function mergeCharClass$1(dst, src) { + var _1, dst, src, x, x$1, x$2, x$3, x$4; + switch (0) { default: + _1 = dst.Op; + if (_1 === (6)) { + } else if (_1 === (5)) { + if (matchRune(src, 10)) { + dst.Op = 6; + } + } else if (_1 === (4)) { + if (src.Op === 3) { + dst.Rune = appendLiteral(dst.Rune, (x = src.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), src.Flags); + } else { + dst.Rune = appendClass(dst.Rune, src.Rune); + } + } else if (_1 === (3)) { + if (((x$1 = src.Rune, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) === (x$2 = dst.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) && (src.Flags === dst.Flags)) { + break; + } + dst.Op = 4; + dst.Rune = appendLiteral($subslice(dst.Rune, 0, 0), (x$3 = dst.Rune, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), dst.Flags); + dst.Rune = appendLiteral(dst.Rune, (x$4 = src.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])), src.Flags); + } + } + }; + $ptrType(parser).prototype.swapVerticalBar = function swapVerticalBar() { + var {_tmp, _tmp$1, n, p, re1, re1$1, re2, re3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + n = p.stack.$length; + if (n >= 3 && ((x = p.stack, x$1 = n - 2 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 129) && isCharClass((x$2 = p.stack, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) && isCharClass((x$4 = p.stack, x$5 = n - 3 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])))) { + re1 = (x$6 = p.stack, x$7 = n - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); + re3 = (x$8 = p.stack, x$9 = n - 3 >> 0, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); + if (re1.Op > re3.Op) { + _tmp = re3; + _tmp$1 = re1; + re1 = _tmp; + re3 = _tmp$1; + (x$10 = p.stack, x$11 = n - 3 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11] = re3)); + } + mergeCharClass(re3, re1); + p.reuse(re1); + p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); + $s = -1; return true; + } + /* */ if (n >= 2) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n >= 2) { */ case 1: + re1$1 = (x$12 = p.stack, x$13 = n - 1 >> 0, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])); + re2 = (x$14 = p.stack, x$15 = n - 2 >> 0, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15])); + /* */ if (re2.Op === 129) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (re2.Op === 129) { */ case 3: + /* */ if (n >= 3) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (n >= 3) { */ case 5: + $r = cleanAlt((x$16 = p.stack, x$17 = n - 3 >> 0, ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17]))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + (x$18 = p.stack, x$19 = n - 2 >> 0, ((x$19 < 0 || x$19 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + x$19] = re1$1)); + (x$20 = p.stack, x$21 = n - 1 >> 0, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = re2)); + $s = -1; return true; + /* } */ case 4: + /* } */ case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: swapVerticalBar, $c: true, $r, _tmp, _tmp$1, n, p, re1, re1$1, re2, re3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; + $ptrType(parser).prototype.parseRightParen = function parseRightParen() { + var {_r, _r$1, _r$2, n, p, re1, re2, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_r$1) { */ case 2: + p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); + /* } */ case 3: + _r$2 = p.alternate(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + n = p.stack.$length; + if (n < 2) { + $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); + } + re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + p.stack = $subslice(p.stack, 0, (n - 2 >> 0)); + if (!((re2.Op === 128))) { + $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); + } + p.flags = re2.Flags; + if (re2.Cap === 0) { + p.push(re1); + } else { + re2.Op = 13; + re2.Sub = $subslice(new sliceType$4(re2.Sub0), 0, 1); + (x$4 = re2.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = re1)); + p.push(re2); + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: parseRightParen, $c: true, $r, _r, _r$1, _r$2, n, p, re1, re2, x, x$1, x$2, x$3, x$4, $s};return $f; + }; + $ptrType(parser).prototype.parseEscape = function parseEscape(s) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, c, err, i, nhex, p, r, rest, s, t, v, x, y; + r = 0; + rest = ""; + err = $ifaceNil; + p = this; + t = $substring(s, 1); + if (t === "") { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = new Error.ptr("trailing backslash at end of expression", ""); + r = _tmp; + rest = _tmp$1; + err = _tmp$2; + return [r, rest, err]; + } + _tuple = nextRune(t); + c = _tuple[0]; + t = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$3 = 0; + _tmp$4 = ""; + _tmp$5 = err; + r = _tmp$3; + rest = _tmp$4; + err = _tmp$5; + return [r, rest, err]; + } + Switch: + switch (0) { default: + _1 = c; + if ((_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { + if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { + break; + } + r = c - 48 >> 0; + i = 1; + while (true) { + if (!(i < 3)) { break; } + if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { + break; + } + r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; + t = $substring(t, 1); + i = i + (1) >> 0; + } + _tmp$6 = r; + _tmp$7 = t; + _tmp$8 = $ifaceNil; + r = _tmp$6; + rest = _tmp$7; + err = _tmp$8; + return [r, rest, err]; + } else if (_1 === (48)) { + r = c - 48 >> 0; + i = 1; + while (true) { + if (!(i < 3)) { break; } + if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { + break; + } + r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; + t = $substring(t, 1); + i = i + (1) >> 0; + } + _tmp$9 = r; + _tmp$10 = t; + _tmp$11 = $ifaceNil; + r = _tmp$9; + rest = _tmp$10; + err = _tmp$11; + return [r, rest, err]; + } else if (_1 === (120)) { + if (t === "") { + break; + } + _tuple$1 = nextRune(t); + c = _tuple$1[0]; + t = _tuple$1[1]; + err = _tuple$1[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$12 = 0; + _tmp$13 = ""; + _tmp$14 = err; + r = _tmp$12; + rest = _tmp$13; + err = _tmp$14; + return [r, rest, err]; + } + if (c === 123) { + nhex = 0; + r = 0; + while (true) { + if (t === "") { + break Switch; + } + _tuple$2 = nextRune(t); + c = _tuple$2[0]; + t = _tuple$2[1]; + err = _tuple$2[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$15 = 0; + _tmp$16 = ""; + _tmp$17 = err; + r = _tmp$15; + rest = _tmp$16; + err = _tmp$17; + return [r, rest, err]; + } + if (c === 125) { + break; + } + v = unhex(c); + if (v < 0) { + break Switch; + } + r = ($imul(r, 16)) + v >> 0; + if (r > 1114111) { + break Switch; + } + nhex = nhex + (1) >> 0; + } + if (nhex === 0) { + break Switch; + } + _tmp$18 = r; + _tmp$19 = t; + _tmp$20 = $ifaceNil; + r = _tmp$18; + rest = _tmp$19; + err = _tmp$20; + return [r, rest, err]; + } + x = unhex(c); + _tuple$3 = nextRune(t); + c = _tuple$3[0]; + t = _tuple$3[1]; + err = _tuple$3[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$21 = 0; + _tmp$22 = ""; + _tmp$23 = err; + r = _tmp$21; + rest = _tmp$22; + err = _tmp$23; + return [r, rest, err]; + } + y = unhex(c); + if (x < 0 || y < 0) { + break; + } + _tmp$24 = ($imul(x, 16)) + y >> 0; + _tmp$25 = t; + _tmp$26 = $ifaceNil; + r = _tmp$24; + rest = _tmp$25; + err = _tmp$26; + return [r, rest, err]; + } else if (_1 === (97)) { + _tmp$27 = 7; + _tmp$28 = t; + _tmp$29 = err; + r = _tmp$27; + rest = _tmp$28; + err = _tmp$29; + return [r, rest, err]; + } else if (_1 === (102)) { + _tmp$30 = 12; + _tmp$31 = t; + _tmp$32 = err; + r = _tmp$30; + rest = _tmp$31; + err = _tmp$32; + return [r, rest, err]; + } else if (_1 === (110)) { + _tmp$33 = 10; + _tmp$34 = t; + _tmp$35 = err; + r = _tmp$33; + rest = _tmp$34; + err = _tmp$35; + return [r, rest, err]; + } else if (_1 === (114)) { + _tmp$36 = 13; + _tmp$37 = t; + _tmp$38 = err; + r = _tmp$36; + rest = _tmp$37; + err = _tmp$38; + return [r, rest, err]; + } else if (_1 === (116)) { + _tmp$39 = 9; + _tmp$40 = t; + _tmp$41 = err; + r = _tmp$39; + rest = _tmp$40; + err = _tmp$41; + return [r, rest, err]; + } else if (_1 === (118)) { + _tmp$42 = 11; + _tmp$43 = t; + _tmp$44 = err; + r = _tmp$42; + rest = _tmp$43; + err = _tmp$44; + return [r, rest, err]; + } else if (c < 128 && !isalnum(c)) { + _tmp$45 = c; + _tmp$46 = t; + _tmp$47 = $ifaceNil; + r = _tmp$45; + rest = _tmp$46; + err = _tmp$47; + return [r, rest, err]; + } + } + _tmp$48 = 0; + _tmp$49 = ""; + _tmp$50 = new Error.ptr("invalid escape sequence", $substring(s, 0, (s.length - t.length >> 0))); + r = _tmp$48; + rest = _tmp$49; + err = _tmp$50; + return [r, rest, err]; + }; + $ptrType(parser).prototype.parseClassChar = function parseClassChar(s, wholeClass) { + var _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, err, p, r, rest, s, wholeClass; + r = 0; + rest = ""; + err = $ifaceNil; + p = this; + if (s === "") { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = new Error.ptr("missing closing ]", wholeClass); + r = _tmp; + rest = _tmp$1; + err = _tmp$2; + return [r, rest, err]; + } + if (s.charCodeAt(0) === 92) { + _tuple = p.parseEscape(s); + r = _tuple[0]; + rest = _tuple[1]; + err = _tuple[2]; + return [r, rest, err]; + } + _tuple$1 = nextRune(s); + r = _tuple$1[0]; + rest = _tuple$1[1]; + err = _tuple$1[2]; + return [r, rest, err]; + }; + $ptrType(parser).prototype.parsePerlClassEscape = function parsePerlClassEscape(s, r) { + var {$24r, _entry, _r, _tmp, _tmp$1, g, out, p, r, rest, s, $s, $r, $c} = $restore(this, {s, r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = sliceType$1.nil; + rest = ""; + p = this; + if ((((p.flags & 64) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92))) { + $s = -1; return [out, rest]; + } + g = $clone((_entry = $mapIndex(perlGroup,$String.keyFor($substring(s, 0, 2))), _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType$1.nil)), charGroup); + if (g.sign === 0) { + $s = -1; return [out, rest]; + } + _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp = _r; + _tmp$1 = $substring(s, 2); + out = _tmp; + rest = _tmp$1; + $24r = [out, rest]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: parsePerlClassEscape, $c: true, $r, $24r, _entry, _r, _tmp, _tmp$1, g, out, p, r, rest, s, $s};return $f; + }; + $ptrType(parser).prototype.parseNamedClass = function parseNamedClass(s, r) { + var {$24r, _entry, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, err, g, i, name, out, p, r, rest, s, $s, $r, $c} = $restore(this, {s, r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = sliceType$1.nil; + rest = ""; + err = $ifaceNil; + p = this; + if (s.length < 2 || !((s.charCodeAt(0) === 91)) || !((s.charCodeAt(1) === 58))) { + $s = -1; return [out, rest, err]; + } + i = strings.Index($substring(s, 2), ":]"); + if (i < 0) { + $s = -1; return [out, rest, err]; + } + i = i + (2) >> 0; + _tmp = $substring(s, 0, (i + 2 >> 0)); + _tmp$1 = $substring(s, (i + 2 >> 0)); + name = _tmp; + s = _tmp$1; + g = $clone((_entry = $mapIndex(posixGroup,$String.keyFor(name)), _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType$1.nil)), charGroup); + if (g.sign === 0) { + _tmp$2 = sliceType$1.nil; + _tmp$3 = ""; + _tmp$4 = new Error.ptr("invalid character class range", name); + out = _tmp$2; + rest = _tmp$3; + err = _tmp$4; + $s = -1; return [out, rest, err]; + } + _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$5 = _r; + _tmp$6 = s; + _tmp$7 = $ifaceNil; + out = _tmp$5; + rest = _tmp$6; + err = _tmp$7; + $24r = [out, rest, err]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: parseNamedClass, $c: true, $r, $24r, _entry, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, err, g, i, name, out, p, r, rest, s, $s};return $f; + }; + $ptrType(parser).prototype.appendGroup = function appendGroup(r, g) { + var {_r, g, p, r, tmp, $s, $r, $c} = $restore(this, {r, g}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (((p.flags & 1) >>> 0) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (((p.flags & 1) >>> 0) === 0) { */ case 1: + if (g.sign < 0) { + r = appendNegatedClass(r, g.class$1); + } else { + r = appendClass(r, g.class$1); + } + $s = 3; continue; + /* } else { */ case 2: + tmp = $subslice(p.tmpClass, 0, 0); + tmp = appendFoldedClass(tmp, g.class$1); + p.tmpClass = tmp; + _r = cleanClass((p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$2(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tmp = _r; + if (g.sign < 0) { + r = appendNegatedClass(r, tmp); + } else { + r = appendClass(r, tmp); + } + /* } */ case 3: + $s = -1; return r; + /* */ } return; } var $f = {$blk: appendGroup, $c: true, $r, _r, g, p, r, tmp, $s};return $f; + }; + unicodeTable = function unicodeTable$1(name) { + var _entry, _entry$1, _entry$2, _entry$3, name, t, t$1; + if (name === "Any") { + return [anyTable, anyTable]; + } + t = (_entry = $mapIndex(unicode.Categories,$String.keyFor(name)), _entry !== undefined ? _entry.v : ptrType$3.nil); + if (!(t === ptrType$3.nil)) { + return [t, (_entry$1 = $mapIndex(unicode.FoldCategory,$String.keyFor(name)), _entry$1 !== undefined ? _entry$1.v : ptrType$3.nil)]; + } + t$1 = (_entry$2 = $mapIndex(unicode.Scripts,$String.keyFor(name)), _entry$2 !== undefined ? _entry$2.v : ptrType$3.nil); + if (!(t$1 === ptrType$3.nil)) { + return [t$1, (_entry$3 = $mapIndex(unicode.FoldScript,$String.keyFor(name)), _entry$3 !== undefined ? _entry$3.v : ptrType$3.nil)]; + } + return [ptrType$3.nil, ptrType$3.nil]; + }; + $ptrType(parser).prototype.parseUnicodeClass = function parseUnicodeClass(s, r) { + var {_r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, c, end, err, fold, name, out, p, r, rest, s, seq, sign, t, tab, tmp, $s, $r, $c} = $restore(this, {s, r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = sliceType$1.nil; + rest = ""; + err = $ifaceNil; + p = this; + if ((((p.flags & 128) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92)) || !((s.charCodeAt(1) === 112)) && !((s.charCodeAt(1) === 80))) { + $s = -1; return [out, rest, err]; + } + sign = 1; + if (s.charCodeAt(1) === 80) { + sign = -1; + } + t = $substring(s, 2); + _tuple = nextRune(t); + c = _tuple[0]; + t = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [out, rest, err]; + } + _tmp = ""; + _tmp$1 = ""; + seq = _tmp; + name = _tmp$1; + if (!((c === 123))) { + seq = $substring(s, 0, (s.length - t.length >> 0)); + name = $substring(seq, 2); + } else { + end = strings.IndexRune(s, 125); + if (end < 0) { + err = checkUTF8(s); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [out, rest, err]; + } + _tmp$2 = sliceType$1.nil; + _tmp$3 = ""; + _tmp$4 = new Error.ptr("invalid character class range", s); + out = _tmp$2; + rest = _tmp$3; + err = _tmp$4; + $s = -1; return [out, rest, err]; + } + _tmp$5 = $substring(s, 0, (end + 1 >> 0)); + _tmp$6 = $substring(s, (end + 1 >> 0)); + seq = _tmp$5; + t = _tmp$6; + name = $substring(s, 3, end); + err = checkUTF8(name); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [out, rest, err]; + } + } + if (!(name === "") && (name.charCodeAt(0) === 94)) { + sign = -sign; + name = $substring(name, 1); + } + _tuple$1 = unicodeTable(name); + tab = _tuple$1[0]; + fold = _tuple$1[1]; + if (tab === ptrType$3.nil) { + _tmp$7 = sliceType$1.nil; + _tmp$8 = ""; + _tmp$9 = new Error.ptr("invalid character class range", seq); + out = _tmp$7; + rest = _tmp$8; + err = _tmp$9; + $s = -1; return [out, rest, err]; + } + /* */ if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$3.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$3.nil) { */ case 1: + if (sign > 0) { + r = appendTable(r, tab); + } else { + r = appendNegatedTable(r, tab); + } + $s = 3; continue; + /* } else { */ case 2: + tmp = $subslice(p.tmpClass, 0, 0); + tmp = appendTable(tmp, tab); + tmp = appendTable(tmp, fold); + p.tmpClass = tmp; + _r = cleanClass((p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$2(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tmp = _r; + if (sign > 0) { + r = appendClass(r, tmp); + } else { + r = appendNegatedClass(r, tmp); + } + /* } */ case 3: + _tmp$10 = r; + _tmp$11 = t; + _tmp$12 = $ifaceNil; + out = _tmp$10; + rest = _tmp$11; + err = _tmp$12; + $s = -1; return [out, rest, err]; + /* */ } return; } var $f = {$blk: parseUnicodeClass, $c: true, $r, _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, c, end, err, fold, name, out, p, r, rest, s, seq, sign, t, tab, tmp, $s};return $f; + }; + $ptrType(parser).prototype.parseClass = function parseClass(s) { + var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, class$1, err, err$1, err$2, first, hi, lo, nclass, nclass$1, nclass$2, nt, nt$1, nt$2, p, re, rest, rng, s, sign, size, t, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rest = ""; + err = $ifaceNil; + p = this; + t = $substring(s, 1); + re = p.newRegexp(4); + re.Flags = p.flags; + re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 0); + sign = 1; + if (!(t === "") && (t.charCodeAt(0) === 94)) { + sign = -1; + t = $substring(t, 1); + if (((p.flags & 4) >>> 0) === 0) { + re.Rune = $append(re.Rune, 10, 10); + } + } + class$1 = re.Rune; + first = true; + /* while (true) { */ case 1: + /* if (!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { break; } */ if(!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { $s = 2; continue; } + if (!(t === "") && (t.charCodeAt(0) === 45) && (((p.flags & 64) >>> 0) === 0) && !first && ((t.length === 1) || !((t.charCodeAt(1) === 93)))) { + _tuple = utf8.DecodeRuneInString($substring(t, 1)); + size = _tuple[1]; + _tmp = ""; + _tmp$1 = new Error.ptr("invalid character class range", $substring(t, 0, (1 + size >> 0))); + rest = _tmp; + err = _tmp$1; + $s = -1; return [rest, err]; + } + first = false; + /* */ if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { */ case 3: + _r = p.parseNamedClass(t, class$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + nclass = _tuple$1[0]; + nt = _tuple$1[1]; + err$1 = _tuple$1[2]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp$2 = ""; + _tmp$3 = err$1; + rest = _tmp$2; + err = _tmp$3; + $s = -1; return [rest, err]; + } + if (!(nclass === sliceType$1.nil)) { + _tmp$4 = nclass; + _tmp$5 = nt; + class$1 = _tmp$4; + t = _tmp$5; + /* continue; */ $s = 1; continue; + } + /* } */ case 4: + _r$1 = p.parseUnicodeClass(t, class$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$2 = _r$1; + nclass$1 = _tuple$2[0]; + nt$1 = _tuple$2[1]; + err$2 = _tuple$2[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$6 = ""; + _tmp$7 = err$2; + rest = _tmp$6; + err = _tmp$7; + $s = -1; return [rest, err]; + } + if (!(nclass$1 === sliceType$1.nil)) { + _tmp$8 = nclass$1; + _tmp$9 = nt$1; + class$1 = _tmp$8; + t = _tmp$9; + /* continue; */ $s = 1; continue; + } + _r$2 = p.parsePerlClassEscape(t, class$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$3 = _r$2; + nclass$2 = _tuple$3[0]; + nt$2 = _tuple$3[1]; + if (!(nclass$2 === sliceType$1.nil)) { + _tmp$10 = nclass$2; + _tmp$11 = nt$2; + class$1 = _tmp$10; + t = _tmp$11; + /* continue; */ $s = 1; continue; + } + rng = t; + _tmp$12 = 0; + _tmp$13 = 0; + lo = _tmp$12; + hi = _tmp$13; + _tuple$4 = p.parseClassChar(t, s); + lo = _tuple$4[0]; + t = _tuple$4[1]; + err$2 = _tuple$4[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$14 = ""; + _tmp$15 = err$2; + rest = _tmp$14; + err = _tmp$15; + $s = -1; return [rest, err]; + } + hi = lo; + if (t.length >= 2 && (t.charCodeAt(0) === 45) && !((t.charCodeAt(1) === 93))) { + t = $substring(t, 1); + _tuple$5 = p.parseClassChar(t, s); + hi = _tuple$5[0]; + t = _tuple$5[1]; + err$2 = _tuple$5[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$16 = ""; + _tmp$17 = err$2; + rest = _tmp$16; + err = _tmp$17; + $s = -1; return [rest, err]; + } + if (hi < lo) { + rng = $substring(rng, 0, (rng.length - t.length >> 0)); + _tmp$18 = ""; + _tmp$19 = new Error.ptr("invalid character class range", rng); + rest = _tmp$18; + err = _tmp$19; + $s = -1; return [rest, err]; + } + } + if (((p.flags & 1) >>> 0) === 0) { + class$1 = appendRange(class$1, lo, hi); + } else { + class$1 = appendFoldedRange(class$1, lo, hi); + } + $s = 1; continue; + case 2: + t = $substring(t, 1); + re.Rune = class$1; + _r$3 = cleanClass((re.$ptr_Rune || (re.$ptr_Rune = new ptrType$2(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + class$1 = _r$3; + if (sign < 0) { + class$1 = negateClass(class$1); + } + re.Rune = class$1; + p.push(re); + _tmp$20 = t; + _tmp$21 = $ifaceNil; + rest = _tmp$20; + err = _tmp$21; + $s = -1; return [rest, err]; + /* */ } return; } var $f = {$blk: parseClass, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, class$1, err, err$1, err$2, first, hi, lo, nclass, nclass$1, nclass$2, nt, nt$1, nt$2, p, re, rest, rng, s, sign, size, t, $s};return $f; + }; + cleanClass = function cleanClass$1(rp) { + var {_tmp, _tmp$1, hi, i, lo, r, rp, w, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {rp}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = sort.Sort((x = new ranges.ptr(rp), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + r = rp.$get(); + if (r.$length < 2) { + $s = -1; return r; + } + w = 2; + i = 2; + while (true) { + if (!(i < r.$length)) { break; } + _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); + _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); + lo = _tmp; + hi = _tmp$1; + if (lo <= ((x$2 = w - 1 >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2])) + 1 >> 0)) { + if (hi > (x$3 = w - 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3]))) { + (x$4 = w - 1 >> 0, ((x$4 < 0 || x$4 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$4] = hi)); + } + i = i + (2) >> 0; + continue; + } + ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = lo); + (x$5 = w + 1 >> 0, ((x$5 < 0 || x$5 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$5] = hi)); + w = w + (2) >> 0; + i = i + (2) >> 0; + } + $s = -1; return $subslice(r, 0, w); + /* */ } return; } var $f = {$blk: cleanClass$1, $c: true, $r, _tmp, _tmp$1, hi, i, lo, r, rp, w, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + }; + appendLiteral = function appendLiteral$1(r, x, flags) { + var flags, r, x; + if (!((((flags & 1) >>> 0) === 0))) { + return appendFoldedRange(r, x, x); + } + return appendRange(r, x, x); + }; + appendRange = function appendRange$1(r, lo, hi) { + var _tmp, _tmp$1, hi, i, lo, n, r, rhi, rlo, x, x$1, x$2, x$3; + n = r.$length; + i = 2; + while (true) { + if (!(i <= 4)) { break; } + if (n >= i) { + _tmp = (x = n - i >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); + _tmp$1 = (x$1 = (n - i >> 0) + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); + rlo = _tmp; + rhi = _tmp$1; + if (lo <= (rhi + 1 >> 0) && rlo <= (hi + 1 >> 0)) { + if (lo < rlo) { + (x$2 = n - i >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2] = lo)); + } + if (hi > rhi) { + (x$3 = (n - i >> 0) + 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3] = hi)); + } + return r; + } + } + i = i + (2) >> 0; + } + return $append(r, lo, hi); + }; + appendFoldedRange = function appendFoldedRange$1(r, lo, hi) { + var c, f, hi, lo, r; + if (lo <= 65 && hi >= 125251) { + return appendRange(r, lo, hi); + } + if (hi < 65 || lo > 125251) { + return appendRange(r, lo, hi); + } + if (lo < 65) { + r = appendRange(r, lo, 64); + lo = 65; + } + if (hi > 125251) { + r = appendRange(r, 125252, hi); + hi = 125251; + } + c = lo; + while (true) { + if (!(c <= hi)) { break; } + r = appendRange(r, c, c); + f = unicode.SimpleFold(c); + while (true) { + if (!(!((f === c)))) { break; } + r = appendRange(r, f, f); + f = unicode.SimpleFold(f); + } + c = c + (1) >> 0; + } + return r; + }; + appendClass = function appendClass$1(r, x) { + var i, r, x, x$1; + i = 0; + while (true) { + if (!(i < x.$length)) { break; } + r = appendRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); + i = i + (2) >> 0; + } + return r; + }; + appendFoldedClass = function appendFoldedClass$1(r, x) { + var i, r, x, x$1; + i = 0; + while (true) { + if (!(i < x.$length)) { break; } + r = appendFoldedRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); + i = i + (2) >> 0; + } + return r; + }; + appendNegatedClass = function appendNegatedClass$1(r, x) { + var _tmp, _tmp$1, hi, i, lo, nextLo, r, x, x$1; + nextLo = 0; + i = 0; + while (true) { + if (!(i < x.$length)) { break; } + _tmp = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]); + _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + lo = _tmp; + hi = _tmp$1; + if (nextLo <= (lo - 1 >> 0)) { + r = appendRange(r, nextLo, lo - 1 >> 0); + } + nextLo = hi + 1 >> 0; + i = i + (2) >> 0; + } + if (nextLo <= 1114111) { + r = appendRange(r, nextLo, 1114111); + } + return r; + }; + appendTable = function appendTable$1(r, x) { + var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, r, stride, stride$1, x, xr, xr$1; + _ref = x.R16; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); + _tmp = ((xr.Lo >> 0)); + _tmp$1 = ((xr.Hi >> 0)); + _tmp$2 = ((xr.Stride >> 0)); + lo = _tmp; + hi = _tmp$1; + stride = _tmp$2; + if (stride === 1) { + r = appendRange(r, lo, hi); + _i++; + continue; + } + c = lo; + while (true) { + if (!(c <= hi)) { break; } + r = appendRange(r, c, c); + c = c + (stride) >> 0; + } + _i++; + } + _ref$1 = x.R32; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); + _tmp$3 = ((xr$1.Lo >> 0)); + _tmp$4 = ((xr$1.Hi >> 0)); + _tmp$5 = ((xr$1.Stride >> 0)); + lo$1 = _tmp$3; + hi$1 = _tmp$4; + stride$1 = _tmp$5; + if (stride$1 === 1) { + r = appendRange(r, lo$1, hi$1); + _i$1++; + continue; + } + c$1 = lo$1; + while (true) { + if (!(c$1 <= hi$1)) { break; } + r = appendRange(r, c$1, c$1); + c$1 = c$1 + (stride$1) >> 0; + } + _i$1++; + } + return r; + }; + appendNegatedTable = function appendNegatedTable$1(r, x) { + var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, nextLo, r, stride, stride$1, x, xr, xr$1; + nextLo = 0; + _ref = x.R16; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); + _tmp = ((xr.Lo >> 0)); + _tmp$1 = ((xr.Hi >> 0)); + _tmp$2 = ((xr.Stride >> 0)); + lo = _tmp; + hi = _tmp$1; + stride = _tmp$2; + if (stride === 1) { + if (nextLo <= (lo - 1 >> 0)) { + r = appendRange(r, nextLo, lo - 1 >> 0); + } + nextLo = hi + 1 >> 0; + _i++; + continue; + } + c = lo; + while (true) { + if (!(c <= hi)) { break; } + if (nextLo <= (c - 1 >> 0)) { + r = appendRange(r, nextLo, c - 1 >> 0); + } + nextLo = c + 1 >> 0; + c = c + (stride) >> 0; + } + _i++; + } + _ref$1 = x.R32; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); + _tmp$3 = ((xr$1.Lo >> 0)); + _tmp$4 = ((xr$1.Hi >> 0)); + _tmp$5 = ((xr$1.Stride >> 0)); + lo$1 = _tmp$3; + hi$1 = _tmp$4; + stride$1 = _tmp$5; + if (stride$1 === 1) { + if (nextLo <= (lo$1 - 1 >> 0)) { + r = appendRange(r, nextLo, lo$1 - 1 >> 0); + } + nextLo = hi$1 + 1 >> 0; + _i$1++; + continue; + } + c$1 = lo$1; + while (true) { + if (!(c$1 <= hi$1)) { break; } + if (nextLo <= (c$1 - 1 >> 0)) { + r = appendRange(r, nextLo, c$1 - 1 >> 0); + } + nextLo = c$1 + 1 >> 0; + c$1 = c$1 + (stride$1) >> 0; + } + _i$1++; + } + if (nextLo <= 1114111) { + r = appendRange(r, nextLo, 1114111); + } + return r; + }; + negateClass = function negateClass$1(r) { + var _tmp, _tmp$1, hi, i, lo, nextLo, r, w, x, x$1; + nextLo = 0; + w = 0; + i = 0; + while (true) { + if (!(i < r.$length)) { break; } + _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); + _tmp$1 = (x = i + 1 >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); + lo = _tmp; + hi = _tmp$1; + if (nextLo <= (lo - 1 >> 0)) { + ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = nextLo); + (x$1 = w + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1] = (lo - 1 >> 0))); + w = w + (2) >> 0; + } + nextLo = hi + 1 >> 0; + i = i + (2) >> 0; + } + r = $subslice(r, 0, w); + if (nextLo <= 1114111) { + r = $append(r, nextLo, 1114111); + } + return r; + }; + $ptrType(ranges).prototype.Less = function Less(i, j) { + var i, j, p, ra, x, x$1; + ra = this; + p = ra.p.$get(); + i = $imul(i, (2)); + j = $imul(j, (2)); + return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]) || (((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) === ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j])) && (x = i + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) > (x$1 = j + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); + }; + ranges.prototype.Less = function(...$args) { return this.$val.Less(...$args); }; + $ptrType(ranges).prototype.Len = function Len() { + var _q, ra; + ra = this; + return (_q = ra.p.$get().$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + }; + ranges.prototype.Len = function(...$args) { return this.$val.Len(...$args); }; + $ptrType(ranges).prototype.Swap = function Swap(i, j) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, i, j, p, ra, x, x$1, x$2, x$3; + ra = this; + p = ra.p.$get(); + i = $imul(i, (2)); + j = $imul(j, (2)); + _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + _tmp$1 = (x = j + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])); + _tmp$2 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + _tmp$3 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); + ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); + (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2] = _tmp$1)); + ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$2); + (x$3 = j + 1 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3] = _tmp$3)); + }; + ranges.prototype.Swap = function(...$args) { return this.$val.Swap(...$args); }; + checkUTF8 = function checkUTF8$1(s) { + var _tuple, rune, s, size; + while (true) { + if (!(!(s === ""))) { break; } + _tuple = utf8.DecodeRuneInString(s); + rune = _tuple[0]; + size = _tuple[1]; + if ((rune === 65533) && (size === 1)) { + return new Error.ptr("invalid UTF-8", s); + } + s = $substring(s, size); + } + return $ifaceNil; + }; + nextRune = function nextRune$1(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, c, err, s, size, t; + c = 0; + t = ""; + err = $ifaceNil; + _tuple = utf8.DecodeRuneInString(s); + c = _tuple[0]; + size = _tuple[1]; + if ((c === 65533) && (size === 1)) { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = new Error.ptr("invalid UTF-8", s); + c = _tmp; + t = _tmp$1; + err = _tmp$2; + return [c, t, err]; + } + _tmp$3 = c; + _tmp$4 = $substring(s, size); + _tmp$5 = $ifaceNil; + c = _tmp$3; + t = _tmp$4; + err = _tmp$5; + return [c, t, err]; + }; + isalnum = function isalnum$1(c) { + var c; + return 48 <= c && c <= 57 || 65 <= c && c <= 90 || 97 <= c && c <= 122; + }; + unhex = function unhex$1(c) { + var c; + if (48 <= c && c <= 57) { + return c - 48 >> 0; + } + if (97 <= c && c <= 102) { + return (c - 97 >> 0) + 10 >> 0; + } + if (65 <= c && c <= 70) { + return (c - 65 >> 0) + 10 >> 0; + } + return -1; + }; + Op.prototype.String = function String$5() { + var i, x; + i = this.$val; + if (1 <= i && i <= 19) { + i = i - (1) << 24 >>> 24; + return $substring("NoMatchEmptyMatchLiteralCharClassAnyCharNotNLAnyCharBeginLineEndLineBeginTextEndTextWordBoundaryNoWordBoundaryCaptureStarPlusQuestRepeatConcatAlternate", ((i < 0 || i >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[i]), (x = i + 1 << 24 >>> 24, ((x < 0 || x >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[x]))); + } else if ((i === 128)) { + return "opPseudo"; + } else { + return "Op(" + strconv.FormatInt((new $Int64(0, i)), 10) + ")"; + } + }; + $ptrType(Op).prototype.String = function(...$args) { return new Op(this.$get()).String(...$args); }; + makePatchList = function makePatchList$1(n) { + var n; + return new patchList.ptr(n, n); + }; + $ptrType(patchList).prototype.patch = function patch(p, val) { + var head, i, l, p, val, x, x$1; + l = this; + head = l.head; + while (true) { + if (!(!((head === 0)))) { break; } + i = (x = p.Inst, x$1 = head >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (((head & 1) >>> 0) === 0) { + head = i.Out; + i.Out = val; + } else { + head = i.Arg; + i.Arg = val; + } + } + }; + patchList.prototype.patch = function(...$args) { return this.$val.patch(...$args); }; + $ptrType(patchList).prototype.append = function append(p, l2) { + var i, l1, l2, p, x, x$1; + l1 = this; + if (l1.head === 0) { + return l2; + } + if (l2.head === 0) { + return l1; + } + i = (x = p.Inst, x$1 = l1.tail >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (((l1.tail & 1) >>> 0) === 0) { + i.Out = l2.head; + } else { + i.Arg = l2.head; + } + return new patchList.ptr(l1.head, l2.tail); + }; + patchList.prototype.append = function(...$args) { return this.$val.append(...$args); }; + Compile = function Compile$1(re) { + var c, f, re; + c = new compiler.ptr(ptrType$4.nil); + c.init(); + f = $clone(c.compile(re), frag); + $clone(f.out, patchList).patch(c.p, c.inst(4).i); + c.p.Start = ((f.i >> 0)); + return [c.p, $ifaceNil]; + }; + $pkg.Compile = Compile; + $ptrType(compiler).prototype.init = function init() { + var c; + c = this; + c.p = new Prog.ptr(sliceType$6.nil, 0, 0); + c.p.NumCap = 2; + c.inst(5); + }; + $ptrType(compiler).prototype.compile = function compile(re) { + var _1, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, bra, c, f, f$1, f$2, f1, i, j, ket, re, sub, sub$1, sub$2, x, x$1, x$2, x$3; + c = this; + _1 = re.Op; + if (_1 === (1)) { + return c.fail(); + } else if (_1 === (2)) { + return c.nop(); + } else if (_1 === (3)) { + if (re.Rune.$length === 0) { + return c.nop(); + } + f = new frag.ptr(0, new patchList.ptr(0, 0), false); + _ref = re.Rune; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + f1 = $clone(c.rune($subslice(re.Rune, j, (j + 1 >> 0)), re.Flags), frag); + if (j === 0) { + frag.copy(f, f1); + } else { + frag.copy(f, c.cat($clone(f, frag), $clone(f1, frag))); + } + _i++; + } + return f; + } else if (_1 === (4)) { + return c.rune(re.Rune, re.Flags); + } else if (_1 === (5)) { + return c.rune(anyRuneNotNL, 0); + } else if (_1 === (6)) { + return c.rune(anyRune, 0); + } else if (_1 === (7)) { + return c.empty(1); + } else if (_1 === (8)) { + return c.empty(2); + } else if (_1 === (9)) { + return c.empty(4); + } else if (_1 === (10)) { + return c.empty(8); + } else if (_1 === (11)) { + return c.empty(16); + } else if (_1 === (12)) { + return c.empty(32); + } else if (_1 === (13)) { + bra = $clone(c.cap((((re.Cap << 1 >> 0) >>> 0))), frag); + sub = $clone(c.compile((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))), frag); + ket = $clone(c.cap(((((re.Cap << 1 >> 0) | 1) >>> 0))), frag); + return c.cat($clone(c.cat($clone(bra, frag), $clone(sub, frag)), frag), $clone(ket, frag)); + } else if (_1 === (14)) { + return c.star($clone(c.compile((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); + } else if (_1 === (15)) { + return c.plus($clone(c.compile((x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); + } else if (_1 === (16)) { + return c.quest($clone(c.compile((x$3 = re.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); + } else if (_1 === (18)) { + if (re.Sub.$length === 0) { + return c.nop(); + } + f$1 = new frag.ptr(0, new patchList.ptr(0, 0), false); + _ref$1 = re.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i = _i$1; + sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (i === 0) { + frag.copy(f$1, c.compile(sub$1)); + } else { + frag.copy(f$1, c.cat($clone(f$1, frag), $clone(c.compile(sub$1), frag))); + } + _i$1++; + } + return f$1; + } else if (_1 === (19)) { + f$2 = new frag.ptr(0, new patchList.ptr(0, 0), false); + _ref$2 = re.Sub; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + frag.copy(f$2, c.alt($clone(f$2, frag), $clone(c.compile(sub$2), frag))); + _i$2++; + } + return f$2; + } + $panic(new $String("regexp: unhandled case in compile")); + }; + $ptrType(compiler).prototype.inst = function inst(op$2) { + var c, f, op$2; + c = this; + f = new frag.ptr(((c.p.Inst.$length >>> 0)), new patchList.ptr(0, 0), true); + c.p.Inst = $append(c.p.Inst, new Inst.ptr(op$2, 0, 0, sliceType$1.nil)); + return f; + }; + $ptrType(compiler).prototype.nop = function nop() { + var c, f; + c = this; + f = $clone(c.inst(6), frag); + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + return f; + }; + $ptrType(compiler).prototype.fail = function fail() { + var c; + c = this; + return new frag.ptr(0, new patchList.ptr(0, 0), false); + }; + $ptrType(compiler).prototype.cap = function cap(arg) { + var arg, c, f, x, x$1; + c = this; + f = $clone(c.inst(2), frag); + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = arg; + if (c.p.NumCap < (((arg >> 0)) + 1 >> 0)) { + c.p.NumCap = ((arg >> 0)) + 1 >> 0; + } + return f; + }; + $ptrType(compiler).prototype.cat = function cat(f1, f2) { + var c, f1, f2; + c = this; + if ((f1.i === 0) || (f2.i === 0)) { + return new frag.ptr(0, new patchList.ptr(0, 0), false); + } + $clone(f1.out, patchList).patch(c.p, f2.i); + return new frag.ptr(f1.i, $clone(f2.out, patchList), f1.nullable && f2.nullable); + }; + $ptrType(compiler).prototype.alt = function alt(f1, f2) { + var c, f, f1, f2, i, x, x$1; + c = this; + if (f1.i === 0) { + return f2; + } + if (f2.i === 0) { + return f1; + } + f = $clone(c.inst(0), frag); + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + i.Out = f1.i; + i.Arg = f2.i; + patchList.copy(f.out, $clone(f1.out, patchList).append(c.p, $clone(f2.out, patchList))); + f.nullable = f1.nullable || f2.nullable; + return f; + }; + $ptrType(compiler).prototype.quest = function quest(f1, nongreedy) { + var c, f, f1, i, nongreedy, x, x$1; + c = this; + f = $clone(c.inst(0), frag); + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (nongreedy) { + i.Arg = f1.i; + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + } else { + i.Out = f1.i; + patchList.copy(f.out, makePatchList(((f.i << 1 >>> 0) | 1) >>> 0)); + } + patchList.copy(f.out, $clone(f.out, patchList).append(c.p, $clone(f1.out, patchList))); + return f; + }; + $ptrType(compiler).prototype.loop = function loop(f1, nongreedy) { + var c, f, f1, i, nongreedy, x, x$1; + c = this; + f = $clone(c.inst(0), frag); + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (nongreedy) { + i.Arg = f1.i; + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + } else { + i.Out = f1.i; + patchList.copy(f.out, makePatchList(((f.i << 1 >>> 0) | 1) >>> 0)); + } + $clone(f1.out, patchList).patch(c.p, f.i); + return f; + }; + $ptrType(compiler).prototype.star = function star(f1, nongreedy) { + var c, f1, nongreedy; + c = this; + if (f1.nullable) { + return c.quest($clone(c.plus($clone(f1, frag), nongreedy), frag), nongreedy); + } + return c.loop($clone(f1, frag), nongreedy); + }; + $ptrType(compiler).prototype.plus = function plus(f1, nongreedy) { + var c, f1, nongreedy; + c = this; + return new frag.ptr(f1.i, $clone(c.loop($clone(f1, frag), nongreedy).out, patchList), f1.nullable); + }; + $ptrType(compiler).prototype.empty = function empty(op$2) { + var c, f, op$2, x, x$1; + c = this; + f = $clone(c.inst(3), frag); + (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = ((op$2 >>> 0)); + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + return f; + }; + $ptrType(compiler).prototype.rune = function rune(r, flags) { + var c, f, flags, i, r, x, x$1; + c = this; + f = $clone(c.inst(7), frag); + f.nullable = false; + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + i.Rune = r; + flags = (flags & (1)) >>> 0; + if (!((r.$length === 1)) || (unicode.SimpleFold((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0])) === (0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]))) { + flags = (flags & ~(1)) << 16 >>> 16; + } + i.Arg = ((flags >>> 0)); + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + if ((((flags & 1) >>> 0) === 0) && ((r.$length === 1) || (r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === (1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1])))) { + i.Op = 8; + } else if ((r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 1114111)) { + i.Op = 9; + } else if ((r.$length === 4) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 9) && ((2 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 2]) === 11) && ((3 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 3]) === 1114111)) { + i.Op = 10; + } + return f; + }; + ptrType.methods = [{prop: "Simplify", name: "Simplify", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MaxCap", name: "MaxCap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "CapNames", name: "CapNames", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "capNames", name: "capNames", pkg: "regexp/syntax", typ: $funcType([sliceType], [], false)}]; + Op.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "skipNop", name: "skipNop", pkg: "regexp/syntax", typ: $funcType([$Uint32], [ptrType$5], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "StartCond", name: "StartCond", pkg: "", typ: $funcType([], [EmptyOp], false)}]; + InstOp.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$5.methods = [{prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([], [InstOp], false)}, {prop: "MatchRune", name: "MatchRune", pkg: "", typ: $funcType([$Int32], [$Bool], false)}, {prop: "MatchRunePos", name: "MatchRunePos", pkg: "", typ: $funcType([$Int32], [$Int], false)}, {prop: "MatchEmptyWidth", name: "MatchEmptyWidth", pkg: "", typ: $funcType([$Int32, $Int32], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$6.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ErrorCode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$7.methods = [{prop: "newRegexp", name: "newRegexp", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType], false)}, {prop: "reuse", name: "reuse", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "checkLimits", name: "checkLimits", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "checkSize", name: "checkSize", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "calcSize", name: "calcSize", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [$Int64], false)}, {prop: "checkHeight", name: "checkHeight", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "calcHeight", name: "calcHeight", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [$Int], false)}, {prop: "push", name: "push", pkg: "regexp/syntax", typ: $funcType([ptrType], [ptrType], false)}, {prop: "maybeConcat", name: "maybeConcat", pkg: "regexp/syntax", typ: $funcType([$Int32, Flags], [$Bool], false)}, {prop: "literal", name: "literal", pkg: "regexp/syntax", typ: $funcType([$Int32], [], false)}, {prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType], false)}, {prop: "repeat", name: "repeat", pkg: "regexp/syntax", typ: $funcType([Op, $Int, $Int, $String, $String, $String], [$String, $error], false)}, {prop: "concat", name: "concat", pkg: "regexp/syntax", typ: $funcType([], [ptrType], false)}, {prop: "alternate", name: "alternate", pkg: "regexp/syntax", typ: $funcType([], [ptrType], false)}, {prop: "collapse", name: "collapse", pkg: "regexp/syntax", typ: $funcType([sliceType$4, Op], [ptrType], false)}, {prop: "factor", name: "factor", pkg: "regexp/syntax", typ: $funcType([sliceType$4], [sliceType$4], false)}, {prop: "leadingString", name: "leadingString", pkg: "regexp/syntax", typ: $funcType([ptrType], [sliceType$1, Flags], false)}, {prop: "removeLeadingString", name: "removeLeadingString", pkg: "regexp/syntax", typ: $funcType([ptrType, $Int], [ptrType], false)}, {prop: "leadingRegexp", name: "leadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType], [ptrType], false)}, {prop: "removeLeadingRegexp", name: "removeLeadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [ptrType], false)}, {prop: "parseRepeat", name: "parseRepeat", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $Int, $String, $Bool], false)}, {prop: "parsePerlFlags", name: "parsePerlFlags", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}, {prop: "parseInt", name: "parseInt", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $String, $Bool], false)}, {prop: "parseVerticalBar", name: "parseVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "swapVerticalBar", name: "swapVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$Bool], false)}, {prop: "parseRightParen", name: "parseRightParen", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "parseEscape", name: "parseEscape", pkg: "regexp/syntax", typ: $funcType([$String], [$Int32, $String, $error], false)}, {prop: "parseClassChar", name: "parseClassChar", pkg: "regexp/syntax", typ: $funcType([$String, $String], [$Int32, $String, $error], false)}, {prop: "parsePerlClassEscape", name: "parsePerlClassEscape", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String], false)}, {prop: "parseNamedClass", name: "parseNamedClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String, $error], false)}, {prop: "appendGroup", name: "appendGroup", pkg: "regexp/syntax", typ: $funcType([sliceType$1, charGroup], [sliceType$1], false)}, {prop: "parseUnicodeClass", name: "parseUnicodeClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String, $error], false)}, {prop: "parseClass", name: "parseClass", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}]; + ranges.methods = [{prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + patchList.methods = [{prop: "patch", name: "patch", pkg: "regexp/syntax", typ: $funcType([ptrType$4, $Uint32], [], false)}, {prop: "append", name: "append", pkg: "regexp/syntax", typ: $funcType([ptrType$4, patchList], [patchList], false)}]; + ptrType$8.methods = [{prop: "init", name: "init", pkg: "regexp/syntax", typ: $funcType([], [], false)}, {prop: "compile", name: "compile", pkg: "regexp/syntax", typ: $funcType([ptrType], [frag], false)}, {prop: "inst", name: "inst", pkg: "regexp/syntax", typ: $funcType([InstOp], [frag], false)}, {prop: "nop", name: "nop", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "fail", name: "fail", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "cap", name: "cap", pkg: "regexp/syntax", typ: $funcType([$Uint32], [frag], false)}, {prop: "cat", name: "cat", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "alt", name: "alt", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "quest", name: "quest", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "loop", name: "loop", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "star", name: "star", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "plus", name: "plus", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "empty", name: "empty", pkg: "regexp/syntax", typ: $funcType([EmptyOp], [frag], false)}, {prop: "rune", name: "rune", pkg: "regexp/syntax", typ: $funcType([sliceType$1, Flags], [frag], false)}]; + Regexp.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: Op, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: Flags, tag: ""}, {prop: "Sub", name: "Sub", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "Sub0", name: "Sub0", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Rune0", name: "Rune0", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Min", name: "Min", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Max", name: "Max", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Cap", name: "Cap", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}]); + Prog.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]); + Inst.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: InstOp, tag: ""}, {prop: "Out", name: "Out", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Arg", name: "Arg", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType$1, tag: ""}]); + Error.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: ErrorCode, tag: ""}, {prop: "Expr", name: "Expr", embedded: false, exported: true, typ: $String, tag: ""}]); + parser.init("regexp/syntax", [{prop: "flags", name: "flags", embedded: false, exported: false, typ: Flags, tag: ""}, {prop: "stack", name: "stack", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "free", name: "free", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "numCap", name: "numCap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "wholeRegexp", name: "wholeRegexp", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tmpClass", name: "tmpClass", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "numRegexp", name: "numRegexp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "numRunes", name: "numRunes", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "repeats", name: "repeats", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: mapType$1, tag: ""}]); + charGroup.init("regexp/syntax", [{prop: "sign", name: "sign", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "class$1", name: "class", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); + ranges.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + patchList.init("regexp/syntax", [{prop: "head", name: "head", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tail", name: "tail", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + frag.init("regexp/syntax", [{prop: "i", name: "i", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: patchList, tag: ""}, {prop: "nullable", name: "nullable", embedded: false, exported: false, typ: $Bool, tag: ""}]); + compiler.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = sort.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + instOpNames = new sliceType(["InstAlt", "InstAltMatch", "InstCapture", "InstEmptyWidth", "InstMatch", "InstFail", "InstNop", "InstRune", "InstRune1", "InstRuneAny", "InstRuneAnyNotNL"]); + code1 = new sliceType$1([48, 57]); + code2 = new sliceType$1([9, 10, 12, 13, 32, 32]); + code3 = new sliceType$1([48, 57, 65, 90, 95, 95, 97, 122]); + perlGroup = $makeMap($String.keyFor, [{ k: "\\d", v: $clone(new charGroup.ptr(1, code1), charGroup) }, { k: "\\D", v: $clone(new charGroup.ptr(-1, code1), charGroup) }, { k: "\\s", v: $clone(new charGroup.ptr(1, code2), charGroup) }, { k: "\\S", v: $clone(new charGroup.ptr(-1, code2), charGroup) }, { k: "\\w", v: $clone(new charGroup.ptr(1, code3), charGroup) }, { k: "\\W", v: $clone(new charGroup.ptr(-1, code3), charGroup) }]); + code4 = new sliceType$1([48, 57, 65, 90, 97, 122]); + code5 = new sliceType$1([65, 90, 97, 122]); + code6 = new sliceType$1([0, 127]); + code7 = new sliceType$1([9, 9, 32, 32]); + code8 = new sliceType$1([0, 31, 127, 127]); + code9 = new sliceType$1([48, 57]); + code10 = new sliceType$1([33, 126]); + code11 = new sliceType$1([97, 122]); + code12 = new sliceType$1([32, 126]); + code13 = new sliceType$1([33, 47, 58, 64, 91, 96, 123, 126]); + code14 = new sliceType$1([9, 13, 32, 32]); + code15 = new sliceType$1([65, 90]); + code16 = new sliceType$1([48, 57, 65, 90, 95, 95, 97, 122]); + code17 = new sliceType$1([48, 57, 65, 70, 97, 102]); + posixGroup = $makeMap($String.keyFor, [{ k: "[:alnum:]", v: $clone(new charGroup.ptr(1, code4), charGroup) }, { k: "[:^alnum:]", v: $clone(new charGroup.ptr(-1, code4), charGroup) }, { k: "[:alpha:]", v: $clone(new charGroup.ptr(1, code5), charGroup) }, { k: "[:^alpha:]", v: $clone(new charGroup.ptr(-1, code5), charGroup) }, { k: "[:ascii:]", v: $clone(new charGroup.ptr(1, code6), charGroup) }, { k: "[:^ascii:]", v: $clone(new charGroup.ptr(-1, code6), charGroup) }, { k: "[:blank:]", v: $clone(new charGroup.ptr(1, code7), charGroup) }, { k: "[:^blank:]", v: $clone(new charGroup.ptr(-1, code7), charGroup) }, { k: "[:cntrl:]", v: $clone(new charGroup.ptr(1, code8), charGroup) }, { k: "[:^cntrl:]", v: $clone(new charGroup.ptr(-1, code8), charGroup) }, { k: "[:digit:]", v: $clone(new charGroup.ptr(1, code9), charGroup) }, { k: "[:^digit:]", v: $clone(new charGroup.ptr(-1, code9), charGroup) }, { k: "[:graph:]", v: $clone(new charGroup.ptr(1, code10), charGroup) }, { k: "[:^graph:]", v: $clone(new charGroup.ptr(-1, code10), charGroup) }, { k: "[:lower:]", v: $clone(new charGroup.ptr(1, code11), charGroup) }, { k: "[:^lower:]", v: $clone(new charGroup.ptr(-1, code11), charGroup) }, { k: "[:print:]", v: $clone(new charGroup.ptr(1, code12), charGroup) }, { k: "[:^print:]", v: $clone(new charGroup.ptr(-1, code12), charGroup) }, { k: "[:punct:]", v: $clone(new charGroup.ptr(1, code13), charGroup) }, { k: "[:^punct:]", v: $clone(new charGroup.ptr(-1, code13), charGroup) }, { k: "[:space:]", v: $clone(new charGroup.ptr(1, code14), charGroup) }, { k: "[:^space:]", v: $clone(new charGroup.ptr(-1, code14), charGroup) }, { k: "[:upper:]", v: $clone(new charGroup.ptr(1, code15), charGroup) }, { k: "[:^upper:]", v: $clone(new charGroup.ptr(-1, code15), charGroup) }, { k: "[:word:]", v: $clone(new charGroup.ptr(1, code16), charGroup) }, { k: "[:^word:]", v: $clone(new charGroup.ptr(-1, code16), charGroup) }, { k: "[:xdigit:]", v: $clone(new charGroup.ptr(1, code17), charGroup) }, { k: "[:^xdigit:]", v: $clone(new charGroup.ptr(-1, code17), charGroup) }]); + anyTable = new unicode.RangeTable.ptr(new sliceType$2([$clone(new unicode.Range16.ptr(0, 65535, 1), unicode.Range16)]), new sliceType$3([$clone(new unicode.Range32.ptr(65536, 1114111, 1), unicode.Range32)]), 0); + _Op_index_0 = $toNativeArray($kindUint8, [0, 7, 17, 24, 33, 45, 52, 61, 68, 77, 84, 96, 110, 117, 121, 125, 130, 136, 142, 151]); + anyRuneNotNL = new sliceType$1([0, 9, 11, 1114111]); + anyRune = new sliceType$1([0, 1114111]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["regexp"] = (function() { + var $pkg = {}, $init, bytes, nosync, io, syntax, sort, strconv, strings, unicode, utf8, Regexp, input, inputString, inputBytes, inputReader, onePassProg, onePassInst, queueOnePass, runeSlice, queue, entry, thread, machine, inputs, lazyFlag, onePassMachine, job, bitState, matchPool, specialBytes, onePassPool, arrayNoInts, bitStatePool, matchSize, noRune, noNext, anyRuneNotNL, anyRune, Compile, compile, minInputLen, MustCompile, quote, init, extract, onePassPrefix, onePassNext, iop, newQueue, mergeRuneSets, cleanupOnePass, onePassCopy, makeOnePass, compileOnePass, newLazyFlag, newOnePassMachine, freeOnePassMachine, newBitState, freeBitState, maxBitStateLen, shouldBacktrack; + bytes = $packages["bytes"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + io = $packages["io"]; + syntax = $packages["regexp/syntax"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Regexp = $newType(0, $kindStruct, "regexp.Regexp", true, "regexp", true, function(expr_, prog_, onepass_, numSubexp_, maxBitStateLen_, subexpNames_, prefix_, prefixBytes_, prefixRune_, prefixEnd_, mpool_, matchcap_, prefixComplete_, cond_, minInputLen_, longest_) { + this.$val = this; + if (arguments.length === 0) { + this.expr = ""; + this.prog = ptrType$1.nil; + this.onepass = ptrType$2.nil; + this.numSubexp = 0; + this.maxBitStateLen = 0; + this.subexpNames = sliceType$3.nil; + this.prefix = ""; + this.prefixBytes = sliceType$4.nil; + this.prefixRune = 0; + this.prefixEnd = 0; + this.mpool = 0; + this.matchcap = 0; + this.prefixComplete = false; + this.cond = 0; + this.minInputLen = 0; + this.longest = false; + return; + } + this.expr = expr_; + this.prog = prog_; + this.onepass = onepass_; + this.numSubexp = numSubexp_; + this.maxBitStateLen = maxBitStateLen_; + this.subexpNames = subexpNames_; + this.prefix = prefix_; + this.prefixBytes = prefixBytes_; + this.prefixRune = prefixRune_; + this.prefixEnd = prefixEnd_; + this.mpool = mpool_; + this.matchcap = matchcap_; + this.prefixComplete = prefixComplete_; + this.cond = cond_; + this.minInputLen = minInputLen_; + this.longest = longest_; + }); + input = $newType(8, $kindInterface, "regexp.input", true, "regexp", false, null); + inputString = $newType(0, $kindStruct, "regexp.inputString", true, "regexp", false, function(str_) { + this.$val = this; + if (arguments.length === 0) { + this.str = ""; + return; + } + this.str = str_; + }); + inputBytes = $newType(0, $kindStruct, "regexp.inputBytes", true, "regexp", false, function(str_) { + this.$val = this; + if (arguments.length === 0) { + this.str = sliceType$4.nil; + return; + } + this.str = str_; + }); + inputReader = $newType(0, $kindStruct, "regexp.inputReader", true, "regexp", false, function(r_, atEOT_, pos_) { + this.$val = this; + if (arguments.length === 0) { + this.r = $ifaceNil; + this.atEOT = false; + this.pos = 0; + return; + } + this.r = r_; + this.atEOT = atEOT_; + this.pos = pos_; + }); + onePassProg = $newType(0, $kindStruct, "regexp.onePassProg", true, "regexp", false, function(Inst_, Start_, NumCap_) { + this.$val = this; + if (arguments.length === 0) { + this.Inst = sliceType$12.nil; + this.Start = 0; + this.NumCap = 0; + return; + } + this.Inst = Inst_; + this.Start = Start_; + this.NumCap = NumCap_; + }); + onePassInst = $newType(0, $kindStruct, "regexp.onePassInst", true, "regexp", false, function(Inst_, Next_) { + this.$val = this; + if (arguments.length === 0) { + this.Inst = new syntax.Inst.ptr(0, 0, 0, sliceType$1.nil); + this.Next = sliceType$2.nil; + return; + } + this.Inst = Inst_; + this.Next = Next_; + }); + queueOnePass = $newType(0, $kindStruct, "regexp.queueOnePass", true, "regexp", false, function(sparse_, dense_, size_, nextIndex_) { + this.$val = this; + if (arguments.length === 0) { + this.sparse = sliceType$2.nil; + this.dense = sliceType$2.nil; + this.size = 0; + this.nextIndex = 0; + return; + } + this.sparse = sparse_; + this.dense = dense_; + this.size = size_; + this.nextIndex = nextIndex_; + }); + runeSlice = $newType(12, $kindSlice, "regexp.runeSlice", true, "regexp", false, null); + queue = $newType(0, $kindStruct, "regexp.queue", true, "regexp", false, function(sparse_, dense_) { + this.$val = this; + if (arguments.length === 0) { + this.sparse = sliceType$2.nil; + this.dense = sliceType$5.nil; + return; + } + this.sparse = sparse_; + this.dense = dense_; + }); + entry = $newType(0, $kindStruct, "regexp.entry", true, "regexp", false, function(pc_, t_) { + this.$val = this; + if (arguments.length === 0) { + this.pc = 0; + this.t = ptrType$4.nil; + return; + } + this.pc = pc_; + this.t = t_; + }); + thread = $newType(0, $kindStruct, "regexp.thread", true, "regexp", false, function(inst_, cap_) { + this.$val = this; + if (arguments.length === 0) { + this.inst = ptrType$10.nil; + this.cap = sliceType$7.nil; + return; + } + this.inst = inst_; + this.cap = cap_; + }); + machine = $newType(0, $kindStruct, "regexp.machine", true, "regexp", false, function(re_, p_, q0_, q1_, pool_, matched_, matchcap_, inputs_) { + this.$val = this; + if (arguments.length === 0) { + this.re = ptrType.nil; + this.p = ptrType$1.nil; + this.q0 = new queue.ptr(sliceType$2.nil, sliceType$5.nil); + this.q1 = new queue.ptr(sliceType$2.nil, sliceType$5.nil); + this.pool = sliceType$6.nil; + this.matched = false; + this.matchcap = sliceType$7.nil; + this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); + return; + } + this.re = re_; + this.p = p_; + this.q0 = q0_; + this.q1 = q1_; + this.pool = pool_; + this.matched = matched_; + this.matchcap = matchcap_; + this.inputs = inputs_; + }); + inputs = $newType(0, $kindStruct, "regexp.inputs", true, "regexp", false, function(bytes_, string_, reader_) { + this.$val = this; + if (arguments.length === 0) { + this.bytes = new inputBytes.ptr(sliceType$4.nil); + this.string = new inputString.ptr(""); + this.reader = new inputReader.ptr($ifaceNil, false, 0); + return; + } + this.bytes = bytes_; + this.string = string_; + this.reader = reader_; + }); + lazyFlag = $newType(8, $kindUint64, "regexp.lazyFlag", true, "regexp", false, null); + onePassMachine = $newType(0, $kindStruct, "regexp.onePassMachine", true, "regexp", false, function(inputs_, matchcap_) { + this.$val = this; + if (arguments.length === 0) { + this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); + this.matchcap = sliceType$7.nil; + return; + } + this.inputs = inputs_; + this.matchcap = matchcap_; + }); + job = $newType(0, $kindStruct, "regexp.job", true, "regexp", false, function(pc_, arg_, pos_) { + this.$val = this; + if (arguments.length === 0) { + this.pc = 0; + this.arg = false; + this.pos = 0; + return; + } + this.pc = pc_; + this.arg = arg_; + this.pos = pos_; + }); + bitState = $newType(0, $kindStruct, "regexp.bitState", true, "regexp", false, function(end_, cap_, matchcap_, jobs_, visited_, inputs_) { + this.$val = this; + if (arguments.length === 0) { + this.end = 0; + this.cap = sliceType$7.nil; + this.matchcap = sliceType$7.nil; + this.jobs = sliceType$15.nil; + this.visited = sliceType$2.nil; + this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); + return; + } + this.end = end_; + this.cap = cap_; + this.matchcap = matchcap_; + this.jobs = jobs_; + this.visited = visited_; + this.inputs = inputs_; + }); + $pkg.Regexp = Regexp; + $pkg.input = input; + $pkg.inputString = inputString; + $pkg.inputBytes = inputBytes; + $pkg.inputReader = inputReader; + $pkg.onePassProg = onePassProg; + $pkg.onePassInst = onePassInst; + $pkg.queueOnePass = queueOnePass; + $pkg.runeSlice = runeSlice; + $pkg.queue = queue; + $pkg.entry = entry; + $pkg.thread = thread; + $pkg.machine = machine; + $pkg.inputs = inputs; + $pkg.lazyFlag = lazyFlag; + $pkg.onePassMachine = onePassMachine; + $pkg.job = job; + $pkg.bitState = bitState; + $pkg.$finishSetup = function() { + $ptrType(Regexp).prototype.String = function String() { + var re; + re = this; + return re.expr; + }; + $ptrType(Regexp).prototype.Copy = function Copy() { + var re, re2; + re = this; + re2 = $clone(re, Regexp); + return re2; + }; + Compile = function Compile$1(expr) { + var {$24r, _r, expr, $s, $r, $c} = $restore(this, {expr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = compile(expr, 212, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Compile$1, $c: true, $r, $24r, _r, expr, $s};return $f; + }; + $pkg.Compile = Compile; + $ptrType(Regexp).prototype.Longest = function Longest() { + var re; + re = this; + re.longest = true; + }; + compile = function compile$1(expr, mode, longest) { + var {_r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, capNames, err, expr, i, longest, matchcap, maxCap, mode, n, prog, re, regexp, $s, $r, $c} = $restore(this, {expr, mode, longest}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = syntax.Parse(expr, mode); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + re = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType.nil, err]; + } + maxCap = re.MaxCap(); + capNames = re.CapNames(); + re = re.Simplify(); + _tuple$1 = syntax.Compile(re); + prog = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType.nil, err]; + } + matchcap = prog.NumCap; + if (matchcap < 2) { + matchcap = 2; + } + _r$1 = compileOnePass(prog); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + regexp = new Regexp.ptr(expr, prog, _r$1, maxCap, 0, capNames, "", sliceType$4.nil, 0, 0, 0, matchcap, false, prog.StartCond(), minInputLen(re), longest); + if (regexp.onepass === ptrType$2.nil) { + _tuple$2 = prog.Prefix(); + regexp.prefix = _tuple$2[0]; + regexp.prefixComplete = _tuple$2[1]; + regexp.maxBitStateLen = maxBitStateLen(prog); + } else { + _tuple$3 = onePassPrefix(prog); + regexp.prefix = _tuple$3[0]; + regexp.prefixComplete = _tuple$3[1]; + regexp.prefixEnd = _tuple$3[2]; + } + if (!(regexp.prefix === "")) { + regexp.prefixBytes = (new sliceType$4($stringToBytes(regexp.prefix))); + _tuple$4 = utf8.DecodeRuneInString(regexp.prefix); + regexp.prefixRune = _tuple$4[0]; + } + n = prog.Inst.$length; + i = 0; + while (true) { + if (!(!((((i < 0 || i >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[i]) === 0)) && ((i < 0 || i >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[i]) < n)) { break; } + i = i + (1) >> 0; + } + regexp.mpool = i; + $s = -1; return [regexp, $ifaceNil]; + /* */ } return; } var $f = {$blk: compile$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, capNames, err, expr, i, longest, matchcap, maxCap, mode, n, prog, re, regexp, $s};return $f; + }; + $ptrType(Regexp).prototype.get = function get() { + var {_i, _r, _ref, _tuple, m, n, ok, re, t, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + _r = (x = re.mpool, ((x < 0 || x >= matchPool.length) ? ($throwRuntimeError("index out of range"), undefined) : matchPool[x])).Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$3, true); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = new machine.ptr(ptrType.nil, ptrType$1.nil, new queue.ptr(sliceType$2.nil, sliceType$5.nil), new queue.ptr(sliceType$2.nil, sliceType$5.nil), sliceType$6.nil, false, sliceType$7.nil, new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0))); + } + m.re = re; + m.p = re.prog; + if (m.matchcap.$capacity < re.matchcap) { + m.matchcap = $makeSlice(sliceType$7, re.matchcap); + _ref = m.pool; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + t.cap = $makeSlice(sliceType$7, re.matchcap); + _i++; + } + } + n = (x$1 = re.mpool, ((x$1 < 0 || x$1 >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[x$1])); + if (n === 0) { + n = re.prog.Inst.$length; + } + if (m.q0.sparse.$length < n) { + queue.copy(m.q0, new queue.ptr($makeSlice(sliceType$2, n), $makeSlice(sliceType$5, 0, n))); + queue.copy(m.q1, new queue.ptr($makeSlice(sliceType$2, n), $makeSlice(sliceType$5, 0, n))); + } + $s = -1; return m; + /* */ } return; } var $f = {$blk: get, $c: true, $r, _i, _r, _ref, _tuple, m, n, ok, re, t, x, x$1, $s};return $f; + }; + $ptrType(Regexp).prototype.put = function put(m) { + var m, re, x; + re = this; + m.re = ptrType.nil; + m.p = ptrType$1.nil; + m.inputs.clear(); + (x = re.mpool, ((x < 0 || x >= matchPool.length) ? ($throwRuntimeError("index out of range"), undefined) : matchPool[x])).Put(m); + }; + minInputLen = function minInputLen$1(re) { + var _1, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, l, l$1, l$2, lnext, r, re, sub, sub$1, x, x$1, x$2; + _1 = re.Op; + if ((_1 === (6)) || (_1 === (5)) || (_1 === (4))) { + return 1; + } else if (_1 === (3)) { + l = 0; + _ref = re.Rune; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (r === 65533) { + l = l + (1) >> 0; + } else { + l = l + (utf8.RuneLen(r)) >> 0; + } + _i++; + } + return l; + } else if ((_1 === (13)) || (_1 === (15))) { + return minInputLen((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); + } else if (_1 === (17)) { + return $imul(re.Min, minInputLen((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])))); + } else if (_1 === (18)) { + l$1 = 0; + _ref$1 = re.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + sub = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + l$1 = l$1 + (minInputLen(sub)) >> 0; + _i$1++; + } + return l$1; + } else if (_1 === (19)) { + l$2 = minInputLen((x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))); + lnext = 0; + _ref$2 = $subslice(re.Sub, 1); + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + sub$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + lnext = minInputLen(sub$1); + if (lnext < l$2) { + l$2 = lnext; + } + _i$2++; + } + return l$2; + } else { + return 0; + } + }; + MustCompile = function MustCompile$1(str) { + var {_r, _r$1, _tuple, err, regexp, str, $s, $r, $c} = $restore(this, {str}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = Compile(str); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + regexp = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$1 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String("regexp: Compile(" + quote(str) + "): " + _r$1)); + /* } */ case 3: + $s = -1; return regexp; + /* */ } return; } var $f = {$blk: MustCompile$1, $c: true, $r, _r, _r$1, _tuple, err, regexp, str, $s};return $f; + }; + $pkg.MustCompile = MustCompile; + quote = function quote$1(s) { + var s; + if (strconv.CanBackquote(s)) { + return "`" + s + "`"; + } + return strconv.Quote(s); + }; + $ptrType(Regexp).prototype.NumSubexp = function NumSubexp() { + var re; + re = this; + return re.numSubexp; + }; + $ptrType(Regexp).prototype.SubexpNames = function SubexpNames() { + var re; + re = this; + return re.subexpNames; + }; + $ptrType(Regexp).prototype.SubexpIndex = function SubexpIndex(name) { + var _i, _ref, i, name, re, s; + re = this; + if (!(name === "")) { + _ref = re.subexpNames; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (name === s) { + return i; + } + _i++; + } + } + return -1; + }; + $ptrType(inputString).prototype.step = function step(pos) { + var c, i, pos; + i = this; + if (pos < i.str.length) { + c = i.str.charCodeAt(pos); + if (c < 128) { + return [((c >> 0)), 1]; + } + return utf8.DecodeRuneInString($substring(i.str, pos)); + } + return [-1, 0]; + }; + $ptrType(inputString).prototype.canCheckPrefix = function canCheckPrefix() { + var i; + i = this; + return true; + }; + $ptrType(inputString).prototype.hasPrefix = function hasPrefix(re) { + var i, re; + i = this; + return strings.HasPrefix(i.str, re.prefix); + }; + $ptrType(inputString).prototype.index = function index(re, pos) { + var i, pos, re; + i = this; + return strings.Index($substring(i.str, pos), re.prefix); + }; + $ptrType(inputString).prototype.context = function context(pos) { + var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2; + i = this; + _tmp = -1; + _tmp$1 = -1; + r1 = _tmp; + r2 = _tmp$1; + if ((((pos - 1 >> 0) >>> 0)) < ((i.str.length >>> 0))) { + r1 = ((i.str.charCodeAt((pos - 1 >> 0)) >> 0)); + if (r1 >= 128) { + _tuple = utf8.DecodeLastRuneInString($substring(i.str, 0, pos)); + r1 = _tuple[0]; + } + } + if (((pos >>> 0)) < ((i.str.length >>> 0))) { + r2 = ((i.str.charCodeAt(pos) >> 0)); + if (r2 >= 128) { + _tuple$1 = utf8.DecodeRuneInString($substring(i.str, pos)); + r2 = _tuple$1[0]; + } + } + return newLazyFlag(r1, r2); + }; + $ptrType(inputBytes).prototype.step = function step$1(pos) { + var c, i, pos, x; + i = this; + if (pos < i.str.$length) { + c = (x = i.str, ((pos < 0 || pos >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pos])); + if (c < 128) { + return [((c >> 0)), 1]; + } + return utf8.DecodeRune($subslice(i.str, pos)); + } + return [-1, 0]; + }; + $ptrType(inputBytes).prototype.canCheckPrefix = function canCheckPrefix$1() { + var i; + i = this; + return true; + }; + $ptrType(inputBytes).prototype.hasPrefix = function hasPrefix$1(re) { + var i, re; + i = this; + return bytes.HasPrefix(i.str, re.prefixBytes); + }; + $ptrType(inputBytes).prototype.index = function index$1(re, pos) { + var i, pos, re; + i = this; + return bytes.Index($subslice(i.str, pos), re.prefixBytes); + }; + $ptrType(inputBytes).prototype.context = function context$1(pos) { + var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2, x, x$1, x$2; + i = this; + _tmp = -1; + _tmp$1 = -1; + r1 = _tmp; + r2 = _tmp$1; + if ((((pos - 1 >> 0) >>> 0)) < ((i.str.$length >>> 0))) { + r1 = (((x = i.str, x$1 = pos - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0)); + if (r1 >= 128) { + _tuple = utf8.DecodeLastRune($subslice(i.str, 0, pos)); + r1 = _tuple[0]; + } + } + if (((pos >>> 0)) < ((i.str.$length >>> 0))) { + r2 = (((x$2 = i.str, ((pos < 0 || pos >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pos])) >> 0)); + if (r2 >= 128) { + _tuple$1 = utf8.DecodeRune($subslice(i.str, pos)); + r2 = _tuple$1[0]; + } + } + return newLazyFlag(r1, r2); + }; + $ptrType(inputReader).prototype.step = function step$2(pos) { + var {_r, _tuple, err, i, pos, r, w, $s, $r, $c} = $restore(this, {pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = this; + if (!i.atEOT && !((pos === i.pos))) { + $s = -1; return [-1, 0]; + } + _r = i.r.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + w = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + i.atEOT = true; + $s = -1; return [-1, 0]; + } + i.pos = i.pos + (w) >> 0; + $s = -1; return [r, w]; + /* */ } return; } var $f = {$blk: step$2, $c: true, $r, _r, _tuple, err, i, pos, r, w, $s};return $f; + }; + $ptrType(inputReader).prototype.canCheckPrefix = function canCheckPrefix$2() { + var i; + i = this; + return false; + }; + $ptrType(inputReader).prototype.hasPrefix = function hasPrefix$2(re) { + var i, re; + i = this; + return false; + }; + $ptrType(inputReader).prototype.index = function index$2(re, pos) { + var i, pos, re; + i = this; + return -1; + }; + $ptrType(inputReader).prototype.context = function context$2(pos) { + var i, pos; + i = this; + return new lazyFlag(0, 0); + }; + $ptrType(Regexp).prototype.LiteralPrefix = function LiteralPrefix() { + var _tmp, _tmp$1, complete, prefix, re; + prefix = ""; + complete = false; + re = this; + _tmp = re.prefix; + _tmp$1 = re.prefixComplete; + prefix = _tmp; + complete = _tmp$1; + return [prefix, complete]; + }; + $ptrType(Regexp).prototype.MatchReader = function MatchReader$1(r) { + var {$24r, _r, r, re, $s, $r, $c} = $restore(this, {r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doMatch(r, sliceType$4.nil, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: MatchReader$1, $c: true, $r, $24r, _r, r, re, $s};return $f; + }; + $ptrType(Regexp).prototype.MatchString = function MatchString$1(s) { + var {$24r, _r, re, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doMatch($ifaceNil, sliceType$4.nil, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: MatchString$1, $c: true, $r, $24r, _r, re, s, $s};return $f; + }; + $ptrType(Regexp).prototype.Match = function Match$1(b) { + var {$24r, _r, b, re, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doMatch($ifaceNil, b, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Match$1, $c: true, $r, $24r, _r, b, re, $s};return $f; + }; + $ptrType(Regexp).prototype.ReplaceAllString = function ReplaceAllString(src, repl) { + var {_r, b, n, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = [re]; + repl = [repl]; + src = [src]; + re[0] = this; + n = 2; + if (strings.Contains(repl[0], "$")) { + n = $imul(2, ((re[0].numSubexp + 1 >> 0))); + } + _r = re[0].replaceAll(sliceType$4.nil, src[0], n, (function(re, repl, src) { return function Regexp·ReplaceAllString·func1(dst, match) { + var dst, match; + return re[0].expand(dst, repl[0], sliceType$4.nil, src[0], match); + }; })(re, repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return ($bytesToString(b)); + /* */ } return; } var $f = {$blk: ReplaceAllString, $c: true, $r, _r, b, n, re, repl, src, $s};return $f; + }; + $ptrType(Regexp).prototype.ReplaceAllLiteralString = function ReplaceAllLiteralString(src, repl) { + var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + repl = [repl]; + re = this; + _r = re.replaceAll(sliceType$4.nil, src, 2, (function(repl) { return function Regexp·ReplaceAllLiteralString·func1(dst, match) { + var dst, match; + return $appendSlice(dst, repl[0]); + }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = ($bytesToString(_r)); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ReplaceAllLiteralString, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; + }; + $ptrType(Regexp).prototype.ReplaceAllStringFunc = function ReplaceAllStringFunc(src, repl) { + var {_r, b, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + repl = [repl]; + src = [src]; + re = this; + _r = re.replaceAll(sliceType$4.nil, src[0], 2, (function(repl, src) { return function Regexp·ReplaceAllStringFunc·func1(dst, match) { + var {$24r, _arg, _arg$1, _r, dst, match, $s, $r, $c} = $restore(this, {dst, match}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = dst; + _r = repl[0]($substring(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $24r = $appendSlice(_arg, _arg$1); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Regexp·ReplaceAllStringFunc·func1, $c: true, $r, $24r, _arg, _arg$1, _r, dst, match, $s};return $f; + }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return ($bytesToString(b)); + /* */ } return; } var $f = {$blk: ReplaceAllStringFunc, $c: true, $r, _r, b, re, repl, src, $s};return $f; + }; + $ptrType(Regexp).prototype.replaceAll = function replaceAll(bsrc, src, nmatch, repl) { + var {_r, _r$1, _tuple, _tuple$1, a, bsrc, buf, dstCap, endPos, lastMatchEnd, nmatch, re, repl, searchPos, src, width, $s, $r, $c} = $restore(this, {bsrc, src, nmatch, repl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + lastMatchEnd = 0; + searchPos = 0; + buf = sliceType$4.nil; + endPos = 0; + if (!(bsrc === sliceType$4.nil)) { + endPos = bsrc.$length; + } else { + endPos = src.length; + } + if (nmatch > re.prog.NumCap) { + nmatch = re.prog.NumCap; + } + dstCap = arrayType$3.zero(); + /* while (true) { */ case 1: + /* if (!(searchPos <= endPos)) { break; } */ if(!(searchPos <= endPos)) { $s = 2; continue; } + _r = re.doExecute($ifaceNil, bsrc, src, searchPos, nmatch, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a.$length === 0) { + /* break; */ $s = 2; continue; + } + if (!(bsrc === sliceType$4.nil)) { + buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); + } else { + buf = $appendSlice(buf, $substring(src, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); + } + /* */ if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { */ case 4: + _r$1 = repl(buf, a); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + buf = _r$1; + /* } */ case 5: + lastMatchEnd = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); + width = 0; + if (!(bsrc === sliceType$4.nil)) { + _tuple = utf8.DecodeRune($subslice(bsrc, searchPos)); + width = _tuple[1]; + } else { + _tuple$1 = utf8.DecodeRuneInString($substring(src, searchPos)); + width = _tuple$1[1]; + } + if ((searchPos + width >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { + searchPos = searchPos + (width) >> 0; + } else if ((searchPos + 1 >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { + searchPos = searchPos + (1) >> 0; + } else { + searchPos = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); + } + $s = 1; continue; + case 2: + if (!(bsrc === sliceType$4.nil)) { + buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd)); + } else { + buf = $appendSlice(buf, $substring(src, lastMatchEnd)); + } + $s = -1; return buf; + /* */ } return; } var $f = {$blk: replaceAll, $c: true, $r, _r, _r$1, _tuple, _tuple$1, a, bsrc, buf, dstCap, endPos, lastMatchEnd, nmatch, re, repl, searchPos, src, width, $s};return $f; + }; + $ptrType(Regexp).prototype.ReplaceAll = function ReplaceAll(src, repl) { + var {_r, b, n, re, repl, src, srepl, $s, $r, $c} = $restore(this, {src, repl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = [re]; + repl = [repl]; + src = [src]; + srepl = [srepl]; + re[0] = this; + n = 2; + if (bytes.IndexByte(repl[0], 36) >= 0) { + n = $imul(2, ((re[0].numSubexp + 1 >> 0))); + } + srepl[0] = ""; + _r = re[0].replaceAll(src[0], "", n, (function(re, repl, src, srepl) { return function Regexp·ReplaceAll·func1(dst, match) { + var dst, match; + if (!((srepl[0].length === repl[0].$length))) { + srepl[0] = ($bytesToString(repl[0])); + } + return re[0].expand(dst, srepl[0], src[0], "", match); + }; })(re, repl, src, srepl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return b; + /* */ } return; } var $f = {$blk: ReplaceAll, $c: true, $r, _r, b, n, re, repl, src, srepl, $s};return $f; + }; + $ptrType(Regexp).prototype.ReplaceAllLiteral = function ReplaceAllLiteral(src, repl) { + var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + repl = [repl]; + re = this; + _r = re.replaceAll(src, "", 2, (function(repl) { return function Regexp·ReplaceAllLiteral·func1(dst, match) { + var dst, match; + return $appendSlice(dst, repl[0]); + }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ReplaceAllLiteral, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; + }; + $ptrType(Regexp).prototype.ReplaceAllFunc = function ReplaceAllFunc(src, repl) { + var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + repl = [repl]; + src = [src]; + re = this; + _r = re.replaceAll(src[0], "", 2, (function(repl, src) { return function Regexp·ReplaceAllFunc·func1(dst, match) { + var {$24r, _arg, _arg$1, _r, dst, match, $s, $r, $c} = $restore(this, {dst, match}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = dst; + _r = repl[0]($subslice(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $24r = $appendSlice(_arg, _arg$1); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Regexp·ReplaceAllFunc·func1, $c: true, $r, $24r, _arg, _arg$1, _r, dst, match, $s};return $f; + }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ReplaceAllFunc, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; + }; + init = function init$1() { + var _i, _index, _q, _r, _ref, b, y; + _ref = (new sliceType$4($stringToBytes("\\.+*?()|[]{}^$"))); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _index = (_r = b % 16, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + ((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index] = ((((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index]) | (((y = ((_q = b / 16, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) << 24 >>> 24))) >>> 0)); + _i++; + } + }; + $ptrType(Regexp).prototype.pad = function pad(a) { + var a, n, re; + re = this; + if (a === sliceType$7.nil) { + return sliceType$7.nil; + } + n = $imul(((1 + re.numSubexp >> 0)), 2); + while (true) { + if (!(a.$length < n)) { break; } + a = $append(a, -1); + } + return a; + }; + $ptrType(Regexp).prototype.allMatches = function allMatches(s, b, n, deliver) { + var {_r, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, accept, b, deliver, end, i, ib, is, matches, n, pos, prevMatchEnd, re, s, width, $s, $r, $c} = $restore(this, {s, b, n, deliver}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + end = 0; + if (b === sliceType$4.nil) { + end = s.length; + } else { + end = b.$length; + } + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = -1; + pos = _tmp; + i = _tmp$1; + prevMatchEnd = _tmp$2; + /* while (true) { */ case 1: + /* if (!(i < n && pos <= end)) { break; } */ if(!(i < n && pos <= end)) { $s = 2; continue; } + _r = re.doExecute($ifaceNil, b, s, pos, re.prog.NumCap, sliceType$7.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + matches = _r; + if (matches.$length === 0) { + /* break; */ $s = 2; continue; + } + accept = true; + if ((1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]) === pos) { + if ((0 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 0]) === prevMatchEnd) { + accept = false; + } + width = 0; + if (b === sliceType$4.nil) { + is = new inputString.ptr(s); + _tuple = is.step(pos); + width = _tuple[1]; + } else { + ib = new inputBytes.ptr(b); + _tuple$1 = ib.step(pos); + width = _tuple$1[1]; + } + if (width > 0) { + pos = pos + (width) >> 0; + } else { + pos = end + 1 >> 0; + } + } else { + pos = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); + } + prevMatchEnd = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); + /* */ if (accept) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (accept) { */ case 4: + $r = deliver(re.pad(matches)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + /* } */ case 5: + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: allMatches, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, accept, b, deliver, end, i, ib, is, matches, n, pos, prevMatchEnd, re, s, width, $s};return $f; + }; + $ptrType(Regexp).prototype.Find = function Find(b) { + var {_r, a, b, dstCap, re, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + dstCap = arrayType$3.zero(); + _r = re.doExecute($ifaceNil, b, "", 0, 2, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + $s = -1; return sliceType$4.nil; + } + $s = -1; return $subslice(b, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); + /* */ } return; } var $f = {$blk: Find, $c: true, $r, _r, a, b, dstCap, re, $s};return $f; + }; + $ptrType(Regexp).prototype.FindIndex = function FindIndex(b) { + var {_r, a, b, loc, re, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + loc = sliceType$7.nil; + re = this; + _r = re.doExecute($ifaceNil, b, "", 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + loc = sliceType$7.nil; + $s = -1; return loc; + } + loc = $subslice(a, 0, 2); + $s = -1; return loc; + /* */ } return; } var $f = {$blk: FindIndex, $c: true, $r, _r, a, b, loc, re, $s};return $f; + }; + $ptrType(Regexp).prototype.FindString = function FindString(s) { + var {_r, a, dstCap, re, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + dstCap = arrayType$3.zero(); + _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, 2, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + $s = -1; return ""; + } + $s = -1; return $substring(s, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); + /* */ } return; } var $f = {$blk: FindString, $c: true, $r, _r, a, dstCap, re, s, $s};return $f; + }; + $ptrType(Regexp).prototype.FindStringIndex = function FindStringIndex(s) { + var {_r, a, loc, re, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + loc = sliceType$7.nil; + re = this; + _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + loc = sliceType$7.nil; + $s = -1; return loc; + } + loc = $subslice(a, 0, 2); + $s = -1; return loc; + /* */ } return; } var $f = {$blk: FindStringIndex, $c: true, $r, _r, a, loc, re, s, $s};return $f; + }; + $ptrType(Regexp).prototype.FindReaderIndex = function FindReaderIndex(r) { + var {_r, a, loc, r, re, $s, $r, $c} = $restore(this, {r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + loc = sliceType$7.nil; + re = this; + _r = re.doExecute(r, sliceType$4.nil, "", 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + loc = sliceType$7.nil; + $s = -1; return loc; + } + loc = $subslice(a, 0, 2); + $s = -1; return loc; + /* */ } return; } var $f = {$blk: FindReaderIndex, $c: true, $r, _r, a, loc, r, re, $s};return $f; + }; + $ptrType(Regexp).prototype.FindSubmatch = function FindSubmatch(b) { + var {_i, _r, _ref, a, b, dstCap, i, re, ret, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + dstCap = arrayType$4.zero(); + _r = re.doExecute($ifaceNil, b, "", 0, re.prog.NumCap, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + $s = -1; return sliceType$8.nil; + } + ret = $makeSlice(sliceType$8, (1 + re.numSubexp >> 0)); + _ref = ret; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { + ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $subslice(b, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])), (x$3 = ($imul(2, i)) + 1 >> 0, ((x$3 < 0 || x$3 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$3])))); + } + _i++; + } + $s = -1; return ret; + /* */ } return; } var $f = {$blk: FindSubmatch, $c: true, $r, _i, _r, _ref, a, b, dstCap, i, re, ret, x, x$1, x$2, x$3, $s};return $f; + }; + $ptrType(Regexp).prototype.Expand = function Expand(dst, template, src, match) { + var dst, match, re, src, template; + re = this; + return re.expand(dst, ($bytesToString(template)), src, "", match); + }; + $ptrType(Regexp).prototype.ExpandString = function ExpandString(dst, template, src, match) { + var dst, match, re, src, template; + re = this; + return re.expand(dst, template, sliceType$4.nil, src, match); + }; + $ptrType(Regexp).prototype.expand = function expand(dst, template, bsrc, src, match) { + var _i, _ref, _tuple, _tuple$1, after, before, bsrc, dst, i, match, name, namei, num, ok, re, rest, src, template, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + re = this; + while (true) { + if (!(template.length > 0)) { break; } + _tuple = strings.Cut(template, "$"); + before = _tuple[0]; + after = _tuple[1]; + ok = _tuple[2]; + if (!ok) { + break; + } + dst = $appendSlice(dst, before); + template = after; + if (!(template === "") && (template.charCodeAt(0) === 36)) { + dst = $append(dst, 36); + template = $substring(template, 1); + continue; + } + _tuple$1 = extract(template); + name = _tuple$1[0]; + num = _tuple$1[1]; + rest = _tuple$1[2]; + ok = _tuple$1[3]; + if (!ok) { + dst = $append(dst, 36); + continue; + } + template = rest; + if (num >= 0) { + if ((($imul(2, num)) + 1 >> 0) < match.$length && (x = $imul(2, num), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { + if (!(bsrc === sliceType$4.nil)) { + dst = $appendSlice(dst, $subslice(bsrc, (x$1 = $imul(2, num), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, num)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); + } else { + dst = $appendSlice(dst, $substring(src, (x$3 = $imul(2, num), ((x$3 < 0 || x$3 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$3])), (x$4 = ($imul(2, num)) + 1 >> 0, ((x$4 < 0 || x$4 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$4])))); + } + } + } else { + _ref = re.subexpNames; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + namei = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (name === namei && (($imul(2, i)) + 1 >> 0) < match.$length && (x$5 = $imul(2, i), ((x$5 < 0 || x$5 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$5])) >= 0) { + if (!(bsrc === sliceType$4.nil)) { + dst = $appendSlice(dst, $subslice(bsrc, (x$6 = $imul(2, i), ((x$6 < 0 || x$6 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$6])), (x$7 = ($imul(2, i)) + 1 >> 0, ((x$7 < 0 || x$7 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$7])))); + } else { + dst = $appendSlice(dst, $substring(src, (x$8 = $imul(2, i), ((x$8 < 0 || x$8 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$8])), (x$9 = ($imul(2, i)) + 1 >> 0, ((x$9 < 0 || x$9 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$9])))); + } + break; + } + _i++; + } + } + } + dst = $appendSlice(dst, template); + return dst; + }; + extract = function extract$1(str) { + var _tuple, brace, i, i$1, name, num, ok, rest, rune, size, str; + name = ""; + num = 0; + rest = ""; + ok = false; + if (str === "") { + return [name, num, rest, ok]; + } + brace = false; + if (str.charCodeAt(0) === 123) { + brace = true; + str = $substring(str, 1); + } + i = 0; + while (true) { + if (!(i < str.length)) { break; } + _tuple = utf8.DecodeRuneInString($substring(str, i)); + rune = _tuple[0]; + size = _tuple[1]; + if (!unicode.IsLetter(rune) && !unicode.IsDigit(rune) && !((rune === 95))) { + break; + } + i = i + (size) >> 0; + } + if (i === 0) { + return [name, num, rest, ok]; + } + name = $substring(str, 0, i); + if (brace) { + if (i >= str.length || !((str.charCodeAt(i) === 125))) { + return [name, num, rest, ok]; + } + i = i + (1) >> 0; + } + num = 0; + i$1 = 0; + while (true) { + if (!(i$1 < name.length)) { break; } + if (name.charCodeAt(i$1) < 48 || 57 < name.charCodeAt(i$1) || num >= 100000000) { + num = -1; + break; + } + num = (($imul(num, 10)) + ((name.charCodeAt(i$1) >> 0)) >> 0) - 48 >> 0; + i$1 = i$1 + (1) >> 0; + } + if ((name.charCodeAt(0) === 48) && name.length > 1) { + num = -1; + } + rest = $substring(str, i); + ok = true; + return [name, num, rest, ok]; + }; + $ptrType(Regexp).prototype.FindSubmatchIndex = function FindSubmatchIndex(b) { + var {$24r, _r, _r$1, b, re, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doExecute($ifaceNil, b, "", 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindSubmatchIndex, $c: true, $r, $24r, _r, _r$1, b, re, $s};return $f; + }; + $ptrType(Regexp).prototype.FindStringSubmatch = function FindStringSubmatch(s) { + var {_i, _r, _ref, a, dstCap, i, re, ret, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + dstCap = arrayType$4.zero(); + _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, re.prog.NumCap, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + $s = -1; return sliceType$3.nil; + } + ret = $makeSlice(sliceType$3, (1 + re.numSubexp >> 0)); + _ref = ret; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { + ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $substring(s, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])))); + } + _i++; + } + $s = -1; return ret; + /* */ } return; } var $f = {$blk: FindStringSubmatch, $c: true, $r, _i, _r, _ref, a, dstCap, i, re, ret, s, x, x$1, x$2, $s};return $f; + }; + $ptrType(Regexp).prototype.FindStringSubmatchIndex = function FindStringSubmatchIndex(s) { + var {$24r, _r, _r$1, re, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindStringSubmatchIndex, $c: true, $r, $24r, _r, _r$1, re, s, $s};return $f; + }; + $ptrType(Regexp).prototype.FindReaderSubmatchIndex = function FindReaderSubmatchIndex(r) { + var {$24r, _r, _r$1, r, re, $s, $r, $c} = $restore(this, {r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doExecute(r, sliceType$4.nil, "", 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindReaderSubmatchIndex, $c: true, $r, $24r, _r, _r$1, r, re, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAll = function FindAll(b, n) { + var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = [b]; + result = [result]; + re = this; + if (n < 0) { + n = b[0].$length + 1 >> 0; + } + result[0] = sliceType$8.nil; + $r = re.allMatches("", b[0], n, (function(b, result) { return function Regexp·FindAll·func1(match) { + var match; + if (result[0] === sliceType$8.nil) { + result[0] = $makeSlice(sliceType$8, 0, 10); + } + result[0] = $append(result[0], $subslice(b[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); + }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAll, $c: true, $r, b, n, re, result, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllIndex = function FindAllIndex(b, n) { + var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + result = [result]; + re = this; + if (n < 0) { + n = b.$length + 1 >> 0; + } + result[0] = sliceType$9.nil; + $r = re.allMatches("", b, n, (function(result) { return function Regexp·FindAllIndex·func1(match) { + var match; + if (result[0] === sliceType$9.nil) { + result[0] = $makeSlice(sliceType$9, 0, 10); + } + result[0] = $append(result[0], $subslice(match, 0, 2)); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllIndex, $c: true, $r, b, n, re, result, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllString = function FindAllString(s, n) { + var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + result = [result]; + s = [s]; + re = this; + if (n < 0) { + n = s[0].length + 1 >> 0; + } + result[0] = sliceType$3.nil; + $r = re.allMatches(s[0], sliceType$4.nil, n, (function(result, s) { return function Regexp·FindAllString·func1(match) { + var match; + if (result[0] === sliceType$3.nil) { + result[0] = $makeSlice(sliceType$3, 0, 10); + } + result[0] = $append(result[0], $substring(s[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); + }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllString, $c: true, $r, n, re, result, s, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllStringIndex = function FindAllStringIndex(s, n) { + var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + result = [result]; + re = this; + if (n < 0) { + n = s.length + 1 >> 0; + } + result[0] = sliceType$9.nil; + $r = re.allMatches(s, sliceType$4.nil, n, (function(result) { return function Regexp·FindAllStringIndex·func1(match) { + var match; + if (result[0] === sliceType$9.nil) { + result[0] = $makeSlice(sliceType$9, 0, 10); + } + result[0] = $append(result[0], $subslice(match, 0, 2)); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllStringIndex, $c: true, $r, n, re, result, s, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllSubmatch = function FindAllSubmatch(b, n) { + var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = [b]; + result = [result]; + re = this; + if (n < 0) { + n = b[0].$length + 1 >> 0; + } + result[0] = sliceType$10.nil; + $r = re.allMatches("", b[0], n, (function(b, result) { return function Regexp·FindAllSubmatch·func1(match) { + var _i, _q, _ref, j, match, slice, x, x$1, x$2, x$3; + if (result[0] === sliceType$10.nil) { + result[0] = $makeSlice(sliceType$10, 0, 10); + } + slice = $makeSlice(sliceType$8, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + _ref = slice; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { + ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $subslice(b[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])), (x$3 = ($imul(2, j)) + 1 >> 0, ((x$3 < 0 || x$3 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$3])))); + } + _i++; + } + result[0] = $append(result[0], slice); + }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllSubmatch, $c: true, $r, b, n, re, result, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllSubmatchIndex = function FindAllSubmatchIndex(b, n) { + var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + result = [result]; + re = this; + if (n < 0) { + n = b.$length + 1 >> 0; + } + result[0] = sliceType$9.nil; + $r = re.allMatches("", b, n, (function(result) { return function Regexp·FindAllSubmatchIndex·func1(match) { + var match; + if (result[0] === sliceType$9.nil) { + result[0] = $makeSlice(sliceType$9, 0, 10); + } + result[0] = $append(result[0], match); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllSubmatchIndex, $c: true, $r, b, n, re, result, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllStringSubmatch = function FindAllStringSubmatch(s, n) { + var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + result = [result]; + s = [s]; + re = this; + if (n < 0) { + n = s[0].length + 1 >> 0; + } + result[0] = sliceType$11.nil; + $r = re.allMatches(s[0], sliceType$4.nil, n, (function(result, s) { return function Regexp·FindAllStringSubmatch·func1(match) { + var _i, _q, _ref, j, match, slice, x, x$1, x$2; + if (result[0] === sliceType$11.nil) { + result[0] = $makeSlice(sliceType$11, 0, 10); + } + slice = $makeSlice(sliceType$3, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + _ref = slice; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { + ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $substring(s[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); + } + _i++; + } + result[0] = $append(result[0], slice); + }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllStringSubmatch, $c: true, $r, n, re, result, s, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllStringSubmatchIndex = function FindAllStringSubmatchIndex(s, n) { + var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + result = [result]; + re = this; + if (n < 0) { + n = s.length + 1 >> 0; + } + result[0] = sliceType$9.nil; + $r = re.allMatches(s, sliceType$4.nil, n, (function(result) { return function Regexp·FindAllStringSubmatchIndex·func1(match) { + var match; + if (result[0] === sliceType$9.nil) { + result[0] = $makeSlice(sliceType$9, 0, 10); + } + result[0] = $append(result[0], match); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllStringSubmatchIndex, $c: true, $r, n, re, result, s, $s};return $f; + }; + $ptrType(Regexp).prototype.Split = function Split(s, n) { + var {_i, _r, _ref, beg, end, match, matches, n, re, s, strings$1, $s, $r, $c} = $restore(this, {s, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + if (n === 0) { + $s = -1; return sliceType$3.nil; + } + if (re.expr.length > 0 && (s.length === 0)) { + $s = -1; return new sliceType$3([""]); + } + _r = re.FindAllStringIndex(s, n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + matches = _r; + strings$1 = $makeSlice(sliceType$3, 0, matches.$length); + beg = 0; + end = 0; + _ref = matches; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + match = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (n > 0 && strings$1.$length >= (n - 1 >> 0)) { + break; + } + end = (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]); + if (!(((1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]) === 0))) { + strings$1 = $append(strings$1, $substring(s, beg, end)); + } + beg = (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]); + _i++; + } + if (!((end === s.length))) { + strings$1 = $append(strings$1, $substring(s, beg)); + } + $s = -1; return strings$1; + /* */ } return; } var $f = {$blk: Split, $c: true, $r, _i, _r, _ref, beg, end, match, matches, n, re, s, strings$1, $s};return $f; + }; + onePassPrefix = function onePassPrefix$1(p) { + var _tmp, _tmp$1, _tmp$10, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, buf, complete, i, p, pc, prefix, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + prefix = ""; + complete = false; + pc = 0; + i = (x = p.Inst, x$1 = p.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (!((i.Op === 3)) || ((((((i.Arg << 24 >>> 24))) & 4) >>> 0) === 0)) { + _tmp = ""; + _tmp$1 = i.Op === 4; + _tmp$2 = ((p.Start >>> 0)); + prefix = _tmp; + complete = _tmp$1; + pc = _tmp$2; + return [prefix, complete, pc]; + } + pc = i.Out; + i = (x$2 = p.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pc])); + while (true) { + if (!(i.Op === 6)) { break; } + pc = i.Out; + i = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc])); + } + if (!((iop(i) === 7)) || !((i.Rune.$length === 1))) { + _tmp$3 = ""; + _tmp$4 = i.Op === 4; + _tmp$5 = ((p.Start >>> 0)); + prefix = _tmp$3; + complete = _tmp$4; + pc = _tmp$5; + return [prefix, complete, pc]; + } + buf = new strings.Builder.ptr(ptrType$5.nil, sliceType$4.nil); + while (true) { + if (!((iop(i) === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0) && !(((x$4 = i.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])) === 65533)))) { break; } + buf.WriteRune((x$5 = i.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))); + _tmp$6 = i.Out; + _tmp$7 = (x$6 = p.Inst, x$7 = i.Out, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); + pc = _tmp$6; + i = _tmp$7; + } + if ((i.Op === 3) && !((((((i.Arg << 24 >>> 24)) & 8) >>> 0) === 0)) && ((x$8 = p.Inst, x$9 = i.Out, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])).Op === 4)) { + complete = true; + } + _tmp$8 = buf.String(); + _tmp$9 = complete; + _tmp$10 = pc; + prefix = _tmp$8; + complete = _tmp$9; + pc = _tmp$10; + return [prefix, complete, pc]; + }; + onePassNext = function onePassNext$1(i, r) { + var i, next, r, x; + next = i.Inst.MatchRunePos(r); + if (next >= 0) { + return (x = i.Next, ((next < 0 || next >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + next])); + } + if (i.Inst.Op === 1) { + return i.Inst.Out; + } + return 0; + }; + iop = function iop$1(i) { + var _1, i, op; + op = i.Op; + _1 = op; + if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + op = 7; + } + return op; + }; + $ptrType(queueOnePass).prototype.empty = function empty() { + var q; + q = this; + return q.nextIndex >= q.size; + }; + $ptrType(queueOnePass).prototype.next = function next() { + var n, q, x, x$1; + n = 0; + q = this; + n = (x = q.dense, x$1 = q.nextIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + q.nextIndex = q.nextIndex + (1) >>> 0; + return n; + }; + $ptrType(queueOnePass).prototype.clear = function clear() { + var q; + q = this; + q.size = 0; + q.nextIndex = 0; + }; + $ptrType(queueOnePass).prototype.contains = function contains(u) { + var q, u, x, x$1, x$2, x$3; + q = this; + if (u >= ((q.sparse.$length >>> 0))) { + return false; + } + return (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u])) < q.size && ((x$1 = q.dense, x$2 = (x$3 = q.sparse, ((u < 0 || u >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + u])), ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === u); + }; + $ptrType(queueOnePass).prototype.insert = function insert(u) { + var q, u; + q = this; + if (!q.contains(u)) { + q.insertNew(u); + } + }; + $ptrType(queueOnePass).prototype.insertNew = function insertNew(u) { + var q, u, x, x$1, x$2; + q = this; + if (u >= ((q.sparse.$length >>> 0))) { + return; + } + (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u] = q.size)); + (x$1 = q.dense, x$2 = q.size, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = u)); + q.size = q.size + (1) >>> 0; + }; + newQueue = function newQueue$1(size) { + var q, size; + q = ptrType$6.nil; + q = new queueOnePass.ptr($makeSlice(sliceType$2, size), $makeSlice(sliceType$2, size), 0, 0); + return q; + }; + mergeRuneSets = function mergeRuneSets$1(leftRunes, rightRunes, leftPC, rightPC) { + var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, extend, ix, leftLen, leftPC, leftRunes, lx, merged, next$1, ok, rightLen, rightPC, rightRunes, rx, x, x$1, $s, $deferred, $r, $c} = $restore(this, {leftRunes, rightRunes, leftPC, rightPC}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + ix = [ix]; + lx = [lx]; + merged = [merged]; + next$1 = [next$1]; + ok = [ok]; + rx = [rx]; + leftLen = leftRunes.$get().$length; + rightLen = rightRunes.$get().$length; + if (!(((leftLen & 1) === 0)) || !(((rightLen & 1) === 0))) { + $panic(new $String("mergeRuneSets odd length []rune")); + } + _tmp = 0; + _tmp$1 = 0; + lx[0] = _tmp; + rx[0] = _tmp$1; + merged[0] = $makeSlice(sliceType$1, 0); + next$1[0] = $makeSlice(sliceType$2, 0); + ok[0] = true; + $deferred.push([(function(ix, lx, merged, next$1, ok, rx) { return function mergeRuneSets·func1() { + if (!ok[0]) { + merged[0] = sliceType$1.nil; + next$1[0] = sliceType$2.nil; + } + }; })(ix, lx, merged, next$1, ok, rx), []]); + ix[0] = -1; + extend = (function(ix, lx, merged, next$1, ok, rx) { return function mergeRuneSets·func2(newLow, newArray, pc) { + var newArray, newLow, pc, x, x$1, x$2, x$3, x$4, x$5; + if (ix[0] > 0 && (x = newArray.$get(), x$1 = newLow.$get(), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) <= ((ix[0] < 0 || ix[0] >= merged[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : merged[0].$array[merged[0].$offset + ix[0]])) { + return false; + } + merged[0] = $append(merged[0], (x$2 = newArray.$get(), x$3 = newLow.$get(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), (x$4 = newArray.$get(), x$5 = newLow.$get() + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5]))); + newLow.$set(newLow.$get() + (2) >> 0); + ix[0] = ix[0] + (2) >> 0; + next$1[0] = $append(next$1[0], pc); + return true; + }; })(ix, lx, merged, next$1, ok, rx); + /* while (true) { */ case 1: + /* if (!(lx[0] < leftLen || rx[0] < rightLen)) { break; } */ if(!(lx[0] < leftLen || rx[0] < rightLen)) { $s = 2; continue; } + /* */ if (rx[0] >= rightLen) { $s = 4; continue; } + /* */ if (lx[0] >= leftLen) { $s = 5; continue; } + /* */ if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (rx[0] >= rightLen) { */ case 4: + _r = extend((lx.$ptr || (lx.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ok[0] = _r; + $s = 8; continue; + /* } else if (lx[0] >= leftLen) { */ case 5: + _r$1 = extend((rx.$ptr || (rx.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ok[0] = _r$1; + $s = 8; continue; + /* } else if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { */ case 6: + _r$2 = extend((rx.$ptr || (rx.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ok[0] = _r$2; + $s = 8; continue; + /* } else { */ case 7: + _r$3 = extend((lx.$ptr || (lx.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ok[0] = _r$3; + /* } */ case 8: + case 3: + if (!ok[0]) { + $s = -1; return [noRune, noNext]; + } + $s = 1; continue; + case 2: + $s = -1; return [merged[0], next$1[0]]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$1.nil, sliceType$2.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: mergeRuneSets$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, extend, ix, leftLen, leftPC, leftRunes, lx, merged, next$1, ok, rightLen, rightPC, rightRunes, rx, x, x$1, $s, $deferred};return $f; } } + }; + cleanupOnePass = function cleanupOnePass$1(prog, original) { + var _1, _i, _ref, instOriginal, ix, original, prog, x, x$1, x$2; + _ref = original.Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + ix = _i; + instOriginal = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); + _1 = instOriginal.Op; + if ((_1 === (0)) || (_1 === (1)) || (_1 === (7))) { + } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (6)) || (_1 === (4)) || (_1 === (5))) { + (x = prog.Inst, ((ix < 0 || ix >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + ix])).Next = sliceType$2.nil; + } else if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + (x$1 = prog.Inst, ((ix < 0 || ix >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + ix])).Next = sliceType$2.nil; + onePassInst.copy((x$2 = prog.Inst, ((ix < 0 || ix >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + ix])), new onePassInst.ptr($clone(instOriginal, syntax.Inst), sliceType$2.nil)); + } + _i++; + } + }; + onePassCopy = function onePassCopy$1(prog) { + var _1, _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, i, inst, instAlt, instOther, p, p_A_Alt, p_A_Other, p_B_Alt, p_B_Other, patch, pc, prog, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + p = new onePassProg.ptr($makeSlice(sliceType$12, prog.Inst.$length), prog.Start, prog.NumCap); + _ref = prog.Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); + onePassInst.copy((x = p.Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), new onePassInst.ptr($clone(inst, syntax.Inst), sliceType$2.nil)); + _i++; + } + _ref$1 = p.Inst; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + pc = _i$1; + _1 = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])).Inst.Op; + if ((_1 === (0)) || (_1 === (1))) { + p_A_Other = (x$2 = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc])), (x$2.$ptr_Out || (x$2.$ptr_Out = new ptrType$8(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$2)))); + p_A_Alt = (x$4 = (x$5 = p.Inst, ((pc < 0 || pc >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + pc])), (x$4.$ptr_Arg || (x$4.$ptr_Arg = new ptrType$8(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$4)))); + instAlt = $clone((x$6 = p.Inst, x$7 = p_A_Alt.$get(), ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])), onePassInst); + if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { + _tmp = p_A_Other; + _tmp$1 = p_A_Alt; + p_A_Alt = _tmp; + p_A_Other = _tmp$1; + onePassInst.copy(instAlt, (x$8 = p.Inst, x$9 = p_A_Alt.$get(), ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9]))); + if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { + _i$1++; + continue; + } + } + instOther = $clone((x$10 = p.Inst, x$11 = p_A_Other.$get(), ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])), onePassInst); + if ((instOther.Inst.Op === 0) || (instOther.Inst.Op === 1)) { + _i$1++; + continue; + } + p_B_Alt = (x$12 = (x$13 = p.Inst, x$14 = p_A_Alt.$get(), ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])), (x$12.$ptr_Out || (x$12.$ptr_Out = new ptrType$8(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$12)))); + p_B_Other = (x$15 = (x$16 = p.Inst, x$17 = p_A_Alt.$get(), ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17])), (x$15.$ptr_Arg || (x$15.$ptr_Arg = new ptrType$8(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$15)))); + patch = false; + if (instAlt.Inst.Out === ((pc >>> 0))) { + patch = true; + } else if (instAlt.Inst.Arg === ((pc >>> 0))) { + patch = true; + _tmp$2 = p_B_Other; + _tmp$3 = p_B_Alt; + p_B_Alt = _tmp$2; + p_B_Other = _tmp$3; + } + if (patch) { + p_B_Alt.$set(p_A_Other.$get()); + } + if (p_A_Other.$get() === p_B_Alt.$get()) { + p_A_Alt.$set(p_B_Other.$get()); + } + } else { + _i$1++; + continue; + } + _i$1++; + } + return p; + }; + runeSlice.prototype.Len = function Len() { + var p; + p = this; + return p.$length; + }; + $ptrType(runeSlice).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + runeSlice.prototype.Less = function Less(i, j) { + var i, j, p; + p = this; + return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + }; + $ptrType(runeSlice).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + runeSlice.prototype.Swap = function Swap(i, j) { + var _tmp, _tmp$1, i, j, p; + p = this; + _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + _tmp$1 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); + ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$1); + }; + $ptrType(runeSlice).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + makeOnePass = function makeOnePass$1(p) { + var {_i, _r, _ref, check, i, instQueue, m, onePassRunes, p, pc, visitQueue, x, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = [check]; + instQueue = [instQueue]; + onePassRunes = [onePassRunes]; + p = [p]; + visitQueue = [visitQueue]; + if (p[0].Inst.$length >= 1000) { + $s = -1; return ptrType$2.nil; + } + instQueue[0] = newQueue(p[0].Inst.$length); + visitQueue[0] = newQueue(p[0].Inst.$length); + check[0] = $throwNilPointerError; + onePassRunes[0] = $makeSlice(sliceType$13, p[0].Inst.$length); + check[0] = (function(check, instQueue, onePassRunes, p, visitQueue) { return function makeOnePass·func1(pc, m) { + var {_1, _i, _i$1, _i$2, _i$3, _i$4, _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, i, i$1, i$2, i$3, i$4, inst, m, matchArg, matchOut, ok, pc, r0, r0$1, r1, r1$1, runes, runes$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {pc, m}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ok = false; + ok = true; + inst = (x = p[0].Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); + if (visitQueue[0].contains(pc)) { + $s = -1; return ok; + } + visitQueue[0].insert(pc); + _1 = inst.Inst.Op; + /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 2; continue; } + /* */ if ((_1 === (2)) || (_1 === (6))) { $s = 3; continue; } + /* */ if (_1 === (3)) { $s = 4; continue; } + /* */ if ((_1 === (4)) || (_1 === (5))) { $s = 5; continue; } + /* */ if (_1 === (7)) { $s = 6; continue; } + /* */ if (_1 === (8)) { $s = 7; continue; } + /* */ if (_1 === (9)) { $s = 8; continue; } + /* */ if (_1 === (10)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((_1 === (0)) || (_1 === (1))) { */ case 2: + _r = check[0](inst.Inst.Out, m); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (!(_r)) { _v = false; $s = 11; continue s; } + _r$1 = check[0](inst.Inst.Arg, m); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 11: + ok = _v; + matchOut = (x$1 = inst.Inst.Out, ((x$1 < 0 || x$1 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$1])); + matchArg = (x$2 = inst.Inst.Arg, ((x$2 < 0 || x$2 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$2])); + if (matchOut && matchArg) { + ok = false; + /* break; */ $s = 1; continue; + } + if (matchArg) { + _tmp = inst.Inst.Arg; + _tmp$1 = inst.Inst.Out; + inst.Inst.Out = _tmp; + inst.Inst.Arg = _tmp$1; + _tmp$2 = matchArg; + _tmp$3 = matchOut; + matchOut = _tmp$2; + matchArg = _tmp$3; + } + if (matchOut) { + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = true); + inst.Inst.Op = 1; + } + _r$2 = mergeRuneSets($indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + inst.Inst.Out, ptrType$9), $indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + inst.Inst.Arg, ptrType$9), inst.Inst.Out, inst.Inst.Arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = _tuple[0]); + inst.Next = _tuple[1]; + if (inst.Next.$length > 0 && ((x$3 = inst.Next, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])) === 4294967295)) { + ok = false; + /* break; */ $s = 1; continue; + } + $s = 10; continue; + /* } else if ((_1 === (2)) || (_1 === (6))) { */ case 3: + _r$3 = check[0](inst.Inst.Out, m); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ok = _r$3; + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$4 = inst.Inst.Out, ((x$4 < 0 || x$4 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$4]))); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), (x$5 = inst.Inst.Out, ((x$5 < 0 || x$5 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$5])))); + inst.Next = $makeSlice(sliceType$2, ((_q = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref = inst.Next; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x$6 = inst.Next, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = inst.Inst.Out)); + _i++; + } + $s = 10; continue; + /* } else if (_1 === (3)) { */ case 4: + _r$4 = check[0](inst.Inst.Out, m); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + ok = _r$4; + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$7 = inst.Inst.Out, ((x$7 < 0 || x$7 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$7]))); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), (x$8 = inst.Inst.Out, ((x$8 < 0 || x$8 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$8])))); + inst.Next = $makeSlice(sliceType$2, ((_q$1 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$1 = inst.Next; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + (x$9 = inst.Next, ((i$1 < 0 || i$1 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i$1] = inst.Inst.Out)); + _i$1++; + } + $s = 10; continue; + /* } else if ((_1 === (4)) || (_1 === (5))) { */ case 5: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (inst.Inst.Op === 4)); + $s = 10; continue; + /* } else if (_1 === (7)) { */ case 6: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; + } + instQueue[0].insert(inst.Inst.Out); + if (inst.Inst.Rune.$length === 0) { + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = new sliceType$1([])); + inst.Next = new sliceType$2([inst.Inst.Out]); + /* break; */ $s = 1; continue; + } + runes = $makeSlice(sliceType$1, 0); + /* */ if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 17: + r0 = (x$10 = inst.Inst.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])); + runes = $append(runes, r0, r0); + r1 = unicode.SimpleFold(r0); + while (true) { + if (!(!((r1 === r0)))) { break; } + runes = $append(runes, r1, r1); + r1 = unicode.SimpleFold(r1); + } + $r = sort.Sort(($convertSliceType(runes, runeSlice))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else { */ case 18: + runes = $appendSlice(runes, inst.Inst.Rune); + /* } */ case 19: + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes); + inst.Next = $makeSlice(sliceType$2, ((_q$2 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$2 = inst.Next; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + (x$11 = inst.Next, ((i$2 < 0 || i$2 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + i$2] = inst.Inst.Out)); + _i$2++; + } + inst.Inst.Op = 7; + $s = 10; continue; + /* } else if (_1 === (8)) { */ case 7: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; + } + instQueue[0].insert(inst.Inst.Out); + runes$1 = new sliceType$1([]); + /* */ if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 21: + r0$1 = (x$12 = inst.Inst.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])); + runes$1 = $append(runes$1, r0$1, r0$1); + r1$1 = unicode.SimpleFold(r0$1); + while (true) { + if (!(!((r1$1 === r0$1)))) { break; } + runes$1 = $append(runes$1, r1$1, r1$1); + r1$1 = unicode.SimpleFold(r1$1); + } + $r = sort.Sort(($convertSliceType(runes$1, runeSlice))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 23; continue; + /* } else { */ case 22: + runes$1 = $append(runes$1, (x$13 = inst.Inst.Rune, (0 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 0])), (x$14 = inst.Inst.Rune, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0]))); + /* } */ case 23: + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes$1); + inst.Next = $makeSlice(sliceType$2, ((_q$3 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$3 = inst.Next; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + i$3 = _i$3; + (x$15 = inst.Next, ((i$3 < 0 || i$3 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + i$3] = inst.Inst.Out)); + _i$3++; + } + inst.Inst.Op = 7; + $s = 10; continue; + /* } else if (_1 === (9)) { */ case 8: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; + } + instQueue[0].insert(inst.Inst.Out); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), anyRune)); + inst.Next = new sliceType$2([inst.Inst.Out]); + $s = 10; continue; + /* } else if (_1 === (10)) { */ case 9: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; + } + instQueue[0].insert(inst.Inst.Out); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), anyRuneNotNL)); + inst.Next = $makeSlice(sliceType$2, ((_q$4 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$4 === _q$4 && _q$4 !== 1/0 && _q$4 !== -1/0) ? _q$4 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$4 = inst.Next; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$4.$length)) { break; } + i$4 = _i$4; + (x$16 = inst.Next, ((i$4 < 0 || i$4 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + i$4] = inst.Inst.Out)); + _i$4++; + } + /* } */ case 10: + case 1: + $s = -1; return ok; + /* */ } return; } var $f = {$blk: makeOnePass·func1, $c: true, $r, _1, _i, _i$1, _i$2, _i$3, _i$4, _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, i, i$1, i$2, i$3, i$4, inst, m, matchArg, matchOut, ok, pc, r0, r0$1, r1, r1$1, runes, runes$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; })(check, instQueue, onePassRunes, p, visitQueue); + instQueue[0].clear(); + instQueue[0].insert(((p[0].Start >>> 0))); + m = $makeSlice(sliceType$14, p[0].Inst.$length); + /* while (true) { */ case 1: + /* if (!(!instQueue[0].empty())) { break; } */ if(!(!instQueue[0].empty())) { $s = 2; continue; } + visitQueue[0].clear(); + pc = instQueue[0].next(); + _r = check[0](pc, m); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + p[0] = ptrType$2.nil; + /* break; */ $s = 2; continue; + /* } */ case 4: + $s = 1; continue; + case 2: + if (!(p[0] === ptrType$2.nil)) { + _ref = p[0].Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x = p[0].Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).Inst.Rune = ((i < 0 || i >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + i]); + _i++; + } + } + $s = -1; return p[0]; + /* */ } return; } var $f = {$blk: makeOnePass$1, $c: true, $r, _i, _r, _ref, check, i, instQueue, m, onePassRunes, p, pc, visitQueue, x, $s};return $f; + }; + compileOnePass = function compileOnePass$1(prog) { + var {_1, _i, _r, _ref, inst, opOut, p, prog, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {prog}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = ptrType$2.nil; + if (prog.Start === 0) { + p = ptrType$2.nil; + $s = -1; return p; + } + if (!(((x = prog.Inst, x$1 = prog.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 3)) || !(((((((x$2 = prog.Inst, x$3 = prog.Start, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).Arg << 24 >>> 24)) & 4) >>> 0) === 4))) { + p = ptrType$2.nil; + $s = -1; return p; + } + _ref = prog.Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); + opOut = (x$4 = prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; + _1 = inst.Op; + if ((_1 === (0)) || (_1 === (1))) { + if ((opOut === 4) || ((x$6 = prog.Inst, x$7 = inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).Op === 4)) { + p = ptrType$2.nil; + $s = -1; return p; + } + } else if (_1 === (3)) { + if (opOut === 4) { + if (((((inst.Arg << 24 >>> 24)) & 8) >>> 0) === 8) { + _i++; + continue; + } + p = ptrType$2.nil; + $s = -1; return p; + } + } else if (opOut === 4) { + p = ptrType$2.nil; + $s = -1; return p; + } + _i++; + } + p = onePassCopy(prog); + _r = makeOnePass(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + if (!(p === ptrType$2.nil)) { + cleanupOnePass(p, prog); + } + p = p; + $s = -1; return p; + /* */ } return; } var $f = {$blk: compileOnePass$1, $c: true, $r, _1, _i, _r, _ref, inst, opOut, p, prog, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + }; + $ptrType(inputs).prototype.newBytes = function newBytes(b) { + var b, i; + i = this; + i.bytes.str = b; + return i.bytes; + }; + $ptrType(inputs).prototype.newString = function newString(s) { + var i, s; + i = this; + i.string.str = s; + return i.string; + }; + $ptrType(inputs).prototype.newReader = function newReader(r) { + var i, r; + i = this; + i.reader.r = r; + i.reader.atEOT = false; + i.reader.pos = 0; + return i.reader; + }; + $ptrType(inputs).prototype.clear = function clear$1() { + var i; + i = this; + if (!(i.bytes.str === sliceType$4.nil)) { + i.bytes.str = sliceType$4.nil; + } else if (!($interfaceIsEqual(i.reader.r, $ifaceNil))) { + i.reader.r = $ifaceNil; + } else { + i.string.str = ""; + } + }; + $ptrType(inputs).prototype.init = function init$2(r, b, s) { + var b, i, r, s; + i = this; + if (!($interfaceIsEqual(r, $ifaceNil))) { + return [i.newReader(r), 0]; + } + if (!(b === sliceType$4.nil)) { + return [i.newBytes(b), b.$length]; + } + return [i.newString(s), s.length]; + }; + $ptrType(machine).prototype.init = function init$3(ncap) { + var _i, _ref, m, ncap, t; + m = this; + _ref = m.pool; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + t.cap = $subslice(t.cap, 0, ncap); + _i++; + } + m.matchcap = $subslice(m.matchcap, 0, ncap); + }; + $ptrType(machine).prototype.alloc = function alloc(i) { + var i, m, n, t, x, x$1; + m = this; + t = ptrType$4.nil; + n = m.pool.$length; + if (n > 0) { + t = (x = m.pool, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + m.pool = $subslice(m.pool, 0, (n - 1 >> 0)); + } else { + t = new thread.ptr(ptrType$10.nil, sliceType$7.nil); + t.cap = $makeSlice(sliceType$7, m.matchcap.$length, m.matchcap.$capacity); + } + t.inst = i; + return t; + }; + newLazyFlag = function newLazyFlag$1(r1, r2) { + var r1, r2, x, x$1, x$2; + return ((x = (x$1 = $shiftLeft64((new $Uint64(0, r1)), 32), x$2 = (new $Uint64(0, ((r2 >>> 0)))), new $Uint64(x$1.$high | x$2.$high, (x$1.$low | x$2.$low) >>> 0)), new lazyFlag(x.$high, x.$low))); + }; + lazyFlag.prototype.match = function match(op) { + var f, op, r1, r2; + f = this; + if (op === 0) { + return true; + } + r1 = (($shiftRightUint64(f, 32).$low >> 0)); + if (!((((op & 1) >>> 0) === 0))) { + if (!((r1 === 10)) && r1 >= 0) { + return false; + } + op = (op & ~(1)) << 24 >>> 24; + } + if (!((((op & 4) >>> 0) === 0))) { + if (r1 >= 0) { + return false; + } + op = (op & ~(4)) << 24 >>> 24; + } + if (op === 0) { + return true; + } + r2 = ((f.$low >> 0)); + if (!((((op & 2) >>> 0) === 0))) { + if (!((r2 === 10)) && r2 >= 0) { + return false; + } + op = (op & ~(2)) << 24 >>> 24; + } + if (!((((op & 8) >>> 0) === 0))) { + if (r2 >= 0) { + return false; + } + op = (op & ~(8)) << 24 >>> 24; + } + if (op === 0) { + return true; + } + if (!(syntax.IsWordChar(r1) === syntax.IsWordChar(r2))) { + op = (op & ~(16)) << 24 >>> 24; + } else { + op = (op & ~(32)) << 24 >>> 24; + } + return op === 0; + }; + $ptrType(lazyFlag).prototype.match = function(...$args) { return this.$get().match(...$args); }; + $ptrType(machine).prototype.match = function match$1(i, pos) { + var {_i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, advance, flag, i, i$1, m, nextq, pos, r, r1, runq, startCond, width, width1, x, x$1, $s, $r, $c} = $restore(this, {i, pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + flag = [flag]; + m = this; + startCond = m.re.cond; + if (startCond === 255) { + $s = -1; return false; + } + m.matched = false; + _ref = m.matchcap; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$1 = _i; + (x = m.matchcap, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1] = -1)); + _i++; + } + _tmp = m.q0; + _tmp$1 = m.q1; + runq = _tmp; + nextq = _tmp$1; + _tmp$2 = -1; + _tmp$3 = -1; + r = _tmp$2; + r1 = _tmp$3; + _tmp$4 = 0; + _tmp$5 = 0; + width = _tmp$4; + width1 = _tmp$5; + _r = i.step(pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + width = _tuple[1]; + /* */ if (!((r === -1))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((r === -1))) { */ case 2: + _r$1 = i.step(pos + width >> 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + r1 = _tuple$1[0]; + width1 = _tuple$1[1]; + /* } */ case 3: + flag[0] = new lazyFlag(0, 0); + /* */ if (pos === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (pos === 0) { */ case 5: + flag[0] = newLazyFlag(-1, r); + $s = 7; continue; + /* } else { */ case 6: + _r$2 = i.context(pos); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + flag[0] = _r$2; + /* } */ case 7: + /* while (true) { */ case 9: + /* */ if (runq.dense.$length === 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (runq.dense.$length === 0) { */ case 11: + if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { + /* break; */ $s = 10; continue; + } + if (m.matched) { + /* break; */ $s = 10; continue; + } + if (!(m.re.prefix.length > 0 && !((r1 === m.re.prefixRune)))) { _v = false; $s = 15; continue s; } + _r$3 = i.canCheckPrefix(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 15: + /* */ if (_v) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_v) { */ case 13: + _r$4 = i.index(m.re, pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + advance = _r$4; + if (advance < 0) { + /* break; */ $s = 10; continue; + } + pos = pos + (advance) >> 0; + _r$5 = i.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + r = _tuple$2[0]; + width = _tuple$2[1]; + _r$6 = i.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$3 = _r$6; + r1 = _tuple$3[0]; + width1 = _tuple$3[1]; + /* } */ case 14: + /* } */ case 12: + if (!m.matched) { + if (m.matchcap.$length > 0) { + (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); + } + m.add(runq, ((m.p.Start >>> 0)), pos, m.matchcap, (flag.$ptr || (flag.$ptr = new ptrType$11(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, flag))), ptrType$4.nil); + } + flag[0] = newLazyFlag(r, r1); + m.step(runq, nextq, pos, pos + width >> 0, r, (flag.$ptr || (flag.$ptr = new ptrType$11(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, flag)))); + if (width === 0) { + /* break; */ $s = 10; continue; + } + if ((m.matchcap.$length === 0) && m.matched) { + /* break; */ $s = 10; continue; + } + pos = pos + (width) >> 0; + _tmp$6 = r1; + _tmp$7 = width1; + r = _tmp$6; + width = _tmp$7; + /* */ if (!((r === -1))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!((r === -1))) { */ case 20: + _r$7 = i.step(pos + width >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$4 = _r$7; + r1 = _tuple$4[0]; + width1 = _tuple$4[1]; + /* } */ case 21: + _tmp$8 = nextq; + _tmp$9 = runq; + runq = _tmp$8; + nextq = _tmp$9; + $s = 9; continue; + case 10: + m.clear(nextq); + $s = -1; return m.matched; + /* */ } return; } var $f = {$blk: match$1, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, advance, flag, i, i$1, m, nextq, pos, r, r1, runq, startCond, width, width1, x, x$1, $s};return $f; + }; + $ptrType(machine).prototype.clear = function clear$2(q) { + var _i, _ref, d, m, q; + m = this; + _ref = q.dense; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + d = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); + if (!(d.t === ptrType$4.nil)) { + m.pool = $append(m.pool, d.t); + } + _i++; + } + q.dense = $subslice(q.dense, 0, 0); + }; + $ptrType(machine).prototype.step = function step$3(runq, nextq, pos, nextPos, c, nextCond) { + var _1, _i, _ref, add, c, d, d$1, i, j, longest, m, nextCond, nextPos, nextq, pos, runq, t, x, x$1, x$2, x$3, x$4, x$5; + m = this; + longest = m.re.longest; + j = 0; + while (true) { + if (!(j < runq.dense.$length)) { break; } + d = (x = runq.dense, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); + t = d.t; + if (t === ptrType$4.nil) { + j = j + (1) >> 0; + continue; + } + if (longest && m.matched && t.cap.$length > 0 && (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) < (x$2 = t.cap, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) { + m.pool = $append(m.pool, t); + j = j + (1) >> 0; + continue; + } + i = t.inst; + add = false; + _1 = i.Op; + if (_1 === (4)) { + if (t.cap.$length > 0 && (!longest || !m.matched || (x$3 = m.matchcap, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) < pos)) { + (x$4 = t.cap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); + $copySlice(m.matchcap, t.cap); + } + if (!longest) { + _ref = $subslice(runq.dense, (j + 1 >> 0)); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + d$1 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); + if (!(d$1.t === ptrType$4.nil)) { + m.pool = $append(m.pool, d$1.t); + } + _i++; + } + runq.dense = $subslice(runq.dense, 0, 0); + } + m.matched = true; + } else if (_1 === (7)) { + add = i.MatchRune(c); + } else if (_1 === (8)) { + add = c === (x$5 = i.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])); + } else if (_1 === (9)) { + add = true; + } else if (_1 === (10)) { + add = !((c === 10)); + } else { + $panic(new $String("bad inst")); + } + if (add) { + t = m.add(nextq, i.Out, nextPos, t.cap, nextCond, t); + } + if (!(t === ptrType$4.nil)) { + m.pool = $append(m.pool, t); + } + j = j + (1) >> 0; + } + runq.dense = $subslice(runq.dense, 0, 0); + }; + $ptrType(machine).prototype.add = function add(q, pc, pos, cap, cond, t) { + var _1, cap, cond, d, i, j, j$1, m, opos, pc, pos, q, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s; + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + /* Again: */ case 1: + if (pc === 0) { + $s = -1; return t; + } + j = (x = q.sparse, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); + if (j < ((q.dense.$length >>> 0)) && ((x$1 = q.dense, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])).pc === pc)) { + $s = -1; return t; + } + j$1 = q.dense.$length; + q.dense = $subslice(q.dense, 0, (j$1 + 1 >> 0)); + d = (x$2 = q.dense, ((j$1 < 0 || j$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j$1])); + d.t = ptrType$4.nil; + d.pc = pc; + (x$3 = q.sparse, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc] = ((j$1 >>> 0)))); + i = (x$4 = m.p.Inst, ((pc < 0 || pc >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + pc])); + _1 = i.Op; + /* */ if (_1 === (5)) { $s = 3; continue; } + /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 4; continue; } + /* */ if (_1 === (3)) { $s = 5; continue; } + /* */ if (_1 === (6)) { $s = 6; continue; } + /* */ if (_1 === (2)) { $s = 7; continue; } + /* */ if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (5)) { */ case 3: + $s = 10; continue; + /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 4: + t = m.add(q, i.Out, pos, cap, cond, t); + pc = i.Arg; + /* goto Again */ $s = 1; continue; + $s = 10; continue; + /* } else if (_1 === (3)) { */ case 5: + /* */ if (cond.match(((i.Arg << 24 >>> 24)))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (cond.match(((i.Arg << 24 >>> 24)))) { */ case 11: + pc = i.Out; + /* goto Again */ $s = 1; continue; + /* } */ case 12: + $s = 10; continue; + /* } else if (_1 === (6)) { */ case 6: + pc = i.Out; + /* goto Again */ $s = 1; continue; + $s = 10; continue; + /* } else if (_1 === (2)) { */ case 7: + /* */ if (((i.Arg >> 0)) < cap.$length) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (((i.Arg >> 0)) < cap.$length) { */ case 13: + opos = (x$5 = i.Arg, ((x$5 < 0 || x$5 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$5])); + (x$6 = i.Arg, ((x$6 < 0 || x$6 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$6] = pos)); + m.add(q, i.Out, pos, cap, cond, ptrType$4.nil); + (x$7 = i.Arg, ((x$7 < 0 || x$7 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$7] = opos)); + $s = 15; continue; + /* } else { */ case 14: + pc = i.Out; + /* goto Again */ $s = 1; continue; + /* } */ case 15: + $s = 10; continue; + /* } else if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { */ case 8: + if (t === ptrType$4.nil) { + t = m.alloc(i); + } else { + t.inst = i; + } + if (cap.$length > 0 && !((x$8 = t.cap, $indexPtr(x$8.$array, x$8.$offset + 0, ptrType$7)) === $indexPtr(cap.$array, cap.$offset + 0, ptrType$7))) { + $copySlice(t.cap, cap); + } + d.t = t; + t = ptrType$4.nil; + $s = 10; continue; + /* } else { */ case 9: + $panic(new $String("unhandled")); + /* } */ case 10: + case 2: + $s = -1; return t; + /* */ } return; } + }; + newOnePassMachine = function newOnePassMachine$1() { + var {_r, _tuple, m, ok, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = onePassPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$12, true); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = new onePassMachine.ptr(new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)), sliceType$7.nil); + } + $s = -1; return m; + /* */ } return; } var $f = {$blk: newOnePassMachine$1, $c: true, $r, _r, _tuple, m, ok, $s};return $f; + }; + freeOnePassMachine = function freeOnePassMachine$1(m) { + var m; + m.inputs.clear(); + onePassPool.Put(m); + }; + $ptrType(Regexp).prototype.doOnePass = function doOnePass(ir, ib, is, pos, ncap, dstCap) { + var {_1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, dstCap, flag, i, i$1, ib, inst, ir, is, m, matched, ncap, pc, pos, r, r1, re, startCond, width, width1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {ir, ib, is, pos, ncap, dstCap}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + startCond = re.cond; + if (startCond === 255) { + $s = -1; return sliceType$7.nil; + } + _r = newOnePassMachine(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + m = _r; + if (m.matchcap.$capacity < ncap) { + m.matchcap = $makeSlice(sliceType$7, ncap); + } else { + m.matchcap = $subslice(m.matchcap, 0, ncap); + } + matched = false; + _ref = m.matchcap; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x = m.matchcap, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = -1)); + _i++; + } + _tuple = m.inputs.init(ir, ib, is); + i$1 = _tuple[0]; + _tmp = -1; + _tmp$1 = -1; + r = _tmp; + r1 = _tmp$1; + _tmp$2 = 0; + _tmp$3 = 0; + width = _tmp$2; + width1 = _tmp$3; + _r$1 = i$1.step(pos); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + r = _tuple$1[0]; + width = _tuple$1[1]; + /* */ if (!((r === -1))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!((r === -1))) { */ case 3: + _r$2 = i$1.step(pos + width >> 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + r1 = _tuple$2[0]; + width1 = _tuple$2[1]; + /* } */ case 4: + flag = new lazyFlag(0, 0); + /* */ if (pos === 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (pos === 0) { */ case 6: + flag = newLazyFlag(-1, r); + $s = 8; continue; + /* } else { */ case 7: + _r$3 = i$1.context(pos); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + flag = _r$3; + /* } */ case 8: + pc = re.onepass.Start; + inst = (x$1 = re.onepass.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])); + if (!((pos === 0) && flag.match(((inst.Inst.Arg << 24 >>> 24))) && re.prefix.length > 0)) { _v = false; $s = 12; continue s; } + _r$4 = i$1.canCheckPrefix(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = _r$4; case 12: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + _r$5 = i$1.hasPrefix(re); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!_r$5) { */ case 14: + /* goto Return */ $s = 17; continue; + /* } */ case 15: + pos = pos + (re.prefix.length) >> 0; + _r$6 = i$1.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$3 = _r$6; + r = _tuple$3[0]; + width = _tuple$3[1]; + _r$7 = i$1.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$4 = _r$7; + r1 = _tuple$4[0]; + width1 = _tuple$4[1]; + _r$8 = i$1.context(pos); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + flag = _r$8; + pc = ((re.prefixEnd >> 0)); + /* } */ case 11: + /* while (true) { */ case 21: + inst = (x$2 = re.onepass.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pc])); + pc = ((inst.Inst.Out >> 0)); + _1 = inst.Inst.Op; + /* */ if (_1 === (4)) { $s = 24; continue; } + /* */ if (_1 === (7)) { $s = 25; continue; } + /* */ if (_1 === (8)) { $s = 26; continue; } + /* */ if (_1 === (9)) { $s = 27; continue; } + /* */ if (_1 === (10)) { $s = 28; continue; } + /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 29; continue; } + /* */ if (_1 === (5)) { $s = 30; continue; } + /* */ if (_1 === (6)) { $s = 31; continue; } + /* */ if (_1 === (3)) { $s = 32; continue; } + /* */ if (_1 === (2)) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (_1 === (4)) { */ case 24: + matched = true; + if (m.matchcap.$length > 0) { + (x$3 = m.matchcap, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = 0)); + (x$4 = m.matchcap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); + } + /* goto Return */ $s = 17; continue; + $s = 35; continue; + /* } else if (_1 === (7)) { */ case 25: + /* */ if (!inst.Inst.MatchRune(r)) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (!inst.Inst.MatchRune(r)) { */ case 36: + /* goto Return */ $s = 17; continue; + /* } */ case 37: + $s = 35; continue; + /* } else if (_1 === (8)) { */ case 26: + /* */ if (!((r === (x$5 = inst.Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!((r === (x$5 = inst.Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { */ case 38: + /* goto Return */ $s = 17; continue; + /* } */ case 39: + $s = 35; continue; + /* } else if (_1 === (9)) { */ case 27: + $s = 35; continue; + /* } else if (_1 === (10)) { */ case 28: + /* */ if (r === 10) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (r === 10) { */ case 40: + /* goto Return */ $s = 17; continue; + /* } */ case 41: + $s = 35; continue; + /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 29: + pc = ((onePassNext(inst, r) >> 0)); + /* continue; */ $s = 21; continue; + $s = 35; continue; + /* } else if (_1 === (5)) { */ case 30: + /* goto Return */ $s = 17; continue; + $s = 35; continue; + /* } else if (_1 === (6)) { */ case 31: + /* continue; */ $s = 21; continue; + $s = 35; continue; + /* } else if (_1 === (3)) { */ case 32: + /* */ if (!flag.match(((inst.Inst.Arg << 24 >>> 24)))) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (!flag.match(((inst.Inst.Arg << 24 >>> 24)))) { */ case 42: + /* goto Return */ $s = 17; continue; + /* } */ case 43: + /* continue; */ $s = 21; continue; + $s = 35; continue; + /* } else if (_1 === (2)) { */ case 33: + if (((inst.Inst.Arg >> 0)) < m.matchcap.$length) { + (x$6 = m.matchcap, x$7 = inst.Inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7] = pos)); + } + /* continue; */ $s = 21; continue; + $s = 35; continue; + /* } else { */ case 34: + $panic(new $String("bad inst")); + /* } */ case 35: + case 23: + if (width === 0) { + /* break; */ $s = 22; continue; + } + flag = newLazyFlag(r, r1); + pos = pos + (width) >> 0; + _tmp$4 = r1; + _tmp$5 = width1; + r = _tmp$4; + width = _tmp$5; + /* */ if (!((r === -1))) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!((r === -1))) { */ case 44: + _r$9 = i$1.step(pos + width >> 0); /* */ $s = 46; case 46: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$5 = _r$9; + r1 = _tuple$5[0]; + width1 = _tuple$5[1]; + /* } */ case 45: + $s = 21; continue; + case 22: + /* Return: */ case 17: + if (!matched) { + freeOnePassMachine(m); + $s = -1; return sliceType$7.nil; + } + dstCap = $appendSlice(dstCap, m.matchcap); + freeOnePassMachine(m); + $s = -1; return dstCap; + /* */ } return; } var $f = {$blk: doOnePass, $c: true, $r, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, dstCap, flag, i, i$1, ib, inst, ir, is, m, matched, ncap, pc, pos, r, r1, re, startCond, width, width1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + }; + $ptrType(Regexp).prototype.doMatch = function doMatch(r, b, s) { + var {$24r, _r, b, r, re, s, $s, $r, $c} = $restore(this, {r, b, s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doExecute(r, b, s, 0, 0, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = !(_r === sliceType$7.nil); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: doMatch, $c: true, $r, $24r, _r, b, r, re, s, $s};return $f; + }; + $ptrType(Regexp).prototype.doExecute = function doExecute(r, b, s, pos, ncap, dstCap) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, b, dstCap, i, m, ncap, pos, r, re, s, $s, $r, $c} = $restore(this, {r, b, s, pos, ncap, dstCap}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + if (dstCap === sliceType$7.nil) { + dstCap = $subslice(new sliceType$7(arrayNoInts), 0, 0, 0); + } + if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.minInputLen) { + $s = -1; return sliceType$7.nil; + } + /* */ if (!(re.onepass === ptrType$2.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(re.onepass === ptrType$2.nil)) { */ case 1: + _r = re.doOnePass(r, b, s, pos, ncap, dstCap); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + /* */ if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.maxBitStateLen) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.maxBitStateLen) { */ case 5: + _r$1 = re.backtrack(b, s, pos, ncap, dstCap); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 8; case 8: return $24r$1; + /* } */ case 6: + _r$2 = re.get(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + m = _r$2; + _tuple = m.inputs.init(r, b, s); + i = _tuple[0]; + m.init(ncap); + _r$3 = m.match(i, pos); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!_r$3) { */ case 10: + re.put(m); + $s = -1; return sliceType$7.nil; + /* } */ case 11: + dstCap = $appendSlice(dstCap, m.matchcap); + re.put(m); + $s = -1; return dstCap; + /* */ } return; } var $f = {$blk: doExecute, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, b, dstCap, i, m, ncap, pos, r, re, s, $s};return $f; + }; + newBitState = function newBitState$1() { + var {_r, _tuple, b, ok, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = bitStatePool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$13, true); + b = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + b = new bitState.ptr(0, sliceType$7.nil, sliceType$7.nil, sliceType$15.nil, sliceType$2.nil, new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0))); + } + $s = -1; return b; + /* */ } return; } var $f = {$blk: newBitState$1, $c: true, $r, _r, _tuple, b, ok, $s};return $f; + }; + freeBitState = function freeBitState$1(b) { + var b; + b.inputs.clear(); + bitStatePool.Put(b); + }; + maxBitStateLen = function maxBitStateLen$1(prog) { + var _q, prog; + if (!shouldBacktrack(prog)) { + return 0; + } + return (_q = 262144 / prog.Inst.$length, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + }; + shouldBacktrack = function shouldBacktrack$1(prog) { + var prog; + return prog.Inst.$length <= 500; + }; + $ptrType(bitState).prototype.reset = function reset(prog, end, ncap) { + var _i, _i$1, _i$2, _q, _ref, _ref$1, _ref$2, b, end, i, i$1, i$2, ncap, prog, visitedSize, x, x$1, x$2; + b = this; + b.end = end; + if (b.jobs.$capacity === 0) { + b.jobs = $makeSlice(sliceType$15, 0, 256); + } else { + b.jobs = $subslice(b.jobs, 0, 0); + } + visitedSize = (_q = (((($imul(prog.Inst.$length, ((end + 1 >> 0)))) + 32 >> 0) - 1 >> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (b.visited.$capacity < visitedSize) { + b.visited = $makeSlice(sliceType$2, visitedSize, 8192); + } else { + b.visited = $subslice(b.visited, 0, visitedSize); + _ref = b.visited; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x = b.visited, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); + _i++; + } + } + if (b.cap.$capacity < ncap) { + b.cap = $makeSlice(sliceType$7, ncap); + } else { + b.cap = $subslice(b.cap, 0, ncap); + } + _ref$1 = b.cap; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + (x$1 = b.cap, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1] = -1)); + _i$1++; + } + if (b.matchcap.$capacity < ncap) { + b.matchcap = $makeSlice(sliceType$7, ncap); + } else { + b.matchcap = $subslice(b.matchcap, 0, ncap); + } + _ref$2 = b.matchcap; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + (x$2 = b.matchcap, ((i$2 < 0 || i$2 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$2] = -1)); + _i$2++; + } + }; + $ptrType(bitState).prototype.shouldVisit = function shouldVisit(pc, pos) { + var _index, _q, _q$1, b, n, pc, pos, x, x$1, x$2, x$3, y, y$1; + b = this; + n = (((($imul(((pc >> 0)), ((b.end + 1 >> 0)))) + pos >> 0) >>> 0)); + if (!(((((x = b.visited, x$1 = (_q = n / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) & (((y = (((n & 31) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { + return false; + } + _index = (_q$1 = n / 32, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + (x$3 = b.visited, ((_index < 0 || _index >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + _index] = (((x$2 = b.visited, ((_index < 0 || _index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + _index])) | (((y$1 = (((n & 31) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0))); + return true; + }; + $ptrType(bitState).prototype.push = function push(re, pc, pos, arg) { + var arg, b, pc, pos, re, x; + b = this; + if (!(((x = re.prog.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])).Op === 5)) && (arg || b.shouldVisit(pc, pos))) { + b.jobs = $append(b.jobs, new job.ptr(pc, arg, pos)); + } + }; + $ptrType(Regexp).prototype.tryBacktrack = function tryBacktrack(b, i, pc, pos) { + var {_1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, arg, b, flag, i, inst, l, longest, old, pc, pc$1, pos, pos$1, r, r$1, r$2, r$3, re, width, width$1, width$2, width$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {b, i, pc, pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + longest = re.longest; + b.push(re, pc, pos, false); + /* while (true) { */ case 1: + /* if (!(b.jobs.$length > 0)) { break; } */ if(!(b.jobs.$length > 0)) { $s = 2; continue; } + l = b.jobs.$length - 1 >> 0; + pc$1 = (x = b.jobs, ((l < 0 || l >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + l])).pc; + pos$1 = (x$1 = b.jobs, ((l < 0 || l >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + l])).pos; + arg = (x$2 = b.jobs, ((l < 0 || l >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + l])).arg; + b.jobs = $subslice(b.jobs, 0, l); + /* goto Skip */ $s = 3; continue; + /* CheckAndLoop: */ case 4: + if (!b.shouldVisit(pc$1, pos$1)) { + /* continue; */ $s = 1; continue; + } + /* Skip: */ case 3: + inst = (x$3 = re.prog.Inst, ((pc$1 < 0 || pc$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc$1])); + _1 = inst.Op; + /* */ if (_1 === (5)) { $s = 6; continue; } + /* */ if (_1 === (0)) { $s = 7; continue; } + /* */ if (_1 === (1)) { $s = 8; continue; } + /* */ if (_1 === (7)) { $s = 9; continue; } + /* */ if (_1 === (8)) { $s = 10; continue; } + /* */ if (_1 === (10)) { $s = 11; continue; } + /* */ if (_1 === (9)) { $s = 12; continue; } + /* */ if (_1 === (2)) { $s = 13; continue; } + /* */ if (_1 === (3)) { $s = 14; continue; } + /* */ if (_1 === (6)) { $s = 15; continue; } + /* */ if (_1 === (4)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_1 === (5)) { */ case 6: + $panic(new $String("unexpected InstFail")); + $s = 18; continue; + /* } else if (_1 === (0)) { */ case 7: + /* */ if (arg) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (arg) { */ case 19: + arg = false; + pc$1 = inst.Arg; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 21; continue; + /* } else { */ case 20: + b.push(re, pc$1, pos$1, true); + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + /* } */ case 21: + $s = 18; continue; + /* } else if (_1 === (1)) { */ case 8: + _2 = (x$4 = re.prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; + /* */ if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { */ case 23: + b.push(re, inst.Arg, pos$1, false); + pc$1 = inst.Arg; + pos$1 = b.end; + /* goto CheckAndLoop */ $s = 4; continue; + /* } */ case 24: + case 22: + b.push(re, inst.Out, b.end, false); + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (7)) { */ case 9: + _r = i.step(pos$1); /* */ $s = 25; case 25: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + width = _tuple[1]; + if (!inst.MatchRune(r)) { + /* continue; */ $s = 1; continue; + } + pos$1 = pos$1 + (width) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (8)) { */ case 10: + _r$1 = i.step(pos$1); /* */ $s = 26; case 26: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + r$1 = _tuple$1[0]; + width$1 = _tuple$1[1]; + if (!((r$1 === (x$6 = inst.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))))) { + /* continue; */ $s = 1; continue; + } + pos$1 = pos$1 + (width$1) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (10)) { */ case 11: + _r$2 = i.step(pos$1); /* */ $s = 27; case 27: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + r$2 = _tuple$2[0]; + width$2 = _tuple$2[1]; + if ((r$2 === 10) || (r$2 === -1)) { + /* continue; */ $s = 1; continue; + } + pos$1 = pos$1 + (width$2) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (9)) { */ case 12: + _r$3 = i.step(pos$1); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$3 = _r$3; + r$3 = _tuple$3[0]; + width$3 = _tuple$3[1]; + if (r$3 === -1) { + /* continue; */ $s = 1; continue; + } + pos$1 = pos$1 + (width$3) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (2)) { */ case 13: + /* */ if (arg) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (arg) { */ case 29: + (x$7 = b.cap, x$8 = inst.Arg, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = pos$1)); + /* continue; */ $s = 1; continue; + $s = 31; continue; + /* } else { */ case 30: + if (inst.Arg < ((b.cap.$length >>> 0))) { + b.push(re, pc$1, (x$9 = b.cap, x$10 = inst.Arg, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])), true); + (x$11 = b.cap, x$12 = inst.Arg, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = pos$1)); + } + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + /* } */ case 31: + $s = 18; continue; + /* } else if (_1 === (3)) { */ case 14: + _r$4 = i.context(pos$1); /* */ $s = 32; case 32: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + flag = _r$4; + if (!flag.match(((inst.Arg << 24 >>> 24)))) { + /* continue; */ $s = 1; continue; + } + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (6)) { */ case 15: + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (4)) { */ case 16: + if (b.cap.$length === 0) { + $s = -1; return true; + } + if (b.cap.$length > 1) { + (x$13 = b.cap, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1] = pos$1)); + } + old = (x$14 = b.matchcap, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1])); + if ((old === -1) || (longest && pos$1 > 0 && pos$1 > old)) { + $copySlice(b.matchcap, b.cap); + } + if (!longest) { + $s = -1; return true; + } + if (pos$1 === b.end) { + $s = -1; return true; + } + /* continue; */ $s = 1; continue; + $s = 18; continue; + /* } else { */ case 17: + $panic(new $String("bad inst")); + /* } */ case 18: + case 5: + $s = 1; continue; + case 2: + $s = -1; return longest && b.matchcap.$length > 1 && (x$15 = b.matchcap, (1 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 1])) >= 0; + /* */ } return; } var $f = {$blk: tryBacktrack, $c: true, $r, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, arg, b, flag, i, inst, l, longest, old, pc, pc$1, pos, pos$1, r, r$1, r$2, r$3, re, width, width$1, width$2, width$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; + $ptrType(Regexp).prototype.backtrack = function backtrack(ib, is, pos, ncap, dstCap) { + var {_r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, advance, b, dstCap, end, i, ib, is, ncap, pos, re, startCond, width, x, x$1, $s, $r, $c} = $restore(this, {ib, is, pos, ncap, dstCap}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + startCond = re.cond; + if (startCond === 255) { + $s = -1; return sliceType$7.nil; + } + if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { + $s = -1; return sliceType$7.nil; + } + _r = newBitState(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + _tuple = b.inputs.init($ifaceNil, ib, is); + i = _tuple[0]; + end = _tuple[1]; + b.reset(re.prog, end, ncap); + /* */ if (!((((startCond & 4) >>> 0) === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((((startCond & 4) >>> 0) === 0))) { */ case 2: + if (b.cap.$length > 0) { + (x = b.cap, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0] = pos)); + } + _r$1 = re.tryBacktrack(b, i, ((re.prog.Start >>> 0)), pos); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!_r$1) { */ case 5: + freeBitState(b); + $s = -1; return sliceType$7.nil; + /* } */ case 6: + $s = 4; continue; + /* } else { */ case 3: + width = -1; + /* while (true) { */ case 8: + /* if (!(pos <= end && !((width === 0)))) { break; } */ if(!(pos <= end && !((width === 0)))) { $s = 9; continue; } + /* */ if (re.prefix.length > 0) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (re.prefix.length > 0) { */ case 10: + _r$2 = i.index(re, pos); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + advance = _r$2; + if (advance < 0) { + freeBitState(b); + $s = -1; return sliceType$7.nil; + } + pos = pos + (advance) >> 0; + /* } */ case 11: + if (b.cap.$length > 0) { + (x$1 = b.cap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); + } + _r$3 = re.tryBacktrack(b, i, ((re.prog.Start >>> 0)), pos); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$3) { */ case 13: + /* goto Match */ $s = 16; continue; + /* } */ case 14: + _r$4 = i.step(pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + width = _tuple$1[1]; + pos = pos + (width) >> 0; + $s = 8; continue; + case 9: + freeBitState(b); + $s = -1; return sliceType$7.nil; + /* } */ case 4: + /* Match: */ case 16: + dstCap = $appendSlice(dstCap, b.matchcap); + freeBitState(b); + $s = -1; return dstCap; + /* */ } return; } var $f = {$blk: backtrack, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, advance, b, dstCap, end, i, ib, is, ncap, pos, re, startCond, width, x, x$1, $s};return $f; + }; + ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Longest", name: "Longest", pkg: "", typ: $funcType([], [], false)}, {prop: "get", name: "get", pkg: "regexp", typ: $funcType([], [ptrType$3], false)}, {prop: "put", name: "put", pkg: "regexp", typ: $funcType([ptrType$3], [], false)}, {prop: "NumSubexp", name: "NumSubexp", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SubexpNames", name: "SubexpNames", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "SubexpIndex", name: "SubexpIndex", pkg: "", typ: $funcType([$String], [$Int], false)}, {prop: "LiteralPrefix", name: "LiteralPrefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "MatchReader", name: "MatchReader", pkg: "", typ: $funcType([io.RuneReader], [$Bool], false)}, {prop: "MatchString", name: "MatchString", pkg: "", typ: $funcType([$String], [$Bool], false)}, {prop: "Match", name: "Match", pkg: "", typ: $funcType([sliceType$4], [$Bool], false)}, {prop: "ReplaceAllString", name: "ReplaceAllString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllLiteralString", name: "ReplaceAllLiteralString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllStringFunc", name: "ReplaceAllStringFunc", pkg: "", typ: $funcType([$String, funcType], [$String], false)}, {prop: "replaceAll", name: "replaceAll", pkg: "regexp", typ: $funcType([sliceType$4, $String, $Int, funcType$1], [sliceType$4], false)}, {prop: "ReplaceAll", name: "ReplaceAll", pkg: "", typ: $funcType([sliceType$4, sliceType$4], [sliceType$4], false)}, {prop: "ReplaceAllLiteral", name: "ReplaceAllLiteral", pkg: "", typ: $funcType([sliceType$4, sliceType$4], [sliceType$4], false)}, {prop: "ReplaceAllFunc", name: "ReplaceAllFunc", pkg: "", typ: $funcType([sliceType$4, funcType$2], [sliceType$4], false)}, {prop: "pad", name: "pad", pkg: "regexp", typ: $funcType([sliceType$7], [sliceType$7], false)}, {prop: "allMatches", name: "allMatches", pkg: "regexp", typ: $funcType([$String, sliceType$4, $Int, funcType$3], [], false)}, {prop: "Find", name: "Find", pkg: "", typ: $funcType([sliceType$4], [sliceType$4], false)}, {prop: "FindIndex", name: "FindIndex", pkg: "", typ: $funcType([sliceType$4], [sliceType$7], false)}, {prop: "FindString", name: "FindString", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "FindStringIndex", name: "FindStringIndex", pkg: "", typ: $funcType([$String], [sliceType$7], false)}, {prop: "FindReaderIndex", name: "FindReaderIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$7], false)}, {prop: "FindSubmatch", name: "FindSubmatch", pkg: "", typ: $funcType([sliceType$4], [sliceType$8], false)}, {prop: "Expand", name: "Expand", pkg: "", typ: $funcType([sliceType$4, sliceType$4, sliceType$4, sliceType$7], [sliceType$4], false)}, {prop: "ExpandString", name: "ExpandString", pkg: "", typ: $funcType([sliceType$4, $String, $String, sliceType$7], [sliceType$4], false)}, {prop: "expand", name: "expand", pkg: "regexp", typ: $funcType([sliceType$4, $String, sliceType$4, $String, sliceType$7], [sliceType$4], false)}, {prop: "FindSubmatchIndex", name: "FindSubmatchIndex", pkg: "", typ: $funcType([sliceType$4], [sliceType$7], false)}, {prop: "FindStringSubmatch", name: "FindStringSubmatch", pkg: "", typ: $funcType([$String], [sliceType$3], false)}, {prop: "FindStringSubmatchIndex", name: "FindStringSubmatchIndex", pkg: "", typ: $funcType([$String], [sliceType$7], false)}, {prop: "FindReaderSubmatchIndex", name: "FindReaderSubmatchIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$7], false)}, {prop: "FindAll", name: "FindAll", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$8], false)}, {prop: "FindAllIndex", name: "FindAllIndex", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$9], false)}, {prop: "FindAllString", name: "FindAllString", pkg: "", typ: $funcType([$String, $Int], [sliceType$3], false)}, {prop: "FindAllStringIndex", name: "FindAllStringIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$9], false)}, {prop: "FindAllSubmatch", name: "FindAllSubmatch", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$10], false)}, {prop: "FindAllSubmatchIndex", name: "FindAllSubmatchIndex", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$9], false)}, {prop: "FindAllStringSubmatch", name: "FindAllStringSubmatch", pkg: "", typ: $funcType([$String, $Int], [sliceType$11], false)}, {prop: "FindAllStringSubmatchIndex", name: "FindAllStringSubmatchIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$9], false)}, {prop: "Split", name: "Split", pkg: "", typ: $funcType([$String, $Int], [sliceType$3], false)}, {prop: "doOnePass", name: "doOnePass", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}, {prop: "doMatch", name: "doMatch", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String], [$Bool], false)}, {prop: "doExecute", name: "doExecute", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}, {prop: "tryBacktrack", name: "tryBacktrack", pkg: "regexp", typ: $funcType([ptrType$13, input, $Uint32, $Int], [$Bool], false)}, {prop: "backtrack", name: "backtrack", pkg: "regexp", typ: $funcType([sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}]; + ptrType$14.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; + ptrType$15.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; + ptrType$16.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; + ptrType$6.methods = [{prop: "empty", name: "empty", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "next", name: "next", pkg: "regexp", typ: $funcType([], [$Uint32], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "contains", name: "contains", pkg: "regexp", typ: $funcType([$Uint32], [$Bool], false)}, {prop: "insert", name: "insert", pkg: "regexp", typ: $funcType([$Uint32], [], false)}, {prop: "insertNew", name: "insertNew", pkg: "regexp", typ: $funcType([$Uint32], [], false)}]; + runeSlice.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType$3.methods = [{prop: "init", name: "init", pkg: "regexp", typ: $funcType([$Int], [], false)}, {prop: "alloc", name: "alloc", pkg: "regexp", typ: $funcType([ptrType$10], [ptrType$4], false)}, {prop: "match", name: "match", pkg: "regexp", typ: $funcType([input, $Int], [$Bool], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([ptrType$17], [], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([ptrType$17, ptrType$17, $Int, $Int, $Int32, ptrType$11], [], false)}, {prop: "add", name: "add", pkg: "regexp", typ: $funcType([ptrType$17, $Uint32, $Int, sliceType$7, ptrType$11, ptrType$4], [ptrType$4], false)}]; + ptrType$18.methods = [{prop: "newBytes", name: "newBytes", pkg: "regexp", typ: $funcType([sliceType$4], [input], false)}, {prop: "newString", name: "newString", pkg: "regexp", typ: $funcType([$String], [input], false)}, {prop: "newReader", name: "newReader", pkg: "regexp", typ: $funcType([io.RuneReader], [input], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String], [input, $Int], false)}]; + lazyFlag.methods = [{prop: "match", name: "match", pkg: "regexp", typ: $funcType([syntax.EmptyOp], [$Bool], false)}]; + ptrType$13.methods = [{prop: "reset", name: "reset", pkg: "regexp", typ: $funcType([ptrType$1, $Int, $Int], [], false)}, {prop: "shouldVisit", name: "shouldVisit", pkg: "regexp", typ: $funcType([$Uint32, $Int], [$Bool], false)}, {prop: "push", name: "push", pkg: "regexp", typ: $funcType([ptrType, $Uint32, $Int, $Bool], [], false)}]; + Regexp.init("regexp", [{prop: "expr", name: "expr", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prog", name: "prog", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "onepass", name: "onepass", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "numSubexp", name: "numSubexp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxBitStateLen", name: "maxBitStateLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "subexpNames", name: "subexpNames", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prefixBytes", name: "prefixBytes", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "prefixRune", name: "prefixRune", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "prefixEnd", name: "prefixEnd", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "mpool", name: "mpool", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prefixComplete", name: "prefixComplete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "cond", name: "cond", embedded: false, exported: false, typ: syntax.EmptyOp, tag: ""}, {prop: "minInputLen", name: "minInputLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "longest", name: "longest", embedded: false, exported: false, typ: $Bool, tag: ""}]); + input.init([{prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}]); + inputString.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); + inputBytes.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: sliceType$4, tag: ""}]); + inputReader.init("regexp", [{prop: "r", name: "r", embedded: false, exported: false, typ: io.RuneReader, tag: ""}, {prop: "atEOT", name: "atEOT", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); + onePassProg.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]); + onePassInst.init("", [{prop: "Inst", name: "Inst", embedded: true, exported: true, typ: syntax.Inst, tag: ""}, {prop: "Next", name: "Next", embedded: false, exported: true, typ: sliceType$2, tag: ""}]); + queueOnePass.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "nextIndex", name: "nextIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + runeSlice.init($Int32); + queue.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); + entry.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "t", name: "t", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); + thread.init("regexp", [{prop: "inst", name: "inst", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); + machine.init("regexp", [{prop: "re", name: "re", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "q0", name: "q0", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "q1", name: "q1", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "pool", name: "pool", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "matched", name: "matched", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}]); + inputs.init("regexp", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: inputBytes, tag: ""}, {prop: "string", name: "string", embedded: false, exported: false, typ: inputString, tag: ""}, {prop: "reader", name: "reader", embedded: false, exported: false, typ: inputReader, tag: ""}]); + onePassMachine.init("regexp", [{prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); + job.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); + bitState.init("regexp", [{prop: "end", name: "end", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "jobs", name: "jobs", embedded: false, exported: false, typ: sliceType$15, tag: ""}, {prop: "visited", name: "visited", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syntax.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + matchPool = arrayType.zero(); + specialBytes = arrayType$1.zero(); + onePassPool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError); + arrayNoInts = arrayType$2.zero(); + bitStatePool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError); + matchSize = $toNativeArray($kindInt, [128, 512, 2048, 16384, 0]); + noRune = new sliceType$1([]); + noNext = new sliceType$2([4294967295]); + anyRuneNotNL = new sliceType$1([0, 9, 11, 1114111]); + anyRune = new sliceType$1([0, 1114111]); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/lazyregexp"] = (function() { + var $pkg = {}, $init, os, regexp, strings, sync, Regexp, inTest, x, New; + os = $packages["os"]; + regexp = $packages["regexp"]; + strings = $packages["strings"]; + sync = $packages["sync"]; + Regexp = $newType(0, $kindStruct, "lazyregexp.Regexp", true, "internal/lazyregexp", true, function(str_, once_, rx_) { + this.$val = this; + if (arguments.length === 0) { + this.str = ""; + this.once = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); + this.rx = ptrType.nil; + return; + } + this.str = str_; + this.once = once_; + this.rx = rx_; + }); + $pkg.Regexp = Regexp; + $pkg.$finishSetup = function() { + $ptrType(Regexp).prototype.re = function re() { + var {r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + $r = r.once.Do($methodVal(r, "build")); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return r.rx; + /* */ } return; } var $f = {$blk: re, $c: true, $r, r, $s};return $f; + }; + $ptrType(Regexp).prototype.build = function build() { + var {_r, r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = regexp.MustCompile(r.str); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r.rx = _r; + r.str = ""; + $s = -1; return; + /* */ } return; } var $f = {$blk: build, $c: true, $r, _r, r, $s};return $f; + }; + $ptrType(Regexp).prototype.FindSubmatch = function FindSubmatch(s) { + var {$24r, _r, _r$1, r, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.re(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.FindSubmatch(s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindSubmatch, $c: true, $r, $24r, _r, _r$1, r, s, $s};return $f; + }; + $ptrType(Regexp).prototype.FindStringSubmatch = function FindStringSubmatch(s) { + var {$24r, _r, _r$1, r, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.re(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.FindStringSubmatch(s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindStringSubmatch, $c: true, $r, $24r, _r, _r$1, r, s, $s};return $f; + }; + $ptrType(Regexp).prototype.FindStringSubmatchIndex = function FindStringSubmatchIndex(s) { + var {$24r, _r, _r$1, r, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.re(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.FindStringSubmatchIndex(s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindStringSubmatchIndex, $c: true, $r, $24r, _r, _r$1, r, s, $s};return $f; + }; + $ptrType(Regexp).prototype.ReplaceAllString = function ReplaceAllString(src, repl) { + var {$24r, _r, _r$1, r, repl, src, $s, $r, $c} = $restore(this, {src, repl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.re(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.ReplaceAllString(src, repl); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: ReplaceAllString, $c: true, $r, $24r, _r, _r$1, r, repl, src, $s};return $f; + }; + $ptrType(Regexp).prototype.FindString = function FindString(s) { + var {$24r, _r, _r$1, r, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.re(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.FindString(s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindString, $c: true, $r, $24r, _r, _r$1, r, s, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllString = function FindAllString(s, n) { + var {$24r, _r, _r$1, n, r, s, $s, $r, $c} = $restore(this, {s, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.re(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.FindAllString(s, n); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindAllString, $c: true, $r, $24r, _r, _r$1, n, r, s, $s};return $f; + }; + $ptrType(Regexp).prototype.MatchString = function MatchString(s) { + var {$24r, _r, _r$1, r, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.re(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.MatchString(s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: MatchString, $c: true, $r, $24r, _r, _r$1, r, s, $s};return $f; + }; + $ptrType(Regexp).prototype.SubexpNames = function SubexpNames() { + var {$24r, _r, _r$1, r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.re(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.SubexpNames(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: SubexpNames, $c: true, $r, $24r, _r, _r$1, r, $s};return $f; + }; + New = function New$1(str) { + var {_r, lr, str, $s, $r, $c} = $restore(this, {str}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + lr = new Regexp.ptr(str, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), ptrType.nil); + /* */ if (inTest) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (inTest) { */ case 1: + _r = lr.re(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 2: + $s = -1; return lr; + /* */ } return; } var $f = {$blk: New$1, $c: true, $r, _r, lr, str, $s};return $f; + }; + $pkg.New = New; + ptrType$1.methods = [{prop: "re", name: "re", pkg: "internal/lazyregexp", typ: $funcType([], [ptrType], false)}, {prop: "build", name: "build", pkg: "internal/lazyregexp", typ: $funcType([], [], false)}, {prop: "FindSubmatch", name: "FindSubmatch", pkg: "", typ: $funcType([sliceType], [sliceType$1], false)}, {prop: "FindStringSubmatch", name: "FindStringSubmatch", pkg: "", typ: $funcType([$String], [sliceType$2], false)}, {prop: "FindStringSubmatchIndex", name: "FindStringSubmatchIndex", pkg: "", typ: $funcType([$String], [sliceType$3], false)}, {prop: "ReplaceAllString", name: "ReplaceAllString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "FindString", name: "FindString", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "FindAllString", name: "FindAllString", pkg: "", typ: $funcType([$String, $Int], [sliceType$2], false)}, {prop: "MatchString", name: "MatchString", pkg: "", typ: $funcType([$String], [$Bool], false)}, {prop: "SubexpNames", name: "SubexpNames", pkg: "", typ: $funcType([], [sliceType$2], false)}]; + Regexp.init("internal/lazyregexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "once", name: "once", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "rx", name: "rx", embedded: false, exported: false, typ: ptrType, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = os.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = regexp.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + inTest = os.Args.$length > 0 && strings.HasSuffix(strings.TrimSuffix((x = os.Args, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), ".exe"), ".test"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/doc"] = (function() { + var $pkg = {}, $init, fmt, ast, comment, token, lazyregexp, io, path, sort, strconv, strings, unicode, utf8, Filter, Example, Package, Value, Type, Func, noteMarker, noteMarkerRx, _r, noteCommentRx, _r$1, underscore, outputPrefix, _r$2, firstSentence, Synopsis, matchFields, matchDecl, filterValues, filterFuncs, filterTypes; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + comment = $packages["go/doc/comment"]; + token = $packages["go/token"]; + lazyregexp = $packages["internal/lazyregexp"]; + io = $packages["io"]; + path = $packages["path"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Filter = $newType(4, $kindFunc, "doc.Filter", true, "go/doc", true, null); + Example = $newType(0, $kindStruct, "doc.Example", true, "go/doc", true, function(Name_, Suffix_, Doc_, Code_, Play_, Comments_, Output_, Unordered_, EmptyOutput_, Order_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.Suffix = ""; + this.Doc = ""; + this.Code = $ifaceNil; + this.Play = ptrType$28.nil; + this.Comments = sliceType$13.nil; + this.Output = ""; + this.Unordered = false; + this.EmptyOutput = false; + this.Order = 0; + return; + } + this.Name = Name_; + this.Suffix = Suffix_; + this.Doc = Doc_; + this.Code = Code_; + this.Play = Play_; + this.Comments = Comments_; + this.Output = Output_; + this.Unordered = Unordered_; + this.EmptyOutput = EmptyOutput_; + this.Order = Order_; + }); + Package = $newType(0, $kindStruct, "doc.Package", true, "go/doc", true, function(Doc_, Name_, ImportPath_, Imports_, Filenames_, Notes_, Bugs_, Consts_, Types_, Vars_, Funcs_, Examples_, importByName_, syms_) { + this.$val = this; + if (arguments.length === 0) { + this.Doc = ""; + this.Name = ""; + this.ImportPath = ""; + this.Imports = sliceType.nil; + this.Filenames = sliceType.nil; + this.Notes = false; + this.Bugs = sliceType.nil; + this.Consts = sliceType$1.nil; + this.Types = sliceType$2.nil; + this.Vars = sliceType$1.nil; + this.Funcs = sliceType$3.nil; + this.Examples = sliceType$4.nil; + this.importByName = false; + this.syms = false; + return; + } + this.Doc = Doc_; + this.Name = Name_; + this.ImportPath = ImportPath_; + this.Imports = Imports_; + this.Filenames = Filenames_; + this.Notes = Notes_; + this.Bugs = Bugs_; + this.Consts = Consts_; + this.Types = Types_; + this.Vars = Vars_; + this.Funcs = Funcs_; + this.Examples = Examples_; + this.importByName = importByName_; + this.syms = syms_; + }); + Value = $newType(0, $kindStruct, "doc.Value", true, "go/doc", true, function(Doc_, Names_, Decl_, order_) { + this.$val = this; + if (arguments.length === 0) { + this.Doc = ""; + this.Names = sliceType.nil; + this.Decl = ptrType$16.nil; + this.order = 0; + return; + } + this.Doc = Doc_; + this.Names = Names_; + this.Decl = Decl_; + this.order = order_; + }); + Type = $newType(0, $kindStruct, "doc.Type", true, "go/doc", true, function(Doc_, Name_, Decl_, Consts_, Vars_, Funcs_, Methods_, Examples_) { + this.$val = this; + if (arguments.length === 0) { + this.Doc = ""; + this.Name = ""; + this.Decl = ptrType$16.nil; + this.Consts = sliceType$1.nil; + this.Vars = sliceType$1.nil; + this.Funcs = sliceType$3.nil; + this.Methods = sliceType$3.nil; + this.Examples = sliceType$4.nil; + return; + } + this.Doc = Doc_; + this.Name = Name_; + this.Decl = Decl_; + this.Consts = Consts_; + this.Vars = Vars_; + this.Funcs = Funcs_; + this.Methods = Methods_; + this.Examples = Examples_; + }); + Func = $newType(0, $kindStruct, "doc.Func", true, "go/doc", true, function(Doc_, Name_, Decl_, Recv_, Orig_, Level_, Examples_) { + this.$val = this; + if (arguments.length === 0) { + this.Doc = ""; + this.Name = ""; + this.Decl = ptrType$11.nil; + this.Recv = ""; + this.Orig = ""; + this.Level = 0; + this.Examples = sliceType$4.nil; + return; + } + this.Doc = Doc_; + this.Name = Name_; + this.Decl = Decl_; + this.Recv = Recv_; + this.Orig = Orig_; + this.Level = Level_; + this.Examples = Examples_; + }); + $pkg.Filter = Filter; + $pkg.Example = Example; + $pkg.Package = Package; + $pkg.Value = Value; + $pkg.Type = Type; + $pkg.Func = Func; + $pkg.$finishSetup = function() { + firstSentence = function firstSentence$1(s) { + var _i, _ref, _rune, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, i, p, pp, ppp, q, s; + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = 0; + ppp = _tmp; + pp = _tmp$1; + p = _tmp$2; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + q = _rune[0]; + if ((q === 10) || (q === 13) || (q === 9)) { + q = 32; + } + if ((q === 32) && (p === 46) && (!unicode.IsUpper(pp) || unicode.IsUpper(ppp))) { + return $substring(s, 0, i); + } + if ((p === 12290) || (p === 65294)) { + return $substring(s, 0, i); + } + _tmp$3 = pp; + _tmp$4 = p; + _tmp$5 = q; + ppp = _tmp$3; + pp = _tmp$4; + p = _tmp$5; + _i += _rune[1]; + } + return s; + }; + Synopsis = function Synopsis$1(text) { + var {$24r, _r$3, p, text, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = new Package.ptr("", "", "", sliceType.nil, sliceType.nil, false, sliceType.nil, sliceType$1.nil, sliceType$2.nil, sliceType$1.nil, sliceType$3.nil, sliceType$4.nil, false, false); + _r$3 = p.Synopsis(text); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Synopsis$1, $c: true, $r, $24r, _r$3, p, text, $s};return $f; + }; + $pkg.Synopsis = Synopsis; + $ptrType(Package).prototype.Synopsis = function Synopsis$2(text) { + var {$24r, _i, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, d, lower, ok, p, pr, prefix, text, x, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + text = firstSentence(text); + _r$3 = strings.ToLower(text); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + lower = _r$3; + _ref = $pkg.IllegalPrefixes; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + prefix = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (strings.HasPrefix(lower, prefix)) { + $s = -1; return ""; + } + _i++; + } + pr = p.Printer(); + pr.TextWidth = -1; + _r$4 = p.Parser().Parse(text); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + d = _r$4; + if (d.Content.$length === 0) { + $s = -1; return ""; + } + _tuple = $assertType((x = d.Content, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), ptrType$4, true); + ok = _tuple[1]; + if (!ok) { + $s = -1; return ""; + } + d.Content = $subslice(d.Content, 0, 1); + _r$5 = pr.Text(d); /* */ $s = 3; case 3: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = strings.TrimSpace(($bytesToString(_r$5))); /* */ $s = 4; case 4: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r = _r$6; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: Synopsis$2, $c: true, $r, $24r, _i, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, d, lower, ok, p, pr, prefix, text, x, $s};return $f; + }; + matchFields = function matchFields$1(fields$2, f) { + var {_i, _i$1, _r$3, _ref, _ref$1, f, field, fields$2, name, $s, $r, $c} = $restore(this, {fields$2, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (!(fields$2 === ptrType$10.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(fields$2 === ptrType$10.nil)) { */ case 1: + _ref = fields$2.List; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + field = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = field.Names; + _i$1 = 0; + /* while (true) { */ case 5: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } + name = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$3 = f(name.Name); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r$3) { */ case 7: + $s = -1; return true; + /* } */ case 8: + _i$1++; + $s = 5; continue; + case 6: + _i++; + $s = 3; continue; + case 4: + /* } */ case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: matchFields$1, $c: true, $r, _i, _i$1, _r$3, _ref, _ref$1, f, field, fields$2, name, $s};return $f; + }; + matchDecl = function matchDecl$1(d, f) { + var {_i, _i$1, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, d, d$1, f, name, t, t$1, v, v$1, $s, $r, $c} = $restore(this, {d, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = d.Specs; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + d$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = d$1; + /* */ if ($assertType(_ref$1, ptrType$18, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, ptrType$27, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref$1, ptrType$18, true)[1]) { */ case 3: + v = _ref$1.$val; + _ref$2 = v.Names; + _i$1 = 0; + /* while (true) { */ case 6: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 7; continue; } + name = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + _r$3 = f(name.Name); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_r$3) { */ case 8: + $s = -1; return true; + /* } */ case 9: + _i$1++; + $s = 6; continue; + case 7: + $s = 5; continue; + /* } else if ($assertType(_ref$1, ptrType$27, true)[1]) { */ case 4: + v$1 = _ref$1.$val; + _r$4 = f(v$1.Name.Name); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_r$4) { */ case 11: + $s = -1; return true; + /* } */ case 12: + _ref$3 = v$1.Type; + /* */ if ($assertType(_ref$3, ptrType$21, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref$3, ptrType$17, true)[1]) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ($assertType(_ref$3, ptrType$21, true)[1]) { */ case 14: + t = _ref$3.$val; + _r$5 = matchFields(t.Fields, f); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (_r$5) { */ case 17: + $s = -1; return true; + /* } */ case 18: + $s = 16; continue; + /* } else if ($assertType(_ref$3, ptrType$17, true)[1]) { */ case 15: + t$1 = _ref$3.$val; + _r$6 = matchFields(t$1.Methods, f); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_r$6) { */ case 20: + $s = -1; return true; + /* } */ case 21: + /* } */ case 16: + /* } */ case 5: + _i++; + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: matchDecl$1, $c: true, $r, _i, _i$1, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, d, d$1, f, name, t, t$1, v, v$1, $s};return $f; + }; + filterValues = function filterValues$1(a, f) { + var {_i, _r$3, _ref, a, f, vd, w, $s, $r, $c} = $restore(this, {a, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = 0; + _ref = a; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + vd = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$3 = matchDecl(vd.Decl, f); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$3) { */ case 3: + ((w < 0 || w >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + w] = vd); + w = w + (1) >> 0; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return $subslice(a, 0, w); + /* */ } return; } var $f = {$blk: filterValues$1, $c: true, $r, _i, _r$3, _ref, a, f, vd, w, $s};return $f; + }; + filterFuncs = function filterFuncs$1(a, f) { + var {_i, _r$3, _ref, a, f, fd, w, $s, $r, $c} = $restore(this, {a, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = 0; + _ref = a; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + fd = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$3 = f(fd.Name); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$3) { */ case 3: + ((w < 0 || w >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + w] = fd); + w = w + (1) >> 0; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return $subslice(a, 0, w); + /* */ } return; } var $f = {$blk: filterFuncs$1, $c: true, $r, _i, _r$3, _ref, a, f, fd, w, $s};return $f; + }; + filterTypes = function filterTypes$1(a, f) { + var {_i, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, a, f, n, td, w, $s, $r, $c} = $restore(this, {a, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = 0; + _ref = a; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + td = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + n = 0; + _r$3 = matchDecl(td.Decl, f); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$3) { */ case 3: + n = 1; + $s = 5; continue; + /* } else { */ case 4: + _r$4 = filterValues(td.Consts, f); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + td.Consts = _r$4; + _r$5 = filterValues(td.Vars, f); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + td.Vars = _r$5; + _r$6 = filterFuncs(td.Funcs, f); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + td.Funcs = _r$6; + _r$7 = filterFuncs(td.Methods, f); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + td.Methods = _r$7; + n = n + ((((td.Consts.$length + td.Vars.$length >> 0) + td.Funcs.$length >> 0) + td.Methods.$length >> 0)) >> 0; + /* } */ case 5: + if (n > 0) { + ((w < 0 || w >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + w] = td); + w = w + (1) >> 0; + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return $subslice(a, 0, w); + /* */ } return; } var $f = {$blk: filterTypes$1, $c: true, $r, _i, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, a, f, n, td, w, $s};return $f; + }; + $ptrType(Package).prototype.Filter = function Filter$1(f) { + var {_r$3, _r$4, _r$5, _r$6, f, p, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r$3 = filterValues(p.Consts, f); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + p.Consts = _r$3; + _r$4 = filterValues(p.Vars, f); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + p.Vars = _r$4; + _r$5 = filterTypes(p.Types, f); /* */ $s = 3; case 3: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + p.Types = _r$5; + _r$6 = filterFuncs(p.Funcs, f); /* */ $s = 4; case 4: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + p.Funcs = _r$6; + p.Doc = ""; + $s = -1; return; + /* */ } return; } var $f = {$blk: Filter$1, $c: true, $r, _r$3, _r$4, _r$5, _r$6, f, p, $s};return $f; + }; + $ptrType(Package).prototype.lookupSym = function lookupSym(recv, name) { + var _entry, _entry$1, name, p, recv; + p = this; + if (!(recv === "")) { + return (_entry = $mapIndex(p.syms,$String.keyFor(recv + "." + name)), _entry !== undefined ? _entry.v : false); + } + return (_entry$1 = $mapIndex(p.syms,$String.keyFor(name)), _entry$1 !== undefined ? _entry$1.v : false); + }; + $ptrType(Package).prototype.lookupPackage = function lookupPackage(name) { + var _entry, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, importPath, name, ok, ok$1, p, path$1; + importPath = ""; + ok = false; + p = this; + _tuple = (_entry = $mapIndex(p.importByName,$String.keyFor(name)), _entry !== undefined ? [_entry.v, true] : ["", false]); + path$1 = _tuple[0]; + ok$1 = _tuple[1]; + if (ok$1) { + if (path$1 === "") { + _tmp = ""; + _tmp$1 = false; + importPath = _tmp; + ok = _tmp$1; + return [importPath, ok]; + } + _tmp$2 = path$1; + _tmp$3 = true; + importPath = _tmp$2; + ok = _tmp$3; + return [importPath, ok]; + } + if (p.Name === name) { + _tmp$4 = ""; + _tmp$5 = true; + importPath = _tmp$4; + ok = _tmp$5; + return [importPath, ok]; + } + _tmp$6 = ""; + _tmp$7 = false; + importPath = _tmp$6; + ok = _tmp$7; + return [importPath, ok]; + }; + $ptrType(Package).prototype.Parser = function Parser() { + var p; + p = this; + return new comment.Parser.ptr(false, $methodVal(p, "lookupPackage"), $methodVal(p, "lookupSym")); + }; + $ptrType(Package).prototype.Printer = function Printer() { + var p; + p = this; + return new comment.Printer.ptr(0, $throwNilPointerError, $throwNilPointerError, "", "", "", 0); + }; + $ptrType(Package).prototype.HTML = function HTML(text) { + var {$24r, _r$3, _r$4, p, text, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r$3 = p.Parser().Parse(text); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = p.Printer().HTML(_r$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: HTML, $c: true, $r, $24r, _r$3, _r$4, p, text, $s};return $f; + }; + $ptrType(Package).prototype.Markdown = function Markdown(text) { + var {$24r, _r$3, _r$4, p, text, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r$3 = p.Parser().Parse(text); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = p.Printer().Markdown(_r$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Markdown, $c: true, $r, $24r, _r$3, _r$4, p, text, $s};return $f; + }; + $ptrType(Package).prototype.Text = function Text(text) { + var {$24r, _r$3, _r$4, p, text, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r$3 = p.Parser().Parse(text); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = p.Printer().Text(_r$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Text, $c: true, $r, $24r, _r$3, _r$4, p, text, $s};return $f; + }; + ptrType$41.methods = [{prop: "Synopsis", name: "Synopsis", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Filter", name: "Filter", pkg: "", typ: $funcType([Filter], [], false)}, {prop: "collectValues", name: "collectValues", pkg: "go/doc", typ: $funcType([sliceType$1], [], false)}, {prop: "collectTypes", name: "collectTypes", pkg: "go/doc", typ: $funcType([sliceType$2], [], false)}, {prop: "collectFuncs", name: "collectFuncs", pkg: "go/doc", typ: $funcType([sliceType$3], [], false)}, {prop: "lookupSym", name: "lookupSym", pkg: "go/doc", typ: $funcType([$String, $String], [$Bool], false)}, {prop: "lookupPackage", name: "lookupPackage", pkg: "go/doc", typ: $funcType([$String], [$String, $Bool], false)}, {prop: "Parser", name: "Parser", pkg: "", typ: $funcType([], [ptrType$45], false)}, {prop: "Printer", name: "Printer", pkg: "", typ: $funcType([], [ptrType$46], false)}, {prop: "HTML", name: "HTML", pkg: "", typ: $funcType([$String], [sliceType$6], false)}, {prop: "Markdown", name: "Markdown", pkg: "", typ: $funcType([$String], [sliceType$6], false)}, {prop: "Text", name: "Text", pkg: "", typ: $funcType([$String], [sliceType$6], false)}]; + Filter.init([$String], [$Bool], false); + Example.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Suffix", name: "Suffix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Doc", name: "Doc", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Code", name: "Code", embedded: false, exported: true, typ: ast.Node, tag: ""}, {prop: "Play", name: "Play", embedded: false, exported: true, typ: ptrType$28, tag: ""}, {prop: "Comments", name: "Comments", embedded: false, exported: true, typ: sliceType$13, tag: ""}, {prop: "Output", name: "Output", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Unordered", name: "Unordered", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "EmptyOutput", name: "EmptyOutput", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Order", name: "Order", embedded: false, exported: true, typ: $Int, tag: ""}]); + Package.init("go/doc", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ImportPath", name: "ImportPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Imports", name: "Imports", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Filenames", name: "Filenames", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Notes", name: "Notes", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "Bugs", name: "Bugs", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Consts", name: "Consts", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Types", name: "Types", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "Vars", name: "Vars", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Funcs", name: "Funcs", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "Examples", name: "Examples", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "importByName", name: "importByName", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "syms", name: "syms", embedded: false, exported: false, typ: mapType$4, tag: ""}]); + Value.init("go/doc", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Names", name: "Names", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Decl", name: "Decl", embedded: false, exported: true, typ: ptrType$16, tag: ""}, {prop: "order", name: "order", embedded: false, exported: false, typ: $Int, tag: ""}]); + Type.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Decl", name: "Decl", embedded: false, exported: true, typ: ptrType$16, tag: ""}, {prop: "Consts", name: "Consts", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Vars", name: "Vars", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Funcs", name: "Funcs", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "Methods", name: "Methods", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "Examples", name: "Examples", embedded: false, exported: true, typ: sliceType$4, tag: ""}]); + Func.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Decl", name: "Decl", embedded: false, exported: true, typ: ptrType$11, tag: ""}, {prop: "Recv", name: "Recv", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Orig", name: "Orig", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Level", name: "Level", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Examples", name: "Examples", embedded: false, exported: true, typ: sliceType$4, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = comment.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = lazyregexp.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = path.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.IllegalPrefixes = new sliceType(["copyright", "all rights", "author"]); + noteMarker = "([A-Z][A-Z]+)\\(([^)]+)\\):?"; + _r = lazyregexp.New("^[ \\t]*" + noteMarker); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + noteMarkerRx = _r; + _r$1 = lazyregexp.New("^/[/*][ \\t]*" + noteMarker); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + noteCommentRx = _r$1; + underscore = ast.NewIdent("_"); + _r$2 = lazyregexp.New("(?i)^[[:space:]]*(unordered )?output:"); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + outputPrefix = _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/internal/typeparams"] = (function() { + var $pkg = {}, $init, ast, token, IndexExpr, PackIndexExpr, UnpackIndexExpr; + ast = $packages["go/ast"]; + token = $packages["go/token"]; + IndexExpr = $newType(0, $kindStruct, "typeparams.IndexExpr", true, "go/internal/typeparams", true, function(Orig_, IndexListExpr_) { + this.$val = this; + if (arguments.length === 0) { + this.Orig = $ifaceNil; + this.IndexListExpr = ptrType$1.nil; + return; + } + this.Orig = Orig_; + this.IndexListExpr = IndexListExpr_; + }); + $pkg.IndexExpr = IndexExpr; + $pkg.$finishSetup = function() { + PackIndexExpr = function PackIndexExpr$1(x, lbrack, exprs, rbrack) { + var _1, exprs, lbrack, rbrack, x; + _1 = exprs.$length; + if (_1 === (0)) { + $panic(new $String("internal error: PackIndexExpr with empty expr slice")); + } else if (_1 === (1)) { + return new ast.IndexExpr.ptr(x, lbrack, (0 >= exprs.$length ? ($throwRuntimeError("index out of range"), undefined) : exprs.$array[exprs.$offset + 0]), rbrack); + } else { + return new ast.IndexListExpr.ptr(x, lbrack, exprs, rbrack); + } + }; + $pkg.PackIndexExpr = PackIndexExpr; + UnpackIndexExpr = function UnpackIndexExpr$1(n) { + var _ref, e, e$1, n; + _ref = n; + if ($assertType(_ref, ptrType, true)[1]) { + e = _ref.$val; + return new IndexExpr.ptr(e, new ast.IndexListExpr.ptr(e.X, e.Lbrack, new sliceType([e.Index]), e.Rbrack)); + } else if ($assertType(_ref, ptrType$1, true)[1]) { + e$1 = _ref.$val; + return new IndexExpr.ptr(e$1, e$1); + } + return ptrType$2.nil; + }; + $pkg.UnpackIndexExpr = UnpackIndexExpr; + IndexExpr.init("", [{prop: "Orig", name: "Orig", embedded: false, exported: true, typ: ast.Expr, tag: ""}, {prop: "IndexListExpr", name: "IndexListExpr", embedded: true, exported: true, typ: ptrType$1, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = ast.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/parser"] = (function() { + var $pkg = {}, $init, bytes, errors, fmt, ast, typeparams, scanner, token, io, fs, os, filepath, strconv, strings, unicode, resolver, parser, bailout, field, parseSpecFunction, Mode, unresolved, stmtStart, declStart, exprEnd, resolveFile, trace, un, incNestLev, decNestLev, assert, unparen, isTypeSwitchAssert, isValidImport, extractName, isTypeElem, readSource, ParseFile; + bytes = $packages["bytes"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + typeparams = $packages["go/internal/typeparams"]; + scanner = $packages["go/scanner"]; + token = $packages["go/token"]; + io = $packages["io"]; + fs = $packages["io/fs"]; + os = $packages["os"]; + filepath = $packages["path/filepath"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + resolver = $newType(0, $kindStruct, "parser.resolver", true, "go/parser", false, function(handle_, declErr_, pkgScope_, topScope_, unresolved_, depth_, labelScope_, targetStack_) { + this.$val = this; + if (arguments.length === 0) { + this.handle = ptrType$1.nil; + this.declErr = $throwNilPointerError; + this.pkgScope = ptrType.nil; + this.topScope = ptrType.nil; + this.unresolved = sliceType.nil; + this.depth = 0; + this.labelScope = ptrType.nil; + this.targetStack = sliceType$1.nil; + return; + } + this.handle = handle_; + this.declErr = declErr_; + this.pkgScope = pkgScope_; + this.topScope = topScope_; + this.unresolved = unresolved_; + this.depth = depth_; + this.labelScope = labelScope_; + this.targetStack = targetStack_; + }); + parser = $newType(0, $kindStruct, "parser.parser", true, "go/parser", false, function(file_, errors_, scanner_, mode_, trace_, indent_, comments_, leadComment_, lineComment_, pos_, tok_, lit_, syncPos_, syncCnt_, exprLev_, inRhs_, imports_, nestLev_) { + this.$val = this; + if (arguments.length === 0) { + this.file = ptrType$1.nil; + this.errors = scanner.ErrorList.nil; + this.scanner = new scanner.Scanner.ptr(ptrType$1.nil, "", sliceType$12.nil, $throwNilPointerError, 0, 0, 0, 0, 0, false, 0); + this.mode = 0; + this.trace = false; + this.indent = 0; + this.comments = sliceType$11.nil; + this.leadComment = ptrType$33.nil; + this.lineComment = ptrType$33.nil; + this.pos = 0; + this.tok = 0; + this.lit = ""; + this.syncPos = 0; + this.syncCnt = 0; + this.exprLev = 0; + this.inRhs = false; + this.imports = sliceType$10.nil; + this.nestLev = 0; + return; + } + this.file = file_; + this.errors = errors_; + this.scanner = scanner_; + this.mode = mode_; + this.trace = trace_; + this.indent = indent_; + this.comments = comments_; + this.leadComment = leadComment_; + this.lineComment = lineComment_; + this.pos = pos_; + this.tok = tok_; + this.lit = lit_; + this.syncPos = syncPos_; + this.syncCnt = syncCnt_; + this.exprLev = exprLev_; + this.inRhs = inRhs_; + this.imports = imports_; + this.nestLev = nestLev_; + }); + bailout = $newType(0, $kindStruct, "parser.bailout", true, "go/parser", false, function(pos_, msg_) { + this.$val = this; + if (arguments.length === 0) { + this.pos = 0; + this.msg = ""; + return; + } + this.pos = pos_; + this.msg = msg_; + }); + field = $newType(0, $kindStruct, "parser.field", true, "go/parser", false, function(name_, typ_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ptrType$2.nil; + this.typ = $ifaceNil; + return; + } + this.name = name_; + this.typ = typ_; + }); + parseSpecFunction = $newType(4, $kindFunc, "parser.parseSpecFunction", true, "go/parser", false, null); + Mode = $newType(4, $kindUint, "parser.Mode", true, "go/parser", true, null); + $pkg.resolver = resolver; + $pkg.parser = parser; + $pkg.bailout = bailout; + $pkg.field = field; + $pkg.parseSpecFunction = parseSpecFunction; + $pkg.Mode = Mode; + $pkg.$finishSetup = function() { + resolveFile = function resolveFile$1(file, handle, declErr) { + var {_i, _i$1, _r, _ref, _ref$1, decl, declErr, file, handle, i, ident, pkgScope, pos, r, x, $s, $r, $c} = $restore(this, {file, handle, declErr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pkgScope = ast.NewScope(ptrType.nil); + r = new resolver.ptr(handle, declErr, pkgScope, pkgScope, sliceType.nil, 1, ptrType.nil, sliceType$1.nil); + _ref = file.Decls; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + decl = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = ast.Walk(r, decl); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $r = r.closeScope(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + assert(r.topScope === ptrType.nil, "unbalanced scopes"); + assert(r.labelScope === ptrType.nil, "unbalanced label scopes"); + i = 0; + _ref$1 = r.unresolved; + _i$1 = 0; + /* while (true) { */ case 5: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } + ident = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + assert(ident.Obj === unresolved, "object already resolved"); + ident.Obj = r.pkgScope.Lookup(ident.Name); + /* */ if (ident.Obj === ptrType$3.nil) { $s = 7; continue; } + /* */ if (false) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (ident.Obj === ptrType$3.nil) { */ case 7: + (x = r.unresolved, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = ident)); + i = i + (1) >> 0; + $s = 9; continue; + /* } else if (false) { */ case 8: + _r = $assertType(ident.Obj.Decl, interfaceType).Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + pos = _r; + $r = r.trace("resolved %s@%v to package object %v", new sliceType$2([new $String(ident.Name), new token.Pos(ident.Pos()), new token.Pos(pos)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + _i$1++; + $s = 5; continue; + case 6: + file.Scope = r.pkgScope; + file.Unresolved = $subslice(r.unresolved, 0, i); + $s = -1; return; + /* */ } return; } var $f = {$blk: resolveFile$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, decl, declErr, file, handle, i, ident, pkgScope, pos, r, x, $s};return $f; + }; + $ptrType(resolver).prototype.trace = function trace$1(format, args) { + var {_r, _r$1, args, format, r, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.sprintf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = fmt.Println(new sliceType$2([new $String(strings.Repeat(". ", r.depth) + _r)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* */ } return; } var $f = {$blk: trace$1, $c: true, $r, _r, _r$1, args, format, r, $s};return $f; + }; + $ptrType(resolver).prototype.sprintf = function sprintf(format, args) { + var {$24r, _i, _r, _r$1, _ref, _ref$1, arg, arg$1, args, format, i, r, x, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _ref = args; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = arg; + /* */ if ($assertType(_ref$1, token.Pos, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref$1, token.Pos, true)[1]) { */ case 3: + arg$1 = _ref$1.$val; + _r = r.handle.Position(arg$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ((i < 0 || i >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i] = (x = _r, new x.constructor.elem(x))); + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + _r$1 = fmt.Sprintf(format, args); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 7; case 7: return $24r; + /* */ } return; } var $f = {$blk: sprintf, $c: true, $r, $24r, _i, _r, _r$1, _ref, _ref$1, arg, arg$1, args, format, i, r, x, $s};return $f; + }; + $ptrType(resolver).prototype.openScope = function openScope(pos) { + var {pos, r, x, $s, $r, $c} = $restore(this, {pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + r.depth = r.depth + (1) >> 0; + if (r.depth > 1000) { + $panic((x = new bailout.ptr(pos, "exceeded max scope depth during object resolution"), new x.constructor.elem(x))); + } + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = r.trace("opening scope @%v", new sliceType$2([new token.Pos(pos)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + r.topScope = ast.NewScope(r.topScope); + $s = -1; return; + /* */ } return; } var $f = {$blk: openScope, $c: true, $r, pos, r, x, $s};return $f; + }; + $ptrType(resolver).prototype.closeScope = function closeScope() { + var {r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + r.depth = r.depth - (1) >> 0; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = r.trace("closing scope", sliceType$2.nil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + r.topScope = r.topScope.Outer; + $s = -1; return; + /* */ } return; } var $f = {$blk: closeScope, $c: true, $r, r, $s};return $f; + }; + $ptrType(resolver).prototype.openLabelScope = function openLabelScope() { + var r; + r = this; + r.labelScope = ast.NewScope(r.labelScope); + r.targetStack = $append(r.targetStack, sliceType.nil); + }; + $ptrType(resolver).prototype.closeLabelScope = function closeLabelScope() { + var {_arg, _arg$1, _i, _r, _ref, ident, n, r, scope, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + n = r.targetStack.$length - 1 >> 0; + scope = r.labelScope; + _ref = (x = r.targetStack, ((n < 0 || n >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + n])); + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + ident = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ident.Obj = scope.Lookup(ident.Name); + /* */ if (ident.Obj === ptrType$3.nil && !(r.declErr === $throwNilPointerError)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ident.Obj === ptrType$3.nil && !(r.declErr === $throwNilPointerError)) { */ case 3: + _arg = ident.Pos(); + _r = fmt.Sprintf("label %s undefined", new sliceType$2([new $String(ident.Name)])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $r = r.declErr(_arg, _arg$1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + r.targetStack = $subslice(r.targetStack, 0, n); + r.labelScope = r.labelScope.Outer; + $s = -1; return; + /* */ } return; } var $f = {$blk: closeLabelScope, $c: true, $r, _arg, _arg$1, _i, _r, _ref, ident, n, r, scope, x, $s};return $f; + }; + $ptrType(resolver).prototype.declare = function declare(decl, data, scope, kind, idents) { + var {_arg, _arg$1, _i, _r, _r$1, _r$2, _ref, _tuple, alt, data, decl, ident, idents, kind, obj, ok, pos, prevDecl, r, scope, $s, $r, $c} = $restore(this, {decl, data, scope, kind, idents}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _ref = idents; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + ident = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (!(ident.Obj === ptrType$3.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(ident.Obj === ptrType$3.nil)) { */ case 3: + _r = fmt.Sprintf("%v: identifier %s already declared or resolved", new sliceType$2([new token.Pos(ident.Pos()), new $String(ident.Name)])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); + /* } */ case 4: + obj = ast.NewObj(kind, ident.Name); + obj.Decl = decl; + obj.Data = data; + _tuple = $assertType(decl, ptrType$2, true); + ok = _tuple[1]; + if (!ok) { + ident.Obj = obj; + } + /* */ if (!(ident.Name === "_")) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(ident.Name === "_")) { */ case 6: + /* */ if (false) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (false) { */ case 8: + $r = r.trace("declaring %s@%v", new sliceType$2([new $String(ident.Name), new token.Pos(ident.Pos())])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + alt = scope.Insert(obj); + /* */ if (!(alt === ptrType$3.nil) && !(r.declErr === $throwNilPointerError)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!(alt === ptrType$3.nil) && !(r.declErr === $throwNilPointerError)) { */ case 11: + prevDecl = ""; + pos = alt.Pos(); + /* */ if (new token.Pos(pos).IsValid()) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (new token.Pos(pos).IsValid()) { */ case 13: + _r$1 = r.sprintf("\n\tprevious declaration at %v", new sliceType$2([new token.Pos(pos)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + prevDecl = _r$1; + /* } */ case 14: + _arg = ident.Pos(); + _r$2 = fmt.Sprintf("%s redeclared in this block%s", new sliceType$2([new $String(ident.Name), new $String(prevDecl)])); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + $r = r.declErr(_arg, _arg$1); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + /* } */ case 7: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: declare, $c: true, $r, _arg, _arg$1, _i, _r, _r$1, _r$2, _ref, _tuple, alt, data, decl, ident, idents, kind, obj, ok, pos, prevDecl, r, scope, $s};return $f; + }; + $ptrType(resolver).prototype.shortVarDecl = function shortVarDecl(decl) { + var {_i, _r, _ref, _tuple, alt, decl, ident, isIdent, n, obj, r, x, x$1, $s, $r, $c} = $restore(this, {decl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + n = 0; + _ref = decl.Lhs; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple = $assertType(x, ptrType$2, true); + ident = _tuple[0]; + isIdent = _tuple[1]; + /* */ if (isIdent) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (isIdent) { */ case 3: + assert(ident.Obj === ptrType$3.nil, "identifier already declared or resolved"); + obj = ast.NewObj(4, ident.Name); + obj.Decl = decl; + ident.Obj = obj; + /* */ if (!(ident.Name === "_")) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(ident.Name === "_")) { */ case 5: + /* */ if (false) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (false) { */ case 7: + $r = r.trace("declaring %s@%v", new sliceType$2([new $String(ident.Name), new token.Pos(ident.Pos())])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + alt = r.topScope.Insert(obj); + if (!(alt === ptrType$3.nil)) { + ident.Obj = alt; + } else { + n = n + (1) >> 0; + } + /* } */ case 6: + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + /* */ if ((n === 0) && !(r.declErr === $throwNilPointerError)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((n === 0) && !(r.declErr === $throwNilPointerError)) { */ case 10: + _r = (x$1 = decl.Lhs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Pos(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = r.declErr(_r, "no new variables on left side of :="); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + $s = -1; return; + /* */ } return; } var $f = {$blk: shortVarDecl, $c: true, $r, _i, _r, _ref, _tuple, alt, decl, ident, isIdent, n, obj, r, x, x$1, $s};return $f; + }; + $ptrType(resolver).prototype.resolve = function resolve(ident, collectUnresolved) { + var {_r, _tuple, collectUnresolved, ident, obj, ok, r, s, $s, $r, $c} = $restore(this, {ident, collectUnresolved}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + /* */ if (!(ident.Obj === ptrType$3.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(ident.Obj === ptrType$3.nil)) { */ case 1: + _r = r.sprintf("%v: identifier %s already declared or resolved", new sliceType$2([new token.Pos(ident.Pos()), new $String(ident.Name)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); + /* } */ case 2: + if (ident.Name === "_") { + $s = -1; return; + } + s = r.topScope; + /* while (true) { */ case 4: + /* if (!(!(s === ptrType.nil))) { break; } */ if(!(!(s === ptrType.nil))) { $s = 5; continue; } + obj = s.Lookup(ident.Name); + /* */ if (!(obj === ptrType$3.nil)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(obj === ptrType$3.nil)) { */ case 6: + /* */ if (false) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (false) { */ case 8: + $r = r.trace("resolved %v:%s to %v", new sliceType$2([new token.Pos(ident.Pos()), new $String(ident.Name), obj])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + assert(!(obj.Name === ""), "obj with no name"); + _tuple = $assertType(obj.Decl, ptrType$2, true); + ok = _tuple[1]; + if (!ok) { + ident.Obj = obj; + } + $s = -1; return; + /* } */ case 7: + s = s.Outer; + $s = 4; continue; + case 5: + if (collectUnresolved) { + ident.Obj = unresolved; + r.unresolved = $append(r.unresolved, ident); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: resolve, $c: true, $r, _r, _tuple, collectUnresolved, ident, obj, ok, r, s, $s};return $f; + }; + $ptrType(resolver).prototype.walkExprs = function walkExprs(list) { + var {_i, _ref, list, node, r, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + node = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = ast.Walk(r, node); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkExprs, $c: true, $r, _i, _ref, list, node, r, $s};return $f; + }; + $ptrType(resolver).prototype.walkLHS = function walkLHS(list) { + var {_i, _ref, _tuple, expr, expr$1, list, ok, r, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + expr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + expr$1 = unparen(expr); + _tuple = $assertType(expr$1, ptrType$2, true); + ok = _tuple[1]; + /* */ if (!ok && !($interfaceIsEqual(expr$1, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!ok && !($interfaceIsEqual(expr$1, $ifaceNil))) { */ case 3: + $r = ast.Walk(r, expr$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkLHS, $c: true, $r, _i, _ref, _tuple, expr, expr$1, list, ok, r, $s};return $f; + }; + $ptrType(resolver).prototype.walkStmts = function walkStmts(list) { + var {_i, _ref, list, r, stmt, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + stmt = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = ast.Walk(r, stmt); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkStmts, $c: true, $r, _i, _ref, list, r, stmt, $s};return $f; + }; + $ptrType(resolver).prototype.Visit = function Visit(node) { + var {$24r, $24r$1, _1, _arg, _arg$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, as, depth, e, i, ident, kind, kv, lhs, n, n$1, n$10, n$11, n$12, n$13, n$14, n$15, n$16, n$17, n$18, n$19, n$2, n$20, n$21, n$3, n$4, n$5, n$6, n$7, n$8, n$9, node, r, spec, spec$1, spec$2, spec$3, x, x$1, $s, $deferred, $r, $c} = $restore(this, {node}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + r = this; + /* */ if (false && !($interfaceIsEqual(node, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false && !($interfaceIsEqual(node, $ifaceNil))) { */ case 1: + _arg = node; + _r = node.Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = new token.Pos(_r); + $r = r.trace("node %T@%v", new sliceType$2([_arg, _arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _ref = node; + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, ptrType$19, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, ptrType$22, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, ptrType$23, true)[1]) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 5: + n = _ref.$val; + $r = r.resolve(n, true); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 6: + n$1 = _ref.$val; + _r$1 = n$1.Pos(); /* */ $s = 29; case 29: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = r.openScope(_r$1); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkFuncType(n$1.Type); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.walkBody(n$1.Body); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 7: + n$2 = _ref.$val; + $r = ast.Walk(r, n$2.X); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$6, true)[1]) { */ case 8: + n$3 = _ref.$val; + $r = r.openScope(n$3.Pos()); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkFieldList(n$3.Fields, 4); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$7, true)[1]) { */ case 9: + n$4 = _ref.$val; + _r$2 = n$4.Pos(); /* */ $s = 36; case 36: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = r.openScope(_r$2); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkFuncType(n$4); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 10: + n$5 = _ref.$val; + /* */ if (!($interfaceIsEqual(n$5.Type, $ifaceNil))) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (!($interfaceIsEqual(n$5.Type, $ifaceNil))) { */ case 39: + $r = ast.Walk(r, n$5.Type); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 40: + _ref$1 = n$5.Elts; + _i = 0; + /* while (true) { */ case 42: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 43; continue; } + e = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _tuple = $assertType(e, ptrType$24, true); + kv = _tuple[0]; + /* */ if (!(kv === ptrType$24.nil)) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!(kv === ptrType$24.nil)) { */ case 44: + _tuple$1 = $assertType(kv.Key, ptrType$2, true); + ident = _tuple$1[0]; + /* */ if (!(ident === ptrType$2.nil)) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (!(ident === ptrType$2.nil)) { */ case 47: + $r = r.resolve(ident, false); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 49; continue; + /* } else { */ case 48: + $r = ast.Walk(r, kv.Key); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 49: + $r = ast.Walk(r, kv.Value); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 46; continue; + /* } else { */ case 45: + $r = ast.Walk(r, e); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 46: + _i++; + $s = 42; continue; + case 43: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 11: + n$6 = _ref.$val; + $r = r.openScope(n$6.Pos()); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkFieldList(n$6.Methods, 5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 12: + n$7 = _ref.$val; + $r = r.declare(n$7, $ifaceNil, r.labelScope, 6, new sliceType([n$7.Label])); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.Walk(r, n$7.Stmt); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 13: + n$8 = _ref.$val; + $r = r.walkExprs(n$8.Rhs); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (n$8.Tok === 47) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (n$8.Tok === 47) { */ case 59: + $r = r.shortVarDecl(n$8); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 61; continue; + /* } else { */ case 60: + $r = r.walkExprs(n$8.Lhs); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 61: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 14: + n$9 = _ref.$val; + if (!((n$9.Tok === 69)) && !(n$9.Label === ptrType$2.nil)) { + depth = r.targetStack.$length - 1 >> 0; + (x$1 = r.targetStack, ((depth < 0 || depth >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + depth] = $append((x = r.targetStack, ((depth < 0 || depth >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + depth])), n$9.Label))); + } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 15: + n$10 = _ref.$val; + $r = r.openScope(n$10.Pos()); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkStmts(n$10.List); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 16: + n$11 = _ref.$val; + $r = r.openScope(n$11.Pos()); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + /* */ if (!($interfaceIsEqual(n$11.Init, $ifaceNil))) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (!($interfaceIsEqual(n$11.Init, $ifaceNil))) { */ case 67: + $r = ast.Walk(r, n$11.Init); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 68: + $r = ast.Walk(r, n$11.Cond); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.Walk(r, n$11.Body); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(n$11.Else, $ifaceNil))) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if (!($interfaceIsEqual(n$11.Else, $ifaceNil))) { */ case 72: + $r = ast.Walk(r, n$11.Else); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 73: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 17: + n$12 = _ref.$val; + $r = r.walkExprs(n$12.List); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.openScope(n$12.Pos()); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkStmts(n$12.Body); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 18: + n$13 = _ref.$val; + $r = r.openScope(n$13.Pos()); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + /* */ if (!($interfaceIsEqual(n$13.Init, $ifaceNil))) { $s = 79; continue; } + /* */ $s = 80; continue; + /* if (!($interfaceIsEqual(n$13.Init, $ifaceNil))) { */ case 79: + $r = ast.Walk(r, n$13.Init); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 80: + /* */ if (!($interfaceIsEqual(n$13.Tag, $ifaceNil))) { $s = 82; continue; } + /* */ $s = 83; continue; + /* if (!($interfaceIsEqual(n$13.Tag, $ifaceNil))) { */ case 82: + /* */ if (!($interfaceIsEqual(n$13.Init, $ifaceNil))) { $s = 84; continue; } + /* */ $s = 85; continue; + /* if (!($interfaceIsEqual(n$13.Init, $ifaceNil))) { */ case 84: + _r$3 = n$13.Tag.Pos(); /* */ $s = 86; case 86: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = r.openScope(_r$3); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + /* } */ case 85: + $r = ast.Walk(r, n$13.Tag); /* */ $s = 88; case 88: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 83: + /* */ if (!(n$13.Body === ptrType$13.nil)) { $s = 89; continue; } + /* */ $s = 90; continue; + /* if (!(n$13.Body === ptrType$13.nil)) { */ case 89: + $r = r.walkStmts(n$13.Body.List); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 90: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 19: + n$14 = _ref.$val; + /* */ if (!($interfaceIsEqual(n$14.Init, $ifaceNil))) { $s = 92; continue; } + /* */ $s = 93; continue; + /* if (!($interfaceIsEqual(n$14.Init, $ifaceNil))) { */ case 92: + $r = r.openScope(n$14.Pos()); /* */ $s = 94; case 94: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = ast.Walk(r, n$14.Init); /* */ $s = 95; case 95: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 93: + _r$4 = n$14.Assign.Pos(); /* */ $s = 96; case 96: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = r.openScope(_r$4); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = ast.Walk(r, n$14.Assign); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(n$14.Body === ptrType$13.nil)) { $s = 99; continue; } + /* */ $s = 100; continue; + /* if (!(n$14.Body === ptrType$13.nil)) { */ case 99: + $r = r.walkStmts(n$14.Body.List); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 100: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 20: + n$15 = _ref.$val; + $r = r.openScope(n$15.Pos()); /* */ $s = 102; case 102: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + /* */ if (!($interfaceIsEqual(n$15.Comm, $ifaceNil))) { $s = 103; continue; } + /* */ $s = 104; continue; + /* if (!($interfaceIsEqual(n$15.Comm, $ifaceNil))) { */ case 103: + $r = ast.Walk(r, n$15.Comm); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 104: + $r = r.walkStmts(n$15.Body); /* */ $s = 106; case 106: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$19, true)[1]) { */ case 21: + n$16 = _ref.$val; + /* */ if (!(n$16.Body === ptrType$13.nil)) { $s = 107; continue; } + /* */ $s = 108; continue; + /* if (!(n$16.Body === ptrType$13.nil)) { */ case 107: + $r = r.walkStmts(n$16.Body.List); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 108: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 22: + n$17 = _ref.$val; + $r = r.openScope(n$17.Pos()); /* */ $s = 110; case 110: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + /* */ if (!($interfaceIsEqual(n$17.Init, $ifaceNil))) { $s = 111; continue; } + /* */ $s = 112; continue; + /* if (!($interfaceIsEqual(n$17.Init, $ifaceNil))) { */ case 111: + $r = ast.Walk(r, n$17.Init); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 112: + /* */ if (!($interfaceIsEqual(n$17.Cond, $ifaceNil))) { $s = 114; continue; } + /* */ $s = 115; continue; + /* if (!($interfaceIsEqual(n$17.Cond, $ifaceNil))) { */ case 114: + $r = ast.Walk(r, n$17.Cond); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 115: + /* */ if (!($interfaceIsEqual(n$17.Post, $ifaceNil))) { $s = 117; continue; } + /* */ $s = 118; continue; + /* if (!($interfaceIsEqual(n$17.Post, $ifaceNil))) { */ case 117: + $r = ast.Walk(r, n$17.Post); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 118: + $r = ast.Walk(r, n$17.Body); /* */ $s = 120; case 120: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 23: + n$18 = _ref.$val; + $r = r.openScope(n$18.Pos()); /* */ $s = 121; case 121: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = ast.Walk(r, n$18.X); /* */ $s = 122; case 122: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhs = sliceType$3.nil; + if (!($interfaceIsEqual(n$18.Key, $ifaceNil))) { + lhs = $append(lhs, n$18.Key); + } + if (!($interfaceIsEqual(n$18.Value, $ifaceNil))) { + lhs = $append(lhs, n$18.Value); + } + /* */ if (lhs.$length > 0) { $s = 123; continue; } + /* */ $s = 124; continue; + /* if (lhs.$length > 0) { */ case 123: + /* */ if (n$18.Tok === 47) { $s = 125; continue; } + /* */ $s = 126; continue; + /* if (n$18.Tok === 47) { */ case 125: + as = new ast.AssignStmt.ptr(lhs, n$18.TokPos, 47, new sliceType$3([new ast.UnaryExpr.ptr(0, 79, n$18.X)])); + $r = r.walkLHS(lhs); /* */ $s = 128; case 128: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.shortVarDecl(as); /* */ $s = 129; case 129: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 127; continue; + /* } else { */ case 126: + $r = r.walkExprs(lhs); /* */ $s = 130; case 130: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 127: + /* } */ case 124: + $r = ast.Walk(r, n$18.Body); /* */ $s = 131; case 131: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$22, true)[1]) { */ case 24: + n$19 = _ref.$val; + _1 = n$19.Tok; + /* */ if ((_1 === (64)) || (_1 === (85))) { $s = 133; continue; } + /* */ if (_1 === (84)) { $s = 134; continue; } + /* */ $s = 135; continue; + /* if ((_1 === (64)) || (_1 === (85))) { */ case 133: + _ref$2 = n$19.Specs; + _i$1 = 0; + /* while (true) { */ case 136: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 137; continue; } + i = _i$1; + spec = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + spec$1 = $assertType(spec, ptrType$25); + kind = 2; + if (n$19.Tok === 85) { + kind = 4; + } + $r = r.walkExprs(spec$1.Values); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(spec$1.Type, $ifaceNil))) { $s = 139; continue; } + /* */ $s = 140; continue; + /* if (!($interfaceIsEqual(spec$1.Type, $ifaceNil))) { */ case 139: + $r = ast.Walk(r, spec$1.Type); /* */ $s = 141; case 141: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 140: + $r = r.declare(spec$1, new $Int(i), r.topScope, kind, spec$1.Names); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 136; continue; + case 137: + $s = 135; continue; + /* } else if (_1 === (84)) { */ case 134: + _ref$3 = n$19.Specs; + _i$2 = 0; + /* while (true) { */ case 143: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 144; continue; } + spec$2 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + spec$3 = $assertType(spec$2, ptrType$26); + $r = r.declare(spec$3, $ifaceNil, r.topScope, 3, new sliceType([spec$3.Name])); /* */ $s = 145; case 145: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(spec$3.TypeParams === ptrType$27.nil)) { $s = 146; continue; } + /* */ $s = 147; continue; + /* if (!(spec$3.TypeParams === ptrType$27.nil)) { */ case 146: + $r = r.openScope(spec$3.Pos()); /* */ $s = 148; case 148: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkTParams(spec$3.TypeParams); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 147: + $r = ast.Walk(r, spec$3.Type); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 143; continue; + case 144: + /* } */ case 135: + case 132: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$23, true)[1]) { */ case 25: + n$20 = _ref.$val; + _r$5 = n$20.Pos(); /* */ $s = 151; case 151: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = r.openScope(_r$5); /* */ $s = 152; case 152: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkRecv(n$20.Recv); /* */ $s = 153; case 153: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(n$20.Type.TypeParams === ptrType$27.nil)) { $s = 154; continue; } + /* */ $s = 155; continue; + /* if (!(n$20.Type.TypeParams === ptrType$27.nil)) { */ case 154: + $r = r.walkTParams(n$20.Type.TypeParams); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 155: + $r = r.resolveList(n$20.Type.Params); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.resolveList(n$20.Type.Results); /* */ $s = 158; case 158: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.declareList(n$20.Recv, 4); /* */ $s = 159; case 159: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.declareList(n$20.Type.Params, 4); /* */ $s = 160; case 160: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.declareList(n$20.Type.Results, 4); /* */ $s = 161; case 161: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.walkBody(n$20.Body); /* */ $s = 162; case 162: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (n$20.Recv === ptrType$27.nil && !(n$20.Name.Name === "init")) { $s = 163; continue; } + /* */ $s = 164; continue; + /* if (n$20.Recv === ptrType$27.nil && !(n$20.Name.Name === "init")) { */ case 163: + $r = r.declare(n$20, $ifaceNil, r.pkgScope, 5, new sliceType([n$20.Name])); /* */ $s = 165; case 165: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 164: + $s = 27; continue; + /* } else { */ case 26: + n$21 = _ref; + $24r = r; + $s = 166; case 166: return $24r; + /* } */ case 27: + $24r$1 = $ifaceNil; + $s = 167; case 167: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Visit, $c: true, $r, $24r, $24r$1, _1, _arg, _arg$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, as, depth, e, i, ident, kind, kv, lhs, n, n$1, n$10, n$11, n$12, n$13, n$14, n$15, n$16, n$17, n$18, n$19, n$2, n$20, n$21, n$3, n$4, n$5, n$6, n$7, n$8, n$9, node, r, spec, spec$1, spec$2, spec$3, x, x$1, $s, $deferred};return $f; } } + }; + $ptrType(resolver).prototype.walkFuncType = function walkFuncType(typ) { + var {r, typ, $s, $r, $c} = $restore(this, {typ}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + $r = r.resolveList(typ.Params); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.resolveList(typ.Results); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.declareList(typ.Params, 4); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.declareList(typ.Results, 4); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: walkFuncType, $c: true, $r, r, typ, $s};return $f; + }; + $ptrType(resolver).prototype.resolveList = function resolveList(list) { + var {_i, _ref, f, list, r, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + if (list === ptrType$27.nil) { + $s = -1; return; + } + _ref = list.List; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (!($interfaceIsEqual(f.Type, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(f.Type, $ifaceNil))) { */ case 3: + $r = ast.Walk(r, f.Type); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: resolveList, $c: true, $r, _i, _ref, f, list, r, $s};return $f; + }; + $ptrType(resolver).prototype.declareList = function declareList(list, kind) { + var {_i, _ref, f, kind, list, r, $s, $r, $c} = $restore(this, {list, kind}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + if (list === ptrType$27.nil) { + $s = -1; return; + } + _ref = list.List; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = r.declare(f, $ifaceNil, r.topScope, kind, f.Names); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: declareList, $c: true, $r, _i, _ref, f, kind, list, r, $s};return $f; + }; + $ptrType(resolver).prototype.walkRecv = function walkRecv(recv) { + var {_i, _i$1, _i$2, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, declareExprs, expr, expr$1, f, id, ok, ptr, r, recv, resolveExprs, typ, typ$1, typ$2, typ$3, x, $s, $r, $c} = $restore(this, {recv}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + if (recv === ptrType$27.nil || (recv.List.$length === 0)) { + $s = -1; return; + } + typ = (x = recv.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Type; + _tuple = $assertType(typ, ptrType$28, true); + ptr = _tuple[0]; + ok = _tuple[1]; + if (ok) { + typ = ptr.X; + } + declareExprs = sliceType$3.nil; + resolveExprs = sliceType$3.nil; + _ref = typ; + if ($assertType(_ref, ptrType$29, true)[1]) { + typ$1 = _ref.$val; + declareExprs = new sliceType$3([typ$1.Index]); + resolveExprs = $append(resolveExprs, typ$1.X); + } else if ($assertType(_ref, ptrType$30, true)[1]) { + typ$2 = _ref.$val; + declareExprs = typ$2.Indices; + resolveExprs = $append(resolveExprs, typ$2.X); + } else { + typ$3 = _ref; + resolveExprs = $append(resolveExprs, typ$3); + } + _ref$1 = declareExprs; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 2; continue; } + expr = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _tuple$1 = $assertType(expr, ptrType$2, true); + id = _tuple$1[0]; + /* */ if (!(id === ptrType$2.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(id === ptrType$2.nil)) { */ case 3: + $r = r.declare(expr, $ifaceNil, r.topScope, 3, new sliceType([id])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + resolveExprs = $append(resolveExprs, expr); + /* } */ case 5: + _i++; + $s = 1; continue; + case 2: + _ref$2 = resolveExprs; + _i$1 = 0; + /* while (true) { */ case 7: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 8; continue; } + expr$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + /* */ if (!($interfaceIsEqual(expr$1, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(expr$1, $ifaceNil))) { */ case 9: + $r = ast.Walk(r, expr$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + _i$1++; + $s = 7; continue; + case 8: + _ref$3 = $subslice(recv.List, 1); + _i$2 = 0; + /* while (true) { */ case 12: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 13; continue; } + f = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + /* */ if (!($interfaceIsEqual(f.Type, $ifaceNil))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!($interfaceIsEqual(f.Type, $ifaceNil))) { */ case 14: + $r = ast.Walk(r, f.Type); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + _i$2++; + $s = 12; continue; + case 13: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkRecv, $c: true, $r, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, declareExprs, expr, expr$1, f, id, ok, ptr, r, recv, resolveExprs, typ, typ$1, typ$2, typ$3, x, $s};return $f; + }; + $ptrType(resolver).prototype.walkFieldList = function walkFieldList(list, kind) { + var {kind, list, r, $s, $r, $c} = $restore(this, {list, kind}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + if (list === ptrType$27.nil) { + $s = -1; return; + } + $r = r.resolveList(list); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.declareList(list, kind); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: walkFieldList, $c: true, $r, kind, list, r, $s};return $f; + }; + $ptrType(resolver).prototype.walkTParams = function walkTParams(list) { + var {list, r, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + $r = r.declareList(list, 3); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.resolveList(list); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: walkTParams, $c: true, $r, list, r, $s};return $f; + }; + $ptrType(resolver).prototype.walkBody = function walkBody(body) { + var {body, r, $s, $deferred, $r, $c} = $restore(this, {body}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + r = this; + if (body === ptrType$13.nil) { + $s = -1; return; + } + r.openLabelScope(); + $deferred.push([$methodVal(r, "closeLabelScope"), []]); + $r = r.walkStmts(body.List); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: walkBody, $c: true, $r, body, r, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.init = function init(fset, filename, src, mode) { + var {_r, eh, filename, fset, m, mode, p, src, $s, $r, $c} = $restore(this, {fset, filename, src, mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = [p]; + p[0] = this; + _r = fset.AddFile(filename, -1, src.$length); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p[0].file = _r; + m = 0; + if (!((((mode & 4) >>> 0) === 0))) { + m = 1; + } + eh = (function(p) { return function parser·init·func1(pos, msg) { + var msg, pos; + (p[0].$ptr_errors || (p[0].$ptr_errors = new ptrType$31(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p[0]))).Add($clone(pos, token.Position), msg); + }; })(p); + $r = p[0].scanner.Init(p[0].file, src, eh, m); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p[0].mode = mode; + p[0].trace = !((((mode & 8) >>> 0) === 0)); + $r = p[0].next(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: init, $c: true, $r, _r, eh, filename, fset, m, mode, p, src, $s};return $f; + }; + $ptrType(parser).prototype.allowGenerics = function allowGenerics() { + var p; + p = this; + return ((p.mode & 1073741824) >>> 0) === 0; + }; + $ptrType(parser).prototype.allowTypeSets = function allowTypeSets() { + var p; + p = this; + return ((p.mode & 536870912) >>> 0) === 0; + }; + $ptrType(parser).prototype.printTrace = function printTrace(a) { + var {_r, _r$1, _r$2, _r$3, _r$4, a, i, p, pos, $s, $r, $c} = $restore(this, {a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = p.file.Position(p.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + pos = $clone(_r, token.Position); + _r$1 = fmt.Printf("%5d:%3d: ", new sliceType$2([new $Int(pos.Line), new $Int(pos.Column)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + i = $imul(2, p.indent); + /* while (true) { */ case 3: + /* if (!(i > 64)) { break; } */ if(!(i > 64)) { $s = 4; continue; } + _r$2 = fmt.Print(new sliceType$2([new $String(". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ")])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + i = i - (64) >> 0; + $s = 3; continue; + case 4: + _r$3 = fmt.Print(new sliceType$2([new $String($substring(". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", 0, i))])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _r$4 = fmt.Println(a); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $s = -1; return; + /* */ } return; } var $f = {$blk: printTrace, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, a, i, p, pos, $s};return $f; + }; + trace = function trace$2(p, msg) { + var {msg, p, $s, $r, $c} = $restore(this, {p, msg}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = p.printTrace(new sliceType$2([new $String(msg), new $String("(")])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.indent = p.indent + (1) >> 0; + $s = -1; return p; + /* */ } return; } var $f = {$blk: trace$2, $c: true, $r, msg, p, $s};return $f; + }; + un = function un$1(p) { + var {p, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p.indent = p.indent - (1) >> 0; + $r = p.printTrace(new sliceType$2([new $String(")")])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: un$1, $c: true, $r, p, $s};return $f; + }; + incNestLev = function incNestLev$1(p) { + var {p, x, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p.nestLev = p.nestLev + (1) >> 0; + /* */ if (p.nestLev > 100000) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.nestLev > 100000) { */ case 1: + $r = p.error(p.pos, "exceeded max nesting depth"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $panic((x = new bailout.ptr(0, ""), new x.constructor.elem(x))); + /* } */ case 2: + $s = -1; return p; + /* */ } return; } var $f = {$blk: incNestLev$1, $c: true, $r, p, x, $s};return $f; + }; + decNestLev = function decNestLev$1(p) { + var p; + p.nestLev = p.nestLev - (1) >> 0; + }; + $ptrType(parser).prototype.next0 = function next0() { + var {_r, _tuple, p, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (p.trace && new token.Pos(p.pos).IsValid()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace && new token.Pos(p.pos).IsValid()) { */ case 1: + s = new token.Token(p.tok).String(); + /* */ if (new token.Token(p.tok).IsLiteral()) { $s = 4; continue; } + /* */ if ((new token.Token(p.tok).IsOperator()) || (new token.Token(p.tok).IsKeyword())) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (new token.Token(p.tok).IsLiteral()) { */ case 4: + $r = p.printTrace(new sliceType$2([new $String(s), new $String(p.lit)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else if ((new token.Token(p.tok).IsOperator()) || (new token.Token(p.tok).IsKeyword())) { */ case 5: + $r = p.printTrace(new sliceType$2([new $String("\"" + s + "\"")])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + $r = p.printTrace(new sliceType$2([new $String(s)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + case 3: + /* } */ case 2: + _r = p.scanner.Scan(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + p.pos = _tuple[0]; + p.tok = _tuple[1]; + p.lit = _tuple[2]; + $s = -1; return; + /* */ } return; } var $f = {$blk: next0, $c: true, $r, _r, _tuple, p, s, $s};return $f; + }; + $ptrType(parser).prototype.consumeComment = function consumeComment() { + var {_r, comment, endline, i, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + comment = ptrType$32.nil; + endline = 0; + p = this; + _r = p.file.Line(p.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + endline = _r; + if (p.lit.charCodeAt(1) === 42) { + i = 0; + while (true) { + if (!(i < p.lit.length)) { break; } + if (p.lit.charCodeAt(i) === 10) { + endline = endline + (1) >> 0; + } + i = i + (1) >> 0; + } + } + comment = new ast.Comment.ptr(p.pos, p.lit); + $r = p.next0(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [comment, endline]; + /* */ } return; } var $f = {$blk: consumeComment, $c: true, $r, _r, comment, endline, i, p, $s};return $f; + }; + $ptrType(parser).prototype.consumeCommentGroup = function consumeCommentGroup(n) { + var {_r, _r$1, _r$2, _tuple, _v, comment, comments, endline, list, n, p, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + comments = ptrType$33.nil; + endline = 0; + p = this; + list = sliceType$4.nil; + _r = p.file.Line(p.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + endline = _r; + /* while (true) { */ case 2: + if (!(p.tok === 2)) { _v = false; $s = 4; continue s; } + _r$1 = p.file.Line(p.pos); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 <= (endline + n >> 0); case 4: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 3; continue; } + comment = ptrType$32.nil; + _r$2 = p.consumeComment(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + comment = _tuple[0]; + endline = _tuple[1]; + list = $append(list, comment); + $s = 2; continue; + case 3: + comments = new ast.CommentGroup.ptr(list); + p.comments = $append(p.comments, comments); + $s = -1; return [comments, endline]; + /* */ } return; } var $f = {$blk: consumeCommentGroup, $c: true, $r, _r, _r$1, _r$2, _tuple, _v, comment, comments, endline, list, n, p, $s};return $f; + }; + $ptrType(parser).prototype.next = function next() { + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, comment, endline, p, prev, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + p.leadComment = ptrType$33.nil; + p.lineComment = ptrType$33.nil; + prev = p.pos; + $r = p.next0(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (p.tok === 2) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (p.tok === 2) { */ case 2: + comment = ptrType$33.nil; + endline = 0; + _r = p.file.Line(p.pos); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.file.Line(prev); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r === _r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r === _r$1) { */ case 4: + _r$2 = p.consumeCommentGroup(0); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + comment = _tuple[0]; + endline = _tuple[1]; + _r$3 = p.file.Line(p.pos); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!((_r$3 === endline)) || (p.tok === 1)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!((_r$3 === endline)) || (p.tok === 1)) { */ case 9: + p.lineComment = comment; + /* } */ case 10: + /* } */ case 5: + endline = -1; + /* while (true) { */ case 12: + /* if (!(p.tok === 2)) { break; } */ if(!(p.tok === 2)) { $s = 13; continue; } + _r$4 = p.consumeCommentGroup(1); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + comment = _tuple$1[0]; + endline = _tuple$1[1]; + $s = 12; continue; + case 13: + _r$5 = p.file.Line(p.pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if ((endline + 1 >> 0) === _r$5) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ((endline + 1 >> 0) === _r$5) { */ case 15: + p.leadComment = comment; + /* } */ case 16: + /* } */ case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: next, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, comment, endline, p, prev, $s};return $f; + }; + $ptrType(parser).prototype.error = function error(pos, msg) { + var {_r, _r$1, epos, msg, n, p, pos, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {pos, msg}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "error: " + msg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.file.Position(pos); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + epos = $clone(_r$1, token.Position); + /* */ if (((p.mode & 32) >>> 0) === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (((p.mode & 32) >>> 0) === 0) { */ case 5: + n = p.errors.$length; + /* */ if (n > 0 && ((x = p.errors, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Pos.Line === epos.Line)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (n > 0 && ((x = p.errors, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Pos.Line === epos.Line)) { */ case 7: + $s = 9; case 9: return; + /* } */ case 8: + if (n > 10) { + $panic((x$2 = new bailout.ptr(0, ""), new x$2.constructor.elem(x$2))); + } + /* } */ case 6: + (p.$ptr_errors || (p.$ptr_errors = new ptrType$31(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p))).Add($clone(epos, token.Position), msg); + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: error, $c: true, $r, _r, _r$1, epos, msg, n, p, pos, x, x$1, x$2, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.errorExpected = function errorExpected(pos, msg) { + var {msg, p, pos, $s, $r, $c} = $restore(this, {pos, msg}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + msg = "expected " + msg; + if (pos === p.pos) { + if ((p.tok === 57) && p.lit === "\n") { + msg = msg + (", found newline"); + } else if (new token.Token(p.tok).IsLiteral()) { + msg = msg + (", found " + p.lit); + } else { + msg = msg + (", found '" + new token.Token(p.tok).String() + "'"); + } + } + $r = p.error(pos, msg); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: errorExpected, $c: true, $r, msg, p, pos, $s};return $f; + }; + $ptrType(parser).prototype.expect = function expect(tok) { + var {p, pos, tok, $s, $r, $c} = $restore(this, {tok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + pos = p.pos; + /* */ if (!((p.tok === tok))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((p.tok === tok))) { */ case 1: + $r = p.errorExpected(pos, "'" + new token.Token(tok).String() + "'"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $r = p.next(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return pos; + /* */ } return; } var $f = {$blk: expect, $c: true, $r, p, pos, tok, $s};return $f; + }; + $ptrType(parser).prototype.expect2 = function expect2(tok) { + var {p, pos, tok, $s, $r, $c} = $restore(this, {tok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pos = 0; + p = this; + /* */ if (p.tok === tok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.tok === tok) { */ case 1: + pos = p.pos; + $s = 3; continue; + /* } else { */ case 2: + $r = p.errorExpected(p.pos, "'" + new token.Token(tok).String() + "'"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $r = p.next(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return pos; + /* */ } return; } var $f = {$blk: expect2, $c: true, $r, p, pos, tok, $s};return $f; + }; + $ptrType(parser).prototype.expectClosing = function expectClosing(tok, context) { + var {$24r, _r, context, p, tok, $s, $r, $c} = $restore(this, {tok, context}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (!((p.tok === tok)) && (p.tok === 57) && p.lit === "\n") { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((p.tok === tok)) && (p.tok === 57) && p.lit === "\n") { */ case 1: + $r = p.error(p.pos, "missing ',' before newline in " + context); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.next(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _r = p.expect(tok); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: expectClosing, $c: true, $r, $24r, _r, context, p, tok, $s};return $f; + }; + $ptrType(parser).prototype.expectSemi = function expectSemi() { + var {_1, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (!((p.tok === 54)) && !((p.tok === 56))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((p.tok === 54)) && !((p.tok === 56))) { */ case 1: + _1 = p.tok; + /* */ if (_1 === (52)) { $s = 4; continue; } + /* */ if (_1 === (57)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (52)) { */ case 4: + $r = p.errorExpected(p.pos, "';'"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else if (_1 === (57)) { */ case 5: + $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + $r = p.errorExpected(p.pos, "';'"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(stmtStart); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + case 3: + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: expectSemi, $c: true, $r, _1, p, $s};return $f; + }; + $ptrType(parser).prototype.atComma = function atComma(context, follow) { + var {context, follow, msg, p, $s, $r, $c} = $restore(this, {context, follow}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + if (p.tok === 52) { + $s = -1; return true; + } + /* */ if (!((p.tok === follow))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((p.tok === follow))) { */ case 1: + msg = "missing ','"; + if ((p.tok === 57) && p.lit === "\n") { + msg = msg + (" before newline"); + } + $r = p.error(p.pos, msg + " in " + context); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* } */ case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: atComma, $c: true, $r, context, follow, msg, p, $s};return $f; + }; + assert = function assert$1(cond, msg) { + var cond, msg; + if (!cond) { + $panic(new $String("go/parser internal error: " + msg)); + } + }; + $ptrType(parser).prototype.advance = function advance(to) { + var {_entry, p, to, $s, $r, $c} = $restore(this, {to}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* while (true) { */ case 1: + /* if (!(!((p.tok === 1)))) { break; } */ if(!(!((p.tok === 1)))) { $s = 2; continue; } + if ((_entry = $mapIndex(to,token.Token.keyFor(p.tok)), _entry !== undefined ? _entry.v : false)) { + if ((p.pos === p.syncPos) && p.syncCnt < 10) { + p.syncCnt = p.syncCnt + (1) >> 0; + $s = -1; return; + } + if (p.pos > p.syncPos) { + p.syncPos = p.pos; + p.syncCnt = 0; + $s = -1; return; + } + } + $r = p.next(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: advance, $c: true, $r, _entry, p, to, $s};return $f; + }; + $ptrType(parser).prototype.safePos = function safePos(pos) { + var {_r, p, pos, res, $s, $deferred, $r, $c} = $restore(this, {pos}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = [p]; + res = [res]; + res[0] = 0; + p[0] = this; + $deferred.push([(function(p, res) { return function parser·safePos·func1() { + if (!($interfaceIsEqual($recover(), $ifaceNil))) { + res[0] = (((p[0].file.Base() + p[0].file.Size() >> 0) >> 0)); + } + }; })(p, res), []]); + _r = p[0].file.Offset(pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $unused(_r); + res[0] = pos; + $s = -1; return res[0]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: safePos, $c: true, $r, _r, p, pos, res, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseIdent = function parseIdent() { + var {_r, name, p, pos, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + pos = p.pos; + name = "_"; + /* */ if (p.tok === 4) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.tok === 4) { */ case 1: + name = p.lit; + $r = p.next(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 3; continue; + /* } else { */ case 2: + _r = p.expect(4); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 3: + $s = -1; return new ast.Ident.ptr(pos, name, ptrType$3.nil); + /* */ } return; } var $f = {$blk: parseIdent, $c: true, $r, _r, name, p, pos, $s};return $f; + }; + $ptrType(parser).prototype.parseIdentList = function parseIdentList() { + var {$24r, _r, _r$1, _r$2, list, p, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + list = sliceType.nil; + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "IdentList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseIdent(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = $append(list, _r$1); + /* while (true) { */ case 5: + /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 6; continue; } + $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseIdent(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = $append(list, _r$2); + $s = 5; continue; + case 6: + $24r = list; + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return list; } if($curGoroutine.asleep) { var $f = {$blk: parseIdentList, $c: true, $r, $24r, _r, _r$1, _r$2, list, p, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseExprList = function parseExprList() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, list, p, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + list = sliceType$3.nil; + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ExpressionList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseExpr(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = p.checkExpr(_r$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = $append(list, _r$2); + /* while (true) { */ case 6: + /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 7; continue; } + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = p.parseExpr(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = p.checkExpr(_r$3); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + list = $append(list, _r$4); + $s = 6; continue; + case 7: + $24r = list; + $s = 11; case 11: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return list; } if($curGoroutine.asleep) { var $f = {$blk: parseExprList, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, list, p, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseList = function parseList(inRhs) { + var {_r, inRhs, list, old, p, $s, $r, $c} = $restore(this, {inRhs}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + old = p.inRhs; + p.inRhs = inRhs; + _r = p.parseExprList(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + list = _r; + p.inRhs = old; + $s = -1; return list; + /* */ } return; } var $f = {$blk: parseList, $c: true, $r, _r, inRhs, list, old, p, $s};return $f; + }; + $ptrType(parser).prototype.parseType = function parseType() { + var {$24r, $24r$1, _r, _r$1, p, pos, typ, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Type"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.tryIdentOrType(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ = _r$1; + /* */ if ($interfaceIsEqual(typ, $ifaceNil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($interfaceIsEqual(typ, $ifaceNil)) { */ case 5: + pos = p.pos; + $r = p.errorExpected(pos, "type"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(exprEnd); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r = new ast.BadExpr.ptr(pos, p.pos); + $s = 9; case 9: return $24r; + /* } */ case 6: + $24r$1 = typ; + $s = 10; case 10: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseType, $c: true, $r, $24r, $24r$1, _r, _r$1, p, pos, typ, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseQualifiedIdent = function parseQualifiedIdent(ident) { + var {$24r, _r, _r$1, _r$2, ident, p, typ, $s, $deferred, $r, $c} = $restore(this, {ident}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "QualifiedIdent"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseTypeName(ident); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ = _r$1; + /* */ if ((p.tok === 50) && p.allowGenerics()) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((p.tok === 50) && p.allowGenerics()) { */ case 5: + _r$2 = p.parseTypeInstance(typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + /* } */ case 6: + $24r = typ; + $s = 8; case 8: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseQualifiedIdent, $c: true, $r, $24r, _r, _r$1, _r$2, ident, p, typ, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseTypeName = function parseTypeName(ident) { + var {$24r, $24r$1, _r, _r$1, _r$2, ident, p, sel, $s, $deferred, $r, $c} = $restore(this, {ident}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "TypeName"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if (ident === ptrType$2.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (ident === ptrType$2.nil) { */ case 4: + _r$1 = p.parseIdent(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ident = _r$1; + /* } */ case 5: + /* */ if (p.tok === 53) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (p.tok === 53) { */ case 7: + $r = p.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseIdent(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + sel = _r$2; + $24r = new ast.SelectorExpr.ptr(ident, sel); + $s = 11; case 11: return $24r; + /* } */ case 8: + $24r$1 = ident; + $s = 12; case 12: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseTypeName, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, ident, p, sel, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseArrayType = function parseArrayType(lbrack, len) { + var {$24r, _r, _r$1, _r$2, _r$3, elt, lbrack, len, p, $s, $deferred, $r, $c} = $restore(this, {lbrack, len}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ArrayType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if ($interfaceIsEqual(len, $ifaceNil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(len, $ifaceNil)) { */ case 4: + p.exprLev = p.exprLev + (1) >> 0; + /* */ if (p.tok === 48) { $s = 6; continue; } + /* */ if (!((p.tok === 55))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (p.tok === 48) { */ case 6: + len = new ast.Ellipsis.ptr(p.pos, $ifaceNil); + $r = p.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 8; continue; + /* } else if (!((p.tok === 55))) { */ case 7: + _r$1 = p.parseRhs(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + len = _r$1; + /* } */ case 8: + p.exprLev = p.exprLev - (1) >> 0; + /* } */ case 5: + /* */ if (p.tok === 52) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (p.tok === 52) { */ case 11: + $r = p.error(p.pos, "unexpected comma; expecting ]"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + _r$2 = p.expect(55); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = p.parseType(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + elt = _r$3; + $24r = new ast.ArrayType.ptr(lbrack, len, elt); + $s = 17; case 17: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$34.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseArrayType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, elt, lbrack, len, p, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseArrayFieldOrTypeInstance = function parseArrayFieldOrTypeInstance(x) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, argparser, args, elt, elt$1, firstComma, lbrack, p, rbrack, x, x$1, $s, $deferred, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ArrayFieldOrTypeInstance"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(50); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lbrack = _r$1; + args = sliceType$3.nil; + firstComma = 0; + argparser = $methodVal(p, "parseRhsOrType"); + if (!p.allowGenerics()) { + argparser = $methodVal(p, "parseRhs"); + } + /* */ if (!((p.tok === 55))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((p.tok === 55))) { */ case 5: + p.exprLev = p.exprLev + (1) >> 0; + _r$2 = argparser(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + args = $append(args, _r$2); + /* while (true) { */ case 8: + /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 9; continue; } + if (!new token.Pos(firstComma).IsValid()) { + firstComma = p.pos; + } + $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = argparser(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + args = $append(args, _r$3); + $s = 8; continue; + case 9: + p.exprLev = p.exprLev - (1) >> 0; + /* } */ case 6: + _r$4 = p.expect(55); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + rbrack = _r$4; + /* */ if (args.$length === 0) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (args.$length === 0) { */ case 13: + _r$5 = p.parseType(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + elt = _r$5; + $24r = [x, new ast.ArrayType.ptr(lbrack, $ifaceNil, elt)]; + $s = 16; case 16: return $24r; + /* } */ case 14: + /* */ if (args.$length === 1) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (args.$length === 1) { */ case 17: + _r$6 = p.tryIdentOrType(); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + elt$1 = _r$6; + /* */ if (!($interfaceIsEqual(elt$1, $ifaceNil))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!($interfaceIsEqual(elt$1, $ifaceNil))) { */ case 20: + $24r$1 = [x, new ast.ArrayType.ptr(lbrack, (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), elt$1)]; + $s = 22; case 22: return $24r$1; + /* } */ case 21: + /* */ if (!p.allowGenerics()) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!p.allowGenerics()) { */ case 23: + $r = p.error(rbrack, "missing element type in array type expression"); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$7 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).Pos(); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).End(); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r$2 = [ptrType$2.nil, new ast.BadExpr.ptr(_r$7, _r$8)]; + $s = 28; case 28: return $24r$2; + /* } */ case 24: + /* } */ case 18: + /* */ if (!p.allowGenerics()) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!p.allowGenerics()) { */ case 29: + $r = p.error(firstComma, "expected ']', found ','"); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$9 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).Pos(); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = (x$1 = args.$length - 1 >> 0, ((x$1 < 0 || x$1 >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + x$1])).End(); /* */ $s = 33; case 33: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $24r$3 = [x, new ast.BadExpr.ptr(_r$9, _r$10)]; + $s = 34; case 34: return $24r$3; + /* } */ case 30: + $24r$4 = [ptrType$2.nil, typeparams.PackIndexExpr(x, lbrack, args, rbrack)]; + $s = 35; case 35: return $24r$4; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$2.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseArrayFieldOrTypeInstance, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, argparser, args, elt, elt$1, firstComma, lbrack, p, rbrack, x, x$1, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseFieldDecl = function parseFieldDecl() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, doc, field$1, name, names, p, tag, typ, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "FieldDecl"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + doc = p.leadComment; + names = sliceType.nil; + typ = $ifaceNil; + /* */ if (p.tok === 4) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.tok === 4) { */ case 4: + _r$1 = p.parseIdent(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + name = _r$1; + /* */ if ((p.tok === 53) || (p.tok === 9) || (p.tok === 57) || (p.tok === 56)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((p.tok === 53) || (p.tok === 9) || (p.tok === 57) || (p.tok === 56)) { */ case 8: + typ = name; + /* */ if (p.tok === 53) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (p.tok === 53) { */ case 11: + _r$2 = p.parseQualifiedIdent(name); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + /* } */ case 12: + $s = 10; continue; + /* } else { */ case 9: + names = new sliceType([name]); + /* while (true) { */ case 14: + /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 15; continue; } + $r = p.next(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = p.parseIdent(); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + names = $append(names, _r$3); + $s = 14; continue; + case 15: + /* */ if ((names.$length === 1) && (p.tok === 50)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if ((names.$length === 1) && (p.tok === 50)) { */ case 18: + _r$4 = p.parseArrayFieldOrTypeInstance(name); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + name = _tuple[0]; + typ = _tuple[1]; + if (name === ptrType$2.nil) { + names = sliceType.nil; + } + $s = 20; continue; + /* } else { */ case 19: + _r$5 = p.parseType(); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + typ = _r$5; + /* } */ case 20: + /* } */ case 10: + $s = 6; continue; + /* } else { */ case 5: + _r$6 = p.parseType(); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + typ = _r$6; + /* } */ case 6: + tag = ptrType$35.nil; + /* */ if (p.tok === 9) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (p.tok === 9) { */ case 24: + tag = new ast.BasicLit.ptr(p.pos, p.tok, p.lit); + $r = p.next(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 25: + $r = p.expectSemi(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + field$1 = new ast.Field.ptr(doc, names, typ, tag, p.lineComment); + $24r = field$1; + $s = 28; case 28: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$36.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFieldDecl, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, doc, field$1, name, names, p, tag, typ, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseStructType = function parseStructType() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, lbrace, list, p, pos, rbrace, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "StructType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(82); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.expect(51); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + lbrace = _r$2; + list = sliceType$5.nil; + /* while (true) { */ case 6: + /* if (!((p.tok === 4) || (p.tok === 14) || (p.tok === 49))) { break; } */ if(!((p.tok === 4) || (p.tok === 14) || (p.tok === 49))) { $s = 7; continue; } + _r$3 = p.parseFieldDecl(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + list = $append(list, _r$3); + $s = 6; continue; + case 7: + _r$4 = p.expect(56); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + rbrace = _r$4; + $24r = new ast.StructType.ptr(pos, new ast.FieldList.ptr(lbrace, list, rbrace), false); + $s = 10; case 10: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$6.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseStructType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, lbrace, list, p, pos, rbrace, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parsePointerType = function parsePointerType() { + var {$24r, _r, _r$1, _r$2, base, p, star, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "PointerType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(14); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + star = _r$1; + _r$2 = p.parseType(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + base = _r$2; + $24r = new ast.StarExpr.ptr(star, base); + $s = 6; case 6: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$28.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parsePointerType, $c: true, $r, $24r, _r, _r$1, _r$2, base, p, star, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseDotsType = function parseDotsType() { + var {$24r, _r, _r$1, _r$2, elt, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "DotsType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(48); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.parseType(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + elt = _r$2; + $24r = new ast.Ellipsis.ptr(pos, elt); + $s = 6; case 6: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$37.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseDotsType, $c: true, $r, $24r, _r, _r$1, _r$2, elt, p, pos, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseParamDecl = function parseParamDecl(name, typeSetsOK) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _2, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, f, name, p, ptok, typeSetsOK, $s, $deferred, $r, $c} = $restore(this, {name, typeSetsOK}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + f = new field.ptr(ptrType$2.nil, $ifaceNil); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ParamDeclOrNil"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + ptok = p.tok; + /* */ if (!(name === ptrType$2.nil)) { $s = 4; continue; } + /* */ if (typeSetsOK && (p.tok === 88)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(name === ptrType$2.nil)) { */ case 4: + p.tok = 4; + $s = 6; continue; + /* } else if (typeSetsOK && (p.tok === 88)) { */ case 5: + _r$1 = p.embeddedElem($ifaceNil); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + field.copy(f, new field.ptr(ptrType$2.nil, _r$1)); + $24r = f; + $s = 8; case 8: return $24r; + /* } */ case 6: + _1 = p.tok; + /* */ if (_1 === (4)) { $s = 10; continue; } + /* */ if ((_1 === (14)) || (_1 === (36)) || (_1 === (71)) || (_1 === (50)) || (_1 === (63)) || (_1 === (77)) || (_1 === (82)) || (_1 === (76)) || (_1 === (49))) { $s = 11; continue; } + /* */ if (_1 === (48)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_1 === (4)) { */ case 10: + /* */ if (!(name === ptrType$2.nil)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!(name === ptrType$2.nil)) { */ case 15: + f.name = name; + p.tok = ptok; + $s = 17; continue; + /* } else { */ case 16: + _r$2 = p.parseIdent(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + f.name = _r$2; + /* } */ case 17: + _2 = p.tok; + /* */ if ((_2 === (4)) || (_2 === (14)) || (_2 === (36)) || (_2 === (71)) || (_2 === (63)) || (_2 === (77)) || (_2 === (82)) || (_2 === (76)) || (_2 === (49))) { $s = 20; continue; } + /* */ if (_2 === (50)) { $s = 21; continue; } + /* */ if (_2 === (48)) { $s = 22; continue; } + /* */ if (_2 === (53)) { $s = 23; continue; } + /* */ if (_2 === (88)) { $s = 24; continue; } + /* */ if (_2 === (18)) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if ((_2 === (4)) || (_2 === (14)) || (_2 === (36)) || (_2 === (71)) || (_2 === (63)) || (_2 === (77)) || (_2 === (82)) || (_2 === (76)) || (_2 === (49))) { */ case 20: + _r$3 = p.parseType(); /* */ $s = 27; case 27: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + f.typ = _r$3; + $s = 26; continue; + /* } else if (_2 === (50)) { */ case 21: + _r$4 = p.parseArrayFieldOrTypeInstance(f.name); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + f.name = _tuple[0]; + f.typ = _tuple[1]; + $s = 26; continue; + /* } else if (_2 === (48)) { */ case 22: + _r$5 = p.parseDotsType(); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + f.typ = _r$5; + $24r$1 = f; + $s = 30; case 30: return $24r$1; + /* } else if (_2 === (53)) { */ case 23: + _r$6 = p.parseQualifiedIdent(f.name); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + f.typ = _r$6; + f.name = ptrType$2.nil; + $s = 26; continue; + /* } else if (_2 === (88)) { */ case 24: + /* */ if (typeSetsOK) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (typeSetsOK) { */ case 32: + _r$7 = p.embeddedElem($ifaceNil); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + f.typ = _r$7; + $24r$2 = f; + $s = 35; case 35: return $24r$2; + /* } */ case 33: + $s = 26; continue; + /* } else if (_2 === (18)) { */ case 25: + /* */ if (typeSetsOK) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (typeSetsOK) { */ case 36: + _r$8 = p.embeddedElem(f.name); /* */ $s = 38; case 38: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + f.typ = _r$8; + f.name = ptrType$2.nil; + $24r$3 = f; + $s = 39; case 39: return $24r$3; + /* } */ case 37: + /* } */ case 26: + case 19: + $s = 14; continue; + /* } else if ((_1 === (14)) || (_1 === (36)) || (_1 === (71)) || (_1 === (50)) || (_1 === (63)) || (_1 === (77)) || (_1 === (82)) || (_1 === (76)) || (_1 === (49))) { */ case 11: + _r$9 = p.parseType(); /* */ $s = 40; case 40: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + f.typ = _r$9; + $s = 14; continue; + /* } else if (_1 === (48)) { */ case 12: + _r$10 = p.parseDotsType(); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + f.typ = _r$10; + $24r$4 = f; + $s = 42; case 42: return $24r$4; + /* } else { */ case 13: + $r = p.errorExpected(p.pos, "')'"); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(exprEnd); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + case 9: + /* */ if (typeSetsOK && (p.tok === 18) && !($interfaceIsEqual(f.typ, $ifaceNil))) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (typeSetsOK && (p.tok === 18) && !($interfaceIsEqual(f.typ, $ifaceNil))) { */ case 45: + _r$11 = p.embeddedElem(f.typ); /* */ $s = 47; case 47: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + f.typ = _r$11; + /* } */ case 46: + $24r$5 = f; + $s = 48; case 48: return $24r$5; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return f; } if($curGoroutine.asleep) { var $f = {$blk: parseParamDecl, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _2, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, f, name, p, ptok, typeSetsOK, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseParameterList = function parseParameterList(name0, typ0, closing) { + var {$24r, $24r$1, $24r$2, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, addParams, closing, i, i$1, list, missingName, n, name0, named, names, ok, p, par, par$1, par$2, par$3, par$4, params, pos, tparams, typ, typ$1, typ$2, typ0, typeSetsOK, $s, $deferred, $r, $c} = $restore(this, {name0, typ0, closing}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + names = [names]; + params = [params]; + typ = [typ]; + params[0] = sliceType$5.nil; + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ParameterList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + tparams = closing === 55; + typeSetsOK = tparams && p.allowTypeSets(); + pos = p.pos; + if (!(name0 === ptrType$2.nil)) { + pos = name0.Pos(); + } + list = sliceType$6.nil; + named = 0; + /* while (true) { */ case 4: + /* if (!(!(name0 === ptrType$2.nil) || !((p.tok === closing)) && !((p.tok === 1)))) { break; } */ if(!(!(name0 === ptrType$2.nil) || !((p.tok === closing)) && !((p.tok === 1)))) { $s = 5; continue; } + par = new field.ptr(ptrType$2.nil, $ifaceNil); + /* */ if (!($interfaceIsEqual(typ0, $ifaceNil))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!($interfaceIsEqual(typ0, $ifaceNil))) { */ case 6: + /* */ if (typeSetsOK) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (typeSetsOK) { */ case 9: + _r$1 = p.embeddedElem(typ0); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ0 = _r$1; + /* } */ case 10: + field.copy(par, new field.ptr(name0, typ0)); + $s = 8; continue; + /* } else { */ case 7: + _r$2 = p.parseParamDecl(name0, typeSetsOK); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + field.copy(par, _r$2); + /* } */ case 8: + name0 = ptrType$2.nil; + typ0 = $ifaceNil; + if (!(par.name === ptrType$2.nil) || !($interfaceIsEqual(par.typ, $ifaceNil))) { + list = $append(list, par); + if (!(par.name === ptrType$2.nil) && !($interfaceIsEqual(par.typ, $ifaceNil))) { + named = named + (1) >> 0; + } + } + _r$3 = p.atComma("parameter list", closing); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!_r$3) { */ case 13: + /* break; */ $s = 5; continue; + /* } */ case 14: + $r = p.next(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 4; continue; + case 5: + /* */ if (list.$length === 0) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (list.$length === 0) { */ case 17: + $24r = params[0]; + $s = 19; case 19: return $24r; + /* } */ case 18: + /* */ if (named === 0) { $s = 20; continue; } + /* */ if (!((named === list.$length))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (named === 0) { */ case 20: + i = 0; + while (true) { + if (!(i < list.$length)) { break; } + par$1 = ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i]); + typ$1 = par$1.name; + if (!(typ$1 === ptrType$2.nil)) { + par$1.typ = typ$1; + par$1.name = ptrType$2.nil; + } + i = i + (1) >> 0; + } + /* */ if (tparams) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (tparams) { */ case 23: + $r = p.error(pos, "all type parameters must be named"); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + $s = 22; continue; + /* } else if (!((named === list.$length))) { */ case 21: + ok = true; + typ$2 = $ifaceNil; + missingName = pos; + i$1 = list.$length - 1 >> 0; + /* while (true) { */ case 26: + /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 27; continue; } + par$2 = ((i$1 < 0 || i$1 >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i$1]); + /* */ if (!($interfaceIsEqual(par$2.typ, $ifaceNil))) { $s = 28; continue; } + /* */ if (!($interfaceIsEqual(typ$2, $ifaceNil))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!($interfaceIsEqual(par$2.typ, $ifaceNil))) { */ case 28: + typ$2 = par$2.typ; + /* */ if (par$2.name === ptrType$2.nil) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (par$2.name === ptrType$2.nil) { */ case 32: + ok = false; + _r$4 = par$2.typ.Pos(); /* */ $s = 34; case 34: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + missingName = _r$4; + n = ast.NewIdent("_"); + _r$5 = typ$2.Pos(); /* */ $s = 35; case 35: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + n.NamePos = _r$5; + par$2.name = n; + /* } */ case 33: + $s = 31; continue; + /* } else if (!($interfaceIsEqual(typ$2, $ifaceNil))) { */ case 29: + par$2.typ = typ$2; + $s = 31; continue; + /* } else { */ case 30: + ok = false; + missingName = par$2.name.Pos(); + par$2.typ = new ast.BadExpr.ptr(par$2.name.Pos(), p.pos); + /* } */ case 31: + i$1 = i$1 - (1) >> 0; + $s = 26; continue; + case 27: + /* */ if (!ok) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (!ok) { */ case 36: + /* */ if (tparams) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (tparams) { */ case 38: + $r = p.error(missingName, "all type parameters must be named"); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 40; continue; + /* } else { */ case 39: + $r = p.error(pos, "mixed named and unnamed parameters"); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 40: + /* } */ case 37: + /* } */ case 22: + /* */ if (named === 0) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (named === 0) { */ case 43: + _ref = list; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + par$3 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), field); + assert(!($interfaceIsEqual(par$3.typ, $ifaceNil)), "nil type in unnamed parameter list"); + params[0] = $append(params[0], new ast.Field.ptr(ptrType$33.nil, sliceType.nil, par$3.typ, ptrType$35.nil, ptrType$33.nil)); + _i++; + } + $24r$1 = params[0]; + $s = 45; case 45: return $24r$1; + /* } */ case 44: + names[0] = sliceType.nil; + typ[0] = $ifaceNil; + addParams = (function(names, params, typ) { return function parser·parseParameterList·func1() { + var field$1; + assert(!($interfaceIsEqual(typ[0], $ifaceNil)), "nil type in named parameter list"); + field$1 = new ast.Field.ptr(ptrType$33.nil, names[0], typ[0], ptrType$35.nil, ptrType$33.nil); + params[0] = $append(params[0], field$1); + names[0] = sliceType.nil; + }; })(names, params, typ); + _ref$1 = list; + _i$1 = 0; + /* while (true) { */ case 46: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 47; continue; } + par$4 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), field); + /* */ if (!($interfaceIsEqual(par$4.typ, typ[0]))) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (!($interfaceIsEqual(par$4.typ, typ[0]))) { */ case 48: + /* */ if (names[0].$length > 0) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if (names[0].$length > 0) { */ case 50: + $r = addParams(); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 51: + typ[0] = par$4.typ; + /* } */ case 49: + names[0] = $append(names[0], par$4.name); + _i$1++; + $s = 46; continue; + case 47: + /* */ if (names[0].$length > 0) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (names[0].$length > 0) { */ case 53: + $r = addParams(); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 54: + $24r$2 = params[0]; + $s = 56; case 56: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return params[0]; } if($curGoroutine.asleep) { var $f = {$blk: parseParameterList, $c: true, $r, $24r, $24r$1, $24r$2, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, addParams, closing, i, i$1, list, missingName, n, name0, named, names, ok, p, par, par$1, par$2, par$3, par$4, params, pos, tparams, typ, typ$1, typ$2, typ0, typeSetsOK, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseParameters = function parseParameters(acceptTParams) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, acceptTParams, fields, list, opening, opening$1, p, params, rbrack, rparen, tparams, $s, $deferred, $r, $c} = $restore(this, {acceptTParams}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + tparams = ptrType$27.nil; + params = ptrType$27.nil; + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Parameters"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if (p.allowGenerics() && acceptTParams && (p.tok === 50)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.allowGenerics() && acceptTParams && (p.tok === 50)) { */ case 4: + opening = p.pos; + $r = p.next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = p.parseParameterList(ptrType$2.nil, $ifaceNil, 55); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = _r$1; + _r$2 = p.expect(55); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + rbrack = _r$2; + tparams = new ast.FieldList.ptr(opening, list, rbrack); + /* */ if (tparams.NumFields() === 0) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (tparams.NumFields() === 0) { */ case 9: + $r = p.error(tparams.Closing, "empty type parameter list"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tparams = ptrType$27.nil; + /* } */ case 10: + /* } */ case 5: + _r$3 = p.expect(49); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + opening$1 = _r$3; + fields = sliceType$5.nil; + /* */ if (!((p.tok === 54))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((p.tok === 54))) { */ case 13: + _r$4 = p.parseParameterList(ptrType$2.nil, $ifaceNil, 54); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + fields = _r$4; + /* } */ case 14: + _r$5 = p.expect(54); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + rparen = _r$5; + params = new ast.FieldList.ptr(opening$1, fields, rparen); + $24r = [tparams, params]; + $s = 17; case 17: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [tparams, params]; } if($curGoroutine.asleep) { var $f = {$blk: parseParameters, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, acceptTParams, fields, list, opening, opening$1, p, params, rbrack, rparen, tparams, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseResult = function parseResult() { + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _tuple, list, p, results, typ, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Result"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if (p.tok === 49) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.tok === 49) { */ case 4: + _r$1 = p.parseParameters(false); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + results = _tuple[1]; + $24r = results; + $s = 7; case 7: return $24r; + /* } */ case 5: + _r$2 = p.tryIdentOrType(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + /* */ if (!($interfaceIsEqual(typ, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(typ, $ifaceNil))) { */ case 9: + list = $makeSlice(sliceType$5, 1); + (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0] = new ast.Field.ptr(ptrType$33.nil, sliceType.nil, typ, ptrType$35.nil, ptrType$33.nil)); + $24r$1 = new ast.FieldList.ptr(0, list, 0); + $s = 11; case 11: return $24r$1; + /* } */ case 10: + $24r$2 = ptrType$27.nil; + $s = 12; case 12: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$27.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseResult, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _tuple, list, p, results, typ, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseFuncType = function parseFuncType() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, p, params, pos, results, tparams, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "FuncType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(71); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.parseParameters(true); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + tparams = _tuple[0]; + params = _tuple[1]; + /* */ if (!(tparams === ptrType$27.nil)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(tparams === ptrType$27.nil)) { */ case 6: + _r$3 = tparams.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = p.error(_r$3, "function type must have no type parameters"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + _r$4 = p.parseResult(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + results = _r$4; + $24r = new ast.FuncType.ptr(pos, ptrType$27.nil, params, results); + $s = 11; case 11: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$7.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFuncType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, p, params, pos, results, tparams, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseMethodSpec = function parseMethodSpec() { + var {$24r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, doc, ident, idents, lbrack, list, name0, p, params, params$1, rbrack, results, results$1, typ, x, x$1, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "MethodSpec"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + doc = p.leadComment; + idents = sliceType.nil; + typ = $ifaceNil; + _r$1 = p.parseTypeName(ptrType$2.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + _tuple = $assertType(x, ptrType$2, true); + ident = _tuple[0]; + /* */ if (!(ident === ptrType$2.nil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(ident === ptrType$2.nil)) { */ case 5: + /* */ if ((p.tok === 50) && p.allowGenerics()) { $s = 9; continue; } + /* */ if ((p.tok === 49)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((p.tok === 50) && p.allowGenerics()) { */ case 9: + lbrack = p.pos; + $r = p.next(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.exprLev = p.exprLev + (1) >> 0; + _r$2 = p.parseExpr(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x$1 = _r$2; + p.exprLev = p.exprLev - (1) >> 0; + _tuple$1 = $assertType(x$1, ptrType$2, true); + name0 = _tuple$1[0]; + /* */ if (!(name0 === ptrType$2.nil) && !((p.tok === 52)) && !((p.tok === 55))) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!(name0 === ptrType$2.nil) && !((p.tok === 52)) && !((p.tok === 55))) { */ case 15: + _r$3 = p.parseParameterList(name0, $ifaceNil, 55); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $unused(_r$3); + _r$4 = p.expect(55); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $unused(_r$4); + $r = p.error(lbrack, "interface method must have no type parameters"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$5 = p.parseParameters(false); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + params = _tuple$2[1]; + _r$6 = p.parseResult(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + results = _r$6; + idents = new sliceType([ident]); + typ = new ast.FuncType.ptr(0, ptrType$27.nil, params, results); + $s = 17; continue; + /* } else { */ case 16: + list = new sliceType$3([x$1]); + _r$7 = p.atComma("type argument list", 55); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (_r$7) { */ case 23: + p.exprLev = p.exprLev + (1) >> 0; + $r = p.next(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 27: + /* if (!(!((p.tok === 55)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 55)) && !((p.tok === 1)))) { $s = 28; continue; } + _r$8 = p.parseType(); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + list = $append(list, _r$8); + _r$9 = p.atComma("type argument list", 55); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (!_r$9) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (!_r$9) { */ case 30: + /* break; */ $s = 28; continue; + /* } */ case 31: + $r = p.next(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + case 28: + p.exprLev = p.exprLev - (1) >> 0; + /* } */ case 24: + _r$10 = p.expectClosing(55, "type argument list"); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + rbrack = _r$10; + typ = typeparams.PackIndexExpr(ident, lbrack, list, rbrack); + /* } */ case 17: + $s = 12; continue; + /* } else if ((p.tok === 49)) { */ case 10: + _r$11 = p.parseParameters(false); /* */ $s = 35; case 35: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$3 = _r$11; + params$1 = _tuple$3[1]; + _r$12 = p.parseResult(); /* */ $s = 36; case 36: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + results$1 = _r$12; + idents = new sliceType([ident]); + typ = new ast.FuncType.ptr(0, ptrType$27.nil, params$1, results$1); + $s = 12; continue; + /* } else { */ case 11: + typ = x; + /* } */ case 12: + case 8: + $s = 7; continue; + /* } else { */ case 6: + typ = x; + /* */ if ((p.tok === 50) && p.allowGenerics()) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if ((p.tok === 50) && p.allowGenerics()) { */ case 37: + _r$13 = p.parseTypeInstance(typ); /* */ $s = 39; case 39: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + typ = _r$13; + /* } */ case 38: + /* } */ case 7: + $24r = new ast.Field.ptr(doc, idents, typ, ptrType$35.nil, ptrType$33.nil); + $s = 40; case 40: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$36.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseMethodSpec, $c: true, $r, $24r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, doc, ident, idents, lbrack, list, name0, p, params, params$1, rbrack, results, results$1, typ, x, x$1, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.embeddedElem = function embeddedElem(x) { + var {$24r, _r, _r$1, _r$2, p, t, x, $s, $deferred, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "EmbeddedElem"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if ($interfaceIsEqual(x, $ifaceNil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(x, $ifaceNil)) { */ case 4: + _r$1 = p.embeddedTerm(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + /* } */ case 5: + /* while (true) { */ case 7: + /* if (!(p.tok === 18)) { break; } */ if(!(p.tok === 18)) { $s = 8; continue; } + t = new ast.BinaryExpr.ptr($ifaceNil, 0, 0, $ifaceNil); + t.OpPos = p.pos; + t.Op = 18; + $r = p.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + t.X = x; + _r$2 = p.embeddedTerm(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + t.Y = _r$2; + x = t; + $s = 7; continue; + case 8: + $24r = x; + $s = 11; case 11: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: embeddedElem, $c: true, $r, $24r, _r, _r$1, _r$2, p, t, x, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.embeddedTerm = function embeddedTerm() { + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, p, pos, t, t$1, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "EmbeddedTerm"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if (p.tok === 88) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.tok === 88) { */ case 4: + t = new ast.UnaryExpr.ptr(0, 0, $ifaceNil); + t.OpPos = p.pos; + t.Op = 88; + $r = p.next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = p.parseType(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + t.X = _r$1; + $24r = t; + $s = 8; case 8: return $24r; + /* } */ case 5: + _r$2 = p.tryIdentOrType(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + t$1 = _r$2; + /* */ if ($interfaceIsEqual(t$1, $ifaceNil)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ($interfaceIsEqual(t$1, $ifaceNil)) { */ case 10: + pos = p.pos; + $r = p.errorExpected(pos, "~ term or type"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(exprEnd); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$1 = new ast.BadExpr.ptr(pos, p.pos); + $s = 14; case 14: return $24r$1; + /* } */ case 11: + $24r$2 = t$1; + $s = 15; case 15: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: embeddedTerm, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, p, pos, t, t$1, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseInterfaceType = function parseInterfaceType() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, comment, comment$1, f, lbrace, list, p, pos, rbrace, t, typ, typ$1, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "InterfaceType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(76); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.expect(51); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + lbrace = _r$2; + list = sliceType$5.nil; + /* while (true) { */ case 6: + /* */ if ((p.tok === 4)) { $s = 9; continue; } + /* */ if ((p.tok === 88) && p.allowGenerics()) { $s = 10; continue; } + /* */ if (p.allowGenerics()) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ((p.tok === 4)) { */ case 9: + _r$3 = p.parseMethodSpec(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + f = _r$3; + /* */ if (f.Names === sliceType.nil && p.allowGenerics()) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (f.Names === sliceType.nil && p.allowGenerics()) { */ case 15: + _r$4 = p.embeddedElem(f.Type); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + f.Type = _r$4; + /* } */ case 16: + $r = p.expectSemi(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + f.Comment = p.lineComment; + list = $append(list, f); + $s = 13; continue; + /* } else if ((p.tok === 88) && p.allowGenerics()) { */ case 10: + _r$5 = p.embeddedElem($ifaceNil); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + typ = _r$5; + $r = p.expectSemi(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + comment = p.lineComment; + list = $append(list, new ast.Field.ptr(ptrType$33.nil, sliceType.nil, typ, ptrType$35.nil, comment)); + $s = 13; continue; + /* } else if (p.allowGenerics()) { */ case 11: + _r$6 = p.tryIdentOrType(); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + t = _r$6; + /* */ if (!($interfaceIsEqual(t, $ifaceNil))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!($interfaceIsEqual(t, $ifaceNil))) { */ case 22: + _r$7 = p.embeddedElem(t); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + typ$1 = _r$7; + $r = p.expectSemi(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + comment$1 = p.lineComment; + list = $append(list, new ast.Field.ptr(ptrType$33.nil, sliceType.nil, typ$1, ptrType$35.nil, comment$1)); + $s = 24; continue; + /* } else { */ case 23: + /* break parseElements; */ $s = 7; continue s; + /* } */ case 24: + $s = 13; continue; + /* } else { */ case 12: + /* break parseElements; */ $s = 7; continue s; + /* } */ case 13: + case 8: + $s = 6; continue; + case 7: + _r$8 = p.expect(56); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + rbrace = _r$8; + $24r = new ast.InterfaceType.ptr(pos, new ast.FieldList.ptr(lbrace, list, rbrace), false); + $s = 28; case 28: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$9.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseInterfaceType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, comment, comment$1, f, lbrace, list, p, pos, rbrace, t, typ, typ$1, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseMapType = function parseMapType() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, key, p, pos, value, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "MapType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(77); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.expect(50); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = p.parseType(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + key = _r$3; + _r$4 = p.expect(55); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + _r$5 = p.parseType(); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + value = _r$5; + $24r = new ast.MapType.ptr(pos, key, value); + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$38.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseMapType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, key, p, pos, value, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseChanType = function parseChanType() { + var {$24r, _r, _r$1, _r$2, _r$3, arrow, dir, p, pos, value, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ChanType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + pos = p.pos; + dir = 3; + arrow = 0; + /* */ if (p.tok === 63) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.tok === 63) { */ case 4: + $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (p.tok === 36) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (p.tok === 36) { */ case 8: + arrow = p.pos; + $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + dir = 1; + /* } */ case 9: + $s = 6; continue; + /* } else { */ case 5: + _r$1 = p.expect(36); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + arrow = _r$1; + _r$2 = p.expect(63); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + dir = 2; + /* } */ case 6: + _r$3 = p.parseType(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + value = _r$3; + $24r = new ast.ChanType.ptr(pos, arrow, dir, value); + $s = 14; case 14: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$39.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseChanType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, arrow, dir, p, pos, value, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseTypeInstance = function parseTypeInstance(typ) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, closing, list, opening, p, typ, $s, $deferred, $r, $c} = $restore(this, {typ}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + assert(p.allowGenerics(), "parseTypeInstance while not parsing type params"); + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "TypeInstance"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(50); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + opening = _r$1; + p.exprLev = p.exprLev + (1) >> 0; + list = sliceType$3.nil; + /* while (true) { */ case 5: + /* if (!(!((p.tok === 55)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 55)) && !((p.tok === 1)))) { $s = 6; continue; } + _r$2 = p.parseType(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = $append(list, _r$2); + _r$3 = p.atComma("type argument list", 55); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!_r$3) { */ case 8: + /* break; */ $s = 6; continue; + /* } */ case 9: + $r = p.next(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + case 6: + p.exprLev = p.exprLev - (1) >> 0; + _r$4 = p.expectClosing(55, "type argument list"); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + closing = _r$4; + /* */ if (list.$length === 0) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (list.$length === 0) { */ case 13: + $r = p.errorExpected(closing, "type argument list"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r = new ast.IndexExpr.ptr(typ, opening, new ast.BadExpr.ptr(opening + 1 >> 0, closing), closing); + $s = 16; case 16: return $24r; + /* } */ case 14: + $24r$1 = typeparams.PackIndexExpr(typ, opening, list, closing); + $s = 17; case 17: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseTypeInstance, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, closing, list, opening, p, typ, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.tryIdentOrType = function tryIdentOrType() { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, lbrack, lparen, p, rparen, typ, typ$1, typ$2, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + _r = incNestLev(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([decNestLev, [_r]]); + _1 = p.tok; + /* */ if (_1 === (4)) { $s = 3; continue; } + /* */ if (_1 === (50)) { $s = 4; continue; } + /* */ if (_1 === (82)) { $s = 5; continue; } + /* */ if (_1 === (14)) { $s = 6; continue; } + /* */ if (_1 === (71)) { $s = 7; continue; } + /* */ if (_1 === (76)) { $s = 8; continue; } + /* */ if (_1 === (77)) { $s = 9; continue; } + /* */ if ((_1 === (63)) || (_1 === (36))) { $s = 10; continue; } + /* */ if (_1 === (49)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_1 === (4)) { */ case 3: + _r$1 = p.parseTypeName(ptrType$2.nil); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ = _r$1; + /* */ if ((p.tok === 50) && p.allowGenerics()) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ((p.tok === 50) && p.allowGenerics()) { */ case 14: + _r$2 = p.parseTypeInstance(typ); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + /* } */ case 15: + $s = -1; return typ; + /* } else if (_1 === (50)) { */ case 4: + _r$3 = p.expect(50); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + lbrack = _r$3; + _r$4 = p.parseArrayType(lbrack, $ifaceNil); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 19; case 19: return $24r; + /* } else if (_1 === (82)) { */ case 5: + _r$5 = p.parseStructType(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$1 = _r$5; + $s = 21; case 21: return $24r$1; + /* } else if (_1 === (14)) { */ case 6: + _r$6 = p.parsePointerType(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$2 = _r$6; + $s = 23; case 23: return $24r$2; + /* } else if (_1 === (71)) { */ case 7: + _r$7 = p.parseFuncType(); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + typ$1 = _r$7; + $s = -1; return typ$1; + /* } else if (_1 === (76)) { */ case 8: + _r$8 = p.parseInterfaceType(); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r$3 = _r$8; + $s = 26; case 26: return $24r$3; + /* } else if (_1 === (77)) { */ case 9: + _r$9 = p.parseMapType(); /* */ $s = 27; case 27: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $24r$4 = _r$9; + $s = 28; case 28: return $24r$4; + /* } else if ((_1 === (63)) || (_1 === (36))) { */ case 10: + _r$10 = p.parseChanType(); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $24r$5 = _r$10; + $s = 30; case 30: return $24r$5; + /* } else if (_1 === (49)) { */ case 11: + lparen = p.pos; + $r = p.next(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$11 = p.parseType(); /* */ $s = 32; case 32: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + typ$2 = _r$11; + _r$12 = p.expect(54); /* */ $s = 33; case 33: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + rparen = _r$12; + $s = -1; return new ast.ParenExpr.ptr(lparen, typ$2, rparen); + /* } */ case 12: + case 2: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: tryIdentOrType, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, lbrack, lparen, p, rparen, typ, typ$1, typ$2, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseStmtList = function parseStmtList() { + var {$24r, _r, _r$1, list, p, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + list = sliceType$7.nil; + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "StatementList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* while (true) { */ case 4: + /* if (!(!((p.tok === 62)) && !((p.tok === 66)) && !((p.tok === 56)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 62)) && !((p.tok === 66)) && !((p.tok === 56)) && !((p.tok === 1)))) { $s = 5; continue; } + _r$1 = p.parseStmt(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = $append(list, _r$1); + $s = 4; continue; + case 5: + $24r = list; + $s = 7; case 7: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return list; } if($curGoroutine.asleep) { var $f = {$blk: parseStmtList, $c: true, $r, $24r, _r, _r$1, list, p, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseBody = function parseBody() { + var {$24r, _r, _r$1, _r$2, _r$3, lbrace, list, p, rbrace, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Body"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(51); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lbrace = _r$1; + _r$2 = p.parseStmtList(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = _r$2; + _r$3 = p.expect2(56); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rbrace = _r$3; + $24r = new ast.BlockStmt.ptr(lbrace, list, rbrace); + $s = 7; case 7: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$13.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseBody, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, lbrace, list, p, rbrace, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseBlockStmt = function parseBlockStmt() { + var {$24r, _r, _r$1, _r$2, _r$3, lbrace, list, p, rbrace, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "BlockStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(51); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lbrace = _r$1; + _r$2 = p.parseStmtList(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = _r$2; + _r$3 = p.expect2(56); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rbrace = _r$3; + $24r = new ast.BlockStmt.ptr(lbrace, list, rbrace); + $s = 7; case 7: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$13.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseBlockStmt, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, lbrace, list, p, rbrace, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseFuncTypeOrLit = function parseFuncTypeOrLit() { + var {$24r, $24r$1, _r, _r$1, _r$2, body, p, typ, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "FuncTypeOrLit"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseFuncType(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ = _r$1; + /* */ if (!((p.tok === 51))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((p.tok === 51))) { */ case 5: + $24r = typ; + $s = 7; case 7: return $24r; + /* } */ case 6: + p.exprLev = p.exprLev + (1) >> 0; + _r$2 = p.parseBody(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + body = _r$2; + p.exprLev = p.exprLev - (1) >> 0; + $24r$1 = new ast.FuncLit.ptr(typ, body); + $s = 9; case 9: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFuncTypeOrLit, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, body, p, typ, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseOperand = function parseOperand() { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, isIdent, lparen, p, pos, rparen, typ, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Operand"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _1 = p.tok; + /* */ if (_1 === (4)) { $s = 5; continue; } + /* */ if ((_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { $s = 6; continue; } + /* */ if (_1 === (49)) { $s = 7; continue; } + /* */ if (_1 === (71)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (4)) { */ case 5: + _r$1 = p.parseIdent(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + $24r = x; + $s = 11; case 11: return $24r; + /* } else if ((_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { */ case 6: + x$1 = new ast.BasicLit.ptr(p.pos, p.tok, p.lit); + $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$1 = x$1; + $s = 13; case 13: return $24r$1; + /* } else if (_1 === (49)) { */ case 7: + lparen = p.pos; + $r = p.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.exprLev = p.exprLev + (1) >> 0; + _r$2 = p.parseRhsOrType(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x$2 = _r$2; + p.exprLev = p.exprLev - (1) >> 0; + _r$3 = p.expect(54); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rparen = _r$3; + $24r$2 = new ast.ParenExpr.ptr(lparen, x$2, rparen); + $s = 17; case 17: return $24r$2; + /* } else if (_1 === (71)) { */ case 8: + _r$4 = p.parseFuncTypeOrLit(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$3 = _r$4; + $s = 19; case 19: return $24r$3; + /* } */ case 9: + case 4: + _r$5 = p.tryIdentOrType(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + typ = _r$5; + /* */ if (!($interfaceIsEqual(typ, $ifaceNil))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!($interfaceIsEqual(typ, $ifaceNil))) { */ case 21: + _tuple = $assertType(typ, ptrType$2, true); + isIdent = _tuple[1]; + assert(!isIdent, "type cannot be identifier"); + $24r$4 = typ; + $s = 23; case 23: return $24r$4; + /* } */ case 22: + pos = p.pos; + $r = p.errorExpected(pos, "operand"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(stmtStart); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$5 = new ast.BadExpr.ptr(pos, p.pos); + $s = 26; case 26: return $24r$5; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseOperand, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, isIdent, lparen, p, pos, rparen, typ, x, x$1, x$2, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseSelector = function parseSelector(x) { + var {$24r, _r, _r$1, p, sel, x, $s, $deferred, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Selector"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseIdent(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + sel = _r$1; + $24r = new ast.SelectorExpr.ptr(x, sel); + $s = 5; case 5: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseSelector, $c: true, $r, $24r, _r, _r$1, p, sel, x, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseTypeAssertion = function parseTypeAssertion(x) { + var {$24r, _r, _r$1, _r$2, _r$3, lparen, p, rparen, typ, x, $s, $deferred, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "TypeAssertion"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(49); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lparen = _r$1; + typ = $ifaceNil; + /* */ if (p.tok === 84) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (p.tok === 84) { */ case 5: + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + _r$2 = p.parseType(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + /* } */ case 7: + _r$3 = p.expect(54); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rparen = _r$3; + $24r = new ast.TypeAssertExpr.ptr(x, lparen, typ, rparen); + $s = 11; case 11: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseTypeAssertion, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, lparen, p, rparen, typ, x, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseIndexOrSliceOrInstance = function parseIndexOrSliceOrInstance(x) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, args, colons, firstComma, index, lbrack, ncolons, p, rbrack, rbrack$1, slice3, x, x$1, $s, $deferred, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "parseIndexOrSliceOrInstance"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(50); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lbrack = _r$1; + /* */ if (p.tok === 55) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (p.tok === 55) { */ case 5: + $r = p.errorExpected(p.pos, "operand"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + rbrack = p.pos; + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r = new ast.IndexExpr.ptr(x, lbrack, new ast.BadExpr.ptr(rbrack, rbrack), rbrack); + $s = 9; case 9: return $24r; + /* } */ case 6: + p.exprLev = p.exprLev + (1) >> 0; + args = sliceType$3.nil; + index = arrayType.zero(); + colons = arrayType$1.zero(); + firstComma = 0; + /* */ if (!((p.tok === 58))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((p.tok === 58))) { */ case 10: + _r$2 = p.parseRhsOrType(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + index[0] = _r$2; + /* } */ case 11: + ncolons = 0; + _1 = p.tok; + /* */ if (_1 === (58)) { $s = 14; continue; } + /* */ if (_1 === (52)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (_1 === (58)) { */ case 14: + /* while (true) { */ case 17: + /* if (!((p.tok === 58) && ncolons < 2)) { break; } */ if(!((p.tok === 58) && ncolons < 2)) { $s = 18; continue; } + ((ncolons < 0 || ncolons >= colons.length) ? ($throwRuntimeError("index out of range"), undefined) : colons[ncolons] = p.pos); + ncolons = ncolons + (1) >> 0; + $r = p.next(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((p.tok === 58)) && !((p.tok === 55)) && !((p.tok === 1))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!((p.tok === 58)) && !((p.tok === 55)) && !((p.tok === 1))) { */ case 20: + _r$3 = p.parseRhs(); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ((ncolons < 0 || ncolons >= index.length) ? ($throwRuntimeError("index out of range"), undefined) : index[ncolons] = _r$3); + /* } */ case 21: + $s = 17; continue; + case 18: + $s = 16; continue; + /* } else if (_1 === (52)) { */ case 15: + firstComma = p.pos; + args = $append(args, index[0]); + /* while (true) { */ case 23: + /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 24; continue; } + $r = p.next(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((p.tok === 55)) && !((p.tok === 1))) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!((p.tok === 55)) && !((p.tok === 1))) { */ case 26: + _r$4 = p.parseType(); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + args = $append(args, _r$4); + /* } */ case 27: + $s = 23; continue; + case 24: + /* } */ case 16: + case 13: + p.exprLev = p.exprLev - (1) >> 0; + _r$5 = p.expect(55); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + rbrack$1 = _r$5; + /* */ if (ncolons > 0) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (ncolons > 0) { */ case 30: + slice3 = false; + /* */ if (ncolons === 2) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (ncolons === 2) { */ case 32: + slice3 = true; + /* */ if ($interfaceIsEqual(index[1], $ifaceNil)) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if ($interfaceIsEqual(index[1], $ifaceNil)) { */ case 34: + $r = p.error(colons[0], "2nd index required in 3-index slice"); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + index[1] = new ast.BadExpr.ptr(colons[0] + 1 >> 0, colons[1]); + /* } */ case 35: + /* */ if ($interfaceIsEqual(index[2], $ifaceNil)) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if ($interfaceIsEqual(index[2], $ifaceNil)) { */ case 37: + $r = p.error(colons[1], "3rd index required in 3-index slice"); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + index[2] = new ast.BadExpr.ptr(colons[1] + 1 >> 0, rbrack$1); + /* } */ case 38: + /* } */ case 33: + $24r$1 = new ast.SliceExpr.ptr(x, lbrack, index[0], index[1], index[2], slice3, rbrack$1); + $s = 40; case 40: return $24r$1; + /* } */ case 31: + /* */ if (args.$length === 0) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (args.$length === 0) { */ case 41: + $24r$2 = new ast.IndexExpr.ptr(x, lbrack, index[0], rbrack$1); + $s = 43; case 43: return $24r$2; + /* } */ case 42: + /* */ if (!p.allowGenerics()) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!p.allowGenerics()) { */ case 44: + $r = p.error(firstComma, "expected ']' or ':', found ','"); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$6 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).Pos(); /* */ $s = 47; case 47: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = (x$1 = args.$length - 1 >> 0, ((x$1 < 0 || x$1 >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + x$1])).End(); /* */ $s = 48; case 48: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$3 = new ast.BadExpr.ptr(_r$6, _r$7); + $s = 49; case 49: return $24r$3; + /* } */ case 45: + $24r$4 = typeparams.PackIndexExpr(x, lbrack, args, rbrack$1); + $s = 50; case 50: return $24r$4; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseIndexOrSliceOrInstance, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, args, colons, firstComma, index, lbrack, ncolons, p, rbrack, rbrack$1, slice3, x, x$1, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseCallOrConversion = function parseCallOrConversion(fun) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, ellipsis, fun, list, lparen, p, rparen, $s, $deferred, $r, $c} = $restore(this, {fun}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "CallOrConversion"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(49); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lparen = _r$1; + p.exprLev = p.exprLev + (1) >> 0; + list = sliceType$3.nil; + ellipsis = 0; + /* while (true) { */ case 5: + /* if (!(!((p.tok === 54)) && !((p.tok === 1)) && !new token.Pos(ellipsis).IsValid())) { break; } */ if(!(!((p.tok === 54)) && !((p.tok === 1)) && !new token.Pos(ellipsis).IsValid())) { $s = 6; continue; } + _r$2 = p.parseRhsOrType(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = $append(list, _r$2); + /* */ if (p.tok === 48) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (p.tok === 48) { */ case 8: + ellipsis = p.pos; + $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + _r$3 = p.atComma("argument list", 54); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!_r$3) { */ case 11: + /* break; */ $s = 6; continue; + /* } */ case 12: + $r = p.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + case 6: + p.exprLev = p.exprLev - (1) >> 0; + _r$4 = p.expectClosing(54, "argument list"); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + rparen = _r$4; + $24r = new ast.CallExpr.ptr(fun, lparen, list, ellipsis, rparen); + $s = 16; case 16: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$40.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseCallOrConversion, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, ellipsis, fun, list, lparen, p, rparen, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseValue = function parseValue() { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, p, x, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Element"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if (p.tok === 51) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.tok === 51) { */ case 4: + _r$1 = p.parseLiteralValue($ifaceNil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 7; case 7: return $24r; + /* } */ case 5: + _r$2 = p.parseExpr(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = p.checkExpr(_r$2); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + x = _r$3; + $24r$1 = x; + $s = 10; case 10: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseValue, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, p, x, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseElement = function parseElement() { + var {$24r, _r, _r$1, _r$2, colon, p, x, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Element"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseValue(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + /* */ if (p.tok === 58) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (p.tok === 58) { */ case 5: + colon = p.pos; + $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseValue(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = new ast.KeyValueExpr.ptr(x, colon, _r$2); + /* } */ case 6: + $24r = x; + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseElement, $c: true, $r, $24r, _r, _r$1, _r$2, colon, p, x, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseElementList = function parseElementList() { + var {$24r, _r, _r$1, _r$2, list, p, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + list = sliceType$3.nil; + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ElementList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* while (true) { */ case 4: + /* if (!(!((p.tok === 56)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 56)) && !((p.tok === 1)))) { $s = 5; continue; } + _r$1 = p.parseElement(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = $append(list, _r$1); + _r$2 = p.atComma("composite literal", 56); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$2) { */ case 7: + /* break; */ $s = 5; continue; + /* } */ case 8: + $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 4; continue; + case 5: + $24r = list; + $s = 11; case 11: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return list; } if($curGoroutine.asleep) { var $f = {$blk: parseElementList, $c: true, $r, $24r, _r, _r$1, _r$2, list, p, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseLiteralValue = function parseLiteralValue(typ) { + var {$24r, _r, _r$1, _r$2, _r$3, elts, lbrace, p, rbrace, typ, $s, $deferred, $r, $c} = $restore(this, {typ}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "LiteralValue"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(51); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lbrace = _r$1; + elts = sliceType$3.nil; + p.exprLev = p.exprLev + (1) >> 0; + /* */ if (!((p.tok === 56))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((p.tok === 56))) { */ case 5: + _r$2 = p.parseElementList(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + elts = _r$2; + /* } */ case 6: + p.exprLev = p.exprLev - (1) >> 0; + _r$3 = p.expectClosing(56, "composite literal"); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rbrace = _r$3; + $24r = new ast.CompositeLit.ptr(typ, lbrace, elts, rbrace, false); + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseLiteralValue, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, elts, lbrace, p, rbrace, typ, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.checkExpr = function checkExpr(x) { + var {_r, _r$1, _r$2, _r$3, _ref, p, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = unparen(x); + /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ($assertType(_ref, ptrType$41, true)[1]) { */ case 1: + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 2: + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$35, true)[1]) { */ case 3: + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 4: + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 5: + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 6: + $panic(new $String("unreachable")); + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 7: + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 8: + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 9: + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 10: + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 11: + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 12: + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 13: + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 14: + $s = 17; continue; + /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 15: + $s = 17; continue; + /* } else { */ case 16: + _r = x.Pos(); /* */ $s = 18; case 18: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.errorExpected(_r, "expression"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = x.Pos(); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = x.End(); /* */ $s = 21; case 21: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = p.safePos(_r$2); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + x = new ast.BadExpr.ptr(_r$1, _r$3); + /* } */ case 17: + $s = -1; return x; + /* */ } return; } var $f = {$blk: checkExpr, $c: true, $r, _r, _r$1, _r$2, _r$3, _ref, p, x, $s};return $f; + }; + unparen = function unparen$1(x) { + var _tuple, isParen, p, x; + _tuple = $assertType(x, ptrType$42, true); + p = _tuple[0]; + isParen = _tuple[1]; + if (isParen) { + x = unparen(p.X); + } + return x; + }; + $ptrType(parser).prototype.checkExprOrType = function checkExprOrType(x) { + var {_r, _r$1, _r$2, _ref, _tuple, isEllipsis, len, p, t, t$1, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = unparen(x); + /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, ptrType$42, true)[1]) { */ case 1: + t = _ref.$val; + $panic(new $String("unreachable")); + $s = 3; continue; + /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 2: + t$1 = _ref.$val; + _tuple = $assertType(t$1.Len, ptrType$37, true); + len = _tuple[0]; + isEllipsis = _tuple[1]; + /* */ if (isEllipsis) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (isEllipsis) { */ case 4: + $r = p.error(len.Pos(), "expected array length, found '...'"); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = x.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = x.End(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = p.safePos(_r$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = new ast.BadExpr.ptr(_r, _r$2); + /* } */ case 5: + /* } */ case 3: + $s = -1; return x; + /* */ } return; } var $f = {$blk: checkExprOrType, $c: true, $r, _r, _r$1, _r$2, _ref, _tuple, isEllipsis, len, p, t, t$1, x, $s};return $f; + }; + $ptrType(parser).prototype.parsePrimaryExpr = function parsePrimaryExpr(x) { + var {$24r, $24r$1, $24r$2, $24r$3, _1, _2, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, n, p, pos, sel, t, x, $s, $deferred, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + n = [n]; + p = [p]; + p[0] = this; + /* */ if (p[0].trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p[0].trace) { */ case 1: + _r = trace(p[0], "PrimaryExpr"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if ($interfaceIsEqual(x, $ifaceNil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(x, $ifaceNil)) { */ case 4: + _r$1 = p[0].parseOperand(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + /* } */ case 5: + n[0] = 0; + $deferred.push([(function(n, p) { return function parser·parsePrimaryExpr·func1() { + p[0].nestLev = p[0].nestLev - (n[0]) >> 0; + }; })(n, p), []]); + n[0] = 1; + /* while (true) { */ case 7: + _r$2 = incNestLev(p[0]); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _1 = p[0].tok; + /* */ if (_1 === (53)) { $s = 11; continue; } + /* */ if (_1 === (50)) { $s = 12; continue; } + /* */ if (_1 === (49)) { $s = 13; continue; } + /* */ if (_1 === (51)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_1 === (53)) { */ case 11: + $r = p[0].next(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _2 = p[0].tok; + /* */ if (_2 === (4)) { $s = 19; continue; } + /* */ if (_2 === (49)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_2 === (4)) { */ case 19: + _r$3 = p[0].checkExprOrType(x); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = p[0].parseSelector(_r$3); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + x = _r$4; + $s = 22; continue; + /* } else if (_2 === (49)) { */ case 20: + _r$5 = p[0].checkExpr(x); /* */ $s = 25; case 25: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = p[0].parseTypeAssertion(_r$5); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + x = _r$6; + $s = 22; continue; + /* } else { */ case 21: + pos = p[0].pos; + $r = p[0].errorExpected(pos, "selector or type assertion"); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((p[0].tok === 56))) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!((p[0].tok === 56))) { */ case 28: + $r = p[0].next(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 29: + sel = new ast.Ident.ptr(pos, "_", ptrType$3.nil); + x = new ast.SelectorExpr.ptr(x, sel); + /* } */ case 22: + case 18: + $s = 16; continue; + /* } else if (_1 === (50)) { */ case 12: + _r$7 = p[0].checkExpr(x); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = p[0].parseIndexOrSliceOrInstance(_r$7); /* */ $s = 32; case 32: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + x = _r$8; + $s = 16; continue; + /* } else if (_1 === (49)) { */ case 13: + _r$9 = p[0].checkExprOrType(x); /* */ $s = 33; case 33: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = p[0].parseCallOrConversion(_r$9); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + x = _r$10; + $s = 16; continue; + /* } else if (_1 === (51)) { */ case 14: + t = unparen(x); + _ref = t; + /* */ if ($assertType(_ref, ptrType$41, true)[1] || $assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$5, true)[1]) { $s = 35; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$30, true)[1]) { $s = 36; continue; } + /* */ if ($assertType(_ref, ptrType$34, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if ($assertType(_ref, ptrType$41, true)[1] || $assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$5, true)[1]) { */ case 35: + /* */ if (p[0].exprLev < 0) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (p[0].exprLev < 0) { */ case 40: + $24r = x; + $s = 42; case 42: return $24r; + /* } */ case 41: + $s = 39; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$30, true)[1]) { */ case 36: + /* */ if (p[0].exprLev < 0) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (p[0].exprLev < 0) { */ case 43: + $24r$1 = x; + $s = 45; case 45: return $24r$1; + /* } */ case 44: + $s = 39; continue; + /* } else if ($assertType(_ref, ptrType$34, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { */ case 37: + $s = 39; continue; + /* } else { */ case 38: + $24r$2 = x; + $s = 46; case 46: return $24r$2; + /* } */ case 39: + /* */ if (!($interfaceIsEqual(t, x))) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (!($interfaceIsEqual(t, x))) { */ case 47: + _r$11 = t.Pos(); /* */ $s = 49; case 49: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $r = p[0].error(_r$11, "cannot parenthesize type in composite literal"); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 48: + _r$12 = p[0].parseLiteralValue(x); /* */ $s = 51; case 51: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + x = _r$12; + $s = 16; continue; + /* } else { */ case 15: + $24r$3 = x; + $s = 52; case 52: return $24r$3; + /* } */ case 16: + case 10: + n[0] = n[0] + (1) >> 0; + $s = 7; continue; + case 8: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parsePrimaryExpr, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _1, _2, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, n, p, pos, sel, t, x, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseUnaryExpr = function parseUnaryExpr() { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, _tuple$1, arrow, dir, ok, op, p, pos, pos$1, typ, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + _r = incNestLev(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([decNestLev, [_r]]); + /* */ if (p.trace) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (p.trace) { */ case 2: + _r$1 = trace(p, "UnaryExpr"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $deferred.push([un, [_r$1]]); + /* } */ case 3: + _1 = p.tok; + /* */ if ((_1 === (12)) || (_1 === (13)) || (_1 === (43)) || (_1 === (19)) || (_1 === (17)) || (_1 === (88))) { $s = 6; continue; } + /* */ if (_1 === (36)) { $s = 7; continue; } + /* */ if (_1 === (14)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((_1 === (12)) || (_1 === (13)) || (_1 === (43)) || (_1 === (19)) || (_1 === (17)) || (_1 === (88))) { */ case 6: + _tmp = p.pos; + _tmp$1 = p.tok; + pos = _tmp; + op = _tmp$1; + $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseUnaryExpr(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + _r$3 = p.checkExpr(x); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = new ast.UnaryExpr.ptr(pos, op, _r$3); + $s = 13; case 13: return $24r; + /* } else if (_1 === (36)) { */ case 7: + arrow = p.pos; + $r = p.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = p.parseUnaryExpr(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + x$1 = _r$4; + _tuple = $assertType(x$1, ptrType$39, true); + typ = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (ok) { */ case 16: + dir = 1; + /* while (true) { */ case 18: + /* if (!(ok && (dir === 1))) { break; } */ if(!(ok && (dir === 1))) { $s = 19; continue; } + /* */ if (typ.Dir === 2) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (typ.Dir === 2) { */ case 20: + $r = p.errorExpected(typ.Arrow, "'chan'"); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 21: + _tmp$2 = typ.Arrow; + _tmp$3 = arrow; + _tmp$4 = arrow; + arrow = _tmp$2; + typ.Begin = _tmp$3; + typ.Arrow = _tmp$4; + _tmp$5 = typ.Dir; + _tmp$6 = 2; + dir = _tmp$5; + typ.Dir = _tmp$6; + _tuple$1 = $assertType(typ.Value, ptrType$39, true); + typ = _tuple$1[0]; + ok = _tuple$1[1]; + $s = 18; continue; + case 19: + /* */ if (dir === 1) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (dir === 1) { */ case 23: + $r = p.errorExpected(arrow, "channel type"); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + $24r$1 = x$1; + $s = 26; case 26: return $24r$1; + /* } */ case 17: + _r$5 = p.checkExpr(x$1); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$2 = new ast.UnaryExpr.ptr(arrow, 36, _r$5); + $s = 28; case 28: return $24r$2; + /* } else if (_1 === (14)) { */ case 8: + pos$1 = p.pos; + $r = p.next(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$6 = p.parseUnaryExpr(); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + x$2 = _r$6; + _r$7 = p.checkExprOrType(x$2); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$3 = new ast.StarExpr.ptr(pos$1, _r$7); + $s = 32; case 32: return $24r$3; + /* } */ case 9: + case 5: + _r$8 = p.parsePrimaryExpr($ifaceNil); /* */ $s = 33; case 33: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r$4 = _r$8; + $s = 34; case 34: return $24r$4; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseUnaryExpr, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, _tuple$1, arrow, dir, ok, op, p, pos, pos$1, typ, x, x$1, x$2, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.tokPrec = function tokPrec() { + var p, tok; + p = this; + tok = p.tok; + if (p.inRhs && (tok === 42)) { + tok = 39; + } + return [tok, new token.Token(tok).Precedence()]; + }; + $ptrType(parser).prototype.parseBinaryExpr = function parseBinaryExpr(x, prec1, check) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, check, n, op, oprec, p, pos, prec1, x, y, $s, $deferred, $r, $c} = $restore(this, {x, prec1, check}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + n = [n]; + p = [p]; + p[0] = this; + /* */ if (p[0].trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p[0].trace) { */ case 1: + _r = trace(p[0], "BinaryExpr"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if ($interfaceIsEqual(x, $ifaceNil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(x, $ifaceNil)) { */ case 4: + _r$1 = p[0].parseUnaryExpr(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + /* } */ case 5: + n[0] = 0; + $deferred.push([(function(n, p) { return function parser·parseBinaryExpr·func1() { + p[0].nestLev = p[0].nestLev - (n[0]) >> 0; + }; })(n, p), []]); + n[0] = 1; + /* while (true) { */ case 7: + _r$2 = incNestLev(p[0]); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _tuple = p[0].tokPrec(); + op = _tuple[0]; + oprec = _tuple[1]; + /* */ if (oprec < prec1) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (oprec < prec1) { */ case 10: + $24r = x; + $s = 12; case 12: return $24r; + /* } */ case 11: + _r$3 = p[0].expect(op); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + pos = _r$3; + _r$4 = p[0].parseBinaryExpr($ifaceNil, oprec + 1 >> 0, check); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + y = _r$4; + /* */ if (check) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (check) { */ case 15: + _r$5 = p[0].checkExpr(x); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + x = _r$5; + _r$6 = p[0].checkExpr(y); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + y = _r$6; + /* } */ case 16: + x = new ast.BinaryExpr.ptr(x, pos, op, y); + n[0] = n[0] + (1) >> 0; + $s = 7; continue; + case 8: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseBinaryExpr, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, check, n, op, oprec, p, pos, prec1, x, y, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseExpr = function parseExpr() { + var {$24r, _r, _r$1, p, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Expression"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseBinaryExpr($ifaceNil, 1, true); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 5; case 5: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseExpr, $c: true, $r, $24r, _r, _r$1, p, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseRhs = function parseRhs() { + var {_r, _r$1, old, p, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + old = p.inRhs; + p.inRhs = true; + _r = p.parseExpr(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.checkExpr(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + p.inRhs = old; + $s = -1; return x; + /* */ } return; } var $f = {$blk: parseRhs, $c: true, $r, _r, _r$1, old, p, x, $s};return $f; + }; + $ptrType(parser).prototype.parseRhsOrType = function parseRhsOrType() { + var {_r, _r$1, old, p, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + old = p.inRhs; + p.inRhs = true; + _r = p.parseExpr(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.checkExprOrType(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + p.inRhs = old; + $s = -1; return x; + /* */ } return; } var $f = {$blk: parseRhsOrType, $c: true, $r, _r, _r$1, old, p, x, $s};return $f; + }; + $ptrType(parser).prototype.parseSimpleStmt = function parseSimpleStmt(mode) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tuple, arrow, as, colon, isIdent, isRange, label, mode, p, pos, pos$1, s, stmt, tok, x, y, y$1, $s, $deferred, $r, $c} = $restore(this, {mode}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "SimpleStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseList(false); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + _1 = p.tok; + /* */ if ((_1 === (47)) || (_1 === (42)) || (_1 === (23)) || (_1 === (24)) || (_1 === (25)) || (_1 === (26)) || (_1 === (27)) || (_1 === (28)) || (_1 === (29)) || (_1 === (30)) || (_1 === (31)) || (_1 === (32)) || (_1 === (33))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((_1 === (47)) || (_1 === (42)) || (_1 === (23)) || (_1 === (24)) || (_1 === (25)) || (_1 === (26)) || (_1 === (27)) || (_1 === (28)) || (_1 === (29)) || (_1 === (30)) || (_1 === (31)) || (_1 === (32)) || (_1 === (33))) { */ case 6: + _tmp = p.pos; + _tmp$1 = p.tok; + pos = _tmp; + tok = _tmp$1; + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + y = sliceType$3.nil; + isRange = false; + /* */ if ((mode === 2) && (p.tok === 79) && ((tok === 47) || (tok === 42))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((mode === 2) && (p.tok === 79) && ((tok === 47) || (tok === 42))) { */ case 9: + pos$1 = p.pos; + $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseRhs(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + y = new sliceType$3([new ast.UnaryExpr.ptr(pos$1, 79, _r$2)]); + isRange = true; + $s = 11; continue; + /* } else { */ case 10: + _r$3 = p.parseList(true); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + y = _r$3; + /* } */ case 11: + as = new ast.AssignStmt.ptr(x, pos, tok, y); + /* */ if (tok === 47) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (tok === 47) { */ case 15: + $r = p.checkAssignStmt(as); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 16: + $24r = [as, isRange]; + $s = 18; case 18: return $24r; + /* } */ case 7: + case 5: + /* */ if (x.$length > 1) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (x.$length > 1) { */ case 19: + _r$4 = (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]).Pos(); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = p.errorExpected(_r$4, "1 expression"); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + _2 = p.tok; + /* */ if (_2 === (58)) { $s = 24; continue; } + /* */ if (_2 === (36)) { $s = 25; continue; } + /* */ if ((_2 === (37)) || (_2 === (38))) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (_2 === (58)) { */ case 24: + colon = p.pos; + $r = p.next(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple = $assertType((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]), ptrType$2, true); + label = _tuple[0]; + isIdent = _tuple[1]; + /* */ if ((mode === 1) && isIdent) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if ((mode === 1) && isIdent) { */ case 29: + _r$5 = p.parseStmt(); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + stmt = new ast.LabeledStmt.ptr(label, colon, _r$5); + $24r$1 = [stmt, false]; + $s = 32; case 32: return $24r$1; + /* } */ case 30: + $r = p.error(colon, "illegal label declaration"); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$6 = (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]).Pos(); /* */ $s = 34; case 34: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$2 = [new ast.BadStmt.ptr(_r$6, colon + 1 >> 0), false]; + $s = 35; case 35: return $24r$2; + /* } else if (_2 === (36)) { */ case 25: + arrow = p.pos; + $r = p.next(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$7 = p.parseRhs(); /* */ $s = 37; case 37: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + y$1 = _r$7; + $24r$3 = [new ast.SendStmt.ptr((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]), arrow, y$1), false]; + $s = 38; case 38: return $24r$3; + /* } else if ((_2 === (37)) || (_2 === (38))) { */ case 26: + s = new ast.IncDecStmt.ptr((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]), p.pos, p.tok); + $r = p.next(); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$4 = [s, false]; + $s = 40; case 40: return $24r$4; + /* } */ case 27: + case 23: + $24r$5 = [new ast.ExprStmt.ptr((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), false]; + $s = 41; case 41: return $24r$5; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [$ifaceNil, false]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseSimpleStmt, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tuple, arrow, as, colon, isIdent, isRange, label, mode, p, pos, pos$1, s, stmt, tok, x, y, y$1, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.checkAssignStmt = function checkAssignStmt(as) { + var {_i, _r, _ref, _tuple, as, isIdent, p, x, $s, $r, $c} = $restore(this, {as}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = as.Lhs; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple = $assertType(x, ptrType$2, true); + isIdent = _tuple[1]; + /* */ if (!isIdent) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!isIdent) { */ case 3: + _r = x.Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.errorExpected(_r, "identifier on left side of :="); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: checkAssignStmt, $c: true, $r, _i, _r, _ref, _tuple, as, isIdent, p, x, $s};return $f; + }; + $ptrType(parser).prototype.parseCallExpr = function parseCallExpr(callType) { + var {_arg, _arg$1, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, call, callType, isBad, isCall, p, x, $s, $r, $c} = $restore(this, {callType}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = p.parseRhsOrType(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x = _r; + _tuple = $assertType(x, ptrType$40, true); + call = _tuple[0]; + isCall = _tuple[1]; + if (isCall) { + $s = -1; return call; + } + _tuple$1 = $assertType(x, ptrType$41, true); + isBad = _tuple$1[1]; + /* */ if (!isBad) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!isBad) { */ case 2: + _r$1 = x.End(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = p.safePos(_r$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = _r$2; + _r$3 = fmt.Sprintf("function must be invoked in %s statement", new sliceType$2([new $String(callType)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = _r$3; + $r = p.error(_arg, _arg$1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return ptrType$40.nil; + /* */ } return; } var $f = {$blk: parseCallExpr, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, call, callType, isBad, isCall, p, x, $s};return $f; + }; + $ptrType(parser).prototype.parseGoStmt = function parseGoStmt() { + var {$24r, $24r$1, _r, _r$1, _r$2, call, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "GoStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(72); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.parseCallExpr("go"); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + call = _r$2; + $r = p.expectSemi(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (call === ptrType$40.nil) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (call === ptrType$40.nil) { */ case 7: + $24r = new ast.BadStmt.ptr(pos, pos + 2 >> 0); + $s = 9; case 9: return $24r; + /* } */ case 8: + $24r$1 = new ast.GoStmt.ptr(pos, call); + $s = 10; case 10: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseGoStmt, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, call, p, pos, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseDeferStmt = function parseDeferStmt() { + var {$24r, $24r$1, _r, _r$1, _r$2, call, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "DeferStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(67); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.parseCallExpr("defer"); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + call = _r$2; + $r = p.expectSemi(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (call === ptrType$40.nil) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (call === ptrType$40.nil) { */ case 7: + $24r = new ast.BadStmt.ptr(pos, pos + 5 >> 0); + $s = 9; case 9: return $24r; + /* } */ case 8: + $24r$1 = new ast.DeferStmt.ptr(pos, call); + $s = 10; case 10: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseDeferStmt, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, call, p, pos, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseReturnStmt = function parseReturnStmt() { + var {$24r, _r, _r$1, _r$2, p, pos, x, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ReturnStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + pos = p.pos; + _r$1 = p.expect(80); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + x = sliceType$3.nil; + /* */ if (!((p.tok === 57)) && !((p.tok === 56))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((p.tok === 57)) && !((p.tok === 56))) { */ case 5: + _r$2 = p.parseList(true); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + /* } */ case 6: + $r = p.expectSemi(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r = new ast.ReturnStmt.ptr(pos, x); + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$47.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseReturnStmt, $c: true, $r, $24r, _r, _r$1, _r$2, p, pos, x, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseBranchStmt = function parseBranchStmt(tok) { + var {$24r, _r, _r$1, _r$2, label, p, pos, tok, $s, $deferred, $r, $c} = $restore(this, {tok}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "BranchStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(tok); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + label = ptrType$2.nil; + /* */ if (!((tok === 69)) && (p.tok === 4)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((tok === 69)) && (p.tok === 4)) { */ case 5: + _r$2 = p.parseIdent(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + label = _r$2; + /* } */ case 6: + $r = p.expectSemi(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r = new ast.BranchStmt.ptr(pos, tok, label); + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$12.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseBranchStmt, $c: true, $r, $24r, _r, _r$1, _r$2, label, p, pos, tok, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.makeExpr = function makeExpr(s, want) { + var {$24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, es, found, isAss, isExpr, p, s, want, $s, $r, $c} = $restore(this, {s, want}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + if ($interfaceIsEqual(s, $ifaceNil)) { + $s = -1; return $ifaceNil; + } + _tuple = $assertType(s, ptrType$48, true); + es = _tuple[0]; + isExpr = _tuple[1]; + /* */ if (isExpr) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (isExpr) { */ case 1: + _r = p.checkExpr(es.X); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + found = "simple statement"; + _tuple$1 = $assertType(s, ptrType$11, true); + isAss = _tuple$1[1]; + if (isAss) { + found = "assignment"; + } + _r$1 = s.Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = _r$1; + _r$2 = fmt.Sprintf("expected %s, found %s (missing parentheses around composite literal?)", new sliceType$2([new $String(want), new $String(found)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + $r = p.error(_arg, _arg$1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = s.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = s.End(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = p.safePos(_r$4); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$1 = new ast.BadExpr.ptr(_r$3, _r$5); + $s = 11; case 11: return $24r$1; + /* */ } return; } var $f = {$blk: makeExpr, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, es, found, isAss, isExpr, p, s, want, $s};return $f; + }; + $ptrType(parser).prototype.parseIfHeader = function parseIfHeader() { + var {_r, _r$1, _r$2, _r$3, _tuple, _tuple$1, cond, condStmt, init$1, p, prevLev, semi, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + init$1 = $ifaceNil; + cond = $ifaceNil; + p = this; + /* */ if (p.tok === 51) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.tok === 51) { */ case 1: + $r = p.error(p.pos, "missing condition in if statement"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + cond = new ast.BadExpr.ptr(p.pos, p.pos); + $s = -1; return [init$1, cond]; + /* } */ case 2: + prevLev = p.exprLev; + p.exprLev = -1; + /* */ if (!((p.tok === 57))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((p.tok === 57))) { */ case 4: + /* */ if (p.tok === 85) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (p.tok === 85) { */ case 6: + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.error(p.pos, "var declaration not allowed in 'IF' initializer"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + _r = p.parseSimpleStmt(0); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + init$1 = _tuple[0]; + /* } */ case 5: + condStmt = $ifaceNil; + semi = new structType.ptr(0, ""); + /* */ if (!((p.tok === 51))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!((p.tok === 51))) { */ case 11: + /* */ if (p.tok === 57) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (p.tok === 57) { */ case 14: + semi.pos = p.pos; + semi.lit = p.lit; + $r = p.next(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 16; continue; + /* } else { */ case 15: + _r$1 = p.expect(57); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 16: + /* */ if (!((p.tok === 51))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!((p.tok === 51))) { */ case 19: + _r$2 = p.parseSimpleStmt(0); /* */ $s = 21; case 21: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + condStmt = _tuple$1[0]; + /* } */ case 20: + $s = 13; continue; + /* } else { */ case 12: + condStmt = init$1; + init$1 = $ifaceNil; + /* } */ case 13: + /* */ if (!($interfaceIsEqual(condStmt, $ifaceNil))) { $s = 22; continue; } + /* */ if (new token.Pos(semi.pos).IsValid()) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!($interfaceIsEqual(condStmt, $ifaceNil))) { */ case 22: + _r$3 = p.makeExpr(condStmt, "boolean expression"); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + cond = _r$3; + $s = 24; continue; + /* } else if (new token.Pos(semi.pos).IsValid()) { */ case 23: + /* */ if (semi.lit === "\n") { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (semi.lit === "\n") { */ case 26: + $r = p.error(semi.pos, "unexpected newline, expecting { after if clause"); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 28; continue; + /* } else { */ case 27: + $r = p.error(semi.pos, "missing condition in if statement"); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 28: + /* } */ case 24: + if ($interfaceIsEqual(cond, $ifaceNil)) { + cond = new ast.BadExpr.ptr(p.pos, p.pos); + } + p.exprLev = prevLev; + $s = -1; return [init$1, cond]; + /* */ } return; } var $f = {$blk: parseIfHeader, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, cond, condStmt, init$1, p, prevLev, semi, $s};return $f; + }; + $ptrType(parser).prototype.parseIfStmt = function parseIfStmt() { + var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, body, cond, else_, init$1, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + _r = incNestLev(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([decNestLev, [_r]]); + /* */ if (p.trace) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (p.trace) { */ case 2: + _r$1 = trace(p, "IfStmt"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $deferred.push([un, [_r$1]]); + /* } */ case 3: + _r$2 = p.expect(74); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + pos = _r$2; + _r$3 = p.parseIfHeader(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + init$1 = _tuple[0]; + cond = _tuple[1]; + _r$4 = p.parseBlockStmt(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + body = _r$4; + else_ = $ifaceNil; + /* */ if (p.tok === 68) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (p.tok === 68) { */ case 8: + $r = p.next(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = p.tok; + /* */ if (_1 === (74)) { $s = 13; continue; } + /* */ if (_1 === (51)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_1 === (74)) { */ case 13: + _r$5 = p.parseIfStmt(); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + else_ = _r$5; + $s = 16; continue; + /* } else if (_1 === (51)) { */ case 14: + _r$6 = p.parseBlockStmt(); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + else_ = _r$6; + $r = p.expectSemi(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 16; continue; + /* } else { */ case 15: + $r = p.errorExpected(p.pos, "if statement or block"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + else_ = new ast.BadStmt.ptr(p.pos, p.pos); + /* } */ case 16: + case 12: + $s = 10; continue; + /* } else { */ case 9: + $r = p.expectSemi(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + $24r = new ast.IfStmt.ptr(pos, init$1, cond, body, else_); + $s = 22; case 22: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$14.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseIfStmt, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, body, cond, else_, init$1, p, pos, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseTypeList = function parseTypeList() { + var {$24r, _r, _r$1, _r$2, list, p, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + list = sliceType$3.nil; + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "TypeList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseType(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = $append(list, _r$1); + /* while (true) { */ case 5: + /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 6; continue; } + $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseType(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = $append(list, _r$2); + $s = 5; continue; + case 6: + $24r = list; + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return list; } if($curGoroutine.asleep) { var $f = {$blk: parseTypeList, $c: true, $r, $24r, _r, _r$1, _r$2, list, p, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseCaseClause = function parseCaseClause(typeSwitch) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, body, colon, list, p, pos, typeSwitch, $s, $deferred, $r, $c} = $restore(this, {typeSwitch}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "CaseClause"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + pos = p.pos; + list = sliceType$3.nil; + /* */ if (p.tok === 62) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.tok === 62) { */ case 4: + $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (typeSwitch) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (typeSwitch) { */ case 8: + _r$1 = p.parseTypeList(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = _r$1; + $s = 10; continue; + /* } else { */ case 9: + _r$2 = p.parseList(true); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = _r$2; + /* } */ case 10: + $s = 6; continue; + /* } else { */ case 5: + _r$3 = p.expect(66); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* } */ case 6: + _r$4 = p.expect(58); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + colon = _r$4; + _r$5 = p.parseStmtList(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + body = _r$5; + $24r = new ast.CaseClause.ptr(pos, list, colon, body); + $s = 16; case 16: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$15.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseCaseClause, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, body, colon, list, p, pos, typeSwitch, $s, $deferred};return $f; } } + }; + isTypeSwitchAssert = function isTypeSwitchAssert$1(x) { + var _tuple, a, ok, x; + _tuple = $assertType(x, ptrType$44, true); + a = _tuple[0]; + ok = _tuple[1]; + return ok && $interfaceIsEqual(a.Type, $ifaceNil); + }; + $ptrType(parser).prototype.isTypeSwitchGuard = function isTypeSwitchGuard(s) { + var {_1, _ref, p, s, t, t$1, x, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = s; + /* */ if ($assertType(_ref, ptrType$48, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, ptrType$48, true)[1]) { */ case 1: + t = _ref.$val; + $s = -1; return isTypeSwitchAssert(t.X); + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 2: + t$1 = _ref.$val; + /* */ if ((t$1.Lhs.$length === 1) && (t$1.Rhs.$length === 1) && isTypeSwitchAssert((x = t$1.Rhs, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((t$1.Lhs.$length === 1) && (t$1.Rhs.$length === 1) && isTypeSwitchAssert((x = t$1.Rhs, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))) { */ case 4: + _1 = t$1.Tok; + /* */ if (_1 === (42)) { $s = 7; continue; } + /* */ if (_1 === (47)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (42)) { */ case 7: + $r = p.error(t$1.TokPos, "expected ':=', found '='"); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* } else if (_1 === (47)) { */ case 8: + $s = -1; return true; + /* } */ case 9: + case 6: + /* } */ case 5: + /* } */ case 3: + $s = -1; return false; + /* */ } return; } var $f = {$blk: isTypeSwitchGuard, $c: true, $r, _1, _ref, p, s, t, t$1, x, $s};return $f; + }; + $ptrType(parser).prototype.parseSwitchStmt = function parseSwitchStmt() { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tmp, _tmp$1, _tuple, _tuple$1, body, lbrace, list, p, pos, prevLev, rbrace, s1, s2, typeSwitch, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "SwitchStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(83); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _tmp = $ifaceNil; + _tmp$1 = $ifaceNil; + s1 = _tmp; + s2 = _tmp$1; + /* */ if (!((p.tok === 51))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((p.tok === 51))) { */ case 5: + prevLev = p.exprLev; + p.exprLev = -1; + /* */ if (!((p.tok === 57))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((p.tok === 57))) { */ case 7: + _r$2 = p.parseSimpleStmt(0); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + s2 = _tuple[0]; + /* } */ case 8: + /* */ if (p.tok === 57) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (p.tok === 57) { */ case 10: + $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s1 = s2; + s2 = $ifaceNil; + /* */ if (!((p.tok === 51))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((p.tok === 51))) { */ case 13: + _r$3 = p.parseSimpleStmt(0); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + s2 = _tuple$1[0]; + /* } */ case 14: + /* } */ case 11: + p.exprLev = prevLev; + /* } */ case 6: + _r$4 = p.isTypeSwitchGuard(s2); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + typeSwitch = _r$4; + _r$5 = p.expect(51); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + lbrace = _r$5; + list = sliceType$7.nil; + /* while (true) { */ case 18: + /* if (!((p.tok === 62) || (p.tok === 66))) { break; } */ if(!((p.tok === 62) || (p.tok === 66))) { $s = 19; continue; } + _r$6 = p.parseCaseClause(typeSwitch); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + list = $append(list, _r$6); + $s = 18; continue; + case 19: + _r$7 = p.expect(56); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + rbrace = _r$7; + $r = p.expectSemi(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + body = new ast.BlockStmt.ptr(lbrace, list, rbrace); + /* */ if (typeSwitch) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (typeSwitch) { */ case 23: + $24r = new ast.TypeSwitchStmt.ptr(pos, s1, s2, body); + $s = 25; case 25: return $24r; + /* } */ case 24: + _r$8 = p.makeExpr(s2, "switch expression"); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r$1 = new ast.SwitchStmt.ptr(pos, s1, _r$8, body); + $s = 27; case 27: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseSwitchStmt, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tmp, _tmp$1, _tuple, _tuple$1, body, lbrace, list, p, pos, prevLev, rbrace, s1, s2, typeSwitch, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseCommClause = function parseCommClause() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, arrow, as, body, colon, comm, lhs, p, pos, pos$1, rhs, rhs$1, tok, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "CommClause"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + pos = p.pos; + comm = $ifaceNil; + /* */ if (p.tok === 62) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.tok === 62) { */ case 4: + $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = p.parseList(false); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lhs = _r$1; + /* */ if (p.tok === 36) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (p.tok === 36) { */ case 9: + /* */ if (lhs.$length > 1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (lhs.$length > 1) { */ case 12: + _r$2 = (0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]).Pos(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = p.errorExpected(_r$2, "1 expression"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + arrow = p.pos; + $r = p.next(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = p.parseRhs(); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rhs = _r$3; + comm = new ast.SendStmt.ptr((0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]), arrow, rhs); + $s = 11; continue; + /* } else { */ case 10: + tok = p.tok; + /* */ if ((tok === 42) || (tok === 47)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if ((tok === 42) || (tok === 47)) { */ case 18: + /* */ if (lhs.$length > 2) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (lhs.$length > 2) { */ case 21: + _r$4 = (0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]).Pos(); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = p.errorExpected(_r$4, "1 or 2 expressions"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhs = $subslice(lhs, 0, 2); + /* } */ case 22: + pos$1 = p.pos; + $r = p.next(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$5 = p.parseRhs(); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + rhs$1 = _r$5; + as = new ast.AssignStmt.ptr(lhs, pos$1, tok, new sliceType$3([rhs$1])); + /* */ if (tok === 47) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (tok === 47) { */ case 27: + $r = p.checkAssignStmt(as); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 28: + comm = as; + $s = 20; continue; + /* } else { */ case 19: + /* */ if (lhs.$length > 1) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (lhs.$length > 1) { */ case 30: + _r$6 = (0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]).Pos(); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $r = p.errorExpected(_r$6, "1 expression"); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 31: + comm = new ast.ExprStmt.ptr((0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0])); + /* } */ case 20: + /* } */ case 11: + $s = 6; continue; + /* } else { */ case 5: + _r$7 = p.expect(66); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + /* } */ case 6: + _r$8 = p.expect(58); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + colon = _r$8; + _r$9 = p.parseStmtList(); /* */ $s = 36; case 36: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + body = _r$9; + $24r = new ast.CommClause.ptr(pos, comm, colon, body); + $s = 37; case 37: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$18.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseCommClause, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, arrow, as, body, colon, comm, lhs, p, pos, pos$1, rhs, rhs$1, tok, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseSelectStmt = function parseSelectStmt() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, body, lbrace, list, p, pos, rbrace, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "SelectStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(81); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.expect(51); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + lbrace = _r$2; + list = sliceType$7.nil; + /* while (true) { */ case 6: + /* if (!((p.tok === 62) || (p.tok === 66))) { break; } */ if(!((p.tok === 62) || (p.tok === 66))) { $s = 7; continue; } + _r$3 = p.parseCommClause(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + list = $append(list, _r$3); + $s = 6; continue; + case 7: + _r$4 = p.expect(56); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + rbrace = _r$4; + $r = p.expectSemi(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + body = new ast.BlockStmt.ptr(lbrace, list, rbrace); + $24r = new ast.SelectStmt.ptr(pos, body); + $s = 11; case 11: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$19.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseSelectStmt, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, body, lbrace, list, p, pos, rbrace, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseForStmt = function parseForStmt() { + var {$24r, $24r$1, $24r$2, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, _tuple$1, _tuple$2, as, body, isRange, key, p, pos, pos$1, prevLev, s1, s2, s3, value, x, x$1, x$2, x$3, x$4, x$5, x$6, y, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ForStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(70); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _tmp = $ifaceNil; + _tmp$1 = $ifaceNil; + _tmp$2 = $ifaceNil; + s1 = _tmp; + s2 = _tmp$1; + s3 = _tmp$2; + isRange = false; + /* */ if (!((p.tok === 51))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((p.tok === 51))) { */ case 5: + prevLev = p.exprLev; + p.exprLev = -1; + /* */ if (!((p.tok === 57))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((p.tok === 57))) { */ case 7: + /* */ if (p.tok === 79) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (p.tok === 79) { */ case 9: + pos$1 = p.pos; + $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseRhs(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + y = new sliceType$3([new ast.UnaryExpr.ptr(pos$1, 79, _r$2)]); + s2 = new ast.AssignStmt.ptr(sliceType$3.nil, 0, 0, y); + isRange = true; + $s = 11; continue; + /* } else { */ case 10: + _r$3 = p.parseSimpleStmt(2); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + s2 = _tuple[0]; + isRange = _tuple[1]; + /* } */ case 11: + /* } */ case 8: + /* */ if (!isRange && (p.tok === 57)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!isRange && (p.tok === 57)) { */ case 15: + $r = p.next(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s1 = s2; + s2 = $ifaceNil; + /* */ if (!((p.tok === 57))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!((p.tok === 57))) { */ case 18: + _r$4 = p.parseSimpleStmt(0); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + s2 = _tuple$1[0]; + /* } */ case 19: + $r = p.expectSemi(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((p.tok === 51))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!((p.tok === 51))) { */ case 22: + _r$5 = p.parseSimpleStmt(0); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + s3 = _tuple$2[0]; + /* } */ case 23: + /* } */ case 16: + p.exprLev = prevLev; + /* } */ case 6: + _r$6 = p.parseBlockStmt(); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + body = _r$6; + $r = p.expectSemi(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (isRange) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (isRange) { */ case 27: + as = $assertType(s2, ptrType$11); + _tmp$3 = $ifaceNil; + _tmp$4 = $ifaceNil; + key = _tmp$3; + value = _tmp$4; + _1 = as.Lhs.$length; + /* */ if (_1 === (0)) { $s = 30; continue; } + /* */ if (_1 === (1)) { $s = 31; continue; } + /* */ if (_1 === (2)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (_1 === (0)) { */ case 30: + $s = 34; continue; + /* } else if (_1 === (1)) { */ case 31: + key = (x = as.Lhs, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + $s = 34; continue; + /* } else if (_1 === (2)) { */ case 32: + _tmp$5 = (x$1 = as.Lhs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + _tmp$6 = (x$2 = as.Lhs, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1])); + key = _tmp$5; + value = _tmp$6; + $s = 34; continue; + /* } else { */ case 33: + _r$7 = (x$3 = as.Lhs, x$4 = as.Lhs.$length - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).Pos(); /* */ $s = 35; case 35: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $r = p.errorExpected(_r$7, "at most 2 expressions"); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$8 = body.End(); /* */ $s = 37; case 37: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = p.safePos(_r$8); /* */ $s = 38; case 38: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $24r = new ast.BadStmt.ptr(pos, _r$9); + $s = 39; case 39: return $24r; + /* } */ case 34: + case 29: + x$6 = $assertType((x$5 = as.Rhs, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])), ptrType$45).X; + $24r$1 = new ast.RangeStmt.ptr(pos, key, value, as.TokPos, as.Tok, x$6, body); + $s = 40; case 40: return $24r$1; + /* } */ case 28: + _r$10 = p.makeExpr(s2, "boolean or range expression"); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $24r$2 = new ast.ForStmt.ptr(pos, s1, _r$10, s3, body); + $s = 42; case 42: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseForStmt, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, _tuple$1, _tuple$2, as, body, isRange, key, p, pos, pos$1, prevLev, s1, s2, s3, value, x, x$1, x$2, x$3, x$4, x$5, x$6, y, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseStmt = function parseStmt() { + var {$24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, isLabeledStmt, p, pos, s, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + s = $ifaceNil; + p = this; + _r = incNestLev(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([decNestLev, [_r]]); + /* */ if (p.trace) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (p.trace) { */ case 2: + _r$1 = trace(p, "Statement"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $deferred.push([un, [_r$1]]); + /* } */ case 3: + _1 = p.tok; + /* */ if ((_1 === (64)) || (_1 === (84)) || (_1 === (85))) { $s = 6; continue; } + /* */ if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (71)) || (_1 === (49)) || (_1 === (50)) || (_1 === (82)) || (_1 === (77)) || (_1 === (63)) || (_1 === (76)) || (_1 === (12)) || (_1 === (13)) || (_1 === (14)) || (_1 === (17)) || (_1 === (19)) || (_1 === (36)) || (_1 === (43))) { $s = 7; continue; } + /* */ if (_1 === (72)) { $s = 8; continue; } + /* */ if (_1 === (67)) { $s = 9; continue; } + /* */ if (_1 === (80)) { $s = 10; continue; } + /* */ if ((_1 === (61)) || (_1 === (65)) || (_1 === (73)) || (_1 === (69))) { $s = 11; continue; } + /* */ if (_1 === (51)) { $s = 12; continue; } + /* */ if (_1 === (74)) { $s = 13; continue; } + /* */ if (_1 === (83)) { $s = 14; continue; } + /* */ if (_1 === (81)) { $s = 15; continue; } + /* */ if (_1 === (70)) { $s = 16; continue; } + /* */ if (_1 === (57)) { $s = 17; continue; } + /* */ if (_1 === (56)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if ((_1 === (64)) || (_1 === (84)) || (_1 === (85))) { */ case 6: + _r$2 = p.parseDecl(stmtStart); /* */ $s = 21; case 21: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + s = new ast.DeclStmt.ptr(_r$2); + $s = 20; continue; + /* } else if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (71)) || (_1 === (49)) || (_1 === (50)) || (_1 === (82)) || (_1 === (77)) || (_1 === (63)) || (_1 === (76)) || (_1 === (12)) || (_1 === (13)) || (_1 === (14)) || (_1 === (17)) || (_1 === (19)) || (_1 === (36)) || (_1 === (43))) { */ case 7: + _r$3 = p.parseSimpleStmt(1); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + s = _tuple[0]; + _tuple$1 = $assertType(s, ptrType$10, true); + isLabeledStmt = _tuple$1[1]; + /* */ if (!isLabeledStmt) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!isLabeledStmt) { */ case 23: + $r = p.expectSemi(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + $s = 20; continue; + /* } else if (_1 === (72)) { */ case 8: + _r$4 = p.parseGoStmt(); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + s = _r$4; + $s = 20; continue; + /* } else if (_1 === (67)) { */ case 9: + _r$5 = p.parseDeferStmt(); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + s = _r$5; + $s = 20; continue; + /* } else if (_1 === (80)) { */ case 10: + _r$6 = p.parseReturnStmt(); /* */ $s = 28; case 28: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + s = _r$6; + $s = 20; continue; + /* } else if ((_1 === (61)) || (_1 === (65)) || (_1 === (73)) || (_1 === (69))) { */ case 11: + _r$7 = p.parseBranchStmt(p.tok); /* */ $s = 29; case 29: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + s = _r$7; + $s = 20; continue; + /* } else if (_1 === (51)) { */ case 12: + _r$8 = p.parseBlockStmt(); /* */ $s = 30; case 30: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + s = _r$8; + $r = p.expectSemi(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if (_1 === (74)) { */ case 13: + _r$9 = p.parseIfStmt(); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + s = _r$9; + $s = 20; continue; + /* } else if (_1 === (83)) { */ case 14: + _r$10 = p.parseSwitchStmt(); /* */ $s = 33; case 33: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + s = _r$10; + $s = 20; continue; + /* } else if (_1 === (81)) { */ case 15: + _r$11 = p.parseSelectStmt(); /* */ $s = 34; case 34: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + s = _r$11; + $s = 20; continue; + /* } else if (_1 === (70)) { */ case 16: + _r$12 = p.parseForStmt(); /* */ $s = 35; case 35: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + s = _r$12; + $s = 20; continue; + /* } else if (_1 === (57)) { */ case 17: + s = new ast.EmptyStmt.ptr(p.pos, p.lit === "\n"); + $r = p.next(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if (_1 === (56)) { */ case 18: + s = new ast.EmptyStmt.ptr(p.pos, true); + $s = 20; continue; + /* } else { */ case 19: + pos = p.pos; + $r = p.errorExpected(pos, "statement"); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(stmtStart); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = new ast.BadStmt.ptr(pos, p.pos); + /* } */ case 20: + case 5: + $24r = s; + $s = 39; case 39: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return s; } if($curGoroutine.asleep) { var $f = {$blk: parseStmt, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, isLabeledStmt, p, pos, s, $s, $deferred};return $f; } } + }; + isValidImport = function isValidImport$1(lit) { + var _i, _ref, _rune, _tuple, lit, r, s; + _tuple = strconv.Unquote(lit); + s = _tuple[0]; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + r = _rune[0]; + if (!unicode.IsGraphic(r) || unicode.IsSpace(r) || strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^{|}`\xEF\xBF\xBD", r)) { + return false; + } + _i += _rune[1]; + } + return !(s === ""); + }; + $ptrType(parser).prototype.parseImportSpec = function parseImportSpec(doc, param, param$1, param$2) { + var {$24r, _1, _r, _r$1, _r$2, doc, ident, p, param, param$1, param$2, path, pos, spec, $s, $deferred, $r, $c} = $restore(this, {doc, param, param$1, param$2}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ImportSpec"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + ident = ptrType$2.nil; + _1 = p.tok; + /* */ if (_1 === (53)) { $s = 5; continue; } + /* */ if (_1 === (4)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_1 === (53)) { */ case 5: + ident = new ast.Ident.ptr(p.pos, ".", ptrType$3.nil); + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else if (_1 === (4)) { */ case 6: + _r$1 = p.parseIdent(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ident = _r$1; + /* } */ case 7: + case 4: + pos = p.pos; + path = ""; + /* */ if (p.tok === 9) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (p.tok === 9) { */ case 10: + path = p.lit; + /* */ if (!isValidImport(path)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!isValidImport(path)) { */ case 13: + $r = p.error(pos, "invalid import path: " + path); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + $r = p.next(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 12; continue; + /* } else { */ case 11: + _r$2 = p.expect(9); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 12: + $r = p.expectSemi(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + spec = new ast.ImportSpec.ptr(doc, ident, new ast.BasicLit.ptr(pos, 9, path), p.lineComment, 0); + p.imports = $append(p.imports, spec); + $24r = spec; + $s = 19; case 19: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseImportSpec, $c: true, $r, $24r, _1, _r, _r$1, _r$2, doc, ident, p, param, param$1, param$2, path, pos, spec, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseValueSpec = function parseValueSpec(doc, param, keyword, iota) { + var {$24r, _1, _r, _r$1, _r$2, _r$3, doc, idents, iota, keyword, p, param, pos, spec, typ, values, $s, $deferred, $r, $c} = $restore(this, {doc, param, keyword, iota}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, new token.Token(keyword).String() + "Spec"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + pos = p.pos; + _r$1 = p.parseIdentList(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + idents = _r$1; + _r$2 = p.tryIdentOrType(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + values = sliceType$3.nil; + /* */ if (p.tok === 42) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (p.tok === 42) { */ case 6: + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = p.parseList(true); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + values = _r$3; + /* } */ case 7: + $r = p.expectSemi(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = keyword; + /* */ if (_1 === (85)) { $s = 12; continue; } + /* */ if (_1 === (64)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_1 === (85)) { */ case 12: + /* */ if ($interfaceIsEqual(typ, $ifaceNil) && values === sliceType$3.nil) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ($interfaceIsEqual(typ, $ifaceNil) && values === sliceType$3.nil) { */ case 15: + $r = p.error(pos, "missing variable type or initialization"); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 16: + $s = 14; continue; + /* } else if (_1 === (64)) { */ case 13: + /* */ if (values === sliceType$3.nil && ((iota === 0) || !($interfaceIsEqual(typ, $ifaceNil)))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (values === sliceType$3.nil && ((iota === 0) || !($interfaceIsEqual(typ, $ifaceNil)))) { */ case 18: + $r = p.error(pos, "missing constant value"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 19: + /* } */ case 14: + case 11: + spec = new ast.ValueSpec.ptr(doc, idents, typ, values, p.lineComment); + $24r = spec; + $s = 21; case 21: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseValueSpec, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, doc, idents, iota, keyword, p, param, pos, spec, typ, values, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseGenericType = function parseGenericType(spec, openPos, name0, typ0) { + var {_r, _r$1, _r$2, _r$3, closePos, list, name0, openPos, p, spec, typ0, $s, $deferred, $r, $c} = $restore(this, {spec, openPos, name0, typ0}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "parseGenericType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseParameterList(name0, typ0, 55); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = _r$1; + _r$2 = p.expect(55); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + closePos = _r$2; + spec.TypeParams = new ast.FieldList.ptr(openPos, list, closePos); + /* */ if (p.tok === 42) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (p.tok === 42) { */ case 6: + spec.Assign = p.pos; + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + _r$3 = p.parseType(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + spec.Type = _r$3; + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseGenericType, $c: true, $r, _r, _r$1, _r$2, _r$3, closePos, list, name0, openPos, p, spec, typ0, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseTypeSpec = function parseTypeSpec(doc, param, param$1, param$2) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, doc, lbrack, lhs, name, p, param, param$1, param$2, pname, ptype, spec, x, $s, $deferred, $r, $c} = $restore(this, {doc, param, param$1, param$2}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "TypeSpec"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseIdent(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + name = _r$1; + spec = new ast.TypeSpec.ptr(doc, name, ptrType$27.nil, 0, $ifaceNil, ptrType$33.nil); + /* */ if ((p.tok === 50) && p.allowGenerics()) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((p.tok === 50) && p.allowGenerics()) { */ case 5: + lbrack = p.pos; + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (p.tok === 4) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (p.tok === 4) { */ case 9: + _r$2 = p.parseIdent(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + /* */ if (!((p.tok === 50))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((p.tok === 50))) { */ case 13: + p.exprLev = p.exprLev + (1) >> 0; + _r$3 = p.parsePrimaryExpr(x); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + lhs = _r$3; + _r$4 = p.parseBinaryExpr(lhs, 1, false); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + x = _r$4; + p.exprLev = p.exprLev - (1) >> 0; + /* } */ case 14: + _tuple = extractName(x, p.tok === 52); + pname = _tuple[0]; + ptype = _tuple[1]; + /* */ if (!(pname === ptrType$2.nil) && (!($interfaceIsEqual(ptype, $ifaceNil)) || !((p.tok === 55)))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!(pname === ptrType$2.nil) && (!($interfaceIsEqual(ptype, $ifaceNil)) || !((p.tok === 55)))) { */ case 17: + $r = p.parseGenericType(spec, lbrack, pname, ptype); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else { */ case 18: + _r$5 = p.parseArrayType(lbrack, x); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + spec.Type = _r$5; + /* } */ case 19: + $s = 11; continue; + /* } else { */ case 10: + _r$6 = p.parseArrayType(lbrack, $ifaceNil); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + spec.Type = _r$6; + /* } */ case 11: + $s = 7; continue; + /* } else { */ case 6: + /* */ if (p.tok === 42) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (p.tok === 42) { */ case 23: + spec.Assign = p.pos; + $r = p.next(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + _r$7 = p.parseType(); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + spec.Type = _r$7; + /* } */ case 7: + $r = p.expectSemi(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + spec.Comment = p.lineComment; + $24r = spec; + $s = 28; case 28: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseTypeSpec, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, doc, lbrack, lhs, name, p, param, param$1, param$2, pname, ptype, spec, x, $s, $deferred};return $f; } } + }; + extractName = function extractName$1(x, force) { + var _1, _ref, _tuple, _tuple$1, _tuple$2, force, lhs, name, name$1, name$2, op, x, x$1, x$2, x$3, x$4, x$5; + _ref = x; + if ($assertType(_ref, ptrType$2, true)[1]) { + x$1 = _ref.$val; + return [x$1, $ifaceNil]; + } else if ($assertType(_ref, ptrType$46, true)[1]) { + x$2 = _ref.$val; + _1 = x$2.Op; + if (_1 === (14)) { + _tuple = $assertType(x$2.X, ptrType$2, true); + name = _tuple[0]; + if (!(name === ptrType$2.nil) && (force || isTypeElem(x$2.Y))) { + return [name, new ast.StarExpr.ptr(x$2.OpPos, x$2.Y)]; + } + } else if (_1 === (18)) { + _tuple$1 = extractName(x$2.X, force || isTypeElem(x$2.Y)); + name$1 = _tuple$1[0]; + lhs = _tuple$1[1]; + if (!(name$1 === ptrType$2.nil) && !($interfaceIsEqual(lhs, $ifaceNil))) { + op = $clone(x$2, ast.BinaryExpr); + op.X = lhs; + return [name$1, op]; + } + } + } else if ($assertType(_ref, ptrType$40, true)[1]) { + x$3 = _ref.$val; + _tuple$2 = $assertType(x$3.Fun, ptrType$2, true); + name$2 = _tuple$2[0]; + if (!(name$2 === ptrType$2.nil)) { + if ((x$3.Args.$length === 1) && (x$3.Ellipsis === 0) && (force || isTypeElem((x$4 = x$3.Args, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0]))))) { + return [name$2, (x$5 = x$3.Args, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))]; + } + } + } + return [ptrType$2.nil, x]; + }; + isTypeElem = function isTypeElem$1(x) { + var _ref, x, x$1, x$2, x$3, x$4; + _ref = x; + if ($assertType(_ref, ptrType$34, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$7, true)[1] || $assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$39, true)[1]) { + x$1 = _ref; + return true; + } else if ($assertType(_ref, ptrType$46, true)[1]) { + x$2 = _ref.$val; + return isTypeElem(x$2.X) || isTypeElem(x$2.Y); + } else if ($assertType(_ref, ptrType$45, true)[1]) { + x$3 = _ref.$val; + return x$3.Op === 88; + } else if ($assertType(_ref, ptrType$42, true)[1]) { + x$4 = _ref.$val; + return isTypeElem(x$4.X); + } + return false; + }; + $ptrType(parser).prototype.parseGenDecl = function parseGenDecl(keyword, f) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, doc, f, iota, keyword, list, lparen, p, pos, rparen, $s, $deferred, $r, $c} = $restore(this, {keyword, f}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "GenDecl(" + new token.Token(keyword).String() + ")"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + doc = p.leadComment; + _r$1 = p.expect(keyword); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _tmp = 0; + _tmp$1 = 0; + lparen = _tmp; + rparen = _tmp$1; + list = sliceType$8.nil; + /* */ if (p.tok === 49) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (p.tok === 49) { */ case 5: + lparen = p.pos; + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + iota = 0; + /* while (true) { */ case 9: + /* if (!(!((p.tok === 54)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 54)) && !((p.tok === 1)))) { $s = 10; continue; } + _r$2 = f(p.leadComment, pos, keyword, iota); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = $append(list, _r$2); + iota = iota + (1) >> 0; + $s = 9; continue; + case 10: + _r$3 = p.expect(54); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rparen = _r$3; + $r = p.expectSemi(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + _r$4 = f(ptrType$33.nil, pos, keyword, 0); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + list = $append(list, _r$4); + /* } */ case 7: + $24r = new ast.GenDecl.ptr(doc, pos, keyword, lparen, list, rparen); + $s = 15; case 15: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$22.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseGenDecl, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, doc, f, iota, keyword, list, lparen, p, pos, rparen, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseFuncDecl = function parseFuncDecl() { + var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, body, decl, doc, ident, p, params, pos, recv, results, tparams, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "FunctionDecl"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + doc = p.leadComment; + _r$1 = p.expect(71); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + recv = ptrType$27.nil; + /* */ if (p.tok === 49) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (p.tok === 49) { */ case 5: + _r$2 = p.parseParameters(false); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + recv = _tuple[1]; + /* } */ case 6: + _r$3 = p.parseIdent(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ident = _r$3; + _r$4 = p.parseParameters(true); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + tparams = _tuple$1[0]; + params = _tuple$1[1]; + /* */ if (!(recv === ptrType$27.nil) && !(tparams === ptrType$27.nil)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!(recv === ptrType$27.nil) && !(tparams === ptrType$27.nil)) { */ case 10: + $r = p.error(tparams.Opening, "method must have no type parameters"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tparams = ptrType$27.nil; + /* } */ case 11: + _r$5 = p.parseResult(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + results = _r$5; + body = ptrType$13.nil; + _1 = p.tok; + /* */ if (_1 === (51)) { $s = 15; continue; } + /* */ if (_1 === (57)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_1 === (51)) { */ case 15: + _r$6 = p.parseBody(); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + body = _r$6; + $r = p.expectSemi(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 18; continue; + /* } else if (_1 === (57)) { */ case 16: + $r = p.next(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (p.tok === 51) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (p.tok === 51) { */ case 22: + $r = p.error(p.pos, "unexpected semicolon or newline before {"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$7 = p.parseBody(); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + body = _r$7; + $r = p.expectSemi(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + $s = 18; continue; + /* } else { */ case 17: + $r = p.expectSemi(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + case 14: + decl = new ast.FuncDecl.ptr(doc, recv, ident, new ast.FuncType.ptr(pos, tparams, params, results), body); + $24r = decl; + $s = 28; case 28: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$23.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFuncDecl, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, body, decl, doc, ident, p, params, pos, recv, results, tparams, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseDecl = function parseDecl(sync) { + var {$24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, f, p, pos, sync, $s, $deferred, $r, $c} = $restore(this, {sync}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Declaration"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + f = $throwNilPointerError; + _1 = p.tok; + /* */ if ((_1 === (64)) || (_1 === (85))) { $s = 5; continue; } + /* */ if (_1 === (84)) { $s = 6; continue; } + /* */ if (_1 === (71)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((_1 === (64)) || (_1 === (85))) { */ case 5: + f = $methodVal(p, "parseValueSpec"); + $s = 9; continue; + /* } else if (_1 === (84)) { */ case 6: + f = $methodVal(p, "parseTypeSpec"); + $s = 9; continue; + /* } else if (_1 === (71)) { */ case 7: + _r$1 = p.parseFuncDecl(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 11; case 11: return $24r; + /* } else { */ case 8: + pos = p.pos; + $r = p.errorExpected(pos, "declaration"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(sync); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$1 = new ast.BadDecl.ptr(pos, p.pos); + $s = 14; case 14: return $24r$1; + /* } */ case 9: + case 4: + _r$2 = p.parseGenDecl(p.tok, f); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$2 = _r$2; + $s = 16; case 16: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseDecl, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, f, p, pos, sync, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseFile = function parseFile() { + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, declErr, decls, doc, f, ident, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "File"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if (!((p.errors.Len() === 0))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((p.errors.Len() === 0))) { */ case 4: + $24r = ptrType$49.nil; + $s = 6; case 6: return $24r; + /* } */ case 5: + doc = p.leadComment; + _r$1 = p.expect(78); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.parseIdent(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ident = _r$2; + /* */ if (ident.Name === "_" && !((((p.mode & 16) >>> 0) === 0))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (ident.Name === "_" && !((((p.mode & 16) >>> 0) === 0))) { */ case 9: + $r = p.error(p.pos, "invalid package name _"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + $r = p.expectSemi(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((p.errors.Len() === 0))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((p.errors.Len() === 0))) { */ case 13: + $24r$1 = ptrType$49.nil; + $s = 15; case 15: return $24r$1; + /* } */ case 14: + decls = sliceType$9.nil; + /* */ if (((p.mode & 1) >>> 0) === 0) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (((p.mode & 1) >>> 0) === 0) { */ case 16: + /* while (true) { */ case 18: + /* if (!(p.tok === 75)) { break; } */ if(!(p.tok === 75)) { $s = 19; continue; } + _r$3 = p.parseGenDecl(75, $methodVal(p, "parseImportSpec")); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + decls = $append(decls, _r$3); + $s = 18; continue; + case 19: + /* */ if (((p.mode & 2) >>> 0) === 0) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (((p.mode & 2) >>> 0) === 0) { */ case 21: + /* while (true) { */ case 23: + /* if (!(!((p.tok === 1)))) { break; } */ if(!(!((p.tok === 1)))) { $s = 24; continue; } + _r$4 = p.parseDecl(declStart); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + decls = $append(decls, _r$4); + $s = 23; continue; + case 24: + /* } */ case 22: + /* } */ case 17: + f = new ast.File.ptr(doc, pos, ident, decls, ptrType.nil, p.imports, sliceType.nil, p.comments); + declErr = $throwNilPointerError; + if (!((((p.mode & 16) >>> 0) === 0))) { + declErr = $methodVal(p, "error"); + } + /* */ if (((p.mode & 64) >>> 0) === 0) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (((p.mode & 64) >>> 0) === 0) { */ case 26: + $r = resolveFile(f, p.file, declErr); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + $24r$2 = f; + $s = 29; case 29: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$49.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFile, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, declErr, decls, doc, f, ident, p, pos, $s, $deferred};return $f; } } + }; + readSource = function readSource$1(filename, src) { + var {$24r, $24r$1, _r, _r$1, _ref, filename, s, s$1, s$2, s$3, src, $s, $r, $c} = $restore(this, {filename, src}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (!($interfaceIsEqual(src, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(src, $ifaceNil))) { */ case 1: + _ref = src; + /* */ if ($assertType(_ref, $String, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, sliceType$12, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$51, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, io.Reader, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($assertType(_ref, $String, true)[1]) { */ case 3: + s = _ref.$val; + $s = -1; return [(new sliceType$12($stringToBytes(s))), $ifaceNil]; + /* } else if ($assertType(_ref, sliceType$12, true)[1]) { */ case 4: + s$1 = _ref.$val; + $s = -1; return [s$1, $ifaceNil]; + /* } else if ($assertType(_ref, ptrType$51, true)[1]) { */ case 5: + s$2 = _ref.$val; + if (!(s$2 === ptrType$51.nil)) { + $s = -1; return [s$2.Bytes(), $ifaceNil]; + } + $s = 7; continue; + /* } else if ($assertType(_ref, io.Reader, true)[1]) { */ case 6: + s$3 = _ref; + _r = io.ReadAll(s$3); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 9; case 9: return $24r; + /* } */ case 7: + $s = -1; return [sliceType$12.nil, errors.New("invalid source")]; + /* } */ case 2: + _r$1 = os.ReadFile(filename); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 11; case 11: return $24r$1; + /* */ } return; } var $f = {$blk: readSource$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _ref, filename, s, s$1, s$2, s$3, src, $s};return $f; + }; + ParseFile = function ParseFile$1(fset, filename, src, mode) { + var {$24r, _r, _r$1, _tmp, _tmp$1, _tuple, err, f, filename, fset, mode, p, src, text, $s, $deferred, $r, $c} = $restore(this, {fset, filename, src, mode}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + err = [err]; + f = [f]; + p = [p]; + f[0] = ptrType$49.nil; + err[0] = $ifaceNil; + if (fset === ptrType$52.nil) { + $panic(new $String("parser.ParseFile: no token.FileSet provided (fset == nil)")); + } + _r = readSource(filename, src); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + text = _tuple[0]; + err[0] = _tuple[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp = ptrType$49.nil; + _tmp$1 = err[0]; + f[0] = _tmp; + err[0] = _tmp$1; + $s = -1; return [f[0], err[0]]; + } + p[0] = new parser.ptr(ptrType$1.nil, scanner.ErrorList.nil, new scanner.Scanner.ptr(ptrType$1.nil, "", sliceType$12.nil, $throwNilPointerError, 0, 0, 0, 0, 0, false, 0), 0, false, 0, sliceType$11.nil, ptrType$33.nil, ptrType$33.nil, 0, 0, "", 0, 0, 0, false, sliceType$10.nil, 0); + $deferred.push([(function(err, f, p) { return function ParseFile·func1() { + var {_r$1, _tuple$1, bail, e, ok, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + e = $recover(); + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 1: + _tuple$1 = $assertType(e, bailout, true); + bail = $clone(_tuple$1[0], bailout); + ok = _tuple$1[1]; + /* */ if (!ok) { $s = 3; continue; } + /* */ if (!(bail.msg === "")) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!ok) { */ case 3: + $panic(e); + $s = 5; continue; + /* } else if (!(bail.msg === "")) { */ case 4: + _r$1 = p[0].file.Position(bail.pos); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = (p[0].$ptr_errors || (p[0].$ptr_errors = new ptrType$31(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p[0]))).Add($clone(_r$1, token.Position), bail.msg); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + /* } */ case 2: + if (f[0] === ptrType$49.nil) { + f[0] = new ast.File.ptr(ptrType$33.nil, 0, new ast.Ident.ptr(0, "", ptrType$3.nil), sliceType$9.nil, ast.NewScope(ptrType.nil), sliceType$10.nil, sliceType.nil, sliceType$11.nil); + } + $r = p[0].errors.Sort(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + err[0] = p[0].errors.Err(); + $s = -1; return; + /* */ } return; } var $f = {$blk: ParseFile·func1, $c: true, $r, _r$1, _tuple$1, bail, e, ok, $s};return $f; + }; })(err, f, p), []]); + $r = p[0].init(fset, filename, text, mode); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = p[0].parseFile(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + f[0] = _r$1; + $24r = [f[0], err[0]]; + $s = 4; case 4: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [f[0], err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: ParseFile$1, $c: true, $r, $24r, _r, _r$1, _tmp, _tmp$1, _tuple, err, f, filename, fset, mode, p, src, text, $s, $deferred};return $f; } } + }; + $pkg.ParseFile = ParseFile; + ptrType$54.methods = [{prop: "trace", name: "trace", pkg: "go/parser", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "sprintf", name: "sprintf", pkg: "go/parser", typ: $funcType([$String, sliceType$2], [$String], true)}, {prop: "openScope", name: "openScope", pkg: "go/parser", typ: $funcType([token.Pos], [], false)}, {prop: "closeScope", name: "closeScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "openLabelScope", name: "openLabelScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "closeLabelScope", name: "closeLabelScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "declare", name: "declare", pkg: "go/parser", typ: $funcType([$emptyInterface, $emptyInterface, ptrType, ast.ObjKind, sliceType], [], true)}, {prop: "shortVarDecl", name: "shortVarDecl", pkg: "go/parser", typ: $funcType([ptrType$11], [], false)}, {prop: "resolve", name: "resolve", pkg: "go/parser", typ: $funcType([ptrType$2, $Bool], [], false)}, {prop: "walkExprs", name: "walkExprs", pkg: "go/parser", typ: $funcType([sliceType$3], [], false)}, {prop: "walkLHS", name: "walkLHS", pkg: "go/parser", typ: $funcType([sliceType$3], [], false)}, {prop: "walkStmts", name: "walkStmts", pkg: "go/parser", typ: $funcType([sliceType$7], [], false)}, {prop: "Visit", name: "Visit", pkg: "", typ: $funcType([ast.Node], [ast.Visitor], false)}, {prop: "walkFuncType", name: "walkFuncType", pkg: "go/parser", typ: $funcType([ptrType$7], [], false)}, {prop: "resolveList", name: "resolveList", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "declareList", name: "declareList", pkg: "go/parser", typ: $funcType([ptrType$27, ast.ObjKind], [], false)}, {prop: "walkRecv", name: "walkRecv", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "walkFieldList", name: "walkFieldList", pkg: "go/parser", typ: $funcType([ptrType$27, ast.ObjKind], [], false)}, {prop: "walkTParams", name: "walkTParams", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "walkBody", name: "walkBody", pkg: "go/parser", typ: $funcType([ptrType$13], [], false)}]; + ptrType$55.methods = [{prop: "init", name: "init", pkg: "go/parser", typ: $funcType([ptrType$52, $String, sliceType$12, Mode], [], false)}, {prop: "allowGenerics", name: "allowGenerics", pkg: "go/parser", typ: $funcType([], [$Bool], false)}, {prop: "allowTypeSets", name: "allowTypeSets", pkg: "go/parser", typ: $funcType([], [$Bool], false)}, {prop: "printTrace", name: "printTrace", pkg: "go/parser", typ: $funcType([sliceType$2], [], true)}, {prop: "next0", name: "next0", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "consumeComment", name: "consumeComment", pkg: "go/parser", typ: $funcType([], [ptrType$32, $Int], false)}, {prop: "consumeCommentGroup", name: "consumeCommentGroup", pkg: "go/parser", typ: $funcType([$Int], [ptrType$33, $Int], false)}, {prop: "next", name: "next", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "error", name: "error", pkg: "go/parser", typ: $funcType([token.Pos, $String], [], false)}, {prop: "errorExpected", name: "errorExpected", pkg: "go/parser", typ: $funcType([token.Pos, $String], [], false)}, {prop: "expect", name: "expect", pkg: "go/parser", typ: $funcType([token.Token], [token.Pos], false)}, {prop: "expect2", name: "expect2", pkg: "go/parser", typ: $funcType([token.Token], [token.Pos], false)}, {prop: "expectClosing", name: "expectClosing", pkg: "go/parser", typ: $funcType([token.Token, $String], [token.Pos], false)}, {prop: "expectSemi", name: "expectSemi", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "atComma", name: "atComma", pkg: "go/parser", typ: $funcType([$String, token.Token], [$Bool], false)}, {prop: "advance", name: "advance", pkg: "go/parser", typ: $funcType([mapType], [], false)}, {prop: "safePos", name: "safePos", pkg: "go/parser", typ: $funcType([token.Pos], [token.Pos], false)}, {prop: "parseIdent", name: "parseIdent", pkg: "go/parser", typ: $funcType([], [ptrType$2], false)}, {prop: "parseIdentList", name: "parseIdentList", pkg: "go/parser", typ: $funcType([], [sliceType], false)}, {prop: "parseExprList", name: "parseExprList", pkg: "go/parser", typ: $funcType([], [sliceType$3], false)}, {prop: "parseList", name: "parseList", pkg: "go/parser", typ: $funcType([$Bool], [sliceType$3], false)}, {prop: "parseType", name: "parseType", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseQualifiedIdent", name: "parseQualifiedIdent", pkg: "go/parser", typ: $funcType([ptrType$2], [ast.Expr], false)}, {prop: "parseTypeName", name: "parseTypeName", pkg: "go/parser", typ: $funcType([ptrType$2], [ast.Expr], false)}, {prop: "parseArrayType", name: "parseArrayType", pkg: "go/parser", typ: $funcType([token.Pos, ast.Expr], [ptrType$34], false)}, {prop: "parseArrayFieldOrTypeInstance", name: "parseArrayFieldOrTypeInstance", pkg: "go/parser", typ: $funcType([ptrType$2], [ptrType$2, ast.Expr], false)}, {prop: "parseFieldDecl", name: "parseFieldDecl", pkg: "go/parser", typ: $funcType([], [ptrType$36], false)}, {prop: "parseStructType", name: "parseStructType", pkg: "go/parser", typ: $funcType([], [ptrType$6], false)}, {prop: "parsePointerType", name: "parsePointerType", pkg: "go/parser", typ: $funcType([], [ptrType$28], false)}, {prop: "parseDotsType", name: "parseDotsType", pkg: "go/parser", typ: $funcType([], [ptrType$37], false)}, {prop: "parseParamDecl", name: "parseParamDecl", pkg: "go/parser", typ: $funcType([ptrType$2, $Bool], [field], false)}, {prop: "parseParameterList", name: "parseParameterList", pkg: "go/parser", typ: $funcType([ptrType$2, ast.Expr, token.Token], [sliceType$5], false)}, {prop: "parseParameters", name: "parseParameters", pkg: "go/parser", typ: $funcType([$Bool], [ptrType$27, ptrType$27], false)}, {prop: "parseResult", name: "parseResult", pkg: "go/parser", typ: $funcType([], [ptrType$27], false)}, {prop: "parseFuncType", name: "parseFuncType", pkg: "go/parser", typ: $funcType([], [ptrType$7], false)}, {prop: "parseMethodSpec", name: "parseMethodSpec", pkg: "go/parser", typ: $funcType([], [ptrType$36], false)}, {prop: "embeddedElem", name: "embeddedElem", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "embeddedTerm", name: "embeddedTerm", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseInterfaceType", name: "parseInterfaceType", pkg: "go/parser", typ: $funcType([], [ptrType$9], false)}, {prop: "parseMapType", name: "parseMapType", pkg: "go/parser", typ: $funcType([], [ptrType$38], false)}, {prop: "parseChanType", name: "parseChanType", pkg: "go/parser", typ: $funcType([], [ptrType$39], false)}, {prop: "parseTypeInstance", name: "parseTypeInstance", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "tryIdentOrType", name: "tryIdentOrType", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseStmtList", name: "parseStmtList", pkg: "go/parser", typ: $funcType([], [sliceType$7], false)}, {prop: "parseBody", name: "parseBody", pkg: "go/parser", typ: $funcType([], [ptrType$13], false)}, {prop: "parseBlockStmt", name: "parseBlockStmt", pkg: "go/parser", typ: $funcType([], [ptrType$13], false)}, {prop: "parseFuncTypeOrLit", name: "parseFuncTypeOrLit", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseOperand", name: "parseOperand", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseSelector", name: "parseSelector", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseTypeAssertion", name: "parseTypeAssertion", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseIndexOrSliceOrInstance", name: "parseIndexOrSliceOrInstance", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseCallOrConversion", name: "parseCallOrConversion", pkg: "go/parser", typ: $funcType([ast.Expr], [ptrType$40], false)}, {prop: "parseValue", name: "parseValue", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseElement", name: "parseElement", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseElementList", name: "parseElementList", pkg: "go/parser", typ: $funcType([], [sliceType$3], false)}, {prop: "parseLiteralValue", name: "parseLiteralValue", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "checkExpr", name: "checkExpr", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "checkExprOrType", name: "checkExprOrType", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parsePrimaryExpr", name: "parsePrimaryExpr", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseUnaryExpr", name: "parseUnaryExpr", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "tokPrec", name: "tokPrec", pkg: "go/parser", typ: $funcType([], [token.Token, $Int], false)}, {prop: "parseBinaryExpr", name: "parseBinaryExpr", pkg: "go/parser", typ: $funcType([ast.Expr, $Int, $Bool], [ast.Expr], false)}, {prop: "parseExpr", name: "parseExpr", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseRhs", name: "parseRhs", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseRhsOrType", name: "parseRhsOrType", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseSimpleStmt", name: "parseSimpleStmt", pkg: "go/parser", typ: $funcType([$Int], [ast.Stmt, $Bool], false)}, {prop: "checkAssignStmt", name: "checkAssignStmt", pkg: "go/parser", typ: $funcType([ptrType$11], [], false)}, {prop: "parseCallExpr", name: "parseCallExpr", pkg: "go/parser", typ: $funcType([$String], [ptrType$40], false)}, {prop: "parseGoStmt", name: "parseGoStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseDeferStmt", name: "parseDeferStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseReturnStmt", name: "parseReturnStmt", pkg: "go/parser", typ: $funcType([], [ptrType$47], false)}, {prop: "parseBranchStmt", name: "parseBranchStmt", pkg: "go/parser", typ: $funcType([token.Token], [ptrType$12], false)}, {prop: "makeExpr", name: "makeExpr", pkg: "go/parser", typ: $funcType([ast.Stmt, $String], [ast.Expr], false)}, {prop: "parseIfHeader", name: "parseIfHeader", pkg: "go/parser", typ: $funcType([], [ast.Stmt, ast.Expr], false)}, {prop: "parseIfStmt", name: "parseIfStmt", pkg: "go/parser", typ: $funcType([], [ptrType$14], false)}, {prop: "parseTypeList", name: "parseTypeList", pkg: "go/parser", typ: $funcType([], [sliceType$3], false)}, {prop: "parseCaseClause", name: "parseCaseClause", pkg: "go/parser", typ: $funcType([$Bool], [ptrType$15], false)}, {prop: "isTypeSwitchGuard", name: "isTypeSwitchGuard", pkg: "go/parser", typ: $funcType([ast.Stmt], [$Bool], false)}, {prop: "parseSwitchStmt", name: "parseSwitchStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseCommClause", name: "parseCommClause", pkg: "go/parser", typ: $funcType([], [ptrType$18], false)}, {prop: "parseSelectStmt", name: "parseSelectStmt", pkg: "go/parser", typ: $funcType([], [ptrType$19], false)}, {prop: "parseForStmt", name: "parseForStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseStmt", name: "parseStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseImportSpec", name: "parseImportSpec", pkg: "go/parser", typ: $funcType([ptrType$33, token.Pos, token.Token, $Int], [ast.Spec], false)}, {prop: "parseValueSpec", name: "parseValueSpec", pkg: "go/parser", typ: $funcType([ptrType$33, token.Pos, token.Token, $Int], [ast.Spec], false)}, {prop: "parseGenericType", name: "parseGenericType", pkg: "go/parser", typ: $funcType([ptrType$26, token.Pos, ptrType$2, ast.Expr], [], false)}, {prop: "parseTypeSpec", name: "parseTypeSpec", pkg: "go/parser", typ: $funcType([ptrType$33, token.Pos, token.Token, $Int], [ast.Spec], false)}, {prop: "parseGenDecl", name: "parseGenDecl", pkg: "go/parser", typ: $funcType([token.Token, parseSpecFunction], [ptrType$22], false)}, {prop: "parseFuncDecl", name: "parseFuncDecl", pkg: "go/parser", typ: $funcType([], [ptrType$23], false)}, {prop: "parseDecl", name: "parseDecl", pkg: "go/parser", typ: $funcType([mapType], [ast.Decl], false)}, {prop: "parseFile", name: "parseFile", pkg: "go/parser", typ: $funcType([], [ptrType$49], false)}]; + resolver.init("go/parser", [{prop: "handle", name: "handle", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "declErr", name: "declErr", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "pkgScope", name: "pkgScope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "topScope", name: "topScope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "unresolved", name: "unresolved", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "depth", name: "depth", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "labelScope", name: "labelScope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "targetStack", name: "targetStack", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); + parser.init("go/parser", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "errors", name: "errors", embedded: false, exported: false, typ: scanner.ErrorList, tag: ""}, {prop: "scanner", name: "scanner", embedded: false, exported: false, typ: scanner.Scanner, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: Mode, tag: ""}, {prop: "trace", name: "trace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "comments", name: "comments", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "leadComment", name: "leadComment", embedded: false, exported: false, typ: ptrType$33, tag: ""}, {prop: "lineComment", name: "lineComment", embedded: false, exported: false, typ: ptrType$33, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "tok", name: "tok", embedded: false, exported: false, typ: token.Token, tag: ""}, {prop: "lit", name: "lit", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "syncPos", name: "syncPos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "syncCnt", name: "syncCnt", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "exprLev", name: "exprLev", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "inRhs", name: "inRhs", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "nestLev", name: "nestLev", embedded: false, exported: false, typ: $Int, tag: ""}]); + bailout.init("go/parser", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "msg", name: "msg", embedded: false, exported: false, typ: $String, tag: ""}]); + field.init("go/parser", [{prop: "name", name: "name", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ast.Expr, tag: ""}]); + parseSpecFunction.init([ptrType$33, token.Pos, token.Token, $Int], [ast.Spec], false); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typeparams.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = scanner.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fs.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = filepath.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + unresolved = new ast.Object.ptr(0, "", $ifaceNil, $ifaceNil, $ifaceNil); + stmtStart = $makeMap(token.Token.keyFor, [{ k: 61, v: true }, { k: 64, v: true }, { k: 65, v: true }, { k: 67, v: true }, { k: 69, v: true }, { k: 70, v: true }, { k: 72, v: true }, { k: 73, v: true }, { k: 74, v: true }, { k: 80, v: true }, { k: 81, v: true }, { k: 83, v: true }, { k: 84, v: true }, { k: 85, v: true }]); + declStart = $makeMap(token.Token.keyFor, [{ k: 64, v: true }, { k: 84, v: true }, { k: 85, v: true }]); + exprEnd = $makeMap(token.Token.keyFor, [{ k: 52, v: true }, { k: 58, v: true }, { k: 57, v: true }, { k: 54, v: true }, { k: 55, v: true }, { k: 56, v: true }]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/goexperiment"] = (function() { + var $pkg = {}, $init, Flags; + Flags = $newType(0, $kindStruct, "goexperiment.Flags", true, "internal/goexperiment", true, function(FieldTrack_, PreemptibleLoops_, StaticLockRanking_, BoringCrypto_, Unified_, RegabiWrappers_, RegabiArgs_, HeapMinimum512KiB_) { + this.$val = this; + if (arguments.length === 0) { + this.FieldTrack = false; + this.PreemptibleLoops = false; + this.StaticLockRanking = false; + this.BoringCrypto = false; + this.Unified = false; + this.RegabiWrappers = false; + this.RegabiArgs = false; + this.HeapMinimum512KiB = false; + return; + } + this.FieldTrack = FieldTrack_; + this.PreemptibleLoops = PreemptibleLoops_; + this.StaticLockRanking = StaticLockRanking_; + this.BoringCrypto = BoringCrypto_; + this.Unified = Unified_; + this.RegabiWrappers = RegabiWrappers_; + this.RegabiArgs = RegabiArgs_; + this.HeapMinimum512KiB = HeapMinimum512KiB_; + }); + $pkg.Flags = Flags; + $pkg.$finishSetup = function() { + Flags.init("", [{prop: "FieldTrack", name: "FieldTrack", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PreemptibleLoops", name: "PreemptibleLoops", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "StaticLockRanking", name: "StaticLockRanking", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "BoringCrypto", name: "BoringCrypto", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Unified", name: "Unified", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "RegabiWrappers", name: "RegabiWrappers", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "RegabiArgs", name: "RegabiArgs", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HeapMinimum512KiB", name: "HeapMinimum512KiB", embedded: false, exported: true, typ: $Bool, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/buildcfg"] = (function() { + var $pkg = {}, $init, fmt, goexperiment, os, filepath, reflect, runtime, strings, ExperimentFlags, gowasmFeatures, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, ParseGOEXPERIMENT, expList, envOr, goamd64, goarm, gomips, gomips64, goppc64, gowasm; + fmt = $packages["fmt"]; + goexperiment = $packages["internal/goexperiment"]; + os = $packages["os"]; + filepath = $packages["path/filepath"]; + reflect = $packages["reflect"]; + runtime = $packages["runtime"]; + strings = $packages["strings"]; + ExperimentFlags = $newType(0, $kindStruct, "buildcfg.ExperimentFlags", true, "internal/buildcfg", true, function(Flags_, baseline_) { + this.$val = this; + if (arguments.length === 0) { + this.Flags = new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false); + this.baseline = new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false); + return; + } + this.Flags = Flags_; + this.baseline = baseline_; + }); + gowasmFeatures = $newType(0, $kindStruct, "buildcfg.gowasmFeatures", true, "internal/buildcfg", false, function(SignExt_, SatConv_) { + this.$val = this; + if (arguments.length === 0) { + this.SignExt = false; + this.SatConv = false; + return; + } + this.SignExt = SignExt_; + this.SatConv = SatConv_; + }); + $pkg.ExperimentFlags = ExperimentFlags; + $pkg.gowasmFeatures = gowasmFeatures; + $pkg.$finishSetup = function() { + ParseGOEXPERIMENT = function ParseGOEXPERIMENT$1(goos, goarch, goexp) { + var {$24r, $24r$1, _1, _entry, _i, _key, _key$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, baseline, f, field, flags, goarch, goexp, goos, i, names, ok, regabiAlwaysOn, regabiSupported, rt, rv, set, val, $s, $r, $c} = $restore(this, {goos, goarch, goexp}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + flags = [flags]; + _tmp = false; + _tmp$1 = false; + regabiSupported = _tmp; + regabiAlwaysOn = _tmp$1; + _1 = goarch; + if (_1 === ("amd64") || _1 === ("arm64") || _1 === ("ppc64le") || _1 === ("ppc64")) { + regabiAlwaysOn = true; + regabiSupported = true; + } else if (_1 === ("riscv64")) { + regabiSupported = true; + } + baseline = new goexperiment.Flags.ptr(false, false, false, false, false, regabiSupported, regabiSupported, false); + flags[0] = new ExperimentFlags.ptr($clone(baseline, goexperiment.Flags), $clone(baseline, goexperiment.Flags)); + /* */ if (!(goexp === "")) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(goexp === "")) { */ case 1: + names = new $global.Map(); + _r$10 = reflect.ValueOf(flags[0].Flags); /* */ $s = 3; case 3: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = $clone(_r$10, reflect.Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + rv = _r$11; + rt = $clone(rv, reflect.Value).Type(); + i = 0; + /* while (true) { */ case 5: + _r$12 = rt.NumField(); /* */ $s = 7; case 7: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* if (!(i < _r$12)) { break; } */ if(!(i < _r$12)) { $s = 6; continue; } + _r$13 = $clone(rv, reflect.Value).Field(i); /* */ $s = 8; case 8: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + field = _r$13; + _r$14 = rt.Field(i); /* */ $s = 9; case 9: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$15 = strings.ToLower(_r$14.Name); /* */ $s = 10; case 10: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _key = _r$15; (names || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: $methodVal($clone(field, reflect.Value), "SetBool") }); + i = i + (1) >> 0; + $s = 5; continue; + case 6: + _key$1 = "regabi"; (names || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: (function(flags) { return function ParseGOEXPERIMENT·func1(v) { + var v; + flags[0].Flags.RegabiWrappers = v; + flags[0].Flags.RegabiArgs = v; + }; })(flags) }); + _ref = strings.Split(goexp, ","); + _i = 0; + /* while (true) { */ case 11: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 12; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (f === "") { + _i++; + /* continue; */ $s = 11; continue; + } + if (f === "none") { + goexperiment.Flags.copy(flags[0].Flags, new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false)); + _i++; + /* continue; */ $s = 11; continue; + } + val = true; + if (strings.HasPrefix(f, "no")) { + _tmp$2 = $substring(f, 2); + _tmp$3 = false; + f = _tmp$2; + val = _tmp$3; + } + _tuple = (_entry = $mapIndex(names,$String.keyFor(f)), _entry !== undefined ? [_entry.v, true] : [$throwNilPointerError, false]); + set = _tuple[0]; + ok = _tuple[1]; + /* */ if (!ok) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!ok) { */ case 13: + _r$16 = fmt.Errorf("unknown GOEXPERIMENT %s", new sliceType([new $String(f)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + $24r = [ptrType.nil, _r$16]; + $s = 16; case 16: return $24r; + /* } */ case 14: + $r = set(val); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 11; continue; + case 12: + /* } */ case 2: + if (regabiAlwaysOn) { + flags[0].Flags.RegabiWrappers = true; + flags[0].Flags.RegabiArgs = true; + } + if (!regabiSupported) { + flags[0].Flags.RegabiWrappers = false; + flags[0].Flags.RegabiArgs = false; + } + /* */ if (flags[0].Flags.RegabiArgs && !flags[0].Flags.RegabiWrappers) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (flags[0].Flags.RegabiArgs && !flags[0].Flags.RegabiWrappers) { */ case 18: + _r$17 = fmt.Errorf("GOEXPERIMENT regabiargs requires regabiwrappers", sliceType.nil); /* */ $s = 20; case 20: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $24r$1 = [ptrType.nil, _r$17]; + $s = 21; case 21: return $24r$1; + /* } */ case 19: + $s = -1; return [flags[0], $ifaceNil]; + /* */ } return; } var $f = {$blk: ParseGOEXPERIMENT$1, $c: true, $r, $24r, $24r$1, _1, _entry, _i, _key, _key$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, baseline, f, field, flags, goarch, goexp, goos, i, names, ok, regabiAlwaysOn, regabiSupported, rt, rv, set, val, $s};return $f; + }; + $pkg.ParseGOEXPERIMENT = ParseGOEXPERIMENT; + $ptrType(ExperimentFlags).prototype.String = function String() { + var {$24r, _r$10, _r$11, exp, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + exp = this; + _r$10 = expList(exp.Flags, exp.baseline, false); /* */ $s = 1; case 1: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = strings.Join(_r$10, ","); /* */ $s = 2; case 2: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $24r = _r$11; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r$10, _r$11, exp, $s};return $f; + }; + expList = function expList$1(exp, base, all) { + var {_r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, all, base, baseVal, exp, i, list, name, rBase, rt, rv, val, $s, $r, $c} = $restore(this, {exp, base, all}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + list = sliceType$1.nil; + _r$10 = reflect.ValueOf(exp); /* */ $s = 1; case 1: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = $clone(_r$10, reflect.Value).Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + rv = _r$11; + rBase = new reflect.Value.ptr(ptrType$1.nil, 0, 0); + /* */ if (!(base === ptrType$2.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(base === ptrType$2.nil)) { */ case 3: + _r$12 = reflect.ValueOf(base); /* */ $s = 5; case 5: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$13 = $clone(_r$12, reflect.Value).Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + rBase = _r$13; + /* } */ case 4: + rt = $clone(rv, reflect.Value).Type(); + i = 0; + /* while (true) { */ case 7: + _r$14 = rt.NumField(); /* */ $s = 9; case 9: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + /* if (!(i < _r$14)) { break; } */ if(!(i < _r$14)) { $s = 8; continue; } + _r$15 = rt.Field(i); /* */ $s = 10; case 10: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$16 = strings.ToLower(_r$15.Name); /* */ $s = 11; case 11: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + name = _r$16; + _r$17 = $clone(rv, reflect.Value).Field(i); /* */ $s = 12; case 12: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$18 = $clone(_r$17, reflect.Value).Bool(); /* */ $s = 13; case 13: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + val = _r$18; + baseVal = false; + /* */ if (!(base === ptrType$2.nil)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!(base === ptrType$2.nil)) { */ case 14: + _r$19 = $clone(rBase, reflect.Value).Field(i); /* */ $s = 16; case 16: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _r$20 = $clone(_r$19, reflect.Value).Bool(); /* */ $s = 17; case 17: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + baseVal = _r$20; + /* } */ case 15: + if (all || !(val === baseVal)) { + if (val) { + list = $append(list, name); + } else { + list = $append(list, "no" + name); + } + } + i = i + (1) >> 0; + $s = 7; continue; + case 8: + $s = -1; return list; + /* */ } return; } var $f = {$blk: expList$1, $c: true, $r, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, all, base, baseVal, exp, i, list, name, rBase, rt, rv, val, $s};return $f; + }; + $ptrType(ExperimentFlags).prototype.Enabled = function Enabled() { + var {$24r, _r$10, exp, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + exp = this; + _r$10 = expList(exp.Flags, ptrType$2.nil, false); /* */ $s = 1; case 1: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $24r = _r$10; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Enabled, $c: true, $r, $24r, _r$10, exp, $s};return $f; + }; + $ptrType(ExperimentFlags).prototype.All = function All() { + var {$24r, _r$10, exp, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + exp = this; + _r$10 = expList(exp.Flags, ptrType$2.nil, true); /* */ $s = 1; case 1: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $24r = _r$10; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: All, $c: true, $r, $24r, _r$10, exp, $s};return $f; + }; + envOr = function envOr$1(key, value) { + var {_r$10, key, value, x, $s, $r, $c} = $restore(this, {key, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$10 = os.Getenv(key); /* */ $s = 1; case 1: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + x = _r$10; + if (!(x === "")) { + $s = -1; return x; + } + $s = -1; return value; + /* */ } return; } var $f = {$blk: envOr$1, $c: true, $r, _r$10, key, value, x, $s};return $f; + }; + goamd64 = function goamd64$1() { + var {_1, _r$10, _r$11, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$10 = envOr("GOAMD64", "v1"); /* */ $s = 2; case 2: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + v = _r$10; + _1 = v; + if (_1 === ("v1")) { + $s = -1; return 1; + } else if (_1 === ("v2")) { + $s = -1; return 2; + } else if (_1 === ("v3")) { + $s = -1; return 3; + } else if (_1 === ("v4")) { + $s = -1; return 4; + } + case 1: + _r$11 = fmt.Errorf("invalid GOAMD64: must be v1, v2, v3, v4", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $pkg.Error = _r$11; + $s = -1; return ((("v1".charCodeAt(1) - 48 << 24 >>> 24) >> 0)); + /* */ } return; } var $f = {$blk: goamd64$1, $c: true, $r, _1, _r$10, _r$11, v, $s};return $f; + }; + goarm = function goarm$1() { + var {_1, _r$10, _r$11, def, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + def = "5"; + if ($pkg.GOOS === "android" && $pkg.GOARCH === "arm") { + def = "7"; + } + _r$10 = envOr("GOARM", def); /* */ $s = 2; case 2: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + v = _r$10; + _1 = v; + if (_1 === ("5")) { + $s = -1; return 5; + } else if (_1 === ("6")) { + $s = -1; return 6; + } else if (_1 === ("7")) { + $s = -1; return 7; + } + case 1: + _r$11 = fmt.Errorf("invalid GOARM: must be 5, 6, 7", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $pkg.Error = _r$11; + $s = -1; return (((def.charCodeAt(0) - 48 << 24 >>> 24) >> 0)); + /* */ } return; } var $f = {$blk: goarm$1, $c: true, $r, _1, _r$10, _r$11, def, v, $s};return $f; + }; + gomips = function gomips$1() { + var {_1, _r$10, _r$11, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$10 = envOr("GOMIPS", "hardfloat"); /* */ $s = 2; case 2: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + v = _r$10; + _1 = v; + if (_1 === ("hardfloat") || _1 === ("softfloat")) { + $s = -1; return v; + } + case 1: + _r$11 = fmt.Errorf("invalid GOMIPS: must be hardfloat, softfloat", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $pkg.Error = _r$11; + $s = -1; return "hardfloat"; + /* */ } return; } var $f = {$blk: gomips$1, $c: true, $r, _1, _r$10, _r$11, v, $s};return $f; + }; + gomips64 = function gomips64$1() { + var {_1, _r$10, _r$11, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$10 = envOr("GOMIPS64", "hardfloat"); /* */ $s = 2; case 2: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + v = _r$10; + _1 = v; + if (_1 === ("hardfloat") || _1 === ("softfloat")) { + $s = -1; return v; + } + case 1: + _r$11 = fmt.Errorf("invalid GOMIPS64: must be hardfloat, softfloat", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $pkg.Error = _r$11; + $s = -1; return "hardfloat"; + /* */ } return; } var $f = {$blk: gomips64$1, $c: true, $r, _1, _r$10, _r$11, v, $s};return $f; + }; + goppc64 = function goppc64$1() { + var {_1, _r$10, _r$11, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$10 = envOr("GOPPC64", "power8"); /* */ $s = 2; case 2: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + v = _r$10; + _1 = v; + if (_1 === ("power8")) { + $s = -1; return 8; + } else if (_1 === ("power9")) { + $s = -1; return 9; + } + case 1: + _r$11 = fmt.Errorf("invalid GOPPC64: must be power8, power9", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $pkg.Error = _r$11; + $s = -1; return ((("power8".charCodeAt(5) - 48 << 24 >>> 24) >> 0)); + /* */ } return; } var $f = {$blk: goppc64$1, $c: true, $r, _1, _r$10, _r$11, v, $s};return $f; + }; + $ptrType(gowasmFeatures).prototype.String = function String$1() { + var f, flags; + f = this; + flags = sliceType$1.nil; + if (f.SatConv) { + flags = $append(flags, "satconv"); + } + if (f.SignExt) { + flags = $append(flags, "signext"); + } + return strings.Join(flags, ","); + }; + gowasmFeatures.prototype.String = function(...$args) { return this.$val.String(...$args); }; + gowasm = function gowasm$1() { + var {_1, _i, _r$10, _r$11, _r$12, _ref, f, opt, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = new gowasmFeatures.ptr(false, false); + _r$10 = envOr("GOWASM", ""); /* */ $s = 1; case 1: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = strings.Split(_r$10, ","); /* */ $s = 2; case 2: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _ref = _r$11; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + opt = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _1 = opt; + /* */ if (_1 === ("satconv")) { $s = 6; continue; } + /* */ if (_1 === ("signext")) { $s = 7; continue; } + /* */ if (_1 === ("")) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === ("satconv")) { */ case 6: + f.SatConv = true; + $s = 10; continue; + /* } else if (_1 === ("signext")) { */ case 7: + f.SignExt = true; + $s = 10; continue; + /* } else if (_1 === ("")) { */ case 8: + $s = 10; continue; + /* } else { */ case 9: + _r$12 = fmt.Errorf("invalid GOWASM: no such feature %q", new sliceType([new $String(opt)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $pkg.Error = _r$12; + /* } */ case 10: + case 5: + _i++; + $s = 3; continue; + case 4: + $s = -1; return f; + /* */ } return; } var $f = {$blk: gowasm$1, $c: true, $r, _1, _i, _r$10, _r$11, _r$12, _ref, f, opt, $s};return $f; + }; + ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Enabled", name: "Enabled", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "All", name: "All", pkg: "", typ: $funcType([], [sliceType$1], false)}]; + gowasmFeatures.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ExperimentFlags.init("internal/buildcfg", [{prop: "Flags", name: "Flags", embedded: true, exported: true, typ: goexperiment.Flags, tag: ""}, {prop: "baseline", name: "baseline", embedded: false, exported: false, typ: goexperiment.Flags, tag: ""}]); + gowasmFeatures.init("", [{prop: "SignExt", name: "SignExt", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "SatConv", name: "SatConv", embedded: false, exported: true, typ: $Bool, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = goexperiment.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = filepath.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.Error = $ifaceNil; + $pkg.GOROOT = runtime.GOROOT(); + _r = envOr("GOARCH", "ecmascript"); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $pkg.GOARCH = _r; + _r$1 = envOr("GOOS", "js"); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $pkg.GOOS = _r$1; + _r$2 = envOr("GO386", "sse2"); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $pkg.GO386 = _r$2; + _r$3 = (function func1() { + var {_arg, _arg$1, _arg$2, _r$3, _r$4, _tuple, err, flags, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = $pkg.GOOS; + _arg$1 = $pkg.GOARCH; + _r$3 = envOr("GOEXPERIMENT", ""); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$2 = _r$3; + _r$4 = ParseGOEXPERIMENT(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + flags = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $pkg.Error = err; + $s = -1; return new ExperimentFlags.ptr(new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false), new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false)); + } + $s = -1; return flags; + /* */ } return; } var $f = {$blk: func1, $c: true, $r, _arg, _arg$1, _arg$2, _r$3, _r$4, _tuple, err, flags, $s};return $f; + })(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $pkg.Experiment = $clone(_r$3, ExperimentFlags); + _r$4 = goamd64(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $pkg.GOAMD64 = _r$4; + _r$5 = goarm(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $pkg.GOARM = _r$5; + _r$6 = gomips(); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $pkg.GOMIPS = _r$6; + _r$7 = gomips64(); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $pkg.GOMIPS64 = _r$7; + _r$8 = goppc64(); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $pkg.GOPPC64 = _r$8; + _r$9 = gowasm(); /* */ $s = 17; case 17: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $pkg.GOWASM = $clone(_r$9, gowasmFeatures); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["os/exec"] = (function() { + var $pkg = {}, $init, bytes, context, errors, execenv, io, fs, os, filepath, runtime, strconv, strings, sync, syscall, Error, wrappedError, Cmd, ExitError, closeOnce, prefixSuffixSaver, LookPath, skipStdinCopyError, Command, interfaceEqual, lookExtensions, minInt, dedupEnv, dedupEnvCase, addCriticalEnv; + bytes = $packages["bytes"]; + context = $packages["context"]; + errors = $packages["errors"]; + execenv = $packages["internal/syscall/execenv"]; + io = $packages["io"]; + fs = $packages["io/fs"]; + os = $packages["os"]; + filepath = $packages["path/filepath"]; + runtime = $packages["runtime"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + sync = $packages["sync"]; + syscall = $packages["syscall"]; + Error = $newType(0, $kindStruct, "exec.Error", true, "os/exec", true, function(Name_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.Err = $ifaceNil; + return; + } + this.Name = Name_; + this.Err = Err_; + }); + wrappedError = $newType(0, $kindStruct, "exec.wrappedError", true, "os/exec", false, function(prefix_, err_) { + this.$val = this; + if (arguments.length === 0) { + this.prefix = ""; + this.err = $ifaceNil; + return; + } + this.prefix = prefix_; + this.err = err_; + }); + Cmd = $newType(0, $kindStruct, "exec.Cmd", true, "os/exec", true, function(Path_, Args_, Env_, Dir_, Stdin_, Stdout_, Stderr_, ExtraFiles_, SysProcAttr_, Process_, ProcessState_, ctx_, Err_, childFiles_, closeAfterStart_, closeAfterWait_, goroutine_, goroutineErrs_, ctxErr_, lookPathErr_) { + this.$val = this; + if (arguments.length === 0) { + this.Path = ""; + this.Args = sliceType.nil; + this.Env = sliceType.nil; + this.Dir = ""; + this.Stdin = $ifaceNil; + this.Stdout = $ifaceNil; + this.Stderr = $ifaceNil; + this.ExtraFiles = sliceType$1.nil; + this.SysProcAttr = ptrType$2.nil; + this.Process = ptrType$3.nil; + this.ProcessState = ptrType$4.nil; + this.ctx = $ifaceNil; + this.Err = $ifaceNil; + this.childFiles = sliceType$1.nil; + this.closeAfterStart = sliceType$2.nil; + this.closeAfterWait = sliceType$2.nil; + this.goroutine = sliceType$3.nil; + this.goroutineErrs = $chanNil; + this.ctxErr = $chanNil; + this.lookPathErr = $ifaceNil; + return; + } + this.Path = Path_; + this.Args = Args_; + this.Env = Env_; + this.Dir = Dir_; + this.Stdin = Stdin_; + this.Stdout = Stdout_; + this.Stderr = Stderr_; + this.ExtraFiles = ExtraFiles_; + this.SysProcAttr = SysProcAttr_; + this.Process = Process_; + this.ProcessState = ProcessState_; + this.ctx = ctx_; + this.Err = Err_; + this.childFiles = childFiles_; + this.closeAfterStart = closeAfterStart_; + this.closeAfterWait = closeAfterWait_; + this.goroutine = goroutine_; + this.goroutineErrs = goroutineErrs_; + this.ctxErr = ctxErr_; + this.lookPathErr = lookPathErr_; + }); + ExitError = $newType(0, $kindStruct, "exec.ExitError", true, "os/exec", true, function(ProcessState_, Stderr_) { + this.$val = this; + if (arguments.length === 0) { + this.ProcessState = ptrType$4.nil; + this.Stderr = sliceType$4.nil; + return; + } + this.ProcessState = ProcessState_; + this.Stderr = Stderr_; + }); + closeOnce = $newType(0, $kindStruct, "exec.closeOnce", true, "os/exec", false, function(File_, once_, err_) { + this.$val = this; + if (arguments.length === 0) { + this.File = ptrType$1.nil; + this.once = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); + this.err = $ifaceNil; + return; + } + this.File = File_; + this.once = once_; + this.err = err_; + }); + prefixSuffixSaver = $newType(0, $kindStruct, "exec.prefixSuffixSaver", true, "os/exec", false, function(N_, prefix_, suffix_, suffixOff_, skipped_) { + this.$val = this; + if (arguments.length === 0) { + this.N = 0; + this.prefix = sliceType$4.nil; + this.suffix = sliceType$4.nil; + this.suffixOff = 0; + this.skipped = new $Int64(0, 0); + return; + } + this.N = N_; + this.prefix = prefix_; + this.suffix = suffix_; + this.suffixOff = suffixOff_; + this.skipped = skipped_; + }); + $pkg.Error = Error; + $pkg.wrappedError = wrappedError; + $pkg.Cmd = Cmd; + $pkg.ExitError = ExitError; + $pkg.closeOnce = closeOnce; + $pkg.prefixSuffixSaver = prefixSuffixSaver; + $pkg.$finishSetup = function() { + LookPath = function LookPath$1(file) { + var file; + return ["", new Error.ptr(file, $pkg.ErrNotFound)]; + }; + $pkg.LookPath = LookPath; + skipStdinCopyError = function skipStdinCopyError$1(err) { + var _tuple, err, ok, pe; + _tuple = $assertType(err, ptrType, true); + pe = _tuple[0]; + ok = _tuple[1]; + return ok && pe.Op === "write" && pe.Path === "|1" && $interfaceIsEqual(pe.Err, new syscall.Errno(32)); + }; + $ptrType(Error).prototype.Error = function Error$1() { + var {$24r, _r, e, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = "exec: " + strconv.Quote(e.Name) + ": " + _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Error$1, $c: true, $r, $24r, _r, e, $s};return $f; + }; + $ptrType(Error).prototype.Unwrap = function Unwrap() { + var e; + e = this; + return e.Err; + }; + $ptrType(wrappedError).prototype.Error = function Error$2() { + var {$24r, _r, w, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + _r = w.err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = w.prefix + ": " + _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Error$2, $c: true, $r, $24r, _r, w, $s};return $f; + }; + wrappedError.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; + $ptrType(wrappedError).prototype.Unwrap = function Unwrap$1() { + var w; + w = this; + return w.err; + }; + wrappedError.prototype.Unwrap = function(...$args) { return this.$val.Unwrap(...$args); }; + Command = function Command$1(name, arg) { + var _tuple, arg, cmd, err, lp, name; + cmd = new Cmd.ptr(name, $appendSlice(new sliceType([name]), arg), sliceType.nil, "", $ifaceNil, $ifaceNil, $ifaceNil, sliceType$1.nil, ptrType$2.nil, ptrType$3.nil, ptrType$4.nil, $ifaceNil, $ifaceNil, sliceType$1.nil, sliceType$2.nil, sliceType$2.nil, sliceType$3.nil, $chanNil, $chanNil, $ifaceNil); + if (filepath.Base(name) === name) { + _tuple = LookPath(name); + lp = _tuple[0]; + err = _tuple[1]; + if (!(lp === "")) { + cmd.Path = lp; + } + if (!($interfaceIsEqual(err, $ifaceNil))) { + cmd.Err = err; + } + } + return cmd; + }; + $pkg.Command = Command; + $ptrType(Cmd).prototype.String = function String() { + var _i, _ref, a, b, c; + c = this; + if (!($interfaceIsEqual(c.Err, $ifaceNil)) || !($interfaceIsEqual(c.lookPathErr, $ifaceNil))) { + return strings.Join(c.Args, " "); + } + b = new strings.Builder.ptr(ptrType$5.nil, sliceType$4.nil); + b.WriteString(c.Path); + _ref = $subslice(c.Args, 1); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + a = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + b.WriteByte(32); + b.WriteString(a); + _i++; + } + return b.String(); + }; + interfaceEqual = function interfaceEqual$1(a, b) { + var a, b, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + $deferred.push([(function interfaceEqual·func1() { + $recover(); + }), []]); + return $interfaceIsEqual(a, b); + /* */ } catch(err) { $err = err; return false; } finally { $callDeferred($deferred, $err); } + }; + $ptrType(Cmd).prototype.argv = function argv() { + var c; + c = this; + if (c.Args.$length > 0) { + return c.Args; + } + return new sliceType([c.Path]); + }; + $ptrType(Cmd).prototype.stdin = function stdin() { + var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$2, c, err, f, f$1, ok, pr, pw, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = [c]; + pw = [pw]; + f = ptrType$1.nil; + err = $ifaceNil; + c[0] = this; + /* */ if ($interfaceIsEqual(c[0].Stdin, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(c[0].Stdin, $ifaceNil)) { */ case 1: + _r = os.Open("/dev/null"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [f, err]; + } + c[0].closeAfterStart = $append(c[0].closeAfterStart, f); + $s = -1; return [f, err]; + /* } */ case 2: + _tuple$1 = $assertType(c[0].Stdin, ptrType$1, true); + f$1 = _tuple$1[0]; + ok = _tuple$1[1]; + if (ok) { + _tmp = f$1; + _tmp$1 = $ifaceNil; + f = _tmp; + err = _tmp$1; + $s = -1; return [f, err]; + } + _r$1 = os.Pipe(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$2 = _r$1; + pr = _tuple$2[0]; + pw[0] = _tuple$2[1]; + err = _tuple$2[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [f, err]; + } + c[0].closeAfterStart = $append(c[0].closeAfterStart, pr); + c[0].closeAfterWait = $append(c[0].closeAfterWait, pw[0]); + c[0].goroutine = $append(c[0].goroutine, (function(c, pw) { return function Cmd·stdin·func1() { + var {_r$2, _r$3, _tuple$3, err$1, err1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$2 = io.Copy(pw[0], c[0].Stdin); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$3 = _r$2; + err$1 = _tuple$3[1]; + if (skipStdinCopyError(err$1)) { + err$1 = $ifaceNil; + } + _r$3 = pw[0].Close(); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err1 = _r$3; + if ($interfaceIsEqual(err$1, $ifaceNil)) { + err$1 = err1; + } + $s = -1; return err$1; + /* */ } return; } var $f = {$blk: Cmd·stdin·func1, $c: true, $r, _r$2, _r$3, _tuple$3, err$1, err1, $s};return $f; + }; })(c, pw)); + _tmp$2 = pr; + _tmp$3 = $ifaceNil; + f = _tmp$2; + err = _tmp$3; + $s = -1; return [f, err]; + /* */ } return; } var $f = {$blk: stdin, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$2, c, err, f, f$1, ok, pr, pw, $s};return $f; + }; + $ptrType(Cmd).prototype.stdout = function stdout() { + var {$24r, _r, _tuple, c, err, f, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = ptrType$1.nil; + err = $ifaceNil; + c = this; + _r = c.writerDescriptor(c.Stdout); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + err = _tuple[1]; + $24r = [f, err]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: stdout, $c: true, $r, $24r, _r, _tuple, c, err, f, $s};return $f; + }; + $ptrType(Cmd).prototype.stderr = function stderr() { + var {$24r, _r, _tmp, _tmp$1, _tuple, c, err, f, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = ptrType$1.nil; + err = $ifaceNil; + c = this; + if (!($interfaceIsEqual(c.Stderr, $ifaceNil)) && interfaceEqual(c.Stderr, c.Stdout)) { + _tmp = (x = c.childFiles, (1 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 1])); + _tmp$1 = $ifaceNil; + f = _tmp; + err = _tmp$1; + $s = -1; return [f, err]; + } + _r = c.writerDescriptor(c.Stderr); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + err = _tuple[1]; + $24r = [f, err]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: stderr, $c: true, $r, $24r, _r, _tmp, _tmp$1, _tuple, c, err, f, x, $s};return $f; + }; + $ptrType(Cmd).prototype.writerDescriptor = function writerDescriptor(w) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$2, c, err, f, f$1, ok, pr, pw, w, $s, $r, $c} = $restore(this, {w}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pr = [pr]; + w = [w]; + f = ptrType$1.nil; + err = $ifaceNil; + c = this; + /* */ if ($interfaceIsEqual(w[0], $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(w[0], $ifaceNil)) { */ case 1: + _r = os.OpenFile("/dev/null", 1, 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [f, err]; + } + c.closeAfterStart = $append(c.closeAfterStart, f); + $s = -1; return [f, err]; + /* } */ case 2: + _tuple$1 = $assertType(w[0], ptrType$1, true); + f$1 = _tuple$1[0]; + ok = _tuple$1[1]; + if (ok) { + _tmp = f$1; + _tmp$1 = $ifaceNil; + f = _tmp; + err = _tmp$1; + $s = -1; return [f, err]; + } + _r$1 = os.Pipe(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$2 = _r$1; + pr[0] = _tuple$2[0]; + pw = _tuple$2[1]; + err = _tuple$2[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [f, err]; + } + c.closeAfterStart = $append(c.closeAfterStart, pw); + c.closeAfterWait = $append(c.closeAfterWait, pr[0]); + c.goroutine = $append(c.goroutine, (function(pr, w) { return function Cmd·writerDescriptor·func1() { + var {_r$2, _r$3, _tuple$3, err$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$2 = io.Copy(w[0], pr[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$3 = _r$2; + err$1 = _tuple$3[1]; + _r$3 = pr[0].Close(); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $s = -1; return err$1; + /* */ } return; } var $f = {$blk: Cmd·writerDescriptor·func1, $c: true, $r, _r$2, _r$3, _tuple$3, err$1, $s};return $f; + }; })(pr, w)); + _tmp$2 = pw; + _tmp$3 = $ifaceNil; + f = _tmp$2; + err = _tmp$3; + $s = -1; return [f, err]; + /* */ } return; } var $f = {$blk: writerDescriptor, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$2, c, err, f, f$1, ok, pr, pw, w, $s};return $f; + }; + $ptrType(Cmd).prototype.closeDescriptors = function closeDescriptors(closers) { + var {_i, _r, _ref, c, closers, fd, $s, $r, $c} = $restore(this, {closers}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + _ref = closers; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + fd = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = fd.Close(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: closeDescriptors, $c: true, $r, _i, _r, _ref, c, closers, fd, $s};return $f; + }; + $ptrType(Cmd).prototype.Run = function Run() { + var {$24r, _r, _r$1, c, err, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + _r = c.Start(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$1 = c.Wait(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Run, $c: true, $r, $24r, _r, _r$1, c, err, $s};return $f; + }; + lookExtensions = function lookExtensions$1(path, dir) { + var _tuple, dir, dirandpath, err, ext, lp, path; + if (filepath.Base(path) === path) { + path = "./" + path; + } + if (dir === "") { + return LookPath(path); + } + if (!(filepath.VolumeName(path) === "")) { + return LookPath(path); + } + if (path.length > 1 && os.IsPathSeparator(path.charCodeAt(0))) { + return LookPath(path); + } + dirandpath = filepath.Join(new sliceType([dir, path])); + _tuple = LookPath(dirandpath); + lp = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return ["", err]; + } + ext = strings.TrimPrefix(lp, dirandpath); + return [path + ext, $ifaceNil]; + }; + $ptrType(Cmd).prototype.Start = function Start() { + var {$24r, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _selection, _tuple, _tuple$1, _tuple$2, _tuple$3, c, env, err, err$1, err$2, errc, fd, fn, lp, setupFd, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + errc = [errc]; + c = this; + if (c.Path === "" && $interfaceIsEqual(c.Err, $ifaceNil) && $interfaceIsEqual(c.lookPathErr, $ifaceNil)) { + c.Err = errors.New("exec: no command"); + } + /* */ if (!($interfaceIsEqual(c.Err, $ifaceNil)) || !($interfaceIsEqual(c.lookPathErr, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(c.Err, $ifaceNil)) || !($interfaceIsEqual(c.lookPathErr, $ifaceNil))) { */ case 1: + $r = c.closeDescriptors(c.closeAfterStart); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = c.closeDescriptors(c.closeAfterWait); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!($interfaceIsEqual(c.lookPathErr, $ifaceNil))) { + $s = -1; return c.lookPathErr; + } + $s = -1; return c.Err; + /* } */ case 2: + /* */ if (false) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (false) { */ case 5: + _tuple = lookExtensions(c.Path, c.Dir); + lp = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 7: + $r = c.closeDescriptors(c.closeAfterStart); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = c.closeDescriptors(c.closeAfterWait); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return err; + /* } */ case 8: + c.Path = lp; + /* } */ case 6: + if (!(c.Process === ptrType$3.nil)) { + $s = -1; return errors.New("exec: already started"); + } + /* */ if (!($interfaceIsEqual(c.ctx, $ifaceNil))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!($interfaceIsEqual(c.ctx, $ifaceNil))) { */ case 11: + _r = c.ctx.Done(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _selection = $select([[_r], []]); + /* */ if (_selection[0] === 0) { $s = 14; continue; } + /* */ if (_selection[0] === 1) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (_selection[0] === 0) { */ case 14: + $r = c.closeDescriptors(c.closeAfterStart); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = c.closeDescriptors(c.closeAfterWait); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = c.ctx.Err(); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 20; case 20: return $24r; + /* } else if (_selection[0] === 1) { */ case 15: + /* } */ case 16: + /* } */ case 12: + c.childFiles = $makeSlice(sliceType$1, 0, (3 + c.ExtraFiles.$length >> 0)); + _ref = new sliceType$5([$methodExpr(ptrType$6, "stdin"), $methodExpr(ptrType$6, "stdout"), $methodExpr(ptrType$6, "stderr")]); + _i = 0; + /* while (true) { */ case 21: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 22; continue; } + setupFd = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$2 = setupFd(c); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + fd = _tuple$1[0]; + err$1 = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 24: + $r = c.closeDescriptors(c.closeAfterStart); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = c.closeDescriptors(c.closeAfterWait); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return err$1; + /* } */ case 25: + c.childFiles = $append(c.childFiles, fd); + _i++; + $s = 21; continue; + case 22: + c.childFiles = $appendSlice(c.childFiles, c.ExtraFiles); + _r$3 = c.environ(); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$2 = _r$3; + env = _tuple$2[0]; + err$2 = _tuple$2[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + _r$4 = os.StartProcess(c.Path, c.argv(), new os.ProcAttr.ptr(c.Dir, env, c.childFiles, c.SysProcAttr)); /* */ $s = 29; case 29: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$3 = _r$4; + c.Process = _tuple$3[0]; + err$2 = _tuple$3[1]; + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 30: + $r = c.closeDescriptors(c.closeAfterStart); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = c.closeDescriptors(c.closeAfterWait); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return err$2; + /* } */ case 31: + $r = c.closeDescriptors(c.closeAfterStart); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (c.goroutine.$length > 0) { + errc[0] = new $Chan($error, c.goroutine.$length); + c.goroutineErrs = errc[0]; + _ref$1 = c.goroutine; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + fn = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + $go((function(errc) { return function Cmd·Start·func1(fn$1) { + var {_r$5, fn$1, $s, $r, $c} = $restore(this, {fn$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$5 = fn$1(); /* */ $s = 1; case 1: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = $send(errc[0], _r$5); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Cmd·Start·func1, $c: true, $r, _r$5, fn$1, $s};return $f; + }; })(errc), [fn]); + _i$1++; + } + } + c.ctxErr = c.watchCtx(); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Start, $c: true, $r, $24r, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _selection, _tuple, _tuple$1, _tuple$2, _tuple$3, c, env, err, err$1, err$2, errc, fd, fn, lp, setupFd, $s};return $f; + }; + $ptrType(ExitError).prototype.Error = function Error$3() { + var e; + e = this; + return e.ProcessState.String(); + }; + $ptrType(Cmd).prototype.Wait = function Wait() { + var {_i, _r, _r$1, _r$2, _ref, _tuple, c, copyError, err, err$1, interruptErr, state, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + if (c.Process === ptrType$3.nil) { + $s = -1; return errors.New("exec: not started"); + } + if (!(c.ProcessState === ptrType$4.nil)) { + $s = -1; return errors.New("exec: Wait was already called"); + } + _r = c.Process.Wait(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + state = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil) && !state.Success()) { + err = new ExitError.ptr(state, sliceType$4.nil); + } + c.ProcessState = state; + copyError = $ifaceNil; + _ref = c.goroutine; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + _r$1 = $recv(c.goroutineErrs); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1[0]; + if (!($interfaceIsEqual(err$1, $ifaceNil)) && $interfaceIsEqual(copyError, $ifaceNil)) { + copyError = err$1; + } + _i++; + $s = 2; continue; + case 3: + c.goroutine = sliceType$3.nil; + /* */ if (!(c.ctxErr === $chanNil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(c.ctxErr === $chanNil)) { */ case 5: + _r$2 = $recv(c.ctxErr); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + interruptErr = _r$2[0]; + if (!($interfaceIsEqual(interruptErr, $ifaceNil)) && $interfaceIsEqual(err, $ifaceNil)) { + err = interruptErr; + } + /* } */ case 6: + if ($interfaceIsEqual(err, $ifaceNil)) { + err = copyError; + } + $r = c.closeDescriptors(c.closeAfterWait); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + c.closeAfterWait = sliceType$2.nil; + $s = -1; return err; + /* */ } return; } var $f = {$blk: Wait, $c: true, $r, _i, _r, _r$1, _r$2, _ref, _tuple, c, copyError, err, err$1, interruptErr, state, $s};return $f; + }; + $ptrType(Cmd).prototype.watchCtx = function watchCtx() { + var c, errc; + c = this; + if ($interfaceIsEqual(c.ctx, $ifaceNil)) { + return $chanNil; + } + errc = new $Chan($error, 0); + $go((function Cmd·watchCtx·func1() { + var {_r, _r$1, _r$2, _r$3, _r$4, _selection, err, killErr, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = c.ctx.Done(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = $select([[errc, $ifaceNil], [_r]]); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _selection = _r$1; + /* */ if (_selection[0] === 0) { $s = 3; continue; } + /* */ if (_selection[0] === 1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_selection[0] === 0) { */ case 3: + $s = -1; return; + /* } else if (_selection[0] === 1) { */ case 4: + /* } */ case 5: + err = $ifaceNil; + _r$2 = c.Process.Kill(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + killErr = _r$2; + /* */ if ($interfaceIsEqual(killErr, $ifaceNil)) { $s = 7; continue; } + _r$3 = errors.Is(killErr, os.ErrProcessDone); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ($interfaceIsEqual(killErr, $ifaceNil)) { */ case 7: + _r$4 = c.ctx.Err(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; + $s = 9; continue; + /* } else if (!_r$3) { */ case 8: + err = (x = new wrappedError.ptr("exec: error sending signal to Cmd", killErr), new x.constructor.elem(x)); + /* } */ case 9: + $r = $send(errc, err); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Cmd·watchCtx·func1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _selection, err, killErr, x, $s};return $f; + }), []); + return errc; + }; + $ptrType(Cmd).prototype.Output = function Output() { + var {_r, _tuple, c, captureErr, ee, err, ok, stdout$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + stdout$1 = [stdout$1]; + c = this; + if (!($interfaceIsEqual(c.Stdout, $ifaceNil))) { + $s = -1; return [sliceType$4.nil, errors.New("exec: Stdout already set")]; + } + stdout$1[0] = new bytes.Buffer.ptr(sliceType$4.nil, 0, 0); + c.Stdout = stdout$1[0]; + captureErr = $interfaceIsEqual(c.Stderr, $ifaceNil); + if (captureErr) { + c.Stderr = new prefixSuffixSaver.ptr(32768, sliceType$4.nil, sliceType$4.nil, 0, new $Int64(0, 0)); + } + _r = c.Run(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil)) && captureErr) { + _tuple = $assertType(err, ptrType$7, true); + ee = _tuple[0]; + ok = _tuple[1]; + if (ok) { + ee.Stderr = $assertType(c.Stderr, ptrType$8).Bytes(); + } + } + $s = -1; return [stdout$1[0].Bytes(), err]; + /* */ } return; } var $f = {$blk: Output, $c: true, $r, _r, _tuple, c, captureErr, ee, err, ok, stdout$1, $s};return $f; + }; + $ptrType(Cmd).prototype.CombinedOutput = function CombinedOutput() { + var {_r, b, c, err, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = [b]; + c = this; + if (!($interfaceIsEqual(c.Stdout, $ifaceNil))) { + $s = -1; return [sliceType$4.nil, errors.New("exec: Stdout already set")]; + } + if (!($interfaceIsEqual(c.Stderr, $ifaceNil))) { + $s = -1; return [sliceType$4.nil, errors.New("exec: Stderr already set")]; + } + b[0] = new bytes.Buffer.ptr(sliceType$4.nil, 0, 0); + c.Stdout = b[0]; + c.Stderr = b[0]; + _r = c.Run(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + $s = -1; return [b[0].Bytes(), err]; + /* */ } return; } var $f = {$blk: CombinedOutput, $c: true, $r, _r, b, c, err, $s};return $f; + }; + $ptrType(Cmd).prototype.StdinPipe = function StdinPipe() { + var {_r, _tuple, c, err, pr, pw, wc, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + if (!($interfaceIsEqual(c.Stdin, $ifaceNil))) { + $s = -1; return [$ifaceNil, errors.New("exec: Stdin already set")]; + } + if (!(c.Process === ptrType$3.nil)) { + $s = -1; return [$ifaceNil, errors.New("exec: StdinPipe after process started")]; + } + _r = os.Pipe(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + pr = _tuple[0]; + pw = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, err]; + } + c.Stdin = pr; + c.closeAfterStart = $append(c.closeAfterStart, pr); + wc = new closeOnce.ptr(pw, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), $ifaceNil); + c.closeAfterWait = $append(c.closeAfterWait, wc); + $s = -1; return [wc, $ifaceNil]; + /* */ } return; } var $f = {$blk: StdinPipe, $c: true, $r, _r, _tuple, c, err, pr, pw, wc, $s};return $f; + }; + $ptrType(closeOnce).prototype.Close = function Close() { + var {c, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + $r = c.once.Do($methodVal(c, "close")); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return c.err; + /* */ } return; } var $f = {$blk: Close, $c: true, $r, c, $s};return $f; + }; + $ptrType(closeOnce).prototype.close = function close() { + var {_r, c, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + _r = c.File.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + c.err = _r; + $s = -1; return; + /* */ } return; } var $f = {$blk: close, $c: true, $r, _r, c, $s};return $f; + }; + $ptrType(Cmd).prototype.StdoutPipe = function StdoutPipe() { + var {_r, _tuple, c, err, pr, pw, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + if (!($interfaceIsEqual(c.Stdout, $ifaceNil))) { + $s = -1; return [$ifaceNil, errors.New("exec: Stdout already set")]; + } + if (!(c.Process === ptrType$3.nil)) { + $s = -1; return [$ifaceNil, errors.New("exec: StdoutPipe after process started")]; + } + _r = os.Pipe(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + pr = _tuple[0]; + pw = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, err]; + } + c.Stdout = pw; + c.closeAfterStart = $append(c.closeAfterStart, pw); + c.closeAfterWait = $append(c.closeAfterWait, pr); + $s = -1; return [pr, $ifaceNil]; + /* */ } return; } var $f = {$blk: StdoutPipe, $c: true, $r, _r, _tuple, c, err, pr, pw, $s};return $f; + }; + $ptrType(Cmd).prototype.StderrPipe = function StderrPipe() { + var {_r, _tuple, c, err, pr, pw, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + if (!($interfaceIsEqual(c.Stderr, $ifaceNil))) { + $s = -1; return [$ifaceNil, errors.New("exec: Stderr already set")]; + } + if (!(c.Process === ptrType$3.nil)) { + $s = -1; return [$ifaceNil, errors.New("exec: StderrPipe after process started")]; + } + _r = os.Pipe(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + pr = _tuple[0]; + pw = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, err]; + } + c.Stderr = pw; + c.closeAfterStart = $append(c.closeAfterStart, pw); + c.closeAfterWait = $append(c.closeAfterWait, pr); + $s = -1; return [pr, $ifaceNil]; + /* */ } return; } var $f = {$blk: StderrPipe, $c: true, $r, _r, _tuple, c, err, pr, pw, $s};return $f; + }; + $ptrType(prefixSuffixSaver).prototype.Write = function Write(p) { + var _tmp, _tmp$1, err, lenp, n, n$1, overage, p, w, x, x$1, x$2, x$3; + n = 0; + err = $ifaceNil; + w = this; + lenp = p.$length; + p = w.fill((w.$ptr_prefix || (w.$ptr_prefix = new ptrType$9(function() { return this.$target.prefix; }, function($v) { this.$target.prefix = $v; }, w))), p); + overage = p.$length - w.N >> 0; + if (overage > 0) { + p = $subslice(p, overage); + w.skipped = (x = w.skipped, x$1 = (new $Int64(0, overage)), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + } + p = w.fill((w.$ptr_suffix || (w.$ptr_suffix = new ptrType$9(function() { return this.$target.suffix; }, function($v) { this.$target.suffix = $v; }, w))), p); + while (true) { + if (!(p.$length > 0)) { break; } + n$1 = $copySlice($subslice(w.suffix, w.suffixOff), p); + p = $subslice(p, n$1); + w.skipped = (x$2 = w.skipped, x$3 = (new $Int64(0, n$1)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); + w.suffixOff = w.suffixOff + (n$1) >> 0; + if (w.suffixOff === w.N) { + w.suffixOff = 0; + } + } + _tmp = lenp; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + $ptrType(prefixSuffixSaver).prototype.fill = function fill(dst, p) { + var add, dst, p, pRemain, remain, w; + pRemain = sliceType$4.nil; + w = this; + remain = w.N - dst.$get().$length >> 0; + if (remain > 0) { + add = minInt(p.$length, remain); + dst.$set($appendSlice(dst.$get(), $subslice(p, 0, add))); + p = $subslice(p, add); + } + pRemain = p; + return pRemain; + }; + $ptrType(prefixSuffixSaver).prototype.Bytes = function Bytes() { + var buf, w, x; + w = this; + if (w.suffix === sliceType$4.nil) { + return w.prefix; + } + if ((x = w.skipped, (x.$high === 0 && x.$low === 0))) { + return $appendSlice(w.prefix, w.suffix); + } + buf = new bytes.Buffer.ptr(sliceType$4.nil, 0, 0); + buf.Grow((w.prefix.$length + w.suffix.$length >> 0) + 50 >> 0); + buf.Write(w.prefix); + buf.WriteString("\n... omitting "); + buf.WriteString(strconv.FormatInt(w.skipped, 10)); + buf.WriteString(" bytes ...\n"); + buf.Write($subslice(w.suffix, w.suffixOff)); + buf.Write($subslice(w.suffix, 0, w.suffixOff)); + return buf.Bytes(); + }; + minInt = function minInt$1(a, b) { + var a, b; + if (a < b) { + return a; + } + return b; + }; + $ptrType(Cmd).prototype.environ = function environ() { + var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, absErr, c, dedupErr, env, err, pwd, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + err = $ifaceNil; + env = c.Env; + /* */ if (env === sliceType.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (env === sliceType.nil) { */ case 1: + _r = execenv.Default(c.SysProcAttr); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + env = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4: + _r$1 = os.Environ(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + env = _r$1; + /* } */ case 5: + /* */ if (!(c.Dir === "")) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(c.Dir === "")) { */ case 7: + _1 = "js"; + /* */ if (_1 === ("windows") || _1 === ("plan9")) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === ("windows") || _1 === ("plan9")) { */ case 10: + $s = 12; continue; + /* } else { */ case 11: + _r$2 = filepath.Abs(c.Dir); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + pwd = _tuple$1[0]; + absErr = _tuple$1[1]; + if ($interfaceIsEqual(absErr, $ifaceNil)) { + env = $append(env, "PWD=" + pwd); + } else if ($interfaceIsEqual(err, $ifaceNil)) { + err = absErr; + } + /* } */ case 12: + case 9: + /* } */ case 8: + /* } */ case 2: + _r$3 = dedupEnv(env); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$2 = _r$3; + env = _tuple$2[0]; + dedupErr = _tuple$2[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + err = dedupErr; + } + _r$4 = addCriticalEnv(env); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = [_r$4, err]; + $s = 16; case 16: return $24r; + /* */ } return; } var $f = {$blk: environ, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, absErr, c, dedupErr, env, err, pwd, $s};return $f; + }; + $ptrType(Cmd).prototype.Environ = function Environ() { + var {_r, _tuple, c, env, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + _r = c.environ(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + env = _tuple[0]; + $s = -1; return env; + /* */ } return; } var $f = {$blk: Environ, $c: true, $r, _r, _tuple, c, env, $s};return $f; + }; + dedupEnv = function dedupEnv$1(env) { + var {$24r, _r, env, $s, $r, $c} = $restore(this, {env}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = dedupEnvCase(false, false, env); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: dedupEnv$1, $c: true, $r, $24r, _r, env, $s};return $f; + }; + dedupEnvCase = function dedupEnvCase$1(caseInsensitive, nulOK, env) { + var {_entry, _key, _q, _r, _tmp, _tmp$1, caseInsensitive, env, err, i, i$1, j, k, kv, n, nulOK, out, saw, x, x$1, $s, $r, $c} = $restore(this, {caseInsensitive, nulOK, env}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + out = $makeSlice(sliceType, 0, env.$length); + saw = (x = env.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + n = env.$length; + /* while (true) { */ case 1: + /* if (!(n > 0)) { break; } */ if(!(n > 0)) { $s = 2; continue; } + kv = (x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= env.$length) ? ($throwRuntimeError("index out of range"), undefined) : env.$array[env.$offset + x$1])); + if (!nulOK && !((strings.IndexByte(kv, 0) === -1))) { + err = errors.New("exec: environment variable contains NUL"); + n = n - (1) >> 0; + /* continue; */ $s = 1; continue; + } + i = strings.Index(kv, "="); + if (i === 0) { + i = strings.Index($substring(kv, 1), "=") + 1 >> 0; + } + if (i < 0) { + if (!(kv === "")) { + out = $append(out, kv); + } + n = n - (1) >> 0; + /* continue; */ $s = 1; continue; + } + k = $substring(kv, 0, i); + /* */ if (caseInsensitive) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (caseInsensitive) { */ case 3: + _r = strings.ToLower(k); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + k = _r; + /* } */ case 4: + if ((_entry = $mapIndex(saw,$String.keyFor(k)), _entry !== undefined ? _entry.v : false)) { + n = n - (1) >> 0; + /* continue; */ $s = 1; continue; + } + _key = k; (saw || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); + out = $append(out, kv); + n = n - (1) >> 0; + $s = 1; continue; + case 2: + i$1 = 0; + while (true) { + if (!(i$1 < (_q = out.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")))) { break; } + j = (out.$length - i$1 >> 0) - 1 >> 0; + _tmp = ((j < 0 || j >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + j]); + _tmp$1 = ((i$1 < 0 || i$1 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$1]); + ((i$1 < 0 || i$1 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$1] = _tmp); + ((j < 0 || j >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + j] = _tmp$1); + i$1 = i$1 + (1) >> 0; + } + $s = -1; return [out, err]; + /* */ } return; } var $f = {$blk: dedupEnvCase$1, $c: true, $r, _entry, _key, _q, _r, _tmp, _tmp$1, caseInsensitive, env, err, i, i$1, j, k, kv, n, nulOK, out, saw, x, x$1, $s};return $f; + }; + addCriticalEnv = function addCriticalEnv$1(env) { + var {$24r, _i, _r, _ref, _tuple, env, k, kv, ok, $s, $r, $c} = $restore(this, {env}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (true) { + $s = -1; return env; + } + _ref = env; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + kv = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple = strings.Cut(kv, "="); + k = _tuple[0]; + ok = _tuple[2]; + if (!ok) { + _i++; + continue; + } + if (strings.EqualFold(k, "SYSTEMROOT")) { + $s = -1; return env; + } + _i++; + } + _r = os.Getenv("SYSTEMROOT"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = $append(env, "SYSTEMROOT=" + _r); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: addCriticalEnv$1, $c: true, $r, $24r, _i, _r, _ref, _tuple, env, k, kv, ok, $s};return $f; + }; + ptrType$10.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; + wrappedError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$6.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "argv", name: "argv", pkg: "os/exec", typ: $funcType([], [sliceType], false)}, {prop: "stdin", name: "stdin", pkg: "os/exec", typ: $funcType([], [ptrType$1, $error], false)}, {prop: "stdout", name: "stdout", pkg: "os/exec", typ: $funcType([], [ptrType$1, $error], false)}, {prop: "stderr", name: "stderr", pkg: "os/exec", typ: $funcType([], [ptrType$1, $error], false)}, {prop: "writerDescriptor", name: "writerDescriptor", pkg: "os/exec", typ: $funcType([io.Writer], [ptrType$1, $error], false)}, {prop: "closeDescriptors", name: "closeDescriptors", pkg: "os/exec", typ: $funcType([sliceType$2], [], false)}, {prop: "Run", name: "Run", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Start", name: "Start", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Wait", name: "Wait", pkg: "", typ: $funcType([], [$error], false)}, {prop: "watchCtx", name: "watchCtx", pkg: "os/exec", typ: $funcType([], [chanType], false)}, {prop: "Output", name: "Output", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "CombinedOutput", name: "CombinedOutput", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "StdinPipe", name: "StdinPipe", pkg: "", typ: $funcType([], [io.WriteCloser, $error], false)}, {prop: "StdoutPipe", name: "StdoutPipe", pkg: "", typ: $funcType([], [io.ReadCloser, $error], false)}, {prop: "StderrPipe", name: "StderrPipe", pkg: "", typ: $funcType([], [io.ReadCloser, $error], false)}, {prop: "environ", name: "environ", pkg: "os/exec", typ: $funcType([], [sliceType, $error], false)}, {prop: "Environ", name: "Environ", pkg: "", typ: $funcType([], [sliceType], false)}]; + ptrType$7.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$11.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "close", name: "close", pkg: "os/exec", typ: $funcType([], [], false)}]; + ptrType$8.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$4], [$Int, $error], false)}, {prop: "fill", name: "fill", pkg: "os/exec", typ: $funcType([ptrType$9, sliceType$4], [sliceType$4], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$4], false)}]; + Error.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + wrappedError.init("os/exec", [{prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); + Cmd.init("os/exec", [{prop: "Path", name: "Path", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Args", name: "Args", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Env", name: "Env", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Stdin", name: "Stdin", embedded: false, exported: true, typ: io.Reader, tag: ""}, {prop: "Stdout", name: "Stdout", embedded: false, exported: true, typ: io.Writer, tag: ""}, {prop: "Stderr", name: "Stderr", embedded: false, exported: true, typ: io.Writer, tag: ""}, {prop: "ExtraFiles", name: "ExtraFiles", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "SysProcAttr", name: "SysProcAttr", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Process", name: "Process", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "ProcessState", name: "ProcessState", embedded: false, exported: true, typ: ptrType$4, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}, {prop: "childFiles", name: "childFiles", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "closeAfterStart", name: "closeAfterStart", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "closeAfterWait", name: "closeAfterWait", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "goroutine", name: "goroutine", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "goroutineErrs", name: "goroutineErrs", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "ctxErr", name: "ctxErr", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "lookPathErr", name: "lookPathErr", embedded: false, exported: false, typ: $error, tag: ""}]); + ExitError.init("", [{prop: "ProcessState", name: "ProcessState", embedded: true, exported: true, typ: ptrType$4, tag: ""}, {prop: "Stderr", name: "Stderr", embedded: false, exported: true, typ: sliceType$4, tag: ""}]); + closeOnce.init("os/exec", [{prop: "File", name: "File", embedded: true, exported: true, typ: ptrType$1, tag: ""}, {prop: "once", name: "once", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); + prefixSuffixSaver.init("os/exec", [{prop: "N", name: "N", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "suffix", name: "suffix", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "suffixOff", name: "suffixOff", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "skipped", name: "skipped", embedded: false, exported: false, typ: $Int64, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = context.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = execenv.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fs.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = filepath.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrNotFound = errors.New("executable file not found in $PATH"); + $pkg.ErrDot = errors.New("cannot run executable found relative to current directory"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/goroot"] = (function() { + var $pkg = {}, $init, os, exec, filepath, strings, sync, gccgoDirs, gccgoSearch, IsStandardPackage; + os = $packages["os"]; + exec = $packages["os/exec"]; + filepath = $packages["path/filepath"]; + strings = $packages["strings"]; + sync = $packages["sync"]; + gccgoDirs = $newType(0, $kindStruct, "goroot.gccgoDirs", true, "internal/goroot", false, function(once_, dirs_) { + this.$val = this; + if (arguments.length === 0) { + this.once = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); + this.dirs = sliceType.nil; + return; + } + this.once = once_; + this.dirs = dirs_; + }); + $pkg.gccgoDirs = gccgoDirs; + $pkg.$finishSetup = function() { + IsStandardPackage = function IsStandardPackage$1(goroot, compiler, path) { + var {$24r, _1, _r, _r$1, _tuple, compiler, dir, err, goroot, path, $s, $r, $c} = $restore(this, {goroot, compiler, path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _1 = compiler; + /* */ if (_1 === ("gc")) { $s = 2; continue; } + /* */ if (_1 === ("gccgo")) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_1 === ("gc")) { */ case 2: + dir = filepath.Join(new sliceType([goroot, "src", path])); + _r = os.Stat(dir); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + $s = -1; return $interfaceIsEqual(err, $ifaceNil); + /* } else if (_1 === ("gccgo")) { */ case 3: + _r$1 = gccgoSearch.isStandard(path); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 8; case 8: return $24r; + /* } else { */ case 4: + $panic(new $String("unknown compiler " + compiler)); + /* } */ case 5: + case 1: + $s = -1; return false; + /* */ } return; } var $f = {$blk: IsStandardPackage$1, $c: true, $r, $24r, _1, _r, _r$1, _tuple, compiler, dir, err, goroot, path, $s};return $f; + }; + $pkg.IsStandardPackage = IsStandardPackage; + $ptrType(gccgoDirs).prototype.init = function init() { + var {_i, _i$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, _v$2, allDirs, bin, dir, dirEntry, dirs, dirsEntries, err, err$1, err$2, fi, fi$1, gccgo, gd, goDir, lastDirs, machine, machineB, version, versionB, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + gd = this; + _r = os.Getenv("GCCGO"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + gccgo = _r; + if (gccgo === "") { + gccgo = "gccgo"; + } + _tuple = exec.LookPath(gccgo); + bin = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return; + } + _r$1 = exec.Command(bin, new sliceType(["-print-search-dirs"])).Output(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + allDirs = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return; + } + _r$2 = exec.Command(bin, new sliceType(["-dumpversion"])).Output(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + versionB = _tuple$2[0]; + err = _tuple$2[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return; + } + _r$3 = strings.TrimSpace(($bytesToString(versionB))); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + version = _r$3; + _r$4 = exec.Command(bin, new sliceType(["-dumpmachine"])).Output(); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$3 = _r$4; + machineB = _tuple$3[0]; + err = _tuple$3[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return; + } + _r$5 = strings.TrimSpace(($bytesToString(machineB))); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + machine = _r$5; + dirsEntries = strings.Split(($bytesToString(allDirs)), "\n"); + dirs = sliceType.nil; + _ref = dirsEntries; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + dirEntry = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (strings.HasPrefix(dirEntry, "libraries: =")) { + dirs = filepath.SplitList(strings.TrimPrefix(dirEntry, "libraries: =")); + break; + } + _i++; + } + if (dirs.$length === 0) { + $s = -1; return; + } + lastDirs = sliceType.nil; + _ref$1 = dirs; + _i$1 = 0; + /* while (true) { */ case 7: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } + dir = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + goDir = filepath.Join(new sliceType([dir, "go", version])); + _r$6 = os.Stat(goDir); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$4 = _r$6; + fi = _tuple$4[0]; + err$1 = _tuple$4[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { _v = false; $s = 12; continue s; } + _r$7 = fi.IsDir(); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v = _r$7; case 12: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + gd.dirs = $append(gd.dirs, goDir); + goDir = filepath.Join(new sliceType([goDir, machine])); + _r$8 = os.Stat(goDir); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$5 = _r$8; + fi = _tuple$5[0]; + err$1 = _tuple$5[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { _v$1 = false; $s = 17; continue s; } + _r$9 = fi.IsDir(); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _v$1 = _r$9; case 17: + /* */ if (_v$1) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (_v$1) { */ case 15: + gd.dirs = $append(gd.dirs, goDir); + /* } */ case 16: + /* } */ case 11: + _r$10 = os.Stat(dir); /* */ $s = 19; case 19: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$6 = _r$10; + fi$1 = _tuple$6[0]; + err$2 = _tuple$6[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { _v$2 = false; $s = 22; continue s; } + _r$11 = fi$1.IsDir(); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _v$2 = _r$11; case 22: + /* */ if (_v$2) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_v$2) { */ case 20: + lastDirs = $append(lastDirs, dir); + /* } */ case 21: + _i$1++; + $s = 7; continue; + case 8: + gd.dirs = $appendSlice(gd.dirs, lastDirs); + $s = -1; return; + /* */ } return; } var $f = {$blk: init, $c: true, $r, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, _v$2, allDirs, bin, dir, dirEntry, dirs, dirsEntries, err, err$1, err$2, fi, fi$1, gccgo, gd, goDir, lastDirs, machine, machineB, version, versionB, $s};return $f; + }; + $ptrType(gccgoDirs).prototype.isStandard = function isStandard(path) { + var {_i, _r, _r$1, _ref, _tuple, _v, dir, err, fi, full, gd, i, path, $s, $r, $c} = $restore(this, {path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + gd = this; + i = strings.Index(path, "/"); + if (i < 0) { + i = path.length; + } + if (strings.Contains($substring(path, 0, i), ".")) { + $s = -1; return false; + } + if (path === "unsafe") { + $s = -1; return true; + } + $r = gd.once.Do($methodVal(gd, "init")); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (gd.dirs === sliceType.nil) { + $s = -1; return true; + } + _ref = gd.dirs; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + dir = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + full = filepath.Join(new sliceType([dir, path])) + ".gox"; + _r = os.Stat(full); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + fi = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { _v = false; $s = 7; continue s; } + _r$1 = fi.IsDir(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = !_r$1; case 7: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_v) { */ case 5: + $s = -1; return true; + /* } */ case 6: + _i++; + $s = 2; continue; + case 3: + $s = -1; return false; + /* */ } return; } var $f = {$blk: isStandard, $c: true, $r, _i, _r, _r$1, _ref, _tuple, _v, dir, err, fi, full, gd, i, path, $s};return $f; + }; + ptrType.methods = [{prop: "init", name: "init", pkg: "internal/goroot", typ: $funcType([], [], false)}, {prop: "isStandard", name: "isStandard", pkg: "internal/goroot", typ: $funcType([$String], [$Bool], false)}]; + gccgoDirs.init("internal/goroot", [{prop: "once", name: "once", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "dirs", name: "dirs", embedded: false, exported: false, typ: sliceType, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = os.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = exec.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = filepath.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + gccgoSearch = new gccgoDirs.ptr(new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), sliceType.nil); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/goversion"] = (function() { + var $pkg = {}, $init; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/build"] = (function() { + var $pkg = {}, $init, bufio, bytes, errors, fmt, ast, constraint, doc, parser, token, buildcfg, goroot, goversion, io, fs, os, exec, path, filepath, runtime, sort, strconv, strings, unicode, utf8, importReader, Context, ImportMode, Package, NoGoError, MultiplePackageError, fileInfo, fileImport, fileEmbed, defaultToolTags, defaultReleaseTags, dummyPkg, dummyPkg$24ptr, cgoEnabled, knownOS, unixOS, knownArch, bom, errSyntax, errNUL, goEmbed, _r, errNoModules, slashSlash, slashStar, starSlash, newline, bSlashSlash, bSlashStar, bPlusBuild, goBuildComment, errGoBuildWithoutBuild, errMultipleGoBuild, binaryOnlyComment, newImportReader, isIdent, readComments, readGoInfo, parseGoEmbed, getToolDir, hasSubdir, defaultGOPATH, defaultContext, envOr, nameExt, fileListForExt, equal, hasGoFiles, findImportComment, skipSpaceOrComment, parseWord, cleanDecls, isGoBuildComment, parseFileHeader, expandSrcDir, safeCgoName, splitQuoted, IsLocalImport; + bufio = $packages["bufio"]; + bytes = $packages["bytes"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + constraint = $packages["go/build/constraint"]; + doc = $packages["go/doc"]; + parser = $packages["go/parser"]; + token = $packages["go/token"]; + buildcfg = $packages["internal/buildcfg"]; + goroot = $packages["internal/goroot"]; + goversion = $packages["internal/goversion"]; + io = $packages["io"]; + fs = $packages["io/fs"]; + os = $packages["os"]; + exec = $packages["os/exec"]; + path = $packages["path"]; + filepath = $packages["path/filepath"]; + runtime = $packages["runtime"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + importReader = $newType(0, $kindStruct, "build.importReader", true, "go/build", false, function(b_, buf_, peek_, err_, eof_, nerr_, pos_) { + this.$val = this; + if (arguments.length === 0) { + this.b = ptrType.nil; + this.buf = sliceType$1.nil; + this.peek = 0; + this.err = $ifaceNil; + this.eof = false; + this.nerr = 0; + this.pos = new token.Position.ptr("", 0, 0, 0); + return; + } + this.b = b_; + this.buf = buf_; + this.peek = peek_; + this.err = err_; + this.eof = eof_; + this.nerr = nerr_; + this.pos = pos_; + }); + Context = $newType(0, $kindStruct, "build.Context", true, "go/build", true, function(GOARCH_, GOOS_, GOROOT_, GOPATH_, Dir_, CgoEnabled_, UseAllFiles_, Compiler_, BuildTags_, ToolTags_, ReleaseTags_, InstallSuffix_, JoinPath_, SplitPathList_, IsAbsPath_, IsDir_, HasSubdir_, ReadDir_, OpenFile_) { + this.$val = this; + if (arguments.length === 0) { + this.GOARCH = ""; + this.GOOS = ""; + this.GOROOT = ""; + this.GOPATH = ""; + this.Dir = ""; + this.CgoEnabled = false; + this.UseAllFiles = false; + this.Compiler = ""; + this.BuildTags = sliceType.nil; + this.ToolTags = sliceType.nil; + this.ReleaseTags = sliceType.nil; + this.InstallSuffix = ""; + this.JoinPath = $throwNilPointerError; + this.SplitPathList = $throwNilPointerError; + this.IsAbsPath = $throwNilPointerError; + this.IsDir = $throwNilPointerError; + this.HasSubdir = $throwNilPointerError; + this.ReadDir = $throwNilPointerError; + this.OpenFile = $throwNilPointerError; + return; + } + this.GOARCH = GOARCH_; + this.GOOS = GOOS_; + this.GOROOT = GOROOT_; + this.GOPATH = GOPATH_; + this.Dir = Dir_; + this.CgoEnabled = CgoEnabled_; + this.UseAllFiles = UseAllFiles_; + this.Compiler = Compiler_; + this.BuildTags = BuildTags_; + this.ToolTags = ToolTags_; + this.ReleaseTags = ReleaseTags_; + this.InstallSuffix = InstallSuffix_; + this.JoinPath = JoinPath_; + this.SplitPathList = SplitPathList_; + this.IsAbsPath = IsAbsPath_; + this.IsDir = IsDir_; + this.HasSubdir = HasSubdir_; + this.ReadDir = ReadDir_; + this.OpenFile = OpenFile_; + }); + ImportMode = $newType(4, $kindUint, "build.ImportMode", true, "go/build", true, null); + Package = $newType(0, $kindStruct, "build.Package", true, "go/build", true, function(Dir_, Name_, ImportComment_, Doc_, ImportPath_, Root_, SrcRoot_, PkgRoot_, PkgTargetRoot_, BinDir_, Goroot_, PkgObj_, AllTags_, ConflictDir_, BinaryOnly_, GoFiles_, CgoFiles_, IgnoredGoFiles_, InvalidGoFiles_, IgnoredOtherFiles_, CFiles_, CXXFiles_, MFiles_, HFiles_, FFiles_, SFiles_, SwigFiles_, SwigCXXFiles_, SysoFiles_, CgoCFLAGS_, CgoCPPFLAGS_, CgoCXXFLAGS_, CgoFFLAGS_, CgoLDFLAGS_, CgoPkgConfig_, TestGoFiles_, XTestGoFiles_, Imports_, ImportPos_, TestImports_, TestImportPos_, XTestImports_, XTestImportPos_, EmbedPatterns_, EmbedPatternPos_, TestEmbedPatterns_, TestEmbedPatternPos_, XTestEmbedPatterns_, XTestEmbedPatternPos_) { + this.$val = this; + if (arguments.length === 0) { + this.Dir = ""; + this.Name = ""; + this.ImportComment = ""; + this.Doc = ""; + this.ImportPath = ""; + this.Root = ""; + this.SrcRoot = ""; + this.PkgRoot = ""; + this.PkgTargetRoot = ""; + this.BinDir = ""; + this.Goroot = false; + this.PkgObj = ""; + this.AllTags = sliceType.nil; + this.ConflictDir = ""; + this.BinaryOnly = false; + this.GoFiles = sliceType.nil; + this.CgoFiles = sliceType.nil; + this.IgnoredGoFiles = sliceType.nil; + this.InvalidGoFiles = sliceType.nil; + this.IgnoredOtherFiles = sliceType.nil; + this.CFiles = sliceType.nil; + this.CXXFiles = sliceType.nil; + this.MFiles = sliceType.nil; + this.HFiles = sliceType.nil; + this.FFiles = sliceType.nil; + this.SFiles = sliceType.nil; + this.SwigFiles = sliceType.nil; + this.SwigCXXFiles = sliceType.nil; + this.SysoFiles = sliceType.nil; + this.CgoCFLAGS = sliceType.nil; + this.CgoCPPFLAGS = sliceType.nil; + this.CgoCXXFLAGS = sliceType.nil; + this.CgoFFLAGS = sliceType.nil; + this.CgoLDFLAGS = sliceType.nil; + this.CgoPkgConfig = sliceType.nil; + this.TestGoFiles = sliceType.nil; + this.XTestGoFiles = sliceType.nil; + this.Imports = sliceType.nil; + this.ImportPos = false; + this.TestImports = sliceType.nil; + this.TestImportPos = false; + this.XTestImports = sliceType.nil; + this.XTestImportPos = false; + this.EmbedPatterns = sliceType.nil; + this.EmbedPatternPos = false; + this.TestEmbedPatterns = sliceType.nil; + this.TestEmbedPatternPos = false; + this.XTestEmbedPatterns = sliceType.nil; + this.XTestEmbedPatternPos = false; + return; + } + this.Dir = Dir_; + this.Name = Name_; + this.ImportComment = ImportComment_; + this.Doc = Doc_; + this.ImportPath = ImportPath_; + this.Root = Root_; + this.SrcRoot = SrcRoot_; + this.PkgRoot = PkgRoot_; + this.PkgTargetRoot = PkgTargetRoot_; + this.BinDir = BinDir_; + this.Goroot = Goroot_; + this.PkgObj = PkgObj_; + this.AllTags = AllTags_; + this.ConflictDir = ConflictDir_; + this.BinaryOnly = BinaryOnly_; + this.GoFiles = GoFiles_; + this.CgoFiles = CgoFiles_; + this.IgnoredGoFiles = IgnoredGoFiles_; + this.InvalidGoFiles = InvalidGoFiles_; + this.IgnoredOtherFiles = IgnoredOtherFiles_; + this.CFiles = CFiles_; + this.CXXFiles = CXXFiles_; + this.MFiles = MFiles_; + this.HFiles = HFiles_; + this.FFiles = FFiles_; + this.SFiles = SFiles_; + this.SwigFiles = SwigFiles_; + this.SwigCXXFiles = SwigCXXFiles_; + this.SysoFiles = SysoFiles_; + this.CgoCFLAGS = CgoCFLAGS_; + this.CgoCPPFLAGS = CgoCPPFLAGS_; + this.CgoCXXFLAGS = CgoCXXFLAGS_; + this.CgoFFLAGS = CgoFFLAGS_; + this.CgoLDFLAGS = CgoLDFLAGS_; + this.CgoPkgConfig = CgoPkgConfig_; + this.TestGoFiles = TestGoFiles_; + this.XTestGoFiles = XTestGoFiles_; + this.Imports = Imports_; + this.ImportPos = ImportPos_; + this.TestImports = TestImports_; + this.TestImportPos = TestImportPos_; + this.XTestImports = XTestImports_; + this.XTestImportPos = XTestImportPos_; + this.EmbedPatterns = EmbedPatterns_; + this.EmbedPatternPos = EmbedPatternPos_; + this.TestEmbedPatterns = TestEmbedPatterns_; + this.TestEmbedPatternPos = TestEmbedPatternPos_; + this.XTestEmbedPatterns = XTestEmbedPatterns_; + this.XTestEmbedPatternPos = XTestEmbedPatternPos_; + }); + NoGoError = $newType(0, $kindStruct, "build.NoGoError", true, "go/build", true, function(Dir_) { + this.$val = this; + if (arguments.length === 0) { + this.Dir = ""; + return; + } + this.Dir = Dir_; + }); + MultiplePackageError = $newType(0, $kindStruct, "build.MultiplePackageError", true, "go/build", true, function(Dir_, Packages_, Files_) { + this.$val = this; + if (arguments.length === 0) { + this.Dir = ""; + this.Packages = sliceType.nil; + this.Files = sliceType.nil; + return; + } + this.Dir = Dir_; + this.Packages = Packages_; + this.Files = Files_; + }); + fileInfo = $newType(0, $kindStruct, "build.fileInfo", true, "go/build", false, function(name_, header_, fset_, parsed_, parseErr_, imports_, embeds_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.header = sliceType$1.nil; + this.fset = ptrType$1.nil; + this.parsed = ptrType$8.nil; + this.parseErr = $ifaceNil; + this.imports = sliceType$6.nil; + this.embeds = sliceType$3.nil; + return; + } + this.name = name_; + this.header = header_; + this.fset = fset_; + this.parsed = parsed_; + this.parseErr = parseErr_; + this.imports = imports_; + this.embeds = embeds_; + }); + fileImport = $newType(0, $kindStruct, "build.fileImport", true, "go/build", false, function(path_, pos_, doc_) { + this.$val = this; + if (arguments.length === 0) { + this.path = ""; + this.pos = 0; + this.doc = ptrType$4.nil; + return; + } + this.path = path_; + this.pos = pos_; + this.doc = doc_; + }); + fileEmbed = $newType(0, $kindStruct, "build.fileEmbed", true, "go/build", false, function(pattern_, pos_) { + this.$val = this; + if (arguments.length === 0) { + this.pattern = ""; + this.pos = new token.Position.ptr("", 0, 0, 0); + return; + } + this.pattern = pattern_; + this.pos = pos_; + }); + $pkg.importReader = importReader; + $pkg.Context = Context; + $pkg.ImportMode = ImportMode; + $pkg.Package = Package; + $pkg.NoGoError = NoGoError; + $pkg.MultiplePackageError = MultiplePackageError; + $pkg.fileInfo = fileInfo; + $pkg.fileImport = fileImport; + $pkg.fileEmbed = fileEmbed; + $pkg.$finishSetup = function() { + newImportReader = function newImportReader$1(name, r) { + var {_r$1, _r$2, _tuple, b, err, leadingBytes, name, r, $s, $r, $c} = $restore(this, {name, r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = bufio.NewReader(r); + _r$1 = b.Peek(3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + leadingBytes = _tuple[0]; + err = _tuple[1]; + /* */ if ($interfaceIsEqual(err, $ifaceNil) && bytes.Equal(leadingBytes, bom)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($interfaceIsEqual(err, $ifaceNil) && bytes.Equal(leadingBytes, bom)) { */ case 2: + _r$2 = b.Discard(3); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 3: + $s = -1; return new importReader.ptr(b, sliceType$1.nil, 0, $ifaceNil, false, 0, $clone(new token.Position.ptr(name, 0, 1, 1), token.Position)); + /* */ } return; } var $f = {$blk: newImportReader$1, $c: true, $r, _r$1, _r$2, _tuple, b, err, leadingBytes, name, r, $s};return $f; + }; + isIdent = function isIdent$1(c) { + var c; + return 65 <= c && c <= 90 || 97 <= c && c <= 122 || 48 <= c && c <= 57 || (c === 95) || c >= 128; + }; + $ptrType(importReader).prototype.syntaxError = function syntaxError() { + var r; + r = this; + if ($interfaceIsEqual(r.err, $ifaceNil)) { + r.err = errSyntax; + } + }; + $ptrType(importReader).prototype.readByte = function readByte() { + var {_r$1, _tuple, c, err, r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r$1 = r.b.ReadByte(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + c = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + r.buf = $append(r.buf, c); + if (c === 0) { + err = errNUL; + } + } + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, io.EOF)) { + r.eof = true; + } else if ($interfaceIsEqual(r.err, $ifaceNil)) { + r.err = err; + } + c = 0; + } + $s = -1; return c; + /* */ } return; } var $f = {$blk: readByte, $c: true, $r, _r$1, _tuple, c, err, r, $s};return $f; + }; + $ptrType(importReader).prototype.readByteNoBuf = function readByteNoBuf() { + var {_r$1, _tuple, c, err, r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + c = 0; + err = $ifaceNil; + /* */ if (r.buf.$length > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (r.buf.$length > 0) { */ case 1: + c = (x = r.buf, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + r.buf = $subslice(r.buf, 1); + $s = 3; continue; + /* } else { */ case 2: + _r$1 = r.b.ReadByte(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + c = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil) && (c === 0)) { + err = errNUL; + } + /* } */ case 3: + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, io.EOF)) { + r.eof = true; + } else if ($interfaceIsEqual(r.err, $ifaceNil)) { + r.err = err; + } + $s = -1; return 0; + } + r.pos.Offset = r.pos.Offset + (1) >> 0; + if (c === 10) { + r.pos.Line = r.pos.Line + (1) >> 0; + r.pos.Column = 1; + } else { + r.pos.Column = r.pos.Column + (1) >> 0; + } + $s = -1; return c; + /* */ } return; } var $f = {$blk: readByteNoBuf, $c: true, $r, _r$1, _tuple, c, err, r, x, $s};return $f; + }; + $ptrType(importReader).prototype.peekByte = function peekByte(skipSpace) { + var {_1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, c, c1, r, skipSpace, $s, $r, $c} = $restore(this, {skipSpace}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + if (!($interfaceIsEqual(r.err, $ifaceNil))) { + r.nerr = r.nerr + (1) >> 0; + if (r.nerr > 10000) { + $panic(new $String("go/build: import reader looping")); + } + $s = -1; return 0; + } + c = r.peek; + /* */ if (c === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (c === 0) { */ case 1: + _r$1 = r.readByte(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + c = _r$1; + /* } */ case 2: + /* while (true) { */ case 4: + /* if (!($interfaceIsEqual(r.err, $ifaceNil) && !r.eof)) { break; } */ if(!($interfaceIsEqual(r.err, $ifaceNil) && !r.eof)) { $s = 5; continue; } + /* */ if (skipSpace) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (skipSpace) { */ case 6: + _1 = c; + /* */ if ((_1 === (32)) || (_1 === (12)) || (_1 === (9)) || (_1 === (13)) || (_1 === (10)) || (_1 === (59))) { $s = 9; continue; } + /* */ if (_1 === (47)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((_1 === (32)) || (_1 === (12)) || (_1 === (9)) || (_1 === (13)) || (_1 === (10)) || (_1 === (59))) { */ case 9: + _r$2 = r.readByte(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + c = _r$2; + /* continue; */ $s = 4; continue; + $s = 11; continue; + /* } else if (_1 === (47)) { */ case 10: + _r$3 = r.readByte(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + c = _r$3; + /* */ if (c === 47) { $s = 14; continue; } + /* */ if (c === 42) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (c === 47) { */ case 14: + /* while (true) { */ case 18: + /* if (!(!((c === 10)) && $interfaceIsEqual(r.err, $ifaceNil) && !r.eof)) { break; } */ if(!(!((c === 10)) && $interfaceIsEqual(r.err, $ifaceNil) && !r.eof)) { $s = 19; continue; } + _r$4 = r.readByte(); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + c = _r$4; + $s = 18; continue; + case 19: + $s = 17; continue; + /* } else if (c === 42) { */ case 15: + c1 = 0; + /* while (true) { */ case 21: + /* if (!((!((c === 42)) || !((c1 === 47))) && $interfaceIsEqual(r.err, $ifaceNil))) { break; } */ if(!((!((c === 42)) || !((c1 === 47))) && $interfaceIsEqual(r.err, $ifaceNil))) { $s = 22; continue; } + if (r.eof) { + r.syntaxError(); + } + _tmp = c1; + _r$5 = r.readByte(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tmp$1 = _r$5; + c = _tmp; + c1 = _tmp$1; + $s = 21; continue; + case 22: + $s = 17; continue; + /* } else { */ case 16: + r.syntaxError(); + /* } */ case 17: + _r$6 = r.readByte(); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + c = _r$6; + /* continue; */ $s = 4; continue; + /* } */ case 11: + case 8: + /* } */ case 7: + /* break; */ $s = 5; continue; + case 5: + r.peek = c; + $s = -1; return r.peek; + /* */ } return; } var $f = {$blk: peekByte, $c: true, $r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, c, c1, r, skipSpace, $s};return $f; + }; + $ptrType(importReader).prototype.nextByte = function nextByte(skipSpace) { + var {_r$1, c, r, skipSpace, $s, $r, $c} = $restore(this, {skipSpace}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r$1 = r.peekByte(skipSpace); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + c = _r$1; + r.peek = 0; + $s = -1; return c; + /* */ } return; } var $f = {$blk: nextByte, $c: true, $r, _r$1, c, r, skipSpace, $s};return $f; + }; + $ptrType(importReader).prototype.findEmbed = function findEmbed(first) { + var {_1, _2, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, c, c1, first, i, r, startLine, $s, $r, $c} = $restore(this, {first}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + startLine = !first; + c = 0; + /* while (true) { */ case 1: + /* if (!($interfaceIsEqual(r.err, $ifaceNil) && !r.eof)) { break; } */ if(!($interfaceIsEqual(r.err, $ifaceNil) && !r.eof)) { $s = 2; continue; } + _r$1 = r.readByteNoBuf(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + c = _r$1; + /* Reswitch: */ case 4: + _1 = c; + /* */ if (_1 === (10)) { $s = 6; continue; } + /* */ if ((_1 === (32)) || (_1 === (9))) { $s = 7; continue; } + /* */ if (_1 === (34)) { $s = 8; continue; } + /* */ if (_1 === (96)) { $s = 9; continue; } + /* */ if (_1 === (39)) { $s = 10; continue; } + /* */ if (_1 === (47)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_1 === (10)) { */ case 6: + startLine = true; + $s = 13; continue; + /* } else if ((_1 === (32)) || (_1 === (9))) { */ case 7: + $s = 13; continue; + /* } else if (_1 === (34)) { */ case 8: + startLine = false; + /* while (true) { */ case 14: + /* if (!($interfaceIsEqual(r.err, $ifaceNil))) { break; } */ if(!($interfaceIsEqual(r.err, $ifaceNil))) { $s = 15; continue; } + if (r.eof) { + r.syntaxError(); + } + _r$2 = r.readByteNoBuf(); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + c = _r$2; + /* */ if (c === 92) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (c === 92) { */ case 17: + _r$3 = r.readByteNoBuf(); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + if (!($interfaceIsEqual(r.err, $ifaceNil))) { + r.syntaxError(); + $s = -1; return false; + } + /* continue; */ $s = 14; continue; + /* } */ case 18: + /* */ if (c === 34) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (c === 34) { */ case 20: + _r$4 = r.readByteNoBuf(); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + c = _r$4; + /* goto Reswitch */ $s = 4; continue; + /* } */ case 21: + $s = 14; continue; + case 15: + /* goto Reswitch */ $s = 4; continue; + $s = 13; continue; + /* } else if (_1 === (96)) { */ case 9: + startLine = false; + /* while (true) { */ case 23: + /* if (!($interfaceIsEqual(r.err, $ifaceNil))) { break; } */ if(!($interfaceIsEqual(r.err, $ifaceNil))) { $s = 24; continue; } + if (r.eof) { + r.syntaxError(); + } + _r$5 = r.readByteNoBuf(); /* */ $s = 25; case 25: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + c = _r$5; + /* */ if (c === 96) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (c === 96) { */ case 26: + _r$6 = r.readByteNoBuf(); /* */ $s = 28; case 28: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + c = _r$6; + /* goto Reswitch */ $s = 4; continue; + /* } */ case 27: + $s = 23; continue; + case 24: + $s = 13; continue; + /* } else if (_1 === (39)) { */ case 10: + startLine = false; + /* while (true) { */ case 29: + /* if (!($interfaceIsEqual(r.err, $ifaceNil))) { break; } */ if(!($interfaceIsEqual(r.err, $ifaceNil))) { $s = 30; continue; } + if (r.eof) { + r.syntaxError(); + } + _r$7 = r.readByteNoBuf(); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + c = _r$7; + /* */ if (c === 92) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (c === 92) { */ case 32: + _r$8 = r.readByteNoBuf(); /* */ $s = 34; case 34: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + if (!($interfaceIsEqual(r.err, $ifaceNil))) { + r.syntaxError(); + $s = -1; return false; + } + /* continue; */ $s = 29; continue; + /* } */ case 33: + /* */ if (c === 39) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (c === 39) { */ case 35: + _r$9 = r.readByteNoBuf(); /* */ $s = 37; case 37: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + c = _r$9; + /* goto Reswitch */ $s = 4; continue; + /* } */ case 36: + $s = 29; continue; + case 30: + $s = 13; continue; + /* } else if (_1 === (47)) { */ case 11: + _r$10 = r.readByteNoBuf(); /* */ $s = 38; case 38: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + c = _r$10; + _2 = c; + /* */ if (_2 === (42)) { $s = 40; continue; } + /* */ if (_2 === (47)) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (_2 === (42)) { */ case 40: + c1 = 0; + /* while (true) { */ case 44: + /* if (!((!((c === 42)) || !((c1 === 47))) && $interfaceIsEqual(r.err, $ifaceNil))) { break; } */ if(!((!((c === 42)) || !((c1 === 47))) && $interfaceIsEqual(r.err, $ifaceNil))) { $s = 45; continue; } + if (r.eof) { + r.syntaxError(); + } + _tmp = c1; + _r$11 = r.readByteNoBuf(); /* */ $s = 46; case 46: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tmp$1 = _r$11; + c = _tmp; + c1 = _tmp$1; + $s = 44; continue; + case 45: + startLine = false; + $s = 43; continue; + /* } else if (_2 === (47)) { */ case 41: + /* */ if (startLine) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (startLine) { */ case 47: + _ref = goEmbed; + _i = 0; + /* while (true) { */ case 49: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 50; continue; } + i = _i; + _r$12 = r.readByteNoBuf(); /* */ $s = 51; case 51: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + c = _r$12; + /* */ if (!((c === ((i < 0 || i >= goEmbed.$length) ? ($throwRuntimeError("index out of range"), undefined) : goEmbed.$array[goEmbed.$offset + i])))) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (!((c === ((i < 0 || i >= goEmbed.$length) ? ($throwRuntimeError("index out of range"), undefined) : goEmbed.$array[goEmbed.$offset + i])))) { */ case 52: + /* goto SkipSlashSlash */ $s = 54; continue; + /* } */ case 53: + _i++; + $s = 49; continue; + case 50: + _r$13 = r.readByteNoBuf(); /* */ $s = 55; case 55: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + c = _r$13; + if ((c === 32) || (c === 9)) { + $s = -1; return true; + } + /* } */ case 48: + /* SkipSlashSlash: */ case 54: + /* while (true) { */ case 56: + /* if (!(!((c === 10)) && $interfaceIsEqual(r.err, $ifaceNil) && !r.eof)) { break; } */ if(!(!((c === 10)) && $interfaceIsEqual(r.err, $ifaceNil) && !r.eof)) { $s = 57; continue; } + _r$14 = r.readByteNoBuf(); /* */ $s = 58; case 58: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + c = _r$14; + $s = 56; continue; + case 57: + startLine = true; + $s = 43; continue; + /* } else { */ case 42: + startLine = false; + /* goto Reswitch */ $s = 4; continue; + /* } */ case 43: + case 39: + $s = 13; continue; + /* } else { */ case 12: + startLine = false; + /* } */ case 13: + case 5: + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: findEmbed, $c: true, $r, _1, _2, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, c, c1, first, i, r, startLine, $s};return $f; + }; + $ptrType(importReader).prototype.readKeyword = function readKeyword(kw) { + var {_r$1, _r$2, _r$3, _r$4, i, kw, r, $s, $r, $c} = $restore(this, {kw}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r$1 = r.peekByte(true); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + i = 0; + /* while (true) { */ case 2: + /* if (!(i < kw.length)) { break; } */ if(!(i < kw.length)) { $s = 3; continue; } + _r$2 = r.nextByte(false); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!((_r$2 === kw.charCodeAt(i)))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((_r$2 === kw.charCodeAt(i)))) { */ case 4: + r.syntaxError(); + $s = -1; return; + /* } */ case 5: + i = i + (1) >> 0; + $s = 2; continue; + case 3: + _r$3 = r.peekByte(false); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = isIdent(_r$3); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r$4) { */ case 7: + r.syntaxError(); + /* } */ case 8: + $s = -1; return; + /* */ } return; } var $f = {$blk: readKeyword, $c: true, $r, _r$1, _r$2, _r$3, _r$4, i, kw, r, $s};return $f; + }; + $ptrType(importReader).prototype.readIdent = function readIdent() { + var {_r$1, _r$2, _r$3, c, r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r$1 = r.peekByte(true); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + c = _r$1; + if (!isIdent(c)) { + r.syntaxError(); + $s = -1; return; + } + /* while (true) { */ case 2: + _r$2 = r.peekByte(false); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = isIdent(_r$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* if (!(_r$3)) { break; } */ if(!(_r$3)) { $s = 3; continue; } + r.peek = 0; + $s = 2; continue; + case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: readIdent, $c: true, $r, _r$1, _r$2, _r$3, c, r, $s};return $f; + }; + $ptrType(importReader).prototype.readString = function readString() { + var {_1, _r$1, _r$2, _r$3, _r$4, c, r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r$1 = r.nextByte(true); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _1 = _r$1; + /* */ if (_1 === (96)) { $s = 3; continue; } + /* */ if (_1 === (34)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (96)) { */ case 3: + /* while (true) { */ case 7: + /* if (!($interfaceIsEqual(r.err, $ifaceNil))) { break; } */ if(!($interfaceIsEqual(r.err, $ifaceNil))) { $s = 8; continue; } + _r$2 = r.nextByte(false); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2 === 96) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$2 === 96) { */ case 9: + /* break; */ $s = 8; continue; + /* } */ case 10: + if (r.eof) { + r.syntaxError(); + } + $s = 7; continue; + case 8: + $s = 6; continue; + /* } else if (_1 === (34)) { */ case 4: + /* while (true) { */ case 12: + /* if (!($interfaceIsEqual(r.err, $ifaceNil))) { break; } */ if(!($interfaceIsEqual(r.err, $ifaceNil))) { $s = 13; continue; } + _r$3 = r.nextByte(false); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + c = _r$3; + if (c === 34) { + /* break; */ $s = 13; continue; + } + if (r.eof || (c === 10)) { + r.syntaxError(); + } + /* */ if (c === 92) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (c === 92) { */ case 15: + _r$4 = r.nextByte(false); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + /* } */ case 16: + $s = 12; continue; + case 13: + $s = 6; continue; + /* } else { */ case 5: + r.syntaxError(); + /* } */ case 6: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: readString, $c: true, $r, _1, _r$1, _r$2, _r$3, _r$4, c, r, $s};return $f; + }; + $ptrType(importReader).prototype.readImport = function readImport() { + var {_r$1, c, r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r$1 = r.peekByte(true); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + c = _r$1; + /* */ if (c === 46) { $s = 2; continue; } + /* */ if (isIdent(c)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (c === 46) { */ case 2: + r.peek = 0; + $s = 4; continue; + /* } else if (isIdent(c)) { */ case 3: + $r = r.readIdent(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + $r = r.readString(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: readImport, $c: true, $r, _r$1, c, r, $s};return $f; + }; + readComments = function readComments$1(f) { + var {_r$1, _r$2, f, r, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = newImportReader("", f); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + r = _r$1; + _r$2 = r.peekByte(true); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + if ($interfaceIsEqual(r.err, $ifaceNil) && !r.eof) { + r.buf = $subslice(r.buf, 0, (r.buf.$length - 1 >> 0)); + } + $s = -1; return [r.buf, r.err]; + /* */ } return; } var $f = {$blk: readComments$1, $c: true, $r, _r$1, _r$2, f, r, $s};return $f; + }; + readGoInfo = function readGoInfo$1(f, info) { + var {$24r, _i, _i$1, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, d, decl, doc$1, dspec, embs, err, err$1, f, first, hasEmbed, info, line, ok, ok$1, path$1, pos, quoted, r, spec, $s, $r, $c} = $restore(this, {f, info}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = newImportReader(info.name, f); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + r = _r$1; + $r = r.readKeyword("package"); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.readIdent(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 4: + _r$2 = r.peekByte(true); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* if (!(_r$2 === 105)) { break; } */ if(!(_r$2 === 105)) { $s = 5; continue; } + $r = r.readKeyword("import"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = r.peekByte(true); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === 40) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_r$3 === 40) { */ case 8: + _r$4 = r.nextByte(false); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + /* while (true) { */ case 13: + _r$5 = r.peekByte(true); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* if (!(!((_r$5 === 41)) && $interfaceIsEqual(r.err, $ifaceNil))) { break; } */ if(!(!((_r$5 === 41)) && $interfaceIsEqual(r.err, $ifaceNil))) { $s = 14; continue; } + $r = r.readImport(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + case 14: + _r$6 = r.nextByte(false); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + $s = 10; continue; + /* } else { */ case 9: + $r = r.readImport(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + $s = 4; continue; + case 5: + info.header = r.buf; + if ($interfaceIsEqual(r.err, $ifaceNil) && !r.eof) { + info.header = $subslice(r.buf, 0, (r.buf.$length - 1 >> 0)); + } + /* */ if ($interfaceIsEqual(r.err, errSyntax)) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if ($interfaceIsEqual(r.err, errSyntax)) { */ case 19: + r.err = $ifaceNil; + /* while (true) { */ case 21: + /* if (!($interfaceIsEqual(r.err, $ifaceNil) && !r.eof)) { break; } */ if(!($interfaceIsEqual(r.err, $ifaceNil) && !r.eof)) { $s = 22; continue; } + _r$7 = r.readByte(); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + $s = 21; continue; + case 22: + info.header = r.buf; + /* } */ case 20: + if (!($interfaceIsEqual(r.err, $ifaceNil))) { + $s = -1; return r.err; + } + if (info.fset === ptrType$1.nil) { + $s = -1; return $ifaceNil; + } + _r$8 = parser.ParseFile(info.fset, info.name, info.header, 6); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple = _r$8; + info.parsed = _tuple[0]; + info.parseErr = _tuple[1]; + if (!($interfaceIsEqual(info.parseErr, $ifaceNil))) { + $s = -1; return $ifaceNil; + } + hasEmbed = false; + _ref = info.parsed.Decls; + _i = 0; + /* while (true) { */ case 25: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 26; continue; } + decl = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple$1 = $assertType(decl, ptrType$2, true); + d = _tuple$1[0]; + ok = _tuple$1[1]; + if (!ok) { + _i++; + /* continue; */ $s = 25; continue; + } + _ref$1 = d.Specs; + _i$1 = 0; + /* while (true) { */ case 27: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 28; continue; } + dspec = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _tuple$2 = $assertType(dspec, ptrType$3, true); + spec = _tuple$2[0]; + ok$1 = _tuple$2[1]; + if (!ok$1) { + _i$1++; + /* continue; */ $s = 27; continue; + } + quoted = spec.Path.Value; + _tuple$3 = strconv.Unquote(quoted); + path$1 = _tuple$3[0]; + err = _tuple$3[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 29: + _r$9 = fmt.Errorf("parser returned invalid quoted string: <%s>", new sliceType$2([new $String(quoted)])); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $24r = _r$9; + $s = 32; case 32: return $24r; + /* } */ case 30: + if (path$1 === "embed") { + hasEmbed = true; + } + doc$1 = spec.Doc; + if (doc$1 === ptrType$4.nil && (d.Specs.$length === 1)) { + doc$1 = d.Doc; + } + info.imports = $append(info.imports, new fileImport.ptr(path$1, spec.Pos(), doc$1)); + _i$1++; + $s = 27; continue; + case 28: + _i++; + $s = 25; continue; + case 26: + /* */ if (hasEmbed) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (hasEmbed) { */ case 33: + line = sliceType$1.nil; + first = true; + /* while (true) { */ case 35: + _r$10 = r.findEmbed(first); /* */ $s = 37; case 37: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* if (!(_r$10)) { break; } */ if(!(_r$10)) { $s = 36; continue; } + line = $subslice(line, 0, 0); + pos = $clone(r.pos, token.Position); + /* while (true) { */ case 38: + _r$11 = r.readByteNoBuf(); /* */ $s = 40; case 40: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + c = _r$11; + if ((c === 10) || !($interfaceIsEqual(r.err, $ifaceNil)) || r.eof) { + /* break; */ $s = 39; continue; + } + line = $append(line, c); + $s = 38; continue; + case 39: + _r$12 = parseGoEmbed(($bytesToString(line)), $clone(pos, token.Position)); /* */ $s = 41; case 41: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple$4 = _r$12; + embs = _tuple$4[0]; + err$1 = _tuple$4[1]; + if ($interfaceIsEqual(err$1, $ifaceNil)) { + info.embeds = $appendSlice(info.embeds, embs); + } + first = false; + $s = 35; continue; + case 36: + /* } */ case 34: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: readGoInfo$1, $c: true, $r, $24r, _i, _i$1, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, d, decl, doc$1, dspec, embs, err, err$1, f, first, hasEmbed, info, line, ok, ok$1, path$1, pos, quoted, r, spec, $s};return $f; + }; + parseGoEmbed = function parseGoEmbed$1(args, pos) { + var {$24r, $24r$1, $24r$2, $24r$3, _1, _i, _r$1, _r$2, _r$3, _r$4, _ref, _rune, _tuple, _tuple$1, _tuple$2, args, c, err, i, i$1, j, list, ok, path$1, pathPos, pos, q, r, trimBytes, trimSpace, $s, $r, $c} = $restore(this, {args, pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + args = [args]; + pos = [pos]; + trimBytes = [trimBytes]; + trimBytes[0] = (function(args, pos, trimBytes) { return function parseGoEmbed·func1(n) { + var n; + pos[0].Offset = pos[0].Offset + (n) >> 0; + pos[0].Column = pos[0].Column + (utf8.RuneCountInString($substring(args[0], 0, n))) >> 0; + args[0] = $substring(args[0], n); + }; })(args, pos, trimBytes); + trimSpace = (function(args, pos, trimBytes) { return function parseGoEmbed·func2() { + var {_r$1, trim, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = strings.TrimLeftFunc(args[0], unicode.IsSpace); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + trim = _r$1; + $r = trimBytes[0](args[0].length - trim.length >> 0); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: parseGoEmbed·func2, $c: true, $r, _r$1, trim, $s};return $f; + }; })(args, pos, trimBytes); + list = sliceType$3.nil; + $r = trimSpace(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 2: + /* if (!(!(args[0] === ""))) { break; } */ if(!(!(args[0] === ""))) { $s = 3; continue; } + path$1 = ""; + pathPos = $clone(pos[0], token.Position); + _1 = args[0].charCodeAt(0); + /* */ if (_1 === (96)) { $s = 5; continue; } + /* */ if (_1 === (34)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_1 === (96)) { */ case 5: + ok = false; + _tuple = strings.Cut($substring(args[0], 1), "`"); + path$1 = _tuple[0]; + ok = _tuple[2]; + /* */ if (!ok) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!ok) { */ case 9: + _r$1 = fmt.Errorf("invalid quoted string in //go:embed: %s", new sliceType$2([new $String(args[0])])); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = [sliceType$3.nil, _r$1]; + $s = 12; case 12: return $24r; + /* } */ case 10: + $r = trimBytes[0]((1 + path$1.length >> 0) + 1 >> 0); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 8; continue; + /* } else if (_1 === (34)) { */ case 6: + i = 1; + /* while (true) { */ case 14: + /* if (!(i < args[0].length)) { break; } */ if(!(i < args[0].length)) { $s = 15; continue; } + if (args[0].charCodeAt(i) === 92) { + i = i + (1) >> 0; + i = i + (1) >> 0; + /* continue; */ $s = 14; continue; + } + /* */ if (args[0].charCodeAt(i) === 34) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (args[0].charCodeAt(i) === 34) { */ case 16: + _tuple$1 = strconv.Unquote($substring(args[0], 0, (i + 1 >> 0))); + q = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 18: + _r$2 = fmt.Errorf("invalid quoted string in //go:embed: %s", new sliceType$2([new $String($substring(args[0], 0, (i + 1 >> 0)))])); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = [sliceType$3.nil, _r$2]; + $s = 21; case 21: return $24r$1; + /* } */ case 19: + path$1 = q; + $r = trimBytes[0](i + 1 >> 0); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break Switch; */ $s = 4; continue s; + /* } */ case 17: + i = i + (1) >> 0; + $s = 14; continue; + case 15: + /* */ if (i >= args[0].length) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (i >= args[0].length) { */ case 23: + _r$3 = fmt.Errorf("invalid quoted string in //go:embed: %s", new sliceType$2([new $String(args[0])])); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$2 = [sliceType$3.nil, _r$3]; + $s = 26; case 26: return $24r$2; + /* } */ case 24: + $s = 8; continue; + /* } else { */ case 7: + i$1 = args[0].length; + _ref = args[0]; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + j = _i; + c = _rune[0]; + if (unicode.IsSpace(c)) { + i$1 = j; + break; + } + _i += _rune[1]; + } + path$1 = $substring(args[0], 0, i$1); + $r = trimBytes[0](i$1); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + case 4: + /* */ if (!(args[0] === "")) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!(args[0] === "")) { */ case 28: + _tuple$2 = utf8.DecodeRuneInString(args[0]); + r = _tuple$2[0]; + /* */ if (!unicode.IsSpace(r)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (!unicode.IsSpace(r)) { */ case 30: + _r$4 = fmt.Errorf("invalid quoted string in //go:embed: %s", new sliceType$2([new $String(args[0])])); /* */ $s = 32; case 32: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$3 = [sliceType$3.nil, _r$4]; + $s = 33; case 33: return $24r$3; + /* } */ case 31: + /* } */ case 29: + list = $append(list, new fileEmbed.ptr(path$1, $clone(pathPos, token.Position))); + $r = trimSpace(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 2; continue; + case 3: + $s = -1; return [list, $ifaceNil]; + /* */ } return; } var $f = {$blk: parseGoEmbed$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _1, _i, _r$1, _r$2, _r$3, _r$4, _ref, _rune, _tuple, _tuple$1, _tuple$2, args, c, err, i, i$1, j, list, ok, path$1, pathPos, pos, q, r, trimBytes, trimSpace, $s};return $f; + }; + getToolDir = function getToolDir$1() { + return filepath.Join(new sliceType([runtime.GOROOT(), "pkg/tool/js_ecmascript"])); + }; + $ptrType(Context).prototype.joinPath = function joinPath(elem) { + var {$24r, _r$1, ctxt, elem, f, $s, $r, $c} = $restore(this, {elem}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ctxt = this; + f = ctxt.JoinPath; + /* */ if (!(f === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(f === $throwNilPointerError)) { */ case 1: + _r$1 = f(elem); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return filepath.Join(elem); + /* */ } return; } var $f = {$blk: joinPath, $c: true, $r, $24r, _r$1, ctxt, elem, f, $s};return $f; + }; + $ptrType(Context).prototype.splitPathList = function splitPathList(s) { + var {$24r, _r$1, ctxt, f, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ctxt = this; + f = ctxt.SplitPathList; + /* */ if (!(f === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(f === $throwNilPointerError)) { */ case 1: + _r$1 = f(s); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return filepath.SplitList(s); + /* */ } return; } var $f = {$blk: splitPathList, $c: true, $r, $24r, _r$1, ctxt, f, s, $s};return $f; + }; + $ptrType(Context).prototype.isAbsPath = function isAbsPath(path$1) { + var {$24r, _r$1, ctxt, f, path$1, $s, $r, $c} = $restore(this, {path$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ctxt = this; + f = ctxt.IsAbsPath; + /* */ if (!(f === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(f === $throwNilPointerError)) { */ case 1: + _r$1 = f(path$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return filepath.IsAbs(path$1); + /* */ } return; } var $f = {$blk: isAbsPath, $c: true, $r, $24r, _r$1, ctxt, f, path$1, $s};return $f; + }; + $ptrType(Context).prototype.isDir = function isDir(path$1) { + var {$24r, $24r$1, _r$1, _r$2, _r$3, _tuple, _v, ctxt, err, f, fi, path$1, $s, $r, $c} = $restore(this, {path$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ctxt = this; + f = ctxt.IsDir; + /* */ if (!(f === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(f === $throwNilPointerError)) { */ case 1: + _r$1 = f(path$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$2 = os.Stat(path$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + fi = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { _v = false; $s = 6; continue s; } + _r$3 = fi.IsDir(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 6: + $24r$1 = _v; + $s = 8; case 8: return $24r$1; + /* */ } return; } var $f = {$blk: isDir, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _tuple, _v, ctxt, err, f, fi, path$1, $s};return $f; + }; + $ptrType(Context).prototype.hasSubdir = function hasSubdir$1(root, dir) { + var {$24r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, ctxt, dir, dirSym, f, ok, rel, root, rootSym, $s, $r, $c} = $restore(this, {root, dir}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rel = ""; + ok = false; + ctxt = this; + f = ctxt.HasSubdir; + /* */ if (!(f === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(f === $throwNilPointerError)) { */ case 1: + _r$1 = f(root, dir); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + rel = _tuple[0]; + ok = _tuple[1]; + $24r = [rel, ok]; + $s = 4; case 4: return $24r; + /* } */ case 2: + _tuple$1 = hasSubdir(root, dir); + rel = _tuple$1[0]; + ok = _tuple$1[1]; + if (ok) { + $s = -1; return [rel, ok]; + } + _r$2 = filepath.EvalSymlinks(root); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + rootSym = _tuple$2[0]; + _r$3 = filepath.EvalSymlinks(dir); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$3 = _r$3; + dirSym = _tuple$3[0]; + _tuple$4 = hasSubdir(rootSym, dir); + rel = _tuple$4[0]; + ok = _tuple$4[1]; + if (ok) { + $s = -1; return [rel, ok]; + } + _tuple$5 = hasSubdir(root, dirSym); + rel = _tuple$5[0]; + ok = _tuple$5[1]; + if (ok) { + $s = -1; return [rel, ok]; + } + _tuple$6 = hasSubdir(rootSym, dirSym); + rel = _tuple$6[0]; + ok = _tuple$6[1]; + $s = -1; return [rel, ok]; + /* */ } return; } var $f = {$blk: hasSubdir$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, ctxt, dir, dirSym, f, ok, rel, root, rootSym, $s};return $f; + }; + hasSubdir = function hasSubdir$2(root, dir) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, dir, ok, rel, root; + rel = ""; + ok = false; + root = filepath.Clean(root); + if (!strings.HasSuffix(root, "/")) { + root = root + ("/"); + } + dir = filepath.Clean(dir); + if (!strings.HasPrefix(dir, root)) { + _tmp = ""; + _tmp$1 = false; + rel = _tmp; + ok = _tmp$1; + return [rel, ok]; + } + _tmp$2 = filepath.ToSlash($substring(dir, root.length)); + _tmp$3 = true; + rel = _tmp$2; + ok = _tmp$3; + return [rel, ok]; + }; + $ptrType(Context).prototype.readDir = function readDir(path$1) { + var {$24r, _i, _r$1, _r$2, _ref, _tuple, ctxt, des, err, f, fi, fis, i, path$1, $s, $r, $c} = $restore(this, {path$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ctxt = this; + f = ctxt.ReadDir; + /* */ if (!(f === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(f === $throwNilPointerError)) { */ case 1: + _r$1 = f(path$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + fis = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType$4.nil, err]; + } + des = $makeSlice(sliceType$4, fis.$length); + _ref = fis; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + fi = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= des.$length) ? ($throwRuntimeError("index out of range"), undefined) : des.$array[des.$offset + i] = fs.FileInfoToDirEntry(fi)); + _i++; + } + $s = -1; return [des, $ifaceNil]; + /* } */ case 2: + _r$2 = os.ReadDir(path$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: readDir, $c: true, $r, $24r, _i, _r$1, _r$2, _ref, _tuple, ctxt, des, err, f, fi, fis, i, path$1, $s};return $f; + }; + $ptrType(Context).prototype.openFile = function openFile(path$1) { + var {$24r, _r$1, _r$2, _tuple, ctxt, err, f, fn, path$1, $s, $r, $c} = $restore(this, {path$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ctxt = this; + fn = ctxt.OpenFile; + /* */ if (!(fn === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(fn === $throwNilPointerError)) { */ case 1: + _r$1 = fn(path$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$2 = os.Open(path$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, err]; + } + $s = -1; return [f, $ifaceNil]; + /* */ } return; } var $f = {$blk: openFile, $c: true, $r, $24r, _r$1, _r$2, _tuple, ctxt, err, f, fn, path$1, $s};return $f; + }; + $ptrType(Context).prototype.isFile = function isFile(path$1) { + var {_r$1, _r$2, _tuple, ctxt, err, f, path$1, $s, $r, $c} = $restore(this, {path$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ctxt = this; + _r$1 = ctxt.openFile(path$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return false; + } + _r$2 = f.Close(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return true; + /* */ } return; } var $f = {$blk: isFile, $c: true, $r, _r$1, _r$2, _tuple, ctxt, err, f, path$1, $s};return $f; + }; + $ptrType(Context).prototype.gopath = function gopath() { + var {_i, _r$1, _ref, all, ctxt, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ctxt = this; + all = sliceType.nil; + _r$1 = ctxt.splitPathList(ctxt.GOPATH); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (p === "" || p === ctxt.GOROOT) { + _i++; + /* continue; */ $s = 2; continue; + } + if (strings.HasPrefix(p, "~")) { + _i++; + /* continue; */ $s = 2; continue; + } + all = $append(all, p); + _i++; + $s = 2; continue; + case 3: + $s = -1; return all; + /* */ } return; } var $f = {$blk: gopath, $c: true, $r, _i, _r$1, _ref, all, ctxt, p, $s};return $f; + }; + $ptrType(Context).prototype.SrcDirs = function SrcDirs() { + var {_i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, all, ctxt, dir, dir$1, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ctxt = this; + all = sliceType.nil; + /* */ if (!(ctxt.GOROOT === "") && !(ctxt.Compiler === "gccgo")) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(ctxt.GOROOT === "") && !(ctxt.Compiler === "gccgo")) { */ case 1: + _r$1 = ctxt.joinPath(new sliceType([ctxt.GOROOT, "src"])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + dir = _r$1; + _r$2 = ctxt.isDir(dir); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$2) { */ case 4: + all = $append(all, dir); + /* } */ case 5: + /* } */ case 2: + _r$3 = ctxt.gopath(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _ref = _r$3; + _i = 0; + /* while (true) { */ case 8: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; } + p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$4 = ctxt.joinPath(new sliceType([p, "src"])); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + dir$1 = _r$4; + _r$5 = ctxt.isDir(dir$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_r$5) { */ case 11: + all = $append(all, dir$1); + /* } */ case 12: + _i++; + $s = 8; continue; + case 9: + $s = -1; return all; + /* */ } return; } var $f = {$blk: SrcDirs, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, all, ctxt, dir, dir$1, p, $s};return $f; + }; + defaultGOPATH = function defaultGOPATH$1() { + var {_r$1, def, env, home, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + env = "HOME"; + if (false) { + env = "USERPROFILE"; + } else if (false) { + env = "home"; + } + _r$1 = os.Getenv(env); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + home = _r$1; + if (!(home === "")) { + def = filepath.Join(new sliceType([home, "go"])); + if (filepath.Clean(def) === filepath.Clean(runtime.GOROOT())) { + $s = -1; return ""; + } + $s = -1; return def; + } + $s = -1; return ""; + /* */ } return; } var $f = {$blk: defaultGOPATH$1, $c: true, $r, _r$1, def, env, home, $s};return $f; + }; + defaultContext = function defaultContext$1() { + var {_1, _arg, _entry, _i, _r$1, _r$2, _r$3, _r$4, _ref, c, env, exp, goroot$1, i, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = new Context.ptr("", "", "", "", "", false, false, "", sliceType.nil, sliceType.nil, sliceType.nil, "", $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError); + c.GOARCH = buildcfg.GOARCH; + c.GOOS = buildcfg.GOOS; + goroot$1 = runtime.GOROOT(); + if (!(goroot$1 === "")) { + c.GOROOT = filepath.Clean(goroot$1); + } + _r$1 = defaultGOPATH(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = _r$1; + _r$2 = envOr("GOPATH", _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + c.GOPATH = _r$2; + c.Compiler = "gopherjs"; + _r$3 = buildcfg.Experiment.Enabled(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _ref = _r$3; + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + exp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + c.ToolTags = $append(c.ToolTags, "goexperiment." + exp); + _i++; + $s = 4; continue; + case 5: + defaultToolTags = $appendSlice(new sliceType([]), c.ToolTags); + i = 1; + while (true) { + if (!(i <= 19)) { break; } + c.ReleaseTags = $append(c.ReleaseTags, "go1." + strconv.Itoa(i)); + i = i + (1) >> 0; + } + defaultReleaseTags = $appendSlice(new sliceType([]), c.ReleaseTags); + _r$4 = os.Getenv("CGO_ENABLED"); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + env = _r$4; + if (env === "") { + env = ""; + } + switch (0) { default: + _1 = env; + if (_1 === ("1")) { + c.CgoEnabled = true; + } else if (_1 === ("0")) { + c.CgoEnabled = false; + } else { + if ("ecmascript" === c.GOARCH && "js" === c.GOOS) { + c.CgoEnabled = (_entry = $mapIndex(cgoEnabled,$String.keyFor(c.GOOS + "/" + c.GOARCH)), _entry !== undefined ? _entry.v : false); + break; + } + c.CgoEnabled = false; + } + } + $s = -1; return c; + /* */ } return; } var $f = {$blk: defaultContext$1, $c: true, $r, _1, _arg, _entry, _i, _r$1, _r$2, _r$3, _r$4, _ref, c, env, exp, goroot$1, i, $s};return $f; + }; + envOr = function envOr$1(name, def) { + var {_r$1, def, name, s, $s, $r, $c} = $restore(this, {name, def}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = os.Getenv(name); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + s = _r$1; + if (s === "") { + $s = -1; return def; + } + $s = -1; return s; + /* */ } return; } var $f = {$blk: envOr$1, $c: true, $r, _r$1, def, name, s, $s};return $f; + }; + $ptrType(Package).prototype.IsCommand = function IsCommand() { + var p; + p = this; + return p.Name === "main"; + }; + $ptrType(Context).prototype.ImportDir = function ImportDir$1(dir, mode) { + var {$24r, _r$1, ctxt, dir, mode, $s, $r, $c} = $restore(this, {dir, mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ctxt = this; + _r$1 = ctxt.Import(".", dir, mode); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ImportDir$1, $c: true, $r, $24r, _r$1, ctxt, dir, mode, $s};return $f; + }; + $ptrType(NoGoError).prototype.Error = function Error() { + var e; + e = this; + return "no buildable Go source files in " + e.Dir; + }; + $ptrType(MultiplePackageError).prototype.Error = function Error$1() { + var {$24r, _r$1, e, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + e = this; + _r$1 = fmt.Sprintf("found packages %s (%s) and %s (%s) in %s", new sliceType$2([new $String((x = e.Packages, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))), new $String((x$1 = e.Files, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))), new $String((x$2 = e.Packages, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1]))), new $String((x$3 = e.Files, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1]))), new $String(e.Dir)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Error$1, $c: true, $r, $24r, _r$1, e, x, x$1, x$2, x$3, $s};return $f; + }; + nameExt = function nameExt$1(name) { + var i, name; + i = strings.LastIndex(name, "."); + if (i < 0) { + return ""; + } + return $substring(name, i); + }; + $ptrType(Context).prototype.Import = function Import$1(path$1, srcDir, mode) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, Sfiles, _1, _3, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _entry$2, _i, _i$1, _i$10, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _key$3, _keys, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, all, allTags, badFile, badFiles, badGoError, binaryOnly, com, ctxt, d, data, dir, dir$1, dir$2, dir$3, dir$4, dir$5, dir$6, dirs, earlyRoot, emb, embedMap, embedPos, err, err$1, err$2, err$3, err$4, ext, fileList, filename, firstCommentFile, firstFile, format, fset, gopath$1, gorootFirst, i, imp, imp$1, importMap, importPos, inTestdata, info, isCgo, isDir$1, isDir$2, isDir$3, isTest, isXTest, line, list, mode, name, ok, ok$1, p, path$1, paths, pkg, pkga, pkgerr, pkgtargetroot, qcom, root, root$1, root$2, root$3, rootsrc, searchVendor, setPkga, srcDir, sub, sub$1, suffix, tag, testEmbedPos, testImportPos, tried, xTestEmbedPos, xTestImportPos, $s, $r, $c} = $restore(this, {path$1, srcDir, mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + badFiles = [badFiles]; + badGoError = [badGoError]; + ctxt = [ctxt]; + p = [p]; + path$1 = [path$1]; + pkga = [pkga]; + pkgtargetroot = [pkgtargetroot]; + setPkga = [setPkga]; + srcDir = [srcDir]; + tried = [tried]; + ctxt[0] = this; + p[0] = new Package.ptr("", "", "", "", path$1[0], "", "", "", "", "", false, "", sliceType.nil, "", false, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false); + /* */ if (path$1[0] === "") { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (path$1[0] === "") { */ case 1: + _r$1 = fmt.Errorf("import %q: invalid import path", new sliceType$2([new $String(path$1[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = [p[0], _r$1]; + $s = 4; case 4: return $24r; + /* } */ case 2: + pkgtargetroot[0] = ""; + pkga[0] = ""; + pkgerr = $ifaceNil; + suffix = ""; + if (!(ctxt[0].InstallSuffix === "")) { + suffix = "_" + ctxt[0].InstallSuffix; + } + _1 = ctxt[0].Compiler; + /* */ if (_1 === ("gccgo")) { $s = 6; continue; } + /* */ if (_1 === ("gc")) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === ("gccgo")) { */ case 6: + pkgtargetroot[0] = "pkg/gccgo_" + ctxt[0].GOOS + "_" + ctxt[0].GOARCH + suffix; + $s = 9; continue; + /* } else if (_1 === ("gc")) { */ case 7: + pkgtargetroot[0] = "pkg/" + ctxt[0].GOOS + "_" + ctxt[0].GOARCH + suffix; + $s = 9; continue; + /* } else { */ case 8: + _r$2 = fmt.Errorf("import %q: unknown compiler %q", new sliceType$2([new $String(path$1[0]), new $String(ctxt[0].Compiler)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + pkgerr = _r$2; + /* } */ case 9: + case 5: + setPkga[0] = (function(badFiles, badGoError, ctxt, p, path$1, pkga, pkgtargetroot, setPkga, srcDir, tried) { return function Context·Import·func1() { + var _2, _tuple, dir, elem; + _2 = ctxt[0].Compiler; + if (_2 === ("gccgo")) { + _tuple = path.Split(p[0].ImportPath); + dir = _tuple[0]; + elem = _tuple[1]; + pkga[0] = pkgtargetroot[0] + "/" + dir + "lib" + elem + ".a"; + } else if (_2 === ("gc")) { + pkga[0] = pkgtargetroot[0] + "/" + p[0].ImportPath + ".a"; + } + }; })(badFiles, badGoError, ctxt, p, path$1, pkga, pkgtargetroot, setPkga, srcDir, tried); + $r = setPkga[0](); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + binaryOnly = false; + /* */ if (IsLocalImport(path$1[0])) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (IsLocalImport(path$1[0])) { */ case 12: + pkga[0] = ""; + /* */ if (srcDir[0] === "") { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (srcDir[0] === "") { */ case 15: + _r$3 = fmt.Errorf("import %q: import relative to unknown directory", new sliceType$2([new $String(path$1[0])])); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = [p[0], _r$3]; + $s = 18; case 18: return $24r$1; + /* } */ case 16: + _r$4 = ctxt[0].isAbsPath(path$1[0]); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!_r$4) { */ case 19: + _r$5 = ctxt[0].joinPath(new sliceType([srcDir[0], path$1[0]])); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + p[0].Dir = _r$5; + /* } */ case 20: + inTestdata = (function(badFiles, badGoError, ctxt, p, path$1, pkga, pkgtargetroot, setPkga, srcDir, tried) { return function Context·Import·func2(sub) { + var sub; + return strings.Contains(sub, "/testdata/") || strings.HasSuffix(sub, "/testdata") || strings.HasPrefix(sub, "testdata/") || sub === "testdata"; + }; })(badFiles, badGoError, ctxt, p, path$1, pkga, pkgtargetroot, setPkga, srcDir, tried); + /* */ if (!(ctxt[0].GOROOT === "")) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!(ctxt[0].GOROOT === "")) { */ case 23: + _r$6 = ctxt[0].joinPath(new sliceType([ctxt[0].GOROOT, "src"])); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + root = _r$6; + _r$7 = ctxt[0].hasSubdir(root, p[0].Dir); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple = _r$7; + sub = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { _v = false; $s = 29; continue s; } + _r$8 = inTestdata(sub); /* */ $s = 30; case 30: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _v = !_r$8; case 29: + /* */ if (_v) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (_v) { */ case 27: + p[0].Goroot = true; + p[0].ImportPath = sub; + p[0].Root = ctxt[0].GOROOT; + $r = setPkga[0](); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Found */ $s = 32; continue; + /* } */ case 28: + /* } */ case 24: + _r$9 = ctxt[0].gopath(); /* */ $s = 33; case 33: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + all = _r$9; + _ref = all; + _i = 0; + /* while (true) { */ case 34: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 35; continue; } + i = _i; + root$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$10 = ctxt[0].joinPath(new sliceType([root$1, "src"])); /* */ $s = 36; case 36: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + rootsrc = _r$10; + _r$11 = ctxt[0].hasSubdir(rootsrc, p[0].Dir); /* */ $s = 37; case 37: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$1 = _r$11; + sub$1 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (!(ok$1)) { _v$1 = false; $s = 40; continue s; } + _r$12 = inTestdata(sub$1); /* */ $s = 41; case 41: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _v$1 = !_r$12; case 40: + /* */ if (_v$1) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (_v$1) { */ case 38: + /* */ if (!(ctxt[0].GOROOT === "") && !(ctxt[0].Compiler === "gccgo")) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (!(ctxt[0].GOROOT === "") && !(ctxt[0].Compiler === "gccgo")) { */ case 42: + _r$13 = ctxt[0].joinPath(new sliceType([ctxt[0].GOROOT, "src", sub$1])); /* */ $s = 44; case 44: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + dir = _r$13; + _r$14 = ctxt[0].isDir(dir); /* */ $s = 47; case 47: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + /* */ if (_r$14) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (_r$14) { */ case 45: + p[0].ConflictDir = dir; + /* goto Found */ $s = 32; continue; + /* } */ case 46: + /* } */ case 43: + _ref$1 = $subslice(all, 0, i); + _i$1 = 0; + /* while (true) { */ case 48: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 49; continue; } + earlyRoot = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$15 = ctxt[0].joinPath(new sliceType([earlyRoot, "src", sub$1])); /* */ $s = 50; case 50: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + dir$1 = _r$15; + _r$16 = ctxt[0].isDir(dir$1); /* */ $s = 53; case 53: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + /* */ if (_r$16) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (_r$16) { */ case 51: + p[0].ConflictDir = dir$1; + /* goto Found */ $s = 32; continue; + /* } */ case 52: + _i$1++; + $s = 48; continue; + case 49: + p[0].ImportPath = sub$1; + p[0].Root = root$1; + $r = setPkga[0](); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Found */ $s = 32; continue; + /* } */ case 39: + _i++; + $s = 34; continue; + case 35: + $s = 14; continue; + /* } else { */ case 13: + /* */ if (strings.HasPrefix(path$1[0], "/")) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if (strings.HasPrefix(path$1[0], "/")) { */ case 55: + _r$17 = fmt.Errorf("import %q: cannot import absolute path", new sliceType$2([new $String(path$1[0])])); /* */ $s = 57; case 57: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $24r$2 = [p[0], _r$17]; + $s = 58; case 58: return $24r$2; + /* } */ case 56: + _r$18 = ctxt[0].importGo(p[0], path$1[0], srcDir[0], mode); /* */ $s = 59; case 59: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + err = _r$18; + /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 60; continue; } + /* */ if (!($interfaceIsEqual(err, errNoModules))) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 60: + /* goto Found */ $s = 32; continue; + $s = 62; continue; + /* } else if (!($interfaceIsEqual(err, errNoModules))) { */ case 61: + $s = -1; return [p[0], err]; + /* } */ case 62: + _r$19 = ctxt[0].gopath(); /* */ $s = 63; case 63: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + gopath$1 = _r$19; + tried[0] = new structType.ptr(sliceType.nil, "", sliceType.nil); + /* */ if ((((mode & 8) >>> 0) === 0) && !(srcDir[0] === "")) { $s = 64; continue; } + /* */ $s = 65; continue; + /* if ((((mode & 8) >>> 0) === 0) && !(srcDir[0] === "")) { */ case 64: + searchVendor = (function(badFiles, badGoError, ctxt, p, path$1, pkga, pkgtargetroot, setPkga, srcDir, tried) { return function Context·Import·func3(root$2, isGoroot) { + var {_r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _tuple$2, _v$2, dir$2, i$1, isGoroot, ok$2, root$2, sub$2, vendor, $s, $r, $c} = $restore(this, {root$2, isGoroot}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$20 = ctxt[0].hasSubdir(root$2, srcDir[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _tuple$2 = _r$20; + sub$2 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (!ok$2 || !strings.HasPrefix(sub$2, "src/") || strings.Contains(sub$2, "/testdata/")) { + $s = -1; return false; + } + /* while (true) { */ case 2: + _r$21 = ctxt[0].joinPath(new sliceType([root$2, sub$2, "vendor"])); /* */ $s = 4; case 4: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + vendor = _r$21; + _r$22 = ctxt[0].isDir(vendor); /* */ $s = 7; case 7: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + /* */ if (_r$22) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$22) { */ case 5: + _r$23 = ctxt[0].joinPath(new sliceType([vendor, path$1[0]])); /* */ $s = 8; case 8: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + dir$2 = _r$23; + _r$24 = ctxt[0].isDir(dir$2); /* */ $s = 12; case 12: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + if (!(_r$24)) { _v$2 = false; $s = 11; continue s; } + _r$25 = hasGoFiles(ctxt[0], dir$2); /* */ $s = 13; case 13: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _v$2 = _r$25; case 11: + /* */ if (_v$2) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_v$2) { */ case 9: + p[0].Dir = dir$2; + p[0].ImportPath = strings.TrimPrefix(path.Join(new sliceType([sub$2, "vendor", path$1[0]])), "src/"); + p[0].Goroot = isGoroot; + p[0].Root = root$2; + $r = setPkga[0](); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* } */ case 10: + tried[0].vendor = $append(tried[0].vendor, dir$2); + /* } */ case 6: + i$1 = strings.LastIndex(sub$2, "/"); + if (i$1 < 0) { + /* break; */ $s = 3; continue; + } + sub$2 = $substring(sub$2, 0, i$1); + $s = 2; continue; + case 3: + $s = -1; return false; + /* */ } return; } var $f = {$blk: Context·Import·func3, $c: true, $r, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _tuple$2, _v$2, dir$2, i$1, isGoroot, ok$2, root$2, sub$2, vendor, $s};return $f; + }; })(badFiles, badGoError, ctxt, p, path$1, pkga, pkgtargetroot, setPkga, srcDir, tried); + if (!(!(ctxt[0].Compiler === "gccgo") && !(ctxt[0].GOROOT === ""))) { _v$2 = false; $s = 68; continue s; } + _r$20 = searchVendor(ctxt[0].GOROOT, true); /* */ $s = 69; case 69: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _v$2 = _r$20; case 68: + /* */ if (_v$2) { $s = 66; continue; } + /* */ $s = 67; continue; + /* if (_v$2) { */ case 66: + /* goto Found */ $s = 32; continue; + /* } */ case 67: + _ref$2 = gopath$1; + _i$2 = 0; + /* while (true) { */ case 70: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 71; continue; } + root$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + _r$21 = searchVendor(root$2, false); /* */ $s = 74; case 74: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + /* */ if (_r$21) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if (_r$21) { */ case 72: + /* goto Found */ $s = 32; continue; + /* } */ case 73: + _i$2++; + $s = 70; continue; + case 71: + /* } */ case 65: + /* */ if (!(ctxt[0].GOROOT === "")) { $s = 75; continue; } + /* */ $s = 76; continue; + /* if (!(ctxt[0].GOROOT === "")) { */ case 75: + gorootFirst = srcDir[0] === "" || !strings.HasPrefix(path$1[0], "vendor/"); + /* */ if (!gorootFirst) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (!gorootFirst) { */ case 77: + _r$22 = ctxt[0].hasSubdir(ctxt[0].GOROOT, srcDir[0]); /* */ $s = 79; case 79: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _tuple$2 = _r$22; + gorootFirst = _tuple$2[1]; + /* } */ case 78: + /* */ if (gorootFirst) { $s = 80; continue; } + /* */ $s = 81; continue; + /* if (gorootFirst) { */ case 80: + _r$23 = ctxt[0].joinPath(new sliceType([ctxt[0].GOROOT, "src", path$1[0]])); /* */ $s = 82; case 82: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + dir$2 = _r$23; + /* */ if (!(ctxt[0].Compiler === "gccgo")) { $s = 83; continue; } + /* */ $s = 84; continue; + /* if (!(ctxt[0].Compiler === "gccgo")) { */ case 83: + _r$24 = ctxt[0].isDir(dir$2); /* */ $s = 85; case 85: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + isDir$1 = _r$24; + if (!(!isDir$1 && !((((mode & 2) >>> 0) === 0)) && !(pkga[0] === ""))) { _v$3 = false; $s = 86; continue s; } + _r$25 = ctxt[0].joinPath(new sliceType([ctxt[0].GOROOT, pkga[0]])); /* */ $s = 87; case 87: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$26 = ctxt[0].isFile(_r$25); /* */ $s = 88; case 88: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _v$3 = _r$26; case 86: + binaryOnly = _v$3; + /* */ if (isDir$1 || binaryOnly) { $s = 89; continue; } + /* */ $s = 90; continue; + /* if (isDir$1 || binaryOnly) { */ case 89: + p[0].Dir = dir$2; + p[0].Goroot = true; + p[0].Root = ctxt[0].GOROOT; + /* goto Found */ $s = 32; continue; + /* } */ case 90: + /* } */ case 84: + tried[0].goroot = dir$2; + /* } */ case 81: + if (!(ctxt[0].Compiler === "gccgo")) { _v$4 = false; $s = 93; continue s; } + _r$27 = goroot.IsStandardPackage(ctxt[0].GOROOT, ctxt[0].Compiler, path$1[0]); /* */ $s = 94; case 94: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _v$4 = _r$27; case 93: + /* */ if (_v$4) { $s = 91; continue; } + /* */ $s = 92; continue; + /* if (_v$4) { */ case 91: + _r$28 = ctxt[0].joinPath(new sliceType([ctxt[0].GOROOT, "src", path$1[0]])); /* */ $s = 95; case 95: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + p[0].Dir = _r$28; + p[0].Goroot = true; + p[0].Root = ctxt[0].GOROOT; + /* goto Found */ $s = 32; continue; + /* } */ case 92: + /* } */ case 76: + _ref$3 = gopath$1; + _i$3 = 0; + /* while (true) { */ case 96: + /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 97; continue; } + root$3 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + _r$29 = ctxt[0].joinPath(new sliceType([root$3, "src", path$1[0]])); /* */ $s = 98; case 98: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + dir$3 = _r$29; + _r$30 = ctxt[0].isDir(dir$3); /* */ $s = 99; case 99: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + isDir$2 = _r$30; + if (!(!isDir$2 && !((((mode & 2) >>> 0) === 0)) && !(pkga[0] === ""))) { _v$5 = false; $s = 100; continue s; } + _r$31 = ctxt[0].joinPath(new sliceType([root$3, pkga[0]])); /* */ $s = 101; case 101: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _r$32 = ctxt[0].isFile(_r$31); /* */ $s = 102; case 102: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _v$5 = _r$32; case 100: + binaryOnly = _v$5; + /* */ if (isDir$2 || binaryOnly) { $s = 103; continue; } + /* */ $s = 104; continue; + /* if (isDir$2 || binaryOnly) { */ case 103: + p[0].Dir = dir$3; + p[0].Root = root$3; + /* goto Found */ $s = 32; continue; + /* } */ case 104: + tried[0].gopath = $append(tried[0].gopath, dir$3); + _i$3++; + $s = 96; continue; + case 97: + /* */ if (!(ctxt[0].GOROOT === "") && tried[0].goroot === "") { $s = 105; continue; } + /* */ $s = 106; continue; + /* if (!(ctxt[0].GOROOT === "") && tried[0].goroot === "") { */ case 105: + _r$33 = ctxt[0].joinPath(new sliceType([ctxt[0].GOROOT, "src", path$1[0]])); /* */ $s = 107; case 107: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + dir$4 = _r$33; + /* */ if (!(ctxt[0].Compiler === "gccgo")) { $s = 108; continue; } + /* */ $s = 109; continue; + /* if (!(ctxt[0].Compiler === "gccgo")) { */ case 108: + _r$34 = ctxt[0].isDir(dir$4); /* */ $s = 110; case 110: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + isDir$3 = _r$34; + if (!(!isDir$3 && !((((mode & 2) >>> 0) === 0)) && !(pkga[0] === ""))) { _v$6 = false; $s = 111; continue s; } + _r$35 = ctxt[0].joinPath(new sliceType([ctxt[0].GOROOT, pkga[0]])); /* */ $s = 112; case 112: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _r$36 = ctxt[0].isFile(_r$35); /* */ $s = 113; case 113: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + _v$6 = _r$36; case 111: + binaryOnly = _v$6; + /* */ if (isDir$3 || binaryOnly) { $s = 114; continue; } + /* */ $s = 115; continue; + /* if (isDir$3 || binaryOnly) { */ case 114: + p[0].Dir = dir$4; + p[0].Goroot = true; + p[0].Root = ctxt[0].GOROOT; + /* goto Found */ $s = 32; continue; + /* } */ case 115: + /* } */ case 109: + tried[0].goroot = dir$4; + /* } */ case 106: + paths = sliceType.nil; + format = "\t%s (vendor tree)"; + _ref$4 = tried[0].vendor; + _i$4 = 0; + /* while (true) { */ case 116: + /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 117; continue; } + dir$5 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); + _r$37 = fmt.Sprintf(format, new sliceType$2([new $String(dir$5)])); /* */ $s = 118; case 118: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + paths = $append(paths, _r$37); + format = "\t%s"; + _i$4++; + $s = 116; continue; + case 117: + /* */ if (!(tried[0].goroot === "")) { $s = 119; continue; } + /* */ $s = 120; continue; + /* if (!(tried[0].goroot === "")) { */ case 119: + _r$38 = fmt.Sprintf("\t%s (from $GOROOT)", new sliceType$2([new $String(tried[0].goroot)])); /* */ $s = 122; case 122: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + paths = $append(paths, _r$38); + $s = 121; continue; + /* } else { */ case 120: + paths = $append(paths, "\t($GOROOT not set)"); + /* } */ case 121: + format = "\t%s (from $GOPATH)"; + _ref$5 = tried[0].gopath; + _i$5 = 0; + /* while (true) { */ case 123: + /* if (!(_i$5 < _ref$5.$length)) { break; } */ if(!(_i$5 < _ref$5.$length)) { $s = 124; continue; } + dir$6 = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); + _r$39 = fmt.Sprintf(format, new sliceType$2([new $String(dir$6)])); /* */ $s = 125; case 125: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + paths = $append(paths, _r$39); + format = "\t%s"; + _i$5++; + $s = 123; continue; + case 124: + if (tried[0].gopath.$length === 0) { + paths = $append(paths, "\t($GOPATH not set. For more details see: 'go help gopath')"); + } + _r$40 = fmt.Errorf("cannot find package %q in any of:\n%s", new sliceType$2([new $String(path$1[0]), new $String(strings.Join(paths, "\n"))])); /* */ $s = 126; case 126: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + $24r$3 = [p[0], _r$40]; + $s = 127; case 127: return $24r$3; + /* } */ case 14: + /* Found: */ case 32: + /* */ if (!(p[0].Root === "")) { $s = 128; continue; } + /* */ $s = 129; continue; + /* if (!(p[0].Root === "")) { */ case 128: + _r$41 = ctxt[0].joinPath(new sliceType([p[0].Root, "src"])); /* */ $s = 130; case 130: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + p[0].SrcRoot = _r$41; + _r$42 = ctxt[0].joinPath(new sliceType([p[0].Root, "pkg"])); /* */ $s = 131; case 131: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } + p[0].PkgRoot = _r$42; + _r$43 = ctxt[0].joinPath(new sliceType([p[0].Root, "bin"])); /* */ $s = 132; case 132: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + p[0].BinDir = _r$43; + /* */ if (!(pkga[0] === "")) { $s = 133; continue; } + /* */ $s = 134; continue; + /* if (!(pkga[0] === "")) { */ case 133: + _r$44 = ctxt[0].joinPath(new sliceType([p[0].Root, pkgtargetroot[0]])); /* */ $s = 135; case 135: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } + p[0].PkgTargetRoot = _r$44; + _r$45 = ctxt[0].joinPath(new sliceType([p[0].Root, pkga[0]])); /* */ $s = 136; case 136: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } + p[0].PkgObj = _r$45; + /* } */ case 134: + /* } */ case 129: + if (!(IsLocalImport(path$1[0]))) { _v$7 = false; $s = 139; continue s; } + _r$46 = ctxt[0].isDir(p[0].Dir); /* */ $s = 140; case 140: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } + _v$7 = !_r$46; case 139: + /* */ if (_v$7) { $s = 137; continue; } + /* */ $s = 138; continue; + /* if (_v$7) { */ case 137: + if (ctxt[0].Compiler === "gccgo" && p[0].Goroot) { + $s = -1; return [p[0], $ifaceNil]; + } + _r$47 = fmt.Errorf("cannot find package %q in:\n\t%s", new sliceType$2([new $String(p[0].ImportPath), new $String(p[0].Dir)])); /* */ $s = 141; case 141: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } + $24r$4 = [p[0], _r$47]; + $s = 142; case 142: return $24r$4; + /* } */ case 138: + if (!((((mode & 1) >>> 0) === 0))) { + $s = -1; return [p[0], pkgerr]; + } + if (binaryOnly && !(((((mode & 2) >>> 0)) === 0))) { + $s = -1; return [p[0], pkgerr]; + } + if (ctxt[0].Compiler === "gccgo" && p[0].Goroot) { + $s = -1; return [p[0], $ifaceNil]; + } + _r$48 = ctxt[0].readDir(p[0].Dir); /* */ $s = 143; case 143: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } + _tuple$3 = _r$48; + dirs = _tuple$3[0]; + err$1 = _tuple$3[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [p[0], err$1]; + } + badGoError[0] = $ifaceNil; + badFiles[0] = new $global.Map(); + badFile = (function(badFiles, badGoError, ctxt, p, path$1, pkga, pkgtargetroot, setPkga, srcDir, tried) { return function Context·Import·func4(name, err$2) { + var _entry, _key, err$2, name; + if ($interfaceIsEqual(badGoError[0], $ifaceNil)) { + badGoError[0] = err$2; + } + if (!(_entry = $mapIndex(badFiles[0],$String.keyFor(name)), _entry !== undefined ? _entry.v : false)) { + p[0].InvalidGoFiles = $append(p[0].InvalidGoFiles, name); + _key = name; (badFiles[0] || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); + } + }; })(badFiles, badGoError, ctxt, p, path$1, pkga, pkgtargetroot, setPkga, srcDir, tried); + Sfiles = sliceType.nil; + _tmp = ""; + _tmp$1 = ""; + firstFile = _tmp; + firstCommentFile = _tmp$1; + embedPos = new $global.Map(); + testEmbedPos = new $global.Map(); + xTestEmbedPos = new $global.Map(); + importPos = new $global.Map(); + testImportPos = new $global.Map(); + xTestImportPos = new $global.Map(); + allTags = new $global.Map(); + fset = token.NewFileSet(); + _ref$6 = dirs; + _i$6 = 0; + /* while (true) { */ case 144: + /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 145; continue; } + d = ((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]); + _r$49 = d.IsDir(); /* */ $s = 148; case 148: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } + /* */ if (_r$49) { $s = 146; continue; } + /* */ $s = 147; continue; + /* if (_r$49) { */ case 146: + _i$6++; + /* continue; */ $s = 144; continue; + /* } */ case 147: + _r$50 = d.Type(); /* */ $s = 151; case 151: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } + /* */ if (_r$50 === 134217728) { $s = 149; continue; } + /* */ $s = 150; continue; + /* if (_r$50 === 134217728) { */ case 149: + _arg = p[0].Dir; + _r$51 = d.Name(); /* */ $s = 154; case 154: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } + _arg$1 = _r$51; + _r$52 = ctxt[0].joinPath(new sliceType([_arg, _arg$1])); /* */ $s = 155; case 155: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } + _r$53 = ctxt[0].isDir(_r$52); /* */ $s = 156; case 156: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } + /* */ if (_r$53) { $s = 152; continue; } + /* */ $s = 153; continue; + /* if (_r$53) { */ case 152: + _i$6++; + /* continue; */ $s = 144; continue; + /* } */ case 153: + /* } */ case 150: + _r$54 = d.Name(); /* */ $s = 157; case 157: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } + name = _r$54; + ext = nameExt(name); + _r$55 = ctxt[0].matchFile(p[0].Dir, name, allTags, (p[0].$ptr_BinaryOnly || (p[0].$ptr_BinaryOnly = new ptrType$5(function() { return this.$target.BinaryOnly; }, function($v) { this.$target.BinaryOnly = $v; }, p[0]))), fset); /* */ $s = 158; case 158: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } + _tuple$4 = _r$55; + info = _tuple$4[0]; + err$2 = _tuple$4[1]; + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 159; continue; } + /* */ $s = 160; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 159: + $r = badFile(name, err$2); /* */ $s = 161; case 161: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$6++; + /* continue; */ $s = 144; continue; + /* } */ case 160: + if (info === ptrType$6.nil) { + if (strings.HasPrefix(name, "_") || strings.HasPrefix(name, ".")) { + } else if (ext === ".go") { + p[0].IgnoredGoFiles = $append(p[0].IgnoredGoFiles, name); + } else if (!(fileListForExt(p[0], ext) === ptrType$7.nil)) { + p[0].IgnoredOtherFiles = $append(p[0].IgnoredOtherFiles, name); + } + _i$6++; + /* continue; */ $s = 144; continue; + } + _tmp$2 = info.header; + _tmp$3 = info.name; + data = _tmp$2; + filename = _tmp$3; + _3 = ext; + if (_3 === (".go")) { + } else if (_3 === (".S") || _3 === (".sx")) { + Sfiles = $append(Sfiles, name); + _i$6++; + /* continue; */ $s = 144; continue; + } else { + list = fileListForExt(p[0], ext); + if (!(list === ptrType$7.nil)) { + list.$set($append(list.$get(), name)); + } + _i$6++; + /* continue; */ $s = 144; continue; + } + /* */ if (!($interfaceIsEqual(info.parseErr, $ifaceNil))) { $s = 162; continue; } + /* */ $s = 163; continue; + /* if (!($interfaceIsEqual(info.parseErr, $ifaceNil))) { */ case 162: + $r = badFile(name, info.parseErr); /* */ $s = 164; case 164: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 163: + pkg = ""; + if (!(info.parsed === ptrType$8.nil)) { + pkg = info.parsed.Name.Name; + if (pkg === "documentation") { + p[0].IgnoredGoFiles = $append(p[0].IgnoredGoFiles, name); + _i$6++; + /* continue; */ $s = 144; continue; + } + } + isTest = strings.HasSuffix(name, "_test.go"); + isXTest = false; + if (isTest && strings.HasSuffix(pkg, "_test") && !(p[0].Name === pkg)) { + isXTest = true; + pkg = $substring(pkg, 0, (pkg.length - 5 >> 0)); + } + /* */ if (p[0].Name === "") { $s = 165; continue; } + /* */ if (!(pkg === p[0].Name)) { $s = 166; continue; } + /* */ $s = 167; continue; + /* if (p[0].Name === "") { */ case 165: + p[0].Name = pkg; + firstFile = name; + $s = 167; continue; + /* } else if (!(pkg === p[0].Name)) { */ case 166: + $r = badFile(name, new MultiplePackageError.ptr(p[0].Dir, new sliceType([p[0].Name, pkg]), new sliceType([firstFile, name]))); /* */ $s = 168; case 168: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 167: + /* */ if (!(info.parsed === ptrType$8.nil) && !(info.parsed.Doc === ptrType$4.nil) && p[0].Doc === "" && !isTest && !isXTest) { $s = 169; continue; } + /* */ $s = 170; continue; + /* if (!(info.parsed === ptrType$8.nil) && !(info.parsed.Doc === ptrType$4.nil) && p[0].Doc === "" && !isTest && !isXTest) { */ case 169: + _r$56 = doc.Synopsis(info.parsed.Doc.Text()); /* */ $s = 171; case 171: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } + p[0].Doc = _r$56; + /* } */ case 170: + /* */ if (!((((mode & 4) >>> 0) === 0))) { $s = 172; continue; } + /* */ $s = 173; continue; + /* if (!((((mode & 4) >>> 0) === 0))) { */ case 172: + _r$57 = findImportComment(data); /* */ $s = 174; case 174: if($c) { $c = false; _r$57 = _r$57.$blk(); } if (_r$57 && _r$57.$blk !== undefined) { break s; } + _tuple$5 = _r$57; + qcom = _tuple$5[0]; + line = _tuple$5[1]; + /* */ if (!((line === 0))) { $s = 175; continue; } + /* */ $s = 176; continue; + /* if (!((line === 0))) { */ case 175: + _tuple$6 = strconv.Unquote(qcom); + com = _tuple$6[0]; + err$3 = _tuple$6[1]; + /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 177; continue; } + /* */ if (p[0].ImportComment === "") { $s = 178; continue; } + /* */ if (!(p[0].ImportComment === com)) { $s = 179; continue; } + /* */ $s = 180; continue; + /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 177: + _arg$2 = name; + _r$58 = fmt.Errorf("%s:%d: cannot parse import comment", new sliceType$2([new $String(filename), new $Int(line)])); /* */ $s = 181; case 181: if($c) { $c = false; _r$58 = _r$58.$blk(); } if (_r$58 && _r$58.$blk !== undefined) { break s; } + _arg$3 = _r$58; + $r = badFile(_arg$2, _arg$3); /* */ $s = 182; case 182: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 180; continue; + /* } else if (p[0].ImportComment === "") { */ case 178: + p[0].ImportComment = com; + firstCommentFile = name; + $s = 180; continue; + /* } else if (!(p[0].ImportComment === com)) { */ case 179: + _arg$4 = name; + _r$59 = fmt.Errorf("found import comments %q (%s) and %q (%s) in %s", new sliceType$2([new $String(p[0].ImportComment), new $String(firstCommentFile), new $String(com), new $String(name), new $String(p[0].Dir)])); /* */ $s = 183; case 183: if($c) { $c = false; _r$59 = _r$59.$blk(); } if (_r$59 && _r$59.$blk !== undefined) { break s; } + _arg$5 = _r$59; + $r = badFile(_arg$4, _arg$5); /* */ $s = 184; case 184: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 180: + /* } */ case 176: + /* } */ case 173: + isCgo = false; + _ref$7 = info.imports; + _i$7 = 0; + /* while (true) { */ case 185: + /* if (!(_i$7 < _ref$7.$length)) { break; } */ if(!(_i$7 < _ref$7.$length)) { $s = 186; continue; } + imp = $clone(((_i$7 < 0 || _i$7 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$7]), fileImport); + /* */ if (imp.path === "C") { $s = 187; continue; } + /* */ $s = 188; continue; + /* if (imp.path === "C") { */ case 187: + /* */ if (isTest) { $s = 189; continue; } + /* */ $s = 190; continue; + /* if (isTest) { */ case 189: + _arg$6 = name; + _r$60 = fmt.Errorf("use of cgo in test %s not supported", new sliceType$2([new $String(filename)])); /* */ $s = 191; case 191: if($c) { $c = false; _r$60 = _r$60.$blk(); } if (_r$60 && _r$60.$blk !== undefined) { break s; } + _arg$7 = _r$60; + $r = badFile(_arg$6, _arg$7); /* */ $s = 192; case 192: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$7++; + /* continue; */ $s = 185; continue; + /* } */ case 190: + isCgo = true; + /* */ if (!(imp.doc === ptrType$4.nil)) { $s = 193; continue; } + /* */ $s = 194; continue; + /* if (!(imp.doc === ptrType$4.nil)) { */ case 193: + _r$61 = ctxt[0].saveCgo(filename, p[0], imp.doc); /* */ $s = 195; case 195: if($c) { $c = false; _r$61 = _r$61.$blk(); } if (_r$61 && _r$61.$blk !== undefined) { break s; } + err$4 = _r$61; + /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 196; continue; } + /* */ $s = 197; continue; + /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 196: + $r = badFile(name, err$4); /* */ $s = 198; case 198: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 197: + /* } */ case 194: + /* } */ case 188: + _i$7++; + $s = 185; continue; + case 186: + fileList = ptrType$7.nil; + _tmp$4 = false; + _tmp$5 = false; + importMap = _tmp$4; + embedMap = _tmp$5; + if (isCgo) { + _key = "cgo"; (allTags || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); + if (ctxt[0].CgoEnabled) { + fileList = (p[0].$ptr_CgoFiles || (p[0].$ptr_CgoFiles = new ptrType$7(function() { return this.$target.CgoFiles; }, function($v) { this.$target.CgoFiles = $v; }, p[0]))); + importMap = importPos; + embedMap = embedPos; + } else { + fileList = (p[0].$ptr_IgnoredGoFiles || (p[0].$ptr_IgnoredGoFiles = new ptrType$7(function() { return this.$target.IgnoredGoFiles; }, function($v) { this.$target.IgnoredGoFiles = $v; }, p[0]))); + } + } else if (isXTest) { + fileList = (p[0].$ptr_XTestGoFiles || (p[0].$ptr_XTestGoFiles = new ptrType$7(function() { return this.$target.XTestGoFiles; }, function($v) { this.$target.XTestGoFiles = $v; }, p[0]))); + importMap = xTestImportPos; + embedMap = xTestEmbedPos; + } else if (isTest) { + fileList = (p[0].$ptr_TestGoFiles || (p[0].$ptr_TestGoFiles = new ptrType$7(function() { return this.$target.TestGoFiles; }, function($v) { this.$target.TestGoFiles = $v; }, p[0]))); + importMap = testImportPos; + embedMap = testEmbedPos; + } else { + fileList = (p[0].$ptr_GoFiles || (p[0].$ptr_GoFiles = new ptrType$7(function() { return this.$target.GoFiles; }, function($v) { this.$target.GoFiles = $v; }, p[0]))); + importMap = importPos; + embedMap = embedPos; + } + fileList.$set($append(fileList.$get(), name)); + /* */ if (!(importMap === false)) { $s = 199; continue; } + /* */ $s = 200; continue; + /* if (!(importMap === false)) { */ case 199: + _ref$8 = info.imports; + _i$8 = 0; + /* while (true) { */ case 201: + /* if (!(_i$8 < _ref$8.$length)) { break; } */ if(!(_i$8 < _ref$8.$length)) { $s = 202; continue; } + imp$1 = $clone(((_i$8 < 0 || _i$8 >= _ref$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$8.$array[_ref$8.$offset + _i$8]), fileImport); + _r$62 = fset.Position(imp$1.pos); /* */ $s = 203; case 203: if($c) { $c = false; _r$62 = _r$62.$blk(); } if (_r$62 && _r$62.$blk !== undefined) { break s; } + _key$1 = imp$1.path; (importMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: $append((_entry = $mapIndex(importMap,$String.keyFor(imp$1.path)), _entry !== undefined ? _entry.v : sliceType$5.nil), _r$62) }); + _i$8++; + $s = 201; continue; + case 202: + /* } */ case 200: + if (!(embedMap === false)) { + _ref$9 = info.embeds; + _i$9 = 0; + while (true) { + if (!(_i$9 < _ref$9.$length)) { break; } + emb = $clone(((_i$9 < 0 || _i$9 >= _ref$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$9.$array[_ref$9.$offset + _i$9]), fileEmbed); + _key$2 = emb.pattern; (embedMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: $append((_entry$1 = $mapIndex(embedMap,$String.keyFor(emb.pattern)), _entry$1 !== undefined ? _entry$1.v : sliceType$5.nil), emb.pos) }); + _i$9++; + } + } + _i$6++; + $s = 144; continue; + case 145: + _ref$10 = allTags; + _i$10 = 0; + _keys = _ref$10 ? _ref$10.keys() : undefined; + _size = _ref$10 ? _ref$10.size : 0; + while (true) { + if (!(_i$10 < _size)) { break; } + _key$3 = _keys.next().value; + _entry$2 = _ref$10.get(_key$3); + if (_entry$2 === undefined) { + _i$10++; + continue; + } + tag = _entry$2.k; + p[0].AllTags = $append(p[0].AllTags, tag); + _i$10++; + } + $r = sort.Strings(p[0].AllTags); /* */ $s = 204; case 204: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$63 = cleanDecls(embedPos); /* */ $s = 205; case 205: if($c) { $c = false; _r$63 = _r$63.$blk(); } if (_r$63 && _r$63.$blk !== undefined) { break s; } + _tuple$7 = _r$63; + p[0].EmbedPatterns = _tuple$7[0]; + p[0].EmbedPatternPos = _tuple$7[1]; + _r$64 = cleanDecls(testEmbedPos); /* */ $s = 206; case 206: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } + _tuple$8 = _r$64; + p[0].TestEmbedPatterns = _tuple$8[0]; + p[0].TestEmbedPatternPos = _tuple$8[1]; + _r$65 = cleanDecls(xTestEmbedPos); /* */ $s = 207; case 207: if($c) { $c = false; _r$65 = _r$65.$blk(); } if (_r$65 && _r$65.$blk !== undefined) { break s; } + _tuple$9 = _r$65; + p[0].XTestEmbedPatterns = _tuple$9[0]; + p[0].XTestEmbedPatternPos = _tuple$9[1]; + _r$66 = cleanDecls(importPos); /* */ $s = 208; case 208: if($c) { $c = false; _r$66 = _r$66.$blk(); } if (_r$66 && _r$66.$blk !== undefined) { break s; } + _tuple$10 = _r$66; + p[0].Imports = _tuple$10[0]; + p[0].ImportPos = _tuple$10[1]; + _r$67 = cleanDecls(testImportPos); /* */ $s = 209; case 209: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } + _tuple$11 = _r$67; + p[0].TestImports = _tuple$11[0]; + p[0].TestImportPos = _tuple$11[1]; + _r$68 = cleanDecls(xTestImportPos); /* */ $s = 210; case 210: if($c) { $c = false; _r$68 = _r$68.$blk(); } if (_r$68 && _r$68.$blk !== undefined) { break s; } + _tuple$12 = _r$68; + p[0].XTestImports = _tuple$12[0]; + p[0].XTestImportPos = _tuple$12[1]; + /* */ if (p[0].CgoFiles.$length > 0) { $s = 211; continue; } + /* */ $s = 212; continue; + /* if (p[0].CgoFiles.$length > 0) { */ case 211: + p[0].SFiles = $appendSlice(p[0].SFiles, Sfiles); + $r = sort.Strings(p[0].SFiles); /* */ $s = 214; case 214: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 213; continue; + /* } else { */ case 212: + p[0].IgnoredOtherFiles = $appendSlice(p[0].IgnoredOtherFiles, Sfiles); + $r = sort.Strings(p[0].IgnoredOtherFiles); /* */ $s = 215; case 215: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 213: + if (!($interfaceIsEqual(badGoError[0], $ifaceNil))) { + $s = -1; return [p[0], badGoError[0]]; + } + if ((((p[0].GoFiles.$length + p[0].CgoFiles.$length >> 0) + p[0].TestGoFiles.$length >> 0) + p[0].XTestGoFiles.$length >> 0) === 0) { + $s = -1; return [p[0], new NoGoError.ptr(p[0].Dir)]; + } + $s = -1; return [p[0], pkgerr]; + /* */ } return; } var $f = {$blk: Import$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, Sfiles, _1, _3, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _entry$2, _i, _i$1, _i$10, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _key$3, _keys, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, all, allTags, badFile, badFiles, badGoError, binaryOnly, com, ctxt, d, data, dir, dir$1, dir$2, dir$3, dir$4, dir$5, dir$6, dirs, earlyRoot, emb, embedMap, embedPos, err, err$1, err$2, err$3, err$4, ext, fileList, filename, firstCommentFile, firstFile, format, fset, gopath$1, gorootFirst, i, imp, imp$1, importMap, importPos, inTestdata, info, isCgo, isDir$1, isDir$2, isDir$3, isTest, isXTest, line, list, mode, name, ok, ok$1, p, path$1, paths, pkg, pkga, pkgerr, pkgtargetroot, qcom, root, root$1, root$2, root$3, rootsrc, searchVendor, setPkga, srcDir, sub, sub$1, suffix, tag, testEmbedPos, testImportPos, tried, xTestEmbedPos, xTestImportPos, $s};return $f; + }; + fileListForExt = function fileListForExt$1(p, ext) { + var _1, ext, p; + _1 = ext; + if (_1 === (".c")) { + return (p.$ptr_CFiles || (p.$ptr_CFiles = new ptrType$7(function() { return this.$target.CFiles; }, function($v) { this.$target.CFiles = $v; }, p))); + } else if (_1 === (".cc") || _1 === (".cpp") || _1 === (".cxx")) { + return (p.$ptr_CXXFiles || (p.$ptr_CXXFiles = new ptrType$7(function() { return this.$target.CXXFiles; }, function($v) { this.$target.CXXFiles = $v; }, p))); + } else if (_1 === (".m")) { + return (p.$ptr_MFiles || (p.$ptr_MFiles = new ptrType$7(function() { return this.$target.MFiles; }, function($v) { this.$target.MFiles = $v; }, p))); + } else if (_1 === (".h") || _1 === (".hh") || _1 === (".hpp") || _1 === (".hxx")) { + return (p.$ptr_HFiles || (p.$ptr_HFiles = new ptrType$7(function() { return this.$target.HFiles; }, function($v) { this.$target.HFiles = $v; }, p))); + } else if (_1 === (".f") || _1 === (".F") || _1 === (".for") || _1 === (".f90")) { + return (p.$ptr_FFiles || (p.$ptr_FFiles = new ptrType$7(function() { return this.$target.FFiles; }, function($v) { this.$target.FFiles = $v; }, p))); + } else if (_1 === (".s") || _1 === (".S") || _1 === (".sx")) { + return (p.$ptr_SFiles || (p.$ptr_SFiles = new ptrType$7(function() { return this.$target.SFiles; }, function($v) { this.$target.SFiles = $v; }, p))); + } else if (_1 === (".swig")) { + return (p.$ptr_SwigFiles || (p.$ptr_SwigFiles = new ptrType$7(function() { return this.$target.SwigFiles; }, function($v) { this.$target.SwigFiles = $v; }, p))); + } else if (_1 === (".swigcxx")) { + return (p.$ptr_SwigCXXFiles || (p.$ptr_SwigCXXFiles = new ptrType$7(function() { return this.$target.SwigCXXFiles; }, function($v) { this.$target.SwigCXXFiles = $v; }, p))); + } else if (_1 === (".syso")) { + return (p.$ptr_SysoFiles || (p.$ptr_SysoFiles = new ptrType$7(function() { return this.$target.SysoFiles; }, function($v) { this.$target.SysoFiles = $v; }, p))); + } + return ptrType$7.nil; + }; + $ptrType(Context).prototype.importGo = function importGo(p, path$1, srcDir, mode) { + var {$24r, $24r$1, $24r$2, _1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, absSrcDir, buf, cgo, cmd, ctxt, d, dir, dir$1, err, err$1, err$2, err$3, err$4, errStr, f, f$1, go111Module, goCmd, mode, ok, p, parent, path$1, srcDir, stderr, stdout, $s, $r, $c} = $restore(this, {p, path$1, srcDir, mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + stderr = [stderr]; + stdout = [stdout]; + ctxt = this; + if (!((((mode & 2) >>> 0) === 0)) || !((((mode & 8) >>> 0) === 0)) || !(ctxt.JoinPath === $throwNilPointerError) || !(ctxt.SplitPathList === $throwNilPointerError) || !(ctxt.IsAbsPath === $throwNilPointerError) || !(ctxt.IsDir === $throwNilPointerError) || !(ctxt.HasSubdir === $throwNilPointerError) || !(ctxt.ReadDir === $throwNilPointerError) || !(ctxt.OpenFile === $throwNilPointerError) || !equal(ctxt.ToolTags, defaultToolTags) || !equal(ctxt.ReleaseTags, defaultReleaseTags)) { + $s = -1; return errNoModules; + } + if (ctxt.GOROOT === "") { + $s = -1; return errNoModules; + } + _r$1 = os.Getenv("GO111MODULE"); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + go111Module = _r$1; + _1 = go111Module; + if (_1 === ("off")) { + $s = -1; return errNoModules; + } + /* */ if (!(srcDir === "")) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(srcDir === "")) { */ case 2: + absSrcDir = ""; + /* */ if (filepath.IsAbs(srcDir)) { $s = 4; continue; } + /* */ if (!(ctxt.Dir === "")) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (filepath.IsAbs(srcDir)) { */ case 4: + absSrcDir = srcDir; + $s = 7; continue; + /* } else if (!(ctxt.Dir === "")) { */ case 5: + _r$2 = fmt.Errorf("go/build: Dir is non-empty, so relative srcDir is not allowed: %v", new sliceType$2([new $String(srcDir)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 9; case 9: return $24r; + /* } else { */ case 6: + err = $ifaceNil; + _r$3 = filepath.Abs(srcDir); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + absSrcDir = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return errNoModules; + } + /* } */ case 7: + _r$4 = ctxt.hasSubdir(filepath.Join(new sliceType([ctxt.GOROOT, "src"])), absSrcDir); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + ok = _tuple$1[1]; + if (ok) { + $s = -1; return errNoModules; + } + /* } */ case 3: + _r$5 = ctxt.joinPath(new sliceType([ctxt.GOROOT, "src", path$1])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + dir = _r$5; + _r$6 = ctxt.isDir(dir); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$6) { */ case 13: + $s = -1; return errNoModules; + /* } */ case 14: + /* */ if (go111Module === "auto") { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (go111Module === "auto") { */ case 16: + parent = ""; + err$1 = $ifaceNil; + /* */ if (ctxt.Dir === "") { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (ctxt.Dir === "") { */ case 18: + _r$7 = os.Getwd(); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$2 = _r$7; + parent = _tuple$2[0]; + err$1 = _tuple$2[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return errNoModules; + } + $s = 20; continue; + /* } else { */ case 19: + _r$8 = filepath.Abs(ctxt.Dir); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$3 = _r$8; + parent = _tuple$3[0]; + err$1 = _tuple$3[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* } */ case 20: + /* while (true) { */ case 23: + _r$9 = ctxt.joinPath(new sliceType([parent, "go.mod"])); /* */ $s = 25; case 25: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = ctxt.openFile(_r$9); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$4 = _r$10; + f = _tuple$4[0]; + err$2 = _tuple$4[1]; + /* */ if ($interfaceIsEqual(err$2, $ifaceNil)) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if ($interfaceIsEqual(err$2, $ifaceNil)) { */ case 27: + buf = $makeSlice(sliceType$1, 100); + _r$11 = f.Read(buf); /* */ $s = 29; case 29: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$5 = _r$11; + err$3 = _tuple$5[1]; + _r$12 = f.Close(); /* */ $s = 30; case 30: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + if ($interfaceIsEqual(err$3, $ifaceNil) || $interfaceIsEqual(err$3, io.EOF)) { + /* break; */ $s = 24; continue; + } + /* } */ case 28: + d = filepath.Dir(parent); + if (d.length >= parent.length) { + $s = -1; return errNoModules; + } + parent = d; + $s = 23; continue; + case 24: + /* } */ case 17: + goCmd = filepath.Join(new sliceType([ctxt.GOROOT, "bin", "go"])); + cmd = exec.Command(goCmd, new sliceType(["list", "-e", "-compiler=" + ctxt.Compiler, "-tags=" + strings.Join(ctxt.BuildTags, ","), "-installsuffix=" + ctxt.InstallSuffix, "-f={{.Dir}}\n{{.ImportPath}}\n{{.Root}}\n{{.Goroot}}\n{{if .Error}}{{.Error}}{{end}}\n", "--", path$1])); + if (!(ctxt.Dir === "")) { + cmd.Dir = ctxt.Dir; + } + _tmp = new strings.Builder.ptr(ptrType$9.nil, sliceType$1.nil); + _tmp$1 = new strings.Builder.ptr(ptrType$9.nil, sliceType$1.nil); + stdout[0] = $clone(_tmp, strings.Builder); + stderr[0] = $clone(_tmp$1, strings.Builder); + cmd.Stdout = stdout[0]; + cmd.Stderr = stderr[0]; + cgo = "0"; + if (ctxt.CgoEnabled) { + cgo = "1"; + } + _r$13 = cmd.Environ(); /* */ $s = 31; case 31: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + cmd.Env = $append(_r$13, "GOOS=" + ctxt.GOOS, "GOARCH=" + ctxt.GOARCH, "GOROOT=" + ctxt.GOROOT, "GOPATH=" + ctxt.GOPATH, "CGO_ENABLED=" + cgo); + _r$14 = cmd.Run(); /* */ $s = 32; case 32: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + err$4 = _r$14; + /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 33: + _r$15 = fmt.Errorf("go/build: go list %s: %v\n%s\n", new sliceType$2([new $String(path$1), err$4, new $String(stderr[0].String())])); /* */ $s = 35; case 35: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $24r$1 = _r$15; + $s = 36; case 36: return $24r$1; + /* } */ case 34: + f$1 = strings.SplitN(stdout[0].String(), "\n", 5); + /* */ if (!((f$1.$length === 5))) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (!((f$1.$length === 5))) { */ case 37: + _r$16 = fmt.Errorf("go/build: importGo %s: unexpected output:\n%s\n", new sliceType$2([new $String(path$1), new $String(stdout[0].String())])); /* */ $s = 39; case 39: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + $24r$2 = _r$16; + $s = 40; case 40: return $24r$2; + /* } */ case 38: + dir$1 = (0 >= f$1.$length ? ($throwRuntimeError("index out of range"), undefined) : f$1.$array[f$1.$offset + 0]); + _r$17 = strings.TrimSpace((4 >= f$1.$length ? ($throwRuntimeError("index out of range"), undefined) : f$1.$array[f$1.$offset + 4])); /* */ $s = 41; case 41: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + errStr = _r$17; + if (!(errStr === "") && dir$1 === "") { + $s = -1; return errors.New(errStr); + } + p.Dir = dir$1; + p.ImportPath = (1 >= f$1.$length ? ($throwRuntimeError("index out of range"), undefined) : f$1.$array[f$1.$offset + 1]); + p.Root = (2 >= f$1.$length ? ($throwRuntimeError("index out of range"), undefined) : f$1.$array[f$1.$offset + 2]); + p.Goroot = (3 >= f$1.$length ? ($throwRuntimeError("index out of range"), undefined) : f$1.$array[f$1.$offset + 3]) === "true"; + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: importGo, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, absSrcDir, buf, cgo, cmd, ctxt, d, dir, dir$1, err, err$1, err$2, err$3, err$4, errStr, f, f$1, go111Module, goCmd, mode, ok, p, parent, path$1, srcDir, stderr, stdout, $s};return $f; + }; + equal = function equal$1(x, y) { + var _i, _ref, i, x, xi, y; + if (!((x.$length === y.$length))) { + return false; + } + _ref = x; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + xi = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(xi === ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i]))) { + return false; + } + _i++; + } + return true; + }; + hasGoFiles = function hasGoFiles$1(ctxt, dir) { + var {_i, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _v, ctxt, dir, ent, ents, $s, $r, $c} = $restore(this, {ctxt, dir}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = ctxt.readDir(dir); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + ents = _tuple[0]; + _ref = ents; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + ent = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$2 = ent.IsDir(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + if (!(!_r$2)) { _v = false; $s = 6; continue s; } + _r$3 = ent.Name(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = strings.HasSuffix(_r$3, ".go"); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = _r$4; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + $s = -1; return true; + /* } */ case 5: + _i++; + $s = 2; continue; + case 3: + $s = -1; return false; + /* */ } return; } var $f = {$blk: hasGoFiles$1, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _v, ctxt, dir, ent, ents, $s};return $f; + }; + findImportComment = function findImportComment$1(data) { + var {$24r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, arg, comment, data, line, ok, s, word, $s, $r, $c} = $restore(this, {data}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = ""; + line = 0; + _tuple = parseWord(data); + word = _tuple[0]; + data = _tuple[1]; + if (!(($bytesToString(word)) === "package")) { + _tmp = ""; + _tmp$1 = 0; + s = _tmp; + line = _tmp$1; + $s = -1; return [s, line]; + } + _tuple$1 = parseWord(data); + data = _tuple$1[1]; + while (true) { + if (!(data.$length > 0 && (((0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0]) === 32) || ((0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0]) === 9) || ((0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0]) === 13)))) { break; } + data = $subslice(data, 1); + } + comment = sliceType$1.nil; + if (bytes.HasPrefix(data, slashSlash)) { + _tuple$2 = bytes.Cut($subslice(data, 2), newline); + comment = _tuple$2[0]; + } else if (bytes.HasPrefix(data, slashStar)) { + ok = false; + _tuple$3 = bytes.Cut($subslice(data, 2), starSlash); + comment = _tuple$3[0]; + ok = _tuple$3[2]; + if (!ok) { + _tmp$2 = ""; + _tmp$3 = 0; + s = _tmp$2; + line = _tmp$3; + $s = -1; return [s, line]; + } + if (bytes.Contains(comment, newline)) { + _tmp$4 = ""; + _tmp$5 = 0; + s = _tmp$4; + line = _tmp$5; + $s = -1; return [s, line]; + } + } + _r$1 = bytes.TrimSpace(comment); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + comment = _r$1; + _tuple$4 = parseWord(comment); + word = _tuple$4[0]; + arg = _tuple$4[1]; + if (!(($bytesToString(word)) === "import")) { + _tmp$6 = ""; + _tmp$7 = 0; + s = _tmp$6; + line = _tmp$7; + $s = -1; return [s, line]; + } + line = 1 + bytes.Count($subslice(data, 0, (data.$capacity - arg.$capacity >> 0)), newline) >> 0; + _r$2 = strings.TrimSpace(($bytesToString(arg))); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tmp$8 = _r$2; + _tmp$9 = line; + s = _tmp$8; + line = _tmp$9; + $24r = [s, line]; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: findImportComment$1, $c: true, $r, $24r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, arg, comment, data, line, ok, s, word, $s};return $f; + }; + skipSpaceOrComment = function skipSpaceOrComment$1(data) { + var _1, data, i, i$1; + while (true) { + if (!(data.$length > 0)) { break; } + _1 = (0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0]); + if ((_1 === (32)) || (_1 === (9)) || (_1 === (13)) || (_1 === (10))) { + data = $subslice(data, 1); + continue; + } else if (_1 === (47)) { + if (bytes.HasPrefix(data, slashSlash)) { + i = bytes.Index(data, newline); + if (i < 0) { + return sliceType$1.nil; + } + data = $subslice(data, (i + 1 >> 0)); + continue; + } + if (bytes.HasPrefix(data, slashStar)) { + data = $subslice(data, 2); + i$1 = bytes.Index(data, starSlash); + if (i$1 < 0) { + return sliceType$1.nil; + } + data = $subslice(data, (i$1 + 2 >> 0)); + continue; + } + } + break; + } + return data; + }; + parseWord = function parseWord$1(data) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, data, r, rest, size, word; + word = sliceType$1.nil; + rest = sliceType$1.nil; + data = skipSpaceOrComment(data); + rest = data; + while (true) { + _tuple = utf8.DecodeRune(rest); + r = _tuple[0]; + size = _tuple[1]; + if (unicode.IsLetter(r) || 48 <= r && r <= 57 || (r === 95)) { + rest = $subslice(rest, size); + continue; + } + break; + } + word = $subslice(data, 0, (data.$length - rest.$length >> 0)); + if (word.$length === 0) { + _tmp = sliceType$1.nil; + _tmp$1 = sliceType$1.nil; + word = _tmp; + rest = _tmp$1; + return [word, rest]; + } + _tmp$2 = word; + _tmp$3 = rest; + word = _tmp$2; + rest = _tmp$3; + return [word, rest]; + }; + $ptrType(Context).prototype.MatchFile = function MatchFile(dir, name) { + var {_r$1, _tmp, _tmp$1, _tuple, ctxt, dir, err, info, match, name, $s, $r, $c} = $restore(this, {dir, name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + match = false; + err = $ifaceNil; + ctxt = this; + _r$1 = ctxt.matchFile(dir, name, false, ptrType$5.nil, ptrType$1.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + info = _tuple[0]; + err = _tuple[1]; + _tmp = !(info === ptrType$6.nil); + _tmp$1 = err; + match = _tmp; + err = _tmp$1; + $s = -1; return [match, err]; + /* */ } return; } var $f = {$blk: MatchFile, $c: true, $r, _r$1, _tmp, _tmp$1, _tuple, ctxt, dir, err, info, match, name, $s};return $f; + }; + $ptrType(Context).prototype.matchFile = function matchFile(dir, name, allTags, binaryOnly, fset) { + var {$24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, allTags, binaryOnly, ctxt, dir, err, ext, f, fset, i, info, name, ok, sawBinaryOnly, $s, $r, $c} = $restore(this, {dir, name, allTags, binaryOnly, fset}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ctxt = this; + if (strings.HasPrefix(name, "_") || strings.HasPrefix(name, ".")) { + $s = -1; return [ptrType$6.nil, $ifaceNil]; + } + i = strings.LastIndex(name, "."); + if (i < 0) { + i = name.length; + } + ext = $substring(name, i); + if (!ctxt.goodOSArchFile(name, allTags) && !ctxt.UseAllFiles) { + $s = -1; return [ptrType$6.nil, $ifaceNil]; + } + if (!(ext === ".go") && fileListForExt(dummyPkg, ext) === ptrType$7.nil) { + $s = -1; return [ptrType$6.nil, $ifaceNil]; + } + _r$1 = ctxt.joinPath(new sliceType([dir, name])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + info = new fileInfo.ptr(_r$1, sliceType$1.nil, fset, ptrType$8.nil, $ifaceNil, sliceType$6.nil, sliceType$3.nil); + if (ext === ".syso") { + $s = -1; return [info, $ifaceNil]; + } + _r$2 = ctxt.openFile(info.name); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$6.nil, err]; + } + /* */ if (strings.HasSuffix(name, ".go")) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (strings.HasSuffix(name, ".go")) { */ case 3: + _r$3 = readGoInfo(f, info); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + if (strings.HasSuffix(name, "_test.go")) { + binaryOnly = ptrType$5.nil; + } + $s = 5; continue; + /* } else { */ case 4: + binaryOnly = ptrType$5.nil; + _r$4 = readComments(f); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + info.header = _tuple$1[0]; + err = _tuple$1[1]; + /* } */ case 5: + _r$5 = f.Close(); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 9: + _r$6 = fmt.Errorf("read %s: %v", new sliceType$2([new $String(info.name), err])); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r = [ptrType$6.nil, _r$6]; + $s = 12; case 12: return $24r; + /* } */ case 10: + _r$7 = ctxt.shouldBuild(info.header, allTags); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$2 = _r$7; + ok = _tuple$2[0]; + sawBinaryOnly = _tuple$2[1]; + err = _tuple$2[2]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 14: + _r$8 = fmt.Errorf("%s: %v", new sliceType$2([new $String(name), err])); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r$1 = [ptrType$6.nil, _r$8]; + $s = 17; case 17: return $24r$1; + /* } */ case 15: + if (!ok && !ctxt.UseAllFiles) { + $s = -1; return [ptrType$6.nil, $ifaceNil]; + } + if (!(binaryOnly === ptrType$5.nil) && sawBinaryOnly) { + binaryOnly.$set(true); + } + $s = -1; return [info, $ifaceNil]; + /* */ } return; } var $f = {$blk: matchFile, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, allTags, binaryOnly, ctxt, dir, err, ext, f, fset, i, info, name, ok, sawBinaryOnly, $s};return $f; + }; + cleanDecls = function cleanDecls$1(m) { + var {_entry, _i, _key, _keys, _ref, _size, all, m, path$1, $s, $r, $c} = $restore(this, {m}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + all = $makeSlice(sliceType, 0, (m ? m.size : 0)); + _ref = m; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + path$1 = _entry.k; + all = $append(all, path$1); + _i++; + } + $r = sort.Strings(all); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [all, m]; + /* */ } return; } var $f = {$blk: cleanDecls$1, $c: true, $r, _entry, _i, _key, _keys, _ref, _size, all, m, path$1, $s};return $f; + }; + isGoBuildComment = function isGoBuildComment$1(line) { + var {$24r, _r$1, _r$2, _v, line, rest, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!bytes.HasPrefix(line, goBuildComment)) { + $s = -1; return false; + } + _r$1 = bytes.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + line = _r$1; + rest = $subslice(line, goBuildComment.$length); + if (rest.$length === 0) { _v = true; $s = 2; continue s; } + _r$2 = bytes.TrimSpace(rest); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2.$length < rest.$length; case 2: + $24r = _v; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: isGoBuildComment$1, $c: true, $r, $24r, _r$1, _r$2, _v, line, rest, $s};return $f; + }; + $ptrType(Context).prototype.shouldBuild = function shouldBuild(content, allTags) { + var {$24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tmp, _tmp$1, _tmp$10, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, allTags, binaryOnly, content, ctxt, err, err$1, err$2, goBuild, i, line, p, sawBinaryOnly, shouldBuild$1, text, x, x$1, $s, $r, $c} = $restore(this, {content, allTags}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + shouldBuild$1 = false; + binaryOnly = false; + err = $ifaceNil; + ctxt = this; + _r$1 = parseFileHeader(content); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + content = _tuple[0]; + goBuild = _tuple[1]; + sawBinaryOnly = _tuple[2]; + err = _tuple[3]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = false; + _tmp$1 = false; + _tmp$2 = err; + shouldBuild$1 = _tmp; + binaryOnly = _tmp$1; + err = _tmp$2; + $s = -1; return [shouldBuild$1, binaryOnly, err]; + } + /* */ if (!(goBuild === sliceType$1.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(goBuild === sliceType$1.nil)) { */ case 3: + _r$2 = constraint.Parse(($bytesToString(goBuild))); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + x = _tuple$1[0]; + err$1 = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 7: + _tmp$3 = false; + _tmp$4 = false; + _r$3 = fmt.Errorf("parsing //go:build line: %v", new sliceType$2([err$1])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tmp$5 = _r$3; + shouldBuild$1 = _tmp$3; + binaryOnly = _tmp$4; + err = _tmp$5; + $24r = [shouldBuild$1, binaryOnly, err]; + $s = 10; case 10: return $24r; + /* } */ case 8: + _r$4 = ctxt.eval$(x, allTags); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + shouldBuild$1 = _r$4; + $s = 5; continue; + /* } else { */ case 4: + shouldBuild$1 = true; + p = content; + /* while (true) { */ case 12: + /* if (!(p.$length > 0)) { break; } */ if(!(p.$length > 0)) { $s = 13; continue; } + line = p; + i = bytes.IndexByte(line, 10); + if (i >= 0) { + _tmp$6 = $subslice(line, 0, i); + _tmp$7 = $subslice(p, (i + 1 >> 0)); + line = _tmp$6; + p = _tmp$7; + } else { + p = $subslice(p, p.$length); + } + _r$5 = bytes.TrimSpace(line); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + line = _r$5; + if (!bytes.HasPrefix(line, bSlashSlash) || !bytes.Contains(line, bPlusBuild)) { + /* continue; */ $s = 12; continue; + } + text = ($bytesToString(line)); + _r$6 = constraint.IsPlusBuild(text); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (!_r$6) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!_r$6) { */ case 15: + /* continue; */ $s = 12; continue; + /* } */ case 16: + _r$7 = constraint.Parse(text); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$2 = _r$7; + x$1 = _tuple$2[0]; + err$2 = _tuple$2[1]; + /* */ if ($interfaceIsEqual(err$2, $ifaceNil)) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if ($interfaceIsEqual(err$2, $ifaceNil)) { */ case 19: + _r$8 = ctxt.eval$(x$1, allTags); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!_r$8) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!_r$8) { */ case 21: + shouldBuild$1 = false; + /* } */ case 22: + /* } */ case 20: + $s = 12; continue; + case 13: + /* } */ case 5: + case 2: + _tmp$8 = shouldBuild$1; + _tmp$9 = sawBinaryOnly; + _tmp$10 = $ifaceNil; + shouldBuild$1 = _tmp$8; + binaryOnly = _tmp$9; + err = _tmp$10; + $s = -1; return [shouldBuild$1, binaryOnly, err]; + /* */ } return; } var $f = {$blk: shouldBuild, $c: true, $r, $24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tmp, _tmp$1, _tmp$10, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, allTags, binaryOnly, content, ctxt, err, err$1, err$2, goBuild, i, line, p, sawBinaryOnly, shouldBuild$1, text, x, x$1, $s};return $f; + }; + parseFileHeader = function parseFileHeader$1(content) { + var {_r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _v, content, end, ended, err, goBuild, i, i$1, inSlashStar, line, p, sawBinaryOnly, trimmed, $s, $r, $c} = $restore(this, {content}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + trimmed = sliceType$1.nil; + goBuild = sliceType$1.nil; + sawBinaryOnly = false; + err = $ifaceNil; + end = 0; + p = content; + ended = false; + inSlashStar = false; + /* while (true) { */ case 1: + /* if (!(p.$length > 0)) { break; } */ if(!(p.$length > 0)) { $s = 2; continue; } + line = p; + i = bytes.IndexByte(line, 10); + if (i >= 0) { + _tmp = $subslice(line, 0, i); + _tmp$1 = $subslice(p, (i + 1 >> 0)); + line = _tmp; + p = _tmp$1; + } else { + p = $subslice(p, p.$length); + } + _r$1 = bytes.TrimSpace(line); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + line = _r$1; + if ((line.$length === 0) && !ended) { + end = content.$length - p.$length >> 0; + /* continue Lines; */ $s = 1; continue s; + } + if (!bytes.HasPrefix(line, slashSlash)) { + ended = true; + } + if (!(!inSlashStar)) { _v = false; $s = 6; continue s; } + _r$2 = isGoBuildComment(line); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + if (!(goBuild === sliceType$1.nil)) { + _tmp$2 = sliceType$1.nil; + _tmp$3 = sliceType$1.nil; + _tmp$4 = false; + _tmp$5 = errMultipleGoBuild; + trimmed = _tmp$2; + goBuild = _tmp$3; + sawBinaryOnly = _tmp$4; + err = _tmp$5; + $s = -1; return [trimmed, goBuild, sawBinaryOnly, err]; + } + goBuild = line; + /* } */ case 5: + if (!inSlashStar && bytes.Equal(line, binaryOnlyComment)) { + sawBinaryOnly = true; + } + /* while (true) { */ case 8: + /* if (!(line.$length > 0)) { break; } */ if(!(line.$length > 0)) { $s = 9; continue; } + /* */ if (inSlashStar) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (inSlashStar) { */ case 10: + i$1 = bytes.Index(line, starSlash); + /* */ if (i$1 >= 0) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (i$1 >= 0) { */ case 12: + inSlashStar = false; + _r$3 = bytes.TrimSpace($subslice(line, (i$1 + starSlash.$length >> 0))); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + line = _r$3; + /* continue Comments; */ $s = 8; continue s; + /* } */ case 13: + /* continue Lines; */ $s = 1; continue s; + /* } */ case 11: + if (bytes.HasPrefix(line, bSlashSlash)) { + /* continue Lines; */ $s = 1; continue s; + } + /* */ if (bytes.HasPrefix(line, bSlashStar)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (bytes.HasPrefix(line, bSlashStar)) { */ case 15: + inSlashStar = true; + _r$4 = bytes.TrimSpace($subslice(line, bSlashStar.$length)); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + line = _r$4; + /* continue Comments; */ $s = 8; continue s; + /* } */ case 16: + /* break Lines; */ $s = 2; continue s; + case 9: + $s = 1; continue; + case 2: + _tmp$6 = $subslice(content, 0, end); + _tmp$7 = goBuild; + _tmp$8 = sawBinaryOnly; + _tmp$9 = $ifaceNil; + trimmed = _tmp$6; + goBuild = _tmp$7; + sawBinaryOnly = _tmp$8; + err = _tmp$9; + $s = -1; return [trimmed, goBuild, sawBinaryOnly, err]; + /* */ } return; } var $f = {$blk: parseFileHeader$1, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _v, content, end, ended, err, goBuild, i, i$1, inSlashStar, line, p, sawBinaryOnly, trimmed, $s};return $f; + }; + $ptrType(Context).prototype.saveCgo = function saveCgo(filename, di, cg) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _2, _i, _i$1, _i$2, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, arg, args, argstr, c, cg, cond, ctxt, di, err, f, filename, i, line, line$1, ok, ok$1, orig, text, verb, x, $s, $r, $c} = $restore(this, {filename, di, cg}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ctxt = this; + text = cg.Text(); + _ref = strings.Split(text, "\n"); + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + orig = line; + _r$1 = strings.TrimSpace(line); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + line = _r$1; + if (line.length < 5 || !($substring(line, 0, 4) === "#cgo") || (!((line.charCodeAt(4) === 32)) && !((line.charCodeAt(4) === 9)))) { + _i++; + /* continue; */ $s = 1; continue; + } + _r$2 = strings.TrimSpace($substring(line, 4)); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = strings.Cut(_r$2, ":"); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + line$1 = _tuple[0]; + argstr = _tuple[1]; + ok = _tuple[2]; + /* */ if (!ok) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!ok) { */ case 6: + _r$4 = fmt.Errorf("%s: invalid #cgo line: %s", new sliceType$2([new $String(filename), new $String(orig)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 9; case 9: return $24r; + /* } */ case 7: + _r$5 = strings.Fields(line$1); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + f = _r$5; + /* */ if (f.$length < 1) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (f.$length < 1) { */ case 11: + _r$6 = fmt.Errorf("%s: invalid #cgo line: %s", new sliceType$2([new $String(filename), new $String(orig)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$1 = _r$6; + $s = 14; case 14: return $24r$1; + /* } */ case 12: + _tmp = $subslice(f, 0, (f.$length - 1 >> 0)); + _tmp$1 = (x = f.$length - 1 >> 0, ((x < 0 || x >= f.$length) ? ($throwRuntimeError("index out of range"), undefined) : f.$array[f.$offset + x])); + cond = _tmp; + verb = _tmp$1; + /* */ if (cond.$length > 0) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (cond.$length > 0) { */ case 15: + ok$1 = false; + _ref$1 = cond; + _i$1 = 0; + /* while (true) { */ case 17: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 18; continue; } + c = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$7 = ctxt.matchAuto(c, false); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (_r$7) { */ case 19: + ok$1 = true; + /* break; */ $s = 18; continue; + /* } */ case 20: + _i$1++; + $s = 17; continue; + case 18: + if (!ok$1) { + _i++; + /* continue; */ $s = 1; continue; + } + /* } */ case 16: + _tuple$1 = splitQuoted(argstr); + args = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 22: + _r$8 = fmt.Errorf("%s: invalid #cgo line: %s", new sliceType$2([new $String(filename), new $String(orig)])); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r$2 = _r$8; + $s = 25; case 25: return $24r$2; + /* } */ case 23: + _ref$2 = args; + _i$2 = 0; + /* while (true) { */ case 26: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 27; continue; } + i = _i$2; + arg = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + _tuple$2 = expandSrcDir(arg, di.Dir); + arg = _tuple$2[0]; + ok = _tuple$2[1]; + /* */ if (!ok) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!ok) { */ case 28: + _r$9 = fmt.Errorf("%s: malformed #cgo argument: %s", new sliceType$2([new $String(filename), new $String(arg)])); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $24r$3 = _r$9; + $s = 31; case 31: return $24r$3; + /* } */ case 29: + ((i < 0 || i >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i] = arg); + _i$2++; + $s = 26; continue; + case 27: + _1 = verb; + if (_1 === ("CFLAGS") || _1 === ("CPPFLAGS") || _1 === ("CXXFLAGS") || _1 === ("FFLAGS") || _1 === ("LDFLAGS")) { + ctxt.makePathsAbsolute(args, di.Dir); + } + _2 = verb; + /* */ if (_2 === ("CFLAGS")) { $s = 33; continue; } + /* */ if (_2 === ("CPPFLAGS")) { $s = 34; continue; } + /* */ if (_2 === ("CXXFLAGS")) { $s = 35; continue; } + /* */ if (_2 === ("FFLAGS")) { $s = 36; continue; } + /* */ if (_2 === ("LDFLAGS")) { $s = 37; continue; } + /* */ if (_2 === ("pkg-config")) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (_2 === ("CFLAGS")) { */ case 33: + di.CgoCFLAGS = $appendSlice(di.CgoCFLAGS, args); + $s = 40; continue; + /* } else if (_2 === ("CPPFLAGS")) { */ case 34: + di.CgoCPPFLAGS = $appendSlice(di.CgoCPPFLAGS, args); + $s = 40; continue; + /* } else if (_2 === ("CXXFLAGS")) { */ case 35: + di.CgoCXXFLAGS = $appendSlice(di.CgoCXXFLAGS, args); + $s = 40; continue; + /* } else if (_2 === ("FFLAGS")) { */ case 36: + di.CgoFFLAGS = $appendSlice(di.CgoFFLAGS, args); + $s = 40; continue; + /* } else if (_2 === ("LDFLAGS")) { */ case 37: + di.CgoLDFLAGS = $appendSlice(di.CgoLDFLAGS, args); + $s = 40; continue; + /* } else if (_2 === ("pkg-config")) { */ case 38: + di.CgoPkgConfig = $appendSlice(di.CgoPkgConfig, args); + $s = 40; continue; + /* } else { */ case 39: + _r$10 = fmt.Errorf("%s: invalid #cgo verb: %s", new sliceType$2([new $String(filename), new $String(orig)])); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $24r$4 = _r$10; + $s = 42; case 42: return $24r$4; + /* } */ case 40: + case 32: + _i++; + $s = 1; continue; + case 2: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: saveCgo, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _2, _i, _i$1, _i$2, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, arg, args, argstr, c, cg, cond, ctxt, di, err, f, filename, i, line, line$1, ok, ok$1, orig, text, verb, x, $s};return $f; + }; + expandSrcDir = function expandSrcDir$1(str, srcdir) { + var _i, _ref, chunk, chunks, ok, res, srcdir, str; + srcdir = filepath.ToSlash(srcdir); + chunks = strings.Split(str, "${SRCDIR}"); + if (chunks.$length < 2) { + return [str, safeCgoName(str)]; + } + ok = true; + _ref = chunks; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + chunk = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ok = ok && (chunk === "" || safeCgoName(chunk)); + _i++; + } + ok = ok && (srcdir === "" || safeCgoName(srcdir)); + res = strings.Join(chunks, srcdir); + return [res, ok && !(res === "")]; + }; + $ptrType(Context).prototype.makePathsAbsolute = function makePathsAbsolute(args, srcDir) { + var _i, _ref, arg, args, ctxt, i, nextPath, srcDir; + ctxt = this; + nextPath = false; + _ref = args; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (nextPath) { + if (!filepath.IsAbs(arg)) { + ((i < 0 || i >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i] = filepath.Join(new sliceType([srcDir, arg]))); + } + nextPath = false; + } else if (strings.HasPrefix(arg, "-I") || strings.HasPrefix(arg, "-L")) { + if (arg.length === 2) { + nextPath = true; + } else { + if (!filepath.IsAbs($substring(arg, 2))) { + ((i < 0 || i >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i] = $substring(arg, 0, 2) + filepath.Join(new sliceType([srcDir, $substring(arg, 2)]))); + } + } + } + _i++; + } + }; + safeCgoName = function safeCgoName$1(s) { + var c, i, s; + if (s === "") { + return false; + } + i = 0; + while (true) { + if (!(i < s.length)) { break; } + c = s.charCodeAt(i); + if (c < 128 && strings.IndexByte("+-.,/0123456789=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz:$@%! ~^", c) < 0) { + return false; + } + i = i + (1) >> 0; + } + return true; + }; + splitQuoted = function splitQuoted$1(s) { + var _i, _ref, _rune, _tmp, _tmp$1, arg, args, err, escaped, i, quote, quoted, r, rune, s; + r = sliceType.nil; + err = $ifaceNil; + args = sliceType.nil; + arg = $makeSlice(sliceType$7, s.length); + escaped = false; + quoted = false; + quote = 0; + i = 0; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + rune = _rune[0]; + if (escaped) { + escaped = false; + } else if ((rune === 92)) { + escaped = true; + _i += _rune[1]; + continue; + } else if (!((quote === 0))) { + if (rune === quote) { + quote = 0; + _i += _rune[1]; + continue; + } + } else if ((rune === 34) || (rune === 39)) { + quoted = true; + quote = rune; + _i += _rune[1]; + continue; + } else if (unicode.IsSpace(rune)) { + if (quoted || i > 0) { + quoted = false; + args = $append(args, ($runesToString($subslice(arg, 0, i)))); + i = 0; + } + _i += _rune[1]; + continue; + } + ((i < 0 || i >= arg.$length) ? ($throwRuntimeError("index out of range"), undefined) : arg.$array[arg.$offset + i] = rune); + i = i + (1) >> 0; + _i += _rune[1]; + } + if (quoted || i > 0) { + args = $append(args, ($runesToString($subslice(arg, 0, i)))); + } + if (!((quote === 0))) { + err = errors.New("unclosed quote"); + } else if (escaped) { + err = errors.New("unfinished escaping"); + } + _tmp = args; + _tmp$1 = err; + r = _tmp; + err = _tmp$1; + return [r, err]; + }; + $ptrType(Context).prototype.matchAuto = function matchAuto(text, allTags) { + var {$24r, _r$1, _r$2, _tuple, allTags, ctxt, err, text, x, $s, $r, $c} = $restore(this, {text, allTags}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ctxt = this; + if (strings.ContainsAny(text, "&|()")) { + text = "//go:build " + text; + } else { + text = "// +build " + text; + } + _r$1 = constraint.Parse(text); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + x = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return false; + } + _r$2 = ctxt.eval$(x, allTags); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: matchAuto, $c: true, $r, $24r, _r$1, _r$2, _tuple, allTags, ctxt, err, text, x, $s};return $f; + }; + $ptrType(Context).prototype.eval$ = function eval$1(x, allTags) { + var {$24r, _r$1, allTags, ctxt, x, $s, $r, $c} = $restore(this, {x, allTags}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + allTags = [allTags]; + ctxt = [ctxt]; + ctxt[0] = this; + _r$1 = x.Eval((function(allTags, ctxt) { return function Context·eval·func1(tag) { + var tag; + return ctxt[0].matchTag(tag, allTags[0]); + }; })(allTags, ctxt)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: eval$1, $c: true, $r, $24r, _r$1, allTags, ctxt, x, $s};return $f; + }; + $ptrType(Context).prototype.matchTag = function matchTag(name, allTags) { + var _entry, _i, _i$1, _i$2, _key, _ref, _ref$1, _ref$2, allTags, ctxt, name, tag, tag$1, tag$2; + ctxt = this; + if (!(allTags === false)) { + _key = name; (allTags || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); + } + if (ctxt.CgoEnabled && name === "cgo") { + return true; + } + if (name === ctxt.GOOS || name === ctxt.GOARCH || name === ctxt.Compiler) { + return true; + } + if (ctxt.GOOS === "android" && name === "linux") { + return true; + } + if (ctxt.GOOS === "illumos" && name === "solaris") { + return true; + } + if (ctxt.GOOS === "ios" && name === "darwin") { + return true; + } + if (name === "unix" && (_entry = $mapIndex(unixOS,$String.keyFor(ctxt.GOOS)), _entry !== undefined ? _entry.v : false)) { + return true; + } + if (name === "boringcrypto") { + name = "goexperiment.boringcrypto"; + } + _ref = ctxt.BuildTags; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + tag = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (tag === name) { + return true; + } + _i++; + } + _ref$1 = ctxt.ToolTags; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + tag$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (tag$1 === name) { + return true; + } + _i$1++; + } + _ref$2 = ctxt.ReleaseTags; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + tag$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + if (tag$2 === name) { + return true; + } + _i$2++; + } + return false; + }; + $ptrType(Context).prototype.goodOSArchFile = function goodOSArchFile(name, allTags) { + var _entry, _entry$1, _entry$2, _entry$3, _key, _tuple, allTags, ctxt, i, l, n, n$1, name, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + ctxt = this; + _tuple = strings.Cut(name, "."); + name = _tuple[0]; + i = strings.Index(name, "_"); + if (i < 0) { + return true; + } + name = $substring(name, i); + l = strings.Split(name, "_"); + n = l.$length; + if (n > 0 && (x = n - 1 >> 0, ((x < 0 || x >= l.$length) ? ($throwRuntimeError("index out of range"), undefined) : l.$array[l.$offset + x])) === "test") { + l = $subslice(l, 0, (n - 1 >> 0)); + } + n$1 = l.$length; + if (n$1 >= 2 && (_entry = $mapIndex(knownOS,$String.keyFor((x$1 = n$1 - 2 >> 0, ((x$1 < 0 || x$1 >= l.$length) ? ($throwRuntimeError("index out of range"), undefined) : l.$array[l.$offset + x$1])))), _entry !== undefined ? _entry.v : false) && (_entry$1 = $mapIndex(knownArch,$String.keyFor((x$2 = n$1 - 1 >> 0, ((x$2 < 0 || x$2 >= l.$length) ? ($throwRuntimeError("index out of range"), undefined) : l.$array[l.$offset + x$2])))), _entry$1 !== undefined ? _entry$1.v : false)) { + if (!(allTags === false)) { + _key = (x$3 = n$1 - 2 >> 0, ((x$3 < 0 || x$3 >= l.$length) ? ($throwRuntimeError("index out of range"), undefined) : l.$array[l.$offset + x$3])); (allTags || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); + } + return ctxt.matchTag((x$4 = n$1 - 1 >> 0, ((x$4 < 0 || x$4 >= l.$length) ? ($throwRuntimeError("index out of range"), undefined) : l.$array[l.$offset + x$4])), allTags) && ctxt.matchTag((x$5 = n$1 - 2 >> 0, ((x$5 < 0 || x$5 >= l.$length) ? ($throwRuntimeError("index out of range"), undefined) : l.$array[l.$offset + x$5])), allTags); + } + if (n$1 >= 1 && ((_entry$2 = $mapIndex(knownOS,$String.keyFor((x$6 = n$1 - 1 >> 0, ((x$6 < 0 || x$6 >= l.$length) ? ($throwRuntimeError("index out of range"), undefined) : l.$array[l.$offset + x$6])))), _entry$2 !== undefined ? _entry$2.v : false) || (_entry$3 = $mapIndex(knownArch,$String.keyFor((x$7 = n$1 - 1 >> 0, ((x$7 < 0 || x$7 >= l.$length) ? ($throwRuntimeError("index out of range"), undefined) : l.$array[l.$offset + x$7])))), _entry$3 !== undefined ? _entry$3.v : false))) { + return ctxt.matchTag((x$8 = n$1 - 1 >> 0, ((x$8 < 0 || x$8 >= l.$length) ? ($throwRuntimeError("index out of range"), undefined) : l.$array[l.$offset + x$8])), allTags); + } + return true; + }; + IsLocalImport = function IsLocalImport$1(path$1) { + var path$1; + return path$1 === "." || path$1 === ".." || strings.HasPrefix(path$1, "./") || strings.HasPrefix(path$1, "../"); + }; + $pkg.IsLocalImport = IsLocalImport; + ptrType$10.methods = [{prop: "syntaxError", name: "syntaxError", pkg: "go/build", typ: $funcType([], [], false)}, {prop: "readByte", name: "readByte", pkg: "go/build", typ: $funcType([], [$Uint8], false)}, {prop: "readByteNoBuf", name: "readByteNoBuf", pkg: "go/build", typ: $funcType([], [$Uint8], false)}, {prop: "peekByte", name: "peekByte", pkg: "go/build", typ: $funcType([$Bool], [$Uint8], false)}, {prop: "nextByte", name: "nextByte", pkg: "go/build", typ: $funcType([$Bool], [$Uint8], false)}, {prop: "findEmbed", name: "findEmbed", pkg: "go/build", typ: $funcType([$Bool], [$Bool], false)}, {prop: "readKeyword", name: "readKeyword", pkg: "go/build", typ: $funcType([$String], [], false)}, {prop: "readIdent", name: "readIdent", pkg: "go/build", typ: $funcType([], [], false)}, {prop: "readString", name: "readString", pkg: "go/build", typ: $funcType([], [], false)}, {prop: "readImport", name: "readImport", pkg: "go/build", typ: $funcType([], [], false)}]; + ptrType$12.methods = [{prop: "joinPath", name: "joinPath", pkg: "go/build", typ: $funcType([sliceType], [$String], true)}, {prop: "splitPathList", name: "splitPathList", pkg: "go/build", typ: $funcType([$String], [sliceType], false)}, {prop: "isAbsPath", name: "isAbsPath", pkg: "go/build", typ: $funcType([$String], [$Bool], false)}, {prop: "isDir", name: "isDir", pkg: "go/build", typ: $funcType([$String], [$Bool], false)}, {prop: "hasSubdir", name: "hasSubdir", pkg: "go/build", typ: $funcType([$String, $String], [$String, $Bool], false)}, {prop: "readDir", name: "readDir", pkg: "go/build", typ: $funcType([$String], [sliceType$4, $error], false)}, {prop: "openFile", name: "openFile", pkg: "go/build", typ: $funcType([$String], [io.ReadCloser, $error], false)}, {prop: "isFile", name: "isFile", pkg: "go/build", typ: $funcType([$String], [$Bool], false)}, {prop: "gopath", name: "gopath", pkg: "go/build", typ: $funcType([], [sliceType], false)}, {prop: "SrcDirs", name: "SrcDirs", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "ImportDir", name: "ImportDir", pkg: "", typ: $funcType([$String, ImportMode], [ptrType$11, $error], false)}, {prop: "Import", name: "Import", pkg: "", typ: $funcType([$String, $String, ImportMode], [ptrType$11, $error], false)}, {prop: "importGo", name: "importGo", pkg: "go/build", typ: $funcType([ptrType$11, $String, $String, ImportMode], [$error], false)}, {prop: "MatchFile", name: "MatchFile", pkg: "", typ: $funcType([$String, $String], [$Bool, $error], false)}, {prop: "matchFile", name: "matchFile", pkg: "go/build", typ: $funcType([$String, $String, mapType, ptrType$5, ptrType$1], [ptrType$6, $error], false)}, {prop: "shouldBuild", name: "shouldBuild", pkg: "go/build", typ: $funcType([sliceType$1, mapType], [$Bool, $Bool, $error], false)}, {prop: "saveCgo", name: "saveCgo", pkg: "go/build", typ: $funcType([$String, ptrType$11, ptrType$4], [$error], false)}, {prop: "makePathsAbsolute", name: "makePathsAbsolute", pkg: "go/build", typ: $funcType([sliceType, $String], [], false)}, {prop: "matchAuto", name: "matchAuto", pkg: "go/build", typ: $funcType([$String, mapType], [$Bool], false)}, {prop: "eval$", name: "eval", pkg: "go/build", typ: $funcType([constraint.Expr, mapType], [$Bool], false)}, {prop: "matchTag", name: "matchTag", pkg: "go/build", typ: $funcType([$String, mapType], [$Bool], false)}, {prop: "goodOSArchFile", name: "goodOSArchFile", pkg: "go/build", typ: $funcType([$String, mapType], [$Bool], false)}]; + ptrType$11.methods = [{prop: "IsCommand", name: "IsCommand", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$13.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$14.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + importReader.init("go/build", [{prop: "b", name: "b", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "peek", name: "peek", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "eof", name: "eof", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nerr", name: "nerr", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Position, tag: ""}]); + Context.init("", [{prop: "GOARCH", name: "GOARCH", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "GOOS", name: "GOOS", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "GOROOT", name: "GOROOT", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "GOPATH", name: "GOPATH", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "CgoEnabled", name: "CgoEnabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "UseAllFiles", name: "UseAllFiles", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Compiler", name: "Compiler", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "BuildTags", name: "BuildTags", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ToolTags", name: "ToolTags", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ReleaseTags", name: "ReleaseTags", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "InstallSuffix", name: "InstallSuffix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "JoinPath", name: "JoinPath", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "SplitPathList", name: "SplitPathList", embedded: false, exported: true, typ: funcType$1, tag: ""}, {prop: "IsAbsPath", name: "IsAbsPath", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "IsDir", name: "IsDir", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "HasSubdir", name: "HasSubdir", embedded: false, exported: true, typ: funcType$3, tag: ""}, {prop: "ReadDir", name: "ReadDir", embedded: false, exported: true, typ: funcType$4, tag: ""}, {prop: "OpenFile", name: "OpenFile", embedded: false, exported: true, typ: funcType$5, tag: ""}]); + Package.init("", [{prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ImportComment", name: "ImportComment", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Doc", name: "Doc", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ImportPath", name: "ImportPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Root", name: "Root", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "SrcRoot", name: "SrcRoot", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgRoot", name: "PkgRoot", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgTargetRoot", name: "PkgTargetRoot", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "BinDir", name: "BinDir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Goroot", name: "Goroot", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PkgObj", name: "PkgObj", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "AllTags", name: "AllTags", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ConflictDir", name: "ConflictDir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "BinaryOnly", name: "BinaryOnly", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "GoFiles", name: "GoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoFiles", name: "CgoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "IgnoredGoFiles", name: "IgnoredGoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "InvalidGoFiles", name: "InvalidGoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "IgnoredOtherFiles", name: "IgnoredOtherFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CFiles", name: "CFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CXXFiles", name: "CXXFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "MFiles", name: "MFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "HFiles", name: "HFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "FFiles", name: "FFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SFiles", name: "SFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SwigFiles", name: "SwigFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SwigCXXFiles", name: "SwigCXXFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SysoFiles", name: "SysoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoCFLAGS", name: "CgoCFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoCPPFLAGS", name: "CgoCPPFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoCXXFLAGS", name: "CgoCXXFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoFFLAGS", name: "CgoFFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoLDFLAGS", name: "CgoLDFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoPkgConfig", name: "CgoPkgConfig", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "TestGoFiles", name: "TestGoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "XTestGoFiles", name: "XTestGoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Imports", name: "Imports", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ImportPos", name: "ImportPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "TestImports", name: "TestImports", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "TestImportPos", name: "TestImportPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "XTestImports", name: "XTestImports", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "XTestImportPos", name: "XTestImportPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "EmbedPatterns", name: "EmbedPatterns", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "EmbedPatternPos", name: "EmbedPatternPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "TestEmbedPatterns", name: "TestEmbedPatterns", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "TestEmbedPatternPos", name: "TestEmbedPatternPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "XTestEmbedPatterns", name: "XTestEmbedPatterns", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "XTestEmbedPatternPos", name: "XTestEmbedPatternPos", embedded: false, exported: true, typ: mapType$1, tag: ""}]); + NoGoError.init("", [{prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}]); + MultiplePackageError.init("", [{prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Packages", name: "Packages", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Files", name: "Files", embedded: false, exported: true, typ: sliceType, tag: ""}]); + fileInfo.init("go/build", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "header", name: "header", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "fset", name: "fset", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "parsed", name: "parsed", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "parseErr", name: "parseErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "embeds", name: "embeds", embedded: false, exported: false, typ: sliceType$3, tag: ""}]); + fileImport.init("go/build", [{prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "doc", name: "doc", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); + fileEmbed.init("go/build", [{prop: "pattern", name: "pattern", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Position, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytes.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = constraint.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = doc.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = parser.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = buildcfg.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = goroot.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = goversion.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fs.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = exec.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = path.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = filepath.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + defaultToolTags = sliceType.nil; + defaultReleaseTags = sliceType.nil; + dummyPkg = new Package.ptr("", "", "", "", "", "", "", "", "", "", false, "", sliceType.nil, "", false, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false); + cgoEnabled = $makeMap($String.keyFor, [{ k: "aix/ppc64", v: true }, { k: "android/386", v: true }, { k: "android/amd64", v: true }, { k: "android/arm", v: true }, { k: "android/arm64", v: true }, { k: "darwin/amd64", v: true }, { k: "darwin/arm64", v: true }, { k: "dragonfly/amd64", v: true }, { k: "freebsd/386", v: true }, { k: "freebsd/amd64", v: true }, { k: "freebsd/arm", v: true }, { k: "freebsd/arm64", v: true }, { k: "illumos/amd64", v: true }, { k: "ios/amd64", v: true }, { k: "ios/arm64", v: true }, { k: "linux/386", v: true }, { k: "linux/amd64", v: true }, { k: "linux/arm", v: true }, { k: "linux/arm64", v: true }, { k: "linux/loong64", v: true }, { k: "linux/mips", v: true }, { k: "linux/mips64", v: true }, { k: "linux/mips64le", v: true }, { k: "linux/mipsle", v: true }, { k: "linux/ppc64le", v: true }, { k: "linux/riscv64", v: true }, { k: "linux/s390x", v: true }, { k: "linux/sparc64", v: true }, { k: "netbsd/386", v: true }, { k: "netbsd/amd64", v: true }, { k: "netbsd/arm", v: true }, { k: "netbsd/arm64", v: true }, { k: "openbsd/386", v: true }, { k: "openbsd/amd64", v: true }, { k: "openbsd/arm", v: true }, { k: "openbsd/arm64", v: true }, { k: "openbsd/mips64", v: true }, { k: "solaris/amd64", v: true }, { k: "windows/386", v: true }, { k: "windows/amd64", v: true }, { k: "windows/arm64", v: true }]); + knownOS = $makeMap($String.keyFor, [{ k: "aix", v: true }, { k: "android", v: true }, { k: "darwin", v: true }, { k: "dragonfly", v: true }, { k: "freebsd", v: true }, { k: "hurd", v: true }, { k: "illumos", v: true }, { k: "ios", v: true }, { k: "js", v: true }, { k: "linux", v: true }, { k: "nacl", v: true }, { k: "netbsd", v: true }, { k: "openbsd", v: true }, { k: "plan9", v: true }, { k: "solaris", v: true }, { k: "windows", v: true }, { k: "zos", v: true }]); + unixOS = $makeMap($String.keyFor, [{ k: "aix", v: true }, { k: "android", v: true }, { k: "darwin", v: true }, { k: "dragonfly", v: true }, { k: "freebsd", v: true }, { k: "hurd", v: true }, { k: "illumos", v: true }, { k: "ios", v: true }, { k: "linux", v: true }, { k: "netbsd", v: true }, { k: "openbsd", v: true }, { k: "solaris", v: true }]); + knownArch = $makeMap($String.keyFor, [{ k: "386", v: true }, { k: "amd64", v: true }, { k: "amd64p32", v: true }, { k: "arm", v: true }, { k: "armbe", v: true }, { k: "arm64", v: true }, { k: "arm64be", v: true }, { k: "loong64", v: true }, { k: "mips", v: true }, { k: "mipsle", v: true }, { k: "mips64", v: true }, { k: "mips64le", v: true }, { k: "mips64p32", v: true }, { k: "mips64p32le", v: true }, { k: "ppc", v: true }, { k: "ppc64", v: true }, { k: "ppc64le", v: true }, { k: "riscv", v: true }, { k: "riscv64", v: true }, { k: "s390", v: true }, { k: "s390x", v: true }, { k: "sparc", v: true }, { k: "sparc64", v: true }, { k: "wasm", v: true }]); + bom = new sliceType$1([239, 187, 191]); + errSyntax = errors.New("syntax error"); + errNUL = errors.New("unexpected NUL in input"); + goEmbed = (new sliceType$1($stringToBytes("go:embed"))); + _r = defaultContext(); /* */ $s = 25; case 25: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $pkg.Default = $clone(_r, Context); + errNoModules = errors.New("not using modules"); + slashSlash = (new sliceType$1($stringToBytes("//"))); + slashStar = (new sliceType$1($stringToBytes("/*"))); + starSlash = (new sliceType$1($stringToBytes("*/"))); + newline = (new sliceType$1($stringToBytes("\n"))); + bSlashSlash = (slashSlash); + bSlashStar = (slashStar); + bPlusBuild = (new sliceType$1($stringToBytes("+build"))); + goBuildComment = (new sliceType$1($stringToBytes("//go:build"))); + errGoBuildWithoutBuild = errors.New("//go:build comment without // +build comment"); + errMultipleGoBuild = errors.New("multiple //go:build comments"); + binaryOnlyComment = (new sliceType$1($stringToBytes("//go:binary-only-package"))); + $pkg.ToolDir = getToolDir(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/build/cache"] = (function() { + var $pkg = {}, $init, gzip, sha256, gob, fmt, logrus, build, io, os, path, filepath, time, cacheRoot, _r; + gzip = $packages["compress/gzip"]; + sha256 = $packages["crypto/sha256"]; + gob = $packages["encoding/gob"]; + fmt = $packages["fmt"]; + logrus = $packages["github.com/sirupsen/logrus"]; + build = $packages["go/build"]; + io = $packages["io"]; + os = $packages["os"]; + path = $packages["path"]; + filepath = $packages["path/filepath"]; + time = $packages["time"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = gzip.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sha256.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = logrus.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = build.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = path.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = filepath.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = (function func1() { + var {_r, _tuple, err, path$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = os.UserCacheDir(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + path$1 = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + $s = -1; return filepath.Join(new sliceType([path$1, "gopherjs", "build_cache"])); + } + $s = -1; return filepath.Join(new sliceType([build.Default.GOPATH, "pkg", "gopherjs_build_cache"])); + /* */ } return; } var $f = {$blk: func1, $c: true, $r, _r, _tuple, err, path$1, $s};return $f; + })(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + cacheRoot = _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["io/ioutil"] = (function() { + var $pkg = {}, $init, io, fs, os, sort; + io = $packages["io"]; + fs = $packages["io/fs"]; + os = $packages["os"]; + sort = $packages["sort"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = io.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/tools/go/buildutil"] = (function() { + var $pkg = {}, $init, bufio, bytes, fmt, ast, build, parser, token, io, ioutil, os, path, filepath, sort, strconv, strings, sync, time, ioLimit; + bufio = $packages["bufio"]; + bytes = $packages["bytes"]; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + build = $packages["go/build"]; + parser = $packages["go/parser"]; + token = $packages["go/token"]; + io = $packages["io"]; + ioutil = $packages["io/ioutil"]; + os = $packages["os"]; + path = $packages["path"]; + filepath = $packages["path/filepath"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + sync = $packages["sync"]; + time = $packages["time"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytes.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = build.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = parser.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ioutil.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = path.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = filepath.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ioLimit = new $Chan($Bool, 20); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/compiler/incjs"] = (function() { + var $pkg = {}, $init, fmt, build, buildutil, io, os, strings, time; + fmt = $packages["fmt"]; + build = $packages["go/build"]; + buildutil = $packages["golang.org/x/tools/go/buildutil"]; + io = $packages["io"]; + os = $packages["os"]; + strings = $packages["strings"]; + time = $packages["time"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = build.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = buildutil.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["container/heap"] = (function() { + var $pkg = {}, $init, sort, Init, Pop, Fix, up, down; + sort = $packages["sort"]; + $pkg.$finishSetup = function() { + Init = function Init$1(h) { + var {_q, _r, _r$1, h, i, n, $s, $r, $c} = $restore(this, {h}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = h.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + n = _r; + i = (_q = n / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) - 1 >> 0; + /* while (true) { */ case 2: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 3; continue; } + _r$1 = down(h, i, n); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + i = i - (1) >> 0; + $s = 2; continue; + case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: Init$1, $c: true, $r, _q, _r, _r$1, h, i, n, $s};return $f; + }; + $pkg.Init = Init; + Pop = function Pop$1(h) { + var {$24r, _r, _r$1, _r$2, h, n, $s, $r, $c} = $restore(this, {h}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = h.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + n = _r - 1 >> 0; + $r = h.Swap(0, n); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = down(h, 0, n); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = h.Pop(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: Pop$1, $c: true, $r, $24r, _r, _r$1, _r$2, h, n, $s};return $f; + }; + $pkg.Pop = Pop; + Fix = function Fix$1(h, i) { + var {_arg, _arg$1, _arg$2, _r, _r$1, h, i, $s, $r, $c} = $restore(this, {h, i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = h; + _arg$1 = i; + _r = h.Len(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$2 = _r; + _r$1 = down(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$1) { */ case 1: + $r = up(h, i); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Fix$1, $c: true, $r, _arg, _arg$1, _arg$2, _r, _r$1, h, i, $s};return $f; + }; + $pkg.Fix = Fix; + up = function up$1(h, j) { + var {_q, _r, _v, h, i, j, $s, $r, $c} = $restore(this, {h, j}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* while (true) { */ case 1: + i = (_q = ((j - 1 >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (i === j) { _v = true; $s = 5; continue s; } + _r = h.Less(j, i); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = !_r; case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + /* break; */ $s = 2; continue; + /* } */ case 4: + $r = h.Swap(i, j); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j = i; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: up$1, $c: true, $r, _q, _r, _v, h, i, j, $s};return $f; + }; + down = function down$1(h, i0, n) { + var {_r, _r$1, _v, h, i, i0, j, j1, j2, n, $s, $r, $c} = $restore(this, {h, i0, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = i0; + /* while (true) { */ case 1: + j1 = ($imul(2, i)) + 1 >> 0; + if (j1 >= n || j1 < 0) { + /* break; */ $s = 2; continue; + } + j = j1; + j2 = j1 + 1 >> 0; + if (!(j2 < n)) { _v = false; $s = 5; continue s; } + _r = h.Less(j2, j1); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + j = j2; + /* } */ case 4: + _r$1 = h.Less(j, i); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$1) { */ case 7: + /* break; */ $s = 2; continue; + /* } */ case 8: + $r = h.Swap(i, j); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = j; + $s = 1; continue; + case 2: + $s = -1; return i > i0; + /* */ } return; } var $f = {$blk: down$1, $c: true, $r, _r, _r$1, _v, h, i, i0, j, j1, j2, n, $s};return $f; + }; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = sort.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["math/rand"] = (function() { + var $pkg = {}, $init, nosync, math, rngSource, Source, Source64, Rand, lockedSource, rngCooked, globalRand, kn, wn, fn, ke, we, fe, seedrand, NewSource, New, read, absInt32; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + math = $packages["math"]; + rngSource = $newType(0, $kindStruct, "rand.rngSource", true, "math/rand", false, function(tap_, feed_, vec_) { + this.$val = this; + if (arguments.length === 0) { + this.tap = 0; + this.feed = 0; + this.vec = arrayType.zero(); + return; + } + this.tap = tap_; + this.feed = feed_; + this.vec = vec_; + }); + Source = $newType(8, $kindInterface, "rand.Source", true, "math/rand", true, null); + Source64 = $newType(8, $kindInterface, "rand.Source64", true, "math/rand", true, null); + Rand = $newType(0, $kindStruct, "rand.Rand", true, "math/rand", true, function(src_, s64_, readVal_, readPos_) { + this.$val = this; + if (arguments.length === 0) { + this.src = $ifaceNil; + this.s64 = $ifaceNil; + this.readVal = new $Int64(0, 0); + this.readPos = 0; + return; + } + this.src = src_; + this.s64 = s64_; + this.readVal = readVal_; + this.readPos = readPos_; + }); + lockedSource = $newType(0, $kindStruct, "rand.lockedSource", true, "math/rand", false, function(lk_, src_) { + this.$val = this; + if (arguments.length === 0) { + this.lk = new nosync.Mutex.ptr(false, false, false, false, 0); + this.src = ptrType.nil; + return; + } + this.lk = lk_; + this.src = src_; + }); + $pkg.rngSource = rngSource; + $pkg.Source = Source; + $pkg.Source64 = Source64; + $pkg.Rand = Rand; + $pkg.lockedSource = lockedSource; + $pkg.$finishSetup = function() { + seedrand = function seedrand$1(x) { + var _q, _r, hi, lo, x; + hi = (_q = x / 44488, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + lo = (_r = x % 44488, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + x = ($imul(48271, lo)) - ($imul(3399, hi)) >> 0; + if (x < 0) { + x = x + (2147483647) >> 0; + } + return x; + }; + $ptrType(rngSource).prototype.Seed = function Seed$1(seed) { + var i, rng, seed, u, x, x$1, x$2, x$3, x$4, x$5; + rng = this; + rng.tap = 0; + rng.feed = 334; + seed = $div64(seed, new $Int64(0, 2147483647), true); + if ((seed.$high < 0 || (seed.$high === 0 && seed.$low < 0))) { + seed = (x = new $Int64(0, 2147483647), new $Int64(seed.$high + x.$high, seed.$low + x.$low)); + } + if ((seed.$high === 0 && seed.$low === 0)) { + seed = new $Int64(0, 89482311); + } + x$1 = (((seed.$low + ((seed.$high >> 31) * 4294967296)) >> 0)); + i = -20; + while (true) { + if (!(i < 607)) { break; } + x$1 = seedrand(x$1); + if (i >= 0) { + u = new $Int64(0, 0); + u = $shiftLeft64((new $Int64(0, x$1)), 40); + x$1 = seedrand(x$1); + u = (x$2 = $shiftLeft64((new $Int64(0, x$1)), 20), new $Int64(u.$high ^ x$2.$high, (u.$low ^ x$2.$low) >>> 0)); + x$1 = seedrand(x$1); + u = (x$3 = (new $Int64(0, x$1)), new $Int64(u.$high ^ x$3.$high, (u.$low ^ x$3.$low) >>> 0)); + u = (x$4 = ((i < 0 || i >= rngCooked.length) ? ($throwRuntimeError("index out of range"), undefined) : rngCooked[i]), new $Int64(u.$high ^ x$4.$high, (u.$low ^ x$4.$low) >>> 0)); + (x$5 = rng.vec, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i] = u)); + } + i = i + (1) >> 0; + } + }; + $ptrType(rngSource).prototype.Int63 = function Int63$1() { + var rng, x, x$1; + rng = this; + return ((x = (x$1 = rng.Uint64(), new $Uint64(x$1.$high & 2147483647, (x$1.$low & 4294967295) >>> 0)), new $Int64(x.$high, x.$low))); + }; + $ptrType(rngSource).prototype.Uint64 = function Uint64$2() { + var rng, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + rng = this; + rng.tap = rng.tap - (1) >> 0; + if (rng.tap < 0) { + rng.tap = rng.tap + (607) >> 0; + } + rng.feed = rng.feed - (1) >> 0; + if (rng.feed < 0) { + rng.feed = rng.feed + (607) >> 0; + } + x$6 = (x = (x$1 = rng.vec, x$2 = rng.feed, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])), x$3 = (x$4 = rng.vec, x$5 = rng.tap, ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5])), new $Int64(x.$high + x$3.$high, x.$low + x$3.$low)); + (x$7 = rng.vec, x$8 = rng.feed, ((x$8 < 0 || x$8 >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[x$8] = x$6)); + return (new $Uint64(x$6.$high, x$6.$low)); + }; + NewSource = function NewSource$1(seed) { + var rng, seed; + rng = new rngSource.ptr(0, 0, arrayType.zero()); + rng.Seed(seed); + return rng; + }; + $pkg.NewSource = NewSource; + New = function New$1(src) { + var _tuple, s64, src; + _tuple = $assertType(src, Source64, true); + s64 = _tuple[0]; + return new Rand.ptr(src, s64, new $Int64(0, 0), 0); + }; + $pkg.New = New; + $ptrType(Rand).prototype.Seed = function Seed$2(seed) { + var {_tuple, lk, ok, r, seed, $s, $r, $c} = $restore(this, {seed}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _tuple = $assertType(r.src, ptrType$1, true); + lk = _tuple[0]; + ok = _tuple[1]; + if (ok) { + lk.seedPos(seed, (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$4(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r)))); + $s = -1; return; + } + $r = r.src.Seed(seed); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + r.readPos = 0; + $s = -1; return; + /* */ } return; } var $f = {$blk: Seed$2, $c: true, $r, _tuple, lk, ok, r, seed, $s};return $f; + }; + $ptrType(Rand).prototype.Int63 = function Int63$2() { + var {$24r, _r, r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.src.Int63(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Int63$2, $c: true, $r, $24r, _r, r, $s};return $f; + }; + $ptrType(Rand).prototype.Uint32 = function Uint32$1() { + var {$24r, _r, r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.Int63(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = (($shiftRightInt64(_r, 31).$low >>> 0)); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Uint32$1, $c: true, $r, $24r, _r, r, $s};return $f; + }; + $ptrType(Rand).prototype.Uint64 = function Uint64$3() { + var {$24r, $24r$1, _r, _r$1, _r$2, r, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + /* */ if (!($interfaceIsEqual(r.s64, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(r.s64, $ifaceNil))) { */ case 1: + _r = r.s64.Uint64(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = r.Int63(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = r.Int63(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = (x = $shiftRightUint64(((x$1 = _r$1, new $Uint64(x$1.$high, x$1.$low))), 31), x$2 = $shiftLeft64(((x$3 = _r$2, new $Uint64(x$3.$high, x$3.$low))), 32), new $Uint64(x.$high | x$2.$high, (x.$low | x$2.$low) >>> 0)); + $s = 7; case 7: return $24r$1; + /* */ } return; } var $f = {$blk: Uint64$3, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, r, x, x$1, x$2, x$3, $s};return $f; + }; + $ptrType(Rand).prototype.Int31 = function Int31$1() { + var {$24r, _r, r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.Int63(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = (((x = $shiftRightInt64(_r, 32), x.$low + ((x.$high >> 31) * 4294967296)) >> 0)); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Int31$1, $c: true, $r, $24r, _r, r, x, $s};return $f; + }; + $ptrType(Rand).prototype.Int = function Int$1() { + var {_r, r, u, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.Int63(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + u = ((_r.$low >>> 0)); + $s = -1; return ((((u << 1 >>> 0) >>> 1 >>> 0) >> 0)); + /* */ } return; } var $f = {$blk: Int$1, $c: true, $r, _r, r, u, $s};return $f; + }; + $ptrType(Rand).prototype.Int63n = function Int63n$1(n) { + var {$24r, _r, _r$1, _r$2, max, n, r, v, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + if ((n.$high < 0 || (n.$high === 0 && n.$low <= 0))) { + $panic(new $String("invalid argument to Int63n")); + } + /* */ if ((x = (x$1 = new $Int64(n.$high - 0, n.$low - 1), new $Int64(n.$high & x$1.$high, (n.$low & x$1.$low) >>> 0)), (x.$high === 0 && x.$low === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((x = (x$1 = new $Int64(n.$high - 0, n.$low - 1), new $Int64(n.$high & x$1.$high, (n.$low & x$1.$low) >>> 0)), (x.$high === 0 && x.$low === 0))) { */ case 1: + _r = r.Int63(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = (x$2 = _r, x$3 = new $Int64(n.$high - 0, n.$low - 1), new $Int64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)); + $s = 4; case 4: return $24r; + /* } */ case 2: + max = ((x$4 = (x$5 = $div64(new $Uint64(2147483648, 0), (new $Uint64(n.$high, n.$low)), true), new $Uint64(2147483647 - x$5.$high, 4294967295 - x$5.$low)), new $Int64(x$4.$high, x$4.$low))); + _r$1 = r.Int63(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + v = _r$1; + /* while (true) { */ case 6: + /* if (!((v.$high > max.$high || (v.$high === max.$high && v.$low > max.$low)))) { break; } */ if(!((v.$high > max.$high || (v.$high === max.$high && v.$low > max.$low)))) { $s = 7; continue; } + _r$2 = r.Int63(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + v = _r$2; + $s = 6; continue; + case 7: + $s = -1; return $div64(v, n, true); + /* */ } return; } var $f = {$blk: Int63n$1, $c: true, $r, $24r, _r, _r$1, _r$2, max, n, r, v, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + }; + $ptrType(Rand).prototype.Int31n = function Int31n$1(n) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, max, n, r, v, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + if (n <= 0) { + $panic(new $String("invalid argument to Int31n")); + } + /* */ if ((n & ((n - 1 >> 0))) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((n & ((n - 1 >> 0))) === 0) { */ case 1: + _r = r.Int31(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r & ((n - 1 >> 0)); + $s = 4; case 4: return $24r; + /* } */ case 2: + max = (((2147483647 - (_r$1 = 2147483648 % ((n >>> 0)), _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) >>> 0) >> 0)); + _r$2 = r.Int31(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + v = _r$2; + /* while (true) { */ case 6: + /* if (!(v > max)) { break; } */ if(!(v > max)) { $s = 7; continue; } + _r$3 = r.Int31(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + v = _r$3; + $s = 6; continue; + case 7: + $s = -1; return (_r$4 = v % n, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")); + /* */ } return; } var $f = {$blk: Int31n$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, max, n, r, v, $s};return $f; + }; + $ptrType(Rand).prototype.int31n = function int31n(n) { + var {_r, _r$1, _r$2, low, n, prod, r, thresh, v, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.Uint32(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + prod = $mul64((new $Uint64(0, v)), (new $Uint64(0, n))); + low = ((prod.$low >>> 0)); + /* */ if (low < ((n >>> 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (low < ((n >>> 0))) { */ case 2: + thresh = (_r$1 = ((-n >>> 0)) % ((n >>> 0)), _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); + /* while (true) { */ case 4: + /* if (!(low < thresh)) { break; } */ if(!(low < thresh)) { $s = 5; continue; } + _r$2 = r.Uint32(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + v = _r$2; + prod = $mul64((new $Uint64(0, v)), (new $Uint64(0, n))); + low = ((prod.$low >>> 0)); + $s = 4; continue; + case 5: + /* } */ case 3: + $s = -1; return (($shiftRightUint64(prod, 32).$low >> 0)); + /* */ } return; } var $f = {$blk: int31n, $c: true, $r, _r, _r$1, _r$2, low, n, prod, r, thresh, v, $s};return $f; + }; + $ptrType(Rand).prototype.Intn = function Intn$1(n) { + var {$24r, $24r$1, _r, _r$1, n, r, x, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + if (n <= 0) { + $panic(new $String("invalid argument to Intn")); + } + /* */ if (n <= 2147483647) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n <= 2147483647) { */ case 1: + _r = r.Int31n(((n >> 0))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = ((_r >> 0)); + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = r.Int63n((new $Int64(0, n))); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = (((x = _r$1, x.$low + ((x.$high >> 31) * 4294967296)) >> 0)); + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: Intn$1, $c: true, $r, $24r, $24r$1, _r, _r$1, n, r, x, $s};return $f; + }; + $ptrType(Rand).prototype.Float64 = function Float64$1() { + var {_r, f, r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + /* again: */ case 1: + _r = r.Int63(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + f = ($flatten64(_r)) / 9.223372036854776e+18; + /* */ if (f === 1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (f === 1) { */ case 3: + /* goto again */ $s = 1; continue; + /* } */ case 4: + $s = -1; return f; + /* */ } return; } var $f = {$blk: Float64$1, $c: true, $r, _r, f, r, $s};return $f; + }; + $ptrType(Rand).prototype.Float32 = function Float32$1() { + var {_r, f, r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + /* again: */ case 1: + _r = r.Float64(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + f = ($fround(_r)); + /* */ if (f === 1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (f === 1) { */ case 3: + /* goto again */ $s = 1; continue; + /* } */ case 4: + $s = -1; return f; + /* */ } return; } var $f = {$blk: Float32$1, $c: true, $r, _r, f, r, $s};return $f; + }; + $ptrType(Rand).prototype.Perm = function Perm$1(n) { + var {_r, i, j, m, n, r, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + m = $makeSlice(sliceType, n); + i = 0; + /* while (true) { */ case 1: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } + _r = r.Intn(i + 1 >> 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + j = _r; + ((i < 0 || i >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + i] = ((j < 0 || j >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + j])); + ((j < 0 || j >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + j] = i); + i = i + (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return m; + /* */ } return; } var $f = {$blk: Perm$1, $c: true, $r, _r, i, j, m, n, r, $s};return $f; + }; + $ptrType(Rand).prototype.Shuffle = function Shuffle$1(n, swap) { + var {_r, _r$1, i, j, j$1, n, r, swap, x, $s, $r, $c} = $restore(this, {n, swap}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + if (n < 0) { + $panic(new $String("invalid argument to Shuffle")); + } + i = n - 1 >> 0; + /* while (true) { */ case 1: + /* if (!(i > 2147483646)) { break; } */ if(!(i > 2147483646)) { $s = 2; continue; } + _r = r.Int63n((new $Int64(0, (i + 1 >> 0)))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + j = (((x = _r, x.$low + ((x.$high >> 31) * 4294967296)) >> 0)); + $r = swap(i, j); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i - (1) >> 0; + $s = 1; continue; + case 2: + /* while (true) { */ case 5: + /* if (!(i > 0)) { break; } */ if(!(i > 0)) { $s = 6; continue; } + _r$1 = r.int31n((((i + 1 >> 0) >> 0))); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + j$1 = ((_r$1 >> 0)); + $r = swap(i, j$1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i - (1) >> 0; + $s = 5; continue; + case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: Shuffle$1, $c: true, $r, _r, _r$1, i, j, j$1, n, r, swap, x, $s};return $f; + }; + $ptrType(Rand).prototype.Read = function Read$1(p) { + var {$24r, $24r$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, err, lk, n, ok, p, r, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + r = this; + _tuple = $assertType(r.src, ptrType$1, true); + lk = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + _r = lk.read(p, (r.$ptr_readVal || (r.$ptr_readVal = new ptrType$5(function() { return this.$target.readVal; }, function($v) { this.$target.readVal = $v; }, r))), (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$4(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r)))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + n = _tuple$1[0]; + err = _tuple$1[1]; + $24r = [n, err]; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = read(p, r.src, (r.$ptr_readVal || (r.$ptr_readVal = new ptrType$5(function() { return this.$target.readVal; }, function($v) { this.$target.readVal = $v; }, r))), (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$4(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r)))); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$2 = _r$1; + n = _tuple$2[0]; + err = _tuple$2[1]; + $24r$1 = [n, err]; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: Read$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, err, lk, n, ok, p, r, $s};return $f; + }; + read = function read$1(p, src, readVal, readPos) { + var {_r, _tuple, err, n, p, pos, readPos, readVal, rng, src, val, $s, $r, $c} = $restore(this, {p, src, readVal, readPos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + pos = readPos.$get(); + val = readVal.$get(); + _tuple = $assertType(src, ptrType, true); + rng = _tuple[0]; + n = 0; + /* while (true) { */ case 1: + /* if (!(n < p.$length)) { break; } */ if(!(n < p.$length)) { $s = 2; continue; } + /* */ if (pos === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (pos === 0) { */ case 3: + /* */ if (!(rng === ptrType.nil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(rng === ptrType.nil)) { */ case 5: + val = rng.Int63(); + $s = 7; continue; + /* } else { */ case 6: + _r = src.Int63(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + val = _r; + /* } */ case 7: + pos = 7; + /* } */ case 4: + ((n < 0 || n >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + n] = ((val.$low << 24 >>> 24))); + val = $shiftRightInt64(val, (8)); + pos = pos - (1) << 24 >> 24; + n = n + (1) >> 0; + $s = 1; continue; + case 2: + readPos.$set(pos); + readVal.$set(val); + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: read$1, $c: true, $r, _r, _tuple, err, n, p, pos, readPos, readVal, rng, src, val, $s};return $f; + }; + $ptrType(lockedSource).prototype.Int63 = function Int63$4() { + var n, r; + n = new $Int64(0, 0); + r = this; + r.lk.Lock(); + n = r.src.Int63(); + r.lk.Unlock(); + return n; + }; + $ptrType(lockedSource).prototype.Uint64 = function Uint64$5() { + var n, r; + n = new $Uint64(0, 0); + r = this; + r.lk.Lock(); + n = r.src.Uint64(); + r.lk.Unlock(); + return n; + }; + $ptrType(lockedSource).prototype.Seed = function Seed$4(seed) { + var r, seed; + r = this; + r.lk.Lock(); + r.src.Seed(seed); + r.lk.Unlock(); + }; + $ptrType(lockedSource).prototype.seedPos = function seedPos(seed, readPos) { + var r, readPos, seed; + r = this; + r.lk.Lock(); + r.src.Seed(seed); + readPos.$set(0); + r.lk.Unlock(); + }; + $ptrType(lockedSource).prototype.read = function read$2(p, readVal, readPos) { + var {_r, _tuple, err, n, p, r, readPos, readVal, $s, $r, $c} = $restore(this, {p, readVal, readPos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + r = this; + r.lk.Lock(); + _r = read(p, r.src, readVal, readPos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + r.lk.Unlock(); + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: read$2, $c: true, $r, _r, _tuple, err, n, p, r, readPos, readVal, $s};return $f; + }; + absInt32 = function absInt32$1(i) { + var i; + if (i < 0) { + return ((-i >>> 0)); + } + return ((i >>> 0)); + }; + $ptrType(Rand).prototype.NormFloat64 = function NormFloat64$2() { + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, i, j, r, x, x$1, y, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + /* while (true) { */ case 1: + _r = r.Uint32(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + j = ((_r >> 0)); + i = j & 127; + x = (j) * (((i < 0 || i >= wn.length) ? ($throwRuntimeError("index out of range"), undefined) : wn[i])); + if (absInt32(j) < ((i < 0 || i >= kn.length) ? ($throwRuntimeError("index out of range"), undefined) : kn[i])) { + $s = -1; return x; + } + /* */ if (i === 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (i === 0) { */ case 4: + /* while (true) { */ case 6: + _r$1 = r.Float64(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = math.Log(_r$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = -_r$2 * 0.29047645161474317; + _r$3 = r.Float64(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = math.Log(_r$3); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + y = -_r$4; + if (y + y >= x * x) { + /* break; */ $s = 7; continue; + } + $s = 6; continue; + case 7: + if (j > 0) { + $s = -1; return 3.442619855899 + x; + } + $s = -1; return -3.442619855899 - x; + /* } */ case 5: + _r$5 = r.Float64(); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if ($fround(((i < 0 || i >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[i]) + $fround(($fround(_r$5)) * ($fround((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[x$1])) - ((i < 0 || i >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[i]))))) < ($fround(math.Exp(-0.5 * x * x)))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ($fround(((i < 0 || i >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[i]) + $fround(($fround(_r$5)) * ($fround((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[x$1])) - ((i < 0 || i >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[i]))))) < ($fround(math.Exp(-0.5 * x * x)))) { */ case 12: + $s = -1; return x; + /* } */ case 13: + $s = 1; continue; + case 2: + $s = -1; return 0; + /* */ } return; } var $f = {$blk: NormFloat64$2, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, i, j, r, x, x$1, y, $s};return $f; + }; + $ptrType(Rand).prototype.ExpFloat64 = function ExpFloat64$2() { + var {$24r, _r, _r$1, _r$2, _r$3, i, j, r, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + /* while (true) { */ case 1: + _r = r.Uint32(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + j = _r; + i = (j & 255) >>> 0; + x = (j) * (((i < 0 || i >= we.length) ? ($throwRuntimeError("index out of range"), undefined) : we[i])); + if (j < ((i < 0 || i >= ke.length) ? ($throwRuntimeError("index out of range"), undefined) : ke[i])) { + $s = -1; return x; + } + /* */ if (i === 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (i === 0) { */ case 4: + _r$1 = r.Float64(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = math.Log(_r$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = 7.69711747013105 - _r$2; + $s = 8; case 8: return $24r; + /* } */ case 5: + _r$3 = r.Float64(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if ($fround(((i < 0 || i >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[i]) + $fround(($fround(_r$3)) * ($fround((x$1 = i - 1 >>> 0, ((x$1 < 0 || x$1 >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[x$1])) - ((i < 0 || i >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[i]))))) < ($fround(math.Exp(-x)))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($fround(((i < 0 || i >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[i]) + $fround(($fround(_r$3)) * ($fround((x$1 = i - 1 >>> 0, ((x$1 < 0 || x$1 >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[x$1])) - ((i < 0 || i >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[i]))))) < ($fround(math.Exp(-x)))) { */ case 9: + $s = -1; return x; + /* } */ case 10: + $s = 1; continue; + case 2: + $s = -1; return 0; + /* */ } return; } var $f = {$blk: ExpFloat64$2, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, i, j, r, x, x$1, $s};return $f; + }; + ptrType.methods = [{prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}]; + ptrType$2.methods = [{prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Int31", name: "Int31", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Int63n", name: "Int63n", pkg: "", typ: $funcType([$Int64], [$Int64], false)}, {prop: "Int31n", name: "Int31n", pkg: "", typ: $funcType([$Int32], [$Int32], false)}, {prop: "int31n", name: "int31n", pkg: "math/rand", typ: $funcType([$Int32], [$Int32], false)}, {prop: "Intn", name: "Intn", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Float32", name: "Float32", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "Shuffle", name: "Shuffle", pkg: "", typ: $funcType([$Int, funcType], [], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "NormFloat64", name: "NormFloat64", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "ExpFloat64", name: "ExpFloat64", pkg: "", typ: $funcType([], [$Float64], false)}]; + ptrType$1.methods = [{prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "seedPos", name: "seedPos", pkg: "math/rand", typ: $funcType([$Int64, ptrType$4], [], false)}, {prop: "read", name: "read", pkg: "math/rand", typ: $funcType([sliceType$1, ptrType$5, ptrType$4], [$Int, $error], false)}]; + rngSource.init("math/rand", [{prop: "tap", name: "tap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "feed", name: "feed", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "vec", name: "vec", embedded: false, exported: false, typ: arrayType, tag: ""}]); + Source.init([{prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}]); + Source64.init([{prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}]); + Rand.init("math/rand", [{prop: "src", name: "src", embedded: false, exported: false, typ: Source, tag: ""}, {prop: "s64", name: "s64", embedded: false, exported: false, typ: Source64, tag: ""}, {prop: "readVal", name: "readVal", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "readPos", name: "readPos", embedded: false, exported: false, typ: $Int8, tag: ""}]); + lockedSource.init("math/rand", [{prop: "lk", name: "lk", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "src", name: "src", embedded: false, exported: false, typ: ptrType, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = nosync.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + rngCooked = $toNativeArray($kindInt64, [new $Int64(-973649357, 3952672746), new $Int64(-1065661887, 3130416987), new $Int64(324977939, 3414273807), new $Int64(1241840476, 2806224363), new $Int64(-1477934308, 1997590414), new $Int64(2103305448, 2402795971), new $Int64(1663160183, 1140819369), new $Int64(1120601685, 1788868961), new $Int64(1848035537, 1089001426), new $Int64(1235702047, 873593504), new $Int64(1911387977, 581324885), new $Int64(-1654874170, 1609182556), new $Int64(1069394745, 1241596776), new $Int64(1895445337, 1771189259), new $Int64(-1374618802, 3467012610), new $Int64(-140526423, 2344407434), new $Int64(-1745367887, 782467244), new $Int64(26335124, 3404933915), new $Int64(1063924276, 618867887), new $Int64(-968700782, 520164395), new $Int64(-1591572833, 1341358184), new $Int64(-1515085039, 665794848), new $Int64(1527227641, 3183648150), new $Int64(1781176124, 696329606), new $Int64(1789146075, 4151988961), new $Int64(-2087444114, 998951326), new $Int64(-612324923, 1364957564), new $Int64(63173359, 4090230633), new $Int64(-1498029007, 4009697548), new $Int64(248009524, 2569622517), new $Int64(778703922, 3742421481), new $Int64(-1109106023, 1506914633), new $Int64(1738099768, 1983412561), new $Int64(236311649, 1436266083), new $Int64(-1111517500, 3922894967), new $Int64(-1336974714, 1792680179), new $Int64(563141142, 1188796351), new $Int64(1349617468, 405968250), new $Int64(1044074554, 433754187), new $Int64(870549669, 4073162024), new $Int64(-1094251604, 433121399), new $Int64(2451824, 4162580594), new $Int64(-137262572, 4132415622), new $Int64(-1536231048, 3033822028), new $Int64(2016407895, 824682382), new $Int64(2366218, 3583765414), new $Int64(-624604839, 535386927), new $Int64(1637219058, 2286693689), new $Int64(1453075389, 2968466525), new $Int64(193683513, 1351410206), new $Int64(-283806096, 1412813499), new $Int64(492736522, 4126267639), new $Int64(512765208, 2105529399), new $Int64(2132966268, 2413882233), new $Int64(947457634, 32226200), new $Int64(1149341356, 2032329073), new $Int64(106485445, 1356518208), new $Int64(-2067810156, 3430061722), new $Int64(-1484435135, 3820169661), new $Int64(-1665985194, 2981816134), new $Int64(1017155588, 4184371017), new $Int64(206574701, 2119206761), new $Int64(-852109057, 2472200560), new $Int64(-560457548, 2853524696), new $Int64(1307803389, 1681119904), new $Int64(-174986835, 95608918), new $Int64(392686347, 3690479145), new $Int64(-1205570926, 1397922290), new $Int64(-1159314025, 1516129515), new $Int64(-320178155, 1547420459), new $Int64(1311333971, 1470949486), new $Int64(-1953469798, 1336785672), new $Int64(-45086614, 4131677129), new $Int64(-1392278100, 4246329084), new $Int64(-1142500187, 3788585631), new $Int64(-66478285, 3080389532), new $Int64(-646438364, 2215402037), new $Int64(391002300, 1171593935), new $Int64(1408774047, 1423855166), new $Int64(-519177718, 2276716302), new $Int64(-368453140, 2068027241), new $Int64(1369359303, 3427553297), new $Int64(189241615, 3289637845), new $Int64(1057480830, 3486407650), new $Int64(-1512910664, 3071877822), new $Int64(1159653919, 3363620705), new $Int64(-934256930, 4159821533), new $Int64(-76621938, 1894661), new $Int64(-674493898, 1156868282), new $Int64(348271067, 776219088), new $Int64(-501428838, 2425634259), new $Int64(1716021749, 680510161), new $Int64(-574263456, 1310101429), new $Int64(1095885995, 2964454134), new $Int64(-325695512, 3467098407), new $Int64(1990672920, 2109628894), new $Int64(-2139648704, 1232604732), new $Int64(-1838070714, 3261916179), new $Int64(1699175360, 434597899), new $Int64(235436061, 1624796439), new $Int64(-1626402839, 3589632480), new $Int64(1198416575, 864579159), new $Int64(-1938748161, 1380889830), new $Int64(619206309, 2654509477), new $Int64(1419738251, 1468209306), new $Int64(-1744284772, 100794388), new $Int64(-1191421458, 2991674471), new $Int64(-208666741, 2224662036), new $Int64(-173659161, 977097250), new $Int64(1351320195, 726419512), new $Int64(-183459897, 1747974366), new $Int64(-753095183, 1556430604), new $Int64(-1049492215, 1080776742), new $Int64(-385846958, 280794874), new $Int64(117767733, 919835643), new $Int64(-967009426, 3434019658), new $Int64(-1951414480, 2461941785), new $Int64(133215641, 3615001066), new $Int64(417204809, 3103414427), new $Int64(790056561, 3380809712), new $Int64(-1267681408, 2724693469), new $Int64(547796833, 598827710), new $Int64(-1846559452, 3452273442), new $Int64(-75778224, 649274915), new $Int64(-801301329, 2585724112), new $Int64(-1510934263, 3165579553), new $Int64(1185578221, 2635894283), new $Int64(-52910178, 2053289721), new $Int64(985976581, 3169337108), new $Int64(1170569632, 144717764), new $Int64(1079216270, 1383666384), new $Int64(-124804942, 681540375), new $Int64(1375448925, 537050586), new $Int64(-1964768344, 315246468), new $Int64(226402871, 849323088), new $Int64(-885062465, 45543944), new $Int64(-946445250, 2319052083), new $Int64(-40708194, 3613090841), new $Int64(560472520, 2992171180), new $Int64(-381863169, 2068244785), new $Int64(917538188, 4239862634), new $Int64(-1369555809, 3892253031), new $Int64(720683925, 958186149), new $Int64(-423297785, 1877702262), new $Int64(1357886971, 837674867), new $Int64(1837048883, 1507589294), new $Int64(1905518400, 873336795), new $Int64(-1879761037, 2764496274), new $Int64(-1806480530, 4196182374), new $Int64(-1066765755, 550964545), new $Int64(818747069, 420611474), new $Int64(-1924830376, 204265180), new $Int64(1549974541, 1787046383), new $Int64(1215581865, 3102292318), new $Int64(418321538, 1552199393), new $Int64(1243493047, 980542004), new $Int64(267284263, 3293718720), new $Int64(1179528763, 3771917473), new $Int64(599484404, 2195808264), new $Int64(252818753, 3894702887), new $Int64(-1367475956, 2099949527), new $Int64(1424094358, 338442522), new $Int64(490737398, 637158004), new $Int64(-1727621530, 281976339), new $Int64(574970164, 3619802330), new $Int64(-431930823, 3084554784), new $Int64(-1264611183, 4129772886), new $Int64(-2104399043, 1680378557), new $Int64(-1621962591, 3339087776), new $Int64(1680500332, 4220317857), new $Int64(-1935828963, 2959322499), new $Int64(1675600481, 1488354890), new $Int64(-834863562, 3958162143), new $Int64(-1226511573, 2773705983), new $Int64(1876039582, 225908689), new $Int64(-1183735113, 908216283), new $Int64(-605696219, 3574646075), new $Int64(-1827723091, 1936937569), new $Int64(1519770881, 75492235), new $Int64(816689472, 1935193178), new $Int64(2142521206, 2018250883), new $Int64(455141620, 3943126022), new $Int64(-601399488, 3066544345), new $Int64(1932392669, 2793082663), new $Int64(-1239009361, 3297036421), new $Int64(1640597065, 2206987825), new $Int64(-553246738, 807894872), new $Int64(-1781325307, 766252117), new $Int64(2060649606, 3833114345), new $Int64(845619743, 1255067973), new $Int64(1201145605, 741697208), new $Int64(-1476242608, 2810093753), new $Int64(1109032642, 4229340371), new $Int64(1462188720, 1361684224), new $Int64(-1159399429, 1906263026), new $Int64(475781207, 3904421704), new $Int64(-623537128, 1769075545), new $Int64(1062308525, 2621599764), new $Int64(1279509432, 3431891480), new $Int64(-1742751146, 1871896503), new $Int64(128756421, 1412808876), new $Int64(1605404688, 952876175), new $Int64(-230443691, 1824438899), new $Int64(1662295856, 1005035476), new $Int64(-156574141, 527508597), new $Int64(1288873303, 3066806859), new $Int64(565995893, 3244940914), new $Int64(-889746188, 209092916), new $Int64(-247669406, 1242699167), new $Int64(-713830396, 456723774), new $Int64(1776978905, 1001252870), new $Int64(1468772157, 2026725874), new $Int64(857254202, 2137562569), new $Int64(765939740, 3183366709), new $Int64(1533887628, 2612072960), new $Int64(56977098, 1727148468), new $Int64(-1197583895, 3803658212), new $Int64(1883670356, 479946959), new $Int64(685713571, 1562982345), new $Int64(-1946242443, 1766109365), new $Int64(700596547, 3257093788), new $Int64(-184714929, 2365720207), new $Int64(93384808, 3742754173), new $Int64(-458385235, 2878193673), new $Int64(1096135042, 2174002182), new $Int64(-834260953, 3573511231), new $Int64(-754572527, 1760299077), new $Int64(-1375627191, 2260779833), new $Int64(-866019274, 1452805722), new $Int64(-1229671918, 2940011802), new $Int64(1890251082, 1886183802), new $Int64(893897673, 2514369088), new $Int64(1644345561, 3924317791), new $Int64(-1974867432, 500935732), new $Int64(1403501753, 676580929), new $Int64(-1565912283, 1184984890), new $Int64(-691968413, 1271474274), new $Int64(-1828754738, 3163791473), new $Int64(2051027584, 2842487377), new $Int64(1511537551, 2170968612), new $Int64(573262976, 3535856740), new $Int64(-2053227187, 1488599718), new $Int64(-1180531831, 3408913763), new $Int64(-2086531912, 2501050084), new $Int64(-875130448, 1639124157), new $Int64(-2009482504, 4088176393), new $Int64(1574896563, 3989947576), new $Int64(-165243708, 3414355209), new $Int64(-792329287, 2275136352), new $Int64(-2057774345, 2151835223), new $Int64(-931144933, 1654534827), new $Int64(-679921451, 377892833), new $Int64(-482716010, 660204544), new $Int64(85706799, 390828249), new $Int64(-1422172693, 3402783878), new $Int64(-1468634160, 3717936603), new $Int64(1113532086, 2211058823), new $Int64(1564224320, 2692150867), new $Int64(1952770442, 1928910388), new $Int64(788716862, 3931011137), new $Int64(1083670504, 1112701047), new $Int64(-68150572, 2452299106), new $Int64(-896164822, 2337204777), new $Int64(1774877857, 273889282), new $Int64(1798719843, 1462008793), new $Int64(2138834788, 1554494002), new $Int64(-1194967131, 182675323), new $Int64(-1598554764, 1882802136), new $Int64(589279648, 3700220025), new $Int64(381039426, 3083431543), new $Int64(-851859191, 3622207527), new $Int64(338126939, 432729309), new $Int64(-1667470126, 2391914317), new $Int64(-1849558151, 235747924), new $Int64(2120733629, 3088823825), new $Int64(-745079795, 2314658321), new $Int64(1165929723, 2957634338), new $Int64(501323675, 4117056981), new $Int64(1564699815, 1482500298), new $Int64(-740826490, 840489337), new $Int64(799522364, 3483178565), new $Int64(532129761, 2074004656), new $Int64(724246478, 3643392642), new $Int64(-665153481, 1583624461), new $Int64(-885822954, 287473085), new $Int64(1667835381, 3136843981), new $Int64(1138806821, 1266970974), new $Int64(135185781, 1998688839), new $Int64(392094735, 1492900209), new $Int64(1031326774, 1538112737), new $Int64(-2070568842, 2207265429), new $Int64(-1886797613, 963263315), new $Int64(1671145500, 2295892134), new $Int64(1068469660, 2002560897), new $Int64(-356250305, 1369254035), new $Int64(33436120, 3353312708), new $Int64(57507843, 947771099), new $Int64(-1945755145, 1747061399), new $Int64(1507240140, 2047354631), new $Int64(720000810, 4165367136), new $Int64(479265078, 3388864963), new $Int64(-952181250, 286492130), new $Int64(2045622690, 2795735007), new $Int64(-715730566, 3703961339), new $Int64(-148436487, 1797825479), new $Int64(1429039600, 1116589674), new $Int64(-1665420098, 2593309206), new $Int64(1329049334, 3404995677), new $Int64(-750579440, 3453462936), new $Int64(1014767077, 3016498634), new $Int64(75698599, 1650371545), new $Int64(1592007860, 212344364), new $Int64(1127766888, 3843932156), new $Int64(-748019856, 3573129983), new $Int64(-890581831, 665897820), new $Int64(1071492673, 1675628772), new $Int64(243225682, 2831752928), new $Int64(2120298836, 1486294219), new $Int64(-1954407413, 268782709), new $Int64(-1002123503, 4186179080), new $Int64(624342951, 1613720397), new $Int64(857179861, 2703686015), new $Int64(-911618704, 2205342611), new $Int64(-672703993, 1411666394), new $Int64(-1528454899, 677744900), new $Int64(-1876628533, 4172867247), new $Int64(135494707, 2163418403), new $Int64(849547544, 2841526879), new $Int64(-1117516959, 1082141470), new $Int64(-1770111792, 4046134367), new $Int64(51415528, 2142943655), new $Int64(-249824333, 3124627521), new $Int64(998228909, 219992939), new $Int64(-1078790951, 1756846531), new $Int64(1283749206, 1225118210), new $Int64(-525858006, 1647770243), new $Int64(-2035959705, 444807907), new $Int64(2036369448, 3952076173), new $Int64(53201823, 1461839639), new $Int64(315761893, 3699250910), new $Int64(702974850, 1373688981), new $Int64(734022261, 147523747), new $Int64(-2047330906, 1211276581), new $Int64(1294440951, 2548832680), new $Int64(1144696256, 1995631888), new $Int64(-1992983070, 2011457303), new $Int64(-1351022674, 3057425772), new $Int64(667839456, 81484597), new $Int64(-1681980888, 3646681560), new $Int64(-1372462725, 635548515), new $Int64(602489502, 2508044581), new $Int64(-1794220117, 1014917157), new $Int64(719992433, 3214891315), new $Int64(-1294799037, 959582252), new $Int64(226415134, 3347040449), new $Int64(-362868096, 4102971975), new $Int64(397887437, 4078022210), new $Int64(-536803826, 2851767182), new $Int64(-1398321012, 1540160644), new $Int64(-1549098876, 1057290595), new $Int64(-112592988, 3907769253), new $Int64(579300318, 4248952684), new $Int64(-1054576049, 132554364), new $Int64(-1085862414, 1029351092), new $Int64(697840928, 2583007416), new $Int64(298619124, 1486185789), new $Int64(55905697, 2871589073), new $Int64(2017643612, 723203291), new $Int64(146250550, 2494333952), new $Int64(-1082993397, 2230939180), new $Int64(-1804568072, 3943232912), new $Int64(1768732449, 2181367922), new $Int64(-729261111, 2889274791), new $Int64(1824032949, 2046728161), new $Int64(1653899792, 1376052477), new $Int64(1022327048, 381236993), new $Int64(-1113097690, 3188942166), new $Int64(-74480109, 350070824), new $Int64(144881592, 61758415), new $Int64(-741824226, 3492950336), new $Int64(-2030042720, 3093818430), new $Int64(-453590535, 2962480613), new $Int64(-1912050708, 3154871160), new $Int64(-1636478569, 3228564679), new $Int64(610731502, 888276216), new $Int64(-946702974, 3574998604), new $Int64(-1277068380, 1967526716), new $Int64(-1556147941, 1554691298), new $Int64(-1573024234, 339944798), new $Int64(1223764147, 1154515356), new $Int64(1825645307, 967516237), new $Int64(1546195135, 596588202), new $Int64(-1867600880, 3764362170), new $Int64(-1655392592, 266611402), new $Int64(-393255880, 2047856075), new $Int64(-1000726433, 21444105), new $Int64(-949424754, 3065563181), new $Int64(-232418803, 1140663212), new $Int64(633187674, 2323741028), new $Int64(2126290159, 3103873707), new $Int64(1008658319, 2766828349), new $Int64(-485587503, 1970872996), new $Int64(1628585413, 3766615585), new $Int64(-595148528, 2036813414), new $Int64(-1994877121, 3105536507), new $Int64(13954645, 3396176938), new $Int64(-721402003, 1377154485), new $Int64(-61839181, 3807014186), new $Int64(543009040, 3710110597), new $Int64(-1751425519, 916420443), new $Int64(734556788, 2103831255), new $Int64(-1766161494, 717331943), new $Int64(-1574598896, 3550505941), new $Int64(45939673, 378749927), new $Int64(-1997615719, 611017331), new $Int64(592130075, 758907650), new $Int64(1012992349, 154266815), new $Int64(-1040454942, 1407468696), new $Int64(-1678191250, 970098704), new $Int64(-285057486, 1971660656), new $Int64(998365243, 3332747885), new $Int64(1947089649, 1935189867), new $Int64(1510248801, 203520055), new $Int64(-1305165746, 3916463034), new $Int64(-388598655, 3474113316), new $Int64(1036101639, 316544223), new $Int64(-1773744891, 1650844677), new $Int64(-907191419, 4267565603), new $Int64(-1070275024, 2501167616), new $Int64(-1520651863, 3929401789), new $Int64(-2091360852, 337170252), new $Int64(-960502090, 2061966842), new $Int64(-304190848, 2508461464), new $Int64(-1941471116, 2791377107), new $Int64(1240791848, 1227227588), new $Int64(1813978778, 1709681848), new $Int64(1153692192, 3768820575), new $Int64(-1002297449, 2887126398), new $Int64(-1447111334, 296561685), new $Int64(700300844, 3729960077), new $Int64(-1572311344, 372833036), new $Int64(2078875613, 2409779288), new $Int64(1829161290, 555274064), new $Int64(-1105595719, 4239804901), new $Int64(1839403216, 3723486978), new $Int64(-1649093095, 2145871984), new $Int64(-1582765715, 3565480803), new $Int64(-1568653827, 2197313814), new $Int64(974785092, 3613674566), new $Int64(438638731, 3042093666), new $Int64(-96556264, 3324034321), new $Int64(869420878, 3708873369), new $Int64(946682149, 1698090092), new $Int64(1618900382, 4213940712), new $Int64(-1843479747, 2087477361), new $Int64(-1766167800, 2407950639), new $Int64(-1296225558, 3942568569), new $Int64(-1223900450, 4088074412), new $Int64(723260036, 2964773675), new $Int64(-673921829, 1539178386), new $Int64(1062961552, 2694849566), new $Int64(460977733, 2120273838), new $Int64(-1604570740, 2484608657), new $Int64(880846449, 2956190677), new $Int64(1970902366, 4223313749), new $Int64(662161910, 3502682327), new $Int64(705634754, 4133891139), new $Int64(-1031359300, 1166449596), new $Int64(1038247601, 3362705993), new $Int64(93734798, 3892921029), new $Int64(1876124043, 786869787), new $Int64(1057490746, 1046342263), new $Int64(242763728, 493777327), new $Int64(-853573201, 3304827646), new $Int64(616460742, 125356352), new $Int64(499300063, 74094113), new $Int64(-795586925, 2500816079), new $Int64(-490248444, 514015239), new $Int64(1377565129, 543520454), new $Int64(-2039776725, 3614531153), new $Int64(2056746300, 2356753985), new $Int64(1390062617, 2018141668), new $Int64(131272971, 2087974891), new $Int64(-1502927041, 3166972343), new $Int64(372256200, 1517638666), new $Int64(-935275664, 173466846), new $Int64(-695774461, 4241513471), new $Int64(-1413550842, 2783126920), new $Int64(1972004134, 4167264826), new $Int64(29260506, 3907395640), new $Int64(-910901561, 1539634186), new $Int64(-595957298, 178241987), new $Int64(-113277636, 182168164), new $Int64(-1102530459, 2386154934), new $Int64(1379126408, 4077374341), new $Int64(-2114679722, 1732699140), new $Int64(-421057745, 1041306002), new $Int64(1860414813, 2068001749), new $Int64(1005320202, 3208962910), new $Int64(844054010, 697710380), new $Int64(-1509359403, 2228431183), new $Int64(-810313977, 3554678728), new $Int64(-750989047, 173470263), new $Int64(-85886265, 3848297795), new $Int64(-926936977, 246236185), new $Int64(-1984190461, 2066374846), new $Int64(1771673660, 312890749), new $Int64(703378057, 3573310289), new $Int64(-598851901, 143166754), new $Int64(613554316, 2081511079), new $Int64(1197802104, 486038032), new $Int64(-1906483789, 2982218564), new $Int64(364901986, 1000939191), new $Int64(1902782651, 2750454885), new $Int64(-671844857, 3375313137), new $Int64(-1643868040, 881302957), new $Int64(-1508784745, 2514186393), new $Int64(-1703622845, 360024739), new $Int64(1399671872, 292500025), new $Int64(1381210821, 2276300752), new $Int64(521803381, 4069087683), new $Int64(-1938982667, 1637778212), new $Int64(720490469, 1676670893), new $Int64(1067262482, 3855174429), new $Int64(2114075974, 2067248671), new $Int64(-89426259, 2884561259), new $Int64(-805741095, 2456511185), new $Int64(983726246, 561175414), new $Int64(-1719489563, 432588903), new $Int64(885133709, 4059399550), new $Int64(-93096266, 1075014784), new $Int64(-1733832628, 2728058415), new $Int64(1839142064, 1299703678), new $Int64(1262333188, 2347583393), new $Int64(1285481956, 2468164145), new $Int64(-1158354011, 1140014346), new $Int64(2033889184, 1936972070), new $Int64(-1737578993, 3870530098), new $Int64(-484494257, 1717789158), new $Int64(-232997156, 1153452491), new $Int64(-990424416, 3948827651), new $Int64(-1357145630, 2101413152), new $Int64(1495744672, 3854091229), new $Int64(83644069, 4215565463), new $Int64(-1385277313, 1202710438), new $Int64(-564909037, 2072216740), new $Int64(705690639, 2066751068), new $Int64(-2113583312, 173902580), new $Int64(-741983806, 142459001), new $Int64(172391592, 1889151926), new $Int64(-498943125, 3034199774), new $Int64(1618587731, 516490102), new $Int64(93114264, 3692577783), new $Int64(-2078821353, 2953948865), new $Int64(-320938673, 4041040923), new $Int64(-1942517976, 592046130), new $Int64(-705643640, 384297211), new $Int64(-2051649464, 265863924), new $Int64(2101717619, 1333136237), new $Int64(1499611781, 1406273556), new $Int64(1074670496, 426305476), new $Int64(125704633, 2750898176), new $Int64(488068495, 1633944332), new $Int64(2037723464, 3236349343), new $Int64(-1703423246, 4013676611), new $Int64(1718532237, 2265047407), new $Int64(1433593806, 875071080), new $Int64(-343047503, 1418843655), new $Int64(2009228711, 451657300), new $Int64(1229446621, 1866374663), new $Int64(1653472867, 1551455622), new $Int64(577191481, 3560962459), new $Int64(1669204077, 3347903778), new $Int64(-298327194, 2675874918), new $Int64(-1831355577, 2762991672), new $Int64(530492383, 3689068477), new $Int64(844089962, 4071997905), new $Int64(1508155730, 1381702441), new $Int64(2089931018, 2373284878), new $Int64(-864267462, 2143983064), new $Int64(308739063, 1938207195), new $Int64(1754949306, 1188152253), new $Int64(1272345009, 615870490), new $Int64(742653194, 2662252621), new $Int64(1477718295, 3839976789), new $Int64(-2091334213, 306752547), new $Int64(-1426688067, 2162363077), new $Int64(-57052633, 2767224719), new $Int64(-1471624099, 2628837712), new $Int64(1678405918, 2967771969), new $Int64(1694285728, 499792248), new $Int64(-1744131281, 4285253508), new $Int64(962357072, 2856511070), new $Int64(679471692, 2526409716), new $Int64(-1793706473, 1240875658), new $Int64(-914893422, 2577342868), new $Int64(-1001298215, 4136853496), new $Int64(-1477114974, 2403540137), new $Int64(1372824515, 1371410668), new $Int64(-176562048, 371758825), new $Int64(-441063112, 1528834084), new $Int64(-71688630, 1504757260), new $Int64(-1461820072, 699052551), new $Int64(-505543539, 3347789870), new $Int64(1951619734, 3430604759), new $Int64(2119672219, 1935601723), new $Int64(966789690, 834676166)]); + globalRand = New(new lockedSource.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), $assertType(NewSource(new $Int64(0, 1)), ptrType))); + kn = $toNativeArray($kindUint32, [1991057938, 0, 1611602771, 1826899878, 1918584482, 1969227037, 2001281515, 2023368125, 2039498179, 2051788381, 2061460127, 2069267110, 2075699398, 2081089314, 2085670119, 2089610331, 2093034710, 2096037586, 2098691595, 2101053571, 2103168620, 2105072996, 2106796166, 2108362327, 2109791536, 2111100552, 2112303493, 2113412330, 2114437283, 2115387130, 2116269447, 2117090813, 2117856962, 2118572919, 2119243101, 2119871411, 2120461303, 2121015852, 2121537798, 2122029592, 2122493434, 2122931299, 2123344971, 2123736059, 2124106020, 2124456175, 2124787725, 2125101763, 2125399283, 2125681194, 2125948325, 2126201433, 2126441213, 2126668298, 2126883268, 2127086657, 2127278949, 2127460589, 2127631985, 2127793506, 2127945490, 2128088244, 2128222044, 2128347141, 2128463758, 2128572095, 2128672327, 2128764606, 2128849065, 2128925811, 2128994934, 2129056501, 2129110560, 2129157136, 2129196237, 2129227847, 2129251929, 2129268426, 2129277255, 2129278312, 2129271467, 2129256561, 2129233410, 2129201800, 2129161480, 2129112170, 2129053545, 2128985244, 2128906855, 2128817916, 2128717911, 2128606255, 2128482298, 2128345305, 2128194452, 2128028813, 2127847342, 2127648860, 2127432031, 2127195339, 2126937058, 2126655214, 2126347546, 2126011445, 2125643893, 2125241376, 2124799783, 2124314271, 2123779094, 2123187386, 2122530867, 2121799464, 2120980787, 2120059418, 2119015917, 2117825402, 2116455471, 2114863093, 2112989789, 2110753906, 2108037662, 2104664315, 2100355223, 2094642347, 2086670106, 2074676188, 2054300022, 2010539237]); + wn = $toNativeArray($kindFloat32, [1.7290404663583558e-09, 1.2680928529462676e-10, 1.689751810696194e-10, 1.9862687883343e-10, 2.223243117382978e-10, 2.4244936613904144e-10, 2.601613091623989e-10, 2.761198769629658e-10, 2.9073962681813725e-10, 3.042996965518796e-10, 3.169979556627567e-10, 3.289802041894774e-10, 3.4035738116777736e-10, 3.5121602848242617e-10, 3.61625090983253e-10, 3.7164057942185025e-10, 3.813085680537398e-10, 3.906675816178762e-10, 3.997501218933053e-10, 4.0858399996679395e-10, 4.1719308563337165e-10, 4.255982233303257e-10, 4.3381759295968436e-10, 4.4186720948857783e-10, 4.497613115272969e-10, 4.57512583373898e-10, 4.6513240481438345e-10, 4.726310454117311e-10, 4.800177477726209e-10, 4.873009773476156e-10, 4.944885056978876e-10, 5.015873272284921e-10, 5.086040477664255e-10, 5.155446070048697e-10, 5.224146670812502e-10, 5.292193350214802e-10, 5.359634958068682e-10, 5.426517013518151e-10, 5.492881705038144e-10, 5.558769555769061e-10, 5.624218868405251e-10, 5.689264614971989e-10, 5.75394121238304e-10, 5.818281967329142e-10, 5.882316855831959e-10, 5.946076964136182e-10, 6.009590047817426e-10, 6.072883862451306e-10, 6.135985053390414e-10, 6.19892026598734e-10, 6.261713370037114e-10, 6.324390455780815e-10, 6.386973727678935e-10, 6.449488165749528e-10, 6.511955974453087e-10, 6.574400468473129e-10, 6.636843297158634e-10, 6.699307220081607e-10, 6.761814441702541e-10, 6.824387166481927e-10, 6.887046488657234e-10, 6.949815167800466e-10, 7.012714853260604e-10, 7.075767749498141e-10, 7.13899661608508e-10, 7.202424212593428e-10, 7.266072743483676e-10, 7.329966078550854e-10, 7.394128087589991e-10, 7.458582640396116e-10, 7.523354716987285e-10, 7.588469852493063e-10, 7.653954137154528e-10, 7.719834771435785e-10, 7.786139510912449e-10, 7.852897221383159e-10, 7.920137878869582e-10, 7.987892014504894e-10, 8.056192379868321e-10, 8.125072836762115e-10, 8.194568912323064e-10, 8.264716688799467e-10, 8.3355555791087e-10, 8.407127216614185e-10, 8.479473234679347e-10, 8.552640262671218e-10, 8.626675485068347e-10, 8.701631637464402e-10, 8.777562010564566e-10, 8.854524335966119e-10, 8.932581896381464e-10, 9.011799639857543e-10, 9.092249730890956e-10, 9.174008219758889e-10, 9.25715837318819e-10, 9.341788453909317e-10, 9.42799727177146e-10, 9.515889187738935e-10, 9.605578554783278e-10, 9.697193048552322e-10, 9.790869226478094e-10, 9.886760299337993e-10, 9.985036131254788e-10, 1.008588212947359e-09, 1.0189509236369076e-09, 1.0296150598776421e-09, 1.040606933955246e-09, 1.0519566329136865e-09, 1.0636980185552147e-09, 1.0758701707302976e-09, 1.0885182755160372e-09, 1.101694735439196e-09, 1.115461056855338e-09, 1.1298901814171813e-09, 1.1450695946990663e-09, 1.1611052119775422e-09, 1.178127595480305e-09, 1.1962995039027646e-09, 1.2158286599728285e-09, 1.2369856250415978e-09, 1.2601323318151003e-09, 1.2857697129220469e-09, 1.3146201904845611e-09, 1.3477839955200466e-09, 1.3870635751089821e-09, 1.43574030442295e-09, 1.5008658760251592e-09, 1.6030947680434338e-09]); + fn = $toNativeArray($kindFloat32, [1, 0.963599681854248, 0.9362826943397522, 0.9130436182022095, 0.8922816514968872, 0.8732430338859558, 0.8555005788803101, 0.8387836217880249, 0.8229072093963623, 0.8077383041381836, 0.7931770086288452, 0.7791460752487183, 0.7655841708183289, 0.7524415850639343, 0.7396772503852844, 0.7272568941116333, 0.7151514887809753, 0.7033361196517944, 0.6917891502380371, 0.6804918646812439, 0.6694276928901672, 0.6585819721221924, 0.6479418277740479, 0.6374954581260681, 0.6272324919700623, 0.6171433925628662, 0.6072195172309875, 0.5974531769752502, 0.5878370404243469, 0.5783646702766418, 0.5690299868583679, 0.5598273873329163, 0.550751805305481, 0.5417983531951904, 0.5329626798629761, 0.5242405533790588, 0.5156282186508179, 0.5071220397949219, 0.49871864914894104, 0.4904148280620575, 0.48220765590667725, 0.47409430146217346, 0.466072142124176, 0.45813870429992676, 0.45029163360595703, 0.44252872467041016, 0.4348478317260742, 0.42724698781967163, 0.41972434520721436, 0.41227802634239197, 0.40490642189979553, 0.39760786294937134, 0.3903807997703552, 0.3832238018512726, 0.3761354684829712, 0.3691144585609436, 0.36215949058532715, 0.3552693724632263, 0.3484429717063904, 0.3416791558265686, 0.33497685194015503, 0.32833510637283325, 0.3217529058456421, 0.3152293860912323, 0.30876362323760986, 0.3023548424243927, 0.2960021495819092, 0.2897048592567444, 0.28346219658851624, 0.2772735059261322, 0.271138072013855, 0.2650552988052368, 0.25902456045150757, 0.25304529070854187, 0.24711695313453674, 0.24123899638652802, 0.23541094362735748, 0.22963231801986694, 0.22390270233154297, 0.21822164952754974, 0.21258877217769623, 0.20700371265411377, 0.20146611332893372, 0.1959756463766098, 0.19053204357624054, 0.18513499200344086, 0.17978426814079285, 0.1744796335697174, 0.16922089457511902, 0.16400785744190216, 0.1588403731584549, 0.15371830761432648, 0.14864157140254974, 0.14361007511615753, 0.13862377405166626, 0.13368265330791473, 0.12878671288490295, 0.12393598258495331, 0.11913054436445236, 0.11437050998210907, 0.10965602099895477, 0.1049872562289238, 0.10036443918943405, 0.09578784555196762, 0.09125780314207077, 0.08677466958761215, 0.08233889937400818, 0.07795098423957825, 0.07361150532960892, 0.06932111829519272, 0.06508058309555054, 0.06089077144861221, 0.05675266310572624, 0.05266740173101425, 0.048636294901371, 0.044660862535238266, 0.040742866694927216, 0.03688438981771469, 0.03308788686990738, 0.029356317594647408, 0.025693291798233986, 0.02210330404341221, 0.018592102453112602, 0.015167297795414925, 0.011839478276669979, 0.0086244847625494, 0.005548994988203049, 0.0026696291752159595]); + ke = $toNativeArray($kindUint32, [3801129273, 0, 2615860924, 3279400049, 3571300752, 3733536696, 3836274812, 3906990442, 3958562475, 3997804264, 4028649213, 4053523342, 4074002619, 4091154507, 4105727352, 4118261130, 4129155133, 4138710916, 4147160435, 4154685009, 4161428406, 4167506077, 4173011791, 4178022498, 4182601930, 4186803325, 4190671498, 4194244443, 4197554582, 4200629752, 4203493986, 4206168142, 4208670408, 4211016720, 4213221098, 4215295924, 4217252177, 4219099625, 4220846988, 4222502074, 4224071896, 4225562770, 4226980400, 4228329951, 4229616109, 4230843138, 4232014925, 4233135020, 4234206673, 4235232866, 4236216336, 4237159604, 4238064994, 4238934652, 4239770563, 4240574564, 4241348362, 4242093539, 4242811568, 4243503822, 4244171579, 4244816032, 4245438297, 4246039419, 4246620374, 4247182079, 4247725394, 4248251127, 4248760037, 4249252839, 4249730206, 4250192773, 4250641138, 4251075867, 4251497493, 4251906522, 4252303431, 4252688672, 4253062674, 4253425844, 4253778565, 4254121205, 4254454110, 4254777611, 4255092022, 4255397640, 4255694750, 4255983622, 4256264513, 4256537670, 4256803325, 4257061702, 4257313014, 4257557464, 4257795244, 4258026541, 4258251531, 4258470383, 4258683258, 4258890309, 4259091685, 4259287526, 4259477966, 4259663135, 4259843154, 4260018142, 4260188212, 4260353470, 4260514019, 4260669958, 4260821380, 4260968374, 4261111028, 4261249421, 4261383632, 4261513736, 4261639802, 4261761900, 4261880092, 4261994441, 4262105003, 4262211835, 4262314988, 4262414513, 4262510454, 4262602857, 4262691764, 4262777212, 4262859239, 4262937878, 4263013162, 4263085118, 4263153776, 4263219158, 4263281289, 4263340187, 4263395872, 4263448358, 4263497660, 4263543789, 4263586755, 4263626565, 4263663224, 4263696735, 4263727099, 4263754314, 4263778377, 4263799282, 4263817020, 4263831582, 4263842955, 4263851124, 4263856071, 4263857776, 4263856218, 4263851370, 4263843206, 4263831695, 4263816804, 4263798497, 4263776735, 4263751476, 4263722676, 4263690284, 4263654251, 4263614520, 4263571032, 4263523724, 4263472530, 4263417377, 4263358192, 4263294892, 4263227394, 4263155608, 4263079437, 4262998781, 4262913534, 4262823581, 4262728804, 4262629075, 4262524261, 4262414220, 4262298801, 4262177846, 4262051187, 4261918645, 4261780032, 4261635148, 4261483780, 4261325704, 4261160681, 4260988457, 4260808763, 4260621313, 4260425802, 4260221905, 4260009277, 4259787550, 4259556329, 4259315195, 4259063697, 4258801357, 4258527656, 4258242044, 4257943926, 4257632664, 4257307571, 4256967906, 4256612870, 4256241598, 4255853155, 4255446525, 4255020608, 4254574202, 4254106002, 4253614578, 4253098370, 4252555662, 4251984571, 4251383021, 4250748722, 4250079132, 4249371435, 4248622490, 4247828790, 4246986404, 4246090910, 4245137315, 4244119963, 4243032411, 4241867296, 4240616155, 4239269214, 4237815118, 4236240596, 4234530035, 4232664930, 4230623176, 4228378137, 4225897409, 4223141146, 4220059768, 4216590757, 4212654085, 4208145538, 4202926710, 4196809522, 4189531420, 4180713890, 4169789475, 4155865042, 4137444620, 4111806704, 4073393724, 4008685917, 3873074895]); + we = $toNativeArray($kindFloat32, [2.0249555365836613e-09, 1.4866739783681027e-11, 2.4409616689036184e-11, 3.1968806074589295e-11, 3.844677007314168e-11, 4.42282044321729e-11, 4.951644302919611e-11, 5.443358958023836e-11, 5.905943789574764e-11, 6.34494193296753e-11, 6.764381416113352e-11, 7.167294535648239e-11, 7.556032188826833e-11, 7.932458162551725e-11, 8.298078890689453e-11, 8.654132271912474e-11, 9.001651507523079e-11, 9.341507428706208e-11, 9.674443190998971e-11, 1.0001099254308699e-10, 1.0322031424037093e-10, 1.0637725422757427e-10, 1.0948611461891744e-10, 1.1255067711157807e-10, 1.1557434870246297e-10, 1.1856014781042035e-10, 1.2151082917633005e-10, 1.2442885610752796e-10, 1.2731647680563896e-10, 1.3017574518325858e-10, 1.330085347417409e-10, 1.3581656632677408e-10, 1.386014220061682e-10, 1.413645728254309e-10, 1.4410737880776736e-10, 1.4683107507629245e-10, 1.4953686899854546e-10, 1.522258291641876e-10, 1.5489899640730442e-10, 1.575573282952547e-10, 1.6020171300645814e-10, 1.628330109637588e-10, 1.6545202707884954e-10, 1.68059510752272e-10, 1.7065616975120435e-10, 1.73242697965037e-10, 1.758197337720091e-10, 1.783878739169964e-10, 1.8094774290045024e-10, 1.834998542005195e-10, 1.8604476292871652e-10, 1.8858298256319017e-10, 1.9111498494872592e-10, 1.9364125580789704e-10, 1.9616222535212557e-10, 1.9867835154840918e-10, 2.011900368525943e-10, 2.0369768372052732e-10, 2.062016807302669e-10, 2.0870240258208383e-10, 2.1120022397624894e-10, 2.136955057352452e-10, 2.1618855317040442e-10, 2.1867974098199738e-10, 2.2116936060356807e-10, 2.2365774510202385e-10, 2.2614519978869652e-10, 2.2863201609713002e-10, 2.3111849933865614e-10, 2.3360494094681883e-10, 2.3609159072179864e-10, 2.3857874009713953e-10, 2.4106666662859766e-10, 2.4355562011635357e-10, 2.460458781161634e-10, 2.485376904282077e-10, 2.5103127909709144e-10, 2.5352694943414633e-10, 2.560248957284017e-10, 2.585253955356137e-10, 2.610286709003873e-10, 2.6353494386732734e-10, 2.6604446423661443e-10, 2.6855745405285347e-10, 2.71074163116225e-10, 2.7359478571575835e-10, 2.7611959940720965e-10, 2.786487707240326e-10, 2.8118254946640775e-10, 2.8372118543451563e-10, 2.8626484516180994e-10, 2.8881380620404684e-10, 2.9136826285025563e-10, 2.9392840938946563e-10, 2.96494523377433e-10, 2.990667713476114e-10, 3.016454031001814e-10, 3.042306406797479e-10, 3.068226783753403e-10, 3.09421765987139e-10, 3.12028125559749e-10, 3.1464195138219964e-10, 3.17263521010247e-10, 3.1989300097734485e-10, 3.225306410836737e-10, 3.2517669112941405e-10, 3.2783134540359526e-10, 3.3049485370639786e-10, 3.3316743808242677e-10, 3.3584937608743815e-10, 3.385408342548857e-10, 3.4124211789610115e-10, 3.4395342130011386e-10, 3.4667499426710435e-10, 3.494071143528288e-10, 3.521500313574677e-10, 3.54903967325626e-10, 3.576691720574843e-10, 3.6044595086437425e-10, 3.632345535464765e-10, 3.660352021483959e-10, 3.688482297370399e-10, 3.716738583570134e-10, 3.7451239331964814e-10, 3.773641121807003e-10, 3.802292924959261e-10, 3.831082673322328e-10, 3.8600128648980103e-10, 3.8890865527996255e-10, 3.9183070676962473e-10, 3.9476774627011935e-10, 3.977200790927782e-10, 4.006880383045086e-10, 4.0367195697221803e-10, 4.066721681628138e-10, 4.0968900494320337e-10, 4.127228558914453e-10, 4.15774054074447e-10, 4.188429603146915e-10, 4.2192993543466173e-10, 4.25035395767992e-10, 4.2815970213716525e-10, 4.313032986313914e-10, 4.3446651831757777e-10, 4.376498607960855e-10, 4.408536868893975e-10, 4.4407846844229937e-10, 4.4732464954400086e-10, 4.5059267428371186e-10, 4.538830145062178e-10, 4.5719619756745544e-10, 4.605326675566346e-10, 4.638929240741163e-10, 4.672775499869886e-10, 4.706869893844612e-10, 4.74121908400349e-10, 4.775827511238617e-10, 4.810701836888143e-10, 4.845848167178701e-10, 4.881271498113904e-10, 4.916979601254923e-10, 4.952977472605369e-10, 4.989272883726414e-10, 5.025872495956207e-10, 5.062783525744408e-10, 5.100013189540675e-10, 5.13756870379467e-10, 5.175458395179078e-10, 5.21369003525507e-10, 5.252272505806843e-10, 5.29121357839557e-10, 5.330522134805449e-10, 5.3702081670437e-10, 5.41028055689452e-10, 5.450749851476644e-10, 5.491624932574268e-10, 5.532918012640664e-10, 5.574638528571541e-10, 5.616799247931681e-10, 5.659410717839819e-10, 5.702485705860738e-10, 5.746036979559221e-10, 5.790077306500052e-10, 5.83462111958255e-10, 5.879682296594524e-10, 5.925275825546805e-10, 5.971417249561739e-10, 6.01812211176167e-10, 6.065408175714992e-10, 6.113292094767075e-10, 6.16179329782085e-10, 6.21092954844471e-10, 6.260721940876124e-10, 6.311191569352559e-10, 6.362359528111483e-10, 6.414249686947926e-10, 6.466885360545405e-10, 6.520292639144998e-10, 6.574497612987784e-10, 6.629528592760892e-10, 6.685415554485985e-10, 6.742187919073217e-10, 6.799880103436351e-10, 6.858525969377638e-10, 6.918161599145378e-10, 6.978825850545434e-10, 7.040559801829716e-10, 7.103406751696184e-10, 7.167412219288849e-10, 7.232625609532306e-10, 7.2990985477972e-10, 7.366885990123251e-10, 7.436047333442275e-10, 7.506645305355164e-10, 7.57874762946642e-10, 7.652426470272644e-10, 7.727759543385559e-10, 7.804830115532013e-10, 7.883728114777e-10, 7.964550685635174e-10, 8.047402189070851e-10, 8.132396422944055e-10, 8.219657177122031e-10, 8.309318788590758e-10, 8.401527806789488e-10, 8.496445214056791e-10, 8.594246980742071e-10, 8.695127395874636e-10, 8.799300732498239e-10, 8.90700457834015e-10, 9.01850316648023e-10, 9.134091816243028e-10, 9.254100818978372e-10, 9.37890431984556e-10, 9.508922538259412e-10, 9.64463842123564e-10, 9.78660263939446e-10, 9.935448019859905e-10, 1.0091912860943353e-09, 1.0256859805934937e-09, 1.0431305819125214e-09, 1.0616465484503124e-09, 1.0813799855569073e-09, 1.1025096391392708e-09, 1.1252564435793033e-09, 1.149898620766976e-09, 1.176793218427008e-09, 1.2064089727203964e-09, 1.2393785997488749e-09, 1.2765849488616254e-09, 1.319313880365769e-09, 1.36954347862428e-09, 1.4305497897382224e-09, 1.5083649884672923e-09, 1.6160853766322703e-09, 1.7921247819074893e-09]); + fe = $toNativeArray($kindFloat32, [1, 0.9381436705589294, 0.900469958782196, 0.8717043399810791, 0.847785472869873, 0.8269932866096497, 0.8084216713905334, 0.7915276288986206, 0.7759568691253662, 0.7614634037017822, 0.7478685975074768, 0.7350381016731262, 0.7228676676750183, 0.7112747430801392, 0.7001926302909851, 0.6895664930343628, 0.6793505549430847, 0.669506311416626, 0.6600008606910706, 0.6508058309555054, 0.6418967247009277, 0.633251965045929, 0.62485271692276, 0.6166821718215942, 0.608725368976593, 0.6009689569473267, 0.5934008955955505, 0.5860103368759155, 0.5787873864173889, 0.5717230439186096, 0.5648092031478882, 0.5580382943153381, 0.5514034032821655, 0.5448982119560242, 0.5385168790817261, 0.5322538614273071, 0.526104211807251, 0.5200631618499756, 0.5141264200210571, 0.5082897543907166, 0.5025495290756226, 0.4969019889831543, 0.4913438558578491, 0.4858720004558563, 0.48048335313796997, 0.4751752018928528, 0.4699448347091675, 0.4647897481918335, 0.4597076177597046, 0.4546961486339569, 0.4497532546520233, 0.44487687945365906, 0.4400651156902313, 0.4353161156177521, 0.4306281507015228, 0.42599955201148987, 0.42142874002456665, 0.4169141948223114, 0.4124544560909271, 0.40804818272590637, 0.4036940038204193, 0.39939069747924805, 0.3951369822025299, 0.39093172550201416, 0.38677382469177246, 0.38266217708587646, 0.378595769405365, 0.37457355856895447, 0.37059465050697327, 0.366658091545105, 0.362762987613678, 0.358908474445343, 0.35509374737739563, 0.35131800174713135, 0.3475804924964905, 0.34388044476509094, 0.34021714329719543, 0.33658990263938904, 0.3329980671405792, 0.3294409513473511, 0.32591795921325684, 0.32242849469184875, 0.3189719021320343, 0.3155476748943329, 0.31215524673461914, 0.3087940812110901, 0.30546361207962036, 0.30216339230537415, 0.29889291524887085, 0.29565170407295227, 0.2924392819404602, 0.2892552316188812, 0.28609907627105713, 0.2829704284667969, 0.27986884117126465, 0.2767939269542694, 0.2737452983856201, 0.2707225978374481, 0.26772540807724, 0.26475343108177185, 0.2618062496185303, 0.258883535861969, 0.2559850215911865, 0.25311028957366943, 0.25025907158851624, 0.24743106961250305, 0.2446259707212448, 0.24184346199035645, 0.23908329010009766, 0.23634515702724457, 0.2336287796497345, 0.23093391954898834, 0.22826029360294342, 0.22560766339302063, 0.22297576069831848, 0.22036437690258026, 0.21777324378490448, 0.21520215272903442, 0.212650865316391, 0.21011915802955627, 0.20760682225227356, 0.20511364936828613, 0.20263944566249847, 0.20018397271633148, 0.19774706661701202, 0.1953285187482834, 0.19292815029621124, 0.19054576754570007, 0.18818120658397675, 0.18583425879478455, 0.18350479006767273, 0.18119260668754578, 0.17889754474163055, 0.17661945521831512, 0.17435817420482635, 0.1721135377883911, 0.16988539695739746, 0.16767361760139465, 0.16547803580760956, 0.16329853236675262, 0.16113494336605072, 0.1589871346950531, 0.15685498714447021, 0.15473836660385132, 0.15263713896274567, 0.1505511850118637, 0.1484803706407547, 0.14642459154129028, 0.1443837285041809, 0.14235764741897583, 0.1403462439775467, 0.13834942877292633, 0.136367067694664, 0.13439907133579254, 0.1324453204870224, 0.1305057406425476, 0.12858019769191742, 0.12666863203048706, 0.12477091699838638, 0.12288697808980942, 0.1210167184472084, 0.11916005611419678, 0.11731690168380737, 0.11548716574907303, 0.11367076635360718, 0.11186762899160385, 0.11007767915725708, 0.1083008274435997, 0.10653700679540634, 0.10478614270687103, 0.1030481606721878, 0.10132300108671188, 0.0996105819940567, 0.09791085124015808, 0.09622374176979065, 0.09454918652772903, 0.09288713335990906, 0.09123751521110535, 0.08960027992725372, 0.08797537535429001, 0.08636274188756943, 0.0847623273730278, 0.08317409455776215, 0.08159798383712769, 0.08003395050764084, 0.07848194986581802, 0.07694194465875626, 0.07541389018297195, 0.07389774918556213, 0.07239348441362381, 0.070901058614254, 0.06942043453454971, 0.06795158982276917, 0.06649449467658997, 0.06504911929368973, 0.06361543387174606, 0.06219341605901718, 0.06078304722905159, 0.0593843050301075, 0.05799717456102371, 0.05662164092063904, 0.05525768920779228, 0.05390531197190285, 0.05256449431180954, 0.05123523622751236, 0.04991753399372101, 0.04861138388514519, 0.047316793352365494, 0.04603376239538193, 0.044762298464775085, 0.04350241273641586, 0.04225412383675575, 0.04101744294166565, 0.039792392402887344, 0.03857899457216263, 0.03737728297710419, 0.03618728369474411, 0.03500903770327568, 0.03384258225560188, 0.0326879620552063, 0.031545232981443405, 0.030414443463087082, 0.0292956605553627, 0.028188949450850487, 0.027094384655356407, 0.02601204626262188, 0.024942025542259216, 0.023884421214461327, 0.022839335724711418, 0.021806888282299042, 0.020787203684449196, 0.019780423492193222, 0.018786700442433357, 0.017806200310587883, 0.016839107498526573, 0.015885621309280396, 0.014945968054234982, 0.01402039173990488, 0.013109165243804455, 0.012212592177093029, 0.011331013403832912, 0.010464809834957123, 0.009614413604140282, 0.008780314587056637, 0.007963077165186405, 0.007163353264331818, 0.0063819061033427715, 0.005619642324745655, 0.004877655766904354, 0.004157294984906912, 0.003460264764726162, 0.0027887988835573196, 0.0021459676790982485, 0.001536299823783338, 0.0009672692976891994, 0.0004541343660093844]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["math/big"] = (function() { + var $pkg = {}, $init, bytes, binary, errors, fmt, nosync, io, math, bits, rand, strconv, strings, Rat, divisor, nat, byteReader, Int, Float, ErrNaN, form, RoundingMode, Accuracy, decimal, Word, threeOnce, cacheBase10, natPool, _RoundingMode_index, errNoDigits, errInvalSep, leafSize, natOne, natTwo, natFive, natTen, karatsubaThreshold, basicSqrThreshold, karatsubaSqrThreshold, intOne, pow5tab, _Accuracy_index, three, newFloat, ratTok, scanExponent, NewRat, quotToFloat32, quotToFloat64, mulDenom, divWVW, greaterThan, maxPow, pow, divisors, basicMul, karatsubaAdd, karatsubaSub, karatsuba, alias, addAt, max, karatsubaLen, basicSqr, karatsubaSqr, getNat, putNat, same, bigEndianWord, writeMultiple, scanSign, NewInt, low32, low64, lehmerSimulate, lehmerUpdate, euclidUpdate, Jacobi, roundShortest, fmtE, fmtF, min, NewFloat, makeAcc, fnorm, msb32, msb64, validateBinaryOperands, umax32, shr, appendZeros, shouldRoundUp, trim, addVV, subVV, addVW, subVW, shlVU, shrVU, mulAddVWW, addMulVVW, mulWW, mulAddWWW_g, nlz, addVV_g, subVV_g, addVW_g, addVWlarge, subVW_g, subVWlarge, shlVU_g, shrVU_g, mulAddVWW_g, addMulVVW_g, divWW, reciprocalWord; + bytes = $packages["bytes"]; + binary = $packages["encoding/binary"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + io = $packages["io"]; + math = $packages["math"]; + bits = $packages["math/bits"]; + rand = $packages["math/rand"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + Rat = $newType(0, $kindStruct, "big.Rat", true, "math/big", true, function(a_, b_) { + this.$val = this; + if (arguments.length === 0) { + this.a = new Int.ptr(false, nat.nil); + this.b = new Int.ptr(false, nat.nil); + return; + } + this.a = a_; + this.b = b_; + }); + divisor = $newType(0, $kindStruct, "big.divisor", true, "math/big", false, function(bbb_, nbits_, ndigits_) { + this.$val = this; + if (arguments.length === 0) { + this.bbb = nat.nil; + this.nbits = 0; + this.ndigits = 0; + return; + } + this.bbb = bbb_; + this.nbits = nbits_; + this.ndigits = ndigits_; + }); + nat = $newType(12, $kindSlice, "big.nat", true, "math/big", false, null); + byteReader = $newType(0, $kindStruct, "big.byteReader", true, "math/big", false, function(ScanState_) { + this.$val = this; + if (arguments.length === 0) { + this.ScanState = $ifaceNil; + return; + } + this.ScanState = ScanState_; + }); + Int = $newType(0, $kindStruct, "big.Int", true, "math/big", true, function(neg_, abs_) { + this.$val = this; + if (arguments.length === 0) { + this.neg = false; + this.abs = nat.nil; + return; + } + this.neg = neg_; + this.abs = abs_; + }); + Float = $newType(0, $kindStruct, "big.Float", true, "math/big", true, function(prec_, mode_, acc_, form_, neg_, mant_, exp_) { + this.$val = this; + if (arguments.length === 0) { + this.prec = 0; + this.mode = 0; + this.acc = 0; + this.form = 0; + this.neg = false; + this.mant = nat.nil; + this.exp = 0; + return; + } + this.prec = prec_; + this.mode = mode_; + this.acc = acc_; + this.form = form_; + this.neg = neg_; + this.mant = mant_; + this.exp = exp_; + }); + ErrNaN = $newType(0, $kindStruct, "big.ErrNaN", true, "math/big", true, function(msg_) { + this.$val = this; + if (arguments.length === 0) { + this.msg = ""; + return; + } + this.msg = msg_; + }); + form = $newType(1, $kindUint8, "big.form", true, "math/big", false, null); + RoundingMode = $newType(1, $kindUint8, "big.RoundingMode", true, "math/big", true, null); + Accuracy = $newType(1, $kindInt8, "big.Accuracy", true, "math/big", true, null); + decimal = $newType(0, $kindStruct, "big.decimal", true, "math/big", false, function(mant_, exp_) { + this.$val = this; + if (arguments.length === 0) { + this.mant = sliceType$1.nil; + this.exp = 0; + return; + } + this.mant = mant_; + this.exp = exp_; + }); + Word = $newType(4, $kindUint, "big.Word", true, "math/big", true, null); + $pkg.Rat = Rat; + $pkg.divisor = divisor; + $pkg.nat = nat; + $pkg.byteReader = byteReader; + $pkg.Int = Int; + $pkg.Float = Float; + $pkg.ErrNaN = ErrNaN; + $pkg.form = form; + $pkg.RoundingMode = RoundingMode; + $pkg.Accuracy = Accuracy; + $pkg.decimal = decimal; + $pkg.Word = Word; + $pkg.$finishSetup = function() { + three = function three$1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = threeOnce.Once.Do((function three·func1() { + var {_r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = NewFloat(3); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + threeOnce.v = _r; + $s = -1; return; + /* */ } return; } var $f = {$blk: three·func1, $c: true, $r, _r, $s};return $f; + })); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return threeOnce.v; + /* */ } return; } var $f = {$blk: three$1, $c: true, $r, $s};return $f; + }; + $ptrType(Float).prototype.Sqrt = function Sqrt(x) { + var {$24r, _1, _q, _r, _r$1, _r$2, _r$3, b, prec, x, x$1, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (z.prec === 0) { + z.prec = x.prec; + } + _r = x.Sign(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === -1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r === -1) { */ case 4: + $panic((x$1 = new ErrNaN.ptr("square root of negative operand"), new x$1.constructor.elem(x$1))); + /* } */ case 5: + if (!((x.form === 1))) { + z.acc = 0; + z.form = x.form; + z.neg = x.neg; + $s = -1; return z; + } + prec = z.prec; + _r$1 = x.MantExp(z); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + b = _r$1; + z.prec = prec; + _1 = (_r$2 = b % 2, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")); + if (_1 === (0)) { + } else if (_1 === (1)) { + z.exp = z.exp + (1) >> 0; + } else if (_1 === (-1)) { + z.exp = z.exp - (1) >> 0; + } + $r = z.sqrtInverse(z); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = z.SetMantExp(z, (_q = b / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 10; case 10: return $24r; + /* */ } return; } var $f = {$blk: Sqrt, $c: true, $r, $24r, _1, _q, _r, _r$1, _r$2, _r$3, b, prec, x, x$1, z, $s};return $f; + }; + $ptrType(Float).prototype.sqrtInverse = function sqrtInverse(x) { + var {_r, _r$1, _r$2, _r$3, _r$4, _tuple, ng, prec, sqi, three$2, u, v, x, xf, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + three$2 = [three$2]; + u = [u]; + v = [v]; + x = [x]; + z = this; + u[0] = newFloat(z.prec); + v[0] = newFloat(z.prec); + _r = three(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + three$2[0] = _r; + ng = (function(three$2, u, v, x) { return function Float·sqrtInverse·func1(t) { + var {$24r, _r$1, _r$2, _r$3, _r$4, _r$5, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + u[0].prec = t.prec; + v[0].prec = t.prec; + _r$1 = u[0].Mul(t, t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = u[0].Mul(x[0], u[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = v[0].Sub(three$2[0], u[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _r$4 = u[0].Mul(t, v[0]); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + u[0].exp = u[0].exp - (1) >> 0; + _r$5 = t.Set(u[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = _r$5; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: Float·sqrtInverse·func1, $c: true, $r, $24r, _r$1, _r$2, _r$3, _r$4, _r$5, t, $s};return $f; + }; })(three$2, u, v, x); + _r$1 = x[0].Float64(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + xf = _tuple[0]; + sqi = newFloat(z.prec); + _r$2 = sqi.SetFloat64(1 / math.Sqrt(xf)); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + prec = z.prec + 32 >>> 0; + /* while (true) { */ case 4: + /* if (!(sqi.prec < prec)) { break; } */ if(!(sqi.prec < prec)) { $s = 5; continue; } + sqi.prec = $imul(sqi.prec, (2)) >>> 0; + _r$3 = ng(sqi); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + sqi = _r$3; + $s = 4; continue; + case 5: + _r$4 = z.Mul(x[0], sqi); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $s = -1; return; + /* */ } return; } var $f = {$blk: sqrtInverse, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, ng, prec, sqi, three$2, u, v, x, xf, z, $s};return $f; + }; + newFloat = function newFloat$1(prec2) { + var _q, prec2, z; + z = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0); + z.mant = z.mant.make($imul((((_q = prec2 / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)), 2)); + return z; + }; + RoundingMode.prototype.String = function String() { + var i, x; + i = this.$val; + if (i >= 6) { + return "RoundingMode(" + strconv.FormatInt((new $Int64(0, i)), 10) + ")"; + } + return $substring("ToNearestEvenToNearestAwayToZeroAwayFromZeroToNegativeInfToPositiveInf", ((i < 0 || i >= _RoundingMode_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _RoundingMode_index[i]), (x = i + 1 << 24 >>> 24, ((x < 0 || x >= _RoundingMode_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _RoundingMode_index[x]))); + }; + $ptrType(RoundingMode).prototype.String = function(...$args) { return new RoundingMode(this.$get()).String(...$args); }; + $ptrType(Rat).prototype.GobEncode = function GobEncode() { + var b, buf, i, j, n, x; + x = this; + if (x === ptrType$1.nil) { + return [sliceType$1.nil, $ifaceNil]; + } + buf = $makeSlice(sliceType$1, (5 + ($imul(((x.a.abs.$length + x.b.abs.$length >> 0)), 4)) >> 0)); + i = x.b.abs.bytes(buf); + j = x.a.abs.bytes($subslice(buf, 0, i)); + n = i - j >> 0; + if (!((((((n >>> 0)) >> 0)) === n))) { + return [sliceType$1.nil, errors.New("Rat.GobEncode: numerator too large")]; + } + $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(buf, (j - 4 >> 0), j), ((n >>> 0))); + j = j - (5) >> 0; + b = 2; + if (x.a.neg) { + b = (b | (1)) >>> 0; + } + ((j < 0 || j >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + j] = b); + return [$subslice(buf, j), $ifaceNil]; + }; + $ptrType(Rat).prototype.GobDecode = function GobDecode(buf) { + var {$24r, _r, b, buf, i, z, $s, $r, $c} = $restore(this, {buf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (buf.$length === 0) { + Rat.copy(z, new Rat.ptr(new Int.ptr(false, nat.nil), new Int.ptr(false, nat.nil))); + $s = -1; return $ifaceNil; + } + if (buf.$length < 5) { + $s = -1; return errors.New("Rat.GobDecode: buffer too small"); + } + b = (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]); + /* */ if (!(((b >>> 1 << 24 >>> 24) === 1))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(((b >>> 1 << 24 >>> 24) === 1))) { */ case 1: + _r = fmt.Errorf("Rat.GobDecode: encoding version %d not supported", new sliceType([new $Uint8((b >>> 1 << 24 >>> 24))])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + i = 5 + $clone(binary.BigEndian, binary.bigEndian).Uint32($subslice(buf, 1, 5)) >>> 0; + if (buf.$length < ((i >> 0))) { + $s = -1; return errors.New("Rat.GobDecode: buffer too small"); + } + z.a.neg = !((((b & 1) >>> 0) === 0)); + z.a.abs = z.a.abs.setBytes($subslice(buf, 5, i)); + z.b.abs = z.b.abs.setBytes($subslice(buf, i)); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: GobDecode, $c: true, $r, $24r, _r, b, buf, i, z, $s};return $f; + }; + $ptrType(Rat).prototype.MarshalText = function MarshalText() { + var {$24r, $24r$1, _r, _r$1, _tmp, _tmp$1, _tuple, err, text, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + text = sliceType$1.nil; + err = $ifaceNil; + x = this; + /* */ if (x.IsInt()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.IsInt()) { */ case 1: + _r = x.a.MarshalText(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + text = _tuple[0]; + err = _tuple[1]; + $24r = [text, err]; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = x.marshal(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tmp = _r$1; + _tmp$1 = $ifaceNil; + text = _tmp; + err = _tmp$1; + $24r$1 = [text, err]; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: MarshalText, $c: true, $r, $24r, $24r$1, _r, _r$1, _tmp, _tmp$1, _tuple, err, text, x, $s};return $f; + }; + $ptrType(Rat).prototype.UnmarshalText = function UnmarshalText(text) { + var {$24r, _r, _r$1, _tuple, ok, text, z, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = z.SetString(($bytesToString(text))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ok = _tuple[1]; + /* */ if (!ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!ok) { */ case 2: + _r$1 = fmt.Errorf("math/big: cannot unmarshal %q into a *big.Rat", new sliceType([text])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 5; case 5: return $24r; + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: UnmarshalText, $c: true, $r, $24r, _r, _r$1, _tuple, ok, text, z, $s};return $f; + }; + ratTok = function ratTok$1(ch) { + var ch; + return strings.ContainsRune("+-/0123456789.eE", ch); + }; + $ptrType(Rat).prototype.Scan = function Scan(s, ch) { + var {_r, _r$1, _tuple, _tuple$1, ch, err, ok, s, tok, z, $s, $r, $c} = $restore(this, {s, ch}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = s.Token(true, ratTok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + tok = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + if (!strings.ContainsRune("efgEFGv", ch)) { + $s = -1; return errors.New("Rat.Scan: invalid verb"); + } + _r$1 = z.SetString(($bytesToString(tok))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + ok = _tuple$1[1]; + if (!ok) { + $s = -1; return errors.New("Rat.Scan: invalid syntax"); + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Scan, $c: true, $r, _r, _r$1, _tuple, _tuple$1, ch, err, ok, s, tok, z, $s};return $f; + }; + $ptrType(Rat).prototype.SetString = function SetString(s) { + var {$24r, $24r$1, $24r$2, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, base, d, ebase, err, err$1, exp, exp2, exp5, fcount, n, neg, ok, pow5, r, r$1, s, sep, x, x$1, x$2, z, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (s.length === 0) { + $s = -1; return [ptrType$1.nil, false]; + } + sep = strings.Index(s, "/"); + /* */ if (sep >= 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (sep >= 0) { */ case 1: + _r = z.a.SetString($substring(s, 0, sep), 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ok = _tuple[1]; + if (!ok) { + $s = -1; return [ptrType$1.nil, false]; + } + r = strings.NewReader($substring(s, (sep + 1 >> 0))); + err = $ifaceNil; + _r$1 = z.b.abs.scan(r, 0, false); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + z.b.abs = _tuple$1[0]; + err = _tuple$1[3]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, false]; + } + _tuple$2 = r.ReadByte(); + err = _tuple$2[1]; + if (!($interfaceIsEqual(err, io.EOF))) { + $s = -1; return [ptrType$1.nil, false]; + } + if (z.b.abs.$length === 0) { + $s = -1; return [ptrType$1.nil, false]; + } + _r$2 = z.norm(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = [_r$2, true]; + $s = 6; case 6: return $24r; + /* } */ case 2: + r$1 = strings.NewReader(s); + _r$3 = scanSign(r$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$3 = _r$3; + neg = _tuple$3[0]; + err$1 = _tuple$3[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, false]; + } + base = 0; + fcount = 0; + _r$4 = z.a.abs.scan(r$1, 0, true); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$4 = _r$4; + z.a.abs = _tuple$4[0]; + base = _tuple$4[1]; + fcount = _tuple$4[2]; + err$1 = _tuple$4[3]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, false]; + } + exp = new $Int64(0, 0); + ebase = 0; + _r$5 = scanExponent(r$1, true, true); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$5 = _r$5; + exp = _tuple$5[0]; + ebase = _tuple$5[1]; + err$1 = _tuple$5[2]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, false]; + } + _tuple$6 = r$1.ReadByte(); + err$1 = _tuple$6[1]; + if (!($interfaceIsEqual(err$1, io.EOF))) { + $s = -1; return [ptrType$1.nil, false]; + } + /* */ if (z.a.abs.$length === 0) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (z.a.abs.$length === 0) { */ case 10: + _r$6 = z.norm(); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$1 = [_r$6, true]; + $s = 13; case 13: return $24r$1; + /* } */ case 11: + _tmp = new $Int64(0, 0); + _tmp$1 = new $Int64(0, 0); + exp2 = _tmp; + exp5 = _tmp$1; + if (fcount < 0) { + d = (new $Int64(0, fcount)); + _1 = base; + if (_1 === (10)) { + exp5 = d; + exp2 = d; + } else if (_1 === (2)) { + exp2 = d; + } else if (_1 === (8)) { + exp2 = $mul64(d, new $Int64(0, 3)); + } else if (_1 === (16)) { + exp2 = $mul64(d, new $Int64(0, 4)); + } else { + $panic(new $String("unexpected mantissa base")); + } + } + _2 = ebase; + if (_2 === (10)) { + exp5 = (x = exp, new $Int64(exp5.$high + x.$high, exp5.$low + x.$low)); + exp2 = (x$1 = exp, new $Int64(exp2.$high + x$1.$high, exp2.$low + x$1.$low)); + } else if (_2 === (2)) { + exp2 = (x$2 = exp, new $Int64(exp2.$high + x$2.$high, exp2.$low + x$2.$low)); + } else { + $panic(new $String("unexpected exponent base")); + } + /* */ if (!((exp5.$high === 0 && exp5.$low === 0))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!((exp5.$high === 0 && exp5.$low === 0))) { */ case 14: + n = exp5; + if ((n.$high < 0 || (n.$high === 0 && n.$low < 0))) { + n = new $Int64(-n.$high, -n.$low); + if ((n.$high < 0 || (n.$high === 0 && n.$low < 0))) { + $s = -1; return [ptrType$1.nil, false]; + } + } + if ((n.$high > 0 || (n.$high === 0 && n.$low > 1000000))) { + $s = -1; return [ptrType$1.nil, false]; + } + _r$7 = z.b.abs.expNN(natFive, (nat.nil).setWord(((n.$low >>> 0))), nat.nil); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + pow5 = _r$7; + /* */ if ((exp5.$high > 0 || (exp5.$high === 0 && exp5.$low > 0))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if ((exp5.$high > 0 || (exp5.$high === 0 && exp5.$low > 0))) { */ case 18: + _r$8 = z.a.abs.mul(z.a.abs, pow5); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + z.a.abs = _r$8; + z.b.abs = z.b.abs.setWord(1); + $s = 20; continue; + /* } else { */ case 19: + z.b.abs = pow5; + /* } */ case 20: + $s = 16; continue; + /* } else { */ case 15: + z.b.abs = z.b.abs.setWord(1); + /* } */ case 16: + if ((exp2.$high < -1 || (exp2.$high === -1 && exp2.$low < 4284967296)) || (exp2.$high > 0 || (exp2.$high === 0 && exp2.$low > 10000000))) { + $s = -1; return [ptrType$1.nil, false]; + } + if ((exp2.$high > 0 || (exp2.$high === 0 && exp2.$low > 0))) { + z.a.abs = z.a.abs.shl(z.a.abs, ((exp2.$low >>> 0))); + } else if ((exp2.$high < 0 || (exp2.$high === 0 && exp2.$low < 0))) { + z.b.abs = z.b.abs.shl(z.b.abs, ((new $Int64(-exp2.$high, -exp2.$low).$low >>> 0))); + } + z.a.neg = neg && z.a.abs.$length > 0; + _r$9 = z.norm(); /* */ $s = 22; case 22: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $24r$2 = [_r$9, true]; + $s = 23; case 23: return $24r$2; + /* */ } return; } var $f = {$blk: SetString, $c: true, $r, $24r, $24r$1, $24r$2, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, base, d, ebase, err, err$1, exp, exp2, exp5, fcount, n, neg, ok, pow5, r, r$1, s, sep, x, x$1, x$2, z, $s};return $f; + }; + scanExponent = function scanExponent$1(r, base2ok, sepOk) { + var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, base, base2ok, ch, digits, err, exp, hasDigits, invalSep, prev, r, sepOk, $s, $r, $c} = $restore(this, {r, base2ok, sepOk}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + exp = new $Int64(0, 0); + base = 0; + err = $ifaceNil; + _r = r.ReadByte(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ch = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, io.EOF)) { + err = $ifaceNil; + } + _tmp = new $Int64(0, 0); + _tmp$1 = 10; + _tmp$2 = err; + exp = _tmp; + base = _tmp$1; + err = _tmp$2; + $s = -1; return [exp, base, err]; + } + _1 = ch; + /* */ if ((_1 === (101)) || (_1 === (69))) { $s = 3; continue; } + /* */ if ((_1 === (112)) || (_1 === (80))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((_1 === (101)) || (_1 === (69))) { */ case 3: + base = 10; + $s = 6; continue; + /* } else if ((_1 === (112)) || (_1 === (80))) { */ case 4: + if (base2ok) { + base = 2; + /* break; */ $s = 2; continue; + } + _r$1 = r.UnreadByte(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _tmp$3 = new $Int64(0, 0); + _tmp$4 = 10; + _tmp$5 = $ifaceNil; + exp = _tmp$3; + base = _tmp$4; + err = _tmp$5; + $s = -1; return [exp, base, err]; + /* } else { */ case 5: + _r$2 = r.UnreadByte(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _tmp$6 = new $Int64(0, 0); + _tmp$7 = 10; + _tmp$8 = $ifaceNil; + exp = _tmp$6; + base = _tmp$7; + err = _tmp$8; + $s = -1; return [exp, base, err]; + /* } */ case 6: + case 2: + digits = sliceType$1.nil; + _r$3 = r.ReadByte(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + ch = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if ($interfaceIsEqual(err, $ifaceNil) && ((ch === 43) || (ch === 45))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ($interfaceIsEqual(err, $ifaceNil) && ((ch === 43) || (ch === 45))) { */ case 10: + if (ch === 45) { + digits = $append(digits, 45); + } + _r$4 = r.ReadByte(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$2 = _r$4; + ch = _tuple$2[0]; + err = _tuple$2[1]; + /* } */ case 11: + prev = 46; + invalSep = false; + hasDigits = false; + /* while (true) { */ case 13: + /* if (!($interfaceIsEqual(err, $ifaceNil))) { break; } */ if(!($interfaceIsEqual(err, $ifaceNil))) { $s = 14; continue; } + /* */ if (48 <= ch && ch <= 57) { $s = 15; continue; } + /* */ if ((ch === 95) && sepOk) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (48 <= ch && ch <= 57) { */ case 15: + digits = $append(digits, ch); + prev = 48; + hasDigits = true; + $s = 18; continue; + /* } else if ((ch === 95) && sepOk) { */ case 16: + if (!((prev === 48))) { + invalSep = true; + } + prev = 95; + $s = 18; continue; + /* } else { */ case 17: + _r$5 = r.UnreadByte(); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* break; */ $s = 14; continue; + /* } */ case 18: + _r$6 = r.ReadByte(); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$3 = _r$6; + ch = _tuple$3[0]; + err = _tuple$3[1]; + $s = 13; continue; + case 14: + if ($interfaceIsEqual(err, io.EOF)) { + err = $ifaceNil; + } + if ($interfaceIsEqual(err, $ifaceNil) && !hasDigits) { + err = errNoDigits; + } + if ($interfaceIsEqual(err, $ifaceNil)) { + _tuple$4 = strconv.ParseInt(($bytesToString(digits)), 10, 64); + exp = _tuple$4[0]; + err = _tuple$4[1]; + } + if ($interfaceIsEqual(err, $ifaceNil) && (invalSep || (prev === 95))) { + err = errInvalSep; + } + $s = -1; return [exp, base, err]; + /* */ } return; } var $f = {$blk: scanExponent$1, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, base, base2ok, ch, digits, err, exp, hasDigits, invalSep, prev, r, sepOk, $s};return $f; + }; + $ptrType(Rat).prototype.String = function String$1() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = ($bytesToString(_r)); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$1, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(Rat).prototype.marshal = function marshal() { + var {_r, _r$1, buf, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + buf = sliceType$1.nil; + _r = x.a.Append(buf, 10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + buf = _r; + buf = $append(buf, 47); + /* */ if (!((x.b.abs.$length === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((x.b.abs.$length === 0))) { */ case 2: + _r$1 = x.b.Append(buf, 10); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + buf = _r$1; + $s = 4; continue; + /* } else { */ case 3: + buf = $append(buf, 49); + /* } */ case 4: + $s = -1; return buf; + /* */ } return; } var $f = {$blk: marshal, $c: true, $r, _r, _r$1, buf, x, $s};return $f; + }; + $ptrType(Rat).prototype.RatString = function RatString() { + var {$24r, $24r$1, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (x.IsInt()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.IsInt()) { */ case 1: + _r = x.a.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = x.String(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: RatString, $c: true, $r, $24r, $24r$1, _r, _r$1, x, $s};return $f; + }; + $ptrType(Rat).prototype.FloatString = function FloatString(prec) { + var {_arg, _arg$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, buf, i, i$1, p, prec, q, r, r2, rs, x, $s, $r, $c} = $restore(this, {prec}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + buf = sliceType$1.nil; + /* */ if (x.IsInt()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.IsInt()) { */ case 1: + _r = x.a.Append(buf, 10); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + buf = _r; + if (prec > 0) { + buf = $append(buf, 46); + i = prec; + while (true) { + if (!(i > 0)) { break; } + buf = $append(buf, 48); + i = i - (1) >> 0; + } + } + $s = -1; return ($bytesToString(buf)); + /* } */ case 2: + _r$1 = (nat.nil).div((nat.nil), x.a.abs, x.b.abs); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + q = _tuple[0]; + r = _tuple[1]; + p = natOne; + /* */ if (prec > 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (prec > 0) { */ case 5: + _r$2 = (nat.nil).expNN(natTen, (nat.nil).setUint64((new $Uint64(0, prec))), nat.nil); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + p = _r$2; + /* } */ case 6: + _r$3 = r.mul(r, p); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + r = _r$3; + _r$4 = r.div((nat.nil), r, x.b.abs); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + r = _tuple$1[0]; + r2 = _tuple$1[1]; + _r$5 = r2.add(r2, r2); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + r2 = _r$5; + /* */ if (x.b.abs.cmp(r2) <= 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (x.b.abs.cmp(r2) <= 0) { */ case 11: + _r$6 = r.add(r, natOne); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + r = _r$6; + /* */ if (r.cmp(p) >= 0) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (r.cmp(p) >= 0) { */ case 14: + _r$7 = (nat.nil).add(q, natOne); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + q = _r$7; + _r$8 = (nat.nil).sub(r, p); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + r = _r$8; + /* } */ case 15: + /* } */ case 12: + if (x.a.neg) { + buf = $append(buf, 45); + } + _arg = buf; + _r$9 = q.utoa(10); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$1 = _r$9; + buf = $appendSlice(_arg, _arg$1); + /* */ if (prec > 0) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (prec > 0) { */ case 19: + buf = $append(buf, 46); + _r$10 = r.utoa(10); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + rs = _r$10; + i$1 = prec - rs.$length >> 0; + while (true) { + if (!(i$1 > 0)) { break; } + buf = $append(buf, 48); + i$1 = i$1 - (1) >> 0; + } + buf = $appendSlice(buf, rs); + /* } */ case 20: + $s = -1; return ($bytesToString(buf)); + /* */ } return; } var $f = {$blk: FloatString, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, buf, i, i$1, p, prec, q, r, r2, rs, x, $s};return $f; + }; + NewRat = function NewRat$1(a, b) { + var {$24r, _r, a, b, $s, $r, $c} = $restore(this, {a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = new Rat.ptr(new Int.ptr(false, nat.nil), new Int.ptr(false, nat.nil)).SetFrac64(a, b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: NewRat$1, $c: true, $r, $24r, _r, a, b, $s};return $f; + }; + $pkg.NewRat = NewRat; + $ptrType(Rat).prototype.SetFloat64 = function SetFloat64(f) { + var {$24r, _1, _r, bits$1, exp, f, mantissa, shift, x, x$1, x$2, z, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + bits$1 = math.Float64bits(f); + mantissa = new $Uint64(bits$1.$high & 1048575, (bits$1.$low & 4294967295) >>> 0); + exp = (((x = $shiftRightUint64(bits$1, 52), new $Uint64(x.$high & 0, (x.$low & 2047) >>> 0)).$low >> 0)); + _1 = exp; + if (_1 === (2047)) { + $s = -1; return ptrType$1.nil; + } else if (_1 === (0)) { + exp = exp - (1022) >> 0; + } else { + mantissa = (x$1 = new $Uint64(1048576, 0), new $Uint64(mantissa.$high | x$1.$high, (mantissa.$low | x$1.$low) >>> 0)); + exp = exp - (1023) >> 0; + } + shift = 52 - exp >> 0; + while (true) { + if (!((x$2 = new $Uint64(mantissa.$high & 0, (mantissa.$low & 1) >>> 0), (x$2.$high === 0 && x$2.$low === 0)) && shift > 0)) { break; } + mantissa = $shiftRightUint64(mantissa, (1)); + shift = shift - (1) >> 0; + } + z.a.SetUint64(mantissa); + z.a.neg = f < 0; + z.b.Set(intOne); + if (shift > 0) { + z.b.Lsh(z.b, ((shift >>> 0))); + } else { + z.a.Lsh(z.a, ((-shift >>> 0))); + } + _r = z.norm(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: SetFloat64, $c: true, $r, $24r, _1, _r, bits$1, exp, f, mantissa, shift, x, x$1, x$2, z, $s};return $f; + }; + quotToFloat32 = function quotToFloat32$1(a, b) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, a, a2, alen, b, b2, blen, exact, exp, f, haveRem, lostbits, mantissa, q, r, shift, shift$1, y, y$1, y$2, y$3, y$4, $s, $r, $c} = $restore(this, {a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = 0; + exact = false; + alen = a.bitLen(); + if (alen === 0) { + _tmp = 0; + _tmp$1 = true; + f = _tmp; + exact = _tmp$1; + $s = -1; return [f, exact]; + } + blen = b.bitLen(); + if (blen === 0) { + $panic(new $String("division by zero")); + } + exp = alen - blen >> 0; + _tmp$2 = nat.nil; + _tmp$3 = nat.nil; + a2 = _tmp$2; + b2 = _tmp$3; + a2 = a2.set(a); + b2 = b2.set(b); + shift = 25 - exp >> 0; + if (shift > 0) { + a2 = a2.shl(a2, ((shift >>> 0))); + } else if (shift < 0) { + b2 = b2.shl(b2, ((-shift >>> 0))); + } + q = nat.nil; + _r = q.div(a2, a2, b2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + q = _tuple[0]; + r = _tuple[1]; + mantissa = low32(q); + haveRem = r.$length > 0; + if ((mantissa >>> 25 >>> 0) === 1) { + if (((mantissa & 1) >>> 0) === 1) { + haveRem = true; + } + mantissa = (y = (1), y < 32 ? (mantissa >>> y) : 0) >>> 0; + exp = exp + (1) >> 0; + } + /* */ if (!(((mantissa >>> 24 >>> 0) === 1))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(((mantissa >>> 24 >>> 0) === 1))) { */ case 2: + _r$1 = fmt.Sprintf("expected exactly %d bits of result", new sliceType([new $Int(25)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 3: + if (-149 <= exp && exp <= -126) { + shift$1 = (((-126 - ((exp - 1 >> 0)) >> 0) >>> 0)); + lostbits = (mantissa & ((((y$1 = shift$1, y$1 < 32 ? (1 << y$1) : 0) >>> 0) - 1 >>> 0))) >>> 0; + haveRem = haveRem || !((lostbits === 0)); + mantissa = (y$2 = (shift$1), y$2 < 32 ? (mantissa >>> y$2) : 0) >>> 0; + exp = -125; + } + exact = !haveRem; + if (!((((mantissa & 1) >>> 0) === 0))) { + exact = false; + if (haveRem || !((((mantissa & 2) >>> 0) === 0))) { + mantissa = mantissa + (1) >>> 0; + if (mantissa >= 33554432) { + mantissa = (y$3 = (1), y$3 < 32 ? (mantissa >>> y$3) : 0) >>> 0; + exp = exp + (1) >> 0; + } + } + } + mantissa = (y$4 = (1), y$4 < 32 ? (mantissa >>> y$4) : 0) >>> 0; + f = ($fround(math.Ldexp((mantissa), exp - 24 >> 0))); + if (math.IsInf((f), 0)) { + exact = false; + } + $s = -1; return [f, exact]; + /* */ } return; } var $f = {$blk: quotToFloat32$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, a, a2, alen, b, b2, blen, exact, exp, f, haveRem, lostbits, mantissa, q, r, shift, shift$1, y, y$1, y$2, y$3, y$4, $s};return $f; + }; + quotToFloat64 = function quotToFloat64$1(a, b) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, a, a2, alen, b, b2, blen, exact, exp, f, haveRem, lostbits, mantissa, q, r, shift, shift$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = 0; + exact = false; + alen = a.bitLen(); + if (alen === 0) { + _tmp = 0; + _tmp$1 = true; + f = _tmp; + exact = _tmp$1; + $s = -1; return [f, exact]; + } + blen = b.bitLen(); + if (blen === 0) { + $panic(new $String("division by zero")); + } + exp = alen - blen >> 0; + _tmp$2 = nat.nil; + _tmp$3 = nat.nil; + a2 = _tmp$2; + b2 = _tmp$3; + a2 = a2.set(a); + b2 = b2.set(b); + shift = 54 - exp >> 0; + if (shift > 0) { + a2 = a2.shl(a2, ((shift >>> 0))); + } else if (shift < 0) { + b2 = b2.shl(b2, ((-shift >>> 0))); + } + q = nat.nil; + _r = q.div(a2, a2, b2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + q = _tuple[0]; + r = _tuple[1]; + mantissa = low64(q); + haveRem = r.$length > 0; + if ((x = $shiftRightUint64(mantissa, 54), (x.$high === 0 && x.$low === 1))) { + if ((x$1 = new $Uint64(mantissa.$high & 0, (mantissa.$low & 1) >>> 0), (x$1.$high === 0 && x$1.$low === 1))) { + haveRem = true; + } + mantissa = $shiftRightUint64(mantissa, (1)); + exp = exp + (1) >> 0; + } + /* */ if (!((x$2 = $shiftRightUint64(mantissa, 53), (x$2.$high === 0 && x$2.$low === 1)))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((x$2 = $shiftRightUint64(mantissa, 53), (x$2.$high === 0 && x$2.$low === 1)))) { */ case 2: + _r$1 = fmt.Sprintf("expected exactly %d bits of result", new sliceType([new $Int(54)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 3: + if (-1074 <= exp && exp <= -1022) { + shift$1 = (((-1022 - ((exp - 1 >> 0)) >> 0) >>> 0)); + lostbits = (x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), shift$1), new $Uint64(x$4.$high - 0, x$4.$low - 1)), new $Uint64(mantissa.$high & x$3.$high, (mantissa.$low & x$3.$low) >>> 0)); + haveRem = haveRem || !((lostbits.$high === 0 && lostbits.$low === 0)); + mantissa = $shiftRightUint64(mantissa, (shift$1)); + exp = -1021; + } + exact = !haveRem; + if (!((x$5 = new $Uint64(mantissa.$high & 0, (mantissa.$low & 1) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { + exact = false; + if (haveRem || !((x$6 = new $Uint64(mantissa.$high & 0, (mantissa.$low & 2) >>> 0), (x$6.$high === 0 && x$6.$low === 0)))) { + mantissa = (x$7 = new $Uint64(0, 1), new $Uint64(mantissa.$high + x$7.$high, mantissa.$low + x$7.$low)); + if ((mantissa.$high > 4194304 || (mantissa.$high === 4194304 && mantissa.$low >= 0))) { + mantissa = $shiftRightUint64(mantissa, (1)); + exp = exp + (1) >> 0; + } + } + } + mantissa = $shiftRightUint64(mantissa, (1)); + f = math.Ldexp(($flatten64(mantissa)), exp - 53 >> 0); + if (math.IsInf(f, 0)) { + exact = false; + } + $s = -1; return [f, exact]; + /* */ } return; } var $f = {$blk: quotToFloat64$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, a, a2, alen, b, b2, blen, exact, exp, f, haveRem, lostbits, mantissa, q, r, shift, shift$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + }; + $ptrType(Rat).prototype.Float32 = function Float32() { + var {_r, _tuple, b, exact, f, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = 0; + exact = false; + x = this; + b = x.b.abs; + if (b.$length === 0) { + b = natOne; + } + _r = quotToFloat32(x.a.abs, b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + exact = _tuple[1]; + if (x.a.neg) { + f = -f; + } + $s = -1; return [f, exact]; + /* */ } return; } var $f = {$blk: Float32, $c: true, $r, _r, _tuple, b, exact, f, x, $s};return $f; + }; + $ptrType(Rat).prototype.Float64 = function Float64() { + var {_r, _tuple, b, exact, f, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = 0; + exact = false; + x = this; + b = x.b.abs; + if (b.$length === 0) { + b = natOne; + } + _r = quotToFloat64(x.a.abs, b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + exact = _tuple[1]; + if (x.a.neg) { + f = -f; + } + $s = -1; return [f, exact]; + /* */ } return; } var $f = {$blk: Float64, $c: true, $r, _r, _tuple, b, exact, f, x, $s};return $f; + }; + $ptrType(Rat).prototype.SetFrac = function SetFrac(a, b) { + var {$24r, _r, a, b, babs, z, $s, $r, $c} = $restore(this, {a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + z.a.neg = !(a.neg === b.neg); + babs = b.abs; + if (babs.$length === 0) { + $panic(new $String("division by zero")); + } + if (z.a === b || alias(z.a.abs, babs)) { + babs = (nat.nil).set(babs); + } + z.a.abs = z.a.abs.set(a.abs); + z.b.abs = z.b.abs.set(babs); + _r = z.norm(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: SetFrac, $c: true, $r, $24r, _r, a, b, babs, z, $s};return $f; + }; + $ptrType(Rat).prototype.SetFrac64 = function SetFrac64(a, b) { + var {$24r, _r, a, b, z, $s, $r, $c} = $restore(this, {a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if ((b.$high === 0 && b.$low === 0)) { + $panic(new $String("division by zero")); + } + z.a.SetInt64(a); + if ((b.$high < 0 || (b.$high === 0 && b.$low < 0))) { + b = new $Int64(-b.$high, -b.$low); + z.a.neg = !z.a.neg; + } + z.b.abs = z.b.abs.setUint64((new $Uint64(b.$high, b.$low))); + _r = z.norm(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: SetFrac64, $c: true, $r, $24r, _r, a, b, z, $s};return $f; + }; + $ptrType(Rat).prototype.SetInt = function SetInt(x) { + var x, z; + z = this; + z.a.Set(x); + z.b.abs = z.b.abs.setWord(1); + return z; + }; + $ptrType(Rat).prototype.SetInt64 = function SetInt64(x) { + var x, z; + z = this; + z.a.SetInt64(x); + z.b.abs = z.b.abs.setWord(1); + return z; + }; + $ptrType(Rat).prototype.SetUint64 = function SetUint64(x) { + var x, z; + z = this; + z.a.SetUint64(x); + z.b.abs = z.b.abs.setWord(1); + return z; + }; + $ptrType(Rat).prototype.Set = function Set(x) { + var x, z; + z = this; + if (!(z === x)) { + z.a.Set(x.a); + z.b.Set(x.b); + } + if (z.b.abs.$length === 0) { + z.b.abs = z.b.abs.setWord(1); + } + return z; + }; + $ptrType(Rat).prototype.Abs = function Abs(x) { + var x, z; + z = this; + z.Set(x); + z.a.neg = false; + return z; + }; + $ptrType(Rat).prototype.Neg = function Neg(x) { + var x, z; + z = this; + z.Set(x); + z.a.neg = z.a.abs.$length > 0 && !z.a.neg; + return z; + }; + $ptrType(Rat).prototype.Inv = function Inv(x) { + var _tmp, _tmp$1, x, z; + z = this; + if (x.a.abs.$length === 0) { + $panic(new $String("division by zero")); + } + z.Set(x); + _tmp = z.b.abs; + _tmp$1 = z.a.abs; + z.a.abs = _tmp; + z.b.abs = _tmp$1; + return z; + }; + $ptrType(Rat).prototype.Sign = function Sign() { + var x; + x = this; + return x.a.Sign(); + }; + $ptrType(Rat).prototype.IsInt = function IsInt() { + var x; + x = this; + return (x.b.abs.$length === 0) || (x.b.abs.cmp(natOne) === 0); + }; + $ptrType(Rat).prototype.Num = function Num() { + var x; + x = this; + return x.a; + }; + $ptrType(Rat).prototype.Denom = function Denom() { + var x; + x = this; + if (x.b.abs.$length === 0) { + return new Int.ptr(false, new nat([1])); + } + return x.b; + }; + $ptrType(Rat).prototype.norm = function norm() { + var {_r, _r$1, _r$2, _tuple, _tuple$1, f, neg, z, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if ((z.a.abs.$length === 0)) { $s = 2; continue; } + /* */ if ((z.b.abs.$length === 0)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ((z.a.abs.$length === 0)) { */ case 2: + z.a.neg = false; + z.b.abs = z.b.abs.setWord(1); + $s = 5; continue; + /* } else if ((z.b.abs.$length === 0)) { */ case 3: + z.b.abs = z.b.abs.setWord(1); + $s = 5; continue; + /* } else { */ case 4: + neg = z.a.neg; + z.a.neg = false; + z.b.neg = false; + _r = NewInt(new $Int64(0, 0)).lehmerGCD(ptrType$2.nil, ptrType$2.nil, z.a, z.b); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + f = _r; + /* */ if (!((f.Cmp(intOne) === 0))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((f.Cmp(intOne) === 0))) { */ case 7: + _r$1 = z.a.abs.div(nat.nil, z.a.abs, f.abs); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + z.a.abs = _tuple[0]; + _r$2 = z.b.abs.div(nat.nil, z.b.abs, f.abs); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + z.b.abs = _tuple$1[0]; + /* } */ case 8: + z.a.neg = neg; + /* } */ case 5: + case 1: + $s = -1; return z; + /* */ } return; } var $f = {$blk: norm, $c: true, $r, _r, _r$1, _r$2, _tuple, _tuple$1, f, neg, z, $s};return $f; + }; + mulDenom = function mulDenom$1(z, x, y) { + var {$24r, _r, x, y, z, $s, $r, $c} = $restore(this, {z, x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ((x.$length === 0) && (y.$length === 0)) { + $s = -1; return z.setWord(1); + } else if ((x.$length === 0)) { + $s = -1; return z.set(y); + } else if ((y.$length === 0)) { + $s = -1; return z.set(x); + } + _r = z.mul(x, y); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: mulDenom$1, $c: true, $r, $24r, _r, x, y, z, $s};return $f; + }; + $ptrType(Int).prototype.scaleDenom = function scaleDenom(x, f) { + var {_r, f, x, z, $s, $r, $c} = $restore(this, {x, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (f.$length === 0) { + z.Set(x); + $s = -1; return; + } + _r = z.abs.mul(x.abs, f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.abs = _r; + z.neg = x.neg; + $s = -1; return; + /* */ } return; } var $f = {$blk: scaleDenom, $c: true, $r, _r, f, x, z, $s};return $f; + }; + $ptrType(Rat).prototype.Cmp = function Cmp(y) { + var {_tmp, _tmp$1, a, b, x, y, $s, $r, $c} = $restore(this, {y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = [b]; + x = this; + _tmp = new Int.ptr(false, nat.nil); + _tmp$1 = new Int.ptr(false, nat.nil); + a = $clone(_tmp, Int); + b[0] = $clone(_tmp$1, Int); + $r = a.scaleDenom(x.a, y.b.abs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = b[0].scaleDenom(y.a, x.b.abs); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return a.Cmp(b[0]); + /* */ } return; } var $f = {$blk: Cmp, $c: true, $r, _tmp, _tmp$1, a, b, x, y, $s};return $f; + }; + $ptrType(Rat).prototype.Add = function Add(x, y) { + var {$24r, _r, _r$1, _r$2, _tmp, _tmp$1, a1, a2, x, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a1 = [a1]; + a2 = [a2]; + z = this; + _tmp = new Int.ptr(false, nat.nil); + _tmp$1 = new Int.ptr(false, nat.nil); + a1[0] = $clone(_tmp, Int); + a2[0] = $clone(_tmp$1, Int); + $r = a1[0].scaleDenom(x.a, y.b.abs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = a2[0].scaleDenom(y.a, x.b.abs); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = z.a.Add(a1[0], a2[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = mulDenom(z.b.abs, x.b.abs, y.b.abs); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.b.abs = _r$1; + _r$2 = z.norm(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: Add, $c: true, $r, $24r, _r, _r$1, _r$2, _tmp, _tmp$1, a1, a2, x, y, z, $s};return $f; + }; + $ptrType(Rat).prototype.Sub = function Sub(x, y) { + var {$24r, _r, _r$1, _r$2, _tmp, _tmp$1, a1, a2, x, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a1 = [a1]; + a2 = [a2]; + z = this; + _tmp = new Int.ptr(false, nat.nil); + _tmp$1 = new Int.ptr(false, nat.nil); + a1[0] = $clone(_tmp, Int); + a2[0] = $clone(_tmp$1, Int); + $r = a1[0].scaleDenom(x.a, y.b.abs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = a2[0].scaleDenom(y.a, x.b.abs); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = z.a.Sub(a1[0], a2[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = mulDenom(z.b.abs, x.b.abs, y.b.abs); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.b.abs = _r$1; + _r$2 = z.norm(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: Sub, $c: true, $r, $24r, _r, _r$1, _r$2, _tmp, _tmp$1, a1, a2, x, y, z, $s};return $f; + }; + $ptrType(Rat).prototype.Mul = function Mul(x, y) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, x, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (x === y) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x === y) { */ case 1: + z.a.neg = false; + _r = z.a.abs.sqr(x.a.abs); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.a.abs = _r; + /* */ if (x.b.abs.$length === 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (x.b.abs.$length === 0) { */ case 4: + z.b.abs = z.b.abs.setWord(1); + $s = 6; continue; + /* } else { */ case 5: + _r$1 = z.b.abs.sqr(x.b.abs); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.b.abs = _r$1; + /* } */ case 6: + $s = -1; return z; + /* } */ case 2: + _r$2 = z.a.Mul(x.a, y.a); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = mulDenom(z.b.abs, x.b.abs, y.b.abs); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + z.b.abs = _r$3; + _r$4 = z.norm(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 11; case 11: return $24r; + /* */ } return; } var $f = {$blk: Mul, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, x, y, z, $s};return $f; + }; + $ptrType(Rat).prototype.Quo = function Quo(x, y) { + var {$24r, _r, _tmp, _tmp$1, a, b, x, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (y.a.abs.$length === 0) { + $panic(new $String("division by zero")); + } + _tmp = new Int.ptr(false, nat.nil); + _tmp$1 = new Int.ptr(false, nat.nil); + a = $clone(_tmp, Int); + b = $clone(_tmp$1, Int); + $r = a.scaleDenom(x.a, y.b.abs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = b.scaleDenom(y.a, x.b.abs); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + z.a.abs = a.abs; + z.b.abs = b.abs; + z.a.neg = !(a.neg === b.neg); + _r = z.norm(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: Quo, $c: true, $r, $24r, _r, _tmp, _tmp$1, a, b, x, y, z, $s};return $f; + }; + $ptrType(Int).prototype.ProbablyPrime = function ProbablyPrime(n) { + var {$24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _v, n, r, rA, rB, w, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (n < 0) { + $panic(new $String("negative n for ProbablyPrime")); + } + if (x.neg || (x.abs.$length === 0)) { + $s = -1; return false; + } + w = (x$1 = x.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + if ((x.abs.$length === 1) && w < 64) { + $s = -1; return !((x$2 = (x$3 = $shiftLeft64(new $Uint64(0, 1), w), new $Uint64(673221152 & x$3.$high, (2693408940 & x$3.$low) >>> 0)), (x$2.$high === 0 && x$2.$low === 0))); + } + if (((w & 1) >>> 0) === 0) { + $s = -1; return false; + } + _tmp = 0; + _tmp$1 = 0; + rA = _tmp; + rB = _tmp$1; + _1 = 32; + if (_1 === (32)) { + rA = ((x.abs.modW(4127218095) >>> 0)); + rB = ((x.abs.modW(3948078067) >>> 0)); + } else if (_1 === (64)) { + r = x.abs.modW(820596253); + rA = (((_r = r % 4127218095, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)); + rB = (((_r$1 = r % 3948078067, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) >>> 0)); + } else { + $panic(new $String("math/big: invalid word size")); + } + if (((_r$2 = rA % 3, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$3 = rA % 5, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$4 = rA % 7, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$5 = rA % 11, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$6 = rA % 13, _r$6 === _r$6 ? _r$6 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$7 = rA % 17, _r$7 === _r$7 ? _r$7 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$8 = rA % 19, _r$8 === _r$8 ? _r$8 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$9 = rA % 23, _r$9 === _r$9 ? _r$9 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$10 = rA % 37, _r$10 === _r$10 ? _r$10 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$11 = rB % 29, _r$11 === _r$11 ? _r$11 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$12 = rB % 31, _r$12 === _r$12 ? _r$12 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$13 = rB % 41, _r$13 === _r$13 ? _r$13 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$14 = rB % 43, _r$14 === _r$14 ? _r$14 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$15 = rB % 47, _r$15 === _r$15 ? _r$15 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$16 = rB % 53, _r$16 === _r$16 ? _r$16 : $throwRuntimeError("integer divide by zero")) === 0)) { + $s = -1; return false; + } + _r$17 = x.abs.probablyPrimeMillerRabin(n + 1 >> 0, true); /* */ $s = 2; case 2: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + if (!(_r$17)) { _v = false; $s = 1; continue s; } + _r$18 = x.abs.probablyPrimeLucas(); /* */ $s = 3; case 3: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _v = _r$18; case 1: + $24r = _v; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: ProbablyPrime, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _v, n, r, rA, rB, w, x, x$1, x$2, x$3, $s};return $f; + }; + nat.prototype.probablyPrimeMillerRabin = function probablyPrimeMillerRabin(reps, force2) { + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$2, _tuple, force2, i, j, k, n, nm1, nm3, nm3Len, q, quotient, rand$1, reps, x, y, $s, $r, $c} = $restore(this, {reps, force2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = this; + _r = (nat.nil).sub(n, natOne); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + nm1 = _r; + k = nm1.trailingZeroBits(); + q = (nat.nil).shr(nm1, k); + _r$1 = (nat.nil).sub(nm1, natTwo); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + nm3 = _r$1; + rand$1 = rand.New(rand.NewSource((new $Int64(0, (0 >= n.$length ? ($throwRuntimeError("index out of range"), undefined) : n.$array[n.$offset + 0]))))); + _tmp = nat.nil; + _tmp$1 = nat.nil; + _tmp$2 = nat.nil; + x = _tmp; + y = _tmp$1; + quotient = _tmp$2; + nm3Len = nm3.bitLen(); + i = 0; + /* while (true) { */ case 3: + /* if (!(i < reps)) { break; } */ if(!(i < reps)) { $s = 4; continue; } + /* */ if ((i === (reps - 1 >> 0)) && force2) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((i === (reps - 1 >> 0)) && force2) { */ case 5: + x = x.set(natTwo); + $s = 7; continue; + /* } else { */ case 6: + _r$2 = x.random(rand$1, nm3, nm3Len); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + _r$3 = x.add(x, natTwo); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + x = _r$3; + /* } */ case 7: + _r$4 = y.expNN(x, q, n); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + y = _r$4; + if ((y.cmp(natOne) === 0) || (y.cmp(nm1) === 0)) { + i = i + (1) >> 0; + /* continue; */ $s = 3; continue; + } + j = 1; + /* while (true) { */ case 11: + /* if (!(j < k)) { break; } */ if(!(j < k)) { $s = 12; continue; } + _r$5 = y.sqr(y); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + y = _r$5; + _r$6 = quotient.div(y, y, n); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple = _r$6; + quotient = _tuple[0]; + y = _tuple[1]; + if (y.cmp(nm1) === 0) { + i = i + (1) >> 0; + /* continue NextRandom; */ $s = 3; continue s; + } + if (y.cmp(natOne) === 0) { + $s = -1; return false; + } + j = j + (1) >>> 0; + $s = 11; continue; + case 12: + $s = -1; return false; + case 4: + $s = -1; return true; + /* */ } return; } var $f = {$blk: probablyPrimeMillerRabin, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$2, _tuple, force2, i, j, k, n, nm1, nm3, nm3Len, q, quotient, rand$1, reps, x, y, $s};return $f; + }; + $ptrType(nat).prototype.probablyPrimeMillerRabin = function(...$args) { return this.$get().probablyPrimeMillerRabin(...$args); }; + nat.prototype.probablyPrimeLucas = function probablyPrimeLucas() { + var {_r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, d, i, intD, intN, j, n, natP, nm2, p, r, s, t, t1, t1$1, t2, t2$1, t3, vk, vk1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = this; + if ((n.$length === 0) || (n.cmp(natOne) === 0)) { + $s = -1; return false; + } + if ((((0 >= n.$length ? ($throwRuntimeError("index out of range"), undefined) : n.$array[n.$offset + 0]) & 1) >>> 0) === 0) { + $s = -1; return n.cmp(natTwo) === 0; + } + p = 3; + d = new nat([1]); + t1 = (nat.nil); + intD = new Int.ptr(false, d); + intN = new Int.ptr(false, n); + /* while (true) { */ case 1: + /* */ if (p > 10000) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (p > 10000) { */ case 3: + _r = intN.String(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String("math/big: internal error: cannot find (D/n) = -1 for " + _r)); + /* } */ case 4: + (0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0] = (($imul(p, p) >>> 0) - 4 >>> 0)); + _r$1 = Jacobi(intD, intN); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + j = _r$1; + if (j === -1) { + /* break; */ $s = 2; continue; + } + if (j === 0) { + $s = -1; return (n.$length === 1) && ((0 >= n.$length ? ($throwRuntimeError("index out of range"), undefined) : n.$array[n.$offset + 0]) === (p + 2 >>> 0)); + } + /* */ if (p === 40) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (p === 40) { */ case 7: + _r$2 = t1.sqrt(n); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + t1 = _r$2; + _r$3 = t1.sqr(t1); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + t1 = _r$3; + if (t1.cmp(n) === 0) { + $s = -1; return false; + } + /* } */ case 8: + p = p + (1) >>> 0; + $s = 1; continue; + case 2: + _r$4 = (nat.nil).add(n, natOne); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + s = _r$4; + r = ((s.trailingZeroBits() >> 0)); + s = s.shr(s, ((r >>> 0))); + _r$5 = (nat.nil).sub(n, natTwo); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + nm2 = _r$5; + natP = (nat.nil).setWord(p); + vk = (nat.nil).setWord(2); + vk1 = (nat.nil).setWord(p); + t2 = (nat.nil); + i = (s.bitLen()); + /* while (true) { */ case 13: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 14; continue; } + /* */ if (!((s.bit(((i >>> 0))) === 0))) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!((s.bit(((i >>> 0))) === 0))) { */ case 15: + _r$6 = t1.mul(vk, vk1); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + t1 = _r$6; + _r$7 = t1.add(t1, n); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + t1 = _r$7; + _r$8 = t1.sub(t1, natP); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + t1 = _r$8; + _r$9 = t2.div(vk, t1, n); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple = _r$9; + t2 = _tuple[0]; + vk = _tuple[1]; + _r$10 = t1.sqr(vk1); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + t1 = _r$10; + _r$11 = t1.add(t1, nm2); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + t1 = _r$11; + _r$12 = t2.div(vk1, t1, n); /* */ $s = 24; case 24: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple$1 = _r$12; + t2 = _tuple$1[0]; + vk1 = _tuple$1[1]; + $s = 17; continue; + /* } else { */ case 16: + _r$13 = t1.mul(vk, vk1); /* */ $s = 25; case 25: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + t1 = _r$13; + _r$14 = t1.add(t1, n); /* */ $s = 26; case 26: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + t1 = _r$14; + _r$15 = t1.sub(t1, natP); /* */ $s = 27; case 27: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + t1 = _r$15; + _r$16 = t2.div(vk1, t1, n); /* */ $s = 28; case 28: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _tuple$2 = _r$16; + t2 = _tuple$2[0]; + vk1 = _tuple$2[1]; + _r$17 = t1.sqr(vk); /* */ $s = 29; case 29: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + t1 = _r$17; + _r$18 = t1.add(t1, nm2); /* */ $s = 30; case 30: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + t1 = _r$18; + _r$19 = t2.div(vk, t1, n); /* */ $s = 31; case 31: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _tuple$3 = _r$19; + t2 = _tuple$3[0]; + vk = _tuple$3[1]; + /* } */ case 17: + i = i - (1) >> 0; + $s = 13; continue; + case 14: + /* */ if ((vk.cmp(natTwo) === 0) || (vk.cmp(nm2) === 0)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if ((vk.cmp(natTwo) === 0) || (vk.cmp(nm2) === 0)) { */ case 32: + _r$20 = t1.mul(vk, natP); /* */ $s = 34; case 34: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + t1$1 = _r$20; + t2$1 = t2.shl(vk1, 1); + if (t1$1.cmp(t2$1) < 0) { + _tmp = t2$1; + _tmp$1 = t1$1; + t1$1 = _tmp; + t2$1 = _tmp$1; + } + _r$21 = t1$1.sub(t1$1, t2$1); /* */ $s = 35; case 35: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + t1$1 = _r$21; + t3 = vk1; + vk1 = nat.nil; + $unused(vk1); + _r$22 = t2$1.div(t3, t1$1, n); /* */ $s = 36; case 36: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _tuple$4 = _r$22; + t2$1 = _tuple$4[0]; + t3 = _tuple$4[1]; + if (t3.$length === 0) { + $s = -1; return true; + } + /* } */ case 33: + t = 0; + /* while (true) { */ case 37: + /* if (!(t < (r - 1 >> 0))) { break; } */ if(!(t < (r - 1 >> 0))) { $s = 38; continue; } + if (vk.$length === 0) { + $s = -1; return true; + } + if ((vk.$length === 1) && ((0 >= vk.$length ? ($throwRuntimeError("index out of range"), undefined) : vk.$array[vk.$offset + 0]) === 2)) { + $s = -1; return false; + } + _r$23 = t1.sqr(vk); /* */ $s = 39; case 39: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + t1 = _r$23; + _r$24 = t1.sub(t1, natTwo); /* */ $s = 40; case 40: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + t1 = _r$24; + _r$25 = t2.div(vk, t1, n); /* */ $s = 41; case 41: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _tuple$5 = _r$25; + t2 = _tuple$5[0]; + vk = _tuple$5[1]; + t = t + (1) >> 0; + $s = 37; continue; + case 38: + $s = -1; return false; + /* */ } return; } var $f = {$blk: probablyPrimeLucas, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, d, i, intD, intN, j, n, natP, nm2, p, r, s, t, t1, t1$1, t2, t2$1, t3, vk, vk1, $s};return $f; + }; + $ptrType(nat).prototype.probablyPrimeLucas = function(...$args) { return this.$get().probablyPrimeLucas(...$args); }; + nat.prototype.div = function div(z2, u, v) { + var {_r, _tuple, _tuple$1, q, r, r2, u, v, z, z2, $s, $r, $c} = $restore(this, {z2, u, v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + q = nat.nil; + r = nat.nil; + z = this; + if (v.$length === 0) { + $panic(new $String("division by zero")); + } + if (u.cmp(v) < 0) { + q = $subslice(z, 0, 0); + r = z2.set(u); + $s = -1; return [q, r]; + } + if (v.$length === 1) { + r2 = 0; + _tuple = z.divW(u, (0 >= v.$length ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + 0])); + q = _tuple[0]; + r2 = _tuple[1]; + r = z2.setWord(r2); + $s = -1; return [q, r]; + } + _r = z.divLarge(z2, u, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + q = _tuple$1[0]; + r = _tuple$1[1]; + $s = -1; return [q, r]; + /* */ } return; } var $f = {$blk: div, $c: true, $r, _r, _tuple, _tuple$1, q, r, r2, u, v, z, z2, $s};return $f; + }; + $ptrType(nat).prototype.div = function(...$args) { return this.$get().div(...$args); }; + nat.prototype.divW = function divW(x, y) { + var m, q, r, x, y, z; + q = nat.nil; + r = 0; + z = this; + m = x.$length; + if ((y === 0)) { + $panic(new $String("division by zero")); + } else if ((y === 1)) { + q = z.set(x); + return [q, r]; + } else if ((m === 0)) { + q = $subslice(z, 0, 0); + return [q, r]; + } + z = z.make(m); + r = divWVW($convertSliceType(z, sliceType$2), 0, $convertSliceType(x, sliceType$2), y); + q = z.norm(); + return [q, r]; + }; + $ptrType(nat).prototype.divW = function(...$args) { return this.$get().divW(...$args); }; + nat.prototype.modW = function modW(d) { + var d, q, r, x; + r = 0; + x = this; + q = nat.nil; + q = q.make(x.$length); + r = divWVW($convertSliceType(q, sliceType$2), 0, $convertSliceType(x, sliceType$2), d); + return r; + }; + $ptrType(nat).prototype.modW = function(...$args) { return this.$get().modW(...$args); }; + divWVW = function divWVW$1(z, xn, x, y) { + var _tuple, _tuple$1, i, qq, r, rec, rr, x, xn, y, z; + r = 0; + r = xn; + if (x.$length === 1) { + _tuple = bits.Div(((r >>> 0)), (((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]) >>> 0)), ((y >>> 0))); + qq = _tuple[0]; + rr = _tuple[1]; + (0 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 0] = ((qq >>> 0))); + r = ((rr >>> 0)); + return r; + } + rec = reciprocalWord(y); + i = z.$length - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + _tuple$1 = divWW(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), y, rec); + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = _tuple$1[0]); + r = _tuple$1[1]; + i = i - (1) >> 0; + } + r = r; + return r; + }; + nat.prototype.divLarge = function divLarge(u, uIn, vIn) { + var {_r, _tmp, _tmp$1, m, n, q, r, shift, u, uIn, v, vIn, vp, x, x$1, z, $s, $r, $c} = $restore(this, {u, uIn, vIn}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + q = nat.nil; + r = nat.nil; + z = this; + n = vIn.$length; + m = uIn.$length - n >> 0; + shift = nlz((x = n - 1 >> 0, ((x < 0 || x >= vIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : vIn.$array[vIn.$offset + x]))); + _r = getNat(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + vp = _r; + v = vp.$get(); + shlVU($convertSliceType(v, sliceType$2), $convertSliceType(vIn, sliceType$2), shift); + u = u.make(uIn.$length + 1 >> 0); + (x$1 = uIn.$length, ((x$1 < 0 || x$1 >= u.$length) ? ($throwRuntimeError("index out of range"), undefined) : u.$array[u.$offset + x$1] = shlVU($convertSliceType($subslice(u, 0, uIn.$length), sliceType$2), $convertSliceType(uIn, sliceType$2), shift))); + if (alias(z, u)) { + z = nat.nil; + } + q = z.make(m + 1 >> 0); + /* */ if (n < 100) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (n < 100) { */ case 2: + $r = q.divBasic(u, v); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 4; continue; + /* } else { */ case 3: + $r = q.divRecursive(u, v); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + putNat(vp); + q = q.norm(); + shrVU($convertSliceType(u, sliceType$2), $convertSliceType(u, sliceType$2), shift); + r = u.norm(); + _tmp = q; + _tmp$1 = r; + q = _tmp; + r = _tmp$1; + $s = -1; return [q, r]; + /* */ } return; } var $f = {$blk: divLarge, $c: true, $r, _r, _tmp, _tmp$1, m, n, q, r, shift, u, uIn, v, vIn, vp, x, x$1, z, $s};return $f; + }; + $ptrType(nat).prototype.divLarge = function(...$args) { return this.$get().divLarge(...$args); }; + nat.prototype.divBasic = function divBasic(u, v) { + var {_index, _r, _tuple, _tuple$1, _tuple$2, c, c$1, j, m, n, prevRhat, q, qhat, qhatv, qhatvp, qhl, rec, rhat, u, ujn, ujn2, v, vn1, vn2, x, x$1, x$2, x$3, x$4, x1, x2, $s, $r, $c} = $restore(this, {u, v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + q = this; + n = v.$length; + m = u.$length - n >> 0; + _r = getNat(n + 1 >> 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + qhatvp = _r; + qhatv = qhatvp.$get(); + vn1 = (x = n - 1 >> 0, ((x < 0 || x >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + x])); + rec = reciprocalWord(vn1); + j = m; + while (true) { + if (!(j >= 0)) { break; } + qhat = 4294967295; + ujn = 0; + if ((j + n >> 0) < u.$length) { + ujn = (x$1 = j + n >> 0, ((x$1 < 0 || x$1 >= u.$length) ? ($throwRuntimeError("index out of range"), undefined) : u.$array[u.$offset + x$1])); + } + if (!((ujn === vn1))) { + rhat = 0; + _tuple = divWW(ujn, (x$2 = (j + n >> 0) - 1 >> 0, ((x$2 < 0 || x$2 >= u.$length) ? ($throwRuntimeError("index out of range"), undefined) : u.$array[u.$offset + x$2])), vn1, rec); + qhat = _tuple[0]; + rhat = _tuple[1]; + vn2 = (x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + x$3])); + _tuple$1 = mulWW(qhat, vn2); + x1 = _tuple$1[0]; + x2 = _tuple$1[1]; + ujn2 = (x$4 = (j + n >> 0) - 2 >> 0, ((x$4 < 0 || x$4 >= u.$length) ? ($throwRuntimeError("index out of range"), undefined) : u.$array[u.$offset + x$4])); + while (true) { + if (!(greaterThan(x1, x2, rhat, ujn2))) { break; } + qhat = qhat - (1) >>> 0; + prevRhat = rhat; + rhat = rhat + (vn1) >>> 0; + if (rhat < prevRhat) { + break; + } + _tuple$2 = mulWW(qhat, vn2); + x1 = _tuple$2[0]; + x2 = _tuple$2[1]; + } + } + ((n < 0 || n >= qhatv.$length) ? ($throwRuntimeError("index out of range"), undefined) : qhatv.$array[qhatv.$offset + n] = mulAddVWW($convertSliceType($subslice(qhatv, 0, n), sliceType$2), $convertSliceType(v, sliceType$2), qhat, 0)); + qhl = qhatv.$length; + if ((j + qhl >> 0) > u.$length && (((n < 0 || n >= qhatv.$length) ? ($throwRuntimeError("index out of range"), undefined) : qhatv.$array[qhatv.$offset + n]) === 0)) { + qhl = qhl - (1) >> 0; + } + c = subVV($convertSliceType($subslice(u, j, (j + qhl >> 0)), sliceType$2), $convertSliceType($subslice(u, j), sliceType$2), $convertSliceType(qhatv, sliceType$2)); + if (!((c === 0))) { + c$1 = addVV($convertSliceType($subslice(u, j, (j + n >> 0)), sliceType$2), $convertSliceType($subslice(u, j), sliceType$2), $convertSliceType(v, sliceType$2)); + if (n < qhl) { + _index = j + n >> 0; + ((_index < 0 || _index >= u.$length) ? ($throwRuntimeError("index out of range"), undefined) : u.$array[u.$offset + _index] = (((_index < 0 || _index >= u.$length) ? ($throwRuntimeError("index out of range"), undefined) : u.$array[u.$offset + _index]) + (c$1) >>> 0)); + } + qhat = qhat - (1) >>> 0; + } + if ((j === m) && (m === q.$length) && (qhat === 0)) { + j = j - (1) >> 0; + continue; + } + ((j < 0 || j >= q.$length) ? ($throwRuntimeError("index out of range"), undefined) : q.$array[q.$offset + j] = qhat); + j = j - (1) >> 0; + } + putNat(qhatvp); + $s = -1; return; + /* */ } return; } var $f = {$blk: divBasic, $c: true, $r, _index, _r, _tuple, _tuple$1, _tuple$2, c, c$1, j, m, n, prevRhat, q, qhat, qhatv, qhatvp, qhl, rec, rhat, u, ujn, ujn2, v, vn1, vn2, x, x$1, x$2, x$3, x$4, x1, x2, $s};return $f; + }; + $ptrType(nat).prototype.divBasic = function(...$args) { return this.$get().divBasic(...$args); }; + greaterThan = function greaterThan$1(x1, x2, y1, y2) { + var x1, x2, y1, y2; + return x1 > y1 || (x1 === y1) && x2 > y2; + }; + nat.prototype.divRecursive = function divRecursive(u, v) { + var {_i, _r, _ref, n, recDepth, temps, tmp, u, v, z, $s, $r, $c} = $restore(this, {u, v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + recDepth = $imul(2, bits.Len(((v.$length >>> 0)))); + _r = getNat($imul(3, v.$length)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tmp = _r; + temps = $makeSlice(sliceType$3, recDepth); + z.clear(); + $r = z.divRecursiveStep(u, v, 0, tmp, temps); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = temps; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + n = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(n === ptrType$3.nil)) { + putNat(n); + } + _i++; + } + putNat(tmp); + $s = -1; return; + /* */ } return; } var $f = {$blk: divRecursive, $c: true, $r, _i, _r, _ref, n, recDepth, temps, tmp, u, v, z, $s};return $f; + }; + $ptrType(nat).prototype.divRecursive = function(...$args) { return this.$get().divRecursive(...$args); }; + nat.prototype.divRecursiveStep = function divRecursiveStep(u, v, depth, tmp, temps) { + var {B, _q, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, c, c$1, c$2, c$3, depth, e, e$1, i, i$1, j, m, n, qhat, qhat$1, qhatv, qhatv$1, s, s$1, temps, tmp, u, uu, v, z, $s, $r, $c} = $restore(this, {u, v, depth, tmp, temps}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + u = u.norm(); + v = v.norm(); + if (u.$length === 0) { + z.clear(); + $s = -1; return; + } + n = v.$length; + /* */ if (n < 100) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n < 100) { */ case 1: + $r = z.divBasic(u, v); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 2: + m = u.$length - n >> 0; + if (m < 0) { + $s = -1; return; + } + B = (_q = n / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* */ if (((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth]) === ptrType$3.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth]) === ptrType$3.nil) { */ case 4: + _r = getNat(n); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth] = _r); + $s = 6; continue; + /* } else { */ case 5: + ((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth]).$set(((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth]).make(B + 1 >> 0)); + /* } */ case 6: + j = m; + /* while (true) { */ case 8: + /* if (!(j > B)) { break; } */ if(!(j > B)) { $s = 9; continue; } + s = (B - 1 >> 0); + uu = $subslice(u, (j - B >> 0)); + qhat = ((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth]).$get(); + qhat.clear(); + $r = qhat.divRecursiveStep($subslice(uu, s, (B + n >> 0)), $subslice(v, s), depth + 1 >> 0, tmp, temps); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + qhat = qhat.norm(); + qhatv = tmp.make($imul(3, n)); + qhatv.clear(); + _r$1 = qhatv.mul(qhat, $subslice(v, 0, s)); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + qhatv = _r$1; + i = 0; + /* while (true) { */ case 12: + /* if (!(i < 2)) { break; } */ if(!(i < 2)) { $s = 13; continue; } + e = qhatv.cmp(uu.norm()); + if (e <= 0) { + /* break; */ $s = 13; continue; + } + _r$2 = subVW($convertSliceType(qhat, sliceType$2), $convertSliceType(qhat, sliceType$2), 1); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + c = subVV($convertSliceType($subslice(qhatv, 0, s), sliceType$2), $convertSliceType($subslice(qhatv, 0, s), sliceType$2), $convertSliceType($subslice(v, 0, s), sliceType$2)); + /* */ if (qhatv.$length > s) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (qhatv.$length > s) { */ case 15: + _r$3 = subVW($convertSliceType($subslice(qhatv, s), sliceType$2), $convertSliceType($subslice(qhatv, s), sliceType$2), c); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* } */ case 16: + $r = addAt($subslice(uu, s), $subslice(v, s), 0); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + $s = 12; continue; + case 13: + if (qhatv.cmp(uu.norm()) > 0) { + $panic(new $String("impossible")); + } + c$1 = subVV($convertSliceType($subslice(uu, 0, qhatv.$length), sliceType$2), $convertSliceType($subslice(uu, 0, qhatv.$length), sliceType$2), $convertSliceType(qhatv, sliceType$2)); + /* */ if (c$1 > 0) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (c$1 > 0) { */ case 19: + _r$4 = subVW($convertSliceType($subslice(uu, qhatv.$length), sliceType$2), $convertSliceType($subslice(uu, qhatv.$length), sliceType$2), c$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + /* } */ case 20: + $r = addAt(z, qhat, j - B >> 0); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j = j - (B) >> 0; + $s = 8; continue; + case 9: + s$1 = B - 1 >> 0; + qhat$1 = ((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth]).$get(); + qhat$1.clear(); + $r = qhat$1.divRecursiveStep($subslice(u, s$1).norm(), $subslice(v, s$1), depth + 1 >> 0, tmp, temps); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + qhat$1 = qhat$1.norm(); + qhatv$1 = tmp.make($imul(3, n)); + qhatv$1.clear(); + _r$5 = qhatv$1.mul(qhat$1, $subslice(v, 0, s$1)); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + qhatv$1 = _r$5; + i$1 = 0; + /* while (true) { */ case 25: + /* if (!(i$1 < 2)) { break; } */ if(!(i$1 < 2)) { $s = 26; continue; } + e$1 = qhatv$1.cmp(u.norm()); + /* */ if (e$1 > 0) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (e$1 > 0) { */ case 27: + _r$6 = subVW($convertSliceType(qhat$1, sliceType$2), $convertSliceType(qhat$1, sliceType$2), 1); /* */ $s = 29; case 29: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + c$2 = subVV($convertSliceType($subslice(qhatv$1, 0, s$1), sliceType$2), $convertSliceType($subslice(qhatv$1, 0, s$1), sliceType$2), $convertSliceType($subslice(v, 0, s$1), sliceType$2)); + /* */ if (qhatv$1.$length > s$1) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (qhatv$1.$length > s$1) { */ case 30: + _r$7 = subVW($convertSliceType($subslice(qhatv$1, s$1), sliceType$2), $convertSliceType($subslice(qhatv$1, s$1), sliceType$2), c$2); /* */ $s = 32; case 32: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + /* } */ case 31: + $r = addAt($subslice(u, s$1), $subslice(v, s$1), 0); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 28: + i$1 = i$1 + (1) >> 0; + $s = 25; continue; + case 26: + if (qhatv$1.cmp(u.norm()) > 0) { + $panic(new $String("impossible")); + } + c$3 = subVV($convertSliceType($subslice(u, 0, qhatv$1.$length), sliceType$2), $convertSliceType($subslice(u, 0, qhatv$1.$length), sliceType$2), $convertSliceType(qhatv$1, sliceType$2)); + /* */ if (c$3 > 0) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (c$3 > 0) { */ case 34: + _r$8 = subVW($convertSliceType($subslice(u, qhatv$1.$length), sliceType$2), $convertSliceType($subslice(u, qhatv$1.$length), sliceType$2), c$3); /* */ $s = 36; case 36: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + c$3 = _r$8; + /* } */ case 35: + if (c$3 > 0) { + $panic(new $String("impossible")); + } + $r = addAt(z, qhat$1.norm(), 0); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: divRecursiveStep, $c: true, $r, B, _q, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, c, c$1, c$2, c$3, depth, e, e$1, i, i$1, j, m, n, qhat, qhat$1, qhatv, qhatv$1, s, s$1, temps, tmp, u, uu, v, z, $s};return $f; + }; + $ptrType(nat).prototype.divRecursiveStep = function(...$args) { return this.$get().divRecursiveStep(...$args); }; + maxPow = function maxPow$1(b) { + var _q, _tmp, _tmp$1, b, max$1, n, p; + p = 0; + n = 0; + _tmp = b; + _tmp$1 = 1; + p = _tmp; + n = _tmp$1; + max$1 = (_q = 4294967295 / b, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + while (true) { + if (!(p <= max$1)) { break; } + p = $imul(p, (b)) >>> 0; + n = n + (1) >> 0; + } + return [p, n]; + }; + pow = function pow$1(x, n) { + var n, p, x; + p = 0; + p = 1; + while (true) { + if (!(n > 0)) { break; } + if (!(((n & 1) === 0))) { + p = $imul(p, (x)) >>> 0; + } + x = $imul(x, (x)) >>> 0; + n = (n >> $min((1), 31)) >> 0; + } + return p; + }; + nat.prototype.scan = function scan(r, base, fracOk) { + var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, b1, base, baseOk, bn, ch, count, d1, di, dp, err, fracOk, i, invalSep, n, prefix, prev, r, res, z, $s, $r, $c} = $restore(this, {r, base, fracOk}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + res = nat.nil; + b = 0; + count = 0; + err = $ifaceNil; + z = this; + baseOk = (base === 0) || !fracOk && 2 <= base && base <= 62 || fracOk && ((base === 2) || (base === 8) || (base === 10) || (base === 16)); + /* */ if (!baseOk) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!baseOk) { */ case 1: + _r = fmt.Sprintf("invalid number base %d", new sliceType([new $Int(base)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); + /* } */ case 2: + prev = 46; + invalSep = false; + _r$1 = r.ReadByte(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + ch = _tuple[0]; + err = _tuple[1]; + _tmp = base; + _tmp$1 = 0; + b = _tmp; + prefix = _tmp$1; + /* */ if (base === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (base === 0) { */ case 5: + b = 10; + /* */ if ($interfaceIsEqual(err, $ifaceNil) && (ch === 48)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($interfaceIsEqual(err, $ifaceNil) && (ch === 48)) { */ case 7: + prev = 48; + count = 1; + _r$2 = r.ReadByte(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + ch = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 10: + _1 = ch; + if ((_1 === (98)) || (_1 === (66))) { + _tmp$2 = 2; + _tmp$3 = 98; + b = _tmp$2; + prefix = _tmp$3; + } else if ((_1 === (111)) || (_1 === (79))) { + _tmp$4 = 8; + _tmp$5 = 111; + b = _tmp$4; + prefix = _tmp$5; + } else if ((_1 === (120)) || (_1 === (88))) { + _tmp$6 = 16; + _tmp$7 = 120; + b = _tmp$6; + prefix = _tmp$7; + } else if (!fracOk) { + _tmp$8 = 8; + _tmp$9 = 48; + b = _tmp$8; + prefix = _tmp$9; + } + /* */ if (!((prefix === 0))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!((prefix === 0))) { */ case 12: + count = 0; + /* */ if (!((prefix === 48))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!((prefix === 48))) { */ case 14: + _r$3 = r.ReadByte(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$2 = _r$3; + ch = _tuple$2[0]; + err = _tuple$2[1]; + /* } */ case 15: + /* } */ case 13: + /* } */ case 11: + /* } */ case 8: + /* } */ case 6: + z = $subslice(z, 0, 0); + b1 = ((b >>> 0)); + _tuple$3 = maxPow(b1); + bn = _tuple$3[0]; + n = _tuple$3[1]; + di = 0; + i = 0; + dp = -1; + /* while (true) { */ case 17: + /* if (!($interfaceIsEqual(err, $ifaceNil))) { break; } */ if(!($interfaceIsEqual(err, $ifaceNil))) { $s = 18; continue; } + /* */ if ((ch === 46) && fracOk) { $s = 19; continue; } + /* */ if ((ch === 95) && (base === 0)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ((ch === 46) && fracOk) { */ case 19: + fracOk = false; + if (prev === 95) { + invalSep = true; + } + prev = 46; + dp = count; + $s = 22; continue; + /* } else if ((ch === 95) && (base === 0)) { */ case 20: + if (!((prev === 48))) { + invalSep = true; + } + prev = 95; + $s = 22; continue; + /* } else { */ case 21: + d1 = 0; + if (48 <= ch && ch <= 57) { + d1 = (((ch - 48 << 24 >>> 24) >>> 0)); + } else if (97 <= ch && ch <= 122) { + d1 = ((((ch - 97 << 24 >>> 24) + 10 << 24 >>> 24) >>> 0)); + } else if (65 <= ch && ch <= 90) { + if (b <= 36) { + d1 = ((((ch - 65 << 24 >>> 24) + 10 << 24 >>> 24) >>> 0)); + } else { + d1 = ((((ch - 65 << 24 >>> 24) + 36 << 24 >>> 24) >>> 0)); + } + } else { + d1 = 63; + } + /* */ if (d1 >= b1) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (d1 >= b1) { */ case 23: + _r$4 = r.UnreadByte(); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + /* break; */ $s = 18; continue; + /* } */ case 24: + prev = 48; + count = count + (1) >> 0; + di = ($imul(di, b1) >>> 0) + d1 >>> 0; + i = i + (1) >> 0; + if (i === n) { + z = z.mulAddWW(z, bn, di); + di = 0; + i = 0; + } + /* } */ case 22: + _r$5 = r.ReadByte(); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$4 = _r$5; + ch = _tuple$4[0]; + err = _tuple$4[1]; + $s = 17; continue; + case 18: + if ($interfaceIsEqual(err, io.EOF)) { + err = $ifaceNil; + } + if ($interfaceIsEqual(err, $ifaceNil) && (invalSep || (prev === 95))) { + err = errInvalSep; + } + if (count === 0) { + if (prefix === 48) { + _tmp$10 = $subslice(z, 0, 0); + _tmp$11 = 10; + _tmp$12 = 1; + _tmp$13 = err; + res = _tmp$10; + b = _tmp$11; + count = _tmp$12; + err = _tmp$13; + $s = -1; return [res, b, count, err]; + } + err = errNoDigits; + } + if (i > 0) { + z = z.mulAddWW(z, pow(b1, i), di); + } + res = z.norm(); + if (dp >= 0) { + count = dp - count >> 0; + } + $s = -1; return [res, b, count, err]; + /* */ } return; } var $f = {$blk: scan, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, b1, base, baseOk, bn, ch, count, d1, di, dp, err, fracOk, i, invalSep, n, prefix, prev, r, res, z, $s};return $f; + }; + $ptrType(nat).prototype.scan = function(...$args) { return this.$get().scan(...$args); }; + nat.prototype.utoa = function utoa(base) { + var {$24r, _r, base, x, $s, $r, $c} = $restore(this, {base}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.itoa(false, base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: utoa, $c: true, $r, $24r, _r, base, x, $s};return $f; + }; + $ptrType(nat).prototype.utoa = function(...$args) { return this.$get().utoa(...$args); }; + nat.prototype.itoa = function itoa(neg, base) { + var {_r, _tuple, b, base, bb, i, k, mask, nbits, ndigits, neg, q, s, shift, table, w, x, y, y$1, y$2, y$3, y$4, $s, $r, $c} = $restore(this, {neg, base}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (base < 2 || base > 62) { + $panic(new $String("invalid base")); + } + if (x.$length === 0) { + $s = -1; return (new sliceType$1($stringToBytes("0"))); + } + i = (((x.bitLen()) / math.Log2((base)) >> 0)) + 1 >> 0; + if (neg) { + i = i + (1) >> 0; + } + s = $makeSlice(sliceType$1, i); + b = ((base >>> 0)); + /* */ if (b === ((b & (-b >>> 0)) >>> 0)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (b === ((b & (-b >>> 0)) >>> 0)) { */ case 1: + shift = ((bits.TrailingZeros(((b >>> 0))) >>> 0)); + mask = ((((y = shift, y < 32 ? (1 << y) : 0) >>> 0) - 1 >>> 0)); + w = (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]); + nbits = 32; + k = 1; + while (true) { + if (!(k < x.$length)) { break; } + while (true) { + if (!(nbits >= shift)) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charCodeAt(((w & mask) >>> 0))); + w = (y$1 = (shift), y$1 < 32 ? (w >>> y$1) : 0) >>> 0; + nbits = nbits - (shift) >>> 0; + } + if (nbits === 0) { + w = ((k < 0 || k >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + k]); + nbits = 32; + } else { + w = (w | (((y$2 = nbits, y$2 < 32 ? (((k < 0 || k >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + k]) << y$2) : 0) >>> 0))) >>> 0; + i = i - (1) >> 0; + ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charCodeAt(((w & mask) >>> 0))); + w = (y$3 = ((shift - nbits >>> 0)), y$3 < 32 ? (((k < 0 || k >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + k]) >>> y$3) : 0) >>> 0; + nbits = 32 - ((shift - nbits >>> 0)) >>> 0; + } + k = k + (1) >> 0; + } + while (true) { + if (!(!((w === 0)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charCodeAt(((w & mask) >>> 0))); + w = (y$4 = (shift), y$4 < 32 ? (w >>> y$4) : 0) >>> 0; + } + $s = 3; continue; + /* } else { */ case 2: + _tuple = maxPow(b); + bb = _tuple[0]; + ndigits = _tuple[1]; + _r = divisors(x.$length, b, ndigits, bb); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + table = _r; + q = (nat.nil).set(x); + $r = q.convertWords(s, b, ndigits, bb, table); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = 0; + while (true) { + if (!(((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]) === 48)) { break; } + i = i + (1) >> 0; + } + /* } */ case 3: + if (neg) { + i = i - (1) >> 0; + ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = 45); + } + $s = -1; return $subslice(s, i); + /* */ } return; } var $f = {$blk: itoa, $c: true, $r, _r, _tuple, b, base, bb, i, k, mask, nbits, ndigits, neg, q, s, shift, table, w, x, y, y$1, y$2, y$3, y$4, $s};return $f; + }; + $ptrType(nat).prototype.itoa = function(...$args) { return this.$get().itoa(...$args); }; + nat.prototype.convertWords = function convertWords(s, b, ndigits, bb, table) { + var {_q, _q$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, b, bb, h, i, index, j, j$1, maxLength, minLength, ndigits, q, r, r$1, s, t, table, x, $s, $r, $c} = $restore(this, {s, b, ndigits, bb, table}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + q = this; + /* */ if (!(table === sliceType$4.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(table === sliceType$4.nil)) { */ case 1: + r = nat.nil; + index = table.$length - 1 >> 0; + /* while (true) { */ case 3: + /* if (!(q.$length > leafSize)) { break; } */ if(!(q.$length > leafSize)) { $s = 4; continue; } + maxLength = q.bitLen(); + minLength = maxLength >> 1 >> 0; + while (true) { + if (!(index > 0 && (x = index - 1 >> 0, ((x < 0 || x >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + x])).nbits > minLength)) { break; } + index = index - (1) >> 0; + } + if (((index < 0 || index >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + index]).nbits >= maxLength && ((index < 0 || index >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + index]).bbb.cmp(q) >= 0) { + index = index - (1) >> 0; + if (index < 0) { + $panic(new $String("internal inconsistency")); + } + } + _r = q.div(r, q, ((index < 0 || index >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + index]).bbb); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + q = _tuple[0]; + r = _tuple[1]; + h = s.$length - ((index < 0 || index >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + index]).ndigits >> 0; + $r = r.convertWords($subslice(s, h), b, ndigits, bb, $subslice(table, 0, index)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = $subslice(s, 0, h); + $s = 3; continue; + case 4: + /* } */ case 2: + i = s.$length; + r$1 = 0; + if (b === 10) { + while (true) { + if (!(q.$length > 0)) { break; } + _tuple$1 = q.divW(q, bb); + q = _tuple$1[0]; + r$1 = _tuple$1[1]; + j = 0; + while (true) { + if (!(j < ndigits && i > 0)) { break; } + i = i - (1) >> 0; + t = (_q = r$1 / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = (48 + (((r$1 - ($imul(t, 10) >>> 0) >>> 0) << 24 >>> 24)) << 24 >>> 24)); + r$1 = t; + j = j + (1) >> 0; + } + } + } else { + while (true) { + if (!(q.$length > 0)) { break; } + _tuple$2 = q.divW(q, bb); + q = _tuple$2[0]; + r$1 = _tuple$2[1]; + j$1 = 0; + while (true) { + if (!(j$1 < ndigits && i > 0)) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charCodeAt((_r$1 = r$1 % b, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")))); + r$1 = (_q$1 = r$1 / (b), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + j$1 = j$1 + (1) >> 0; + } + } + } + while (true) { + if (!(i > 0)) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = 48); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: convertWords, $c: true, $r, _q, _q$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, b, bb, h, i, index, j, j$1, maxLength, minLength, ndigits, q, r, r$1, s, t, table, x, $s};return $f; + }; + $ptrType(nat).prototype.convertWords = function(...$args) { return this.$get().convertWords(...$args); }; + nat.prototype.expWW = function expWW(x, y) { + var {$24r, _r, x, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = z.expNN((nat.nil).setWord(x), (nat.nil).setWord(y), nat.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: expWW, $c: true, $r, $24r, _r, x, y, z, $s};return $f; + }; + $ptrType(nat).prototype.expWW = function(...$args) { return this.$get().expWW(...$args); }; + divisors = function divisors$1(m, b, ndigits, bb) { + var {_r, _r$1, b, bb, i, k, larger, m, ndigits, table, words, x, x$1, x$2, y, $s, $r, $c} = $restore(this, {m, b, ndigits, bb}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ((leafSize === 0) || m <= leafSize) { + $s = -1; return sliceType$4.nil; + } + k = 1; + words = leafSize; + while (true) { + if (!(words < (m >> 1 >> 0) && k < 64)) { break; } + k = k + (1) >> 0; + words = (y = (1), y < 32 ? (words << y) : 0) >> 0; + } + table = sliceType$4.nil; + if (b === 10) { + cacheBase10.Mutex.Lock(); + table = $subslice(new sliceType$4(cacheBase10.table), 0, k); + } else { + table = $makeSlice(sliceType$4, k); + } + /* */ if ((x = k - 1 >> 0, ((x < 0 || x >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + x])).ndigits === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((x = k - 1 >> 0, ((x < 0 || x >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + x])).ndigits === 0) { */ case 1: + larger = nat.nil; + i = 0; + /* while (true) { */ case 3: + /* if (!(i < k)) { break; } */ if(!(i < k)) { $s = 4; continue; } + /* */ if (((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).ndigits === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).ndigits === 0) { */ case 5: + /* */ if (i === 0) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (i === 0) { */ case 7: + _r = (nat.nil).expWW(bb, ((leafSize >>> 0))); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + (0 >= table.$length ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + 0]).bbb = _r; + (0 >= table.$length ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + 0]).ndigits = $imul(ndigits, leafSize); + $s = 9; continue; + /* } else { */ case 8: + _r$1 = (nat.nil).sqr((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + x$1])).bbb); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).bbb = _r$1; + ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).ndigits = $imul(2, (x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + x$2])).ndigits); + /* } */ case 9: + larger = (nat.nil).set(((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).bbb); + while (true) { + if (!(mulAddVWW($convertSliceType(larger, sliceType$2), $convertSliceType(larger, sliceType$2), b, 0) === 0)) { break; } + ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).bbb = ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).bbb.set(larger); + ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).ndigits = ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).ndigits + (1) >> 0; + } + ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).nbits = ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).bbb.bitLen(); + /* } */ case 6: + i = i + (1) >> 0; + $s = 3; continue; + case 4: + /* } */ case 2: + if (b === 10) { + cacheBase10.Mutex.Unlock(); + } + $s = -1; return table; + /* */ } return; } var $f = {$blk: divisors$1, $c: true, $r, _r, _r$1, b, bb, i, k, larger, m, ndigits, table, words, x, x$1, x$2, y, $s};return $f; + }; + nat.prototype.clear = function clear() { + var _i, _ref, i, z; + z = this; + _ref = z; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = 0); + _i++; + } + }; + $ptrType(nat).prototype.clear = function(...$args) { return this.$get().clear(...$args); }; + nat.prototype.norm = function norm$1() { + var i, x, z; + z = this; + i = z.$length; + while (true) { + if (!(i > 0 && ((x = i - 1 >> 0, ((x < 0 || x >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x])) === 0))) { break; } + i = i - (1) >> 0; + } + return $subslice(z, 0, i); + }; + $ptrType(nat).prototype.norm = function(...$args) { return this.$get().norm(...$args); }; + nat.prototype.make = function make(n) { + var n, z; + z = this; + if (n <= z.$capacity) { + return $subslice(z, 0, n); + } + if (n === 1) { + return $makeSlice(nat, 1); + } + return $makeSlice(nat, n, (n + 4 >> 0)); + }; + $ptrType(nat).prototype.make = function(...$args) { return this.$get().make(...$args); }; + nat.prototype.setWord = function setWord(x) { + var x, z; + z = this; + if (x === 0) { + return $subslice(z, 0, 0); + } + z = z.make(1); + (0 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 0] = x); + return z; + }; + $ptrType(nat).prototype.setWord = function(...$args) { return this.$get().setWord(...$args); }; + nat.prototype.setUint64 = function setUint64(x) { + var w, x, x$1, z; + z = this; + w = ((x.$low >>> 0)); + if ((x$1 = (new $Uint64(0, w)), (x$1.$high === x.$high && x$1.$low === x.$low))) { + return z.setWord(w); + } + z = z.make(2); + (1 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 1] = (($shiftRightUint64(x, 32).$low >>> 0))); + (0 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 0] = ((x.$low >>> 0))); + return z; + }; + $ptrType(nat).prototype.setUint64 = function(...$args) { return this.$get().setUint64(...$args); }; + nat.prototype.set = function set(x) { + var x, z; + z = this; + z = z.make(x.$length); + $copySlice(z, x); + return z; + }; + $ptrType(nat).prototype.set = function(...$args) { return this.$get().set(...$args); }; + nat.prototype.add = function add(x, y) { + var {$24r, _r, _r$1, c, m, n, x, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + m = x.$length; + n = y.$length; + /* */ if (m < n) { $s = 2; continue; } + /* */ if ((m === 0)) { $s = 3; continue; } + /* */ if ((n === 0)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (m < n) { */ case 2: + _r = z.add(y, x); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 7; case 7: return $24r; + /* } else if ((m === 0)) { */ case 3: + $s = -1; return $subslice(z, 0, 0); + /* } else if ((n === 0)) { */ case 4: + $s = -1; return z.set(x); + /* } */ case 5: + case 1: + z = z.make(m + 1 >> 0); + c = addVV($convertSliceType($subslice(z, 0, n), sliceType$2), $convertSliceType(x, sliceType$2), $convertSliceType(y, sliceType$2)); + /* */ if (m > n) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (m > n) { */ case 8: + _r$1 = addVW($convertSliceType($subslice(z, n, m), sliceType$2), $convertSliceType($subslice(x, n), sliceType$2), c); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + c = _r$1; + /* } */ case 9: + ((m < 0 || m >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + m] = c); + $s = -1; return z.norm(); + /* */ } return; } var $f = {$blk: add, $c: true, $r, $24r, _r, _r$1, c, m, n, x, y, z, $s};return $f; + }; + $ptrType(nat).prototype.add = function(...$args) { return this.$get().add(...$args); }; + nat.prototype.sub = function sub(x, y) { + var {_r, c, m, n, x, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + m = x.$length; + n = y.$length; + if (m < n) { + $panic(new $String("underflow")); + } else if ((m === 0)) { + $s = -1; return $subslice(z, 0, 0); + } else if ((n === 0)) { + $s = -1; return z.set(x); + } + z = z.make(m); + c = subVV($convertSliceType($subslice(z, 0, n), sliceType$2), $convertSliceType(x, sliceType$2), $convertSliceType(y, sliceType$2)); + /* */ if (m > n) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (m > n) { */ case 1: + _r = subVW($convertSliceType($subslice(z, n), sliceType$2), $convertSliceType($subslice(x, n), sliceType$2), c); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + c = _r; + /* } */ case 2: + if (!((c === 0))) { + $panic(new $String("underflow")); + } + $s = -1; return z.norm(); + /* */ } return; } var $f = {$blk: sub, $c: true, $r, _r, c, m, n, x, y, z, $s};return $f; + }; + $ptrType(nat).prototype.sub = function(...$args) { return this.$get().sub(...$args); }; + nat.prototype.cmp = function cmp(y) { + var i, m, n, r, x, y; + r = 0; + x = this; + m = x.$length; + n = y.$length; + if (!((m === n)) || (m === 0)) { + if (m < n) { + r = -1; + } else if (m > n) { + r = 1; + } + return r; + } + i = m - 1 >> 0; + while (true) { + if (!(i > 0 && (((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) === ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])))) { break; } + i = i - (1) >> 0; + } + if (((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) < ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])) { + r = -1; + } else if (((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) > ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])) { + r = 1; + } + return r; + }; + $ptrType(nat).prototype.cmp = function(...$args) { return this.$get().cmp(...$args); }; + nat.prototype.mulAddWW = function mulAddWW(x, y, r) { + var m, r, x, y, z; + z = this; + m = x.$length; + if ((m === 0) || (y === 0)) { + return z.setWord(r); + } + z = z.make(m + 1 >> 0); + ((m < 0 || m >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + m] = mulAddVWW($convertSliceType($subslice(z, 0, m), sliceType$2), $convertSliceType(x, sliceType$2), y, r)); + return z.norm(); + }; + $ptrType(nat).prototype.mulAddWW = function(...$args) { return this.$get().mulAddWW(...$args); }; + basicMul = function basicMul$1(z, x, y) { + var _i, _ref, d, i, x, x$1, y, z; + $subslice(z, 0, (x.$length + y.$length >> 0)).clear(); + _ref = y; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((d === 0))) { + (x$1 = x.$length + i >> 0, ((x$1 < 0 || x$1 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$1] = addMulVVW($convertSliceType($subslice(z, i, (i + x.$length >> 0)), sliceType$2), $convertSliceType(x, sliceType$2), d))); + } + _i++; + } + }; + nat.prototype.montgomery = function montgomery(x, y, m, k, n) { + var c, c2, c3, cx, cy, d, i, k, m, n, t, x, x$1, y, z; + z = this; + if (!((x.$length === n)) || !((y.$length === n)) || !((m.$length === n))) { + $panic(new $String("math/big: mismatched montgomery number lengths")); + } + z = z.make($imul(n, 2)); + z.clear(); + c = 0; + i = 0; + while (true) { + if (!(i < n)) { break; } + d = ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i]); + c2 = addMulVVW($convertSliceType($subslice(z, i, (n + i >> 0)), sliceType$2), $convertSliceType(x, sliceType$2), d); + t = $imul(((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i]), k) >>> 0; + c3 = addMulVVW($convertSliceType($subslice(z, i, (n + i >> 0)), sliceType$2), $convertSliceType(m, sliceType$2), t); + cx = c + c2 >>> 0; + cy = cx + c3 >>> 0; + (x$1 = n + i >> 0, ((x$1 < 0 || x$1 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$1] = cy)); + if (cx < c2 || cy < c3) { + c = 1; + } else { + c = 0; + } + i = i + (1) >> 0; + } + if (!((c === 0))) { + subVV($convertSliceType($subslice(z, 0, n), sliceType$2), $convertSliceType($subslice(z, n), sliceType$2), $convertSliceType(m, sliceType$2)); + } else { + $copySlice($subslice(z, 0, n), $subslice(z, n)); + } + return $subslice(z, 0, n); + }; + $ptrType(nat).prototype.montgomery = function(...$args) { return this.$get().montgomery(...$args); }; + karatsubaAdd = function karatsubaAdd$1(z, x, n) { + var {_r, c, n, x, z, $s, $r, $c} = $restore(this, {z, x, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = addVV($convertSliceType($subslice(z, 0, n), sliceType$2), $convertSliceType(z, sliceType$2), $convertSliceType(x, sliceType$2)); + /* */ if (!((c === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((c === 0))) { */ case 1: + _r = addVW($convertSliceType($subslice(z, n, (n + (n >> 1 >> 0) >> 0)), sliceType$2), $convertSliceType($subslice(z, n), sliceType$2), c); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: karatsubaAdd$1, $c: true, $r, _r, c, n, x, z, $s};return $f; + }; + karatsubaSub = function karatsubaSub$1(z, x, n) { + var {_r, c, n, x, z, $s, $r, $c} = $restore(this, {z, x, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = subVV($convertSliceType($subslice(z, 0, n), sliceType$2), $convertSliceType(z, sliceType$2), $convertSliceType(x, sliceType$2)); + /* */ if (!((c === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((c === 0))) { */ case 1: + _r = subVW($convertSliceType($subslice(z, n, (n + (n >> 1 >> 0) >> 0)), sliceType$2), $convertSliceType($subslice(z, n), sliceType$2), c); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: karatsubaSub$1, $c: true, $r, _r, c, n, x, z, $s};return $f; + }; + karatsuba = function karatsuba$1(z, x, y) { + var {_tmp, _tmp$1, _tmp$2, _tmp$3, n, n2, p, r, s, x, x0, x1, xd, y, y0, y1, yd, z, $s, $r, $c} = $restore(this, {z, x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = y.$length; + if (!(((n & 1) === 0)) || n < karatsubaThreshold || n < 2) { + basicMul(z, x, y); + $s = -1; return; + } + n2 = n >> 1 >> 0; + _tmp = $subslice(x, n2); + _tmp$1 = $subslice(x, 0, n2); + x1 = _tmp; + x0 = _tmp$1; + _tmp$2 = $subslice(y, n2); + _tmp$3 = $subslice(y, 0, n2); + y1 = _tmp$2; + y0 = _tmp$3; + $r = karatsuba(z, x0, y0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = karatsuba($subslice(z, n), x1, y1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = 1; + xd = $subslice(z, ($imul(2, n)), (($imul(2, n)) + n2 >> 0)); + if (!((subVV($convertSliceType(xd, sliceType$2), $convertSliceType(x1, sliceType$2), $convertSliceType(x0, sliceType$2)) === 0))) { + s = -s; + subVV($convertSliceType(xd, sliceType$2), $convertSliceType(x0, sliceType$2), $convertSliceType(x1, sliceType$2)); + } + yd = $subslice(z, (($imul(2, n)) + n2 >> 0), ($imul(3, n))); + if (!((subVV($convertSliceType(yd, sliceType$2), $convertSliceType(y0, sliceType$2), $convertSliceType(y1, sliceType$2)) === 0))) { + s = -s; + subVV($convertSliceType(yd, sliceType$2), $convertSliceType(y1, sliceType$2), $convertSliceType(y0, sliceType$2)); + } + p = $subslice(z, ($imul(n, 3))); + $r = karatsuba(p, xd, yd); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + r = $subslice(z, ($imul(n, 4))); + $copySlice(r, $subslice(z, 0, ($imul(n, 2)))); + $r = karatsubaAdd($subslice(z, n2), r, n); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = karatsubaAdd($subslice(z, n2), $subslice(r, n), n); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (s > 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (s > 0) { */ case 6: + $r = karatsubaAdd($subslice(z, n2), p, n); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 8; continue; + /* } else { */ case 7: + $r = karatsubaSub($subslice(z, n2), p, n); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + $s = -1; return; + /* */ } return; } var $f = {$blk: karatsuba$1, $c: true, $r, _tmp, _tmp$1, _tmp$2, _tmp$3, n, n2, p, r, s, x, x0, x1, xd, y, y0, y1, yd, z, $s};return $f; + }; + alias = function alias$1(x, y) { + var x, x$1, x$2, y; + return x.$capacity > 0 && y.$capacity > 0 && (x$1 = $subslice(x, 0, x.$capacity), $indexPtr(x$1.$array, x$1.$offset + (x.$capacity - 1 >> 0), ptrType$4)) === (x$2 = $subslice(y, 0, y.$capacity), $indexPtr(x$2.$array, x$2.$offset + (y.$capacity - 1 >> 0), ptrType$4)); + }; + addAt = function addAt$1(z, x, i) { + var {_r, c, i, j, n, x, z, $s, $r, $c} = $restore(this, {z, x, i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = x.$length; + /* */ if (n > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n > 0) { */ case 1: + c = addVV($convertSliceType($subslice(z, i, (i + n >> 0)), sliceType$2), $convertSliceType($subslice(z, i), sliceType$2), $convertSliceType(x, sliceType$2)); + /* */ if (!((c === 0))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!((c === 0))) { */ case 3: + j = i + n >> 0; + /* */ if (j < z.$length) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (j < z.$length) { */ case 5: + _r = addVW($convertSliceType($subslice(z, j), sliceType$2), $convertSliceType($subslice(z, j), sliceType$2), c); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 6: + /* } */ case 4: + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: addAt$1, $c: true, $r, _r, c, i, j, n, x, z, $s};return $f; + }; + max = function max$1(x, y) { + var x, y; + if (x > y) { + return x; + } + return y; + }; + karatsubaLen = function karatsubaLen$1(n, threshold) { + var i, n, threshold, y; + i = 0; + while (true) { + if (!(n > threshold)) { break; } + n = (n >> $min((1), 31)) >> 0; + i = i + (1) >>> 0; + } + return (y = i, y < 32 ? (n << y) : 0) >> 0; + }; + nat.prototype.mul = function mul(x, y) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, i, k, m, n, t, tp, x, x0, x0$1, xi, y, y0, y0$1, y1, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + m = x.$length; + n = y.$length; + /* */ if (m < n) { $s = 2; continue; } + /* */ if ((m === 0) || (n === 0)) { $s = 3; continue; } + /* */ if ((n === 1)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (m < n) { */ case 2: + _r = z.mul(y, x); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 7; case 7: return $24r; + /* } else if ((m === 0) || (n === 0)) { */ case 3: + $s = -1; return $subslice(z, 0, 0); + /* } else if ((n === 1)) { */ case 4: + $s = -1; return z.mulAddWW(x, (0 >= y.$length ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + 0]), 0); + /* } */ case 5: + case 1: + if (alias(z, x) || alias(z, y)) { + z = nat.nil; + } + if (n < karatsubaThreshold) { + z = z.make(m + n >> 0); + basicMul(z, x, y); + $s = -1; return z.norm(); + } + k = karatsubaLen(n, karatsubaThreshold); + x0 = $subslice(x, 0, k); + y0 = $subslice(y, 0, k); + z = z.make(max($imul(6, k), m + n >> 0)); + $r = karatsuba(z, x0, y0); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + z = $subslice(z, 0, (m + n >> 0)); + $subslice(z, ($imul(2, k))).clear(); + /* */ if (k < n || !((m === n))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (k < n || !((m === n))) { */ case 9: + _r$1 = getNat($imul(3, k)); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + tp = _r$1; + t = tp.$get(); + x0$1 = x0.norm(); + y1 = $subslice(y, k); + _r$2 = t.mul(x0$1, y1); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + t = _r$2; + $r = addAt(z, t, k); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + y0$1 = y0.norm(); + i = k; + /* while (true) { */ case 14: + /* if (!(i < x.$length)) { break; } */ if(!(i < x.$length)) { $s = 15; continue; } + xi = $subslice(x, i); + if (xi.$length > k) { + xi = $subslice(xi, 0, k); + } + xi = xi.norm(); + _r$3 = t.mul(xi, y0$1); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + t = _r$3; + $r = addAt(z, t, i); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = t.mul(xi, y1); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + t = _r$4; + $r = addAt(z, t, i + k >> 0); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (k) >> 0; + $s = 14; continue; + case 15: + putNat(tp); + /* } */ case 10: + $s = -1; return z.norm(); + /* */ } return; } var $f = {$blk: mul, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, i, k, m, n, t, tp, x, x0, x0$1, xi, y, y0, y0$1, y1, z, $s};return $f; + }; + $ptrType(nat).prototype.mul = function(...$args) { return this.$get().mul(...$args); }; + basicSqr = function basicSqr$1(z, x) { + var {_r, _tuple, _tuple$1, d, i, n, t, tp, x, x$1, x$2, x$3, x$4, z, $s, $r, $c} = $restore(this, {z, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = x.$length; + _r = getNat($imul(2, n)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tp = _r; + t = tp.$get(); + t.clear(); + _tuple = mulWW((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]), (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + (1 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 1] = _tuple[0]); + (0 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 0] = _tuple[1]); + i = 1; + while (true) { + if (!(i < n)) { break; } + d = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]); + _tuple$1 = mulWW(d, d); + (x$1 = ($imul(2, i)) + 1 >> 0, ((x$1 < 0 || x$1 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$1] = _tuple$1[0])); + (x$2 = $imul(2, i), ((x$2 < 0 || x$2 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$2] = _tuple$1[1])); + (x$3 = $imul(2, i), ((x$3 < 0 || x$3 >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + x$3] = addMulVVW($convertSliceType($subslice(t, i, ($imul(2, i))), sliceType$2), $convertSliceType($subslice(x, 0, i), sliceType$2), d))); + i = i + (1) >> 0; + } + (x$4 = ($imul(2, n)) - 1 >> 0, ((x$4 < 0 || x$4 >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + x$4] = shlVU($convertSliceType($subslice(t, 1, (($imul(2, n)) - 1 >> 0)), sliceType$2), $convertSliceType($subslice(t, 1, (($imul(2, n)) - 1 >> 0)), sliceType$2), 1))); + addVV($convertSliceType(z, sliceType$2), $convertSliceType(z, sliceType$2), $convertSliceType(t, sliceType$2)); + putNat(tp); + $s = -1; return; + /* */ } return; } var $f = {$blk: basicSqr$1, $c: true, $r, _r, _tuple, _tuple$1, d, i, n, t, tp, x, x$1, x$2, x$3, x$4, z, $s};return $f; + }; + karatsubaSqr = function karatsubaSqr$1(z, x) { + var {_tmp, _tmp$1, n, n2, p, r, x, x0, x1, xd, z, $s, $r, $c} = $restore(this, {z, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = x.$length; + /* */ if (!(((n & 1) === 0)) || n < karatsubaSqrThreshold || n < 2) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(((n & 1) === 0)) || n < karatsubaSqrThreshold || n < 2) { */ case 1: + $r = basicSqr($subslice(z, 0, ($imul(2, n))), x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 2: + n2 = n >> 1 >> 0; + _tmp = $subslice(x, n2); + _tmp$1 = $subslice(x, 0, n2); + x1 = _tmp; + x0 = _tmp$1; + $r = karatsubaSqr(z, x0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = karatsubaSqr($subslice(z, n), x1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + xd = $subslice(z, ($imul(2, n)), (($imul(2, n)) + n2 >> 0)); + if (!((subVV($convertSliceType(xd, sliceType$2), $convertSliceType(x1, sliceType$2), $convertSliceType(x0, sliceType$2)) === 0))) { + subVV($convertSliceType(xd, sliceType$2), $convertSliceType(x0, sliceType$2), $convertSliceType(x1, sliceType$2)); + } + p = $subslice(z, ($imul(n, 3))); + $r = karatsubaSqr(p, xd); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + r = $subslice(z, ($imul(n, 4))); + $copySlice(r, $subslice(z, 0, ($imul(n, 2)))); + $r = karatsubaAdd($subslice(z, n2), r, n); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = karatsubaAdd($subslice(z, n2), $subslice(r, n), n); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = karatsubaSub($subslice(z, n2), p, n); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: karatsubaSqr$1, $c: true, $r, _tmp, _tmp$1, n, n2, p, r, x, x0, x1, xd, z, $s};return $f; + }; + nat.prototype.sqr = function sqr(x) { + var {_r, _r$1, _r$2, _tuple, d, k, n, t, tp, x, x0, x0$1, x1, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + n = x.$length; + if ((n === 0)) { + $s = -1; return $subslice(z, 0, 0); + } else if ((n === 1)) { + d = (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]); + z = z.make(2); + _tuple = mulWW(d, d); + (1 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 1] = _tuple[0]); + (0 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 0] = _tuple[1]); + $s = -1; return z.norm(); + } + if (alias(z, x)) { + z = nat.nil; + } + if (n < basicSqrThreshold) { + z = z.make($imul(2, n)); + basicMul(z, x, x); + $s = -1; return z.norm(); + } + /* */ if (n < karatsubaSqrThreshold) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n < karatsubaSqrThreshold) { */ case 1: + z = z.make($imul(2, n)); + $r = basicSqr(z, x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return z.norm(); + /* } */ case 2: + k = karatsubaLen(n, karatsubaSqrThreshold); + x0 = $subslice(x, 0, k); + z = z.make(max($imul(6, k), $imul(2, n))); + $r = karatsubaSqr(z, x0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + z = $subslice(z, 0, ($imul(2, n))); + $subslice(z, ($imul(2, k))).clear(); + /* */ if (k < n) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (k < n) { */ case 5: + _r = getNat($imul(2, k)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tp = _r; + t = tp.$get(); + x0$1 = x0.norm(); + x1 = $subslice(x, k); + _r$1 = t.mul(x0$1, x1); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + t = _r$1; + $r = addAt(z, t, k); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = addAt(z, t, k); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = t.sqr(x1); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + t = _r$2; + $r = addAt(z, t, $imul(2, k)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + putNat(tp); + /* } */ case 6: + $s = -1; return z.norm(); + /* */ } return; } var $f = {$blk: sqr, $c: true, $r, _r, _r$1, _r$2, _tuple, d, k, n, t, tp, x, x0, x0$1, x1, z, $s};return $f; + }; + $ptrType(nat).prototype.sqr = function(...$args) { return this.$get().sqr(...$args); }; + nat.prototype.mulRange = function mulRange(a, b) { + var {$24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$2, _r$3, a, b, m, x, z, $s, $r, $c} = $restore(this, {a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if ((a.$high === 0 && a.$low === 0)) { $s = 2; continue; } + /* */ if ((a.$high > b.$high || (a.$high === b.$high && a.$low > b.$low))) { $s = 3; continue; } + /* */ if ((a.$high === b.$high && a.$low === b.$low)) { $s = 4; continue; } + /* */ if ((x = new $Uint64(a.$high + 0, a.$low + 1), (x.$high === b.$high && x.$low === b.$low))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((a.$high === 0 && a.$low === 0)) { */ case 2: + $s = -1; return z.setUint64(new $Uint64(0, 0)); + /* } else if ((a.$high > b.$high || (a.$high === b.$high && a.$low > b.$low))) { */ case 3: + $s = -1; return z.setUint64(new $Uint64(0, 1)); + /* } else if ((a.$high === b.$high && a.$low === b.$low)) { */ case 4: + $s = -1; return z.setUint64(a); + /* } else if ((x = new $Uint64(a.$high + 0, a.$low + 1), (x.$high === b.$high && x.$low === b.$low))) { */ case 5: + _r = z.mul((nat.nil).setUint64(a), (nat.nil).setUint64(b)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 8; case 8: return $24r; + /* } */ case 6: + case 1: + m = $div64((new $Uint64(a.$high + b.$high, a.$low + b.$low)), new $Uint64(0, 2), false); + _r$1 = (nat.nil).mulRange(a, m); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = _r$1; + _r$2 = (nat.nil).mulRange(new $Uint64(m.$high + 0, m.$low + 1), b); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + _r$3 = z.mul(_arg, _arg$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = _r$3; + $s = 12; case 12: return $24r$1; + /* */ } return; } var $f = {$blk: mulRange, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$2, _r$3, a, b, m, x, z, $s};return $f; + }; + $ptrType(nat).prototype.mulRange = function(...$args) { return this.$get().mulRange(...$args); }; + getNat = function getNat$1(n) { + var {_r, n, v, z, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = ptrType$3.nil; + _r = natPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + if (!($interfaceIsEqual(v, $ifaceNil))) { + z = $assertType(v, ptrType$3); + } + if (z === ptrType$3.nil) { + z = $newDataPointer(nat.nil, ptrType$3); + } + z.$set(z.make(n)); + $s = -1; return z; + /* */ } return; } var $f = {$blk: getNat$1, $c: true, $r, _r, n, v, z, $s};return $f; + }; + putNat = function putNat$1(x) { + var x; + natPool.Put(x); + }; + nat.prototype.bitLen = function bitLen() { + var i, x; + x = this; + i = x.$length - 1 >> 0; + if (i >= 0) { + return ($imul(i, 32)) + bits.Len(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0))) >> 0; + } + return 0; + }; + $ptrType(nat).prototype.bitLen = function(...$args) { return this.$get().bitLen(...$args); }; + nat.prototype.trailingZeroBits = function trailingZeroBits() { + var i, x; + x = this; + if (x.$length === 0) { + return 0; + } + i = 0; + while (true) { + if (!(((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) === 0)) { break; } + i = i + (1) >>> 0; + } + return ($imul(i, 32) >>> 0) + ((bits.TrailingZeros(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0))) >>> 0)) >>> 0; + }; + $ptrType(nat).prototype.trailingZeroBits = function(...$args) { return this.$get().trailingZeroBits(...$args); }; + same = function same$1(x, y) { + var x, y; + return (x.$length === y.$length) && x.$length > 0 && $indexPtr(x.$array, x.$offset + 0, ptrType$4) === $indexPtr(y.$array, y.$offset + 0, ptrType$4); + }; + nat.prototype.shl = function shl(x, s) { + var _q, _r, m, n, s, x, z; + z = this; + if (s === 0) { + if (same(z, x)) { + return z; + } + if (!alias(z, x)) { + return z.set(x); + } + } + m = x.$length; + if (m === 0) { + return $subslice(z, 0, 0); + } + n = m + (((_q = s / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) >> 0; + z = z.make(n + 1 >> 0); + ((n < 0 || n >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + n] = shlVU($convertSliceType($subslice(z, (n - m >> 0), n), sliceType$2), $convertSliceType(x, sliceType$2), (_r = s % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")))); + $subslice(z, 0, (n - m >> 0)).clear(); + return z.norm(); + }; + $ptrType(nat).prototype.shl = function(...$args) { return this.$get().shl(...$args); }; + nat.prototype.shr = function shr$1(x, s) { + var _q, _r, m, n, s, x, z; + z = this; + if (s === 0) { + if (same(z, x)) { + return z; + } + if (!alias(z, x)) { + return z.set(x); + } + } + m = x.$length; + n = m - (((_q = s / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) >> 0; + if (n <= 0) { + return $subslice(z, 0, 0); + } + z = z.make(n); + shrVU($convertSliceType(z, sliceType$2), $convertSliceType($subslice(x, (m - n >> 0)), sliceType$2), (_r = s % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))); + return z.norm(); + }; + $ptrType(nat).prototype.shr = function(...$args) { return this.$get().shr(...$args); }; + nat.prototype.setBit = function setBit(x, i, b) { + var _1, _q, _r, b, i, j, m, n, x, y, z; + z = this; + j = (((_q = i / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); + m = (y = ((_r = i % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0; + n = x.$length; + _1 = b; + if (_1 === (0)) { + z = z.make(n); + $copySlice(z, x); + if (j >= n) { + return z; + } + ((j < 0 || j >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + j] = ((((j < 0 || j >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + j]) & ~(m)) >>> 0)); + return z.norm(); + } else if (_1 === (1)) { + if (j >= n) { + z = z.make(j + 1 >> 0); + $subslice(z, n).clear(); + } else { + z = z.make(n); + } + $copySlice(z, x); + ((j < 0 || j >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + j] = ((((j < 0 || j >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + j]) | (m)) >>> 0)); + return z; + } + $panic(new $String("set bit is not 0 or 1")); + }; + $ptrType(nat).prototype.setBit = function(...$args) { return this.$get().setBit(...$args); }; + nat.prototype.bit = function bit(i) { + var _q, _r, i, j, x, y; + x = this; + j = (_q = i / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + if (j >= ((x.$length >>> 0))) { + return 0; + } + return ((((((y = ((_r = i % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]) >>> y) : 0) >>> 0) & 1) >>> 0) >>> 0)); + }; + $ptrType(nat).prototype.bit = function(...$args) { return this.$get().bit(...$args); }; + nat.prototype.sticky = function sticky(i) { + var _i, _q, _r, _ref, i, j, x, x$1, y; + x = this; + j = (_q = i / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + if (j >= ((x.$length >>> 0))) { + if (x.$length === 0) { + return 0; + } + return 1; + } + _ref = $subslice(x, 0, j); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x$1 === 0))) { + return 1; + } + _i++; + } + if (!((((y = ((32 - (_r = i % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y < 32 ? (((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]) << y) : 0) >>> 0) === 0))) { + return 1; + } + return 0; + }; + $ptrType(nat).prototype.sticky = function(...$args) { return this.$get().sticky(...$args); }; + nat.prototype.and = function and(x, y) { + var i, m, n, x, y, z; + z = this; + m = x.$length; + n = y.$length; + if (m > n) { + m = n; + } + z = z.make(m); + i = 0; + while (true) { + if (!(i < m)) { break; } + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) & ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])) >>> 0)); + i = i + (1) >> 0; + } + return z.norm(); + }; + $ptrType(nat).prototype.and = function(...$args) { return this.$get().and(...$args); }; + nat.prototype.andNot = function andNot(x, y) { + var i, m, n, x, y, z; + z = this; + m = x.$length; + n = y.$length; + if (n > m) { + n = m; + } + z = z.make(m); + i = 0; + while (true) { + if (!(i < n)) { break; } + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) & ~((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])) >>> 0)); + i = i + (1) >> 0; + } + $copySlice($subslice(z, n, m), $subslice(x, n, m)); + return z.norm(); + }; + $ptrType(nat).prototype.andNot = function(...$args) { return this.$get().andNot(...$args); }; + nat.prototype.or = function or(x, y) { + var _tmp, _tmp$1, i, m, n, s, x, y, z; + z = this; + m = x.$length; + n = y.$length; + s = x; + if (m < n) { + _tmp = m; + _tmp$1 = n; + n = _tmp; + m = _tmp$1; + s = y; + } + z = z.make(m); + i = 0; + while (true) { + if (!(i < n)) { break; } + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) | ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])) >>> 0)); + i = i + (1) >> 0; + } + $copySlice($subslice(z, n, m), $subslice(s, n, m)); + return z.norm(); + }; + $ptrType(nat).prototype.or = function(...$args) { return this.$get().or(...$args); }; + nat.prototype.xor = function xor(x, y) { + var _tmp, _tmp$1, i, m, n, s, x, y, z; + z = this; + m = x.$length; + n = y.$length; + s = x; + if (m < n) { + _tmp = m; + _tmp$1 = n; + n = _tmp; + m = _tmp$1; + s = y; + } + z = z.make(m); + i = 0; + while (true) { + if (!(i < n)) { break; } + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) ^ ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])) >>> 0)); + i = i + (1) >> 0; + } + $copySlice($subslice(z, n, m), $subslice(s, n, m)); + return z.norm(); + }; + $ptrType(nat).prototype.xor = function(...$args) { return this.$get().xor(...$args); }; + nat.prototype.random = function random(rand$1, limit, n) { + var {_1, _i, _i$1, _index, _r, _r$1, _r$2, _ref, _ref$1, bitLengthOfMSW, i, i$1, limit, mask, n, rand$1, y, z, $s, $r, $c} = $restore(this, {rand$1, limit, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (alias(z, limit)) { + z = nat.nil; + } + z = z.make(limit.$length); + bitLengthOfMSW = (((_r = n % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)); + if (bitLengthOfMSW === 0) { + bitLengthOfMSW = 32; + } + mask = (((((y = bitLengthOfMSW, y < 32 ? (1 << y) : 0) >>> 0)) - 1 >>> 0)); + /* while (true) { */ case 1: + _1 = 32; + /* */ if (_1 === (32)) { $s = 4; continue; } + /* */ if (_1 === (64)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (32)) { */ case 4: + _ref = z; + _i = 0; + /* while (true) { */ case 8: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; } + i = _i; + _r$1 = rand$1.Uint32(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((_r$1 >>> 0))); + _i++; + $s = 8; continue; + case 9: + $s = 7; continue; + /* } else if (_1 === (64)) { */ case 5: + _ref$1 = z; + _i$1 = 0; + /* while (true) { */ case 11: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 12; continue; } + i$1 = _i$1; + _r$2 = rand$1.Uint32(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ((i$1 < 0 || i$1 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i$1] = ((((_r$2 >>> 0)) | 0) >>> 0)); + _i$1++; + $s = 11; continue; + case 12: + $s = 7; continue; + /* } else { */ case 6: + $panic(new $String("unknown word size")); + /* } */ case 7: + case 3: + _index = limit.$length - 1 >> 0; + ((_index < 0 || _index >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + _index] = ((((_index < 0 || _index >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + _index]) & (mask)) >>> 0)); + if (z.cmp(limit) < 0) { + /* break; */ $s = 2; continue; + } + $s = 1; continue; + case 2: + $s = -1; return z.norm(); + /* */ } return; } var $f = {$blk: random, $c: true, $r, _1, _i, _i$1, _index, _r, _r$1, _r$2, _ref, _ref$1, bitLengthOfMSW, i, i$1, limit, mask, n, rand$1, y, z, $s};return $f; + }; + $ptrType(nat).prototype.random = function(...$args) { return this.$get().random(...$args); }; + nat.prototype.expNN = function expNN(x, y, m) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, i, j, j$1, m, q, r, shift, v, w, x, x$1, y, y$1, y$2, y$3, z, zz, $s, $r, $c} = $restore(this, {x, y, m}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (alias(z, x) || alias(z, y)) { + z = nat.nil; + } + if ((m.$length === 1) && ((0 >= m.$length ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + 0]) === 1)) { + $s = -1; return z.setWord(0); + } + if (y.$length === 0) { + $s = -1; return z.setWord(1); + } + /* */ if ((y.$length === 1) && ((0 >= y.$length ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + 0]) === 1) && !((m.$length === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((y.$length === 1) && ((0 >= y.$length ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + 0]) === 1) && !((m.$length === 0))) { */ case 1: + _r = (nat.nil).div(z, x, m); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + z = _tuple[1]; + $s = -1; return z; + /* } */ case 2: + if (!((m.$length === 0))) { + z = z.make(m.$length); + } + z = z.set(x); + /* */ if (x.cmp(natOne) > 0 && y.$length > 1 && m.$length > 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (x.cmp(natOne) > 0 && y.$length > 1 && m.$length > 0) { */ case 4: + /* */ if ((((0 >= m.$length ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + 0]) & 1) >>> 0) === 1) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((((0 >= m.$length ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + 0]) & 1) >>> 0) === 1) { */ case 6: + _r$1 = z.expNNMontgomery(x, y, m); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 9; case 9: return $24r; + /* } */ case 7: + _r$2 = z.expNNWindowed(x, y, m); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 11; case 11: return $24r$1; + /* } */ case 5: + v = (x$1 = y.$length - 1 >> 0, ((x$1 < 0 || x$1 >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + x$1])); + shift = nlz(v) + 1 >>> 0; + v = (y$1 = (shift), y$1 < 32 ? (v << y$1) : 0) >>> 0; + q = nat.nil; + w = 32 - ((shift >> 0)) >> 0; + _tmp = nat.nil; + _tmp$1 = nat.nil; + zz = _tmp; + r = _tmp$1; + j = 0; + /* while (true) { */ case 12: + /* if (!(j < w)) { break; } */ if(!(j < w)) { $s = 13; continue; } + _r$3 = zz.sqr(z); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + zz = _r$3; + _tmp$2 = z; + _tmp$3 = zz; + zz = _tmp$2; + z = _tmp$3; + /* */ if (!((((v & 2147483648) >>> 0) === 0))) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!((((v & 2147483648) >>> 0) === 0))) { */ case 15: + _r$4 = zz.mul(z, x); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + zz = _r$4; + _tmp$4 = z; + _tmp$5 = zz; + zz = _tmp$4; + z = _tmp$5; + /* } */ case 16: + /* */ if (!((m.$length === 0))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!((m.$length === 0))) { */ case 18: + _r$5 = zz.div(r, z, m); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = _r$5; + zz = _tuple$1[0]; + r = _tuple$1[1]; + _tmp$6 = q; + _tmp$7 = z; + _tmp$8 = zz; + _tmp$9 = r; + zz = _tmp$6; + r = _tmp$7; + q = _tmp$8; + z = _tmp$9; + /* } */ case 19: + v = (y$2 = (1), y$2 < 32 ? (v << y$2) : 0) >>> 0; + j = j + (1) >> 0; + $s = 12; continue; + case 13: + i = y.$length - 2 >> 0; + /* while (true) { */ case 21: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 22; continue; } + v = ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i]); + j$1 = 0; + /* while (true) { */ case 23: + /* if (!(j$1 < 32)) { break; } */ if(!(j$1 < 32)) { $s = 24; continue; } + _r$6 = zz.sqr(z); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + zz = _r$6; + _tmp$10 = z; + _tmp$11 = zz; + zz = _tmp$10; + z = _tmp$11; + /* */ if (!((((v & 2147483648) >>> 0) === 0))) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!((((v & 2147483648) >>> 0) === 0))) { */ case 26: + _r$7 = zz.mul(z, x); /* */ $s = 28; case 28: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + zz = _r$7; + _tmp$12 = z; + _tmp$13 = zz; + zz = _tmp$12; + z = _tmp$13; + /* } */ case 27: + /* */ if (!((m.$length === 0))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!((m.$length === 0))) { */ case 29: + _r$8 = zz.div(r, z, m); /* */ $s = 31; case 31: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$2 = _r$8; + zz = _tuple$2[0]; + r = _tuple$2[1]; + _tmp$14 = q; + _tmp$15 = z; + _tmp$16 = zz; + _tmp$17 = r; + zz = _tmp$14; + r = _tmp$15; + q = _tmp$16; + z = _tmp$17; + /* } */ case 30: + v = (y$3 = (1), y$3 < 32 ? (v << y$3) : 0) >>> 0; + j$1 = j$1 + (1) >> 0; + $s = 23; continue; + case 24: + i = i - (1) >> 0; + $s = 21; continue; + case 22: + $s = -1; return z.norm(); + /* */ } return; } var $f = {$blk: expNN, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, i, j, j$1, m, q, r, shift, v, w, x, x$1, y, y$1, y$2, y$3, z, zz, $s};return $f; + }; + $ptrType(nat).prototype.expNN = function(...$args) { return this.$get().expNN(...$args); }; + nat.prototype.expNNWindowed = function expNNWindowed(x, y, m) { + var {_q, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, i, i$1, j, m, p, p1, p2, powers, r, x, x$1, y, y$1, yi, z, zz, $s, $r, $c} = $restore(this, {x, y, m}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _tmp = nat.nil; + _tmp$1 = nat.nil; + zz = _tmp; + r = _tmp$1; + powers = arrayType$1.zero(); + powers[0] = natOne; + powers[1] = x; + i = 2; + /* while (true) { */ case 1: + /* if (!(i < 16)) { break; } */ if(!(i < 16)) { $s = 2; continue; } + _tmp$2 = $indexPtr(powers, (_q = i / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ptrType$3); + _tmp$3 = $indexPtr(powers, i, ptrType$3); + _tmp$4 = $indexPtr(powers, (i + 1 >> 0), ptrType$3); + p2 = _tmp$2; + p = _tmp$3; + p1 = _tmp$4; + _r = p.sqr(p2.$get()); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p.$set(_r); + _r$1 = zz.div(r, p.$get(), m); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + zz = _tuple[0]; + r = _tuple[1]; + _tmp$5 = r; + _tmp$6 = p.$get(); + p.$set(_tmp$5); + r = _tmp$6; + _r$2 = p1.mul(p.$get(), x); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + p1.$set(_r$2); + _r$3 = zz.div(r, p1.$get(), m); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + zz = _tuple$1[0]; + r = _tuple$1[1]; + _tmp$7 = r; + _tmp$8 = p1.$get(); + p1.$set(_tmp$7); + r = _tmp$8; + i = i + (2) >> 0; + $s = 1; continue; + case 2: + z = z.setWord(1); + i$1 = y.$length - 1 >> 0; + /* while (true) { */ case 7: + /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 8; continue; } + yi = ((i$1 < 0 || i$1 >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i$1]); + j = 0; + /* while (true) { */ case 9: + /* if (!(j < 32)) { break; } */ if(!(j < 32)) { $s = 10; continue; } + /* */ if (!((i$1 === (y.$length - 1 >> 0))) || !((j === 0))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!((i$1 === (y.$length - 1 >> 0))) || !((j === 0))) { */ case 11: + _r$4 = zz.sqr(z); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + zz = _r$4; + _tmp$9 = z; + _tmp$10 = zz; + zz = _tmp$9; + z = _tmp$10; + _r$5 = zz.div(r, z, m); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + zz = _tuple$2[0]; + r = _tuple$2[1]; + _tmp$11 = r; + _tmp$12 = z; + z = _tmp$11; + r = _tmp$12; + _r$6 = zz.sqr(z); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + zz = _r$6; + _tmp$13 = z; + _tmp$14 = zz; + zz = _tmp$13; + z = _tmp$14; + _r$7 = zz.div(r, z, m); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$3 = _r$7; + zz = _tuple$3[0]; + r = _tuple$3[1]; + _tmp$15 = r; + _tmp$16 = z; + z = _tmp$15; + r = _tmp$16; + _r$8 = zz.sqr(z); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + zz = _r$8; + _tmp$17 = z; + _tmp$18 = zz; + zz = _tmp$17; + z = _tmp$18; + _r$9 = zz.div(r, z, m); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$4 = _r$9; + zz = _tuple$4[0]; + r = _tuple$4[1]; + _tmp$19 = r; + _tmp$20 = z; + z = _tmp$19; + r = _tmp$20; + _r$10 = zz.sqr(z); /* */ $s = 19; case 19: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + zz = _r$10; + _tmp$21 = z; + _tmp$22 = zz; + zz = _tmp$21; + z = _tmp$22; + _r$11 = zz.div(r, z, m); /* */ $s = 20; case 20: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$5 = _r$11; + zz = _tuple$5[0]; + r = _tuple$5[1]; + _tmp$23 = r; + _tmp$24 = z; + z = _tmp$23; + r = _tmp$24; + /* } */ case 12: + _r$12 = zz.mul(z, (x$1 = yi >>> 28 >>> 0, ((x$1 < 0 || x$1 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[x$1]))); /* */ $s = 21; case 21: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + zz = _r$12; + _tmp$25 = z; + _tmp$26 = zz; + zz = _tmp$25; + z = _tmp$26; + _r$13 = zz.div(r, z, m); /* */ $s = 22; case 22: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _tuple$6 = _r$13; + zz = _tuple$6[0]; + r = _tuple$6[1]; + _tmp$27 = r; + _tmp$28 = z; + z = _tmp$27; + r = _tmp$28; + yi = (y$1 = (4), y$1 < 32 ? (yi << y$1) : 0) >>> 0; + j = j + (4) >> 0; + $s = 9; continue; + case 10: + i$1 = i$1 - (1) >> 0; + $s = 7; continue; + case 8: + $s = -1; return z.norm(); + /* */ } return; } var $f = {$blk: expNNWindowed, $c: true, $r, _q, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, i, i$1, j, m, p, p1, p2, powers, r, x, x$1, y, y$1, yi, z, zz, $s};return $f; + }; + $ptrType(nat).prototype.expNNWindowed = function(...$args) { return this.$get().expNNWindowed(...$args); }; + nat.prototype.expNNMontgomery = function expNNMontgomery(x, y, m) { + var {RR, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, i, i$1, i$2, j, k0, m, numWords, one, powers, rr, t, x, x$1, x$2, y, y$1, y$2, yi, z, zz, $s, $r, $c} = $restore(this, {x, y, m}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + numWords = m.$length; + /* */ if (x.$length > numWords) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.$length > numWords) { */ case 1: + _r = (nat.nil).div(nat.nil, x, m); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + x = _tuple[1]; + /* } */ case 2: + if (x.$length < numWords) { + rr = $makeSlice(nat, numWords); + $copySlice(rr, x); + x = rr; + } + k0 = 2 - (0 >= m.$length ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + 0]) >>> 0; + t = (0 >= m.$length ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + 0]) - 1 >>> 0; + i = 1; + while (true) { + if (!(i < 32)) { break; } + t = $imul(t, (t)) >>> 0; + k0 = $imul(k0, (((t + 1 >>> 0)))) >>> 0; + i = (y$1 = (1), y$1 < 32 ? (i << y$1) : 0) >> 0; + } + k0 = -k0 >>> 0; + RR = (nat.nil).setWord(1); + zz = (nat.nil).shl(RR, ((($imul(($imul(2, numWords)), 32)) >>> 0))); + _r$1 = (nat.nil).div(RR, zz, m); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + RR = _tuple$1[1]; + if (RR.$length < numWords) { + zz = zz.make(numWords); + $copySlice(zz, RR); + RR = zz; + } + one = $makeSlice(nat, numWords); + (0 >= one.$length ? ($throwRuntimeError("index out of range"), undefined) : one.$array[one.$offset + 0] = 1); + powers = arrayType$1.zero(); + powers[0] = powers[0].montgomery(one, RR, m, k0, numWords); + powers[1] = powers[1].montgomery(x, RR, m, k0, numWords); + i$1 = 2; + while (true) { + if (!(i$1 < 16)) { break; } + ((i$1 < 0 || i$1 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[i$1] = ((i$1 < 0 || i$1 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[i$1]).montgomery((x$1 = i$1 - 1 >> 0, ((x$1 < 0 || x$1 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[x$1])), powers[1], m, k0, numWords)); + i$1 = i$1 + (1) >> 0; + } + z = z.make(numWords); + $copySlice(z, powers[0]); + zz = zz.make(numWords); + i$2 = y.$length - 1 >> 0; + while (true) { + if (!(i$2 >= 0)) { break; } + yi = ((i$2 < 0 || i$2 >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i$2]); + j = 0; + while (true) { + if (!(j < 32)) { break; } + if (!((i$2 === (y.$length - 1 >> 0))) || !((j === 0))) { + zz = zz.montgomery(z, z, m, k0, numWords); + z = z.montgomery(zz, zz, m, k0, numWords); + zz = zz.montgomery(z, z, m, k0, numWords); + z = z.montgomery(zz, zz, m, k0, numWords); + } + zz = zz.montgomery(z, (x$2 = yi >>> 28 >>> 0, ((x$2 < 0 || x$2 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[x$2])), m, k0, numWords); + _tmp = zz; + _tmp$1 = z; + z = _tmp; + zz = _tmp$1; + yi = (y$2 = (4), y$2 < 32 ? (yi << y$2) : 0) >>> 0; + j = j + (4) >> 0; + } + i$2 = i$2 - (1) >> 0; + } + zz = zz.montgomery(z, one, m, k0, numWords); + /* */ if (zz.cmp(m) >= 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (zz.cmp(m) >= 0) { */ case 5: + _r$2 = zz.sub(zz, m); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + zz = _r$2; + /* */ if (zz.cmp(m) >= 0) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (zz.cmp(m) >= 0) { */ case 8: + _r$3 = (nat.nil).div(nat.nil, zz, m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$2 = _r$3; + zz = _tuple$2[1]; + /* } */ case 9: + /* } */ case 6: + $s = -1; return zz.norm(); + /* */ } return; } var $f = {$blk: expNNMontgomery, $c: true, $r, RR, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, i, i$1, i$2, j, k0, m, numWords, one, powers, rr, t, x, x$1, x$2, y, y$1, y$2, yi, z, zz, $s};return $f; + }; + $ptrType(nat).prototype.expNNMontgomery = function(...$args) { return this.$get().expNNMontgomery(...$args); }; + nat.prototype.bytes = function bytes$1(buf) { + var _i, _ref, buf, d, i, j, y, z; + i = 0; + z = this; + i = buf.$length; + _ref = z; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + j = 0; + while (true) { + if (!(j < 4)) { break; } + i = i - (1) >> 0; + if (i >= 0) { + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = ((d << 24 >>> 24))); + } else if (!((((d << 24 >>> 24)) === 0))) { + $panic(new $String("math/big: buffer too small to fit value")); + } + d = (y = (8), y < 32 ? (d >>> y) : 0) >>> 0; + j = j + (1) >> 0; + } + _i++; + } + if (i < 0) { + i = 0; + } + while (true) { + if (!(i < buf.$length && (((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i]) === 0))) { break; } + i = i + (1) >> 0; + } + return i; + }; + $ptrType(nat).prototype.bytes = function(...$args) { return this.$get().bytes(...$args); }; + bigEndianWord = function bigEndianWord$1(buf) { + var buf; + if (false) { + return (($clone(binary.BigEndian, binary.bigEndian).Uint64(buf).$low >>> 0)); + } + return (($clone(binary.BigEndian, binary.bigEndian).Uint32(buf) >>> 0)); + }; + nat.prototype.setBytes = function setBytes(buf) { + var _q, buf, d, i, k, s, x, x$1, y, z; + z = this; + z = z.make((_q = (((buf.$length + 4 >> 0) - 1 >> 0)) / 4, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + i = buf.$length; + k = 0; + while (true) { + if (!(i >= 4)) { break; } + ((k < 0 || k >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + k] = bigEndianWord($subslice(buf, (i - 4 >> 0), i))); + i = i - (4) >> 0; + k = k + (1) >> 0; + } + if (i > 0) { + d = 0; + s = 0; + while (true) { + if (!(i > 0)) { break; } + d = (d | (((y = s, y < 32 ? ((((x = i - 1 >> 0, ((x < 0 || x >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + x])) >>> 0)) << y) : 0) >>> 0))) >>> 0; + i = i - (1) >> 0; + s = s + (8) >>> 0; + } + (x$1 = z.$length - 1 >> 0, ((x$1 < 0 || x$1 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$1] = d)); + } + return z.norm(); + }; + $ptrType(nat).prototype.setBytes = function(...$args) { return this.$get().setBytes(...$args); }; + nat.prototype.sqrt = function sqrt(x) { + var {_q, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, n, x, z, z1, z2, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (x.cmp(natOne) <= 0) { + $s = -1; return z.set(x); + } + if (alias(z, x)) { + z = nat.nil; + } + _tmp = nat.nil; + _tmp$1 = nat.nil; + z1 = _tmp; + z2 = _tmp$1; + z1 = z; + z1 = z1.setUint64(new $Uint64(0, 1)); + z1 = z1.shl(z1, (_q = (((x.bitLen() + 1 >> 0) >>> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"))); + n = 0; + /* while (true) { */ case 1: + _r = z2.div(nat.nil, x, z1); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + z2 = _tuple[0]; + _r$1 = z2.add(z2, z1); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z2 = _r$1; + z2 = z2.shr(z2, 1); + if (z2.cmp(z1) >= 0) { + if ((n & 1) === 0) { + $s = -1; return z1; + } + $s = -1; return z.set(z1); + } + _tmp$2 = z2; + _tmp$3 = z1; + z1 = _tmp$2; + z2 = _tmp$3; + n = n + (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return nat.nil; + /* */ } return; } var $f = {$blk: sqrt, $c: true, $r, _q, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, n, x, z, z1, z2, $s};return $f; + }; + $ptrType(nat).prototype.sqrt = function(...$args) { return this.$get().sqrt(...$args); }; + $ptrType(Int).prototype.GobEncode = function GobEncode$1() { + var b, buf, i, x; + x = this; + if (x === ptrType$2.nil) { + return [sliceType$1.nil, $ifaceNil]; + } + buf = $makeSlice(sliceType$1, (1 + ($imul(x.abs.$length, 4)) >> 0)); + i = x.abs.bytes(buf) - 1 >> 0; + b = 2; + if (x.neg) { + b = (b | (1)) >>> 0; + } + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = b); + return [$subslice(buf, i), $ifaceNil]; + }; + $ptrType(Int).prototype.GobDecode = function GobDecode$1(buf) { + var {$24r, _r, b, buf, z, $s, $r, $c} = $restore(this, {buf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (buf.$length === 0) { + Int.copy(z, new Int.ptr(false, nat.nil)); + $s = -1; return $ifaceNil; + } + b = (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]); + /* */ if (!(((b >>> 1 << 24 >>> 24) === 1))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(((b >>> 1 << 24 >>> 24) === 1))) { */ case 1: + _r = fmt.Errorf("Int.GobDecode: encoding version %d not supported", new sliceType([new $Uint8((b >>> 1 << 24 >>> 24))])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + z.neg = !((((b & 1) >>> 0) === 0)); + z.abs = z.abs.setBytes($subslice(buf, 1)); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: GobDecode$1, $c: true, $r, $24r, _r, b, buf, z, $s};return $f; + }; + $ptrType(Int).prototype.MarshalText = function MarshalText$1() { + var {$24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, err, text, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + text = sliceType$1.nil; + err = $ifaceNil; + x = this; + if (x === ptrType$2.nil) { + _tmp = (new sliceType$1($stringToBytes(""))); + _tmp$1 = $ifaceNil; + text = _tmp; + err = _tmp$1; + $s = -1; return [text, err]; + } + _r = x.abs.itoa(x.neg, 10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$2 = _r; + _tmp$3 = $ifaceNil; + text = _tmp$2; + err = _tmp$3; + $24r = [text, err]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: MarshalText$1, $c: true, $r, $24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, err, text, x, $s};return $f; + }; + $ptrType(Int).prototype.UnmarshalText = function UnmarshalText$1(text) { + var {$24r, _r, _r$1, _tuple, ok, text, z, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = z.setFromScanner(bytes.NewReader(text), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ok = _tuple[1]; + /* */ if (!ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!ok) { */ case 2: + _r$1 = fmt.Errorf("math/big: cannot unmarshal %q into a *big.Int", new sliceType([text])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 5; case 5: return $24r; + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: UnmarshalText$1, $c: true, $r, $24r, _r, _r$1, _tuple, ok, text, z, $s};return $f; + }; + $ptrType(Int).prototype.MarshalJSON = function MarshalJSON() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (x === ptrType$2.nil) { + $s = -1; return [(new sliceType$1($stringToBytes("null"))), $ifaceNil]; + } + _r = x.abs.itoa(x.neg, 10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = [_r, $ifaceNil]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: MarshalJSON, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(Int).prototype.UnmarshalJSON = function UnmarshalJSON(text) { + var {$24r, _r, text, z, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (($bytesToString(text)) === "null") { + $s = -1; return $ifaceNil; + } + _r = z.UnmarshalText(text); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: UnmarshalJSON, $c: true, $r, $24r, _r, text, z, $s};return $f; + }; + $ptrType(Int).prototype.Text = function Text(base) { + var {$24r, _r, base, x, $s, $r, $c} = $restore(this, {base}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (x === ptrType$2.nil) { + $s = -1; return ""; + } + _r = x.abs.itoa(x.neg, base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = ($bytesToString(_r)); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Text, $c: true, $r, $24r, _r, base, x, $s};return $f; + }; + $ptrType(Int).prototype.Append = function Append(buf, base) { + var {$24r, _arg, _arg$1, _r, base, buf, x, $s, $r, $c} = $restore(this, {buf, base}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (x === ptrType$2.nil) { + $s = -1; return $appendSlice(buf, ""); + } + _arg = buf; + _r = x.abs.itoa(x.neg, base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $24r = $appendSlice(_arg, _arg$1); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Append, $c: true, $r, $24r, _arg, _arg$1, _r, base, buf, x, $s};return $f; + }; + $ptrType(Int).prototype.String = function String$2() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.Text(10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$2, $c: true, $r, $24r, _r, x, $s};return $f; + }; + writeMultiple = function writeMultiple$1(s, text, count) { + var {_r, b, count, s, text, $s, $r, $c} = $restore(this, {s, text, count}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (text.length > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (text.length > 0) { */ case 1: + b = (new sliceType$1($stringToBytes(text))); + /* while (true) { */ case 3: + /* if (!(count > 0)) { break; } */ if(!(count > 0)) { $s = 4; continue; } + _r = s.Write(b); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + count = count - (1) >> 0; + $s = 3; continue; + case 4: + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: writeMultiple$1, $c: true, $r, _r, b, count, s, text, $s};return $f; + }; + $ptrType(Int).prototype.Format = function Format(s, ch) { + var {_1, _2, _arg, _arg$1, _arg$2, _i, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, base, ch, d, d$1, digits, i, left, length, precision, precisionSet, prefix, right, s, sign, width, widthSet, x, zeros, $s, $r, $c} = $restore(this, {s, ch}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + base = 0; + _1 = ch; + /* */ if (_1 === (98)) { $s = 2; continue; } + /* */ if ((_1 === (111)) || (_1 === (79))) { $s = 3; continue; } + /* */ if ((_1 === (100)) || (_1 === (115)) || (_1 === (118))) { $s = 4; continue; } + /* */ if ((_1 === (120)) || (_1 === (88))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (98)) { */ case 2: + base = 2; + $s = 7; continue; + /* } else if ((_1 === (111)) || (_1 === (79))) { */ case 3: + base = 8; + $s = 7; continue; + /* } else if ((_1 === (100)) || (_1 === (115)) || (_1 === (118))) { */ case 4: + base = 10; + $s = 7; continue; + /* } else if ((_1 === (120)) || (_1 === (88))) { */ case 5: + base = 16; + $s = 7; continue; + /* } else { */ case 6: + _arg = s; + _arg$1 = new $Int32(ch); + _r = x.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$2 = new $String(_r); + _r$1 = fmt.Fprintf(_arg, "%%!%c(big.Int=%s)", new sliceType([_arg$1, _arg$2])); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* } */ case 7: + case 1: + /* */ if (x === ptrType$2.nil) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (x === ptrType$2.nil) { */ case 10: + _r$2 = fmt.Fprint(s, new sliceType([new $String("")])); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return; + /* } */ case 11: + sign = ""; + /* */ if (x.neg) { $s = 14; continue; } + _r$3 = s.Flag(43); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 15; continue; } + _r$4 = s.Flag(32); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (x.neg) { */ case 14: + sign = "-"; + $s = 17; continue; + /* } else if (_r$3) { */ case 15: + sign = "+"; + $s = 17; continue; + /* } else if (_r$4) { */ case 16: + sign = " "; + /* } */ case 17: + case 13: + prefix = ""; + _r$5 = s.Flag(35); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_r$5) { */ case 20: + _2 = ch; + if (_2 === (98)) { + prefix = "0b"; + } else if (_2 === (111)) { + prefix = "0"; + } else if (_2 === (120)) { + prefix = "0x"; + } else if (_2 === (88)) { + prefix = "0X"; + } + /* } */ case 21: + if (ch === 79) { + prefix = "0o"; + } + _r$6 = x.abs.utoa(base); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + digits = _r$6; + if (ch === 88) { + _ref = digits; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (97 <= d && d <= 122) { + ((i < 0 || i >= digits.$length) ? ($throwRuntimeError("index out of range"), undefined) : digits.$array[digits.$offset + i] = (65 + ((d - 97 << 24 >>> 24)) << 24 >>> 24)); + } + _i++; + } + } + left = 0; + zeros = 0; + right = 0; + _r$7 = s.Precision(); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple = _r$7; + precision = _tuple[0]; + precisionSet = _tuple[1]; + if (precisionSet) { + if (digits.$length < precision) { + zeros = precision - digits.$length >> 0; + } else if ((digits.$length === 1) && ((0 >= digits.$length ? ($throwRuntimeError("index out of range"), undefined) : digits.$array[digits.$offset + 0]) === 48) && (precision === 0)) { + $s = -1; return; + } + } + length = ((sign.length + prefix.length >> 0) + zeros >> 0) + digits.$length >> 0; + _r$8 = s.Width(); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$1 = _r$8; + width = _tuple$1[0]; + widthSet = _tuple$1[1]; + /* */ if (widthSet && length < width) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (widthSet && length < width) { */ case 26: + d$1 = width - length >> 0; + _r$9 = s.Flag(45); /* */ $s = 33; case 33: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9) { $s = 29; continue; } + _r$10 = s.Flag(48); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* */ if (_r$10 && !precisionSet) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (_r$9) { */ case 29: + right = d$1; + $s = 32; continue; + /* } else if (_r$10 && !precisionSet) { */ case 30: + zeros = d$1; + $s = 32; continue; + /* } else { */ case 31: + left = d$1; + /* } */ case 32: + case 28: + /* } */ case 27: + $r = writeMultiple(s, " ", left); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = writeMultiple(s, sign, 1); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = writeMultiple(s, prefix, 1); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = writeMultiple(s, "0", zeros); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$11 = s.Write(digits); /* */ $s = 39; case 39: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11; + $r = writeMultiple(s, " ", right); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Format, $c: true, $r, _1, _2, _arg, _arg$1, _arg$2, _i, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, base, ch, d, d$1, digits, i, left, length, precision, precisionSet, prefix, right, s, sign, width, widthSet, x, zeros, $s};return $f; + }; + $ptrType(Int).prototype.scan = function scan$1(r, base) { + var {_r, _r$1, _tuple, _tuple$1, base, err, neg, r, z, $s, $r, $c} = $restore(this, {r, base}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = scanSign(r); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + neg = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$2.nil, 0, err]; + } + _r$1 = z.abs.scan(r, base, false); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + z.abs = _tuple$1[0]; + base = _tuple$1[1]; + err = _tuple$1[3]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$2.nil, base, err]; + } + z.neg = z.abs.$length > 0 && neg; + $s = -1; return [z, base, $ifaceNil]; + /* */ } return; } var $f = {$blk: scan$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, base, err, neg, r, z, $s};return $f; + }; + scanSign = function scanSign$1(r) { + var {_1, _r, _r$1, _tmp, _tmp$1, _tuple, ch, err, neg, r, $s, $r, $c} = $restore(this, {r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + neg = false; + err = $ifaceNil; + ch = 0; + _r = r.ReadByte(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ch = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = false; + _tmp$1 = err; + neg = _tmp; + err = _tmp$1; + $s = -1; return [neg, err]; + } + _1 = ch; + /* */ if (_1 === (45)) { $s = 3; continue; } + /* */ if (_1 === (43)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (45)) { */ case 3: + neg = true; + $s = 6; continue; + /* } else if (_1 === (43)) { */ case 4: + $s = 6; continue; + /* } else { */ case 5: + _r$1 = r.UnreadByte(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 6: + case 2: + $s = -1; return [neg, err]; + /* */ } return; } var $f = {$blk: scanSign$1, $c: true, $r, _1, _r, _r$1, _tmp, _tmp$1, _tuple, ch, err, neg, r, $s};return $f; + }; + $ptrType(byteReader).prototype.ReadByte = function ReadByte() { + var {_r, _r$1, _tuple, ch, err, r, size, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.ScanState.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ch = _tuple[0]; + size = _tuple[1]; + err = _tuple[2]; + /* */ if (!((size === 1)) && $interfaceIsEqual(err, $ifaceNil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((size === 1)) && $interfaceIsEqual(err, $ifaceNil)) { */ case 2: + _r$1 = fmt.Errorf("invalid rune %#U", new sliceType([new $Int32(ch)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + /* } */ case 3: + $s = -1; return [((ch << 24 >>> 24)), err]; + /* */ } return; } var $f = {$blk: ReadByte, $c: true, $r, _r, _r$1, _tuple, ch, err, r, size, $s};return $f; + }; + byteReader.prototype.ReadByte = function(...$args) { return this.$val.ReadByte(...$args); }; + $ptrType(byteReader).prototype.UnreadByte = function UnreadByte() { + var {$24r, _r, r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _r = r.ScanState.UnreadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: UnreadByte, $c: true, $r, $24r, _r, r, $s};return $f; + }; + byteReader.prototype.UnreadByte = function(...$args) { return this.$val.UnreadByte(...$args); }; + $ptrType(Int).prototype.Scan = function Scan$1(s, ch) { + var {_1, _r, _tuple, base, ch, err, s, x, z, $s, $r, $c} = $restore(this, {s, ch}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + $r = s.SkipSpace(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + base = 0; + _1 = ch; + if (_1 === (98)) { + base = 2; + } else if (_1 === (111)) { + base = 8; + } else if (_1 === (100)) { + base = 10; + } else if ((_1 === (120)) || (_1 === (88))) { + base = 16; + } else if ((_1 === (115)) || (_1 === (118))) { + } else { + $s = -1; return errors.New("Int.Scan: invalid verb"); + } + _r = z.scan((x = new byteReader.ptr(s), new x.constructor.elem(x)), base); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[2]; + $s = -1; return err; + /* */ } return; } var $f = {$blk: Scan$1, $c: true, $r, _1, _r, _tuple, base, ch, err, s, x, z, $s};return $f; + }; + $ptrType(Int).prototype.Sign = function Sign$1() { + var x; + x = this; + if (x.abs.$length === 0) { + return 0; + } + if (x.neg) { + return -1; + } + return 1; + }; + $ptrType(Int).prototype.SetInt64 = function SetInt64$1(x) { + var neg, x, z; + z = this; + neg = false; + if ((x.$high < 0 || (x.$high === 0 && x.$low < 0))) { + neg = true; + x = new $Int64(-x.$high, -x.$low); + } + z.abs = z.abs.setUint64((new $Uint64(x.$high, x.$low))); + z.neg = neg; + return z; + }; + $ptrType(Int).prototype.SetUint64 = function SetUint64$1(x) { + var x, z; + z = this; + z.abs = z.abs.setUint64(x); + z.neg = false; + return z; + }; + NewInt = function NewInt$1(x) { + var x; + return new Int.ptr(false, nat.nil).SetInt64(x); + }; + $pkg.NewInt = NewInt; + $ptrType(Int).prototype.Set = function Set$1(x) { + var x, z; + z = this; + if (!(z === x)) { + z.abs = z.abs.set(x.abs); + z.neg = x.neg; + } + return z; + }; + $ptrType(Int).prototype.Bits = function Bits() { + var x; + x = this; + return $convertSliceType(x.abs, sliceType$2); + }; + $ptrType(Int).prototype.SetBits = function SetBits(abs) { + var abs, z; + z = this; + z.abs = ($convertSliceType(abs, nat)).norm(); + z.neg = false; + return z; + }; + $ptrType(Int).prototype.Abs = function Abs$1(x) { + var x, z; + z = this; + z.Set(x); + z.neg = false; + return z; + }; + $ptrType(Int).prototype.Neg = function Neg$1(x) { + var x, z; + z = this; + z.Set(x); + z.neg = z.abs.$length > 0 && !z.neg; + return z; + }; + $ptrType(Int).prototype.Add = function Add$1(x, y) { + var {_r, _r$1, _r$2, neg, x, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + neg = x.neg; + /* */ if (x.neg === y.neg) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.neg === y.neg) { */ case 1: + _r = z.abs.add(x.abs, y.abs); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.abs = _r; + $s = 3; continue; + /* } else { */ case 2: + /* */ if (x.abs.cmp(y.abs) >= 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (x.abs.cmp(y.abs) >= 0) { */ case 5: + _r$1 = z.abs.sub(x.abs, y.abs); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.abs = _r$1; + $s = 7; continue; + /* } else { */ case 6: + neg = !neg; + _r$2 = z.abs.sub(y.abs, x.abs); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + z.abs = _r$2; + /* } */ case 7: + /* } */ case 3: + z.neg = z.abs.$length > 0 && neg; + $s = -1; return z; + /* */ } return; } var $f = {$blk: Add$1, $c: true, $r, _r, _r$1, _r$2, neg, x, y, z, $s};return $f; + }; + $ptrType(Int).prototype.Sub = function Sub$1(x, y) { + var {_r, _r$1, _r$2, neg, x, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + neg = x.neg; + /* */ if (!(x.neg === y.neg)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(x.neg === y.neg)) { */ case 1: + _r = z.abs.add(x.abs, y.abs); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.abs = _r; + $s = 3; continue; + /* } else { */ case 2: + /* */ if (x.abs.cmp(y.abs) >= 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (x.abs.cmp(y.abs) >= 0) { */ case 5: + _r$1 = z.abs.sub(x.abs, y.abs); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.abs = _r$1; + $s = 7; continue; + /* } else { */ case 6: + neg = !neg; + _r$2 = z.abs.sub(y.abs, x.abs); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + z.abs = _r$2; + /* } */ case 7: + /* } */ case 3: + z.neg = z.abs.$length > 0 && neg; + $s = -1; return z; + /* */ } return; } var $f = {$blk: Sub$1, $c: true, $r, _r, _r$1, _r$2, neg, x, y, z, $s};return $f; + }; + $ptrType(Int).prototype.Mul = function Mul$1(x, y) { + var {_r, _r$1, x, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (x === y) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x === y) { */ case 1: + _r = z.abs.sqr(x.abs); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.abs = _r; + z.neg = false; + $s = -1; return z; + /* } */ case 2: + _r$1 = z.abs.mul(x.abs, y.abs); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.abs = _r$1; + z.neg = z.abs.$length > 0 && !(x.neg === y.neg); + $s = -1; return z; + /* */ } return; } var $f = {$blk: Mul$1, $c: true, $r, _r, _r$1, x, y, z, $s};return $f; + }; + $ptrType(Int).prototype.MulRange = function MulRange(a, b) { + var {_r, _tmp, _tmp$1, a, b, neg, x, x$1, z, $s, $r, $c} = $restore(this, {a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if ((a.$high > b.$high || (a.$high === b.$high && a.$low > b.$low))) { + $s = -1; return z.SetInt64(new $Int64(0, 1)); + } else if ((a.$high < 0 || (a.$high === 0 && a.$low <= 0)) && (b.$high > 0 || (b.$high === 0 && b.$low >= 0))) { + $s = -1; return z.SetInt64(new $Int64(0, 0)); + } + neg = false; + if ((a.$high < 0 || (a.$high === 0 && a.$low < 0))) { + neg = (x = (x$1 = new $Int64(b.$high - a.$high, b.$low - a.$low), new $Int64(x$1.$high & 0, (x$1.$low & 1) >>> 0)), (x.$high === 0 && x.$low === 0)); + _tmp = new $Int64(-b.$high, -b.$low); + _tmp$1 = new $Int64(-a.$high, -a.$low); + a = _tmp; + b = _tmp$1; + } + _r = z.abs.mulRange((new $Uint64(a.$high, a.$low)), (new $Uint64(b.$high, b.$low))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.abs = _r; + z.neg = neg; + $s = -1; return z; + /* */ } return; } var $f = {$blk: MulRange, $c: true, $r, _r, _tmp, _tmp$1, a, b, neg, x, x$1, z, $s};return $f; + }; + $ptrType(Int).prototype.Binomial = function Binomial(n, k) { + var {$24r, _r, _r$1, _r$2, _tmp, _tmp$1, a, b, k, n, x, x$1, z, $s, $r, $c} = $restore(this, {n, k}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = [a]; + b = [b]; + z = this; + if ((x = $div64(n, new $Int64(0, 2), false), (x.$high < k.$high || (x.$high === k.$high && x.$low < k.$low))) && (k.$high < n.$high || (k.$high === n.$high && k.$low <= n.$low))) { + k = new $Int64(n.$high - k.$high, n.$low - k.$low); + } + _tmp = new Int.ptr(false, nat.nil); + _tmp$1 = new Int.ptr(false, nat.nil); + a[0] = $clone(_tmp, Int); + b[0] = $clone(_tmp$1, Int); + _r = a[0].MulRange((x$1 = new $Int64(n.$high - k.$high, n.$low - k.$low), new $Int64(x$1.$high + 0, x$1.$low + 1)), n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = b[0].MulRange(new $Int64(0, 1), k); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = z.Quo(a[0], b[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: Binomial, $c: true, $r, $24r, _r, _r$1, _r$2, _tmp, _tmp$1, a, b, k, n, x, x$1, z, $s};return $f; + }; + $ptrType(Int).prototype.Quo = function Quo$1(x, y) { + var {_r, _tuple, x, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = z.abs.div(nat.nil, x.abs, y.abs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + z.abs = _tuple[0]; + z.neg = z.abs.$length > 0 && !(x.neg === y.neg); + $s = -1; return z; + /* */ } return; } var $f = {$blk: Quo$1, $c: true, $r, _r, _tuple, x, y, z, $s};return $f; + }; + $ptrType(Int).prototype.Rem = function Rem(x, y) { + var {_r, _tuple, x, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = (nat.nil).div(z.abs, x.abs, y.abs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + z.abs = _tuple[1]; + z.neg = z.abs.$length > 0 && x.neg; + $s = -1; return z; + /* */ } return; } var $f = {$blk: Rem, $c: true, $r, _r, _tuple, x, y, z, $s};return $f; + }; + $ptrType(Int).prototype.QuoRem = function QuoRem(x, y, r) { + var {_r, _tmp, _tmp$1, _tuple, r, x, y, z, $s, $r, $c} = $restore(this, {x, y, r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = z.abs.div(r.abs, x.abs, y.abs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + z.abs = _tuple[0]; + r.abs = _tuple[1]; + _tmp = z.abs.$length > 0 && !(x.neg === y.neg); + _tmp$1 = r.abs.$length > 0 && x.neg; + z.neg = _tmp; + r.neg = _tmp$1; + $s = -1; return [z, r]; + /* */ } return; } var $f = {$blk: QuoRem, $c: true, $r, _r, _tmp, _tmp$1, _tuple, r, x, y, z, $s};return $f; + }; + $ptrType(Int).prototype.Div = function Div(x, y) { + var {_r, _r$1, _r$2, r, x, y, y_neg, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = [r]; + z = this; + y_neg = y.neg; + r[0] = new Int.ptr(false, nat.nil); + _r = z.QuoRem(x, y, r[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* */ if (r[0].neg) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (r[0].neg) { */ case 2: + /* */ if (y_neg) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (y_neg) { */ case 4: + _r$1 = z.Add(z, intOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = 6; continue; + /* } else { */ case 5: + _r$2 = z.Sub(z, intOne); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 6: + /* } */ case 3: + $s = -1; return z; + /* */ } return; } var $f = {$blk: Div, $c: true, $r, _r, _r$1, _r$2, r, x, y, y_neg, z, $s};return $f; + }; + $ptrType(Int).prototype.Mod = function Mod(x, y) { + var {_r, _r$1, _r$2, q, x, y, y0, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + y0 = y; + if (z === y || alias(z.abs, y.abs)) { + y0 = new Int.ptr(false, nat.nil).Set(y); + } + q = new Int.ptr(false, nat.nil); + _r = q.QuoRem(x, y, z); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* */ if (z.neg) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (z.neg) { */ case 2: + /* */ if (y0.neg) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (y0.neg) { */ case 4: + _r$1 = z.Sub(z, y0); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = 6; continue; + /* } else { */ case 5: + _r$2 = z.Add(z, y0); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 6: + /* } */ case 3: + $s = -1; return z; + /* */ } return; } var $f = {$blk: Mod, $c: true, $r, _r, _r$1, _r$2, q, x, y, y0, z, $s};return $f; + }; + $ptrType(Int).prototype.DivMod = function DivMod(x, y, m) { + var {_r, _r$1, _r$2, _r$3, _r$4, m, x, y, y0, z, $s, $r, $c} = $restore(this, {x, y, m}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + y0 = y; + if (z === y || alias(z.abs, y.abs)) { + y0 = new Int.ptr(false, nat.nil).Set(y); + } + _r = z.QuoRem(x, y, m); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* */ if (m.neg) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (m.neg) { */ case 2: + /* */ if (y0.neg) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (y0.neg) { */ case 4: + _r$1 = z.Add(z, intOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = m.Sub(m, y0); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = 6; continue; + /* } else { */ case 5: + _r$3 = z.Sub(z, intOne); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _r$4 = m.Add(m, y0); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + /* } */ case 6: + /* } */ case 3: + $s = -1; return [z, m]; + /* */ } return; } var $f = {$blk: DivMod, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, m, x, y, y0, z, $s};return $f; + }; + $ptrType(Int).prototype.Cmp = function Cmp$1(y) { + var r, x, y; + r = 0; + x = this; + if (x === y) { + } else if (x.neg === y.neg) { + r = x.abs.cmp(y.abs); + if (x.neg) { + r = -r; + } + } else if (x.neg) { + r = -1; + } else { + r = 1; + } + return r; + }; + $ptrType(Int).prototype.CmpAbs = function CmpAbs(y) { + var x, y; + x = this; + return x.abs.cmp(y.abs); + }; + low32 = function low32$1(x) { + var x; + if (x.$length === 0) { + return 0; + } + return (((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]) >>> 0)); + }; + low64 = function low64$1(x) { + var v, x, x$1; + if (x.$length === 0) { + return new $Uint64(0, 0); + } + v = (new $Uint64(0, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); + if (true && x.$length > 1) { + return (x$1 = $shiftLeft64((new $Uint64(0, (1 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 1]))), 32), new $Uint64(x$1.$high | v.$high, (x$1.$low | v.$low) >>> 0)); + } + return v; + }; + $ptrType(Int).prototype.Int64 = function Int64() { + var v, x, x$1; + x = this; + v = ((x$1 = low64(x.abs), new $Int64(x$1.$high, x$1.$low))); + if (x.neg) { + v = new $Int64(-v.$high, -v.$low); + } + return v; + }; + $ptrType(Int).prototype.Uint64 = function Uint64() { + var x; + x = this; + return low64(x.abs); + }; + $ptrType(Int).prototype.IsInt64 = function IsInt64() { + var w, x, x$1, x$2; + x = this; + if (x.abs.$length <= 2) { + w = ((x$1 = low64(x.abs), new $Int64(x$1.$high, x$1.$low))); + return (w.$high > 0 || (w.$high === 0 && w.$low >= 0)) || x.neg && (x$2 = new $Int64(-w.$high, -w.$low), (w.$high === x$2.$high && w.$low === x$2.$low)); + } + return false; + }; + $ptrType(Int).prototype.IsUint64 = function IsUint64() { + var x; + x = this; + return !x.neg && x.abs.$length <= 2; + }; + $ptrType(Int).prototype.SetString = function SetString$1(s, base) { + var {$24r, _r, base, s, z, $s, $r, $c} = $restore(this, {s, base}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = z.setFromScanner(strings.NewReader(s), base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: SetString$1, $c: true, $r, $24r, _r, base, s, z, $s};return $f; + }; + $ptrType(Int).prototype.setFromScanner = function setFromScanner(r, base) { + var {_r, _r$1, _tuple, _tuple$1, base, err, err$1, r, z, $s, $r, $c} = $restore(this, {r, base}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = z.scan(r, base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$2.nil, false]; + } + _r$1 = r.ReadByte(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + err$1 = _tuple$1[1]; + if (!($interfaceIsEqual(err$1, io.EOF))) { + $s = -1; return [ptrType$2.nil, false]; + } + $s = -1; return [z, true]; + /* */ } return; } var $f = {$blk: setFromScanner, $c: true, $r, _r, _r$1, _tuple, _tuple$1, base, err, err$1, r, z, $s};return $f; + }; + $ptrType(Int).prototype.SetBytes = function SetBytes(buf) { + var buf, z; + z = this; + z.abs = z.abs.setBytes(buf); + z.neg = false; + return z; + }; + $ptrType(Int).prototype.Bytes = function Bytes() { + var buf, x; + x = this; + buf = $makeSlice(sliceType$1, ($imul(x.abs.$length, 4))); + return $subslice(buf, x.abs.bytes(buf)); + }; + $ptrType(Int).prototype.FillBytes = function FillBytes(buf) { + var _i, _ref, buf, i, x; + x = this; + _ref = buf; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 0); + _i++; + } + x.abs.bytes(buf); + return buf; + }; + $ptrType(Int).prototype.BitLen = function BitLen() { + var x; + x = this; + return x.abs.bitLen(); + }; + $ptrType(Int).prototype.TrailingZeroBits = function TrailingZeroBits() { + var x; + x = this; + return x.abs.trailingZeroBits(); + }; + $ptrType(Int).prototype.Exp = function Exp(x, y, m) { + var {_r, _r$1, _r$2, inverse, m, mWords, x, xWords, y, yWords, z, $s, $r, $c} = $restore(this, {x, y, m}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + xWords = x.abs; + /* */ if (y.neg) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (y.neg) { */ case 1: + if (m === ptrType$2.nil || (m.abs.$length === 0)) { + $s = -1; return z.SetInt64(new $Int64(0, 1)); + } + _r = new Int.ptr(false, nat.nil).ModInverse(x, m); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + inverse = _r; + if (inverse === ptrType$2.nil) { + $s = -1; return ptrType$2.nil; + } + xWords = inverse.abs; + /* } */ case 2: + yWords = y.abs; + mWords = nat.nil; + if (!(m === ptrType$2.nil)) { + if (z === m || alias(z.abs, m.abs)) { + m = new Int.ptr(false, nat.nil).Set(m); + } + mWords = m.abs; + } + _r$1 = z.abs.expNN(xWords, yWords, mWords); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.abs = _r$1; + z.neg = z.abs.$length > 0 && x.neg && yWords.$length > 0 && ((((0 >= yWords.$length ? ($throwRuntimeError("index out of range"), undefined) : yWords.$array[yWords.$offset + 0]) & 1) >>> 0) === 1); + /* */ if (z.neg && mWords.$length > 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (z.neg && mWords.$length > 0) { */ case 5: + _r$2 = z.abs.sub(mWords, z.abs); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + z.abs = _r$2; + z.neg = false; + /* } */ case 6: + $s = -1; return z; + /* */ } return; } var $f = {$blk: Exp, $c: true, $r, _r, _r$1, _r$2, inverse, m, mWords, x, xWords, y, yWords, z, $s};return $f; + }; + $ptrType(Int).prototype.GCD = function GCD(x, y, a, b) { + var {$24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, lenA, lenB, negA, negB, x, y, z, $s, $r, $c} = $restore(this, {x, y, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if ((a.abs.$length === 0) || (b.abs.$length === 0)) { + _tmp = a.abs.$length; + _tmp$1 = b.abs.$length; + _tmp$2 = a.neg; + _tmp$3 = b.neg; + lenA = _tmp; + lenB = _tmp$1; + negA = _tmp$2; + negB = _tmp$3; + if (lenA === 0) { + z.Set(b); + } else { + z.Set(a); + } + z.neg = false; + if (!(x === ptrType$2.nil)) { + if (lenA === 0) { + x.SetUint64(new $Uint64(0, 0)); + } else { + x.SetUint64(new $Uint64(0, 1)); + x.neg = negA; + } + } + if (!(y === ptrType$2.nil)) { + if (lenB === 0) { + y.SetUint64(new $Uint64(0, 0)); + } else { + y.SetUint64(new $Uint64(0, 1)); + y.neg = negB; + } + } + $s = -1; return z; + } + _r = z.lehmerGCD(x, y, a, b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: GCD, $c: true, $r, $24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, lenA, lenB, negA, negB, x, y, z, $s};return $f; + }; + lehmerSimulate = function lehmerSimulate$1(A, B) { + var A, B, _q, _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, a1, a2, even, h, m, n, q, r, u0, u1, u2, v0, v1, v2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, y$1, y$2, y$3, y$4; + u0 = 0; + u1 = 0; + v0 = 0; + v1 = 0; + even = false; + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = 0; + _tmp$3 = 0; + a1 = _tmp; + a2 = _tmp$1; + u2 = _tmp$2; + v2 = _tmp$3; + m = B.abs.$length; + n = A.abs.$length; + h = nlz((x = A.abs, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); + a1 = (((y = h, y < 32 ? ((x$2 = A.abs, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])) << y) : 0) >>> 0) | ((y$1 = ((32 - h >>> 0)), y$1 < 32 ? ((x$4 = A.abs, x$5 = n - 2 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) >>> y$1) : 0) >>> 0)) >>> 0; + if ((n === m)) { + a2 = (((y$2 = h, y$2 < 32 ? ((x$6 = B.abs, x$7 = n - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])) << y$2) : 0) >>> 0) | ((y$3 = ((32 - h >>> 0)), y$3 < 32 ? ((x$8 = B.abs, x$9 = n - 2 >> 0, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])) >>> y$3) : 0) >>> 0)) >>> 0; + } else if ((n === (m + 1 >> 0))) { + a2 = (y$4 = ((32 - h >>> 0)), y$4 < 32 ? ((x$10 = B.abs, x$11 = n - 2 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])) >>> y$4) : 0) >>> 0; + } else { + a2 = 0; + } + even = false; + _tmp$4 = 0; + _tmp$5 = 1; + _tmp$6 = 0; + u0 = _tmp$4; + u1 = _tmp$5; + u2 = _tmp$6; + _tmp$7 = 0; + _tmp$8 = 0; + _tmp$9 = 1; + v0 = _tmp$7; + v1 = _tmp$8; + v2 = _tmp$9; + while (true) { + if (!(a2 >= v2 && (a1 - a2 >>> 0) >= (v1 + v2 >>> 0))) { break; } + _tmp$10 = (_q = a1 / a2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + _tmp$11 = (_r = a1 % a2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + q = _tmp$10; + r = _tmp$11; + _tmp$12 = a2; + _tmp$13 = r; + a1 = _tmp$12; + a2 = _tmp$13; + _tmp$14 = u1; + _tmp$15 = u2; + _tmp$16 = u1 + ($imul(q, u2) >>> 0) >>> 0; + u0 = _tmp$14; + u1 = _tmp$15; + u2 = _tmp$16; + _tmp$17 = v1; + _tmp$18 = v2; + _tmp$19 = v1 + ($imul(q, v2) >>> 0) >>> 0; + v0 = _tmp$17; + v1 = _tmp$18; + v2 = _tmp$19; + even = !even; + } + return [u0, u1, v0, v1, even]; + }; + lehmerUpdate = function lehmerUpdate$1(A, B, q, r, s, t, u0, u1, v0, v1, even) { + var {A, B, _r, _r$1, _r$2, _r$3, _r$4, _r$5, even, q, r, s, t, u0, u1, v0, v1, $s, $r, $c} = $restore(this, {A, B, q, r, s, t, u0, u1, v0, v1, even}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t.abs = t.abs.setWord(u0); + s.abs = s.abs.setWord(v0); + t.neg = !even; + s.neg = even; + _r = t.Mul(A, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = s.Mul(B, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + r.abs = r.abs.setWord(u1); + q.abs = q.abs.setWord(v1); + r.neg = even; + q.neg = !even; + _r$2 = r.Mul(A, r); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = q.Mul(B, q); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _r$4 = A.Add(t, s); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + _r$5 = B.Add(r, q); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + $s = -1; return; + /* */ } return; } var $f = {$blk: lehmerUpdate$1, $c: true, $r, A, B, _r, _r$1, _r$2, _r$3, _r$4, _r$5, even, q, r, s, t, u0, u1, v0, v1, $s};return $f; + }; + euclidUpdate = function euclidUpdate$1(A, B, Ua, Ub, q, r, s, t, extended) { + var {A, B, Ua, Ub, _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tuple, extended, q, r, s, t, $s, $r, $c} = $restore(this, {A, B, Ua, Ub, q, r, s, t, extended}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = q.QuoRem(A, B, r); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + q = _tuple[0]; + r = _tuple[1]; + _tmp = $clone(B, Int); + _tmp$1 = $clone(r, Int); + _tmp$2 = $clone(A, Int); + Int.copy(A, _tmp); + Int.copy(B, _tmp$1); + Int.copy(r, _tmp$2); + /* */ if (extended) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (extended) { */ case 2: + t.Set(Ub); + _r$1 = s.Mul(Ub, q); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = Ub.Sub(Ua, s); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + Ua.Set(t); + /* } */ case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: euclidUpdate$1, $c: true, $r, A, B, Ua, Ub, _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tuple, extended, q, r, s, t, $s};return $f; + }; + $ptrType(Int).prototype.lehmerGCD = function lehmerGCD(x, y, a, b) { + var {A, B, Ua, Ub, _q, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, a, aWord, b, bWord, even, even$1, extended, negA, q, q$1, r, r$1, s, t, u0, u1, ua, ub, v0, v1, va, vb, x, x$1, x$2, x$3, y, z, $s, $r, $c} = $restore(this, {x, y, a, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _tmp = ptrType$2.nil; + _tmp$1 = ptrType$2.nil; + _tmp$2 = ptrType$2.nil; + _tmp$3 = ptrType$2.nil; + A = _tmp; + B = _tmp$1; + Ua = _tmp$2; + Ub = _tmp$3; + A = new Int.ptr(false, nat.nil).Abs(a); + B = new Int.ptr(false, nat.nil).Abs(b); + extended = !(x === ptrType$2.nil) || !(y === ptrType$2.nil); + if (extended) { + Ua = new Int.ptr(false, nat.nil).SetInt64(new $Int64(0, 1)); + Ub = new Int.ptr(false, nat.nil); + } + q = new Int.ptr(false, nat.nil); + r = new Int.ptr(false, nat.nil); + s = new Int.ptr(false, nat.nil); + t = new Int.ptr(false, nat.nil); + if (A.abs.cmp(B.abs) < 0) { + _tmp$4 = B; + _tmp$5 = A; + A = _tmp$4; + B = _tmp$5; + _tmp$6 = Ua; + _tmp$7 = Ub; + Ub = _tmp$6; + Ua = _tmp$7; + } + /* while (true) { */ case 1: + /* if (!(B.abs.$length > 1)) { break; } */ if(!(B.abs.$length > 1)) { $s = 2; continue; } + _tuple = lehmerSimulate(A, B); + u0 = _tuple[0]; + u1 = _tuple[1]; + v0 = _tuple[2]; + v1 = _tuple[3]; + even = _tuple[4]; + /* */ if (!((v0 === 0))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!((v0 === 0))) { */ case 3: + $r = lehmerUpdate(A, B, q, r, s, t, u0, u1, v0, v1, even); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (extended) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (extended) { */ case 7: + $r = lehmerUpdate(Ua, Ub, q, r, s, t, u0, u1, v0, v1, even); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + $s = 5; continue; + /* } else { */ case 4: + $r = euclidUpdate(A, B, Ua, Ub, q, r, s, t, extended); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + $s = 1; continue; + case 2: + /* */ if (B.abs.$length > 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (B.abs.$length > 0) { */ case 11: + /* */ if (A.abs.$length > 1) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (A.abs.$length > 1) { */ case 13: + $r = euclidUpdate(A, B, Ua, Ub, q, r, s, t, extended); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + /* */ if (B.abs.$length > 0) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (B.abs.$length > 0) { */ case 16: + _tmp$8 = (x$1 = A.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + _tmp$9 = (x$2 = B.abs, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); + aWord = _tmp$8; + bWord = _tmp$9; + /* */ if (extended) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (extended) { */ case 18: + _tmp$10 = 0; + _tmp$11 = 0; + _tmp$12 = 0; + _tmp$13 = 0; + ua = _tmp$10; + ub = _tmp$11; + va = _tmp$12; + vb = _tmp$13; + _tmp$14 = 1; + _tmp$15 = 0; + ua = _tmp$14; + ub = _tmp$15; + _tmp$16 = 0; + _tmp$17 = 1; + va = _tmp$16; + vb = _tmp$17; + even$1 = true; + while (true) { + if (!(!((bWord === 0)))) { break; } + _tmp$18 = (_q = aWord / bWord, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + _tmp$19 = (_r = aWord % bWord, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + q$1 = _tmp$18; + r$1 = _tmp$19; + _tmp$20 = bWord; + _tmp$21 = r$1; + aWord = _tmp$20; + bWord = _tmp$21; + _tmp$22 = ub; + _tmp$23 = ua + ($imul(q$1, ub) >>> 0) >>> 0; + ua = _tmp$22; + ub = _tmp$23; + _tmp$24 = vb; + _tmp$25 = va + ($imul(q$1, vb) >>> 0) >>> 0; + va = _tmp$24; + vb = _tmp$25; + even$1 = !even$1; + } + t.abs = t.abs.setWord(ua); + s.abs = s.abs.setWord(va); + t.neg = !even$1; + s.neg = even$1; + _r$1 = t.Mul(Ua, t); /* */ $s = 21; case 21: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = s.Mul(Ub, s); /* */ $s = 22; case 22: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = Ua.Add(t, s); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $s = 20; continue; + /* } else { */ case 19: + while (true) { + if (!(!((bWord === 0)))) { break; } + _tmp$26 = bWord; + _tmp$27 = (_r$4 = aWord % bWord, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")); + aWord = _tmp$26; + bWord = _tmp$27; + } + /* } */ case 20: + (x$3 = A.abs, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = aWord)); + /* } */ case 17: + /* } */ case 12: + negA = a.neg; + /* */ if (!(y === ptrType$2.nil)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!(y === ptrType$2.nil)) { */ case 24: + if (y === b) { + B.Set(b); + } else { + B = b; + } + _r$5 = y.Mul(a, Ua); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + if (negA) { + y.neg = !y.neg; + } + _r$6 = y.Sub(A, y); /* */ $s = 27; case 27: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + _r$7 = y.Div(y, B); /* */ $s = 28; case 28: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + /* } */ case 25: + if (!(x === ptrType$2.nil)) { + Int.copy(x, Ua); + if (negA) { + x.neg = !x.neg; + } + } + Int.copy(z, A); + $s = -1; return z; + /* */ } return; } var $f = {$blk: lehmerGCD, $c: true, $r, A, B, Ua, Ub, _q, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, a, aWord, b, bWord, even, even$1, extended, negA, q, q$1, r, r$1, s, t, u0, u1, ua, ub, v0, v1, va, vb, x, x$1, x$2, x$3, y, z, $s};return $f; + }; + $ptrType(Int).prototype.Rand = function Rand(rnd, n) { + var {_r, n, rnd, z, $s, $r, $c} = $restore(this, {rnd, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (n.neg || (n.abs.$length === 0)) { + z.neg = false; + z.abs = nat.nil; + $s = -1; return z; + } + z.neg = false; + _r = z.abs.random(rnd, n.abs, n.abs.bitLen()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.abs = _r; + $s = -1; return z; + /* */ } return; } var $f = {$blk: Rand, $c: true, $r, _r, n, rnd, z, $s};return $f; + }; + $ptrType(Int).prototype.ModInverse = function ModInverse(g, n) { + var {_r, _r$1, _r$2, _tmp, _tmp$1, d, g, g2, n, n2, x, z, $s, $r, $c} = $restore(this, {g, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = [x]; + z = this; + if (n.neg) { + n2 = new Int.ptr(false, nat.nil); + n = n2.Neg(n); + } + /* */ if (g.neg) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (g.neg) { */ case 1: + g2 = new Int.ptr(false, nat.nil); + _r = g2.Mod(g, n); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + g = _r; + /* } */ case 2: + _tmp = new Int.ptr(false, nat.nil); + _tmp$1 = new Int.ptr(false, nat.nil); + d = $clone(_tmp, Int); + x[0] = $clone(_tmp$1, Int); + _r$1 = d.GCD(x[0], ptrType$2.nil, g, n); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + if (!((d.Cmp(intOne) === 0))) { + $s = -1; return ptrType$2.nil; + } + /* */ if (x[0].neg) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (x[0].neg) { */ case 5: + _r$2 = z.Add(x[0], n); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = 7; continue; + /* } else { */ case 6: + z.Set(x[0]); + /* } */ case 7: + $s = -1; return z; + /* */ } return; } var $f = {$blk: ModInverse, $c: true, $r, _r, _r$1, _r$2, _tmp, _tmp$1, d, g, g2, n, n2, x, z, $s};return $f; + }; + Jacobi = function Jacobi$1(x, y) { + var {_arg, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, a, b, bmod8, c, j, s, x, x$1, x$2, x$3, x$4, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = [a]; + b = [b]; + c = [c]; + /* */ if ((y.abs.$length === 0) || ((((x$1 = y.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) & 1) >>> 0) === 0)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((y.abs.$length === 0) || ((((x$1 = y.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) & 1) >>> 0) === 0)) { */ case 1: + _r = y.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = new $String(_r); + _r$1 = fmt.Sprintf("big: invalid 2nd argument to Int.Jacobi: need odd integer but got %s", new sliceType([_arg])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 2: + _tmp = new Int.ptr(false, nat.nil); + _tmp$1 = new Int.ptr(false, nat.nil); + _tmp$2 = new Int.ptr(false, nat.nil); + a[0] = $clone(_tmp, Int); + b[0] = $clone(_tmp$1, Int); + c[0] = $clone(_tmp$2, Int); + a[0].Set(x); + b[0].Set(y); + j = 1; + if (b[0].neg) { + if (a[0].neg) { + j = -1; + } + b[0].neg = false; + } + /* while (true) { */ case 5: + if (b[0].Cmp(intOne) === 0) { + $s = -1; return j; + } + if (a[0].abs.$length === 0) { + $s = -1; return 0; + } + _r$2 = a[0].Mod(a[0], b[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + if (a[0].abs.$length === 0) { + $s = -1; return 0; + } + s = a[0].abs.trailingZeroBits(); + if (!((((s & 1) >>> 0) === 0))) { + bmod8 = ((x$2 = b[0].abs, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) & 7) >>> 0; + if ((bmod8 === 3) || (bmod8 === 5)) { + j = -j; + } + } + _r$3 = c[0].Rsh(a[0], s); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + if (((((x$3 = b[0].abs, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])) & 3) >>> 0) === 3) && ((((x$4 = c[0].abs, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])) & 3) >>> 0) === 3)) { + j = -j; + } + a[0].Set(b[0]); + b[0].Set(c[0]); + $s = 5; continue; + case 6: + $s = -1; return 0; + /* */ } return; } var $f = {$blk: Jacobi$1, $c: true, $r, _arg, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, a, b, bmod8, c, j, s, x, x$1, x$2, x$3, x$4, y, $s};return $f; + }; + $pkg.Jacobi = Jacobi; + $ptrType(Int).prototype.modSqrt3Mod4Prime = function modSqrt3Mod4Prime(x, p) { + var {_r, _r$1, _r$2, e, p, x, z, $s, $r, $c} = $restore(this, {x, p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = new Int.ptr(false, nat.nil).Add(p, intOne); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + _r$1 = e.Rsh(e, 2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = z.Exp(x, e, p); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return z; + /* */ } return; } var $f = {$blk: modSqrt3Mod4Prime, $c: true, $r, _r, _r$1, _r$2, e, p, x, z, $s};return $f; + }; + $ptrType(Int).prototype.modSqrt5Mod8Prime = function modSqrt5Mod8Prime(x, p) { + var {_r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, alpha, beta, e, p, tx, x, z, $s, $r, $c} = $restore(this, {x, p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = new Int.ptr(false, nat.nil).Rsh(p, 3); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + tx = new Int.ptr(false, nat.nil).Lsh(x, 1); + _r$1 = new Int.ptr(false, nat.nil).Exp(tx, e, p); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + alpha = _r$1; + _r$2 = new Int.ptr(false, nat.nil).Mul(alpha, alpha); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + beta = _r$2; + _r$3 = beta.Mod(beta, p); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _r$4 = beta.Mul(beta, tx); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + _r$5 = beta.Mod(beta, p); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + _r$6 = beta.Sub(beta, intOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + _r$7 = beta.Mul(beta, x); /* */ $s = 8; case 8: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + _r$8 = beta.Mod(beta, p); /* */ $s = 9; case 9: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + _r$9 = beta.Mul(beta, alpha); /* */ $s = 10; case 10: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + _r$10 = z.Mod(beta, p); /* */ $s = 11; case 11: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + $s = -1; return z; + /* */ } return; } var $f = {$blk: modSqrt5Mod8Prime, $c: true, $r, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, alpha, beta, e, p, tx, x, z, $s};return $f; + }; + $ptrType(Int).prototype.modSqrtTonelliShanks = function modSqrtTonelliShanks(x, p) { + var {_r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, b, e, g, m, n, p, r, s, t, x, y, z, $s, $r, $c} = $restore(this, {x, p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = [b]; + g = [g]; + n = [n]; + s = [s]; + t = [t]; + y = [y]; + z = this; + s[0] = new Int.ptr(false, nat.nil); + _r = s[0].Sub(p, intOne); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + e = s[0].abs.trailingZeroBits(); + _r$1 = s[0].Rsh(s[0], e); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + n[0] = new Int.ptr(false, nat.nil); + n[0].SetInt64(new $Int64(0, 2)); + /* while (true) { */ case 3: + _r$2 = Jacobi(n[0], p); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* if (!(!((_r$2 === -1)))) { break; } */ if(!(!((_r$2 === -1)))) { $s = 4; continue; } + _r$3 = n[0].Add(n[0], intOne); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $s = 3; continue; + case 4: + _tmp = new Int.ptr(false, nat.nil); + _tmp$1 = new Int.ptr(false, nat.nil); + _tmp$2 = new Int.ptr(false, nat.nil); + _tmp$3 = new Int.ptr(false, nat.nil); + y[0] = $clone(_tmp, Int); + b[0] = $clone(_tmp$1, Int); + g[0] = $clone(_tmp$2, Int); + t[0] = $clone(_tmp$3, Int); + _r$4 = y[0].Add(s[0], intOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + _r$5 = y[0].Rsh(y[0], 1); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + _r$6 = y[0].Exp(x, y[0], p); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + _r$7 = b[0].Exp(x, s[0], p); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + _r$8 = g[0].Exp(n[0], s[0], p); /* */ $s = 11; case 11: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + r = e; + /* while (true) { */ case 12: + m = 0; + t[0].Set(b[0]); + /* while (true) { */ case 14: + /* if (!(!((t[0].Cmp(intOne) === 0)))) { break; } */ if(!(!((t[0].Cmp(intOne) === 0)))) { $s = 15; continue; } + _r$9 = t[0].Mul(t[0], t[0]); /* */ $s = 16; case 16: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = _r$9.Mod(t[0], p); /* */ $s = 17; case 17: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + m = m + (1) >>> 0; + $s = 14; continue; + case 15: + if (m === 0) { + $s = -1; return z.Set(y[0]); + } + _r$11 = t[0].SetInt64(new $Int64(0, 0)).SetBit(t[0], ((((r - m >>> 0) - 1 >>> 0) >> 0)), 1); /* */ $s = 18; case 18: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$12 = _r$11.Exp(g[0], t[0], p); /* */ $s = 19; case 19: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + _r$13 = g[0].Mul(t[0], t[0]); /* */ $s = 20; case 20: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = _r$13.Mod(g[0], p); /* */ $s = 21; case 21: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14; + _r$15 = y[0].Mul(y[0], t[0]); /* */ $s = 22; case 22: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$16 = _r$15.Mod(y[0], p); /* */ $s = 23; case 23: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _r$16; + _r$17 = b[0].Mul(b[0], g[0]); /* */ $s = 24; case 24: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$18 = _r$17.Mod(b[0], p); /* */ $s = 25; case 25: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _r$18; + r = m; + $s = 12; continue; + case 13: + $s = -1; return ptrType$2.nil; + /* */ } return; } var $f = {$blk: modSqrtTonelliShanks, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, b, e, g, m, n, p, r, s, t, x, y, z, $s};return $f; + }; + $ptrType(Int).prototype.ModSqrt = function ModSqrt(x, p) { + var {$24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, p, x, x$1, x$2, z, $s, $r, $c} = $restore(this, {x, p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = Jacobi(x, p); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _1 = _r; + if (_1 === (-1)) { + $s = -1; return ptrType$2.nil; + } else if (_1 === (0)) { + $s = -1; return z.SetInt64(new $Int64(0, 0)); + } else if (_1 === (1)) { + /* break; */ $s = 1; continue; + } + case 1: + /* */ if (x.neg || x.Cmp(p) >= 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (x.neg || x.Cmp(p) >= 0) { */ case 3: + _r$1 = new Int.ptr(false, nat.nil).Mod(x, p); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + /* } */ case 4: + /* */ if (((_r$2 = (x$1 = p.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) % 4, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 3)) { $s = 7; continue; } + /* */ if (((_r$3 = (x$2 = p.abs, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) % 8, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) === 5)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (((_r$2 = (x$1 = p.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) % 4, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 3)) { */ case 7: + _r$4 = z.modSqrt3Mod4Prime(x, p); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 12; case 12: return $24r; + /* } else if (((_r$3 = (x$2 = p.abs, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) % 8, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) === 5)) { */ case 8: + _r$5 = z.modSqrt5Mod8Prime(x, p); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$1 = _r$5; + $s = 14; case 14: return $24r$1; + /* } else { */ case 9: + _r$6 = z.modSqrtTonelliShanks(x, p); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$2 = _r$6; + $s = 16; case 16: return $24r$2; + /* } */ case 10: + case 6: + $s = -1; return ptrType$2.nil; + /* */ } return; } var $f = {$blk: ModSqrt, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, p, x, x$1, x$2, z, $s};return $f; + }; + $ptrType(Int).prototype.Lsh = function Lsh(x, n) { + var n, x, z; + z = this; + z.abs = z.abs.shl(x.abs, n); + z.neg = x.neg; + return z; + }; + $ptrType(Int).prototype.Rsh = function Rsh(x, n) { + var {_r, _r$1, n, t, x, z, $s, $r, $c} = $restore(this, {x, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (x.neg) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.neg) { */ case 1: + _r = z.abs.sub(x.abs, natOne); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + t = _r; + t = t.shr(t, n); + _r$1 = t.add(t, natOne); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.abs = _r$1; + z.neg = true; + $s = -1; return z; + /* } */ case 2: + z.abs = z.abs.shr(x.abs, n); + z.neg = false; + $s = -1; return z; + /* */ } return; } var $f = {$blk: Rsh, $c: true, $r, _r, _r$1, n, t, x, z, $s};return $f; + }; + $ptrType(Int).prototype.Bit = function Bit(i) { + var {_r, i, t, x, x$1, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (i === 0) { + if (x.abs.$length > 0) { + $s = -1; return (((((x$1 = x.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) & 1) >>> 0) >>> 0)); + } + $s = -1; return 0; + } + if (i < 0) { + $panic(new $String("negative bit index")); + } + /* */ if (x.neg) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.neg) { */ case 1: + _r = (nat.nil).sub(x.abs, natOne); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + t = _r; + $s = -1; return (t.bit(((i >>> 0))) ^ 1) >>> 0; + /* } */ case 2: + $s = -1; return x.abs.bit(((i >>> 0))); + /* */ } return; } var $f = {$blk: Bit, $c: true, $r, _r, i, t, x, x$1, $s};return $f; + }; + $ptrType(Int).prototype.SetBit = function SetBit(x, i, b) { + var {_r, _r$1, b, i, t, x, z, $s, $r, $c} = $restore(this, {x, i, b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (i < 0) { + $panic(new $String("negative bit index")); + } + /* */ if (x.neg) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.neg) { */ case 1: + _r = z.abs.sub(x.abs, natOne); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + t = _r; + t = t.setBit(t, ((i >>> 0)), (b ^ 1) >>> 0); + _r$1 = t.add(t, natOne); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.abs = _r$1; + z.neg = z.abs.$length > 0; + $s = -1; return z; + /* } */ case 2: + z.abs = z.abs.setBit(x.abs, ((i >>> 0)), b); + z.neg = false; + $s = -1; return z; + /* */ } return; } var $f = {$blk: SetBit, $c: true, $r, _r, _r$1, b, i, t, x, z, $s};return $f; + }; + $ptrType(Int).prototype.And = function And(x, y) { + var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, x, x1, y, y1, y1$1, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (x.neg === y.neg) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.neg === y.neg) { */ case 1: + /* */ if (x.neg) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (x.neg) { */ case 3: + _r = (nat.nil).sub(x.abs, natOne); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x1 = _r; + _r$1 = (nat.nil).sub(y.abs, natOne); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + y1 = _r$1; + _r$2 = z.abs.add(z.abs.or(x1, y1), natOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + z.abs = _r$2; + z.neg = true; + $s = -1; return z; + /* } */ case 4: + z.abs = z.abs.and(x.abs, y.abs); + z.neg = false; + $s = -1; return z; + /* } */ case 2: + if (x.neg) { + _tmp = y; + _tmp$1 = x; + x = _tmp; + y = _tmp$1; + } + _r$3 = (nat.nil).sub(y.abs, natOne); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + y1$1 = _r$3; + z.abs = z.abs.andNot(x.abs, y1$1); + z.neg = false; + $s = -1; return z; + /* */ } return; } var $f = {$blk: And, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, x, x1, y, y1, y1$1, z, $s};return $f; + }; + $ptrType(Int).prototype.AndNot = function AndNot(x, y) { + var {_r, _r$1, _r$2, _r$3, _r$4, x, x1, x1$1, y, y1, y1$1, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (x.neg === y.neg) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.neg === y.neg) { */ case 1: + /* */ if (x.neg) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (x.neg) { */ case 3: + _r = (nat.nil).sub(x.abs, natOne); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x1 = _r; + _r$1 = (nat.nil).sub(y.abs, natOne); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + y1 = _r$1; + z.abs = z.abs.andNot(y1, x1); + z.neg = false; + $s = -1; return z; + /* } */ case 4: + z.abs = z.abs.andNot(x.abs, y.abs); + z.neg = false; + $s = -1; return z; + /* } */ case 2: + /* */ if (x.neg) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (x.neg) { */ case 7: + _r$2 = (nat.nil).sub(x.abs, natOne); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x1$1 = _r$2; + _r$3 = z.abs.add(z.abs.or(x1$1, y.abs), natOne); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + z.abs = _r$3; + z.neg = true; + $s = -1; return z; + /* } */ case 8: + _r$4 = (nat.nil).sub(y.abs, natOne); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + y1$1 = _r$4; + z.abs = z.abs.and(x.abs, y1$1); + z.neg = false; + $s = -1; return z; + /* */ } return; } var $f = {$blk: AndNot, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, x, x1, x1$1, y, y1, y1$1, z, $s};return $f; + }; + $ptrType(Int).prototype.Or = function Or(x, y) { + var {_r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, x, x1, y, y1, y1$1, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (x.neg === y.neg) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.neg === y.neg) { */ case 1: + /* */ if (x.neg) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (x.neg) { */ case 3: + _r = (nat.nil).sub(x.abs, natOne); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x1 = _r; + _r$1 = (nat.nil).sub(y.abs, natOne); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + y1 = _r$1; + _r$2 = z.abs.add(z.abs.and(x1, y1), natOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + z.abs = _r$2; + z.neg = true; + $s = -1; return z; + /* } */ case 4: + z.abs = z.abs.or(x.abs, y.abs); + z.neg = false; + $s = -1; return z; + /* } */ case 2: + if (x.neg) { + _tmp = y; + _tmp$1 = x; + x = _tmp; + y = _tmp$1; + } + _r$3 = (nat.nil).sub(y.abs, natOne); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + y1$1 = _r$3; + _r$4 = z.abs.add(z.abs.andNot(y1$1, x.abs), natOne); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + z.abs = _r$4; + z.neg = true; + $s = -1; return z; + /* */ } return; } var $f = {$blk: Or, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, x, x1, y, y1, y1$1, z, $s};return $f; + }; + $ptrType(Int).prototype.Xor = function Xor(x, y) { + var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, x, x1, y, y1, y1$1, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (x.neg === y.neg) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.neg === y.neg) { */ case 1: + /* */ if (x.neg) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (x.neg) { */ case 3: + _r = (nat.nil).sub(x.abs, natOne); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x1 = _r; + _r$1 = (nat.nil).sub(y.abs, natOne); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + y1 = _r$1; + z.abs = z.abs.xor(x1, y1); + z.neg = false; + $s = -1; return z; + /* } */ case 4: + z.abs = z.abs.xor(x.abs, y.abs); + z.neg = false; + $s = -1; return z; + /* } */ case 2: + if (x.neg) { + _tmp = y; + _tmp$1 = x; + x = _tmp; + y = _tmp$1; + } + _r$2 = (nat.nil).sub(y.abs, natOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + y1$1 = _r$2; + _r$3 = z.abs.add(z.abs.xor(x.abs, y1$1), natOne); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + z.abs = _r$3; + z.neg = true; + $s = -1; return z; + /* */ } return; } var $f = {$blk: Xor, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, x, x1, y, y1, y1$1, z, $s};return $f; + }; + $ptrType(Int).prototype.Not = function Not(x) { + var {_r, _r$1, x, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (x.neg) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.neg) { */ case 1: + _r = z.abs.sub(x.abs, natOne); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.abs = _r; + z.neg = false; + $s = -1; return z; + /* } */ case 2: + _r$1 = z.abs.add(x.abs, natOne); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.abs = _r$1; + z.neg = true; + $s = -1; return z; + /* */ } return; } var $f = {$blk: Not, $c: true, $r, _r, _r$1, x, z, $s};return $f; + }; + $ptrType(Int).prototype.Sqrt = function Sqrt$1(x) { + var {_r, x, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (x.neg) { + $panic(new $String("square root of negative number")); + } + z.neg = false; + _r = z.abs.sqrt(x.abs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.abs = _r; + $s = -1; return z; + /* */ } return; } var $f = {$blk: Sqrt$1, $c: true, $r, _r, x, z, $s};return $f; + }; + $ptrType(Float).prototype.Text = function Text$1(format, prec) { + var {$24r, _r, cap, format, prec, x, $s, $r, $c} = $restore(this, {format, prec}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + cap = 10; + if (prec > 0) { + cap = cap + (prec) >> 0; + } + _r = x.Append($makeSlice(sliceType$1, 0, cap), format, prec); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = ($bytesToString(_r)); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Text$1, $c: true, $r, $24r, _r, cap, format, prec, x, $s};return $f; + }; + $ptrType(Float).prototype.String = function String$3() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.Text(103, 10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$3, $c: true, $r, $24r, _r, x, $s};return $f; + }; + $ptrType(Float).prototype.Append = function Append$1(buf, fmt$1, prec) { + var {$24r, $24r$1, $24r$2, _1, _2, _3, _4, _r, _r$1, _r$2, buf, d, eprec, exp, fmt$1, prec, shortest, x, $s, $r, $c} = $restore(this, {buf, fmt$1, prec}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = [d]; + x = this; + if (x.neg) { + buf = $append(buf, 45); + } + if (x.form === 2) { + if (!x.neg) { + buf = $append(buf, 43); + } + $s = -1; return $appendSlice(buf, "Inf"); + } + _1 = fmt$1; + /* */ if (_1 === (98)) { $s = 2; continue; } + /* */ if (_1 === (112)) { $s = 3; continue; } + /* */ if (_1 === (120)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (98)) { */ case 2: + _r = x.fmtB(buf); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 7; case 7: return $24r; + /* } else if (_1 === (112)) { */ case 3: + _r$1 = x.fmtP(buf); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 9; case 9: return $24r$1; + /* } else if (_1 === (120)) { */ case 4: + _r$2 = x.fmtX(buf, prec); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$2 = _r$2; + $s = 11; case 11: return $24r$2; + /* } */ case 5: + case 1: + d[0] = new decimal.ptr(sliceType$1.nil, 0); + /* */ if (x.form === 1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (x.form === 1) { */ case 12: + $r = d[0].init(x.mant, ((x.exp >> 0)) - x.mant.bitLen() >> 0); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + shortest = false; + /* */ if (prec < 0) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (prec < 0) { */ case 15: + shortest = true; + $r = roundShortest(d[0], x); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _2 = fmt$1; + if ((_2 === (101)) || (_2 === (69))) { + prec = d[0].mant.$length - 1 >> 0; + } else if (_2 === (102)) { + prec = max(d[0].mant.$length - d[0].exp >> 0, 0); + } else if ((_2 === (103)) || (_2 === (71))) { + prec = d[0].mant.$length; + } + $s = 17; continue; + /* } else { */ case 16: + _3 = fmt$1; + if ((_3 === (101)) || (_3 === (69))) { + d[0].round(1 + prec >> 0); + } else if (_3 === (102)) { + d[0].round(d[0].exp + prec >> 0); + } else if ((_3 === (103)) || (_3 === (71))) { + if (prec === 0) { + prec = 1; + } + d[0].round(prec); + } + /* } */ case 17: + _4 = fmt$1; + if ((_4 === (101)) || (_4 === (69))) { + $s = -1; return fmtE(buf, fmt$1, prec, $clone(d[0], decimal)); + } else if (_4 === (102)) { + $s = -1; return fmtF(buf, prec, $clone(d[0], decimal)); + } else if ((_4 === (103)) || (_4 === (71))) { + eprec = prec; + if (eprec > d[0].mant.$length && d[0].mant.$length >= d[0].exp) { + eprec = d[0].mant.$length; + } + if (shortest) { + eprec = 6; + } + exp = d[0].exp - 1 >> 0; + if (exp < -4 || exp >= eprec) { + if (prec > d[0].mant.$length) { + prec = d[0].mant.$length; + } + $s = -1; return fmtE(buf, (fmt$1 + 101 << 24 >>> 24) - 103 << 24 >>> 24, prec - 1 >> 0, $clone(d[0], decimal)); + } + if (prec > d[0].exp) { + prec = d[0].mant.$length; + } + $s = -1; return fmtF(buf, max(prec - d[0].exp >> 0, 0), $clone(d[0], decimal)); + } + if (x.neg) { + buf = $subslice(buf, 0, (buf.$length - 1 >> 0)); + } + $s = -1; return $append(buf, 37, fmt$1); + /* */ } return; } var $f = {$blk: Append$1, $c: true, $r, $24r, $24r$1, $24r$2, _1, _2, _3, _4, _r, _r$1, _r$2, buf, d, eprec, exp, fmt$1, prec, shortest, x, $s};return $f; + }; + roundShortest = function roundShortest$1(d, x) { + var {_i, _r, _r$1, _ref, d, exp, i, inclusive, l, lower, m, mant, okdown, okup, s, tmp, u, upper, x, $s, $r, $c} = $restore(this, {d, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (d.mant.$length === 0) { + $s = -1; return; + } + mant = (nat.nil).set(x.mant); + exp = ((x.exp >> 0)) - mant.bitLen() >> 0; + s = mant.bitLen() - (((x.prec + 1 >>> 0) >> 0)) >> 0; + if (s < 0) { + mant = mant.shl(mant, ((-s >>> 0))); + } else if (s > 0) { + mant = mant.shr(mant, ((s >>> 0))); + } + exp = exp + (s) >> 0; + lower = new decimal.ptr(sliceType$1.nil, 0); + tmp = nat.nil; + _r = tmp.sub(mant, natOne); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = lower.init(_r, exp); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + upper = new decimal.ptr(sliceType$1.nil, 0); + _r$1 = tmp.add(mant, natOne); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = upper.init(_r$1, exp); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + inclusive = (((0 >= mant.$length ? ($throwRuntimeError("index out of range"), undefined) : mant.$array[mant.$offset + 0]) & 2) >>> 0) === 0; + _ref = d.mant; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + l = lower.at(i); + u = upper.at(i); + okdown = !((l === m)) || inclusive && ((i + 1 >> 0) === lower.mant.$length); + okup = !((m === u)) && (inclusive || (m + 1 << 24 >>> 24) < u || (i + 1 >> 0) < upper.mant.$length); + if (okdown && okup) { + d.round(i + 1 >> 0); + $s = -1; return; + } else if (okdown) { + d.roundDown(i + 1 >> 0); + $s = -1; return; + } else if (okup) { + d.roundUp(i + 1 >> 0); + $s = -1; return; + } + _i++; + } + $s = -1; return; + /* */ } return; } var $f = {$blk: roundShortest$1, $c: true, $r, _i, _r, _r$1, _ref, d, exp, i, inclusive, l, lower, m, mant, okdown, okup, s, tmp, u, upper, x, $s};return $f; + }; + fmtE = function fmtE$1(buf, fmt$1, prec, d) { + var buf, ch, d, exp, fmt$1, i, m, prec, x, x$1; + ch = 48; + if (d.mant.$length > 0) { + ch = (x = d.mant, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + } + buf = $append(buf, ch); + if (prec > 0) { + buf = $append(buf, 46); + i = 1; + m = min(d.mant.$length, prec + 1 >> 0); + if (i < m) { + buf = $appendSlice(buf, $subslice(d.mant, i, m)); + i = m; + } + while (true) { + if (!(i <= prec)) { break; } + buf = $append(buf, 48); + i = i + (1) >> 0; + } + } + buf = $append(buf, fmt$1); + exp = new $Int64(0, 0); + if (d.mant.$length > 0) { + exp = (x$1 = (new $Int64(0, d.exp)), new $Int64(x$1.$high - 0, x$1.$low - 1)); + } + if ((exp.$high < 0 || (exp.$high === 0 && exp.$low < 0))) { + ch = 45; + exp = new $Int64(-exp.$high, -exp.$low); + } else { + ch = 43; + } + buf = $append(buf, ch); + if ((exp.$high < 0 || (exp.$high === 0 && exp.$low < 10))) { + buf = $append(buf, 48); + } + return strconv.AppendInt(buf, exp, 10); + }; + fmtF = function fmtF$1(buf, prec, d) { + var buf, d, i, m, prec; + if (d.exp > 0) { + m = min(d.mant.$length, d.exp); + buf = $appendSlice(buf, $subslice(d.mant, 0, m)); + while (true) { + if (!(m < d.exp)) { break; } + buf = $append(buf, 48); + m = m + (1) >> 0; + } + } else { + buf = $append(buf, 48); + } + if (prec > 0) { + buf = $append(buf, 46); + i = 0; + while (true) { + if (!(i < prec)) { break; } + buf = $append(buf, d.at(d.exp + i >> 0)); + i = i + (1) >> 0; + } + } + return buf; + }; + $ptrType(Float).prototype.fmtB = function fmtB(buf) { + var {_arg, _arg$1, _r, buf, e, m, w, x, x$1, x$2, $s, $r, $c} = $restore(this, {buf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (x.form === 0) { + $s = -1; return $append(buf, 48); + } + if (false && !((x.form === 1))) { + $panic(new $String("non-finite float")); + } + m = x.mant; + w = $imul(((x.mant.$length >>> 0)), 32) >>> 0; + if (w < x.prec) { + m = (nat.nil).shl(m, (((x.prec - w >>> 0) >>> 0))); + } else if (w > x.prec) { + m = (nat.nil).shr(m, (((w - x.prec >>> 0) >>> 0))); + } + _arg = buf; + _r = m.utoa(10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + buf = $appendSlice(_arg, _arg$1); + buf = $append(buf, 112); + e = (x$1 = (new $Int64(0, x.exp)), x$2 = (new $Int64(0, x.prec)), new $Int64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); + if ((e.$high > 0 || (e.$high === 0 && e.$low >= 0))) { + buf = $append(buf, 43); + } + $s = -1; return strconv.AppendInt(buf, e, 10); + /* */ } return; } var $f = {$blk: fmtB, $c: true, $r, _arg, _arg$1, _r, buf, e, m, w, x, x$1, x$2, $s};return $f; + }; + $ptrType(Float).prototype.fmtX = function fmtX(buf, prec) { + var {_q, _r, _r$1, _r$2, _r$3, buf, exp64, hm, i, m, n, prec, w, x, x$1, $s, $r, $c} = $restore(this, {buf, prec}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (x.form === 0) { + buf = $appendSlice(buf, "0x0"); + if (prec > 0) { + buf = $append(buf, 46); + i = 0; + while (true) { + if (!(i < prec)) { break; } + buf = $append(buf, 48); + i = i + (1) >> 0; + } + } + buf = $appendSlice(buf, "p+00"); + $s = -1; return buf; + } + if (false && !((x.form === 1))) { + $panic(new $String("non-finite float")); + } + n = 0; + if (prec < 0) { + n = 1 + ($imul((_q = (((x.MinPrec() - 1 >>> 0) + 3 >>> 0)) / 4, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), 4) >>> 0) >>> 0; + } else { + n = 1 + ($imul(4, ((prec >>> 0))) >>> 0) >>> 0; + } + _r = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0).SetPrec(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.SetMode(x.mode); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.Set(x); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + m = x.mant; + w = $imul(((x.mant.$length >>> 0)), 32) >>> 0; + if (w < n) { + m = (nat.nil).shl(m, n - w >>> 0); + } else if (w > n) { + m = (nat.nil).shr(m, w - n >>> 0); + } + exp64 = (x$1 = (new $Int64(0, x.exp)), new $Int64(x$1.$high - 0, x$1.$low - 1)); + _r$3 = m.utoa(16); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + hm = _r$3; + if (false && !(((0 >= hm.$length ? ($throwRuntimeError("index out of range"), undefined) : hm.$array[hm.$offset + 0]) === 49))) { + $panic(new $String("incorrect mantissa: " + ($bytesToString(hm)))); + } + buf = $appendSlice(buf, "0x1"); + if (hm.$length > 1) { + buf = $append(buf, 46); + buf = $appendSlice(buf, $subslice(hm, 1)); + } + buf = $append(buf, 112); + if ((exp64.$high > 0 || (exp64.$high === 0 && exp64.$low >= 0))) { + buf = $append(buf, 43); + } else { + exp64 = new $Int64(-exp64.$high, -exp64.$low); + buf = $append(buf, 45); + } + if ((exp64.$high < 0 || (exp64.$high === 0 && exp64.$low < 10))) { + buf = $append(buf, 48); + } + $s = -1; return strconv.AppendInt(buf, exp64, 10); + /* */ } return; } var $f = {$blk: fmtX, $c: true, $r, _q, _r, _r$1, _r$2, _r$3, buf, exp64, hm, i, m, n, prec, w, x, x$1, $s};return $f; + }; + $ptrType(Float).prototype.fmtP = function fmtP(buf) { + var {_arg, _arg$1, _r, _r$1, buf, i, m, x, $s, $r, $c} = $restore(this, {buf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (x.form === 0) { + $s = -1; return $append(buf, 48); + } + if (false && !((x.form === 1))) { + $panic(new $String("non-finite float")); + } + m = x.mant; + i = 0; + while (true) { + if (!(i < m.$length && (((i < 0 || i >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + i]) === 0))) { break; } + i = i + (1) >> 0; + } + m = $subslice(m, i); + buf = $appendSlice(buf, "0x."); + _arg = buf; + _r = m.utoa(16); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = bytes.TrimRight(_r, "0"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + buf = $appendSlice(_arg, _arg$1); + buf = $append(buf, 112); + if (x.exp >= 0) { + buf = $append(buf, 43); + } + $s = -1; return strconv.AppendInt(buf, (new $Int64(0, x.exp)), 10); + /* */ } return; } var $f = {$blk: fmtP, $c: true, $r, _arg, _arg$1, _r, _r$1, buf, i, m, x, $s};return $f; + }; + min = function min$1(x, y) { + var x, y; + if (x < y) { + return x; + } + return y; + }; + $ptrType(Float).prototype.Format = function Format$1(s, format) { + var {_1, _arg, _arg$1, _arg$2, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, buf, format, hasPrec, hasWidth, padding, prec, s, sign, width, x, $s, $r, $c} = $restore(this, {s, format}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = s.Precision(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + prec = _tuple[0]; + hasPrec = _tuple[1]; + if (!hasPrec) { + prec = 6; + } + _1 = format; + /* */ if ((_1 === (101)) || (_1 === (69)) || (_1 === (102)) || (_1 === (98)) || (_1 === (112)) || (_1 === (120))) { $s = 3; continue; } + /* */ if (_1 === (70)) { $s = 4; continue; } + /* */ if (_1 === (118)) { $s = 5; continue; } + /* */ if ((_1 === (103)) || (_1 === (71))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((_1 === (101)) || (_1 === (69)) || (_1 === (102)) || (_1 === (98)) || (_1 === (112)) || (_1 === (120))) { */ case 3: + $s = 8; continue; + /* } else if (_1 === (70)) { */ case 4: + format = 102; + $s = 8; continue; + /* } else if (_1 === (118)) { */ case 5: + format = 103; + if (!hasPrec) { + prec = -1; + } + $s = 8; continue; + /* } else if ((_1 === (103)) || (_1 === (71))) { */ case 6: + if (!hasPrec) { + prec = -1; + } + $s = 8; continue; + /* } else { */ case 7: + _arg = s; + _arg$1 = new $Int32(format); + _r$1 = x.String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$2 = new $String(_r$1); + _r$2 = fmt.Fprintf(_arg, "%%!%c(*big.Float=%s)", new sliceType([_arg$1, _arg$2])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return; + /* } */ case 8: + case 2: + buf = sliceType$1.nil; + _r$3 = x.Append(buf, ((format << 24 >>> 24)), prec); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + buf = _r$3; + if (buf.$length === 0) { + buf = (new sliceType$1($stringToBytes("?"))); + } + sign = ""; + /* */ if (((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 45)) { $s = 13; continue; } + /* */ if (((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 43)) { $s = 14; continue; } + _r$4 = s.Flag(43); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 15; continue; } + _r$5 = s.Flag(32); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 45)) { */ case 13: + sign = "-"; + buf = $subslice(buf, 1); + $s = 17; continue; + /* } else if (((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 43)) { */ case 14: + sign = "+"; + _r$6 = s.Flag(32); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_r$6) { */ case 20: + sign = " "; + /* } */ case 21: + buf = $subslice(buf, 1); + $s = 17; continue; + /* } else if (_r$4) { */ case 15: + sign = "+"; + $s = 17; continue; + /* } else if (_r$5) { */ case 16: + sign = " "; + /* } */ case 17: + case 12: + padding = 0; + _r$7 = s.Width(); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$1 = _r$7; + width = _tuple$1[0]; + hasWidth = _tuple$1[1]; + if (hasWidth && width > (sign.length + buf.$length >> 0)) { + padding = (width - sign.length >> 0) - buf.$length >> 0; + } + _r$8 = s.Flag(48); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (_r$8 && !x.IsInf()) { $s = 25; continue; } + _r$9 = s.Flag(45); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (_r$8 && !x.IsInf()) { */ case 25: + $r = writeMultiple(s, sign, 1); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = writeMultiple(s, "0", padding); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$10 = s.Write(buf); /* */ $s = 33; case 33: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + $s = 28; continue; + /* } else if (_r$9) { */ case 26: + $r = writeMultiple(s, sign, 1); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$11 = s.Write(buf); /* */ $s = 35; case 35: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11; + $r = writeMultiple(s, " ", padding); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 28; continue; + /* } else { */ case 27: + $r = writeMultiple(s, " ", padding); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = writeMultiple(s, sign, 1); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$12 = s.Write(buf); /* */ $s = 39; case 39: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + /* } */ case 28: + case 24: + $s = -1; return; + /* */ } return; } var $f = {$blk: Format$1, $c: true, $r, _1, _arg, _arg$1, _arg$2, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, buf, format, hasPrec, hasWidth, padding, prec, s, sign, width, x, $s};return $f; + }; + $ptrType(Float).prototype.GobEncode = function GobEncode$2() { + var _q, b, buf, n, sz, x; + x = this; + if (x === ptrType.nil) { + return [sliceType$1.nil, $ifaceNil]; + } + sz = 6; + n = 0; + if (x.form === 1) { + n = (((_q = ((x.prec + 31 >>> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); + if (x.mant.$length < n) { + n = x.mant.$length; + } + sz = sz + ((4 + ($imul(n, 4)) >> 0)) >> 0; + } + buf = $makeSlice(sliceType$1, sz); + (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0] = 1); + b = ((((((((x.mode & 7) >>> 0) << 24 >>> 24)) << 5 << 24 >>> 24) | ((((((x.acc + 1 << 24 >> 24)) & 3) << 24 >>> 24)) << 3 << 24 >>> 24)) >>> 0) | (((((x.form & 3) >>> 0) << 24 >>> 24)) << 1 << 24 >>> 24)) >>> 0; + if (x.neg) { + b = (b | (1)) >>> 0; + } + (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1] = b); + $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(buf, 2), x.prec); + if (x.form === 1) { + $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(buf, 6), ((x.exp >>> 0))); + $subslice(x.mant, (x.mant.$length - n >> 0)).bytes($subslice(buf, 10)); + } + return [buf, $ifaceNil]; + }; + $ptrType(Float).prototype.GobDecode = function GobDecode$2(buf) { + var {$24r, _r, _r$1, b, buf, oldMode, oldPrec, z, $s, $r, $c} = $restore(this, {buf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (buf.$length === 0) { + Float.copy(z, new Float.ptr(0, 0, 0, 0, false, nat.nil, 0)); + $s = -1; return $ifaceNil; + } + if (buf.$length < 6) { + $s = -1; return errors.New("Float.GobDecode: buffer too small"); + } + /* */ if (!(((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 1))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 1))) { */ case 1: + _r = fmt.Errorf("Float.GobDecode: encoding version %d not supported", new sliceType([new $Uint8((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]))])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + oldPrec = z.prec; + oldMode = z.mode; + b = (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]); + z.mode = ((((((b >>> 5 << 24 >>> 24)) & 7) >>> 0) << 24 >>> 24)); + z.acc = ((((((b >>> 3 << 24 >>> 24)) & 3) >>> 0) << 24 >> 24)) - 1 << 24 >> 24; + z.form = ((((((b >>> 1 << 24 >>> 24)) & 3) >>> 0) << 24 >>> 24)); + z.neg = !((((b & 1) >>> 0) === 0)); + z.prec = $clone(binary.BigEndian, binary.bigEndian).Uint32($subslice(buf, 2)); + if (z.form === 1) { + if (buf.$length < 10) { + $s = -1; return errors.New("Float.GobDecode: buffer too small for finite form float"); + } + z.exp = (($clone(binary.BigEndian, binary.bigEndian).Uint32($subslice(buf, 6)) >> 0)); + z.mant = z.mant.setBytes($subslice(buf, 10)); + } + /* */ if (!((oldPrec === 0))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((oldPrec === 0))) { */ case 5: + z.mode = oldMode; + _r$1 = z.SetPrec(((oldPrec >>> 0))); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 6: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: GobDecode$2, $c: true, $r, $24r, _r, _r$1, b, buf, oldMode, oldPrec, z, $s};return $f; + }; + $ptrType(Float).prototype.MarshalText = function MarshalText$2() { + var {$24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, err, text, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + text = sliceType$1.nil; + err = $ifaceNil; + x = this; + if (x === ptrType.nil) { + _tmp = (new sliceType$1($stringToBytes(""))); + _tmp$1 = $ifaceNil; + text = _tmp; + err = _tmp$1; + $s = -1; return [text, err]; + } + buf = sliceType$1.nil; + _r = x.Append(buf, 103, -1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$2 = _r; + _tmp$3 = $ifaceNil; + text = _tmp$2; + err = _tmp$3; + $24r = [text, err]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: MarshalText$2, $c: true, $r, $24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, err, text, x, $s};return $f; + }; + $ptrType(Float).prototype.UnmarshalText = function UnmarshalText$2(text) { + var {_r, _r$1, _tuple, err, text, z, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = z.Parse(($bytesToString(text)), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[2]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$1 = fmt.Errorf("math/big: cannot unmarshal %q into a *big.Float (%v)", new sliceType([text, err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + /* } */ case 3: + $s = -1; return err; + /* */ } return; } var $f = {$blk: UnmarshalText$2, $c: true, $r, _r, _r$1, _tuple, err, text, z, $s};return $f; + }; + $ptrType(Float).prototype.SetString = function SetString$2(s) { + var {_r, _tuple, err, f, s, z, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = z.Parse(s, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + err = _tuple[2]; + if ($interfaceIsEqual(err, $ifaceNil)) { + $s = -1; return [f, true]; + } + $s = -1; return [ptrType.nil, false]; + /* */ } return; } var $f = {$blk: SetString$2, $c: true, $r, _r, _tuple, err, f, s, z, $s};return $f; + }; + $ptrType(Float).prototype.scan = function scan$2(r, base) { + var {_1, _2, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, b, base, d, ebase, err, exp, exp2, exp5, f, fcount, p, prec, r, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, z, $s, $r, $c} = $restore(this, {r, base}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = ptrType.nil; + b = 0; + err = $ifaceNil; + z = this; + prec = z.prec; + if (prec === 0) { + prec = 64; + } + z.form = 0; + _r = scanSign(r); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + z.neg = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [f, b, err]; + } + fcount = 0; + _r$1 = z.mant.scan(r, base, true); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + z.mant = _tuple$1[0]; + b = _tuple$1[1]; + fcount = _tuple$1[2]; + err = _tuple$1[3]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [f, b, err]; + } + exp = new $Int64(0, 0); + ebase = 0; + _r$2 = scanExponent(r, true, base === 0); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + exp = _tuple$2[0]; + ebase = _tuple$2[1]; + err = _tuple$2[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [f, b, err]; + } + if (z.mant.$length === 0) { + z.prec = prec; + z.acc = 0; + z.form = 0; + f = z; + $s = -1; return [f, b, err]; + } + exp2 = (x = $mul64((new $Int64(0, z.mant.$length)), new $Int64(0, 32)), x$1 = fnorm(z.mant), new $Int64(x.$high - x$1.$high, x.$low - x$1.$low)); + exp5 = new $Int64(0, 0); + if (fcount < 0) { + d = (new $Int64(0, fcount)); + _1 = b; + if (_1 === (10)) { + exp5 = d; + exp2 = (x$2 = d, new $Int64(exp2.$high + x$2.$high, exp2.$low + x$2.$low)); + } else if (_1 === (2)) { + exp2 = (x$3 = d, new $Int64(exp2.$high + x$3.$high, exp2.$low + x$3.$low)); + } else if (_1 === (8)) { + exp2 = (x$4 = $mul64(d, new $Int64(0, 3)), new $Int64(exp2.$high + x$4.$high, exp2.$low + x$4.$low)); + } else if (_1 === (16)) { + exp2 = (x$5 = $mul64(d, new $Int64(0, 4)), new $Int64(exp2.$high + x$5.$high, exp2.$low + x$5.$low)); + } else { + $panic(new $String("unexpected mantissa base")); + } + } + _2 = ebase; + if (_2 === (10)) { + exp5 = (x$6 = exp, new $Int64(exp5.$high + x$6.$high, exp5.$low + x$6.$low)); + exp2 = (x$7 = exp, new $Int64(exp2.$high + x$7.$high, exp2.$low + x$7.$low)); + } else if (_2 === (2)) { + exp2 = (x$8 = exp, new $Int64(exp2.$high + x$8.$high, exp2.$low + x$8.$low)); + } else { + $panic(new $String("unexpected exponent base")); + } + /* */ if ((-1 < exp2.$high || (-1 === exp2.$high && 2147483648 <= exp2.$low)) && (exp2.$high < 0 || (exp2.$high === 0 && exp2.$low <= 2147483647))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((-1 < exp2.$high || (-1 === exp2.$high && 2147483648 <= exp2.$low)) && (exp2.$high < 0 || (exp2.$high === 0 && exp2.$low <= 2147483647))) { */ case 4: + z.prec = prec; + z.form = 1; + z.exp = (((exp2.$low + ((exp2.$high >> 31) * 4294967296)) >> 0)); + f = z; + $s = 6; continue; + /* } else { */ case 5: + _r$3 = fmt.Errorf("exponent overflow", sliceType.nil); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + $s = -1; return [f, b, err]; + /* } */ case 6: + /* */ if ((exp5.$high === 0 && exp5.$low === 0)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((exp5.$high === 0 && exp5.$low === 0)) { */ case 8: + $r = z.round(0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [f, b, err]; + /* } */ case 9: + _r$4 = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0).SetPrec(z.Prec() + 64 >>> 0); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + p = _r$4; + /* */ if ((exp5.$high < 0 || (exp5.$high === 0 && exp5.$low < 0))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((exp5.$high < 0 || (exp5.$high === 0 && exp5.$low < 0))) { */ case 12: + _arg = z; + _r$5 = p.pow5(((x$9 = new $Int64(-exp5.$high, -exp5.$low), new $Uint64(x$9.$high, x$9.$low)))); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = _r$5; + _r$6 = z.Quo(_arg, _arg$1); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + $s = 14; continue; + /* } else { */ case 13: + _arg$2 = z; + _r$7 = p.pow5((new $Uint64(exp5.$high, exp5.$low))); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$3 = _r$7; + _r$8 = z.Mul(_arg$2, _arg$3); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + /* } */ case 14: + $s = -1; return [f, b, err]; + /* */ } return; } var $f = {$blk: scan$2, $c: true, $r, _1, _2, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, b, base, d, ebase, err, exp, exp2, exp5, f, fcount, p, prec, r, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, z, $s};return $f; + }; + $ptrType(Float).prototype.pow5 = function pow5(n) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, f, n, x, x$1, z, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if ((n.$high < 0 || (n.$high === 0 && n.$low <= 27))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((n.$high < 0 || (n.$high === 0 && n.$low <= 27))) { */ case 1: + _r = z.SetUint64((($flatten64(n) < 0 || $flatten64(n) >= pow5tab.length) ? ($throwRuntimeError("index out of range"), undefined) : pow5tab[$flatten64(n)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = z.SetUint64(pow5tab[27]); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + n = (x = new $Uint64(0, 27), new $Uint64(n.$high - x.$high, n.$low - x.$low)); + _r$2 = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0).SetPrec(z.Prec() + 64 >>> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.SetUint64(new $Uint64(0, 5)); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + f = _r$3; + /* while (true) { */ case 8: + /* if (!((n.$high > 0 || (n.$high === 0 && n.$low > 0)))) { break; } */ if(!((n.$high > 0 || (n.$high === 0 && n.$low > 0)))) { $s = 9; continue; } + /* */ if (!((x$1 = new $Uint64(n.$high & 0, (n.$low & 1) >>> 0), (x$1.$high === 0 && x$1.$low === 0)))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((x$1 = new $Uint64(n.$high & 0, (n.$low & 1) >>> 0), (x$1.$high === 0 && x$1.$low === 0)))) { */ case 10: + _r$4 = z.Mul(z, f); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + /* } */ case 11: + _r$5 = f.Mul(f, f); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + n = $shiftRightUint64(n, (1)); + $s = 8; continue; + case 9: + $s = -1; return z; + /* */ } return; } var $f = {$blk: pow5, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, f, n, x, x$1, z, $s};return $f; + }; + $ptrType(Float).prototype.Parse = function Parse(s, base) { + var {_r, _r$1, _tuple, _tuple$1, b, base, ch, err, err2, f, r, s, z, $s, $r, $c} = $restore(this, {s, base}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = ptrType.nil; + b = 0; + err = $ifaceNil; + z = this; + if ((s.length === 3) && (s === "Inf" || s === "inf")) { + f = z.SetInf(false); + $s = -1; return [f, b, err]; + } + if ((s.length === 4) && ((s.charCodeAt(0) === 43) || (s.charCodeAt(0) === 45)) && ($substring(s, 1) === "Inf" || $substring(s, 1) === "inf")) { + f = z.SetInf(s.charCodeAt(0) === 45); + $s = -1; return [f, b, err]; + } + r = strings.NewReader(s); + _r = z.scan(r, base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + b = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [f, b, err]; + } + _tuple$1 = r.ReadByte(); + ch = _tuple$1[0]; + err2 = _tuple$1[1]; + /* */ if ($interfaceIsEqual(err2, $ifaceNil)) { $s = 2; continue; } + /* */ if (!($interfaceIsEqual(err2, io.EOF))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($interfaceIsEqual(err2, $ifaceNil)) { */ case 2: + _r$1 = fmt.Errorf("expected end of string, found %q", new sliceType([new $Uint8(ch)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + $s = 4; continue; + /* } else if (!($interfaceIsEqual(err2, io.EOF))) { */ case 3: + err = err2; + /* } */ case 4: + $s = -1; return [f, b, err]; + /* */ } return; } var $f = {$blk: Parse, $c: true, $r, _r, _r$1, _tuple, _tuple$1, b, base, ch, err, err2, f, r, s, z, $s};return $f; + }; + $ptrType(Float).prototype.Scan = function Scan$2(s, ch) { + var {_r, _tuple, ch, err, s, x, z, $s, $r, $c} = $restore(this, {s, ch}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + $r = s.SkipSpace(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = z.scan((x = new byteReader.ptr(s), new x.constructor.elem(x)), 0); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[2]; + $s = -1; return err; + /* */ } return; } var $f = {$blk: Scan$2, $c: true, $r, _r, _tuple, ch, err, s, x, z, $s};return $f; + }; + $ptrType(ErrNaN).prototype.Error = function Error() { + var err; + err = this; + return err.msg; + }; + ErrNaN.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; + NewFloat = function NewFloat$1(x) { + var {$24r, _r, x, x$1, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (math.IsNaN(x)) { + $panic((x$1 = new ErrNaN.ptr("NewFloat(NaN)"), new x$1.constructor.elem(x$1))); + } + _r = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0).SetFloat64(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: NewFloat$1, $c: true, $r, $24r, _r, x, x$1, $s};return $f; + }; + $pkg.NewFloat = NewFloat; + $ptrType(Float).prototype.SetPrec = function SetPrec(prec) { + var {old, prec, z, $s, $r, $c} = $restore(this, {prec}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + z.acc = 0; + if (prec === 0) { + z.prec = 0; + if (z.form === 1) { + z.acc = makeAcc(z.neg); + z.form = 0; + } + $s = -1; return z; + } + if (prec > 4294967295) { + prec = 4294967295; + } + old = z.prec; + z.prec = ((prec >>> 0)); + /* */ if (z.prec < old) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (z.prec < old) { */ case 1: + $r = z.round(0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return z; + /* */ } return; } var $f = {$blk: SetPrec, $c: true, $r, old, prec, z, $s};return $f; + }; + makeAcc = function makeAcc$1(above) { + var above; + if (above) { + return 1; + } + return -1; + }; + $ptrType(Float).prototype.SetMode = function SetMode(mode) { + var mode, z; + z = this; + z.mode = mode; + z.acc = 0; + return z; + }; + $ptrType(Float).prototype.Prec = function Prec() { + var x; + x = this; + return ((x.prec >>> 0)); + }; + $ptrType(Float).prototype.MinPrec = function MinPrec() { + var x; + x = this; + if (!((x.form === 1))) { + return 0; + } + return ($imul(((x.mant.$length >>> 0)), 32) >>> 0) - x.mant.trailingZeroBits() >>> 0; + }; + $ptrType(Float).prototype.Mode = function Mode() { + var x; + x = this; + return x.mode; + }; + $ptrType(Float).prototype.Acc = function Acc() { + var x; + x = this; + return x.acc; + }; + $ptrType(Float).prototype.Sign = function Sign$2() { + var {x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (x.form === 0) { + $s = -1; return 0; + } + if (x.neg) { + $s = -1; return -1; + } + $s = -1; return 1; + /* */ } return; } var $f = {$blk: Sign$2, $c: true, $r, x, $s};return $f; + }; + $ptrType(Float).prototype.MantExp = function MantExp(mant) { + var {_r, exp, mant, x, $s, $r, $c} = $restore(this, {mant}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + exp = 0; + x = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (x.form === 1) { + exp = ((x.exp >> 0)); + } + /* */ if (!(mant === ptrType.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(mant === ptrType.nil)) { */ case 4: + _r = mant.Copy(x); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + if (mant.form === 1) { + mant.exp = 0; + } + /* } */ case 5: + $s = -1; return exp; + /* */ } return; } var $f = {$blk: MantExp, $c: true, $r, _r, exp, mant, x, $s};return $f; + }; + $ptrType(Float).prototype.setExpAndRound = function setExpAndRound(exp, sbit) { + var {exp, sbit, z, $s, $r, $c} = $restore(this, {exp, sbit}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if ((exp.$high < -1 || (exp.$high === -1 && exp.$low < 2147483648))) { + z.acc = makeAcc(z.neg); + z.form = 0; + $s = -1; return; + } + if ((exp.$high > 0 || (exp.$high === 0 && exp.$low > 2147483647))) { + z.acc = makeAcc(!z.neg); + z.form = 2; + $s = -1; return; + } + z.form = 1; + z.exp = (((exp.$low + ((exp.$high >> 31) * 4294967296)) >> 0)); + $r = z.round(sbit); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: setExpAndRound, $c: true, $r, exp, sbit, z, $s};return $f; + }; + $ptrType(Float).prototype.SetMantExp = function SetMantExp(mant, exp) { + var {_r, exp, mant, x, x$1, z, $s, $r, $c} = $restore(this, {mant, exp}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = z.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = mant.validate(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _r = z.Copy(mant); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* */ if (z.form === 1) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (z.form === 1) { */ case 6: + $r = z.setExpAndRound((x = (new $Int64(0, z.exp)), x$1 = (new $Int64(0, exp)), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)), 0); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + $s = -1; return z; + /* */ } return; } var $f = {$blk: SetMantExp, $c: true, $r, _r, exp, mant, x, x$1, z, $s};return $f; + }; + $ptrType(Float).prototype.Signbit = function Signbit() { + var x; + x = this; + return x.neg; + }; + $ptrType(Float).prototype.IsInf = function IsInf() { + var x; + x = this; + return x.form === 2; + }; + $ptrType(Float).prototype.IsInt = function IsInt$1() { + var {x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (!((x.form === 1))) { + $s = -1; return x.form === 0; + } + if (x.exp <= 0) { + $s = -1; return false; + } + $s = -1; return x.prec <= ((x.exp >>> 0)) || x.MinPrec() <= ((x.exp >>> 0)); + /* */ } return; } var $f = {$blk: IsInt$1, $c: true, $r, x, $s};return $f; + }; + $ptrType(Float).prototype.validate = function validate() { + var {_arg, _arg$1, _r, _r$1, m, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (true) { + $panic(new $String("validate called but debugFloat is not set")); + } + if (!((x.form === 1))) { + $s = -1; return; + } + m = x.mant.$length; + if (m === 0) { + $panic(new $String("nonzero finite number with empty mantissa")); + } + /* */ if ((((x$1 = x.mant, x$2 = m - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) & 2147483648) >>> 0) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((((x$1 = x.mant, x$2 = m - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) & 2147483648) >>> 0) === 0) { */ case 1: + _arg = new Word((x$3 = x.mant, x$4 = m - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4]))); + _r = x.Text(112, 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = new $String(_r); + _r$1 = fmt.Sprintf("msb not set in last word %#x of %s", new sliceType([_arg, _arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 2: + if (x.prec === 0) { + $panic(new $String("zero precision finite number")); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: validate, $c: true, $r, _arg, _arg$1, _r, _r$1, m, x, x$1, x$2, x$3, x$4, $s};return $f; + }; + $ptrType(Float).prototype.round = function round(sbit) { + var {_1, _index, _q, _r, bits$1, inc, lsb, m, n, ntz, r, rbit, sbit, x, x$1, x$2, x$3, x$4, y, z, $s, $r, $c} = $restore(this, {sbit}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = z.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + z.acc = 0; + if (!((z.form === 1))) { + $s = -1; return; + } + m = ((z.mant.$length >>> 0)); + bits$1 = $imul(m, 32) >>> 0; + if (bits$1 <= z.prec) { + $s = -1; return; + } + r = ((((bits$1 - z.prec >>> 0) - 1 >>> 0) >>> 0)); + rbit = (z.mant.bit(r) & 1) >>> 0; + if ((sbit === 0) && ((rbit === 0) || (z.mode === 0))) { + sbit = z.mant.sticky(r); + } + sbit = (sbit & (1)) >>> 0; + n = (_q = ((z.prec + 31 >>> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + if (m > n) { + $copySlice(z.mant, $subslice(z.mant, (m - n >>> 0))); + z.mant = $subslice(z.mant, 0, n); + } + ntz = ($imul(n, 32) >>> 0) - z.prec >>> 0; + lsb = (y = ntz, y < 32 ? (1 << y) : 0) >>> 0; + /* */ if (!((((rbit | sbit) >>> 0) === 0))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((((rbit | sbit) >>> 0) === 0))) { */ case 4: + inc = false; + _1 = z.mode; + if (_1 === (4)) { + inc = z.neg; + } else if (_1 === (2)) { + } else if (_1 === (0)) { + inc = !((rbit === 0)) && (!((sbit === 0)) || !(((((x = z.mant, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) & lsb) >>> 0) === 0))); + } else if (_1 === (1)) { + inc = !((rbit === 0)); + } else if (_1 === (3)) { + inc = true; + } else if (_1 === (5)) { + inc = !z.neg; + } else { + $panic(new $String("unreachable")); + } + z.acc = makeAcc(!(inc === z.neg)); + /* */ if (inc) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (inc) { */ case 6: + _r = addVW($convertSliceType(z.mant, sliceType$2), $convertSliceType(z.mant, sliceType$2), lsb); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 0))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!((_r === 0))) { */ case 8: + if (z.exp >= 2147483647) { + z.form = 2; + $s = -1; return; + } + z.exp = z.exp + (1) >> 0; + shrVU($convertSliceType(z.mant, sliceType$2), $convertSliceType(z.mant, sliceType$2), 1); + _index = n - 1 >>> 0; + (x$2 = z.mant, ((_index < 0 || _index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + _index] = (((x$1 = z.mant, ((_index < 0 || _index >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + _index])) | (2147483648)) >>> 0))); + /* } */ case 9: + /* } */ case 7: + /* } */ case 5: + (x$4 = z.mant, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = (((x$3 = z.mant, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])) & ~((lsb - 1 >>> 0))) >>> 0))); + /* */ if (false) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (false) { */ case 11: + $r = z.validate(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + $s = -1; return; + /* */ } return; } var $f = {$blk: round, $c: true, $r, _1, _index, _q, _r, bits$1, inc, lsb, m, n, ntz, r, rbit, sbit, x, x$1, x$2, x$3, x$4, y, z, $s};return $f; + }; + $ptrType(Float).prototype.setBits64 = function setBits64(neg, x) { + var {neg, s, x, z, $s, $r, $c} = $restore(this, {neg, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (z.prec === 0) { + z.prec = 64; + } + z.acc = 0; + z.neg = neg; + if ((x.$high === 0 && x.$low === 0)) { + z.form = 0; + $s = -1; return z; + } + z.form = 1; + s = bits.LeadingZeros64(x); + z.mant = z.mant.setUint64($shiftLeft64(x, ((s >>> 0)))); + z.exp = (((64 - s >> 0) >> 0)); + /* */ if (z.prec < 64) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (z.prec < 64) { */ case 1: + $r = z.round(0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return z; + /* */ } return; } var $f = {$blk: setBits64, $c: true, $r, neg, s, x, z, $s};return $f; + }; + $ptrType(Float).prototype.SetUint64 = function SetUint64$2(x) { + var {$24r, _r, x, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = z.setBits64(false, x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: SetUint64$2, $c: true, $r, $24r, _r, x, z, $s};return $f; + }; + $ptrType(Float).prototype.SetInt64 = function SetInt64$2(x) { + var {$24r, _r, u, x, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + u = x; + if ((u.$high < 0 || (u.$high === 0 && u.$low < 0))) { + u = new $Int64(-u.$high, -u.$low); + } + _r = z.setBits64((x.$high < 0 || (x.$high === 0 && x.$low < 0)), (new $Uint64(u.$high, u.$low))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: SetInt64$2, $c: true, $r, $24r, _r, u, x, z, $s};return $f; + }; + $ptrType(Float).prototype.SetFloat64 = function SetFloat64$1(x) { + var {_tuple, exp, fmant, x, x$1, x$2, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (z.prec === 0) { + z.prec = 53; + } + if (math.IsNaN(x)) { + $panic((x$1 = new ErrNaN.ptr("Float.SetFloat64(NaN)"), new x$1.constructor.elem(x$1))); + } + z.acc = 0; + z.neg = math.Signbit(x); + if (x === 0) { + z.form = 0; + $s = -1; return z; + } + if (math.IsInf(x, 0)) { + z.form = 2; + $s = -1; return z; + } + z.form = 1; + _tuple = math.Frexp(x); + fmant = _tuple[0]; + exp = _tuple[1]; + z.mant = z.mant.setUint64((x$2 = $shiftLeft64(math.Float64bits(fmant), 11), new $Uint64(2147483648 | x$2.$high, (0 | x$2.$low) >>> 0))); + z.exp = ((exp >> 0)); + /* */ if (z.prec < 53) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (z.prec < 53) { */ case 1: + $r = z.round(0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return z; + /* */ } return; } var $f = {$blk: SetFloat64$1, $c: true, $r, _tuple, exp, fmant, x, x$1, x$2, z, $s};return $f; + }; + fnorm = function fnorm$1(m) { + var c, m, s, x, x$1; + if (false && ((m.$length === 0) || ((x = m.$length - 1 >> 0, ((x < 0 || x >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x])) === 0))) { + $panic(new $String("msw of mantissa is 0")); + } + s = nlz((x$1 = m.$length - 1 >> 0, ((x$1 < 0 || x$1 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$1]))); + if (s > 0) { + c = shlVU($convertSliceType(m, sliceType$2), $convertSliceType(m, sliceType$2), s); + if (false && !((c === 0))) { + $panic(new $String("nlz or shlVU incorrect")); + } + } + return (new $Int64(0, s)); + }; + $ptrType(Float).prototype.SetInt = function SetInt$1(x) { + var {bits$1, x, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + bits$1 = ((x.BitLen() >>> 0)); + if (z.prec === 0) { + z.prec = umax32(bits$1, 64); + } + z.acc = 0; + z.neg = x.neg; + if (x.abs.$length === 0) { + z.form = 0; + $s = -1; return z; + } + z.mant = z.mant.set(x.abs); + fnorm(z.mant); + $r = z.setExpAndRound((new $Int64(0, bits$1)), 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return z; + /* */ } return; } var $f = {$blk: SetInt$1, $c: true, $r, bits$1, x, z, $s};return $f; + }; + $ptrType(Float).prototype.SetRat = function SetRat(x) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, a, b, x, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = [a]; + b = [b]; + z = this; + /* */ if (x.IsInt()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.IsInt()) { */ case 1: + _r = z.SetInt(x.Num()); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + _tmp = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0); + _tmp$1 = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0); + a[0] = $clone(_tmp, Float); + b[0] = $clone(_tmp$1, Float); + _r$1 = a[0].SetInt(x.Num()); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = b[0].SetInt(x.Denom()); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + if (z.prec === 0) { + z.prec = umax32(a[0].prec, b[0].prec); + } + _r$3 = z.Quo(a[0], b[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = _r$3; + $s = 8; case 8: return $24r$1; + /* */ } return; } var $f = {$blk: SetRat, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, a, b, x, z, $s};return $f; + }; + $ptrType(Float).prototype.SetInf = function SetInf(signbit) { + var signbit, z; + z = this; + z.acc = 0; + z.form = 2; + z.neg = signbit; + return z; + }; + $ptrType(Float).prototype.Set = function Set$2(x) { + var {x, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + z.acc = 0; + /* */ if (!(z === x)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(z === x)) { */ case 4: + z.form = x.form; + z.neg = x.neg; + if (x.form === 1) { + z.exp = x.exp; + z.mant = z.mant.set(x.mant); + } + /* */ if (z.prec === 0) { $s = 6; continue; } + /* */ if (z.prec < x.prec) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (z.prec === 0) { */ case 6: + z.prec = x.prec; + $s = 8; continue; + /* } else if (z.prec < x.prec) { */ case 7: + $r = z.round(0); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + /* } */ case 5: + $s = -1; return z; + /* */ } return; } var $f = {$blk: Set$2, $c: true, $r, x, z, $s};return $f; + }; + $ptrType(Float).prototype.Copy = function Copy(x) { + var {x, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (!(z === x)) { + z.prec = x.prec; + z.mode = x.mode; + z.acc = x.acc; + z.form = x.form; + z.neg = x.neg; + if (z.form === 1) { + z.mant = z.mant.set(x.mant); + z.exp = x.exp; + } + } + $s = -1; return z; + /* */ } return; } var $f = {$blk: Copy, $c: true, $r, x, z, $s};return $f; + }; + msb32 = function msb32$1(x) { + var _1, i, x; + i = x.$length - 1 >> 0; + if (i < 0) { + return 0; + } + if (false && (((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) & 2147483648) >>> 0) === 0)) { + $panic(new $String("x not normalized")); + } + _1 = 32; + if (_1 === (32)) { + return ((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)); + } else if (_1 === (64)) { + return ((0 >>> 0)); + } + $panic(new $String("unreachable")); + }; + msb64 = function msb64$1(x) { + var _1, i, v, x, x$1, x$2; + i = x.$length - 1 >> 0; + if (i < 0) { + return new $Uint64(0, 0); + } + if (false && (((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) & 2147483648) >>> 0) === 0)) { + $panic(new $String("x not normalized")); + } + _1 = 32; + if (_1 === (32)) { + v = $shiftLeft64((new $Uint64(0, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))), 32); + if (i > 0) { + v = (x$1 = (new $Uint64(0, (x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$2])))), new $Uint64(v.$high | x$1.$high, (v.$low | x$1.$low) >>> 0)); + } + return v; + } else if (_1 === (64)) { + return (new $Uint64(0, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + } + $panic(new $String("unreachable")); + }; + $ptrType(Float).prototype.Uint64 = function Uint64$1() { + var {_1, u, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _1 = x.form; + if (_1 === (1)) { + if (x.neg) { + $s = -1; return [new $Uint64(0, 0), 1]; + } + if (x.exp <= 0) { + $s = -1; return [new $Uint64(0, 0), -1]; + } + if (x.exp <= 64) { + u = $shiftRightUint64(msb64(x.mant), ((64 - ((x.exp >>> 0)) >>> 0))); + if (x.MinPrec() <= 64) { + $s = -1; return [u, 0]; + } + $s = -1; return [u, -1]; + } + $s = -1; return [new $Uint64(4294967295, 4294967295), -1]; + } else if (_1 === (0)) { + $s = -1; return [new $Uint64(0, 0), 0]; + } else if (_1 === (2)) { + if (x.neg) { + $s = -1; return [new $Uint64(0, 0), 1]; + } + $s = -1; return [new $Uint64(4294967295, 4294967295), -1]; + } + $panic(new $String("unreachable")); + $s = -1; return [new $Uint64(0, 0), 0]; + /* */ } return; } var $f = {$blk: Uint64$1, $c: true, $r, _1, u, x, $s};return $f; + }; + $ptrType(Float).prototype.Int64 = function Int64$1() { + var {_1, acc, i, x, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _1 = x.form; + if (_1 === (1)) { + acc = makeAcc(x.neg); + if (x.exp <= 0) { + $s = -1; return [new $Int64(0, 0), acc]; + } + if (x.exp <= 63) { + i = ((x$1 = $shiftRightUint64(msb64(x.mant), ((64 - ((x.exp >>> 0)) >>> 0))), new $Int64(x$1.$high, x$1.$low))); + if (x.neg) { + i = new $Int64(-i.$high, -i.$low); + } + if (x.MinPrec() <= ((x.exp >>> 0))) { + $s = -1; return [i, 0]; + } + $s = -1; return [i, acc]; + } + if (x.neg) { + if ((x.exp === 64) && (x.MinPrec() === 1)) { + acc = 0; + } + $s = -1; return [new $Int64(-2147483648, 0), acc]; + } + $s = -1; return [new $Int64(2147483647, 4294967295), -1]; + } else if (_1 === (0)) { + $s = -1; return [new $Int64(0, 0), 0]; + } else if (_1 === (2)) { + if (x.neg) { + $s = -1; return [new $Int64(-2147483648, 0), 1]; + } + $s = -1; return [new $Int64(2147483647, 4294967295), -1]; + } + $panic(new $String("unreachable")); + $s = -1; return [new $Int64(0, 0), 0]; + /* */ } return; } var $f = {$blk: Int64$1, $c: true, $r, _1, acc, i, x, x$1, $s};return $f; + }; + $ptrType(Float).prototype.Float32 = function Float32$1() { + var {_1, _r, _tmp, _tmp$1, _tmp$2, bexp, e, mant, p, r, sign, x, y, z, z$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _1 = x.form; + /* */ if (_1 === (1)) { $s = 5; continue; } + /* */ if (_1 === (0)) { $s = 6; continue; } + /* */ if (_1 === (2)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === (1)) { */ case 5: + e = x.exp - 1 >> 0; + p = 24; + if (e < -126) { + p = 150 + ((e >> 0)) >> 0; + if (p < 0 || (p === 0) && (x.mant.sticky(($imul(((x.mant.$length >>> 0)), 32) >>> 0) - 1 >>> 0) === 0)) { + if (x.neg) { + z = 0; + $s = -1; return [-z, 1]; + } + $s = -1; return [0, -1]; + } + if (p === 0) { + if (x.neg) { + $s = -1; return [-1.401298464324817e-45, -1]; + } + $s = -1; return [1.401298464324817e-45, 1]; + } + } + r = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0); + r.prec = ((p >>> 0)); + _r = r.Set(x); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + e = r.exp - 1 >> 0; + if ((r.form === 2) || e > 127) { + if (x.neg) { + $s = -1; return [($fround(math.Inf(-1))), -1]; + } + $s = -1; return [($fround(math.Inf(1))), 1]; + } + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = 0; + sign = _tmp; + bexp = _tmp$1; + mant = _tmp$2; + if (x.neg) { + sign = 2147483648; + } + if (e < -126) { + p = 150 + ((e >> 0)) >> 0; + mant = (y = (((32 - p >> 0) >>> 0)), y < 32 ? (msb32(r.mant) >>> y) : 0) >>> 0; + } else { + bexp = (((e + 127 >> 0) >>> 0)) << 23 >>> 0; + mant = ((msb32(r.mant) >>> 8 >>> 0) & 8388607) >>> 0; + } + $s = -1; return [math.Float32frombits((((sign | bexp) >>> 0) | mant) >>> 0), r.acc]; + /* } else if (_1 === (0)) { */ case 6: + if (x.neg) { + z$1 = 0; + $s = -1; return [-z$1, 0]; + } + $s = -1; return [0, 0]; + /* } else if (_1 === (2)) { */ case 7: + if (x.neg) { + $s = -1; return [($fround(math.Inf(-1))), 0]; + } + $s = -1; return [($fround(math.Inf(1))), 0]; + /* } */ case 8: + case 4: + $panic(new $String("unreachable")); + $s = -1; return [0, 0]; + /* */ } return; } var $f = {$blk: Float32$1, $c: true, $r, _1, _r, _tmp, _tmp$1, _tmp$2, bexp, e, mant, p, r, sign, x, y, z, z$1, $s};return $f; + }; + $ptrType(Float).prototype.Float64 = function Float64$1() { + var {_1, _r, _tmp, _tmp$1, _tmp$2, bexp, e, mant, p, r, sign, x, x$1, x$2, z, z$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _1 = x.form; + /* */ if (_1 === (1)) { $s = 5; continue; } + /* */ if (_1 === (0)) { $s = 6; continue; } + /* */ if (_1 === (2)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === (1)) { */ case 5: + e = x.exp - 1 >> 0; + p = 53; + if (e < -1022) { + p = 1075 + ((e >> 0)) >> 0; + if (p < 0 || (p === 0) && (x.mant.sticky(($imul(((x.mant.$length >>> 0)), 32) >>> 0) - 1 >>> 0) === 0)) { + if (x.neg) { + z = 0; + $s = -1; return [-z, 1]; + } + $s = -1; return [0, -1]; + } + if (p === 0) { + if (x.neg) { + $s = -1; return [-5e-324, -1]; + } + $s = -1; return [5e-324, 1]; + } + } + r = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0); + r.prec = ((p >>> 0)); + _r = r.Set(x); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + e = r.exp - 1 >> 0; + if ((r.form === 2) || e > 1023) { + if (x.neg) { + $s = -1; return [math.Inf(-1), -1]; + } + $s = -1; return [math.Inf(1), 1]; + } + _tmp = new $Uint64(0, 0); + _tmp$1 = new $Uint64(0, 0); + _tmp$2 = new $Uint64(0, 0); + sign = _tmp; + bexp = _tmp$1; + mant = _tmp$2; + if (x.neg) { + sign = new $Uint64(2147483648, 0); + } + if (e < -1022) { + p = 1075 + ((e >> 0)) >> 0; + mant = $shiftRightUint64(msb64(r.mant), (((64 - p >> 0) >>> 0))); + } else { + bexp = $shiftLeft64((new $Uint64(0, (e + 1023 >> 0))), 52); + mant = (x$1 = $shiftRightUint64(msb64(r.mant), 11), new $Uint64(x$1.$high & 1048575, (x$1.$low & 4294967295) >>> 0)); + } + $s = -1; return [math.Float64frombits((x$2 = new $Uint64(sign.$high | bexp.$high, (sign.$low | bexp.$low) >>> 0), new $Uint64(x$2.$high | mant.$high, (x$2.$low | mant.$low) >>> 0))), r.acc]; + /* } else if (_1 === (0)) { */ case 6: + if (x.neg) { + z$1 = 0; + $s = -1; return [-z$1, 0]; + } + $s = -1; return [0, 0]; + /* } else if (_1 === (2)) { */ case 7: + if (x.neg) { + $s = -1; return [math.Inf(-1), 0]; + } + $s = -1; return [math.Inf(1), 0]; + /* } */ case 8: + case 4: + $panic(new $String("unreachable")); + $s = -1; return [0, 0]; + /* */ } return; } var $f = {$blk: Float64$1, $c: true, $r, _1, _r, _tmp, _tmp$1, _tmp$2, bexp, e, mant, p, r, sign, x, x$1, x$2, z, z$1, $s};return $f; + }; + $ptrType(Float).prototype.Int = function Int$1(z) { + var {_1, acc, allBits, exp, x, z, $s, $r, $c} = $restore(this, {z}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (z === ptrType$2.nil && x.form <= 1) { + z = new Int.ptr(false, nat.nil); + } + _1 = x.form; + if (_1 === (1)) { + acc = makeAcc(x.neg); + if (x.exp <= 0) { + $s = -1; return [z.SetInt64(new $Int64(0, 0)), acc]; + } + allBits = $imul(((x.mant.$length >>> 0)), 32) >>> 0; + exp = ((x.exp >>> 0)); + if (x.MinPrec() <= exp) { + acc = 0; + } + if (z === ptrType$2.nil) { + z = new Int.ptr(false, nat.nil); + } + z.neg = x.neg; + if (exp > allBits) { + z.abs = z.abs.shl(x.mant, exp - allBits >>> 0); + } else if (exp < allBits) { + z.abs = z.abs.shr(x.mant, allBits - exp >>> 0); + } else { + z.abs = z.abs.set(x.mant); + } + $s = -1; return [z, acc]; + } else if (_1 === (0)) { + $s = -1; return [z.SetInt64(new $Int64(0, 0)), 0]; + } else if (_1 === (2)) { + $s = -1; return [ptrType$2.nil, makeAcc(x.neg)]; + } + $panic(new $String("unreachable")); + $s = -1; return [ptrType$2.nil, 0]; + /* */ } return; } var $f = {$blk: Int$1, $c: true, $r, _1, acc, allBits, exp, x, z, $s};return $f; + }; + $ptrType(Float).prototype.Rat = function Rat$1(z) { + var {_1, _r, allBits, t, x, z, $s, $r, $c} = $restore(this, {z}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (z === ptrType$1.nil && x.form <= 1) { + z = new Rat.ptr(new Int.ptr(false, nat.nil), new Int.ptr(false, nat.nil)); + } + _1 = x.form; + /* */ if (_1 === (1)) { $s = 5; continue; } + /* */ if (_1 === (0)) { $s = 6; continue; } + /* */ if (_1 === (2)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === (1)) { */ case 5: + allBits = $imul(((x.mant.$length >> 0)), 32); + z.a.neg = x.neg; + /* */ if (x.exp > allBits) { $s = 10; continue; } + /* */ if (x.exp < allBits) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (x.exp > allBits) { */ case 10: + z.a.abs = z.a.abs.shl(x.mant, (((x.exp - allBits >> 0) >>> 0))); + z.b.abs = $subslice(z.b.abs, 0, 0); + $s = 13; continue; + /* } else if (x.exp < allBits) { */ case 11: + z.a.abs = z.a.abs.set(x.mant); + t = z.b.abs.setUint64(new $Uint64(0, 1)); + z.b.abs = t.shl(t, (((allBits - x.exp >> 0) >>> 0))); + _r = z.norm(); /* */ $s = 14; case 14: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = 13; continue; + /* } else { */ case 12: + z.a.abs = z.a.abs.set(x.mant); + z.b.abs = $subslice(z.b.abs, 0, 0); + /* } */ case 13: + case 9: + $s = -1; return [z, 0]; + /* } else if (_1 === (0)) { */ case 6: + $s = -1; return [z.SetInt64(new $Int64(0, 0)), 0]; + /* } else if (_1 === (2)) { */ case 7: + $s = -1; return [ptrType$1.nil, makeAcc(x.neg)]; + /* } */ case 8: + case 4: + $panic(new $String("unreachable")); + $s = -1; return [ptrType$1.nil, 0]; + /* */ } return; } var $f = {$blk: Rat$1, $c: true, $r, _1, _r, allBits, t, x, z, $s};return $f; + }; + $ptrType(Float).prototype.Abs = function Abs$2(x) { + var {_r, x, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = z.Set(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + z.neg = false; + $s = -1; return z; + /* */ } return; } var $f = {$blk: Abs$2, $c: true, $r, _r, x, z, $s};return $f; + }; + $ptrType(Float).prototype.Neg = function Neg$2(x) { + var {_r, x, z, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + _r = z.Set(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + z.neg = !z.neg; + $s = -1; return z; + /* */ } return; } var $f = {$blk: Neg$2, $c: true, $r, _r, x, z, $s};return $f; + }; + validateBinaryOperands = function validateBinaryOperands$1(x, y) { + var x, y; + if (true) { + $panic(new $String("validateBinaryOperands called but debugFloat is not set")); + } + if (x.mant.$length === 0) { + $panic(new $String("empty mantissa for x")); + } + if (y.mant.$length === 0) { + $panic(new $String("empty mantissa for y")); + } + }; + $ptrType(Float).prototype.uadd = function uadd(x, y) { + var {_r, _r$1, _r$2, _r$3, _r$4, al, ex, ey, t, t$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (false) { + validateBinaryOperands(x, y); + } + ex = (x$1 = (new $Int64(0, x.exp)), x$2 = $mul64((new $Int64(0, x.mant.$length)), new $Int64(0, 32)), new $Int64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); + ey = (x$3 = (new $Int64(0, y.exp)), x$4 = $mul64((new $Int64(0, y.mant.$length)), new $Int64(0, 32)), new $Int64(x$3.$high - x$4.$high, x$3.$low - x$4.$low)); + al = alias(z.mant, x.mant) || alias(z.mant, y.mant); + /* */ if ((ex.$high < ey.$high || (ex.$high === ey.$high && ex.$low < ey.$low))) { $s = 2; continue; } + /* */ if ((ex.$high > ey.$high || (ex.$high === ey.$high && ex.$low > ey.$low))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ((ex.$high < ey.$high || (ex.$high === ey.$high && ex.$low < ey.$low))) { */ case 2: + /* */ if (al) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (al) { */ case 6: + t = (nat.nil).shl(y.mant, ((new $Int64(ey.$high - ex.$high, ey.$low - ex.$low).$low >>> 0))); + _r = z.mant.add(x.mant, t); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.mant = _r; + $s = 8; continue; + /* } else { */ case 7: + z.mant = z.mant.shl(y.mant, ((new $Int64(ey.$high - ex.$high, ey.$low - ex.$low).$low >>> 0))); + _r$1 = z.mant.add(x.mant, z.mant); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.mant = _r$1; + /* } */ case 8: + $s = 5; continue; + /* } else if ((ex.$high > ey.$high || (ex.$high === ey.$high && ex.$low > ey.$low))) { */ case 3: + /* */ if (al) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (al) { */ case 11: + t$1 = (nat.nil).shl(x.mant, ((new $Int64(ex.$high - ey.$high, ex.$low - ey.$low).$low >>> 0))); + _r$2 = z.mant.add(t$1, y.mant); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + z.mant = _r$2; + $s = 13; continue; + /* } else { */ case 12: + z.mant = z.mant.shl(x.mant, ((new $Int64(ex.$high - ey.$high, ex.$low - ey.$low).$low >>> 0))); + _r$3 = z.mant.add(z.mant, y.mant); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + z.mant = _r$3; + /* } */ case 13: + ex = ey; + $s = 5; continue; + /* } else { */ case 4: + _r$4 = z.mant.add(x.mant, y.mant); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + z.mant = _r$4; + /* } */ case 5: + case 1: + $r = z.setExpAndRound((x$5 = (x$6 = $mul64((new $Int64(0, z.mant.$length)), new $Int64(0, 32)), new $Int64(ex.$high + x$6.$high, ex.$low + x$6.$low)), x$7 = fnorm(z.mant), new $Int64(x$5.$high - x$7.$high, x$5.$low - x$7.$low)), 0); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: uadd, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, al, ex, ey, t, t$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, z, $s};return $f; + }; + $ptrType(Float).prototype.usub = function usub(x, y) { + var {_r, _r$1, _r$2, _r$3, _r$4, al, ex, ey, t, t$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (false) { + validateBinaryOperands(x, y); + } + ex = (x$1 = (new $Int64(0, x.exp)), x$2 = $mul64((new $Int64(0, x.mant.$length)), new $Int64(0, 32)), new $Int64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); + ey = (x$3 = (new $Int64(0, y.exp)), x$4 = $mul64((new $Int64(0, y.mant.$length)), new $Int64(0, 32)), new $Int64(x$3.$high - x$4.$high, x$3.$low - x$4.$low)); + al = alias(z.mant, x.mant) || alias(z.mant, y.mant); + /* */ if ((ex.$high < ey.$high || (ex.$high === ey.$high && ex.$low < ey.$low))) { $s = 2; continue; } + /* */ if ((ex.$high > ey.$high || (ex.$high === ey.$high && ex.$low > ey.$low))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ((ex.$high < ey.$high || (ex.$high === ey.$high && ex.$low < ey.$low))) { */ case 2: + /* */ if (al) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (al) { */ case 6: + t = (nat.nil).shl(y.mant, ((new $Int64(ey.$high - ex.$high, ey.$low - ex.$low).$low >>> 0))); + _r = t.sub(x.mant, t); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.mant = _r; + $s = 8; continue; + /* } else { */ case 7: + z.mant = z.mant.shl(y.mant, ((new $Int64(ey.$high - ex.$high, ey.$low - ex.$low).$low >>> 0))); + _r$1 = z.mant.sub(x.mant, z.mant); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.mant = _r$1; + /* } */ case 8: + $s = 5; continue; + /* } else if ((ex.$high > ey.$high || (ex.$high === ey.$high && ex.$low > ey.$low))) { */ case 3: + /* */ if (al) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (al) { */ case 11: + t$1 = (nat.nil).shl(x.mant, ((new $Int64(ex.$high - ey.$high, ex.$low - ey.$low).$low >>> 0))); + _r$2 = t$1.sub(t$1, y.mant); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + z.mant = _r$2; + $s = 13; continue; + /* } else { */ case 12: + z.mant = z.mant.shl(x.mant, ((new $Int64(ex.$high - ey.$high, ex.$low - ey.$low).$low >>> 0))); + _r$3 = z.mant.sub(z.mant, y.mant); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + z.mant = _r$3; + /* } */ case 13: + ex = ey; + $s = 5; continue; + /* } else { */ case 4: + _r$4 = z.mant.sub(x.mant, y.mant); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + z.mant = _r$4; + /* } */ case 5: + case 1: + if (z.mant.$length === 0) { + z.acc = 0; + z.form = 0; + z.neg = false; + $s = -1; return; + } + $r = z.setExpAndRound((x$5 = (x$6 = $mul64((new $Int64(0, z.mant.$length)), new $Int64(0, 32)), new $Int64(ex.$high + x$6.$high, ex.$low + x$6.$low)), x$7 = fnorm(z.mant), new $Int64(x$5.$high - x$7.$high, x$5.$low - x$7.$low)), 0); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: usub, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, al, ex, ey, t, t$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, z, $s};return $f; + }; + $ptrType(Float).prototype.umul = function umul(x, y) { + var {_r, _r$1, e, x, x$1, x$2, x$3, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (false) { + validateBinaryOperands(x, y); + } + e = (x$1 = (new $Int64(0, x.exp)), x$2 = (new $Int64(0, y.exp)), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)); + /* */ if (x === y) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x === y) { */ case 1: + _r = z.mant.sqr(x.mant); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + z.mant = _r; + $s = 3; continue; + /* } else { */ case 2: + _r$1 = z.mant.mul(x.mant, y.mant); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z.mant = _r$1; + /* } */ case 3: + $r = z.setExpAndRound((x$3 = fnorm(z.mant), new $Int64(e.$high - x$3.$high, e.$low - x$3.$low)), 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: umul, $c: true, $r, _r, _r$1, e, x, x$1, x$2, x$3, y, z, $s};return $f; + }; + $ptrType(Float).prototype.uquo = function uquo(x, y) { + var {_q, _r, _tuple, d, d$1, e, n, r, sbit, x, x$1, x$2, x$3, x$4, x$5, xadj, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + if (false) { + validateBinaryOperands(x, y); + } + n = (((_q = z.prec / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) + 1 >> 0; + xadj = x.mant; + d = (n - x.mant.$length >> 0) + y.mant.$length >> 0; + if (d > 0) { + xadj = $makeSlice(nat, (x.mant.$length + d >> 0)); + $copySlice($subslice(xadj, d), x.mant); + } + d$1 = xadj.$length - y.mant.$length >> 0; + r = nat.nil; + _r = z.mant.div(nat.nil, xadj, y.mant); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + z.mant = _tuple[0]; + r = _tuple[1]; + e = (x$1 = (x$2 = (new $Int64(0, x.exp)), x$3 = (new $Int64(0, y.exp)), new $Int64(x$2.$high - x$3.$high, x$2.$low - x$3.$low)), x$4 = $mul64((new $Int64(0, (d$1 - z.mant.$length >> 0))), new $Int64(0, 32)), new $Int64(x$1.$high - x$4.$high, x$1.$low - x$4.$low)); + sbit = 0; + if (r.$length > 0) { + sbit = 1; + } + $r = z.setExpAndRound((x$5 = fnorm(z.mant), new $Int64(e.$high - x$5.$high, e.$low - x$5.$low)), sbit); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: uquo, $c: true, $r, _q, _r, _tuple, d, d$1, e, n, r, sbit, x, x$1, x$2, x$3, x$4, x$5, xadj, y, z, $s};return $f; + }; + $ptrType(Float).prototype.ucmp = function ucmp(y) { + var _tmp, _tmp$1, i, j, x, x$1, x$2, xm, y, ym; + x = this; + if (false) { + validateBinaryOperands(x, y); + } + if (x.exp < y.exp) { + return -1; + } else if (x.exp > y.exp) { + return 1; + } + i = x.mant.$length; + j = y.mant.$length; + while (true) { + if (!(i > 0 || j > 0)) { break; } + _tmp = 0; + _tmp$1 = 0; + xm = _tmp; + ym = _tmp$1; + if (i > 0) { + i = i - (1) >> 0; + xm = (x$1 = x.mant, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + } + if (j > 0) { + j = j - (1) >> 0; + ym = (x$2 = y.mant, ((j < 0 || j >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j])); + } + if (xm < ym) { + return -1; + } else if (xm > ym) { + return 1; + } + } + return 0; + }; + $ptrType(Float).prototype.Add = function Add$2(x, y) { + var {$24r, $24r$1, _r, _r$1, x, x$1, y, yneg, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = y.validate(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (z.prec === 0) { + z.prec = umax32(x.prec, y.prec); + } + /* */ if ((x.form === 1) && (y.form === 1)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((x.form === 1) && (y.form === 1)) { */ case 5: + yneg = y.neg; + z.neg = x.neg; + /* */ if (x.neg === yneg) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (x.neg === yneg) { */ case 7: + $r = z.uadd(x, y); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 9; continue; + /* } else { */ case 8: + /* */ if (x.ucmp(y) > 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (x.ucmp(y) > 0) { */ case 11: + $r = z.usub(x, y); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else { */ case 12: + z.neg = !z.neg; + $r = z.usub(y, x); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + /* } */ case 9: + if ((z.form === 0) && (z.mode === 4) && (z.acc === 0)) { + z.neg = true; + } + $s = -1; return z; + /* } */ case 6: + if ((x.form === 2) && (y.form === 2) && !(x.neg === y.neg)) { + z.acc = 0; + z.form = 0; + z.neg = false; + $panic((x$1 = new ErrNaN.ptr("addition of infinities with opposite signs"), new x$1.constructor.elem(x$1))); + } + if ((x.form === 0) && (y.form === 0)) { + z.acc = 0; + z.form = 0; + z.neg = x.neg && y.neg; + $s = -1; return z; + } + /* */ if ((x.form === 2) || (y.form === 0)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if ((x.form === 2) || (y.form === 0)) { */ case 16: + _r = z.Set(x); /* */ $s = 18; case 18: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 19; case 19: return $24r; + /* } */ case 17: + _r$1 = z.Set(y); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 21; case 21: return $24r$1; + /* */ } return; } var $f = {$blk: Add$2, $c: true, $r, $24r, $24r$1, _r, _r$1, x, x$1, y, yneg, z, $s};return $f; + }; + $ptrType(Float).prototype.Sub = function Sub$2(x, y) { + var {$24r, $24r$1, _r, _r$1, x, x$1, y, yneg, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = y.validate(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (z.prec === 0) { + z.prec = umax32(x.prec, y.prec); + } + /* */ if ((x.form === 1) && (y.form === 1)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((x.form === 1) && (y.form === 1)) { */ case 5: + yneg = y.neg; + z.neg = x.neg; + /* */ if (!(x.neg === yneg)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(x.neg === yneg)) { */ case 7: + $r = z.uadd(x, y); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 9; continue; + /* } else { */ case 8: + /* */ if (x.ucmp(y) > 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (x.ucmp(y) > 0) { */ case 11: + $r = z.usub(x, y); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else { */ case 12: + z.neg = !z.neg; + $r = z.usub(y, x); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + /* } */ case 9: + if ((z.form === 0) && (z.mode === 4) && (z.acc === 0)) { + z.neg = true; + } + $s = -1; return z; + /* } */ case 6: + if ((x.form === 2) && (y.form === 2) && x.neg === y.neg) { + z.acc = 0; + z.form = 0; + z.neg = false; + $panic((x$1 = new ErrNaN.ptr("subtraction of infinities with equal signs"), new x$1.constructor.elem(x$1))); + } + if ((x.form === 0) && (y.form === 0)) { + z.acc = 0; + z.form = 0; + z.neg = x.neg && !y.neg; + $s = -1; return z; + } + /* */ if ((x.form === 2) || (y.form === 0)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if ((x.form === 2) || (y.form === 0)) { */ case 16: + _r = z.Set(x); /* */ $s = 18; case 18: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 19; case 19: return $24r; + /* } */ case 17: + _r$1 = z.Neg(y); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 21; case 21: return $24r$1; + /* */ } return; } var $f = {$blk: Sub$2, $c: true, $r, $24r, $24r$1, _r, _r$1, x, x$1, y, yneg, z, $s};return $f; + }; + $ptrType(Float).prototype.Mul = function Mul$2(x, y) { + var {x, x$1, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = y.validate(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (z.prec === 0) { + z.prec = umax32(x.prec, y.prec); + } + z.neg = !(x.neg === y.neg); + /* */ if ((x.form === 1) && (y.form === 1)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((x.form === 1) && (y.form === 1)) { */ case 5: + $r = z.umul(x, y); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return z; + /* } */ case 6: + z.acc = 0; + if ((x.form === 0) && (y.form === 2) || (x.form === 2) && (y.form === 0)) { + z.form = 0; + z.neg = false; + $panic((x$1 = new ErrNaN.ptr("multiplication of zero with infinity"), new x$1.constructor.elem(x$1))); + } + if ((x.form === 2) || (y.form === 2)) { + z.form = 2; + $s = -1; return z; + } + z.form = 0; + $s = -1; return z; + /* */ } return; } var $f = {$blk: Mul$2, $c: true, $r, x, x$1, y, z, $s};return $f; + }; + $ptrType(Float).prototype.Quo = function Quo$2(x, y) { + var {x, x$1, y, z, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + z = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = y.validate(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (z.prec === 0) { + z.prec = umax32(x.prec, y.prec); + } + z.neg = !(x.neg === y.neg); + /* */ if ((x.form === 1) && (y.form === 1)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((x.form === 1) && (y.form === 1)) { */ case 5: + $r = z.uquo(x, y); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return z; + /* } */ case 6: + z.acc = 0; + if ((x.form === 0) && (y.form === 0) || (x.form === 2) && (y.form === 2)) { + z.form = 0; + z.neg = false; + $panic((x$1 = new ErrNaN.ptr("division of zero by zero or infinity by infinity"), new x$1.constructor.elem(x$1))); + } + if ((x.form === 0) || (y.form === 2)) { + z.form = 0; + $s = -1; return z; + } + z.form = 2; + $s = -1; return z; + /* */ } return; } var $f = {$blk: Quo$2, $c: true, $r, x, x$1, y, z, $s};return $f; + }; + $ptrType(Float).prototype.Cmp = function Cmp$2(y) { + var {_1, mx, my, x, y, $s, $r, $c} = $restore(this, {y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = y.validate(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + mx = x.ord(); + my = y.ord(); + if (mx < my) { + $s = -1; return -1; + } else if (mx > my) { + $s = -1; return 1; + } + _1 = mx; + if (_1 === (-1)) { + $s = -1; return y.ucmp(x); + } else if (_1 === (1)) { + $s = -1; return x.ucmp(y); + } + $s = -1; return 0; + /* */ } return; } var $f = {$blk: Cmp$2, $c: true, $r, _1, mx, my, x, y, $s};return $f; + }; + $ptrType(Float).prototype.ord = function ord() { + var _1, m, x; + x = this; + m = 0; + _1 = x.form; + if (_1 === (1)) { + m = 1; + } else if (_1 === (0)) { + return 0; + } else if (_1 === (2)) { + m = 2; + } + if (x.neg) { + m = -m; + } + return m; + }; + umax32 = function umax32$1(x, y) { + var x, y; + if (x > y) { + return x; + } + return y; + }; + $ptrType(decimal).prototype.at = function at(i) { + var d, i, x; + d = this; + if (0 <= i && i < d.mant.$length) { + return (x = d.mant, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + } + return 48; + }; + $ptrType(decimal).prototype.init = function init(m, shift) { + var {_r, m, n, ntz, s, s$1, shift, x, x$1, $s, $r, $c} = $restore(this, {m, shift}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (m.$length === 0) { + x.mant = $subslice(x.mant, 0, 0); + x.exp = 0; + $s = -1; return; + } + if (shift < 0) { + ntz = m.trailingZeroBits(); + s = ((-shift >>> 0)); + if (s >= ntz) { + s = ntz; + } + m = (nat.nil).shr(m, s); + shift = shift + (((s >> 0))) >> 0; + } + if (shift > 0) { + m = (nat.nil).shl(m, ((shift >>> 0))); + shift = 0; + } + _r = m.utoa(10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s$1 = _r; + n = s$1.$length; + x.exp = n; + while (true) { + if (!(n > 0 && ((x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= s$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : s$1.$array[s$1.$offset + x$1])) === 48))) { break; } + n = n - (1) >> 0; + } + x.mant = $appendSlice($subslice(x.mant, 0, 0), $subslice(s$1, 0, n)); + if (shift < 0) { + while (true) { + if (!(shift < -28)) { break; } + shr(x, 28); + shift = shift + (28) >> 0; + } + shr(x, ((-shift >>> 0))); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: init, $c: true, $r, _r, m, n, ntz, s, s$1, shift, x, x$1, $s};return $f; + }; + shr = function shr$2(x, s) { + var ch, ch$1, d, d$1, d$2, mask, n, r, s, w, x, x$1, x$2, x$3, x$4, y, y$1, y$2, y$3, y$4, y$5; + r = 0; + n = 0; + while (true) { + if (!((((y = s, y < 32 ? (n >>> y) : 0) >>> 0) === 0) && r < x.mant.$length)) { break; } + ch = (((x$1 = x.mant, ((r < 0 || r >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + r])) >>> 0)); + r = r + (1) >> 0; + n = (($imul(n, 10) >>> 0) + ch >>> 0) - 48 >>> 0; + } + if (n === 0) { + x.mant = $subslice(x.mant, 0, 0); + return; + } + while (true) { + if (!(((y$1 = s, y$1 < 32 ? (n >>> y$1) : 0) >>> 0) === 0)) { break; } + r = r + (1) >> 0; + n = $imul(n, (10)) >>> 0; + } + x.exp = x.exp + ((1 - r >> 0)) >> 0; + w = 0; + mask = ((y$2 = s, y$2 < 32 ? (1 << y$2) : 0) >>> 0) - 1 >>> 0; + while (true) { + if (!(r < x.mant.$length)) { break; } + ch$1 = (((x$2 = x.mant, ((r < 0 || r >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + r])) >>> 0)); + r = r + (1) >> 0; + d = (y$3 = s, y$3 < 32 ? (n >>> y$3) : 0) >>> 0; + n = (n & (mask)) >>> 0; + (x$3 = x.mant, ((w < 0 || w >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + w] = (((d + 48 >>> 0) << 24 >>> 24)))); + w = w + (1) >> 0; + n = (($imul(n, 10) >>> 0) + ch$1 >>> 0) - 48 >>> 0; + } + while (true) { + if (!(n > 0 && w < x.mant.$length)) { break; } + d$1 = (y$4 = s, y$4 < 32 ? (n >>> y$4) : 0) >>> 0; + n = (n & (mask)) >>> 0; + (x$4 = x.mant, ((w < 0 || w >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + w] = (((d$1 + 48 >>> 0) << 24 >>> 24)))); + w = w + (1) >> 0; + n = $imul(n, 10) >>> 0; + } + x.mant = $subslice(x.mant, 0, w); + while (true) { + if (!(n > 0)) { break; } + d$2 = (y$5 = s, y$5 < 32 ? (n >>> y$5) : 0) >>> 0; + n = (n & (mask)) >>> 0; + x.mant = $append(x.mant, (((d$2 + 48 >>> 0) << 24 >>> 24))); + n = $imul(n, 10) >>> 0; + } + trim(x); + }; + $ptrType(decimal).prototype.String = function String$4() { + var buf, x; + x = this; + if (x.mant.$length === 0) { + return "0"; + } + buf = sliceType$1.nil; + if (x.exp <= 0) { + buf = $makeSlice(sliceType$1, 0, ((2 + (-x.exp) >> 0) + x.mant.$length >> 0)); + buf = $appendSlice(buf, "0."); + buf = appendZeros(buf, -x.exp); + buf = $appendSlice(buf, x.mant); + } else if (x.exp < x.mant.$length) { + buf = $makeSlice(sliceType$1, 0, (1 + x.mant.$length >> 0)); + buf = $appendSlice(buf, $subslice(x.mant, 0, x.exp)); + buf = $append(buf, 46); + buf = $appendSlice(buf, $subslice(x.mant, x.exp)); + } else { + buf = $makeSlice(sliceType$1, 0, x.exp); + buf = $appendSlice(buf, x.mant); + buf = appendZeros(buf, x.exp - x.mant.$length >> 0); + } + return ($bytesToString(buf)); + }; + appendZeros = function appendZeros$1(buf, n) { + var buf, n; + while (true) { + if (!(n > 0)) { break; } + buf = $append(buf, 48); + n = n - (1) >> 0; + } + return buf; + }; + shouldRoundUp = function shouldRoundUp$1(x, n) { + var n, x, x$1, x$2, x$3, x$4; + if (((x$1 = x.mant, ((n < 0 || n >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + n])) === 53) && ((n + 1 >> 0) === x.mant.$length)) { + return n > 0 && !(((((((x$2 = x.mant, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])) - 48 << 24 >>> 24)) & 1) >>> 0) === 0)); + } + return (x$4 = x.mant, ((n < 0 || n >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + n])) >= 53; + }; + $ptrType(decimal).prototype.round = function round$1(n) { + var n, x; + x = this; + if (n < 0 || n >= x.mant.$length) { + return; + } + if (shouldRoundUp(x, n)) { + x.roundUp(n); + } else { + x.roundDown(n); + } + }; + $ptrType(decimal).prototype.roundUp = function roundUp(n) { + var _index, n, x, x$1, x$2, x$3, x$4, x$5; + x = this; + if (n < 0 || n >= x.mant.$length) { + return; + } + while (true) { + if (!(n > 0 && (x$1 = x.mant, x$2 = n - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) >= 57)) { break; } + n = n - (1) >> 0; + } + if (n === 0) { + (x$3 = x.mant, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = 49)); + x.mant = $subslice(x.mant, 0, 1); + x.exp = x.exp + (1) >> 0; + return; + } + _index = n - 1 >> 0; + (x$5 = x.mant, ((_index < 0 || _index >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + _index] = ((x$4 = x.mant, ((_index < 0 || _index >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + _index])) + (1) << 24 >>> 24))); + x.mant = $subslice(x.mant, 0, n); + }; + $ptrType(decimal).prototype.roundDown = function roundDown(n) { + var n, x; + x = this; + if (n < 0 || n >= x.mant.$length) { + return; + } + x.mant = $subslice(x.mant, 0, n); + trim(x); + }; + trim = function trim$1(x) { + var i, x, x$1, x$2; + i = x.mant.$length; + while (true) { + if (!(i > 0 && ((x$1 = x.mant, x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 48))) { break; } + i = i - (1) >> 0; + } + x.mant = $subslice(x.mant, 0, i); + if (i === 0) { + x.exp = 0; + } + }; + addVV = function addVV$1(z, x, y) { + var c, x, y, z; + c = 0; + c = addVV_g(z, x, y); + return c; + }; + subVV = function subVV$1(z, x, y) { + var c, x, y, z; + c = 0; + c = subVV_g(z, x, y); + return c; + }; + addVW = function addVW$1(z, x, y) { + var {$24r, _r, c, fn, x, y, z, $s, $r, $c} = $restore(this, {z, x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = 0; + fn = addVW_g; + if (z.$length > 32) { + fn = addVWlarge; + } + _r = fn(z, x, y); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + c = _r; + $24r = c; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: addVW$1, $c: true, $r, $24r, _r, c, fn, x, y, z, $s};return $f; + }; + subVW = function subVW$1(z, x, y) { + var {$24r, _r, c, fn, x, y, z, $s, $r, $c} = $restore(this, {z, x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = 0; + fn = subVW_g; + if (z.$length > 32) { + fn = subVWlarge; + } + _r = fn(z, x, y); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + c = _r; + $24r = c; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: subVW$1, $c: true, $r, $24r, _r, c, fn, x, y, z, $s};return $f; + }; + shlVU = function shlVU$1(z, x, s) { + var c, s, x, z; + c = 0; + c = shlVU_g(z, x, s); + return c; + }; + shrVU = function shrVU$1(z, x, s) { + var c, s, x, z; + c = 0; + c = shrVU_g(z, x, s); + return c; + }; + mulAddVWW = function mulAddVWW$1(z, x, y, r) { + var c, r, x, y, z; + c = 0; + c = mulAddVWW_g(z, x, y, r); + return c; + }; + addMulVVW = function addMulVVW$1(z, x, y) { + var c, x, y, z; + c = 0; + c = addMulVVW_g(z, x, y); + return c; + }; + mulWW = function mulWW$1(x, y) { + var _tmp, _tmp$1, _tuple, hi, lo, x, y, z0, z1; + z1 = 0; + z0 = 0; + _tuple = bits.Mul(((x >>> 0)), ((y >>> 0))); + hi = _tuple[0]; + lo = _tuple[1]; + _tmp = ((hi >>> 0)); + _tmp$1 = ((lo >>> 0)); + z1 = _tmp; + z0 = _tmp$1; + return [z1, z0]; + }; + mulAddWWW_g = function mulAddWWW_g$1(x, y, c) { + var _tmp, _tmp$1, _tuple, _tuple$1, c, cc, hi, lo, x, y, z0, z1; + z1 = 0; + z0 = 0; + _tuple = bits.Mul(((x >>> 0)), ((y >>> 0))); + hi = _tuple[0]; + lo = _tuple[1]; + cc = 0; + _tuple$1 = bits.Add(lo, ((c >>> 0)), 0); + lo = _tuple$1[0]; + cc = _tuple$1[1]; + _tmp = (((hi + cc >>> 0) >>> 0)); + _tmp$1 = ((lo >>> 0)); + z1 = _tmp; + z0 = _tmp$1; + return [z1, z0]; + }; + nlz = function nlz$1(x) { + var x; + return ((bits.LeadingZeros(((x >>> 0))) >>> 0)); + }; + addVV_g = function addVV_g$1(z, x, y) { + var _tuple, c, cc, i, x, y, z, zi; + c = 0; + i = 0; + while (true) { + if (!(i < z.$length && i < x.$length && i < y.$length)) { break; } + _tuple = bits.Add(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)), ((((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i]) >>> 0)), ((c >>> 0))); + zi = _tuple[0]; + cc = _tuple[1]; + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((zi >>> 0))); + c = ((cc >>> 0)); + i = i + (1) >> 0; + } + return c; + }; + subVV_g = function subVV_g$1(z, x, y) { + var _tuple, c, cc, i, x, y, z, zi; + c = 0; + i = 0; + while (true) { + if (!(i < z.$length && i < x.$length && i < y.$length)) { break; } + _tuple = bits.Sub(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)), ((((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i]) >>> 0)), ((c >>> 0))); + zi = _tuple[0]; + cc = _tuple[1]; + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((zi >>> 0))); + c = ((cc >>> 0)); + i = i + (1) >> 0; + } + return c; + }; + addVW_g = function addVW_g$1(z, x, y) { + var _tuple, c, cc, i, x, y, z, zi; + c = 0; + c = y; + i = 0; + while (true) { + if (!(i < z.$length && i < x.$length)) { break; } + _tuple = bits.Add(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)), ((c >>> 0)), 0); + zi = _tuple[0]; + cc = _tuple[1]; + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((zi >>> 0))); + c = ((cc >>> 0)); + i = i + (1) >> 0; + } + return c; + }; + addVWlarge = function addVWlarge$1(z, x, y) { + var _tuple, c, cc, i, x, y, z, zi; + c = 0; + c = y; + i = 0; + while (true) { + if (!(i < z.$length && i < x.$length)) { break; } + if (c === 0) { + $copySlice($subslice(z, i), $subslice(x, i)); + return c; + } + _tuple = bits.Add(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)), ((c >>> 0)), 0); + zi = _tuple[0]; + cc = _tuple[1]; + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((zi >>> 0))); + c = ((cc >>> 0)); + i = i + (1) >> 0; + } + return c; + }; + subVW_g = function subVW_g$1(z, x, y) { + var _tuple, c, cc, i, x, y, z, zi; + c = 0; + c = y; + i = 0; + while (true) { + if (!(i < z.$length && i < x.$length)) { break; } + _tuple = bits.Sub(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)), ((c >>> 0)), 0); + zi = _tuple[0]; + cc = _tuple[1]; + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((zi >>> 0))); + c = ((cc >>> 0)); + i = i + (1) >> 0; + } + return c; + }; + subVWlarge = function subVWlarge$1(z, x, y) { + var _tuple, c, cc, i, x, y, z, zi; + c = 0; + c = y; + i = 0; + while (true) { + if (!(i < z.$length && i < x.$length)) { break; } + if (c === 0) { + $copySlice($subslice(z, i), $subslice(x, i)); + return c; + } + _tuple = bits.Sub(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)), ((c >>> 0)), 0); + zi = _tuple[0]; + cc = _tuple[1]; + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((zi >>> 0))); + c = ((cc >>> 0)); + i = i + (1) >> 0; + } + return c; + }; + shlVU_g = function shlVU_g$1(z, x, s) { + var $C5$9D, c, i, s, x, x$1, x$2, y, y$1, y$2, y$3, z; + c = 0; + if (s === 0) { + $copySlice(z, x); + return c; + } + if (z.$length === 0) { + return c; + } + s = (s & (31)) >>> 0; + $C5$9D = 32 - s >>> 0; + $C5$9D = ($C5$9D & (31)) >>> 0; + c = (y = $C5$9D, y < 32 ? ((x$1 = z.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >>> y) : 0) >>> 0; + i = z.$length - 1 >> 0; + while (true) { + if (!(i > 0)) { break; } + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((((y$1 = s, y$1 < 32 ? (((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) << y$1) : 0) >>> 0) | ((y$2 = $C5$9D, y$2 < 32 ? ((x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$2])) >>> y$2) : 0) >>> 0)) >>> 0)); + i = i - (1) >> 0; + } + (0 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 0] = ((y$3 = s, y$3 < 32 ? ((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]) << y$3) : 0) >>> 0)); + return c; + }; + shrVU_g = function shrVU_g$1(z, x, s) { + var $C5$9D, c, i, s, x, x$1, x$2, x$3, x$4, y, y$1, y$2, y$3, z; + c = 0; + if (s === 0) { + $copySlice(z, x); + return c; + } + if (z.$length === 0) { + return c; + } + if (!((x.$length === z.$length))) { + $panic(new $String("len(x) != len(z)")); + } + s = (s & (31)) >>> 0; + $C5$9D = 32 - s >>> 0; + $C5$9D = ($C5$9D & (31)) >>> 0; + c = (y = $C5$9D, y < 32 ? ((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]) << y) : 0) >>> 0; + i = 1; + while (true) { + if (!(i < z.$length)) { break; } + (x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$2] = ((((y$1 = s, y$1 < 32 ? ((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >>> y$1) : 0) >>> 0) | ((y$2 = $C5$9D, y$2 < 32 ? (((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) << y$2) : 0) >>> 0)) >>> 0))); + i = i + (1) >> 0; + } + (x$4 = z.$length - 1 >> 0, ((x$4 < 0 || x$4 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$4] = ((y$3 = s, y$3 < 32 ? ((x$3 = z.$length - 1 >> 0, ((x$3 < 0 || x$3 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$3])) >>> y$3) : 0) >>> 0))); + return c; + }; + mulAddVWW_g = function mulAddVWW_g$1(z, x, y, r) { + var _tuple, c, i, r, x, y, z; + c = 0; + c = r; + i = 0; + while (true) { + if (!(i < z.$length && i < x.$length)) { break; } + _tuple = mulAddWWW_g(((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), y, c); + c = _tuple[0]; + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = _tuple[1]); + i = i + (1) >> 0; + } + return c; + }; + addMulVVW_g = function addMulVVW_g$1(z, x, y) { + var _tmp, _tmp$1, _tuple, _tuple$1, c, cc, i, lo, x, y, z, z0, z1; + c = 0; + i = 0; + while (true) { + if (!(i < z.$length && i < x.$length)) { break; } + _tuple = mulAddWWW_g(((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), y, ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i])); + z1 = _tuple[0]; + z0 = _tuple[1]; + _tuple$1 = bits.Add(((z0 >>> 0)), ((c >>> 0)), 0); + lo = _tuple$1[0]; + cc = _tuple$1[1]; + _tmp = ((cc >>> 0)); + _tmp$1 = ((lo >>> 0)); + c = _tmp; + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = _tmp$1); + c = c + (z1) >>> 0; + i = i + (1) >> 0; + } + return c; + }; + divWW = function divWW$1(x1, x0, y, m) { + var _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, b, c, d, dq0, dq1, m, q, qq, r, r0, r1, s, t0, t1, x0, x1, y, y$1, y$2, y$3, y$4, y$5; + q = 0; + r = 0; + s = nlz(y); + if (!((s === 0))) { + x1 = (((y$1 = s, y$1 < 32 ? (x1 << y$1) : 0) >>> 0) | ((y$2 = ((32 - s >>> 0)), y$2 < 32 ? (x0 >>> y$2) : 0) >>> 0)) >>> 0; + x0 = (y$3 = (s), y$3 < 32 ? (x0 << y$3) : 0) >>> 0; + y = (y$4 = (s), y$4 < 32 ? (y << y$4) : 0) >>> 0; + } + d = ((y >>> 0)); + _tuple = bits.Mul(((m >>> 0)), ((x1 >>> 0))); + t1 = _tuple[0]; + t0 = _tuple[1]; + _tuple$1 = bits.Add(t0, ((x0 >>> 0)), 0); + c = _tuple$1[1]; + _tuple$2 = bits.Add(t1, ((x1 >>> 0)), c); + t1 = _tuple$2[0]; + qq = t1; + _tuple$3 = bits.Mul(d, qq); + dq1 = _tuple$3[0]; + dq0 = _tuple$3[1]; + _tuple$4 = bits.Sub(((x0 >>> 0)), dq0, 0); + r0 = _tuple$4[0]; + b = _tuple$4[1]; + _tuple$5 = bits.Sub(((x1 >>> 0)), dq1, b); + r1 = _tuple$5[0]; + if (!((r1 === 0))) { + qq = qq + (1) >>> 0; + r0 = r0 - (d) >>> 0; + } + if (r0 >= d) { + qq = qq + (1) >>> 0; + r0 = r0 - (d) >>> 0; + } + _tmp = ((qq >>> 0)); + _tmp$1 = ((((y$5 = s, y$5 < 32 ? (r0 >>> y$5) : 0) >>> 0) >>> 0)); + q = _tmp; + r = _tmp$1; + return [q, r]; + }; + reciprocalWord = function reciprocalWord$1(d1) { + var _tuple, d1, rec, u, x0, x1, y; + u = ((((y = nlz(d1), y < 32 ? (d1 << y) : 0) >>> 0) >>> 0)); + x1 = ~u >>> 0; + x0 = 4294967295; + _tuple = bits.Div(x1, x0, u); + rec = _tuple[0]; + return ((rec >>> 0)); + }; + Accuracy.prototype.String = function String$5() { + var i, x; + i = this.$val; + i = i - (-1) << 24 >> 24; + if (i < 0 || i >= 3) { + return "Accuracy(" + strconv.FormatInt((new $Int64(0, (i + -1 << 24 >> 24))), 10) + ")"; + } + return $substring("BelowExactAbove", ((i < 0 || i >= _Accuracy_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _Accuracy_index[i]), (x = i + 1 << 24 >> 24, ((x < 0 || x >= _Accuracy_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _Accuracy_index[x]))); + }; + $ptrType(Accuracy).prototype.String = function(...$args) { return new Accuracy(this.$get()).String(...$args); }; + ptrType$1.methods = [{prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Scan", name: "Scan", pkg: "", typ: $funcType([fmt.ScanState, $Int32], [$error], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [ptrType$1, $Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "marshal", name: "marshal", pkg: "math/big", typ: $funcType([], [sliceType$1], false)}, {prop: "RatString", name: "RatString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "FloatString", name: "FloatString", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "SetFloat64", name: "SetFloat64", pkg: "", typ: $funcType([$Float64], [ptrType$1], false)}, {prop: "Float32", name: "Float32", pkg: "", typ: $funcType([], [$Float32, $Bool], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64, $Bool], false)}, {prop: "SetFrac", name: "SetFrac", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$1], false)}, {prop: "SetFrac64", name: "SetFrac64", pkg: "", typ: $funcType([$Int64, $Int64], [ptrType$1], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([ptrType$2], [ptrType$1], false)}, {prop: "SetInt64", name: "SetInt64", pkg: "", typ: $funcType([$Int64], [ptrType$1], false)}, {prop: "SetUint64", name: "SetUint64", pkg: "", typ: $funcType([$Uint64], [ptrType$1], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Neg", name: "Neg", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Inv", name: "Inv", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Sign", name: "Sign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "IsInt", name: "IsInt", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Num", name: "Num", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Denom", name: "Denom", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "norm", name: "norm", pkg: "math/big", typ: $funcType([], [ptrType$1], false)}, {prop: "Cmp", name: "Cmp", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}, {prop: "Quo", name: "Quo", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}]; + nat.methods = [{prop: "probablyPrimeMillerRabin", name: "probablyPrimeMillerRabin", pkg: "math/big", typ: $funcType([$Int, $Bool], [$Bool], false)}, {prop: "probablyPrimeLucas", name: "probablyPrimeLucas", pkg: "math/big", typ: $funcType([], [$Bool], false)}, {prop: "div", name: "div", pkg: "math/big", typ: $funcType([nat, nat, nat], [nat, nat], false)}, {prop: "divW", name: "divW", pkg: "math/big", typ: $funcType([nat, Word], [nat, Word], false)}, {prop: "modW", name: "modW", pkg: "math/big", typ: $funcType([Word], [Word], false)}, {prop: "divLarge", name: "divLarge", pkg: "math/big", typ: $funcType([nat, nat, nat], [nat, nat], false)}, {prop: "divBasic", name: "divBasic", pkg: "math/big", typ: $funcType([nat, nat], [], false)}, {prop: "divRecursive", name: "divRecursive", pkg: "math/big", typ: $funcType([nat, nat], [], false)}, {prop: "divRecursiveStep", name: "divRecursiveStep", pkg: "math/big", typ: $funcType([nat, nat, $Int, ptrType$3, sliceType$3], [], false)}, {prop: "scan", name: "scan", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int, $Bool], [nat, $Int, $Int, $error], false)}, {prop: "utoa", name: "utoa", pkg: "math/big", typ: $funcType([$Int], [sliceType$1], false)}, {prop: "itoa", name: "itoa", pkg: "math/big", typ: $funcType([$Bool, $Int], [sliceType$1], false)}, {prop: "convertWords", name: "convertWords", pkg: "math/big", typ: $funcType([sliceType$1, Word, $Int, Word, sliceType$4], [], false)}, {prop: "expWW", name: "expWW", pkg: "math/big", typ: $funcType([Word, Word], [nat], false)}, {prop: "clear", name: "clear", pkg: "math/big", typ: $funcType([], [], false)}, {prop: "norm", name: "norm", pkg: "math/big", typ: $funcType([], [nat], false)}, {prop: "make", name: "make", pkg: "math/big", typ: $funcType([$Int], [nat], false)}, {prop: "setWord", name: "setWord", pkg: "math/big", typ: $funcType([Word], [nat], false)}, {prop: "setUint64", name: "setUint64", pkg: "math/big", typ: $funcType([$Uint64], [nat], false)}, {prop: "set", name: "set", pkg: "math/big", typ: $funcType([nat], [nat], false)}, {prop: "add", name: "add", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "sub", name: "sub", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "cmp", name: "cmp", pkg: "math/big", typ: $funcType([nat], [$Int], false)}, {prop: "mulAddWW", name: "mulAddWW", pkg: "math/big", typ: $funcType([nat, Word, Word], [nat], false)}, {prop: "montgomery", name: "montgomery", pkg: "math/big", typ: $funcType([nat, nat, nat, Word, $Int], [nat], false)}, {prop: "mul", name: "mul", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "sqr", name: "sqr", pkg: "math/big", typ: $funcType([nat], [nat], false)}, {prop: "mulRange", name: "mulRange", pkg: "math/big", typ: $funcType([$Uint64, $Uint64], [nat], false)}, {prop: "bitLen", name: "bitLen", pkg: "math/big", typ: $funcType([], [$Int], false)}, {prop: "trailingZeroBits", name: "trailingZeroBits", pkg: "math/big", typ: $funcType([], [$Uint], false)}, {prop: "shl", name: "shl", pkg: "math/big", typ: $funcType([nat, $Uint], [nat], false)}, {prop: "shr", name: "shr", pkg: "math/big", typ: $funcType([nat, $Uint], [nat], false)}, {prop: "setBit", name: "setBit", pkg: "math/big", typ: $funcType([nat, $Uint, $Uint], [nat], false)}, {prop: "bit", name: "bit", pkg: "math/big", typ: $funcType([$Uint], [$Uint], false)}, {prop: "sticky", name: "sticky", pkg: "math/big", typ: $funcType([$Uint], [$Uint], false)}, {prop: "and", name: "and", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "andNot", name: "andNot", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "or", name: "or", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "xor", name: "xor", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "random", name: "random", pkg: "math/big", typ: $funcType([ptrType$5, nat, $Int], [nat], false)}, {prop: "expNN", name: "expNN", pkg: "math/big", typ: $funcType([nat, nat, nat], [nat], false)}, {prop: "expNNWindowed", name: "expNNWindowed", pkg: "math/big", typ: $funcType([nat, nat, nat], [nat], false)}, {prop: "expNNMontgomery", name: "expNNMontgomery", pkg: "math/big", typ: $funcType([nat, nat, nat], [nat], false)}, {prop: "bytes", name: "bytes", pkg: "math/big", typ: $funcType([sliceType$1], [$Int], false)}, {prop: "setBytes", name: "setBytes", pkg: "math/big", typ: $funcType([sliceType$1], [nat], false)}, {prop: "sqrt", name: "sqrt", pkg: "math/big", typ: $funcType([nat], [nat], false)}]; + byteReader.methods = [{prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$2.methods = [{prop: "scaleDenom", name: "scaleDenom", pkg: "math/big", typ: $funcType([ptrType$2, nat], [], false)}, {prop: "ProbablyPrime", name: "ProbablyPrime", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Text", name: "Text", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "Append", name: "Append", pkg: "", typ: $funcType([sliceType$1, $Int], [sliceType$1], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([fmt.State, $Int32], [], false)}, {prop: "scan", name: "scan", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int], [ptrType$2, $Int, $error], false)}, {prop: "Scan", name: "Scan", pkg: "", typ: $funcType([fmt.ScanState, $Int32], [$error], false)}, {prop: "Sign", name: "Sign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SetInt64", name: "SetInt64", pkg: "", typ: $funcType([$Int64], [ptrType$2], false)}, {prop: "SetUint64", name: "SetUint64", pkg: "", typ: $funcType([$Uint64], [ptrType$2], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "SetBits", name: "SetBits", pkg: "", typ: $funcType([sliceType$2], [ptrType$2], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Neg", name: "Neg", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "MulRange", name: "MulRange", pkg: "", typ: $funcType([$Int64, $Int64], [ptrType$2], false)}, {prop: "Binomial", name: "Binomial", pkg: "", typ: $funcType([$Int64, $Int64], [ptrType$2], false)}, {prop: "Quo", name: "Quo", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Rem", name: "Rem", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "QuoRem", name: "QuoRem", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2, ptrType$2], false)}, {prop: "Div", name: "Div", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Mod", name: "Mod", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "DivMod", name: "DivMod", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2, ptrType$2], false)}, {prop: "Cmp", name: "Cmp", pkg: "", typ: $funcType([ptrType$2], [$Int], false)}, {prop: "CmpAbs", name: "CmpAbs", pkg: "", typ: $funcType([ptrType$2], [$Int], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "IsInt64", name: "IsInt64", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsUint64", name: "IsUint64", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String, $Int], [ptrType$2, $Bool], false)}, {prop: "setFromScanner", name: "setFromScanner", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int], [ptrType$2, $Bool], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$1], [ptrType$2], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "FillBytes", name: "FillBytes", pkg: "", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "BitLen", name: "BitLen", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "TrailingZeroBits", name: "TrailingZeroBits", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "Exp", name: "Exp", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "GCD", name: "GCD", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "lehmerGCD", name: "lehmerGCD", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Rand", name: "Rand", pkg: "", typ: $funcType([ptrType$5, ptrType$2], [ptrType$2], false)}, {prop: "ModInverse", name: "ModInverse", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "modSqrt3Mod4Prime", name: "modSqrt3Mod4Prime", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "modSqrt5Mod8Prime", name: "modSqrt5Mod8Prime", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "modSqrtTonelliShanks", name: "modSqrtTonelliShanks", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "ModSqrt", name: "ModSqrt", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Lsh", name: "Lsh", pkg: "", typ: $funcType([ptrType$2, $Uint], [ptrType$2], false)}, {prop: "Rsh", name: "Rsh", pkg: "", typ: $funcType([ptrType$2, $Uint], [ptrType$2], false)}, {prop: "Bit", name: "Bit", pkg: "", typ: $funcType([$Int], [$Uint], false)}, {prop: "SetBit", name: "SetBit", pkg: "", typ: $funcType([ptrType$2, $Int, $Uint], [ptrType$2], false)}, {prop: "And", name: "And", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "AndNot", name: "AndNot", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Or", name: "Or", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Xor", name: "Xor", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Not", name: "Not", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Sqrt", name: "Sqrt", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}]; + ptrType.methods = [{prop: "Sqrt", name: "Sqrt", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "sqrtInverse", name: "sqrtInverse", pkg: "math/big", typ: $funcType([ptrType], [], false)}, {prop: "Text", name: "Text", pkg: "", typ: $funcType([$Uint8, $Int], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Append", name: "Append", pkg: "", typ: $funcType([sliceType$1, $Uint8, $Int], [sliceType$1], false)}, {prop: "fmtB", name: "fmtB", pkg: "math/big", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "fmtX", name: "fmtX", pkg: "math/big", typ: $funcType([sliceType$1, $Int], [sliceType$1], false)}, {prop: "fmtP", name: "fmtP", pkg: "math/big", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([fmt.State, $Int32], [], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [ptrType, $Bool], false)}, {prop: "scan", name: "scan", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int], [ptrType, $Int, $error], false)}, {prop: "pow5", name: "pow5", pkg: "math/big", typ: $funcType([$Uint64], [ptrType], false)}, {prop: "Parse", name: "Parse", pkg: "", typ: $funcType([$String, $Int], [ptrType, $Int, $error], false)}, {prop: "Scan", name: "Scan", pkg: "", typ: $funcType([fmt.ScanState, $Int32], [$error], false)}, {prop: "SetPrec", name: "SetPrec", pkg: "", typ: $funcType([$Uint], [ptrType], false)}, {prop: "SetMode", name: "SetMode", pkg: "", typ: $funcType([RoundingMode], [ptrType], false)}, {prop: "Prec", name: "Prec", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "MinPrec", name: "MinPrec", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [RoundingMode], false)}, {prop: "Acc", name: "Acc", pkg: "", typ: $funcType([], [Accuracy], false)}, {prop: "Sign", name: "Sign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MantExp", name: "MantExp", pkg: "", typ: $funcType([ptrType], [$Int], false)}, {prop: "setExpAndRound", name: "setExpAndRound", pkg: "math/big", typ: $funcType([$Int64, $Uint], [], false)}, {prop: "SetMantExp", name: "SetMantExp", pkg: "", typ: $funcType([ptrType, $Int], [ptrType], false)}, {prop: "Signbit", name: "Signbit", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsInf", name: "IsInf", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsInt", name: "IsInt", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "validate", name: "validate", pkg: "math/big", typ: $funcType([], [], false)}, {prop: "round", name: "round", pkg: "math/big", typ: $funcType([$Uint], [], false)}, {prop: "setBits64", name: "setBits64", pkg: "math/big", typ: $funcType([$Bool, $Uint64], [ptrType], false)}, {prop: "SetUint64", name: "SetUint64", pkg: "", typ: $funcType([$Uint64], [ptrType], false)}, {prop: "SetInt64", name: "SetInt64", pkg: "", typ: $funcType([$Int64], [ptrType], false)}, {prop: "SetFloat64", name: "SetFloat64", pkg: "", typ: $funcType([$Float64], [ptrType], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([ptrType$2], [ptrType], false)}, {prop: "SetRat", name: "SetRat", pkg: "", typ: $funcType([ptrType$1], [ptrType], false)}, {prop: "SetInf", name: "SetInf", pkg: "", typ: $funcType([$Bool], [ptrType], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64, Accuracy], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64, Accuracy], false)}, {prop: "Float32", name: "Float32", pkg: "", typ: $funcType([], [$Float32, Accuracy], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64, Accuracy], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([ptrType$2], [ptrType$2, Accuracy], false)}, {prop: "Rat", name: "Rat", pkg: "", typ: $funcType([ptrType$1], [ptrType$1, Accuracy], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Neg", name: "Neg", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "uadd", name: "uadd", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "usub", name: "usub", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "umul", name: "umul", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "uquo", name: "uquo", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "ucmp", name: "ucmp", pkg: "math/big", typ: $funcType([ptrType], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Quo", name: "Quo", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Cmp", name: "Cmp", pkg: "", typ: $funcType([ptrType], [$Int], false)}, {prop: "ord", name: "ord", pkg: "math/big", typ: $funcType([], [$Int], false)}]; + ErrNaN.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + RoundingMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + Accuracy.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$6.methods = [{prop: "at", name: "at", pkg: "math/big", typ: $funcType([$Int], [$Uint8], false)}, {prop: "init", name: "init", pkg: "math/big", typ: $funcType([nat, $Int], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "round", name: "round", pkg: "math/big", typ: $funcType([$Int], [], false)}, {prop: "roundUp", name: "roundUp", pkg: "math/big", typ: $funcType([$Int], [], false)}, {prop: "roundDown", name: "roundDown", pkg: "math/big", typ: $funcType([$Int], [], false)}]; + Rat.init("math/big", [{prop: "a", name: "a", embedded: false, exported: false, typ: Int, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: Int, tag: ""}]); + divisor.init("math/big", [{prop: "bbb", name: "bbb", embedded: false, exported: false, typ: nat, tag: ""}, {prop: "nbits", name: "nbits", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ndigits", name: "ndigits", embedded: false, exported: false, typ: $Int, tag: ""}]); + nat.init(Word); + byteReader.init("", [{prop: "ScanState", name: "ScanState", embedded: true, exported: true, typ: fmt.ScanState, tag: ""}]); + Int.init("math/big", [{prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "abs", name: "abs", embedded: false, exported: false, typ: nat, tag: ""}]); + Float.init("math/big", [{prop: "prec", name: "prec", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: RoundingMode, tag: ""}, {prop: "acc", name: "acc", embedded: false, exported: false, typ: Accuracy, tag: ""}, {prop: "form", name: "form", embedded: false, exported: false, typ: form, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "mant", name: "mant", embedded: false, exported: false, typ: nat, tag: ""}, {prop: "exp", name: "exp", embedded: false, exported: false, typ: $Int32, tag: ""}]); + ErrNaN.init("math/big", [{prop: "msg", name: "msg", embedded: false, exported: false, typ: $String, tag: ""}]); + decimal.init("math/big", [{prop: "mant", name: "mant", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "exp", name: "exp", embedded: false, exported: false, typ: $Int, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = binary.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = rand.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + threeOnce = new structType.ptr(new nosync.Once.ptr(false, false), ptrType.nil); + cacheBase10 = new structType$1.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), arrayType.zero()); + natPool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError); + _RoundingMode_index = $toNativeArray($kindUint8, [0, 13, 26, 32, 44, 57, 70]); + errNoDigits = errors.New("number has no digits"); + errInvalSep = errors.New("'_' must separate successive digits"); + leafSize = 8; + natOne = new nat([1]); + natTwo = new nat([2]); + natFive = new nat([5]); + natTen = new nat([10]); + karatsubaThreshold = 40; + basicSqrThreshold = 20; + karatsubaSqrThreshold = 260; + intOne = new Int.ptr(false, natOne); + pow5tab = $toNativeArray($kindUint64, [new $Uint64(0, 1), new $Uint64(0, 5), new $Uint64(0, 25), new $Uint64(0, 125), new $Uint64(0, 625), new $Uint64(0, 3125), new $Uint64(0, 15625), new $Uint64(0, 78125), new $Uint64(0, 390625), new $Uint64(0, 1953125), new $Uint64(0, 9765625), new $Uint64(0, 48828125), new $Uint64(0, 244140625), new $Uint64(0, 1220703125), new $Uint64(1, 1808548329), new $Uint64(7, 452807053), new $Uint64(35, 2264035265), new $Uint64(177, 2730241733), new $Uint64(888, 766306777), new $Uint64(4440, 3831533885), new $Uint64(22204, 1977800241), new $Uint64(111022, 1299066613), new $Uint64(555111, 2200365769), new $Uint64(2775557, 2411894253), new $Uint64(13877787, 3469536673), new $Uint64(69388939, 167814181), new $Uint64(346944695, 839070905), new $Uint64(1734723475, 4195354525)]); + _Accuracy_index = $toNativeArray($kindUint8, [0, 5, 10, 15]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/constant"] = (function() { + var $pkg = {}, $init, fmt, token, math, big, bits, strconv, strings, sync, utf8, Kind, Value, unknownVal, boolVal, stringVal, int64Val, intVal, ratVal, floatVal, complexVal, floatVal0, _r, _Kind_index, reverse, newInt, newRat, newFloat, i64toi, i64tor, i64tof, itor, itof, rtof, vtoc, makeInt, makeRat, makeFloat, makeComplex, makeFloatFromLiteral, smallInt, smallFloat64, smallFloat, MakeUnknown, MakeBool, MakeString, MakeInt64, MakeFloat64, MakeFromLiteral, BoolVal, StringVal, Int64Val, Uint64Val, Float32Val, Float64Val, BitLen, Sign, MakeImag, Real, Imag, ToInt, ToFloat, ToComplex, is32bit, is63bit, UnaryOp, ord, match, match0, BinaryOp, add, sub, mul, quo, Shift, cmpZero, Compare; + fmt = $packages["fmt"]; + token = $packages["go/token"]; + math = $packages["math"]; + big = $packages["math/big"]; + bits = $packages["math/bits"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + sync = $packages["sync"]; + utf8 = $packages["unicode/utf8"]; + Kind = $newType(4, $kindInt, "constant.Kind", true, "go/constant", true, null); + Value = $newType(8, $kindInterface, "constant.Value", true, "go/constant", true, null); + unknownVal = $newType(0, $kindStruct, "constant.unknownVal", true, "go/constant", false, function() { this.$val = this; }); + boolVal = $newType(1, $kindBool, "constant.boolVal", true, "go/constant", false, null); + stringVal = $newType(0, $kindStruct, "constant.stringVal", true, "go/constant", false, function(mu_, s_, l_, r_) { + this.$val = this; + if (arguments.length === 0) { + this.mu = new sync.Mutex.ptr(0, 0); + this.s = ""; + this.l = ptrType.nil; + this.r = ptrType.nil; + return; + } + this.mu = mu_; + this.s = s_; + this.l = l_; + this.r = r_; + }); + int64Val = $newType(8, $kindInt64, "constant.int64Val", true, "go/constant", false, null); + intVal = $newType(0, $kindStruct, "constant.intVal", true, "go/constant", false, function(val_) { + this.$val = this; + if (arguments.length === 0) { + this.val = ptrType$2.nil; + return; + } + this.val = val_; + }); + ratVal = $newType(0, $kindStruct, "constant.ratVal", true, "go/constant", false, function(val_) { + this.$val = this; + if (arguments.length === 0) { + this.val = ptrType$3.nil; + return; + } + this.val = val_; + }); + floatVal = $newType(0, $kindStruct, "constant.floatVal", true, "go/constant", false, function(val_) { + this.$val = this; + if (arguments.length === 0) { + this.val = ptrType$1.nil; + return; + } + this.val = val_; + }); + complexVal = $newType(0, $kindStruct, "constant.complexVal", true, "go/constant", false, function(re_, im_) { + this.$val = this; + if (arguments.length === 0) { + this.re = $ifaceNil; + this.im = $ifaceNil; + return; + } + this.re = re_; + this.im = im_; + }); + $pkg.Kind = Kind; + $pkg.Value = Value; + $pkg.unknownVal = unknownVal; + $pkg.boolVal = boolVal; + $pkg.stringVal = stringVal; + $pkg.int64Val = int64Val; + $pkg.intVal = intVal; + $pkg.ratVal = ratVal; + $pkg.floatVal = floatVal; + $pkg.complexVal = complexVal; + $pkg.$finishSetup = function() { + $ptrType(unknownVal).prototype.Kind = function Kind$1() { + return 0; + }; + unknownVal.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; + boolVal.prototype.Kind = function Kind$2() { + return 1; + }; + $ptrType(boolVal).prototype.Kind = function(...$args) { return new boolVal(this.$get()).Kind(...$args); }; + $ptrType(stringVal).prototype.Kind = function Kind$3() { + return 2; + }; + int64Val.prototype.Kind = function Kind$4() { + return 3; + }; + $ptrType(int64Val).prototype.Kind = function(...$args) { return this.$get().Kind(...$args); }; + $ptrType(intVal).prototype.Kind = function Kind$5() { + return 3; + }; + intVal.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; + $ptrType(ratVal).prototype.Kind = function Kind$6() { + return 4; + }; + ratVal.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; + $ptrType(floatVal).prototype.Kind = function Kind$7() { + return 4; + }; + floatVal.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; + $ptrType(complexVal).prototype.Kind = function Kind$8() { + return 5; + }; + complexVal.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; + $ptrType(unknownVal).prototype.String = function String() { + return "unknown"; + }; + unknownVal.prototype.String = function(...$args) { return this.$val.String(...$args); }; + boolVal.prototype.String = function String$1() { + var x; + x = this.$val; + return strconv.FormatBool((x)); + }; + $ptrType(boolVal).prototype.String = function(...$args) { return new boolVal(this.$get()).String(...$args); }; + $ptrType(stringVal).prototype.String = function String$2() { + var {_r$1, _r$2, _tuple, i, n, s, size, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r$1 = x.string(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = strconv.Quote(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + s = _r$2; + if (utf8.RuneCountInString(s) > 72) { + i = 0; + n = 0; + while (true) { + if (!(n < 69)) { break; } + _tuple = utf8.DecodeRuneInString($substring(s, i)); + size = _tuple[1]; + i = i + (size) >> 0; + n = n + (1) >> 0; + } + s = $substring(s, 0, i) + "..."; + } + $s = -1; return s; + /* */ } return; } var $f = {$blk: String$2, $c: true, $r, _r$1, _r$2, _tuple, i, n, s, size, x, $s};return $f; + }; + $ptrType(stringVal).prototype.string = function string() { + var {_r$1, _r$2, _r$3, s, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + $r = x.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(x.l === ptrType.nil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(x.l === ptrType.nil)) { */ case 2: + _r$1 = x.appendReverse(sliceType.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = reverse(_r$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = strings.Join(_r$2, ""); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + x.s = _r$3; + x.l = ptrType.nil; + x.r = ptrType.nil; + /* } */ case 3: + s = x.s; + $r = x.mu.Unlock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return s; + /* */ } return; } var $f = {$blk: string, $c: true, $r, _r$1, _r$2, _r$3, s, x, $s};return $f; + }; + reverse = function reverse$1(x) { + var _tmp, _tmp$1, i, n, x, x$1, x$2; + n = x.$length; + i = 0; + while (true) { + if (!((i + i >> 0) < n)) { break; } + _tmp = (x$1 = (n - 1 >> 0) - i >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + _tmp$1 = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]); + ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = _tmp); + (x$2 = (n - 1 >> 0) - i >> 0, ((x$2 < 0 || x$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$2] = _tmp$1)); + i = i + (1) >> 0; + } + return x; + }; + $ptrType(stringVal).prototype.appendReverse = function appendReverse(list) { + var {_r$1, l, list, s, x, y, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + y = x; + /* while (true) { */ case 1: + /* if (!(!(y.r === ptrType.nil))) { break; } */ if(!(!(y.r === ptrType.nil))) { $s = 2; continue; } + $r = y.r.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = y.r.appendReverse(list); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = _r$1; + $r = y.r.mu.Unlock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + l = y.l; + /* */ if (!(y === x)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(y === x)) { */ case 6: + $r = y.mu.Unlock(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + $r = l.mu.Lock(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + y = l; + $s = 1; continue; + case 2: + s = y.s; + /* */ if (!(y === x)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!(y === x)) { */ case 10: + $r = y.mu.Unlock(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + $s = -1; return $append(list, s); + /* */ } return; } var $f = {$blk: appendReverse, $c: true, $r, _r$1, l, list, s, x, y, $s};return $f; + }; + int64Val.prototype.String = function String$3() { + var x; + x = this; + return strconv.FormatInt((new $Int64(x.$high, x.$low)), 10); + }; + $ptrType(int64Val).prototype.String = function(...$args) { return this.$get().String(...$args); }; + $ptrType(intVal).prototype.String = function String$4() { + var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r$1 = x.val.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$4, $c: true, $r, $24r, _r$1, x, $s};return $f; + }; + intVal.prototype.String = function(...$args) { return this.$val.String(...$args); }; + $ptrType(ratVal).prototype.String = function String$5() { + var {$24r, _r$1, _r$2, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r$1 = rtof($clone(x, ratVal)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = $clone(_r$1, floatVal).String(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: String$5, $c: true, $r, $24r, _r$1, _r$2, x, $s};return $f; + }; + ratVal.prototype.String = function(...$args) { return this.$val.String(...$args); }; + $ptrType(floatVal).prototype.String = function String$6() { + var {$24r, $24r$1, $24r$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, am, d, e, exp, f, m, mant, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + mant = [mant]; + x = this; + f = x.val; + /* */ if (f.IsInf()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (f.IsInf()) { */ case 1: + _r$1 = f.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$2 = f.Float64(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + x$1 = _tuple[0]; + _r$3 = f.Sign(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if ((_r$3 === 0) === ((x$1 === 0)) && !math.IsInf(x$1, 0)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((_r$3 === 0) === ((x$1 === 0)) && !math.IsInf(x$1, 0)) { */ case 6: + _r$4 = fmt.Sprintf("%.6g", new sliceType$1([new $Float64(x$1)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$1 = _r$4; + $s = 10; case 10: return $24r$1; + /* } */ case 7: + mant[0] = new big.Float.ptr(0, 0, 0, 0, false, big.nat.nil, 0); + _r$5 = f.MantExp(mant[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + exp = _r$5; + _r$6 = mant[0].Float64(); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$1 = _r$6; + m = _tuple$1[0]; + d = (exp) * 0.3010299956639812; + e = (new $Int64(0, d)); + m = m * (math.Pow(10, d - ($flatten64(e)))); + am = math.Abs(m); + if (am < 0.9999995) { + m = m * (10); + e = (x$2 = new $Int64(0, 1), new $Int64(e.$high - x$2.$high, e.$low - x$2.$low)); + } else if (am >= 10) { + m = m / (10); + e = (x$3 = new $Int64(0, 1), new $Int64(e.$high + x$3.$high, e.$low + x$3.$low)); + } + _r$7 = fmt.Sprintf("%.6ge%+d", new sliceType$1([new $Float64(m), e])); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$2 = _r$7; + $s = 14; case 14: return $24r$2; + /* */ } return; } var $f = {$blk: String$6, $c: true, $r, $24r, $24r$1, $24r$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, am, d, e, exp, f, m, mant, x, x$1, x$2, x$3, $s};return $f; + }; + floatVal.prototype.String = function(...$args) { return this.$val.String(...$args); }; + $ptrType(complexVal).prototype.String = function String$7() { + var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r$1 = fmt.Sprintf("(%s + %si)", new sliceType$1([x.re, x.im])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$7, $c: true, $r, $24r, _r$1, x, $s};return $f; + }; + complexVal.prototype.String = function(...$args) { return this.$val.String(...$args); }; + $ptrType(unknownVal).prototype.ExactString = function ExactString() { + var x; + x = this; + return $clone(x, unknownVal).String(); + }; + unknownVal.prototype.ExactString = function(...$args) { return this.$val.ExactString(...$args); }; + boolVal.prototype.ExactString = function ExactString$1() { + var x; + x = this.$val; + return new boolVal(x).String(); + }; + $ptrType(boolVal).prototype.ExactString = function(...$args) { return new boolVal(this.$get()).ExactString(...$args); }; + $ptrType(stringVal).prototype.ExactString = function ExactString$2() { + var {$24r, _r$1, _r$2, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r$1 = x.string(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = strconv.Quote(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: ExactString$2, $c: true, $r, $24r, _r$1, _r$2, x, $s};return $f; + }; + int64Val.prototype.ExactString = function ExactString$3() { + var x; + x = this; + return x.String(); + }; + $ptrType(int64Val).prototype.ExactString = function(...$args) { return this.$get().ExactString(...$args); }; + $ptrType(intVal).prototype.ExactString = function ExactString$4() { + var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r$1 = $clone(x, intVal).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ExactString$4, $c: true, $r, $24r, _r$1, x, $s};return $f; + }; + intVal.prototype.ExactString = function(...$args) { return this.$val.ExactString(...$args); }; + $ptrType(ratVal).prototype.ExactString = function ExactString$5() { + var {$24r, $24r$1, _r$1, _r$2, r, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + r = x.val; + /* */ if (r.IsInt()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (r.IsInt()) { */ case 1: + _r$1 = r.Num().String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$2 = r.String(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: ExactString$5, $c: true, $r, $24r, $24r$1, _r$1, _r$2, r, x, $s};return $f; + }; + ratVal.prototype.ExactString = function(...$args) { return this.$val.ExactString(...$args); }; + $ptrType(floatVal).prototype.ExactString = function ExactString$6() { + var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r$1 = x.val.Text(112, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ExactString$6, $c: true, $r, $24r, _r$1, x, $s};return $f; + }; + floatVal.prototype.ExactString = function(...$args) { return this.$val.ExactString(...$args); }; + $ptrType(complexVal).prototype.ExactString = function ExactString$7() { + var {$24r, _arg, _arg$1, _r$1, _r$2, _r$3, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r$1 = x.re.ExactString(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = new $String(_r$1); + _r$2 = x.im.ExactString(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$2); + _r$3 = fmt.Sprintf("(%s + %si)", new sliceType$1([_arg, _arg$1])); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: ExactString$7, $c: true, $r, $24r, _arg, _arg$1, _r$1, _r$2, _r$3, x, $s};return $f; + }; + complexVal.prototype.ExactString = function(...$args) { return this.$val.ExactString(...$args); }; + newInt = function newInt$1() { + return new big.Int.ptr(false, big.nat.nil); + }; + newRat = function newRat$1() { + return new big.Rat.ptr(new big.Int.ptr(false, big.nat.nil), new big.Int.ptr(false, big.nat.nil)); + }; + newFloat = function newFloat$1() { + var {$24r, _r$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = new big.Float.ptr(0, 0, 0, 0, false, big.nat.nil, 0).SetPrec(512); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: newFloat$1, $c: true, $r, $24r, _r$1, $s};return $f; + }; + i64toi = function i64toi$1(x) { + var x; + return new intVal.ptr(newInt().SetInt64((new $Int64(x.$high, x.$low)))); + }; + i64tor = function i64tor$1(x) { + var x; + return new ratVal.ptr(newRat().SetInt64((new $Int64(x.$high, x.$low)))); + }; + i64tof = function i64tof$1(x) { + var {$24r, _r$1, _r$2, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = newFloat(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.SetInt64((new $Int64(x.$high, x.$low))); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = new floatVal.ptr(_r$2); + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: i64tof$1, $c: true, $r, $24r, _r$1, _r$2, x, $s};return $f; + }; + itor = function itor$1(x) { + var x; + return new ratVal.ptr(newRat().SetInt(x.val)); + }; + itof = function itof$1(x) { + var {$24r, _r$1, _r$2, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = newFloat(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.SetInt(x.val); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = new floatVal.ptr(_r$2); + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: itof$1, $c: true, $r, $24r, _r$1, _r$2, x, $s};return $f; + }; + rtof = function rtof$1(x) { + var {$24r, _r$1, _r$2, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = newFloat(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.SetRat(x.val); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = new floatVal.ptr(_r$2); + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: rtof$1, $c: true, $r, $24r, _r$1, _r$2, x, $s};return $f; + }; + vtoc = function vtoc$1(x) { + var x; + return new complexVal.ptr(x, new int64Val(0, 0)); + }; + makeInt = function makeInt$1(x) { + var x, x$1, x$2; + if (x.IsInt64()) { + return ((x$1 = x.Int64(), new int64Val(x$1.$high, x$1.$low))); + } + return (x$2 = new intVal.ptr(x), new x$2.constructor.elem(x$2)); + }; + makeRat = function makeRat$1(x) { + var {$24r, _r$1, _r$2, a, b, x, x$1, x$2, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = x.Num(); + b = x.Denom(); + if (smallInt(a) && smallInt(b)) { + $s = -1; return (x$1 = new ratVal.ptr(x), new x$1.constructor.elem(x$1)); + } + _r$1 = newFloat(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.SetRat(x); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = (x$2 = new floatVal.ptr(_r$2), new x$2.constructor.elem(x$2)); + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: makeRat$1, $c: true, $r, $24r, _r$1, _r$2, a, b, x, x$1, x$2, $s};return $f; + }; + makeFloat = function makeFloat$1(x) { + var {_r$1, x, x$1, x$2, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = x.Sign(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1 === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$1 === 0) { */ case 1: + $s = -1; return new floatVal0.constructor.elem(floatVal0); + /* } */ case 2: + if (x.IsInf()) { + $s = -1; return (x$1 = new unknownVal.ptr(), new x$1.constructor.elem(x$1)); + } + $s = -1; return (x$2 = new floatVal.ptr(x), new x$2.constructor.elem(x$2)); + /* */ } return; } var $f = {$blk: makeFloat$1, $c: true, $r, _r$1, x, x$1, x$2, $s};return $f; + }; + makeComplex = function makeComplex$1(re, im) { + var {_r$1, _r$2, _v, im, re, x, x$1, $s, $r, $c} = $restore(this, {re, im}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = re.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (_r$1 === 0) { _v = true; $s = 3; continue s; } + _r$2 = im.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2 === 0; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $s = -1; return (x = new unknownVal.ptr(), new x.constructor.elem(x)); + /* } */ case 2: + $s = -1; return (x$1 = new complexVal.ptr(re, im), new x$1.constructor.elem(x$1)); + /* */ } return; } var $f = {$blk: makeComplex$1, $c: true, $r, _r$1, _r$2, _v, im, re, x, x$1, $s};return $f; + }; + makeFloatFromLiteral = function makeFloatFromLiteral$1(lit) { + var {$24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, f, lit, ok, ok$1, r, x, $s, $r, $c} = $restore(this, {lit}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = newFloat(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.SetString(lit); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + f = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ok) { */ case 3: + _r$3 = smallFloat(f); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$3) { */ case 5: + _r$4 = f.Sign(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4 === 0) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_r$4 === 0) { */ case 8: + lit = "0"; + /* } */ case 9: + _r$5 = newRat().SetString(lit); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = _r$5; + r = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (ok$1) { + $s = -1; return (x = new ratVal.ptr(r), new x.constructor.elem(x)); + } + /* } */ case 6: + _r$6 = makeFloat(f); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r = _r$6; + $s = 13; case 13: return $24r; + /* } */ case 4: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: makeFloatFromLiteral$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, f, lit, ok, ok$1, r, x, $s};return $f; + }; + smallInt = function smallInt$1(x) { + var x; + return x.BitLen() < 4096; + }; + smallFloat64 = function smallFloat64$1(x) { + var _tuple, e, x; + if (math.IsInf(x, 0)) { + return false; + } + _tuple = math.Frexp(x); + e = _tuple[1]; + return -4096 < e && e < 4096; + }; + smallFloat = function smallFloat$1(x) { + var {_r$1, e, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (x.IsInf()) { + $s = -1; return false; + } + _r$1 = x.MantExp(ptrType$1.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + e = _r$1; + $s = -1; return -4096 < e && e < 4096; + /* */ } return; } var $f = {$blk: smallFloat$1, $c: true, $r, _r$1, e, x, $s};return $f; + }; + MakeUnknown = function MakeUnknown$1() { + var x; + return (x = new unknownVal.ptr(), new x.constructor.elem(x)); + }; + $pkg.MakeUnknown = MakeUnknown; + MakeBool = function MakeBool$1(b) { + var b; + return new boolVal((b)); + }; + $pkg.MakeBool = MakeBool; + MakeString = function MakeString$1(s) { + var s; + return new stringVal.ptr(new sync.Mutex.ptr(0, 0), s, ptrType.nil, ptrType.nil); + }; + $pkg.MakeString = MakeString; + MakeInt64 = function MakeInt64$1(x) { + var x; + return (new int64Val(x.$high, x.$low)); + }; + $pkg.MakeInt64 = MakeInt64; + MakeFloat64 = function MakeFloat64$1(x) { + var {$24r, $24r$1, _r$1, _r$2, _r$3, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (math.IsInf(x, 0) || math.IsNaN(x)) { + $s = -1; return (x$1 = new unknownVal.ptr(), new x$1.constructor.elem(x$1)); + } + /* */ if (smallFloat64(x)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (smallFloat64(x)) { */ case 1: + _r$1 = newRat().SetFloat64(x + 0); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = (x$2 = new ratVal.ptr(_r$1), new x$2.constructor.elem(x$2)); + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$2 = newFloat(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.SetFloat64(x + 0); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = (x$3 = new floatVal.ptr(_r$3), new x$3.constructor.elem(x$3)); + $s = 7; case 7: return $24r$1; + /* */ } return; } var $f = {$blk: MakeFloat64$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, x, x$1, x$2, x$3, $s};return $f; + }; + $pkg.MakeFloat64 = MakeFloat64; + MakeFromLiteral = function MakeFromLiteral$1(lit, tok, zero) { + var {$24r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _tuple$3, code, err, err$1, err$2, im, lit, n, n$1, ok, s, tok, x, x$1, x$2, x$3, x$4, zero, $s, $r, $c} = $restore(this, {lit, tok, zero}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!((zero === 0))) { + $panic(new $String("MakeFromLiteral called with non-zero last argument")); + } + _1 = tok; + /* */ if (_1 === (5)) { $s = 2; continue; } + /* */ if (_1 === (6)) { $s = 3; continue; } + /* */ if (_1 === (7)) { $s = 4; continue; } + /* */ if (_1 === (8)) { $s = 5; continue; } + /* */ if (_1 === (9)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_1 === (5)) { */ case 2: + _tuple = strconv.ParseInt(lit, 0, 64); + x = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + $s = -1; return (new int64Val(x.$high, x.$low)); + } + _r$1 = newInt().SetString(lit, 0); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + x$1 = _tuple$1[0]; + ok = _tuple$1[1]; + if (ok) { + $s = -1; return (x$2 = new intVal.ptr(x$1), new x$2.constructor.elem(x$2)); + } + $s = 8; continue; + /* } else if (_1 === (6)) { */ case 3: + _r$2 = makeFloatFromLiteral(lit); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x$3 = _r$2; + if (!($interfaceIsEqual(x$3, $ifaceNil))) { + $s = -1; return x$3; + } + $s = 8; continue; + /* } else if (_1 === (7)) { */ case 4: + n = lit.length; + /* */ if (n > 0 && (lit.charCodeAt((n - 1 >> 0)) === 105)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (n > 0 && (lit.charCodeAt((n - 1 >> 0)) === 105)) { */ case 11: + _r$3 = makeFloatFromLiteral($substring(lit, 0, (n - 1 >> 0))); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + im = _r$3; + /* */ if (!($interfaceIsEqual(im, $ifaceNil))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!($interfaceIsEqual(im, $ifaceNil))) { */ case 14: + _r$4 = makeComplex(new int64Val(0, 0), im); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 17; case 17: return $24r; + /* } */ case 15: + /* } */ case 12: + $s = 8; continue; + /* } else if (_1 === (8)) { */ case 5: + n$1 = lit.length; + if (n$1 >= 2) { + _tuple$2 = strconv.UnquoteChar($substring(lit, 1, (n$1 - 1 >> 0)), 39); + code = _tuple$2[0]; + err$1 = _tuple$2[3]; + if ($interfaceIsEqual(err$1, $ifaceNil)) { + $s = -1; return MakeInt64((new $Int64(0, code))); + } + } + $s = 8; continue; + /* } else if (_1 === (9)) { */ case 6: + _tuple$3 = strconv.Unquote(lit); + s = _tuple$3[0]; + err$2 = _tuple$3[1]; + if ($interfaceIsEqual(err$2, $ifaceNil)) { + $s = -1; return MakeString(s); + } + $s = 8; continue; + /* } else { */ case 7: + _r$5 = fmt.Sprintf("%v is not a valid token", new sliceType$1([new token.Token(tok)])); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $panic(new $String(_r$5)); + /* } */ case 8: + case 1: + $s = -1; return (x$4 = new unknownVal.ptr(), new x$4.constructor.elem(x$4)); + /* */ } return; } var $f = {$blk: MakeFromLiteral$1, $c: true, $r, $24r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _tuple$3, code, err, err$1, err$2, im, lit, n, n$1, ok, s, tok, x, x$1, x$2, x$3, x$4, zero, $s};return $f; + }; + $pkg.MakeFromLiteral = MakeFromLiteral; + BoolVal = function BoolVal$1(x) { + var {_r$1, _ref, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, boolVal, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, boolVal, true)[1]) { */ case 1: + x$1 = _ref.$val; + $s = -1; return (x$1); + /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 2: + x$2 = $clone(_ref.$val, unknownVal); + $s = -1; return false; + /* } else { */ case 3: + x$3 = _ref; + _r$1 = fmt.Sprintf("%v not a Bool", new sliceType$1([x$3])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 4: + $s = -1; return false; + /* */ } return; } var $f = {$blk: BoolVal$1, $c: true, $r, _r$1, _ref, x, x$1, x$2, x$3, $s};return $f; + }; + $pkg.BoolVal = BoolVal; + StringVal = function StringVal$1(x) { + var {$24r, _r$1, _r$2, _ref, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, ptrType, true)[1]) { */ case 1: + x$1 = _ref.$val; + _r$1 = x$1.string(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 6; case 6: return $24r; + /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 2: + x$2 = $clone(_ref.$val, unknownVal); + $s = -1; return ""; + /* } else { */ case 3: + x$3 = _ref; + _r$2 = fmt.Sprintf("%v not a String", new sliceType$1([x$3])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $panic(new $String(_r$2)); + /* } */ case 4: + $s = -1; return ""; + /* */ } return; } var $f = {$blk: StringVal$1, $c: true, $r, $24r, _r$1, _r$2, _ref, x, x$1, x$2, x$3, $s};return $f; + }; + $pkg.StringVal = StringVal; + Int64Val = function Int64Val$1(x) { + var {_r$1, _ref, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: + x$1 = _ref.$val; + $s = -1; return [(new $Int64(x$1.$high, x$1.$low)), true]; + /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: + x$2 = $clone(_ref.$val, intVal); + $s = -1; return [x$2.val.Int64(), false]; + /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 3: + x$3 = $clone(_ref.$val, unknownVal); + $s = -1; return [new $Int64(0, 0), false]; + /* } else { */ case 4: + x$4 = _ref; + _r$1 = fmt.Sprintf("%v not an Int", new sliceType$1([x$4])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 5: + $s = -1; return [new $Int64(0, 0), false]; + /* */ } return; } var $f = {$blk: Int64Val$1, $c: true, $r, _r$1, _ref, x, x$1, x$2, x$3, x$4, $s};return $f; + }; + $pkg.Int64Val = Int64Val; + Uint64Val = function Uint64Val$1(x) { + var {_r$1, _ref, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: + x$1 = _ref.$val; + $s = -1; return [(new $Uint64(x$1.$high, x$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))]; + /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: + x$2 = $clone(_ref.$val, intVal); + $s = -1; return [x$2.val.Uint64(), x$2.val.IsUint64()]; + /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 3: + x$3 = $clone(_ref.$val, unknownVal); + $s = -1; return [new $Uint64(0, 0), false]; + /* } else { */ case 4: + x$4 = _ref; + _r$1 = fmt.Sprintf("%v not an Int", new sliceType$1([x$4])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 5: + $s = -1; return [new $Uint64(0, 0), false]; + /* */ } return; } var $f = {$blk: Uint64Val$1, $c: true, $r, _r$1, _ref, x, x$1, x$2, x$3, x$4, $s};return $f; + }; + $pkg.Uint64Val = Uint64Val; + Float32Val = function Float32Val$1(x) { + var {$24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, acc, acc$1, f, f$1, f$2, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: + x$1 = _ref.$val; + f = ($flatten64(x$1)); + $s = -1; return [f, (x$7 = (new int64Val(0, f)), (x$7.$high === x$1.$high && x$7.$low === x$1.$low))]; + /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: + x$2 = $clone(_ref.$val, intVal); + _r$1 = newFloat(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.SetInt(x$2.val); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Float32(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + f$1 = _tuple[0]; + acc = _tuple[1]; + $s = -1; return [f$1, acc === 0]; + /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 3: + x$3 = $clone(_ref.$val, ratVal); + _r$4 = x$3.val.Float32(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 12; case 12: return $24r; + /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 4: + x$4 = $clone(_ref.$val, floatVal); + _r$5 = x$4.val.Float32(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = _r$5; + f$2 = _tuple$1[0]; + acc$1 = _tuple$1[1]; + $s = -1; return [f$2, acc$1 === 0]; + /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 5: + x$5 = $clone(_ref.$val, unknownVal); + $s = -1; return [0, false]; + /* } else { */ case 6: + x$6 = _ref; + _r$6 = fmt.Sprintf("%v not a Float", new sliceType$1([x$6])); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $panic(new $String(_r$6)); + /* } */ case 7: + $s = -1; return [0, false]; + /* */ } return; } var $f = {$blk: Float32Val$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, acc, acc$1, f, f$1, f$2, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + }; + $pkg.Float32Val = Float32Val; + Float64Val = function Float64Val$1(x) { + var {$24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, acc, acc$1, f, f$1, f$2, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: + x$1 = _ref.$val; + f = ($flatten64((new $Int64(x$1.$high, x$1.$low)))); + $s = -1; return [f, (x$7 = (new int64Val(0, f)), (x$7.$high === x$1.$high && x$7.$low === x$1.$low))]; + /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: + x$2 = $clone(_ref.$val, intVal); + _r$1 = newFloat(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.SetInt(x$2.val); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Float64(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + f$1 = _tuple[0]; + acc = _tuple[1]; + $s = -1; return [f$1, acc === 0]; + /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 3: + x$3 = $clone(_ref.$val, ratVal); + _r$4 = x$3.val.Float64(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 12; case 12: return $24r; + /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 4: + x$4 = $clone(_ref.$val, floatVal); + _r$5 = x$4.val.Float64(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = _r$5; + f$2 = _tuple$1[0]; + acc$1 = _tuple$1[1]; + $s = -1; return [f$2, acc$1 === 0]; + /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 5: + x$5 = $clone(_ref.$val, unknownVal); + $s = -1; return [0, false]; + /* } else { */ case 6: + x$6 = _ref; + _r$6 = fmt.Sprintf("%v not a Float", new sliceType$1([x$6])); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $panic(new $String(_r$6)); + /* } */ case 7: + $s = -1; return [0, false]; + /* */ } return; } var $f = {$blk: Float64Val$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, acc, acc$1, f, f$1, f$2, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + }; + $pkg.Float64Val = Float64Val; + BitLen = function BitLen$1(x) { + var {_r$1, _ref, u, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: + x$1 = _ref.$val; + u = (new $Uint64(x$1.$high, x$1.$low)); + if ((x$1.$high < 0 || (x$1.$high === 0 && x$1.$low < 0))) { + u = ((x$5 = new int64Val(-x$1.$high, -x$1.$low), new $Uint64(x$5.$high, x$5.$low))); + } + $s = -1; return 64 - bits.LeadingZeros64(u) >> 0; + /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: + x$2 = $clone(_ref.$val, intVal); + $s = -1; return x$2.val.BitLen(); + /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 3: + x$3 = $clone(_ref.$val, unknownVal); + $s = -1; return 0; + /* } else { */ case 4: + x$4 = _ref; + _r$1 = fmt.Sprintf("%v not an Int", new sliceType$1([x$4])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 5: + $s = -1; return 0; + /* */ } return; } var $f = {$blk: BitLen$1, $c: true, $r, _r$1, _ref, u, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + }; + $pkg.BitLen = BitLen; + Sign = function Sign$1(x) { + var {$24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _ref, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: + x$1 = _ref.$val; + if ((x$1.$high < 0 || (x$1.$high === 0 && x$1.$low < 0))) { + $s = -1; return -1; + } else if ((x$1.$high > 0 || (x$1.$high === 0 && x$1.$low > 0))) { + $s = -1; return 1; + } + $s = -1; return 0; + /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: + x$2 = $clone(_ref.$val, intVal); + $s = -1; return x$2.val.Sign(); + /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 3: + x$3 = $clone(_ref.$val, ratVal); + $s = -1; return x$3.val.Sign(); + /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 4: + x$4 = $clone(_ref.$val, floatVal); + _r$1 = x$4.val.Sign(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 10; case 10: return $24r; + /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 5: + x$5 = $clone(_ref.$val, complexVal); + _r$2 = Sign(x$5.re); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = Sign(x$5.im); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = _r$2 | _r$3; + $s = 13; case 13: return $24r$1; + /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 6: + x$6 = $clone(_ref.$val, unknownVal); + $s = -1; return 1; + /* } else { */ case 7: + x$7 = _ref; + _r$4 = fmt.Sprintf("%v not numeric", new sliceType$1([x$7])); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $panic(new $String(_r$4)); + /* } */ case 8: + $s = -1; return 0; + /* */ } return; } var $f = {$blk: Sign$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _ref, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + }; + $pkg.Sign = Sign; + MakeImag = function MakeImag$1(x) { + var {$24r, _r$1, _r$2, _ref, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, unknownVal, true)[1]) { */ case 1: + $s = -1; return x; + /* } else if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { */ case 2: + _r$1 = makeComplex(new int64Val(0, 0), x); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 6; case 6: return $24r; + /* } else { */ case 3: + _r$2 = fmt.Sprintf("%v not Int or Float", new sliceType$1([x])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $panic(new $String(_r$2)); + /* } */ case 4: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: MakeImag$1, $c: true, $r, $24r, _r$1, _r$2, _ref, x, $s};return $f; + }; + $pkg.MakeImag = MakeImag; + Real = function Real$1(x) { + var {_r$1, _ref, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, unknownVal, true)[1] || $assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, unknownVal, true)[1] || $assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { */ case 1: + x$1 = _ref; + $s = -1; return x$1; + /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 2: + x$2 = $clone(_ref.$val, complexVal); + $s = -1; return x$2.re; + /* } else { */ case 3: + x$3 = _ref; + _r$1 = fmt.Sprintf("%v not numeric", new sliceType$1([x$3])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 4: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Real$1, $c: true, $r, _r$1, _ref, x, x$1, x$2, x$3, $s};return $f; + }; + $pkg.Real = Real; + Imag = function Imag$1(x) { + var {_r$1, _ref, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, unknownVal, true)[1]) { */ case 1: + x$1 = $clone(_ref.$val, unknownVal); + $s = -1; return new x$1.constructor.elem(x$1); + /* } else if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { */ case 2: + x$2 = _ref; + $s = -1; return new int64Val(0, 0); + /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 3: + x$3 = $clone(_ref.$val, complexVal); + $s = -1; return x$3.im; + /* } else { */ case 4: + x$4 = _ref; + _r$1 = fmt.Sprintf("%v not numeric", new sliceType$1([x$4])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 5: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Imag$1, $c: true, $r, _r$1, _ref, x, x$1, x$2, x$3, x$4, $s};return $f; + }; + $pkg.Imag = Imag; + ToInt = function ToInt$1(x) { + var {$24r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, acc, acc$1, acc$2, i, re, t, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1]) { */ case 1: + x$1 = _ref; + $s = -1; return x$1; + /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 2: + x$2 = $clone(_ref.$val, ratVal); + if (x$2.val.IsInt()) { + $s = -1; return makeInt(x$2.val.Num()); + } + $s = 5; continue; + /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 3: + x$3 = $clone(_ref.$val, floatVal); + _r$1 = smallFloat(x$3.val); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r$1) { */ case 6: + i = newInt(); + _r$2 = x$3.val.Int(i); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + acc = _tuple[1]; + if (acc === 0) { + $s = -1; return makeInt(i); + } + t = new big.Float.ptr(0, 0, 0, 0, false, big.nat.nil, 0); + _r$3 = t.SetPrec(508); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + t.SetMode(2); + _r$4 = t.Set(x$3.val); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + _r$5 = t.Int(i); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = _r$5; + acc$1 = _tuple$1[1]; + if (acc$1 === 0) { + $s = -1; return makeInt(i); + } + t.SetMode(3); + _r$6 = t.Set(x$3.val); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + _r$7 = t.Int(i); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$2 = _r$7; + acc$2 = _tuple$2[1]; + if (acc$2 === 0) { + $s = -1; return makeInt(i); + } + /* } */ case 7: + $s = 5; continue; + /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 4: + x$4 = $clone(_ref.$val, complexVal); + _r$8 = ToFloat(new x$4.constructor.elem(x$4)); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + re = _r$8; + _r$9 = re.Kind(); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9 === 4) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_r$9 === 4) { */ case 16: + _r$10 = ToInt(re); /* */ $s = 19; case 19: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $24r = _r$10; + $s = 20; case 20: return $24r; + /* } */ case 17: + /* } */ case 5: + $s = -1; return (x$5 = new unknownVal.ptr(), new x$5.constructor.elem(x$5)); + /* */ } return; } var $f = {$blk: ToInt$1, $c: true, $r, $24r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, acc, acc$1, acc$2, i, re, t, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + }; + $pkg.ToInt = ToInt; + ToFloat = function ToFloat$1(x) { + var {$24r, $24r$1, _r$1, _r$2, _r$3, _ref, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: + x$1 = _ref.$val; + $s = -1; return (x$5 = i64tor(x$1), new x$5.constructor.elem(x$5)); + /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: + x$2 = $clone(_ref.$val, intVal); + if (smallInt(x$2.val)) { + $s = -1; return (x$6 = itor($clone(x$2, intVal)), new x$6.constructor.elem(x$6)); + } + _r$1 = itof($clone(x$2, intVal)); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = (x$7 = _r$1, new x$7.constructor.elem(x$7)); + $s = 7; case 7: return $24r; + /* } else if ($assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { */ case 3: + x$3 = _ref; + $s = -1; return x$3; + /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 4: + x$4 = $clone(_ref.$val, complexVal); + _r$2 = Sign(x$4.im); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2 === 0) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_r$2 === 0) { */ case 8: + _r$3 = ToFloat(x$4.re); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = _r$3; + $s = 12; case 12: return $24r$1; + /* } */ case 9: + /* } */ case 5: + $s = -1; return (x$8 = new unknownVal.ptr(), new x$8.constructor.elem(x$8)); + /* */ } return; } var $f = {$blk: ToFloat$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _ref, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s};return $f; + }; + $pkg.ToFloat = ToFloat; + ToComplex = function ToComplex$1(x) { + var _ref, x, x$1, x$2, x$3, x$4; + _ref = x; + if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { + x$1 = _ref; + return (x$3 = vtoc(x$1), new x$3.constructor.elem(x$3)); + } else if ($assertType(_ref, complexVal, true)[1]) { + x$2 = $clone(_ref.$val, complexVal); + return new x$2.constructor.elem(x$2); + } + return (x$4 = new unknownVal.ptr(), new x$4.constructor.elem(x$4)); + }; + $pkg.ToComplex = ToComplex; + is32bit = function is32bit$1(x) { + var x; + return (-1 < x.$high || (-1 === x.$high && 2147483648 <= x.$low)) && (x.$high < 0 || (x.$high === 0 && x.$low <= 2147483647)); + }; + is63bit = function is63bit$1(x) { + var x; + return (-1073741824 < x.$high || (-1073741824 === x.$high && 0 <= x.$low)) && (x.$high < 1073741823 || (x.$high === 1073741823 && x.$low <= 4294967295)); + }; + UnaryOp = function UnaryOp$1(op, y, prec) { + var {$24r, $24r$1, $24r$2, _1, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, im, op, prec, re, y, y$1, y$10, y$11, y$12, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, z, z$1, $s, $r, $c} = $restore(this, {op, y, prec}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _1 = op; + /* */ if (_1 === (12)) { $s = 2; continue; } + /* */ if (_1 === (13)) { $s = 3; continue; } + /* */ if (_1 === (19)) { $s = 4; continue; } + /* */ if (_1 === (43)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (12)) { */ case 2: + _ref = y; + if ($assertType(_ref, unknownVal, true)[1] || $assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1] || $assertType(_ref, complexVal, true)[1]) { + $s = -1; return y; + } + $s = 6; continue; + /* } else if (_1 === (13)) { */ case 3: + _ref$1 = y; + /* */ if ($assertType(_ref$1, unknownVal, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref$1, int64Val, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref$1, intVal, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref$1, ratVal, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref$1, floatVal, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref$1, complexVal, true)[1]) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ($assertType(_ref$1, unknownVal, true)[1]) { */ case 7: + y$1 = $clone(_ref$1.$val, unknownVal); + $s = -1; return new y$1.constructor.elem(y$1); + /* } else if ($assertType(_ref$1, int64Val, true)[1]) { */ case 8: + y$2 = _ref$1.$val; + z = new int64Val(-y$2.$high, -y$2.$low); + if (!((z.$high === y$2.$high && z.$low === y$2.$low))) { + $s = -1; return z; + } + $s = -1; return makeInt(newInt().Neg(big.NewInt((new $Int64(y$2.$high, y$2.$low))))); + /* } else if ($assertType(_ref$1, intVal, true)[1]) { */ case 9: + y$3 = $clone(_ref$1.$val, intVal); + $s = -1; return makeInt(newInt().Neg(y$3.val)); + /* } else if ($assertType(_ref$1, ratVal, true)[1]) { */ case 10: + y$4 = $clone(_ref$1.$val, ratVal); + _r$1 = makeRat(newRat().Neg(y$4.val)); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 15; case 15: return $24r; + /* } else if ($assertType(_ref$1, floatVal, true)[1]) { */ case 11: + y$5 = $clone(_ref$1.$val, floatVal); + _r$2 = newFloat(); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Neg(y$5.val); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = makeFloat(_r$3); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$1 = _r$4; + $s = 19; case 19: return $24r$1; + /* } else if ($assertType(_ref$1, complexVal, true)[1]) { */ case 12: + y$6 = $clone(_ref$1.$val, complexVal); + _r$5 = UnaryOp(13, y$6.re, 0); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + re = _r$5; + _r$6 = UnaryOp(13, y$6.im, 0); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + im = _r$6; + _r$7 = makeComplex(re, im); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$2 = _r$7; + $s = 23; case 23: return $24r$2; + /* } */ case 13: + $s = 6; continue; + /* } else if (_1 === (19)) { */ case 4: + z$1 = newInt(); + _ref$2 = y; + /* */ if ($assertType(_ref$2, unknownVal, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref$2, int64Val, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref$2, intVal, true)[1]) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if ($assertType(_ref$2, unknownVal, true)[1]) { */ case 24: + y$7 = $clone(_ref$2.$val, unknownVal); + $s = -1; return new y$7.constructor.elem(y$7); + /* } else if ($assertType(_ref$2, int64Val, true)[1]) { */ case 25: + y$8 = _ref$2.$val; + _r$8 = z$1.Not(big.NewInt((new $Int64(y$8.$high, y$8.$low)))); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + $s = 28; continue; + /* } else if ($assertType(_ref$2, intVal, true)[1]) { */ case 26: + y$9 = $clone(_ref$2.$val, intVal); + _r$9 = z$1.Not(y$9.val); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + $s = 28; continue; + /* } else { */ case 27: + y$10 = _ref$2; + /* goto Error */ $s = 31; continue; + /* } */ case 28: + /* */ if (prec > 0) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (prec > 0) { */ case 32: + _r$10 = z$1.AndNot(z$1, newInt().Lsh(big.NewInt(new $Int64(-1, 4294967295)), prec)); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + /* } */ case 33: + $s = -1; return makeInt(z$1); + /* } else if (_1 === (43)) { */ case 5: + _ref$3 = y; + if ($assertType(_ref$3, unknownVal, true)[1]) { + y$11 = $clone(_ref$3.$val, unknownVal); + $s = -1; return new y$11.constructor.elem(y$11); + } else if ($assertType(_ref$3, boolVal, true)[1]) { + y$12 = _ref$3.$val; + $s = -1; return new boolVal(!y$12); + } + /* } */ case 6: + case 1: + /* Error: */ case 31: + _r$11 = fmt.Sprintf("invalid unary operation %s%v", new sliceType$1([new token.Token(op), y])); /* */ $s = 35; case 35: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $panic(new $String(_r$11)); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: UnaryOp$1, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, im, op, prec, re, y, y$1, y$10, y$11, y$12, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, z, z$1, $s};return $f; + }; + $pkg.UnaryOp = UnaryOp; + ord = function ord$1(x) { + var _ref, x; + _ref = x; + if ($assertType(_ref, unknownVal, true)[1]) { + return 0; + } else if ($assertType(_ref, boolVal, true)[1] || $assertType(_ref, ptrType, true)[1]) { + return 1; + } else if ($assertType(_ref, int64Val, true)[1]) { + return 2; + } else if ($assertType(_ref, intVal, true)[1]) { + return 3; + } else if ($assertType(_ref, ratVal, true)[1]) { + return 4; + } else if ($assertType(_ref, floatVal, true)[1]) { + return 5; + } else if ($assertType(_ref, complexVal, true)[1]) { + return 6; + } else { + return -1; + } + }; + match = function match$1(x, y) { + var {_$1, _$2, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, ox, oy, x, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _$1 = $ifaceNil; + _$2 = $ifaceNil; + _tmp = ord(x); + _tmp$1 = ord(y); + ox = _tmp; + oy = _tmp$1; + /* */ if (ox < oy) { $s = 2; continue; } + /* */ if (ox > oy) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ox < oy) { */ case 2: + _r$1 = match0(x, y); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + x = _tuple[0]; + y = _tuple[1]; + $s = 4; continue; + /* } else if (ox > oy) { */ case 3: + _r$2 = match0(y, x); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + y = _tuple$1[0]; + x = _tuple$1[1]; + /* } */ case 4: + case 1: + _tmp$2 = x; + _tmp$3 = y; + _$1 = _tmp$2; + _$2 = _tmp$3; + $s = -1; return [_$1, _$2]; + /* */ } return; } var $f = {$blk: match$1, $c: true, $r, _$1, _$2, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, ox, oy, x, y, $s};return $f; + }; + match0 = function match0$1(x, y) { + var {$24r, $24r$1, $24r$2, _$1, _$2, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _ref$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x1, x1$1, x1$2, x1$3, x1$4, x1$5, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _$1 = $ifaceNil; + _$2 = $ifaceNil; + _ref = y; + /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, intVal, true)[1]) { */ case 1: + _ref$1 = x; + if ($assertType(_ref$1, int64Val, true)[1]) { + x1 = _ref$1.$val; + _tmp = (x$1 = i64toi(x1), new x$1.constructor.elem(x$1)); + _tmp$1 = y; + _$1 = _tmp; + _$2 = _tmp$1; + $s = -1; return [_$1, _$2]; + } + $s = 5; continue; + /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 2: + _ref$2 = x; + if ($assertType(_ref$2, int64Val, true)[1]) { + x1$1 = _ref$2.$val; + _tmp$2 = (x$2 = i64tor(x1$1), new x$2.constructor.elem(x$2)); + _tmp$3 = y; + _$1 = _tmp$2; + _$2 = _tmp$3; + $s = -1; return [_$1, _$2]; + } else if ($assertType(_ref$2, intVal, true)[1]) { + x1$2 = $clone(_ref$2.$val, intVal); + _tmp$4 = (x$3 = itor($clone(x1$2, intVal)), new x$3.constructor.elem(x$3)); + _tmp$5 = y; + _$1 = _tmp$4; + _$2 = _tmp$5; + $s = -1; return [_$1, _$2]; + } + $s = 5; continue; + /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 3: + _ref$3 = x; + /* */ if ($assertType(_ref$3, int64Val, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref$3, intVal, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref$3, ratVal, true)[1]) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ($assertType(_ref$3, int64Val, true)[1]) { */ case 6: + x1$3 = _ref$3.$val; + _r$1 = i64tof(x1$3); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tmp$6 = (x$4 = _r$1, new x$4.constructor.elem(x$4)); + _tmp$7 = y; + _$1 = _tmp$6; + _$2 = _tmp$7; + $24r = [_$1, _$2]; + $s = 11; case 11: return $24r; + /* } else if ($assertType(_ref$3, intVal, true)[1]) { */ case 7: + x1$4 = $clone(_ref$3.$val, intVal); + _r$2 = itof($clone(x1$4, intVal)); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tmp$8 = (x$5 = _r$2, new x$5.constructor.elem(x$5)); + _tmp$9 = y; + _$1 = _tmp$8; + _$2 = _tmp$9; + $24r$1 = [_$1, _$2]; + $s = 13; case 13: return $24r$1; + /* } else if ($assertType(_ref$3, ratVal, true)[1]) { */ case 8: + x1$5 = $clone(_ref$3.$val, ratVal); + _r$3 = rtof($clone(x1$5, ratVal)); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tmp$10 = (x$6 = _r$3, new x$6.constructor.elem(x$6)); + _tmp$11 = y; + _$1 = _tmp$10; + _$2 = _tmp$11; + $24r$2 = [_$1, _$2]; + $s = 15; case 15: return $24r$2; + /* } */ case 9: + $s = 5; continue; + /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 4: + _tmp$12 = (x$7 = vtoc(x), new x$7.constructor.elem(x$7)); + _tmp$13 = y; + _$1 = _tmp$12; + _$2 = _tmp$13; + $s = -1; return [_$1, _$2]; + /* } */ case 5: + _tmp$14 = x; + _tmp$15 = x; + _$1 = _tmp$14; + _$2 = _tmp$15; + $s = -1; return [_$1, _$2]; + /* */ } return; } var $f = {$blk: match0$1, $c: true, $r, $24r, $24r$1, $24r$2, _$1, _$2, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _ref$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x1, x1$1, x1$2, x1$3, x1$4, x1$5, y, $s};return $f; + }; + BinaryOp = function BinaryOp$1(x_, op, y_) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _2, _3, _4, _5, _6, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, a, a$1, a$2, a$3, a$4, ac, ac$1, ad, ad$1, b, b$1, b$2, b$3, b$4, bc, bc$1, bd, bd$1, c, c$1, c$2, c$3, c$4, cc, d, dd, im, op, re, s, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x_, y, y$1, y$2, y_, $s, $r, $c} = $restore(this, {x_, op, y_}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = match(x_, y_); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + x = _tuple[0]; + y = _tuple[1]; + _ref = x; + /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, boolVal, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($assertType(_ref, unknownVal, true)[1]) { */ case 2: + x$1 = $clone(_ref.$val, unknownVal); + $s = -1; return new x$1.constructor.elem(x$1); + /* } else if ($assertType(_ref, boolVal, true)[1]) { */ case 3: + x$2 = _ref.$val; + y$1 = $assertType(y, boolVal); + _1 = op; + if (_1 === (34)) { + $s = -1; return new boolVal(x$2 && y$1); + } else if (_1 === (35)) { + $s = -1; return new boolVal(x$2 || y$1); + } + $s = 10; continue; + /* } else if ($assertType(_ref, int64Val, true)[1]) { */ case 4: + x$3 = _ref.$val; + a = (new $Int64(x$3.$high, x$3.$low)); + b = ((x$9 = $assertType(y, int64Val), new $Int64(x$9.$high, x$9.$low))); + c = new $Int64(0, 0); + _2 = op; + /* */ if (_2 === (12)) { $s = 12; continue; } + /* */ if (_2 === (13)) { $s = 13; continue; } + /* */ if (_2 === (14)) { $s = 14; continue; } + /* */ if (_2 === (15)) { $s = 15; continue; } + /* */ if (_2 === (26)) { $s = 16; continue; } + /* */ if (_2 === (16)) { $s = 17; continue; } + /* */ if (_2 === (17)) { $s = 18; continue; } + /* */ if (_2 === (18)) { $s = 19; continue; } + /* */ if (_2 === (19)) { $s = 20; continue; } + /* */ if (_2 === (22)) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_2 === (12)) { */ case 12: + /* */ if (!is63bit(a) || !is63bit(b)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!is63bit(a) || !is63bit(b)) { */ case 24: + _r$2 = newInt().Add(big.NewInt(a), big.NewInt(b)); /* */ $s = 26; case 26: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = makeInt(_r$2); /* */ $s = 27; case 27: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 28; case 28: return $24r; + /* } */ case 25: + c = new $Int64(a.$high + b.$high, a.$low + b.$low); + $s = 23; continue; + /* } else if (_2 === (13)) { */ case 13: + /* */ if (!is63bit(a) || !is63bit(b)) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!is63bit(a) || !is63bit(b)) { */ case 29: + _r$4 = newInt().Sub(big.NewInt(a), big.NewInt(b)); /* */ $s = 31; case 31: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = makeInt(_r$4); /* */ $s = 32; case 32: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$1 = _r$5; + $s = 33; case 33: return $24r$1; + /* } */ case 30: + c = new $Int64(a.$high - b.$high, a.$low - b.$low); + $s = 23; continue; + /* } else if (_2 === (14)) { */ case 14: + /* */ if (!is32bit(a) || !is32bit(b)) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!is32bit(a) || !is32bit(b)) { */ case 34: + _r$6 = newInt().Mul(big.NewInt(a), big.NewInt(b)); /* */ $s = 36; case 36: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = makeInt(_r$6); /* */ $s = 37; case 37: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$2 = _r$7; + $s = 38; case 38: return $24r$2; + /* } */ case 35: + c = $mul64(a, b); + $s = 23; continue; + /* } else if (_2 === (15)) { */ case 15: + _r$8 = big.NewRat(a, b); /* */ $s = 39; case 39: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = makeRat(_r$8); /* */ $s = 40; case 40: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $24r$3 = _r$9; + $s = 41; case 41: return $24r$3; + /* } else if (_2 === (26)) { */ case 16: + c = $div64(a, b, false); + $s = 23; continue; + /* } else if (_2 === (16)) { */ case 17: + c = $div64(a, b, true); + $s = 23; continue; + /* } else if (_2 === (17)) { */ case 18: + c = new $Int64(a.$high & b.$high, (a.$low & b.$low) >>> 0); + $s = 23; continue; + /* } else if (_2 === (18)) { */ case 19: + c = new $Int64(a.$high | b.$high, (a.$low | b.$low) >>> 0); + $s = 23; continue; + /* } else if (_2 === (19)) { */ case 20: + c = new $Int64(a.$high ^ b.$high, (a.$low ^ b.$low) >>> 0); + $s = 23; continue; + /* } else if (_2 === (22)) { */ case 21: + c = new $Int64(a.$high & ~b.$high, (a.$low & ~b.$low) >>> 0); + $s = 23; continue; + /* } else { */ case 22: + /* goto Error */ $s = 42; continue; + /* } */ case 23: + case 11: + $s = -1; return (new int64Val(c.$high, c.$low)); + /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 5: + x$4 = $clone(_ref.$val, intVal); + a$1 = x$4.val; + b$1 = $assertType(y, intVal).val; + c$1 = newInt(); + _3 = op; + /* */ if (_3 === (12)) { $s = 44; continue; } + /* */ if (_3 === (13)) { $s = 45; continue; } + /* */ if (_3 === (14)) { $s = 46; continue; } + /* */ if (_3 === (15)) { $s = 47; continue; } + /* */ if (_3 === (26)) { $s = 48; continue; } + /* */ if (_3 === (16)) { $s = 49; continue; } + /* */ if (_3 === (17)) { $s = 50; continue; } + /* */ if (_3 === (18)) { $s = 51; continue; } + /* */ if (_3 === (19)) { $s = 52; continue; } + /* */ if (_3 === (22)) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (_3 === (12)) { */ case 44: + _r$10 = c$1.Add(a$1, b$1); /* */ $s = 56; case 56: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + $s = 55; continue; + /* } else if (_3 === (13)) { */ case 45: + _r$11 = c$1.Sub(a$1, b$1); /* */ $s = 57; case 57: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11; + $s = 55; continue; + /* } else if (_3 === (14)) { */ case 46: + _r$12 = c$1.Mul(a$1, b$1); /* */ $s = 58; case 58: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + $s = 55; continue; + /* } else if (_3 === (15)) { */ case 47: + _r$13 = newRat().SetFrac(a$1, b$1); /* */ $s = 59; case 59: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = makeRat(_r$13); /* */ $s = 60; case 60: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $24r$4 = _r$14; + $s = 61; case 61: return $24r$4; + /* } else if (_3 === (26)) { */ case 48: + _r$15 = c$1.Quo(a$1, b$1); /* */ $s = 62; case 62: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$15; + $s = 55; continue; + /* } else if (_3 === (16)) { */ case 49: + _r$16 = c$1.Rem(a$1, b$1); /* */ $s = 63; case 63: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _r$16; + $s = 55; continue; + /* } else if (_3 === (17)) { */ case 50: + _r$17 = c$1.And(a$1, b$1); /* */ $s = 64; case 64: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$17; + $s = 55; continue; + /* } else if (_3 === (18)) { */ case 51: + _r$18 = c$1.Or(a$1, b$1); /* */ $s = 65; case 65: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _r$18; + $s = 55; continue; + /* } else if (_3 === (19)) { */ case 52: + _r$19 = c$1.Xor(a$1, b$1); /* */ $s = 66; case 66: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _r$19; + $s = 55; continue; + /* } else if (_3 === (22)) { */ case 53: + _r$20 = c$1.AndNot(a$1, b$1); /* */ $s = 67; case 67: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _r$20; + $s = 55; continue; + /* } else { */ case 54: + /* goto Error */ $s = 42; continue; + /* } */ case 55: + case 43: + $s = -1; return makeInt(c$1); + /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 6: + x$5 = $clone(_ref.$val, ratVal); + a$2 = x$5.val; + b$2 = $assertType(y, ratVal).val; + c$2 = newRat(); + _4 = op; + /* */ if (_4 === (12)) { $s = 69; continue; } + /* */ if (_4 === (13)) { $s = 70; continue; } + /* */ if (_4 === (14)) { $s = 71; continue; } + /* */ if (_4 === (15)) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if (_4 === (12)) { */ case 69: + _r$21 = c$2.Add(a$2, b$2); /* */ $s = 75; case 75: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _r$21; + $s = 74; continue; + /* } else if (_4 === (13)) { */ case 70: + _r$22 = c$2.Sub(a$2, b$2); /* */ $s = 76; case 76: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$22; + $s = 74; continue; + /* } else if (_4 === (14)) { */ case 71: + _r$23 = c$2.Mul(a$2, b$2); /* */ $s = 77; case 77: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _r$23; + $s = 74; continue; + /* } else if (_4 === (15)) { */ case 72: + _r$24 = c$2.Quo(a$2, b$2); /* */ $s = 78; case 78: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$24; + $s = 74; continue; + /* } else { */ case 73: + /* goto Error */ $s = 42; continue; + /* } */ case 74: + case 68: + _r$25 = makeRat(c$2); /* */ $s = 79; case 79: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r$5 = _r$25; + $s = 80; case 80: return $24r$5; + /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 7: + x$6 = $clone(_ref.$val, floatVal); + a$3 = x$6.val; + b$3 = $assertType(y, floatVal).val; + _r$26 = newFloat(); /* */ $s = 81; case 81: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + c$3 = _r$26; + _5 = op; + /* */ if (_5 === (12)) { $s = 83; continue; } + /* */ if (_5 === (13)) { $s = 84; continue; } + /* */ if (_5 === (14)) { $s = 85; continue; } + /* */ if (_5 === (15)) { $s = 86; continue; } + /* */ $s = 87; continue; + /* if (_5 === (12)) { */ case 83: + _r$27 = c$3.Add(a$3, b$3); /* */ $s = 89; case 89: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$27; + $s = 88; continue; + /* } else if (_5 === (13)) { */ case 84: + _r$28 = c$3.Sub(a$3, b$3); /* */ $s = 90; case 90: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$28; + $s = 88; continue; + /* } else if (_5 === (14)) { */ case 85: + _r$29 = c$3.Mul(a$3, b$3); /* */ $s = 91; case 91: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _r$29; + $s = 88; continue; + /* } else if (_5 === (15)) { */ case 86: + _r$30 = c$3.Quo(a$3, b$3); /* */ $s = 92; case 92: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _r$30; + $s = 88; continue; + /* } else { */ case 87: + /* goto Error */ $s = 42; continue; + /* } */ case 88: + case 82: + _r$31 = makeFloat(c$3); /* */ $s = 93; case 93: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + $24r$6 = _r$31; + $s = 94; case 94: return $24r$6; + /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 8: + x$7 = $clone(_ref.$val, complexVal); + y$2 = $clone($assertType(y, complexVal), complexVal); + _tmp = x$7.re; + _tmp$1 = x$7.im; + a$4 = _tmp; + b$4 = _tmp$1; + _tmp$2 = y$2.re; + _tmp$3 = y$2.im; + c$4 = _tmp$2; + d = _tmp$3; + _tmp$4 = $ifaceNil; + _tmp$5 = $ifaceNil; + re = _tmp$4; + im = _tmp$5; + _6 = op; + /* */ if (_6 === (12)) { $s = 96; continue; } + /* */ if (_6 === (13)) { $s = 97; continue; } + /* */ if (_6 === (14)) { $s = 98; continue; } + /* */ if (_6 === (15)) { $s = 99; continue; } + /* */ $s = 100; continue; + /* if (_6 === (12)) { */ case 96: + _r$32 = add(a$4, c$4); /* */ $s = 102; case 102: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + re = _r$32; + _r$33 = add(b$4, d); /* */ $s = 103; case 103: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + im = _r$33; + $s = 101; continue; + /* } else if (_6 === (13)) { */ case 97: + _r$34 = sub(a$4, c$4); /* */ $s = 104; case 104: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + re = _r$34; + _r$35 = sub(b$4, d); /* */ $s = 105; case 105: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + im = _r$35; + $s = 101; continue; + /* } else if (_6 === (14)) { */ case 98: + _r$36 = mul(a$4, c$4); /* */ $s = 106; case 106: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + ac = _r$36; + _r$37 = mul(b$4, d); /* */ $s = 107; case 107: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + bd = _r$37; + _r$38 = mul(b$4, c$4); /* */ $s = 108; case 108: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + bc = _r$38; + _r$39 = mul(a$4, d); /* */ $s = 109; case 109: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + ad = _r$39; + _r$40 = sub(ac, bd); /* */ $s = 110; case 110: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + re = _r$40; + _r$41 = add(bc, ad); /* */ $s = 111; case 111: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + im = _r$41; + $s = 101; continue; + /* } else if (_6 === (15)) { */ case 99: + _r$42 = mul(a$4, c$4); /* */ $s = 112; case 112: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } + ac$1 = _r$42; + _r$43 = mul(b$4, d); /* */ $s = 113; case 113: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + bd$1 = _r$43; + _r$44 = mul(b$4, c$4); /* */ $s = 114; case 114: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } + bc$1 = _r$44; + _r$45 = mul(a$4, d); /* */ $s = 115; case 115: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } + ad$1 = _r$45; + _r$46 = mul(c$4, c$4); /* */ $s = 116; case 116: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } + cc = _r$46; + _r$47 = mul(d, d); /* */ $s = 117; case 117: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } + dd = _r$47; + _r$48 = add(cc, dd); /* */ $s = 118; case 118: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } + s = _r$48; + _r$49 = add(ac$1, bd$1); /* */ $s = 119; case 119: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } + re = _r$49; + _r$50 = quo(re, s); /* */ $s = 120; case 120: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } + re = _r$50; + _r$51 = sub(bc$1, ad$1); /* */ $s = 121; case 121: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } + im = _r$51; + _r$52 = quo(im, s); /* */ $s = 122; case 122: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } + im = _r$52; + $s = 101; continue; + /* } else { */ case 100: + /* goto Error */ $s = 42; continue; + /* } */ case 101: + case 95: + _r$53 = makeComplex(re, im); /* */ $s = 123; case 123: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } + $24r$7 = _r$53; + $s = 124; case 124: return $24r$7; + /* } else if ($assertType(_ref, ptrType, true)[1]) { */ case 9: + x$8 = _ref.$val; + if (op === 12) { + $s = -1; return new stringVal.ptr(new sync.Mutex.ptr(0, 0), "", x$8, $assertType(y, ptrType)); + } + /* } */ case 10: + /* Error: */ case 42: + _r$54 = fmt.Sprintf("invalid binary operation %v %s %v", new sliceType$1([x_, new token.Token(op), y_])); /* */ $s = 125; case 125: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } + $panic(new $String(_r$54)); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: BinaryOp$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _2, _3, _4, _5, _6, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, a, a$1, a$2, a$3, a$4, ac, ac$1, ad, ad$1, b, b$1, b$2, b$3, b$4, bc, bc$1, bd, bd$1, c, c$1, c$2, c$3, c$4, cc, d, dd, im, op, re, s, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x_, y, y$1, y$2, y_, $s};return $f; + }; + $pkg.BinaryOp = BinaryOp; + add = function add$1(x, y) { + var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = BinaryOp(x, 12, y); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: add$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; + }; + sub = function sub$1(x, y) { + var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = BinaryOp(x, 13, y); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: sub$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; + }; + mul = function mul$1(x, y) { + var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = BinaryOp(x, 14, y); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: mul$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; + }; + quo = function quo$1(x, y) { + var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = BinaryOp(x, 15, y); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: quo$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; + }; + Shift = function Shift$1(x, op, s) { + var {$24r, _1, _2, _r$1, _r$2, _r$3, _ref, op, s, x, x$1, x$2, x$3, z, z$1, $s, $r, $c} = $restore(this, {x, op, s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, unknownVal, true)[1]) { */ case 1: + x$1 = $clone(_ref.$val, unknownVal); + $s = -1; return new x$1.constructor.elem(x$1); + /* } else if ($assertType(_ref, int64Val, true)[1]) { */ case 2: + x$2 = _ref.$val; + if (s === 0) { + $s = -1; return x$2; + } + _1 = op; + if (_1 === (20)) { + z = i64toi(x$2).val; + $s = -1; return makeInt(z.Lsh(z, s)); + } else if (_1 === (21)) { + $s = -1; return $shiftRightInt64(x$2, s); + } + $s = 4; continue; + /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 3: + x$3 = $clone(_ref.$val, intVal); + if (s === 0) { + $s = -1; return new x$3.constructor.elem(x$3); + } + z$1 = newInt(); + _2 = op; + /* */ if (_2 === (20)) { $s = 6; continue; } + /* */ if (_2 === (21)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_2 === (20)) { */ case 6: + $s = -1; return makeInt(z$1.Lsh(x$3.val, s)); + /* } else if (_2 === (21)) { */ case 7: + _r$1 = z$1.Rsh(x$3.val, s); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = makeInt(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 11; case 11: return $24r; + /* } */ case 8: + case 5: + /* } */ case 4: + _r$3 = fmt.Sprintf("invalid shift %v %s %d", new sliceType$1([x, new token.Token(op), new $Uint(s)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $panic(new $String(_r$3)); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Shift$1, $c: true, $r, $24r, _1, _2, _r$1, _r$2, _r$3, _ref, op, s, x, x$1, x$2, x$3, z, z$1, $s};return $f; + }; + $pkg.Shift = Shift; + cmpZero = function cmpZero$1(x, op) { + var {_1, _r$1, op, x, $s, $r, $c} = $restore(this, {x, op}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _1 = op; + if (_1 === (39)) { + $s = -1; return x === 0; + } else if (_1 === (44)) { + $s = -1; return !((x === 0)); + } else if (_1 === (40)) { + $s = -1; return x < 0; + } else if (_1 === (45)) { + $s = -1; return x <= 0; + } else if (_1 === (41)) { + $s = -1; return x > 0; + } else if (_1 === (46)) { + $s = -1; return x >= 0; + } + _r$1 = fmt.Sprintf("invalid comparison %v %s 0", new sliceType$1([new $Int(x), new token.Token(op)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + $s = -1; return false; + /* */ } return; } var $f = {$blk: cmpZero$1, $c: true, $r, _1, _r$1, op, x, $s};return $f; + }; + Compare = function Compare$1(x_, op, y_) { + var {$24r, $24r$1, $24r$2, _1, _2, _3, _4, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, im, op, re, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x_, xs, y, y$1, y$2, y$3, y_, ys, $s, $r, $c} = $restore(this, {x_, op, y_}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = match(x_, y_); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + x = _tuple[0]; + y = _tuple[1]; + _ref = x; + /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, boolVal, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($assertType(_ref, unknownVal, true)[1]) { */ case 2: + x$1 = $clone(_ref.$val, unknownVal); + $s = -1; return false; + /* } else if ($assertType(_ref, boolVal, true)[1]) { */ case 3: + x$2 = _ref.$val; + y$1 = $assertType(y, boolVal); + _1 = op; + if (_1 === (39)) { + $s = -1; return x$2 === y$1; + } else if (_1 === (44)) { + $s = -1; return !(x$2 === y$1); + } + $s = 10; continue; + /* } else if ($assertType(_ref, int64Val, true)[1]) { */ case 4: + x$3 = _ref.$val; + y$2 = $assertType(y, int64Val); + _2 = op; + if (_2 === (39)) { + $s = -1; return (x$3.$high === y$2.$high && x$3.$low === y$2.$low); + } else if (_2 === (44)) { + $s = -1; return !((x$3.$high === y$2.$high && x$3.$low === y$2.$low)); + } else if (_2 === (40)) { + $s = -1; return (x$3.$high < y$2.$high || (x$3.$high === y$2.$high && x$3.$low < y$2.$low)); + } else if (_2 === (45)) { + $s = -1; return (x$3.$high < y$2.$high || (x$3.$high === y$2.$high && x$3.$low <= y$2.$low)); + } else if (_2 === (41)) { + $s = -1; return (x$3.$high > y$2.$high || (x$3.$high === y$2.$high && x$3.$low > y$2.$low)); + } else if (_2 === (46)) { + $s = -1; return (x$3.$high > y$2.$high || (x$3.$high === y$2.$high && x$3.$low >= y$2.$low)); + } + $s = 10; continue; + /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 5: + x$4 = $clone(_ref.$val, intVal); + _r$2 = cmpZero(x$4.val.Cmp($assertType(y, intVal).val), op); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 12; case 12: return $24r; + /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 6: + x$5 = $clone(_ref.$val, ratVal); + _r$3 = x$5.val.Cmp($assertType(y, ratVal).val); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = cmpZero(_r$3, op); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$1 = _r$4; + $s = 15; case 15: return $24r$1; + /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 7: + x$6 = $clone(_ref.$val, floatVal); + _r$5 = x$6.val.Cmp($assertType(y, floatVal).val); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = cmpZero(_r$5, op); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$2 = _r$6; + $s = 18; case 18: return $24r$2; + /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 8: + x$7 = $clone(_ref.$val, complexVal); + y$3 = $clone($assertType(y, complexVal), complexVal); + _r$7 = Compare(x$7.re, 39, y$3.re); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + re = _r$7; + _r$8 = Compare(x$7.im, 39, y$3.im); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + im = _r$8; + _3 = op; + if (_3 === (39)) { + $s = -1; return re && im; + } else if (_3 === (44)) { + $s = -1; return !re || !im; + } + $s = 10; continue; + /* } else if ($assertType(_ref, ptrType, true)[1]) { */ case 9: + x$8 = _ref.$val; + _r$9 = x$8.string(); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + xs = _r$9; + _r$10 = $assertType(y, ptrType).string(); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + ys = _r$10; + _4 = op; + if (_4 === (39)) { + $s = -1; return xs === ys; + } else if (_4 === (44)) { + $s = -1; return !(xs === ys); + } else if (_4 === (40)) { + $s = -1; return xs < ys; + } else if (_4 === (45)) { + $s = -1; return xs <= ys; + } else if (_4 === (41)) { + $s = -1; return xs > ys; + } else if (_4 === (46)) { + $s = -1; return xs >= ys; + } + /* } */ case 10: + _r$11 = fmt.Sprintf("invalid comparison %v %s %v", new sliceType$1([x_, new token.Token(op), y_])); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $panic(new $String(_r$11)); + $s = -1; return false; + /* */ } return; } var $f = {$blk: Compare$1, $c: true, $r, $24r, $24r$1, $24r$2, _1, _2, _3, _4, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, im, op, re, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x_, xs, y, y$1, y$2, y$3, y_, ys, $s};return $f; + }; + $pkg.Compare = Compare; + Kind.prototype.String = function String$8() { + var i, x; + i = this.$val; + if (i < 0 || i >= 6) { + return "Kind(" + strconv.FormatInt((new $Int64(0, i)), 10) + ")"; + } + return $substring("UnknownBoolStringIntFloatComplex", ((i < 0 || i >= _Kind_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _Kind_index[i]), (x = i + 1 >> 0, ((x < 0 || x >= _Kind_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _Kind_index[x]))); + }; + $ptrType(Kind).prototype.String = function(...$args) { return new Kind(this.$get()).String(...$args); }; + Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + unknownVal.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; + boolVal.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; + ptrType.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "string", name: "string", pkg: "go/constant", typ: $funcType([], [$String], false)}, {prop: "appendReverse", name: "appendReverse", pkg: "go/constant", typ: $funcType([sliceType], [sliceType], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; + int64Val.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; + intVal.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; + ratVal.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; + floatVal.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; + complexVal.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; + Value.init([{prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]); + unknownVal.init("", []); + stringVal.init("go/constant", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "l", name: "l", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: ptrType, tag: ""}]); + intVal.init("go/constant", [{prop: "val", name: "val", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + ratVal.init("go/constant", [{prop: "val", name: "val", embedded: false, exported: false, typ: ptrType$3, tag: ""}]); + floatVal.init("go/constant", [{prop: "val", name: "val", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); + complexVal.init("go/constant", [{prop: "re", name: "re", embedded: false, exported: false, typ: Value, tag: ""}, {prop: "im", name: "im", embedded: false, exported: false, typ: Value, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = big.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = newFloat(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + floatVal0 = new floatVal.ptr(_r); + _Kind_index = $toNativeArray($kindUint8, [0, 7, 11, 17, 20, 25, 32]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/types"] = (function() { + var $pkg = {}, $init, bytes, heap, errors, fmt, ast, constant, typeparams, parser, token, io, math, regexp, runtime, sort, strconv, strings, sync, atomic, unicode, utf8, version, builtinId, Union, Term, unifier, tparamsList, term, Qualifier, typeWriter, _TypeSet, byUniqueMethodName, TypeParam, TypeParamList, TypeList, Type, Tuple, termlist, substMap, subster, Struct, stmtContext, valueMap, valueType, Slice, Sizes, StdSizes, Signature, SelectionKind, Selection, Scope, lazyObject, declInfo, inSourceOrder, ifacePair, Pointer, Package, operandMode, operand, objset, Object, object, color, PkgName, Const, TypeName, Var, Func, Label, Builtin, Nil, Named, instance, namedState, monoGraph, monoVertex, monoEdge, MethodSet, methodSet, Map, embeddedType, instanceLookup, block, Interface, dependency, graphNode, nodeSet, nodeQueue, tpWalker, cycleFinder, opPredicates, exprKind, error_, errorDesc, positioner, posSpan, atPos, errorCode, decl, importDecl, constDecl, varDecl, typeDecl, funcDecl, Context, ctxtEntry, exprInfo, environment, importKey, dotImportKey, action, actionDesc, Checker, cleaner, bailout, Chan, ChanDir, BasicKind, BasicInfo, Basic, Array, Error, Importer, ImportMode, ImporterFrom, Config, Info, TypeAndValue, Instance, Initializer, universeIota, universeByte, universeRune, universeAny, universeError, universeComparable, invalidTypeSet, invalidTypeSet$24ptr, lastID, lastID$24ptr, emptyMethodSet, emptyMethodSet$24ptr, unaryOpPredicates, binaryOpPredicates, goVersionRx, _r, aliases, predeclaredConsts, predeclaredFuncs, allTermlist, topTypeSet, topTypeSet$24ptr, basicSizes, gcArchSizes, operandModeString, emptyInterface, emptyInterface$24ptr, gccgoArchSizes, stdSizes, op2str1, op2str2, errBadCgo, cgoPrefixes, parseGoVersion, makeObjList, defPredeclaredTypes, defPredeclaredConsts, defPredeclaredNil, defPredeclaredFuncs, init, def, NewUnion, NewTerm, parseUnion, parseTilde, overlappingTerm, flattenUnion, newUnifier, tparamIndex, goTypeName, RelativeTo, TypeString, typeString, WriteType, WriteSignature, newTypeWriter, newTypeHasher, subscript, computeInterfaceTypeSet, intersectTermLists, sortMethods, assertSortedMethods, computeUnionTypeSet, nextID, NewTypeParam, newTypeList, bindTParams, under, coreType, coreString, match, NewTuple, makeSubstMap, makeRenameMap, substVar, substFunc, replaceRecvType, embeddedFieldIdent, trimTrailingEmptyStmts, assignOp, goVal, rangeKeyVal, NewSlice, isSyncAtomicAlign64, SizesFor, align, NewSignatureType, SelectionString, NewScope, resolve, hasBreak, hasBreakList, validatedImportPath, dir, isBoolean, isInteger, isUnsigned, isFloat, isComplex, isNumeric, isString, isIntegerOrFloat, isConstType, isBasic, allBoolean, allInteger, allUnsigned, allNumeric, allString, allOrdered, allNumericOrString, allBasic, hasName, isTyped, isUntyped, IsInterface, isNonTypeParamInterface, isTypeParam, isGeneric, Comparable, comparable, hasNil, identical, identicalInstance, Default, NewPointer, NewPackage, operandString, Id, colorFor, NewPkgName, NewConst, NewTypeName, NewVar, NewParam, NewField, NewFunc, NewLabel, newBuiltin, writeObject, writePackage, ObjectString, writeFuncName, NewNamed, safeUnderlying, NewMethodSet, LookupFieldOrMethod, lookupFieldOrMethod, consolidateMultiples, lookupType, isInterfacePtr, deref, derefStructPtr, concat, fieldIndex, lookupMethod, NewInterfaceType, findPath, dependencyGraph, typeParamsString, isParameterized, coreTerm, ExprString, WriteExpr, writeSigExpr, writeFieldList, writeIdentList, writeExprList, init$1, opName, underIs, isShift, isComparison, fitsFloat32, roundFloat32, fitsFloat64, roundFloat64, representableConst, init$2, keyVal, assert, unreachable, sprintf, newErrorf, inNode, spanOf, stripAnnotations, pathString, firstInSrc, isUintptr, isUnsafePointer, isPointer, isBytesOrRunes, NewContext, NewChecker, instantiatedIdent, hasVarSize, makeSig, arrayPtrDeref, unparen, operandTypes, varTypes, measure, Identical, IdenticalIgnoreTags; + bytes = $packages["bytes"]; + heap = $packages["container/heap"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + constant = $packages["go/constant"]; + typeparams = $packages["go/internal/typeparams"]; + parser = $packages["go/parser"]; + token = $packages["go/token"]; + io = $packages["io"]; + math = $packages["math"]; + regexp = $packages["regexp"]; + runtime = $packages["runtime"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + version = $newType(0, $kindStruct, "types.version", true, "go/types", false, function(major_, minor_) { + this.$val = this; + if (arguments.length === 0) { + this.major = 0; + this.minor = 0; + return; + } + this.major = major_; + this.minor = minor_; + }); + builtinId = $newType(4, $kindInt, "types.builtinId", true, "go/types", false, null); + Union = $newType(0, $kindStruct, "types.Union", true, "go/types", true, function(terms_) { + this.$val = this; + if (arguments.length === 0) { + this.terms = sliceType$12.nil; + return; + } + this.terms = terms_; + }); + Term = $newType(0, $kindStruct, "types.Term", true, "go/types", true, function(tilde_, typ_) { + this.$val = this; + if (arguments.length === 0) { + this.tilde = false; + this.typ = $ifaceNil; + return; + } + this.tilde = tilde_; + this.typ = typ_; + }); + unifier = $newType(0, $kindStruct, "types.unifier", true, "go/types", false, function(exact_, x_, y_, types_, depth_) { + this.$val = this; + if (arguments.length === 0) { + this.exact = false; + this.x = new tparamsList.ptr(ptrType$22.nil, sliceType$9.nil, sliceType$13.nil); + this.y = new tparamsList.ptr(ptrType$22.nil, sliceType$9.nil, sliceType$13.nil); + this.types = sliceType$3.nil; + this.depth = 0; + return; + } + this.exact = exact_; + this.x = x_; + this.y = y_; + this.types = types_; + this.depth = depth_; + }); + tparamsList = $newType(0, $kindStruct, "types.tparamsList", true, "go/types", false, function(unifier_, tparams_, indices_) { + this.$val = this; + if (arguments.length === 0) { + this.unifier = ptrType$22.nil; + this.tparams = sliceType$9.nil; + this.indices = sliceType$13.nil; + return; + } + this.unifier = unifier_; + this.tparams = tparams_; + this.indices = indices_; + }); + term = $newType(0, $kindStruct, "types.term", true, "go/types", false, function(tilde_, typ_) { + this.$val = this; + if (arguments.length === 0) { + this.tilde = false; + this.typ = $ifaceNil; + return; + } + this.tilde = tilde_; + this.typ = typ_; + }); + Qualifier = $newType(4, $kindFunc, "types.Qualifier", true, "go/types", true, null); + typeWriter = $newType(0, $kindStruct, "types.typeWriter", true, "go/types", false, function(buf_, seen_, qf_, ctxt_, tparams_, debug_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = ptrType$114.nil; + this.seen = false; + this.qf = $throwNilPointerError; + this.ctxt = ptrType$51.nil; + this.tparams = ptrType$48.nil; + this.debug = false; + return; + } + this.buf = buf_; + this.seen = seen_; + this.qf = qf_; + this.ctxt = ctxt_; + this.tparams = tparams_; + this.debug = debug_; + }); + _TypeSet = $newType(0, $kindStruct, "types._TypeSet", true, "go/types", false, function(methods_, terms_, comparable_) { + this.$val = this; + if (arguments.length === 0) { + this.methods = sliceType.nil; + this.terms = termlist.nil; + this.comparable = false; + return; + } + this.methods = methods_; + this.terms = terms_; + this.comparable = comparable_; + }); + byUniqueMethodName = $newType(12, $kindSlice, "types.byUniqueMethodName", true, "go/types", false, null); + TypeParam = $newType(0, $kindStruct, "types.TypeParam", true, "go/types", true, function(check_, id_, obj_, index_, bound_) { + this.$val = this; + if (arguments.length === 0) { + this.check = ptrType$6.nil; + this.id = new $Uint64(0, 0); + this.obj = ptrType$17.nil; + this.index = 0; + this.bound = $ifaceNil; + return; + } + this.check = check_; + this.id = id_; + this.obj = obj_; + this.index = index_; + this.bound = bound_; + }); + TypeParamList = $newType(0, $kindStruct, "types.TypeParamList", true, "go/types", true, function(tparams_) { + this.$val = this; + if (arguments.length === 0) { + this.tparams = sliceType$9.nil; + return; + } + this.tparams = tparams_; + }); + TypeList = $newType(0, $kindStruct, "types.TypeList", true, "go/types", true, function(types_) { + this.$val = this; + if (arguments.length === 0) { + this.types = sliceType$3.nil; + return; + } + this.types = types_; + }); + Type = $newType(8, $kindInterface, "types.Type", true, "go/types", true, null); + Tuple = $newType(0, $kindStruct, "types.Tuple", true, "go/types", true, function(vars_) { + this.$val = this; + if (arguments.length === 0) { + this.vars = sliceType$10.nil; + return; + } + this.vars = vars_; + }); + termlist = $newType(12, $kindSlice, "types.termlist", true, "go/types", false, null); + substMap = $newType(4, $kindMap, "types.substMap", true, "go/types", false, null); + subster = $newType(0, $kindStruct, "types.subster", true, "go/types", false, function(pos_, smap_, check_, expanding_, ctxt_) { + this.$val = this; + if (arguments.length === 0) { + this.pos = 0; + this.smap = false; + this.check = ptrType$6.nil; + this.expanding = ptrType$9.nil; + this.ctxt = ptrType$51.nil; + return; + } + this.pos = pos_; + this.smap = smap_; + this.check = check_; + this.expanding = expanding_; + this.ctxt = ctxt_; + }); + Struct = $newType(0, $kindStruct, "types.Struct", true, "go/types", true, function(fields_, tags_) { + this.$val = this; + if (arguments.length === 0) { + this.fields = sliceType$10.nil; + this.tags = sliceType$6.nil; + return; + } + this.fields = fields_; + this.tags = tags_; + }); + stmtContext = $newType(4, $kindUint, "types.stmtContext", true, "go/types", false, null); + valueMap = $newType(4, $kindMap, "types.valueMap", true, "go/types", false, null); + valueType = $newType(0, $kindStruct, "types.valueType", true, "go/types", false, function(pos_, typ_) { + this.$val = this; + if (arguments.length === 0) { + this.pos = 0; + this.typ = $ifaceNil; + return; + } + this.pos = pos_; + this.typ = typ_; + }); + Slice = $newType(0, $kindStruct, "types.Slice", true, "go/types", true, function(elem_) { + this.$val = this; + if (arguments.length === 0) { + this.elem = $ifaceNil; + return; + } + this.elem = elem_; + }); + Sizes = $newType(8, $kindInterface, "types.Sizes", true, "go/types", true, null); + StdSizes = $newType(0, $kindStruct, "types.StdSizes", true, "go/types", true, function(WordSize_, MaxAlign_) { + this.$val = this; + if (arguments.length === 0) { + this.WordSize = new $Int64(0, 0); + this.MaxAlign = new $Int64(0, 0); + return; + } + this.WordSize = WordSize_; + this.MaxAlign = MaxAlign_; + }); + Signature = $newType(0, $kindStruct, "types.Signature", true, "go/types", true, function(rparams_, tparams_, scope_, recv_, params_, results_, variadic_) { + this.$val = this; + if (arguments.length === 0) { + this.rparams = ptrType$48.nil; + this.tparams = ptrType$48.nil; + this.scope = ptrType.nil; + this.recv = ptrType$16.nil; + this.params = ptrType$15.nil; + this.results = ptrType$15.nil; + this.variadic = false; + return; + } + this.rparams = rparams_; + this.tparams = tparams_; + this.scope = scope_; + this.recv = recv_; + this.params = params_; + this.results = results_; + this.variadic = variadic_; + }); + SelectionKind = $newType(4, $kindInt, "types.SelectionKind", true, "go/types", true, null); + Selection = $newType(0, $kindStruct, "types.Selection", true, "go/types", true, function(kind_, recv_, obj_, index_, indirect_) { + this.$val = this; + if (arguments.length === 0) { + this.kind = 0; + this.recv = $ifaceNil; + this.obj = $ifaceNil; + this.index = sliceType$13.nil; + this.indirect = false; + return; + } + this.kind = kind_; + this.recv = recv_; + this.obj = obj_; + this.index = index_; + this.indirect = indirect_; + }); + Scope = $newType(0, $kindStruct, "types.Scope", true, "go/types", true, function(parent_, children_, number_, elems_, pos_, end_, comment_, isFunc_) { + this.$val = this; + if (arguments.length === 0) { + this.parent = ptrType.nil; + this.children = sliceType$20.nil; + this.number = 0; + this.elems = false; + this.pos = 0; + this.end = 0; + this.comment = ""; + this.isFunc = false; + return; + } + this.parent = parent_; + this.children = children_; + this.number = number_; + this.elems = elems_; + this.pos = pos_; + this.end = end_; + this.comment = comment_; + this.isFunc = isFunc_; + }); + lazyObject = $newType(0, $kindStruct, "types.lazyObject", true, "go/types", false, function(parent_, resolve_, obj_, once_) { + this.$val = this; + if (arguments.length === 0) { + this.parent = ptrType.nil; + this.resolve = $throwNilPointerError; + this.obj = $ifaceNil; + this.once = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); + return; + } + this.parent = parent_; + this.resolve = resolve_; + this.obj = obj_; + this.once = once_; + }); + declInfo = $newType(0, $kindStruct, "types.declInfo", true, "go/types", false, function(file_, lhs_, vtyp_, init_, inherited_, tdecl_, fdecl_, deps_) { + this.$val = this; + if (arguments.length === 0) { + this.file = ptrType.nil; + this.lhs = sliceType$10.nil; + this.vtyp = $ifaceNil; + this.init = $ifaceNil; + this.inherited = false; + this.tdecl = ptrType$89.nil; + this.fdecl = ptrType$86.nil; + this.deps = false; + return; + } + this.file = file_; + this.lhs = lhs_; + this.vtyp = vtyp_; + this.init = init_; + this.inherited = inherited_; + this.tdecl = tdecl_; + this.fdecl = fdecl_; + this.deps = deps_; + }); + inSourceOrder = $newType(12, $kindSlice, "types.inSourceOrder", true, "go/types", false, null); + ifacePair = $newType(0, $kindStruct, "types.ifacePair", true, "go/types", false, function(x_, y_, prev_) { + this.$val = this; + if (arguments.length === 0) { + this.x = ptrType$13.nil; + this.y = ptrType$13.nil; + this.prev = ptrType$23.nil; + return; + } + this.x = x_; + this.y = y_; + this.prev = prev_; + }); + Pointer = $newType(0, $kindStruct, "types.Pointer", true, "go/types", true, function(base_) { + this.$val = this; + if (arguments.length === 0) { + this.base = $ifaceNil; + return; + } + this.base = base_; + }); + Package = $newType(0, $kindStruct, "types.Package", true, "go/types", true, function(path_, name_, scope_, complete_, imports_, fake_, cgo_) { + this.$val = this; + if (arguments.length === 0) { + this.path = ""; + this.name = ""; + this.scope = ptrType.nil; + this.complete = false; + this.imports = sliceType$24.nil; + this.fake = false; + this.cgo = false; + return; + } + this.path = path_; + this.name = name_; + this.scope = scope_; + this.complete = complete_; + this.imports = imports_; + this.fake = fake_; + this.cgo = cgo_; + }); + operandMode = $newType(1, $kindUint8, "types.operandMode", true, "go/types", false, null); + operand = $newType(0, $kindStruct, "types.operand", true, "go/types", false, function(mode_, expr_, typ_, val_, id_) { + this.$val = this; + if (arguments.length === 0) { + this.mode = 0; + this.expr = $ifaceNil; + this.typ = $ifaceNil; + this.val = $ifaceNil; + this.id = 0; + return; + } + this.mode = mode_; + this.expr = expr_; + this.typ = typ_; + this.val = val_; + this.id = id_; + }); + objset = $newType(4, $kindMap, "types.objset", true, "go/types", false, null); + Object = $newType(8, $kindInterface, "types.Object", true, "go/types", true, null); + object = $newType(0, $kindStruct, "types.object", true, "go/types", false, function(parent_, pos_, pkg_, name_, typ_, order__, color__, scopePos__) { + this.$val = this; + if (arguments.length === 0) { + this.parent = ptrType.nil; + this.pos = 0; + this.pkg = ptrType$1.nil; + this.name = ""; + this.typ = $ifaceNil; + this.order_ = 0; + this.color_ = 0; + this.scopePos_ = 0; + return; + } + this.parent = parent_; + this.pos = pos_; + this.pkg = pkg_; + this.name = name_; + this.typ = typ_; + this.order_ = order__; + this.color_ = color__; + this.scopePos_ = scopePos__; + }); + color = $newType(4, $kindUint32, "types.color", true, "go/types", false, null); + PkgName = $newType(0, $kindStruct, "types.PkgName", true, "go/types", true, function(object_, imported_, used_) { + this.$val = this; + if (arguments.length === 0) { + this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); + this.imported = ptrType$1.nil; + this.used = false; + return; + } + this.object = object_; + this.imported = imported_; + this.used = used_; + }); + Const = $newType(0, $kindStruct, "types.Const", true, "go/types", true, function(object_, val_) { + this.$val = this; + if (arguments.length === 0) { + this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); + this.val = $ifaceNil; + return; + } + this.object = object_; + this.val = val_; + }); + TypeName = $newType(0, $kindStruct, "types.TypeName", true, "go/types", true, function(object_) { + this.$val = this; + if (arguments.length === 0) { + this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); + return; + } + this.object = object_; + }); + Var = $newType(0, $kindStruct, "types.Var", true, "go/types", true, function(object_, embedded_, isField_, used_, origin_) { + this.$val = this; + if (arguments.length === 0) { + this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); + this.embedded = false; + this.isField = false; + this.used = false; + this.origin = ptrType$16.nil; + return; + } + this.object = object_; + this.embedded = embedded_; + this.isField = isField_; + this.used = used_; + this.origin = origin_; + }); + Func = $newType(0, $kindStruct, "types.Func", true, "go/types", true, function(object_, hasPtrRecv__, origin_) { + this.$val = this; + if (arguments.length === 0) { + this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); + this.hasPtrRecv_ = false; + this.origin = ptrType$2.nil; + return; + } + this.object = object_; + this.hasPtrRecv_ = hasPtrRecv__; + this.origin = origin_; + }); + Label = $newType(0, $kindStruct, "types.Label", true, "go/types", true, function(object_, used_) { + this.$val = this; + if (arguments.length === 0) { + this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); + this.used = false; + return; + } + this.object = object_; + this.used = used_; + }); + Builtin = $newType(0, $kindStruct, "types.Builtin", true, "go/types", true, function(object_, id_) { + this.$val = this; + if (arguments.length === 0) { + this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); + this.id = 0; + return; + } + this.object = object_; + this.id = id_; + }); + Nil = $newType(0, $kindStruct, "types.Nil", true, "go/types", true, function(object_) { + this.$val = this; + if (arguments.length === 0) { + this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); + return; + } + this.object = object_; + }); + Named = $newType(0, $kindStruct, "types.Named", true, "go/types", true, function(check_, obj_, fromRHS_, inst_, mu_, state__, underlying_, tparams_, methods_, loader_) { + this.$val = this; + if (arguments.length === 0) { + this.check = ptrType$6.nil; + this.obj = ptrType$17.nil; + this.fromRHS = $ifaceNil; + this.inst = ptrType$52.nil; + this.mu = new sync.Mutex.ptr(0, 0); + this.state_ = 0; + this.underlying = $ifaceNil; + this.tparams = ptrType$48.nil; + this.methods = sliceType.nil; + this.loader = $throwNilPointerError; + return; + } + this.check = check_; + this.obj = obj_; + this.fromRHS = fromRHS_; + this.inst = inst_; + this.mu = mu_; + this.state_ = state__; + this.underlying = underlying_; + this.tparams = tparams_; + this.methods = methods_; + this.loader = loader_; + }); + instance = $newType(0, $kindStruct, "types.instance", true, "go/types", false, function(orig_, targs_, expandedMethods_, ctxt_) { + this.$val = this; + if (arguments.length === 0) { + this.orig = ptrType$9.nil; + this.targs = ptrType$55.nil; + this.expandedMethods = 0; + this.ctxt = ptrType$51.nil; + return; + } + this.orig = orig_; + this.targs = targs_; + this.expandedMethods = expandedMethods_; + this.ctxt = ctxt_; + }); + namedState = $newType(4, $kindUint32, "types.namedState", true, "go/types", false, null); + monoGraph = $newType(0, $kindStruct, "types.monoGraph", true, "go/types", false, function(vertices_, edges_, canon_, nameIdx_) { + this.$val = this; + if (arguments.length === 0) { + this.vertices = sliceType$37.nil; + this.edges = sliceType$38.nil; + this.canon = false; + this.nameIdx = false; + return; + } + this.vertices = vertices_; + this.edges = edges_; + this.canon = canon_; + this.nameIdx = nameIdx_; + }); + monoVertex = $newType(0, $kindStruct, "types.monoVertex", true, "go/types", false, function(weight_, pre_, len_, obj_) { + this.$val = this; + if (arguments.length === 0) { + this.weight = 0; + this.pre = 0; + this.len = 0; + this.obj = ptrType$17.nil; + return; + } + this.weight = weight_; + this.pre = pre_; + this.len = len_; + this.obj = obj_; + }); + monoEdge = $newType(0, $kindStruct, "types.monoEdge", true, "go/types", false, function(dst_, src_, weight_, pos_, typ_) { + this.$val = this; + if (arguments.length === 0) { + this.dst = 0; + this.src = 0; + this.weight = 0; + this.pos = 0; + this.typ = $ifaceNil; + return; + } + this.dst = dst_; + this.src = src_; + this.weight = weight_; + this.pos = pos_; + this.typ = typ_; + }); + MethodSet = $newType(0, $kindStruct, "types.MethodSet", true, "go/types", true, function(list_) { + this.$val = this; + if (arguments.length === 0) { + this.list = sliceType$1.nil; + return; + } + this.list = list_; + }); + methodSet = $newType(4, $kindMap, "types.methodSet", true, "go/types", false, null); + Map = $newType(0, $kindStruct, "types.Map", true, "go/types", true, function(key_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.key = $ifaceNil; + this.elem = $ifaceNil; + return; + } + this.key = key_; + this.elem = elem_; + }); + embeddedType = $newType(0, $kindStruct, "types.embeddedType", true, "go/types", false, function(typ_, index_, indirect_, multiples_) { + this.$val = this; + if (arguments.length === 0) { + this.typ = $ifaceNil; + this.index = sliceType$13.nil; + this.indirect = false; + this.multiples = false; + return; + } + this.typ = typ_; + this.index = index_; + this.indirect = indirect_; + this.multiples = multiples_; + }); + instanceLookup = $newType(0, $kindStruct, "types.instanceLookup", true, "go/types", false, function(m_) { + this.$val = this; + if (arguments.length === 0) { + this.m = false; + return; + } + this.m = m_; + }); + block = $newType(0, $kindStruct, "types.block", true, "go/types", false, function(parent_, lstmt_, labels_) { + this.$val = this; + if (arguments.length === 0) { + this.parent = ptrType$92.nil; + this.lstmt = ptrType$64.nil; + this.labels = false; + return; + } + this.parent = parent_; + this.lstmt = lstmt_; + this.labels = labels_; + }); + Interface = $newType(0, $kindStruct, "types.Interface", true, "go/types", true, function(check_, methods_, embeddeds_, embedPos_, implicit_, complete_, tset_) { + this.$val = this; + if (arguments.length === 0) { + this.check = ptrType$6.nil; + this.methods = sliceType.nil; + this.embeddeds = sliceType$3.nil; + this.embedPos = ptrType$7.nil; + this.implicit = false; + this.complete = false; + this.tset = ptrType$8.nil; + return; + } + this.check = check_; + this.methods = methods_; + this.embeddeds = embeddeds_; + this.embedPos = embedPos_; + this.implicit = implicit_; + this.complete = complete_; + this.tset = tset_; + }); + dependency = $newType(8, $kindInterface, "types.dependency", true, "go/types", false, null); + graphNode = $newType(0, $kindStruct, "types.graphNode", true, "go/types", false, function(obj_, pred_, succ_, index_, ndeps_) { + this.$val = this; + if (arguments.length === 0) { + this.obj = $ifaceNil; + this.pred = false; + this.succ = false; + this.index = 0; + this.ndeps = 0; + return; + } + this.obj = obj_; + this.pred = pred_; + this.succ = succ_; + this.index = index_; + this.ndeps = ndeps_; + }); + nodeSet = $newType(4, $kindMap, "types.nodeSet", true, "go/types", false, null); + nodeQueue = $newType(12, $kindSlice, "types.nodeQueue", true, "go/types", false, null); + tpWalker = $newType(0, $kindStruct, "types.tpWalker", true, "go/types", false, function(seen_, tparams_) { + this.$val = this; + if (arguments.length === 0) { + this.seen = false; + this.tparams = sliceType$9.nil; + return; + } + this.seen = seen_; + this.tparams = tparams_; + }); + cycleFinder = $newType(0, $kindStruct, "types.cycleFinder", true, "go/types", false, function(tparams_, types_, seen_) { + this.$val = this; + if (arguments.length === 0) { + this.tparams = sliceType$9.nil; + this.types = sliceType$3.nil; + this.seen = false; + return; + } + this.tparams = tparams_; + this.types = types_; + this.seen = seen_; + }); + opPredicates = $newType(4, $kindMap, "types.opPredicates", true, "go/types", false, null); + exprKind = $newType(4, $kindInt, "types.exprKind", true, "go/types", false, null); + error_ = $newType(0, $kindStruct, "types.error_", true, "go/types", false, function(desc_, code_, soft_) { + this.$val = this; + if (arguments.length === 0) { + this.desc = sliceType$31.nil; + this.code = 0; + this.soft = false; + return; + } + this.desc = desc_; + this.code = code_; + this.soft = soft_; + }); + errorDesc = $newType(0, $kindStruct, "types.errorDesc", true, "go/types", false, function(posn_, format_, args_) { + this.$val = this; + if (arguments.length === 0) { + this.posn = $ifaceNil; + this.format = ""; + this.args = sliceType$5.nil; + return; + } + this.posn = posn_; + this.format = format_; + this.args = args_; + }); + positioner = $newType(8, $kindInterface, "types.positioner", true, "go/types", false, null); + posSpan = $newType(0, $kindStruct, "types.posSpan", true, "go/types", false, function(start_, pos_, end_) { + this.$val = this; + if (arguments.length === 0) { + this.start = 0; + this.pos = 0; + this.end = 0; + return; + } + this.start = start_; + this.pos = pos_; + this.end = end_; + }); + atPos = $newType(4, $kindInt, "types.atPos", true, "go/types", false, null); + errorCode = $newType(4, $kindInt, "types.errorCode", true, "go/types", false, null); + decl = $newType(8, $kindInterface, "types.decl", true, "go/types", false, null); + importDecl = $newType(0, $kindStruct, "types.importDecl", true, "go/types", false, function(spec_) { + this.$val = this; + if (arguments.length === 0) { + this.spec = ptrType$106.nil; + return; + } + this.spec = spec_; + }); + constDecl = $newType(0, $kindStruct, "types.constDecl", true, "go/types", false, function(spec_, iota_, typ_, init_, inherited_) { + this.$val = this; + if (arguments.length === 0) { + this.spec = ptrType$87.nil; + this.iota = 0; + this.typ = $ifaceNil; + this.init = sliceType$11.nil; + this.inherited = false; + return; + } + this.spec = spec_; + this.iota = iota_; + this.typ = typ_; + this.init = init_; + this.inherited = inherited_; + }); + varDecl = $newType(0, $kindStruct, "types.varDecl", true, "go/types", false, function(spec_) { + this.$val = this; + if (arguments.length === 0) { + this.spec = ptrType$87.nil; + return; + } + this.spec = spec_; + }); + typeDecl = $newType(0, $kindStruct, "types.typeDecl", true, "go/types", false, function(spec_) { + this.$val = this; + if (arguments.length === 0) { + this.spec = ptrType$89.nil; + return; + } + this.spec = spec_; + }); + funcDecl = $newType(0, $kindStruct, "types.funcDecl", true, "go/types", false, function(decl_) { + this.$val = this; + if (arguments.length === 0) { + this.decl = ptrType$86.nil; + return; + } + this.decl = decl_; + }); + Context = $newType(0, $kindStruct, "types.Context", true, "go/types", true, function(mu_, typeMap_, nextID_, originIDs_) { + this.$val = this; + if (arguments.length === 0) { + this.mu = new sync.Mutex.ptr(0, 0); + this.typeMap = false; + this.nextID = 0; + this.originIDs = false; + return; + } + this.mu = mu_; + this.typeMap = typeMap_; + this.nextID = nextID_; + this.originIDs = originIDs_; + }); + ctxtEntry = $newType(0, $kindStruct, "types.ctxtEntry", true, "go/types", false, function(orig_, targs_, instance_) { + this.$val = this; + if (arguments.length === 0) { + this.orig = $ifaceNil; + this.targs = sliceType$3.nil; + this.instance = $ifaceNil; + return; + } + this.orig = orig_; + this.targs = targs_; + this.instance = instance_; + }); + exprInfo = $newType(0, $kindStruct, "types.exprInfo", true, "go/types", false, function(isLhs_, mode_, typ_, val_) { + this.$val = this; + if (arguments.length === 0) { + this.isLhs = false; + this.mode = 0; + this.typ = ptrType$4.nil; + this.val = $ifaceNil; + return; + } + this.isLhs = isLhs_; + this.mode = mode_; + this.typ = typ_; + this.val = val_; + }); + environment = $newType(0, $kindStruct, "types.environment", true, "go/types", false, function(decl_, scope_, pos_, iota_, errpos_, inTParamList_, sig_, isPanic_, hasLabel_, hasCallOrRecv_) { + this.$val = this; + if (arguments.length === 0) { + this.decl = ptrType$57.nil; + this.scope = ptrType.nil; + this.pos = 0; + this.iota = $ifaceNil; + this.errpos = $ifaceNil; + this.inTParamList = false; + this.sig = ptrType$27.nil; + this.isPanic = false; + this.hasLabel = false; + this.hasCallOrRecv = false; + return; + } + this.decl = decl_; + this.scope = scope_; + this.pos = pos_; + this.iota = iota_; + this.errpos = errpos_; + this.inTParamList = inTParamList_; + this.sig = sig_; + this.isPanic = isPanic_; + this.hasLabel = hasLabel_; + this.hasCallOrRecv = hasCallOrRecv_; + }); + importKey = $newType(0, $kindStruct, "types.importKey", true, "go/types", false, function(path_, dir_) { + this.$val = this; + if (arguments.length === 0) { + this.path = ""; + this.dir = ""; + return; + } + this.path = path_; + this.dir = dir_; + }); + dotImportKey = $newType(0, $kindStruct, "types.dotImportKey", true, "go/types", false, function(scope_, name_) { + this.$val = this; + if (arguments.length === 0) { + this.scope = ptrType.nil; + this.name = ""; + return; + } + this.scope = scope_; + this.name = name_; + }); + action = $newType(0, $kindStruct, "types.action", true, "go/types", false, function(f_, desc_) { + this.$val = this; + if (arguments.length === 0) { + this.f = $throwNilPointerError; + this.desc = ptrType$109.nil; + return; + } + this.f = f_; + this.desc = desc_; + }); + actionDesc = $newType(0, $kindStruct, "types.actionDesc", true, "go/types", false, function(pos_, format_, args_) { + this.$val = this; + if (arguments.length === 0) { + this.pos = $ifaceNil; + this.format = ""; + this.args = sliceType$5.nil; + return; + } + this.pos = pos_; + this.format = format_; + this.args = args_; + }); + Checker = $newType(0, $kindStruct, "types.Checker", true, "go/types", true, function(conf_, ctxt_, fset_, pkg_, Info_, version_, nextID_, objMap_, impMap_, valids_, pkgPathMap_, seenPkgMap_, files_, imports_, dotImportMap_, recvTParamMap_, brokenAliases_, unionTypeSets_, mono_, firstErr_, methods_, untyped_, delayed_, objPath_, cleaners_, environment_, indent_) { + this.$val = this; + if (arguments.length === 0) { + this.conf = ptrType$101.nil; + this.ctxt = ptrType$51.nil; + this.fset = ptrType$24.nil; + this.pkg = ptrType$1.nil; + this.Info = ptrType$110.nil; + this.version = new version.ptr(0, 0); + this.nextID = new $Uint64(0, 0); + this.objMap = false; + this.impMap = false; + this.valids = new instanceLookup.ptr(false); + this.pkgPathMap = false; + this.seenPkgMap = false; + this.files = sliceType$35.nil; + this.imports = sliceType$36.nil; + this.dotImportMap = false; + this.recvTParamMap = false; + this.brokenAliases = false; + this.unionTypeSets = false; + this.mono = new monoGraph.ptr(sliceType$37.nil, sliceType$38.nil, false, false); + this.firstErr = $ifaceNil; + this.methods = false; + this.untyped = false; + this.delayed = sliceType$39.nil; + this.objPath = sliceType$8.nil; + this.cleaners = sliceType$40.nil; + this.environment = new environment.ptr(ptrType$57.nil, ptrType.nil, 0, $ifaceNil, $ifaceNil, false, ptrType$27.nil, false, false, false); + this.indent = 0; + return; + } + this.conf = conf_; + this.ctxt = ctxt_; + this.fset = fset_; + this.pkg = pkg_; + this.Info = Info_; + this.version = version_; + this.nextID = nextID_; + this.objMap = objMap_; + this.impMap = impMap_; + this.valids = valids_; + this.pkgPathMap = pkgPathMap_; + this.seenPkgMap = seenPkgMap_; + this.files = files_; + this.imports = imports_; + this.dotImportMap = dotImportMap_; + this.recvTParamMap = recvTParamMap_; + this.brokenAliases = brokenAliases_; + this.unionTypeSets = unionTypeSets_; + this.mono = mono_; + this.firstErr = firstErr_; + this.methods = methods_; + this.untyped = untyped_; + this.delayed = delayed_; + this.objPath = objPath_; + this.cleaners = cleaners_; + this.environment = environment_; + this.indent = indent_; + }); + cleaner = $newType(8, $kindInterface, "types.cleaner", true, "go/types", false, null); + bailout = $newType(0, $kindStruct, "types.bailout", true, "go/types", false, function() { this.$val = this; }); + Chan = $newType(0, $kindStruct, "types.Chan", true, "go/types", true, function(dir_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.dir = 0; + this.elem = $ifaceNil; + return; + } + this.dir = dir_; + this.elem = elem_; + }); + ChanDir = $newType(4, $kindInt, "types.ChanDir", true, "go/types", true, null); + BasicKind = $newType(4, $kindInt, "types.BasicKind", true, "go/types", true, null); + BasicInfo = $newType(4, $kindInt, "types.BasicInfo", true, "go/types", true, null); + Basic = $newType(0, $kindStruct, "types.Basic", true, "go/types", true, function(kind_, info_, name_) { + this.$val = this; + if (arguments.length === 0) { + this.kind = 0; + this.info = 0; + this.name = ""; + return; + } + this.kind = kind_; + this.info = info_; + this.name = name_; + }); + Array = $newType(0, $kindStruct, "types.Array", true, "go/types", true, function(len_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.len = new $Int64(0, 0); + this.elem = $ifaceNil; + return; + } + this.len = len_; + this.elem = elem_; + }); + Error = $newType(0, $kindStruct, "types.Error", true, "go/types", true, function(Fset_, Pos_, Msg_, Soft_, go116code_, go116start_, go116end_) { + this.$val = this; + if (arguments.length === 0) { + this.Fset = ptrType$24.nil; + this.Pos = 0; + this.Msg = ""; + this.Soft = false; + this.go116code = 0; + this.go116start = 0; + this.go116end = 0; + return; + } + this.Fset = Fset_; + this.Pos = Pos_; + this.Msg = Msg_; + this.Soft = Soft_; + this.go116code = go116code_; + this.go116start = go116start_; + this.go116end = go116end_; + }); + Importer = $newType(8, $kindInterface, "types.Importer", true, "go/types", true, null); + ImportMode = $newType(4, $kindInt, "types.ImportMode", true, "go/types", true, null); + ImporterFrom = $newType(8, $kindInterface, "types.ImporterFrom", true, "go/types", true, null); + Config = $newType(0, $kindStruct, "types.Config", true, "go/types", true, function(Context_, GoVersion_, IgnoreFuncBodies_, FakeImportC_, go115UsesCgo_, Error_, Importer_, Sizes_, DisableUnusedImportCheck_) { + this.$val = this; + if (arguments.length === 0) { + this.Context = ptrType$51.nil; + this.GoVersion = ""; + this.IgnoreFuncBodies = false; + this.FakeImportC = false; + this.go115UsesCgo = false; + this.Error = $throwNilPointerError; + this.Importer = $ifaceNil; + this.Sizes = $ifaceNil; + this.DisableUnusedImportCheck = false; + return; + } + this.Context = Context_; + this.GoVersion = GoVersion_; + this.IgnoreFuncBodies = IgnoreFuncBodies_; + this.FakeImportC = FakeImportC_; + this.go115UsesCgo = go115UsesCgo_; + this.Error = Error_; + this.Importer = Importer_; + this.Sizes = Sizes_; + this.DisableUnusedImportCheck = DisableUnusedImportCheck_; + }); + Info = $newType(0, $kindStruct, "types.Info", true, "go/types", true, function(Types_, Instances_, Defs_, Uses_, Implicits_, Selections_, Scopes_, InitOrder_) { + this.$val = this; + if (arguments.length === 0) { + this.Types = false; + this.Instances = false; + this.Defs = false; + this.Uses = false; + this.Implicits = false; + this.Selections = false; + this.Scopes = false; + this.InitOrder = sliceType$30.nil; + return; + } + this.Types = Types_; + this.Instances = Instances_; + this.Defs = Defs_; + this.Uses = Uses_; + this.Implicits = Implicits_; + this.Selections = Selections_; + this.Scopes = Scopes_; + this.InitOrder = InitOrder_; + }); + TypeAndValue = $newType(0, $kindStruct, "types.TypeAndValue", true, "go/types", true, function(mode_, Type_, Value_) { + this.$val = this; + if (arguments.length === 0) { + this.mode = 0; + this.Type = $ifaceNil; + this.Value = $ifaceNil; + return; + } + this.mode = mode_; + this.Type = Type_; + this.Value = Value_; + }); + Instance = $newType(0, $kindStruct, "types.Instance", true, "go/types", true, function(TypeArgs_, Type_) { + this.$val = this; + if (arguments.length === 0) { + this.TypeArgs = ptrType$55.nil; + this.Type = $ifaceNil; + return; + } + this.TypeArgs = TypeArgs_; + this.Type = Type_; + }); + Initializer = $newType(0, $kindStruct, "types.Initializer", true, "go/types", true, function(Lhs_, Rhs_) { + this.$val = this; + if (arguments.length === 0) { + this.Lhs = sliceType$10.nil; + this.Rhs = $ifaceNil; + return; + } + this.Lhs = Lhs_; + this.Rhs = Rhs_; + }); + $pkg.version = version; + $pkg.builtinId = builtinId; + $pkg.Union = Union; + $pkg.Term = Term; + $pkg.unifier = unifier; + $pkg.tparamsList = tparamsList; + $pkg.term = term; + $pkg.Qualifier = Qualifier; + $pkg.typeWriter = typeWriter; + $pkg._TypeSet = _TypeSet; + $pkg.byUniqueMethodName = byUniqueMethodName; + $pkg.TypeParam = TypeParam; + $pkg.TypeParamList = TypeParamList; + $pkg.TypeList = TypeList; + $pkg.Type = Type; + $pkg.Tuple = Tuple; + $pkg.termlist = termlist; + $pkg.substMap = substMap; + $pkg.subster = subster; + $pkg.Struct = Struct; + $pkg.stmtContext = stmtContext; + $pkg.valueMap = valueMap; + $pkg.valueType = valueType; + $pkg.Slice = Slice; + $pkg.Sizes = Sizes; + $pkg.StdSizes = StdSizes; + $pkg.Signature = Signature; + $pkg.SelectionKind = SelectionKind; + $pkg.Selection = Selection; + $pkg.Scope = Scope; + $pkg.lazyObject = lazyObject; + $pkg.declInfo = declInfo; + $pkg.inSourceOrder = inSourceOrder; + $pkg.ifacePair = ifacePair; + $pkg.Pointer = Pointer; + $pkg.Package = Package; + $pkg.operandMode = operandMode; + $pkg.operand = operand; + $pkg.objset = objset; + $pkg.Object = Object; + $pkg.object = object; + $pkg.color = color; + $pkg.PkgName = PkgName; + $pkg.Const = Const; + $pkg.TypeName = TypeName; + $pkg.Var = Var; + $pkg.Func = Func; + $pkg.Label = Label; + $pkg.Builtin = Builtin; + $pkg.Nil = Nil; + $pkg.Named = Named; + $pkg.instance = instance; + $pkg.namedState = namedState; + $pkg.monoGraph = monoGraph; + $pkg.monoVertex = monoVertex; + $pkg.monoEdge = monoEdge; + $pkg.MethodSet = MethodSet; + $pkg.methodSet = methodSet; + $pkg.Map = Map; + $pkg.embeddedType = embeddedType; + $pkg.instanceLookup = instanceLookup; + $pkg.block = block; + $pkg.Interface = Interface; + $pkg.dependency = dependency; + $pkg.graphNode = graphNode; + $pkg.nodeSet = nodeSet; + $pkg.nodeQueue = nodeQueue; + $pkg.tpWalker = tpWalker; + $pkg.cycleFinder = cycleFinder; + $pkg.opPredicates = opPredicates; + $pkg.exprKind = exprKind; + $pkg.error_ = error_; + $pkg.errorDesc = errorDesc; + $pkg.positioner = positioner; + $pkg.posSpan = posSpan; + $pkg.atPos = atPos; + $pkg.errorCode = errorCode; + $pkg.decl = decl; + $pkg.importDecl = importDecl; + $pkg.constDecl = constDecl; + $pkg.varDecl = varDecl; + $pkg.typeDecl = typeDecl; + $pkg.funcDecl = funcDecl; + $pkg.Context = Context; + $pkg.ctxtEntry = ctxtEntry; + $pkg.exprInfo = exprInfo; + $pkg.environment = environment; + $pkg.importKey = importKey; + $pkg.dotImportKey = dotImportKey; + $pkg.action = action; + $pkg.actionDesc = actionDesc; + $pkg.Checker = Checker; + $pkg.cleaner = cleaner; + $pkg.bailout = bailout; + $pkg.Chan = Chan; + $pkg.ChanDir = ChanDir; + $pkg.BasicKind = BasicKind; + $pkg.BasicInfo = BasicInfo; + $pkg.Basic = Basic; + $pkg.Array = Array; + $pkg.Error = Error; + $pkg.Importer = Importer; + $pkg.ImportMode = ImportMode; + $pkg.ImporterFrom = ImporterFrom; + $pkg.Config = Config; + $pkg.Info = Info; + $pkg.TypeAndValue = TypeAndValue; + $pkg.Instance = Instance; + $pkg.Initializer = Initializer; + $pkg.$finishSetup = function() { + $ptrType(Checker).prototype.langCompat = function langCompat(lit) { + var {check, lit, radix, s, $s, $r, $c} = $restore(this, {lit}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + s = lit.Value; + if (s.length <= 2 || check.allowVersion(check.pkg, 1, 13)) { + $s = -1; return; + } + /* */ if (strings.Contains(s, "_")) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (strings.Contains(s, "_")) { */ case 1: + $r = check.errorf(lit, 71, "underscores in numeric literals requires go1.13 or later", sliceType$5.nil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 2: + if (!((s.charCodeAt(0) === 48))) { + $s = -1; return; + } + radix = s.charCodeAt(1); + /* */ if ((radix === 98) || (radix === 66)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((radix === 98) || (radix === 66)) { */ case 4: + $r = check.errorf(lit, 71, "binary literals requires go1.13 or later", sliceType$5.nil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 5: + /* */ if ((radix === 111) || (radix === 79)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((radix === 111) || (radix === 79)) { */ case 7: + $r = check.errorf(lit, 71, "0o/0O-style octal literals requires go1.13 or later", sliceType$5.nil); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 8: + /* */ if (!((lit.Kind === 5)) && ((radix === 120) || (radix === 88))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((lit.Kind === 5)) && ((radix === 120) || (radix === 88))) { */ case 10: + $r = check.errorf(lit, 71, "hexadecimal floating-point literals requires go1.13 or later", sliceType$5.nil); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + $s = -1; return; + /* */ } return; } var $f = {$blk: langCompat, $c: true, $r, check, lit, radix, s, $s};return $f; + }; + $ptrType(Checker).prototype.allowVersion = function allowVersion(pkg, major, minor) { + var _tmp, _tmp$1, check, ma, major, mi, minor, pkg; + check = this; + if (!(pkg === check.pkg)) { + return true; + } + _tmp = check.version.major; + _tmp$1 = check.version.minor; + ma = _tmp; + mi = _tmp$1; + return (ma === 0) && (mi === 0) || ma > major || (ma === major) && mi >= minor; + }; + parseGoVersion = function parseGoVersion$1(s) { + var {_r$1, _r$2, _tuple, _tuple$1, err, matches, s, v, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = new version.ptr(0, 0); + err = $ifaceNil; + if (s === "") { + $s = -1; return [v, err]; + } + _r$1 = goVersionRx.FindStringSubmatch(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + matches = _r$1; + /* */ if (matches === sliceType$6.nil) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (matches === sliceType$6.nil) { */ case 2: + _r$2 = fmt.Errorf("should be something like \"go1.12\"", sliceType$5.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err = _r$2; + $s = -1; return [v, err]; + /* } */ case 3: + _tuple = strconv.Atoi((1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1])); + v.major = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [v, err]; + } + _tuple$1 = strconv.Atoi((2 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 2])); + v.minor = _tuple$1[0]; + err = _tuple$1[1]; + $s = -1; return [v, err]; + /* */ } return; } var $f = {$blk: parseGoVersion$1, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, err, matches, s, v, $s};return $f; + }; + $ptrType(Checker).prototype.validType = function validType(typ) { + var {_r$1, check, typ, $s, $r, $c} = $restore(this, {typ}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.validType0(typ, sliceType$7.nil, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* */ } return; } var $f = {$blk: validType, $c: true, $r, _r$1, check, typ, $s};return $f; + }; + $ptrType(Checker).prototype.validType0 = function validType0(typ, nest, path) { + var {$24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, check, e, etyp, f, i, inst, nest, p, path, start, t, t$1, t$2, t$3, t$4, t$5, t$6, t$7, targ, tparam, typ, x, $s, $r, $c} = $restore(this, {typ, nest, path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _ref = typ; + /* */ if (_ref === $ifaceNil) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 7; continue; } + /* */ $s = 8; continue; + /* switch (0) { default: if (_ref === $ifaceNil) { */ case 1: + t = _ref; + if (false) { + $panic(new $String("validType0(nil)")); + } + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: + t$1 = _ref.$val; + _r$1 = check.validType0(t$1.elem, nest, path); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 10; case 10: return $24r; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 3: + t$2 = _ref.$val; + _ref$1 = t$2.fields; + _i = 0; + /* while (true) { */ case 11: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 12; continue; } + f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$2 = check.validType0(f.object.typ, nest, path); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!_r$2) { */ case 13: + $s = -1; return false; + /* } */ case 14: + _i++; + $s = 11; continue; + case 12: + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 4: + t$3 = _ref.$val; + _ref$2 = t$3.terms; + _i$1 = 0; + /* while (true) { */ case 16: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 17; continue; } + t$7 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + _r$3 = check.validType0(t$7.typ, nest, path); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!_r$3) { */ case 18: + $s = -1; return false; + /* } */ case 19: + _i$1++; + $s = 16; continue; + case 17: + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 5: + t$4 = _ref.$val; + _ref$3 = t$4.embeddeds; + _i$2 = 0; + /* while (true) { */ case 21: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 22; continue; } + etyp = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + _r$4 = check.validType0(etyp, nest, path); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!_r$4) { */ case 23: + $s = -1; return false; + /* } */ case 24: + _i$2++; + $s = 21; continue; + case 22: + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 6: + t$5 = _ref.$val; + _r$5 = check.valids.lookup(t$5); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!(_r$5 === ptrType$9.nil)) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!(_r$5 === ptrType$9.nil)) { */ case 26: + /* break; */ $s = 8; continue; + /* } */ case 27: + _r$6 = t$5.Underlying(); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(_r$6, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if ($interfaceIsEqual(_r$6, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 29: + $s = -1; return false; + /* } */ case 30: + _ref$4 = nest; + _i$3 = 0; + /* while (true) { */ case 32: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 33; continue; } + e = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + _r$7 = Identical(e, t$5); /* */ $s = 36; case 36: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (_r$7) { */ case 34: + $r = assert(t$5.obj.object.pkg === check.pkg); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + t$5.underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + _ref$5 = path; + _i$4 = 0; + /* while (true) { */ case 38: + /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 39; continue; } + start = _i$4; + p = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); + _r$8 = Identical(p, t$5); /* */ $s = 42; case 42: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (_r$8) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (_r$8) { */ case 40: + $r = check.cycleError(makeObjList($subslice(path, start))); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 41: + _i$4++; + $s = 38; continue; + case 39: + $panic(new $String("cycle start not found")); + /* } */ case 35: + _i$3++; + $s = 32; continue; + case 33: + _r$9 = check.validType0(t$5.Origin().fromRHS, $append(nest, t$5), $append(path, t$5)); /* */ $s = 46; case 46: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (!_r$9) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!_r$9) { */ case 44: + $s = -1; return false; + /* } */ case 45: + check.valids.add(t$5); + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 7: + t$6 = _ref.$val; + /* */ if (nest.$length > 0) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (nest.$length > 0) { */ case 47: + inst = (x = nest.$length - 1 >> 0, ((x < 0 || x >= nest.$length) ? ($throwRuntimeError("index out of range"), undefined) : nest.$array[nest.$offset + x])); + _r$10 = inst.TypeParams(); /* */ $s = 49; case 49: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = _r$10.list(); /* */ $s = 50; case 50: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _ref$6 = _r$11; + _i$5 = 0; + /* while (true) { */ case 51: + /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 52; continue; } + i = _i$5; + tparam = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); + /* */ if (t$6 === tparam && i < inst.TypeArgs().Len()) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (t$6 === tparam && i < inst.TypeArgs().Len()) { */ case 53: + targ = inst.TypeArgs().At(i); + _r$12 = check.validType0(targ, $subslice(nest, 0, (nest.$length - 1 >> 0)), path); /* */ $s = 55; case 55: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $24r$1 = _r$12; + $s = 56; case 56: return $24r$1; + /* } */ case 54: + _i$5++; + $s = 51; continue; + case 52: + /* } */ case 48: + /* } } */ case 8: + $s = -1; return true; + /* */ } return; } var $f = {$blk: validType0, $c: true, $r, $24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, check, e, etyp, f, i, inst, nest, p, path, start, t, t$1, t$2, t$3, t$4, t$5, t$6, t$7, targ, tparam, typ, x, $s};return $f; + }; + makeObjList = function makeObjList$1(tlist) { + var _i, _ref, i, olist, t, tlist; + olist = $makeSlice(sliceType$8, tlist.$length); + _ref = tlist; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= olist.$length) ? ($throwRuntimeError("index out of range"), undefined) : olist.$array[olist.$offset + i] = t.obj); + _i++; + } + return olist; + }; + defPredeclaredTypes = function defPredeclaredTypes$1() { + var {_i, _i$1, _r$1, _r$2, _ref, _ref$1, err, ityp, ityp$1, obj, obj$1, recv, res, sig, t, t$1, typ, typ$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = $pkg.Typ; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = def(NewTypeName(0, ptrType$1.nil, t.name, t)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + _ref$1 = aliases; + _i$1 = 0; + /* while (true) { */ case 4: + /* if (!(_i$1 < 2)) { break; } */ if(!(_i$1 < 2)) { $s = 5; continue; } + t$1 = ((_i$1 < 0 || _i$1 >= _ref$1.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1[_i$1]); + $r = def(NewTypeName(0, ptrType$1.nil, t$1.name, t$1)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 4; continue; + case 5: + $r = def(NewTypeName(0, ptrType$1.nil, "any", new Interface.ptr(ptrType$6.nil, sliceType.nil, sliceType$3.nil, ptrType$7.nil, false, true, topTypeSet))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj = NewTypeName(0, ptrType$1.nil, "error", $ifaceNil); + $r = obj.object.setColor(1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + typ = NewNamed(obj, $ifaceNil, sliceType.nil); + recv = NewVar(0, ptrType$1.nil, "", typ); + res = NewVar(0, ptrType$1.nil, "", (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17])); + _r$1 = NewSignatureType(recv, sliceType$9.nil, sliceType$9.nil, ptrType$15.nil, NewTuple(new sliceType$10([res])), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + sig = _r$1; + err = NewFunc(0, ptrType$1.nil, "Error", sig); + ityp = new Interface.ptr(ptrType$6.nil, new sliceType([err]), sliceType$3.nil, ptrType$7.nil, false, true, ptrType$8.nil); + _r$2 = computeInterfaceTypeSet(ptrType$6.nil, 0, ityp); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $r = typ.SetUnderlying(ityp); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = def(obj); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj$1 = NewTypeName(0, ptrType$1.nil, "comparable", $ifaceNil); + $r = obj$1.object.setColor(1); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + typ$1 = NewNamed(obj$1, $ifaceNil, sliceType.nil); + ityp$1 = new Interface.ptr(ptrType$6.nil, sliceType.nil, sliceType$3.nil, ptrType$7.nil, false, true, new _TypeSet.ptr(sliceType.nil, allTermlist, true)); + $r = typ$1.SetUnderlying(ityp$1); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = def(obj$1); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: defPredeclaredTypes$1, $c: true, $r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, err, ityp, ityp$1, obj, obj$1, recv, res, sig, t, t$1, typ, typ$1, $s};return $f; + }; + defPredeclaredConsts = function defPredeclaredConsts$1() { + var {_i, _ref, c, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = predeclaredConsts; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < 3)) { break; } */ if(!(_i < 3)) { $s = 2; continue; } + c = $clone(((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]), structType); + $r = def(NewConst(0, ptrType$1.nil, c.name, (x = c.kind, ((x < 0 || x >= $pkg.Typ.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + x])), c.val)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: defPredeclaredConsts$1, $c: true, $r, _i, _ref, c, x, $s};return $f; + }; + defPredeclaredNil = function defPredeclaredNil$1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = def(new Nil.ptr($clone(new object.ptr(ptrType.nil, 0, ptrType$1.nil, "nil", (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), 0, 1, 0), object))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: defPredeclaredNil$1, $c: true, $r, $s};return $f; + }; + defPredeclaredFuncs = function defPredeclaredFuncs$1() { + var {_i, _ref, i, id, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = predeclaredFuncs; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < 22)) { break; } */ if(!(_i < 22)) { $s = 2; continue; } + i = _i; + id = ((i >> 0)); + if ((id === 20) || (id === 21)) { + _i++; + /* continue; */ $s = 1; continue; + } + $r = def(newBuiltin(id)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: defPredeclaredFuncs$1, $c: true, $r, _i, _ref, i, id, $s};return $f; + }; + init = function init$3() { + var {_r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $pkg.Universe = NewScope(ptrType.nil, 0, 0, "universe"); + _r$1 = NewPackage("unsafe", "unsafe"); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $pkg.Unsafe = _r$1; + $pkg.Unsafe.complete = true; + $r = defPredeclaredTypes(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = defPredeclaredConsts(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = defPredeclaredNil(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = defPredeclaredFuncs(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = $pkg.Universe.Lookup("iota"); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + universeIota = _r$2; + _r$3 = $pkg.Universe.Lookup("byte"); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = _r$3.Type(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + universeByte = _r$4; + _r$5 = $pkg.Universe.Lookup("rune"); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = _r$5.Type(); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + universeRune = _r$6; + _r$7 = $pkg.Universe.Lookup("any"); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + universeAny = _r$7; + _r$8 = $pkg.Universe.Lookup("error"); /* */ $s = 12; case 12: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = _r$8.Type(); /* */ $s = 13; case 13: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + universeError = _r$9; + _r$10 = $pkg.Universe.Lookup("comparable"); /* */ $s = 14; case 14: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + universeComparable = _r$10; + $s = -1; return; + /* */ } return; } var $f = {$blk: init$3, $c: true, $r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s};return $f; + }; + def = function def$1(obj) { + var {_r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, name, obj, obj$1, obj$2, obj$3, scope, typ, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = obj.color(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = assert(_r$1 === 1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + name = _r$2; + if (strings.Contains(name, " ")) { + $s = -1; return; + } + _r$3 = obj.Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = $assertType(_r$3, ptrType$9, true); + typ = _tuple[0]; + if (!(typ === ptrType$9.nil)) { + typ.obj = $assertType(obj, ptrType$17); + } + scope = $pkg.Universe; + _r$4 = obj.Exported(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$4) { */ case 5: + scope = $pkg.Unsafe.scope; + _ref = obj; + if ($assertType(_ref, ptrType$17, true)[1]) { + obj$1 = _ref.$val; + obj$1.object.pkg = $pkg.Unsafe; + } else if ($assertType(_ref, ptrType$18, true)[1]) { + obj$2 = _ref.$val; + obj$2.object.pkg = $pkg.Unsafe; + } else { + obj$3 = _ref; + unreachable(); + } + /* } */ case 6: + _r$5 = scope.Insert(obj); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(_r$5, $ifaceNil))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(_r$5, $ifaceNil))) { */ case 8: + $panic(new $String("double declaration of predeclared identifier")); + /* } */ case 9: + $s = -1; return; + /* */ } return; } var $f = {$blk: def$1, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, name, obj, obj$1, obj$2, obj$3, scope, typ, $s};return $f; + }; + NewUnion = function NewUnion$1(terms) { + var terms; + if (terms.$length === 0) { + $panic(new $String("empty union")); + } + return new Union.ptr(terms); + }; + $pkg.NewUnion = NewUnion; + $ptrType(Union).prototype.Len = function Len() { + var u; + u = this; + return u.terms.$length; + }; + $ptrType(Union).prototype.Term = function Term$1(i) { + var i, u, x; + u = this; + return (x = u.terms, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(Union).prototype.Underlying = function Underlying() { + var u; + u = this; + return u; + }; + $ptrType(Union).prototype.String = function String() { + var {$24r, _r$1, u, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + u = this; + _r$1 = TypeString(u, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r$1, u, $s};return $f; + }; + NewTerm = function NewTerm$1(tilde, typ) { + var tilde, typ; + return new Term.ptr(tilde, typ); + }; + $pkg.NewTerm = NewTerm; + $ptrType(Term).prototype.Tilde = function Tilde() { + var t; + t = this; + return t.tilde; + }; + $ptrType(Term).prototype.Type = function Type$1() { + var t; + t = this; + return t.typ; + }; + $ptrType(Term).prototype.String = function String$1() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = ($pointerOfStructConversion(t, ptrType$5)).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + parseUnion = function parseUnion$1(check, uexpr) { + var {_i, _r$1, _ref, _tuple, blist, check, i, term$1, terms, tlist, u, uexpr, x, x$1, $s, $r, $c} = $restore(this, {check, uexpr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = [check]; + terms = [terms]; + tlist = [tlist]; + _tuple = flattenUnion(sliceType$11.nil, uexpr); + blist = _tuple[0]; + tlist[0] = _tuple[1]; + $r = assert(blist.$length === (tlist[0].$length - 1 >> 0)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + terms[0] = sliceType$12.nil; + u = $ifaceNil; + _ref = tlist[0]; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = parseTilde(check[0], x); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + term$1 = _r$1; + if ((tlist[0].$length === 1) && !term$1.tilde) { + $s = -1; return term$1.typ; + } + /* */ if (terms[0].$length >= 100) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (terms[0].$length >= 100) { */ case 5: + /* */ if (!($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 8: + $r = check[0].errorf(x, 141, "cannot handle more than %d union terms (implementation limitation)", new sliceType$5([new $Int(100)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + u = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 9: + $s = 7; continue; + /* } else { */ case 6: + terms[0] = $append(terms[0], term$1); + u = new Union.ptr(terms[0]); + /* } */ case 7: + /* */ if (i > 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (i > 0) { */ case 11: + $r = check[0].recordTypeAndValue((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= blist.$length) ? ($throwRuntimeError("index out of range"), undefined) : blist.$array[blist.$offset + x$1])), 3, u, $ifaceNil); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + _i++; + $s = 2; continue; + case 3: + if ($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return u; + } + check[0].later((function(check, terms, tlist) { return function parseUnion·func1() { + var {_i$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref$1, _tuple$1, f, i$1, j, t, tset, u$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref$1 = terms[0]; + _i$1 = 0; + /* while (true) { */ case 1: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } + i$1 = _i$1; + t = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if ($interfaceIsEqual(t.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + _i$1++; + /* continue; */ $s = 1; continue; + } + _r$2 = under(t.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + u$1 = _r$2; + _tuple$1 = $assertType(u$1, ptrType$13, true); + f = _tuple$1[0]; + /* */ if (t.tilde) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (t.tilde) { */ case 4: + /* */ if (!(f === ptrType$13.nil)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(f === ptrType$13.nil)) { */ case 6: + $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "invalid use of ~ (%s is an interface)", new sliceType$5([t.typ])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* continue; */ $s = 1; continue; + /* } */ case 7: + _r$3 = Identical(u$1, t.typ); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!_r$3) { */ case 9: + $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "invalid use of ~ (underlying type of %s is %s)", new sliceType$5([t.typ, u$1])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* continue; */ $s = 1; continue; + /* } */ case 10: + /* } */ case 5: + /* */ if (!(f === ptrType$13.nil)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!(f === ptrType$13.nil)) { */ case 13: + _r$4 = f.typeSet(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + tset = _r$4; + /* */ if (!((tset.NumMethods() === 0))) { $s = 17; continue; } + _r$5 = universeComparable.Type(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(t.typ, _r$5)) { $s = 18; continue; } + /* */ if (tset.comparable) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!((tset.NumMethods() === 0))) { */ case 17: + $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "cannot use %s in union (%s contains methods)", new sliceType$5([t, t])); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($interfaceIsEqual(t.typ, _r$5)) { */ case 18: + $r = check[0].error(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "cannot use comparable in union"); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if (tset.comparable) { */ case 19: + $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "cannot use %s in union (%s embeds comparable)", new sliceType$5([t, t])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + case 16: + _i$1++; + /* continue; */ $s = 1; continue; + /* } */ case 14: + _r$6 = overlappingTerm($subslice(terms[0], 0, i$1), t); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + j = _r$6; + /* */ if (j >= 0) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (j >= 0) { */ case 26: + $r = check[0].softErrorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "overlapping terms %s and %s", new sliceType$5([t, ((j < 0 || j >= terms[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : terms[0].$array[terms[0].$offset + j])])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + _i$1++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: parseUnion·func1, $c: true, $r, _i$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref$1, _tuple$1, f, i$1, j, t, tset, u$1, $s};return $f; + }; })(check, terms, tlist)).describef(uexpr, "check term validity %s", new sliceType$5([uexpr])); + $s = -1; return u; + /* */ } return; } var $f = {$blk: parseUnion$1, $c: true, $r, _i, _r$1, _ref, _tuple, blist, check, i, term$1, terms, tlist, u, uexpr, x, x$1, $s};return $f; + }; + parseTilde = function parseTilde$1(check, tx) { + var {_r$1, _tuple, check, op, term$1, tilde, tx, typ, x, $s, $r, $c} = $restore(this, {check, tx}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = tx; + tilde = false; + _tuple = $assertType(x, ptrType$20, true); + op = _tuple[0]; + if (!(op === ptrType$20.nil) && (op.Op === 88)) { + x = op.X; + tilde = true; + } + _r$1 = check.typ(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ = _r$1; + /* */ if (isTypeParam(typ)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (isTypeParam(typ)) { */ case 2: + /* */ if (tilde) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (tilde) { */ case 4: + $r = check.errorf(x, 144, "type in term %s cannot be a type parameter", new sliceType$5([tx])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else { */ case 5: + $r = check.error(x, 144, "term cannot be a type parameter"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 3: + term$1 = NewTerm(tilde, typ); + /* */ if (tilde) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (tilde) { */ case 9: + $r = check.recordTypeAndValue(tx, 3, new Union.ptr(new sliceType$12([term$1])), $ifaceNil); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + $s = -1; return term$1; + /* */ } return; } var $f = {$blk: parseTilde$1, $c: true, $r, _r$1, _tuple, check, op, term$1, tilde, tx, typ, x, $s};return $f; + }; + overlappingTerm = function overlappingTerm$1(terms, y) { + var {_i, _r$1, _r$2, _r$3, _ref, i, terms, x, y, $s, $r, $c} = $restore(this, {terms, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = IsInterface(y.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = assert(!_r$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = terms; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$2 = IsInterface(x.typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$2) { */ case 5: + _i++; + /* continue; */ $s = 3; continue; + /* } */ case 6: + if (false) { + if (x === ptrType$19.nil || $interfaceIsEqual(x.typ, $ifaceNil) || y === ptrType$19.nil || $interfaceIsEqual(y.typ, $ifaceNil)) { + $panic(new $String("empty or top union term")); + } + } + _r$3 = ($pointerOfStructConversion(x, ptrType$5)).disjoint(($pointerOfStructConversion(y, ptrType$5))); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!_r$3) { */ case 8: + $s = -1; return i; + /* } */ case 9: + _i++; + $s = 3; continue; + case 4: + $s = -1; return -1; + /* */ } return; } var $f = {$blk: overlappingTerm$1, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, i, terms, x, y, $s};return $f; + }; + flattenUnion = function flattenUnion$1(list, x) { + var _tmp, _tmp$1, _tuple, _tuple$1, blist, list, o, tlist, x; + blist = sliceType$11.nil; + tlist = sliceType$11.nil; + _tuple = $assertType(x, ptrType$21, true); + o = _tuple[0]; + if (!(o === ptrType$21.nil) && (o.Op === 18)) { + _tuple$1 = flattenUnion(list, o.X); + blist = _tuple$1[0]; + tlist = _tuple$1[1]; + blist = $append(blist, o); + x = o.Y; + } + _tmp = blist; + _tmp$1 = $append(tlist, x); + blist = _tmp; + tlist = _tmp$1; + return [blist, tlist]; + }; + newUnifier = function newUnifier$1(exact) { + var exact, u; + u = new unifier.ptr(exact, new tparamsList.ptr(ptrType$22.nil, sliceType$9.nil, sliceType$13.nil), new tparamsList.ptr(ptrType$22.nil, sliceType$9.nil, sliceType$13.nil), sliceType$3.nil, 0); + u.x.unifier = u; + u.y.unifier = u; + return u; + }; + $ptrType(unifier).prototype.unify = function unify(x, y) { + var {$24r, _r$1, u, x, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + u = this; + _r$1 = u.nify(x, y, ptrType$23.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: unify, $c: true, $r, $24r, _r$1, u, x, y, $s};return $f; + }; + $ptrType(unifier).prototype.tracef = function tracef(format, args) { + var {_r$1, _r$2, args, format, u, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + u = this; + _r$1 = sprintf(ptrType$24.nil, $throwNilPointerError, true, format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = fmt.Println(new sliceType$5([new $String(strings.Repeat(". ", u.depth) + _r$1)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return; + /* */ } return; } var $f = {$blk: tracef, $c: true, $r, _r$1, _r$2, args, format, u, $s};return $f; + }; + $ptrType(tparamsList).prototype.String = function String$2() { + var {_i, _ref, buf, d, i, tpar, w, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + d = this; + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + w = newTypeWriter(buf[0], $throwNilPointerError); + w.byte$(91); + _ref = d.tparams; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + w.string(", "); + } + $r = w.typ(tpar); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w.string(": "); + $r = w.typ(d.at(i)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + w.byte$(93); + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: String$2, $c: true, $r, _i, _ref, buf, d, i, tpar, w, $s};return $f; + }; + $ptrType(tparamsList).prototype.init = function init$4(tparams) { + var {_i, _ref, d, i, tpar, tparams, $s, $r, $c} = $restore(this, {tparams}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + if (tparams.$length === 0) { + $s = -1; return; + } + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + _ref = tparams; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + i = _i; + tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = assert(i === tpar.index); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 3; continue; + case 4: + /* } */ case 2: + d.tparams = tparams; + d.indices = $makeSlice(sliceType$13, tparams.$length); + $s = -1; return; + /* */ } return; } var $f = {$blk: init$4, $c: true, $r, _i, _ref, d, i, tpar, tparams, $s};return $f; + }; + $ptrType(unifier).prototype.join = function join(i, j) { + var {i, j, ti, tj, u, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {i, j}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + u = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = u.tracef("%s \xE2\x87\x84 %s", new sliceType$5([(x = u.x.tparams, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), (x$1 = u.y.tparams, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j]))])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + ti = (x$2 = u.x.indices, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])); + tj = (x$3 = u.y.indices, ((j < 0 || j >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + j])); + /* */ if ((ti === 0) && (tj === 0)) { $s = 5; continue; } + /* */ if ((ti === 0)) { $s = 6; continue; } + /* */ if ((tj === 0)) { $s = 7; continue; } + /* */ if ((ti === tj)) { $s = 8; continue; } + /* */ if (ti > 0 && tj > 0) { $s = 9; continue; } + /* */ if (ti > 0) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((ti === 0) && (tj === 0)) { */ case 5: + u.types = $append(u.types, $ifaceNil); + (x$4 = u.x.indices, ((i < 0 || i >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i] = -u.types.$length)); + (x$5 = u.y.indices, ((j < 0 || j >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + j] = -u.types.$length)); + $s = 12; continue; + /* } else if ((ti === 0)) { */ case 6: + (x$6 = u.x.indices, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = tj)); + $s = 12; continue; + /* } else if ((tj === 0)) { */ case 7: + (x$7 = u.y.indices, ((j < 0 || j >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + j] = ti)); + $s = 12; continue; + /* } else if ((ti === tj)) { */ case 8: + /* break; */ $s = 4; continue; + $s = 12; continue; + /* } else if (ti > 0 && tj > 0) { */ case 9: + $s = -1; return false; + /* } else if (ti > 0) { */ case 10: + $r = u.y.setIndex(j, ti); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 12; continue; + /* } else { */ case 11: + $r = u.x.setIndex(i, tj); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + case 4: + $s = -1; return true; + /* */ } return; } var $f = {$blk: join, $c: true, $r, i, j, ti, tj, u, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + }; + $ptrType(tparamsList).prototype.index = function index(typ) { + var _tuple, d, ok, tpar, typ; + d = this; + _tuple = $assertType(typ, ptrType$14, true); + tpar = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return tparamIndex(d.tparams, tpar); + } + return -1; + }; + tparamIndex = function tparamIndex$1(list, tpar) { + var i, list, tpar; + i = tpar.index; + if (0 <= i && i < list.$length && ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i]) === tpar) { + return i; + } + return -1; + }; + $ptrType(tparamsList).prototype.setIndex = function setIndex(i, tj) { + var {_i, _ref, d, i, k, ti, tj, tk, x, x$1, $s, $r, $c} = $restore(this, {i, tj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + ti = (x = d.indices, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + $r = assert(!((ti === 0)) && !((tj === 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = d.indices; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + k = _i; + tk = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (tk === ti) { + (x$1 = d.indices, ((k < 0 || k >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + k] = tj)); + } + _i++; + } + $s = -1; return; + /* */ } return; } var $f = {$blk: setIndex, $c: true, $r, _i, _ref, d, i, k, ti, tj, tk, x, x$1, $s};return $f; + }; + $ptrType(tparamsList).prototype.at = function at(i) { + var d, i, ti, x, x$1, x$2; + d = this; + ti = (x = d.indices, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if (ti > 0) { + return (x$1 = d.unifier.types, x$2 = ti - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])); + } + return $ifaceNil; + }; + $ptrType(tparamsList).prototype.set = function set(i, typ) { + var {d, i, ti, typ, u, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {i, typ}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + $r = assert(!($interfaceIsEqual(typ, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + u = d.unifier; + /* */ if (false) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (false) { */ case 2: + $r = u.tracef("%s \xE2\x9E\x9E %s", new sliceType$5([(x = d.tparams, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), typ])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + ti = (x$1 = d.indices, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + /* */ if (ti < 0) { $s = 6; continue; } + /* */ if ((ti === 0)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (ti < 0) { */ case 6: + (x$2 = u.types, x$3 = -ti - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3] = typ)); + $r = d.setIndex(i, -ti); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 9; continue; + /* } else if ((ti === 0)) { */ case 7: + u.types = $append(u.types, typ); + (x$4 = d.indices, ((i < 0 || i >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i] = u.types.$length)); + $s = 9; continue; + /* } else { */ case 8: + $panic(new $String("type already set")); + /* } */ case 9: + case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: set, $c: true, $r, d, i, ti, typ, u, x, x$1, x$2, x$3, x$4, $s};return $f; + }; + $ptrType(tparamsList).prototype.unknowns = function unknowns() { + var _i, _ref, d, n, ti; + d = this; + n = 0; + _ref = d.indices; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + ti = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (ti <= 0) { + n = n + (1) >> 0; + } + _i++; + } + return n; + }; + $ptrType(tparamsList).prototype.types = function types() { + var _i, _ref, d, i, index$1, list, t; + list = sliceType$3.nil; + index$1 = 0; + d = this; + list = $makeSlice(sliceType$3, d.tparams.$length); + index$1 = -1; + _ref = d.tparams; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + t = d.at(i); + ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = t); + if (index$1 < 0 && $interfaceIsEqual(t, $ifaceNil)) { + index$1 = i; + } + _i++; + } + return [list, index$1]; + }; + $ptrType(unifier).prototype.nifyEq = function nifyEq(x, y, p) { + var {$24r, _r$1, _v, p, u, x, y, $s, $r, $c} = $restore(this, {x, y, p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + u = this; + if ($interfaceIsEqual(x, y)) { _v = true; $s = 1; continue s; } + _r$1 = u.nify(x, y, p); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 1: + $24r = _v; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: nifyEq, $c: true, $r, $24r, _r$1, _v, p, u, x, y, $s};return $f; + }; + $ptrType(unifier).prototype.nify = function nify(x, y, p) { + var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _arg, _arg$1, _arg$2, _i, _i$1, _i$2, _i$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, cx, cy, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, j, nx, ny, ok, ok$1, ok$10, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, result, tx, ty, u, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xargs, xset, y, y$1, y$10, y$11, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, yset, $s, $deferred, $r, $c} = $restore(this, {x, y, p}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + result = [result]; + u = [u]; + x = [x]; + y = [y]; + result[0] = false; + u[0] = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = u[0].tracef("%s \xE2\x89\xA1 %s", new sliceType$5([x[0], y[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + /* */ if (u[0].depth >= 50) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (u[0].depth >= 50) { */ case 4: + /* */ if (false) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (false) { */ case 6: + $r = u[0].tracef("depth %d >= %d", new sliceType$5([new $Int(u[0].depth), new $Int(50)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + if (true) { + $panic(new $String("unification reached recursion depth limit")); + } + result[0] = false; + $s = -1; return result[0]; + /* } */ case 5: + u[0].depth = u[0].depth + (1) >> 0; + $deferred.push([(function(result, u, x, y) { return function unifier·nify·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + u[0].depth = u[0].depth - (1) >> 0; + /* */ if (false && !result[0]) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false && !result[0]) { */ case 1: + $r = u[0].tracef("%s \xE2\x89\xA2 %s", new sliceType$5([x[0], y[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: unifier·nify·func1, $c: true, $r, $s};return $f; + }; })(result, u, x, y), []]); + /* */ if (!u[0].exact) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!u[0].exact) { */ case 9: + _tuple = $assertType(x[0], ptrType$9, true); + nx = _tuple[0]; + /* */ if (!(nx === ptrType$9.nil) && !hasName(y[0])) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!(nx === ptrType$9.nil) && !hasName(y[0])) { */ case 11: + /* */ if (false) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (false) { */ case 14: + $r = u[0].tracef("under %s \xE2\x89\xA1 %s", new sliceType$5([nx, y[0]])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + _r$1 = nx.under(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = u[0].nify(_r$1, y[0], p); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + result[0] = _r$2; + $24r = result[0]; + $s = 19; case 19: return $24r; + /* } else { */ case 12: + _tuple$1 = $assertType(y[0], ptrType$9, true); + ny = _tuple$1[0]; + /* */ if (!(ny === ptrType$9.nil) && !hasName(x[0])) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!(ny === ptrType$9.nil) && !hasName(x[0])) { */ case 20: + /* */ if (false) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (false) { */ case 22: + $r = u[0].tracef("%s \xE2\x89\xA1 under %s", new sliceType$5([x[0], ny])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + _arg = x[0]; + _r$3 = ny.under(); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = _r$3; + _arg$2 = p; + _r$4 = u[0].nify(_arg, _arg$1, _arg$2); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + result[0] = _r$4; + $24r$1 = result[0]; + $s = 27; case 27: return $24r$1; + /* } */ case 21: + /* } */ case 13: + /* } */ case 10: + _tmp = u[0].x.index(x[0]); + _tmp$1 = u[0].y.index(y[0]); + i = _tmp; + j = _tmp$1; + /* */ if (i >= 0 && j >= 0) { $s = 29; continue; } + /* */ if (i >= 0) { $s = 30; continue; } + /* */ if (j >= 0) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (i >= 0 && j >= 0) { */ case 29: + _r$5 = u[0].join(i, j); /* */ $s = 35; case 35: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (_r$5) { */ case 33: + result[0] = true; + $24r$2 = result[0]; + $s = 36; case 36: return $24r$2; + /* } */ case 34: + _r$6 = u[0].nifyEq(u[0].x.at(i), u[0].y.at(j), p); /* */ $s = 37; case 37: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + result[0] = _r$6; + $24r$3 = result[0]; + $s = 38; case 38: return $24r$3; + /* } else if (i >= 0) { */ case 30: + tx = u[0].x.at(i); + /* */ if (!($interfaceIsEqual(tx, $ifaceNil))) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (!($interfaceIsEqual(tx, $ifaceNil))) { */ case 39: + _r$7 = u[0].nifyEq(tx, y[0], p); /* */ $s = 41; case 41: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + result[0] = _r$7; + $24r$4 = result[0]; + $s = 42; case 42: return $24r$4; + /* } */ case 40: + $r = u[0].x.set(i, y[0]); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + result[0] = true; + $24r$5 = result[0]; + $s = 44; case 44: return $24r$5; + /* } else if (j >= 0) { */ case 31: + ty = u[0].y.at(j); + /* */ if (!($interfaceIsEqual(ty, $ifaceNil))) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (!($interfaceIsEqual(ty, $ifaceNil))) { */ case 45: + _r$8 = u[0].nifyEq(x[0], ty, p); /* */ $s = 47; case 47: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + result[0] = _r$8; + $24r$6 = result[0]; + $s = 48; case 48: return $24r$6; + /* } */ case 46: + $r = u[0].y.set(j, x[0]); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + result[0] = true; + $24r$7 = result[0]; + $s = 50; case 50: return $24r$7; + /* } */ case 32: + case 28: + /* */ if (true && !u[0].exact) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (true && !u[0].exact) { */ case 51: + /* */ if (isTypeParam(x[0]) && !hasName(y[0])) { $s = 53; continue; } + /* */ if (isTypeParam(y[0]) && !hasName(x[0])) { $s = 54; continue; } + /* */ $s = 55; continue; + /* if (isTypeParam(x[0]) && !hasName(y[0])) { */ case 53: + _r$9 = coreType(x[0]); /* */ $s = 56; case 56: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + cx = _r$9; + /* */ if (!($interfaceIsEqual(cx, $ifaceNil))) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (!($interfaceIsEqual(cx, $ifaceNil))) { */ case 57: + /* */ if (false) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (false) { */ case 59: + $r = u[0].tracef("core %s \xE2\x89\xA1 %s", new sliceType$5([x[0], y[0]])); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 60: + _r$10 = u[0].nify(cx, y[0], p); /* */ $s = 62; case 62: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + result[0] = _r$10; + $24r$8 = result[0]; + $s = 63; case 63: return $24r$8; + /* } */ case 58: + $s = 55; continue; + /* } else if (isTypeParam(y[0]) && !hasName(x[0])) { */ case 54: + _r$11 = coreType(y[0]); /* */ $s = 64; case 64: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + cy = _r$11; + /* */ if (!($interfaceIsEqual(cy, $ifaceNil))) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!($interfaceIsEqual(cy, $ifaceNil))) { */ case 65: + /* */ if (false) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (false) { */ case 67: + $r = u[0].tracef("%s \xE2\x89\xA1 core %s", new sliceType$5([x[0], y[0]])); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 68: + _r$12 = u[0].nify(x[0], cy, p); /* */ $s = 70; case 70: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + result[0] = _r$12; + $24r$9 = result[0]; + $s = 71; case 71: return $24r$9; + /* } */ case 66: + /* } */ case 55: + /* } */ case 52: + _ref = x[0]; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 72; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 73; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 74; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 75; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 76; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 77; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 78; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 79; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 80; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 81; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 82; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 83; continue; } + /* */ if (_ref === $ifaceNil) { $s = 84; continue; } + /* */ $s = 85; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 72: + x$1 = _ref.$val; + _tuple$2 = $assertType(y[0], ptrType$4, true); + y$1 = _tuple$2[0]; + ok = _tuple$2[1]; + /* */ if (ok) { $s = 87; continue; } + /* */ $s = 88; continue; + /* if (ok) { */ case 87: + result[0] = x$1.kind === y$1.kind; + $24r$10 = result[0]; + $s = 89; case 89: return $24r$10; + /* } */ case 88: + $s = 86; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 73: + x$2 = _ref.$val; + _tuple$3 = $assertType(y[0], ptrType$10, true); + y$2 = _tuple$3[0]; + ok$1 = _tuple$3[1]; + /* */ if (ok$1) { $s = 90; continue; } + /* */ $s = 91; continue; + /* if (ok$1) { */ case 90: + if (!((x$15 = x$2.len, (x$15.$high < 0 || (x$15.$high === 0 && x$15.$low < 0))) || (x$16 = y$2.len, (x$16.$high < 0 || (x$16.$high === 0 && x$16.$low < 0))) || (x$17 = x$2.len, x$18 = y$2.len, (x$17.$high === x$18.$high && x$17.$low === x$18.$low)))) { _v = false; $s = 92; continue s; } + _r$13 = u[0].nify(x$2.elem, y$2.elem, p); /* */ $s = 93; case 93: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _v = _r$13; case 92: + result[0] = _v; + $24r$11 = result[0]; + $s = 94; case 94: return $24r$11; + /* } */ case 91: + $s = 86; continue; + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 74: + x$3 = _ref.$val; + _tuple$4 = $assertType(y[0], ptrType$25, true); + y$3 = _tuple$4[0]; + ok$2 = _tuple$4[1]; + /* */ if (ok$2) { $s = 95; continue; } + /* */ $s = 96; continue; + /* if (ok$2) { */ case 95: + _r$14 = u[0].nify(x$3.elem, y$3.elem, p); /* */ $s = 97; case 97: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + result[0] = _r$14; + $24r$12 = result[0]; + $s = 98; case 98: return $24r$12; + /* } */ case 96: + $s = 86; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 75: + x$4 = _ref.$val; + _tuple$5 = $assertType(y[0], ptrType$11, true); + y$4 = _tuple$5[0]; + ok$3 = _tuple$5[1]; + /* */ if (ok$3) { $s = 99; continue; } + /* */ $s = 100; continue; + /* if (ok$3) { */ case 99: + /* */ if (x$4.NumFields() === y$4.NumFields()) { $s = 101; continue; } + /* */ $s = 102; continue; + /* if (x$4.NumFields() === y$4.NumFields()) { */ case 101: + _ref$1 = x$4.fields; + _i = 0; + /* while (true) { */ case 103: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 104; continue; } + i$1 = _i; + f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + g = (x$19 = y$4.fields, ((i$1 < 0 || i$1 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + i$1])); + if (!(f.embedded === g.embedded) || !(x$4.Tag(i$1) === y$4.Tag(i$1)) || !f.object.sameId(g.object.pkg, g.object.name)) { _v$1 = true; $s = 107; continue s; } + _r$15 = u[0].nify(f.object.typ, g.object.typ, p); /* */ $s = 108; case 108: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _v$1 = !_r$15; case 107: + /* */ if (_v$1) { $s = 105; continue; } + /* */ $s = 106; continue; + /* if (_v$1) { */ case 105: + result[0] = false; + $24r$13 = result[0]; + $s = 109; case 109: return $24r$13; + /* } */ case 106: + _i++; + $s = 103; continue; + case 104: + result[0] = true; + $24r$14 = result[0]; + $s = 110; case 110: return $24r$14; + /* } */ case 102: + /* } */ case 100: + $s = 86; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 76: + x$5 = _ref.$val; + _tuple$6 = $assertType(y[0], ptrType$26, true); + y$5 = _tuple$6[0]; + ok$4 = _tuple$6[1]; + /* */ if (ok$4) { $s = 111; continue; } + /* */ $s = 112; continue; + /* if (ok$4) { */ case 111: + _r$16 = u[0].nify(x$5.base, y$5.base, p); /* */ $s = 113; case 113: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + result[0] = _r$16; + $24r$15 = result[0]; + $s = 114; case 114: return $24r$15; + /* } */ case 112: + $s = 86; continue; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 77: + x$6 = _ref.$val; + _tuple$7 = $assertType(y[0], ptrType$15, true); + y$6 = _tuple$7[0]; + ok$5 = _tuple$7[1]; + /* */ if (ok$5) { $s = 115; continue; } + /* */ $s = 116; continue; + /* if (ok$5) { */ case 115: + /* */ if (x$6.Len() === y$6.Len()) { $s = 117; continue; } + /* */ $s = 118; continue; + /* if (x$6.Len() === y$6.Len()) { */ case 117: + /* */ if (!(x$6 === ptrType$15.nil)) { $s = 119; continue; } + /* */ $s = 120; continue; + /* if (!(x$6 === ptrType$15.nil)) { */ case 119: + _ref$2 = x$6.vars; + _i$1 = 0; + /* while (true) { */ case 121: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 122; continue; } + i$2 = _i$1; + v = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + w = (x$20 = y$6.vars, ((i$2 < 0 || i$2 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + i$2])); + _r$17 = u[0].nify(v.object.typ, w.object.typ, p); /* */ $s = 125; case 125: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + /* */ if (!_r$17) { $s = 123; continue; } + /* */ $s = 124; continue; + /* if (!_r$17) { */ case 123: + result[0] = false; + $24r$16 = result[0]; + $s = 126; case 126: return $24r$16; + /* } */ case 124: + _i$1++; + $s = 121; continue; + case 122: + /* } */ case 120: + result[0] = true; + $24r$17 = result[0]; + $s = 127; case 127: return $24r$17; + /* } */ case 118: + /* } */ case 116: + $s = 86; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 78: + x$7 = _ref.$val; + _tuple$8 = $assertType(y[0], ptrType$27, true); + y$7 = _tuple$8[0]; + ok$6 = _tuple$8[1]; + /* */ if (ok$6) { $s = 128; continue; } + /* */ $s = 129; continue; + /* if (ok$6) { */ case 128: + if (!(x$7.variadic === y$7.variadic)) { _v$3 = false; $s = 131; continue s; } + _r$18 = u[0].nify(x$7.params, y$7.params, p); /* */ $s = 132; case 132: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _v$3 = _r$18; case 131: + if (!(_v$3)) { _v$2 = false; $s = 130; continue s; } + _r$19 = u[0].nify(x$7.results, y$7.results, p); /* */ $s = 133; case 133: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _v$2 = _r$19; case 130: + result[0] = _v$2; + $24r$18 = result[0]; + $s = 134; case 134: return $24r$18; + /* } */ case 129: + $s = 86; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 79: + x$8 = _ref.$val; + _tuple$9 = $assertType(y[0], ptrType$13, true); + y$8 = _tuple$9[0]; + ok$7 = _tuple$9[1]; + /* */ if (ok$7) { $s = 135; continue; } + /* */ $s = 136; continue; + /* if (ok$7) { */ case 135: + _r$20 = x$8.typeSet(); /* */ $s = 137; case 137: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + xset = _r$20; + _r$21 = y$8.typeSet(); /* */ $s = 138; case 138: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + yset = _r$21; + /* */ if (!(xset.comparable === yset.comparable)) { $s = 139; continue; } + /* */ $s = 140; continue; + /* if (!(xset.comparable === yset.comparable)) { */ case 139: + result[0] = false; + $24r$19 = result[0]; + $s = 141; case 141: return $24r$19; + /* } */ case 140: + _r$22 = xset.terms.equal(yset.terms); /* */ $s = 144; case 144: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + /* */ if (!_r$22) { $s = 142; continue; } + /* */ $s = 143; continue; + /* if (!_r$22) { */ case 142: + result[0] = false; + $24r$20 = result[0]; + $s = 145; case 145: return $24r$20; + /* } */ case 143: + a = xset.methods; + b = yset.methods; + /* */ if (a.$length === b.$length) { $s = 146; continue; } + /* */ $s = 147; continue; + /* if (a.$length === b.$length) { */ case 146: + q = new ifacePair.ptr(x$8, y$8, p); + /* while (true) { */ case 148: + /* if (!(!(p === ptrType$23.nil))) { break; } */ if(!(!(p === ptrType$23.nil))) { $s = 149; continue; } + /* */ if (p.identical(q)) { $s = 150; continue; } + /* */ $s = 151; continue; + /* if (p.identical(q)) { */ case 150: + result[0] = true; + $24r$21 = result[0]; + $s = 152; case 152: return $24r$21; + /* } */ case 151: + p = p.prev; + $s = 148; continue; + case 149: + /* */ if (false) { $s = 153; continue; } + /* */ $s = 154; continue; + /* if (false) { */ case 153: + $r = assertSortedMethods(a); /* */ $s = 155; case 155: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assertSortedMethods(b); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 154: + _ref$3 = a; + _i$2 = 0; + /* while (true) { */ case 157: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 158; continue; } + i$3 = _i$2; + f$1 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + g$1 = ((i$3 < 0 || i$3 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i$3]); + if (!(f$1.object.Id() === g$1.object.Id())) { _v$4 = true; $s = 161; continue s; } + _r$23 = u[0].nify(f$1.object.typ, g$1.object.typ, q); /* */ $s = 162; case 162: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _v$4 = !_r$23; case 161: + /* */ if (_v$4) { $s = 159; continue; } + /* */ $s = 160; continue; + /* if (_v$4) { */ case 159: + result[0] = false; + $24r$22 = result[0]; + $s = 163; case 163: return $24r$22; + /* } */ case 160: + _i$2++; + $s = 157; continue; + case 158: + result[0] = true; + $24r$23 = result[0]; + $s = 164; case 164: return $24r$23; + /* } */ case 147: + /* } */ case 136: + $s = 86; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 80: + x$9 = _ref.$val; + _tuple$10 = $assertType(y[0], ptrType$28, true); + y$9 = _tuple$10[0]; + ok$8 = _tuple$10[1]; + /* */ if (ok$8) { $s = 165; continue; } + /* */ $s = 166; continue; + /* if (ok$8) { */ case 165: + _r$24 = u[0].nify(x$9.key, y$9.key, p); /* */ $s = 168; case 168: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + if (!(_r$24)) { _v$5 = false; $s = 167; continue s; } + _r$25 = u[0].nify(x$9.elem, y$9.elem, p); /* */ $s = 169; case 169: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _v$5 = _r$25; case 167: + result[0] = _v$5; + $24r$24 = result[0]; + $s = 170; case 170: return $24r$24; + /* } */ case 166: + $s = 86; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 81: + x$10 = _ref.$val; + _tuple$11 = $assertType(y[0], ptrType$29, true); + y$10 = _tuple$11[0]; + ok$9 = _tuple$11[1]; + /* */ if (ok$9) { $s = 171; continue; } + /* */ $s = 172; continue; + /* if (ok$9) { */ case 171: + if (!(!u[0].exact || (x$10.dir === y$10.dir))) { _v$6 = false; $s = 173; continue s; } + _r$26 = u[0].nify(x$10.elem, y$10.elem, p); /* */ $s = 174; case 174: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _v$6 = _r$26; case 173: + result[0] = _v$6; + $24r$25 = result[0]; + $s = 175; case 175: return $24r$25; + /* } */ case 172: + $s = 86; continue; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 82: + x$11 = _ref.$val; + _tuple$12 = $assertType(y[0], ptrType$9, true); + y$11 = _tuple$12[0]; + ok$10 = _tuple$12[1]; + /* */ if (ok$10) { $s = 176; continue; } + /* */ $s = 177; continue; + /* if (ok$10) { */ case 176: + xargs = x$11.TypeArgs().list(); + yargs = y$11.TypeArgs().list(); + /* */ if (!((xargs.$length === yargs.$length))) { $s = 178; continue; } + /* */ $s = 179; continue; + /* if (!((xargs.$length === yargs.$length))) { */ case 178: + result[0] = false; + $24r$26 = result[0]; + $s = 180; case 180: return $24r$26; + /* } */ case 179: + /* */ if (x$11.obj.object.pkg === y$11.obj.object.pkg && x$11.obj.object.name === y$11.obj.object.name) { $s = 181; continue; } + /* */ $s = 182; continue; + /* if (x$11.obj.object.pkg === y$11.obj.object.pkg && x$11.obj.object.name === y$11.obj.object.name) { */ case 181: + _ref$4 = xargs; + _i$3 = 0; + /* while (true) { */ case 183: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 184; continue; } + i$4 = _i$3; + x$21 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + _r$27 = u[0].nify(x$21, ((i$4 < 0 || i$4 >= yargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yargs.$array[yargs.$offset + i$4]), p); /* */ $s = 187; case 187: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + /* */ if (!_r$27) { $s = 185; continue; } + /* */ $s = 186; continue; + /* if (!_r$27) { */ case 185: + result[0] = false; + $24r$27 = result[0]; + $s = 188; case 188: return $24r$27; + /* } */ case 186: + _i$3++; + $s = 183; continue; + case 184: + result[0] = true; + $24r$28 = result[0]; + $s = 189; case 189: return $24r$28; + /* } */ case 182: + /* } */ case 177: + $s = 86; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 83: + x$12 = _ref.$val; + result[0] = $interfaceIsEqual(x$12, y[0]); + $24r$29 = result[0]; + $s = 190; case 190: return $24r$29; + /* } else if (_ref === $ifaceNil) { */ case 84: + x$13 = _ref; + $s = 86; continue; + /* } else { */ case 85: + x$14 = _ref; + _r$28 = sprintf(ptrType$24.nil, $throwNilPointerError, true, "u.nify(%s, %s), u.x.tparams = %s", new sliceType$5([x$14, y[0], u[0].x.tparams])); /* */ $s = 191; case 191: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + $panic(new $String(_r$28)); + /* } */ case 86: + result[0] = false; + $24r$30 = result[0]; + $s = 192; case 192: return $24r$30; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return result[0]; } if($curGoroutine.asleep) { var $f = {$blk: nify, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _arg, _arg$1, _arg$2, _i, _i$1, _i$2, _i$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, cx, cy, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, j, nx, ny, ok, ok$1, ok$10, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, result, tx, ty, u, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xargs, xset, y, y$1, y$10, y$11, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, yset, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.ident = function ident(x, e, def$2, wantType) { + var {_1, _entry, _entry$1, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, check, def$2, e, gotType, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, pkgName, scope, tpar, typ, wantType, x, $s, $r, $c} = $restore(this, {x, e, def$2, wantType}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + x.mode = 0; + x.expr = e; + _r$1 = check.environment.scope.LookupParent(e.Name, check.environment.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + scope = _tuple[0]; + obj = _tuple[1]; + _1 = obj; + /* */ if ($interfaceIsEqual(_1, $ifaceNil)) { $s = 3; continue; } + /* */ if ($interfaceIsEqual(_1, (universeAny)) || $interfaceIsEqual(_1, (universeComparable))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(_1, $ifaceNil)) { */ case 3: + /* */ if (e.Name === "_") { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (e.Name === "_") { */ case 6: + tpar = (_entry = $mapIndex(check.recvTParamMap,ptrType$30.keyFor(e)), _entry !== undefined ? _entry.v : ptrType$14.nil); + /* */ if (!(tpar === ptrType$14.nil)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(tpar === ptrType$14.nil)) { */ case 9: + x.mode = 3; + x.typ = tpar; + $s = 11; continue; + /* } else { */ case 10: + $r = check.error(e, 35, "cannot use _ as value or type"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + $s = 8; continue; + /* } else { */ case 7: + $r = check.errorf(e, 75, "undeclared name: %s", new sliceType$5([new $String(e.Name)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + $s = -1; return; + /* } else if ($interfaceIsEqual(_1, (universeAny)) || $interfaceIsEqual(_1, (universeComparable))) { */ case 4: + /* */ if (!check.allowVersion(check.pkg, 1, 18)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!check.allowVersion(check.pkg, 1, 18)) { */ case 14: + $r = check.versionErrorf(e, 75, "go1.18", "predeclared %s", new sliceType$5([new $String(e.Name)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 15: + /* } */ case 5: + case 2: + $r = check.recordUse(e, obj); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = obj.Type(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + _tuple$1 = $assertType(obj, ptrType$17, true); + gotType = _tuple$1[1]; + /* */ if ($interfaceIsEqual(typ, $ifaceNil) || gotType && wantType) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if ($interfaceIsEqual(typ, $ifaceNil) || gotType && wantType) { */ case 19: + $r = check.objDecl(obj, def$2); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = obj.Type(); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + typ = _r$3; + /* } */ case 20: + $r = assert(!($interfaceIsEqual(typ, $ifaceNil))); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = obj.Name(); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + pkgName = (_entry$1 = $mapIndex(check.dotImportMap,dotImportKey.keyFor(new dotImportKey.ptr(scope, _r$4))), _entry$1 !== undefined ? _entry$1.v : ptrType$31.nil); + if (!(pkgName === ptrType$31.nil)) { + pkgName.used = true; + } + _ref = obj; + /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 27; continue; } + /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 29; continue; } + /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if ($assertType(_ref, ptrType$31, true)[1]) { */ case 25: + obj$1 = _ref.$val; + $r = check.errorf(e, 4, "use of package %s not in selector", new sliceType$5([new $String(obj$1.object.name)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 26: + obj$2 = _ref.$val; + check.addDeclDep(obj$2); + if ($interfaceIsEqual(typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return; + } + /* */ if ($interfaceIsEqual(obj$2, universeIota)) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if ($interfaceIsEqual(obj$2, universeIota)) { */ case 35: + /* */ if ($interfaceIsEqual(check.environment.iota, $ifaceNil)) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if ($interfaceIsEqual(check.environment.iota, $ifaceNil)) { */ case 38: + $r = check.errorf(e, 36, "cannot use iota outside constant declaration", sliceType$5.nil); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 39: + x.val = check.environment.iota; + $s = 37; continue; + /* } else { */ case 36: + x.val = obj$2.val; + /* } */ case 37: + $r = assert(!($interfaceIsEqual(x.val, $ifaceNil))); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 4; + $s = 33; continue; + /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 27: + obj$3 = _ref.$val; + /* */ if (check.isBrokenAlias(obj$3)) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (check.isBrokenAlias(obj$3)) { */ case 42: + $r = check.errorf(e, 11, "invalid use of type alias %s in recursive type (see issue #50729)", new sliceType$5([new $String(obj$3.object.name)])); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 43: + x.mode = 3; + $s = 33; continue; + /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 28: + obj$4 = _ref.$val; + if (obj$4.object.pkg === check.pkg) { + obj$4.used = true; + } + check.addDeclDep(obj$4); + if ($interfaceIsEqual(typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return; + } + x.mode = 5; + $s = 33; continue; + /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 29: + obj$5 = _ref.$val; + check.addDeclDep(obj$5); + x.mode = 7; + $s = 33; continue; + /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 30: + obj$6 = _ref.$val; + x.id = obj$6.id; + x.mode = 2; + $s = 33; continue; + /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 31: + obj$7 = _ref.$val; + x.mode = 7; + $s = 33; continue; + /* } else { */ case 32: + obj$8 = _ref; + unreachable(); + /* } */ case 33: + x.typ = typ; + $s = -1; return; + /* */ } return; } var $f = {$blk: ident, $c: true, $r, _1, _entry, _entry$1, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, check, def$2, e, gotType, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, pkgName, scope, tpar, typ, wantType, x, $s};return $f; + }; + $ptrType(Checker).prototype.typ = function typ(e) { + var {$24r, _r$1, check, e, $s, $r, $c} = $restore(this, {e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.definedType(e, ptrType$9.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: typ, $c: true, $r, $24r, _r$1, check, e, $s};return $f; + }; + $ptrType(Checker).prototype.varType = function varType(e) { + var {_r$1, check, e, typ$1, $s, $r, $c} = $restore(this, {e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.definedType(e, ptrType$9.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ$1 = _r$1; + check.validVarType(e, typ$1); + $s = -1; return typ$1; + /* */ } return; } var $f = {$blk: varType, $c: true, $r, _r$1, check, e, typ$1, $s};return $f; + }; + $ptrType(Checker).prototype.validVarType = function validVarType(e, typ$1) { + var check, e, typ$1; + check = this; + if (isTypeParam(typ$1)) { + return; + } + check.later((function Checker·validVarType·func1() { + var {_arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _tuple, t, tset, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = under(typ$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$13, true); + t = _tuple[0]; + /* */ if (!(t === ptrType$13.nil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(t === ptrType$13.nil)) { */ case 2: + _arg = check; + _r$2 = e.Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + _arg$2 = t; + _r$3 = computeInterfaceTypeSet(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + tset = _r$3; + /* */ if (!tset.IsMethodSet()) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!tset.IsMethodSet()) { */ case 6: + /* */ if (tset.comparable) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (tset.comparable) { */ case 8: + $r = check.softErrorf(e, 142, "cannot use type %s outside a type constraint: interface is (or embeds) comparable", new sliceType$5([typ$1])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 10; continue; + /* } else { */ case 9: + $r = check.softErrorf(e, 142, "cannot use type %s outside a type constraint: interface contains type constraints", new sliceType$5([typ$1])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + /* } */ case 7: + /* } */ case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·validVarType·func1, $c: true, $r, _arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _tuple, t, tset, $s};return $f; + })).describef(e, "check var type %s", new sliceType$5([typ$1])); + }; + $ptrType(Checker).prototype.definedType = function definedType(e, def$2) { + var {_r$1, _r$2, check, def$2, e, typ$1, $s, $r, $c} = $restore(this, {e, def$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.typInternal(e, def$2); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ$1 = _r$1; + $r = assert(isTyped(typ$1)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = isGeneric(typ$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$2) { */ case 3: + $r = check.errorf(e, 137, "cannot use generic type %s without instantiation", new sliceType$5([typ$1])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + typ$1 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 4: + $r = check.recordTypeAndValue(e, 3, typ$1, $ifaceNil); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return typ$1; + /* */ } return; } var $f = {$blk: definedType, $c: true, $r, _r$1, _r$2, check, def$2, e, typ$1, $s};return $f; + }; + $ptrType(Checker).prototype.genericType = function genericType(e, reason) { + var {_r$1, _r$2, _r$3, _v, check, e, reason, typ$1, $s, $r, $c} = $restore(this, {e, reason}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.typInternal(e, ptrType$9.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ$1 = _r$1; + $r = assert(isTyped(typ$1)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(!($interfaceIsEqual(typ$1, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))))) { _v = false; $s = 5; continue s; } + _r$2 = isGeneric(typ$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = !_r$2; case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + /* */ if (!(reason === ptrType$34.nil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(reason === ptrType$34.nil)) { */ case 7: + _r$3 = check.sprintf("%s is not a generic type", new sliceType$5([typ$1])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + reason.$set(_r$3); + /* } */ case 8: + typ$1 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 4: + $r = check.recordTypeAndValue(e, 3, typ$1, $ifaceNil); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return typ$1; + /* */ } return; } var $f = {$blk: genericType, $c: true, $r, _r$1, _r$2, _r$3, _v, check, e, reason, typ$1, $s};return $f; + }; + goTypeName = function goTypeName$1(typ$1) { + var {$24r, _r$1, _r$2, typ$1, $s, $r, $c} = $restore(this, {typ$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = fmt.Sprintf("%T", new sliceType$5([typ$1])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = strings.ReplaceAll(_r$1, "types.", ""); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: goTypeName$1, $c: true, $r, $24r, _r$1, _r$2, typ$1, $s};return $f; + }; + $ptrType(Checker).prototype.typInternal = function typInternal(e0, def$2) { + var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, T, _1, _2, _3, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, check, def$2, dir$1, e, e$1, e$10, e$11, e$12, e$13, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, e0, ix, typ$1, typ$10, typ$11, typ$2, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, x, x$1, x$2, x$3, $s, $deferred, $r, $c} = $restore(this, {e0, def$2}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + T = [T]; + check = [check]; + e = [e]; + e0 = [e0]; + typ$1 = [typ$1]; + x = [x]; + x$1 = [x$1]; + T[0] = $ifaceNil; + check[0] = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + _r$1 = e0[0].Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = check[0].trace(_r$1, "-- type %s", new sliceType$5([e0[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(T, check, e, e0, typ$1, x, x$1) { return function Checker·typInternal·func1() { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$2, _r$3, _r$4, _r$5, _r$6, under$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + under$1 = $ifaceNil; + /* */ if (!($interfaceIsEqual(T[0], $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(T[0], $ifaceNil))) { */ case 1: + _r$2 = safeUnderlying(T[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + under$1 = _r$2; + /* } */ case 2: + /* */ if ($interfaceIsEqual(T[0], under$1)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(T[0], under$1)) { */ case 4: + _r$3 = e0[0].Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg = _r$3; + _arg$1 = T[0]; + _r$4 = goTypeName(T[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$2 = new $String(_r$4); + $r = check[0].trace(_arg, "=> %s // %s", new sliceType$5([_arg$1, _arg$2])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else { */ case 5: + _r$5 = e0[0].Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$3 = _r$5; + _arg$4 = T[0]; + _arg$5 = under$1; + _r$6 = goTypeName(T[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$6 = new $String(_r$6); + $r = check[0].trace(_arg$3, "=> %s (under = %s) // %s", new sliceType$5([_arg$4, _arg$5, _arg$6])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·typInternal·func1, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$2, _r$3, _r$4, _r$5, _r$6, under$1, $s};return $f; + }; })(T, check, e, e0, typ$1, x, x$1), []]); + /* } */ case 2: + _ref = e0[0]; + /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if ($assertType(_ref, ptrType$35, true)[1]) { */ case 5: + e$1 = _ref.$val; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 6: + e$2 = _ref.$val; + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].ident(x[0], e$2, def$2, true); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = x[0].mode; + /* */ if (_1 === (3)) { $s = 22; continue; } + /* */ if (_1 === (0)) { $s = 23; continue; } + /* */ if (_1 === (1)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (_1 === (3)) { */ case 22: + typ$2 = x[0].typ; + def$2.setUnderlying(typ$2); + T[0] = typ$2; + $24r = T[0]; + $s = 27; case 27: return $24r; + /* } else if (_1 === (0)) { */ case 23: + $s = 26; continue; + /* } else if (_1 === (1)) { */ case 24: + $r = check[0].errorf(x[0], 25, "%s used as type", new sliceType$5([x[0]])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 26; continue; + /* } else { */ case 25: + $r = check[0].errorf(x[0], 25, "%s is not a type", new sliceType$5([x[0]])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 26: + case 21: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 7: + e$3 = _ref.$val; + x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].selector(x$1[0], e$3, def$2); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _2 = x$1[0].mode; + /* */ if (_2 === (3)) { $s = 32; continue; } + /* */ if (_2 === (0)) { $s = 33; continue; } + /* */ if (_2 === (1)) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (_2 === (3)) { */ case 32: + typ$3 = x$1[0].typ; + def$2.setUnderlying(typ$3); + T[0] = typ$3; + $24r$1 = T[0]; + $s = 37; case 37: return $24r$1; + /* } else if (_2 === (0)) { */ case 33: + $s = 36; continue; + /* } else if (_2 === (1)) { */ case 34: + $r = check[0].errorf(x$1[0], 25, "%s used as type", new sliceType$5([x$1[0]])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else { */ case 35: + $r = check[0].errorf(x$1[0], 25, "%s is not a type", new sliceType$5([x$1[0]])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 36: + case 31: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { */ case 8: + e$4 = _ref; + ix = typeparams.UnpackIndexExpr(e$4); + /* */ if (!check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (!check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 40: + _r$2 = inNode(e$4, ix.IndexListExpr.Lbrack); /* */ $s = 42; case 42: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = check[0].softErrorf((x$2 = _r$2, new x$2.constructor.elem(x$2)), 135, "type instantiation requires go1.18 or later", sliceType$5.nil); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 41: + _r$3 = check[0].instantiatedType(ix, def$2); /* */ $s = 44; case 44: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + T[0] = _r$3; + $24r$2 = T[0]; + $s = 45; case 45: return $24r$2; + /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 9: + e$5 = _ref.$val; + _r$4 = check[0].definedType(e$5.X, def$2); /* */ $s = 46; case 46: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + T[0] = _r$4; + $24r$3 = T[0]; + $s = 47; case 47: return $24r$3; + /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 10: + e$6 = _ref.$val; + /* */ if ($interfaceIsEqual(e$6.Len, $ifaceNil)) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if ($interfaceIsEqual(e$6.Len, $ifaceNil)) { */ case 48: + typ$4 = new Slice.ptr($ifaceNil); + def$2.setUnderlying(typ$4); + _r$5 = check[0].varType(e$6.Elt); /* */ $s = 50; case 50: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + typ$4.elem = _r$5; + T[0] = typ$4; + $24r$4 = T[0]; + $s = 51; case 51: return $24r$4; + /* } */ case 49: + typ$5 = new Array.ptr(new $Int64(0, 0), $ifaceNil); + def$2.setUnderlying(typ$5); + _r$6 = check[0].arrayLength(e$6.Len); /* */ $s = 52; case 52: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + typ$5.len = _r$6; + _r$7 = check[0].varType(e$6.Elt); /* */ $s = 53; case 53: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + typ$5.elem = _r$7; + /* */ if ((x$3 = typ$5.len, (x$3.$high > 0 || (x$3.$high === 0 && x$3.$low >= 0)))) { $s = 54; continue; } + /* */ $s = 55; continue; + /* if ((x$3 = typ$5.len, (x$3.$high > 0 || (x$3.$high === 0 && x$3.$low >= 0)))) { */ case 54: + T[0] = typ$5; + $24r$5 = T[0]; + $s = 56; case 56: return $24r$5; + /* } */ case 55: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 11: + e$7 = _ref.$val; + $r = check[0].error(e$7, 81, "invalid use of '...'"); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].use(new sliceType$11([e$7.Elt])); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 12: + e$8 = _ref.$val; + typ$6 = new Struct.ptr(sliceType$10.nil, sliceType$6.nil); + def$2.setUnderlying(typ$6); + $r = check[0].structType(typ$6, e$8); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + T[0] = typ$6; + $24r$6 = T[0]; + $s = 60; case 60: return $24r$6; + /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 13: + e$9 = _ref.$val; + typ$7 = new Pointer.ptr($ifaceNil); + typ$7.base = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + def$2.setUnderlying(typ$7); + _r$8 = check[0].varType(e$9.X); /* */ $s = 61; case 61: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + typ$7.base = _r$8; + T[0] = typ$7; + $24r$7 = T[0]; + $s = 62; case 62: return $24r$7; + /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 14: + e$10 = _ref.$val; + typ$8 = new Signature.ptr(ptrType$48.nil, ptrType$48.nil, ptrType.nil, ptrType$16.nil, ptrType$15.nil, ptrType$15.nil, false); + def$2.setUnderlying(typ$8); + $r = check[0].funcType(typ$8, ptrType$49.nil, e$10); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + T[0] = typ$8; + $24r$8 = T[0]; + $s = 64; case 64: return $24r$8; + /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 15: + e$11 = _ref.$val; + typ$9 = check[0].newInterface(); + def$2.setUnderlying(typ$9); + $r = check[0].interfaceType(typ$9, e$11, def$2); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + T[0] = typ$9; + $24r$9 = T[0]; + $s = 66; case 66: return $24r$9; + /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 16: + e[0] = _ref.$val; + typ$1[0] = new Map.ptr($ifaceNil, $ifaceNil); + def$2.setUnderlying(typ$1[0]); + _r$9 = check[0].varType(e[0].Key); /* */ $s = 67; case 67: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + typ$1[0].key = _r$9; + _r$10 = check[0].varType(e[0].Value); /* */ $s = 68; case 68: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + typ$1[0].elem = _r$10; + check[0].later((function(T, check, e, e0, typ$1, x, x$1) { return function Checker·typInternal·func2() { + var {_r$11, why, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$11 = Comparable(typ$1[0].key); /* */ $s = 3; case 3: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (!_r$11) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$11) { */ case 1: + why = ""; + if (isTypeParam(typ$1[0].key)) { + why = " (missing comparable constraint)"; + } + $r = check[0].errorf(e[0].Key, 28, "incomparable map key type %s%s", new sliceType$5([typ$1[0].key, new $String(why)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·typInternal·func2, $c: true, $r, _r$11, why, $s};return $f; + }; })(T, check, e, e0, typ$1, x, x$1)).describef(e[0].Key, "check map key %s", new sliceType$5([typ$1[0].key])); + T[0] = typ$1[0]; + $24r$10 = T[0]; + $s = 69; case 69: return $24r$10; + /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 17: + e$12 = _ref.$val; + typ$10 = new Chan.ptr(0, $ifaceNil); + def$2.setUnderlying(typ$10); + dir$1 = 0; + _3 = e$12.Dir; + /* */ if (_3 === (3)) { $s = 71; continue; } + /* */ if (_3 === (1)) { $s = 72; continue; } + /* */ if (_3 === (2)) { $s = 73; continue; } + /* */ $s = 74; continue; + /* if (_3 === (3)) { */ case 71: + $s = 75; continue; + /* } else if (_3 === (1)) { */ case 72: + dir$1 = 1; + $s = 75; continue; + /* } else if (_3 === (2)) { */ case 73: + dir$1 = 2; + $s = 75; continue; + /* } else { */ case 74: + $r = check[0].invalidAST(e$12, "unknown channel direction %d", new sliceType$5([new ast.ChanDir(e$12.Dir)])); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 75: + case 70: + typ$10.dir = dir$1; + _r$11 = check[0].varType(e$12.Value); /* */ $s = 77; case 77: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + typ$10.elem = _r$11; + T[0] = typ$10; + $24r$11 = T[0]; + $s = 78; case 78: return $24r$11; + /* } else { */ case 18: + e$13 = _ref; + $r = check[0].errorf(e0[0], 25, "%s is not a type", new sliceType$5([e0[0]])); /* */ $s = 79; case 79: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 19: + typ$11 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + def$2.setUnderlying(typ$11); + T[0] = typ$11; + $24r$12 = T[0]; + $s = 80; case 80: return $24r$12; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return T[0]; } if($curGoroutine.asleep) { var $f = {$blk: typInternal, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, T, _1, _2, _3, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, check, def$2, dir$1, e, e$1, e$10, e$11, e$12, e$13, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, e0, ix, typ$1, typ$10, typ$11, typ$2, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, x, x$1, x$2, x$3, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.instantiatedType = function instantiatedType(ix, def$2) { + var {$24r, $24r$1, $24r$2, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, check, def$2, gtyp, inst, ix, orig, reason, res, targs, $s, $deferred, $r, $c} = $restore(this, {ix, def$2}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + inst = [inst]; + ix = [ix]; + reason = [reason]; + res = [res]; + res[0] = $ifaceNil; + check[0] = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + _r$1 = ix[0].IndexListExpr.Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = check[0].trace(_r$1, "-- instantiating type %s with %s", new sliceType$5([ix[0].IndexListExpr.X, ix[0].IndexListExpr.Indices])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(check, inst, ix, reason, res) { return function Checker·instantiatedType·func1() { + var {_r$2, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + _r$2 = ix[0].IndexListExpr.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = check[0].trace(_r$2, "=> %s", new sliceType$5([res[0]])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·instantiatedType·func1, $c: true, $r, _r$2, $s};return $f; + }; })(check, inst, ix, reason, res), []]); + /* } */ case 2: + reason[0] = ""; + _r$2 = check[0].genericType(ix[0].IndexListExpr.X, (reason.$ptr || (reason.$ptr = new ptrType$34(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, reason)))); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + gtyp = _r$2; + /* */ if (!(reason[0] === "")) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(reason[0] === "")) { */ case 6: + $r = check[0].invalidOp(ix[0].Orig, 136, "%s (%s)", new sliceType$5([ix[0].Orig, new $String(reason[0])])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + /* */ if ($interfaceIsEqual(gtyp, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($interfaceIsEqual(gtyp, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 9: + res[0] = gtyp; + $24r = res[0]; + $s = 11; case 11: return $24r; + /* } */ case 10: + _tuple = $assertType(gtyp, ptrType$9, true); + orig = _tuple[0]; + /* */ if (orig === ptrType$9.nil) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (orig === ptrType$9.nil) { */ case 12: + _r$3 = ix[0].IndexListExpr.Pos(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg = new token.Pos(_r$3); + _arg$1 = gtyp; + _r$4 = fmt.Sprintf("%v: cannot instantiate %v", new sliceType$5([_arg, _arg$1])); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $panic(new $String(_r$4)); + /* } */ case 13: + _r$5 = check[0].typeList(ix[0].IndexListExpr.Indices); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + targs = _r$5; + /* */ if (targs === sliceType$3.nil) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (targs === sliceType$3.nil) { */ case 17: + def$2.setUnderlying((0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); + res[0] = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + $24r$1 = res[0]; + $s = 19; case 19: return $24r$1; + /* } */ case 18: + _r$6 = ix[0].IndexListExpr.Pos(); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = check[0].instance(_r$6, orig, targs, ptrType$9.nil, check[0].context()); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + inst[0] = $assertType(_r$7, ptrType$9); + def$2.setUnderlying(inst[0]); + check[0].later((function(check, inst, ix, reason, res) { return function Checker·instantiatedType·func2() { + var {_arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$8, _r$9, _tuple$1, err, i, pos, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = check[0].recordInstance(ix[0].Orig, inst[0].TypeArgs().list(), inst[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$8 = ix[0].IndexListExpr.Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg$2 = _r$8; + _r$9 = inst[0].TypeParams(); /* */ $s = 5; case 5: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = _r$9.Len(); /* */ $s = 6; case 6: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _arg$3 = _r$10; + _arg$4 = inst[0].TypeArgs().Len(); + _r$11 = check[0].validateTArgLen(_arg$2, _arg$3, _arg$4); /* */ $s = 7; case 7: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (_r$11) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_r$11) { */ case 2: + _r$12 = ix[0].IndexListExpr.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _arg$5 = _r$12; + _r$13 = inst[0].TypeParams(); /* */ $s = 9; case 9: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = _r$13.list(); /* */ $s = 10; case 10: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _arg$6 = _r$14; + _arg$7 = inst[0].TypeArgs().list(); + _arg$8 = check[0].context(); + _r$15 = check[0].verify(_arg$5, _arg$6, _arg$7, _arg$8); /* */ $s = 11; case 11: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _tuple$1 = _r$15; + i = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 12: + _r$16 = ix[0].IndexListExpr.Pos(); /* */ $s = 15; case 15: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + pos = _r$16; + /* */ if (i < ix[0].IndexListExpr.Indices.$length) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (i < ix[0].IndexListExpr.Indices.$length) { */ case 16: + _r$17 = (x = ix[0].IndexListExpr.Indices, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).Pos(); /* */ $s = 18; case 18: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + pos = _r$17; + /* } */ case 17: + _arg$9 = new atPos(((pos >> 0))); + _r$18 = err.Error(); /* */ $s = 19; case 19: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _arg$10 = _r$18; + $r = check[0].softErrorf(_arg$9, 139, _arg$10, sliceType$5.nil); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else { */ case 13: + _arg$11 = check[0].pkg; + _r$19 = ix[0].IndexListExpr.Pos(); /* */ $s = 21; case 21: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _arg$12 = _r$19; + _r$20 = inst[0].TypeParams(); /* */ $s = 22; case 22: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _r$21 = _r$20.list(); /* */ $s = 23; case 23: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _arg$13 = _r$21; + _arg$14 = inst[0].TypeArgs().list(); + _arg$15 = ix[0].IndexListExpr.Indices; + $r = check[0].mono.recordInstance(_arg$11, _arg$12, _arg$13, _arg$14, _arg$15); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + /* } */ case 3: + $r = check[0].validType(inst[0]); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·instantiatedType·func2, $c: true, $r, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$8, _r$9, _tuple$1, err, i, pos, x, $s};return $f; + }; })(check, inst, ix, reason, res)).describef(ix[0], "resolve instance %s", new sliceType$5([inst[0]])); + res[0] = inst[0]; + $24r$2 = res[0]; + $s = 22; case 22: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: instantiatedType, $c: true, $r, $24r, $24r$1, $24r$2, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, check, def$2, gtyp, inst, ix, orig, reason, res, targs, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.arrayLength = function arrayLength(e) { + var {_r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _v, check, e, n, name, obj, ok, ok$1, val, x, $s, $r, $c} = $restore(this, {e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = [x]; + check = this; + _tuple = $assertType(e, ptrType$30, true); + name = _tuple[0]; + /* */ if (!(name === ptrType$30.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(name === ptrType$30.nil)) { */ case 1: + _r$1 = check.environment.lookup(name.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + obj = _r$1; + /* */ if ($interfaceIsEqual(obj, $ifaceNil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(obj, $ifaceNil)) { */ case 4: + $r = check.errorf(name, 26, "undeclared name %s for array length", new sliceType$5([new $String(name.Name)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return new $Int64(-1, 4294967295); + /* } */ case 5: + _tuple$1 = $assertType(obj, ptrType$32, true); + ok = _tuple$1[1]; + /* */ if (!ok) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!ok) { */ case 7: + $r = check.errorf(name, 26, "invalid array length %s", new sliceType$5([new $String(name.Name)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return new $Int64(-1, 4294967295); + /* } */ case 8: + /* } */ case 2: + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr(x[0], e); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((x[0].mode === 4))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!((x[0].mode === 4))) { */ case 11: + /* */ if (!((x[0].mode === 0))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((x[0].mode === 0))) { */ case 13: + $r = check.errorf(x[0], 26, "array length %s must be constant", new sliceType$5([x[0]])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + $s = -1; return new $Int64(-1, 4294967295); + /* } */ case 12: + if (isUntyped(x[0].typ)) { _v = true; $s = 18; continue s; } + _r$2 = isInteger(x[0].typ); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2; case 18: + /* */ if (_v) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_v) { */ case 16: + _r$3 = constant.ToInt(x[0].val); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + val = _r$3; + _r$4 = val.Kind(); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4 === 3) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_r$4 === 3) { */ case 21: + _r$5 = representableConst(val, check, (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), ptrType$50.nil); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (_r$5) { */ case 24: + _r$6 = constant.Int64Val(val); /* */ $s = 27; case 27: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$2 = _r$6; + n = _tuple$2[0]; + ok$1 = _tuple$2[1]; + if (ok$1 && (n.$high > 0 || (n.$high === 0 && n.$low >= 0))) { + $s = -1; return n; + } + $r = check.errorf(x[0], 26, "invalid array length %s", new sliceType$5([x[0]])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return new $Int64(-1, 4294967295); + /* } */ case 25: + /* } */ case 22: + /* } */ case 17: + $r = check.errorf(x[0], 26, "array length %s must be integer", new sliceType$5([x[0]])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return new $Int64(-1, 4294967295); + /* */ } return; } var $f = {$blk: arrayLength, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _v, check, e, n, name, obj, ok, ok$1, val, x, $s};return $f; + }; + $ptrType(Checker).prototype.typeList = function typeList(list) { + var {_i, _r$1, _ref, check, i, list, res, t, x, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + res = $makeSlice(sliceType$3, list.$length); + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = check.varType(x); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + t = _r$1; + if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + res = sliceType$3.nil; + } + if (!(res === sliceType$3.nil)) { + ((i < 0 || i >= res.$length) ? ($throwRuntimeError("index out of range"), undefined) : res.$array[res.$offset + i] = t); + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return res; + /* */ } return; } var $f = {$blk: typeList, $c: true, $r, _i, _r$1, _ref, check, i, list, res, t, x, $s};return $f; + }; + $ptrType(term).prototype.String = function String$3() { + var {$24r, $24r$1, _r$1, _r$2, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (x === ptrType$5.nil) { $s = 2; continue; } + /* */ if ($interfaceIsEqual(x.typ, $ifaceNil)) { $s = 3; continue; } + /* */ if (x.tilde) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (x === ptrType$5.nil) { */ case 2: + $s = -1; return "\xE2\x88\x85"; + /* } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { */ case 3: + $s = -1; return "\xF0\x9D\x93\xA4"; + /* } else if (x.tilde) { */ case 4: + _r$1 = x.typ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = "~" + _r$1; + $s = 8; case 8: return $24r; + /* } else { */ case 5: + _r$2 = x.typ.String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 10; case 10: return $24r$1; + /* } */ case 6: + case 1: + $s = -1; return ""; + /* */ } return; } var $f = {$blk: String$3, $c: true, $r, $24r, $24r$1, _r$1, _r$2, x, $s};return $f; + }; + $ptrType(term).prototype.union = function union(y) { + var {_, _$1, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, x, y, $s, $r, $c} = $restore(this, {y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ = ptrType$5.nil; + _$1 = ptrType$5.nil; + x = this; + if (x === ptrType$5.nil && y === ptrType$5.nil) { + _tmp = ptrType$5.nil; + _tmp$1 = ptrType$5.nil; + _ = _tmp; + _$1 = _tmp$1; + $s = -1; return [_, _$1]; + } else if (x === ptrType$5.nil) { + _tmp$2 = y; + _tmp$3 = ptrType$5.nil; + _ = _tmp$2; + _$1 = _tmp$3; + $s = -1; return [_, _$1]; + } else if (y === ptrType$5.nil) { + _tmp$4 = x; + _tmp$5 = ptrType$5.nil; + _ = _tmp$4; + _$1 = _tmp$5; + $s = -1; return [_, _$1]; + } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { + _tmp$6 = x; + _tmp$7 = ptrType$5.nil; + _ = _tmp$6; + _$1 = _tmp$7; + $s = -1; return [_, _$1]; + } else if ($interfaceIsEqual(y.typ, $ifaceNil)) { + _tmp$8 = y; + _tmp$9 = ptrType$5.nil; + _ = _tmp$8; + _$1 = _tmp$9; + $s = -1; return [_, _$1]; + } + _r$1 = x.disjoint(y); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$1) { */ case 1: + _tmp$10 = x; + _tmp$11 = y; + _ = _tmp$10; + _$1 = _tmp$11; + $s = -1; return [_, _$1]; + /* } */ case 2: + if (x.tilde || !y.tilde) { + _tmp$12 = x; + _tmp$13 = ptrType$5.nil; + _ = _tmp$12; + _$1 = _tmp$13; + $s = -1; return [_, _$1]; + } + _tmp$14 = y; + _tmp$15 = ptrType$5.nil; + _ = _tmp$14; + _$1 = _tmp$15; + $s = -1; return [_, _$1]; + /* */ } return; } var $f = {$blk: union, $c: true, $r, _, _$1, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, x, y, $s};return $f; + }; + $ptrType(term).prototype.intersect = function intersect(y) { + var {_r$1, x, y, $s, $r, $c} = $restore(this, {y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (x === ptrType$5.nil || y === ptrType$5.nil) { + $s = -1; return ptrType$5.nil; + } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { + $s = -1; return y; + } else if ($interfaceIsEqual(y.typ, $ifaceNil)) { + $s = -1; return x; + } + _r$1 = x.disjoint(y); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$1) { */ case 1: + $s = -1; return ptrType$5.nil; + /* } */ case 2: + if (!x.tilde || y.tilde) { + $s = -1; return x; + } + $s = -1; return y; + /* */ } return; } var $f = {$blk: intersect, $c: true, $r, _r$1, x, y, $s};return $f; + }; + $ptrType(term).prototype.includes = function includes(t) { + var {$24r, _r$1, _r$2, t, u, x, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (x === ptrType$5.nil) { + $s = -1; return false; + } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { + $s = -1; return true; + } + u = t; + /* */ if (x.tilde) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.tilde) { */ case 1: + _r$1 = under(u); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + u = _r$1; + /* } */ case 2: + _r$2 = Identical(x.typ, u); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: includes, $c: true, $r, $24r, _r$1, _r$2, t, u, x, $s};return $f; + }; + $ptrType(term).prototype.subsetOf = function subsetOf(y) { + var {_r$1, x, y, $s, $r, $c} = $restore(this, {y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (x === ptrType$5.nil) { + $s = -1; return true; + } else if (y === ptrType$5.nil) { + $s = -1; return false; + } else if ($interfaceIsEqual(y.typ, $ifaceNil)) { + $s = -1; return true; + } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { + $s = -1; return false; + } + _r$1 = x.disjoint(y); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$1) { */ case 1: + $s = -1; return false; + /* } */ case 2: + $s = -1; return !x.tilde || y.tilde; + /* */ } return; } var $f = {$blk: subsetOf, $c: true, $r, _r$1, x, y, $s};return $f; + }; + $ptrType(term).prototype.disjoint = function disjoint(y) { + var {$24r, _r$1, _r$2, _r$3, ux, uy, x, y, $s, $r, $c} = $restore(this, {y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (false && ($interfaceIsEqual(x.typ, $ifaceNil) || $interfaceIsEqual(y.typ, $ifaceNil))) { + $panic(new $String("invalid argument(s)")); + } + ux = x.typ; + /* */ if (y.tilde) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (y.tilde) { */ case 1: + _r$1 = under(ux); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ux = _r$1; + /* } */ case 2: + uy = y.typ; + /* */ if (x.tilde) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (x.tilde) { */ case 4: + _r$2 = under(uy); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + uy = _r$2; + /* } */ case 5: + _r$3 = Identical(ux, uy); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = !_r$3; + $s = 8; case 8: return $24r; + /* */ } return; } var $f = {$blk: disjoint, $c: true, $r, $24r, _r$1, _r$2, _r$3, ux, uy, x, y, $s};return $f; + }; + RelativeTo = function RelativeTo$1(pkg) { + var pkg; + if (pkg === ptrType$1.nil) { + return $throwNilPointerError; + } + return (function RelativeTo·func1(other) { + var other; + if (pkg === other) { + return ""; + } + return other.Path(); + }); + }; + $pkg.RelativeTo = RelativeTo; + TypeString = function TypeString$1(typ$1, qf) { + var {$24r, _r$1, qf, typ$1, $s, $r, $c} = $restore(this, {typ$1, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = typeString(typ$1, qf, false); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: TypeString$1, $c: true, $r, $24r, _r$1, qf, typ$1, $s};return $f; + }; + $pkg.TypeString = TypeString; + typeString = function typeString$1(typ$1, qf, debug) { + var {buf, debug, qf, typ$1, w, $s, $r, $c} = $restore(this, {typ$1, qf, debug}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + w = newTypeWriter(buf[0], qf); + w.debug = debug; + $r = w.typ(typ$1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: typeString$1, $c: true, $r, buf, debug, qf, typ$1, w, $s};return $f; + }; + WriteType = function WriteType$1(buf, typ$1, qf) { + var {buf, qf, typ$1, $s, $r, $c} = $restore(this, {buf, typ$1, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = newTypeWriter(buf, qf).typ(typ$1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: WriteType$1, $c: true, $r, buf, qf, typ$1, $s};return $f; + }; + $pkg.WriteType = WriteType; + WriteSignature = function WriteSignature$1(buf, sig, qf) { + var {buf, qf, sig, $s, $r, $c} = $restore(this, {buf, sig, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = newTypeWriter(buf, qf).signature(sig); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: WriteSignature$1, $c: true, $r, buf, qf, sig, $s};return $f; + }; + $pkg.WriteSignature = WriteSignature; + newTypeWriter = function newTypeWriter$1(buf, qf) { + var buf, qf; + return new typeWriter.ptr(buf, new $global.Map(), qf, ptrType$51.nil, ptrType$48.nil, false); + }; + newTypeHasher = function newTypeHasher$1(buf, ctxt) { + var {buf, ctxt, $s, $r, $c} = $restore(this, {buf, ctxt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(!(ctxt === ptrType$51.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return new typeWriter.ptr(buf, new $global.Map(), $throwNilPointerError, ctxt, ptrType$48.nil, false); + /* */ } return; } var $f = {$blk: newTypeHasher$1, $c: true, $r, buf, ctxt, $s};return $f; + }; + $ptrType(typeWriter).prototype.byte$ = function byte$1(b) { + var b, w; + w = this; + if (!(w.ctxt === ptrType$51.nil)) { + if (b === 32) { + b = 35; + } + w.buf.WriteByte(b); + return; + } + w.buf.WriteByte(b); + if ((b === 44) || (b === 59)) { + w.buf.WriteByte(32); + } + }; + $ptrType(typeWriter).prototype.string = function string(s) { + var s, w; + w = this; + w.buf.WriteString(s); + }; + $ptrType(typeWriter).prototype.error = function error(msg) { + var msg, w; + w = this; + if (!(w.ctxt === ptrType$51.nil)) { + $panic(new $String(msg)); + } + w.buf.WriteString("<" + msg + ">"); + }; + $ptrType(typeWriter).prototype.typ = function typ$1(typ$2) { + var {_1, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _v, c, f, first, i, i$1, i$2, m, obj, parens, s, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tag, typ$2, typ$3, w, x, $s, $deferred, $r, $c} = $restore(this, {typ$2}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + w = this; + /* */ if ((_entry = $mapIndex(w.seen,Type.keyFor(typ$2)), _entry !== undefined ? _entry.v : false)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((_entry = $mapIndex(w.seen,Type.keyFor(typ$2)), _entry !== undefined ? _entry.v : false)) { */ case 1: + _r$1 = goTypeName(typ$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = w.error("cycle to " + _r$1); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 2: + _key = typ$2; (w.seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: true }); + $deferred.push([function(_arg, _arg$1) { $mapDelete(_arg, Type.keyFor(_arg$1)); }, [w.seen, typ$2]]); + _ref = typ$2; + /* */ if (_ref === $ifaceNil) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 18; continue; } + /* */ $s = 19; continue; + /* switch (0) { default: if (_ref === $ifaceNil) { */ case 5: + t = _ref; + w.error("nil"); + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 6: + t$1 = _ref.$val; + /* */ if (token.IsExported(t$1.name)) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (token.IsExported(t$1.name)) { */ case 21: + _r$2 = $pkg.Unsafe.scope.Lookup(t$1.name); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = $assertType(_r$2, ptrType$17, true); + obj = _tuple[0]; + /* */ if (!(obj === ptrType$17.nil)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!(obj === ptrType$17.nil)) { */ case 24: + $r = w.typeName(obj); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 20; continue; + /* } */ case 25: + /* } */ case 22: + w.string(t$1.name); + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 7: + t$2 = _ref.$val; + w.byte$(91); + w.string(strconv.FormatInt(t$2.len, 10)); + w.byte$(93); + $r = w.typ(t$2.elem); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 8: + t$3 = _ref.$val; + w.string("[]"); + $r = w.typ(t$3.elem); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 9: + t$4 = _ref.$val; + w.string("struct{"); + _ref$1 = t$4.fields; + _i = 0; + /* while (true) { */ case 29: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 30; continue; } + i = _i; + f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + if (i > 0) { + w.byte$(59); + } + if (!f.embedded) { + w.string(f.object.name); + w.byte$(32); + } + $r = w.typ(f.object.typ); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tag = t$4.Tag(i); + if (!(tag === "")) { + w.byte$(32); + w.string(strconv.Quote(tag)); + } + _i++; + $s = 29; continue; + case 30: + w.byte$(125); + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 10: + t$5 = _ref.$val; + w.byte$(42); + $r = w.typ(t$5.base); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 11: + t$6 = _ref.$val; + $r = w.tuple(t$6, false); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 12: + t$7 = _ref.$val; + w.string("func"); + $r = w.signature(t$7); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 13: + t$8 = _ref.$val; + if (t$8.Len() === 0) { + w.error("empty union"); + /* break; */ $s = 20; continue; + } + _ref$2 = t$8.terms; + _i$1 = 0; + /* while (true) { */ case 35: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 36; continue; } + i$1 = _i$1; + t$15 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + if (i$1 > 0) { + w.byte$(124); + } + if (t$15.tilde) { + w.byte$(126); + } + $r = w.typ(t$15.typ); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 35; continue; + case 36: + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 14: + t$9 = _ref.$val; + /* */ if (w.ctxt === ptrType$51.nil) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (w.ctxt === ptrType$51.nil) { */ case 38: + _r$3 = universeAny.Type(); /* */ $s = 42; case 42: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(t$9, _r$3)) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if ($interfaceIsEqual(t$9, _r$3)) { */ case 40: + w.string("any"); + /* break; */ $s = 20; continue; + /* } */ case 41: + _r$4 = universeComparable.Type(); /* */ $s = 45; case 45: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(t$9, $assertType(_r$4, ptrType$9).underlying)) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if ($interfaceIsEqual(t$9, $assertType(_r$4, ptrType$9).underlying)) { */ case 43: + w.string("interface{comparable}"); + /* break; */ $s = 20; continue; + /* } */ case 44: + /* } */ case 39: + /* */ if (t$9.implicit) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (t$9.implicit) { */ case 46: + /* */ if ((t$9.methods.$length === 0) && (t$9.embeddeds.$length === 1)) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if ((t$9.methods.$length === 0) && (t$9.embeddeds.$length === 1)) { */ case 48: + $r = w.typ((x = t$9.embeddeds, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 20; continue; + /* } */ case 49: + w.string("/* implicit */ "); + /* } */ case 47: + w.string("interface{"); + first = true; + /* */ if (!(w.ctxt === ptrType$51.nil)) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (!(w.ctxt === ptrType$51.nil)) { */ case 51: + _r$5 = t$9.typeSet(); /* */ $s = 54; case 54: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = w.typeSet(_r$5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 53; continue; + /* } else { */ case 52: + _ref$3 = t$9.methods; + _i$2 = 0; + /* while (true) { */ case 56: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 57; continue; } + m = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + if (!first) { + w.byte$(59); + } + first = false; + w.string(m.object.name); + $r = w.signature($assertType(m.object.typ, ptrType$27)); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 56; continue; + case 57: + _ref$4 = t$9.embeddeds; + _i$3 = 0; + /* while (true) { */ case 59: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 60; continue; } + typ$3 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + if (!first) { + w.byte$(59); + } + first = false; + $r = w.typ(typ$3); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$3++; + $s = 59; continue; + case 60: + /* } */ case 53: + w.byte$(125); + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 15: + t$10 = _ref.$val; + w.string("map["); + $r = w.typ(t$10.key); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w.byte$(93); + $r = w.typ(t$10.elem); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 16: + t$11 = _ref.$val; + s = ""; + parens = false; + _1 = t$11.dir; + if (_1 === (0)) { + s = "chan "; + _tuple$1 = $assertType(t$11.elem, ptrType$29, true); + c = _tuple$1[0]; + if (!(c === ptrType$29.nil) && (c.dir === 2)) { + parens = true; + } + } else if (_1 === (1)) { + s = "chan<- "; + } else if (_1 === (2)) { + s = "<-chan "; + } else { + w.error("unknown channel direction"); + } + w.string(s); + if (parens) { + w.byte$(40); + } + $r = w.typ(t$11.elem); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (parens) { + w.byte$(41); + } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 17: + t$12 = _ref.$val; + /* */ if (!(w.ctxt === ptrType$51.nil)) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!(w.ctxt === ptrType$51.nil)) { */ case 65: + _r$6 = w.ctxt.getID(t$12); /* */ $s = 67; case 67: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = strconv.Itoa(_r$6); /* */ $s = 68; case 68: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $r = w.string(_r$7); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 66: + $r = w.typeName(t$12.obj); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(t$12.inst === ptrType$52.nil)) { $s = 71; continue; } + if (!(w.ctxt === ptrType$51.nil)) { _v = false; $s = 74; continue s; } + _r$8 = t$12.TypeParams(); /* */ $s = 75; case 75: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = _r$8.Len(); /* */ $s = 76; case 76: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _v = !((_r$9 === 0)); case 74: + /* */ if (_v) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if (!(t$12.inst === ptrType$52.nil)) { */ case 71: + $r = w.typeList(t$12.inst.targs.list()); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 73; continue; + /* } else if (_v) { */ case 72: + _r$10 = t$12.TypeParams(); /* */ $s = 78; case 78: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = _r$10.list(); /* */ $s = 79; case 79: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $r = w.tParamList(_r$11); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 73: + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 18: + t$13 = _ref.$val; + if (t$13.obj === ptrType$17.nil) { + w.error("unnamed type parameter"); + /* break; */ $s = 20; continue; + } + i$2 = tparamIndex(w.tparams.list(), t$13); + /* */ if (i$2 >= 0) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if (i$2 >= 0) { */ case 81: + _r$12 = fmt.Sprintf("$%d", new sliceType$5([new $Int(i$2)])); /* */ $s = 84; case 84: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $r = w.string(_r$12); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 83; continue; + /* } else { */ case 82: + w.string(t$13.obj.object.name); + if (w.debug || !(w.ctxt === ptrType$51.nil)) { + w.string(subscript(t$13.id)); + } + /* } */ case 83: + $s = 20; continue; + /* } else { */ case 19: + t$14 = _ref; + _r$13 = t$14.String(); /* */ $s = 86; case 86: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + $r = w.string(_r$13); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } } */ case 20: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typ$1, $c: true, $r, _1, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _v, c, f, first, i, i$1, i$2, m, obj, parens, s, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tag, typ$2, typ$3, w, x, $s, $deferred};return $f; } } + }; + $ptrType(typeWriter).prototype.typeSet = function typeSet(s) { + var {_i, _i$1, _r$1, _r$2, _ref, _ref$1, buf, first, m, s, term$1, termHashes, w, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + $r = assert(!(w.ctxt === ptrType$51.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + first = true; + _ref = s.methods; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!first) { + w.byte$(59); + } + first = false; + w.string(m.object.name); + $r = w.signature($assertType(m.object.typ, ptrType$27)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 2; continue; + case 3: + /* */ if (s.terms.isAll()) { $s = 6; continue; } + /* */ if (s.terms.isEmpty()) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (s.terms.isAll()) { */ case 6: + $s = 9; continue; + /* } else if (s.terms.isEmpty()) { */ case 7: + _r$1 = s.terms.String(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = w.string(_r$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 9; continue; + /* } else { */ case 8: + termHashes = sliceType$6.nil; + _ref$1 = s.terms; + _i$1 = 0; + /* while (true) { */ case 12: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 13; continue; } + buf = [buf]; + term$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + if (term$1.tilde) { + buf[0].WriteByte(126); + } + _r$2 = newTypeHasher(buf[0], w.ctxt); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = _r$2.typ(term$1.typ); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + termHashes = $append(termHashes, buf[0].String()); + _i$1++; + $s = 12; continue; + case 13: + $r = sort.Strings(termHashes); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!first) { + w.byte$(59); + } + w.string(strings.Join(termHashes, "|")); + /* } */ case 9: + case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: typeSet, $c: true, $r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, buf, first, m, s, term$1, termHashes, w, $s};return $f; + }; + $ptrType(typeWriter).prototype.typeList = function typeList$1(list) { + var {_i, _ref, i, list, typ$2, w, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + w.byte$(91); + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + typ$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + w.byte$(44); + } + $r = w.typ(typ$2); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + w.byte$(93); + $s = -1; return; + /* */ } return; } var $f = {$blk: typeList$1, $c: true, $r, _i, _ref, i, list, typ$2, w, $s};return $f; + }; + $ptrType(typeWriter).prototype.tParamList = function tParamList(list) { + var {_i, _ref, i, list, prev, tpar, w, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + w.byte$(91); + prev = $ifaceNil; + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (tpar === ptrType$14.nil) { + w.error("nil type parameter"); + _i++; + /* continue; */ $s = 1; continue; + } + /* */ if (i > 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i > 0) { */ case 3: + /* */ if (!($interfaceIsEqual(tpar.bound, prev))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!($interfaceIsEqual(tpar.bound, prev))) { */ case 5: + w.byte$(32); + $r = w.typ(prev); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + w.byte$(44); + /* } */ case 4: + prev = tpar.bound; + $r = w.typ(tpar); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + /* */ if (!($interfaceIsEqual(prev, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(prev, $ifaceNil))) { */ case 9: + w.byte$(32); + $r = w.typ(prev); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + w.byte$(93); + $s = -1; return; + /* */ } return; } var $f = {$blk: tParamList, $c: true, $r, _i, _ref, i, list, prev, tpar, w, $s};return $f; + }; + $ptrType(typeWriter).prototype.typeName = function typeName(obj) { + var {obj, w, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + /* */ if (!(obj.object.pkg === ptrType$1.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(obj.object.pkg === ptrType$1.nil)) { */ case 1: + $r = writePackage(w.buf, obj.object.pkg, w.qf); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + w.string(obj.object.name); + $s = -1; return; + /* */ } return; } var $f = {$blk: typeName, $c: true, $r, obj, w, $s};return $f; + }; + $ptrType(typeWriter).prototype.tuple = function tuple(tup, variadic) { + var {_i, _r$1, _ref, _tuple, _tuple$1, i, ok, s, t, tup, typ$2, v, variadic, w, $s, $r, $c} = $restore(this, {tup, variadic}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + w.byte$(40); + /* */ if (!(tup === ptrType$15.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(tup === ptrType$15.nil)) { */ case 1: + _ref = tup.vars; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + w.byte$(44); + } + if (w.ctxt === ptrType$51.nil && !(v.object.name === "")) { + w.string(v.object.name); + w.byte$(32); + } + typ$2 = v.object.typ; + /* */ if (variadic && (i === (tup.vars.$length - 1 >> 0))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (variadic && (i === (tup.vars.$length - 1 >> 0))) { */ case 5: + _tuple = $assertType(typ$2, ptrType$25, true); + s = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (ok) { */ case 7: + w.string("..."); + typ$2 = s.elem; + $s = 9; continue; + /* } else { */ case 8: + _r$1 = under(typ$2); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$1, ptrType$4, true); + t = _tuple$1[0]; + if (t === ptrType$4.nil || !((t.kind === 17))) { + w.error("expected string type"); + _i++; + /* continue; */ $s = 3; continue; + } + $r = w.typ(typ$2); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w.string("..."); + _i++; + /* continue; */ $s = 3; continue; + /* } */ case 9: + /* } */ case 6: + $r = w.typ(typ$2); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 3; continue; + case 4: + /* } */ case 2: + w.byte$(41); + $s = -1; return; + /* */ } return; } var $f = {$blk: tuple, $c: true, $r, _i, _r$1, _ref, _tuple, _tuple$1, i, ok, s, t, tup, typ$2, v, variadic, w, $s};return $f; + }; + $ptrType(typeWriter).prototype.signature = function signature(sig) { + var {n, sig, w, x, x$1, $s, $deferred, $r, $c} = $restore(this, {sig}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + w = [w]; + w[0] = this; + /* */ if (!((sig.TypeParams().Len() === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((sig.TypeParams().Len() === 0))) { */ case 1: + /* */ if (!(w[0].ctxt === ptrType$51.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(w[0].ctxt === ptrType$51.nil)) { */ case 3: + $r = assert(w[0].tparams === ptrType$48.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w[0].tparams = sig.TypeParams(); + $deferred.push([(function(w) { return function typeWriter·signature·func1() { + w[0].tparams = ptrType$48.nil; + }; })(w), []]); + /* } */ case 4: + $r = w[0].tParamList(sig.TypeParams().list()); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $r = w[0].tuple(sig.params, sig.variadic); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + n = sig.results.Len(); + if (n === 0) { + $s = -1; return; + } + w[0].byte$(32); + /* */ if ((n === 1) && (!(w[0].ctxt === ptrType$51.nil) || (x = sig.results.vars, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).object.name === "")) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((n === 1) && (!(w[0].ctxt === ptrType$51.nil) || (x = sig.results.vars, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).object.name === "")) { */ case 8: + $r = w[0].typ((x$1 = sig.results.vars, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).object.typ); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 9: + $r = w[0].tuple(sig.results, false); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: signature, $c: true, $r, n, sig, w, x, x$1, $s, $deferred};return $f; } } + }; + subscript = function subscript$1(x) { + var buf, i, x; + buf = arrayType.zero(); + i = 96; + while (true) { + i = i - (3) >> 0; + utf8.EncodeRune($subslice(new sliceType$14(buf), i), 8320 + (($div64(x, new $Uint64(0, 10), true).$low >> 0)) >> 0); + x = $div64(x, (new $Uint64(0, 10)), false); + if ((x.$high === 0 && x.$low === 0)) { + break; + } + } + return ($bytesToString($subslice(new sliceType$14(buf), i))); + }; + $ptrType(_TypeSet).prototype.IsEmpty = function IsEmpty() { + var s; + s = this; + return s.terms.isEmpty(); + }; + $ptrType(_TypeSet).prototype.IsAll = function IsAll() { + var s; + s = this; + return s.IsMethodSet() && (s.methods.$length === 0); + }; + $ptrType(_TypeSet).prototype.IsMethodSet = function IsMethodSet() { + var s; + s = this; + return !s.comparable && s.terms.isAll(); + }; + $ptrType(_TypeSet).prototype.IsComparable = function IsComparable(seen) { + var {$24r, _r$1, s, seen, $s, $r, $c} = $restore(this, {seen}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + seen = [seen]; + s = this; + if (s.terms.isAll()) { + $s = -1; return s.comparable; + } + _r$1 = s.is((function(seen) { return function _TypeSet·IsComparable·func1(t) { + var {$24r, _r$1, _v, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(!(t === ptrType$5.nil))) { _v = false; $s = 1; continue s; } + _r$1 = comparable(t.typ, false, seen[0], $throwNilPointerError); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 1: + $24r = _v; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: _TypeSet·IsComparable·func1, $c: true, $r, $24r, _r$1, _v, t, $s};return $f; + }; })(seen)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: IsComparable, $c: true, $r, $24r, _r$1, s, seen, $s};return $f; + }; + $ptrType(_TypeSet).prototype.NumMethods = function NumMethods() { + var s; + s = this; + return s.methods.$length; + }; + $ptrType(_TypeSet).prototype.Method = function Method(i) { + var i, s, x; + s = this; + return (x = s.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(_TypeSet).prototype.LookupMethod = function LookupMethod(pkg, name, foldCase) { + var foldCase, name, pkg, s; + s = this; + return lookupMethod(s.methods, pkg, name, foldCase); + }; + $ptrType(_TypeSet).prototype.String = function String$4() { + var {_i, _r$1, _r$2, _r$3, _r$4, _ref, buf, hasMethods, hasTerms, i, m, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + if (s.IsEmpty()) { + $s = -1; return "\xE2\x88\x85"; + } else if (s.IsAll()) { + $s = -1; return "\xF0\x9D\x93\xA4"; + } + hasMethods = s.methods.$length > 0; + hasTerms = s.hasTerms(); + buf = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + buf.WriteByte(123); + if (s.comparable) { + buf.WriteString("comparable"); + if (hasMethods || hasTerms) { + buf.WriteString("; "); + } + } + _ref = s.methods; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf.WriteString("; "); + } + _r$1 = m.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = buf.WriteString(_r$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _i++; + $s = 1; continue; + case 2: + if (hasMethods && hasTerms) { + buf.WriteString("; "); + } + /* */ if (hasTerms) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (hasTerms) { */ case 5: + _r$3 = s.terms.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = buf.WriteString(_r$3); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + /* } */ case 6: + buf.WriteString("}"); + $s = -1; return buf.String(); + /* */ } return; } var $f = {$blk: String$4, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _ref, buf, hasMethods, hasTerms, i, m, s, $s};return $f; + }; + $ptrType(_TypeSet).prototype.hasTerms = function hasTerms() { + var s; + s = this; + return !s.terms.isEmpty() && !s.terms.isAll(); + }; + $ptrType(_TypeSet).prototype.subsetOf = function subsetOf$1(s2) { + var {$24r, _r$1, s1, s2, $s, $r, $c} = $restore(this, {s2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s1 = this; + _r$1 = s1.terms.subsetOf(s2.terms); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: subsetOf$1, $c: true, $r, $24r, _r$1, s1, s2, $s};return $f; + }; + $ptrType(_TypeSet).prototype.is = function is(f) { + var {$24r, _i, _r$1, _r$2, _ref, f, s, t, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (!s.hasTerms()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!s.hasTerms()) { */ case 1: + _r$1 = f(ptrType$5.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + _ref = s.terms; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = assert(!($interfaceIsEqual(t.typ, $ifaceNil))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = f(t); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!_r$2) { */ case 8: + $s = -1; return false; + /* } */ case 9: + _i++; + $s = 5; continue; + case 6: + $s = -1; return true; + /* */ } return; } var $f = {$blk: is, $c: true, $r, $24r, _i, _r$1, _r$2, _ref, f, s, t, $s};return $f; + }; + $ptrType(_TypeSet).prototype.underIs = function underIs$1(f) { + var {$24r, _arg, _arg$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, f, s, t, u, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (!s.hasTerms()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!s.hasTerms()) { */ case 1: + _r$1 = f($ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + _ref = s.terms; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = assert(!($interfaceIsEqual(t.typ, $ifaceNil))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + u = t.typ; + /* */ if (!t.tilde) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!t.tilde) { */ case 8: + _r$2 = under(u); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + u = _r$2; + /* } */ case 9: + /* */ if (false) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (false) { */ case 11: + _arg = u; + _r$3 = under(u); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = _r$3; + _r$4 = Identical(_arg, _arg$1); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = assert(_r$4); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + _r$5 = f(u); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!_r$5) { */ case 16: + $s = -1; return false; + /* } */ case 17: + _i++; + $s = 5; continue; + case 6: + $s = -1; return true; + /* */ } return; } var $f = {$blk: underIs$1, $c: true, $r, $24r, _arg, _arg$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, f, s, t, u, $s};return $f; + }; + computeInterfaceTypeSet = function computeInterfaceTypeSet$1(check, pos, ityp) { + var {$24r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$2, _ref$3, _tuple, _v, addMethod, allComparable, allMethods, allTerms, check, comparable$1, i, i$1, ityp, m, m$1, m$2, mpos, other, pos, pos$1, seen, terms, todo, tset, tset$1, typ$2, u, u$1, u$2, unionSets, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {check, pos, ityp}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + allMethods = [allMethods]; + check = [check]; + ityp = [ityp]; + mpos = [mpos]; + pos = [pos]; + seen = [seen]; + todo = [todo]; + if (!(ityp[0].tset === ptrType$8.nil)) { + $s = -1; return ityp[0].tset; + } + if (!ityp[0].complete) { + $s = -1; return topTypeSet; + } + /* */ if (!(check[0] === ptrType$6.nil) && false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(check[0] === ptrType$6.nil) && false) { */ case 1: + if (!new token.Pos(pos[0]).IsValid() && ityp[0].methods.$length > 0) { + pos[0] = (x = ityp[0].methods, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).object.pos; + } + $r = check[0].trace(pos[0], "-- type set for %s", new sliceType$5([ityp[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(allMethods, check, ityp, mpos, pos, seen, todo) { return function computeInterfaceTypeSet·func1() { + var {_arg, _arg$1, _r$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + _arg = pos[0]; + _r$1 = ityp[0].typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + $r = check[0].trace(_arg, "=> %s ", new sliceType$5([_arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: computeInterfaceTypeSet·func1, $c: true, $r, _arg, _arg$1, _r$1, $s};return $f; + }; })(allMethods, check, ityp, mpos, pos, seen, todo), []]); + /* } */ case 2: + ityp[0].tset = new _TypeSet.ptr(sliceType.nil, allTermlist, false); + unionSets = false; + if (!(check[0] === ptrType$6.nil)) { + if (check[0].unionTypeSets === false) { + check[0].unionTypeSets = new $global.Map(); + } + unionSets = check[0].unionTypeSets; + } else { + unionSets = new $global.Map(); + } + todo[0] = sliceType.nil; + seen[0] = false; + allMethods[0] = sliceType.nil; + mpos[0] = new $global.Map(); + addMethod = (function(allMethods, check, ityp, mpos, pos, seen, todo) { return function computeInterfaceTypeSet·func2(pos$1, m, explicit) { + var {_entry, _key, _r$1, _r$2, explicit, m, other, pos$1, $s, $r, $c} = $restore(this, {pos$1, m, explicit}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = [m]; + other = [other]; + pos$1 = [pos$1]; + _r$1 = (seen.$ptr || (seen.$ptr = new ptrType$53(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, seen))).insert(m[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + other[0] = _r$1; + /* */ if ($interfaceIsEqual(other[0], $ifaceNil)) { $s = 3; continue; } + /* */ if (explicit) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(other[0], $ifaceNil)) { */ case 3: + allMethods[0] = $append(allMethods[0], m[0]); + _key = m[0]; (mpos[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key), { k: _key, v: pos$1[0] }); + $s = 6; continue; + /* } else if (explicit) { */ case 4: + /* */ if (check[0] === ptrType$6.nil) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (check[0] === ptrType$6.nil) { */ case 7: + _r$2 = fmt.Sprintf("%v: duplicate method %s", new sliceType$5([new token.Pos(m[0].object.pos), new $String(m[0].object.name)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $panic(new $String(_r$2)); + /* } */ case 8: + $r = check[0].errorf(new atPos(((pos$1[0] >> 0))), 10, "duplicate method %s", new sliceType$5([new $String(m[0].object.name)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].errorf(new atPos((((_entry = $mapIndex(mpos[0],ptrType$2.keyFor($assertType(other[0], ptrType$2))), _entry !== undefined ? _entry.v : 0) >> 0))), 10, "\tother declaration of %s", new sliceType$5([new $String(m[0].object.name)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else { */ case 5: + if (check[0] === ptrType$6.nil) { + todo[0] = $append(todo[0], m[0], $assertType(other[0], ptrType$2)); + /* break; */ $s = 1; continue; + } + check[0].later((function(allMethods, check, ityp, m, mpos, other, pos, pos$1, seen, todo) { return function computeInterfaceTypeSet·func2·func1() { + var {_arg, _arg$1, _entry$1, _r$3, _r$4, _v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!check[0].allowVersion(m[0].object.pkg, 1, 14)) { _v = true; $s = 3; continue s; } + _arg = m[0].object.typ; + _r$3 = other[0].Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = _r$3; + _r$4 = Identical(_arg, _arg$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = !_r$4; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $r = check[0].errorf(new atPos(((pos$1[0] >> 0))), 10, "duplicate method %s", new sliceType$5([new $String(m[0].object.name)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].errorf(new atPos((((_entry$1 = $mapIndex(mpos[0],ptrType$2.keyFor($assertType(other[0], ptrType$2))), _entry$1 !== undefined ? _entry$1.v : 0) >> 0))), 10, "\tother declaration of %s", new sliceType$5([new $String(m[0].object.name)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: computeInterfaceTypeSet·func2·func1, $c: true, $r, _arg, _arg$1, _entry$1, _r$3, _r$4, _v, $s};return $f; + }; })(allMethods, check, ityp, m, mpos, other, pos, pos$1, seen, todo)).describef(new atPos(((pos$1[0] >> 0))), "duplicate method check for %s", new sliceType$5([new $String(m[0].object.name)])); + /* } */ case 6: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: computeInterfaceTypeSet·func2, $c: true, $r, _entry, _key, _r$1, _r$2, explicit, m, other, pos$1, $s};return $f; + }; })(allMethods, check, ityp, mpos, pos, seen, todo); + _ref = ityp[0].methods; + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = addMethod(m.object.pos, m, true); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 4; continue; + case 5: + allTerms = allTermlist; + allComparable = false; + _ref$1 = ityp[0].embeddeds; + _i$1 = 0; + /* while (true) { */ case 7: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } + i = _i$1; + typ$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + pos$1 = 0; + if (!(ityp[0].embedPos === ptrType$7.nil)) { + pos$1 = (x$1 = ityp[0].embedPos.$get(), ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + } + comparable$1 = false; + terms = termlist.nil; + _r$1 = under(typ$2); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref$2 = _r$1; + /* */ if ($assertType(_ref$2, ptrType$13, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref$2, ptrType$12, true)[1]) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ($assertType(_ref$2, ptrType$13, true)[1]) { */ case 10: + u = _ref$2.$val; + $r = assert(!isTypeParam(typ$2)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = computeInterfaceTypeSet(check[0], pos$1, u); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + tset = _r$2; + if (!(!(check[0] === ptrType$6.nil))) { _v = false; $s = 18; continue s; } + _r$3 = check[0].isImportedConstraint(typ$2); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 18: + /* */ if (_v && !check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_v && !check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 16: + $r = check[0].errorf(new atPos(((pos$1 >> 0))), 135, "embedding constraint interface %s requires go1.18 or later", new sliceType$5([typ$2])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* continue; */ $s = 7; continue; + /* } */ case 17: + comparable$1 = tset.comparable; + _ref$3 = tset.methods; + _i$2 = 0; + /* while (true) { */ case 21: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 22; continue; } + m$1 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + $r = addMethod(pos$1, m$1, false); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 21; continue; + case 22: + terms = tset.terms; + $s = 13; continue; + /* } else if ($assertType(_ref$2, ptrType$12, true)[1]) { */ case 11: + u$1 = _ref$2.$val; + /* */ if (!(check[0] === ptrType$6.nil) && !check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!(check[0] === ptrType$6.nil) && !check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 24: + $r = check[0].errorf(new atPos(((pos$1 >> 0))), 29, "embedding interface element %s requires go1.18 or later", new sliceType$5([u$1])); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* continue; */ $s = 7; continue; + /* } */ case 25: + _r$4 = computeUnionTypeSet(check[0], unionSets, pos$1, u$1); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + tset$1 = _r$4; + if (tset$1 === invalidTypeSet) { + _i$1++; + /* continue; */ $s = 7; continue; + } + $r = assert(!tset$1.comparable); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(tset$1.methods.$length === 0); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + terms = tset$1.terms; + $s = 13; continue; + /* } else { */ case 12: + u$2 = _ref$2; + if ($interfaceIsEqual(u$2, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + _i$1++; + /* continue; */ $s = 7; continue; + } + /* */ if (!(check[0] === ptrType$6.nil) && !check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (!(check[0] === ptrType$6.nil) && !check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 30: + $r = check[0].errorf(new atPos(((pos$1 >> 0))), 29, "embedding non-interface type %s requires go1.18 or later", new sliceType$5([typ$2])); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* continue; */ $s = 7; continue; + /* } */ case 31: + terms = new termlist([new term.ptr(false, typ$2)]); + /* } */ case 13: + _r$5 = intersectTermLists(allTerms, allComparable, terms, comparable$1); /* */ $s = 33; case 33: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple = _r$5; + allTerms = _tuple[0]; + allComparable = _tuple[1]; + _i$1++; + $s = 7; continue; + case 8: + ityp[0].embedPos = ptrType$7.nil; + i$1 = 0; + /* while (true) { */ case 34: + /* if (!(i$1 < todo[0].$length)) { break; } */ if(!(i$1 < todo[0].$length)) { $s = 35; continue; } + m$2 = ((i$1 < 0 || i$1 >= todo[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : todo[0].$array[todo[0].$offset + i$1]); + other = (x$2 = i$1 + 1 >> 0, ((x$2 < 0 || x$2 >= todo[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : todo[0].$array[todo[0].$offset + x$2])); + _r$6 = Identical(m$2.object.typ, other.object.typ); /* */ $s = 38; case 38: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (!_r$6) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (!_r$6) { */ case 36: + _r$7 = fmt.Sprintf("%v: duplicate method %s", new sliceType$5([new token.Pos(m$2.object.pos), new $String(m$2.object.name)])); /* */ $s = 39; case 39: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $panic(new $String(_r$7)); + /* } */ case 37: + i$1 = i$1 + (2) >> 0; + $s = 34; continue; + case 35: + ityp[0].tset.comparable = allComparable; + /* */ if (!((allMethods[0].$length === 0))) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (!((allMethods[0].$length === 0))) { */ case 40: + $r = sortMethods(allMethods[0]); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ityp[0].tset.methods = allMethods[0]; + /* } */ case 41: + ityp[0].tset.terms = allTerms; + $24r = ityp[0].tset; + $s = 43; case 43: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$8.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: computeInterfaceTypeSet$1, $c: true, $r, $24r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$2, _ref$3, _tuple, _v, addMethod, allComparable, allMethods, allTerms, check, comparable$1, i, i$1, ityp, m, m$1, m$2, mpos, other, pos, pos$1, seen, terms, todo, tset, tset$1, typ$2, u, u$1, u$2, unionSets, x, x$1, x$2, $s, $deferred};return $f; } } + }; + intersectTermLists = function intersectTermLists$1(xterms, xcomp, yterms, ycomp) { + var {_i, _r$1, _r$2, _ref, comp, i, t, terms, xcomp, xterms, ycomp, yterms, $s, $r, $c} = $restore(this, {xterms, xcomp, yterms, ycomp}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = xterms.intersect(yterms); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + terms = _r$1; + comp = xcomp || ycomp; + /* */ if (comp && !terms.isAll()) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (comp && !terms.isAll()) { */ case 2: + i = 0; + _ref = terms; + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = assert(!($interfaceIsEqual(t.typ, $ifaceNil))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = Comparable(t.typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r$2) { */ case 7: + ((i < 0 || i >= terms.$length) ? ($throwRuntimeError("index out of range"), undefined) : terms.$array[terms.$offset + i] = t); + i = i + (1) >> 0; + /* } */ case 8: + _i++; + $s = 4; continue; + case 5: + terms = $subslice(terms, 0, i); + if (!terms.isAll()) { + comp = false; + } + /* } */ case 3: + $r = assert(!comp || terms.isAll()); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [terms, comp]; + /* */ } return; } var $f = {$blk: intersectTermLists$1, $c: true, $r, _i, _r$1, _r$2, _ref, comp, i, t, terms, xcomp, xterms, ycomp, yterms, $s};return $f; + }; + sortMethods = function sortMethods$1(list) { + var {list, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = sort.Sort(($convertSliceType(list, byUniqueMethodName))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: sortMethods$1, $c: true, $r, list, $s};return $f; + }; + assertSortedMethods = function assertSortedMethods$1(list) { + var {_r$1, list, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (true) { + $panic(new $String("assertSortedMethods called outside debug mode")); + } + _r$1 = sort.IsSorted(($convertSliceType(list, byUniqueMethodName))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$1) { */ case 1: + $panic(new $String("methods not sorted")); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: assertSortedMethods$1, $c: true, $r, _r$1, list, $s};return $f; + }; + byUniqueMethodName.prototype.Len = function Len$1() { + var a; + a = this; + return a.$length; + }; + $ptrType(byUniqueMethodName).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + byUniqueMethodName.prototype.Less = function Less(i, j) { + var a, i, j; + a = this; + return ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]).object.Id() < ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]).object.Id(); + }; + $ptrType(byUniqueMethodName).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + byUniqueMethodName.prototype.Swap = function Swap(i, j) { + var _tmp, _tmp$1, a, i, j; + a = this; + _tmp = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); + _tmp$1 = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = _tmp); + ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j] = _tmp$1); + }; + $ptrType(byUniqueMethodName).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + computeUnionTypeSet = function computeUnionTypeSet$1(check, unionSets, pos, utyp) { + var {_entry, _entry$1, _entry$2, _entry$3, _i, _key, _key$1, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, _v, allTerms, check, pos, t, terms, tset, u, ui, unionSets, utyp, $s, $r, $c} = $restore(this, {check, unionSets, pos, utyp}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = (_entry = $mapIndex(unionSets,ptrType$12.keyFor(utyp)), _entry !== undefined ? [_entry.v, true] : [ptrType$8.nil, false]); + tset = _tuple[0]; + if (!(tset === ptrType$8.nil)) { + $s = -1; return tset; + } + _key = utyp; (unionSets || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key), { k: _key, v: new _TypeSet.ptr(sliceType.nil, termlist.nil, false) }); + allTerms = termlist.nil; + _ref = utyp.terms; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + terms = termlist.nil; + _r$1 = under(t.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + u = _r$1; + _tuple$1 = $assertType(u, ptrType$13, true); + ui = _tuple$1[0]; + /* */ if (!(ui === ptrType$13.nil)) { $s = 4; continue; } + /* */ if ($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(ui === ptrType$13.nil)) { */ case 4: + $r = assert(!isTypeParam(t.typ)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = computeInterfaceTypeSet(check, pos, ui); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + terms = _r$2.terms; + $s = 7; continue; + /* } else if ($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 5: + _i++; + /* continue; */ $s = 1; continue; + $s = 7; continue; + /* } else { */ case 6: + if (!(t.tilde)) { _v = false; $s = 12; continue s; } + _r$3 = Identical(t.typ, u); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = !_r$3; case 12: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + t = ptrType$19.nil; + /* } */ case 11: + terms = new termlist([($pointerOfStructConversion(t, ptrType$5))]); + /* } */ case 7: + _r$4 = allTerms.union(terms); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + allTerms = _r$4; + /* */ if (allTerms.$length > 100) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (allTerms.$length > 100) { */ case 15: + /* */ if (!(check === ptrType$6.nil)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!(check === ptrType$6.nil)) { */ case 17: + $r = check.errorf(new atPos(((pos >> 0))), 141, "cannot handle more than %d union terms (implementation limitation)", new sliceType$5([new $Int(100)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + _key$1 = utyp; (unionSets || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key$1), { k: _key$1, v: invalidTypeSet }); + $s = -1; return (_entry$1 = $mapIndex(unionSets,ptrType$12.keyFor(utyp)), _entry$1 !== undefined ? _entry$1.v : ptrType$8.nil); + /* } */ case 16: + _i++; + $s = 1; continue; + case 2: + (_entry$2 = $mapIndex(unionSets,ptrType$12.keyFor(utyp)), _entry$2 !== undefined ? _entry$2.v : ptrType$8.nil).terms = allTerms; + $s = -1; return (_entry$3 = $mapIndex(unionSets,ptrType$12.keyFor(utyp)), _entry$3 !== undefined ? _entry$3.v : ptrType$8.nil); + /* */ } return; } var $f = {$blk: computeUnionTypeSet$1, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _i, _key, _key$1, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, _v, allTerms, check, pos, t, terms, tset, u, ui, unionSets, utyp, $s};return $f; + }; + nextID = function nextID$1() { + return (new $Uint64(0, atomic.AddUint32((lastID$24ptr || (lastID$24ptr = new ptrType$54(function() { return lastID; }, function($v) { lastID = $v; }))), 1))); + }; + NewTypeParam = function NewTypeParam$1(obj, constraint) { + var {$24r, _r$1, constraint, obj, $s, $r, $c} = $restore(this, {obj, constraint}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = (ptrType$6.nil).newTypeParam(obj, constraint); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: NewTypeParam$1, $c: true, $r, $24r, _r$1, constraint, obj, $s};return $f; + }; + $pkg.NewTypeParam = NewTypeParam; + $ptrType(Checker).prototype.newTypeParam = function newTypeParam(obj, constraint) { + var {_r$1, check, constraint, id, obj, typ$2, x, x$1, $s, $r, $c} = $restore(this, {obj, constraint}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + id = nextID(); + if (!(check === ptrType$6.nil)) { + check.nextID = (x = check.nextID, x$1 = new $Uint64(0, 1), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + id = check.nextID; + } + typ$2 = new TypeParam.ptr(check, id, obj, -1, constraint); + if ($interfaceIsEqual(obj.object.typ, $ifaceNil)) { + obj.object.typ = typ$2; + } + /* */ if (!(check === ptrType$6.nil)) { $s = 1; continue; } + /* */ if (!($interfaceIsEqual(constraint, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(check === ptrType$6.nil)) { */ case 1: + check.needsCleanup(typ$2); + $s = 3; continue; + /* } else if (!($interfaceIsEqual(constraint, $ifaceNil))) { */ case 2: + _r$1 = typ$2.iface(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 3: + $s = -1; return typ$2; + /* */ } return; } var $f = {$blk: newTypeParam, $c: true, $r, _r$1, check, constraint, id, obj, typ$2, x, x$1, $s};return $f; + }; + $ptrType(TypeParam).prototype.Index = function Index() { + var t; + t = this; + return t.index; + }; + $ptrType(TypeParam).prototype.Obj = function Obj() { + var t; + t = this; + return t.obj; + }; + $ptrType(TypeParam).prototype.Constraint = function Constraint() { + var t; + t = this; + return t.bound; + }; + $ptrType(TypeParam).prototype.SetConstraint = function SetConstraint(bound) { + var {_r$1, bound, t, $s, $r, $c} = $restore(this, {bound}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(bound, $ifaceNil)) { + $panic(new $String("nil constraint")); + } + t.bound = bound; + _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* */ } return; } var $f = {$blk: SetConstraint, $c: true, $r, _r$1, bound, t, $s};return $f; + }; + $ptrType(TypeParam).prototype.Underlying = function Underlying$1() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Underlying$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + $ptrType(TypeParam).prototype.String = function String$5() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$5, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + $ptrType(TypeParam).prototype.cleanup = function cleanup() { + var {_r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + t.check = ptrType$6.nil; + $s = -1; return; + /* */ } return; } var $f = {$blk: cleanup, $c: true, $r, _r$1, t, $s};return $f; + }; + $ptrType(TypeParam).prototype.iface = function iface() { + var {_r$1, _r$2, _r$3, _ref, _tuple, bound, ityp, n, pos, t, u, u$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + bound = t.bound; + ityp = ptrType$13.nil; + _r$1 = under(bound); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: + u = _ref.$val; + if (u === (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) { + $s = -1; return emptyInterface; + } + $s = 4; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 3: + u$1 = _ref.$val; + if (isTypeParam(bound)) { + $s = -1; return emptyInterface; + } + ityp = u$1; + /* } */ case 4: + /* */ if (ityp === ptrType$13.nil) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (ityp === ptrType$13.nil) { */ case 5: + _r$2 = NewInterfaceType(sliceType.nil, new sliceType$3([bound])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ityp = _r$2; + ityp.implicit = true; + t.bound = ityp; + /* } */ case 6: + /* */ if (ityp.tset === ptrType$8.nil) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (ityp.tset === ptrType$8.nil) { */ case 8: + pos = t.obj.object.pos; + _tuple = $assertType(bound, ptrType$9, true); + n = _tuple[0]; + if (!(n === ptrType$9.nil)) { + pos = n.obj.object.pos; + } + _r$3 = computeInterfaceTypeSet(t.check, pos, ityp); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* } */ case 9: + $s = -1; return ityp; + /* */ } return; } var $f = {$blk: iface, $c: true, $r, _r$1, _r$2, _r$3, _ref, _tuple, bound, ityp, n, pos, t, u, u$1, $s};return $f; + }; + $ptrType(TypeParam).prototype.is = function is$1(f) { + var {$24r, _r$1, _r$2, _r$3, f, t, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.typeSet(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.is(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: is$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, f, t, $s};return $f; + }; + $ptrType(TypeParam).prototype.underIs = function underIs$2(f) { + var {$24r, _r$1, _r$2, _r$3, f, t, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.typeSet(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.underIs(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: underIs$2, $c: true, $r, $24r, _r$1, _r$2, _r$3, f, t, $s};return $f; + }; + $ptrType(TypeParamList).prototype.Len = function Len$2() { + var l; + l = this; + return l.list().$length; + }; + $ptrType(TypeParamList).prototype.At = function At(i) { + var i, l, x; + l = this; + return (x = l.tparams, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(TypeParamList).prototype.list = function list() { + var l; + l = this; + if (l === ptrType$48.nil) { + return sliceType$9.nil; + } + return l.tparams; + }; + newTypeList = function newTypeList$1(list$1) { + var list$1; + if (list$1.$length === 0) { + return ptrType$55.nil; + } + return new TypeList.ptr(list$1); + }; + $ptrType(TypeList).prototype.Len = function Len$3() { + var l; + l = this; + return l.list().$length; + }; + $ptrType(TypeList).prototype.At = function At$1(i) { + var i, l, x; + l = this; + return (x = l.types, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(TypeList).prototype.list = function list$1() { + var l; + l = this; + if (l === ptrType$55.nil) { + return sliceType$3.nil; + } + return l.types; + }; + bindTParams = function bindTParams$1(list$2) { + var _i, _ref, i, list$2, typ$2; + if (list$2.$length === 0) { + return ptrType$48.nil; + } + _ref = list$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + typ$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (typ$2.index >= 0) { + $panic(new $String("type parameter bound more than once")); + } + typ$2.index = i; + _i++; + } + return new TypeParamList.ptr(list$2); + }; + under = function under$1(t) { + var {$24r, $24r$1, _r$1, _r$2, _tuple, t, t$1, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(t, ptrType$9, true); + t$1 = _tuple[0]; + /* */ if (!(t$1 === ptrType$9.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(t$1 === ptrType$9.nil)) { */ case 1: + _r$1 = t$1.under(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$2 = t.Underlying(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: under$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tuple, t, t$1, $s};return $f; + }; + coreType = function coreType$1(t) { + var {$24r, _r$1, _r$2, _tuple, su, t, tpar, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + su = [su]; + _tuple = $assertType(t, ptrType$14, true); + tpar = _tuple[0]; + /* */ if (tpar === ptrType$14.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (tpar === ptrType$14.nil) { */ case 1: + _r$1 = under(t); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + su[0] = $ifaceNil; + _r$2 = tpar.underIs((function(su) { return function coreType·func1(u) { + var {_r$2, u, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(u, $ifaceNil)) { + $s = -1; return false; + } + /* */ if (!($interfaceIsEqual(su[0], $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(su[0], $ifaceNil))) { */ case 1: + _r$2 = match(su[0], u); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + u = _r$2; + if ($interfaceIsEqual(u, $ifaceNil)) { + $s = -1; return false; + } + /* } */ case 2: + su[0] = u; + $s = -1; return true; + /* */ } return; } var $f = {$blk: coreType·func1, $c: true, $r, _r$2, u, $s};return $f; + }; })(su)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$2) { */ case 5: + $s = -1; return su[0]; + /* } */ case 6: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: coreType$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, su, t, tpar, $s};return $f; + }; + coreString = function coreString$1(t) { + var {$24r, _r$1, _r$2, _tuple, hasString, su, t, tpar, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + hasString = [hasString]; + su = [su]; + _tuple = $assertType(t, ptrType$14, true); + tpar = _tuple[0]; + /* */ if (tpar === ptrType$14.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (tpar === ptrType$14.nil) { */ case 1: + _r$1 = under(t); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + su[0] = $ifaceNil; + hasString[0] = false; + _r$2 = tpar.underIs((function(hasString, su) { return function coreString·func1(u) { + var {_r$2, _r$3, u, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(u, $ifaceNil)) { + $s = -1; return false; + } + _r$2 = isString(u); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$2) { */ case 1: + u = NewSlice(universeByte); + hasString[0] = true; + /* } */ case 2: + /* */ if (!($interfaceIsEqual(su[0], $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(su[0], $ifaceNil))) { */ case 4: + _r$3 = match(su[0], u); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + u = _r$3; + if ($interfaceIsEqual(u, $ifaceNil)) { + $s = -1; return false; + } + /* } */ case 5: + su[0] = u; + $s = -1; return true; + /* */ } return; } var $f = {$blk: coreString·func1, $c: true, $r, _r$2, _r$3, u, $s};return $f; + }; })(hasString, su)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$2) { */ case 5: + if (hasString[0]) { + $s = -1; return (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); + } + $s = -1; return su[0]; + /* } */ case 6: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: coreString$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, hasString, su, t, tpar, $s};return $f; + }; + match = function match$1(x, y) { + var {_r$1, _r$2, _tuple, _tuple$1, _v, x, x$1, y, y$1, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = Identical(x, y); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$1) { */ case 1: + $s = -1; return x; + /* } */ case 2: + _tuple = $assertType(x, ptrType$29, true); + x$1 = _tuple[0]; + /* */ if (!(x$1 === ptrType$29.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(x$1 === ptrType$29.nil)) { */ case 4: + _tuple$1 = $assertType(y, ptrType$29, true); + y$1 = _tuple$1[0]; + if (!(!(y$1 === ptrType$29.nil))) { _v = false; $s = 8; continue s; } + _r$2 = Identical(x$1.elem, y$1.elem); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2; case 8: + /* */ if (_v) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_v) { */ case 6: + if ((x$1.dir === 0)) { + $s = -1; return y$1; + } else if ((y$1.dir === 0)) { + $s = -1; return x$1; + } + /* } */ case 7: + /* } */ case 5: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: match$1, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, _v, x, x$1, y, y$1, $s};return $f; + }; + NewTuple = function NewTuple$1(x) { + var x; + if (x.$length > 0) { + return new Tuple.ptr(x); + } + return ptrType$15.nil; + }; + $pkg.NewTuple = NewTuple; + $ptrType(Tuple).prototype.Len = function Len$4() { + var t; + t = this; + if (!(t === ptrType$15.nil)) { + return t.vars.$length; + } + return 0; + }; + $ptrType(Tuple).prototype.At = function At$2(i) { + var i, t, x; + t = this; + return (x = t.vars, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(Tuple).prototype.Underlying = function Underlying$2() { + var t; + t = this; + return t; + }; + $ptrType(Tuple).prototype.String = function String$6() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$6, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + termlist.prototype.String = function String$7() { + var {_i, _r$1, _r$2, _ref, buf, i, x, xl, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + if (xl.$length === 0) { + $s = -1; return "\xE2\x88\x85"; + } + buf = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + _ref = xl; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf.WriteString(" | "); + } + _r$1 = x.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = buf.WriteString(_r$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _i++; + $s = 1; continue; + case 2: + $s = -1; return buf.String(); + /* */ } return; } var $f = {$blk: String$7, $c: true, $r, _i, _r$1, _r$2, _ref, buf, i, x, xl, $s};return $f; + }; + $ptrType(termlist).prototype.String = function(...$args) { return this.$get().String(...$args); }; + termlist.prototype.isEmpty = function isEmpty() { + var _i, _ref, x, xl; + xl = this; + _ref = xl; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(x === ptrType$5.nil)) { + return false; + } + _i++; + } + return true; + }; + $ptrType(termlist).prototype.isEmpty = function(...$args) { return this.$get().isEmpty(...$args); }; + termlist.prototype.isAll = function isAll() { + var _i, _ref, x, xl; + xl = this; + _ref = xl; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(x === ptrType$5.nil) && $interfaceIsEqual(x.typ, $ifaceNil)) { + return true; + } + _i++; + } + return false; + }; + $ptrType(termlist).prototype.isAll = function(...$args) { return this.$get().isAll(...$args); }; + termlist.prototype.norm = function norm() { + var {_i, _r$1, _ref, _tuple, i, j, rl, u1, u2, used, xi, xj, xl, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + used = $makeSlice(sliceType$15, xl.$length); + rl = termlist.nil; + _ref = xl; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + xi = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (xi === ptrType$5.nil || ((i < 0 || i >= used.$length) ? ($throwRuntimeError("index out of range"), undefined) : used.$array[used.$offset + i])) { + _i++; + /* continue; */ $s = 1; continue; + } + j = i + 1 >> 0; + /* while (true) { */ case 3: + /* if (!(j < xl.$length)) { break; } */ if(!(j < xl.$length)) { $s = 4; continue; } + xj = ((j < 0 || j >= xl.$length) ? ($throwRuntimeError("index out of range"), undefined) : xl.$array[xl.$offset + j]); + if (xj === ptrType$5.nil || ((j < 0 || j >= used.$length) ? ($throwRuntimeError("index out of range"), undefined) : used.$array[used.$offset + j])) { + j = j + (1) >> 0; + /* continue; */ $s = 3; continue; + } + _r$1 = xi.union(xj); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + u1 = _tuple[0]; + u2 = _tuple[1]; + if (u2 === ptrType$5.nil) { + if ($interfaceIsEqual(u1.typ, $ifaceNil)) { + $s = -1; return allTermlist; + } + xi = u1; + ((j < 0 || j >= used.$length) ? ($throwRuntimeError("index out of range"), undefined) : used.$array[used.$offset + j] = true); + } + j = j + (1) >> 0; + $s = 3; continue; + case 4: + rl = $append(rl, xi); + _i++; + $s = 1; continue; + case 2: + $s = -1; return rl; + /* */ } return; } var $f = {$blk: norm, $c: true, $r, _i, _r$1, _ref, _tuple, i, j, rl, u1, u2, used, xi, xj, xl, $s};return $f; + }; + $ptrType(termlist).prototype.norm = function(...$args) { return this.$get().norm(...$args); }; + termlist.prototype.union = function union$1(yl) { + var {$24r, _r$1, xl, yl, $s, $r, $c} = $restore(this, {yl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + _r$1 = $appendSlice(xl, $convertSliceType(yl, sliceType$16)).norm(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: union$1, $c: true, $r, $24r, _r$1, xl, yl, $s};return $f; + }; + $ptrType(termlist).prototype.union = function(...$args) { return this.$get().union(...$args); }; + termlist.prototype.intersect = function intersect$1(yl) { + var {$24r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, r, rl, x, xl, y, yl, $s, $r, $c} = $restore(this, {yl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + if (xl.isEmpty() || yl.isEmpty()) { + $s = -1; return termlist.nil; + } + rl = termlist.nil; + _ref = xl; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = yl; + _i$1 = 0; + /* while (true) { */ case 3: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 4; continue; } + y = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$1 = x.intersect(y); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + r = _r$1; + if (!(r === ptrType$5.nil)) { + rl = $append(rl, r); + } + _i$1++; + $s = 3; continue; + case 4: + _i++; + $s = 1; continue; + case 2: + _r$2 = rl.norm(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 7; case 7: return $24r; + /* */ } return; } var $f = {$blk: intersect$1, $c: true, $r, $24r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, r, rl, x, xl, y, yl, $s};return $f; + }; + $ptrType(termlist).prototype.intersect = function(...$args) { return this.$get().intersect(...$args); }; + termlist.prototype.equal = function equal$1(yl) { + var {$24r, _r$1, _r$2, _v, xl, yl, $s, $r, $c} = $restore(this, {yl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + _r$1 = xl.subsetOf(yl); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (!(_r$1)) { _v = false; $s = 1; continue s; } + _r$2 = yl.subsetOf(xl); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2; case 1: + $24r = _v; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: equal$1, $c: true, $r, $24r, _r$1, _r$2, _v, xl, yl, $s};return $f; + }; + $ptrType(termlist).prototype.equal = function(...$args) { return this.$get().equal(...$args); }; + termlist.prototype.includes = function includes$1(t) { + var {_i, _r$1, _ref, t, x, xl, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + _ref = xl; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = x.includes(t); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$1) { */ case 3: + $s = -1; return true; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: includes$1, $c: true, $r, _i, _r$1, _ref, t, x, xl, $s};return $f; + }; + $ptrType(termlist).prototype.includes = function(...$args) { return this.$get().includes(...$args); }; + termlist.prototype.supersetOf = function supersetOf(y) { + var {_i, _r$1, _ref, x, xl, y, $s, $r, $c} = $restore(this, {y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + _ref = xl; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = y.subsetOf(x); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$1) { */ case 3: + $s = -1; return true; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: supersetOf, $c: true, $r, _i, _r$1, _ref, x, xl, y, $s};return $f; + }; + $ptrType(termlist).prototype.supersetOf = function(...$args) { return this.$get().supersetOf(...$args); }; + termlist.prototype.subsetOf = function subsetOf$2(yl) { + var {_i, _r$1, _ref, x, xl, yl, $s, $r, $c} = $restore(this, {yl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + if (yl.isEmpty()) { + $s = -1; return xl.isEmpty(); + } + _ref = xl; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = yl.supersetOf(x); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r$1) { */ case 3: + $s = -1; return false; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return true; + /* */ } return; } var $f = {$blk: subsetOf$2, $c: true, $r, _i, _r$1, _ref, x, xl, yl, $s};return $f; + }; + $ptrType(termlist).prototype.subsetOf = function(...$args) { return this.$get().subsetOf(...$args); }; + makeSubstMap = function makeSubstMap$1(tpars, targs) { + var {_i, _key, _ref, i, proj, targs, tpar, tpars, x, $s, $r, $c} = $restore(this, {tpars, targs}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(tpars.$length === targs.$length); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + proj = (x = tpars.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref = tpars; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _key = tpar; (proj || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$14.keyFor(_key), { k: _key, v: ((i < 0 || i >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i]) }); + _i++; + } + $s = -1; return proj; + /* */ } return; } var $f = {$blk: makeSubstMap$1, $c: true, $r, _i, _key, _ref, i, proj, targs, tpar, tpars, x, $s};return $f; + }; + makeRenameMap = function makeRenameMap$1(from, to) { + var {_i, _key, _ref, from, i, proj, to, tpar, x, $s, $r, $c} = $restore(this, {from, to}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(from.$length === to.$length); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + proj = (x = from.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref = from; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _key = tpar; (proj || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$14.keyFor(_key), { k: _key, v: ((i < 0 || i >= to.$length) ? ($throwRuntimeError("index out of range"), undefined) : to.$array[to.$offset + i]) }); + _i++; + } + $s = -1; return proj; + /* */ } return; } var $f = {$blk: makeRenameMap$1, $c: true, $r, _i, _key, _ref, from, i, proj, to, tpar, x, $s};return $f; + }; + substMap.prototype.empty = function empty() { + var m; + m = this.$val; + return (m ? m.size : 0) === 0; + }; + $ptrType(substMap).prototype.empty = function(...$args) { return new substMap(this.$get()).empty(...$args); }; + substMap.prototype.lookup = function lookup(tpar) { + var _entry, m, t, tpar; + m = this.$val; + t = (_entry = $mapIndex(m,ptrType$14.keyFor(tpar)), _entry !== undefined ? _entry.v : $ifaceNil); + if (!($interfaceIsEqual(t, $ifaceNil))) { + return t; + } + return tpar; + }; + $ptrType(substMap).prototype.lookup = function(...$args) { return new substMap(this.$get()).lookup(...$args); }; + $ptrType(Checker).prototype.subst = function subst(pos, typ$2, smap, expanding, ctxt) { + var {$24r, _r$1, _ref, check, ctxt, expanding, pos, smap, subst$1, t, t$1, typ$2, $s, $r, $c} = $restore(this, {pos, typ$2, smap, expanding, ctxt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!(expanding === ptrType$9.nil) || !(ctxt === ptrType$51.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (new substMap(smap).empty()) { + $s = -1; return typ$2; + } + _ref = typ$2; + if ($assertType(_ref, ptrType$4, true)[1]) { + t = _ref.$val; + $s = -1; return typ$2; + } else if ($assertType(_ref, ptrType$14, true)[1]) { + t$1 = _ref.$val; + $s = -1; return new substMap(smap).lookup(t$1); + } + subst$1 = new subster.ptr(pos, smap, check, expanding, ctxt); + _r$1 = subst$1.typ(typ$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: subst, $c: true, $r, $24r, _r$1, _ref, check, ctxt, expanding, pos, smap, subst$1, t, t$1, typ$2, $s};return $f; + }; + $ptrType(subster).prototype.typ = function typ$2(typ$3) { + var {$24r, $24r$1, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, base, copied, copied$1, dump, ecopied, elem, elem$1, elem$2, elem$3, embeddeds, fields, i, iface$1, key, mcopied, methods, n, newTArgs, new_targ, orig, params, recv, results, s, subst$1, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, targ, terms, typ$3, $s, $deferred, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + subst$1 = [subst$1]; + subst$1[0] = this; + _ref = typ$3; + /* */ if (_ref === $ifaceNil) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_ref === $ifaceNil) { */ case 1: + t = _ref; + $panic(new $String("nil typ")); + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: + t$1 = _ref.$val; + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: + t$2 = _ref.$val; + _r$1 = subst$1[0].typOrNil(t$2.elem); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + elem = _r$1; + if (!($interfaceIsEqual(elem, t$2.elem))) { + $s = -1; return new Array.ptr(t$2.len, elem); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 4: + t$3 = _ref.$val; + _r$2 = subst$1[0].typOrNil(t$3.elem); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + elem$1 = _r$2; + if (!($interfaceIsEqual(elem$1, t$3.elem))) { + $s = -1; return new Slice.ptr(elem$1); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 5: + t$4 = _ref.$val; + _r$3 = subst$1[0].varList(t$4.fields); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + fields = _tuple[0]; + copied = _tuple[1]; + if (copied) { + s = new Struct.ptr(fields, t$4.tags); + s.markComplete(); + $s = -1; return s; + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 6: + t$5 = _ref.$val; + _r$4 = subst$1[0].typ(t$5.base); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + base = _r$4; + if (!($interfaceIsEqual(base, t$5.base))) { + $s = -1; return new Pointer.ptr(base); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 7: + t$6 = _ref.$val; + _r$5 = subst$1[0].tuple(t$6); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = _r$5; + $s = 22; case 22: return $24r; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 8: + t$7 = _ref.$val; + recv = t$7.recv; + _r$6 = subst$1[0].tuple(t$7.params); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + params = _r$6; + _r$7 = subst$1[0].tuple(t$7.results); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + results = _r$7; + if (!(params === t$7.params) || !(results === t$7.results)) { + $s = -1; return new Signature.ptr(t$7.rparams, t$7.tparams, ptrType.nil, recv, params, results, t$7.variadic); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 9: + t$8 = _ref.$val; + _r$8 = subst$1[0].termlist(t$8.terms); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$1 = _r$8; + terms = _tuple$1[0]; + copied$1 = _tuple$1[1]; + if (copied$1) { + $s = -1; return new Union.ptr(terms); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 10: + t$9 = _ref.$val; + _r$9 = subst$1[0].funcList(t$9.methods); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$2 = _r$9; + methods = _tuple$2[0]; + mcopied = _tuple$2[1]; + _r$10 = subst$1[0].typeList(t$9.embeddeds); /* */ $s = 27; case 27: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$3 = _r$10; + embeddeds = _tuple$3[0]; + ecopied = _tuple$3[1]; + if (mcopied || ecopied) { + iface$1 = subst$1[0].check.newInterface(); + iface$1.embeddeds = embeddeds; + iface$1.implicit = t$9.implicit; + iface$1.complete = t$9.complete; + _tuple$4 = replaceRecvType(methods, t$9, iface$1); + iface$1.methods = _tuple$4[0]; + $s = -1; return iface$1; + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 11: + t$10 = _ref.$val; + _r$11 = subst$1[0].typ(t$10.key); /* */ $s = 28; case 28: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + key = _r$11; + _r$12 = subst$1[0].typ(t$10.elem); /* */ $s = 29; case 29: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + elem$2 = _r$12; + if (!($interfaceIsEqual(key, t$10.key)) || !($interfaceIsEqual(elem$2, t$10.elem))) { + $s = -1; return new Map.ptr(key, elem$2); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 12: + t$11 = _ref.$val; + _r$13 = subst$1[0].typ(t$11.elem); /* */ $s = 30; case 30: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + elem$3 = _r$13; + if (!($interfaceIsEqual(elem$3, t$11.elem))) { + $s = -1; return new Chan.ptr(t$11.dir, elem$3); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 13: + t$12 = _ref.$val; + dump = (function(subst$1) { return function subster·typ·func1(param, param$1) { + var param, param$1; + }; })(subst$1); + /* */ if (!(subst$1[0].check === ptrType$6.nil) && false) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!(subst$1[0].check === ptrType$6.nil) && false) { */ case 31: + subst$1[0].check.indent = subst$1[0].check.indent + (1) >> 0; + $deferred.push([(function(subst$1) { return function subster·typ·func2() { + subst$1[0].check.indent = subst$1[0].check.indent - (1) >> 0; + }; })(subst$1), []]); + dump = (function(subst$1) { return function subster·typ·func3(format, args) { + var {args, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = subst$1[0].check.trace(subst$1[0].pos, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: subster·typ·func3, $c: true, $r, args, format, $s};return $f; + }; })(subst$1); + /* } */ case 32: + orig = t$12.Origin(); + _r$14 = orig.TypeParams(); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$15 = _r$14.Len(); /* */ $s = 34; case 34: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + n = _r$15; + /* */ if (n === 0) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (n === 0) { */ case 35: + $r = dump(">>> %s is not parameterized", new sliceType$5([t$12])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return t$12; + /* } */ case 36: + newTArgs = sliceType$3.nil; + if (!((t$12.TypeArgs().Len() === n))) { + $s = -1; return (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + $r = dump(">>> %s already instantiated", new sliceType$5([t$12])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$1 = t$12.TypeArgs().list(); + _i = 0; + /* while (true) { */ case 39: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 40; continue; } + i = _i; + targ = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + $r = dump(">>> %d targ = %s", new sliceType$5([new $Int(i), targ])); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$16 = subst$1[0].typ(targ); /* */ $s = 42; case 42: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + new_targ = _r$16; + /* */ if (!($interfaceIsEqual(new_targ, targ))) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (!($interfaceIsEqual(new_targ, targ))) { */ case 43: + $r = dump(">>> substituted %d targ %s => %s", new sliceType$5([new $Int(i), targ, new_targ])); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (newTArgs === sliceType$3.nil) { + newTArgs = $makeSlice(sliceType$3, n); + $copySlice(newTArgs, t$12.TypeArgs().list()); + } + ((i < 0 || i >= newTArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : newTArgs.$array[newTArgs.$offset + i] = new_targ); + /* } */ case 44: + _i++; + $s = 39; continue; + case 40: + /* */ if (newTArgs === sliceType$3.nil) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (newTArgs === sliceType$3.nil) { */ case 46: + $r = dump(">>> nothing to substitute in %s", new sliceType$5([t$12])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return t$12; + /* } */ case 47: + _r$17 = subst$1[0].check.instance(subst$1[0].pos, orig, newTArgs, subst$1[0].expanding, subst$1[0].ctxt); /* */ $s = 49; case 49: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $24r$1 = _r$17; + $s = 50; case 50: return $24r$1; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 14: + t$13 = _ref.$val; + $s = -1; return new substMap(subst$1[0].smap).lookup(t$13); + /* } else { */ case 15: + t$14 = _ref; + $panic(new $String("unimplemented")); + /* } */ case 16: + $s = -1; return typ$3; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typ$2, $c: true, $r, $24r, $24r$1, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, base, copied, copied$1, dump, ecopied, elem, elem$1, elem$2, elem$3, embeddeds, fields, i, iface$1, key, mcopied, methods, n, newTArgs, new_targ, orig, params, recv, results, s, subst$1, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, targ, terms, typ$3, $s, $deferred};return $f; } } + }; + $ptrType(subster).prototype.typOrNil = function typOrNil(typ$3) { + var {$24r, _r$1, subst$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + subst$1 = this; + if ($interfaceIsEqual(typ$3, $ifaceNil)) { + $s = -1; return (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + _r$1 = subst$1.typ(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: typOrNil, $c: true, $r, $24r, _r$1, subst$1, typ$3, $s};return $f; + }; + $ptrType(subster).prototype.var_ = function var_(v) { + var {_r$1, subst$1, typ$3, v, $s, $r, $c} = $restore(this, {v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + subst$1 = this; + /* */ if (!(v === ptrType$16.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(v === ptrType$16.nil)) { */ case 1: + _r$1 = subst$1.typ(v.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ$3 = _r$1; + if (!($interfaceIsEqual(typ$3, v.object.typ))) { + $s = -1; return substVar(v, typ$3); + } + /* } */ case 2: + $s = -1; return v; + /* */ } return; } var $f = {$blk: var_, $c: true, $r, _r$1, subst$1, typ$3, v, $s};return $f; + }; + substVar = function substVar$1(v, typ$3) { + var copy, typ$3, v; + copy = $clone(v, Var); + copy.object.typ = typ$3; + copy.origin = v.Origin(); + return copy; + }; + $ptrType(subster).prototype.tuple = function tuple$1(t) { + var {_r$1, _tuple, copied, subst$1, t, vars, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + subst$1 = this; + /* */ if (!(t === ptrType$15.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(t === ptrType$15.nil)) { */ case 1: + _r$1 = subst$1.varList(t.vars); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + vars = _tuple[0]; + copied = _tuple[1]; + if (copied) { + $s = -1; return new Tuple.ptr(vars); + } + /* } */ case 2: + $s = -1; return t; + /* */ } return; } var $f = {$blk: tuple$1, $c: true, $r, _r$1, _tuple, copied, subst$1, t, vars, $s};return $f; + }; + $ptrType(subster).prototype.varList = function varList(in$1) { + var {_i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, v, w, $s, $r, $c} = $restore(this, {in$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = sliceType$10.nil; + copied = false; + subst$1 = this; + out = in$1; + _ref = in$1; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = subst$1.var_(v); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + w = _r$1; + if (!(w === v)) { + if (!copied) { + new$1 = $makeSlice(sliceType$10, in$1.$length); + $copySlice(new$1, out); + out = new$1; + copied = true; + } + ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = w); + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return [out, copied]; + /* */ } return; } var $f = {$blk: varList, $c: true, $r, _i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, v, w, $s};return $f; + }; + $ptrType(subster).prototype.func_ = function func_(f) { + var {_r$1, f, subst$1, typ$3, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + subst$1 = this; + /* */ if (!(f === ptrType$2.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(f === ptrType$2.nil)) { */ case 1: + _r$1 = subst$1.typ(f.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ$3 = _r$1; + if (!($interfaceIsEqual(typ$3, f.object.typ))) { + $s = -1; return substFunc(f, typ$3); + } + /* } */ case 2: + $s = -1; return f; + /* */ } return; } var $f = {$blk: func_, $c: true, $r, _r$1, f, subst$1, typ$3, $s};return $f; + }; + substFunc = function substFunc$1(f, typ$3) { + var copy, f, typ$3; + copy = $clone(f, Func); + copy.object.typ = typ$3; + copy.origin = f.Origin(); + return copy; + }; + $ptrType(subster).prototype.funcList = function funcList(in$1) { + var {_i, _r$1, _ref, copied, f, g, i, in$1, new$1, out, subst$1, $s, $r, $c} = $restore(this, {in$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = sliceType.nil; + copied = false; + subst$1 = this; + out = in$1; + _ref = in$1; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = subst$1.func_(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + g = _r$1; + if (!(g === f)) { + if (!copied) { + new$1 = $makeSlice(sliceType, in$1.$length); + $copySlice(new$1, out); + out = new$1; + copied = true; + } + ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = g); + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return [out, copied]; + /* */ } return; } var $f = {$blk: funcList, $c: true, $r, _i, _r$1, _ref, copied, f, g, i, in$1, new$1, out, subst$1, $s};return $f; + }; + $ptrType(subster).prototype.typeList = function typeList$2(in$1) { + var {_i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s, $r, $c} = $restore(this, {in$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = sliceType$3.nil; + copied = false; + subst$1 = this; + out = in$1; + _ref = in$1; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = subst$1.typ(t); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + u = _r$1; + if (!($interfaceIsEqual(u, t))) { + if (!copied) { + new$1 = $makeSlice(sliceType$3, in$1.$length); + $copySlice(new$1, out); + out = new$1; + copied = true; + } + ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = u); + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return [out, copied]; + /* */ } return; } var $f = {$blk: typeList$2, $c: true, $r, _i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s};return $f; + }; + $ptrType(subster).prototype.termlist = function termlist$1(in$1) { + var {_i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s, $r, $c} = $restore(this, {in$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = sliceType$12.nil; + copied = false; + subst$1 = this; + out = in$1; + _ref = in$1; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = subst$1.typ(t.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + u = _r$1; + if (!($interfaceIsEqual(u, t.typ))) { + if (!copied) { + new$1 = $makeSlice(sliceType$12, in$1.$length); + $copySlice(new$1, out); + out = new$1; + copied = true; + } + ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = NewTerm(t.tilde, u)); + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return [out, copied]; + /* */ } return; } var $f = {$blk: termlist$1, $c: true, $r, _i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s};return $f; + }; + replaceRecvType = function replaceRecvType$1(in$1, old, new$1) { + var _i, _ref, copied, i, in$1, method, new$1, newsig, old, out, sig; + out = sliceType.nil; + copied = false; + out = in$1; + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + newsig = [newsig]; + i = _i; + method = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + sig = $assertType(method.object.Type(), ptrType$27); + if (!(sig.recv === ptrType$16.nil) && $interfaceIsEqual(sig.recv.object.Type(), old)) { + if (!copied) { + out = $makeSlice(sliceType, in$1.$length); + $copySlice(out, in$1); + copied = true; + } + newsig[0] = $clone(sig, Signature); + newsig[0].recv = substVar(sig.recv, new$1); + ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = substFunc(method, newsig[0])); + } + _i++; + } + return [out, copied]; + }; + $ptrType(Struct).prototype.NumFields = function NumFields() { + var s; + s = this; + return s.fields.$length; + }; + $ptrType(Struct).prototype.Field = function Field(i) { + var i, s, x; + s = this; + return (x = s.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(Struct).prototype.Tag = function Tag(i) { + var i, s, x; + s = this; + if (i < s.tags.$length) { + return (x = s.tags, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + } + return ""; + }; + $ptrType(Struct).prototype.Underlying = function Underlying$3() { + var t; + t = this; + return t; + }; + $ptrType(Struct).prototype.String = function String$8() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$8, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + $ptrType(Struct).prototype.markComplete = function markComplete() { + var s; + s = this; + if (s.fields === sliceType$10.nil) { + s.fields = $makeSlice(sliceType$10, 0); + } + }; + $ptrType(Checker).prototype.structType = function structType$2(styp, e) { + var {_i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, add, addInvalid, check, e, embeddedPos, embeddedTyp, f, fields, fset, list$2, name, name$1, pos, styp, tag, tags, typ$3, $s, $r, $c} = $restore(this, {styp, e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + add = [add]; + check = [check]; + fields = [fields]; + fset = [fset]; + tag = [tag]; + tags = [tags]; + typ$3 = [typ$3]; + check[0] = this; + list$2 = e.Fields; + if (list$2 === ptrType$49.nil) { + styp.markComplete(); + $s = -1; return; + } + fields[0] = sliceType$10.nil; + tags[0] = sliceType$6.nil; + fset[0] = false; + typ$3[0] = $ifaceNil; + tag[0] = ""; + add[0] = (function(add, check, fields, fset, tag, tags, typ$3) { return function Checker·structType·func1(ident$1, embedded, pos) { + var {_r$1, _v, embedded, fld, ident$1, name, pos, $s, $r, $c} = $restore(this, {ident$1, embedded, pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(tag[0] === "") && tags[0] === sliceType$6.nil) { + tags[0] = $makeSlice(sliceType$6, fields[0].$length); + } + if (!(tags[0] === sliceType$6.nil)) { + tags[0] = $append(tags[0], tag[0]); + } + name = ident$1.Name; + fld = NewField(pos, check[0].pkg, name, typ$3[0], embedded); + if (name === "_") { _v = true; $s = 3; continue s; } + _r$1 = check[0].declareInSet((fset.$ptr || (fset.$ptr = new ptrType$53(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, fset))), pos, fld); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + fields[0] = $append(fields[0], fld); + $r = check[0].recordDef(ident$1, fld); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·structType·func1, $c: true, $r, _r$1, _v, embedded, fld, ident$1, name, pos, $s};return $f; + }; })(add, check, fields, fset, tag, tags, typ$3); + addInvalid = (function(add, check, fields, fset, tag, tags, typ$3) { return function Checker·structType·func2(ident$1, pos) { + var {ident$1, pos, $s, $r, $c} = $restore(this, {ident$1, pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + typ$3[0] = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + tag[0] = ""; + $r = add[0](ident$1, true, pos); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·structType·func2, $c: true, $r, ident$1, pos, $s};return $f; + }; })(add, check, fields, fset, tag, tags, typ$3); + _ref = list$2.List; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + embeddedPos = [embeddedPos]; + embeddedTyp = [embeddedTyp]; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = check[0].varType(f.Type); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ$3[0] = _r$1; + _r$2 = check[0].tag(f.Tag); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + tag[0] = _r$2; + /* */ if (f.Names.$length > 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (f.Names.$length > 0) { */ case 5: + _ref$1 = f.Names; + _i$1 = 0; + /* while (true) { */ case 8: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 9; continue; } + name = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + $r = add[0](name, false, name.Pos()); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 8; continue; + case 9: + $s = 7; continue; + /* } else { */ case 6: + _r$3 = f.Type.Pos(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + pos = _r$3; + name$1 = embeddedFieldIdent(f.Type); + /* */ if (name$1 === ptrType$30.nil) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (name$1 === ptrType$30.nil) { */ case 12: + $r = check[0].invalidAST(f.Type, "embedded field type %s has no name", new sliceType$5([f.Type])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + name$1 = ast.NewIdent("_"); + name$1.NamePos = pos; + $r = addInvalid(name$1, pos); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 13: + $r = add[0](name$1, true, pos); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + embeddedTyp[0] = typ$3[0]; + embeddedPos[0] = f.Type; + check[0].later((function(add, check, embeddedPos, embeddedTyp, fields, fset, tag, tags, typ$3) { return function Checker·structType·func3() { + var {_r$4, _ref$2, _tuple, isPtr, t, u, u$1, u$2, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = deref(embeddedTyp[0]); + t = _tuple[0]; + isPtr = _tuple[1]; + _r$4 = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _ref$2 = _r$4; + /* */ if ($assertType(_ref$2, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref$2, ptrType$26, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$2, ptrType$13, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* switch (0) { default: if ($assertType(_ref$2, ptrType$4, true)[1]) { */ case 2: + u = _ref$2.$val; + if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return; + } + /* */ if (u.kind === 18) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (u.kind === 18) { */ case 6: + $r = check[0].error(embeddedPos[0], 30, "embedded field type cannot be unsafe.Pointer"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + $s = 5; continue; + /* } else if ($assertType(_ref$2, ptrType$26, true)[1]) { */ case 3: + u$1 = _ref$2.$val; + $r = check[0].error(embeddedPos[0], 30, "embedded field type cannot be a pointer"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else if ($assertType(_ref$2, ptrType$13, true)[1]) { */ case 4: + u$2 = _ref$2.$val; + /* */ if (isTypeParam(t)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (isTypeParam(t)) { */ case 10: + $r = check[0].error(embeddedPos[0], 144, "embedded field type cannot be a (pointer to a) type parameter"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 5; continue; + /* } */ case 11: + /* */ if (isPtr) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (isPtr) { */ case 13: + $r = check[0].error(embeddedPos[0], 30, "embedded field type cannot be a pointer to an interface"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + /* } } */ case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·structType·func3, $c: true, $r, _r$4, _ref$2, _tuple, isPtr, t, u, u$1, u$2, $s};return $f; + }; })(add, check, embeddedPos, embeddedTyp, fields, fset, tag, tags, typ$3)).describef(embeddedPos[0], "check embedded type %s", new sliceType$5([embeddedTyp[0]])); + /* } */ case 7: + _i++; + $s = 1; continue; + case 2: + styp.fields = fields[0]; + styp.tags = tags[0]; + styp.markComplete(); + $s = -1; return; + /* */ } return; } var $f = {$blk: structType$2, $c: true, $r, _i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, add, addInvalid, check, e, embeddedPos, embeddedTyp, f, fields, fset, list$2, name, name$1, pos, styp, tag, tags, typ$3, $s};return $f; + }; + embeddedFieldIdent = function embeddedFieldIdent$1(e) { + var _ref, _tuple, e, e$1, e$2, e$3, e$4, e$5, ok; + _ref = e; + if ($assertType(_ref, ptrType$30, true)[1]) { + e$1 = _ref.$val; + return e$1; + } else if ($assertType(_ref, ptrType$43, true)[1]) { + e$2 = _ref.$val; + _tuple = $assertType(e$2.X, ptrType$43, true); + ok = _tuple[1]; + if (!ok) { + return embeddedFieldIdent(e$2.X); + } + } else if ($assertType(_ref, ptrType$36, true)[1]) { + e$3 = _ref.$val; + return e$3.Sel; + } else if ($assertType(_ref, ptrType$37, true)[1]) { + e$4 = _ref.$val; + return embeddedFieldIdent(e$4.X); + } else if ($assertType(_ref, ptrType$38, true)[1]) { + e$5 = _ref.$val; + return embeddedFieldIdent(e$5.X); + } + return ptrType$30.nil; + }; + $ptrType(Checker).prototype.declareInSet = function declareInSet(oset, pos, obj) { + var {_arg, _arg$1, _r$1, _r$2, alt, check, obj, oset, pos, $s, $r, $c} = $restore(this, {oset, pos, obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = oset.insert(obj); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + alt = _r$1; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 2: + _arg = new atPos(((pos >> 0))); + _r$2 = obj.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$2); + $r = check.errorf(_arg, 10, "%s redeclared", new sliceType$5([_arg$1])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.reportAltDecl(alt); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 3: + $s = -1; return true; + /* */ } return; } var $f = {$blk: declareInSet, $c: true, $r, _arg, _arg$1, _r$1, _r$2, alt, check, obj, oset, pos, $s};return $f; + }; + $ptrType(Checker).prototype.tag = function tag(t) { + var {_tuple, check, err, t, val, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + /* */ if (!(t === ptrType$56.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(t === ptrType$56.nil)) { */ case 1: + if (t.Kind === 9) { + _tuple = strconv.Unquote(t.Value); + val = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + $s = -1; return val; + } + } + $r = check.invalidAST(t, "incorrect tag syntax: %q", new sliceType$5([new $String(t.Value)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return ""; + /* */ } return; } var $f = {$blk: tag, $c: true, $r, _tuple, check, err, t, val, $s};return $f; + }; + $ptrType(Checker).prototype.funcBody = function funcBody(decl$1, name, sig, body, iota) { + var {_r$1, body, check, decl$1, iota, name, sig, $s, $deferred, $r, $c} = $restore(this, {decl$1, name, sig, body, iota}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + check[0] = this; + if (check[0].conf.IgnoreFuncBodies) { + $panic(new $String("function body not ignored")); + } + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = check[0].trace(body.Pos(), "-- %s: %s", new sliceType$5([new $String(name), sig])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + sig.scope.pos = body.Pos(); + _r$1 = body.End(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + sig.scope.end = _r$1; + $deferred.push([(function(check) { return function Checker·funcBody·func1(env, indent) { + var env, indent; + environment.copy(check[0].environment, env); + check[0].indent = indent; + }; })(check), [$clone(check[0].environment, environment), check[0].indent]]); + environment.copy(check[0].environment, new environment.ptr(decl$1, sig.scope, 0, iota, $ifaceNil, false, sig, false, false, false)); + check[0].indent = 0; + $r = check[0].stmtList(0, body.List); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (check[0].environment.hasLabel) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (check[0].environment.hasLabel) { */ case 6: + $r = check[0].labels(body); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + /* */ if (sig.results.Len() > 0 && !check[0].isTerminating(body, "")) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (sig.results.Len() > 0 && !check[0].isTerminating(body, "")) { */ case 9: + $r = check[0].error(new atPos(((body.Rbrace >> 0))), 102, "missing return"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + $r = check[0].usage(sig.scope); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: funcBody, $c: true, $r, _r$1, body, check, decl$1, iota, name, sig, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.usage = function usage(scope) { + var {_entry, _i, _i$1, _i$2, _key, _keys, _r$1, _ref, _ref$1, _ref$2, _size, _tuple, check, elem, name, scope, scope$1, unused, v, v$1, $s, $r, $c} = $restore(this, {scope}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + unused = [unused]; + check = this; + unused[0] = sliceType$10.nil; + _ref = scope.elems; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + /* while (true) { */ case 1: + /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 2; continue; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + /* continue; */ $s = 1; continue; + } + name = _entry.k; + elem = _entry.v; + _r$1 = resolve(name, elem); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + elem = _r$1; + _tuple = $assertType(elem, ptrType$16, true); + v = _tuple[0]; + if (!(v === ptrType$16.nil) && !v.used) { + unused[0] = $append(unused[0], v); + } + _i++; + $s = 1; continue; + case 2: + $r = sort.Slice(unused[0], (function(unused) { return function Checker·usage·func1(i, j) { + var i, j; + return ((i < 0 || i >= unused[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : unused[0].$array[unused[0].$offset + i]).object.pos < ((j < 0 || j >= unused[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : unused[0].$array[unused[0].$offset + j]).object.pos; + }; })(unused)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$1 = unused[0]; + _i$1 = 0; + /* while (true) { */ case 5: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } + v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + $r = check.softErrorf(v$1, 101, "%s declared but not used", new sliceType$5([new $String(v$1.object.name)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 5; continue; + case 6: + _ref$2 = scope.children; + _i$2 = 0; + /* while (true) { */ case 8: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 9; continue; } + scope$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + /* */ if (!scope$1.isFunc) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!scope$1.isFunc) { */ case 10: + $r = check.usage(scope$1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + _i$2++; + $s = 8; continue; + case 9: + $s = -1; return; + /* */ } return; } var $f = {$blk: usage, $c: true, $r, _entry, _i, _i$1, _i$2, _key, _keys, _r$1, _ref, _ref$1, _ref$2, _size, _tuple, check, elem, name, scope, scope$1, unused, v, v$1, $s};return $f; + }; + $ptrType(Checker).prototype.simpleStmt = function simpleStmt(s) { + var {check, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + /* */ if (!($interfaceIsEqual(s, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(s, $ifaceNil))) { */ case 1: + $r = check.stmt(0, s); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: simpleStmt, $c: true, $r, check, s, $s};return $f; + }; + trimTrailingEmptyStmts = function trimTrailingEmptyStmts$1(list$2) { + var _tuple, i, list$2, ok, x; + i = list$2.$length; + while (true) { + if (!(i > 0)) { break; } + _tuple = $assertType((x = i - 1 >> 0, ((x < 0 || x >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + x])), ptrType$58, true); + ok = _tuple[1]; + if (!ok) { + return $subslice(list$2, 0, i); + } + i = i - (1) >> 0; + } + return sliceType$17.nil; + }; + $ptrType(Checker).prototype.stmtList = function stmtList(ctxt, list$2) { + var {_i, _ref, check, ctxt, i, inner, inner$1, list$2, ok, s, $s, $r, $c} = $restore(this, {ctxt, list$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + ok = !((((ctxt & 4) >>> 0) === 0)); + inner = (ctxt & ~4) >>> 0; + list$2 = trimTrailingEmptyStmts(list$2); + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + inner$1 = inner; + if (ok && ((i + 1 >> 0) === list$2.$length)) { + inner$1 = (inner$1 | (4)) >>> 0; + } + $r = check.stmt(inner$1, s); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: stmtList, $c: true, $r, _i, _ref, check, ctxt, i, inner, inner$1, list$2, ok, s, $s};return $f; + }; + $ptrType(Checker).prototype.multipleDefaults = function multipleDefaults(list$2) { + var {_arg, _arg$1, _i, _r$1, _r$2, _ref, _ref$1, c, c$1, c$2, check, d, first, list$2, s, x, $s, $r, $c} = $restore(this, {list$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + first = $ifaceNil; + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + d = $ifaceNil; + _ref$1 = s; + /* */ if ($assertType(_ref$1, ptrType$59, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, ptrType$60, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref$1, ptrType$59, true)[1]) { */ case 3: + c = _ref$1.$val; + if (c.List.$length === 0) { + d = s; + } + $s = 6; continue; + /* } else if ($assertType(_ref$1, ptrType$60, true)[1]) { */ case 4: + c$1 = _ref$1.$val; + if ($interfaceIsEqual(c$1.Comm, $ifaceNil)) { + d = s; + } + $s = 6; continue; + /* } else { */ case 5: + c$2 = _ref$1; + $r = check.invalidAST(s, "case/communication clause expected", sliceType$5.nil); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + /* */ if (!($interfaceIsEqual(d, $ifaceNil))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(d, $ifaceNil))) { */ case 8: + /* */ if (!($interfaceIsEqual(first, $ifaceNil))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!($interfaceIsEqual(first, $ifaceNil))) { */ case 10: + _arg = d; + _r$1 = first.Pos(); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = check.fset.Position(_r$1); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = (x = _r$2, new x.constructor.elem(x)); + $r = check.errorf(_arg, 114, "multiple defaults (first at %s)", new sliceType$5([_arg$1])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 12; continue; + /* } else { */ case 11: + first = d; + /* } */ case 12: + /* } */ case 9: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: multipleDefaults, $c: true, $r, _arg, _arg$1, _i, _r$1, _r$2, _ref, _ref$1, c, c$1, c$2, check, d, first, list$2, s, x, $s};return $f; + }; + $ptrType(Checker).prototype.openScope = function openScope(node, comment) { + var {_arg, _arg$1, _arg$2, _arg$3, _r$1, _r$2, _r$3, check, comment, node, scope, $s, $r, $c} = $restore(this, {node, comment}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _arg = check.environment.scope; + _r$1 = node.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + _r$2 = node.End(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$2 = _r$2; + _arg$3 = comment; + _r$3 = NewScope(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + scope = _r$3; + $r = check.recordScope(node, scope); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check.environment.scope = scope; + $s = -1; return; + /* */ } return; } var $f = {$blk: openScope, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r$1, _r$2, _r$3, check, comment, node, scope, $s};return $f; + }; + $ptrType(Checker).prototype.closeScope = function closeScope() { + var check; + check = this; + check.environment.scope = check.environment.scope.Parent(); + }; + assignOp = function assignOp$1(op) { + var op; + if (23 <= op && op <= 33) { + return op + -11 >> 0; + } + return 0; + }; + $ptrType(Checker).prototype.suspendedCall = function suspendedCall(keyword, call) { + var {_1, _r$1, call, check, code, keyword, msg, x, $s, $r, $c} = $restore(this, {keyword, call}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = [x]; + check = this; + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + msg = ""; + code = 0; + _r$1 = check.rawExpr(x[0], call, $ifaceNil, false); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _1 = _r$1; + if (_1 === (0)) { + msg = "requires function call, not conversion"; + code = 129; + if (keyword === "go") { + code = 130; + } + } else if (_1 === (1)) { + msg = "discards result of"; + code = 128; + } else if (_1 === (2)) { + $s = -1; return; + } else { + unreachable(); + } + case 1: + $r = check.errorf(x[0], code, "%s %s %s", new sliceType$5([new $String(keyword), new $String(msg), x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: suspendedCall, $c: true, $r, _1, _r$1, call, check, code, keyword, msg, x, $s};return $f; + }; + goVal = function goVal$1(val) { + var {$24r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, ok, ok$1, ok$2, val, x, x$1, x$2, $s, $r, $c} = $restore(this, {val}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(val, $ifaceNil)) { + $s = -1; return $ifaceNil; + } + _r$1 = val.Kind(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _1 = _r$1; + /* */ if (_1 === (3)) { $s = 3; continue; } + /* */ if (_1 === (4)) { $s = 4; continue; } + /* */ if (_1 === (2)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (3)) { */ case 3: + _r$2 = constant.Int64Val(val); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + x = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return x; + } + _r$3 = constant.Uint64Val(val); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + x$1 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (ok$1) { + $s = -1; return x$1; + } + $s = 6; continue; + /* } else if (_1 === (4)) { */ case 4: + _r$4 = constant.Float64Val(val); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$2 = _r$4; + x$2 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (ok$2) { + $s = -1; return new $Float64(x$2); + } + $s = 6; continue; + /* } else if (_1 === (2)) { */ case 5: + _r$5 = constant.StringVal(val); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = new $String(_r$5); + $s = 11; case 11: return $24r; + /* } */ case 6: + case 1: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: goVal$1, $c: true, $r, $24r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, ok, ok$1, ok$2, val, x, x$1, x$2, $s};return $f; + }; + $ptrType(Checker).prototype.caseValues = function caseValues(x, values, seen) { + var {_entry, _entry$1, _i, _i$1, _key, _r$1, _r$2, _r$3, _ref, _ref$1, check, e, res, seen, v, val, values, vt, x, $s, $r, $c} = $restore(this, {x, values, seen}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _ref = values; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + res = [res]; + v = [v]; + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + v[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr(v[0], e); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ((x.mode === 0) || (v[0].mode === 0)) { + _i++; + /* continue L; */ $s = 1; continue s; + } + $r = check.convertUntyped(v[0], x.typ); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (v[0].mode === 0) { + _i++; + /* continue L; */ $s = 1; continue s; + } + res[0] = $clone(v[0], operand); + $r = check.comparison(res[0], x, 39, true); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (res[0].mode === 0) { + _i++; + /* continue L; */ $s = 1; continue s; + } + if (!((v[0].mode === 4))) { + _i++; + /* continue L; */ $s = 1; continue s; + } + _r$1 = goVal(v[0].val); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + val = _r$1; + /* */ if (!($interfaceIsEqual(val, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(val, $ifaceNil))) { */ case 7: + _ref$1 = (_entry = $mapIndex(seen,$emptyInterface.keyFor(val)), _entry !== undefined ? _entry.v : sliceType$18.nil); + _i$1 = 0; + /* while (true) { */ case 9: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 10; continue; } + vt = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), valueType); + _r$2 = Identical(v[0].typ, vt.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_r$2) { */ case 11: + $r = check.errorf(v[0], 113, "duplicate case %s in expression switch", new sliceType$5([v[0]])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.error(new atPos(((vt.pos >> 0))), 113, "\tprevious case"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue L; */ $s = 1; continue s; + /* } */ case 12: + _i$1++; + $s = 9; continue; + case 10: + _r$3 = v[0].Pos(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _key = val; (seen || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: $append((_entry$1 = $mapIndex(seen,$emptyInterface.keyFor(val)), _entry$1 !== undefined ? _entry$1.v : sliceType$18.nil), new valueType.ptr(_r$3, v[0].typ)) }); + /* } */ case 8: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: caseValues, $c: true, $r, _entry, _entry$1, _i, _i$1, _key, _r$1, _r$2, _r$3, _ref, _ref$1, check, e, res, seen, v, val, values, vt, x, $s};return $f; + }; + $ptrType(Checker).prototype.isNil = function isNil(e) { + var {_r$1, _tuple, _tuple$1, check, e, name, ok, $s, $r, $c} = $restore(this, {e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _tuple = $assertType(unparen(e), ptrType$30, true); + name = _tuple[0]; + /* */ if (!(name === ptrType$30.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(name === ptrType$30.nil)) { */ case 1: + _r$1 = check.environment.lookup(name.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$1, ptrType$33, true); + ok = _tuple$1[1]; + $s = -1; return ok; + /* } */ case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: isNil, $c: true, $r, _r$1, _tuple, _tuple$1, check, e, name, ok, $s};return $f; + }; + $ptrType(Checker).prototype.caseTypes = function caseTypes(x, types$1, seen) { + var {T, Ts, _entry, _i, _i$1, _key, _key$1, _keys, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _size, _v, _v$1, check, dummy, e, other, seen, t, types$1, x, $s, $r, $c} = $restore(this, {x, types$1, seen}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + dummy = [dummy]; + T = $ifaceNil; + check = this; + dummy[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + _ref = types$1; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = check.isNil(e); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$1) { */ case 3: + T = $ifaceNil; + $r = check.expr(dummy[0], e); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + _r$2 = check.varType(e); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + T = _r$2; + if ($interfaceIsEqual(T, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + _i++; + /* continue L; */ $s = 1; continue s; + } + /* } */ case 5: + _ref$1 = seen; + _i$1 = 0; + _keys = _ref$1 ? _ref$1.keys() : undefined; + _size = _ref$1 ? _ref$1.size : 0; + /* while (true) { */ case 9: + /* if (!(_i$1 < _size)) { break; } */ if(!(_i$1 < _size)) { $s = 10; continue; } + _key = _keys.next().value; + _entry = _ref$1.get(_key); + if (_entry === undefined) { + _i$1++; + /* continue; */ $s = 9; continue; + } + t = _entry.k; + other = _entry.v; + if ($interfaceIsEqual(T, $ifaceNil) && $interfaceIsEqual(t, $ifaceNil)) { _v = true; $s = 13; continue s; } + if (!(!($interfaceIsEqual(T, $ifaceNil)) && !($interfaceIsEqual(t, $ifaceNil)))) { _v$1 = false; $s = 14; continue s; } + _r$3 = Identical(T, t); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v$1 = _r$3; case 14: + _v = _v$1; case 13: + /* */ if (_v) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_v) { */ case 11: + Ts = "nil"; + /* */ if (!($interfaceIsEqual(T, $ifaceNil))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!($interfaceIsEqual(T, $ifaceNil))) { */ case 16: + _r$4 = TypeString(T, $methodVal(check, "qualifier")); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + Ts = _r$4; + /* } */ case 17: + $r = check.errorf(e, 113, "duplicate case %s in type switch", new sliceType$5([new $String(Ts)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.error(other, 113, "\tprevious case"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue L; */ $s = 1; continue s; + /* } */ case 12: + _i$1++; + $s = 9; continue; + case 10: + _key$1 = T; (seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key$1), { k: _key$1, v: e }); + /* */ if (!(x === ptrType$61.nil) && !($interfaceIsEqual(T, $ifaceNil))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!(x === ptrType$61.nil) && !($interfaceIsEqual(T, $ifaceNil))) { */ case 21: + $r = check.typeAssertion(e, x, T, true); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 22: + _i++; + $s = 1; continue; + case 2: + $s = -1; return T; + /* */ } return; } var $f = {$blk: caseTypes, $c: true, $r, T, Ts, _entry, _i, _i$1, _key, _key$1, _keys, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _size, _v, _v$1, check, dummy, e, other, seen, t, types$1, x, $s};return $f; + }; + $ptrType(Checker).prototype.stmt = function stmt(ctxt, s) { + var {T, Y, _1, _2, _3, _4, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, alt, c, cause, ch, check, clause, clause$1, clause$2, code, ctxt, expr, guard, guard$1, guard$2, i, i$1, i$2, ident$1, inner, inner$1, key, kind, lhs, lhs$1, lhs$2, lhs$3, lhs$4, lhsVars, msg, msg$1, n, name, obj, obj$1, obj$2, obj$3, ok, op, op$1, res, rhs, rhs$1, rhs$2, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$3, s$4, s$5, s$6, s$7, s$8, s$9, scopePos, scopePos$1, seen, seen$1, sx, t, t$1, typ$3, typ$4, u, u$1, uch, used, v, val, val$1, valid, vars, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred, $r, $c} = $restore(this, {ctxt, s}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + ch = [ch]; + check = [check]; + val = [val]; + x = [x]; + x$1 = [x$1]; + x$2 = [x$2]; + x$3 = [x$3]; + x$4 = [x$4]; + x$5 = [x$5]; + x$6 = [x$6]; + x$7 = [x$7]; + check[0] = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $deferred.push([(function(ch, check, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7) { return function Checker·stmt·func1(scope) { + var {p, scope, $s, $r, $c} = $restore(this, {scope}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = $recover(); + if (!($interfaceIsEqual(p, $ifaceNil))) { + $panic(p); + } + $r = assert(scope === check[0].environment.scope); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·stmt·func1, $c: true, $r, p, scope, $s};return $f; + }; })(ch, check, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7), [check[0].environment.scope]]); + /* } */ case 2: + $deferred.push([$methodVal(check[0], "processDelayed"), [check[0].delayed.$length]]); + inner = (ctxt & ~28) >>> 0; + _ref = s; + /* */ if ($assertType(_ref, ptrType$62, true)[1] || $assertType(_ref, ptrType$58, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$63, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$64, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$65, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$66, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$67, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$68, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$69, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$70, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$71, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$72, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$73, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$79, true)[1]) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ($assertType(_ref, ptrType$62, true)[1] || $assertType(_ref, ptrType$58, true)[1]) { */ case 3: + s$1 = _ref; + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$63, true)[1]) { */ case 4: + s$2 = _ref.$val; + $r = check[0].declStmt(s$2.Decl); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$64, true)[1]) { */ case 5: + s$3 = _ref.$val; + check[0].environment.hasLabel = true; + $r = check[0].stmt(ctxt, s$3.Stmt); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$65, true)[1]) { */ case 6: + s$4 = _ref.$val; + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + _r$1 = check[0].rawExpr(x[0], s$4.X, $ifaceNil, false); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + kind = _r$1; + msg = ""; + code = 0; + _1 = x[0].mode; + /* */ if (_1 === (2)) { $s = 27; continue; } + /* */ if (_1 === (3)) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (_1 === (2)) { */ case 27: + msg = "must be called"; + code = 82; + $s = 30; continue; + /* } else if (_1 === (3)) { */ case 28: + msg = "is not an expression"; + code = 42; + $s = 30; continue; + /* } else { */ case 29: + /* */ if (kind === 2) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (kind === 2) { */ case 31: + $s = 33; case 33: return; + /* } */ case 32: + msg = "is not used"; + code = 100; + /* } */ case 30: + case 26: + $r = check[0].errorf(x[0], code, "%s %s", new sliceType$5([x[0], new $String(msg)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$66, true)[1]) { */ case 7: + s$5 = _ref.$val; + _tmp = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + _tmp$1 = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + ch[0] = $clone(_tmp, operand); + val[0] = $clone(_tmp$1, operand); + $r = check[0].expr(ch[0], s$5.Chan); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].expr(val[0], s$5.Value); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((ch[0].mode === 0) || (val[0].mode === 0)) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if ((ch[0].mode === 0) || (val[0].mode === 0)) { */ case 37: + $s = 39; case 39: return; + /* } */ case 38: + _r$2 = coreType(ch[0].typ); /* */ $s = 40; case 40: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + u = _r$2; + /* */ if ($interfaceIsEqual(u, $ifaceNil)) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if ($interfaceIsEqual(u, $ifaceNil)) { */ case 41: + _r$3 = inNode(s$5, s$5.Arrow); /* */ $s = 43; case 43: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = check[0].invalidOp((x$8 = _r$3, new x$8.constructor.elem(x$8)), 59, "cannot send to %s: no core type", new sliceType$5([ch[0]])); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 45; case 45: return; + /* } */ case 42: + _tuple = $assertType(u, ptrType$29, true); + uch = _tuple[0]; + /* */ if (uch === ptrType$29.nil) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (uch === ptrType$29.nil) { */ case 46: + _r$4 = inNode(s$5, s$5.Arrow); /* */ $s = 48; case 48: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = check[0].invalidOp((x$9 = _r$4, new x$9.constructor.elem(x$9)), 59, "cannot send to non-channel %s", new sliceType$5([ch[0]])); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 50; case 50: return; + /* } */ case 47: + /* */ if (uch.dir === 2) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (uch.dir === 2) { */ case 51: + _r$5 = inNode(s$5, s$5.Arrow); /* */ $s = 53; case 53: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = check[0].invalidOp((x$10 = _r$5, new x$10.constructor.elem(x$10)), 59, "cannot send to receive-only channel %s", new sliceType$5([ch[0]])); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 55; case 55: return; + /* } */ case 52: + $r = check[0].assignment(val[0], uch.elem, "send"); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$67, true)[1]) { */ case 8: + s$6 = _ref.$val; + op = 0; + _2 = s$6.Tok; + /* */ if (_2 === (37)) { $s = 58; continue; } + /* */ if (_2 === (38)) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (_2 === (37)) { */ case 58: + op = 12; + $s = 61; continue; + /* } else if (_2 === (38)) { */ case 59: + op = 13; + $s = 61; continue; + /* } else { */ case 60: + _r$6 = inNode(s$6, s$6.TokPos); /* */ $s = 62; case 62: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $r = check[0].invalidAST((x$11 = _r$6, new x$11.constructor.elem(x$11)), "unknown inc/dec operation %s", new sliceType$5([new token.Token(s$6.Tok)])); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 64; case 64: return; + /* } */ case 61: + case 57: + x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].expr(x$1[0], s$6.X); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x$1[0].mode === 0) { $s = 66; continue; } + /* */ $s = 67; continue; + /* if (x$1[0].mode === 0) { */ case 66: + $s = 68; case 68: return; + /* } */ case 67: + _r$7 = allNumeric(x$1[0].typ); /* */ $s = 71; case 71: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (!_r$7) { $s = 69; continue; } + /* */ $s = 70; continue; + /* if (!_r$7) { */ case 69: + $r = check[0].invalidOp(s$6.X, 48, "%s%s (non-numeric type %s)", new sliceType$5([s$6.X, new token.Token(s$6.Tok), x$1[0].typ])); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 73; case 73: return; + /* } */ case 70: + _r$8 = s$6.X.Pos(); /* */ $s = 74; case 74: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + Y = new ast.BasicLit.ptr(_r$8, 5, "1"); + $r = check[0].binary(x$1[0], $ifaceNil, s$6.X, Y, op, s$6.TokPos); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x$1[0].mode === 0) { $s = 76; continue; } + /* */ $s = 77; continue; + /* if (x$1[0].mode === 0) { */ case 76: + $s = 78; case 78: return; + /* } */ case 77: + _r$9 = check[0].assignVar(s$6.X, x$1[0]); /* */ $s = 79; case 79: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$68, true)[1]) { */ case 9: + s$7 = _ref.$val; + _3 = s$7.Tok; + /* */ if ((_3 === (42)) || (_3 === (47))) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if ((_3 === (42)) || (_3 === (47))) { */ case 81: + /* */ if (s$7.Lhs.$length === 0) { $s = 84; continue; } + /* */ $s = 85; continue; + /* if (s$7.Lhs.$length === 0) { */ case 84: + $r = check[0].invalidAST(s$7, "missing lhs in assignment", sliceType$5.nil); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 87; case 87: return; + /* } */ case 85: + /* */ if (s$7.Tok === 47) { $s = 88; continue; } + /* */ $s = 89; continue; + /* if (s$7.Tok === 47) { */ case 88: + _r$10 = inNode(s$7, s$7.TokPos); /* */ $s = 91; case 91: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $r = check[0].shortVarDecl((x$12 = _r$10, new x$12.constructor.elem(x$12)), s$7.Lhs, s$7.Rhs); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 90; continue; + /* } else { */ case 89: + $r = check[0].assignVars(s$7.Lhs, s$7.Rhs); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 90: + $s = 83; continue; + /* } else { */ case 82: + /* */ if (!((s$7.Lhs.$length === 1)) || !((s$7.Rhs.$length === 1))) { $s = 94; continue; } + /* */ $s = 95; continue; + /* if (!((s$7.Lhs.$length === 1)) || !((s$7.Rhs.$length === 1))) { */ case 94: + _r$11 = inNode(s$7, s$7.TokPos); /* */ $s = 96; case 96: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $r = check[0].errorf((x$13 = _r$11, new x$13.constructor.elem(x$13)), 20, "assignment operation %s requires single-valued expressions", new sliceType$5([new token.Token(s$7.Tok)])); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 98; case 98: return; + /* } */ case 95: + op$1 = assignOp(s$7.Tok); + /* */ if (op$1 === 0) { $s = 99; continue; } + /* */ $s = 100; continue; + /* if (op$1 === 0) { */ case 99: + $r = check[0].invalidAST(new atPos(((s$7.TokPos >> 0))), "unknown assignment operation %s", new sliceType$5([new token.Token(s$7.Tok)])); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 102; case 102: return; + /* } */ case 100: + x$2[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].binary(x$2[0], $ifaceNil, (x$14 = s$7.Lhs, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0])), (x$15 = s$7.Rhs, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])), op$1, s$7.TokPos); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x$2[0].mode === 0) { $s = 104; continue; } + /* */ $s = 105; continue; + /* if (x$2[0].mode === 0) { */ case 104: + $s = 106; case 106: return; + /* } */ case 105: + _r$12 = check[0].assignVar((x$16 = s$7.Lhs, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0])), x$2[0]); /* */ $s = 107; case 107: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + /* } */ case 83: + case 80: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$69, true)[1]) { */ case 10: + s$8 = _ref.$val; + $r = check[0].suspendedCall("go", s$8.Call); /* */ $s = 108; case 108: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$70, true)[1]) { */ case 11: + s$9 = _ref.$val; + $r = check[0].suspendedCall("defer", s$9.Call); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$71, true)[1]) { */ case 12: + s$10 = _ref.$val; + res = check[0].environment.sig.results; + /* */ if ((s$10.Results.$length === 0) && res.Len() > 0 && !((x$17 = res.vars, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])).object.name === "")) { $s = 110; continue; } + /* */ $s = 111; continue; + /* if ((s$10.Results.$length === 0) && res.Len() > 0 && !((x$17 = res.vars, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])).object.name === "")) { */ case 110: + _ref$1 = res.vars; + _i = 0; + /* while (true) { */ case 113: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 114; continue; } + obj = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$13 = check[0].environment.lookup(obj.object.name); /* */ $s = 115; case 115: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + alt = _r$13; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil)) && !($interfaceIsEqual(alt, obj))) { $s = 116; continue; } + /* */ $s = 117; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil)) && !($interfaceIsEqual(alt, obj))) { */ case 116: + $r = check[0].errorf(s$10, 104, "result parameter %s not in scope at return", new sliceType$5([new $String(obj.object.name)])); /* */ $s = 118; case 118: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].errorf(alt, 104, "\tinner declaration of %s", new sliceType$5([obj])); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 117: + _i++; + $s = 113; continue; + case 114: + $s = 112; continue; + /* } else { */ case 111: + lhs = sliceType$10.nil; + if (res.Len() > 0) { + lhs = res.vars; + } + $r = check[0].initVars(lhs, s$10.Results, s$10); /* */ $s = 120; case 120: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 112: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$72, true)[1]) { */ case 13: + s$11 = _ref.$val; + /* */ if (!(s$11.Label === ptrType$30.nil)) { $s = 121; continue; } + /* */ $s = 122; continue; + /* if (!(s$11.Label === ptrType$30.nil)) { */ case 121: + check[0].environment.hasLabel = true; + $s = 123; case 123: return; + /* } */ case 122: + _4 = s$11.Tok; + /* */ if (_4 === (61)) { $s = 125; continue; } + /* */ if (_4 === (65)) { $s = 126; continue; } + /* */ if (_4 === (69)) { $s = 127; continue; } + /* */ $s = 128; continue; + /* if (_4 === (61)) { */ case 125: + /* */ if (((ctxt & 1) >>> 0) === 0) { $s = 130; continue; } + /* */ $s = 131; continue; + /* if (((ctxt & 1) >>> 0) === 0) { */ case 130: + $r = check[0].error(s$11, 110, "break not in for, switch, or select statement"); /* */ $s = 132; case 132: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 131: + $s = 129; continue; + /* } else if (_4 === (65)) { */ case 126: + /* */ if (((ctxt & 2) >>> 0) === 0) { $s = 133; continue; } + /* */ $s = 134; continue; + /* if (((ctxt & 2) >>> 0) === 0) { */ case 133: + $r = check[0].error(s$11, 111, "continue not in for statement"); /* */ $s = 135; case 135: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 134: + $s = 129; continue; + /* } else if (_4 === (69)) { */ case 127: + /* */ if (((ctxt & 4) >>> 0) === 0) { $s = 136; continue; } + /* */ $s = 137; continue; + /* if (((ctxt & 4) >>> 0) === 0) { */ case 136: + msg$1 = ""; + if (!((((ctxt & 8) >>> 0) === 0))) { + msg$1 = "cannot fallthrough final case in switch"; + } else if (!((((ctxt & 16) >>> 0) === 0))) { + msg$1 = "cannot fallthrough in type switch"; + } else { + msg$1 = "fallthrough statement out of place"; + } + $r = check[0].error(s$11, 112, msg$1); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 137: + $s = 129; continue; + /* } else { */ case 128: + $r = check[0].invalidAST(s$11, "branch statement: %s", new sliceType$5([new token.Token(s$11.Tok)])); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 129: + case 124: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$73, true)[1]) { */ case 14: + s$12 = _ref.$val; + $r = check[0].openScope(s$12, "block"); /* */ $s = 140; case 140: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + $r = check[0].stmtList(inner, s$12.List); /* */ $s = 141; case 141: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 15: + s$13 = _ref.$val; + $r = check[0].openScope(s$13, "if"); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + $r = check[0].simpleStmt(s$13.Init); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x$3[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].expr(x$3[0], s$13.Cond); /* */ $s = 144; case 144: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(!((x$3[0].mode === 0)))) { _v = false; $s = 147; continue s; } + _r$14 = allBoolean(x$3[0].typ); /* */ $s = 148; case 148: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _v = !_r$14; case 147: + /* */ if (_v) { $s = 145; continue; } + /* */ $s = 146; continue; + /* if (_v) { */ case 145: + $r = check[0].error(s$13.Cond, 105, "non-boolean condition in if statement"); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 146: + $r = check[0].stmt(inner, s$13.Body); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$2 = s$13.Else; + /* */ if (_ref$2 === $ifaceNil || $assertType(_ref$2, ptrType$62, true)[1]) { $s = 151; continue; } + /* */ if ($assertType(_ref$2, ptrType$74, true)[1] || $assertType(_ref$2, ptrType$73, true)[1]) { $s = 152; continue; } + /* */ $s = 153; continue; + /* if (_ref$2 === $ifaceNil || $assertType(_ref$2, ptrType$62, true)[1]) { */ case 151: + $s = 154; continue; + /* } else if ($assertType(_ref$2, ptrType$74, true)[1] || $assertType(_ref$2, ptrType$73, true)[1]) { */ case 152: + $r = check[0].stmt(inner, s$13.Else); /* */ $s = 155; case 155: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 154; continue; + /* } else { */ case 153: + $r = check[0].invalidAST(s$13.Else, "invalid else branch in if statement", sliceType$5.nil); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 154: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 16: + s$14 = _ref.$val; + inner = (inner | (1)) >>> 0; + $r = check[0].openScope(s$14, "switch"); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + $r = check[0].simpleStmt(s$14.Init); /* */ $s = 158; case 158: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x$4[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + /* */ if (!($interfaceIsEqual(s$14.Tag, $ifaceNil))) { $s = 159; continue; } + /* */ $s = 160; continue; + /* if (!($interfaceIsEqual(s$14.Tag, $ifaceNil))) { */ case 159: + $r = check[0].expr(x$4[0], s$14.Tag); /* */ $s = 162; case 162: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].assignment(x$4[0], $ifaceNil, "switch expression"); /* */ $s = 163; case 163: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(!((x$4[0].mode === 0)))) { _v$2 = false; $s = 167; continue s; } + _r$15 = Comparable(x$4[0].typ); /* */ $s = 168; case 168: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _v$2 = !_r$15; case 167: + if (!(_v$2)) { _v$1 = false; $s = 166; continue s; } + _r$16 = hasNil(x$4[0].typ); /* */ $s = 169; case 169: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _v$1 = !_r$16; case 166: + /* */ if (_v$1) { $s = 164; continue; } + /* */ $s = 165; continue; + /* if (_v$1) { */ case 164: + $r = check[0].errorf(x$4[0], 117, "cannot switch on %s (%s is not comparable)", new sliceType$5([x$4[0], x$4[0].typ])); /* */ $s = 170; case 170: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x$4[0].mode = 0; + /* } */ case 165: + $s = 161; continue; + /* } else { */ case 160: + x$4[0].mode = 4; + x$4[0].typ = (1 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 1]); + x$4[0].val = constant.MakeBool(true); + x$4[0].expr = new ast.Ident.ptr(s$14.Body.Lbrace, "true", ptrType$80.nil); + /* } */ case 161: + $r = check[0].multipleDefaults(s$14.Body.List); /* */ $s = 171; case 171: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + seen = new $global.Map(); + _ref$3 = s$14.Body.List; + _i$1 = 0; + /* while (true) { */ case 172: + /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 173; continue; } + i = _i$1; + c = ((_i$1 < 0 || _i$1 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$1]); + _tuple$1 = $assertType(c, ptrType$59, true); + clause = _tuple$1[0]; + /* */ if (clause === ptrType$59.nil) { $s = 174; continue; } + /* */ $s = 175; continue; + /* if (clause === ptrType$59.nil) { */ case 174: + $r = check[0].invalidAST(c, "incorrect expression switch case", sliceType$5.nil); /* */ $s = 176; case 176: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* continue; */ $s = 172; continue; + /* } */ case 175: + $r = check[0].caseValues(x$4[0], clause.List, seen); /* */ $s = 177; case 177: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].openScope(clause, "case"); /* */ $s = 178; case 178: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + inner$1 = inner; + if ((i + 1 >> 0) < s$14.Body.List.$length) { + inner$1 = (inner$1 | (4)) >>> 0; + } else { + inner$1 = (inner$1 | (8)) >>> 0; + } + $r = check[0].stmtList(inner$1, clause.Body); /* */ $s = 179; case 179: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].closeScope(); + _i$1++; + $s = 172; continue; + case 173: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 17: + s$15 = _ref.$val; + inner = (inner | (17)) >>> 0; + $r = check[0].openScope(s$15, "type switch"); /* */ $s = 180; case 180: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + $r = check[0].simpleStmt(s$15.Init); /* */ $s = 181; case 181: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhs$1 = ptrType$30.nil; + rhs = $ifaceNil; + _ref$4 = s$15.Assign; + /* */ if ($assertType(_ref$4, ptrType$65, true)[1]) { $s = 182; continue; } + /* */ if ($assertType(_ref$4, ptrType$68, true)[1]) { $s = 183; continue; } + /* */ $s = 184; continue; + /* if ($assertType(_ref$4, ptrType$65, true)[1]) { */ case 182: + guard = _ref$4.$val; + rhs = guard.X; + $s = 185; continue; + /* } else if ($assertType(_ref$4, ptrType$68, true)[1]) { */ case 183: + guard$1 = _ref$4.$val; + /* */ if (!((guard$1.Lhs.$length === 1)) || !((guard$1.Tok === 47)) || !((guard$1.Rhs.$length === 1))) { $s = 186; continue; } + /* */ $s = 187; continue; + /* if (!((guard$1.Lhs.$length === 1)) || !((guard$1.Tok === 47)) || !((guard$1.Rhs.$length === 1))) { */ case 186: + $r = check[0].invalidAST(s$15, "incorrect form of type switch guard", sliceType$5.nil); /* */ $s = 188; case 188: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 189; case 189: return; + /* } */ case 187: + _tuple$2 = $assertType((x$18 = guard$1.Lhs, (0 >= x$18.$length ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + 0])), ptrType$30, true); + lhs$1 = _tuple$2[0]; + /* */ if (lhs$1 === ptrType$30.nil) { $s = 190; continue; } + /* */ $s = 191; continue; + /* if (lhs$1 === ptrType$30.nil) { */ case 190: + $r = check[0].invalidAST(s$15, "incorrect form of type switch guard", sliceType$5.nil); /* */ $s = 192; case 192: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 193; case 193: return; + /* } */ case 191: + /* */ if (lhs$1.Name === "_") { $s = 194; continue; } + /* */ $s = 195; continue; + /* if (lhs$1.Name === "_") { */ case 194: + $r = check[0].softErrorf(lhs$1, 19, "no new variable on left side of :=", sliceType$5.nil); /* */ $s = 197; case 197: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhs$1 = ptrType$30.nil; + $s = 196; continue; + /* } else { */ case 195: + $r = check[0].recordDef(lhs$1, $ifaceNil); /* */ $s = 198; case 198: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 196: + rhs = (x$19 = guard$1.Rhs, (0 >= x$19.$length ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + 0])); + $s = 185; continue; + /* } else { */ case 184: + guard$2 = _ref$4; + $r = check[0].invalidAST(s$15, "incorrect form of type switch guard", sliceType$5.nil); /* */ $s = 199; case 199: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 200; case 200: return; + /* } */ case 185: + _tuple$3 = $assertType(rhs, ptrType$81, true); + expr = _tuple$3[0]; + /* */ if (expr === ptrType$81.nil || !($interfaceIsEqual(expr.Type, $ifaceNil))) { $s = 201; continue; } + /* */ $s = 202; continue; + /* if (expr === ptrType$81.nil || !($interfaceIsEqual(expr.Type, $ifaceNil))) { */ case 201: + $r = check[0].invalidAST(s$15, "incorrect form of type switch guard", sliceType$5.nil); /* */ $s = 203; case 203: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 204; case 204: return; + /* } */ case 202: + x$5[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].expr(x$5[0], expr.X); /* */ $s = 205; case 205: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x$5[0].mode === 0) { $s = 206; continue; } + /* */ $s = 207; continue; + /* if (x$5[0].mode === 0) { */ case 206: + $s = 208; case 208: return; + /* } */ case 207: + sx = ptrType$61.nil; + /* */ if (isTypeParam(x$5[0].typ)) { $s = 209; continue; } + /* */ $s = 210; continue; + /* if (isTypeParam(x$5[0].typ)) { */ case 209: + $r = check[0].errorf(x$5[0], 116, "cannot use type switch on type parameter value %s", new sliceType$5([x$5[0]])); /* */ $s = 212; case 212: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 211; continue; + /* } else { */ case 210: + _r$17 = under(x$5[0].typ); /* */ $s = 213; case 213: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _tuple$4 = $assertType(_r$17, ptrType$13, true); + ok = _tuple$4[1]; + /* */ if (ok) { $s = 214; continue; } + /* */ $s = 215; continue; + /* if (ok) { */ case 214: + sx = x$5[0]; + $s = 216; continue; + /* } else { */ case 215: + $r = check[0].errorf(x$5[0], 116, "%s is not an interface", new sliceType$5([x$5[0]])); /* */ $s = 217; case 217: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 216: + /* } */ case 211: + $r = check[0].multipleDefaults(s$15.Body.List); /* */ $s = 218; case 218: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhsVars = sliceType$10.nil; + seen$1 = new $global.Map(); + _ref$5 = s$15.Body.List; + _i$2 = 0; + /* while (true) { */ case 219: + /* if (!(_i$2 < _ref$5.$length)) { break; } */ if(!(_i$2 < _ref$5.$length)) { $s = 220; continue; } + s$20 = ((_i$2 < 0 || _i$2 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$2]); + _tuple$5 = $assertType(s$20, ptrType$59, true); + clause$1 = _tuple$5[0]; + /* */ if (clause$1 === ptrType$59.nil) { $s = 221; continue; } + /* */ $s = 222; continue; + /* if (clause$1 === ptrType$59.nil) { */ case 221: + $r = check[0].invalidAST(s$20, "incorrect type switch case", sliceType$5.nil); /* */ $s = 223; case 223: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + /* continue; */ $s = 219; continue; + /* } */ case 222: + _r$18 = check[0].caseTypes(sx, clause$1.List, seen$1); /* */ $s = 224; case 224: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + T = _r$18; + $r = check[0].openScope(clause$1, "case"); /* */ $s = 225; case 225: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(lhs$1 === ptrType$30.nil)) { $s = 226; continue; } + /* */ $s = 227; continue; + /* if (!(lhs$1 === ptrType$30.nil)) { */ case 226: + if (!((clause$1.List.$length === 1)) || $interfaceIsEqual(T, $ifaceNil)) { + T = x$5[0].typ; + } + obj$1 = NewVar(lhs$1.Pos(), check[0].pkg, lhs$1.Name, T); + scopePos = clause$1.Pos() + 7 >> 0; + n = clause$1.List.$length; + /* */ if (n > 0) { $s = 228; continue; } + /* */ $s = 229; continue; + /* if (n > 0) { */ case 228: + _r$19 = (x$20 = clause$1.List, x$21 = n - 1 >> 0, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21])).End(); /* */ $s = 230; case 230: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + scopePos = _r$19; + /* } */ case 229: + $r = check[0].declare(check[0].environment.scope, ptrType$30.nil, obj$1, scopePos); /* */ $s = 231; case 231: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].recordImplicit(clause$1, obj$1); /* */ $s = 232; case 232: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhsVars = $append(lhsVars, obj$1); + /* } */ case 227: + $r = check[0].stmtList(inner, clause$1.Body); /* */ $s = 233; case 233: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].closeScope(); + _i$2++; + $s = 219; continue; + case 220: + /* */ if (!(lhs$1 === ptrType$30.nil)) { $s = 234; continue; } + /* */ $s = 235; continue; + /* if (!(lhs$1 === ptrType$30.nil)) { */ case 234: + used = false; + _ref$6 = lhsVars; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$6.$length)) { break; } + v = ((_i$3 < 0 || _i$3 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$3]); + if (v.used) { + used = true; + } + v.used = true; + _i$3++; + } + /* */ if (!used) { $s = 236; continue; } + /* */ $s = 237; continue; + /* if (!used) { */ case 236: + $r = check[0].softErrorf(lhs$1, 101, "%s declared but not used", new sliceType$5([new $String(lhs$1.Name)])); /* */ $s = 238; case 238: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 237: + /* } */ case 235: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 18: + s$16 = _ref.$val; + inner = (inner | (1)) >>> 0; + $r = check[0].multipleDefaults(s$16.Body.List); /* */ $s = 239; case 239: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$7 = s$16.Body.List; + _i$4 = 0; + /* while (true) { */ case 240: + /* if (!(_i$4 < _ref$7.$length)) { break; } */ if(!(_i$4 < _ref$7.$length)) { $s = 241; continue; } + s$21 = ((_i$4 < 0 || _i$4 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$4]); + _tuple$6 = $assertType(s$21, ptrType$60, true); + clause$2 = _tuple$6[0]; + if (clause$2 === ptrType$60.nil) { + _i$4++; + /* continue; */ $s = 240; continue; + } + valid = false; + rhs$1 = $ifaceNil; + _ref$8 = clause$2.Comm; + if (_ref$8 === $ifaceNil || $assertType(_ref$8, ptrType$66, true)[1]) { + s$22 = _ref$8; + valid = true; + } else if ($assertType(_ref$8, ptrType$68, true)[1]) { + s$23 = _ref$8.$val; + if (s$23.Rhs.$length === 1) { + rhs$1 = (x$22 = s$23.Rhs, (0 >= x$22.$length ? ($throwRuntimeError("index out of range"), undefined) : x$22.$array[x$22.$offset + 0])); + } + } else if ($assertType(_ref$8, ptrType$65, true)[1]) { + s$24 = _ref$8.$val; + rhs$1 = s$24.X; + } + if (!($interfaceIsEqual(rhs$1, $ifaceNil))) { + _tuple$7 = $assertType(unparen(rhs$1), ptrType$20, true); + x$23 = _tuple$7[0]; + if (!(x$23 === ptrType$20.nil) && (x$23.Op === 36)) { + valid = true; + } + } + /* */ if (!valid) { $s = 242; continue; } + /* */ $s = 243; continue; + /* if (!valid) { */ case 242: + $r = check[0].error(clause$2.Comm, 118, "select case must be send or receive (possibly with assignment)"); /* */ $s = 244; case 244: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$4++; + /* continue; */ $s = 240; continue; + /* } */ case 243: + $r = check[0].openScope(s$21, "case"); /* */ $s = 245; case 245: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(clause$2.Comm, $ifaceNil))) { $s = 246; continue; } + /* */ $s = 247; continue; + /* if (!($interfaceIsEqual(clause$2.Comm, $ifaceNil))) { */ case 246: + $r = check[0].stmt(inner, clause$2.Comm); /* */ $s = 248; case 248: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 247: + $r = check[0].stmtList(inner, clause$2.Body); /* */ $s = 249; case 249: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].closeScope(); + _i$4++; + $s = 240; continue; + case 241: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 19: + s$17 = _ref.$val; + inner = (inner | (3)) >>> 0; + $r = check[0].openScope(s$17, "for"); /* */ $s = 250; case 250: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + $r = check[0].simpleStmt(s$17.Init); /* */ $s = 251; case 251: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(s$17.Cond, $ifaceNil))) { $s = 252; continue; } + /* */ $s = 253; continue; + /* if (!($interfaceIsEqual(s$17.Cond, $ifaceNil))) { */ case 252: + x$6[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].expr(x$6[0], s$17.Cond); /* */ $s = 254; case 254: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(!((x$6[0].mode === 0)))) { _v$3 = false; $s = 257; continue s; } + _r$20 = allBoolean(x$6[0].typ); /* */ $s = 258; case 258: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _v$3 = !_r$20; case 257: + /* */ if (_v$3) { $s = 255; continue; } + /* */ $s = 256; continue; + /* if (_v$3) { */ case 255: + $r = check[0].error(s$17.Cond, 105, "non-boolean condition in for statement"); /* */ $s = 259; case 259: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 256: + /* } */ case 253: + $r = check[0].simpleStmt(s$17.Post); /* */ $s = 260; case 260: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple$8 = $assertType(s$17.Post, ptrType$68, true); + s$25 = _tuple$8[0]; + /* */ if (!(s$25 === ptrType$68.nil) && (s$25.Tok === 47)) { $s = 261; continue; } + /* */ $s = 262; continue; + /* if (!(s$25 === ptrType$68.nil) && (s$25.Tok === 47)) { */ case 261: + $r = check[0].softErrorf(s$25, 106, "cannot declare in post statement", sliceType$5.nil); /* */ $s = 263; case 263: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].use(s$25.Lhs); /* */ $s = 264; case 264: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 262: + $r = check[0].stmt(inner, s$17.Body); /* */ $s = 265; case 265: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$79, true)[1]) { */ case 20: + s$18 = _ref.$val; + inner = (inner | (3)) >>> 0; + x$7[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].expr(x$7[0], s$18.X); /* */ $s = 266; case 266: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$2 = $ifaceNil; + _tmp$3 = $ifaceNil; + key = _tmp$2; + val$1 = _tmp$3; + /* */ if (!((x$7[0].mode === 0))) { $s = 267; continue; } + /* */ $s = 268; continue; + /* if (!((x$7[0].mode === 0))) { */ case 267: + cause = ""; + _r$21 = coreType(x$7[0].typ); /* */ $s = 269; case 269: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + u$1 = _r$21; + _ref$9 = u$1; + /* */ if (_ref$9 === $ifaceNil) { $s = 270; continue; } + /* */ if ($assertType(_ref$9, ptrType$29, true)[1]) { $s = 271; continue; } + /* */ $s = 272; continue; + /* if (_ref$9 === $ifaceNil) { */ case 270: + t = _ref$9; + _r$22 = check[0].sprintf("%s has no core type", new sliceType$5([x$7[0].typ])); /* */ $s = 273; case 273: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + cause = _r$22; + $s = 272; continue; + /* } else if ($assertType(_ref$9, ptrType$29, true)[1]) { */ case 271: + t$1 = _ref$9.$val; + /* */ if (!($interfaceIsEqual(s$18.Value, $ifaceNil))) { $s = 274; continue; } + /* */ $s = 275; continue; + /* if (!($interfaceIsEqual(s$18.Value, $ifaceNil))) { */ case 274: + $r = check[0].softErrorf(s$18.Value, 108, "range over %s permits only one iteration variable", new sliceType$5([x$7[0]])); /* */ $s = 276; case 276: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 275: + if (t$1.dir === 1) { + cause = "receive from send-only channel"; + } + /* } */ case 272: + _r$23 = rangeKeyVal(u$1); /* */ $s = 277; case 277: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _tuple$9 = _r$23; + key = _tuple$9[0]; + val$1 = _tuple$9[1]; + /* */ if ($interfaceIsEqual(key, $ifaceNil) || !(cause === "")) { $s = 278; continue; } + /* */ $s = 279; continue; + /* if ($interfaceIsEqual(key, $ifaceNil) || !(cause === "")) { */ case 278: + /* */ if (cause === "") { $s = 280; continue; } + /* */ $s = 281; continue; + /* if (cause === "") { */ case 280: + $r = check[0].softErrorf(x$7[0], 109, "cannot range over %s", new sliceType$5([x$7[0]])); /* */ $s = 283; case 283: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 282; continue; + /* } else { */ case 281: + $r = check[0].softErrorf(x$7[0], 109, "cannot range over %s (%s)", new sliceType$5([x$7[0], new $String(cause)])); /* */ $s = 284; case 284: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 282: + /* } */ case 279: + /* } */ case 268: + $r = check[0].openScope(s$18, "range"); /* */ $s = 285; case 285: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + lhs$2 = $toNativeArray($kindInterface, [s$18.Key, s$18.Value]); + rhs$2 = $toNativeArray($kindInterface, [key, val$1]); + /* */ if (s$18.Tok === 47) { $s = 286; continue; } + /* */ $s = 287; continue; + /* if (s$18.Tok === 47) { */ case 286: + vars = sliceType$10.nil; + _ref$10 = lhs$2; + _i$5 = 0; + /* while (true) { */ case 289: + /* if (!(_i$5 < 2)) { break; } */ if(!(_i$5 < 2)) { $s = 290; continue; } + i$1 = _i$5; + lhs$3 = ((_i$5 < 0 || _i$5 >= _ref$10.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$10[_i$5]); + if ($interfaceIsEqual(lhs$3, $ifaceNil)) { + _i$5++; + /* continue; */ $s = 289; continue; + } + obj$2 = ptrType$16.nil; + _tuple$10 = $assertType(lhs$3, ptrType$30, true); + ident$1 = _tuple$10[0]; + /* */ if (!(ident$1 === ptrType$30.nil)) { $s = 291; continue; } + /* */ $s = 292; continue; + /* if (!(ident$1 === ptrType$30.nil)) { */ case 291: + name = ident$1.Name; + obj$2 = NewVar(ident$1.Pos(), check[0].pkg, name, $ifaceNil); + $r = check[0].recordDef(ident$1, obj$2); /* */ $s = 294; case 294: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(name === "_")) { + vars = $append(vars, obj$2); + } + $s = 293; continue; + /* } else { */ case 292: + $r = check[0].invalidAST(lhs$3, "cannot declare %s", new sliceType$5([lhs$3])); /* */ $s = 295; case 295: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$24 = lhs$3.Pos(); /* */ $s = 296; case 296: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = NewVar(_r$24, check[0].pkg, "_", $ifaceNil); /* */ $s = 297; case 297: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + obj$2 = _r$25; + /* } */ case 293: + typ$3 = ((i$1 < 0 || i$1 >= rhs$2.length) ? ($throwRuntimeError("index out of range"), undefined) : rhs$2[i$1]); + /* */ if (!($interfaceIsEqual(typ$3, $ifaceNil))) { $s = 298; continue; } + /* */ $s = 299; continue; + /* if (!($interfaceIsEqual(typ$3, $ifaceNil))) { */ case 298: + x$7[0].mode = 7; + x$7[0].expr = lhs$3; + x$7[0].typ = typ$3; + _r$26 = check[0].initVar(obj$2, x$7[0], "range clause"); /* */ $s = 301; case 301: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$26; + $s = 300; continue; + /* } else { */ case 299: + obj$2.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + obj$2.used = true; + /* } */ case 300: + _i$5++; + $s = 289; continue; + case 290: + /* */ if (vars.$length > 0) { $s = 302; continue; } + /* */ $s = 303; continue; + /* if (vars.$length > 0) { */ case 302: + scopePos$1 = s$18.Body.Pos(); + _ref$11 = vars; + _i$6 = 0; + /* while (true) { */ case 305: + /* if (!(_i$6 < _ref$11.$length)) { break; } */ if(!(_i$6 < _ref$11.$length)) { $s = 306; continue; } + obj$3 = ((_i$6 < 0 || _i$6 >= _ref$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$11.$array[_ref$11.$offset + _i$6]); + $r = check[0].declare(check[0].environment.scope, ptrType$30.nil, obj$3, scopePos$1); /* */ $s = 307; case 307: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$6++; + $s = 305; continue; + case 306: + $s = 304; continue; + /* } else { */ case 303: + _r$27 = inNode(s$18, s$18.TokPos); /* */ $s = 308; case 308: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + $r = check[0].error((x$24 = _r$27, new x$24.constructor.elem(x$24)), 19, "no new variables on left side of :="); /* */ $s = 309; case 309: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 304: + $s = 288; continue; + /* } else { */ case 287: + _ref$12 = lhs$2; + _i$7 = 0; + /* while (true) { */ case 310: + /* if (!(_i$7 < 2)) { break; } */ if(!(_i$7 < 2)) { $s = 311; continue; } + i$2 = _i$7; + lhs$4 = ((_i$7 < 0 || _i$7 >= _ref$12.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$12[_i$7]); + if ($interfaceIsEqual(lhs$4, $ifaceNil)) { + _i$7++; + /* continue; */ $s = 310; continue; + } + typ$4 = ((i$2 < 0 || i$2 >= rhs$2.length) ? ($throwRuntimeError("index out of range"), undefined) : rhs$2[i$2]); + /* */ if (!($interfaceIsEqual(typ$4, $ifaceNil))) { $s = 312; continue; } + /* */ $s = 313; continue; + /* if (!($interfaceIsEqual(typ$4, $ifaceNil))) { */ case 312: + x$7[0].mode = 7; + x$7[0].expr = lhs$4; + x$7[0].typ = typ$4; + _r$28 = check[0].assignVar(lhs$4, x$7[0]); /* */ $s = 314; case 314: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$28; + /* } */ case 313: + _i$7++; + $s = 310; continue; + case 311: + /* } */ case 288: + $r = check[0].stmt(inner, s$18.Body); /* */ $s = 315; case 315: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else { */ case 21: + s$19 = _ref; + $r = check[0].invalidAST(s$19, "invalid statement", sliceType$5.nil); /* */ $s = 316; case 316: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 22: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: stmt, $c: true, $r, T, Y, _1, _2, _3, _4, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, alt, c, cause, ch, check, clause, clause$1, clause$2, code, ctxt, expr, guard, guard$1, guard$2, i, i$1, i$2, ident$1, inner, inner$1, key, kind, lhs, lhs$1, lhs$2, lhs$3, lhs$4, lhsVars, msg, msg$1, n, name, obj, obj$1, obj$2, obj$3, ok, op, op$1, res, rhs, rhs$1, rhs$2, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$3, s$4, s$5, s$6, s$7, s$8, s$9, scopePos, scopePos$1, seen, seen$1, sx, t, t$1, typ$3, typ$4, u, u$1, uch, used, v, val, val$1, valid, vars, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred};return $f; } } + }; + rangeKeyVal = function rangeKeyVal$1(typ$3) { + var {_r$1, _r$2, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, key, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, val, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + key = $ifaceNil; + val = $ifaceNil; + _r$1 = arrayPtrDeref(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: + typ$4 = _ref.$val; + _r$2 = isString(typ$4); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_r$2) { */ case 8: + _tmp = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); + _tmp$1 = universeRune; + key = _tmp; + val = _tmp$1; + $s = -1; return [key, val]; + /* } */ case 9: + $s = 7; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: + typ$5 = _ref.$val; + _tmp$2 = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); + _tmp$3 = typ$5.elem; + key = _tmp$2; + val = _tmp$3; + $s = -1; return [key, val]; + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 4: + typ$6 = _ref.$val; + _tmp$4 = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); + _tmp$5 = typ$6.elem; + key = _tmp$4; + val = _tmp$5; + $s = -1; return [key, val]; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 5: + typ$7 = _ref.$val; + _tmp$6 = typ$7.key; + _tmp$7 = typ$7.elem; + key = _tmp$6; + val = _tmp$7; + $s = -1; return [key, val]; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 6: + typ$8 = _ref.$val; + _tmp$8 = typ$8.elem; + _tmp$9 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + key = _tmp$8; + val = _tmp$9; + $s = -1; return [key, val]; + /* } */ case 7: + $s = -1; return [key, val]; + /* */ } return; } var $f = {$blk: rangeKeyVal$1, $c: true, $r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, key, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, val, $s};return $f; + }; + NewSlice = function NewSlice$1(elem) { + var elem; + return new Slice.ptr(elem); + }; + $pkg.NewSlice = NewSlice; + $ptrType(Slice).prototype.Elem = function Elem() { + var s; + s = this; + return s.elem; + }; + $ptrType(Slice).prototype.Underlying = function Underlying$4() { + var t; + t = this; + return t; + }; + $ptrType(Slice).prototype.String = function String$9() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$9, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + $ptrType(StdSizes).prototype.Alignof = function Alignof(T) { + var {$24r, T, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, a, a$1, f, max, s, t, t$1, t$2, t$3, t$4, x, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r$1 = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: + t = _ref.$val; + _r$2 = s.Alignof(t.elem); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 9; case 9: return $24r; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 3: + t$1 = _ref.$val; + if ((t$1.fields.$length === 0) && isSyncAtomicAlign64(T)) { + $s = -1; return new $Int64(0, 8); + } + max = new $Int64(0, 1); + _ref$1 = t$1.fields; + _i = 0; + /* while (true) { */ case 10: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 11; continue; } + f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$3 = s.Alignof(f.object.typ); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + a = _r$3; + if ((a.$high > max.$high || (a.$high === max.$high && a.$low > max.$low))) { + max = a; + } + _i++; + $s = 10; continue; + case 11: + $s = -1; return max; + /* } else if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { */ case 4: + t$2 = _ref; + $r = assert(!isTypeParam(T)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return s.WordSize; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 5: + t$3 = _ref.$val; + if (!(((t$3.Info() & 32) === 0))) { + $s = -1; return s.WordSize; + } + $s = 7; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { */ case 6: + t$4 = _ref; + unreachable(); + /* } */ case 7: + _r$4 = s.Sizeof(T); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + a$1 = _r$4; + if ((a$1.$high < 0 || (a$1.$high === 0 && a$1.$low < 1))) { + $s = -1; return new $Int64(0, 1); + } + _r$5 = isComplex(T); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (_r$5) { */ case 15: + a$1 = $div64(a$1, (new $Int64(0, 2)), false); + /* } */ case 16: + if ((x = s.MaxAlign, (a$1.$high > x.$high || (a$1.$high === x.$high && a$1.$low > x.$low)))) { + $s = -1; return s.MaxAlign; + } + $s = -1; return a$1; + /* */ } return; } var $f = {$blk: Alignof, $c: true, $r, $24r, T, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, a, a$1, f, max, s, t, t$1, t$2, t$3, t$4, x, $s};return $f; + }; + isSyncAtomicAlign64 = function isSyncAtomicAlign64$1(T) { + var T, _tuple, named, obj, ok; + _tuple = $assertType(T, ptrType$9, true); + named = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + return false; + } + obj = named.Obj(); + return obj.object.Name() === "align64" && !(obj.object.Pkg() === ptrType$1.nil) && (obj.object.Pkg().Path() === "sync/atomic" || obj.object.Pkg().Path() === "runtime/internal/atomic"); + }; + $ptrType(StdSizes).prototype.Offsetsof = function Offsetsof(fields) { + var {_i, _r$1, _r$2, _ref, a, f, fields, i, o, offsets, s, x, $s, $r, $c} = $restore(this, {fields}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + offsets = $makeSlice(sliceType$19, fields.$length); + o = new $Int64(0, 0); + _ref = fields; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = s.Alignof(f.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + a = _r$1; + o = align(o, a); + ((i < 0 || i >= offsets.$length) ? ($throwRuntimeError("index out of range"), undefined) : offsets.$array[offsets.$offset + i] = o); + _r$2 = s.Sizeof(f.object.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + o = (x = _r$2, new $Int64(o.$high + x.$high, o.$low + x.$low)); + _i++; + $s = 1; continue; + case 2: + $s = -1; return offsets; + /* */ } return; } var $f = {$blk: Offsetsof, $c: true, $r, _i, _r$1, _r$2, _ref, a, f, fields, i, o, offsets, s, x, $s};return $f; + }; + $ptrType(StdSizes).prototype.Sizeof = function Sizeof(T) { + var {$24r, T, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, a, k, n, n$1, offsets, s, s$1, t, t$1, t$2, t$3, t$4, t$5, x, x$1, x$2, x$3, x$4, x$5, z, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r$1 = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: + t = _ref.$val; + $r = assert(isTyped(T)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + k = t.kind; + if (((k >> 0)) < 17) { + s$1 = ((k < 0 || k >= basicSizes.length) ? ($throwRuntimeError("index out of range"), undefined) : basicSizes[k]); + if (s$1 > 0) { + $s = -1; return (new $Int64(0, s$1)); + } + } + if (k === 17) { + $s = -1; return $mul64(s.WordSize, new $Int64(0, 2)); + } + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: + t$1 = _ref.$val; + n = t$1.len; + if ((n.$high < 0 || (n.$high === 0 && n.$low <= 0))) { + $s = -1; return new $Int64(0, 0); + } + _r$2 = s.Alignof(t$1.elem); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + a = _r$2; + _r$3 = s.Sizeof(t$1.elem); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + z = _r$3; + $s = -1; return (x = $mul64(align(z, a), (new $Int64(n.$high - 0, n.$low - 1))), new $Int64(x.$high + z.$high, x.$low + z.$low)); + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 4: + t$2 = _ref.$val; + $s = -1; return $mul64(s.WordSize, new $Int64(0, 3)); + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 5: + t$3 = _ref.$val; + n$1 = t$3.NumFields(); + if (n$1 === 0) { + $s = -1; return new $Int64(0, 0); + } + _r$4 = s.Offsetsof(t$3.fields); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + offsets = _r$4; + _r$5 = s.Sizeof((x$4 = t$3.fields, x$5 = n$1 - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).object.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = (x$1 = (x$2 = n$1 - 1 >> 0, ((x$2 < 0 || x$2 >= offsets.$length) ? ($throwRuntimeError("index out of range"), undefined) : offsets.$array[offsets.$offset + x$2])), x$3 = _r$5, new $Int64(x$1.$high + x$3.$high, x$1.$low + x$3.$low)); + $s = 14; case 14: return $24r; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 6: + t$4 = _ref.$val; + $r = assert(!isTypeParam(T)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $mul64(s.WordSize, new $Int64(0, 2)); + /* } else if ($assertType(_ref, ptrType$14, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { */ case 7: + t$5 = _ref; + unreachable(); + /* } */ case 8: + $s = -1; return s.WordSize; + /* */ } return; } var $f = {$blk: Sizeof, $c: true, $r, $24r, T, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, a, k, n, n$1, offsets, s, s$1, t, t$1, t$2, t$3, t$4, t$5, x, x$1, x$2, x$3, x$4, x$5, z, $s};return $f; + }; + SizesFor = function SizesFor$1(compiler, arch) { + var _1, _entry, _tuple, arch, compiler, m, ok, s; + m = false; + _1 = compiler; + if (_1 === ("gc")) { + m = gcArchSizes; + } else if (_1 === ("gccgo")) { + m = gccgoArchSizes; + } else { + return $ifaceNil; + } + _tuple = (_entry = $mapIndex(m,$String.keyFor(arch)), _entry !== undefined ? [_entry.v, true] : [ptrType$82.nil, false]); + s = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + return $ifaceNil; + } + return s; + }; + $pkg.SizesFor = SizesFor; + $ptrType(Config).prototype.alignof = function alignof(T) { + var {$24r, T, _r$1, _r$2, a, conf, s, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + conf = this; + s = conf.Sizes; + /* */ if (!($interfaceIsEqual(s, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(s, $ifaceNil))) { */ case 1: + _r$1 = s.Alignof(T); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + a = _r$1; + if ((a.$high > 0 || (a.$high === 0 && a.$low >= 1))) { + $s = -1; return a; + } + $panic(new $String("Config.Sizes.Alignof returned an alignment < 1")); + /* } */ case 2: + _r$2 = stdSizes.Alignof(T); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: alignof, $c: true, $r, $24r, T, _r$1, _r$2, a, conf, s, $s};return $f; + }; + $ptrType(Config).prototype.offsetsof = function offsetsof(T) { + var {T, _i, _r$1, _r$2, _ref, conf, o, offsets, s, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + conf = this; + offsets = sliceType$19.nil; + /* */ if (T.NumFields() > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (T.NumFields() > 0) { */ case 1: + s = conf.Sizes; + /* */ if (!($interfaceIsEqual(s, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(s, $ifaceNil))) { */ case 3: + _r$1 = s.Offsetsof(T.fields); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + offsets = _r$1; + if (!((offsets.$length === T.NumFields()))) { + $panic(new $String("Config.Sizes.Offsetsof returned the wrong number of offsets")); + } + _ref = offsets; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + o = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ((o.$high < 0 || (o.$high === 0 && o.$low < 0))) { + $panic(new $String("Config.Sizes.Offsetsof returned an offset < 0")); + } + _i++; + } + $s = 5; continue; + /* } else { */ case 4: + _r$2 = stdSizes.Offsetsof(T.fields); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + offsets = _r$2; + /* } */ case 5: + /* } */ case 2: + $s = -1; return offsets; + /* */ } return; } var $f = {$blk: offsetsof, $c: true, $r, T, _i, _r$1, _r$2, _ref, conf, o, offsets, s, $s};return $f; + }; + $ptrType(Config).prototype.offsetof = function offsetof(typ$3, index$1) { + var {_i, _r$1, _r$2, _ref, conf, i, index$1, o, s, typ$3, x, x$1, x$2, $s, $r, $c} = $restore(this, {typ$3, index$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + conf = this; + o = new $Int64(0, 0); + _ref = index$1; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = under(typ$3); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + s = $assertType(_r$1, ptrType$11); + _r$2 = conf.offsetsof(s); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + o = (x = (x$1 = _r$2, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), new $Int64(o.$high + x.$high, o.$low + x.$low)); + typ$3 = (x$2 = s.fields, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])).object.typ; + _i++; + $s = 1; continue; + case 2: + $s = -1; return o; + /* */ } return; } var $f = {$blk: offsetof, $c: true, $r, _i, _r$1, _r$2, _ref, conf, i, index$1, o, s, typ$3, x, x$1, x$2, $s};return $f; + }; + $ptrType(Config).prototype.sizeof = function sizeof(T) { + var {$24r, T, _r$1, _r$2, conf, s, z, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + conf = this; + s = conf.Sizes; + /* */ if (!($interfaceIsEqual(s, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(s, $ifaceNil))) { */ case 1: + _r$1 = s.Sizeof(T); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + z = _r$1; + if ((z.$high > 0 || (z.$high === 0 && z.$low >= 0))) { + $s = -1; return z; + } + $panic(new $String("Config.Sizes.Sizeof returned a size < 0")); + /* } */ case 2: + _r$2 = stdSizes.Sizeof(T); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: sizeof, $c: true, $r, $24r, T, _r$1, _r$2, conf, s, z, $s};return $f; + }; + align = function align$1(x, a) { + var a, x, x$1, x$2, y; + y = (x$1 = new $Int64(x.$high + a.$high, x.$low + a.$low), new $Int64(x$1.$high - 0, x$1.$low - 1)); + return (x$2 = $div64(y, a, true), new $Int64(y.$high - x$2.$high, y.$low - x$2.$low)); + }; + NewSignatureType = function NewSignatureType$1(recv, recvTypeParams, typeParams, params, results, variadic) { + var {_arg, _r$1, _r$2, _r$3, _r$4, _tuple, _v, core, n, ok, params, recv, recvTypeParams, results, sig, typeParams, variadic, $s, $r, $c} = $restore(this, {recv, recvTypeParams, typeParams, params, results, variadic}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (variadic) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (variadic) { */ case 1: + n = params.Len(); + if (n === 0) { + $panic(new $String("variadic function must have at least one parameter")); + } + _r$1 = coreString(params.At(n - 1 >> 0).object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + core = _r$1; + _tuple = $assertType(core, ptrType$25, true); + ok = _tuple[1]; + if (!(!ok)) { _v = false; $s = 6; continue s; } + _r$2 = isString(core); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = !_r$2; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + _r$3 = core.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg = new $String(_r$3); + _r$4 = fmt.Sprintf("got %s, want variadic parameter with unnamed slice type or string as core type", new sliceType$5([_arg])); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $panic(new $String(_r$4)); + /* } */ case 5: + /* } */ case 2: + sig = new Signature.ptr(ptrType$48.nil, ptrType$48.nil, ptrType.nil, recv, params, results, variadic); + if (!((recvTypeParams.$length === 0))) { + if (recv === ptrType$16.nil) { + $panic(new $String("function with receiver type parameters must have a receiver")); + } + sig.rparams = bindTParams(recvTypeParams); + } + if (!((typeParams.$length === 0))) { + if (!(recv === ptrType$16.nil)) { + $panic(new $String("function with type parameters cannot have a receiver")); + } + sig.tparams = bindTParams(typeParams); + } + $s = -1; return sig; + /* */ } return; } var $f = {$blk: NewSignatureType$1, $c: true, $r, _arg, _r$1, _r$2, _r$3, _r$4, _tuple, _v, core, n, ok, params, recv, recvTypeParams, results, sig, typeParams, variadic, $s};return $f; + }; + $pkg.NewSignatureType = NewSignatureType; + $ptrType(Signature).prototype.Recv = function Recv() { + var s; + s = this; + return s.recv; + }; + $ptrType(Signature).prototype.TypeParams = function TypeParams() { + var s; + s = this; + return s.tparams; + }; + $ptrType(Signature).prototype.RecvTypeParams = function RecvTypeParams() { + var s; + s = this; + return s.rparams; + }; + $ptrType(Signature).prototype.Params = function Params() { + var s; + s = this; + return s.params; + }; + $ptrType(Signature).prototype.Results = function Results() { + var s; + s = this; + return s.results; + }; + $ptrType(Signature).prototype.Variadic = function Variadic() { + var s; + s = this; + return s.variadic; + }; + $ptrType(Signature).prototype.Underlying = function Underlying$5() { + var t; + t = this; + return t; + }; + $ptrType(Signature).prototype.String = function String$10() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$10, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + $ptrType(Checker).prototype.funcType = function funcType(sig, recvPar, ftyp) { + var {_1, _i, _i$1, _key, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, check, ftyp, got, i, i$1, p, params, recv, recv$1, recvList, recvPar, recvTPar, recvTParams, results, rname, rparams, scope, sig, smap, tpar, tparams, variadic, x, x$1, $s, $deferred, $r, $c} = $restore(this, {sig, recvPar, ftyp}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + recv = [recv]; + sig = [sig]; + check[0] = this; + $r = check[0].openScope(ftyp, "function"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].environment.scope.isFunc = true; + $r = check[0].recordScope(ftyp, check[0].environment.scope); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + sig[0].scope = check[0].environment.scope; + $deferred.push([$methodVal(check[0], "closeScope"), []]); + /* */ if (!(recvPar === ptrType$49.nil) && recvPar.List.$length > 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(recvPar === ptrType$49.nil) && recvPar.List.$length > 0) { */ case 3: + _r$1 = check[0].unpackRecv((x = recvPar.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Type, true); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + rname = _tuple[1]; + rparams = _tuple[2]; + /* */ if (rparams.$length > 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (rparams.$length > 0) { */ case 6: + _r$2 = check[0].declareTypeParams(sliceType$9.nil, rparams); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + tparams = _r$2; + sig[0].rparams = bindTParams(tparams); + _ref = rparams; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (p.Name === "_") { + if (check[0].recvTParamMap === false) { + check[0].recvTParamMap = new $global.Map(); + } + _key = p; (check[0].recvTParamMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$30.keyFor(_key), { k: _key, v: ((i < 0 || i >= tparams.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams.$array[tparams.$offset + i]) }); + } + _i++; + } + recvTParams = sliceType$9.nil; + /* */ if (!(rname === ptrType$30.nil)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(rname === ptrType$30.nil)) { */ case 9: + _r$3 = check[0].genericType(rname, ptrType$34.nil); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$3, ptrType$9, true); + recv$1 = _tuple$1[0]; + /* */ if (!(recv$1 === ptrType$9.nil)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!(recv$1 === ptrType$9.nil)) { */ case 12: + _r$4 = recv$1.TypeParams(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = _r$4.list(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + recvTParams = _r$5; + /* } */ case 13: + /* } */ case 10: + /* */ if (tparams.$length === recvTParams.$length) { $s = 16; continue; } + /* */ if (tparams.$length < recvTParams.$length) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (tparams.$length === recvTParams.$length) { */ case 16: + _r$6 = makeRenameMap(recvTParams, tparams); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + smap = _r$6; + _ref$1 = tparams; + _i$1 = 0; + /* while (true) { */ case 20: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 21; continue; } + i$1 = _i$1; + tpar = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + recvTPar = ((i$1 < 0 || i$1 >= recvTParams.$length) ? ($throwRuntimeError("index out of range"), undefined) : recvTParams.$array[recvTParams.$offset + i$1]); + check[0].mono.recordCanon(tpar, recvTPar); + _r$7 = check[0].subst(tpar.obj.object.pos, recvTPar.bound, smap, ptrType$9.nil, check[0].context()); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + tpar.bound = _r$7; + _i$1++; + $s = 20; continue; + case 21: + $s = 18; continue; + /* } else if (tparams.$length < recvTParams.$length) { */ case 17: + _r$8 = measure(tparams.$length, "type parameter"); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + got = _r$8; + $r = check[0].errorf(recvPar, 31, "got %s, but receiver base type declares %d", new sliceType$5([new $String(got), new $Int(recvTParams.$length)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + /* } */ case 7: + /* } */ case 4: + /* */ if (!(ftyp.TypeParams === ptrType$49.nil)) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!(ftyp.TypeParams === ptrType$49.nil)) { */ case 25: + $r = check[0].collectTypeParams((sig[0].$ptr_tparams || (sig[0].$ptr_tparams = new ptrType$83(function() { return this.$target.tparams; }, function($v) { this.$target.tparams = $v; }, sig[0]))), ftyp.TypeParams); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(recvPar === ptrType$49.nil)) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!(recvPar === ptrType$49.nil)) { */ case 28: + $r = check[0].errorf(ftyp.TypeParams, 143, "methods cannot have type parameters", sliceType$5.nil); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 29: + /* } */ case 26: + scope = NewScope(check[0].environment.scope, 0, 0, "function body (temp. scope)"); + _r$9 = check[0].collectParams(scope, recvPar, false); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$2 = _r$9; + recvList = _tuple$2[0]; + _r$10 = check[0].collectParams(scope, ftyp.Params, true); /* */ $s = 32; case 32: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$3 = _r$10; + params = _tuple$3[0]; + variadic = _tuple$3[1]; + _r$11 = check[0].collectParams(scope, ftyp.Results, false); /* */ $s = 33; case 33: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$4 = _r$11; + results = _tuple$4[0]; + $r = scope.squash((function(check, recv, sig) { return function Checker·funcType·func1(obj, alt) { + var {_arg, _arg$1, _r$12, alt, obj, $s, $r, $c} = $restore(this, {obj, alt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = obj; + _r$12 = obj.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$12); + $r = check[0].errorf(_arg, 10, "%s redeclared in this block", new sliceType$5([_arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].reportAltDecl(alt); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·funcType·func1, $c: true, $r, _arg, _arg$1, _r$12, alt, obj, $s};return $f; + }; })(check, recv, sig)); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(recvPar === ptrType$49.nil)) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (!(recvPar === ptrType$49.nil)) { */ case 35: + recv[0] = ptrType$16.nil; + _1 = recvList.$length; + /* */ if (_1 === (0)) { $s = 38; continue; } + /* */ if (_1 === (1)) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (_1 === (0)) { */ case 38: + recv[0] = NewParam(0, ptrType$1.nil, "", (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); + $s = 41; continue; + /* } else if (_1 === (1)) { */ case 39: + recv[0] = (0 >= recvList.$length ? ($throwRuntimeError("index out of range"), undefined) : recvList.$array[recvList.$offset + 0]); + $s = 41; continue; + /* } else { */ case 40: + $r = check[0].error((x$1 = recvList.$length - 1 >> 0, ((x$1 < 0 || x$1 >= recvList.$length) ? ($throwRuntimeError("index out of range"), undefined) : recvList.$array[recvList.$offset + x$1])), 32, "method must have exactly one receiver"); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + recv[0] = (0 >= recvList.$length ? ($throwRuntimeError("index out of range"), undefined) : recvList.$array[recvList.$offset + 0]); + /* } */ case 41: + case 37: + sig[0].recv = recv[0]; + check[0].later((function(check, recv, sig) { return function Checker·funcType·func2() { + var {T, T$1, T$2, _r$12, _ref$2, _ref$3, _tuple$5, cause, rtyp, u, u$1, u$2, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple$5 = deref(recv[0].object.typ); + rtyp = _tuple$5[0]; + if ($interfaceIsEqual(rtyp, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return; + } + _ref$2 = rtyp; + /* */ if ($assertType(_ref$2, ptrType$9, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref$2, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* switch (0) { default: if ($assertType(_ref$2, ptrType$9, true)[1]) { */ case 1: + T = _ref$2.$val; + /* */ if (!(T.TypeArgs() === ptrType$55.nil) && sig[0].RecvTypeParams() === ptrType$48.nil) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(T.TypeArgs() === ptrType$55.nil) && sig[0].RecvTypeParams() === ptrType$48.nil) { */ case 5: + $r = check[0].errorf(recv[0], 32, "cannot define new methods on instantiated type %s", new sliceType$5([rtyp])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 4; continue; + /* } */ case 6: + /* */ if (!(T.obj.object.pkg === check[0].pkg)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!(T.obj.object.pkg === check[0].pkg)) { */ case 8: + $r = check[0].errorf(recv[0], 32, "cannot define new methods on non-local type %s", new sliceType$5([rtyp])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 4; continue; + /* } */ case 9: + cause = ""; + _r$12 = T.under(); /* */ $s = 11; case 11: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _ref$3 = _r$12; + /* */ if ($assertType(_ref$3, ptrType$4, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref$3, ptrType$26, true)[1] || $assertType(_ref$3, ptrType$13, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref$3, ptrType$14, true)[1]) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ($assertType(_ref$3, ptrType$4, true)[1]) { */ case 12: + u = _ref$3.$val; + if (u.kind === 18) { + cause = "unsafe.Pointer"; + } + $s = 15; continue; + /* } else if ($assertType(_ref$3, ptrType$26, true)[1] || $assertType(_ref$3, ptrType$13, true)[1]) { */ case 13: + u$1 = _ref$3; + cause = "pointer or interface type"; + $s = 15; continue; + /* } else if ($assertType(_ref$3, ptrType$14, true)[1]) { */ case 14: + u$2 = _ref$3.$val; + unreachable(); + /* } */ case 15: + /* */ if (!(cause === "")) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!(cause === "")) { */ case 16: + $r = check[0].errorf(recv[0], 32, "invalid receiver type %s (%s)", new sliceType$5([rtyp, new $String(cause)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + $s = 4; continue; + /* } else if ($assertType(_ref$2, ptrType$4, true)[1]) { */ case 2: + T$1 = _ref$2.$val; + $r = check[0].errorf(recv[0], 32, "cannot define new methods on non-local type %s", new sliceType$5([rtyp])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 4; continue; + /* } else { */ case 3: + T$2 = _ref$2; + $r = check[0].errorf(recv[0], 32, "invalid receiver type %s", new sliceType$5([recv[0].object.typ])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } } */ case 4: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·funcType·func2, $c: true, $r, T, T$1, T$2, _r$12, _ref$2, _ref$3, _tuple$5, cause, rtyp, u, u$1, u$2, $s};return $f; + }; })(check, recv, sig)).describef(recv[0], "validate receiver %s", new sliceType$5([recv[0]])); + /* } */ case 36: + sig[0].params = NewTuple(params); + sig[0].results = NewTuple(results); + sig[0].variadic = variadic; + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: funcType, $c: true, $r, _1, _i, _i$1, _key, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, check, ftyp, got, i, i$1, p, params, recv, recv$1, recvList, recvPar, recvTPar, recvTParams, results, rname, rparams, scope, sig, smap, tpar, tparams, variadic, x, x$1, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.collectParams = function collectParams(scope, list$2, variadicOk) { + var {_i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, _tmp, _tmp$1, _tuple, anonymous, check, field, ftype, i, last, list$2, name, named, par, par$1, params, scope, t, typ$3, variadic, variadicOk, x, x$1, x$2, $s, $r, $c} = $restore(this, {scope, list$2, variadicOk}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + params = sliceType$10.nil; + variadic = false; + check = this; + if (list$2 === ptrType$49.nil) { + $s = -1; return [params, variadic]; + } + _tmp = false; + _tmp$1 = false; + named = _tmp; + anonymous = _tmp$1; + _ref = list$2.List; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + field = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ftype = field.Type; + _tuple = $assertType(ftype, ptrType$41, true); + t = _tuple[0]; + /* */ if (!(t === ptrType$41.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(t === ptrType$41.nil)) { */ case 3: + ftype = t.Elt; + /* */ if (variadicOk && (i === (list$2.List.$length - 1 >> 0)) && field.Names.$length <= 1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (variadicOk && (i === (list$2.List.$length - 1 >> 0)) && field.Names.$length <= 1) { */ case 5: + variadic = true; + $s = 7; continue; + /* } else { */ case 6: + $r = check.softErrorf(t, 79, "can only use ... with final parameter in list", sliceType$5.nil); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + /* } */ case 4: + _r$1 = check.varType(ftype); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ$3 = _r$1; + /* */ if (field.Names.$length > 0) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (field.Names.$length > 0) { */ case 10: + _ref$1 = field.Names; + _i$1 = 0; + /* while (true) { */ case 13: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 14; continue; } + name = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + /* */ if (name.Name === "") { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (name.Name === "") { */ case 15: + $r = check.invalidAST(name, "anonymous parameter", sliceType$5.nil); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 16: + par = NewParam(name.Pos(), check.pkg, name.Name, typ$3); + $r = check.declare(scope, name, par, scope.pos); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + params = $append(params, par); + _i$1++; + $s = 13; continue; + case 14: + named = true; + $s = 12; continue; + /* } else { */ case 11: + _r$2 = ftype.Pos(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = NewParam(_r$2, check.pkg, "", typ$3); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + par$1 = _r$3; + $r = check.recordImplicit(field, par$1); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + params = $append(params, par$1); + anonymous = true; + /* } */ case 12: + _i++; + $s = 1; continue; + case 2: + /* */ if (named && anonymous) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (named && anonymous) { */ case 22: + $r = check.invalidAST(list$2, "list contains both named and anonymous parameters", sliceType$5.nil); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + /* */ if (variadic) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (variadic) { */ case 25: + last = (x = params.$length - 1 >> 0, ((x < 0 || x >= params.$length) ? ($throwRuntimeError("index out of range"), undefined) : params.$array[params.$offset + x])); + last.object.typ = new Slice.ptr(last.object.typ); + $r = check.recordTypeAndValue((x$1 = list$2.List, x$2 = list$2.List.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).Type, 3, last.object.typ, $ifaceNil); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 26: + $s = -1; return [params, variadic]; + /* */ } return; } var $f = {$blk: collectParams, $c: true, $r, _i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, _tmp, _tmp$1, _tuple, anonymous, check, field, ftype, i, last, list$2, name, named, par, par$1, params, scope, t, typ$3, variadic, variadicOk, x, x$1, x$2, $s};return $f; + }; + $ptrType(Selection).prototype.Kind = function Kind() { + var s; + s = this; + return s.kind; + }; + $ptrType(Selection).prototype.Recv = function Recv$1() { + var s; + s = this; + return s.recv; + }; + $ptrType(Selection).prototype.Obj = function Obj$1() { + var s; + s = this; + return s.obj; + }; + $ptrType(Selection).prototype.Type = function Type$2() { + var {$24r, _1, _r$1, arg0, params, recv, s, sig, sig$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + arg0 = [arg0]; + recv = [recv]; + sig = [sig]; + sig$1 = [sig$1]; + s = this; + _1 = s.kind; + if (_1 === (1)) { + sig[0] = $clone($assertType($assertType(s.obj, ptrType$2).object.typ, ptrType$27), Signature); + recv[0] = $clone(sig[0].recv, Var); + recv[0].object.typ = s.recv; + sig[0].recv = recv[0]; + $s = -1; return sig[0]; + } else if (_1 === (2)) { + sig$1[0] = $clone($assertType($assertType(s.obj, ptrType$2).object.typ, ptrType$27), Signature); + arg0[0] = $clone(sig$1[0].recv, Var); + sig$1[0].recv = ptrType$16.nil; + arg0[0].object.typ = s.recv; + params = sliceType$10.nil; + if (!(sig$1[0].params === ptrType$15.nil)) { + params = sig$1[0].params.vars; + } + sig$1[0].params = NewTuple($appendSlice(new sliceType$10([arg0[0]]), params)); + $s = -1; return sig$1[0]; + } + _r$1 = s.obj.Type(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Type$2, $c: true, $r, $24r, _1, _r$1, arg0, params, recv, s, sig, sig$1, $s};return $f; + }; + $ptrType(Selection).prototype.Index = function Index$1() { + var s; + s = this; + return s.index; + }; + $ptrType(Selection).prototype.Indirect = function Indirect() { + var s; + s = this; + return s.indirect; + }; + $ptrType(Selection).prototype.String = function String$11() { + var {$24r, _r$1, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r$1 = SelectionString(s, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$11, $c: true, $r, $24r, _r$1, s, $s};return $f; + }; + SelectionString = function SelectionString$1(s, qf) { + var {T, _1, _arg, _arg$1, _r$1, _r$2, _r$3, buf, k, qf, s, $s, $r, $c} = $restore(this, {s, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + k = ""; + _1 = s.kind; + if (_1 === (0)) { + k = "field "; + } else if (_1 === (1)) { + k = "method "; + } else if (_1 === (2)) { + k = "method expr "; + } else { + unreachable(); + } + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + buf[0].WriteString(k); + buf[0].WriteByte(40); + $r = WriteType(buf[0], s.Recv(), qf); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _arg = buf[0]; + _r$1 = s.obj.Name(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$1); + _r$2 = fmt.Fprintf(_arg, ") %s", new sliceType$5([_arg$1])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = s.Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + T = _r$3; + /* */ if (s.kind === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (s.kind === 0) { */ case 5: + buf[0].WriteByte(32); + $r = WriteType(buf[0], T, qf); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + $r = WriteSignature(buf[0], $assertType(T, ptrType$27), qf); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: SelectionString$1, $c: true, $r, T, _1, _arg, _arg$1, _r$1, _r$2, _r$3, buf, k, qf, s, $s};return $f; + }; + $pkg.SelectionString = SelectionString; + NewScope = function NewScope$1(parent, pos, end, comment) { + var comment, end, parent, pos, s; + s = new Scope.ptr(parent, sliceType$20.nil, 0, false, pos, end, comment, false); + if (!(parent === ptrType.nil) && !(parent === $pkg.Universe)) { + parent.children = $append(parent.children, s); + s.number = parent.children.$length; + } + return s; + }; + $pkg.NewScope = NewScope; + $ptrType(Scope).prototype.Parent = function Parent() { + var s; + s = this; + return s.parent; + }; + $ptrType(Scope).prototype.Len = function Len$5() { + var s; + s = this; + return (s.elems ? s.elems.size : 0); + }; + $ptrType(Scope).prototype.Names = function Names() { + var {_entry, _i, _key, _keys, _ref, _size, i, name, names, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + names = $makeSlice(sliceType$6, (s.elems ? s.elems.size : 0)); + i = 0; + _ref = s.elems; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + name = _entry.k; + ((i < 0 || i >= names.$length) ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + i] = name); + i = i + (1) >> 0; + _i++; + } + $r = sort.Strings(names); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return names; + /* */ } return; } var $f = {$blk: Names, $c: true, $r, _entry, _i, _key, _keys, _ref, _size, i, name, names, s, $s};return $f; + }; + $ptrType(Scope).prototype.NumChildren = function NumChildren() { + var s; + s = this; + return s.children.$length; + }; + $ptrType(Scope).prototype.Child = function Child(i) { + var i, s, x; + s = this; + return (x = s.children, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(Scope).prototype.Lookup = function Lookup(name) { + var {$24r, _entry, _r$1, name, s, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r$1 = resolve(name, (_entry = $mapIndex(s.elems,$String.keyFor(name)), _entry !== undefined ? _entry.v : $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Lookup, $c: true, $r, $24r, _entry, _r$1, name, s, $s};return $f; + }; + $ptrType(Scope).prototype.LookupParent = function LookupParent(name, pos) { + var {_r$1, _r$2, _v, _v$1, name, obj, pos, s, $s, $r, $c} = $restore(this, {name, pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* while (true) { */ case 1: + /* if (!(!(s === ptrType.nil))) { break; } */ if(!(!(s === ptrType.nil))) { $s = 2; continue; } + _r$1 = s.Lookup(name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + obj = _r$1; + if (!(!($interfaceIsEqual(obj, $ifaceNil)))) { _v = false; $s = 6; continue s; } + if (!new token.Pos(pos).IsValid()) { _v$1 = true; $s = 7; continue s; } + _r$2 = obj.scopePos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 <= pos; case 7: + _v = _v$1; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + $s = -1; return [s, obj]; + /* } */ case 5: + s = s.parent; + $s = 1; continue; + case 2: + $s = -1; return [ptrType.nil, $ifaceNil]; + /* */ } return; } var $f = {$blk: LookupParent, $c: true, $r, _r$1, _r$2, _v, _v$1, name, obj, pos, s, $s};return $f; + }; + $ptrType(Scope).prototype.Insert = function Insert(obj) { + var {_r$1, _r$2, _r$3, alt, name, obj, s, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r$1 = obj.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + name = _r$1; + _r$2 = s.Lookup(name); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + alt = _r$2; + if (!($interfaceIsEqual(alt, $ifaceNil))) { + $s = -1; return alt; + } + s.insert(name, obj); + _r$3 = obj.Parent(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === ptrType.nil) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$3 === ptrType.nil) { */ case 3: + $r = obj.setParent(s); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Insert, $c: true, $r, _r$1, _r$2, _r$3, alt, name, obj, s, $s};return $f; + }; + $ptrType(Scope).prototype.insert = function insert(name, obj) { + var _key, name, obj, s; + s = this; + if (s.elems === false) { + s.elems = new $global.Map(); + } + _key = name; (s.elems || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: obj }); + }; + $ptrType(Scope).prototype.squash = function squash(err) { + var {_entry, _i, _i$1, _key, _keys, _r$1, _r$2, _ref, _ref$1, _size, alt, ch, err, i, j, k, name, obj, p, s, x, x$1, $s, $r, $c} = $restore(this, {err}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + p = s.parent; + $r = assert(!(p === ptrType.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = s.elems; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + /* while (true) { */ case 2: + /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 3; continue; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + /* continue; */ $s = 2; continue; + } + name = _entry.k; + obj = _entry.v; + _r$1 = resolve(name, obj); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + obj = _r$1; + $r = obj.setParent(ptrType.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.Insert(obj); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + alt = _r$2; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 7: + $r = err(obj, alt); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + _i++; + $s = 2; continue; + case 3: + j = -1; + _ref$1 = p.children; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i = _i$1; + ch = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (ch === s) { + j = i; + break; + } + _i$1++; + } + $r = assert(j >= 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + k = p.children.$length - 1 >> 0; + (x$1 = p.children, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j] = (x = p.children, ((k < 0 || k >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + k])))); + p.children = $subslice(p.children, 0, k); + p.children = $appendSlice(p.children, s.children); + s.children = sliceType$20.nil; + s.elems = false; + $s = -1; return; + /* */ } return; } var $f = {$blk: squash, $c: true, $r, _entry, _i, _i$1, _key, _keys, _r$1, _r$2, _ref, _ref$1, _size, alt, ch, err, i, j, k, name, obj, p, s, x, x$1, $s};return $f; + }; + $ptrType(Scope).prototype.Pos = function Pos() { + var s; + s = this; + return s.pos; + }; + $ptrType(Scope).prototype.End = function End() { + var s; + s = this; + return s.end; + }; + $ptrType(Scope).prototype.Contains = function Contains(pos) { + var pos, s; + s = this; + return s.pos <= pos && pos < s.end; + }; + $ptrType(Scope).prototype.Innermost = function Innermost(pos) { + var _i, _i$1, _ref, _ref$1, inner, pos, s, s$1, s$2; + s = this; + if (s.parent === $pkg.Universe) { + _ref = s.children; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + s$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + inner = s$1.Innermost(pos); + if (!(inner === ptrType.nil)) { + return inner; + } + _i++; + } + } + if (s.Contains(pos)) { + _ref$1 = s.children; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + s$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (s$2.Contains(pos)) { + return s$2.Innermost(pos); + } + _i$1++; + } + return s; + } + return ptrType.nil; + }; + $ptrType(Scope).prototype.WriteTo = function WriteTo(w, n, recurse) { + var {_arg, _arg$1, _arg$2, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, indn, indn1, n, name, recurse, s, s$1, w, $s, $r, $c} = $restore(this, {w, n, recurse}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + indn = strings.Repeat(". ", n); + _r$1 = fmt.Fprintf(w, "%s%s scope %p {\n", new sliceType$5([new $String(indn), new $String(s.comment), s])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + indn1 = indn + ". "; + _r$2 = s.Names(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _ref = _r$2; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + name = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _arg = w; + _arg$1 = new $String(indn1); + _r$3 = s.Lookup(name); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$2 = _r$3; + _r$4 = fmt.Fprintf(_arg, "%s%s\n", new sliceType$5([_arg$1, _arg$2])); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + _i++; + $s = 3; continue; + case 4: + /* */ if (recurse) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (recurse) { */ case 7: + _ref$1 = s.children; + _i$1 = 0; + /* while (true) { */ case 9: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 10; continue; } + s$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + $r = s$1.WriteTo(w, n + 1 >> 0, recurse); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 9; continue; + case 10: + /* } */ case 8: + _r$5 = fmt.Fprintf(w, "%s}\n", new sliceType$5([new $String(indn)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + $s = -1; return; + /* */ } return; } var $f = {$blk: WriteTo, $c: true, $r, _arg, _arg$1, _arg$2, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, indn, indn1, n, name, recurse, s, s$1, w, $s};return $f; + }; + $ptrType(Scope).prototype.String = function String$12() { + var {buf, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + s = this; + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + $r = s.WriteTo(buf[0], 0, false); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: String$12, $c: true, $r, buf, s, $s};return $f; + }; + resolve = function resolve$1(name, obj) { + var {_tuple, lazy, name, obj, ok, $s, $r, $c} = $restore(this, {name, obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + lazy = [lazy]; + name = [name]; + _tuple = $assertType(obj, ptrType$84, true); + lazy[0] = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + $r = lazy[0].once.Do((function(lazy, name) { return function resolve·func1() { + var {_r$1, _r$2, _r$3, _tuple$1, obj$1, ok$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = lazy[0].resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + obj$1 = _r$1; + _tuple$1 = $assertType(obj$1, ptrType$84, true); + ok$1 = _tuple$1[1]; + if (ok$1) { + $panic(new $String("recursive lazy object")); + } + _r$2 = obj$1.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!(_r$2 === name[0])) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(_r$2 === name[0])) { */ case 2: + $panic(new $String("lazy object has unexpected name")); + /* } */ case 3: + _r$3 = obj$1.Parent(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === ptrType.nil) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$3 === ptrType.nil) { */ case 5: + $r = obj$1.setParent(lazy[0].parent); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + lazy[0].obj = obj$1; + $s = -1; return; + /* */ } return; } var $f = {$blk: resolve·func1, $c: true, $r, _r$1, _r$2, _r$3, _tuple$1, obj$1, ok$1, $s};return $f; + }; })(lazy, name)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj = lazy[0].obj; + /* } */ case 2: + $s = -1; return obj; + /* */ } return; } var $f = {$blk: resolve$1, $c: true, $r, _tuple, lazy, name, obj, ok, $s};return $f; + }; + $ptrType(lazyObject).prototype.Parent = function Parent$1() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.Pos = function Pos$1() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.Pkg = function Pkg() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.Name = function Name() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.Type = function Type$3() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.Exported = function Exported() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.Id = function Id$1() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.String = function String$13() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.order = function order() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.color = function color$1() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.setOrder = function setOrder(param) { + var param; + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.setColor = function setColor(color$2) { + var color$2; + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.setParent = function setParent(param) { + var param; + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.sameId = function sameId(pkg, name) { + var name, pkg; + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.scopePos = function scopePos() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.setScopePos = function setScopePos(pos) { + var pos; + $panic(new $String("unreachable")); + }; + $ptrType(Checker).prototype.isTerminating = function isTerminating(s, label) { + var _entry, _i, _ref, _ref$1, _tuple, call, cc, check, label, ok, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9; + check = this; + _ref = s; + if ($assertType(_ref, ptrType$62, true)[1] || $assertType(_ref, ptrType$63, true)[1] || $assertType(_ref, ptrType$58, true)[1] || $assertType(_ref, ptrType$66, true)[1] || $assertType(_ref, ptrType$67, true)[1] || $assertType(_ref, ptrType$68, true)[1] || $assertType(_ref, ptrType$69, true)[1] || $assertType(_ref, ptrType$70, true)[1] || $assertType(_ref, ptrType$79, true)[1]) { + s$2 = _ref; + } else if ($assertType(_ref, ptrType$64, true)[1]) { + s$3 = _ref.$val; + return check.isTerminating(s$3.Stmt, s$3.Label.Name); + } else if ($assertType(_ref, ptrType$65, true)[1]) { + s$4 = _ref.$val; + _tuple = $assertType(unparen(s$4.X), ptrType$85, true); + call = _tuple[0]; + ok = _tuple[1]; + if (ok && (_entry = $mapIndex(check.environment.isPanic,ptrType$85.keyFor(call)), _entry !== undefined ? _entry.v : false)) { + return true; + } + } else if ($assertType(_ref, ptrType$71, true)[1]) { + s$5 = _ref.$val; + return true; + } else if ($assertType(_ref, ptrType$72, true)[1]) { + s$6 = _ref.$val; + if ((s$6.Tok === 73) || (s$6.Tok === 69)) { + return true; + } + } else if ($assertType(_ref, ptrType$73, true)[1]) { + s$7 = _ref.$val; + return check.isTerminatingList(s$7.List, ""); + } else if ($assertType(_ref, ptrType$74, true)[1]) { + s$8 = _ref.$val; + if (!($interfaceIsEqual(s$8.Else, $ifaceNil)) && check.isTerminating(s$8.Body, "") && check.isTerminating(s$8.Else, "")) { + return true; + } + } else if ($assertType(_ref, ptrType$75, true)[1]) { + s$9 = _ref.$val; + return check.isTerminatingSwitch(s$9.Body, label); + } else if ($assertType(_ref, ptrType$76, true)[1]) { + s$10 = _ref.$val; + return check.isTerminatingSwitch(s$10.Body, label); + } else if ($assertType(_ref, ptrType$77, true)[1]) { + s$11 = _ref.$val; + _ref$1 = s$11.Body.List; + _i = 0; + while (true) { + if (!(_i < _ref$1.$length)) { break; } + s$13 = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + cc = $assertType(s$13, ptrType$60); + if (!check.isTerminatingList(cc.Body, "") || hasBreakList(cc.Body, label, true)) { + return false; + } + _i++; + } + return true; + } else if ($assertType(_ref, ptrType$78, true)[1]) { + s$12 = _ref.$val; + if ($interfaceIsEqual(s$12.Cond, $ifaceNil) && !hasBreak(s$12.Body, label, true)) { + return true; + } + } else { + s$1 = _ref; + unreachable(); + } + return false; + }; + $ptrType(Checker).prototype.isTerminatingList = function isTerminatingList(list$2, label) { + var _tuple, check, i, label, list$2, ok; + check = this; + i = list$2.$length - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + _tuple = $assertType(((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i]), ptrType$58, true); + ok = _tuple[1]; + if (!ok) { + return check.isTerminating(((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i]), label); + } + i = i - (1) >> 0; + } + return false; + }; + $ptrType(Checker).prototype.isTerminatingSwitch = function isTerminatingSwitch(body, label) { + var _i, _ref, body, cc, check, hasDefault, label, s; + check = this; + hasDefault = false; + _ref = body.List; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + cc = $assertType(s, ptrType$59); + if (cc.List === sliceType$11.nil) { + hasDefault = true; + } + if (!check.isTerminatingList(cc.Body, "") || hasBreakList(cc.Body, label, true)) { + return false; + } + _i++; + } + return hasDefault; + }; + hasBreak = function hasBreak$1(s, label, implicit) { + var _ref, implicit, label, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9; + _ref = s; + if ($assertType(_ref, ptrType$62, true)[1] || $assertType(_ref, ptrType$63, true)[1] || $assertType(_ref, ptrType$58, true)[1] || $assertType(_ref, ptrType$65, true)[1] || $assertType(_ref, ptrType$66, true)[1] || $assertType(_ref, ptrType$67, true)[1] || $assertType(_ref, ptrType$68, true)[1] || $assertType(_ref, ptrType$69, true)[1] || $assertType(_ref, ptrType$70, true)[1] || $assertType(_ref, ptrType$71, true)[1]) { + s$2 = _ref; + } else if ($assertType(_ref, ptrType$64, true)[1]) { + s$3 = _ref.$val; + return hasBreak(s$3.Stmt, label, implicit); + } else if ($assertType(_ref, ptrType$72, true)[1]) { + s$4 = _ref.$val; + if (s$4.Tok === 61) { + if (s$4.Label === ptrType$30.nil) { + return implicit; + } + if (s$4.Label.Name === label) { + return true; + } + } + } else if ($assertType(_ref, ptrType$73, true)[1]) { + s$5 = _ref.$val; + return hasBreakList(s$5.List, label, implicit); + } else if ($assertType(_ref, ptrType$74, true)[1]) { + s$6 = _ref.$val; + if (hasBreak(s$6.Body, label, implicit) || !($interfaceIsEqual(s$6.Else, $ifaceNil)) && hasBreak(s$6.Else, label, implicit)) { + return true; + } + } else if ($assertType(_ref, ptrType$59, true)[1]) { + s$7 = _ref.$val; + return hasBreakList(s$7.Body, label, implicit); + } else if ($assertType(_ref, ptrType$75, true)[1]) { + s$8 = _ref.$val; + if (!(label === "") && hasBreak(s$8.Body, label, false)) { + return true; + } + } else if ($assertType(_ref, ptrType$76, true)[1]) { + s$9 = _ref.$val; + if (!(label === "") && hasBreak(s$9.Body, label, false)) { + return true; + } + } else if ($assertType(_ref, ptrType$60, true)[1]) { + s$10 = _ref.$val; + return hasBreakList(s$10.Body, label, implicit); + } else if ($assertType(_ref, ptrType$77, true)[1]) { + s$11 = _ref.$val; + if (!(label === "") && hasBreak(s$11.Body, label, false)) { + return true; + } + } else if ($assertType(_ref, ptrType$78, true)[1]) { + s$12 = _ref.$val; + if (!(label === "") && hasBreak(s$12.Body, label, false)) { + return true; + } + } else if ($assertType(_ref, ptrType$79, true)[1]) { + s$13 = _ref.$val; + if (!(label === "") && hasBreak(s$13.Body, label, false)) { + return true; + } + } else { + s$1 = _ref; + unreachable(); + } + return false; + }; + hasBreakList = function hasBreakList$1(list$2, label, implicit) { + var _i, _ref, implicit, label, list$2, s; + _ref = list$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (hasBreak(s, label, implicit)) { + return true; + } + _i++; + } + return false; + }; + $ptrType(declInfo).prototype.hasInitializer = function hasInitializer() { + var d; + d = this; + return !($interfaceIsEqual(d.init, $ifaceNil)) || !(d.fdecl === ptrType$86.nil) && !(d.fdecl.Body === ptrType$73.nil); + }; + $ptrType(declInfo).prototype.addDep = function addDep(obj) { + var _key, d, m, obj; + d = this; + m = d.deps; + if (m === false) { + m = new $global.Map(); + d.deps = m; + } + _key = obj; (m || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key), { k: _key, v: true }); + }; + $ptrType(Checker).prototype.arityMatch = function arityMatch(s, init$5) { + var {_arg, _arg$1, _r$1, check, init$5, l, n, n$1, r, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {s, init$5}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + l = s.Names.$length; + r = s.Values.$length; + if (!(init$5 === ptrType$87.nil)) { + r = init$5.Values.$length; + } + /* */ if (init$5 === ptrType$87.nil && (r === 0)) { $s = 2; continue; } + /* */ if (l < r) { $s = 3; continue; } + /* */ if (l > r && (!(init$5 === ptrType$87.nil) || !((r === 1)))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (init$5 === ptrType$87.nil && (r === 0)) { */ case 2: + /* */ if ($interfaceIsEqual(s.Type, $ifaceNil)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($interfaceIsEqual(s.Type, $ifaceNil)) { */ case 6: + $r = check.errorf(s, 17, "missing type or init expr", sliceType$5.nil); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + $s = 5; continue; + /* } else if (l < r) { */ case 3: + /* */ if (l < s.Values.$length) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (l < s.Values.$length) { */ case 9: + n = (x = s.Values, ((l < 0 || l >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + l])); + $r = check.errorf(n, 17, "extra init expr %s", new sliceType$5([n])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 11; continue; + /* } else { */ case 10: + _arg = s; + _r$1 = check.fset.Position(init$5.Pos()); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = (x$1 = _r$1, new x$1.constructor.elem(x$1)); + $r = check.errorf(_arg, 17, "extra init expr at %s", new sliceType$5([_arg$1])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + $s = 5; continue; + /* } else if (l > r && (!(init$5 === ptrType$87.nil) || !((r === 1)))) { */ case 4: + n$1 = (x$2 = s.Names, ((r < 0 || r >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + r])); + $r = check.errorf(n$1, 17, "missing init expr for %s", new sliceType$5([n$1])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: arityMatch, $c: true, $r, _arg, _arg$1, _r$1, check, init$5, l, n, n$1, r, s, x, x$1, x$2, $s};return $f; + }; + validatedImportPath = function validatedImportPath$1(path) { + var {$24r, $24r$1, _i, _r$1, _r$2, _ref, _rune, _tuple, err, path, r, s, $s, $r, $c} = $restore(this, {path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = strconv.Unquote(path); + s = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return ["", err]; + } + /* */ if (s === "") { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (s === "") { */ case 1: + _r$1 = fmt.Errorf("empty string", sliceType$5.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = ["", _r$1]; + $s = 4; case 4: return $24r; + /* } */ case 2: + _ref = s; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref.length)) { break; } */ if(!(_i < _ref.length)) { $s = 6; continue; } + _rune = $decodeRune(_ref, _i); + r = _rune[0]; + /* */ if (!unicode.IsGraphic(r) || unicode.IsSpace(r) || strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^{|}`\xEF\xBF\xBD", r)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!unicode.IsGraphic(r) || unicode.IsSpace(r) || strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^{|}`\xEF\xBF\xBD", r)) { */ case 7: + _r$2 = fmt.Errorf("invalid character %#U", new sliceType$5([new $Int32(r)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = [s, _r$2]; + $s = 10; case 10: return $24r$1; + /* } */ case 8: + _i += _rune[1]; + $s = 5; continue; + case 6: + $s = -1; return [s, $ifaceNil]; + /* */ } return; } var $f = {$blk: validatedImportPath$1, $c: true, $r, $24r, $24r$1, _i, _r$1, _r$2, _ref, _rune, _tuple, err, path, r, s, $s};return $f; + }; + $ptrType(Checker).prototype.declarePkgObj = function declarePkgObj(ident$1, obj, d) { + var {_key, _r$1, check, d, ident$1, obj, $s, $r, $c} = $restore(this, {ident$1, obj, d}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = obj.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = assert(ident$1.Name === _r$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (ident$1.Name === "init") { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ident$1.Name === "init") { */ case 3: + $r = check.errorf(ident$1, 39, "cannot declare init - must be func", sliceType$5.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + /* */ if (ident$1.Name === "main" && check.pkg.name === "main") { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (ident$1.Name === "main" && check.pkg.name === "main") { */ case 6: + $r = check.errorf(ident$1, 40, "cannot declare main - must be func", sliceType$5.nil); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 7: + $r = check.declare(check.pkg.scope, ident$1, obj, 0); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _key = obj; (check.objMap || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key), { k: _key, v: d }); + $r = obj.setOrder((((check.objMap ? check.objMap.size : 0) >>> 0))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: declarePkgObj, $c: true, $r, _key, _r$1, check, d, ident$1, obj, $s};return $f; + }; + $ptrType(Checker).prototype.filename = function filename(fileNo) { + var {$24r, $24r$1, _r$1, _r$2, _r$3, check, file, fileNo, pos, x, $s, $r, $c} = $restore(this, {fileNo}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + file = (x = check.files, ((fileNo < 0 || fileNo >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + fileNo])); + pos = file.Pos(); + /* */ if (new token.Pos(pos).IsValid()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (new token.Pos(pos).IsValid()) { */ case 1: + _r$1 = check.fset.File(pos); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 5; case 5: return $24r; + /* } */ case 2: + _r$3 = fmt.Sprintf("file[%d]", new sliceType$5([new $Int(fileNo)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = _r$3; + $s = 7; case 7: return $24r$1; + /* */ } return; } var $f = {$blk: filename, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, check, file, fileNo, pos, x, $s};return $f; + }; + $ptrType(Checker).prototype.importPackage = function importPackage(at$1, path, dir$1) { + var {_entry, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, at$1, check, dir$1, err, i, i$1, imp, importer, importerFrom, key, name, ok, path, $s, $r, $c} = $restore(this, {at$1, path, dir$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + key = new importKey.ptr(path, dir$1); + imp = (_entry = $mapIndex(check.impMap,importKey.keyFor(key)), _entry !== undefined ? _entry.v : ptrType$1.nil); + if (!(imp === ptrType$1.nil)) { + $s = -1; return imp; + } + /* */ if (path === "C" && (check.conf.FakeImportC || check.conf.go115UsesCgo)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (path === "C" && (check.conf.FakeImportC || check.conf.go115UsesCgo)) { */ case 1: + _r$1 = NewPackage("C", "C"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + imp = _r$1; + imp.fake = true; + imp.cgo = check.conf.go115UsesCgo; + $s = 3; continue; + /* } else { */ case 2: + err = $ifaceNil; + importer = check.conf.Importer; + /* */ if ($interfaceIsEqual(importer, $ifaceNil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($interfaceIsEqual(importer, $ifaceNil)) { */ case 5: + _r$2 = fmt.Errorf("Config.Importer not installed", sliceType$5.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err = _r$2; + $s = 7; continue; + /* } else { */ case 6: + _tuple = $assertType(importer, ImporterFrom, true); + importerFrom = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (ok) { */ case 9: + _r$3 = importerFrom.ImportFrom(path, dir$1, 0); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + imp = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { */ case 13: + _r$4 = fmt.Errorf("Config.Importer.ImportFrom(%s, %s, 0) returned nil but no error", new sliceType$5([new $String(path), new $String(dir$1)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; + /* } */ case 14: + $s = 11; continue; + /* } else { */ case 10: + _r$5 = importer.Import(path); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + imp = _tuple$2[0]; + err = _tuple$2[1]; + /* */ if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { */ case 17: + _r$6 = fmt.Errorf("Config.Importer.Import(%s) returned nil but no error", new sliceType$5([new $String(path)])); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + err = _r$6; + /* } */ case 18: + /* } */ case 11: + /* } */ case 7: + /* */ if ($interfaceIsEqual(err, $ifaceNil) && !(imp === ptrType$1.nil) && (imp.name === "_" || imp.name === "")) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ($interfaceIsEqual(err, $ifaceNil) && !(imp === ptrType$1.nil) && (imp.name === "_" || imp.name === "")) { */ case 20: + _r$7 = fmt.Errorf("invalid package name: %q", new sliceType$5([new $String(imp.name)])); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + err = _r$7; + imp = ptrType$1.nil; + /* } */ case 21: + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 23: + $r = check.errorf(at$1, 6, "could not import %s (%s)", new sliceType$5([new $String(path), err])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (imp === ptrType$1.nil) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (imp === ptrType$1.nil) { */ case 26: + name = path; + i = name.length; + if (i > 0 && (name.charCodeAt((i - 1 >> 0)) === 47)) { + name = $substring(name, 0, (i - 1 >> 0)); + } + i$1 = strings.LastIndex(name, "/"); + if (i$1 >= 0) { + name = $substring(name, (i$1 + 1 >> 0)); + } + _r$8 = NewPackage(path, name); /* */ $s = 28; case 28: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + imp = _r$8; + /* } */ case 27: + imp.fake = true; + /* } */ case 24: + /* } */ case 3: + if (imp.complete || imp.fake) { + _key = $clone(key, importKey); (check.impMap || $throwRuntimeError("assignment to entry in nil map")).set(importKey.keyFor(_key), { k: _key, v: imp }); + if (!(check.pkgPathMap === false)) { + check.markImports(imp); + } + $s = -1; return imp; + } + $s = -1; return ptrType$1.nil; + /* */ } return; } var $f = {$blk: importPackage, $c: true, $r, _entry, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, at$1, check, dir$1, err, i, i$1, imp, importer, importerFrom, key, name, ok, path, $s};return $f; + }; + $ptrType(Checker).prototype.collectObjects = function collectObjects() { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _keys, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, alt, base, check, end, f, file, fileDir, fileNo, fileScope, fileScopes, i, imp, m, methods, name, obj, ok, pkg, pkg$1, pkgImports, pos, ptr, scope, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = [check]; + methods = [methods]; + pkg = [pkg]; + pkgImports = [pkgImports]; + check[0] = this; + pkg[0] = check[0].pkg; + pkgImports[0] = new $global.Map(); + _ref = pkg[0].imports; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + imp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _key = imp; (pkgImports[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: true }); + _i++; + } + methods[0] = sliceType$21.nil; + fileScopes = sliceType$20.nil; + _ref$1 = check[0].files; + _i$1 = 0; + /* while (true) { */ case 1: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } + fileDir = [fileDir]; + fileScope = [fileScope]; + fileNo = _i$1; + file = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + $r = check[0].recordDef(file.Name, $ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp = file.Pos(); + _r$1 = file.End(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tmp$1 = _r$1; + pos = _tmp; + end = _tmp$1; + _r$2 = check[0].fset.File(file.Pos()); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + f = _r$2; + if (!(f === ptrType$88.nil)) { + _tmp$2 = ((f.Base() >> 0)); + _tmp$3 = (((f.Base() + f.Size() >> 0) >> 0)); + pos = _tmp$2; + end = _tmp$3; + } + _arg = check[0].pkg.scope; + _arg$1 = pos; + _arg$2 = end; + _r$3 = check[0].filename(fileNo); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$3 = _r$3; + _r$4 = NewScope(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + fileScope[0] = _r$4; + fileScopes = $append(fileScopes, fileScope[0]); + $r = check[0].recordScope(file, fileScope[0]); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$5 = check[0].fset.Position(file.Name.Pos()); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = dir(_r$5.Filename); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + fileDir[0] = _r$6; + $r = check[0].walkDecls(file.Decls, (function(check, fileDir, fileScope, methods, pkg, pkgImports) { return function Checker·collectObjects·func1(d) { + var {_arg$4, _arg$5, _entry, _entry$1, _i$2, _i$3, _i$4, _key$1, _key$2, _key$3, _key$4, _keys, _r$10, _r$11, _r$7, _r$8, _r$9, _ref$2, _ref$3, _ref$4, _ref$5, _size, _tuple, _tuple$1, alt, code, d, d$1, d$2, d$3, d$4, d$5, d$6, d1, di, err, hasTParamError, i, i$1, imp$1, info, init$5, init$6, lhs, name, name$1, name$2, name$3, name$4, obj, obj$1, obj$2, obj$3, obj$4, path, pkgName, ptr, recv, t, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {d}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref$2 = d; + /* */ if ($assertType(_ref$2, importDecl, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref$2, constDecl, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref$2, varDecl, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$2, typeDecl, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$2, funcDecl, true)[1]) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($assertType(_ref$2, importDecl, true)[1]) { */ case 1: + d$1 = $clone(_ref$2.$val, importDecl); + _r$7 = validatedImportPath(d$1.spec.Path.Value); /* */ $s = 7; case 7: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple = _r$7; + path = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8: + $r = check[0].errorf(d$1.spec.Path, 5, "invalid import path (%s)", new sliceType$5([err])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 9: + _r$8 = check[0].importPackage(d$1.spec.Path, path, fileDir[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + imp$1 = _r$8; + if (imp$1 === ptrType$1.nil) { + $s = -1; return; + } + name = imp$1.name; + /* */ if (!(d$1.spec.Name === ptrType$30.nil)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!(d$1.spec.Name === ptrType$30.nil)) { */ case 12: + name = d$1.spec.Name.Name; + /* */ if (path === "C") { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (path === "C") { */ case 14: + $r = check[0].errorf(d$1.spec.Name, 7, "cannot rename import \"C\"", sliceType$5.nil); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 15: + /* } */ case 13: + /* */ if (name === "init") { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (name === "init") { */ case 17: + $r = check[0].errorf(d$1.spec, 39, "cannot import package as init - init must be a func", sliceType$5.nil); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 18: + if (!(_entry = $mapIndex(pkgImports[0],ptrType$1.keyFor(imp$1)), _entry !== undefined ? _entry.v : false)) { + _key$1 = imp$1; (pkgImports[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$1), { k: _key$1, v: true }); + pkg[0].imports = $append(pkg[0].imports, imp$1); + } + pkgName = NewPkgName(d$1.spec.Pos(), pkg[0], name, imp$1); + /* */ if (!(d$1.spec.Name === ptrType$30.nil)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!(d$1.spec.Name === ptrType$30.nil)) { */ case 20: + $r = check[0].recordDef(d$1.spec.Name, pkgName); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else { */ case 21: + $r = check[0].recordImplicit(d$1.spec, pkgName); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 22: + if (imp$1.fake) { + pkgName.used = true; + } + check[0].imports = $append(check[0].imports, pkgName); + /* */ if (name === ".") { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (name === ".") { */ case 25: + if (check[0].dotImportMap === false) { + check[0].dotImportMap = new $global.Map(); + } + _ref$3 = imp$1.scope.elems; + _i$2 = 0; + _keys = _ref$3 ? _ref$3.keys() : undefined; + _size = _ref$3 ? _ref$3.size : 0; + /* while (true) { */ case 28: + /* if (!(_i$2 < _size)) { break; } */ if(!(_i$2 < _size)) { $s = 29; continue; } + _key$2 = _keys.next().value; + _entry$1 = _ref$3.get(_key$2); + if (_entry$1 === undefined) { + _i$2++; + /* continue; */ $s = 28; continue; + } + name$1 = _entry$1.k; + obj = _entry$1.v; + /* */ if (token.IsExported(name$1)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (token.IsExported(name$1)) { */ case 30: + _r$9 = fileScope[0].Lookup(name$1); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + alt = _r$9; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 33: + _arg$4 = d$1.spec.Name; + _r$10 = alt.Name(); /* */ $s = 36; case 36: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _arg$5 = new $String(_r$10); + $r = check[0].errorf(_arg$4, 10, "%s redeclared in this block", new sliceType$5([_arg$5])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].reportAltDecl(alt); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else { */ case 34: + fileScope[0].insert(name$1, obj); + _key$3 = $clone(new dotImportKey.ptr(fileScope[0], name$1), dotImportKey); (check[0].dotImportMap || $throwRuntimeError("assignment to entry in nil map")).set(dotImportKey.keyFor(_key$3), { k: _key$3, v: pkgName }); + /* } */ case 35: + /* } */ case 31: + _i$2++; + $s = 28; continue; + case 29: + $s = 27; continue; + /* } else { */ case 26: + $r = check[0].declare(fileScope[0], ptrType$30.nil, pkgName, 0); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + $s = 6; continue; + /* } else if ($assertType(_ref$2, constDecl, true)[1]) { */ case 2: + d$2 = $clone(_ref$2.$val, constDecl); + _ref$4 = d$2.spec.Names; + _i$3 = 0; + /* while (true) { */ case 40: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 41; continue; } + i = _i$3; + name$2 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + obj$1 = NewConst(name$2.Pos(), pkg[0], name$2.Name, $ifaceNil, constant.MakeInt64((new $Int64(0, d$2.iota)))); + init$5 = $ifaceNil; + if (i < d$2.init.$length) { + init$5 = (x = d$2.init, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + } + d$6 = new declInfo.ptr(fileScope[0], sliceType$10.nil, d$2.typ, init$5, d$2.inherited, ptrType$89.nil, ptrType$86.nil, false); + $r = check[0].declarePkgObj(name$2, obj$1, d$6); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$3++; + $s = 40; continue; + case 41: + $s = 6; continue; + /* } else if ($assertType(_ref$2, varDecl, true)[1]) { */ case 3: + d$3 = $clone(_ref$2.$val, varDecl); + lhs = $makeSlice(sliceType$10, d$3.spec.Names.$length); + d1 = ptrType$57.nil; + if (d$3.spec.Values.$length === 1) { + d1 = new declInfo.ptr(fileScope[0], lhs, d$3.spec.Type, (x$1 = d$3.spec.Values, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), false, ptrType$89.nil, ptrType$86.nil, false); + } + _ref$5 = d$3.spec.Names; + _i$4 = 0; + /* while (true) { */ case 43: + /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 44; continue; } + i$1 = _i$4; + name$3 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); + obj$2 = NewVar(name$3.Pos(), pkg[0], name$3.Name, $ifaceNil); + ((i$1 < 0 || i$1 >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i$1] = obj$2); + di = d1; + if (di === ptrType$57.nil) { + init$6 = $ifaceNil; + if (i$1 < d$3.spec.Values.$length) { + init$6 = (x$2 = d$3.spec.Values, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); + } + di = new declInfo.ptr(fileScope[0], sliceType$10.nil, d$3.spec.Type, init$6, false, ptrType$89.nil, ptrType$86.nil, false); + } + $r = check[0].declarePkgObj(name$3, obj$2, di); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$4++; + $s = 43; continue; + case 44: + $s = 6; continue; + /* } else if ($assertType(_ref$2, typeDecl, true)[1]) { */ case 4: + d$4 = $clone(_ref$2.$val, typeDecl); + /* */ if (!((d$4.spec.TypeParams.NumFields() === 0)) && !check[0].allowVersion(pkg[0], 1, 18)) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (!((d$4.spec.TypeParams.NumFields() === 0)) && !check[0].allowVersion(pkg[0], 1, 18)) { */ case 46: + $r = check[0].softErrorf((x$3 = d$4.spec.TypeParams.List, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), 135, "type parameters require go1.18 or later", sliceType$5.nil); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 47: + obj$3 = NewTypeName(d$4.spec.Name.Pos(), pkg[0], d$4.spec.Name.Name, $ifaceNil); + $r = check[0].declarePkgObj(d$4.spec.Name, obj$3, new declInfo.ptr(fileScope[0], sliceType$10.nil, $ifaceNil, $ifaceNil, false, d$4.spec, ptrType$86.nil, false)); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if ($assertType(_ref$2, funcDecl, true)[1]) { */ case 5: + d$5 = $clone(_ref$2.$val, funcDecl); + name$4 = d$5.decl.Name.Name; + obj$4 = NewFunc(d$5.decl.Name.Pos(), pkg[0], name$4, ptrType$27.nil); + hasTParamError = false; + /* */ if (d$5.decl.Recv.NumFields() === 0) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if (d$5.decl.Recv.NumFields() === 0) { */ case 50: + /* */ if (!(d$5.decl.Recv === ptrType$49.nil)) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (!(d$5.decl.Recv === ptrType$49.nil)) { */ case 53: + $r = check[0].error(d$5.decl.Recv, 31, "method is missing receiver"); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 54: + /* */ if (name$4 === "init" || (name$4 === "main" && check[0].pkg.name === "main")) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if (name$4 === "init" || (name$4 === "main" && check[0].pkg.name === "main")) { */ case 56: + code = 39; + if (name$4 === "main") { + code = 40; + } + /* */ if (!((d$5.decl.Type.TypeParams.NumFields() === 0))) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (!((d$5.decl.Type.TypeParams.NumFields() === 0))) { */ case 58: + $r = check[0].softErrorf((x$4 = d$5.decl.Type.TypeParams.List, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])), code, "func %s must have no type parameters", new sliceType$5([new $String(name$4)])); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + hasTParamError = true; + /* } */ case 59: + t = d$5.decl.Type; + /* */ if (!((t.Params.NumFields() === 0)) || !(t.Results === ptrType$49.nil)) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (!((t.Params.NumFields() === 0)) || !(t.Results === ptrType$49.nil)) { */ case 61: + $r = check[0].softErrorf(d$5.decl, code, "func %s must have no arguments and no return values", new sliceType$5([new $String(name$4)])); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 62: + /* } */ case 57: + /* */ if (name$4 === "init") { $s = 64; continue; } + /* */ $s = 65; continue; + /* if (name$4 === "init") { */ case 64: + obj$4.object.parent = pkg[0].scope; + $r = check[0].recordDef(d$5.decl.Name, obj$4); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (d$5.decl.Body === ptrType$73.nil) { $s = 68; continue; } + /* */ $s = 69; continue; + /* if (d$5.decl.Body === ptrType$73.nil) { */ case 68: + $r = check[0].softErrorf(obj$4, 37, "missing function body", sliceType$5.nil); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 69: + $s = 66; continue; + /* } else { */ case 65: + $r = check[0].declare(pkg[0].scope, d$5.decl.Name, obj$4, 0); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 66: + $s = 52; continue; + /* } else { */ case 51: + _r$11 = check[0].unpackRecv((x$5 = d$5.decl.Recv.List, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).Type, false); /* */ $s = 72; case 72: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$1 = _r$11; + ptr = _tuple$1[0]; + recv = _tuple$1[1]; + if (!(recv === ptrType$30.nil) && !(name$4 === "_")) { + methods[0] = $append(methods[0], new methodInfo.ptr(obj$4, ptr, recv)); + } + $r = check[0].recordDef(d$5.decl.Name, obj$4); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 52: + /* */ if (!((d$5.decl.Type.TypeParams.NumFields() === 0)) && !check[0].allowVersion(pkg[0], 1, 18) && !hasTParamError) { $s = 74; continue; } + /* */ $s = 75; continue; + /* if (!((d$5.decl.Type.TypeParams.NumFields() === 0)) && !check[0].allowVersion(pkg[0], 1, 18) && !hasTParamError) { */ case 74: + $r = check[0].softErrorf((x$6 = d$5.decl.Type.TypeParams.List, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])), 135, "type parameters require go1.18 or later", sliceType$5.nil); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 75: + info = new declInfo.ptr(fileScope[0], sliceType$10.nil, $ifaceNil, $ifaceNil, false, ptrType$89.nil, d$5.decl, false); + _key$4 = obj$4; (check[0].objMap || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key$4), { k: _key$4, v: info }); + $r = obj$4.object.setOrder((((check[0].objMap ? check[0].objMap.size : 0) >>> 0))); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·collectObjects·func1, $c: true, $r, _arg$4, _arg$5, _entry, _entry$1, _i$2, _i$3, _i$4, _key$1, _key$2, _key$3, _key$4, _keys, _r$10, _r$11, _r$7, _r$8, _r$9, _ref$2, _ref$3, _ref$4, _ref$5, _size, _tuple, _tuple$1, alt, code, d, d$1, d$2, d$3, d$4, d$5, d$6, d1, di, err, hasTParamError, i, i$1, imp$1, info, init$5, init$6, lhs, name, name$1, name$2, name$3, name$4, obj, obj$1, obj$2, obj$3, obj$4, path, pkgName, ptr, recv, t, x, x$1, x$2, x$3, x$4, x$5, x$6, $s};return $f; + }; })(check, fileDir, fileScope, methods, pkg, pkgImports)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 1; continue; + case 2: + _ref$2 = fileScopes; + _i$2 = 0; + /* while (true) { */ case 12: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 13; continue; } + scope = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + _ref$3 = scope.elems; + _i$3 = 0; + _keys = _ref$3 ? _ref$3.keys() : undefined; + _size = _ref$3 ? _ref$3.size : 0; + /* while (true) { */ case 14: + /* if (!(_i$3 < _size)) { break; } */ if(!(_i$3 < _size)) { $s = 15; continue; } + _key$1 = _keys.next().value; + _entry = _ref$3.get(_key$1); + if (_entry === undefined) { + _i$3++; + /* continue; */ $s = 14; continue; + } + name = _entry.k; + obj = _entry.v; + _r$7 = pkg[0].scope.Lookup(name); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + alt = _r$7; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 17: + _r$8 = resolve(name, obj); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + obj = _r$8; + _tuple = $assertType(obj, ptrType$31, true); + pkg$1 = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (ok) { */ case 20: + _arg$4 = alt; + _r$9 = alt.Name(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$5 = new $String(_r$9); + _arg$6 = pkg$1.Imported(); + $r = check[0].errorf(_arg$4, 10, "%s already declared through import of %s", new sliceType$5([_arg$5, _arg$6])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].reportAltDecl(pkg$1); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else { */ case 21: + _arg$7 = alt; + _r$10 = alt.Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _arg$8 = new $String(_r$10); + _r$11 = obj.Pkg(); /* */ $s = 27; case 27: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _arg$9 = _r$11; + $r = check[0].errorf(_arg$7, 10, "%s already declared through dot-import of %s", new sliceType$5([_arg$8, _arg$9])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].reportAltDecl(obj); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 22: + /* } */ case 18: + _i$3++; + $s = 14; continue; + case 15: + _i$2++; + $s = 12; continue; + case 13: + if (methods[0] === sliceType$21.nil) { + $s = -1; return; + } + check[0].methods = new $global.Map(); + _ref$4 = methods[0]; + _i$4 = 0; + /* while (true) { */ case 30: + /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 31; continue; } + i = _i$4; + m = ((i < 0 || i >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + i]); + _r$12 = check[0].resolveBaseTypeName(m.ptr, m.recv); /* */ $s = 32; case 32: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple$1 = _r$12; + ptr = _tuple$1[0]; + base = _tuple$1[1]; + if (!(base === ptrType$17.nil)) { + m.obj.hasPtrRecv_ = ptr; + _key$2 = base; (check[0].methods || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key$2), { k: _key$2, v: $append((_entry$1 = $mapIndex(check[0].methods,ptrType$17.keyFor(base)), _entry$1 !== undefined ? _entry$1.v : sliceType.nil), m.obj) }); + } + _i$4++; + $s = 30; continue; + case 31: + $s = -1; return; + /* */ } return; } var $f = {$blk: collectObjects, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _keys, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, alt, base, check, end, f, file, fileDir, fileNo, fileScope, fileScopes, i, imp, m, methods, name, obj, ok, pkg, pkg$1, pkgImports, pos, ptr, scope, $s};return $f; + }; + $ptrType(Checker).prototype.unpackRecv = function unpackRecv(rtyp, unpackParams) { + var {_i, _r$1, _ref, _ref$1, _ref$2, _ref$3, _tuple, arg, arg$1, arg$2, arg$3, arg$4, check, ix, name, par, ptr, rname, rtyp, t, t$1, t$2, tparams, unpackParams, $s, $r, $c} = $restore(this, {rtyp, unpackParams}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ptr = false; + rname = ptrType$30.nil; + tparams = sliceType$22.nil; + check = this; + L: + while (true) { + _ref = rtyp; + if ($assertType(_ref, ptrType$39, true)[1]) { + t = _ref.$val; + rtyp = t.X; + } else if ($assertType(_ref, ptrType$43, true)[1]) { + t$1 = _ref.$val; + ptr = true; + rtyp = t$1.X; + } else { + t$2 = _ref; + break L; + } + } + _ref$1 = rtyp; + /* */ if ($assertType(_ref$1, ptrType$37, true)[1] || $assertType(_ref$1, ptrType$38, true)[1]) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($assertType(_ref$1, ptrType$37, true)[1] || $assertType(_ref$1, ptrType$38, true)[1]) { */ case 1: + ix = typeparams.UnpackIndexExpr(rtyp); + rtyp = ix.IndexListExpr.X; + /* */ if (unpackParams) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (unpackParams) { */ case 3: + _ref$2 = ix.IndexListExpr.Indices; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref$2.$length)) { break; } */ if(!(_i < _ref$2.$length)) { $s = 6; continue; } + arg = ((_i < 0 || _i >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i]); + par = ptrType$30.nil; + _ref$3 = arg; + /* */ if ($assertType(_ref$3, ptrType$30, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref$3, ptrType$35, true)[1]) { $s = 8; continue; } + /* */ if (_ref$3 === $ifaceNil) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($assertType(_ref$3, ptrType$30, true)[1]) { */ case 7: + arg$1 = _ref$3.$val; + par = arg$1; + $s = 11; continue; + /* } else if ($assertType(_ref$3, ptrType$35, true)[1]) { */ case 8: + arg$2 = _ref$3.$val; + $s = 11; continue; + /* } else if (_ref$3 === $ifaceNil) { */ case 9: + arg$3 = _ref$3; + $r = check.invalidAST(ix.Orig, "parameterized receiver contains nil parameters", sliceType$5.nil); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 11; continue; + /* } else { */ case 10: + arg$4 = _ref$3; + $r = check.errorf(arg$4, 131, "receiver type parameter %s must be an identifier", new sliceType$5([arg$4])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + /* */ if (par === ptrType$30.nil) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (par === ptrType$30.nil) { */ case 14: + _r$1 = arg.Pos(); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + par = new ast.Ident.ptr(_r$1, "_", ptrType$80.nil); + /* } */ case 15: + tparams = $append(tparams, par); + _i++; + $s = 5; continue; + case 6: + /* } */ case 4: + /* } */ case 2: + _tuple = $assertType(rtyp, ptrType$30, true); + name = _tuple[0]; + if (!(name === ptrType$30.nil)) { + rname = name; + } + $s = -1; return [ptr, rname, tparams]; + /* */ } return; } var $f = {$blk: unpackRecv, $c: true, $r, _i, _r$1, _ref, _ref$1, _ref$2, _ref$3, _tuple, arg, arg$1, arg$2, arg$3, arg$4, check, ix, name, par, ptr, rname, rtyp, t, t$1, t$2, tparams, unpackParams, $s};return $f; + }; + $ptrType(Checker).prototype.resolveBaseTypeName = function resolveBaseTypeName(seenPtr, name) { + var {_entry, _entry$1, _key, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, base, check, name, name$1, obj, pexpr, ptr, seen, seenPtr, tdecl, tname, typ$3, $s, $r, $c} = $restore(this, {seenPtr, name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ptr = false; + base = ptrType$17.nil; + check = this; + ptr = seenPtr; + seen = false; + typ$3 = name; + /* while (true) { */ case 1: + typ$3 = unparen(typ$3); + _tuple = $assertType(typ$3, ptrType$43, true); + pexpr = _tuple[0]; + if (!(pexpr === ptrType$43.nil)) { + if (ptr) { + _tmp = false; + _tmp$1 = ptrType$17.nil; + ptr = _tmp; + base = _tmp$1; + $s = -1; return [ptr, base]; + } + ptr = true; + typ$3 = unparen(pexpr.X); + } + _tuple$1 = $assertType(typ$3, ptrType$30, true); + name$1 = _tuple$1[0]; + if (name$1 === ptrType$30.nil) { + _tmp$2 = false; + _tmp$3 = ptrType$17.nil; + ptr = _tmp$2; + base = _tmp$3; + $s = -1; return [ptr, base]; + } + _r$1 = check.pkg.scope.Lookup(name$1.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + obj = _r$1; + if ($interfaceIsEqual(obj, $ifaceNil)) { + _tmp$4 = false; + _tmp$5 = ptrType$17.nil; + ptr = _tmp$4; + base = _tmp$5; + $s = -1; return [ptr, base]; + } + _tuple$2 = $assertType(obj, ptrType$17, true); + tname = _tuple$2[0]; + if (tname === ptrType$17.nil) { + _tmp$6 = false; + _tmp$7 = ptrType$17.nil; + ptr = _tmp$6; + base = _tmp$7; + $s = -1; return [ptr, base]; + } + if ((_entry = $mapIndex(seen,ptrType$17.keyFor(tname)), _entry !== undefined ? _entry.v : false)) { + _tmp$8 = false; + _tmp$9 = ptrType$17.nil; + ptr = _tmp$8; + base = _tmp$9; + $s = -1; return [ptr, base]; + } + tdecl = (_entry$1 = $mapIndex(check.objMap,Object.keyFor(tname)), _entry$1 !== undefined ? _entry$1.v : ptrType$57.nil).tdecl; + if (!new token.Pos(tdecl.Assign).IsValid()) { + _tmp$10 = ptr; + _tmp$11 = tname; + ptr = _tmp$10; + base = _tmp$11; + $s = -1; return [ptr, base]; + } + typ$3 = tdecl.Type; + if (seen === false) { + seen = new $global.Map(); + } + _key = tname; (seen || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key), { k: _key, v: true }); + $s = 1; continue; + case 2: + $s = -1; return [ptr, base]; + /* */ } return; } var $f = {$blk: resolveBaseTypeName, $c: true, $r, _entry, _entry$1, _key, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, base, check, name, name$1, obj, pexpr, ptr, seen, seenPtr, tdecl, tname, typ$3, $s};return $f; + }; + $ptrType(Checker).prototype.packageObjects = function packageObjects() { + var {_entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _keys, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tuple, _tuple$1, aliasList, check, i, obj, obj$1, obj$2, obj$3, obj$4, obj$5, objList, othersList, tname, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + objList = $makeSlice(sliceType$8, (check.objMap ? check.objMap.size : 0)); + i = 0; + _ref = check.objMap; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + obj = _entry.k; + ((i < 0 || i >= objList.$length) ? ($throwRuntimeError("index out of range"), undefined) : objList.$array[objList.$offset + i] = obj); + i = i + (1) >> 0; + _i++; + } + $r = sort.Sort(($convertSliceType(objList, inSourceOrder))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$1 = objList; + _i$1 = 0; + /* while (true) { */ case 2: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 3; continue; } + obj$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _tuple = $assertType(obj$1, ptrType$17, true); + obj$2 = _tuple[0]; + /* */ if (!(obj$2 === ptrType$17.nil) && !($interfaceIsEqual(obj$2.object.typ, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(obj$2 === ptrType$17.nil) && !($interfaceIsEqual(obj$2.object.typ, $ifaceNil))) { */ case 4: + $r = check.collectMethods(obj$2); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + _i$1++; + $s = 2; continue; + case 3: + aliasList = sliceType$23.nil; + othersList = sliceType$8.nil; + _ref$2 = objList; + _i$2 = 0; + /* while (true) { */ case 7: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 8; continue; } + obj$3 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + _tuple$1 = $assertType(obj$3, ptrType$17, true); + tname = _tuple$1[0]; + /* */ if (!(tname === ptrType$17.nil)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(tname === ptrType$17.nil)) { */ case 9: + /* */ if (new token.Pos((_entry$1 = $mapIndex(check.objMap,Object.keyFor(tname)), _entry$1 !== undefined ? _entry$1.v : ptrType$57.nil).tdecl.Assign).IsValid()) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (new token.Pos((_entry$1 = $mapIndex(check.objMap,Object.keyFor(tname)), _entry$1 !== undefined ? _entry$1.v : ptrType$57.nil).tdecl.Assign).IsValid()) { */ case 12: + aliasList = $append(aliasList, tname); + $s = 14; continue; + /* } else { */ case 13: + $r = check.objDecl(obj$3, ptrType$9.nil); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + $s = 11; continue; + /* } else { */ case 10: + othersList = $append(othersList, obj$3); + /* } */ case 11: + _i$2++; + $s = 7; continue; + case 8: + _ref$3 = aliasList; + _i$3 = 0; + /* while (true) { */ case 16: + /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 17; continue; } + obj$4 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + $r = check.objDecl(obj$4, ptrType$9.nil); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$3++; + $s = 16; continue; + case 17: + _ref$4 = othersList; + _i$4 = 0; + /* while (true) { */ case 19: + /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 20; continue; } + obj$5 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); + $r = check.objDecl(obj$5, ptrType$9.nil); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$4++; + $s = 19; continue; + case 20: + check.methods = false; + $s = -1; return; + /* */ } return; } var $f = {$blk: packageObjects, $c: true, $r, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _keys, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tuple, _tuple$1, aliasList, check, i, obj, obj$1, obj$2, obj$3, obj$4, obj$5, objList, othersList, tname, $s};return $f; + }; + inSourceOrder.prototype.Len = function Len$6() { + var a; + a = this; + return a.$length; + }; + $ptrType(inSourceOrder).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + inSourceOrder.prototype.Less = function Less$1(i, j) { + var {$24r, _r$1, _r$2, a, i, j, $s, $r, $c} = $restore(this, {i, j}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = this; + _r$1 = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]).order(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]).order(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$1 < _r$2; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Less$1, $c: true, $r, $24r, _r$1, _r$2, a, i, j, $s};return $f; + }; + $ptrType(inSourceOrder).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + inSourceOrder.prototype.Swap = function Swap$1(i, j) { + var _tmp, _tmp$1, a, i, j; + a = this; + _tmp = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); + _tmp$1 = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = _tmp); + ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j] = _tmp$1); + }; + $ptrType(inSourceOrder).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + $ptrType(Checker).prototype.unusedImports = function unusedImports() { + var {_i, _ref, check, obj, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + if (check.conf.IgnoreFuncBodies) { + $s = -1; return; + } + _ref = check.imports; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + obj = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (!obj.used && !(obj.object.name === "_")) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!obj.used && !(obj.object.name === "_")) { */ case 3: + $r = check.errorUnusedPkg(obj); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: unusedImports, $c: true, $r, _i, _ref, check, obj, $s};return $f; + }; + $ptrType(Checker).prototype.errorUnusedPkg = function errorUnusedPkg(obj) { + var {check, elem, i, obj, path, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + path = obj.imported.path; + elem = path; + i = strings.LastIndex(elem, "/"); + if (i >= 0) { + elem = $substring(elem, (i + 1 >> 0)); + } + /* */ if (obj.object.name === "" || obj.object.name === "." || obj.object.name === elem) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (obj.object.name === "" || obj.object.name === "." || obj.object.name === elem) { */ case 1: + $r = check.softErrorf(obj, 8, "%q imported but not used", new sliceType$5([new $String(path)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 3; continue; + /* } else { */ case 2: + $r = check.softErrorf(obj, 8, "%q imported but not used as %s", new sliceType$5([new $String(path), new $String(obj.object.name)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: errorUnusedPkg, $c: true, $r, check, elem, i, obj, path, $s};return $f; + }; + dir = function dir$1(path) { + var i, path; + i = strings.LastIndexAny(path, "/\\"); + if (i > 0) { + return $substring(path, 0, i); + } + return "."; + }; + isBoolean = function isBoolean$1(t) { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = isBasic(t, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isBoolean$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + isInteger = function isInteger$1(t) { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = isBasic(t, 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isInteger$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + isUnsigned = function isUnsigned$1(t) { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = isBasic(t, 4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isUnsigned$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + isFloat = function isFloat$1(t) { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = isBasic(t, 8); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isFloat$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + isComplex = function isComplex$1(t) { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = isBasic(t, 16); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isComplex$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + isNumeric = function isNumeric$1(t) { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = isBasic(t, 26); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isNumeric$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + isString = function isString$1(t) { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = isBasic(t, 32); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isString$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + isIntegerOrFloat = function isIntegerOrFloat$1(t) { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = isBasic(t, 10); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isIntegerOrFloat$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + isConstType = function isConstType$1(t) { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = isBasic(t, 59); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isConstType$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + isBasic = function isBasic$1(t, info) { + var {_r$1, _tuple, info, t, u, $s, $r, $c} = $restore(this, {t, info}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$4, true); + u = _tuple[0]; + $s = -1; return !(u === ptrType$4.nil) && !(((u.info & info) === 0)); + /* */ } return; } var $f = {$blk: isBasic$1, $c: true, $r, _r$1, _tuple, info, t, u, $s};return $f; + }; + allBoolean = function allBoolean$1(typ$3) { + var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = allBasic(typ$3, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: allBoolean$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; + }; + allInteger = function allInteger$1(typ$3) { + var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = allBasic(typ$3, 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: allInteger$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; + }; + allUnsigned = function allUnsigned$1(typ$3) { + var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = allBasic(typ$3, 4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: allUnsigned$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; + }; + allNumeric = function allNumeric$1(typ$3) { + var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = allBasic(typ$3, 26); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: allNumeric$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; + }; + allString = function allString$1(typ$3) { + var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = allBasic(typ$3, 32); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: allString$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; + }; + allOrdered = function allOrdered$1(typ$3) { + var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = allBasic(typ$3, 42); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: allOrdered$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; + }; + allNumericOrString = function allNumericOrString$1(typ$3) { + var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = allBasic(typ$3, 58); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: allNumericOrString$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; + }; + allBasic = function allBasic$1(t, info) { + var {$24r, $24r$1, _r$1, _r$2, _tuple, info, t, tpar, $s, $r, $c} = $restore(this, {t, info}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + info = [info]; + _tuple = $assertType(t, ptrType$14, true); + tpar = _tuple[0]; + /* */ if (!(tpar === ptrType$14.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(tpar === ptrType$14.nil)) { */ case 1: + _r$1 = tpar.is((function(info) { return function allBasic·func1(t$1) { + var {$24r, _r$1, _v, t$1, $s, $r, $c} = $restore(this, {t$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(!(t$1 === ptrType$5.nil))) { _v = false; $s = 1; continue s; } + _r$1 = isBasic(t$1.typ, info[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 1: + $24r = _v; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: allBasic·func1, $c: true, $r, $24r, _r$1, _v, t$1, $s};return $f; + }; })(info)); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$2 = isBasic(t, info[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: allBasic$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tuple, info, t, tpar, $s};return $f; + }; + hasName = function hasName$1(t) { + var _ref, t; + _ref = t; + if ($assertType(_ref, ptrType$4, true)[1] || $assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$14, true)[1]) { + return true; + } + return false; + }; + isTyped = function isTyped$1(t) { + var _tuple, b, t; + _tuple = $assertType(t, ptrType$4, true); + b = _tuple[0]; + return b === ptrType$4.nil || ((b.info & 64) === 0); + }; + isUntyped = function isUntyped$1(t) { + var t; + return !isTyped(t); + }; + IsInterface = function IsInterface$1(t) { + var {_r$1, _tuple, ok, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$13, true); + ok = _tuple[1]; + $s = -1; return ok; + /* */ } return; } var $f = {$blk: IsInterface$1, $c: true, $r, _r$1, _tuple, ok, t, $s};return $f; + }; + $pkg.IsInterface = IsInterface; + isNonTypeParamInterface = function isNonTypeParamInterface$1(t) { + var {$24r, _r$1, _v, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(!isTypeParam(t))) { _v = false; $s = 1; continue s; } + _r$1 = IsInterface(t); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 1: + $24r = _v; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: isNonTypeParamInterface$1, $c: true, $r, $24r, _r$1, _v, t, $s};return $f; + }; + isTypeParam = function isTypeParam$1(t) { + var _tuple, ok, t; + _tuple = $assertType(t, ptrType$14, true); + ok = _tuple[1]; + return ok; + }; + isGeneric = function isGeneric$1(t) { + var {$24r, _r$1, _r$2, _tuple, _v, named, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(t, ptrType$9, true); + named = _tuple[0]; + if (!(!(named === ptrType$9.nil) && !(named.obj === ptrType$17.nil) && named.inst === ptrType$52.nil)) { _v = false; $s = 1; continue s; } + _r$1 = named.TypeParams(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.Len(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2 > 0; case 1: + $24r = _v; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: isGeneric$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, _v, named, t, $s};return $f; + }; + Comparable = function Comparable$1(T) { + var {$24r, T, _r$1, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = comparable(T, true, false, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Comparable$1, $c: true, $r, $24r, T, _r$1, $s};return $f; + }; + $pkg.Comparable = Comparable; + comparable = function comparable$1(T, dynamic, seen, reportf) { + var {T, _entry, _i, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _v, dynamic, f, reportf, seen, t, t$1, t$2, t$3, t$4, $s, $r, $c} = $restore(this, {T, dynamic, seen, reportf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ((_entry = $mapIndex(seen,Type.keyFor(T)), _entry !== undefined ? _entry.v : false)) { + $s = -1; return true; + } + if (seen === false) { + seen = new $global.Map(); + } + _key = T; (seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: true }); + _r$1 = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: + t = _ref.$val; + $s = -1; return !((t.kind === 25)); + /* } else if ($assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { */ case 3: + t$1 = _ref; + $s = -1; return true; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: + t$2 = _ref.$val; + _ref$1 = t$2.fields; + _i = 0; + /* while (true) { */ case 8: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 9; continue; } + f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$2 = comparable(f.object.typ, dynamic, seen, $throwNilPointerError); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!_r$2) { */ case 10: + /* */ if (!(reportf === $throwNilPointerError)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!(reportf === $throwNilPointerError)) { */ case 13: + $r = reportf("struct containing %s cannot be compared", new sliceType$5([f.object.typ])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + $s = -1; return false; + /* } */ case 11: + _i++; + $s = 8; continue; + case 9: + $s = -1; return true; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 5: + t$3 = _ref.$val; + _r$3 = comparable(t$3.elem, dynamic, seen, $throwNilPointerError); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!_r$3) { */ case 16: + /* */ if (!(reportf === $throwNilPointerError)) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!(reportf === $throwNilPointerError)) { */ case 19: + $r = reportf("%s cannot be compared", new sliceType$5([t$3])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + $s = -1; return false; + /* } */ case 17: + $s = -1; return true; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 6: + t$4 = _ref.$val; + if (dynamic && !isTypeParam(T)) { _v = true; $s = 24; continue s; } + _r$4 = t$4.typeSet(); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = _r$4.IsComparable(seen); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v = _r$5; case 24: + /* */ if (_v) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (_v) { */ case 22: + $s = -1; return true; + /* } */ case 23: + /* */ if (!(reportf === $throwNilPointerError)) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!(reportf === $throwNilPointerError)) { */ case 27: + _r$6 = t$4.typeSet(); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = _r$6.IsEmpty(); /* */ $s = 33; case 33: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (_r$7) { */ case 29: + $r = reportf("empty type set", sliceType$5.nil); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 31; continue; + /* } else { */ case 30: + $r = reportf("incomparable types in type set", sliceType$5.nil); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 31: + /* } */ case 28: + /* } */ case 7: + $s = -1; return false; + /* */ } return; } var $f = {$blk: comparable$1, $c: true, $r, T, _entry, _i, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _v, dynamic, f, reportf, seen, t, t$1, t$2, t$3, t$4, $s};return $f; + }; + hasNil = function hasNil$1(t) { + var {$24r, _r$1, _r$2, _r$3, _ref, _v, t, u, u$1, u$2, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: + u = _ref.$val; + $s = -1; return u.kind === 18; + /* } else if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { */ case 3: + u$1 = _ref; + $s = -1; return true; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 4: + u$2 = _ref.$val; + if (!isTypeParam(t)) { _v = true; $s = 6; continue s; } + _r$2 = u$2.typeSet(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.underIs((function hasNil·func1(u$3) { + var {$24r, _r$3, _v$1, u$3, $s, $r, $c} = $restore(this, {u$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(!($interfaceIsEqual(u$3, $ifaceNil)))) { _v$1 = false; $s = 1; continue s; } + _r$3 = hasNil(u$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v$1 = _r$3; case 1: + $24r = _v$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: hasNil·func1, $c: true, $r, $24r, _r$3, _v$1, u$3, $s};return $f; + })); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 6: + $24r = _v; + $s = 9; case 9: return $24r; + /* } */ case 5: + $s = -1; return false; + /* */ } return; } var $f = {$blk: hasNil$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, _ref, _v, t, u, u$1, u$2, $s};return $f; + }; + $ptrType(ifacePair).prototype.identical = function identical$1(q) { + var p, q; + p = this; + return p.x === q.x && p.y === q.y || p.x === q.y && p.y === q.x; + }; + identical = function identical$2(x, y, cmpTags, p) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, check, cmpTags, ctxt, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, i$5, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, smap, targs, unionSets, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xa, xargs, xset, xset$1, xtparam, xtparams, y, y$1, y$10, y$11, y$12, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, ybound, yparams, yresults, yset, yset$1, ytparams, $s, $r, $c} = $restore(this, {x, y, cmpTags, p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(x, y)) { + $s = -1; return true; + } + _ref = x; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 13; continue; } + /* */ if (_ref === $ifaceNil) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 1: + x$1 = _ref.$val; + _tuple = $assertType(y, ptrType$4, true); + y$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return x$1.kind === y$1.kind; + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: + x$2 = _ref.$val; + _tuple$1 = $assertType(y, ptrType$10, true); + y$2 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (ok$1) { */ case 17: + if (!((x$16 = x$2.len, (x$16.$high < 0 || (x$16.$high === 0 && x$16.$low < 0))) || (x$17 = y$2.len, (x$17.$high < 0 || (x$17.$high === 0 && x$17.$low < 0))) || (x$18 = x$2.len, x$19 = y$2.len, (x$18.$high === x$19.$high && x$18.$low === x$19.$low)))) { _v = false; $s = 19; continue s; } + _r$1 = identical(x$2.elem, y$2.elem, cmpTags, p); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 19: + $24r = _v; + $s = 21; case 21: return $24r; + /* } */ case 18: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 3: + x$3 = _ref.$val; + _tuple$2 = $assertType(y, ptrType$25, true); + y$3 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + /* */ if (ok$2) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (ok$2) { */ case 22: + _r$2 = identical(x$3.elem, y$3.elem, cmpTags, p); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 25; case 25: return $24r$1; + /* } */ case 23: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: + x$4 = _ref.$val; + _tuple$3 = $assertType(y, ptrType$11, true); + y$4 = _tuple$3[0]; + ok$3 = _tuple$3[1]; + /* */ if (ok$3) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (ok$3) { */ case 26: + /* */ if (x$4.NumFields() === y$4.NumFields()) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (x$4.NumFields() === y$4.NumFields()) { */ case 28: + _ref$1 = x$4.fields; + _i = 0; + /* while (true) { */ case 30: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 31; continue; } + i = _i; + f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + g = (x$20 = y$4.fields, ((i < 0 || i >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + i])); + if (!(f.embedded === g.embedded) || cmpTags && !(x$4.Tag(i) === y$4.Tag(i)) || !f.object.sameId(g.object.pkg, g.object.name)) { _v$1 = true; $s = 34; continue s; } + _r$3 = identical(f.object.typ, g.object.typ, cmpTags, p); /* */ $s = 35; case 35: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v$1 = !_r$3; case 34: + /* */ if (_v$1) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (_v$1) { */ case 32: + $s = -1; return false; + /* } */ case 33: + _i++; + $s = 30; continue; + case 31: + $s = -1; return true; + /* } */ case 29: + /* } */ case 27: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 5: + x$5 = _ref.$val; + _tuple$4 = $assertType(y, ptrType$26, true); + y$5 = _tuple$4[0]; + ok$4 = _tuple$4[1]; + /* */ if (ok$4) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (ok$4) { */ case 36: + _r$4 = identical(x$5.base, y$5.base, cmpTags, p); /* */ $s = 38; case 38: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$2 = _r$4; + $s = 39; case 39: return $24r$2; + /* } */ case 37: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 6: + x$6 = _ref.$val; + _tuple$5 = $assertType(y, ptrType$15, true); + y$6 = _tuple$5[0]; + ok$5 = _tuple$5[1]; + /* */ if (ok$5) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (ok$5) { */ case 40: + /* */ if (x$6.Len() === y$6.Len()) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (x$6.Len() === y$6.Len()) { */ case 42: + /* */ if (!(x$6 === ptrType$15.nil)) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!(x$6 === ptrType$15.nil)) { */ case 44: + _ref$2 = x$6.vars; + _i$1 = 0; + /* while (true) { */ case 46: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 47; continue; } + i$1 = _i$1; + v = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + w = (x$21 = y$6.vars, ((i$1 < 0 || i$1 >= x$21.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$21.$array[x$21.$offset + i$1])); + _r$5 = identical(v.object.typ, w.object.typ, cmpTags, p); /* */ $s = 50; case 50: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (!_r$5) { */ case 48: + $s = -1; return false; + /* } */ case 49: + _i$1++; + $s = 46; continue; + case 47: + /* } */ case 45: + $s = -1; return true; + /* } */ case 43: + /* } */ case 41: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 7: + x$7 = _ref.$val; + _tuple$6 = $assertType(y, ptrType$27, true); + y$7 = _tuple$6[0]; + if (y$7 === ptrType$27.nil) { + $s = -1; return false; + } + if (!((x$7.TypeParams().Len() === y$7.TypeParams().Len()))) { + $s = -1; return false; + } + yparams = y$7.params; + yresults = y$7.results; + /* */ if (x$7.TypeParams().Len() > 0) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (x$7.TypeParams().Len() > 0) { */ case 51: + xtparams = x$7.TypeParams().list(); + ytparams = y$7.TypeParams().list(); + targs = sliceType$3.nil; + _ref$3 = xtparams; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$3.$length)) { break; } + i$2 = _i$2; + targs = $append(targs, x$7.TypeParams().At(i$2)); + _i$2++; + } + _r$6 = makeSubstMap(ytparams, targs); /* */ $s = 53; case 53: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + smap = _r$6; + check = ptrType$6.nil; + ctxt = NewContext(); + _ref$4 = xtparams; + _i$3 = 0; + /* while (true) { */ case 54: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 55; continue; } + i$3 = _i$3; + xtparam = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + _r$7 = check.subst(0, ((i$3 < 0 || i$3 >= ytparams.$length) ? ($throwRuntimeError("index out of range"), undefined) : ytparams.$array[ytparams.$offset + i$3]).bound, smap, ptrType$9.nil, ctxt); /* */ $s = 56; case 56: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + ybound = _r$7; + _r$8 = identical(xtparam.bound, ybound, cmpTags, p); /* */ $s = 59; case 59: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!_r$8) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (!_r$8) { */ case 57: + $s = -1; return false; + /* } */ case 58: + _i$3++; + $s = 54; continue; + case 55: + _r$9 = check.subst(0, y$7.params, smap, ptrType$9.nil, ctxt); /* */ $s = 60; case 60: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + yparams = $assertType(_r$9, ptrType$15); + _r$10 = check.subst(0, y$7.results, smap, ptrType$9.nil, ctxt); /* */ $s = 61; case 61: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + yresults = $assertType(_r$10, ptrType$15); + /* } */ case 52: + if (!(x$7.variadic === y$7.variadic)) { _v$3 = false; $s = 63; continue s; } + _r$11 = identical(x$7.params, yparams, cmpTags, p); /* */ $s = 64; case 64: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _v$3 = _r$11; case 63: + if (!(_v$3)) { _v$2 = false; $s = 62; continue s; } + _r$12 = identical(x$7.results, yresults, cmpTags, p); /* */ $s = 65; case 65: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _v$2 = _r$12; case 62: + $24r$3 = _v$2; + $s = 66; case 66: return $24r$3; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 8: + x$8 = _ref.$val; + _tuple$7 = $assertType(y, ptrType$12, true); + y$8 = _tuple$7[0]; + /* */ if (!(y$8 === ptrType$12.nil)) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (!(y$8 === ptrType$12.nil)) { */ case 67: + unionSets = new $global.Map(); + _r$13 = computeUnionTypeSet(ptrType$6.nil, unionSets, 0, x$8); /* */ $s = 69; case 69: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + xset = _r$13; + _r$14 = computeUnionTypeSet(ptrType$6.nil, unionSets, 0, y$8); /* */ $s = 70; case 70: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + yset = _r$14; + _r$15 = xset.terms.equal(yset.terms); /* */ $s = 71; case 71: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $24r$4 = _r$15; + $s = 72; case 72: return $24r$4; + /* } */ case 68: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 9: + x$9 = _ref.$val; + _tuple$8 = $assertType(y, ptrType$13, true); + y$9 = _tuple$8[0]; + ok$6 = _tuple$8[1]; + /* */ if (ok$6) { $s = 73; continue; } + /* */ $s = 74; continue; + /* if (ok$6) { */ case 73: + _r$16 = x$9.typeSet(); /* */ $s = 75; case 75: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + xset$1 = _r$16; + _r$17 = y$9.typeSet(); /* */ $s = 76; case 76: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + yset$1 = _r$17; + if (!(xset$1.comparable === yset$1.comparable)) { + $s = -1; return false; + } + _r$18 = xset$1.terms.equal(yset$1.terms); /* */ $s = 79; case 79: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + /* */ if (!_r$18) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (!_r$18) { */ case 77: + $s = -1; return false; + /* } */ case 78: + a = xset$1.methods; + b = yset$1.methods; + /* */ if (a.$length === b.$length) { $s = 80; continue; } + /* */ $s = 81; continue; + /* if (a.$length === b.$length) { */ case 80: + q = new ifacePair.ptr(x$9, y$9, p); + while (true) { + if (!(!(p === ptrType$23.nil))) { break; } + if (p.identical(q)) { + $s = -1; return true; + } + p = p.prev; + } + /* */ if (false) { $s = 82; continue; } + /* */ $s = 83; continue; + /* if (false) { */ case 82: + $r = assertSortedMethods(a); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assertSortedMethods(b); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 83: + _ref$5 = a; + _i$4 = 0; + /* while (true) { */ case 86: + /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 87; continue; } + i$4 = _i$4; + f$1 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); + g$1 = ((i$4 < 0 || i$4 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i$4]); + if (!(f$1.object.Id() === g$1.object.Id())) { _v$4 = true; $s = 90; continue s; } + _r$19 = identical(f$1.object.typ, g$1.object.typ, cmpTags, q); /* */ $s = 91; case 91: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _v$4 = !_r$19; case 90: + /* */ if (_v$4) { $s = 88; continue; } + /* */ $s = 89; continue; + /* if (_v$4) { */ case 88: + $s = -1; return false; + /* } */ case 89: + _i$4++; + $s = 86; continue; + case 87: + $s = -1; return true; + /* } */ case 81: + /* } */ case 74: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 10: + x$10 = _ref.$val; + _tuple$9 = $assertType(y, ptrType$28, true); + y$10 = _tuple$9[0]; + ok$7 = _tuple$9[1]; + /* */ if (ok$7) { $s = 92; continue; } + /* */ $s = 93; continue; + /* if (ok$7) { */ case 92: + _r$20 = identical(x$10.key, y$10.key, cmpTags, p); /* */ $s = 95; case 95: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + if (!(_r$20)) { _v$5 = false; $s = 94; continue s; } + _r$21 = identical(x$10.elem, y$10.elem, cmpTags, p); /* */ $s = 96; case 96: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _v$5 = _r$21; case 94: + $24r$5 = _v$5; + $s = 97; case 97: return $24r$5; + /* } */ case 93: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 11: + x$11 = _ref.$val; + _tuple$10 = $assertType(y, ptrType$29, true); + y$11 = _tuple$10[0]; + ok$8 = _tuple$10[1]; + /* */ if (ok$8) { $s = 98; continue; } + /* */ $s = 99; continue; + /* if (ok$8) { */ case 98: + if (!(x$11.dir === y$11.dir)) { _v$6 = false; $s = 100; continue s; } + _r$22 = identical(x$11.elem, y$11.elem, cmpTags, p); /* */ $s = 101; case 101: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _v$6 = _r$22; case 100: + $24r$6 = _v$6; + $s = 102; case 102: return $24r$6; + /* } */ case 99: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 12: + x$12 = _ref.$val; + _tuple$11 = $assertType(y, ptrType$9, true); + y$12 = _tuple$11[0]; + ok$9 = _tuple$11[1]; + /* */ if (ok$9) { $s = 103; continue; } + /* */ $s = 104; continue; + /* if (ok$9) { */ case 103: + xargs = x$12.TypeArgs().list(); + yargs = y$12.TypeArgs().list(); + if (!((xargs.$length === yargs.$length))) { + $s = -1; return false; + } + /* */ if (xargs.$length > 0) { $s = 105; continue; } + /* */ $s = 106; continue; + /* if (xargs.$length > 0) { */ case 105: + _r$23 = Identical(x$12.Origin(), y$12.Origin()); /* */ $s = 109; case 109: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + /* */ if (!_r$23) { $s = 107; continue; } + /* */ $s = 108; continue; + /* if (!_r$23) { */ case 107: + $s = -1; return false; + /* } */ case 108: + _ref$6 = xargs; + _i$5 = 0; + /* while (true) { */ case 110: + /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 111; continue; } + i$5 = _i$5; + xa = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); + _r$24 = Identical(xa, ((i$5 < 0 || i$5 >= yargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yargs.$array[yargs.$offset + i$5])); /* */ $s = 114; case 114: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (!_r$24) { $s = 112; continue; } + /* */ $s = 113; continue; + /* if (!_r$24) { */ case 112: + $s = -1; return false; + /* } */ case 113: + _i$5++; + $s = 110; continue; + case 111: + $s = -1; return true; + /* } */ case 106: + $s = -1; return x$12.obj === y$12.obj; + /* } */ case 104: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 13: + x$13 = _ref.$val; + $s = 16; continue; + /* } else if (_ref === $ifaceNil) { */ case 14: + x$14 = _ref; + $s = 16; continue; + /* } else { */ case 15: + x$15 = _ref; + unreachable(); + /* } */ case 16: + $s = -1; return false; + /* */ } return; } var $f = {$blk: identical$2, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, check, cmpTags, ctxt, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, i$5, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, smap, targs, unionSets, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xa, xargs, xset, xset$1, xtparam, xtparams, y, y$1, y$10, y$11, y$12, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, ybound, yparams, yresults, yset, yset$1, ytparams, $s};return $f; + }; + identicalInstance = function identicalInstance$1(xorig, xargs, yorig, yargs) { + var {$24r, _i, _r$1, _r$2, _ref, i, xa, xargs, xorig, yargs, yorig, $s, $r, $c} = $restore(this, {xorig, xargs, yorig, yargs}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!((xargs.$length === yargs.$length))) { + $s = -1; return false; + } + _ref = xargs; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + xa = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = Identical(xa, ((i < 0 || i >= yargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yargs.$array[yargs.$offset + i])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r$1) { */ case 3: + $s = -1; return false; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + _r$2 = Identical(xorig, yorig); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 7; case 7: return $24r; + /* */ } return; } var $f = {$blk: identicalInstance$1, $c: true, $r, $24r, _i, _r$1, _r$2, _ref, i, xa, xargs, xorig, yargs, yorig, $s};return $f; + }; + Default = function Default$1(t) { + var _1, _tuple, ok, t, t$1; + _tuple = $assertType(t, ptrType$4, true); + t$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + _1 = t$1.kind; + if (_1 === (19)) { + return (1 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 1]); + } else if (_1 === (20)) { + return (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); + } else if (_1 === (21)) { + return universeRune; + } else if (_1 === (22)) { + return (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14]); + } else if (_1 === (23)) { + return (16 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 16]); + } else if (_1 === (24)) { + return (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); + } + } + return t; + }; + $pkg.Default = Default; + NewPointer = function NewPointer$1(elem) { + var elem; + return new Pointer.ptr(elem); + }; + $pkg.NewPointer = NewPointer; + $ptrType(Pointer).prototype.Elem = function Elem$1() { + var p; + p = this; + return p.base; + }; + $ptrType(Pointer).prototype.Underlying = function Underlying$6() { + var t; + t = this; + return t; + }; + $ptrType(Pointer).prototype.String = function String$14() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$14, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + NewPackage = function NewPackage$1(path, name) { + var {_arg, _arg$1, _r$1, _r$2, name, path, scope, $s, $r, $c} = $restore(this, {path, name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = $pkg.Universe; + _r$1 = fmt.Sprintf("package %q", new sliceType$5([new $String(path)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + _r$2 = NewScope(_arg, 0, 0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + scope = _r$2; + $s = -1; return new Package.ptr(path, name, scope, false, sliceType$24.nil, false, false); + /* */ } return; } var $f = {$blk: NewPackage$1, $c: true, $r, _arg, _arg$1, _r$1, _r$2, name, path, scope, $s};return $f; + }; + $pkg.NewPackage = NewPackage; + $ptrType(Package).prototype.Path = function Path() { + var pkg; + pkg = this; + return pkg.path; + }; + $ptrType(Package).prototype.Name = function Name$1() { + var pkg; + pkg = this; + return pkg.name; + }; + $ptrType(Package).prototype.SetName = function SetName(name) { + var name, pkg; + pkg = this; + pkg.name = name; + }; + $ptrType(Package).prototype.Scope = function Scope$1() { + var pkg; + pkg = this; + if (!(pkg === ptrType$1.nil)) { + return pkg.scope; + } + return $pkg.Universe; + }; + $ptrType(Package).prototype.Complete = function Complete() { + var pkg; + pkg = this; + return pkg.complete; + }; + $ptrType(Package).prototype.MarkComplete = function MarkComplete() { + var pkg; + pkg = this; + pkg.complete = true; + }; + $ptrType(Package).prototype.Imports = function Imports() { + var pkg; + pkg = this; + return pkg.imports; + }; + $ptrType(Package).prototype.SetImports = function SetImports(list$2) { + var list$2, pkg; + pkg = this; + pkg.imports = list$2; + }; + $ptrType(Package).prototype.String = function String$15() { + var {$24r, _r$1, pkg, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pkg = this; + _r$1 = fmt.Sprintf("package %s (%q)", new sliceType$5([new $String(pkg.name), new $String(pkg.path)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$15, $c: true, $r, $24r, _r$1, pkg, $s};return $f; + }; + $ptrType(operand).prototype.Pos = function Pos$2() { + var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if ($interfaceIsEqual(x.expr, $ifaceNil)) { + $s = -1; return 0; + } + _r$1 = x.expr.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$2, $c: true, $r, $24r, _r$1, x, $s};return $f; + }; + operandString = function operandString$1(x, qf) { + var {_1, _2, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, buf, expr, hasType, intro, qf, s, tpar, x, x$1, x$2, $s, $r, $c} = $restore(this, {x, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + if ((x.mode === 7) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { + $s = -1; return "nil"; + } + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + expr = ""; + /* */ if (!($interfaceIsEqual(x.expr, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(x.expr, $ifaceNil))) { */ case 1: + _r$1 = ExprString(x.expr); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + expr = _r$1; + $s = 3; continue; + /* } else { */ case 2: + _1 = x.mode; + /* */ if (_1 === (2)) { $s = 6; continue; } + /* */ if (_1 === (3)) { $s = 7; continue; } + /* */ if (_1 === (4)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (2)) { */ case 6: + expr = (x$1 = x.id, ((x$1 < 0 || x$1 >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[x$1])).name; + $s = 9; continue; + /* } else if (_1 === (3)) { */ case 7: + _r$2 = TypeString(x.typ, qf); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + expr = _r$2; + $s = 9; continue; + /* } else if (_1 === (4)) { */ case 8: + _r$3 = x.val.String(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + expr = _r$3; + /* } */ case 9: + case 5: + /* } */ case 3: + if (!(expr === "")) { + buf[0].WriteString(expr); + buf[0].WriteString(" ("); + } + hasType = false; + switch (0) { default: + _2 = x.mode; + if ((_2 === (0)) || (_2 === (1)) || (_2 === (2)) || (_2 === (3))) { + } else if (!($interfaceIsEqual(x.typ, $ifaceNil))) { + if (isUntyped(x.typ)) { + buf[0].WriteString($assertType(x.typ, ptrType$4).name); + buf[0].WriteByte(32); + break; + } + hasType = true; + } + } + buf[0].WriteString((x$2 = x.mode, ((x$2 < 0 || x$2 >= operandModeString.length) ? ($throwRuntimeError("index out of range"), undefined) : operandModeString[x$2]))); + /* */ if (x.mode === 4) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (x.mode === 4) { */ case 12: + _r$4 = x.val.String(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + s = _r$4; + if (!(s === expr)) { + buf[0].WriteByte(32); + buf[0].WriteString(s); + } + /* } */ case 13: + /* */ if (hasType) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (hasType) { */ case 15: + /* */ if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 17: + intro = ""; + _r$5 = isGeneric(x.typ); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_r$5) { */ case 20: + intro = " of parameterized type "; + $s = 22; continue; + /* } else { */ case 21: + intro = " of type "; + /* } */ case 22: + buf[0].WriteString(intro); + $r = WriteType(buf[0], x.typ, qf); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple = $assertType(x.typ, ptrType$14, true); + tpar = _tuple[0]; + /* */ if (!(tpar === ptrType$14.nil)) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!(tpar === ptrType$14.nil)) { */ case 25: + buf[0].WriteString(" constrained by "); + $r = WriteType(buf[0], tpar.bound, qf); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 26: + $s = 19; continue; + /* } else { */ case 18: + buf[0].WriteString(" with invalid type"); + /* } */ case 19: + /* } */ case 16: + if (!(expr === "")) { + buf[0].WriteByte(41); + } + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: operandString$1, $c: true, $r, _1, _2, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, buf, expr, hasType, intro, qf, s, tpar, x, x$1, x$2, $s};return $f; + }; + $ptrType(operand).prototype.String = function String$16() { + var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r$1 = operandString(x, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$16, $c: true, $r, $24r, _r$1, x, $s};return $f; + }; + $ptrType(operand).prototype.setConst = function setConst(tok, lit) { + var {_1, _r$1, _r$2, kind, lit, tok, val, x, $s, $r, $c} = $restore(this, {tok, lit}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + kind = 0; + _1 = tok; + if (_1 === (5)) { + kind = 20; + } else if (_1 === (6)) { + kind = 22; + } else if (_1 === (7)) { + kind = 23; + } else if (_1 === (8)) { + kind = 21; + } else if (_1 === (9)) { + kind = 24; + } else { + unreachable(); + } + _r$1 = constant.MakeFromLiteral(lit, tok, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + val = _r$1; + _r$2 = val.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2 === 0) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_r$2 === 0) { */ case 2: + x.mode = 0; + x.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + $s = -1; return; + /* } */ case 3: + x.mode = 4; + x.typ = ((kind < 0 || kind >= $pkg.Typ.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + kind]); + x.val = val; + $s = -1; return; + /* */ } return; } var $f = {$blk: setConst, $c: true, $r, _1, _r$1, _r$2, kind, lit, tok, val, x, $s};return $f; + }; + $ptrType(operand).prototype.isNil = function isNil$1() { + var x; + x = this; + return (x.mode === 7) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25])); + }; + $ptrType(operand).prototype.assignableTo = function assignableTo(check, T, reason) { + var {$24r, T, Tc, Tp, Tu, V, Vc, Vi, Vp, Vu, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, check, code, code$1, err, errorf, newType, ok, ok$1, ok$2, ok$3, ok$4, reason, x, x$1, $s, $r, $c} = $restore(this, {check, T, reason}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + T = [T]; + Tp = [Tp]; + Vp = [Vp]; + check = [check]; + code = [code]; + code$1 = [code$1]; + errorf = [errorf]; + ok = [ok]; + ok$1 = [ok$1]; + reason = [reason]; + x = [x]; + x$1 = [x$1]; + x[0] = this; + if ((x[0].mode === 0) || $interfaceIsEqual(T[0], (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return [true, 0]; + } + V = x[0].typ; + _r$1 = Identical(V, T[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$1) { */ case 1: + $s = -1; return [true, 0]; + /* } */ case 2: + _r$2 = under(V); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + Vu = _r$2; + _r$3 = under(T[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + Tu = _r$3; + _tuple = $assertType(V, ptrType$14, true); + Vp[0] = _tuple[0]; + _tuple$1 = $assertType(T[0], ptrType$14, true); + Tp[0] = _tuple$1[0]; + /* */ if (isUntyped(Vu)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (isUntyped(Vu)) { */ case 6: + $r = assert(Vp[0] === ptrType$14.nil); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(Tp[0] === ptrType$14.nil)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(Tp[0] === ptrType$14.nil)) { */ case 9: + _r$4 = Tp[0].is((function(T, Tp, Vp, check, code, code$1, errorf, ok, ok$1, reason, x, x$1) { return function operand·assignableTo·func1(t) { + var {_r$4, _tuple$2, newType, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (t === ptrType$5.nil) { + $s = -1; return false; + } + _r$4 = check[0].implicitTypeAndValue(x[0], t.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$2 = _r$4; + newType = _tuple$2[0]; + $s = -1; return !($interfaceIsEqual(newType, $ifaceNil)); + /* */ } return; } var $f = {$blk: operand·assignableTo·func1, $c: true, $r, _r$4, _tuple$2, newType, t, $s};return $f; + }; })(T, Tp, Vp, check, code, code$1, errorf, ok, ok$1, reason, x, x$1)); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = [_r$4, 23]; + $s = 12; case 12: return $24r; + /* } */ case 10: + _r$5 = check[0].implicitTypeAndValue(x[0], T[0]); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + newType = _tuple$2[0]; + $s = -1; return [!($interfaceIsEqual(newType, $ifaceNil)), 23]; + /* } */ case 7: + _r$6 = Identical(Vu, Tu); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6 && (!hasName(V) || !hasName(T[0])) && Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_r$6 && (!hasName(V) || !hasName(T[0])) && Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { */ case 14: + $s = -1; return [true, 0]; + /* } */ case 15: + _tuple$3 = $assertType(Tu, ptrType$13, true); + ok$2 = _tuple$3[1]; + if (ok$2 && Tp[0] === ptrType$14.nil) { _v = true; $s = 19; continue s; } + _r$7 = isInterfacePtr(Tu); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v = _r$7; case 19: + /* */ if (_v) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (_v) { */ case 17: + _r$8 = check[0].implements$(V, T[0]); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + err = _r$8; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 22: + /* */ if (!(reason[0] === ptrType$34.nil)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!(reason[0] === ptrType$34.nil)) { */ case 24: + _r$9 = err.Error(); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + reason[0].$set(_r$9); + /* } */ case 25: + $s = -1; return [false, 21]; + /* } */ case 23: + $s = -1; return [true, 0]; + /* } */ case 18: + _tuple$4 = $assertType(Vu, ptrType$13, true); + Vi = _tuple$4[0]; + /* */ if (!(Vi === ptrType$13.nil) && Vp[0] === ptrType$14.nil) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!(Vi === ptrType$13.nil) && Vp[0] === ptrType$14.nil) { */ case 27: + _r$10 = check[0].implements$(T[0], V); /* */ $s = 31; case 31: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(_r$10, $ifaceNil)) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if ($interfaceIsEqual(_r$10, $ifaceNil)) { */ case 29: + if (!(reason[0] === ptrType$34.nil)) { + reason[0].$set("need type assertion"); + } + $s = -1; return [false, 23]; + /* } */ case 30: + /* } */ case 28: + _tuple$5 = $assertType(Vu, ptrType$29, true); + Vc = _tuple$5[0]; + ok$3 = _tuple$5[1]; + /* */ if (ok$3 && (Vc.dir === 0)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (ok$3 && (Vc.dir === 0)) { */ case 32: + _tuple$6 = $assertType(Tu, ptrType$29, true); + Tc = _tuple$6[0]; + ok$4 = _tuple$6[1]; + if (!(ok$4)) { _v$1 = false; $s = 36; continue s; } + _r$11 = Identical(Vc.elem, Tc.elem); /* */ $s = 37; case 37: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _v$1 = _r$11; case 36: + /* */ if (_v$1) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (_v$1) { */ case 34: + $s = -1; return [!hasName(V) || !hasName(T[0]), 22]; + /* } */ case 35: + /* } */ case 33: + if (Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { + $s = -1; return [false, 23]; + } + errorf[0] = (function(T, Tp, Vp, check, code, code$1, errorf, ok, ok$1, reason, x, x$1) { return function operand·assignableTo·func2(format, args) { + var {_r$12, args, format, msg, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (!(check[0] === ptrType$6.nil) && !(reason[0] === ptrType$34.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(check[0] === ptrType$6.nil) && !(reason[0] === ptrType$34.nil)) { */ case 1: + _r$12 = check[0].sprintf(format, args); /* */ $s = 3; case 3: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + msg = _r$12; + if (!(reason[0].$get() === "")) { + msg = msg + ("\n\t" + reason[0].$get()); + } + reason[0].$set(msg); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: operand·assignableTo·func2, $c: true, $r, _r$12, args, format, msg, $s};return $f; + }; })(T, Tp, Vp, check, code, code$1, errorf, ok, ok$1, reason, x, x$1); + /* */ if (!hasName(V) && !(Tp[0] === ptrType$14.nil)) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!hasName(V) && !(Tp[0] === ptrType$14.nil)) { */ case 38: + ok[0] = false; + code[0] = 23; + _r$12 = Tp[0].is((function(T, Tp, Vp, check, code, code$1, errorf, ok, ok$1, reason, x, x$1) { return function operand·assignableTo·func3(T$1) { + var {T$1, _r$12, _tuple$7, $s, $r, $c} = $restore(this, {T$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (T$1 === ptrType$5.nil) { + $s = -1; return false; + } + _r$12 = x[0].assignableTo(check[0], T$1.typ, reason[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple$7 = _r$12; + ok[0] = _tuple$7[0]; + code[0] = _tuple$7[1]; + /* */ if (!ok[0]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!ok[0]) { */ case 2: + $r = errorf[0]("cannot assign %s to %s (in %s)", new sliceType$5([x[0].typ, T$1.typ, Tp[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 3: + $s = -1; return true; + /* */ } return; } var $f = {$blk: operand·assignableTo·func3, $c: true, $r, T$1, _r$12, _tuple$7, $s};return $f; + }; })(T, Tp, Vp, check, code, code$1, errorf, ok, ok$1, reason, x, x$1)); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + $s = -1; return [ok[0], code[0]]; + /* } */ case 39: + /* */ if (!(Vp[0] === ptrType$14.nil) && !hasName(T[0])) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (!(Vp[0] === ptrType$14.nil) && !hasName(T[0])) { */ case 41: + x$1[0] = $clone(x[0], operand); + ok$1[0] = false; + code$1[0] = 23; + _r$13 = Vp[0].is((function(T, Tp, Vp, check, code, code$1, errorf, ok, ok$1, reason, x, x$1) { return function operand·assignableTo·func4(V$1) { + var {V$1, _r$13, _tuple$7, $s, $r, $c} = $restore(this, {V$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (V$1 === ptrType$5.nil) { + $s = -1; return false; + } + x$1[0].typ = V$1.typ; + _r$13 = x$1[0].assignableTo(check[0], T[0], reason[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _tuple$7 = _r$13; + ok$1[0] = _tuple$7[0]; + code$1[0] = _tuple$7[1]; + /* */ if (!ok$1[0]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!ok$1[0]) { */ case 2: + $r = errorf[0]("cannot assign %s (in %s) to %s", new sliceType$5([V$1.typ, Vp[0], T[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 3: + $s = -1; return true; + /* */ } return; } var $f = {$blk: operand·assignableTo·func4, $c: true, $r, V$1, _r$13, _tuple$7, $s};return $f; + }; })(T, Tp, Vp, check, code, code$1, errorf, ok, ok$1, reason, x, x$1)); /* */ $s = 43; case 43: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13; + $s = -1; return [ok$1[0], code$1[0]]; + /* } */ case 42: + $s = -1; return [false, 23]; + /* */ } return; } var $f = {$blk: assignableTo, $c: true, $r, $24r, T, Tc, Tp, Tu, V, Vc, Vi, Vp, Vu, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, check, code, code$1, err, errorf, newType, ok, ok$1, ok$2, ok$3, ok$4, reason, x, x$1, $s};return $f; + }; + $ptrType(objset).prototype.insert = function insert$1(obj) { + var {_entry, _key, _r$1, alt, id, obj, s, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r$1 = obj.Id(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + id = _r$1; + alt = (_entry = $mapIndex((s.$get()),$String.keyFor(id)), _entry !== undefined ? _entry.v : $ifaceNil); + if (!($interfaceIsEqual(alt, $ifaceNil))) { + $s = -1; return alt; + } + if (s.$get() === false) { + s.$set(new $global.Map()); + } + _key = id; (s.$get() || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: obj }); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: insert$1, $c: true, $r, _entry, _key, _r$1, alt, id, obj, s, $s};return $f; + }; + Id = function Id$2(pkg, name) { + var name, path, pkg; + if (token.IsExported(name)) { + return name; + } + path = "_"; + if (!(pkg === ptrType$1.nil) && !(pkg.path === "")) { + path = pkg.path; + } + return path + "." + name; + }; + $pkg.Id = Id; + color.prototype.String = function String$17() { + var _1, c; + c = this.$val; + _1 = c; + if (_1 === (0)) { + return "white"; + } else if (_1 === (1)) { + return "black"; + } else { + return "grey"; + } + }; + $ptrType(color).prototype.String = function(...$args) { return new color(this.$get()).String(...$args); }; + colorFor = function colorFor$1(t) { + var t; + if (!($interfaceIsEqual(t, $ifaceNil))) { + return 1; + } + return 0; + }; + $ptrType(object).prototype.Parent = function Parent$2() { + var obj; + obj = this; + return obj.parent; + }; + $ptrType(object).prototype.Pos = function Pos$3() { + var obj; + obj = this; + return obj.pos; + }; + $ptrType(object).prototype.Pkg = function Pkg$1() { + var obj; + obj = this; + return obj.pkg; + }; + $ptrType(object).prototype.Name = function Name$2() { + var obj; + obj = this; + return obj.name; + }; + $ptrType(object).prototype.Type = function Type$4() { + var obj; + obj = this; + return obj.typ; + }; + $ptrType(object).prototype.Exported = function Exported$1() { + var obj; + obj = this; + return token.IsExported(obj.name); + }; + $ptrType(object).prototype.Id = function Id$3() { + var obj; + obj = this; + return Id(obj.pkg, obj.name); + }; + $ptrType(object).prototype.String = function String$18() { + var obj; + obj = this; + $panic(new $String("abstract")); + }; + $ptrType(object).prototype.order = function order$1() { + var obj; + obj = this; + return obj.order_; + }; + $ptrType(object).prototype.color = function color$2() { + var obj; + obj = this; + return obj.color_; + }; + $ptrType(object).prototype.scopePos = function scopePos$1() { + var obj; + obj = this; + return obj.scopePos_; + }; + $ptrType(object).prototype.setParent = function setParent$1(parent) { + var obj, parent; + obj = this; + obj.parent = parent; + }; + $ptrType(object).prototype.setOrder = function setOrder$1(order$2) { + var {obj, order$2, $s, $r, $c} = $restore(this, {order$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = this; + $r = assert(order$2 > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj.order_ = order$2; + $s = -1; return; + /* */ } return; } var $f = {$blk: setOrder$1, $c: true, $r, obj, order$2, $s};return $f; + }; + $ptrType(object).prototype.setColor = function setColor$1(color$3) { + var {color$3, obj, $s, $r, $c} = $restore(this, {color$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = this; + $r = assert(!((color$3 === 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj.color_ = color$3; + $s = -1; return; + /* */ } return; } var $f = {$blk: setColor$1, $c: true, $r, color$3, obj, $s};return $f; + }; + $ptrType(object).prototype.setScopePos = function setScopePos$1(pos) { + var obj, pos; + obj = this; + obj.scopePos_ = pos; + }; + $ptrType(object).prototype.sameId = function sameId$1(pkg, name) { + var name, obj, pkg; + obj = this; + if (!(name === obj.name)) { + return false; + } + if (obj.Exported()) { + return true; + } + if (pkg === ptrType$1.nil || obj.pkg === ptrType$1.nil) { + return pkg === obj.pkg; + } + return pkg.path === obj.pkg.path; + }; + NewPkgName = function NewPkgName$1(pos, pkg, name, imported) { + var imported, name, pkg, pos; + return new PkgName.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), 0, 1, 0), object), imported, false); + }; + $pkg.NewPkgName = NewPkgName; + $ptrType(PkgName).prototype.Imported = function Imported() { + var obj; + obj = this; + return obj.imported; + }; + NewConst = function NewConst$1(pos, pkg, name, typ$3, val) { + var name, pkg, pos, typ$3, val; + return new Const.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), val); + }; + $pkg.NewConst = NewConst; + $ptrType(Const).prototype.Val = function Val() { + var obj; + obj = this; + return obj.val; + }; + NewTypeName = function NewTypeName$1(pos, pkg, name, typ$3) { + var name, pkg, pos, typ$3; + return new TypeName.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object)); + }; + $pkg.NewTypeName = NewTypeName; + $ptrType(TypeName).prototype.IsAlias = function IsAlias() { + var _ref, obj, t, t$1, t$2, t$3, t$4; + obj = this; + _ref = obj.object.typ; + if (_ref === $ifaceNil) { + t = _ref; + return false; + } else if ($assertType(_ref, ptrType$4, true)[1]) { + t$1 = _ref.$val; + if (obj.object.pkg === $pkg.Unsafe) { + return false; + } + return !(obj.object.pkg === ptrType$1.nil) || !(t$1.name === obj.object.name) || $interfaceIsEqual(t$1, universeByte) || $interfaceIsEqual(t$1, universeRune); + } else if ($assertType(_ref, ptrType$9, true)[1]) { + t$2 = _ref.$val; + return !(obj === t$2.obj); + } else if ($assertType(_ref, ptrType$14, true)[1]) { + t$3 = _ref.$val; + return !(obj === t$3.obj); + } else { + t$4 = _ref; + return true; + } + }; + NewVar = function NewVar$1(pos, pkg, name, typ$3) { + var name, pkg, pos, typ$3; + return new Var.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), false, false, false, ptrType$16.nil); + }; + $pkg.NewVar = NewVar; + NewParam = function NewParam$1(pos, pkg, name, typ$3) { + var name, pkg, pos, typ$3; + return new Var.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), false, false, true, ptrType$16.nil); + }; + $pkg.NewParam = NewParam; + NewField = function NewField$1(pos, pkg, name, typ$3, embedded) { + var embedded, name, pkg, pos, typ$3; + return new Var.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), embedded, true, false, ptrType$16.nil); + }; + $pkg.NewField = NewField; + $ptrType(Var).prototype.Anonymous = function Anonymous() { + var obj; + obj = this; + return obj.embedded; + }; + $ptrType(Var).prototype.Embedded = function Embedded() { + var obj; + obj = this; + return obj.embedded; + }; + $ptrType(Var).prototype.IsField = function IsField() { + var obj; + obj = this; + return obj.isField; + }; + $ptrType(Var).prototype.Origin = function Origin() { + var obj; + obj = this; + if (!(obj.origin === ptrType$16.nil)) { + return obj.origin; + } + return obj; + }; + NewFunc = function NewFunc$1(pos, pkg, name, sig) { + var name, pkg, pos, sig, typ$3; + typ$3 = $ifaceNil; + if (!(sig === ptrType$27.nil)) { + typ$3 = sig; + } + return new Func.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), false, ptrType$2.nil); + }; + $pkg.NewFunc = NewFunc; + $ptrType(Func).prototype.FullName = function FullName() { + var {buf, obj, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + obj = this; + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + $r = writeFuncName(buf[0], obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: FullName, $c: true, $r, buf, obj, $s};return $f; + }; + $ptrType(Func).prototype.Scope = function Scope$2() { + var obj; + obj = this; + return $assertType(obj.object.typ, ptrType$27).scope; + }; + $ptrType(Func).prototype.Origin = function Origin$1() { + var obj; + obj = this; + if (!(obj.origin === ptrType$2.nil)) { + return obj.origin; + } + return obj; + }; + $ptrType(Func).prototype.hasPtrRecv = function hasPtrRecv() { + var _tuple, _tuple$1, isPtr, obj, sig; + obj = this; + _tuple = $assertType(obj.object.typ, ptrType$27, true); + sig = _tuple[0]; + if (!(sig === ptrType$27.nil) && !(sig.recv === ptrType$16.nil)) { + _tuple$1 = deref(sig.recv.object.typ); + isPtr = _tuple$1[1]; + return isPtr; + } + return obj.hasPtrRecv_; + }; + NewLabel = function NewLabel$1(pos, pkg, name) { + var name, pkg, pos; + return new Label.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), 0, 1, 0), object), false); + }; + $pkg.NewLabel = NewLabel; + newBuiltin = function newBuiltin$1(id) { + var id; + return new Builtin.ptr($clone(new object.ptr(ptrType.nil, 0, ptrType$1.nil, ((id < 0 || id >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id]).name, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), 0, 1, 0), object), id); + }; + writeObject = function writeObject$1(buf, obj, qf) { + var {_arg, _arg$1, _arg$2, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, buf, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, path, qf, t, t$1, t$2, tname, typ$3, $s, $r, $c} = $restore(this, {buf, obj, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + tname = ptrType$17.nil; + _r$1 = obj.Type(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ$3 = _r$1; + _ref = obj; + /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$90, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($assertType(_ref, ptrType$31, true)[1]) { */ case 2: + obj$1 = _ref.$val; + _r$2 = fmt.Fprintf(buf, "package %s", new sliceType$5([new $String(obj$1.object.Name())])); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + path = obj$1.imported.path; + /* */ if (!(path === "") && !(path === obj$1.object.name)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!(path === "") && !(path === obj$1.object.name)) { */ case 13: + _r$3 = fmt.Fprintf(buf, " (%q)", new sliceType$5([new $String(path)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* } */ case 14: + $s = -1; return; + /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 3: + obj$2 = _ref.$val; + buf.WriteString("const"); + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 4: + obj$3 = _ref.$val; + tname = obj$3; + buf.WriteString("type"); + if (isTypeParam(typ$3)) { + buf.WriteString(" parameter"); + } + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 5: + obj$4 = _ref.$val; + if (obj$4.isField) { + buf.WriteString("field"); + } else { + buf.WriteString("var"); + } + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 6: + obj$5 = _ref.$val; + buf.WriteString("func "); + $r = writeFuncName(buf, obj$5, qf); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(typ$3, $ifaceNil))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!($interfaceIsEqual(typ$3, $ifaceNil))) { */ case 17: + $r = WriteSignature(buf, $assertType(typ$3, ptrType$27), qf); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + $s = -1; return; + /* } else if ($assertType(_ref, ptrType$90, true)[1]) { */ case 7: + obj$6 = _ref.$val; + buf.WriteString("label"); + typ$3 = $ifaceNil; + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 8: + obj$7 = _ref.$val; + buf.WriteString("builtin"); + typ$3 = $ifaceNil; + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 9: + obj$8 = _ref.$val; + buf.WriteString("nil"); + $s = -1; return; + /* } else { */ case 10: + obj$9 = _ref; + _r$4 = fmt.Sprintf("writeObject(%T)", new sliceType$5([obj$9])); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $panic(new $String(_r$4)); + /* } */ case 11: + buf.WriteByte(32); + _r$5 = obj.Pkg(); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + if (!(!(_r$5 === ptrType$1.nil))) { _v = false; $s = 23; continue s; } + _r$6 = obj.Pkg(); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = obj.Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = _r$6.scope.Lookup(_r$7); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _v = $interfaceIsEqual(_r$8, obj); case 23: + /* */ if (_v) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_v) { */ case 21: + _arg = buf; + _r$9 = obj.Pkg(); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$1 = _r$9; + _arg$2 = qf; + $r = writePackage(_arg, _arg$1, _arg$2); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 22: + _r$10 = obj.Name(); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = buf.WriteString(_r$10); /* */ $s = 31; case 31: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11; + if ($interfaceIsEqual(typ$3, $ifaceNil)) { + $s = -1; return; + } + /* */ if (!(tname === ptrType$17.nil)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (!(tname === ptrType$17.nil)) { */ case 32: + _ref$1 = typ$3; + /* */ if ($assertType(_ref$1, ptrType$4, true)[1]) { $s = 34; continue; } + /* */ if ($assertType(_ref$1, ptrType$9, true)[1]) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if ($assertType(_ref$1, ptrType$4, true)[1]) { */ case 34: + t = _ref$1.$val; + $s = -1; return; + /* } else if ($assertType(_ref$1, ptrType$9, true)[1]) { */ case 35: + t$1 = _ref$1.$val; + _r$12 = t$1.TypeParams(); /* */ $s = 39; case 39: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$13 = _r$12.Len(); /* */ $s = 40; case 40: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + /* */ if (_r$13 > 0) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (_r$13 > 0) { */ case 37: + _r$14 = t$1.TypeParams(); /* */ $s = 41; case 41: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$15 = _r$14.list(); /* */ $s = 42; case 42: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $r = newTypeWriter(buf, qf).tParamList(_r$15); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 38: + /* } */ case 36: + /* */ if (tname.IsAlias()) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (tname.IsAlias()) { */ case 44: + buf.WriteString(" ="); + $s = 46; continue; + /* } else { */ case 45: + _tuple = $assertType(typ$3, ptrType$14, true); + t$2 = _tuple[0]; + /* */ if (!(t$2 === ptrType$14.nil)) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (!(t$2 === ptrType$14.nil)) { */ case 47: + typ$3 = t$2.bound; + $s = 49; continue; + /* } else { */ case 48: + _r$16 = under(typ$3); /* */ $s = 50; case 50: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + typ$3 = _r$16; + /* } */ case 49: + /* } */ case 46: + /* } */ case 33: + /* */ if ($interfaceIsEqual(obj, universeAny)) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if ($interfaceIsEqual(obj, universeAny)) { */ case 51: + _r$17 = Identical(typ$3, emptyInterface); /* */ $s = 53; case 53: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $r = assert(_r$17); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + typ$3 = emptyInterface; + /* } */ case 52: + buf.WriteByte(32); + $r = WriteType(buf, typ$3, qf); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: writeObject$1, $c: true, $r, _arg, _arg$1, _arg$2, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, buf, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, path, qf, t, t$1, t$2, tname, typ$3, $s};return $f; + }; + writePackage = function writePackage$1(buf, pkg, qf) { + var {_r$1, buf, pkg, qf, s, $s, $r, $c} = $restore(this, {buf, pkg, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (pkg === ptrType$1.nil) { + $s = -1; return; + } + s = ""; + /* */ if (!(qf === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(qf === $throwNilPointerError)) { */ case 1: + _r$1 = qf(pkg); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + s = _r$1; + $s = 3; continue; + /* } else { */ case 2: + s = pkg.Path(); + /* } */ case 3: + if (!(s === "")) { + buf.WriteString(s); + buf.WriteByte(46); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: writePackage$1, $c: true, $r, _r$1, buf, pkg, qf, s, $s};return $f; + }; + ObjectString = function ObjectString$1(obj, qf) { + var {buf, obj, qf, $s, $r, $c} = $restore(this, {obj, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + $r = writeObject(buf[0], obj, qf); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: ObjectString$1, $c: true, $r, buf, obj, qf, $s};return $f; + }; + $pkg.ObjectString = ObjectString; + $ptrType(PkgName).prototype.String = function String$19() { + var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = this; + _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$19, $c: true, $r, $24r, _r$1, obj, $s};return $f; + }; + $ptrType(Const).prototype.String = function String$20() { + var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = this; + _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$20, $c: true, $r, $24r, _r$1, obj, $s};return $f; + }; + $ptrType(TypeName).prototype.String = function String$21() { + var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = this; + _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$21, $c: true, $r, $24r, _r$1, obj, $s};return $f; + }; + $ptrType(Var).prototype.String = function String$22() { + var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = this; + _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$22, $c: true, $r, $24r, _r$1, obj, $s};return $f; + }; + $ptrType(Func).prototype.String = function String$23() { + var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = this; + _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$23, $c: true, $r, $24r, _r$1, obj, $s};return $f; + }; + $ptrType(Label).prototype.String = function String$24() { + var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = this; + _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$24, $c: true, $r, $24r, _r$1, obj, $s};return $f; + }; + $ptrType(Builtin).prototype.String = function String$25() { + var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = this; + _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$25, $c: true, $r, $24r, _r$1, obj, $s};return $f; + }; + $ptrType(Nil).prototype.String = function String$26() { + var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = this; + _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$26, $c: true, $r, $24r, _r$1, obj, $s};return $f; + }; + writeFuncName = function writeFuncName$1(buf, f, qf) { + var {_tuple, buf, f, ok, qf, recv, sig, $s, $r, $c} = $restore(this, {buf, f, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (!($interfaceIsEqual(f.object.typ, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(f.object.typ, $ifaceNil))) { */ case 1: + sig = $assertType(f.object.typ, ptrType$27); + recv = sig.Recv(); + /* */ if (!(recv === ptrType$16.nil)) { $s = 3; continue; } + /* */ if (!(f.object.pkg === ptrType$1.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(recv === ptrType$16.nil)) { */ case 3: + buf.WriteByte(40); + _tuple = $assertType(recv.object.Type(), ptrType$13, true); + ok = _tuple[1]; + /* */ if (ok) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (ok) { */ case 6: + buf.WriteString("interface"); + $s = 8; continue; + /* } else { */ case 7: + $r = WriteType(buf, recv.object.Type(), qf); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + buf.WriteByte(41); + buf.WriteByte(46); + $s = 5; continue; + /* } else if (!(f.object.pkg === ptrType$1.nil)) { */ case 4: + $r = writePackage(buf, f.object.pkg, qf); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + /* } */ case 2: + buf.WriteString(f.object.name); + $s = -1; return; + /* */ } return; } var $f = {$blk: writeFuncName$1, $c: true, $r, _tuple, buf, f, ok, qf, recv, sig, $s};return $f; + }; + NewNamed = function NewNamed$1(obj, underlying, methods) { + var _tuple, methods, obj, ok, underlying; + _tuple = $assertType(underlying, ptrType$9, true); + ok = _tuple[1]; + if (ok) { + $panic(new $String("underlying type must not be *Named")); + } + return (ptrType$6.nil).newNamed(obj, underlying, methods); + }; + $pkg.NewNamed = NewNamed; + $ptrType(Named).prototype.resolve = function resolve$2() { + var {$24r, $24r$1, $24r$2, _r$1, _r$2, _r$3, _tuple, methods, n, orig, tparams, underlying, underlying$1, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + n = this; + if (n.state() >= 1) { + $s = -1; return n; + } + $r = n.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(n.mu, "Unlock"), []]); + /* */ if (n.state() >= 1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (n.state() >= 1) { */ case 2: + $24r = n; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* */ if (!(n.inst === ptrType$52.nil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(n.inst === ptrType$52.nil)) { */ case 5: + $r = assert($interfaceIsEqual(n.underlying, $ifaceNil)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(n.loader === $throwNilPointerError); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + orig = n.inst.orig; + _r$1 = orig.resolve(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = n.expandUnderlying(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + underlying = _r$2; + n.tparams = orig.tparams; + n.underlying = underlying; + n.fromRHS = orig.fromRHS; + if (orig.methods.$length === 0) { + n.setState(2); + n.inst.ctxt = ptrType$51.nil; + } else { + n.setState(1); + } + $24r$1 = n; + $s = 11; case 11: return $24r$1; + /* } */ case 6: + /* */ if (!(n.loader === $throwNilPointerError)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!(n.loader === $throwNilPointerError)) { */ case 12: + $r = assert($interfaceIsEqual(n.underlying, $ifaceNil)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(n.TypeArgs().Len() === 0); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = n.loader(n); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + tparams = _tuple[0]; + underlying$1 = _tuple[1]; + methods = _tuple[2]; + n.tparams = bindTParams(tparams); + n.underlying = underlying$1; + n.fromRHS = underlying$1; + n.methods = methods; + n.loader = $throwNilPointerError; + /* } */ case 13: + n.setState(2); + $24r$2 = n; + $s = 17; case 17: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$9.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: resolve$2, $c: true, $r, $24r, $24r$1, $24r$2, _r$1, _r$2, _r$3, _tuple, methods, n, orig, tparams, underlying, underlying$1, $s, $deferred};return $f; } } + }; + $ptrType(Named).prototype.state = function state() { + var n; + n = this; + return ((atomic.LoadUint32((n.$ptr_state_ || (n.$ptr_state_ = new ptrType$54(function() { return this.$target.state_; }, function($v) { this.$target.state_ = $v; }, n)))) >>> 0)); + }; + $ptrType(Named).prototype.setState = function setState(state$1) { + var n, state$1; + n = this; + atomic.StoreUint32((n.$ptr_state_ || (n.$ptr_state_ = new ptrType$54(function() { return this.$target.state_; }, function($v) { this.$target.state_ = $v; }, n))), ((state$1 >>> 0))); + }; + $ptrType(Checker).prototype.newNamed = function newNamed(obj, underlying, methods) { + var check, methods, obj, typ$3, underlying; + check = this; + typ$3 = new Named.ptr(check, obj, underlying, ptrType$52.nil, new sync.Mutex.ptr(0, 0), 0, underlying, ptrType$48.nil, methods, $throwNilPointerError); + if ($interfaceIsEqual(obj.object.typ, $ifaceNil)) { + obj.object.typ = typ$3; + } + if (!(check === ptrType$6.nil)) { + check.needsCleanup(typ$3); + } + return typ$3; + }; + $ptrType(Checker).prototype.newNamedInstance = function newNamedInstance(pos, orig, targs, expanding) { + var {check, expanding, inst, obj, orig, pos, targs, typ$3, $s, $r, $c} = $restore(this, {pos, orig, targs, expanding}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(targs.$length > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj = NewTypeName(pos, orig.obj.object.pkg, orig.obj.object.name, $ifaceNil); + inst = new instance.ptr(orig, newTypeList(targs), 0, ptrType$51.nil); + if (!(expanding === ptrType$9.nil) && expanding.Obj().object.pkg === obj.object.pkg) { + inst.ctxt = expanding.inst.ctxt; + } + typ$3 = new Named.ptr(check, obj, $ifaceNil, inst, new sync.Mutex.ptr(0, 0), 0, $ifaceNil, ptrType$48.nil, sliceType.nil, $throwNilPointerError); + obj.object.typ = typ$3; + if (!(check === ptrType$6.nil)) { + check.needsCleanup(typ$3); + } + $s = -1; return typ$3; + /* */ } return; } var $f = {$blk: newNamedInstance, $c: true, $r, check, expanding, inst, obj, orig, pos, targs, typ$3, $s};return $f; + }; + $ptrType(Named).prototype.cleanup = function cleanup$1() { + var {_r$1, _ref, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + $r = assert(t.inst === ptrType$52.nil || t.inst.orig.inst === ptrType$52.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = t.underlying; + /* */ if (_ref === $ifaceNil) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_ref === $ifaceNil) { */ case 2: + if (t.TypeArgs().Len() === 0) { + $panic(new $String("nil underlying")); + } + $s = 4; continue; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 3: + _r$1 = t.under(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 4: + t.check = ptrType$6.nil; + $s = -1; return; + /* */ } return; } var $f = {$blk: cleanup$1, $c: true, $r, _r$1, _ref, t, $s};return $f; + }; + $ptrType(Named).prototype.Obj = function Obj$2() { + var t; + t = this; + if (t.inst === ptrType$52.nil) { + return t.obj; + } + return t.inst.orig.obj; + }; + $ptrType(Named).prototype.Origin = function Origin$2() { + var t; + t = this; + if (t.inst === ptrType$52.nil) { + return t; + } + return t.inst.orig; + }; + $ptrType(Named).prototype.TypeParams = function TypeParams$1() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1.tparams; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: TypeParams$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + $ptrType(Named).prototype.SetTypeParams = function SetTypeParams(tparams) { + var {_r$1, t, tparams, $s, $r, $c} = $restore(this, {tparams}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + $r = assert(t.inst === ptrType$52.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = t.resolve(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.tparams = bindTParams(tparams); + $s = -1; return; + /* */ } return; } var $f = {$blk: SetTypeParams, $c: true, $r, _r$1, t, tparams, $s};return $f; + }; + $ptrType(Named).prototype.TypeArgs = function TypeArgs() { + var t; + t = this; + if (t.inst === ptrType$52.nil) { + return ptrType$55.nil; + } + return t.inst.targs; + }; + $ptrType(Named).prototype.NumMethods = function NumMethods$1() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.Origin().resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1.methods.$length; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: NumMethods$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + $ptrType(Named).prototype.Method = function Method$1(i) { + var {$24r, _r$1, _r$2, i, orig, t, x, x$1, x$2, x$3, $s, $deferred, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + t = this; + _r$1 = t.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + if (t.state() >= 2) { + $s = -1; return (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + } + $r = assert(!(t.inst === ptrType$52.nil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + orig = t.inst.orig; + $r = t.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(t.mu, "Unlock"), []]); + /* */ if (!((t.methods.$length === orig.methods.$length))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((t.methods.$length === orig.methods.$length))) { */ case 4: + $r = assert(t.methods.$length === 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + t.methods = $makeSlice(sliceType, orig.methods.$length); + /* } */ case 5: + /* */ if ((x$1 = t.methods, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) === ptrType$2.nil) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((x$1 = t.methods, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) === ptrType$2.nil) { */ case 7: + $r = assert(!(t.inst.ctxt === ptrType$51.nil)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = t.expandMethod(i); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + (x$2 = t.methods, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i] = _r$2)); + t.inst.expandedMethods = t.inst.expandedMethods + (1) >> 0; + if (t.inst.expandedMethods === orig.methods.$length) { + t.setState(2); + t.inst.ctxt = ptrType$51.nil; + } + /* } */ case 8: + $24r = (x$3 = t.methods, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])); + $s = 11; case 11: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$2.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Method$1, $c: true, $r, $24r, _r$1, _r$2, i, orig, t, x, x$1, x$2, x$3, $s, $deferred};return $f; } } + }; + $ptrType(Named).prototype.expandMethod = function expandMethod(i) { + var {_r$1, _r$2, _r$3, _tuple, check, copy, ctxt, i, origSig, origm, rbase, rtyp, sig, smap, t, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + copy = [copy]; + t = this; + _r$1 = t.inst.orig.Method(i); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + origm = _r$1; + $r = assert(!(origm === ptrType$2.nil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check = t.check; + /* */ if (!(check === ptrType$6.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(check === ptrType$6.nil)) { */ case 3: + $r = check.objDecl(origm, ptrType$9.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + origSig = $assertType(origm.object.typ, ptrType$27); + _tuple = deref(origSig.Recv().object.Type()); + rbase = _tuple[0]; + if ($interfaceIsEqual(rbase, t)) { + $s = -1; return origm; + } + sig = origSig; + /* */ if (origSig.RecvTypeParams().Len() === t.inst.targs.Len()) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (origSig.RecvTypeParams().Len() === t.inst.targs.Len()) { */ case 6: + _r$2 = makeSubstMap(origSig.RecvTypeParams().list(), t.inst.targs.list()); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + smap = _r$2; + ctxt = ptrType$51.nil; + if (!(check === ptrType$6.nil)) { + ctxt = check.context(); + } + _r$3 = check.subst(origm.object.pos, origSig, smap, t, ctxt); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + sig = $assertType(_r$3, ptrType$27); + /* } */ case 7: + if (sig === origSig) { + copy[0] = $clone(origSig, Signature); + sig = copy[0]; + } + rtyp = $ifaceNil; + if (origm.hasPtrRecv()) { + rtyp = NewPointer(t); + } else { + rtyp = t; + } + sig.recv = substVar(origSig.recv, rtyp); + $s = -1; return substFunc(origm, sig); + /* */ } return; } var $f = {$blk: expandMethod, $c: true, $r, _r$1, _r$2, _r$3, _tuple, check, copy, ctxt, i, origSig, origm, rbase, rtyp, sig, smap, t, $s};return $f; + }; + $ptrType(Named).prototype.SetUnderlying = function SetUnderlying(underlying) { + var {_r$1, _tuple, ok, t, underlying, $s, $r, $c} = $restore(this, {underlying}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + $r = assert(t.inst === ptrType$52.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($interfaceIsEqual(underlying, $ifaceNil)) { + $panic(new $String("underlying type must not be nil")); + } + _tuple = $assertType(underlying, ptrType$9, true); + ok = _tuple[1]; + if (ok) { + $panic(new $String("underlying type must not be *Named")); + } + _r$1 = t.resolve(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.underlying = underlying; + if ($interfaceIsEqual(t.fromRHS, $ifaceNil)) { + t.fromRHS = underlying; + } + $s = -1; return; + /* */ } return; } var $f = {$blk: SetUnderlying, $c: true, $r, _r$1, _tuple, ok, t, underlying, $s};return $f; + }; + $ptrType(Named).prototype.AddMethod = function AddMethod(m) { + var {_r$1, _tuple, i, m, t, $s, $r, $c} = $restore(this, {m}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + $r = assert(t.inst === ptrType$52.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = t.resolve(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _tuple = lookupMethod(t.methods, m.object.pkg, m.object.name, false); + i = _tuple[0]; + if (i < 0) { + t.methods = $append(t.methods, m); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: AddMethod, $c: true, $r, _r$1, _tuple, i, m, t, $s};return $f; + }; + $ptrType(Named).prototype.Underlying = function Underlying$7() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1.underlying; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Underlying$7, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + $ptrType(Named).prototype.String = function String$27() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$27, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + $ptrType(Named).prototype.under = function under$2() { + var {_entry, _entry$1, _i, _key, _key$1, _keys, _r$1, _r$2, _ref, _ref$1, _ref$2, _size, _tuple, check, i, n, n$1, n0, n1, ok, path, seen, u, u1, u1$1, u1$2, u1$3, u1$4, u1$5, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n0 = this; + _r$1 = n0.Underlying(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + u = _r$1; + n1 = ptrType$9.nil; + _ref = u; + if (_ref === $ifaceNil) { + u1 = _ref; + $panic(new $String("nil underlying")); + } else if ($assertType(_ref, ptrType$9, true)[1]) { + u1$2 = _ref.$val; + n1 = u1$2; + } else { + u1$1 = _ref; + $s = -1; return u; + } + if (n0.check === ptrType$6.nil) { + $panic(new $String("Named.check == nil but type is incomplete")); + } + check = n0.check; + n = n0; + seen = new $global.Map(); + path = sliceType$8.nil; + /* while (true) { */ case 2: + _key = n; (seen || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$9.keyFor(_key), { k: _key, v: (seen ? seen.size : 0) }); + path = $append(path, n.obj); + n = n1; + _tuple = (_entry = $mapIndex(seen,ptrType$9.keyFor(n)), _entry !== undefined ? [_entry.v, true] : [0, false]); + i = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (ok) { */ case 4: + $r = check.cycleError($subslice(path, i)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + u = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* break; */ $s = 3; continue; + /* } */ case 5: + _r$2 = n.Underlying(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + u = _r$2; + _ref$1 = u; + if (_ref$1 === $ifaceNil) { + u1$3 = _ref$1; + u = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* break loop; */ $s = 3; continue s; + } else if ($assertType(_ref$1, ptrType$9, true)[1]) { + u1$5 = _ref$1.$val; + n1 = u1$5; + } else { + u1$4 = _ref$1; + /* break loop; */ $s = 3; continue s; + } + $s = 2; continue; + case 3: + _ref$2 = seen; + _i = 0; + _keys = _ref$2 ? _ref$2.keys() : undefined; + _size = _ref$2 ? _ref$2.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key$1 = _keys.next().value; + _entry$1 = _ref$2.get(_key$1); + if (_entry$1 === undefined) { + _i++; + continue; + } + n$1 = _entry$1.k; + if (!(n$1.obj.object.pkg === check.pkg)) { + $panic(new $String("imported type with unresolved underlying type")); + } + n$1.underlying = u; + _i++; + } + $s = -1; return u; + /* */ } return; } var $f = {$blk: under$2, $c: true, $r, _entry, _entry$1, _i, _key, _key$1, _keys, _r$1, _r$2, _ref, _ref$1, _ref$2, _size, _tuple, check, i, n, n$1, n0, n1, ok, path, seen, u, u1, u1$1, u1$2, u1$3, u1$4, u1$5, $s};return $f; + }; + $ptrType(Named).prototype.setUnderlying = function setUnderlying(typ$3) { + var n, typ$3; + n = this; + if (!(n === ptrType$9.nil)) { + n.underlying = typ$3; + } + }; + $ptrType(Named).prototype.lookupMethod = function lookupMethod$1(pkg, name, foldCase) { + var {$24r, _r$1, _r$2, _tuple, foldCase, i, n, name, pkg, $s, $r, $c} = $restore(this, {pkg, name, foldCase}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = this; + _r$1 = n.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _tuple = lookupMethod(n.Origin().methods, pkg, name, foldCase); + i = _tuple[0]; + if (i < 0) { + $s = -1; return [-1, ptrType$2.nil]; + } + _r$2 = n.Method(i); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = [i, _r$2]; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: lookupMethod$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, foldCase, i, n, name, pkg, $s};return $f; + }; + $ptrType(Checker).prototype.context = function context() { + var check; + check = this; + if (check.ctxt === ptrType$51.nil) { + check.ctxt = NewContext(); + } + return check.ctxt; + }; + $ptrType(Named).prototype.expandUnderlying = function expandUnderlying() { + var {$24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, check, copied, ctxt, h, iface$1, methods, n, n2, old, orig, smap, targs, underlying, unexpanded, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + n = [n]; + n[0] = this; + check[0] = n[0].check; + /* */ if (!(check[0] === ptrType$6.nil) && false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(check[0] === ptrType$6.nil) && false) { */ case 1: + $r = check[0].trace(n[0].obj.object.pos, "-- Named.expandUnderlying %s", new sliceType$5([n[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(check, n) { return function Named·expandUnderlying·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + $r = check[0].trace(n[0].obj.object.pos, "=> %s (tparams = %s, under = %s)", new sliceType$5([n[0], n[0].tparams.list(), n[0].underlying])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Named·expandUnderlying·func1, $c: true, $r, $s};return $f; + }; })(check, n), []]); + /* } */ case 2: + $r = assert(!($interfaceIsEqual(n[0].inst.orig.underlying, $ifaceNil))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (n[0].inst.ctxt === ptrType$51.nil) { + n[0].inst.ctxt = NewContext(); + } + orig = n[0].inst.orig; + targs = n[0].inst.targs; + _tuple = $assertType(orig.underlying, ptrType$9, true); + unexpanded = _tuple[1]; + /* */ if (unexpanded) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (unexpanded) { */ case 5: + $r = assert(!(check[0] === ptrType$6.nil)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + /* */ if (!((orig.tparams.Len() === targs.Len()))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!((orig.tparams.Len() === targs.Len()))) { */ case 8: + $24r = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + $s = 10; case 10: return $24r; + /* } */ case 9: + _r$1 = n[0].inst.ctxt.instanceHash(orig, targs.list()); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + h = _r$1; + _r$2 = n[0].inst.ctxt.update(h, orig, n[0].TypeArgs().list(), n[0]); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + n2 = _r$2; + $r = assert($interfaceIsEqual(n[0], n2)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = makeSubstMap(orig.tparams.list(), targs.list()); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + smap = _r$3; + ctxt = ptrType$51.nil; + if (!(check[0] === ptrType$6.nil)) { + ctxt = check[0].context(); + } + _r$4 = n[0].check.subst(n[0].obj.object.pos, orig.underlying, smap, n[0], ctxt); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + underlying = _r$4; + _tuple$1 = $assertType(underlying, ptrType$13, true); + iface$1 = _tuple$1[0]; + if (!(iface$1 === ptrType$13.nil)) { + _tuple$2 = replaceRecvType(iface$1.methods, orig, n[0]); + methods = _tuple$2[0]; + copied = _tuple$2[1]; + if (copied) { + if ($interfaceIsEqual(iface$1, orig.underlying)) { + old = iface$1; + iface$1 = check[0].newInterface(); + iface$1.embeddeds = old.embeddeds; + iface$1.complete = old.complete; + iface$1.implicit = old.implicit; + underlying = iface$1; + } + iface$1.methods = methods; + } + } + $24r$1 = underlying; + $s = 16; case 16: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: expandUnderlying, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, check, copied, ctxt, h, iface$1, methods, n, n2, old, orig, smap, targs, underlying, unexpanded, $s, $deferred};return $f; } } + }; + safeUnderlying = function safeUnderlying$1(typ$3) { + var {$24r, _r$1, _tuple, t, typ$3, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(typ$3, ptrType$9, true); + t = _tuple[0]; + if (!(t === ptrType$9.nil)) { + $s = -1; return t.underlying; + } + _r$1 = typ$3.Underlying(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: safeUnderlying$1, $c: true, $r, $24r, _r$1, _tuple, t, typ$3, $s};return $f; + }; + $ptrType(Checker).prototype.monomorph = function monomorph() { + var {_i, _ref, again, check, dst, edge, i, src, w, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + again = true; + /* while (true) { */ case 1: + /* if (!(again)) { break; } */ if(!(again)) { $s = 2; continue; } + again = false; + _ref = check.mono.edges; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + i = _i; + edge = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), monoEdge); + src = (x = check.mono.vertices, x$1 = edge.src, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + dst = (x$2 = check.mono.vertices, x$3 = edge.dst, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + w = src.weight + edge.weight >> 0; + if (w <= dst.weight) { + _i++; + /* continue; */ $s = 3; continue; + } + dst.pre = i; + dst.len = src.len + 1 >> 0; + /* */ if (dst.len === check.mono.vertices.$length) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (dst.len === check.mono.vertices.$length) { */ case 5: + $r = check.reportInstanceLoop(edge.dst); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 6: + dst.weight = w; + again = true; + _i++; + $s = 3; continue; + case 4: + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: monomorph, $c: true, $r, _i, _ref, again, check, dst, edge, i, src, w, x, x$1, x$2, x$3, $s};return $f; + }; + $ptrType(Checker).prototype.reportInstanceLoop = function reportInstanceLoop(v) { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r$1, _r$2, _ref, _ref$1, check, edge, obj, obj0, qf, seen, stack, v, v$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $r, $c} = $restore(this, {v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + stack = sliceType$13.nil; + seen = $makeSlice(sliceType$15, check.mono.vertices.$length); + while (true) { + if (!(!((v < 0 || v >= seen.$length) ? ($throwRuntimeError("index out of range"), undefined) : seen.$array[seen.$offset + v]))) { break; } + stack = $append(stack, v); + ((v < 0 || v >= seen.$length) ? ($throwRuntimeError("index out of range"), undefined) : seen.$array[seen.$offset + v] = true); + v = (x = check.mono.edges, x$1 = (x$2 = check.mono.vertices, ((v < 0 || v >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + v])).pre, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).src; + } + while (true) { + if (!(!(((0 >= stack.$length ? ($throwRuntimeError("index out of range"), undefined) : stack.$array[stack.$offset + 0]) === v)))) { break; } + stack = $subslice(stack, 1); + } + obj0 = (x$3 = check.mono.vertices, ((v < 0 || v >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + v])).obj; + $r = check.errorf(obj0, 140, "instantiation cycle:", sliceType$5.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + qf = RelativeTo(check.pkg); + _ref = stack; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + v$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + edge = $clone((x$4 = check.mono.edges, x$5 = (x$6 = check.mono.vertices, ((v$1 < 0 || v$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + v$1])).pre, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])), monoEdge); + obj = (x$7 = check.mono.vertices, x$8 = edge.dst, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])).obj; + _ref$1 = obj.object.Type(); + /* */ if ($assertType(_ref$1, ptrType$9, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$14, true)[1]) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($assertType(_ref$1, ptrType$9, true)[1]) { */ case 4: + _arg = new atPos(((edge.pos >> 0))); + _arg$1 = new $String(obj.object.Name()); + _r$1 = TypeString(edge.typ, qf); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$2 = new $String(_r$1); + $r = check.errorf(_arg, 140, "\t%s implicitly parameterized by %s", new sliceType$5([_arg$1, _arg$2])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else if ($assertType(_ref$1, ptrType$14, true)[1]) { */ case 5: + _arg$3 = new atPos(((edge.pos >> 0))); + _arg$4 = new $String(obj.object.Name()); + _r$2 = TypeString(edge.typ, qf); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$5 = new $String(_r$2); + $r = check.errorf(_arg$3, 140, "\t%s instantiated as %s", new sliceType$5([_arg$4, _arg$5])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + $panic(new $String("unexpected type")); + /* } */ case 7: + _i++; + $s = 2; continue; + case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: reportInstanceLoop, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r$1, _r$2, _ref, _ref$1, check, edge, obj, obj0, qf, seen, stack, v, v$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s};return $f; + }; + $ptrType(monoGraph).prototype.recordCanon = function recordCanon(mpar, tpar) { + var _key, mpar, tpar, w; + w = this; + if (w.canon === false) { + w.canon = new $global.Map(); + } + _key = mpar; (w.canon || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$14.keyFor(_key), { k: _key, v: tpar }); + }; + $ptrType(monoGraph).prototype.recordInstance = function recordInstance(pkg, pos, tparams, targs, xlist) { + var {_i, _r$1, _ref, i, pkg, pos, pos$1, targs, tpar, tparams, w, xlist, $s, $r, $c} = $restore(this, {pkg, pos, tparams, targs, xlist}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + _ref = tparams; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + pos$1 = pos; + /* */ if (i < xlist.$length) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i < xlist.$length) { */ case 3: + _r$1 = ((i < 0 || i >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + i]).Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos$1 = _r$1; + /* } */ case 4: + $r = w.assign(pkg, pos$1, tpar, ((i < 0 || i >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: recordInstance, $c: true, $r, _i, _r$1, _ref, i, pkg, pos, pos$1, targs, tpar, tparams, w, xlist, $s};return $f; + }; + $ptrType(monoGraph).prototype.assign = function assign(pkg, pos, tpar, targ) { + var {do$1, flow, pkg, pos, targ, tpar, w, $s, $r, $c} = $restore(this, {pkg, pos, tpar, targ}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + do$1 = [do$1]; + flow = [flow]; + pkg = [pkg]; + pos = [pos]; + targ = [targ]; + tpar = [tpar]; + w = [w]; + w[0] = this; + if (!(tpar[0].Obj().object.Pkg() === pkg[0])) { + $s = -1; return; + } + flow[0] = (function(do$1, flow, pkg, pos, targ, tpar, w) { return function monoGraph·assign·func1(src, typ$3) { + var src, typ$3, weight; + weight = 1; + if ($interfaceIsEqual(typ$3, targ[0])) { + weight = 0; + } + w[0].addEdge(w[0].typeParamVertex(tpar[0]), src, weight, pos[0], targ[0]); + }; })(do$1, flow, pkg, pos, targ, tpar, w); + do$1[0] = $throwNilPointerError; + do$1[0] = (function(do$1, flow, pkg, pos, targ, tpar, w) { return function monoGraph·assign·func2(typ$3) { + var {_r$1, _r$2, _r$3, _ref, i, i$1, i$2, src, targs, tuple$2, typ$10, typ$11, typ$12, typ$13, typ$14, typ$15, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = typ$3; + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ($assertType(_ref, ptrType$14, true)[1]) { */ case 1: + typ$5 = _ref.$val; + $r = assert(typ$5.Obj().object.Pkg() === pkg[0]); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = flow[0](w[0].typeParamVertex(typ$5), typ$5); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 2: + typ$6 = _ref.$val; + src = w[0].localNamedVertex(pkg[0], typ$6.Origin()); + /* */ if (src >= 0) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (src >= 0) { */ case 16: + $r = flow[0](src, typ$6); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + targs = typ$6.TypeArgs(); + i = 0; + /* while (true) { */ case 19: + /* if (!(i < targs.Len())) { break; } */ if(!(i < targs.Len())) { $s = 20; continue; } + $r = do$1[0](targs.At(i)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + $s = 19; continue; + case 20: + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: + typ$7 = _ref.$val; + $r = do$1[0](typ$7.Elem()); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 4: + typ$8 = _ref.$val; + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 5: + typ$9 = _ref.$val; + $r = do$1[0](typ$9.Elem()); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 6: + typ$10 = _ref.$val; + $r = do$1[0](typ$10.Key()); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = do$1[0](typ$10.Elem()); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 7: + typ$11 = _ref.$val; + $r = do$1[0](typ$11.Elem()); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 8: + typ$12 = _ref.$val; + $r = do$1[0](typ$12.Elem()); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 9: + typ$13 = _ref.$val; + i$1 = 0; + /* while (true) { */ case 28: + _r$1 = typ$13.NumMethods(); /* */ $s = 30; case 30: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* if (!(i$1 < _r$1)) { break; } */ if(!(i$1 < _r$1)) { $s = 29; continue; } + _r$2 = typ$13.Method(i$1); /* */ $s = 31; case 31: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.object.Type(); /* */ $s = 32; case 32: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = do$1[0](_r$3); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + $s = 28; continue; + case 29: + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 10: + typ$14 = _ref.$val; + tuple$2 = (function(do$1, flow, pkg, pos, targ, tpar, w) { return function monoGraph·assign·func2·func1(tup) { + var {i$2, tup, $s, $r, $c} = $restore(this, {tup}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i$2 = 0; + /* while (true) { */ case 1: + /* if (!(i$2 < tup.Len())) { break; } */ if(!(i$2 < tup.Len())) { $s = 2; continue; } + $r = do$1[0](tup.At(i$2).object.Type()); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$2 = i$2 + (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: monoGraph·assign·func2·func1, $c: true, $r, i$2, tup, $s};return $f; + }; })(do$1, flow, pkg, pos, targ, tpar, w); + $r = tuple$2(typ$14.Params()); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = tuple$2(typ$14.Results()); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 11: + typ$15 = _ref.$val; + i$2 = 0; + /* while (true) { */ case 36: + /* if (!(i$2 < typ$15.NumFields())) { break; } */ if(!(i$2 < typ$15.NumFields())) { $s = 37; continue; } + $r = do$1[0](typ$15.Field(i$2).object.Type()); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$2 = i$2 + (1) >> 0; + $s = 36; continue; + case 37: + $s = 13; continue; + /* } else { */ case 12: + typ$4 = _ref; + $panic(new $String("unexpected type")); + /* } */ case 13: + $s = -1; return; + /* */ } return; } var $f = {$blk: monoGraph·assign·func2, $c: true, $r, _r$1, _r$2, _r$3, _ref, i, i$1, i$2, src, targs, tuple$2, typ$10, typ$11, typ$12, typ$13, typ$14, typ$15, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, $s};return $f; + }; })(do$1, flow, pkg, pos, targ, tpar, w); + $r = do$1[0](targ[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: assign, $c: true, $r, do$1, flow, pkg, pos, targ, tpar, w, $s};return $f; + }; + $ptrType(monoGraph).prototype.localNamedVertex = function localNamedVertex(pkg, named) { + var _entry, _entry$1, _i, _key, _key$1, _keys, _ref, _size, _tuple, _tuple$1, _tuple$2, elem, elem$1, idx, idx$1, named, obj, ok, ok$1, ok$2, pkg, root, scope, tpar, w; + w = this; + obj = named.Obj(); + if (!(obj.object.Pkg() === pkg)) { + return -1; + } + root = pkg.Scope(); + if (obj.object.Parent() === root) { + return -1; + } + _tuple = (_entry = $mapIndex(w.nameIdx,ptrType$17.keyFor(obj)), _entry !== undefined ? [_entry.v, true] : [0, false]); + idx = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return idx; + } + idx$1 = -1; + scope = obj.object.Parent(); + while (true) { + if (!(!(scope === root))) { break; } + _ref = scope.elems; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry$1 = _ref.get(_key); + if (_entry$1 === undefined) { + _i++; + continue; + } + elem = _entry$1.v; + _tuple$1 = $assertType(elem, ptrType$17, true); + elem$1 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (ok$1 && !elem$1.IsAlias() && elem$1.object.Pos() < obj.object.Pos()) { + _tuple$2 = $assertType(elem$1.object.Type(), ptrType$14, true); + tpar = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (ok$2) { + if (idx$1 < 0) { + idx$1 = w.vertices.$length; + w.vertices = $append(w.vertices, new monoVertex.ptr(0, 0, 0, obj)); + } + w.addEdge(idx$1, w.typeParamVertex(tpar), 1, obj.object.Pos(), tpar); + } + } + _i++; + } + scope = scope.Parent(); + } + if (w.nameIdx === false) { + w.nameIdx = new $global.Map(); + } + _key$1 = obj; (w.nameIdx || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key$1), { k: _key$1, v: idx$1 }); + return idx$1; + }; + $ptrType(monoGraph).prototype.typeParamVertex = function typeParamVertex(tpar) { + var _entry, _entry$1, _key, _tuple, _tuple$1, idx, idx$1, obj, ok, ok$1, tpar, w, x; + w = this; + _tuple = (_entry = $mapIndex(w.canon,ptrType$14.keyFor(tpar)), _entry !== undefined ? [_entry.v, true] : [ptrType$14.nil, false]); + x = _tuple[0]; + ok = _tuple[1]; + if (ok) { + tpar = x; + } + obj = tpar.Obj(); + _tuple$1 = (_entry$1 = $mapIndex(w.nameIdx,ptrType$17.keyFor(obj)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]); + idx = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (ok$1) { + return idx; + } + if (w.nameIdx === false) { + w.nameIdx = new $global.Map(); + } + idx$1 = w.vertices.$length; + w.vertices = $append(w.vertices, new monoVertex.ptr(0, 0, 0, obj)); + _key = obj; (w.nameIdx || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key), { k: _key, v: idx$1 }); + return idx$1; + }; + $ptrType(monoGraph).prototype.addEdge = function addEdge(dst, src, weight, pos, typ$3) { + var dst, pos, src, typ$3, w, weight; + w = this; + w.edges = $append(w.edges, new monoEdge.ptr(dst, src, weight, pos, typ$3)); + }; + $ptrType(MethodSet).prototype.String = function String$28() { + var {_i, _r$1, _r$2, _r$3, _ref, buf, f, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + s = this; + if (s.Len() === 0) { + $s = -1; return "MethodSet {}"; + } + buf[0] = new strings.Builder.ptr(ptrType$91.nil, sliceType$14.nil); + _r$1 = fmt.Fprintln(buf[0], new sliceType$5([new $String("MethodSet {")])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _ref = s.list; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$2 = fmt.Fprintf(buf[0], "\t%s\n", new sliceType$5([f])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _i++; + $s = 2; continue; + case 3: + _r$3 = fmt.Fprintln(buf[0], new sliceType$5([new $String("}")])); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: String$28, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, buf, f, s, $s};return $f; + }; + $ptrType(MethodSet).prototype.Len = function Len$7() { + var s; + s = this; + return s.list.$length; + }; + $ptrType(MethodSet).prototype.At = function At$3(i) { + var i, s, x; + s = this; + return (x = s.list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(MethodSet).prototype.Lookup = function Lookup$1(pkg, name) { + var {_r$1, _r$2, i, key, m, name, pkg, s, x, $s, $r, $c} = $restore(this, {pkg, name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + key = [key]; + s = [s]; + s[0] = this; + if (s[0].Len() === 0) { + $s = -1; return ptrType$3.nil; + } + key[0] = Id(pkg, name); + _r$1 = sort.Search(s[0].list.$length, (function(key, s) { return function MethodSet·Lookup·func1(i) { + var {$24r, _r$1, i, m, x, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = (x = s[0].list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + _r$1 = m.obj.Id(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1 >= key[0]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: MethodSet·Lookup·func1, $c: true, $r, $24r, _r$1, i, m, x, $s};return $f; + }; })(key, s)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + i = _r$1; + /* */ if (i < s[0].list.$length) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (i < s[0].list.$length) { */ case 2: + m = (x = s[0].list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + _r$2 = m.obj.Id(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2 === key[0]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$2 === key[0]) { */ case 4: + $s = -1; return m; + /* } */ case 5: + /* } */ case 3: + $s = -1; return ptrType$3.nil; + /* */ } return; } var $f = {$blk: Lookup$1, $c: true, $r, _r$1, _r$2, i, key, m, name, pkg, s, x, $s};return $f; + }; + NewMethodSet = function NewMethodSet$1(T) { + var {T, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _keys, _keys$1, _keys$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, alt, base, current, e, f, found, found$1, fset, i, i$1, isPtr, isPtr$1, k, k$1, list$2, m, m$1, mset, named, next, seen, t, t$1, typ$3, typ$4, typ$5, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + list$2 = [list$2]; + base = false; + _tuple = deref(T); + typ$3 = _tuple[0]; + isPtr = _tuple[1]; + if (!(isPtr)) { _v = false; $s = 3; continue s; } + _r$1 = IsInterface(typ$3); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $s = -1; return emptyMethodSet; + /* } */ case 2: + current = new sliceType$25([$clone(new embeddedType.ptr(typ$3, sliceType$13.nil, isPtr, false), embeddedType)]); + seen = new instanceLookup.ptr(false); + /* while (true) { */ case 5: + /* if (!(current.$length > 0)) { break; } */ if(!(current.$length > 0)) { $s = 6; continue; } + next = sliceType$25.nil; + fset = false; + mset = false; + _ref = current; + _i = 0; + /* while (true) { */ case 7: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 8; continue; } + e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), embeddedType); + typ$4 = e.typ; + _tuple$1 = $assertType(typ$4, ptrType$9, true); + named = _tuple$1[0]; + /* */ if (!(named === ptrType$9.nil)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(named === ptrType$9.nil)) { */ case 9: + _r$2 = seen.lookup(named); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + alt = _r$2; + if (!(alt === ptrType$9.nil)) { + _i++; + /* continue; */ $s = 7; continue; + } + seen.add(named); + i = 0; + /* while (true) { */ case 12: + _r$3 = named.NumMethods(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* if (!(i < _r$3)) { break; } */ if(!(i < _r$3)) { $s = 13; continue; } + _r$4 = named.Method(i); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = new methodSet(mset).addOne(_r$4, concat(e.index, i), e.indirect, e.multiples); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + mset = _r$5; + i = i + (1) >> 0; + $s = 12; continue; + case 13: + /* } */ case 10: + _r$6 = under(typ$4); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _ref$1 = _r$6; + /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref$1, ptrType$13, true)[1]) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 18: + t = _ref$1.$val; + _ref$2 = t.fields; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$2.$length)) { break; } + i$1 = _i$1; + f = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + if (fset === false) { + fset = new $global.Map(); + } + _key = f.object.Id(); (fset || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); + if (f.embedded) { + _tuple$2 = deref(f.object.typ); + typ$5 = _tuple$2[0]; + isPtr$1 = _tuple$2[1]; + next = $append(next, new embeddedType.ptr(typ$5, concat(e.index, i$1), e.indirect || isPtr$1, e.multiples)); + } + _i$1++; + } + $s = 20; continue; + /* } else if ($assertType(_ref$1, ptrType$13, true)[1]) { */ case 19: + t$1 = _ref$1.$val; + _r$7 = t$1.typeSet(); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = new methodSet(mset).add(_r$7.methods, e.index, true, e.multiples); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + mset = _r$8; + /* } */ case 20: + _i++; + $s = 7; continue; + case 8: + _ref$3 = mset; + _i$2 = 0; + _keys = _ref$3 ? _ref$3.keys() : undefined; + _size = _ref$3 ? _ref$3.size : 0; + while (true) { + if (!(_i$2 < _size)) { break; } + _key$1 = _keys.next().value; + _entry = _ref$3.get(_key$1); + if (_entry === undefined) { + _i$2++; + continue; + } + k = _entry.k; + m = _entry.v; + _tuple$3 = (_entry$1 = $mapIndex(base,$String.keyFor(k)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$3.nil, false]); + found = _tuple$3[1]; + if (!found) { + if ((_entry$2 = $mapIndex(fset,$String.keyFor(k)), _entry$2 !== undefined ? _entry$2.v : false)) { + m = ptrType$3.nil; + } + if (base === false) { + base = new $global.Map(); + } + _key$2 = k; (base || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: m }); + } + _i$2++; + } + _ref$4 = fset; + _i$3 = 0; + _keys$1 = _ref$4 ? _ref$4.keys() : undefined; + _size$1 = _ref$4 ? _ref$4.size : 0; + while (true) { + if (!(_i$3 < _size$1)) { break; } + _key$3 = _keys$1.next().value; + _entry$3 = _ref$4.get(_key$3); + if (_entry$3 === undefined) { + _i$3++; + continue; + } + k$1 = _entry$3.k; + _tuple$4 = (_entry$4 = $mapIndex(base,$String.keyFor(k$1)), _entry$4 !== undefined ? [_entry$4.v, true] : [ptrType$3.nil, false]); + found$1 = _tuple$4[1]; + if (!found$1) { + if (base === false) { + base = new $global.Map(); + } + _key$4 = k$1; (base || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$4), { k: _key$4, v: ptrType$3.nil }); + } + _i$3++; + } + _r$9 = consolidateMultiples(next); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + current = _r$9; + $s = 5; continue; + case 6: + if ((base ? base.size : 0) === 0) { + $s = -1; return emptyMethodSet; + } + list$2[0] = sliceType$1.nil; + _ref$5 = base; + _i$4 = 0; + _keys$2 = _ref$5 ? _ref$5.keys() : undefined; + _size$2 = _ref$5 ? _ref$5.size : 0; + while (true) { + if (!(_i$4 < _size$2)) { break; } + _key$5 = _keys$2.next().value; + _entry$5 = _ref$5.get(_key$5); + if (_entry$5 === undefined) { + _i$4++; + continue; + } + m$1 = _entry$5.v; + if (!(m$1 === ptrType$3.nil)) { + m$1.recv = T; + list$2[0] = $append(list$2[0], m$1); + } + _i$4++; + } + $r = sort.Slice(list$2[0], (function(list$2) { return function NewMethodSet·func1(i$2, j) { + var {$24r, _r$10, _r$11, i$2, j, $s, $r, $c} = $restore(this, {i$2, j}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$10 = ((i$2 < 0 || i$2 >= list$2[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2[0].$array[list$2[0].$offset + i$2]).obj.Id(); /* */ $s = 1; case 1: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = ((j < 0 || j >= list$2[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2[0].$array[list$2[0].$offset + j]).obj.Id(); /* */ $s = 2; case 2: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $24r = _r$10 < _r$11; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: NewMethodSet·func1, $c: true, $r, $24r, _r$10, _r$11, i$2, j, $s};return $f; + }; })(list$2)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return new MethodSet.ptr(list$2[0]); + /* */ } return; } var $f = {$blk: NewMethodSet$1, $c: true, $r, T, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _keys, _keys$1, _keys$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, alt, base, current, e, f, found, found$1, fset, i, i$1, isPtr, isPtr$1, k, k$1, list$2, m, m$1, mset, named, next, seen, t, t$1, typ$3, typ$4, typ$5, $s};return $f; + }; + $pkg.NewMethodSet = NewMethodSet; + methodSet.prototype.add = function add(list$2, index$1, indirect, multiples) { + var _i, _ref, f, i, index$1, indirect, list$2, multiples, s; + s = this.$val; + if (list$2.$length === 0) { + return s; + } + _ref = list$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + s = new methodSet(s).addOne(f, concat(index$1, i), indirect, multiples); + _i++; + } + return s; + }; + $ptrType(methodSet).prototype.add = function(...$args) { return new methodSet(this.$get()).add(...$args); }; + methodSet.prototype.addOne = function addOne(f, index$1, indirect, multiples) { + var _entry, _key, _key$1, _tuple, f, found, index$1, indirect, key, multiples, s; + s = this.$val; + if (s === false) { + s = new $global.Map(); + } + key = f.object.Id(); + if (!multiples) { + _tuple = (_entry = $mapIndex(s,$String.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$3.nil, false]); + found = _tuple[1]; + if (!found && (indirect || !f.hasPtrRecv())) { + _key = key; (s || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: new Selection.ptr(1, $ifaceNil, f, index$1, indirect) }); + return s; + } + } + _key$1 = key; (s || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: ptrType$3.nil }); + return s; + }; + $ptrType(methodSet).prototype.addOne = function(...$args) { return new methodSet(this.$get()).addOne(...$args); }; + $ptrType(Map).prototype.Key = function Key() { + var m; + m = this; + return m.key; + }; + $ptrType(Map).prototype.Elem = function Elem$2() { + var m; + m = this; + return m.elem; + }; + $ptrType(Map).prototype.Underlying = function Underlying$8() { + var t; + t = this; + return t; + }; + $ptrType(Map).prototype.String = function String$29() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$29, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + LookupFieldOrMethod = function LookupFieldOrMethod$1(T, addressable, pkg, name) { + var {T, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, index$1, indirect, name, obj, ok, ok$1, p, pkg, t, t$1, $s, $r, $c} = $restore(this, {T, addressable, pkg, name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = $ifaceNil; + index$1 = sliceType$13.nil; + indirect = false; + if ($interfaceIsEqual(T, $ifaceNil)) { + $panic(new $String("LookupFieldOrMethod on nil type")); + } + _tuple = $assertType(T, ptrType$9, true); + t = _tuple[0]; + /* */ if (!(t === ptrType$9.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(t === ptrType$9.nil)) { */ case 1: + _r$1 = t.Underlying(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$1, ptrType$26, true); + p = _tuple$1[0]; + /* */ if (!(p === ptrType$26.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(p === ptrType$26.nil)) { */ case 4: + _r$2 = lookupFieldOrMethod(p, false, pkg, name, false); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + obj = _tuple$2[0]; + index$1 = _tuple$2[1]; + indirect = _tuple$2[2]; + _tuple$3 = $assertType(obj, ptrType$2, true); + ok = _tuple$3[1]; + if (ok) { + _tmp = $ifaceNil; + _tmp$1 = sliceType$13.nil; + _tmp$2 = false; + obj = _tmp; + index$1 = _tmp$1; + indirect = _tmp$2; + $s = -1; return [obj, index$1, indirect]; + } + $s = -1; return [obj, index$1, indirect]; + /* } */ case 5: + /* } */ case 2: + _r$3 = lookupFieldOrMethod(T, addressable, pkg, name, false); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$4 = _r$3; + obj = _tuple$4[0]; + index$1 = _tuple$4[1]; + indirect = _tuple$4[2]; + /* */ if (false && $interfaceIsEqual(obj, $ifaceNil) && isTypeParam(T)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (false && $interfaceIsEqual(obj, $ifaceNil) && isTypeParam(T)) { */ case 8: + _r$4 = coreType(T); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + t$1 = _r$4; + /* */ if (!($interfaceIsEqual(t$1, $ifaceNil))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!($interfaceIsEqual(t$1, $ifaceNil))) { */ case 11: + _r$5 = lookupFieldOrMethod(t$1, addressable, pkg, name, false); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$5 = _r$5; + obj = _tuple$5[0]; + index$1 = _tuple$5[1]; + indirect = _tuple$5[2]; + _tuple$6 = $assertType(obj, ptrType$16, true); + ok$1 = _tuple$6[1]; + if (!ok$1) { + _tmp$3 = $ifaceNil; + _tmp$4 = sliceType$13.nil; + _tmp$5 = false; + obj = _tmp$3; + index$1 = _tmp$4; + indirect = _tmp$5; + } + /* } */ case 12: + /* } */ case 9: + $s = -1; return [obj, index$1, indirect]; + /* */ } return; } var $f = {$blk: LookupFieldOrMethod$1, $c: true, $r, T, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, index$1, indirect, name, obj, ok, ok$1, p, pkg, t, t$1, $s};return $f; + }; + $pkg.LookupFieldOrMethod = LookupFieldOrMethod; + lookupFieldOrMethod = function lookupFieldOrMethod$1(T, addressable, pkg, name, foldCase) { + var {T, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, alt, current, e, f, f$1, foldCase, i, i$1, i$2, index$1, indirect, isPtr, isPtr$1, m, m$1, name, named, next, obj, ok, pkg, seen, t, t$1, typ$3, typ$4, typ$5, $s, $r, $c} = $restore(this, {T, addressable, pkg, name, foldCase}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = $ifaceNil; + index$1 = sliceType$13.nil; + indirect = false; + if (name === "_") { + $s = -1; return [obj, index$1, indirect]; + } + _tuple = deref(T); + typ$3 = _tuple[0]; + isPtr = _tuple[1]; + /* */ if (isPtr) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (isPtr) { */ case 1: + _r$1 = under(typ$3); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$1, ptrType$13, true); + ok = _tuple$1[1]; + if (ok) { + $s = -1; return [obj, index$1, indirect]; + } + /* } */ case 2: + current = new sliceType$25([$clone(new embeddedType.ptr(typ$3, sliceType$13.nil, isPtr, false), embeddedType)]); + seen = new instanceLookup.ptr(false); + /* while (true) { */ case 4: + /* if (!(current.$length > 0)) { break; } */ if(!(current.$length > 0)) { $s = 5; continue; } + next = sliceType$25.nil; + _ref = current; + _i = 0; + /* while (true) { */ case 6: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } + e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), embeddedType); + typ$4 = e.typ; + _tuple$2 = $assertType(typ$4, ptrType$9, true); + named = _tuple$2[0]; + /* */ if (!(named === ptrType$9.nil)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!(named === ptrType$9.nil)) { */ case 8: + _r$2 = seen.lookup(named); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + alt = _r$2; + if (!(alt === ptrType$9.nil)) { + _i++; + /* continue; */ $s = 6; continue; + } + seen.add(named); + _r$3 = named.lookupMethod(pkg, name, foldCase); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$3 = _r$3; + i = _tuple$3[0]; + m = _tuple$3[1]; + if (!(m === ptrType$2.nil)) { + index$1 = concat(e.index, i); + if (!($interfaceIsEqual(obj, $ifaceNil)) || e.multiples) { + _tmp = $ifaceNil; + _tmp$1 = index$1; + _tmp$2 = false; + obj = _tmp; + index$1 = _tmp$1; + indirect = _tmp$2; + $s = -1; return [obj, index$1, indirect]; + } + obj = m; + indirect = e.indirect; + _i++; + /* continue; */ $s = 6; continue; + } + /* } */ case 9: + _r$4 = under(typ$4); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _ref$1 = _r$4; + /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref$1, ptrType$13, true)[1]) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 13: + t = _ref$1.$val; + _ref$2 = t.fields; + _i$1 = 0; + /* while (true) { */ case 16: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 17; continue; } + i$1 = _i$1; + f = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + /* */ if (f.object.sameId(pkg, name)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (f.object.sameId(pkg, name)) { */ case 18: + $r = assert(!($interfaceIsEqual(f.object.typ, $ifaceNil))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + index$1 = concat(e.index, i$1); + if (!($interfaceIsEqual(obj, $ifaceNil)) || e.multiples) { + _tmp$3 = $ifaceNil; + _tmp$4 = index$1; + _tmp$5 = false; + obj = _tmp$3; + index$1 = _tmp$4; + indirect = _tmp$5; + $s = -1; return [obj, index$1, indirect]; + } + obj = f; + indirect = e.indirect; + _i$1++; + /* continue; */ $s = 16; continue; + /* } */ case 19: + if ($interfaceIsEqual(obj, $ifaceNil) && f.embedded) { + _tuple$4 = deref(f.object.typ); + typ$5 = _tuple$4[0]; + isPtr$1 = _tuple$4[1]; + next = $append(next, new embeddedType.ptr(typ$5, concat(e.index, i$1), e.indirect || isPtr$1, e.multiples)); + } + _i$1++; + $s = 16; continue; + case 17: + $s = 15; continue; + /* } else if ($assertType(_ref$1, ptrType$13, true)[1]) { */ case 14: + t$1 = _ref$1.$val; + _r$5 = t$1.typeSet(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = _r$5.LookupMethod(pkg, name, foldCase); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$5 = _r$6; + i$2 = _tuple$5[0]; + m$1 = _tuple$5[1]; + /* */ if (!(m$1 === ptrType$2.nil)) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!(m$1 === ptrType$2.nil)) { */ case 23: + $r = assert(!($interfaceIsEqual(m$1.object.typ, $ifaceNil))); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + index$1 = concat(e.index, i$2); + if (!($interfaceIsEqual(obj, $ifaceNil)) || e.multiples) { + _tmp$6 = $ifaceNil; + _tmp$7 = index$1; + _tmp$8 = false; + obj = _tmp$6; + index$1 = _tmp$7; + indirect = _tmp$8; + $s = -1; return [obj, index$1, indirect]; + } + obj = m$1; + indirect = e.indirect; + /* } */ case 24: + /* } */ case 15: + _i++; + $s = 6; continue; + case 7: + if (!($interfaceIsEqual(obj, $ifaceNil))) { + _tuple$6 = $assertType(obj, ptrType$2, true); + f$1 = _tuple$6[0]; + if (!(f$1 === ptrType$2.nil)) { + if (f$1.hasPtrRecv() && !indirect && !addressable) { + _tmp$9 = $ifaceNil; + _tmp$10 = sliceType$13.nil; + _tmp$11 = true; + obj = _tmp$9; + index$1 = _tmp$10; + indirect = _tmp$11; + $s = -1; return [obj, index$1, indirect]; + } + } + $s = -1; return [obj, index$1, indirect]; + } + _r$7 = consolidateMultiples(next); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + current = _r$7; + $s = 4; continue; + case 5: + _tmp$12 = $ifaceNil; + _tmp$13 = sliceType$13.nil; + _tmp$14 = false; + obj = _tmp$12; + index$1 = _tmp$13; + indirect = _tmp$14; + $s = -1; return [obj, index$1, indirect]; + /* */ } return; } var $f = {$blk: lookupFieldOrMethod$1, $c: true, $r, T, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, alt, current, e, f, f$1, foldCase, i, i$1, i$2, index$1, indirect, isPtr, isPtr$1, m, m$1, name, named, next, obj, ok, pkg, seen, t, t$1, typ$3, typ$4, typ$5, $s};return $f; + }; + consolidateMultiples = function consolidateMultiples$1(list$2) { + var {_i, _key, _r$1, _ref, _tuple, e, found, i, list$2, n, prev, $s, $r, $c} = $restore(this, {list$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (list$2.$length <= 1) { + $s = -1; return list$2; + } + n = 0; + prev = new $global.Map(); + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), embeddedType); + _r$1 = lookupType(prev, e.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + i = _tuple[0]; + found = _tuple[1]; + if (found) { + ((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i]).multiples = true; + } else { + _key = e.typ; (prev || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: n }); + embeddedType.copy(((n < 0 || n >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + n]), e); + n = n + (1) >> 0; + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return $subslice(list$2, 0, n); + /* */ } return; } var $f = {$blk: consolidateMultiples$1, $c: true, $r, _i, _key, _r$1, _ref, _tuple, e, found, i, list$2, n, prev, $s};return $f; + }; + lookupType = function lookupType$1(m, typ$3) { + var {_entry, _entry$1, _i, _key, _keys, _r$1, _ref, _size, _tuple, found, i, i$1, m, t, typ$3, $s, $r, $c} = $restore(this, {m, typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = (_entry = $mapIndex(m,Type.keyFor(typ$3)), _entry !== undefined ? [_entry.v, true] : [0, false]); + i = _tuple[0]; + found = _tuple[1]; + if (found) { + $s = -1; return [i, true]; + } + _ref = m; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + /* while (true) { */ case 1: + /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 2; continue; } + _key = _keys.next().value; + _entry$1 = _ref.get(_key); + if (_entry$1 === undefined) { + _i++; + /* continue; */ $s = 1; continue; + } + t = _entry$1.k; + i$1 = _entry$1.v; + _r$1 = Identical(t, typ$3); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$1) { */ case 3: + $s = -1; return [i$1, true]; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return [0, false]; + /* */ } return; } var $f = {$blk: lookupType$1, $c: true, $r, _entry, _entry$1, _i, _key, _keys, _r$1, _ref, _size, _tuple, found, i, i$1, m, t, typ$3, $s};return $f; + }; + $ptrType(instanceLookup).prototype.lookup = function lookup$1(inst) { + var {_entry, _i, _r$1, _ref, inst, l, t, $s, $r, $c} = $restore(this, {inst}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this; + _ref = (_entry = $mapIndex(l.m,ptrType$9.keyFor(inst.Origin())), _entry !== undefined ? _entry.v : sliceType$7.nil); + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = Identical(inst, t); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$1) { */ case 3: + $s = -1; return t; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return ptrType$9.nil; + /* */ } return; } var $f = {$blk: lookup$1, $c: true, $r, _entry, _i, _r$1, _ref, inst, l, t, $s};return $f; + }; + $ptrType(instanceLookup).prototype.add = function add$1(inst) { + var _entry, _key, inst, insts, l; + l = this; + if (l.m === false) { + l.m = new $global.Map(); + } + insts = (_entry = $mapIndex(l.m,ptrType$9.keyFor(inst.Origin())), _entry !== undefined ? _entry.v : sliceType$7.nil); + _key = inst.Origin(); (l.m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$9.keyFor(_key), { k: _key, v: $append(insts, inst) }); + }; + $ptrType(Checker).prototype.missingMethod = function missingMethod(V, T, static$1) { + var {T, V, _i, _i$1, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, alt, check, f, f$1, found, m, m$1, method, obj, static$1, tset, u, $s, $r, $c} = $restore(this, {V, T, static$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + method = ptrType$2.nil; + alt = ptrType$2.nil; + check = this; + _r$1 = T.NumMethods(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1 === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$1 === 0) { */ case 1: + $s = -1; return [method, alt]; + /* } */ case 2: + _r$2 = under(V); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = $assertType(_r$2, ptrType$13, true); + u = _tuple[0]; + /* */ if (!(u === ptrType$13.nil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(u === ptrType$13.nil)) { */ case 5: + _r$3 = u.typeSet(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + tset = _r$3; + _r$4 = T.typeSet(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _ref = _r$4.methods; + _i = 0; + /* while (true) { */ case 9: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 10; continue; } + m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple$1 = tset.LookupMethod(m.object.pkg, m.object.name, false); + f = _tuple$1[1]; + if (f === ptrType$2.nil) { + if (!static$1) { + _i++; + /* continue; */ $s = 9; continue; + } + _tmp = m; + _tmp$1 = ptrType$2.nil; + method = _tmp; + alt = _tmp$1; + $s = -1; return [method, alt]; + } + _r$5 = Identical(f.object.typ, m.object.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!_r$5) { */ case 11: + _tmp$2 = m; + _tmp$3 = f; + method = _tmp$2; + alt = _tmp$3; + $s = -1; return [method, alt]; + /* } */ case 12: + _i++; + $s = 9; continue; + case 10: + $s = -1; return [method, alt]; + /* } */ case 6: + _r$6 = T.typeSet(); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _ref$1 = _r$6.methods; + _i$1 = 0; + /* while (true) { */ case 15: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 16; continue; } + m$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$7 = lookupFieldOrMethod(V, false, m$1.object.pkg, m$1.object.name, false); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$2 = _r$7; + obj = _tuple$2[0]; + found = !($interfaceIsEqual(obj, $ifaceNil)); + /* */ if (!found) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!found) { */ case 18: + _r$8 = lookupFieldOrMethod(NewPointer(V), false, m$1.object.pkg, m$1.object.name, false); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$3 = _r$8; + obj = _tuple$3[0]; + /* */ if ($interfaceIsEqual(obj, $ifaceNil)) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if ($interfaceIsEqual(obj, $ifaceNil)) { */ case 21: + _r$9 = lookupFieldOrMethod(V, false, m$1.object.pkg, m$1.object.name, true); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$4 = _r$9; + obj = _tuple$4[0]; + /* } */ case 22: + /* } */ case 19: + _tuple$5 = $assertType(obj, ptrType$2, true); + f$1 = _tuple$5[0]; + if (f$1 === ptrType$2.nil) { + _tmp$4 = m$1; + _tmp$5 = ptrType$2.nil; + method = _tmp$4; + alt = _tmp$5; + $s = -1; return [method, alt]; + } + /* */ if (!(check === ptrType$6.nil)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!(check === ptrType$6.nil)) { */ case 24: + $r = check.objDecl(f$1, ptrType$9.nil); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 25: + if (!found) { _v = true; $s = 29; continue s; } + _r$10 = Identical(f$1.object.typ, m$1.object.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v = !_r$10; case 29: + /* */ if (_v) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (_v) { */ case 27: + _tmp$6 = m$1; + _tmp$7 = f$1; + method = _tmp$6; + alt = _tmp$7; + $s = -1; return [method, alt]; + /* } */ case 28: + _i$1++; + $s = 15; continue; + case 16: + $s = -1; return [method, alt]; + /* */ } return; } var $f = {$blk: missingMethod, $c: true, $r, T, V, _i, _i$1, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, alt, check, f, f$1, found, m, m$1, method, obj, static$1, tset, u, $s};return $f; + }; + $ptrType(Checker).prototype.missingMethodReason = function missingMethodReason(V, T, m, alt) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, T, V, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, alt, check, m, mname, $s, $r, $c} = $restore(this, {V, T, m, alt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + mname = ""; + if (!(check === ptrType$6.nil) && false) { + mname = m.object.Name() + " method"; + } else { + mname = "method " + m.object.Name(); + } + /* */ if (!(alt === ptrType$2.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(alt === ptrType$2.nil)) { */ case 1: + /* */ if (!(m.object.Name() === alt.object.Name())) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(m.object.Name() === alt.object.Name())) { */ case 3: + _arg = new $String(mname); + _r$1 = check.funcString(alt); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$1); + _r$2 = check.funcString(m); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$2 = new $String(_r$2); + _r$3 = check.sprintf("(missing %s)\n\t\thave %s\n\t\twant %s", new sliceType$5([_arg, _arg$1, _arg$2])); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 8; case 8: return $24r; + /* } */ case 4: + _r$4 = Identical(m.object.typ, alt.object.typ); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$4) { */ case 9: + _r$5 = check.sprintf("(%s has pointer receiver)", new sliceType$5([new $String(mname)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$1 = _r$5; + $s = 13; case 13: return $24r$1; + /* } */ case 10: + _arg$3 = new $String(mname); + _r$6 = check.funcString(alt); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$4 = new $String(_r$6); + _r$7 = check.funcString(m); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$5 = new $String(_r$7); + _r$8 = check.sprintf("(wrong type for %s)\n\t\thave %s\n\t\twant %s", new sliceType$5([_arg$3, _arg$4, _arg$5])); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r$2 = _r$8; + $s = 17; case 17: return $24r$2; + /* } */ case 2: + _r$9 = isInterfacePtr(V); /* */ $s = 20; case 20: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_r$9) { */ case 18: + _r$10 = check.interfacePtrError(V); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $24r$3 = "(" + _r$10 + ")"; + $s = 22; case 22: return $24r$3; + /* } */ case 19: + _r$11 = isInterfacePtr(T); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (_r$11) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (_r$11) { */ case 23: + _r$12 = check.interfacePtrError(T); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $24r$4 = "(" + _r$12 + ")"; + $s = 27; case 27: return $24r$4; + /* } */ case 24: + _r$13 = check.sprintf("(missing %s)", new sliceType$5([new $String(mname)])); /* */ $s = 28; case 28: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + $24r$5 = _r$13; + $s = 29; case 29: return $24r$5; + /* */ } return; } var $f = {$blk: missingMethodReason, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, T, V, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, alt, check, m, mname, $s};return $f; + }; + isInterfacePtr = function isInterfacePtr$1(T) { + var {$24r, T, _r$1, _r$2, _tuple, _v, p, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$26, true); + p = _tuple[0]; + if (!(!(p === ptrType$26.nil))) { _v = false; $s = 2; continue s; } + _r$2 = IsInterface(p.base); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2; case 2: + $24r = _v; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: isInterfacePtr$1, $c: true, $r, $24r, T, _r$1, _r$2, _tuple, _v, p, $s};return $f; + }; + $ptrType(Checker).prototype.interfacePtrError = function interfacePtrError(T) { + var {$24r, $24r$1, T, _r$1, _r$2, _r$3, _r$4, _tuple, check, p, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = isInterfacePtr(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = assert(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = under(T); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = $assertType(_r$2, ptrType$26, true); + p = _tuple[0]; + /* */ if (isTypeParam(p.base)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (isTypeParam(p.base)) { */ case 4: + _r$3 = check.sprintf("type %s is pointer to type parameter, not type parameter", new sliceType$5([T])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 7; case 7: return $24r; + /* } */ case 5: + _r$4 = check.sprintf("type %s is pointer to interface, not interface", new sliceType$5([T])); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$1 = _r$4; + $s = 9; case 9: return $24r$1; + /* */ } return; } var $f = {$blk: interfacePtrError, $c: true, $r, $24r, $24r$1, T, _r$1, _r$2, _r$3, _r$4, _tuple, check, p, $s};return $f; + }; + $ptrType(Checker).prototype.funcString = function funcString(f) { + var {buf, check, f, qf, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + buf = bytes.NewBufferString(f.object.name); + qf = $throwNilPointerError; + if (!(check === ptrType$6.nil)) { + qf = $methodVal(check, "qualifier"); + } + $r = WriteSignature(buf, $assertType(f.object.typ, ptrType$27), qf); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf.String(); + /* */ } return; } var $f = {$blk: funcString, $c: true, $r, buf, check, f, qf, $s};return $f; + }; + $ptrType(Checker).prototype.assertableTo = function assertableTo(V, T) { + var {$24r, T, V, _r$1, _r$2, _tuple, check, method, wrongType, $s, $r, $c} = $restore(this, {V, T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + method = ptrType$2.nil; + wrongType = ptrType$2.nil; + check = this; + _r$1 = IsInterface(T); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$1) { */ case 1: + $s = -1; return [method, wrongType]; + /* } */ case 2: + _r$2 = check.missingMethod(T, V, false); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + method = _tuple[0]; + wrongType = _tuple[1]; + $24r = [method, wrongType]; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: assertableTo, $c: true, $r, $24r, T, V, _r$1, _r$2, _tuple, check, method, wrongType, $s};return $f; + }; + deref = function deref$1(typ$3) { + var _tuple, p, typ$3; + _tuple = $assertType(typ$3, ptrType$26, true); + p = _tuple[0]; + if (!(p === ptrType$26.nil)) { + if ($interfaceIsEqual(p.base, $ifaceNil)) { + if (false) { + $panic(new $String("pointer with nil base type (possibly due to an invalid cyclic declaration)")); + } + return [(0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), true]; + } + return [p.base, true]; + } + return [typ$3, false]; + }; + derefStructPtr = function derefStructPtr$1(typ$3) { + var {_r$1, _r$2, _tuple, _tuple$1, ok, p, typ$3, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = under(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$26, true); + p = _tuple[0]; + /* */ if (!(p === ptrType$26.nil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(p === ptrType$26.nil)) { */ case 2: + _r$2 = under(p.base); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$2, ptrType$11, true); + ok = _tuple$1[1]; + if (ok) { + $s = -1; return p.base; + } + /* } */ case 3: + $s = -1; return typ$3; + /* */ } return; } var $f = {$blk: derefStructPtr$1, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, ok, p, typ$3, $s};return $f; + }; + concat = function concat$1(list$2, i) { + var i, list$2, t; + t = sliceType$13.nil; + t = $appendSlice(t, list$2); + return $append(t, i); + }; + fieldIndex = function fieldIndex$1(fields, pkg, name) { + var _i, _ref, f, fields, i, name, pkg; + if (!(name === "_")) { + _ref = fields; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (f.object.sameId(pkg, name)) { + return i; + } + _i++; + } + } + return -1; + }; + lookupMethod = function lookupMethod$2(methods, pkg, name, foldCase) { + var _i, _ref, foldCase, i, m, methods, name, pkg; + if (!(name === "_")) { + _ref = methods; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ((m.object.name === name || foldCase && strings.EqualFold(m.object.name, name)) && m.object.sameId(pkg, m.object.name)) { + return [i, m]; + } + _i++; + } + } + return [-1, ptrType$2.nil]; + }; + $ptrType(Checker).prototype.labels = function labels(body) { + var {_arg, _arg$1, _arg$2, _entry, _i, _i$1, _key, _keys, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _size, all, alt, body, check, code, fwdJumps, jmp, lbl, msg, name, name$1, obj, $s, $r, $c} = $restore(this, {body}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _arg = ptrType.nil; + _arg$1 = body.Pos(); + _r$1 = body.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$2 = _r$1; + _r$2 = NewScope(_arg, _arg$1, _arg$2, "label"); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + all = _r$2; + _r$3 = check.blockBranches(all, ptrType$92.nil, ptrType$64.nil, body.List); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + fwdJumps = _r$3; + _ref = fwdJumps; + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + jmp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + msg = ""; + code = 0; + name = jmp.Label.Name; + _r$4 = all.Lookup(name); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + alt = _r$4; + if (!($interfaceIsEqual(alt, $ifaceNil))) { + msg = "goto %s jumps into block"; + $assertType(alt, ptrType$90).used = true; + code = 124; + } else { + msg = "label %s not declared"; + code = 119; + } + $r = check.errorf(jmp.Label, code, msg, new sliceType$5([new $String(name)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 4; continue; + case 5: + _ref$1 = all.elems; + _i$1 = 0; + _keys = _ref$1 ? _ref$1.keys() : undefined; + _size = _ref$1 ? _ref$1.size : 0; + /* while (true) { */ case 8: + /* if (!(_i$1 < _size)) { break; } */ if(!(_i$1 < _size)) { $s = 9; continue; } + _key = _keys.next().value; + _entry = _ref$1.get(_key); + if (_entry === undefined) { + _i$1++; + /* continue; */ $s = 8; continue; + } + name$1 = _entry.k; + obj = _entry.v; + _r$5 = resolve(name$1, obj); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + obj = _r$5; + lbl = $assertType(obj, ptrType$90); + /* */ if (!lbl.used) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!lbl.used) { */ case 11: + $r = check.softErrorf(lbl, 122, "label %s declared but not used", new sliceType$5([new $String(lbl.object.name)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + _i$1++; + $s = 8; continue; + case 9: + $s = -1; return; + /* */ } return; } var $f = {$blk: labels, $c: true, $r, _arg, _arg$1, _arg$2, _entry, _i, _i$1, _key, _keys, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _size, all, alt, body, check, code, fwdJumps, jmp, lbl, msg, name, name$1, obj, $s};return $f; + }; + $ptrType(block).prototype.insert = function insert$2(s) { + var {_key, b, labels$1, name, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = this; + name = s.Label.Name; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = assert(b.gotoTarget(name) === ptrType$64.nil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + labels$1 = b.labels; + if (labels$1 === false) { + labels$1 = new $global.Map(); + b.labels = labels$1; + } + _key = name; (labels$1 || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: s }); + $s = -1; return; + /* */ } return; } var $f = {$blk: insert$2, $c: true, $r, _key, b, labels$1, name, s, $s};return $f; + }; + $ptrType(block).prototype.gotoTarget = function gotoTarget(name) { + var _entry, b, name, s, t; + b = this; + s = b; + while (true) { + if (!(!(s === ptrType$92.nil))) { break; } + t = (_entry = $mapIndex(s.labels,$String.keyFor(name)), _entry !== undefined ? _entry.v : ptrType$64.nil); + if (!(t === ptrType$64.nil)) { + return t; + } + s = s.parent; + } + return ptrType$64.nil; + }; + $ptrType(block).prototype.enclosingTarget = function enclosingTarget(name) { + var b, name, s, t; + b = this; + s = b; + while (true) { + if (!(!(s === ptrType$92.nil))) { break; } + t = s.lstmt; + if (!(t === ptrType$64.nil) && t.Label.Name === name) { + return t; + } + s = s.parent; + } + return ptrType$64.nil; + }; + $ptrType(Checker).prototype.blockBranches = function blockBranches(all, parent, lstmt, list$2) { + var {_i, _ref, _tmp, _tmp$1, all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, list$2, lstmt, parent, recordVarDecl, s, stmtBranches, varDeclPos, $s, $r, $c} = $restore(this, {all, parent, lstmt, list$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + all = [all]; + b = [b]; + badJumps = [badJumps]; + blockBranches$1 = [blockBranches$1]; + check = [check]; + fwdJumps = [fwdJumps]; + jumpsOverVarDecl = [jumpsOverVarDecl]; + lstmt = [lstmt]; + recordVarDecl = [recordVarDecl]; + stmtBranches = [stmtBranches]; + varDeclPos = [varDeclPos]; + check[0] = this; + b[0] = new block.ptr(parent, lstmt[0], false); + varDeclPos[0] = 0; + _tmp = sliceType$26.nil; + _tmp$1 = sliceType$26.nil; + fwdJumps[0] = _tmp; + badJumps[0] = _tmp$1; + recordVarDecl[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func1(pos) { + var pos; + varDeclPos[0] = pos; + badJumps[0] = $appendSlice($subslice(badJumps[0], 0, 0), fwdJumps[0]); + }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); + jumpsOverVarDecl[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func2(jmp) { + var _i, _ref, bad, jmp; + if (new token.Pos(varDeclPos[0]).IsValid()) { + _ref = badJumps[0]; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + bad = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (jmp === bad) { + return true; + } + _i++; + } + } + return false; + }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); + blockBranches$1[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func3(lstmt$1, list$3) { + var {_arg, _arg$1, _r$1, list$3, lstmt$1, $s, $r, $c} = $restore(this, {lstmt$1, list$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = fwdJumps[0]; + _r$1 = check[0].blockBranches(all[0], b[0], lstmt$1, list$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + fwdJumps[0] = $appendSlice(_arg, _arg$1); + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·blockBranches·func3, $c: true, $r, _arg, _arg$1, _r$1, list$3, lstmt$1, $s};return $f; + }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); + stmtBranches[0] = $throwNilPointerError; + stmtBranches[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func4(s) { + var {_1, _arg, _arg$1, _arg$2, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, alt, d, i, jmp, lbl, name, name$1, obj, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, t, t$1, valid, valid$1, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = s; + /* */ if ($assertType(_ref, ptrType$63, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$64, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$72, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$68, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$73, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$59, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$60, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$79, true)[1]) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ($assertType(_ref, ptrType$63, true)[1]) { */ case 1: + s$1 = _ref.$val; + _tuple = $assertType(s$1.Decl, ptrType$93, true); + d = _tuple[0]; + /* */ if (!(d === ptrType$93.nil) && (d.Tok === 85)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!(d === ptrType$93.nil) && (d.Tok === 85)) { */ case 15: + $r = recordVarDecl[0](d.Pos()); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 16: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$64, true)[1]) { */ case 2: + s$2 = _ref.$val; + name = s$2.Label.Name; + /* */ if (!(name === "_")) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!(name === "_")) { */ case 18: + lbl = NewLabel(s$2.Label.Pos(), check[0].pkg, name); + _r$1 = all[0].Insert(lbl); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + alt = _r$1; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 21: + $r = check[0].softErrorf(lbl, 120, "label %s already declared", new sliceType$5([new $String(name)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].reportAltDecl(alt); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 23; continue; + /* } else { */ case 22: + $r = b[0].insert(s$2); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].recordDef(s$2.Label, lbl); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + i = 0; + _ref$1 = fwdJumps[0]; + _i = 0; + /* while (true) { */ case 28: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 29; continue; } + jmp = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + /* */ if (jmp.Label.Name === name) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (jmp.Label.Name === name) { */ case 30: + lbl.used = true; + $r = check[0].recordUse(jmp.Label, lbl); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = jumpsOverVarDecl[0](jmp); /* */ $s = 36; case 36: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (_r$2) { */ case 34: + _arg = jmp.Label; + _arg$1 = new $String(name); + _r$3 = check[0].fset.Position(varDeclPos[0]); /* */ $s = 37; case 37: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$2 = new $Int(_r$3.Line); + $r = check[0].softErrorf(_arg, 123, "goto %s jumps over variable declaration at line %d", new sliceType$5([_arg$1, _arg$2])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 35: + $s = 32; continue; + /* } else { */ case 31: + ((i < 0 || i >= fwdJumps[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : fwdJumps[0].$array[fwdJumps[0].$offset + i] = jmp); + i = i + (1) >> 0; + /* } */ case 32: + _i++; + $s = 28; continue; + case 29: + fwdJumps[0] = $subslice(fwdJumps[0], 0, i); + lstmt[0] = s$2; + /* } */ case 19: + $r = stmtBranches[0](s$2.Stmt); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$72, true)[1]) { */ case 3: + s$3 = _ref.$val; + if (s$3.Label === ptrType$30.nil) { + $s = -1; return; + } + name$1 = s$3.Label.Name; + _1 = s$3.Tok; + /* */ if (_1 === (61)) { $s = 41; continue; } + /* */ if (_1 === (65)) { $s = 42; continue; } + /* */ if (_1 === (73)) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (_1 === (61)) { */ case 41: + valid = false; + t = b[0].enclosingTarget(name$1); + if (!(t === ptrType$64.nil)) { + _ref$2 = t.Stmt; + if ($assertType(_ref$2, ptrType$75, true)[1] || $assertType(_ref$2, ptrType$76, true)[1] || $assertType(_ref$2, ptrType$77, true)[1] || $assertType(_ref$2, ptrType$78, true)[1] || $assertType(_ref$2, ptrType$79, true)[1]) { + valid = true; + } + } + /* */ if (!valid) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (!valid) { */ case 46: + $r = check[0].errorf(s$3.Label, 121, "invalid break label %s", new sliceType$5([new $String(name$1)])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 47: + $s = 45; continue; + /* } else if (_1 === (65)) { */ case 42: + valid$1 = false; + t$1 = b[0].enclosingTarget(name$1); + if (!(t$1 === ptrType$64.nil)) { + _ref$3 = t$1.Stmt; + if ($assertType(_ref$3, ptrType$78, true)[1] || $assertType(_ref$3, ptrType$79, true)[1]) { + valid$1 = true; + } + } + /* */ if (!valid$1) { $s = 49; continue; } + /* */ $s = 50; continue; + /* if (!valid$1) { */ case 49: + $r = check[0].errorf(s$3.Label, 121, "invalid continue label %s", new sliceType$5([new $String(name$1)])); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 50: + $s = 45; continue; + /* } else if (_1 === (73)) { */ case 43: + if (b[0].gotoTarget(name$1) === ptrType$64.nil) { + fwdJumps[0] = $append(fwdJumps[0], s$3); + $s = -1; return; + } + $s = 45; continue; + /* } else { */ case 44: + $r = check[0].invalidAST(s$3, "branch statement: %s %s", new sliceType$5([new token.Token(s$3.Tok), new $String(name$1)])); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 45: + case 40: + _r$4 = all[0].Lookup(name$1); /* */ $s = 53; case 53: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + obj = _r$4; + $assertType(obj, ptrType$90).used = true; + $r = check[0].recordUse(s$3.Label, obj); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$68, true)[1]) { */ case 4: + s$4 = _ref.$val; + /* */ if (s$4.Tok === 47) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if (s$4.Tok === 47) { */ case 55: + _r$5 = s$4.Pos(); /* */ $s = 57; case 57: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = recordVarDecl[0](_r$5); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 56: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$73, true)[1]) { */ case 5: + s$5 = _ref.$val; + $r = blockBranches$1[0](lstmt[0], s$5.List); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 6: + s$6 = _ref.$val; + $r = stmtBranches[0](s$6.Body); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(s$6.Else, $ifaceNil))) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (!($interfaceIsEqual(s$6.Else, $ifaceNil))) { */ case 61: + $r = stmtBranches[0](s$6.Else); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 62: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$59, true)[1]) { */ case 7: + s$7 = _ref.$val; + $r = blockBranches$1[0](ptrType$64.nil, s$7.Body); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 8: + s$8 = _ref.$val; + $r = stmtBranches[0](s$8.Body); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 9: + s$9 = _ref.$val; + $r = stmtBranches[0](s$9.Body); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$60, true)[1]) { */ case 10: + s$10 = _ref.$val; + $r = blockBranches$1[0](ptrType$64.nil, s$10.Body); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 11: + s$11 = _ref.$val; + $r = stmtBranches[0](s$11.Body); /* */ $s = 68; case 68: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 12: + s$12 = _ref.$val; + $r = stmtBranches[0](s$12.Body); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$79, true)[1]) { */ case 13: + s$13 = _ref.$val; + $r = stmtBranches[0](s$13.Body); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·blockBranches·func4, $c: true, $r, _1, _arg, _arg$1, _arg$2, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, alt, d, i, jmp, lbl, name, name$1, obj, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, t, t$1, valid, valid$1, $s};return $f; + }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = stmtBranches[0](s); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return fwdJumps[0]; + /* */ } return; } var $f = {$blk: blockBranches, $c: true, $r, _i, _ref, _tmp, _tmp$1, all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, list$2, lstmt, parent, recordVarDecl, s, stmtBranches, varDeclPos, $s};return $f; + }; + $ptrType(Interface).prototype.typeSet = function typeSet$1() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = computeInterfaceTypeSet(t.check, 0, t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: typeSet$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + NewInterfaceType = function NewInterfaceType$1(methods, embeddeds) { + var {_i, _ref, embeddeds, m, methods, sig, typ$3, $s, $r, $c} = $restore(this, {methods, embeddeds}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ((methods.$length === 0) && (embeddeds.$length === 0)) { + $s = -1; return emptyInterface; + } + typ$3 = (ptrType$6.nil).newInterface(); + _ref = methods; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + sig = $assertType(m.object.typ, ptrType$27); + if (sig.recv === ptrType$16.nil) { + sig.recv = NewVar(m.object.pos, m.object.pkg, "", typ$3); + } + _i++; + } + $r = sortMethods(methods); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + typ$3.methods = methods; + typ$3.embeddeds = embeddeds; + typ$3.complete = true; + $s = -1; return typ$3; + /* */ } return; } var $f = {$blk: NewInterfaceType$1, $c: true, $r, _i, _ref, embeddeds, m, methods, sig, typ$3, $s};return $f; + }; + $pkg.NewInterfaceType = NewInterfaceType; + $ptrType(Checker).prototype.newInterface = function newInterface() { + var check, typ$3; + check = this; + typ$3 = new Interface.ptr(check, sliceType.nil, sliceType$3.nil, ptrType$7.nil, false, false, ptrType$8.nil); + if (!(check === ptrType$6.nil)) { + check.needsCleanup(typ$3); + } + return typ$3; + }; + $ptrType(Interface).prototype.MarkImplicit = function MarkImplicit() { + var t; + t = this; + t.implicit = true; + }; + $ptrType(Interface).prototype.NumExplicitMethods = function NumExplicitMethods() { + var t; + t = this; + return t.methods.$length; + }; + $ptrType(Interface).prototype.ExplicitMethod = function ExplicitMethod(i) { + var i, t, x; + t = this; + return (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(Interface).prototype.NumEmbeddeds = function NumEmbeddeds() { + var t; + t = this; + return t.embeddeds.$length; + }; + $ptrType(Interface).prototype.Embedded = function Embedded$1(i) { + var _tuple, i, t, tname, x; + t = this; + _tuple = $assertType((x = t.embeddeds, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), ptrType$9, true); + tname = _tuple[0]; + return tname; + }; + $ptrType(Interface).prototype.EmbeddedType = function EmbeddedType(i) { + var i, t, x; + t = this; + return (x = t.embeddeds, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(Interface).prototype.NumMethods = function NumMethods$2() { + var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.NumMethods(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: NumMethods$2, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f; + }; + $ptrType(Interface).prototype.Method = function Method$2(i) { + var {$24r, _r$1, _r$2, i, t, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.Method(i); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Method$2, $c: true, $r, $24r, _r$1, _r$2, i, t, $s};return $f; + }; + $ptrType(Interface).prototype.Empty = function Empty() { + var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.IsAll(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Empty, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f; + }; + $ptrType(Interface).prototype.IsComparable = function IsComparable$1() { + var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.IsComparable(false); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: IsComparable$1, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f; + }; + $ptrType(Interface).prototype.IsMethodSet = function IsMethodSet$1() { + var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.IsMethodSet(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: IsMethodSet$1, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f; + }; + $ptrType(Interface).prototype.IsImplicit = function IsImplicit() { + var t; + t = this; + return t.implicit; + }; + $ptrType(Interface).prototype.Complete = function Complete$1() { + var {_r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if (!t.complete) { + t.complete = true; + } + _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return t; + /* */ } return; } var $f = {$blk: Complete$1, $c: true, $r, _r$1, t, $s};return $f; + }; + $ptrType(Interface).prototype.Underlying = function Underlying$9() { + var t; + t = this; + return t; + }; + $ptrType(Interface).prototype.String = function String$30() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$30, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + $ptrType(Interface).prototype.cleanup = function cleanup$2() { + var t; + t = this; + t.check = ptrType$6.nil; + t.embedPos = ptrType$7.nil; + }; + $ptrType(Checker).prototype.interfaceType = function interfaceType(ityp, iface$1, def$2) { + var {_arg, _arg$1, _i, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, addEmbedded, at$1, check, def$2, f, ftyp, iface$1, ityp, m, name, recvTyp, sig, typ$3, x, $s, $r, $c} = $restore(this, {ityp, iface$1, def$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = [check]; + iface$1 = [iface$1]; + ityp = [ityp]; + check[0] = this; + addEmbedded = (function(check, iface$1, ityp) { return function Checker·interfaceType·func1(pos, typ$3) { + var pos, typ$3; + ityp[0].embeddeds = $append(ityp[0].embeddeds, typ$3); + if (ityp[0].embedPos === ptrType$7.nil) { + ityp[0].embedPos = $newDataPointer(sliceType$4.nil, ptrType$7); + } + ityp[0].embedPos.$set($append(ityp[0].embedPos.$get(), pos)); + }; })(check, iface$1, ityp); + _ref = iface$1[0].Methods.List; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (f.Names.$length === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (f.Names.$length === 0) { */ case 3: + _r$1 = f.Type.Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = _r$1; + _r$2 = parseUnion(check[0], f.Type); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + $r = addEmbedded(_arg, _arg$1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 4: + name = (x = f.Names, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + /* */ if (name.Name === "_") { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (name.Name === "_") { */ case 8: + $r = check[0].errorf(name, 27, "methods must have a unique non-blank name", sliceType$5.nil); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 9: + _r$3 = check[0].typ(f.Type); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + typ$3 = _r$3; + _tuple = $assertType(typ$3, ptrType$27, true); + sig = _tuple[0]; + /* */ if (sig === ptrType$27.nil) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (sig === ptrType$27.nil) { */ case 12: + /* */ if (!($interfaceIsEqual(typ$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!($interfaceIsEqual(typ$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 14: + $r = check[0].invalidAST(f.Type, "%s is not a method signature", new sliceType$5([typ$3])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 13: + /* */ if (!(sig.tparams === ptrType$48.nil)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!(sig.tparams === ptrType$48.nil)) { */ case 17: + at$1 = f.Type; + _tuple$1 = $assertType(f.Type, ptrType$44, true); + ftyp = _tuple$1[0]; + if (!(ftyp === ptrType$44.nil) && !(ftyp.TypeParams === ptrType$49.nil)) { + at$1 = ftyp.TypeParams; + } + $r = check[0].errorf(at$1, 143, "methods cannot have type parameters", sliceType$5.nil); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + recvTyp = ityp[0]; + if (!(def$2 === ptrType$9.nil)) { + recvTyp = def$2; + } + sig.recv = NewVar(name.Pos(), check[0].pkg, "", recvTyp); + m = NewFunc(name.Pos(), check[0].pkg, name.Name, sig); + $r = check[0].recordDef(name, m); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ityp[0].methods = $append(ityp[0].methods, m); + _i++; + $s = 1; continue; + case 2: + ityp[0].complete = true; + if ((ityp[0].methods.$length === 0) && (ityp[0].embeddeds.$length === 0)) { + ityp[0].tset = topTypeSet; + $s = -1; return; + } + $r = sortMethods(ityp[0].methods); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].later((function(check, iface$1, ityp) { return function Checker·interfaceType·func2() { + var {_r$4, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$4 = computeInterfaceTypeSet(check[0], iface$1[0].Pos(), ityp[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·interfaceType·func2, $c: true, $r, _r$4, $s};return $f; + }; })(check, iface$1, ityp)).describef(iface$1[0], "compute type set for %s", new sliceType$5([ityp[0]])); + $s = -1; return; + /* */ } return; } var $f = {$blk: interfaceType, $c: true, $r, _arg, _arg$1, _i, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, addEmbedded, at$1, check, def$2, f, ftyp, iface$1, ityp, m, name, recvTyp, sig, typ$3, x, $s};return $f; + }; + $ptrType(Checker).prototype.instance = function instance$1(pos, orig, targs, expanding, ctxt) { + var {$24r, $24r$1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, check, copy, ctxt, ctxt$1, ctxt$2, ctxts, expanding, hashes, i, i$1, inst, orig, orig$1, orig$2, orig$3, pos, res, sig, targs, tparams, updateContexts, $s, $r, $c} = $restore(this, {pos, orig, targs, expanding, ctxt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + copy = [copy]; + ctxts = [ctxts]; + hashes = [hashes]; + orig = [orig]; + targs = [targs]; + res = $ifaceNil; + check = this; + ctxts[0] = sliceType$27.nil; + if (!(expanding === ptrType$9.nil)) { + ctxts[0] = $append(ctxts[0], expanding.inst.ctxt); + } + if (!(ctxt === ptrType$51.nil)) { + ctxts[0] = $append(ctxts[0], ctxt); + } + $r = assert(ctxts[0].$length > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + hashes[0] = $makeSlice(sliceType$6, ctxts[0].$length); + _ref = ctxts[0]; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + ctxt$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = ctxt$1.instanceHash(orig[0], targs[0]); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ((i < 0 || i >= hashes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes[0].$array[hashes[0].$offset + i] = _r$1); + _i++; + $s = 2; continue; + case 3: + updateContexts = (function(copy, ctxts, hashes, orig, targs) { return function Checker·instance·func1(res$1) { + var {_r$2, i$1, res$1, $s, $r, $c} = $restore(this, {res$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i$1 = ctxts[0].$length - 1 >> 0; + /* while (true) { */ case 1: + /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 2; continue; } + _r$2 = ((i$1 < 0 || i$1 >= ctxts[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : ctxts[0].$array[ctxts[0].$offset + i$1]).update(((i$1 < 0 || i$1 >= hashes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes[0].$array[hashes[0].$offset + i$1]), orig[0], targs[0], res$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + res$1 = _r$2; + i$1 = i$1 - (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return res$1; + /* */ } return; } var $f = {$blk: Checker·instance·func1, $c: true, $r, _r$2, i$1, res$1, $s};return $f; + }; })(copy, ctxts, hashes, orig, targs); + _ref$1 = ctxts[0]; + _i$1 = 0; + /* while (true) { */ case 5: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } + i$1 = _i$1; + ctxt$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$2 = ctxt$2.lookup(((i$1 < 0 || i$1 >= hashes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes[0].$array[hashes[0].$offset + i$1]), orig[0], targs[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + inst = _r$2; + /* */ if (!($interfaceIsEqual(inst, $ifaceNil))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(inst, $ifaceNil))) { */ case 8: + _r$3 = updateContexts(inst); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + res = _r$3; + $24r = res; + $s = 11; case 11: return $24r; + /* } */ case 9: + _i$1++; + $s = 5; continue; + case 6: + _ref$2 = orig[0]; + /* */ if ($assertType(_ref$2, ptrType$9, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref$2, ptrType$27, true)[1]) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ($assertType(_ref$2, ptrType$9, true)[1]) { */ case 12: + orig$1 = _ref$2.$val; + _r$4 = check.newNamedInstance(pos, orig$1, targs[0], expanding); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + res = _r$4; + $s = 15; continue; + /* } else if ($assertType(_ref$2, ptrType$27, true)[1]) { */ case 13: + orig$2 = _ref$2.$val; + $r = assert(expanding === ptrType$9.nil); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tparams = orig$2.TypeParams(); + _r$5 = check.validateTArgLen(pos, tparams.Len(), targs[0].$length); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!_r$5) { */ case 18: + res = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + $s = -1; return res; + /* } */ case 19: + if (tparams.Len() === 0) { + res = orig$2; + $s = -1; return res; + } + _arg = pos; + _arg$1 = orig$2; + _r$6 = makeSubstMap(tparams.list(), targs[0]); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$2 = _r$6; + _arg$3 = ptrType$9.nil; + _arg$4 = ctxt; + _r$7 = check.subst(_arg, _arg$1, _arg$2, _arg$3, _arg$4); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + sig = $assertType(_r$7, ptrType$27); + if (sig === orig$2) { + copy[0] = $clone(sig, Signature); + sig = copy[0]; + } + sig.tparams = ptrType$48.nil; + res = sig; + $s = 15; continue; + /* } else { */ case 14: + orig$3 = _ref$2; + _r$8 = fmt.Sprintf("%v: cannot instantiate %v", new sliceType$5([new token.Pos(pos), orig$3])); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $panic(new $String(_r$8)); + /* } */ case 15: + _r$9 = updateContexts(res); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + res = _r$9; + $24r$1 = res; + $s = 25; case 25: return $24r$1; + /* */ } return; } var $f = {$blk: instance$1, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, check, copy, ctxt, ctxt$1, ctxt$2, ctxts, expanding, hashes, i, i$1, inst, orig, orig$1, orig$2, orig$3, pos, res, sig, targs, tparams, updateContexts, $s};return $f; + }; + $ptrType(Checker).prototype.validateTArgLen = function validateTArgLen(pos, ntparams, ntargs) { + var {_r$1, check, ntargs, ntparams, pos, $s, $r, $c} = $restore(this, {pos, ntparams, ntargs}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + /* */ if (!((ntargs === ntparams))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((ntargs === ntparams))) { */ case 1: + /* */ if (!(check === ptrType$6.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(check === ptrType$6.nil)) { */ case 3: + $r = check.errorf(new atPos(((pos >> 0))), 137, "got %d arguments but %d type parameters", new sliceType$5([new $Int(ntargs), new $Int(ntparams)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 4: + _r$1 = fmt.Sprintf("%v: got %d arguments but %d type parameters", new sliceType$5([new token.Pos(pos), new $Int(ntargs), new $Int(ntparams)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 2: + $s = -1; return true; + /* */ } return; } var $f = {$blk: validateTArgLen, $c: true, $r, _r$1, check, ntargs, ntparams, pos, $s};return $f; + }; + $ptrType(Checker).prototype.verify = function verify(pos, tparams, targs, ctxt) { + var {_i, _r$1, _r$2, _r$3, _r$4, _ref, bound, check, ctxt, err, i, pos, smap, targs, tpar, tparams, $s, $r, $c} = $restore(this, {pos, tparams, targs, ctxt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = makeSubstMap(tparams, targs); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + smap = _r$1; + _ref = tparams; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$2 = tpar.iface(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = check.subst(pos, tpar.bound, smap, ptrType$9.nil, ctxt); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + bound = _r$3; + _r$4 = check.implements$(((i < 0 || i >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i]), bound); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [i, err]; + } + _i++; + $s = 2; continue; + case 3: + $s = -1; return [-1, $ifaceNil]; + /* */ } return; } var $f = {$blk: verify, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _ref, bound, check, ctxt, err, i, pos, smap, targs, tpar, tparams, $s};return $f; + }; + $ptrType(Checker).prototype.implements$ = function implements$1(V, T) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, T, Ti, Tu, V, Vi, Vu, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, _v$1, _v$2, alt, cause, check, errorf, m, p, pending, wrong, $s, $r, $c} = $restore(this, {V, T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + V = [V]; + alt = [alt]; + check = [check]; + check[0] = this; + _r$1 = under(V[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + Vu = _r$1; + _r$2 = under(T); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + Tu = _r$2; + if ($interfaceIsEqual(Vu, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(Tu, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return $ifaceNil; + } + _tuple = $assertType(Vu, ptrType$26, true); + p = _tuple[0]; + if (!(!(p === ptrType$26.nil))) { _v = false; $s = 5; continue s; } + _r$3 = under(p.base); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = $interfaceIsEqual(_r$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + $s = -1; return $ifaceNil; + /* } */ case 4: + errorf = (function(V, alt, check) { return function Checker·implements·func1(format, args) { + var {$24r, _r$4, _r$5, args, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$4 = check[0].sprintf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = errors.New(_r$4); /* */ $s = 2; case 2: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = _r$5; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Checker·implements·func1, $c: true, $r, $24r, _r$4, _r$5, args, format, $s};return $f; + }; })(V, alt, check); + _tuple$1 = $assertType(Tu, ptrType$13, true); + Ti = _tuple$1[0]; + /* */ if (Ti === ptrType$13.nil) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (Ti === ptrType$13.nil) { */ case 7: + cause = ""; + _r$4 = isInterfacePtr(Tu); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$4) { */ case 9: + _r$5 = check[0].sprintf("type %s is pointer to interface, not interface", new sliceType$5([T])); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + cause = _r$5; + $s = 11; continue; + /* } else { */ case 10: + _r$6 = check[0].sprintf("%s is not an interface", new sliceType$5([T])); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + cause = _r$6; + /* } */ case 11: + _r$7 = errorf("%s does not implement %s (%s)", new sliceType$5([V[0], T, new $String(cause)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r = _r$7; + $s = 16; case 16: return $24r; + /* } */ case 8: + _r$8 = Ti.Empty(); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (_r$8) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (_r$8) { */ case 17: + $s = -1; return $ifaceNil; + /* } */ case 18: + _tuple$2 = $assertType(Vu, ptrType$13, true); + Vi = _tuple$2[0]; + if (!(!(Vi === ptrType$13.nil))) { _v$1 = false; $s = 22; continue s; } + _r$9 = Vi.typeSet(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = _r$9.IsEmpty(); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v$1 = _r$10; case 22: + /* */ if (_v$1) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_v$1) { */ case 20: + $s = -1; return $ifaceNil; + /* } */ case 21: + _r$11 = Ti.typeSet(); /* */ $s = 27; case 27: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$12 = _r$11.IsEmpty(); /* */ $s = 28; case 28: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* */ if (_r$12) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (_r$12) { */ case 25: + _r$13 = errorf("cannot implement %s (empty type set)", new sliceType$5([T])); /* */ $s = 29; case 29: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + $24r$1 = _r$13; + $s = 30; case 30: return $24r$1; + /* } */ case 26: + _r$14 = check[0].missingMethod(V[0], Ti, true); /* */ $s = 31; case 31: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _tuple$3 = _r$14; + m = _tuple$3[0]; + wrong = _tuple$3[1]; + /* */ if (!(m === ptrType$2.nil)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (!(m === ptrType$2.nil)) { */ case 32: + _arg = V[0]; + _arg$1 = T; + _r$15 = check[0].missingMethodReason(V[0], T, m, wrong); /* */ $s = 34; case 34: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _arg$2 = new $String(_r$15); + _r$16 = errorf("%s does not implement %s %s", new sliceType$5([_arg, _arg$1, _arg$2])); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + $24r$2 = _r$16; + $s = 36; case 36: return $24r$2; + /* } */ case 33: + pending = $ifaceNil; + _r$17 = Ti.IsComparable(); /* */ $s = 40; case 40: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + if (!(_r$17)) { _v$2 = false; $s = 39; continue s; } + _r$18 = comparable(V[0], false, false, $throwNilPointerError); /* */ $s = 41; case 41: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _v$2 = !_r$18; case 39: + /* */ if (_v$2) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (_v$2) { */ case 37: + _r$19 = errorf("%s does not implement comparable", new sliceType$5([V[0]])); /* */ $s = 42; case 42: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + pending = _r$19; + /* } */ case 38: + _r$20 = Ti.typeSet(); /* */ $s = 45; case 45: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _r$21 = _r$20.hasTerms(); /* */ $s = 46; case 46: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + /* */ if (!_r$21) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (!_r$21) { */ case 43: + $s = -1; return pending; + /* } */ case 44: + /* */ if (!(Vi === ptrType$13.nil)) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (!(Vi === ptrType$13.nil)) { */ case 47: + _r$22 = Vi.typeSet(); /* */ $s = 51; case 51: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$23 = Ti.typeSet(); /* */ $s = 52; case 52: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _r$24 = _r$22.subsetOf(_r$23); /* */ $s = 53; case 53: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (!_r$24) { $s = 49; continue; } + /* */ $s = 50; continue; + /* if (!_r$24) { */ case 49: + _r$25 = errorf("%s does not implement %s", new sliceType$5([V[0], T])); /* */ $s = 54; case 54: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r$3 = _r$25; + $s = 55; case 55: return $24r$3; + /* } */ case 50: + $s = -1; return pending; + /* } */ case 48: + alt[0] = $ifaceNil; + _r$26 = Ti.typeSet(); /* */ $s = 58; case 58: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$27 = _r$26.is((function(V, alt, check) { return function Checker·implements·func2(t) { + var {_arg$3, _arg$4, _r$27, _r$28, _r$29, _r$30, _v$3, t, tt, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$27 = t.includes(V[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + /* */ if (!_r$27) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$27) { */ case 1: + if (!($interfaceIsEqual(alt[0], $ifaceNil) && !t.tilde)) { _v$3 = false; $s = 6; continue s; } + _arg$3 = t.typ; + _r$28 = under(t.typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _arg$4 = _r$28; + _r$29 = Identical(_arg$3, _arg$4); /* */ $s = 8; case 8: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _v$3 = _r$29; case 6: + /* */ if (_v$3) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v$3) { */ case 4: + tt = $clone(t, term); + tt.tilde = true; + _r$30 = tt.includes(V[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + /* */ if (_r$30) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$30) { */ case 9: + alt[0] = t.typ; + /* } */ case 10: + /* } */ case 5: + $s = -1; return true; + /* } */ case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: Checker·implements·func2, $c: true, $r, _arg$3, _arg$4, _r$27, _r$28, _r$29, _r$30, _v$3, t, tt, $s};return $f; + }; })(V, alt, check)); /* */ $s = 59; case 59: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + /* */ if (_r$27) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if (_r$27) { */ case 56: + /* */ if (!($interfaceIsEqual(alt[0], $ifaceNil))) { $s = 60; continue; } + /* */ $s = 61; continue; + /* if (!($interfaceIsEqual(alt[0], $ifaceNil))) { */ case 60: + _r$28 = errorf("%s does not implement %s (possibly missing ~ for %s in constraint %s)", new sliceType$5([V[0], T, alt[0], T])); /* */ $s = 63; case 63: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + $24r$4 = _r$28; + $s = 64; case 64: return $24r$4; + /* } else { */ case 61: + _arg$3 = V[0]; + _arg$4 = T; + _arg$5 = V[0]; + _r$29 = Ti.typeSet(); /* */ $s = 65; case 65: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _arg$6 = _r$29.terms; + _r$30 = errorf("%s does not implement %s (%s missing in %s)", new sliceType$5([_arg$3, _arg$4, _arg$5, _arg$6])); /* */ $s = 66; case 66: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + $24r$5 = _r$30; + $s = 67; case 67: return $24r$5; + /* } */ case 62: + /* } */ case 57: + $s = -1; return pending; + /* */ } return; } var $f = {$blk: implements$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, T, Ti, Tu, V, Vi, Vu, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, _v$1, _v$2, alt, cause, check, errorf, m, p, pending, wrong, $s};return $f; + }; + $ptrType(Checker).prototype.initOrder = function initOrder() { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _key, _key$1, _key$2, _key$3, _key$4, _keys, _keys$1, _keys$2, _keys$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _size$3, _tuple, _tuple$1, check, cycle, d, dep, emitted, info, infoLhs, init$5, init$6, n, n$1, obj, obj$1, p, p$1, pq, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pq = [pq]; + check = this; + check.Info.InitOrder = $subslice(check.Info.InitOrder, 0, 0); + _r$1 = dependencyGraph(check.objMap); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pq[0] = ($convertSliceType(_r$1, nodeQueue)); + $r = heap.Init((pq.$ptr || (pq.$ptr = new ptrType$94(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, pq)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (false) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (false) { */ case 3: + _r$2 = fmt.Printf("Computing initialization order for %s\n\n", new sliceType$5([check.pkg])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = fmt.Println(new sliceType$5([new $String("Object dependency graph:")])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _ref = check.objMap; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + /* while (true) { */ case 7: + /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 8; continue; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + /* continue; */ $s = 7; continue; + } + obj = _entry.k; + d = _entry.v; + _tuple = $assertType(obj, dependency, true); + obj$1 = _tuple[0]; + /* */ if (!($interfaceIsEqual(obj$1, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(obj$1, $ifaceNil))) { */ case 9: + /* */ if ((d.deps ? d.deps.size : 0) > 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ((d.deps ? d.deps.size : 0) > 0) { */ case 11: + _r$4 = obj$1.Name(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg = new $String(_r$4); + _r$5 = fmt.Printf("\t%s depends on\n", new sliceType$5([_arg])); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + _ref$1 = d.deps; + _i$1 = 0; + _keys$1 = _ref$1 ? _ref$1.keys() : undefined; + _size$1 = _ref$1 ? _ref$1.size : 0; + /* while (true) { */ case 16: + /* if (!(_i$1 < _size$1)) { break; } */ if(!(_i$1 < _size$1)) { $s = 17; continue; } + _key$1 = _keys$1.next().value; + _entry$1 = _ref$1.get(_key$1); + if (_entry$1 === undefined) { + _i$1++; + /* continue; */ $s = 16; continue; + } + dep = _entry$1.k; + _r$6 = dep.Name(); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$6); + _r$7 = fmt.Printf("\t\t%s\n", new sliceType$5([_arg$1])); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + _i$1++; + $s = 16; continue; + case 17: + $s = 13; continue; + /* } else { */ case 12: + _r$8 = obj$1.Name(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg$2 = new $String(_r$8); + _r$9 = fmt.Printf("\t%s has no dependencies\n", new sliceType$5([_arg$2])); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + /* } */ case 13: + /* } */ case 10: + _i++; + $s = 7; continue; + case 8: + _r$10 = fmt.Println(sliceType$5.nil); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + _r$11 = fmt.Println(new sliceType$5([new $String("Transposed object dependency graph (functions eliminated):")])); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11; + _ref$2 = pq[0]; + _i$2 = 0; + /* while (true) { */ case 24: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 25; continue; } + n = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + _r$12 = n.obj.Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _arg$3 = new $String(_r$12); + _arg$4 = new $Int(n.ndeps); + _r$13 = fmt.Printf("\t%s depends on %d nodes\n", new sliceType$5([_arg$3, _arg$4])); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13; + _ref$3 = n.pred; + _i$3 = 0; + _keys$2 = _ref$3 ? _ref$3.keys() : undefined; + _size$2 = _ref$3 ? _ref$3.size : 0; + /* while (true) { */ case 28: + /* if (!(_i$3 < _size$2)) { break; } */ if(!(_i$3 < _size$2)) { $s = 29; continue; } + _key$2 = _keys$2.next().value; + _entry$2 = _ref$3.get(_key$2); + if (_entry$2 === undefined) { + _i$3++; + /* continue; */ $s = 28; continue; + } + p = _entry$2.k; + _r$14 = p.obj.Name(); /* */ $s = 30; case 30: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _arg$5 = new $String(_r$14); + _r$15 = fmt.Printf("\t\t%s is dependent\n", new sliceType$5([_arg$5])); /* */ $s = 31; case 31: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$15; + _i$3++; + $s = 28; continue; + case 29: + _i$2++; + $s = 24; continue; + case 25: + _r$16 = fmt.Println(sliceType$5.nil); /* */ $s = 32; case 32: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _r$16; + _r$17 = fmt.Println(new sliceType$5([new $String("Processing nodes:")])); /* */ $s = 33; case 33: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$17; + /* } */ case 4: + emitted = new $global.Map(); + /* while (true) { */ case 34: + /* if (!(pq[0].$length > 0)) { break; } */ if(!(pq[0].$length > 0)) { $s = 35; continue; } + _r$18 = heap.Pop((pq.$ptr || (pq.$ptr = new ptrType$94(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, pq)))); /* */ $s = 36; case 36: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + n$1 = $assertType(_r$18, ptrType$95); + /* */ if (false) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (false) { */ case 37: + _r$19 = n$1.obj.Name(); /* */ $s = 39; case 39: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _arg$6 = new $String(_r$19); + _r$20 = n$1.obj.order(); /* */ $s = 40; case 40: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _arg$7 = new $Uint32(_r$20); + _arg$8 = new $Int(n$1.ndeps); + _r$21 = fmt.Printf("\t%s (src pos %d) depends on %d nodes now\n", new sliceType$5([_arg$6, _arg$7, _arg$8])); /* */ $s = 41; case 41: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _r$21; + /* } */ case 38: + /* */ if (n$1.ndeps > 0) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (n$1.ndeps > 0) { */ case 42: + cycle = findPath(check.objMap, n$1.obj, n$1.obj, new $global.Map()); + /* */ if (!(cycle === sliceType$8.nil)) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!(cycle === sliceType$8.nil)) { */ case 44: + $r = check.reportCycle(cycle); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 45: + /* } */ case 43: + _ref$4 = n$1.pred; + _i$4 = 0; + _keys$3 = _ref$4 ? _ref$4.keys() : undefined; + _size$3 = _ref$4 ? _ref$4.size : 0; + /* while (true) { */ case 47: + /* if (!(_i$4 < _size$3)) { break; } */ if(!(_i$4 < _size$3)) { $s = 48; continue; } + _key$3 = _keys$3.next().value; + _entry$3 = _ref$4.get(_key$3); + if (_entry$3 === undefined) { + _i$4++; + /* continue; */ $s = 47; continue; + } + p$1 = _entry$3.k; + p$1.ndeps = p$1.ndeps - (1) >> 0; + $r = heap.Fix((pq.$ptr || (pq.$ptr = new ptrType$94(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, pq))), p$1.index); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$4++; + $s = 47; continue; + case 48: + _tuple$1 = $assertType(n$1.obj, ptrType$16, true); + v = _tuple$1[0]; + info = (_entry$4 = $mapIndex(check.objMap,Object.keyFor(v)), _entry$4 !== undefined ? _entry$4.v : ptrType$57.nil); + if (v === ptrType$16.nil || !info.hasInitializer()) { + /* continue; */ $s = 34; continue; + } + if ((_entry$5 = $mapIndex(emitted,ptrType$57.keyFor(info)), _entry$5 !== undefined ? _entry$5.v : false)) { + /* continue; */ $s = 34; continue; + } + _key$4 = info; (emitted || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$57.keyFor(_key$4), { k: _key$4, v: true }); + infoLhs = info.lhs; + if (infoLhs === sliceType$10.nil) { + infoLhs = new sliceType$10([v]); + } + init$5 = new Initializer.ptr(infoLhs, info.init); + check.Info.InitOrder = $append(check.Info.InitOrder, init$5); + $s = 34; continue; + case 35: + /* */ if (false) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if (false) { */ case 50: + _r$22 = fmt.Println(sliceType$5.nil); /* */ $s = 52; case 52: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$22; + _r$23 = fmt.Println(new sliceType$5([new $String("Initialization order:")])); /* */ $s = 53; case 53: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _r$23; + _ref$5 = check.Info.InitOrder; + _i$5 = 0; + /* while (true) { */ case 54: + /* if (!(_i$5 < _ref$5.$length)) { break; } */ if(!(_i$5 < _ref$5.$length)) { $s = 55; continue; } + init$6 = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); + _r$24 = fmt.Printf("\t%s\n", new sliceType$5([init$6])); /* */ $s = 56; case 56: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$24; + _i$5++; + $s = 54; continue; + case 55: + _r$25 = fmt.Println(sliceType$5.nil); /* */ $s = 57; case 57: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$25; + /* } */ case 51: + $s = -1; return; + /* */ } return; } var $f = {$blk: initOrder, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _key, _key$1, _key$2, _key$3, _key$4, _keys, _keys$1, _keys$2, _keys$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _size$3, _tuple, _tuple$1, check, cycle, d, dep, emitted, info, infoLhs, init$5, init$6, n, n$1, obj, obj$1, p, p$1, pq, v, $s};return $f; + }; + findPath = function findPath$1(objMap, from, to, seen) { + var P, _entry, _entry$1, _entry$2, _i, _key, _key$1, _keys, _ref, _size, d, from, objMap, seen, to; + if ((_entry = $mapIndex(seen,Object.keyFor(from)), _entry !== undefined ? _entry.v : false)) { + return sliceType$8.nil; + } + _key = from; (seen || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key), { k: _key, v: true }); + _ref = (_entry$1 = $mapIndex(objMap,Object.keyFor(from)), _entry$1 !== undefined ? _entry$1.v : ptrType$57.nil).deps; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key$1 = _keys.next().value; + _entry$2 = _ref.get(_key$1); + if (_entry$2 === undefined) { + _i++; + continue; + } + d = _entry$2.k; + if ($interfaceIsEqual(d, to)) { + return new sliceType$8([d]); + } + P = findPath(objMap, d, to, seen); + if (!(P === sliceType$8.nil)) { + return $append(P, d); + } + _i++; + } + return sliceType$8.nil; + }; + $ptrType(Checker).prototype.reportCycle = function reportCycle(cycle) { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$1, _r$2, _r$3, check, cycle, i, obj, $s, $r, $c} = $restore(this, {cycle}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + obj = (0 >= cycle.$length ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + 0]); + _arg = obj; + _r$1 = obj.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$1); + $r = check.errorf(_arg, 9, "initialization cycle for %s", new sliceType$5([_arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = cycle.$length - 1 >> 0; + /* while (true) { */ case 3: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 4; continue; } + _arg$2 = obj; + _r$2 = obj.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$3 = new $String(_r$2); + $r = check.errorf(_arg$2, 9, "\t%s refers to", new sliceType$5([_arg$3])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj = ((i < 0 || i >= cycle.$length) ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + i]); + i = i - (1) >> 0; + $s = 3; continue; + case 4: + _arg$4 = obj; + _r$3 = obj.Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$5 = new $String(_r$3); + $r = check.errorf(_arg$4, 9, "\t%s", new sliceType$5([_arg$5])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: reportCycle, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$1, _r$2, _r$3, check, cycle, i, obj, $s};return $f; + }; + $ptrType(graphNode).prototype.cost = function cost() { + var n; + n = this; + return $imul((n.pred ? n.pred.size : 0), (n.succ ? n.succ.size : 0)); + }; + $ptrType(nodeSet).prototype.add = function add$2(p) { + var _key, p, s; + s = this; + if (s.$get() === false) { + s.$set(new $global.Map()); + } + _key = p; (s.$get() || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$95.keyFor(_key), { k: _key, v: true }); + }; + dependencyGraph = function dependencyGraph$1(objMap) { + var {G, M, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _keys, _keys$1, _keys$2, _keys$3, _keys$4, _keys$5, _keys$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _size, _size$1, _size$2, _size$3, _size$4, _size$5, _size$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, d, d$1, d$2, funcG, i, n, n$1, n$2, n$3, obj, obj$1, obj$2, objMap, ok, p, s, s$1, $s, $r, $c} = $restore(this, {objMap}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + funcG = [funcG]; + M = new $global.Map(); + _ref = objMap; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + obj = _entry.k; + _tuple = $assertType(obj, dependency, true); + obj$1 = _tuple[0]; + if (!($interfaceIsEqual(obj$1, $ifaceNil))) { + _key$1 = obj$1; (M || $throwRuntimeError("assignment to entry in nil map")).set(dependency.keyFor(_key$1), { k: _key$1, v: new graphNode.ptr(obj$1, false, false, 0, 0) }); + } + _i++; + } + _ref$1 = M; + _i$1 = 0; + _keys$1 = _ref$1 ? _ref$1.keys() : undefined; + _size$1 = _ref$1 ? _ref$1.size : 0; + while (true) { + if (!(_i$1 < _size$1)) { break; } + _key$2 = _keys$1.next().value; + _entry$1 = _ref$1.get(_key$2); + if (_entry$1 === undefined) { + _i$1++; + continue; + } + obj$2 = _entry$1.k; + n = _entry$1.v; + _ref$2 = (_entry$2 = $mapIndex(objMap,Object.keyFor(obj$2)), _entry$2 !== undefined ? _entry$2.v : ptrType$57.nil).deps; + _i$2 = 0; + _keys$2 = _ref$2 ? _ref$2.keys() : undefined; + _size$2 = _ref$2 ? _ref$2.size : 0; + while (true) { + if (!(_i$2 < _size$2)) { break; } + _key$3 = _keys$2.next().value; + _entry$3 = _ref$2.get(_key$3); + if (_entry$3 === undefined) { + _i$2++; + continue; + } + d = _entry$3.k; + _tuple$1 = $assertType(d, dependency, true); + d$1 = _tuple$1[0]; + if (!($interfaceIsEqual(d$1, $ifaceNil))) { + d$2 = (_entry$4 = $mapIndex(M,dependency.keyFor(d$1)), _entry$4 !== undefined ? _entry$4.v : ptrType$95.nil); + (n.$ptr_succ || (n.$ptr_succ = new ptrType$96(function() { return this.$target.succ; }, function($v) { this.$target.succ = $v; }, n))).add(d$2); + (d$2.$ptr_pred || (d$2.$ptr_pred = new ptrType$96(function() { return this.$target.pred; }, function($v) { this.$target.pred = $v; }, d$2))).add(n); + } + _i$2++; + } + _i$1++; + } + _tmp = sliceType$28.nil; + _tmp$1 = sliceType$28.nil; + G = _tmp; + funcG[0] = _tmp$1; + _ref$3 = M; + _i$3 = 0; + _keys$3 = _ref$3 ? _ref$3.keys() : undefined; + _size$3 = _ref$3 ? _ref$3.size : 0; + while (true) { + if (!(_i$3 < _size$3)) { break; } + _key$4 = _keys$3.next().value; + _entry$5 = _ref$3.get(_key$4); + if (_entry$5 === undefined) { + _i$3++; + continue; + } + n$1 = _entry$5.v; + _tuple$2 = $assertType(n$1.obj, ptrType$2, true); + ok = _tuple$2[1]; + if (ok) { + funcG[0] = $append(funcG[0], n$1); + } else { + G = $append(G, n$1); + } + _i$3++; + } + $r = sort.Slice(funcG[0], (function(funcG) { return function dependencyGraph·func1(i, j) { + var i, j; + return ((i < 0 || i >= funcG[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : funcG[0].$array[funcG[0].$offset + i]).cost() < ((j < 0 || j >= funcG[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : funcG[0].$array[funcG[0].$offset + j]).cost(); + }; })(funcG)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$4 = funcG[0]; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$4.$length)) { break; } + n$2 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); + _ref$5 = n$2.pred; + _i$5 = 0; + _keys$4 = _ref$5 ? _ref$5.keys() : undefined; + _size$4 = _ref$5 ? _ref$5.size : 0; + while (true) { + if (!(_i$5 < _size$4)) { break; } + _key$5 = _keys$4.next().value; + _entry$6 = _ref$5.get(_key$5); + if (_entry$6 === undefined) { + _i$5++; + continue; + } + p = _entry$6.k; + if (!(p === n$2)) { + _ref$6 = n$2.succ; + _i$6 = 0; + _keys$5 = _ref$6 ? _ref$6.keys() : undefined; + _size$5 = _ref$6 ? _ref$6.size : 0; + while (true) { + if (!(_i$6 < _size$5)) { break; } + _key$6 = _keys$5.next().value; + _entry$7 = _ref$6.get(_key$6); + if (_entry$7 === undefined) { + _i$6++; + continue; + } + s = _entry$7.k; + if (!(s === n$2)) { + (p.$ptr_succ || (p.$ptr_succ = new ptrType$96(function() { return this.$target.succ; }, function($v) { this.$target.succ = $v; }, p))).add(s); + (s.$ptr_pred || (s.$ptr_pred = new ptrType$96(function() { return this.$target.pred; }, function($v) { this.$target.pred = $v; }, s))).add(p); + } + _i$6++; + } + $mapDelete(p.succ, ptrType$95.keyFor(n$2)); + } + _i$5++; + } + _ref$7 = n$2.succ; + _i$7 = 0; + _keys$6 = _ref$7 ? _ref$7.keys() : undefined; + _size$6 = _ref$7 ? _ref$7.size : 0; + while (true) { + if (!(_i$7 < _size$6)) { break; } + _key$7 = _keys$6.next().value; + _entry$8 = _ref$7.get(_key$7); + if (_entry$8 === undefined) { + _i$7++; + continue; + } + s$1 = _entry$8.k; + $mapDelete(s$1.pred, ptrType$95.keyFor(n$2)); + _i$7++; + } + _i$4++; + } + _ref$8 = G; + _i$8 = 0; + while (true) { + if (!(_i$8 < _ref$8.$length)) { break; } + i = _i$8; + n$3 = ((_i$8 < 0 || _i$8 >= _ref$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$8.$array[_ref$8.$offset + _i$8]); + n$3.index = i; + n$3.ndeps = (n$3.succ ? n$3.succ.size : 0); + _i$8++; + } + $s = -1; return G; + /* */ } return; } var $f = {$blk: dependencyGraph$1, $c: true, $r, G, M, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _keys, _keys$1, _keys$2, _keys$3, _keys$4, _keys$5, _keys$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _size, _size$1, _size$2, _size$3, _size$4, _size$5, _size$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, d, d$1, d$2, funcG, i, n, n$1, n$2, n$3, obj, obj$1, obj$2, objMap, ok, p, s, s$1, $s};return $f; + }; + nodeQueue.prototype.Len = function Len$8() { + var a; + a = this; + return a.$length; + }; + $ptrType(nodeQueue).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + nodeQueue.prototype.Swap = function Swap$2(i, j) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a, i, j, x, y; + a = this; + _tmp = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); + _tmp$1 = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); + x = _tmp; + y = _tmp$1; + _tmp$2 = y; + _tmp$3 = x; + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = _tmp$2); + ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j] = _tmp$3); + _tmp$4 = j; + _tmp$5 = i; + x.index = _tmp$4; + y.index = _tmp$5; + }; + $ptrType(nodeQueue).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + nodeQueue.prototype.Less = function Less$2(i, j) { + var {$24r, _r$1, _r$2, _tmp, _tmp$1, _v, _v$1, a, i, j, x, y, $s, $r, $c} = $restore(this, {i, j}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = this; + _tmp = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); + _tmp$1 = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); + x = _tmp; + y = _tmp$1; + if (x.ndeps < y.ndeps) { _v = true; $s = 1; continue s; } + if (!(x.ndeps === y.ndeps)) { _v$1 = false; $s = 2; continue s; } + _r$1 = x.obj.order(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = y.obj.order(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$1 < _r$2; case 2: + _v = _v$1; case 1: + $24r = _v; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: Less$2, $c: true, $r, $24r, _r$1, _r$2, _tmp, _tmp$1, _v, _v$1, a, i, j, x, y, $s};return $f; + }; + $ptrType(nodeQueue).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + $ptrType(nodeQueue).prototype.Push = function Push(x) { + var a, x; + a = this; + $panic(new $String("unreachable")); + }; + $ptrType(nodeQueue).prototype.Pop = function Pop() { + var a, n, x, x$1, x$2; + a = this; + n = a.$get().$length; + x$2 = (x = a.$get(), x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + x$2.index = -1; + a.$set($subslice((a.$get()), 0, (n - 1 >> 0))); + return x$2; + }; + $ptrType(Checker).prototype.infer = function infer(posn, tparams, targs, params, args) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, arg, arg$1, arg$2, args, args2, check, errorf, i, i$1, i$2, i$3, i$4, i$5, i$6, index$1, indices, j, j$1, m, n, named, ok, par, params, params2, posn, renameMap, result, selfRecursive, smap, targ, targ$1, targ$2, targs, targs2, tname, tpar, tpar$1, tparam, tparam$1, tparams, tparams2, u, unnamed, x, $s, $deferred, $r, $c} = $restore(this, {posn, tparams, targs, params, args}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + result = [result]; + tparams = [tparams]; + u = [u]; + result[0] = sliceType$3.nil; + check[0] = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $deferred.push([(function(check, result, tparams, u) { return function Checker·infer·func1() { + var {_i, _ref, targ, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(result[0] === sliceType$3.nil || (result[0].$length === tparams[0].$length)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = result[0]; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + targ = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = assert(!($interfaceIsEqual(targ, $ifaceNil))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 2; continue; + case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·infer·func1, $c: true, $r, _i, _ref, targ, $s};return $f; + }; })(check, result, tparams, u), []]); + /* } */ case 2: + /* */ if (false) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (false) { */ case 3: + $r = check[0].dump("-- inferA %s%s \xE2\x9E\x9E %s", new sliceType$5([tparams[0], params, targs])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([(function(check, result, tparams, u) { return function Checker·infer·func2() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = check[0].dump("=> inferA %s \xE2\x9E\x9E %s", new sliceType$5([tparams[0], result[0]])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·infer·func2, $c: true, $r, $s};return $f; + }; })(check, result, tparams, u), []]); + /* } */ case 4: + n = tparams[0].$length; + $r = assert(n > 0 && targs.$length <= n); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(params.Len() === args.$length); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (targs.$length === n) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (targs.$length === n) { */ case 8: + result[0] = targs; + $24r = result[0]; + $s = 10; case 10: return $24r; + /* } */ case 9: + /* */ if (true) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (true) { */ case 11: + selfRecursive = !(check[0].environment.sig === ptrType$27.nil) && check[0].environment.sig.tparams.Len() > 0 && (0 >= tparams[0].$length ? ($throwRuntimeError("index out of range"), undefined) : tparams[0].$array[tparams[0].$offset + 0]) === check[0].environment.sig.tparams.At(0); + /* */ if (selfRecursive) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (selfRecursive) { */ case 13: + tparams2 = $makeSlice(sliceType$9, tparams[0].$length); + _ref = tparams[0]; + _i = 0; + /* while (true) { */ case 15: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 16; continue; } + i = _i; + tparam = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + tname = NewTypeName(tparam.Obj().object.Pos(), tparam.Obj().object.Pkg(), tparam.Obj().object.Name(), $ifaceNil); + _r$1 = NewTypeParam(tname, $ifaceNil); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ((i < 0 || i >= tparams2.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams2.$array[tparams2.$offset + i] = _r$1); + ((i < 0 || i >= tparams2.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams2.$array[tparams2.$offset + i]).index = tparam.index; + _i++; + $s = 15; continue; + case 16: + _r$2 = makeRenameMap(tparams[0], tparams2); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + renameMap = _r$2; + _ref$1 = tparams[0]; + _i$1 = 0; + /* while (true) { */ case 19: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 20; continue; } + i$1 = _i$1; + tparam$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$3 = posn.Pos(); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = check[0].subst(_r$3, tparam$1.bound, renameMap, ptrType$9.nil, check[0].context()); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + ((i$1 < 0 || i$1 >= tparams2.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams2.$array[tparams2.$offset + i$1]).bound = _r$4; + _i$1++; + $s = 19; continue; + case 20: + tparams[0] = tparams2; + _r$5 = posn.Pos(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = check[0].subst(_r$5, params, renameMap, ptrType$9.nil, check[0].context()); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + params = $assertType(_r$6, ptrType$15); + /* } */ case 14: + /* } */ case 12: + m = args.$length; + if (m >= 2 && true) { + _tmp = sliceType$13.nil; + _tmp$1 = sliceType$13.nil; + named = _tmp; + unnamed = _tmp$1; + _ref$2 = args; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + arg = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + if (hasName(arg.typ)) { + named = $append(named, i$2); + } else { + unnamed = $append(unnamed, i$2); + } + _i$2++; + } + if (!((named.$length === 0)) && !((unnamed.$length === 0))) { + params2 = $makeSlice(sliceType$10, m); + args2 = $makeSlice(sliceType$29, m); + i$3 = 0; + _ref$3 = named; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + j = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + ((i$3 < 0 || i$3 >= params2.$length) ? ($throwRuntimeError("index out of range"), undefined) : params2.$array[params2.$offset + i$3] = params.At(j)); + ((i$3 < 0 || i$3 >= args2.$length) ? ($throwRuntimeError("index out of range"), undefined) : args2.$array[args2.$offset + i$3] = ((j < 0 || j >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + j])); + i$3 = i$3 + (1) >> 0; + _i$3++; + } + _ref$4 = unnamed; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$4.$length)) { break; } + j$1 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); + ((i$3 < 0 || i$3 >= params2.$length) ? ($throwRuntimeError("index out of range"), undefined) : params2.$array[params2.$offset + i$3] = params.At(j$1)); + ((i$3 < 0 || i$3 >= args2.$length) ? ($throwRuntimeError("index out of range"), undefined) : args2.$array[args2.$offset + i$3] = ((j$1 < 0 || j$1 >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + j$1])); + i$3 = i$3 + (1) >> 0; + _i$4++; + } + params = NewTuple(params2); + args = args2; + } + } + if (targs.$length < n) { + targs2 = $makeSlice(sliceType$3, n); + $copySlice(targs2, targs); + targs = targs2; + } + /* */ if (params.Len() > 0) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (params.Len() > 0) { */ case 25: + _r$7 = makeSubstMap(tparams[0], targs); /* */ $s = 27; case 27: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + smap = _r$7; + _r$8 = check[0].subst(0, params, smap, ptrType$9.nil, check[0].context()); /* */ $s = 28; case 28: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + params = $assertType(_r$8, ptrType$15); + /* } */ case 26: + u[0] = newUnifier(false); + $r = u[0].x.init(tparams[0]); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$5 = targs; + _i$5 = 0; + /* while (true) { */ case 30: + /* if (!(_i$5 < _ref$5.$length)) { break; } */ if(!(_i$5 < _ref$5.$length)) { $s = 31; continue; } + i$4 = _i$5; + targ = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); + /* */ if (!($interfaceIsEqual(targ, $ifaceNil))) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (!($interfaceIsEqual(targ, $ifaceNil))) { */ case 32: + $r = u[0].x.set(i$4, targ); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 33: + _i$5++; + $s = 30; continue; + case 31: + errorf = (function(check, result, tparams, u) { return function Checker·infer·func3(kind, tpar, targ$1, arg$1) { + var {_i$6, _r$10, _r$11, _r$9, _ref$6, _tuple, allFailed, arg$1, index$1, inferred, kind, smap$1, targ$1, targ$2, targs$1, tpar, $s, $r, $c} = $restore(this, {kind, tpar, targ$1, arg$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = u[0].x.types(); + targs$1 = _tuple[0]; + index$1 = _tuple[1]; + /* */ if (index$1 === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (index$1 === 0) { */ case 1: + allFailed = true; + _ref$6 = targs$1; + _i$6 = 0; + while (true) { + if (!(_i$6 < _ref$6.$length)) { break; } + targ$2 = ((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]); + if (!($interfaceIsEqual(targ$2, $ifaceNil))) { + allFailed = false; + break; + } + _i$6++; + } + /* */ if (allFailed) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (allFailed) { */ case 3: + $r = check[0].errorf(arg$1, 138, "%s %s of %s does not match %s (cannot infer %s)", new sliceType$5([new $String(kind), targ$1, arg$1.expr, tpar, new $String(typeParamsString(tparams[0]))])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + /* } */ case 2: + _r$9 = makeSubstMap(tparams[0], targs$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + smap$1 = _r$9; + _r$10 = arg$1.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = check[0].subst(_r$10, tpar, smap$1, ptrType$9.nil, check[0].context()); /* */ $s = 8; case 8: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + inferred = _r$11; + /* */ if (!($interfaceIsEqual(inferred, tpar))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(inferred, tpar))) { */ case 9: + $r = check[0].errorf(arg$1, 138, "%s %s of %s does not match inferred type %s for %s", new sliceType$5([new $String(kind), targ$1, arg$1.expr, inferred, tpar])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 11; continue; + /* } else { */ case 10: + $r = check[0].errorf(arg$1, 138, "%s %s of %s does not match %s", new sliceType$5([new $String(kind), targ$1, arg$1.expr, tpar])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·infer·func3, $c: true, $r, _i$6, _r$10, _r$11, _r$9, _ref$6, _tuple, allFailed, arg$1, index$1, inferred, kind, smap$1, targ$1, targ$2, targs$1, tpar, $s};return $f; + }; })(check, result, tparams, u); + indices = sliceType$13.nil; + _ref$6 = args; + _i$6 = 0; + /* while (true) { */ case 35: + /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 36; continue; } + i$5 = _i$6; + arg$1 = ((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]); + par = params.At(i$5); + _r$9 = isParameterized(tparams[0], par.object.typ); /* */ $s = 39; case 39: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (_r$9) { */ case 37: + if (arg$1.mode === 0) { + _i$6++; + /* continue; */ $s = 35; continue; + } + targ$1 = arg$1.typ; + /* */ if (isTyped(targ$1)) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (isTyped(targ$1)) { */ case 40: + _r$10 = u[0].unify(par.object.typ, targ$1); /* */ $s = 45; case 45: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* */ if (!_r$10) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (!_r$10) { */ case 43: + $r = errorf("type", par.object.typ, targ$1, arg$1); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + result[0] = sliceType$3.nil; + $24r$1 = result[0]; + $s = 47; case 47: return $24r$1; + /* } */ case 44: + $s = 42; continue; + /* } else { */ case 41: + _tuple = $assertType(par.object.typ, ptrType$14, true); + ok = _tuple[1]; + if (ok) { + indices = $append(indices, i$5); + } + /* } */ case 42: + /* } */ case 38: + _i$6++; + $s = 35; continue; + case 36: + index$1 = 0; + _tuple$1 = u[0].x.types(); + targs = _tuple$1[0]; + index$1 = _tuple$1[1]; + /* */ if (index$1 < 0) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (index$1 < 0) { */ case 48: + result[0] = targs; + $24r$2 = result[0]; + $s = 50; case 50: return $24r$2; + /* } */ case 49: + _r$11 = check[0].inferB(posn, tparams[0], targs); /* */ $s = 51; case 51: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$2 = _r$11; + targs = _tuple$2[0]; + index$1 = _tuple$2[1]; + /* */ if (targs === sliceType$3.nil || index$1 < 0) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (targs === sliceType$3.nil || index$1 < 0) { */ case 52: + result[0] = targs; + $24r$3 = result[0]; + $s = 54; case 54: return $24r$3; + /* } */ case 53: + _ref$7 = indices; + _i$7 = 0; + /* while (true) { */ case 55: + /* if (!(_i$7 < _ref$7.$length)) { break; } */ if(!(_i$7 < _ref$7.$length)) { $s = 56; continue; } + i$6 = ((_i$7 < 0 || _i$7 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$7]); + tpar = $assertType(params.At(i$6).object.typ, ptrType$14); + /* */ if ($interfaceIsEqual((x = tpar.index, ((x < 0 || x >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + x])), $ifaceNil)) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if ($interfaceIsEqual((x = tpar.index, ((x < 0 || x >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + x])), $ifaceNil)) { */ case 57: + arg$2 = ((i$6 < 0 || i$6 >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i$6]); + targ$2 = Default(arg$2.typ); + if (!(isTyped(targ$2))) { _v = false; $s = 61; continue s; } + _r$12 = u[0].unify(tpar, targ$2); /* */ $s = 62; case 62: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _v = !_r$12; case 61: + /* */ if (_v) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (_v) { */ case 59: + $r = errorf("default type", tpar, targ$2, arg$2); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + result[0] = sliceType$3.nil; + $24r$4 = result[0]; + $s = 64; case 64: return $24r$4; + /* } */ case 60: + /* } */ case 58: + _i$7++; + $s = 55; continue; + case 56: + _tuple$3 = u[0].x.types(); + targs = _tuple$3[0]; + index$1 = _tuple$3[1]; + /* */ if (index$1 < 0) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (index$1 < 0) { */ case 65: + result[0] = targs; + $24r$5 = result[0]; + $s = 67; case 67: return $24r$5; + /* } */ case 66: + _r$13 = check[0].inferB(posn, tparams[0], targs); /* */ $s = 68; case 68: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _tuple$4 = _r$13; + targs = _tuple$4[0]; + index$1 = _tuple$4[1]; + /* */ if (targs === sliceType$3.nil || index$1 < 0) { $s = 69; continue; } + /* */ $s = 70; continue; + /* if (targs === sliceType$3.nil || index$1 < 0) { */ case 69: + result[0] = targs; + $24r$6 = result[0]; + $s = 71; case 71: return $24r$6; + /* } */ case 70: + $r = assert(index$1 >= 0 && $interfaceIsEqual(((index$1 < 0 || index$1 >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + index$1]), $ifaceNil)); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tpar$1 = ((index$1 < 0 || index$1 >= tparams[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams[0].$array[tparams[0].$offset + index$1]); + $r = check[0].errorf(posn, 138, "cannot infer %s (%v)", new sliceType$5([new $String(tpar$1.obj.object.name), new token.Pos(tpar$1.obj.object.pos)])); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + result[0] = sliceType$3.nil; + $24r$7 = result[0]; + $s = 74; case 74: return $24r$7; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return result[0]; } if($curGoroutine.asleep) { var $f = {$blk: infer, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, arg, arg$1, arg$2, args, args2, check, errorf, i, i$1, i$2, i$3, i$4, i$5, i$6, index$1, indices, j, j$1, m, n, named, ok, par, params, params2, posn, renameMap, result, selfRecursive, smap, targ, targ$1, targ$2, targs, targs2, tname, tpar, tpar$1, tparam, tparam$1, tparams, tparams2, u, unnamed, x, $s, $deferred};return $f; } } + }; + typeParamsString = function typeParamsString$1(list$2) { + var _1, _i, _ref, b, i, list$2, n, tname, x; + n = list$2.$length; + _1 = n; + if (_1 === (0)) { + return ""; + } else if (_1 === (1)) { + return (0 >= list$2.$length ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + 0]).obj.object.name; + } else if (_1 === (2)) { + return (0 >= list$2.$length ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + 0]).obj.object.name + " and " + (1 >= list$2.$length ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + 1]).obj.object.name; + } + b = new strings.Builder.ptr(ptrType$91.nil, sliceType$14.nil); + _ref = $subslice(list$2, 0, (n - 1 >> 0)); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + tname = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + b.WriteString(", "); + } + b.WriteString(tname.obj.object.name); + _i++; + } + b.WriteString(", and "); + b.WriteString((x = n - 1 >> 0, ((x < 0 || x >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + x])).obj.object.name); + return b.String(); + }; + isParameterized = function isParameterized$1(tparams, typ$3) { + var {$24r, _r$1, tparams, typ$3, w, $s, $r, $c} = $restore(this, {tparams, typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = new tpWalker.ptr(new $global.Map(), tparams); + _r$1 = w.isParameterized(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isParameterized$1, $c: true, $r, $24r, _r$1, tparams, typ$3, w, $s};return $f; + }; + $ptrType(tpWalker).prototype.isParameterized = function isParameterized$2(typ$3) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _entry, _i, _i$1, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _v, _v$1, fld, i, m, n, ok, res, t, t$1, t$10, t$11, t$12, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tset, typ$3, w, x, $s, $deferred, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + res = [res]; + typ$3 = [typ$3]; + w = [w]; + res[0] = false; + w[0] = this; + _tuple = (_entry = $mapIndex(w[0].seen,Type.keyFor(typ$3[0])), _entry !== undefined ? [_entry.v, true] : [false, false]); + x = _tuple[0]; + ok = _tuple[1]; + if (ok) { + res[0] = x; + $s = -1; return res[0]; + } + _key = typ$3[0]; (w[0].seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: false }); + $deferred.push([(function(res, typ$3, w) { return function tpWalker·isParameterized·func1() { + var _key$1; + _key$1 = typ$3[0]; (w[0].seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key$1), { k: _key$1, v: res[0] }); + }; })(res, typ$3, w), []]); + _ref = typ$3[0]; + /* */ if (_ref === $ifaceNil || $assertType(_ref, ptrType$4, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 12; continue; } + /* */ $s = 13; continue; + /* switch (0) { default: if (_ref === $ifaceNil || $assertType(_ref, ptrType$4, true)[1]) { */ case 1: + t = _ref; + /* break; */ $s = 14; continue; + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: + t$1 = _ref.$val; + _r$1 = w[0].isParameterized(t$1.elem); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + res[0] = _r$1; + $24r = res[0]; + $s = 16; case 16: return $24r; + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 3: + t$2 = _ref.$val; + _r$2 = w[0].isParameterized(t$2.elem); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + res[0] = _r$2; + $24r$1 = res[0]; + $s = 18; case 18: return $24r$1; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: + t$3 = _ref.$val; + _ref$1 = t$3.fields; + _i = 0; + /* while (true) { */ case 19: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 20; continue; } + fld = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$3 = w[0].isParameterized(fld.object.typ); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_r$3) { */ case 21: + res[0] = true; + $s = -1; return res[0]; + /* } */ case 22: + _i++; + $s = 19; continue; + case 20: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 5: + t$4 = _ref.$val; + _r$4 = w[0].isParameterized(t$4.base); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + res[0] = _r$4; + $24r$2 = res[0]; + $s = 25; case 25: return $24r$2; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 6: + t$5 = _ref.$val; + n = t$5.Len(); + i = 0; + /* while (true) { */ case 26: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 27; continue; } + _r$5 = w[0].isParameterized(t$5.At(i).object.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (_r$5) { */ case 28: + res[0] = true; + $s = -1; return res[0]; + /* } */ case 29: + i = i + (1) >> 0; + $s = 26; continue; + case 27: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 7: + t$6 = _ref.$val; + _r$6 = w[0].isParameterized(t$6.params); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + if (_r$6) { _v = true; $s = 31; continue s; } + _r$7 = w[0].isParameterized(t$6.results); /* */ $s = 33; case 33: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v = _r$7; case 31: + res[0] = _v; + $24r$3 = res[0]; + $s = 34; case 34: return $24r$3; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 8: + t$7 = _ref.$val; + _r$8 = t$7.typeSet(); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + tset = _r$8; + _ref$2 = tset.methods; + _i$1 = 0; + /* while (true) { */ case 36: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 37; continue; } + m = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + _r$9 = w[0].isParameterized(m.object.typ); /* */ $s = 40; case 40: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (_r$9) { */ case 38: + res[0] = true; + $s = -1; return res[0]; + /* } */ case 39: + _i$1++; + $s = 36; continue; + case 37: + _r$10 = tset.is((function(res, typ$3, w) { return function tpWalker·isParameterized·func2(t$13) { + var {$24r$4, _r$10, _v$1, t$13, $s, $r, $c} = $restore(this, {t$13}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(!(t$13 === ptrType$5.nil))) { _v$1 = false; $s = 1; continue s; } + _r$10 = w[0].isParameterized(t$13.typ); /* */ $s = 2; case 2: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v$1 = _r$10; case 1: + $24r$4 = _v$1; + $s = 3; case 3: return $24r$4; + /* */ } return; } var $f = {$blk: tpWalker·isParameterized·func2, $c: true, $r, $24r$4, _r$10, _v$1, t$13, $s};return $f; + }; })(res, typ$3, w)); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + res[0] = _r$10; + $24r$4 = res[0]; + $s = 42; case 42: return $24r$4; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 9: + t$8 = _ref.$val; + _r$11 = w[0].isParameterized(t$8.key); /* */ $s = 44; case 44: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + if (_r$11) { _v$1 = true; $s = 43; continue s; } + _r$12 = w[0].isParameterized(t$8.elem); /* */ $s = 45; case 45: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _v$1 = _r$12; case 43: + res[0] = _v$1; + $24r$5 = res[0]; + $s = 46; case 46: return $24r$5; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 10: + t$9 = _ref.$val; + _r$13 = w[0].isParameterized(t$9.elem); /* */ $s = 47; case 47: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + res[0] = _r$13; + $24r$6 = res[0]; + $s = 48; case 48: return $24r$6; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 11: + t$10 = _ref.$val; + _r$14 = w[0].isParameterizedTypeList(t$10.TypeArgs().list()); /* */ $s = 49; case 49: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + res[0] = _r$14; + $24r$7 = res[0]; + $s = 50; case 50: return $24r$7; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 12: + t$11 = _ref.$val; + res[0] = tparamIndex(w[0].tparams, t$11) >= 0; + $s = -1; return res[0]; + /* } else { */ case 13: + t$12 = _ref; + unreachable(); + /* } } */ case 14: + res[0] = false; + $s = -1; return res[0]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: isParameterized$2, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _entry, _i, _i$1, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _v, _v$1, fld, i, m, n, ok, res, t, t$1, t$10, t$11, t$12, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tset, typ$3, w, x, $s, $deferred};return $f; } } + }; + $ptrType(tpWalker).prototype.isParameterizedTypeList = function isParameterizedTypeList(list$2) { + var {_i, _r$1, _ref, list$2, t, w, $s, $r, $c} = $restore(this, {list$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = w.isParameterized(t); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$1) { */ case 3: + $s = -1; return true; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: isParameterizedTypeList, $c: true, $r, _i, _r$1, _ref, list$2, t, w, $s};return $f; + }; + $ptrType(Checker).prototype.inferB = function inferB(posn, tparams, targs) { + var {$24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tuple, _tuple$1, _v, check, core, dirty, i, i$1, i$2, i$3, i$4, i$5, index$1, index$2, n, n$1, nn, posn, single, smap, t, t0, t1, targ, targ$1, targs, tilde, tpar, tparams, tx, typ$3, typ$4, typ$5, types$1, u, w, $s, $deferred, $r, $c} = $restore(this, {posn, tparams, targs}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + tparams = [tparams]; + types$1 = [types$1]; + types$1[0] = sliceType$3.nil; + index$1 = 0; + check[0] = this; + $r = assert(tparams[0].$length >= targs.$length && targs.$length > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (false) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (false) { */ case 2: + $r = check[0].dump("-- inferB %s \xE2\x9E\x9E %s", new sliceType$5([tparams[0], targs])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([(function(check, tparams, types$1) { return function Checker·inferB·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = check[0].dump("=> inferB %s \xE2\x9E\x9E %s", new sliceType$5([tparams[0], types$1[0]])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·inferB·func1, $c: true, $r, $s};return $f; + }; })(check, tparams, types$1), []]); + /* } */ case 3: + u = newUnifier(false); + $r = u.x.init(tparams[0]); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tparamsList.copy(u.y, u.x); + _ref = targs; + _i = 0; + /* while (true) { */ case 6: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } + i = _i; + targ = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (!($interfaceIsEqual(targ, $ifaceNil))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(targ, $ifaceNil))) { */ case 8: + $r = u.x.set(i, targ); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + _i++; + $s = 6; continue; + case 7: + n = u.x.unknowns(); + /* while (true) { */ case 11: + /* if (!(n > 0)) { break; } */ if(!(n > 0)) { $s = 12; continue; } + nn = n; + _ref$1 = tparams[0]; + _i$1 = 0; + /* while (true) { */ case 13: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 14; continue; } + i$1 = _i$1; + tpar = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$1 = coreTerm(tpar); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + core = _tuple[0]; + single = _tuple[1]; + /* */ if (!(core === ptrType$5.nil)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!(core === ptrType$5.nil)) { */ case 16: + tx = u.x.at(i$1); + /* */ if (!($interfaceIsEqual(tx, $ifaceNil))) { $s = 19; continue; } + /* */ if (single && !core.tilde) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!($interfaceIsEqual(tx, $ifaceNil))) { */ case 19: + /* */ if (core.tilde && !isTypeParam(tx)) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (core.tilde && !isTypeParam(tx)) { */ case 23: + _r$2 = under(tx); /* */ $s = 25; case 25: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + tx = _r$2; + /* } */ case 24: + _r$3 = u.unify(tx, core.typ); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!_r$3) { */ case 26: + tilde = ""; + if (core.tilde) { + tilde = "~"; + } + $r = check[0].errorf(posn, 139, "%s does not match %s%s", new sliceType$5([tpar, new $String(tilde), core.typ])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp = sliceType$3.nil; + _tmp$1 = 0; + types$1[0] = _tmp; + index$1 = _tmp$1; + $24r = [types$1[0], index$1]; + $s = 30; case 30: return $24r; + /* } */ case 27: + $s = 22; continue; + /* } else if (single && !core.tilde) { */ case 20: + $r = u.x.set(i$1, core.typ); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else { */ case 21: + _i$1++; + /* continue; */ $s = 13; continue; + /* } */ case 22: + case 18: + nn = u.x.unknowns(); + if (nn === 0) { + /* break; */ $s = 14; continue; + } + /* } */ case 17: + _i$1++; + $s = 13; continue; + case 14: + $r = assert(nn <= n); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (nn === n) { + /* break; */ $s = 12; continue; + } + n = nn; + $s = 11; continue; + case 12: + _tuple$1 = u.x.types(); + types$1[0] = _tuple$1[0]; + /* */ if (false) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (false) { */ case 33: + _ref$2 = targs; + _i$2 = 0; + /* while (true) { */ case 35: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 36; continue; } + i$2 = _i$2; + targ$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + $r = assert($interfaceIsEqual(targ$1, $ifaceNil) || $interfaceIsEqual(((i$2 < 0 || i$2 >= types$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : types$1[0].$array[types$1[0].$offset + i$2]), targ$1)); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 35; continue; + case 36: + /* } */ case 34: + w = new cycleFinder.ptr(tparams[0], types$1[0], new $global.Map()); + _ref$3 = tparams[0]; + _i$3 = 0; + /* while (true) { */ case 38: + /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 39; continue; } + t = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + $r = w.typ(t); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$3++; + $s = 38; continue; + case 39: + dirty = sliceType$13.nil; + _ref$4 = types$1[0]; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$4.$length)) { break; } + i$3 = _i$4; + typ$3 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); + if (!($interfaceIsEqual(typ$3, $ifaceNil)) && (i$3 >= targs.$length || $interfaceIsEqual(((i$3 < 0 || i$3 >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i$3]), $ifaceNil))) { + dirty = $append(dirty, i$3); + } + _i$4++; + } + /* while (true) { */ case 41: + /* if (!(dirty.$length > 0)) { break; } */ if(!(dirty.$length > 0)) { $s = 42; continue; } + _r$4 = makeSubstMap(tparams[0], types$1[0]); /* */ $s = 43; case 43: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + smap = _r$4; + n$1 = 0; + _ref$5 = dirty; + _i$5 = 0; + /* while (true) { */ case 44: + /* if (!(_i$5 < _ref$5.$length)) { break; } */ if(!(_i$5 < _ref$5.$length)) { $s = 45; continue; } + index$2 = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); + t0 = ((index$2 < 0 || index$2 >= types$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : types$1[0].$array[types$1[0].$offset + index$2]); + _r$5 = check[0].subst(0, t0, smap, ptrType$9.nil, check[0].context()); /* */ $s = 46; case 46: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + t1 = _r$5; + if (!($interfaceIsEqual(t1, t0))) { + ((index$2 < 0 || index$2 >= types$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : types$1[0].$array[types$1[0].$offset + index$2] = t1); + ((n$1 < 0 || n$1 >= dirty.$length) ? ($throwRuntimeError("index out of range"), undefined) : dirty.$array[dirty.$offset + n$1] = index$2); + n$1 = n$1 + (1) >> 0; + } + _i$5++; + $s = 44; continue; + case 45: + dirty = $subslice(dirty, 0, n$1); + $s = 41; continue; + case 42: + _ref$6 = types$1[0]; + _i$6 = 0; + /* while (true) { */ case 47: + /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 48; continue; } + i$4 = _i$6; + typ$4 = ((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]); + if (!(!($interfaceIsEqual(typ$4, $ifaceNil)))) { _v = false; $s = 51; continue s; } + _r$6 = isParameterized(tparams[0], typ$4); /* */ $s = 52; case 52: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v = _r$6; case 51: + /* */ if (_v) { $s = 49; continue; } + /* */ $s = 50; continue; + /* if (_v) { */ case 49: + ((i$4 < 0 || i$4 >= types$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : types$1[0].$array[types$1[0].$offset + i$4] = $ifaceNil); + /* } */ case 50: + _i$6++; + $s = 47; continue; + case 48: + index$1 = -1; + _ref$7 = types$1[0]; + _i$7 = 0; + while (true) { + if (!(_i$7 < _ref$7.$length)) { break; } + i$5 = _i$7; + typ$5 = ((_i$7 < 0 || _i$7 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$7]); + if ($interfaceIsEqual(typ$5, $ifaceNil)) { + index$1 = i$5; + break; + } + _i$7++; + } + $24r$1 = [types$1[0], index$1]; + $s = 53; case 53: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [types$1[0], index$1]; } if($curGoroutine.asleep) { var $f = {$blk: inferB, $c: true, $r, $24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tuple, _tuple$1, _v, check, core, dirty, i, i$1, i$2, i$3, i$4, i$5, index$1, index$2, n, n$1, nn, posn, single, smap, t, t0, t1, targ, targ$1, targs, tilde, tpar, tparams, tx, typ$3, typ$4, typ$5, types$1, u, w, $s, $deferred};return $f; } } + }; + coreTerm = function coreTerm$1(tpar) { + var {_r$1, _r$2, _r$3, _r$4, _v, n, single, tilde, tpar, typ$3, $s, $r, $c} = $restore(this, {tpar}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = [n]; + single = [single]; + tilde = [tilde]; + n[0] = 0; + single[0] = ptrType$5.nil; + tilde[0] = false; + _r$1 = tpar.is((function(n, single, tilde) { return function coreTerm·func1(t) { + var {t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (t === ptrType$5.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (t === ptrType$5.nil) { */ case 1: + $r = assert(n[0] === 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + n[0] = n[0] + (1) >> 0; + single[0] = t; + if (t.tilde) { + tilde[0] = true; + } + $s = -1; return true; + /* */ } return; } var $f = {$blk: coreTerm·func1, $c: true, $r, t, $s};return $f; + }; })(n, single, tilde)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* */ if (n[0] === 1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (n[0] === 1) { */ case 2: + /* */ if (false) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (false) { */ case 4: + if (!(false)) { _v = false; $s = 6; continue s; } + _r$2 = under(single[0].typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = coreType(tpar); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = $interfaceIsEqual(_r$2, _r$3); case 6: + $r = assert(_v); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + $s = -1; return [single[0], true]; + /* } */ case 3: + _r$4 = coreType(tpar); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + typ$3 = _r$4; + if (!($interfaceIsEqual(typ$3, $ifaceNil))) { + $s = -1; return [new term.ptr(tilde[0], typ$3), false]; + } + $s = -1; return [ptrType$5.nil, false]; + /* */ } return; } var $f = {$blk: coreTerm$1, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _v, n, single, tilde, tpar, typ$3, $s};return $f; + }; + $ptrType(cycleFinder).prototype.typ = function typ$3(typ$4) { + var {_arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r$1, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, i, i$1, m, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tpar, tpar$1, typ$4, w, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + w = this; + if ((_entry = $mapIndex(w.seen,Type.keyFor(typ$4)), _entry !== undefined ? _entry.v : false)) { + _tuple = $assertType(typ$4, ptrType$14, true); + tpar = _tuple[0]; + if (!(tpar === ptrType$14.nil)) { + i = tparamIndex(w.tparams, tpar); + if (i >= 0) { + (x = w.types, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = $ifaceNil)); + } + } + $s = -1; return; + } + _key = typ$4; (w.seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: true }); + $deferred.push([function(_arg, _arg$1) { $mapDelete(_arg, Type.keyFor(_arg$1)); }, [w.seen, typ$4]]); + _ref = typ$4; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 1: + t = _ref.$val; + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: + t$1 = _ref.$val; + $r = w.typ(t$1.elem); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 3: + t$2 = _ref.$val; + $r = w.typ(t$2.elem); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: + t$3 = _ref.$val; + $r = w.varList(t$3.fields); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 5: + t$4 = _ref.$val; + $r = w.typ(t$4.base); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 6: + t$5 = _ref.$val; + /* */ if (!(t$5.params === ptrType$15.nil)) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!(t$5.params === ptrType$15.nil)) { */ case 19: + $r = w.varList(t$5.params.vars); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + /* */ if (!(t$5.results === ptrType$15.nil)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!(t$5.results === ptrType$15.nil)) { */ case 22: + $r = w.varList(t$5.results.vars); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 7: + t$6 = _ref.$val; + _ref$1 = t$6.terms; + _i = 0; + /* while (true) { */ case 25: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 26; continue; } + t$13 = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + $r = w.typ(t$13.typ); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 25; continue; + case 26: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 8: + t$7 = _ref.$val; + _ref$2 = t$7.methods; + _i$1 = 0; + /* while (true) { */ case 28: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 29; continue; } + m = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + $r = w.typ(m.object.typ); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 28; continue; + case 29: + _ref$3 = t$7.embeddeds; + _i$2 = 0; + /* while (true) { */ case 31: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 32; continue; } + t$14 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + $r = w.typ(t$14); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 31; continue; + case 32: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 9: + t$8 = _ref.$val; + $r = w.typ(t$8.key); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = w.typ(t$8.elem); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 10: + t$9 = _ref.$val; + $r = w.typ(t$9.elem); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 11: + t$10 = _ref.$val; + _ref$4 = t$10.TypeArgs().list(); + _i$3 = 0; + /* while (true) { */ case 37: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 38; continue; } + tpar$1 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + $r = w.typ(tpar$1); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$3++; + $s = 37; continue; + case 38: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 12: + t$11 = _ref.$val; + i$1 = tparamIndex(w.tparams, t$11); + /* */ if (i$1 >= 0 && !($interfaceIsEqual((x$1 = w.types, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])), $ifaceNil))) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (i$1 >= 0 && !($interfaceIsEqual((x$1 = w.types, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])), $ifaceNil))) { */ case 40: + $r = w.typ((x$2 = w.types, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]))); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 41: + $s = 14; continue; + /* } else { */ case 13: + t$12 = _ref; + _r$1 = fmt.Sprintf("unexpected %T", new sliceType$5([typ$4])); /* */ $s = 43; case 43: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 14: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typ$3, $c: true, $r, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r$1, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, i, i$1, m, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tpar, tpar$1, typ$4, w, x, x$1, x$2, $s, $deferred};return $f; } } + }; + $ptrType(cycleFinder).prototype.varList = function varList$1(list$2) { + var {_i, _ref, list$2, v, w, $s, $r, $c} = $restore(this, {list$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = w.typ(v.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: varList$1, $c: true, $r, _i, _ref, list$2, v, w, $s};return $f; + }; + $ptrType(Checker).prototype.indexExpr = function indexExpr(x, e) { + var {_1, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elem, index$1, index$2, index$3, isFuncInst, k, key, key$1, length, mode, sig, typ$10, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, valid, x, $s, $r, $c} = $restore(this, {x, e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + elem = [elem]; + k = [k]; + key = [key]; + key$1 = [key$1]; + length = [length]; + mode = [mode]; + x = [x]; + isFuncInst = false; + check = this; + $r = check.exprOrType(x[0], e.IndexListExpr.X, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = x[0].mode; + /* */ if (_1 === (0)) { $s = 3; continue; } + /* */ if (_1 === (3)) { $s = 4; continue; } + /* */ if (_1 === (7)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (0)) { */ case 3: + $r = check.use(e.IndexListExpr.Indices); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + isFuncInst = false; + $s = -1; return isFuncInst; + /* } else if (_1 === (3)) { */ case 4: + x[0].mode = 0; + _r$1 = check.varType(e.Orig); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x[0].typ = _r$1; + if (!($interfaceIsEqual(x[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { + x[0].mode = 3; + } + isFuncInst = false; + $s = -1; return isFuncInst; + /* } else if (_1 === (7)) { */ case 5: + _r$2 = under(x[0].typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = $assertType(_r$2, ptrType$27, true); + sig = _tuple[0]; + if (!(sig === ptrType$27.nil) && sig.TypeParams().Len() > 0) { + isFuncInst = true; + $s = -1; return isFuncInst; + } + /* } */ case 6: + case 2: + $r = check.nonGeneric(x[0]); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + isFuncInst = false; + $s = -1; return isFuncInst; + } + valid = false; + length[0] = new $Int64(-1, 4294967295); + _r$3 = under(x[0].typ); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _ref = _r$3; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 17; continue; } + /* */ $s = 18; continue; + /* switch (0) { default: if ($assertType(_ref, ptrType$4, true)[1]) { */ case 12: + typ$4 = _ref.$val; + _r$4 = isString(typ$4); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (_r$4) { */ case 19: + valid = true; + /* */ if (x[0].mode === 4) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (x[0].mode === 4) { */ case 22: + _r$5 = constant.StringVal(x[0].val); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + length[0] = (new $Int64(0, _r$5.length)); + /* } */ case 23: + x[0].mode = 7; + x[0].typ = universeByte; + /* } */ case 20: + $s = 18; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 13: + typ$5 = _ref.$val; + valid = true; + length[0] = typ$5.len; + if (!((x[0].mode === 5))) { + x[0].mode = 7; + } + x[0].typ = typ$5.elem; + $s = 18; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 14: + typ$6 = _ref.$val; + _r$6 = under(typ$6.base); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$6, ptrType$10, true); + typ$10 = _tuple$1[0]; + if (!(typ$10 === ptrType$10.nil)) { + valid = true; + length[0] = typ$10.len; + x[0].mode = 5; + x[0].typ = typ$10.elem; + } + $s = 18; continue; + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 15: + typ$7 = _ref.$val; + valid = true; + x[0].mode = 5; + x[0].typ = typ$7.elem; + $s = 18; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 16: + typ$8 = _ref.$val; + _r$7 = check.singleIndex(e); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + index$1 = _r$7; + if ($interfaceIsEqual(index$1, $ifaceNil)) { + x[0].mode = 0; + isFuncInst = false; + $s = -1; return isFuncInst; + } + key[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr(key[0], index$1); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.assignment(key[0], typ$8.key, "map index"); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x[0].mode = 6; + x[0].typ = typ$8.elem; + x[0].expr = e.Orig; + isFuncInst = false; + $s = -1; return isFuncInst; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 17: + typ$9 = _ref.$val; + if (!isTypeParam(x[0].typ)) { + /* break; */ $s = 18; continue; + } + _tmp = $ifaceNil; + _tmp$1 = $ifaceNil; + key$1[0] = _tmp; + elem[0] = _tmp$1; + mode[0] = 5; + _r$8 = typ$9.typeSet(); /* */ $s = 31; case 31: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = _r$8.underIs((function(elem, k, key, key$1, length, mode, x) { return function Checker·indexExpr·func1(u) { + var {_r$10, _r$11, _r$12, _r$9, _ref$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple$2, e$1, k$1, l, t, t$1, t$2, t$3, t$4, t$5, u, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = new $Int64(-1, 4294967295); + _tmp$2 = $ifaceNil; + _tmp$3 = $ifaceNil; + k$1 = _tmp$2; + e$1 = _tmp$3; + _ref$1 = u; + /* */ if ($assertType(_ref$1, ptrType$4, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref$1, ptrType$26, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, ptrType$25, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$28, true)[1]) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($assertType(_ref$1, ptrType$4, true)[1]) { */ case 1: + t = _ref$1.$val; + _r$9 = isString(t); /* */ $s = 9; case 9: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r$9) { */ case 7: + e$1 = universeByte; + mode[0] = 7; + /* } */ case 8: + $s = 6; continue; + /* } else if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 2: + t$1 = _ref$1.$val; + l = t$1.len; + e$1 = t$1.elem; + if (!((x[0].mode === 5))) { + mode[0] = 7; + } + $s = 6; continue; + /* } else if ($assertType(_ref$1, ptrType$26, true)[1]) { */ case 3: + t$2 = _ref$1.$val; + _r$10 = under(t$2.base); /* */ $s = 10; case 10: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$2 = $assertType(_r$10, ptrType$10, true); + t$5 = _tuple$2[0]; + if (!(t$5 === ptrType$10.nil)) { + l = t$5.len; + e$1 = t$5.elem; + } + $s = 6; continue; + /* } else if ($assertType(_ref$1, ptrType$25, true)[1]) { */ case 4: + t$3 = _ref$1.$val; + e$1 = t$3.elem; + $s = 6; continue; + /* } else if ($assertType(_ref$1, ptrType$28, true)[1]) { */ case 5: + t$4 = _ref$1.$val; + k$1 = t$4.key; + e$1 = t$4.elem; + /* } */ case 6: + if ($interfaceIsEqual(e$1, $ifaceNil)) { + $s = -1; return false; + } + if ($interfaceIsEqual(elem[0], $ifaceNil)) { + length[0] = l; + _tmp$4 = k$1; + _tmp$5 = e$1; + key$1[0] = _tmp$4; + elem[0] = _tmp$5; + $s = -1; return true; + } + _r$11 = Identical(key$1[0], k$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (!_r$11) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!_r$11) { */ case 11: + $s = -1; return false; + /* } */ case 12: + _r$12 = Identical(elem[0], e$1); /* */ $s = 16; case 16: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* */ if (!_r$12) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!_r$12) { */ case 14: + $s = -1; return false; + /* } */ case 15: + if ((l.$high > 0 || (l.$high === 0 && l.$low >= 0)) && (l.$high < length[0].$high || (l.$high === length[0].$high && l.$low < length[0].$low))) { + length[0] = l; + } + $s = -1; return true; + /* */ } return; } var $f = {$blk: Checker·indexExpr·func1, $c: true, $r, _r$10, _r$11, _r$12, _r$9, _ref$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple$2, e$1, k$1, l, t, t$1, t$2, t$3, t$4, t$5, u, $s};return $f; + }; })(elem, k, key, key$1, length, mode, x)); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (_r$9) { */ case 29: + /* */ if (!($interfaceIsEqual(key$1[0], $ifaceNil))) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (!($interfaceIsEqual(key$1[0], $ifaceNil))) { */ case 33: + _r$10 = check.singleIndex(e); /* */ $s = 35; case 35: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + index$2 = _r$10; + if ($interfaceIsEqual(index$2, $ifaceNil)) { + x[0].mode = 0; + isFuncInst = false; + $s = -1; return isFuncInst; + } + k[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr(k[0], index$2); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.assignment(k[0], key$1[0], "map index"); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x[0].mode = 6; + x[0].typ = elem[0]; + x[0].expr = e; + isFuncInst = false; + $s = -1; return isFuncInst; + /* } */ case 34: + valid = true; + x[0].mode = mode[0]; + x[0].typ = elem[0]; + /* } */ case 30: + /* } } */ case 18: + /* */ if (!valid) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!valid) { */ case 38: + $r = check.invalidOp(x[0], 51, "cannot index %s", new sliceType$5([x[0]])); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x[0].mode = 0; + isFuncInst = false; + $s = -1; return isFuncInst; + /* } */ case 39: + _r$11 = check.singleIndex(e); /* */ $s = 41; case 41: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + index$3 = _r$11; + if ($interfaceIsEqual(index$3, $ifaceNil)) { + x[0].mode = 0; + isFuncInst = false; + $s = -1; return isFuncInst; + } + if ($interfaceIsEqual(x[0].typ, $ifaceNil)) { + x[0].typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + _r$12 = check.index(index$3, length[0]); /* */ $s = 42; case 42: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + isFuncInst = false; + $s = -1; return isFuncInst; + /* */ } return; } var $f = {$blk: indexExpr, $c: true, $r, _1, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elem, index$1, index$2, index$3, isFuncInst, k, key, key$1, length, mode, sig, typ$10, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, valid, x, $s};return $f; + }; + $ptrType(Checker).prototype.sliceExpr = function sliceExpr(x, e) { + var {_i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, at$1, at$2, check, e, expr, i, i$1, ind, j, length, max, u, u$1, u$2, u$3, u$4, u$5, v, valid, x, x$1, x$2, x$3, x$4, x$5, y, $s, $r, $c} = $restore(this, {x, e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = check.expr(x, e.X); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x.mode === 0) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (x.mode === 0) { */ case 2: + $r = check.use(new sliceType$11([e.Low, e.High, e.Max])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 3: + valid = false; + length = new $Int64(-1, 4294967295); + _r$1 = coreString(x.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + /* */ if (_ref === $ifaceNil) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_ref === $ifaceNil) { */ case 6: + u = _ref; + $r = check.invalidOp(x, 54, "cannot slice %s: %s has no core type", new sliceType$5([x, x.typ])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 7: + u$1 = _ref.$val; + _r$2 = isString(u$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$2) { */ case 13: + /* */ if (e.Slice3) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (e.Slice3) { */ case 16: + at$1 = e.Max; + if ($interfaceIsEqual(at$1, $ifaceNil)) { + at$1 = e; + } + $r = check.invalidOp(at$1, 55, "3-index slice of string", sliceType$5.nil); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 17: + valid = true; + /* */ if (x.mode === 4) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (x.mode === 4) { */ case 19: + _r$3 = constant.StringVal(x.val); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + length = (new $Int64(0, _r$3.length)); + /* } */ case 20: + if (isUntyped(x.typ)) { + x.typ = (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); + } + /* } */ case 14: + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 8: + u$2 = _ref.$val; + valid = true; + length = u$2.len; + /* */ if (!((x.mode === 5))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!((x.mode === 5))) { */ case 22: + $r = check.invalidOp(x, 54, "cannot slice %s (value not addressable)", new sliceType$5([x])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 23: + x.typ = new Slice.ptr(u$2.elem); + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 9: + u$3 = _ref.$val; + _r$4 = under(u$3.base); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = $assertType(_r$4, ptrType$10, true); + u$5 = _tuple[0]; + if (!(u$5 === ptrType$10.nil)) { + valid = true; + length = u$5.len; + x.typ = new Slice.ptr(u$5.elem); + } + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 10: + u$4 = _ref.$val; + valid = true; + /* } */ case 11: + /* */ if (!valid) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!valid) { */ case 26: + $r = check.invalidOp(x, 54, "cannot slice %s", new sliceType$5([x])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 27: + x.mode = 7; + /* */ if (e.Slice3 && ($interfaceIsEqual(e.High, $ifaceNil) || $interfaceIsEqual(e.Max, $ifaceNil))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (e.Slice3 && ($interfaceIsEqual(e.High, $ifaceNil) || $interfaceIsEqual(e.Max, $ifaceNil))) { */ case 29: + _r$5 = inNode(e, e.Rbrack); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = check.invalidAST((x$1 = _r$5, new x$1.constructor.elem(x$1)), "2nd and 3rd index required in 3-index slice", sliceType$5.nil); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 30: + ind = arrayType$1.zero(); + _ref$1 = new sliceType$11([e.Low, e.High, e.Max]); + _i = 0; + /* while (true) { */ case 33: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 34; continue; } + i = _i; + expr = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + x$2 = new $Int64(-1, 4294967295); + /* */ if (!($interfaceIsEqual(expr, $ifaceNil))) { $s = 36; continue; } + /* */ if ((i === 0)) { $s = 37; continue; } + /* */ if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0))) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!($interfaceIsEqual(expr, $ifaceNil))) { */ case 36: + max = new $Int64(-1, 4294967295); + if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0))) { + max = new $Int64(length.$high + 0, length.$low + 1); + } + _r$6 = check.index(expr, max); /* */ $s = 40; case 40: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$1 = _r$6; + v = _tuple$1[1]; + if ((v.$high > 0 || (v.$high === 0 && v.$low >= 0))) { + x$2 = v; + } + $s = 39; continue; + /* } else if ((i === 0)) { */ case 37: + x$2 = new $Int64(0, 0); + $s = 39; continue; + /* } else if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0))) { */ case 38: + x$2 = length; + /* } */ case 39: + case 35: + ((i < 0 || i >= ind.length) ? ($throwRuntimeError("index out of range"), undefined) : ind[i] = x$2); + _i++; + $s = 33; continue; + case 34: + _ref$2 = $subslice(new sliceType$19(ind), 0, 2); + _i$1 = 0; + /* while (true) { */ case 41: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 42; continue; } + i$1 = _i$1; + x$3 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + /* */ if ((x$3.$high > 0 || (x$3.$high === 0 && x$3.$low > 0))) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if ((x$3.$high > 0 || (x$3.$high === 0 && x$3.$low > 0))) { */ case 43: + _ref$3 = $subslice(new sliceType$19(ind), (i$1 + 1 >> 0)); + _i$2 = 0; + /* while (true) { */ case 45: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 46; continue; } + j = _i$2; + y = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + /* */ if ((y.$high > 0 || (y.$high === 0 && y.$low >= 0)) && (y.$high < x$3.$high || (y.$high === x$3.$high && y.$low < x$3.$low))) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if ((y.$high > 0 || (y.$high === 0 && y.$low >= 0)) && (y.$high < x$3.$high || (y.$high === x$3.$high && y.$low < x$3.$low))) { */ case 47: + at$2 = (x$4 = new sliceType$11([e.Low, e.High, e.Max]), x$5 = (i$1 + 1 >> 0) + j >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); + $r = check.errorf(at$2, 53, "invalid slice indices: %d < %d", new sliceType$5([y, x$3])); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break L; */ $s = 42; continue s; + /* } */ case 48: + _i$2++; + $s = 45; continue; + case 46: + /* } */ case 44: + _i$1++; + $s = 41; continue; + case 42: + $s = -1; return; + /* */ } return; } var $f = {$blk: sliceExpr, $c: true, $r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, at$1, at$2, check, e, expr, i, i$1, ind, j, length, max, u, u$1, u$2, u$3, u$4, u$5, v, valid, x, x$1, x$2, x$3, x$4, x$5, y, $s};return $f; + }; + $ptrType(Checker).prototype.singleIndex = function singleIndex(expr) { + var {check, expr, x, x$1, $s, $r, $c} = $restore(this, {expr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + /* */ if (expr.IndexListExpr.Indices.$length === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (expr.IndexListExpr.Indices.$length === 0) { */ case 1: + $r = check.invalidAST(expr.Orig, "index expression %v with 0 indices", new sliceType$5([expr])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } */ case 2: + /* */ if (expr.IndexListExpr.Indices.$length > 1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (expr.IndexListExpr.Indices.$length > 1) { */ case 4: + $r = check.invalidOp((x = expr.IndexListExpr.Indices, (1 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 1])), 52, "more than one index", sliceType$5.nil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + $s = -1; return (x$1 = expr.IndexListExpr.Indices, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + /* */ } return; } var $f = {$blk: singleIndex, $c: true, $r, check, expr, x, x$1, $s};return $f; + }; + $ptrType(Checker).prototype.index = function index$1(index$2, max) { + var {_arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, check, index$2, max, ok, typ$4, v, val, x, $s, $r, $c} = $restore(this, {index$2, max}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = [x]; + typ$4 = $ifaceNil; + val = new $Int64(0, 0); + check = this; + typ$4 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + val = new $Int64(-1, 4294967295); + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr(x[0], index$2); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = check.isValidIndex(x[0], 52, "index", false); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!_r$1) { */ case 2: + $s = -1; return [typ$4, val]; + /* } */ case 3: + if (!((x[0].mode === 4))) { + _tmp = x[0].typ; + _tmp$1 = new $Int64(-1, 4294967295); + typ$4 = _tmp; + val = _tmp$1; + $s = -1; return [typ$4, val]; + } + _r$2 = x[0].val.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2 === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$2 === 0) { */ case 5: + $s = -1; return [typ$4, val]; + /* } */ case 6: + _r$3 = constant.Int64Val(x[0].val); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + v = _tuple[0]; + ok = _tuple[1]; + $r = assert(ok); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((max.$high > 0 || (max.$high === 0 && max.$low >= 0)) && (v.$high > max.$high || (v.$high === max.$high && v.$low >= max.$low))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((max.$high > 0 || (max.$high === 0 && max.$low >= 0)) && (v.$high > max.$high || (v.$high === max.$high && v.$low >= max.$low))) { */ case 10: + _arg = x[0]; + _r$4 = x[0].val.String(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$4); + _arg$2 = max; + $r = check.invalidArg(_arg, 52, "index %s out of bounds [0:%d]", new sliceType$5([_arg$1, _arg$2])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [typ$4, val]; + /* } */ case 11: + _tmp$2 = x[0].typ; + _tmp$3 = v; + typ$4 = _tmp$2; + val = _tmp$3; + $s = -1; return [typ$4, val]; + /* */ } return; } var $f = {$blk: index$1, $c: true, $r, _arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, check, index$2, max, ok, typ$4, v, val, x, $s};return $f; + }; + $ptrType(Checker).prototype.isValidIndex = function isValidIndex(x, code, what, allowNegative) { + var {_r$1, _r$2, _r$3, _v, allowNegative, check, code, what, x, $s, $r, $c} = $restore(this, {x, code, what, allowNegative}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + if (x.mode === 0) { + $s = -1; return false; + } + $r = check.convertUntyped(x, (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return false; + } + _r$1 = allInteger(x.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!_r$1) { */ case 2: + $r = check.invalidArg(x, code, "%s %s must be integer", new sliceType$5([new $String(what), x])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 3: + /* */ if (x.mode === 4) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (x.mode === 4) { */ case 6: + if (!(!allowNegative)) { _v = false; $s = 10; continue s; } + _r$2 = constant.Sign(x.val); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2 < 0; case 10: + /* */ if (_v) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_v) { */ case 8: + $r = check.invalidArg(x, code, "%s %s must not be negative", new sliceType$5([new $String(what), x])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 9: + _r$3 = representableConst(x.val, check, (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), (x.$ptr_val || (x.$ptr_val = new ptrType$50(function() { return this.$target.val; }, function($v) { this.$target.val = $v; }, x)))); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!_r$3) { */ case 13: + $r = check.invalidArg(x, code, "%s %s overflows int", new sliceType$5([new $String(what), x])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 14: + /* } */ case 7: + $s = -1; return true; + /* */ } return; } var $f = {$blk: isValidIndex, $c: true, $r, _r$1, _r$2, _r$3, _v, allowNegative, check, code, what, x, $s};return $f; + }; + $ptrType(Checker).prototype.indexedElts = function indexedElts(elts, typ$4, length) { + var {_entry, _i, _key, _r$1, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elts, eval$1, i, index$2, kv, length, max, typ$4, typ$5, validIndex, visited, x, x$1, x$2, $s, $r, $c} = $restore(this, {elts, typ$4, length}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + visited = (x = elts.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _tmp = new $Int64(0, 0); + _tmp$1 = new $Int64(0, 0); + index$2 = _tmp; + max = _tmp$1; + _ref = elts; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x$1 = [x$1]; + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + validIndex = false; + eval$1 = e; + _tuple = $assertType(e, ptrType$97, true); + kv = _tuple[0]; + /* */ if (!(kv === ptrType$97.nil)) { $s = 3; continue; } + /* */ if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0)) && (index$2.$high > length.$high || (index$2.$high === length.$high && index$2.$low >= length.$low))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(kv === ptrType$97.nil)) { */ case 3: + _r$1 = check.index(kv.Key, length); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + typ$5 = _tuple$1[0]; + i = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(typ$5, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(typ$5, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 8: + /* */ if ((i.$high > 0 || (i.$high === 0 && i.$low >= 0))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((i.$high > 0 || (i.$high === 0 && i.$low >= 0))) { */ case 10: + index$2 = i; + validIndex = true; + $s = 12; continue; + /* } else { */ case 11: + $r = check.errorf(e, 62, "index %s must be integer constant", new sliceType$5([kv.Key])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + /* } */ case 9: + eval$1 = kv.Value; + $s = 6; continue; + /* } else if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0)) && (index$2.$high > length.$high || (index$2.$high === length.$high && index$2.$low >= length.$low))) { */ case 4: + $r = check.errorf(e, 63, "index %d is out of bounds (>= %d)", new sliceType$5([index$2, length])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else { */ case 5: + validIndex = true; + /* } */ case 6: + /* */ if (validIndex) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (validIndex) { */ case 15: + /* */ if ((_entry = $mapIndex(visited,$Int64.keyFor(index$2)), _entry !== undefined ? _entry.v : false)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if ((_entry = $mapIndex(visited,$Int64.keyFor(index$2)), _entry !== undefined ? _entry.v : false)) { */ case 17: + $r = check.errorf(e, 60, "duplicate index %d in array or slice literal", new sliceType$5([index$2])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + _key = index$2; (visited || $throwRuntimeError("assignment to entry in nil map")).set($Int64.keyFor(_key), { k: _key, v: true }); + /* } */ case 16: + index$2 = (x$2 = new $Int64(0, 1), new $Int64(index$2.$high + x$2.$high, index$2.$low + x$2.$low)); + if ((index$2.$high > max.$high || (index$2.$high === max.$high && index$2.$low > max.$low))) { + max = index$2; + } + x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.exprWithHint(x$1[0], eval$1, typ$4); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.assignment(x$1[0], typ$4, "array or slice literal"); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return max; + /* */ } return; } var $f = {$blk: indexedElts, $c: true, $r, _entry, _i, _key, _r$1, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elts, eval$1, i, index$2, kv, length, max, typ$4, typ$5, validIndex, visited, x, x$1, x$2, $s};return $f; + }; + ExprString = function ExprString$1(x) { + var {buf, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + $r = WriteExpr(buf[0], x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: ExprString$1, $c: true, $r, buf, x, $s};return $f; + }; + $pkg.ExprString = ExprString; + WriteExpr = function WriteExpr$1(buf, x) { + var {_1, _r$1, _r$2, _ref, buf, ix, s, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {buf, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$56, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$98, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$99, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$100, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$81, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$85, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ($assertType(_ref, ptrType$30, true)[1]) { */ case 1: + x$2 = _ref.$val; + buf.WriteString(x$2.Name); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 2: + x$3 = _ref.$val; + buf.WriteString("..."); + /* */ if (!($interfaceIsEqual(x$3.Elt, $ifaceNil))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!($interfaceIsEqual(x$3.Elt, $ifaceNil))) { */ case 23: + $r = WriteExpr(buf, x$3.Elt); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$56, true)[1]) { */ case 3: + x$4 = _ref.$val; + buf.WriteString(x$4.Value); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$98, true)[1]) { */ case 4: + x$5 = _ref.$val; + buf.WriteByte(40); + $r = WriteExpr(buf, x$5.Type); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteString(" literal)"); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$99, true)[1]) { */ case 5: + x$6 = _ref.$val; + buf.WriteByte(40); + $r = WriteExpr(buf, x$6.Type); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteString(" literal)"); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 6: + x$7 = _ref.$val; + buf.WriteByte(40); + $r = WriteExpr(buf, x$7.X); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(41); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 7: + x$8 = _ref.$val; + $r = WriteExpr(buf, x$8.X); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(46); + buf.WriteString(x$8.Sel.Name); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { */ case 8: + x$9 = _ref; + ix = typeparams.UnpackIndexExpr(x$9); + $r = WriteExpr(buf, ix.IndexListExpr.X); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(91); + $r = writeExprList(buf, ix.IndexListExpr.Indices); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(93); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$100, true)[1]) { */ case 9: + x$10 = _ref.$val; + $r = WriteExpr(buf, x$10.X); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(91); + /* */ if (!($interfaceIsEqual(x$10.Low, $ifaceNil))) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (!($interfaceIsEqual(x$10.Low, $ifaceNil))) { */ case 33: + $r = WriteExpr(buf, x$10.Low); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 34: + buf.WriteByte(58); + /* */ if (!($interfaceIsEqual(x$10.High, $ifaceNil))) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (!($interfaceIsEqual(x$10.High, $ifaceNil))) { */ case 36: + $r = WriteExpr(buf, x$10.High); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 37: + /* */ if (x$10.Slice3) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (x$10.Slice3) { */ case 39: + buf.WriteByte(58); + /* */ if (!($interfaceIsEqual(x$10.Max, $ifaceNil))) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (!($interfaceIsEqual(x$10.Max, $ifaceNil))) { */ case 41: + $r = WriteExpr(buf, x$10.Max); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 42: + /* } */ case 40: + buf.WriteByte(93); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$81, true)[1]) { */ case 10: + x$11 = _ref.$val; + $r = WriteExpr(buf, x$11.X); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteString(".("); + $r = WriteExpr(buf, x$11.Type); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(41); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$85, true)[1]) { */ case 11: + x$12 = _ref.$val; + $r = WriteExpr(buf, x$12.Fun); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(40); + $r = writeExprList(buf, x$12.Args); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (new token.Pos(x$12.Ellipsis).IsValid()) { + buf.WriteString("..."); + } + buf.WriteByte(41); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 12: + x$13 = _ref.$val; + buf.WriteByte(42); + $r = WriteExpr(buf, x$13.X); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 13: + x$14 = _ref.$val; + buf.WriteString(new token.Token(x$14.Op).String()); + $r = WriteExpr(buf, x$14.X); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 14: + x$15 = _ref.$val; + $r = WriteExpr(buf, x$15.X); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(32); + buf.WriteString(new token.Token(x$15.Op).String()); + buf.WriteByte(32); + $r = WriteExpr(buf, x$15.Y); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 15: + x$16 = _ref.$val; + buf.WriteByte(91); + /* */ if (!($interfaceIsEqual(x$16.Len, $ifaceNil))) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (!($interfaceIsEqual(x$16.Len, $ifaceNil))) { */ case 52: + $r = WriteExpr(buf, x$16.Len); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 53: + buf.WriteByte(93); + $r = WriteExpr(buf, x$16.Elt); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 16: + x$17 = _ref.$val; + buf.WriteString("struct{"); + $r = writeFieldList(buf, x$17.Fields.List, "; ", false); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(125); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 17: + x$18 = _ref.$val; + buf.WriteString("func"); + $r = writeSigExpr(buf, x$18); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 18: + x$19 = _ref.$val; + buf.WriteString("interface{"); + $r = writeFieldList(buf, x$19.Methods.List, "; ", true); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(125); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 19: + x$20 = _ref.$val; + buf.WriteString("map["); + $r = WriteExpr(buf, x$20.Key); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(93); + $r = WriteExpr(buf, x$20.Value); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 20: + x$21 = _ref.$val; + s = ""; + _1 = x$21.Dir; + if (_1 === (1)) { + s = "chan<- "; + } else if (_1 === (2)) { + s = "<-chan "; + } else { + s = "chan "; + } + buf.WriteString(s); + $r = WriteExpr(buf, x$21.Value); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else { */ case 21: + x$1 = _ref; + _r$1 = fmt.Sprintf("(ast: %T)", new sliceType$5([x$1])); /* */ $s = 62; case 62: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = buf.WriteString(_r$1); /* */ $s = 63; case 63: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 22: + $s = -1; return; + /* */ } return; } var $f = {$blk: WriteExpr$1, $c: true, $r, _1, _r$1, _r$2, _ref, buf, ix, s, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; + $pkg.WriteExpr = WriteExpr; + writeSigExpr = function writeSigExpr$1(buf, sig) { + var {buf, n, res, sig, x, x$1, $s, $r, $c} = $restore(this, {buf, sig}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf.WriteByte(40); + $r = writeFieldList(buf, sig.Params.List, ", ", false); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(41); + res = sig.Results; + n = res.NumFields(); + if (n === 0) { + $s = -1; return; + } + buf.WriteByte(32); + /* */ if ((n === 1) && ((x = res.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Names.$length === 0)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((n === 1) && ((x = res.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Names.$length === 0)) { */ case 2: + $r = WriteExpr(buf, (x$1 = res.List, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Type); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 3: + buf.WriteByte(40); + $r = writeFieldList(buf, res.List, ", ", false); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(41); + $s = -1; return; + /* */ } return; } var $f = {$blk: writeSigExpr$1, $c: true, $r, buf, n, res, sig, x, x$1, $s};return $f; + }; + writeFieldList = function writeFieldList$1(buf, list$2, sep, iface$1) { + var {_i, _ref, _tuple, buf, f, i, iface$1, list$2, sep, sig, $s, $r, $c} = $restore(this, {buf, list$2, sep, iface$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf.WriteString(sep); + } + writeIdentList(buf, f.Names); + _tuple = $assertType(f.Type, ptrType$44, true); + sig = _tuple[0]; + /* */ if (!(sig === ptrType$44.nil) && iface$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(sig === ptrType$44.nil) && iface$1) { */ case 3: + $r = writeSigExpr(buf, sig); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 4: + if (f.Names.$length > 0) { + buf.WriteByte(32); + } + $r = WriteExpr(buf, f.Type); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: writeFieldList$1, $c: true, $r, _i, _ref, _tuple, buf, f, i, iface$1, list$2, sep, sig, $s};return $f; + }; + writeIdentList = function writeIdentList$1(buf, list$2) { + var _i, _ref, buf, i, list$2, x; + _ref = list$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf.WriteString(", "); + } + buf.WriteString(x.Name); + _i++; + } + }; + writeExprList = function writeExprList$1(buf, list$2) { + var {_i, _ref, buf, i, list$2, x, $s, $r, $c} = $restore(this, {buf, list$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf.WriteString(", "); + } + $r = WriteExpr(buf, x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: writeExprList$1, $c: true, $r, _i, _ref, buf, i, list$2, x, $s};return $f; + }; + init$1 = function init$5() { + unaryOpPredicates = $makeMap(token.Token.keyFor, [{ k: 12, v: allNumeric }, { k: 13, v: allNumeric }, { k: 19, v: allInteger }, { k: 43, v: allBoolean }]); + }; + $ptrType(Checker).prototype.op = function op(m, x, op$1) { + var {_entry, _r$1, check, m, op$1, pred, x, $s, $r, $c} = $restore(this, {m, x, op$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + pred = (_entry = $mapIndex(m,token.Token.keyFor(op$1)), _entry !== undefined ? _entry.v : $throwNilPointerError); + /* */ if (!(pred === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(pred === $throwNilPointerError)) { */ case 1: + _r$1 = pred(x.typ); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!_r$1) { */ case 4: + $r = check.invalidOp(x, 45, "operator %s not defined on %s", new sliceType$5([new token.Token(op$1), x])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 5: + $s = 3; continue; + /* } else { */ case 2: + $r = check.invalidAST(x, "unknown operator %s", new sliceType$5([new token.Token(op$1)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 3: + $s = -1; return true; + /* */ } return; } var $f = {$blk: op, $c: true, $r, _entry, _r$1, check, m, op$1, pred, x, $s};return $f; + }; + $ptrType(Checker).prototype.overflow = function overflow(x, opPos) { + var {_arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _v, check, opPos, x, $s, $r, $c} = $restore(this, {x, opPos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(x.mode === 4); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = x.val.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1 === 0) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_r$1 === 0) { */ case 2: + $r = check.errorf(new atPos(((opPos >> 0))), 14, "constant result is not representable", sliceType$5.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 3: + /* */ if (isTyped(x.typ)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (isTyped(x.typ)) { */ case 6: + _arg = x; + _r$2 = under(x.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = $assertType(_r$2, ptrType$4); + $r = check.representable(_arg, _arg$1); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 7: + _r$3 = x.val.Kind(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + if (!(_r$3 === 3)) { _v = false; $s = 12; continue s; } + _r$4 = constant.BitLen(x.val); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = _r$4 > 512; case 12: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + $r = check.errorf(new atPos(((opPos >> 0))), 14, "constant %s overflow", new sliceType$5([new $String(opName(x.expr))])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.val = constant.MakeUnknown(); + /* } */ case 11: + $s = -1; return; + /* */ } return; } var $f = {$blk: overflow, $c: true, $r, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _v, check, opPos, x, $s};return $f; + }; + opName = function opName$1(e) { + var _ref, e, e$1, e$2, x, x$1; + _ref = e; + if ($assertType(_ref, ptrType$21, true)[1]) { + e$1 = _ref.$val; + if (((e$1.Op >> 0)) < 21) { + return (x = e$1.Op, ((x < 0 || x >= op2str2.length) ? ($throwRuntimeError("index out of range"), undefined) : op2str2[x])); + } + } else if ($assertType(_ref, ptrType$20, true)[1]) { + e$2 = _ref.$val; + if (((e$2.Op >> 0)) < 20) { + return (x$1 = e$2.Op, ((x$1 < 0 || x$1 >= op2str1.length) ? ($throwRuntimeError("index out of range"), undefined) : op2str1[x$1])); + } + } + return ""; + }; + underIs = function underIs$3(typ$4, f) { + var {$24r, $24r$1, _r$1, _r$2, _r$3, _tuple, f, tpar, typ$4, $s, $r, $c} = $restore(this, {typ$4, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(typ$4, ptrType$14, true); + tpar = _tuple[0]; + /* */ if (!(tpar === ptrType$14.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(tpar === ptrType$14.nil)) { */ case 1: + _r$1 = tpar.underIs(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$2 = under(typ$4); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = f(_r$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = _r$3; + $s = 7; case 7: return $24r$1; + /* */ } return; } var $f = {$blk: underIs$3, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _tuple, f, tpar, typ$4, $s};return $f; + }; + $ptrType(Checker).prototype.unary = function unary(x, e) { + var {_1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, ch, check, e, ok, prec, u, x, $s, $r, $c} = $restore(this, {x, e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = check.expr(x, e.X); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return; + } + _1 = e.Op; + /* */ if (_1 === (17)) { $s = 3; continue; } + /* */ if (_1 === (36)) { $s = 4; continue; } + /* */ if (_1 === (88)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (17)) { */ case 3: + _tuple = $assertType(unparen(e.X), ptrType$99, true); + ok = _tuple[1]; + /* */ if (!ok && !((x.mode === 5))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!ok && !((x.mode === 5))) { */ case 7: + $r = check.invalidOp(x, 49, "cannot take address of %s", new sliceType$5([x])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 8: + x.mode = 7; + x.typ = new Pointer.ptr(x.typ); + $s = -1; return; + /* } else if (_1 === (36)) { */ case 4: + _r$1 = coreType(x.typ); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + u = _r$1; + /* */ if ($interfaceIsEqual(u, $ifaceNil)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ($interfaceIsEqual(u, $ifaceNil)) { */ case 11: + $r = check.invalidOp(x, 58, "cannot receive from %s: no core type", new sliceType$5([x])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 12: + _tuple$1 = $assertType(u, ptrType$29, true); + ch = _tuple$1[0]; + /* */ if (ch === ptrType$29.nil) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (ch === ptrType$29.nil) { */ case 14: + $r = check.invalidOp(x, 58, "cannot receive from non-channel %s", new sliceType$5([x])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 15: + /* */ if (ch.dir === 1) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (ch.dir === 1) { */ case 17: + $r = check.invalidOp(x, 58, "cannot receive from send-only channel %s", new sliceType$5([x])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 18: + x.mode = 8; + x.typ = ch.elem; + check.environment.hasCallOrRecv = true; + $s = -1; return; + /* } else if (_1 === (88)) { */ case 5: + $r = check.error(e, 45, "cannot use ~ outside of interface or type constraint"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 6: + case 2: + _r$2 = check.op(unaryOpPredicates, x, e.Op); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!_r$2) { */ case 21: + x.mode = 0; + $s = -1; return; + /* } */ case 22: + /* */ if (x.mode === 4) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (x.mode === 4) { */ case 24: + _r$3 = x.val.Kind(); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === 0) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (_r$3 === 0) { */ case 26: + $s = -1; return; + /* } */ case 27: + prec = 0; + _r$4 = isUnsigned(x.typ); /* */ $s = 31; case 31: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (_r$4) { */ case 29: + _r$5 = check.conf.sizeof(x.typ); /* */ $s = 32; case 32: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + prec = (($mul64(_r$5, new $Int64(0, 8)).$low >>> 0)); + /* } */ case 30: + _r$6 = constant.UnaryOp(e.Op, x.val, prec); /* */ $s = 33; case 33: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + x.val = _r$6; + x.expr = e; + _arg = x; + _r$7 = x.Pos(); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$1 = _r$7; + $r = check.overflow(_arg, _arg$1); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 25: + x.mode = 7; + $s = -1; return; + /* */ } return; } var $f = {$blk: unary, $c: true, $r, _1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, ch, check, e, ok, prec, u, x, $s};return $f; + }; + isShift = function isShift$1(op$1) { + var op$1; + return (op$1 === 20) || (op$1 === 21); + }; + isComparison = function isComparison$1(op$1) { + var _1, op$1; + _1 = op$1; + if ((_1 === (39)) || (_1 === (44)) || (_1 === (40)) || (_1 === (45)) || (_1 === (41)) || (_1 === (46))) { + return true; + } + return false; + }; + fitsFloat32 = function fitsFloat32$1(x) { + var {_r$1, _tuple, f, f32, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = constant.Float32Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + f32 = _tuple[0]; + f = (f32); + $s = -1; return !math.IsInf(f, 0); + /* */ } return; } var $f = {$blk: fitsFloat32$1, $c: true, $r, _r$1, _tuple, f, f32, x, $s};return $f; + }; + roundFloat32 = function roundFloat32$1(x) { + var {$24r, _r$1, _r$2, _tuple, f, f32, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = constant.Float32Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + f32 = _tuple[0]; + f = (f32); + /* */ if (!math.IsInf(f, 0)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!math.IsInf(f, 0)) { */ case 2: + _r$2 = constant.MakeFloat64(f); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 5; case 5: return $24r; + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: roundFloat32$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, f, f32, x, $s};return $f; + }; + fitsFloat64 = function fitsFloat64$1(x) { + var {_r$1, _tuple, f, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = constant.Float64Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + f = _tuple[0]; + $s = -1; return !math.IsInf(f, 0); + /* */ } return; } var $f = {$blk: fitsFloat64$1, $c: true, $r, _r$1, _tuple, f, x, $s};return $f; + }; + roundFloat64 = function roundFloat64$1(x) { + var {$24r, _r$1, _r$2, _tuple, f, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = constant.Float64Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + f = _tuple[0]; + /* */ if (!math.IsInf(f, 0)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!math.IsInf(f, 0)) { */ case 2: + _r$2 = constant.MakeFloat64(f); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 5; case 5: return $24r; + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: roundFloat64$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, f, x, $s};return $f; + }; + representableConst = function representableConst$1(x, check, typ$4, rounded) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _v, _v$1, check, conf, im, im$1, n, ok, r, r$1, re, re$1, rounded, s, s$1, s$2, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {x, check, typ$4, rounded}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = x.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1 === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$1 === 0) { */ case 1: + $s = -1; return true; + /* } */ case 2: + conf = ptrType$101.nil; + if (!(check === ptrType$6.nil)) { + conf = check.conf; + } + _r$2 = isInteger(typ$4); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 5; continue; } + _r$3 = isFloat(typ$4); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 6; continue; } + _r$4 = isComplex(typ$4); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 7; continue; } + _r$5 = isString(typ$4); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 8; continue; } + _r$6 = isBoolean(typ$4); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$2) { */ case 5: + _r$7 = constant.ToInt(x); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + x$1 = _r$7; + _r$8 = x$1.Kind(); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!((_r$8 === 3))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!((_r$8 === 3))) { */ case 17: + $s = -1; return false; + /* } */ case 18: + if (!(rounded === ptrType$50.nil)) { + rounded.$set(x$1); + } + _r$9 = constant.Int64Val(x$1); /* */ $s = 20; case 20: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple = _r$9; + x$2 = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (ok) { */ case 21: + _1 = typ$4.kind; + /* */ if (_1 === (2)) { $s = 24; continue; } + /* */ if (_1 === (3)) { $s = 25; continue; } + /* */ if (_1 === (4)) { $s = 26; continue; } + /* */ if (_1 === (5)) { $s = 27; continue; } + /* */ if ((_1 === (6)) || (_1 === (20))) { $s = 28; continue; } + /* */ if ((_1 === (7)) || (_1 === (12))) { $s = 29; continue; } + /* */ if (_1 === (8)) { $s = 30; continue; } + /* */ if (_1 === (9)) { $s = 31; continue; } + /* */ if (_1 === (10)) { $s = 32; continue; } + /* */ if (_1 === (11)) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (_1 === (2)) { */ case 24: + _r$10 = conf.sizeof(typ$4); /* */ $s = 36; case 36: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + s = $imul(((_r$10.$low >>> 0)), 8) >>> 0; + $s = -1; return (x$3 = $shiftLeft64(new $Int64(-1, 4294967295), ((s - 1 >>> 0))), (x$3.$high < x$2.$high || (x$3.$high === x$2.$high && x$3.$low <= x$2.$low))) && (x$4 = (x$5 = $shiftLeft64(new $Int64(0, 1), ((s - 1 >>> 0))), new $Int64(x$5.$high - 0, x$5.$low - 1)), (x$2.$high < x$4.$high || (x$2.$high === x$4.$high && x$2.$low <= x$4.$low))); + /* } else if (_1 === (3)) { */ case 25: + $s = -1; return (-1 < x$2.$high || (-1 === x$2.$high && 4294967168 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 127)); + /* } else if (_1 === (4)) { */ case 26: + $s = -1; return (-1 < x$2.$high || (-1 === x$2.$high && 4294934528 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 32767)); + /* } else if (_1 === (5)) { */ case 27: + $s = -1; return (-1 < x$2.$high || (-1 === x$2.$high && 2147483648 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 2147483647)); + /* } else if ((_1 === (6)) || (_1 === (20))) { */ case 28: + $s = -1; return true; + /* } else if ((_1 === (7)) || (_1 === (12))) { */ case 29: + _r$11 = conf.sizeof(typ$4); /* */ $s = 37; case 37: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + s$1 = $imul(((_r$11.$low >>> 0)), 8) >>> 0; + if (s$1 < 64) { + $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$6 = (x$7 = $shiftLeft64(new $Int64(0, 1), s$1), new $Int64(x$7.$high - 0, x$7.$low - 1)), (x$2.$high < x$6.$high || (x$2.$high === x$6.$high && x$2.$low <= x$6.$low))); + } + $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)); + /* } else if (_1 === (8)) { */ case 30: + $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 255)); + /* } else if (_1 === (9)) { */ case 31: + $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 65535)); + /* } else if (_1 === (10)) { */ case 32: + $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 4294967295)); + /* } else if (_1 === (11)) { */ case 33: + $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)); + /* } else { */ case 34: + unreachable(); + /* } */ case 35: + case 23: + /* } */ case 22: + _r$12 = constant.BitLen(x$1); /* */ $s = 39; case 39: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + n = _r$12; + _2 = typ$4.kind; + /* */ if ((_2 === (7)) || (_2 === (12))) { $s = 40; continue; } + /* */ if (_2 === (11)) { $s = 41; continue; } + /* */ if (_2 === (20)) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if ((_2 === (7)) || (_2 === (12))) { */ case 40: + _r$13 = conf.sizeof(typ$4); /* */ $s = 44; case 44: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + s$2 = $imul(((_r$13.$low >>> 0)), 8) >>> 0; + _r$14 = constant.Sign(x$1); /* */ $s = 45; case 45: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $24r = _r$14 >= 0 && n <= ((s$2 >> 0)); + $s = 46; case 46: return $24r; + /* } else if (_2 === (11)) { */ case 41: + _r$15 = constant.Sign(x$1); /* */ $s = 47; case 47: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $24r$1 = _r$15 >= 0 && n <= 64; + $s = 48; case 48: return $24r$1; + /* } else if (_2 === (20)) { */ case 42: + $s = -1; return true; + /* } */ case 43: + case 38: + $s = 10; continue; + /* } else if (_r$3) { */ case 6: + _r$16 = constant.ToFloat(x); /* */ $s = 49; case 49: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + x$8 = _r$16; + _r$17 = x$8.Kind(); /* */ $s = 52; case 52: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + /* */ if (!((_r$17 === 4))) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if (!((_r$17 === 4))) { */ case 50: + $s = -1; return false; + /* } */ case 51: + _3 = typ$4.kind; + /* */ if (_3 === (13)) { $s = 54; continue; } + /* */ if (_3 === (14)) { $s = 55; continue; } + /* */ if (_3 === (22)) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if (_3 === (13)) { */ case 54: + /* */ if (rounded === ptrType$50.nil) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (rounded === ptrType$50.nil) { */ case 59: + _r$18 = fitsFloat32(x$8); /* */ $s = 61; case 61: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + $24r$2 = _r$18; + $s = 62; case 62: return $24r$2; + /* } */ case 60: + _r$19 = roundFloat32(x$8); /* */ $s = 63; case 63: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + r = _r$19; + if (!($interfaceIsEqual(r, $ifaceNil))) { + rounded.$set(r); + $s = -1; return true; + } + $s = 58; continue; + /* } else if (_3 === (14)) { */ case 55: + /* */ if (rounded === ptrType$50.nil) { $s = 64; continue; } + /* */ $s = 65; continue; + /* if (rounded === ptrType$50.nil) { */ case 64: + _r$20 = fitsFloat64(x$8); /* */ $s = 66; case 66: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + $24r$3 = _r$20; + $s = 67; case 67: return $24r$3; + /* } */ case 65: + _r$21 = roundFloat64(x$8); /* */ $s = 68; case 68: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + r$1 = _r$21; + if (!($interfaceIsEqual(r$1, $ifaceNil))) { + rounded.$set(r$1); + $s = -1; return true; + } + $s = 58; continue; + /* } else if (_3 === (22)) { */ case 56: + $s = -1; return true; + /* } else { */ case 57: + unreachable(); + /* } */ case 58: + case 53: + $s = 10; continue; + /* } else if (_r$4) { */ case 7: + x$9 = constant.ToComplex(x); + _r$22 = x$9.Kind(); /* */ $s = 71; case 71: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + /* */ if (!((_r$22 === 5))) { $s = 69; continue; } + /* */ $s = 70; continue; + /* if (!((_r$22 === 5))) { */ case 69: + $s = -1; return false; + /* } */ case 70: + _4 = typ$4.kind; + /* */ if (_4 === (15)) { $s = 73; continue; } + /* */ if (_4 === (16)) { $s = 74; continue; } + /* */ if (_4 === (23)) { $s = 75; continue; } + /* */ $s = 76; continue; + /* if (_4 === (15)) { */ case 73: + /* */ if (rounded === ptrType$50.nil) { $s = 78; continue; } + /* */ $s = 79; continue; + /* if (rounded === ptrType$50.nil) { */ case 78: + _r$23 = constant.Real(x$9); /* */ $s = 81; case 81: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _r$24 = fitsFloat32(_r$23); /* */ $s = 82; case 82: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + if (!(_r$24)) { _v = false; $s = 80; continue s; } + _r$25 = constant.Imag(x$9); /* */ $s = 83; case 83: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$26 = fitsFloat32(_r$25); /* */ $s = 84; case 84: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _v = _r$26; case 80: + $24r$4 = _v; + $s = 85; case 85: return $24r$4; + /* } */ case 79: + _r$27 = constant.Real(x$9); /* */ $s = 86; case 86: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$28 = roundFloat32(_r$27); /* */ $s = 87; case 87: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + re = _r$28; + _r$29 = constant.Imag(x$9); /* */ $s = 88; case 88: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _r$30 = roundFloat32(_r$29); /* */ $s = 89; case 89: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + im = _r$30; + /* */ if (!($interfaceIsEqual(re, $ifaceNil)) && !($interfaceIsEqual(im, $ifaceNil))) { $s = 90; continue; } + /* */ $s = 91; continue; + /* if (!($interfaceIsEqual(re, $ifaceNil)) && !($interfaceIsEqual(im, $ifaceNil))) { */ case 90: + _arg = re; + _r$31 = constant.MakeImag(im); /* */ $s = 92; case 92: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _arg$1 = _r$31; + _r$32 = constant.BinaryOp(_arg, 12, _arg$1); /* */ $s = 93; case 93: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + rounded.$set(_r$32); + $s = -1; return true; + /* } */ case 91: + $s = 77; continue; + /* } else if (_4 === (16)) { */ case 74: + /* */ if (rounded === ptrType$50.nil) { $s = 94; continue; } + /* */ $s = 95; continue; + /* if (rounded === ptrType$50.nil) { */ case 94: + _r$33 = constant.Real(x$9); /* */ $s = 97; case 97: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _r$34 = fitsFloat64(_r$33); /* */ $s = 98; case 98: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + if (!(_r$34)) { _v$1 = false; $s = 96; continue s; } + _r$35 = constant.Imag(x$9); /* */ $s = 99; case 99: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _r$36 = fitsFloat64(_r$35); /* */ $s = 100; case 100: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + _v$1 = _r$36; case 96: + $24r$5 = _v$1; + $s = 101; case 101: return $24r$5; + /* } */ case 95: + _r$37 = constant.Real(x$9); /* */ $s = 102; case 102: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + _r$38 = roundFloat64(_r$37); /* */ $s = 103; case 103: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + re$1 = _r$38; + _r$39 = constant.Imag(x$9); /* */ $s = 104; case 104: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + _r$40 = roundFloat64(_r$39); /* */ $s = 105; case 105: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + im$1 = _r$40; + /* */ if (!($interfaceIsEqual(re$1, $ifaceNil)) && !($interfaceIsEqual(im$1, $ifaceNil))) { $s = 106; continue; } + /* */ $s = 107; continue; + /* if (!($interfaceIsEqual(re$1, $ifaceNil)) && !($interfaceIsEqual(im$1, $ifaceNil))) { */ case 106: + _arg$2 = re$1; + _r$41 = constant.MakeImag(im$1); /* */ $s = 108; case 108: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + _arg$3 = _r$41; + _r$42 = constant.BinaryOp(_arg$2, 12, _arg$3); /* */ $s = 109; case 109: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } + rounded.$set(_r$42); + $s = -1; return true; + /* } */ case 107: + $s = 77; continue; + /* } else if (_4 === (23)) { */ case 75: + $s = -1; return true; + /* } else { */ case 76: + unreachable(); + /* } */ case 77: + case 72: + $s = 10; continue; + /* } else if (_r$5) { */ case 8: + _r$43 = x.Kind(); /* */ $s = 110; case 110: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + $24r$6 = _r$43 === 2; + $s = 111; case 111: return $24r$6; + /* } else if (_r$6) { */ case 9: + _r$44 = x.Kind(); /* */ $s = 112; case 112: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } + $24r$7 = _r$44 === 1; + $s = 113; case 113: return $24r$7; + /* } */ case 10: + case 4: + $s = -1; return false; + /* */ } return; } var $f = {$blk: representableConst$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _v, _v$1, check, conf, im, im$1, n, ok, r, r$1, re, re$1, rounded, s, s$1, s$2, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; + $ptrType(Checker).prototype.representable = function representable(x, typ$4) { + var {_r$1, _tuple, check, code, typ$4, v, x, $s, $r, $c} = $restore(this, {x, typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.representation(x, typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + v = _tuple[0]; + code = _tuple[1]; + /* */ if (!((code === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((code === 0))) { */ case 2: + $r = check.invalidConversion(code, x, typ$4); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 3: + $r = assert(!($interfaceIsEqual(v, $ifaceNil))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.val = v; + $s = -1; return; + /* */ } return; } var $f = {$blk: representable, $c: true, $r, _r$1, _tuple, check, code, typ$4, v, x, $s};return $f; + }; + $ptrType(Checker).prototype.representation = function representation(x, typ$4) { + var {_r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, check, typ$4, v, x, $s, $r, $c} = $restore(this, {x, typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = [v]; + check = this; + $r = assert(x.mode === 4); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + v[0] = x.val; + _r$1 = representableConst(x.val, check, typ$4, (v.$ptr || (v.$ptr = new ptrType$50(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, v)))); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!_r$1) { */ case 2: + _r$2 = isNumeric(x.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + if (!(_r$2)) { _v = false; $s = 7; continue s; } + _r$3 = isNumeric(typ$4); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 7: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_v) { */ case 5: + _r$4 = isInteger(x.typ); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + if (!(!_r$4)) { _v$1 = false; $s = 13; continue s; } + _r$5 = isInteger(typ$4); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v$1 = _r$5; case 13: + /* */ if (_v$1) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v$1) { */ case 10: + $s = -1; return [$ifaceNil, 43]; + /* } else { */ case 11: + $s = -1; return [$ifaceNil, 44]; + /* } */ case 12: + /* } */ case 6: + $s = -1; return [$ifaceNil, 14]; + /* } */ case 3: + $s = -1; return [v[0], 0]; + /* */ } return; } var $f = {$blk: representation, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, check, typ$4, v, x, $s};return $f; + }; + $ptrType(Checker).prototype.invalidConversion = function invalidConversion(code, x, target) { + var {_1, check, code, msg, target, x, $s, $r, $c} = $restore(this, {code, x, target}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + msg = "cannot convert %s to %s"; + _1 = code; + if (_1 === (43)) { + msg = "%s truncated to %s"; + } else if (_1 === (44)) { + msg = "%s overflows %s"; + } + $r = check.errorf(x, code, msg, new sliceType$5([x, target])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: invalidConversion, $c: true, $r, _1, check, code, msg, target, x, $s};return $f; + }; + $ptrType(Checker).prototype.updateExprType = function updateExprType(x, typ$4, final$1) { + var {check, final$1, typ$4, x, $s, $r, $c} = $restore(this, {x, typ$4, final$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = check.updateExprType0($ifaceNil, x, typ$4, final$1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: updateExprType, $c: true, $r, check, final$1, typ$4, x, $s};return $f; + }; + $ptrType(Checker).prototype.updateExprType0 = function updateExprType0(parent, x, typ$4, final$1) { + var {_arg, _arg$1, _arg$2, _arg$3, _entry, _key, _r$1, _r$2, _r$3, _ref, _tuple, c, check, final$1, found, old, parent, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {parent, x, typ$4, final$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = [c]; + check = this; + _tuple = (_entry = $mapIndex(check.untyped,ast.Expr.keyFor(x)), _entry !== undefined ? [_entry.v, true] : [new exprInfo.ptr(false, 0, ptrType$4.nil, $ifaceNil), false]); + old = $clone(_tuple[0], exprInfo); + found = _tuple[1]; + if (!found) { + $s = -1; return; + } + _ref = x; + /* */ if ($assertType(_ref, ptrType$35, true)[1] || $assertType(_ref, ptrType$98, true)[1] || $assertType(_ref, ptrType$99, true)[1] || $assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$100, true)[1] || $assertType(_ref, ptrType$81, true)[1] || $assertType(_ref, ptrType$43, true)[1] || $assertType(_ref, ptrType$97, true)[1] || $assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$85, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$56, true)[1] || $assertType(_ref, ptrType$36, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* switch (0) { default: if ($assertType(_ref, ptrType$35, true)[1] || $assertType(_ref, ptrType$98, true)[1] || $assertType(_ref, ptrType$99, true)[1] || $assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$100, true)[1] || $assertType(_ref, ptrType$81, true)[1] || $assertType(_ref, ptrType$43, true)[1] || $assertType(_ref, ptrType$97, true)[1] || $assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1]) { */ case 1: + x$1 = _ref; + /* */ if (false) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (false) { */ case 9: + _r$1 = x$1.Pos(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = new token.Pos(_r$1); + _arg$1 = x$1; + _arg$2 = old.typ; + _arg$3 = typ$4; + $r = check.dump("%v: found old type(%s): %s (new: %s)", new sliceType$5([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + unreachable(); + /* } */ case 10: + $s = -1; return; + /* } else if ($assertType(_ref, ptrType$85, true)[1]) { */ case 2: + x$2 = _ref.$val; + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$56, true)[1] || $assertType(_ref, ptrType$36, true)[1]) { */ case 3: + x$3 = _ref; + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 4: + x$4 = _ref.$val; + $r = check.updateExprType0(x$4, x$4.X, typ$4, final$1); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 5: + x$5 = _ref.$val; + if (!($interfaceIsEqual(old.val, $ifaceNil))) { + /* break; */ $s = 8; continue; + } + $r = check.updateExprType0(x$5, x$5.X, typ$4, final$1); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 6: + x$6 = _ref.$val; + if (!($interfaceIsEqual(old.val, $ifaceNil))) { + /* break; */ $s = 8; continue; + } + /* */ if (isComparison(x$6.Op)) { $s = 15; continue; } + /* */ if (isShift(x$6.Op)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (isComparison(x$6.Op)) { */ case 15: + $s = 18; continue; + /* } else if (isShift(x$6.Op)) { */ case 16: + $r = check.updateExprType0(x$6, x$6.X, typ$4, final$1); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 18; continue; + /* } else { */ case 17: + $r = check.updateExprType0(x$6, x$6.X, typ$4, final$1); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.updateExprType0(x$6, x$6.Y, typ$4, final$1); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + $s = 8; continue; + /* } else { */ case 7: + x$7 = _ref; + unreachable(); + /* } } */ case 8: + /* */ if (!final$1 && isUntyped(typ$4)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!final$1 && isUntyped(typ$4)) { */ case 22: + _r$2 = under(typ$4); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + old.typ = $assertType(_r$2, ptrType$4); + _key = x; (check.untyped || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(old, exprInfo) }); + $s = -1; return; + /* } */ case 23: + $mapDelete(check.untyped, ast.Expr.keyFor(x)); + /* */ if (old.isLhs) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (old.isLhs) { */ case 25: + _r$3 = allInteger(typ$4); /* */ $s = 29; case 29: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!_r$3) { */ case 27: + /* */ if (false) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (false) { */ case 30: + $r = check.invalidOp(x, 57, "%s (shift of type %s)", new sliceType$5([parent, typ$4])); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 32; continue; + /* } else { */ case 31: + $r = check.invalidOp(x, 57, "shifted operand %s (type %s) must be integer", new sliceType$5([x, typ$4])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 32: + $s = -1; return; + /* } */ case 28: + /* } */ case 26: + /* */ if (!($interfaceIsEqual(old.val, $ifaceNil))) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (!($interfaceIsEqual(old.val, $ifaceNil))) { */ case 35: + c[0] = new operand.ptr(old.mode, x, old.typ, old.val, 0); + $r = check.convertUntyped(c[0], typ$4); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (c[0].mode === 0) { + $s = -1; return; + } + /* } */ case 36: + $r = check.recordTypeAndValue(x, old.mode, typ$4, old.val); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: updateExprType0, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _entry, _key, _r$1, _r$2, _r$3, _ref, _tuple, c, check, final$1, found, old, parent, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + }; + $ptrType(Checker).prototype.updateExprVal = function updateExprVal(x, val) { + var _entry, _key, _tuple, check, info, ok, val, x; + check = this; + _tuple = (_entry = $mapIndex(check.untyped,ast.Expr.keyFor(x)), _entry !== undefined ? [_entry.v, true] : [new exprInfo.ptr(false, 0, ptrType$4.nil, $ifaceNil), false]); + info = $clone(_tuple[0], exprInfo); + ok = _tuple[1]; + if (ok) { + info.val = val; + _key = x; (check.untyped || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(info, exprInfo) }); + } + }; + $ptrType(Checker).prototype.convertUntyped = function convertUntyped(x, target) { + var {_r$1, _r$2, _tuple, check, code, newType, t, target, val, x, $s, $r, $c} = $restore(this, {x, target}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.implicitTypeAndValue(x, target); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + newType = _tuple[0]; + val = _tuple[1]; + code = _tuple[2]; + /* */ if (!((code === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((code === 0))) { */ case 2: + t = target; + /* */ if (!isTypeParam(target)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!isTypeParam(target)) { */ case 4: + _r$2 = safeUnderlying(target); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + t = _r$2; + /* } */ case 5: + $r = check.invalidConversion(code, x, t); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 3: + if (!($interfaceIsEqual(val, $ifaceNil))) { + x.val = val; + check.updateExprVal(x.expr, val); + } + /* */ if (!($interfaceIsEqual(newType, x.typ))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(newType, x.typ))) { */ case 8: + x.typ = newType; + $r = check.updateExprType(x.expr, newType, false); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + $s = -1; return; + /* */ } return; } var $f = {$blk: convertUntyped, $c: true, $r, _r$1, _r$2, _tuple, check, code, newType, t, target, val, x, $s};return $f; + }; + $ptrType(Checker).prototype.implicitTypeAndValue = function implicitTypeAndValue(x, target) { + var {_1, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _v, check, code, target, tkind, u, u$1, u$2, u$3, v, x, xkind, $s, $r, $c} = $restore(this, {x, target}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = [check]; + x = [x]; + check[0] = this; + if ((x[0].mode === 0) || isTyped(x[0].typ) || $interfaceIsEqual(target, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return [x[0].typ, $ifaceNil, 0]; + } + /* */ if (isUntyped(target)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (isUntyped(target)) { */ case 1: + xkind = $assertType(x[0].typ, ptrType$4).kind; + tkind = $assertType(target, ptrType$4).kind; + _r$1 = isNumeric(x[0].typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (!(_r$1)) { _v = false; $s = 6; continue s; } + _r$2 = isNumeric(target); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2; case 6: + /* */ if (_v) { $s = 3; continue; } + /* */ if (!((xkind === tkind))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 3: + if (xkind < tkind) { + $s = -1; return [target, $ifaceNil, 0]; + } + $s = 5; continue; + /* } else if (!((xkind === tkind))) { */ case 4: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 5: + $s = -1; return [x[0].typ, $ifaceNil, 0]; + /* } */ case 2: + _r$3 = under(target); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _ref = _r$3; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { $s = 12; continue; } + /* */ $s = 13; continue; + /* switch (0) { default: if ($assertType(_ref, ptrType$4, true)[1]) { */ case 10: + u = _ref.$val; + /* */ if (x[0].mode === 4) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (x[0].mode === 4) { */ case 15: + _r$4 = check[0].representation(x[0], u); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + v = _tuple[0]; + code = _tuple[1]; + if (!((code === 0))) { + $s = -1; return [$ifaceNil, $ifaceNil, code]; + } + $s = -1; return [target, v, code]; + /* } */ case 16: + _1 = $assertType(x[0].typ, ptrType$4).kind; + /* */ if (_1 === (19)) { $s = 19; continue; } + /* */ if ((_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23))) { $s = 20; continue; } + /* */ if (_1 === (24)) { $s = 21; continue; } + /* */ if (_1 === (25)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (_1 === (19)) { */ case 19: + _r$5 = isBoolean(target); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!_r$5) { */ case 25: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 26: + $s = 24; continue; + /* } else if ((_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23))) { */ case 20: + _r$6 = isNumeric(target); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (!_r$6) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!_r$6) { */ case 28: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 29: + $s = 24; continue; + /* } else if (_1 === (24)) { */ case 21: + _r$7 = isString(target); /* */ $s = 33; case 33: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (!_r$7) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!_r$7) { */ case 31: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 32: + $s = 24; continue; + /* } else if (_1 === (25)) { */ case 22: + _r$8 = hasNil(target); /* */ $s = 36; case 36: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!_r$8) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!_r$8) { */ case 34: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 35: + $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; + /* } else { */ case 23: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 24: + case 18: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 11: + u$1 = _ref.$val; + /* */ if (isTypeParam(target)) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (isTypeParam(target)) { */ case 37: + _r$9 = u$1.typeSet(); /* */ $s = 41; case 41: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = _r$9.underIs((function(check, x) { return function Checker·implicitTypeAndValue·func1(u$4) { + var {_r$10, _tuple$1, t, u$4, $s, $r, $c} = $restore(this, {u$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(u$4, $ifaceNil)) { + $s = -1; return false; + } + _r$10 = check[0].implicitTypeAndValue(x[0], u$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$1 = _r$10; + t = _tuple$1[0]; + $s = -1; return !($interfaceIsEqual(t, $ifaceNil)); + /* */ } return; } var $f = {$blk: Checker·implicitTypeAndValue·func1, $c: true, $r, _r$10, _tuple$1, t, u$4, $s};return $f; + }; })(check, x)); /* */ $s = 42; case 42: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* */ if (!_r$10) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (!_r$10) { */ case 39: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 40: + if (x[0].isNil()) { + $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; + } + /* break; */ $s = 14; continue; + /* } */ case 38: + if (x[0].isNil()) { + $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; + } + _r$11 = u$1.Empty(); /* */ $s = 45; case 45: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (!_r$11) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (!_r$11) { */ case 43: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 44: + $s = -1; return [Default(x[0].typ), $ifaceNil, 0]; + /* } else if ($assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { */ case 12: + u$2 = _ref; + if (!x[0].isNil()) { + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + } + $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; + /* } else { */ case 13: + u$3 = _ref; + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } } */ case 14: + $s = -1; return [target, $ifaceNil, 0]; + /* */ } return; } var $f = {$blk: implicitTypeAndValue, $c: true, $r, _1, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _v, check, code, target, tkind, u, u$1, u$2, u$3, v, x, xkind, $s};return $f; + }; + $ptrType(Checker).prototype.comparison = function comparison(x, y, op$1, switchCase) { + var {_1, _arg, _arg$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, cause, check, code, errOp, ok, op$1, switchCase, typ$4, x, y, $s, $r, $c} = $restore(this, {x, y, op$1, switchCase}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + if (switchCase) { + op$1 = 39; + } + errOp = x; + cause = ""; + code = 46; + _r$1 = x.assignableTo(check, y.typ, ptrType$34.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + ok = _tuple[0]; + /* */ if (!ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!ok) { */ case 2: + _r$2 = y.assignableTo(check, x.typ, ptrType$34.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + ok = _tuple$1[0]; + /* } */ case 3: + /* */ if (!ok) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!ok) { */ case 5: + errOp = y; + if (true) { + errOp = x; + } + _r$3 = check.sprintf("mismatched types %s and %s", new sliceType$5([x.typ, y.typ])); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + cause = _r$3; + /* goto Error */ $s = 8; continue; + /* } */ case 6: + code = 45; + _1 = op$1; + /* */ if ((_1 === (39)) || (_1 === (44))) { $s = 10; continue; } + /* */ if ((_1 === (40)) || (_1 === (45)) || (_1 === (41)) || (_1 === (46))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ((_1 === (39)) || (_1 === (44))) { */ case 10: + /* */ if (x.isNil() || y.isNil()) { $s = 15; continue; } + _r$4 = Comparable(x.typ); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 16; continue; } + _r$5 = Comparable(y.typ); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (x.isNil() || y.isNil()) { */ case 15: + typ$4 = x.typ; + if (x.isNil()) { + typ$4 = y.typ; + } + _r$6 = hasNil(typ$4); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (!_r$6) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!_r$6) { */ case 21: + errOp = y; + /* goto Error */ $s = 8; continue; + /* } */ case 22: + $s = 18; continue; + /* } else if (!_r$4) { */ case 16: + errOp = x; + _r$7 = check.incomparableCause(x.typ); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + cause = _r$7; + /* goto Error */ $s = 8; continue; + $s = 18; continue; + /* } else if (!_r$5) { */ case 17: + errOp = y; + _r$8 = check.incomparableCause(y.typ); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + cause = _r$8; + /* goto Error */ $s = 8; continue; + /* } */ case 18: + case 14: + $s = 13; continue; + /* } else if ((_1 === (40)) || (_1 === (45)) || (_1 === (41)) || (_1 === (46))) { */ case 11: + _r$9 = allOrdered(x.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (!_r$9) { $s = 27; continue; } + _r$10 = allOrdered(y.typ); /* */ $s = 31; case 31: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* */ if (!_r$10) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!_r$9) { */ case 27: + errOp = x; + /* goto Error */ $s = 8; continue; + $s = 29; continue; + /* } else if (!_r$10) { */ case 28: + errOp = y; + /* goto Error */ $s = 8; continue; + /* } */ case 29: + case 26: + $s = 13; continue; + /* } else { */ case 12: + unreachable(); + /* } */ case 13: + case 9: + /* */ if ((x.mode === 4) && (y.mode === 4)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if ((x.mode === 4) && (y.mode === 4)) { */ case 32: + _r$11 = constant.Compare(x.val, op$1, y.val); /* */ $s = 35; case 35: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$12 = constant.MakeBool(_r$11); /* */ $s = 36; case 36: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + x.val = _r$12; + $s = 34; continue; + /* } else { */ case 33: + x.mode = 7; + $r = check.updateExprType(x.expr, Default(x.typ), true); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.updateExprType(y.expr, Default(y.typ), true); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 34: + x.typ = (19 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 19]); + $s = -1; return; + /* Error: */ case 8: + /* */ if (cause === "") { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (cause === "") { */ case 39: + /* */ if (isTypeParam(x.typ) || isTypeParam(y.typ)) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (isTypeParam(x.typ) || isTypeParam(y.typ)) { */ case 41: + if (!isTypeParam(x.typ)) { + errOp = y; + } + _r$13 = check.sprintf("type parameter %s is not comparable with %s", new sliceType$5([errOp.typ, new token.Token(op$1)])); /* */ $s = 44; case 44: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + cause = _r$13; + $s = 43; continue; + /* } else { */ case 42: + _arg = new token.Token(op$1); + _r$14 = check.kindString(errOp.typ); /* */ $s = 45; case 45: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$14); + _r$15 = check.sprintf("operator %s not defined on %s", new sliceType$5([_arg, _arg$1])); /* */ $s = 46; case 46: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + cause = _r$15; + /* } */ case 43: + /* } */ case 40: + /* */ if (switchCase) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (switchCase) { */ case 47: + $r = check.errorf(x, code, "invalid case %s in switch on %s (%s)", new sliceType$5([x.expr, y.expr, new $String(cause)])); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 49; continue; + /* } else { */ case 48: + /* */ if (false) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (false) { */ case 51: + $r = check.invalidOp(errOp, code, "%s %s %s (%s)", new sliceType$5([x.expr, new token.Token(op$1), y.expr, new $String(cause)])); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 53; continue; + /* } else { */ case 52: + $r = check.invalidOp(errOp, code, "cannot compare %s %s %s (%s)", new sliceType$5([x.expr, new token.Token(op$1), y.expr, new $String(cause)])); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 53: + /* } */ case 49: + x.mode = 0; + $s = -1; return; + /* */ } return; } var $f = {$blk: comparison, $c: true, $r, _1, _arg, _arg$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, cause, check, code, errOp, ok, op$1, switchCase, typ$4, x, y, $s};return $f; + }; + $ptrType(Checker).prototype.incomparableCause = function incomparableCause(typ$4) { + var {$24r, _r$1, _r$2, _r$3, _ref, cause, check, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + cause = [cause]; + check = [check]; + check[0] = this; + _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + /* */ if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1]) { */ case 2: + _r$2 = check[0].kindString(typ$4); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2 + " can only be compared to nil"; + $s = 5; case 5: return $24r; + /* } */ case 3: + cause[0] = ""; + _r$3 = comparable(typ$4, true, false, (function(cause, check) { return function Checker·incomparableCause·func1(format, args) { + var {_r$3, args, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = check[0].sprintf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + cause[0] = _r$3; + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·incomparableCause·func1, $c: true, $r, _r$3, args, format, $s};return $f; + }; })(cause, check)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $s = -1; return cause[0]; + /* */ } return; } var $f = {$blk: incomparableCause, $c: true, $r, $24r, _r$1, _r$2, _r$3, _ref, cause, check, typ$4, $s};return $f; + }; + $ptrType(Checker).prototype.kindString = function kindString(typ$4) { + var {$24r, $24r$1, _r$1, _r$2, _r$3, _ref, check, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: + $s = -1; return "array"; + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 3: + $s = -1; return "slice"; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: + $s = -1; return "struct"; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 5: + $s = -1; return "pointer"; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 6: + $s = -1; return "func"; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 7: + /* */ if (isTypeParam(typ$4)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (isTypeParam(typ$4)) { */ case 12: + _r$2 = check.sprintf("type parameter %s", new sliceType$5([typ$4])); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 15; case 15: return $24r; + /* } */ case 13: + $s = -1; return "interface"; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 8: + $s = -1; return "map"; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 9: + $s = -1; return "chan"; + /* } else { */ case 10: + _r$3 = check.sprintf("%s", new sliceType$5([typ$4])); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = _r$3; + $s = 17; case 17: return $24r$1; + /* } */ case 11: + $s = -1; return ""; + /* */ } return; } var $f = {$blk: kindString, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _ref, check, typ$4, $s};return $f; + }; + $ptrType(Checker).prototype.shift = function shift(x, y, e, op$1) { + var {_entry, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, _v$3, b, check, e, found, info, ok, op$1, opPos, s, x, xval, y, yval, $s, $r, $c} = $restore(this, {x, y, e, op$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + xval = $ifaceNil; + /* */ if (x.mode === 4) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.mode === 4) { */ case 1: + _r$1 = constant.ToInt(x.val); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + xval = _r$1; + /* } */ case 2: + _r$2 = allInteger(x.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + if (_r$2) { _v = true; $s = 7; continue s; } + if (!(isUntyped(x.typ) && !($interfaceIsEqual(xval, $ifaceNil)))) { _v$1 = false; $s = 9; continue s; } + _r$3 = xval.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v$1 = _r$3 === 3; case 9: + _v = _v$1; case 7: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + $s = 6; continue; + /* } else { */ case 5: + $r = check.invalidOp(x, 57, "shifted operand %s must be integer", new sliceType$5([x])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 6: + /* */ if (y.mode === 4) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (y.mode === 4) { */ case 12: + _r$4 = constant.ToInt(y.val); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + yval = _r$4; + _r$5 = yval.Kind(); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + if (!(_r$5 === 3)) { _v$2 = false; $s = 18; continue s; } + _r$6 = constant.Sign(yval); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$2 = _r$6 < 0; case 18: + /* */ if (_v$2) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_v$2) { */ case 16: + $r = check.invalidOp(y, 56, "negative shift count %s", new sliceType$5([y])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 17: + /* */ if (isUntyped(y.typ)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (isUntyped(y.typ)) { */ case 22: + $r = check.representable(y, (7 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 7])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (y.mode === 0) { + x.mode = 0; + $s = -1; return; + } + /* } */ case 23: + $s = 14; continue; + /* } else { */ case 13: + _r$7 = allInteger(y.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7) { $s = 26; continue; } + /* */ if (isUntyped(y.typ)) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (_r$7) { */ case 26: + _r$8 = allUnsigned(y.typ); /* */ $s = 33; case 33: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!_r$8 && !check.allowVersion(check.pkg, 1, 13)) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!_r$8 && !check.allowVersion(check.pkg, 1, 13)) { */ case 31: + $r = check.invalidOp(y, 56, "signed shift count %s requires go1.13 or later", new sliceType$5([y])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 32: + $s = 29; continue; + /* } else if (isUntyped(y.typ)) { */ case 27: + $r = check.convertUntyped(y, (7 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 7])); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (y.mode === 0) { + x.mode = 0; + $s = -1; return; + } + $s = 29; continue; + /* } else { */ case 28: + $r = check.invalidOp(y, 56, "shift count %s must be integer", new sliceType$5([y])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 29: + case 25: + /* } */ case 14: + /* */ if (x.mode === 4) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (x.mode === 4) { */ case 37: + /* */ if (y.mode === 4) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (y.mode === 4) { */ case 39: + _r$9 = x.val.Kind(); /* */ $s = 44; case 44: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + if (_r$9 === 0) { _v$3 = true; $s = 43; continue s; } + _r$10 = y.val.Kind(); /* */ $s = 45; case 45: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v$3 = _r$10 === 0; case 43: + /* */ if (_v$3) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (_v$3) { */ case 41: + x.val = constant.MakeUnknown(); + _r$11 = isInteger(x.typ); /* */ $s = 48; case 48: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (!_r$11) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (!_r$11) { */ case 46: + x.typ = (20 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 20]); + /* } */ case 47: + $s = -1; return; + /* } */ case 42: + _r$12 = constant.Uint64Val(y.val); /* */ $s = 49; case 49: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple = _r$12; + s = _tuple[0]; + ok = _tuple[1]; + /* */ if (!ok || (s.$high > 0 || (s.$high === 0 && s.$low > 1074))) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if (!ok || (s.$high > 0 || (s.$high === 0 && s.$low > 1074))) { */ case 50: + $r = check.invalidOp(y, 56, "invalid shift count %s", new sliceType$5([y])); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 51: + _r$13 = isInteger(x.typ); /* */ $s = 55; case 55: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + /* */ if (!_r$13) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (!_r$13) { */ case 53: + x.typ = (20 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 20]); + /* } */ case 54: + _r$14 = constant.Shift(xval, op$1, ((s.$low >>> 0))); /* */ $s = 56; case 56: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + x.val = _r$14; + x.expr = e; + _r$15 = x.Pos(); /* */ $s = 57; case 57: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + opPos = _r$15; + _tuple$1 = $assertType(e, ptrType$21, true); + b = _tuple$1[0]; + if (!(b === ptrType$21.nil)) { + opPos = b.OpPos; + } + $r = check.overflow(x, opPos); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 40: + if (isUntyped(x.typ)) { + _tuple$2 = (_entry = $mapIndex(check.untyped,ast.Expr.keyFor(x.expr)), _entry !== undefined ? [_entry.v, true] : [new exprInfo.ptr(false, 0, ptrType$4.nil, $ifaceNil), false]); + info = $clone(_tuple$2[0], exprInfo); + found = _tuple$2[1]; + if (found) { + info.isLhs = true; + _key = x.expr; (check.untyped || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(info, exprInfo) }); + } + x.mode = 7; + $s = -1; return; + } + /* } */ case 38: + _r$16 = allInteger(x.typ); /* */ $s = 61; case 61: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + /* */ if (!_r$16) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (!_r$16) { */ case 59: + $r = check.invalidOp(x, 57, "shifted operand %s must be integer", new sliceType$5([x])); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 60: + x.mode = 7; + $s = -1; return; + /* */ } return; } var $f = {$blk: shift, $c: true, $r, _entry, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, _v$3, b, check, e, found, info, ok, op$1, opPos, s, x, xval, y, yval, $s};return $f; + }; + init$2 = function init$6() { + binaryOpPredicates = $makeMap(token.Token.keyFor, [{ k: 12, v: allNumericOrString }, { k: 13, v: allNumeric }, { k: 14, v: allNumeric }, { k: 15, v: allNumeric }, { k: 16, v: allInteger }, { k: 17, v: allInteger }, { k: 18, v: allInteger }, { k: 19, v: allInteger }, { k: 22, v: allInteger }, { k: 34, v: allBoolean }, { k: 35, v: allBoolean }]); + }; + $ptrType(Checker).prototype.binary = function binary(x, e, lhs, rhs, op$1, opPos) { + var {_r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, _v$5, canMix, check, e, im, im2, lhs, op$1, opPos, posn, re, re2, rhs, x, y, $s, $r, $c} = $restore(this, {x, e, lhs, rhs, op$1, opPos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + y = [y]; + check = this; + y[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr(x, lhs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.expr(y[0], rhs); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return; + } + if (y[0].mode === 0) { + x.mode = 0; + x.expr = y[0].expr; + $s = -1; return; + } + /* */ if (isShift(op$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (isShift(op$1)) { */ case 3: + $r = check.shift(x, y[0], e, op$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + canMix = (function(y) { return function Checker·binary·func1(x$1, y$1) { + var {_r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, _v$2, x$1, y$1, $s, $r, $c} = $restore(this, {x$1, y$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = isNonTypeParamInterface(x$1.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (_r$1) { _v = true; $s = 3; continue s; } + _r$2 = isNonTypeParamInterface(y$1.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $s = -1; return true; + /* } */ case 2: + _r$3 = allBoolean(x$1.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = allBoolean(y$1.typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!(_r$3 === _r$4)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(_r$3 === _r$4)) { */ case 6: + $s = -1; return false; + /* } */ case 7: + _r$5 = allString(x$1.typ); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = allString(y$1.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (!(_r$5 === _r$6)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!(_r$5 === _r$6)) { */ case 10: + $s = -1; return false; + /* } */ case 11: + if (!(x$1.isNil())) { _v$1 = false; $s = 16; continue s; } + _r$7 = hasNil(y$1.typ); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$1 = !_r$7; case 16: + /* */ if (_v$1) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_v$1) { */ case 14: + $s = -1; return false; + /* } */ case 15: + if (!(y$1.isNil())) { _v$2 = false; $s = 20; continue s; } + _r$8 = hasNil(x$1.typ); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _v$2 = !_r$8; case 20: + /* */ if (_v$2) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_v$2) { */ case 18: + $s = -1; return false; + /* } */ case 19: + $s = -1; return true; + /* */ } return; } var $f = {$blk: Checker·binary·func1, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, _v$2, x$1, y$1, $s};return $f; + }; })(y); + _r$1 = canMix(x, y[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r$1) { */ case 6: + $r = check.convertUntyped(x, y[0].typ); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return; + } + $r = check.convertUntyped(y[0], x.typ); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (y[0].mode === 0) { + x.mode = 0; + $s = -1; return; + } + /* } */ case 7: + /* */ if (isComparison(op$1)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (isComparison(op$1)) { */ case 11: + $r = check.comparison(x, y[0], op$1, false); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 12: + _r$2 = Identical(x.typ, y[0].typ); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!_r$2) { */ case 14: + /* */ if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) && !($interfaceIsEqual(y[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) && !($interfaceIsEqual(y[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 17: + posn = x; + if (!($interfaceIsEqual(e, $ifaceNil))) { + posn = e; + } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 19: + $r = check.invalidOp(posn, 46, "%s (mismatched types %s and %s)", new sliceType$5([e, x.typ, y[0].typ])); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 21; continue; + /* } else { */ case 20: + $r = check.invalidOp(posn, 46, "%s %s= %s (mismatched types %s and %s)", new sliceType$5([lhs, new token.Token(op$1), rhs, x.typ, y[0].typ])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 21: + /* } */ case 18: + x.mode = 0; + $s = -1; return; + /* } */ case 15: + _r$3 = check.op(binaryOpPredicates, x, op$1); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!_r$3) { */ case 24: + x.mode = 0; + $s = -1; return; + /* } */ case 25: + /* */ if ((op$1 === 15) || (op$1 === 16)) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if ((op$1 === 15) || (op$1 === 16)) { */ case 27: + if (x.mode === 4) { _v$1 = true; $s = 32; continue s; } + _r$4 = allInteger(x.typ); /* */ $s = 33; case 33: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v$1 = _r$4; case 32: + if (!((_v$1) && (y[0].mode === 4))) { _v = false; $s = 31; continue s; } + _r$5 = constant.Sign(y[0].val); /* */ $s = 34; case 34: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v = _r$5 === 0; case 31: + /* */ if (_v) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (_v) { */ case 29: + $r = check.invalidOp(y[0], 47, "division by zero", sliceType$5.nil); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 30: + if (!((x.mode === 4) && (y[0].mode === 4))) { _v$2 = false; $s = 38; continue s; } + _r$6 = isComplex(x.typ); /* */ $s = 39; case 39: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$2 = _r$6; case 38: + /* */ if (_v$2) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (_v$2) { */ case 36: + _r$7 = constant.Real(y[0].val); /* */ $s = 40; case 40: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tmp = _r$7; + _r$8 = constant.Imag(y[0].val); /* */ $s = 41; case 41: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tmp$1 = _r$8; + re = _tmp; + im = _tmp$1; + _r$9 = constant.BinaryOp(re, 14, re); /* */ $s = 42; case 42: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tmp$2 = _r$9; + _r$10 = constant.BinaryOp(im, 14, im); /* */ $s = 43; case 43: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tmp$3 = _r$10; + re2 = _tmp$2; + im2 = _tmp$3; + _r$11 = constant.Sign(re2); /* */ $s = 47; case 47: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + if (!(_r$11 === 0)) { _v$3 = false; $s = 46; continue s; } + _r$12 = constant.Sign(im2); /* */ $s = 48; case 48: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _v$3 = _r$12 === 0; case 46: + /* */ if (_v$3) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (_v$3) { */ case 44: + $r = check.invalidOp(y[0], 47, "division by zero", sliceType$5.nil); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 45: + /* } */ case 37: + /* } */ case 28: + /* */ if ((x.mode === 4) && (y[0].mode === 4)) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if ((x.mode === 4) && (y[0].mode === 4)) { */ case 50: + _r$13 = x.val.Kind(); /* */ $s = 55; case 55: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + if (_r$13 === 0) { _v$4 = true; $s = 54; continue s; } + _r$14 = y[0].val.Kind(); /* */ $s = 56; case 56: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _v$4 = _r$14 === 0; case 54: + /* */ if (_v$4) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (_v$4) { */ case 52: + x.val = constant.MakeUnknown(); + $s = -1; return; + /* } */ case 53: + if (!(op$1 === 15)) { _v$5 = false; $s = 59; continue s; } + _r$15 = isInteger(x.typ); /* */ $s = 60; case 60: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _v$5 = _r$15; case 59: + /* */ if (_v$5) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (_v$5) { */ case 57: + op$1 = 26; + /* } */ case 58: + _r$16 = constant.BinaryOp(x.val, op$1, y[0].val); /* */ $s = 61; case 61: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + x.val = _r$16; + x.expr = e; + $r = check.overflow(x, opPos); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 51: + x.mode = 7; + $s = -1; return; + /* */ } return; } var $f = {$blk: binary, $c: true, $r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, _v$5, canMix, check, e, im, im2, lhs, op$1, opPos, posn, re, re2, rhs, x, y, $s};return $f; + }; + $ptrType(Checker).prototype.rawExpr = function rawExpr(x, e, hint, allowGeneric) { + var {$24r, _r$1, _r$2, allowGeneric, check, e, hint, kind, x, $s, $deferred, $r, $c} = $restore(this, {x, e, hint, allowGeneric}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + e = [e]; + x = [x]; + check[0] = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + _r$1 = e[0].Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = check[0].trace(_r$1, "-- expr %s", new sliceType$5([e[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(check, e, x) { return function Checker·rawExpr·func1() { + var {_r$2, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + _r$2 = e[0].Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = check[0].trace(_r$2, "=> %s", new sliceType$5([x[0]])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·rawExpr·func1, $c: true, $r, _r$2, $s};return $f; + }; })(check, e, x), []]); + /* } */ case 2: + _r$2 = check[0].exprInternal(x[0], e[0], hint); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + kind = _r$2; + /* */ if (!allowGeneric) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!allowGeneric) { */ case 6: + $r = check[0].nonGeneric(x[0]); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + $r = check[0].record(x[0]); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r = kind; + $s = 10; case 10: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: rawExpr, $c: true, $r, $24r, _r$1, _r$2, allowGeneric, check, e, hint, kind, x, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.nonGeneric = function nonGeneric(x) { + var {_r$1, _ref, check, t, t$1, what, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + if ((x.mode === 0) || (x.mode === 1)) { + $s = -1; return; + } + what = ""; + _ref = x.typ; + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, ptrType$9, true)[1]) { */ case 1: + t = _ref.$val; + _r$1 = isGeneric(t); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + what = "type"; + /* } */ case 5: + $s = 3; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 2: + t$1 = _ref.$val; + if (!(t$1.tparams === ptrType$48.nil)) { + what = "function"; + } + /* } */ case 3: + /* */ if (!(what === "")) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(what === "")) { */ case 7: + $r = check.errorf(x.expr, 137, "cannot use generic %s %s without instantiation", new sliceType$5([new $String(what), x.expr])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + x.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 8: + $s = -1; return; + /* */ } return; } var $f = {$blk: nonGeneric, $c: true, $r, _r$1, _ref, check, t, t$1, what, x, $s};return $f; + }; + $ptrType(Checker).prototype.exprInternal = function exprInternal(x, e, hint) { + var {$24r, T, _1, _2, _arg, _arg$1, _entry, _entry$1, _entry$2, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, atyp, base, base$1, check, decl$1, duplicate, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$17, e$18, e$19, e$2, e$20, e$21, e$22, e$3, e$4, e$5, e$6, e$7, e$8, e$9, ellip, etyp, etyp$1, fields, fld, fld$1, hint, i, i$1, iota, ix, key, keyIsInterface, kind, kv, kv$1, kv$2, kv$3, n, ok, ok$1, ok$2, sig, typ$4, utyp, utyp$1, utyp$2, utyp$3, utyp$4, visited, visited$1, vtyp, x, x$1, x$2, x$3, x$4, x$5, xkey, $s, $r, $c} = $restore(this, {x, e, hint}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + base = [base]; + check = [check]; + decl$1 = [decl$1]; + e$1 = [e$1]; + iota = [iota]; + sig = [sig]; + x = [x]; + check[0] = this; + x[0].mode = 0; + x[0].typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + _ref = e; + /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$56, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$98, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$99, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$100, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$81, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$85, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$97, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1]) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if ($assertType(_ref, ptrType$35, true)[1]) { */ case 1: + e$2 = _ref.$val; + /* goto Error */ $s = 20; continue; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 2: + e$3 = _ref.$val; + $r = check[0].ident(x[0], e$3, ptrType$9.nil, false); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 3: + e$4 = _ref.$val; + $r = check[0].error(e$4, 77, "invalid use of '...'"); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$56, true)[1]) { */ case 4: + e$5 = _ref.$val; + _1 = e$5.Kind; + /* */ if ((_1 === (5)) || (_1 === (6)) || (_1 === (7))) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if ((_1 === (5)) || (_1 === (6)) || (_1 === (7))) { */ case 24: + $r = check[0].langCompat(e$5); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (e$5.Value.length > 10000) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (e$5.Value.length > 10000) { */ case 27: + $r = check[0].errorf(e$5, 14, "excessively long constant: %s... (%d chars)", new sliceType$5([new $String($substring(e$5.Value, 0, 10)), new $Int(e$5.Value.length)])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 28: + /* } */ case 25: + case 23: + $r = x[0].setConst(e$5.Kind, e$5.Value); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x[0].mode === 0) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (x[0].mode === 0) { */ case 31: + $r = check[0].errorf(e$5, 14, "malformed constant: %s", new sliceType$5([new $String(e$5.Value)])); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 32: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$98, true)[1]) { */ case 5: + e$1[0] = _ref.$val; + _r$1 = check[0].typ(e$1[0].Type); /* */ $s = 34; case 34: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$27, true); + sig[0] = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (ok) { */ case 35: + if (!check[0].conf.IgnoreFuncBodies && !(e$1[0].Body === ptrType$73.nil)) { + decl$1[0] = check[0].environment.decl; + iota[0] = check[0].environment.iota; + check[0].later((function(base, check, decl$1, e$1, iota, sig, x) { return function Checker·exprInternal·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = check[0].funcBody(decl$1[0], "", sig[0], e$1[0].Body, iota[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·exprInternal·func1, $c: true, $r, $s};return $f; + }; })(base, check, decl$1, e$1, iota, sig, x)).describef(e$1[0], "func literal", sliceType$5.nil); + } + x[0].mode = 7; + x[0].typ = sig[0]; + $s = 37; continue; + /* } else { */ case 36: + $r = check[0].invalidAST(e$1[0], "invalid function literal %s", new sliceType$5([e$1[0]])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 37: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$99, true)[1]) { */ case 6: + e$6 = _ref.$val; + _tmp = $ifaceNil; + _tmp$1 = $ifaceNil; + typ$4 = _tmp; + base$1 = _tmp$1; + /* */ if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { $s = 40; continue; } + /* */ if (!($interfaceIsEqual(hint, $ifaceNil))) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { */ case 40: + _tuple$1 = $assertType(e$6.Type, ptrType$40, true); + atyp = _tuple$1[0]; + /* */ if (!(atyp === ptrType$40.nil) && !($interfaceIsEqual(atyp.Len, $ifaceNil))) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!(atyp === ptrType$40.nil) && !($interfaceIsEqual(atyp.Len, $ifaceNil))) { */ case 44: + _tuple$2 = $assertType(atyp.Len, ptrType$41, true); + ellip = _tuple$2[0]; + /* */ if (!(ellip === ptrType$41.nil) && $interfaceIsEqual(ellip.Elt, $ifaceNil)) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (!(ellip === ptrType$41.nil) && $interfaceIsEqual(ellip.Elt, $ifaceNil)) { */ case 46: + _r$2 = check[0].varType(atyp.Elt); /* */ $s = 48; case 48: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ$4 = new Array.ptr(new $Int64(-1, 4294967295), _r$2); + base$1 = typ$4; + /* break; */ $s = 39; continue; + /* } */ case 47: + /* } */ case 45: + _r$3 = check[0].typ(e$6.Type); /* */ $s = 49; case 49: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + typ$4 = _r$3; + base$1 = typ$4; + $s = 43; continue; + /* } else if (!($interfaceIsEqual(hint, $ifaceNil))) { */ case 41: + typ$4 = hint; + _r$4 = coreType(typ$4); /* */ $s = 50; case 50: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = deref(_r$4); /* */ $s = 51; case 51: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$3 = _r$5; + base$1 = _tuple$3[0]; + /* */ if ($interfaceIsEqual(base$1, $ifaceNil)) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if ($interfaceIsEqual(base$1, $ifaceNil)) { */ case 52: + $r = check[0].errorf(e$6, 71, "invalid composite literal element type %s: no core type", new sliceType$5([typ$4])); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 53: + $s = 43; continue; + /* } else { */ case 42: + $r = check[0].error(e$6, 70, "missing type in composite literal"); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 43: + case 39: + _r$6 = coreType(base$1); /* */ $s = 56; case 56: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _ref$1 = _r$6; + /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 57; continue; } + /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 58; continue; } + /* */ if ($assertType(_ref$1, ptrType$25, true)[1]) { $s = 59; continue; } + /* */ if ($assertType(_ref$1, ptrType$28, true)[1]) { $s = 60; continue; } + /* */ $s = 61; continue; + /* switch (0) { default: if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 57: + utyp = _ref$1.$val; + /* */ if (utyp.fields === sliceType$10.nil) { $s = 63; continue; } + /* */ $s = 64; continue; + /* if (utyp.fields === sliceType$10.nil) { */ case 63: + $r = check[0].error(e$6, 11, "illegal cycle in type declaration"); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 64: + if (e$6.Elts.$length === 0) { + /* break; */ $s = 62; continue; + } + fields = utyp.fields; + _tuple$4 = $assertType((x$1 = e$6.Elts, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), ptrType$97, true); + ok$1 = _tuple$4[1]; + /* */ if (ok$1) { $s = 66; continue; } + /* */ $s = 67; continue; + /* if (ok$1) { */ case 66: + visited = $makeSlice(sliceType$15, fields.$length); + _ref$2 = e$6.Elts; + _i = 0; + /* while (true) { */ case 69: + /* if (!(_i < _ref$2.$length)) { break; } */ if(!(_i < _ref$2.$length)) { $s = 70; continue; } + e$19 = ((_i < 0 || _i >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i]); + _tuple$5 = $assertType(e$19, ptrType$97, true); + kv = _tuple$5[0]; + /* */ if (kv === ptrType$97.nil) { $s = 71; continue; } + /* */ $s = 72; continue; + /* if (kv === ptrType$97.nil) { */ case 71: + $r = check[0].error(e$19, 64, "mixture of field:value and value elements in struct literal"); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 69; continue; + /* } */ case 72: + _tuple$6 = $assertType(kv.Key, ptrType$30, true); + key = _tuple$6[0]; + $r = check[0].expr(x[0], kv.Value); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (key === ptrType$30.nil) { $s = 75; continue; } + /* */ $s = 76; continue; + /* if (key === ptrType$30.nil) { */ case 75: + $r = check[0].errorf(kv, 69, "invalid field name %s in struct literal", new sliceType$5([kv.Key])); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 69; continue; + /* } */ case 76: + i = fieldIndex(utyp.fields, check[0].pkg, key.Name); + /* */ if (i < 0) { $s = 78; continue; } + /* */ $s = 79; continue; + /* if (i < 0) { */ case 78: + $r = check[0].errorf(kv, 66, "unknown field %s in struct literal", new sliceType$5([new $String(key.Name)])); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 69; continue; + /* } */ case 79: + fld = ((i < 0 || i >= fields.$length) ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + i]); + $r = check[0].recordUse(key, fld); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + etyp = fld.object.typ; + $r = check[0].assignment(x[0], etyp, "struct literal"); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (((i < 0 || i >= visited.$length) ? ($throwRuntimeError("index out of range"), undefined) : visited.$array[visited.$offset + i])) { $s = 83; continue; } + /* */ $s = 84; continue; + /* if (((i < 0 || i >= visited.$length) ? ($throwRuntimeError("index out of range"), undefined) : visited.$array[visited.$offset + i])) { */ case 83: + $r = check[0].errorf(kv, 67, "duplicate field name %s in struct literal", new sliceType$5([new $String(key.Name)])); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 69; continue; + /* } */ case 84: + ((i < 0 || i >= visited.$length) ? ($throwRuntimeError("index out of range"), undefined) : visited.$array[visited.$offset + i] = true); + _i++; + $s = 69; continue; + case 70: + $s = 68; continue; + /* } else { */ case 67: + _ref$3 = e$6.Elts; + _i$1 = 0; + /* while (true) { */ case 86: + /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 87; continue; } + i$1 = _i$1; + e$20 = ((_i$1 < 0 || _i$1 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$1]); + _tuple$7 = $assertType(e$20, ptrType$97, true); + kv$1 = _tuple$7[0]; + /* */ if (!(kv$1 === ptrType$97.nil)) { $s = 88; continue; } + /* */ $s = 89; continue; + /* if (!(kv$1 === ptrType$97.nil)) { */ case 88: + $r = check[0].error(kv$1, 64, "mixture of field:value and value elements in struct literal"); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* continue; */ $s = 86; continue; + /* } */ case 89: + $r = check[0].expr(x[0], e$20); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (i$1 >= fields.$length) { $s = 92; continue; } + /* */ $s = 93; continue; + /* if (i$1 >= fields.$length) { */ case 92: + $r = check[0].errorf(x[0], 65, "too many values in %s{\xE2\x80\xA6}", new sliceType$5([base$1])); /* */ $s = 94; case 94: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 87; continue; + /* } */ case 93: + fld$1 = ((i$1 < 0 || i$1 >= fields.$length) ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + i$1]); + /* */ if (!fld$1.object.Exported() && !(fld$1.object.pkg === check[0].pkg)) { $s = 95; continue; } + /* */ $s = 96; continue; + /* if (!fld$1.object.Exported() && !(fld$1.object.pkg === check[0].pkg)) { */ case 95: + $r = check[0].errorf(x[0], 68, "implicit assignment to unexported field %s in %s literal", new sliceType$5([new $String(fld$1.object.name), typ$4])); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* continue; */ $s = 86; continue; + /* } */ case 96: + etyp$1 = fld$1.object.typ; + $r = check[0].assignment(x[0], etyp$1, "struct literal"); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 86; continue; + case 87: + /* */ if (e$6.Elts.$length < fields.$length) { $s = 99; continue; } + /* */ $s = 100; continue; + /* if (e$6.Elts.$length < fields.$length) { */ case 99: + _r$7 = inNode(e$6, e$6.Rbrace); /* */ $s = 101; case 101: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $r = check[0].errorf((x$2 = _r$7, new x$2.constructor.elem(x$2)), 65, "too few values in %s{\xE2\x80\xA6}", new sliceType$5([base$1])); /* */ $s = 102; case 102: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 100: + /* } */ case 68: + $s = 62; continue; + /* } else if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 58: + utyp$1 = _ref$1.$val; + /* */ if ($interfaceIsEqual(utyp$1.elem, $ifaceNil)) { $s = 103; continue; } + /* */ $s = 104; continue; + /* if ($interfaceIsEqual(utyp$1.elem, $ifaceNil)) { */ case 103: + $r = check[0].error(e$6, 12, "illegal cycle in type declaration"); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 104: + _r$8 = check[0].indexedElts(e$6.Elts, utyp$1.elem, utyp$1.len); /* */ $s = 106; case 106: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + n = _r$8; + /* */ if ((x$3 = utyp$1.len, (x$3.$high < 0 || (x$3.$high === 0 && x$3.$low < 0)))) { $s = 107; continue; } + /* */ $s = 108; continue; + /* if ((x$3 = utyp$1.len, (x$3.$high < 0 || (x$3.$high === 0 && x$3.$low < 0)))) { */ case 107: + utyp$1.len = n; + /* */ if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { $s = 109; continue; } + /* */ $s = 110; continue; + /* if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { */ case 109: + $r = check[0].recordTypeAndValue(e$6.Type, 3, utyp$1, $ifaceNil); /* */ $s = 111; case 111: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 110: + /* } */ case 108: + $s = 62; continue; + /* } else if ($assertType(_ref$1, ptrType$25, true)[1]) { */ case 59: + utyp$2 = _ref$1.$val; + /* */ if ($interfaceIsEqual(utyp$2.elem, $ifaceNil)) { $s = 112; continue; } + /* */ $s = 113; continue; + /* if ($interfaceIsEqual(utyp$2.elem, $ifaceNil)) { */ case 112: + $r = check[0].error(e$6, 12, "illegal cycle in type declaration"); /* */ $s = 114; case 114: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 113: + _r$9 = check[0].indexedElts(e$6.Elts, utyp$2.elem, new $Int64(-1, 4294967295)); /* */ $s = 115; case 115: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + $s = 62; continue; + /* } else if ($assertType(_ref$1, ptrType$28, true)[1]) { */ case 60: + utyp$3 = _ref$1.$val; + /* */ if ($interfaceIsEqual(utyp$3.key, $ifaceNil) || $interfaceIsEqual(utyp$3.elem, $ifaceNil)) { $s = 116; continue; } + /* */ $s = 117; continue; + /* if ($interfaceIsEqual(utyp$3.key, $ifaceNil) || $interfaceIsEqual(utyp$3.elem, $ifaceNil)) { */ case 116: + $r = check[0].error(e$6, 12, "illegal cycle in type declaration"); /* */ $s = 118; case 118: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 117: + _r$10 = isNonTypeParamInterface(utyp$3.key); /* */ $s = 119; case 119: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + keyIsInterface = _r$10; + visited$1 = (x$4 = e$6.Elts.$length, ((x$4 < 0 || x$4 > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref$4 = e$6.Elts; + _i$2 = 0; + /* while (true) { */ case 120: + /* if (!(_i$2 < _ref$4.$length)) { break; } */ if(!(_i$2 < _ref$4.$length)) { $s = 121; continue; } + e$21 = ((_i$2 < 0 || _i$2 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$2]); + _tuple$8 = $assertType(e$21, ptrType$97, true); + kv$2 = _tuple$8[0]; + /* */ if (kv$2 === ptrType$97.nil) { $s = 122; continue; } + /* */ $s = 123; continue; + /* if (kv$2 === ptrType$97.nil) { */ case 122: + $r = check[0].error(e$21, 61, "missing key in map literal"); /* */ $s = 124; case 124: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + /* continue; */ $s = 120; continue; + /* } */ case 123: + $r = check[0].exprWithHint(x[0], kv$2.Key, utyp$3.key); /* */ $s = 125; case 125: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].assignment(x[0], utyp$3.key, "map literal"); /* */ $s = 126; case 126: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + _i$2++; + /* continue; */ $s = 120; continue; + } + /* */ if (x[0].mode === 4) { $s = 127; continue; } + /* */ $s = 128; continue; + /* if (x[0].mode === 4) { */ case 127: + duplicate = false; + _r$11 = keyVal(x[0].val); /* */ $s = 129; case 129: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + xkey = _r$11; + /* */ if (keyIsInterface) { $s = 130; continue; } + /* */ $s = 131; continue; + /* if (keyIsInterface) { */ case 130: + _ref$5 = (_entry = $mapIndex(visited$1,$emptyInterface.keyFor(xkey)), _entry !== undefined ? _entry.v : sliceType$3.nil); + _i$3 = 0; + /* while (true) { */ case 133: + /* if (!(_i$3 < _ref$5.$length)) { break; } */ if(!(_i$3 < _ref$5.$length)) { $s = 134; continue; } + vtyp = ((_i$3 < 0 || _i$3 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$3]); + _r$12 = Identical(vtyp, x[0].typ); /* */ $s = 137; case 137: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* */ if (_r$12) { $s = 135; continue; } + /* */ $s = 136; continue; + /* if (_r$12) { */ case 135: + duplicate = true; + /* break; */ $s = 134; continue; + /* } */ case 136: + _i$3++; + $s = 133; continue; + case 134: + _key = xkey; (visited$1 || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: $append((_entry$1 = $mapIndex(visited$1,$emptyInterface.keyFor(xkey)), _entry$1 !== undefined ? _entry$1.v : sliceType$3.nil), x[0].typ) }); + $s = 132; continue; + /* } else { */ case 131: + _tuple$9 = (_entry$2 = $mapIndex(visited$1,$emptyInterface.keyFor(xkey)), _entry$2 !== undefined ? [_entry$2.v, true] : [sliceType$3.nil, false]); + duplicate = _tuple$9[1]; + _key$1 = xkey; (visited$1 || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key$1), { k: _key$1, v: sliceType$3.nil }); + /* } */ case 132: + /* */ if (duplicate) { $s = 138; continue; } + /* */ $s = 139; continue; + /* if (duplicate) { */ case 138: + $r = check[0].errorf(x[0], 60, "duplicate key %s in map literal", new sliceType$5([x[0].val])); /* */ $s = 140; case 140: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + /* continue; */ $s = 120; continue; + /* } */ case 139: + /* } */ case 128: + $r = check[0].exprWithHint(x[0], kv$2.Value, utyp$3.elem); /* */ $s = 141; case 141: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].assignment(x[0], utyp$3.elem, "map literal"); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 120; continue; + case 121: + $s = 62; continue; + /* } else { */ case 61: + utyp$4 = _ref$1; + _ref$6 = e$6.Elts; + _i$4 = 0; + /* while (true) { */ case 143: + /* if (!(_i$4 < _ref$6.$length)) { break; } */ if(!(_i$4 < _ref$6.$length)) { $s = 144; continue; } + e$22 = ((_i$4 < 0 || _i$4 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$4]); + _tuple$10 = $assertType(e$22, ptrType$97, true); + kv$3 = _tuple$10[0]; + if (!(kv$3 === ptrType$97.nil)) { + e$22 = kv$3.Value; + } + $r = check[0].use(new sliceType$11([e$22])); /* */ $s = 145; case 145: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$4++; + $s = 143; continue; + case 144: + /* */ if (!($interfaceIsEqual(utyp$4, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 146; continue; } + /* */ $s = 147; continue; + /* if (!($interfaceIsEqual(utyp$4, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 146: + $r = check[0].errorf(e$6, 71, "invalid composite literal type %s", new sliceType$5([typ$4])); /* */ $s = 148; case 148: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 147: + /* } } */ case 62: + x[0].mode = 7; + x[0].typ = typ$4; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 7: + e$7 = _ref.$val; + _r$13 = check[0].rawExpr(x[0], e$7.X, $ifaceNil, false); /* */ $s = 149; case 149: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + kind = _r$13; + x[0].expr = e$7; + $s = -1; return kind; + /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 8: + e$8 = _ref.$val; + $r = check[0].selector(x[0], e$8, ptrType$9.nil); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { */ case 9: + e$9 = _ref; + ix = typeparams.UnpackIndexExpr(e$9); + _r$14 = check[0].indexExpr(x[0], ix); /* */ $s = 153; case 153: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + /* */ if (_r$14) { $s = 151; continue; } + /* */ $s = 152; continue; + /* if (_r$14) { */ case 151: + $r = check[0].funcInst(x[0], ix); /* */ $s = 154; case 154: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 152: + /* */ if (x[0].mode === 0) { $s = 155; continue; } + /* */ $s = 156; continue; + /* if (x[0].mode === 0) { */ case 155: + /* goto Error */ $s = 20; continue; + /* } */ case 156: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$100, true)[1]) { */ case 10: + e$10 = _ref.$val; + $r = check[0].sliceExpr(x[0], e$10); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x[0].mode === 0) { $s = 158; continue; } + /* */ $s = 159; continue; + /* if (x[0].mode === 0) { */ case 158: + /* goto Error */ $s = 20; continue; + /* } */ case 159: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$81, true)[1]) { */ case 11: + e$11 = _ref.$val; + $r = check[0].expr(x[0], e$11.X); /* */ $s = 160; case 160: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x[0].mode === 0) { $s = 161; continue; } + /* */ $s = 162; continue; + /* if (x[0].mode === 0) { */ case 161: + /* goto Error */ $s = 20; continue; + /* } */ case 162: + /* */ if (isTypeParam(x[0].typ)) { $s = 163; continue; } + /* */ $s = 164; continue; + /* if (isTypeParam(x[0].typ)) { */ case 163: + $r = check[0].invalidOp(x[0], 94, "cannot use type assertion on type parameter value %s", new sliceType$5([x[0]])); /* */ $s = 165; case 165: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 164: + _r$15 = under(x[0].typ); /* */ $s = 166; case 166: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _tuple$11 = $assertType(_r$15, ptrType$13, true); + ok$2 = _tuple$11[1]; + /* */ if (!ok$2) { $s = 167; continue; } + /* */ $s = 168; continue; + /* if (!ok$2) { */ case 167: + $r = check[0].invalidOp(x[0], 94, "%s is not an interface", new sliceType$5([x[0]])); /* */ $s = 169; case 169: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 168: + /* */ if ($interfaceIsEqual(e$11.Type, $ifaceNil)) { $s = 170; continue; } + /* */ $s = 171; continue; + /* if ($interfaceIsEqual(e$11.Type, $ifaceNil)) { */ case 170: + $r = check[0].error(e$11, 115, "use of .(type) outside type switch"); /* */ $s = 172; case 172: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 171: + _r$16 = check[0].varType(e$11.Type); /* */ $s = 173; case 173: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + T = _r$16; + /* */ if ($interfaceIsEqual(T, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 174; continue; } + /* */ $s = 175; continue; + /* if ($interfaceIsEqual(T, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 174: + /* goto Error */ $s = 20; continue; + /* } */ case 175: + $r = check[0].typeAssertion(e$11, x[0], T, false); /* */ $s = 176; case 176: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x[0].mode = 8; + x[0].typ = T; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$85, true)[1]) { */ case 12: + e$12 = _ref.$val; + _r$17 = check[0].callExpr(x[0], e$12); /* */ $s = 177; case 177: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $24r = _r$17; + $s = 178; case 178: return $24r; + /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 13: + e$13 = _ref.$val; + $r = check[0].exprOrType(x[0], e$13.X, false); /* */ $s = 179; case 179: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _2 = x[0].mode; + /* */ if (_2 === (0)) { $s = 181; continue; } + /* */ if (_2 === (3)) { $s = 182; continue; } + /* */ $s = 183; continue; + /* if (_2 === (0)) { */ case 181: + /* goto Error */ $s = 20; continue; + $s = 184; continue; + /* } else if (_2 === (3)) { */ case 182: + check[0].validVarType(e$13.X, x[0].typ); + x[0].typ = new Pointer.ptr(x[0].typ); + $s = 184; continue; + /* } else { */ case 183: + base[0] = $ifaceNil; + _r$18 = underIs(x[0].typ, (function(base, check, decl$1, e$1, iota, sig, x) { return function Checker·exprInternal·func2(u) { + var {_r$18, _tuple$12, _v, p, u, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple$12 = $assertType(u, ptrType$26, true); + p = _tuple$12[0]; + /* */ if (p === ptrType$26.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p === ptrType$26.nil) { */ case 1: + $r = check[0].invalidOp(x[0], 50, "cannot indirect %s", new sliceType$5([x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + if (!(!($interfaceIsEqual(base[0], $ifaceNil)))) { _v = false; $s = 6; continue s; } + _r$18 = Identical(p.base, base[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _v = !_r$18; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + $r = check[0].invalidOp(x[0], 50, "pointers of %s must have identical base types", new sliceType$5([x[0]])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 5: + base[0] = p.base; + $s = -1; return true; + /* */ } return; } var $f = {$blk: Checker·exprInternal·func2, $c: true, $r, _r$18, _tuple$12, _v, p, u, $s};return $f; + }; })(base, check, decl$1, e$1, iota, sig, x)); /* */ $s = 187; case 187: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + /* */ if (!_r$18) { $s = 185; continue; } + /* */ $s = 186; continue; + /* if (!_r$18) { */ case 185: + /* goto Error */ $s = 20; continue; + /* } */ case 186: + x[0].mode = 5; + x[0].typ = base[0]; + /* } */ case 184: + case 180: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 14: + e$14 = _ref.$val; + $r = check[0].unary(x[0], e$14); /* */ $s = 188; case 188: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x[0].mode === 0) { $s = 189; continue; } + /* */ $s = 190; continue; + /* if (x[0].mode === 0) { */ case 189: + /* goto Error */ $s = 20; continue; + /* } */ case 190: + if (e$14.Op === 36) { + x[0].expr = e$14; + $s = -1; return 2; + } + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 15: + e$15 = _ref.$val; + $r = check[0].binary(x[0], e$15, e$15.X, e$15.Y, e$15.Op, e$15.OpPos); /* */ $s = 191; case 191: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x[0].mode === 0) { $s = 192; continue; } + /* */ $s = 193; continue; + /* if (x[0].mode === 0) { */ case 192: + /* goto Error */ $s = 20; continue; + /* } */ case 193: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$97, true)[1]) { */ case 16: + e$16 = _ref.$val; + $r = check[0].invalidAST(e$16, "no key:value expected", sliceType$5.nil); /* */ $s = 194; case 194: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1]) { */ case 17: + e$17 = _ref; + x[0].mode = 3; + _r$19 = check[0].typ(e$17); /* */ $s = 195; case 195: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + x[0].typ = _r$19; + $s = 19; continue; + /* } else { */ case 18: + e$18 = _ref; + _r$20 = e$18.Pos(); /* */ $s = 196; case 196: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _r$21 = check[0].fset.Position(_r$20); /* */ $s = 197; case 197: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _arg = (x$5 = _r$21, new x$5.constructor.elem(x$5)); + _arg$1 = e$18; + _r$22 = fmt.Sprintf("%s: unknown expression type %T", new sliceType$5([_arg, _arg$1])); /* */ $s = 198; case 198: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $panic(new $String(_r$22)); + /* } */ case 19: + x[0].expr = e; + $s = -1; return 1; + /* Error: */ case 20: + x[0].mode = 0; + x[0].expr = e; + $s = -1; return 2; + /* */ } return; } var $f = {$blk: exprInternal, $c: true, $r, $24r, T, _1, _2, _arg, _arg$1, _entry, _entry$1, _entry$2, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, atyp, base, base$1, check, decl$1, duplicate, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$17, e$18, e$19, e$2, e$20, e$21, e$22, e$3, e$4, e$5, e$6, e$7, e$8, e$9, ellip, etyp, etyp$1, fields, fld, fld$1, hint, i, i$1, iota, ix, key, keyIsInterface, kind, kv, kv$1, kv$2, kv$3, n, ok, ok$1, ok$2, sig, typ$4, utyp, utyp$1, utyp$2, utyp$3, utyp$4, visited, visited$1, vtyp, x, x$1, x$2, x$3, x$4, x$5, xkey, $s};return $f; + }; + keyVal = function keyVal$1(x) { + var {$24r, $24r$1, _1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, f, i, i$1, ok, ok$1, r, v, v$1, v$2, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = x.Kind(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _1 = _r$1; + /* */ if (_1 === (5)) { $s = 3; continue; } + /* */ if (_1 === (4)) { $s = 4; continue; } + /* */ if (_1 === (3)) { $s = 5; continue; } + /* */ if (_1 === (2)) { $s = 6; continue; } + /* */ if (_1 === (1)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === (5)) { */ case 3: + _r$2 = constant.ToFloat(x); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + f = _r$2; + _r$3 = f.Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!((_r$3 === 4))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((_r$3 === 4))) { */ case 10: + _r$4 = constant.Real(x); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = constant.Float64Val(_r$4); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple = _r$5; + r = _tuple[0]; + _r$6 = constant.Imag(x); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = constant.Float64Val(_r$6); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$1 = _r$7; + i = _tuple$1[0]; + $s = -1; return new $Complex128(r, i); + /* } */ case 11: + x = f; + _r$8 = constant.ToInt(x); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + i$1 = _r$8; + _r$9 = i$1.Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (!((_r$9 === 3))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!((_r$9 === 3))) { */ case 18: + _r$10 = constant.Float64Val(x); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$2 = _r$10; + v = _tuple$2[0]; + $s = -1; return new $Float64(v); + /* } */ case 19: + x = i$1; + _r$11 = constant.Int64Val(x); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$3 = _r$11; + v$1 = _tuple$3[0]; + ok = _tuple$3[1]; + if (ok) { + $s = -1; return v$1; + } + _r$12 = constant.Uint64Val(x); /* */ $s = 23; case 23: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple$4 = _r$12; + v$2 = _tuple$4[0]; + ok$1 = _tuple$4[1]; + if (ok$1) { + $s = -1; return v$2; + } + $s = 8; continue; + /* } else if (_1 === (4)) { */ case 4: + _r$13 = constant.ToInt(x); /* */ $s = 24; case 24: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + i$1 = _r$13; + _r$14 = i$1.Kind(); /* */ $s = 27; case 27: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + /* */ if (!((_r$14 === 3))) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!((_r$14 === 3))) { */ case 25: + _r$15 = constant.Float64Val(x); /* */ $s = 28; case 28: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _tuple$5 = _r$15; + v = _tuple$5[0]; + $s = -1; return new $Float64(v); + /* } */ case 26: + x = i$1; + _r$16 = constant.Int64Val(x); /* */ $s = 29; case 29: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _tuple$6 = _r$16; + v$1 = _tuple$6[0]; + ok = _tuple$6[1]; + if (ok) { + $s = -1; return v$1; + } + _r$17 = constant.Uint64Val(x); /* */ $s = 30; case 30: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _tuple$7 = _r$17; + v$2 = _tuple$7[0]; + ok$1 = _tuple$7[1]; + if (ok$1) { + $s = -1; return v$2; + } + $s = 8; continue; + /* } else if (_1 === (3)) { */ case 5: + _r$18 = constant.Int64Val(x); /* */ $s = 31; case 31: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _tuple$8 = _r$18; + v$1 = _tuple$8[0]; + ok = _tuple$8[1]; + if (ok) { + $s = -1; return v$1; + } + _r$19 = constant.Uint64Val(x); /* */ $s = 32; case 32: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _tuple$9 = _r$19; + v$2 = _tuple$9[0]; + ok$1 = _tuple$9[1]; + if (ok$1) { + $s = -1; return v$2; + } + $s = 8; continue; + /* } else if (_1 === (2)) { */ case 6: + _r$20 = constant.StringVal(x); /* */ $s = 33; case 33: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + $24r = new $String(_r$20); + $s = 34; case 34: return $24r; + /* } else if (_1 === (1)) { */ case 7: + _r$21 = constant.BoolVal(x); /* */ $s = 35; case 35: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + $24r$1 = new $Bool(_r$21); + $s = 36; case 36: return $24r$1; + /* } */ case 8: + case 1: + $s = -1; return x; + /* */ } return; } var $f = {$blk: keyVal$1, $c: true, $r, $24r, $24r$1, _1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, f, i, i$1, ok, ok$1, r, v, v$1, v$2, x, $s};return $f; + }; + $ptrType(Checker).prototype.typeAssertion = function typeAssertion(e, x, T, typeSwitch) { + var {T, _r$1, _r$2, _r$3, _tuple, alt, cause, check, e, method, typeSwitch, x, $s, $r, $c} = $restore(this, {e, x, T, typeSwitch}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = under(x.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = check.assertableTo($assertType(_r$1, ptrType$13), T); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + method = _tuple[0]; + alt = _tuple[1]; + if (method === ptrType$2.nil) { + $s = -1; return; + } + _r$3 = check.missingMethodReason(T, x.typ, method, alt); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + cause = _r$3; + /* */ if (typeSwitch) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (typeSwitch) { */ case 4: + $r = check.errorf(e, 95, "impossible type switch case: %s\n\t%s cannot have dynamic type %s %s", new sliceType$5([e, x, T, new $String(cause)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 5: + $r = check.errorf(e, 95, "impossible type assertion: %s\n\t%s does not implement %s %s", new sliceType$5([e, T, x.typ, new $String(cause)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: typeAssertion, $c: true, $r, T, _r$1, _r$2, _r$3, _tuple, alt, cause, check, e, method, typeSwitch, x, $s};return $f; + }; + $ptrType(Checker).prototype.expr = function expr(x, e) { + var {_r$1, check, e, x, $s, $r, $c} = $restore(this, {x, e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.rawExpr(x, e, $ifaceNil, false); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $r = check.exclude(x, 14); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.singleValue(x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: expr, $c: true, $r, _r$1, check, e, x, $s};return $f; + }; + $ptrType(Checker).prototype.multiExpr = function multiExpr(x, e) { + var {_r$1, check, e, x, $s, $r, $c} = $restore(this, {x, e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.rawExpr(x, e, $ifaceNil, false); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $r = check.exclude(x, 14); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: multiExpr, $c: true, $r, _r$1, check, e, x, $s};return $f; + }; + $ptrType(Checker).prototype.exprWithHint = function exprWithHint(x, e, hint) { + var {_r$1, check, e, hint, x, $s, $r, $c} = $restore(this, {x, e, hint}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!($interfaceIsEqual(hint, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = check.rawExpr(x, e, hint, false); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $r = check.exclude(x, 14); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.singleValue(x); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: exprWithHint, $c: true, $r, _r$1, check, e, hint, x, $s};return $f; + }; + $ptrType(Checker).prototype.exprOrType = function exprOrType(x, e, allowGeneric) { + var {_r$1, allowGeneric, check, e, x, $s, $r, $c} = $restore(this, {x, e, allowGeneric}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.rawExpr(x, e, $ifaceNil, allowGeneric); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $r = check.exclude(x, 2); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.singleValue(x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: exprOrType, $c: true, $r, _r$1, allowGeneric, check, e, x, $s};return $f; + }; + $ptrType(Checker).prototype.exclude = function exclude(x, modeset) { + var {_1, check, code, modeset, msg, x, y, $s, $r, $c} = $restore(this, {x, modeset}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + /* */ if (!((((modeset & (((y = x.mode, y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((modeset & (((y = x.mode, y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { */ case 1: + msg = ""; + code = 0; + _1 = x.mode; + if (_1 === (1)) { + if (!((((modeset & 8) >>> 0) === 0))) { + msg = "%s used as value"; + } else { + msg = "%s used as value or type"; + } + code = 41; + } else if (_1 === (2)) { + msg = "%s must be called"; + code = 82; + } else if (_1 === (3)) { + msg = "%s is not an expression"; + code = 42; + } else { + unreachable(); + } + $r = check.errorf(x, code, msg, new sliceType$5([x])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: exclude, $c: true, $r, _1, check, code, modeset, msg, x, y, $s};return $f; + }; + $ptrType(Checker).prototype.singleValue = function singleValue(x) { + var {_tuple, check, ok, t, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + /* */ if (x.mode === 7) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.mode === 7) { */ case 1: + _tuple = $assertType(x.typ, ptrType$15, true); + t = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ok) { */ case 3: + $r = assert(!((t.Len() === 1))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (false) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (false) { */ case 6: + $r = check.errorf(x, 41, "multiple-value %s in single-value context", new sliceType$5([x])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 8; continue; + /* } else { */ case 7: + $r = check.errorf(x, 41, "%d-valued %s where single value is expected", new sliceType$5([new $Int(t.Len()), x])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + x.mode = 0; + /* } */ case 4: + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: singleValue, $c: true, $r, _tuple, check, ok, t, x, $s};return $f; + }; + assert = function assert$1(p) { + var {_r$1, _tuple, file, line, msg, ok, p, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (!p) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!p) { */ case 1: + msg = "assertion failed"; + _tuple = runtime.Caller(1); + file = _tuple[1]; + line = _tuple[2]; + ok = _tuple[3]; + /* */ if (ok) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ok) { */ case 3: + _r$1 = fmt.Sprintf("%s:%d: %s", new sliceType$5([new $String(file), new $Int(line), new $String(msg)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + msg = _r$1; + /* } */ case 4: + $panic(new $String(msg)); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: assert$1, $c: true, $r, _r$1, _tuple, file, line, msg, ok, p, $s};return $f; + }; + unreachable = function unreachable$1() { + $panic(new $String("unreachable")); + }; + $ptrType(error_).prototype.empty = function empty$1() { + var err; + err = this; + return err.desc === sliceType$31.nil; + }; + $ptrType(error_).prototype.pos = function pos() { + var {$24r, _r$1, err, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + err = this; + if (err.empty()) { + $s = -1; return 0; + } + _r$1 = (x = err.desc, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).posn.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: pos, $c: true, $r, $24r, _r$1, err, x, $s};return $f; + }; + $ptrType(error_).prototype.msg = function msg(fset, qf) { + var {_arg, _arg$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, buf, err, fset, i, p, qf, x, x$1, $s, $r, $c} = $restore(this, {fset, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + err = this; + if (err.empty()) { + $s = -1; return "no error"; + } + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + _ref = err.desc; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + p = (x = err.desc, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + /* */ if (i > 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i > 0) { */ case 3: + _r$1 = fmt.Fprint(buf[0], new sliceType$5([new $String("\n\t")])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = p.posn.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = new token.Pos(_r$2).IsValid(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r$3) { */ case 6: + _arg = buf[0]; + _r$4 = p.posn.Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = fset.Position(_r$4); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = (x$1 = _r$5, new x$1.constructor.elem(x$1)); + _r$6 = fmt.Fprintf(_arg, "%s: ", new sliceType$5([_arg$1])); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + /* } */ case 7: + /* } */ case 4: + _r$7 = sprintf(fset, qf, false, p.format, p.args); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = buf[0].WriteString(_r$7); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + _i++; + $s = 1; continue; + case 2: + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: msg, $c: true, $r, _arg, _arg$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, buf, err, fset, i, p, qf, x, x$1, $s};return $f; + }; + $ptrType(error_).prototype.String = function String$31() { + var {$24r, _arg, _arg$1, _r$1, _r$2, _r$3, err, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + err = this; + if (err.empty()) { + $s = -1; return "no error"; + } + _r$1 = err.pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = new token.Pos(_r$1); + _r$2 = err.msg(ptrType$24.nil, $throwNilPointerError); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$2); + _r$3 = fmt.Sprintf("%d: %s", new sliceType$5([_arg, _arg$1])); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: String$31, $c: true, $r, $24r, _arg, _arg$1, _r$1, _r$2, _r$3, err, $s};return $f; + }; + $ptrType(error_).prototype.errorf = function errorf(at$1, format, args) { + var args, at$1, err, format; + err = this; + err.desc = $append(err.desc, new errorDesc.ptr(new atPos(((at$1 >> 0))), format, args)); + }; + $ptrType(Checker).prototype.qualifier = function qualifier(pkg) { + var _entry, _entry$1, check, pkg; + check = this; + if (!(pkg === check.pkg)) { + if (check.pkgPathMap === false) { + check.pkgPathMap = new $global.Map(); + check.seenPkgMap = new $global.Map(); + check.markImports(check.pkg); + } + if (((_entry = $mapIndex(check.pkgPathMap,$String.keyFor(pkg.name)), _entry !== undefined ? _entry.v : false) ? (_entry$1 = $mapIndex(check.pkgPathMap,$String.keyFor(pkg.name)), _entry$1 !== undefined ? _entry$1.v : false).size : 0) > 1) { + return strconv.Quote(pkg.path); + } + return pkg.name; + } + return ""; + }; + $ptrType(Checker).prototype.markImports = function markImports(pkg) { + var _entry, _entry$1, _i, _key, _key$1, _key$2, _ref, _tuple, check, forName, imp, ok, pkg; + check = this; + if ((_entry = $mapIndex(check.seenPkgMap,ptrType$1.keyFor(pkg)), _entry !== undefined ? _entry.v : false)) { + return; + } + _key = pkg; (check.seenPkgMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: true }); + _tuple = (_entry$1 = $mapIndex(check.pkgPathMap,$String.keyFor(pkg.name)), _entry$1 !== undefined ? [_entry$1.v, true] : [false, false]); + forName = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + forName = new $global.Map(); + _key$1 = pkg.name; (check.pkgPathMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: forName }); + } + _key$2 = pkg.path; (forName || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: true }); + _ref = pkg.imports; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + imp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + check.markImports(imp); + _i++; + } + }; + $ptrType(Checker).prototype.sprintf = function sprintf$1(format, args) { + var {$24r, _r$1, args, check, format, fset, qf, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + fset = ptrType$24.nil; + qf = $throwNilPointerError; + if (!(check === ptrType$6.nil)) { + fset = check.fset; + qf = $methodVal(check, "qualifier"); + } + _r$1 = sprintf(fset, qf, false, format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: sprintf$1, $c: true, $r, $24r, _r$1, args, check, format, fset, qf, $s};return $f; + }; + sprintf = function sprintf$2(fset, qf, debug, format, args) { + var {$24r, _i, _i$1, _i$2, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, a, a$1, a$2, a$3, a$4, a$5, a$6, a$7, a$8, a$9, arg, args, buf, buf$1, buf$2, debug, format, fset, i, i$1, i$2, qf, x, x$1, $s, $r, $c} = $restore(this, {fset, qf, debug, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = args; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + buf = [buf]; + i = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = arg; + /* */ if (_ref$1 === $ifaceNil) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, operand, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$61, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref$1, token.Pos, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref$1, ast.Expr, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref$1, sliceType$11, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref$1, Object, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref$1, Type, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref$1, sliceType$3, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref$1, sliceType$9, true)[1]) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_ref$1 === $ifaceNil) { */ case 3: + a = _ref$1; + arg = new $String(""); + $s = 13; continue; + /* } else if ($assertType(_ref$1, operand, true)[1]) { */ case 4: + a$1 = $clone(_ref$1.$val, operand); + $panic(new $String("got operand instead of *operand")); + $s = 13; continue; + /* } else if ($assertType(_ref$1, ptrType$61, true)[1]) { */ case 5: + a$2 = _ref$1.$val; + _r$1 = operandString(a$2, qf); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + arg = new $String(_r$1); + $s = 13; continue; + /* } else if ($assertType(_ref$1, token.Pos, true)[1]) { */ case 6: + a$3 = _ref$1.$val; + /* */ if (!(fset === ptrType$24.nil)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!(fset === ptrType$24.nil)) { */ case 15: + _r$2 = fset.Position(a$3); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = $clone(_r$2, token.Position).String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + arg = new $String(_r$3); + /* } */ case 16: + $s = 13; continue; + /* } else if ($assertType(_ref$1, ast.Expr, true)[1]) { */ case 7: + a$4 = _ref$1; + _r$4 = ExprString(a$4); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + arg = new $String(_r$4); + $s = 13; continue; + /* } else if ($assertType(_ref$1, sliceType$11, true)[1]) { */ case 8: + a$5 = _ref$1.$val; + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + buf[0].WriteByte(91); + $r = writeExprList(buf[0], a$5); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf[0].WriteByte(93); + arg = new $String(buf[0].String()); + $s = 13; continue; + /* } else if ($assertType(_ref$1, Object, true)[1]) { */ case 9: + a$6 = _ref$1; + _r$5 = ObjectString(a$6, qf); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + arg = new $String(_r$5); + $s = 13; continue; + /* } else if ($assertType(_ref$1, Type, true)[1]) { */ case 10: + a$7 = _ref$1; + _r$6 = typeString(a$7, qf, debug); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + arg = new $String(_r$6); + $s = 13; continue; + /* } else if ($assertType(_ref$1, sliceType$3, true)[1]) { */ case 11: + a$8 = _ref$1.$val; + buf$1 = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + buf$1.WriteByte(91); + _ref$2 = a$8; + _i$1 = 0; + /* while (true) { */ case 23: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 24; continue; } + i$1 = _i$1; + x = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + if (i$1 > 0) { + buf$1.WriteString(", "); + } + _r$7 = typeString(x, qf, debug); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = buf$1.WriteString(_r$7); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + _i$1++; + $s = 23; continue; + case 24: + buf$1.WriteByte(93); + arg = new $String(buf$1.String()); + $s = 13; continue; + /* } else if ($assertType(_ref$1, sliceType$9, true)[1]) { */ case 12: + a$9 = _ref$1.$val; + buf$2 = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + buf$2.WriteByte(91); + _ref$3 = a$9; + _i$2 = 0; + /* while (true) { */ case 27: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 28; continue; } + i$2 = _i$2; + x$1 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + if (i$2 > 0) { + buf$2.WriteString(", "); + } + _r$9 = typeString(x$1, qf, debug); /* */ $s = 29; case 29: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = buf$2.WriteString(_r$9); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + _i$2++; + $s = 27; continue; + case 28: + buf$2.WriteByte(93); + arg = new $String(buf$2.String()); + /* } */ case 13: + ((i < 0 || i >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i] = arg); + _i++; + $s = 1; continue; + case 2: + _r$11 = fmt.Sprintf(format, args); /* */ $s = 31; case 31: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $24r = _r$11; + $s = 32; case 32: return $24r; + /* */ } return; } var $f = {$blk: sprintf$2, $c: true, $r, $24r, _i, _i$1, _i$2, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, a, a$1, a$2, a$3, a$4, a$5, a$6, a$7, a$8, a$9, arg, args, buf, buf$1, buf$2, debug, format, fset, i, i$1, i$2, qf, x, x$1, $s};return $f; + }; + $ptrType(Checker).prototype.trace = function trace(pos$1, format, args) { + var {_arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, args, check, format, pos$1, x, $s, $r, $c} = $restore(this, {pos$1, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.fset.Position(pos$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = (x = _r$1, new x.constructor.elem(x)); + _arg$1 = new $String(strings.Repeat(". ", check.indent)); + _r$2 = sprintf(check.fset, $methodVal(check, "qualifier"), true, format, args); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$2 = new $String(_r$2); + _r$3 = fmt.Printf("%s:\t%s%s\n", new sliceType$5([_arg, _arg$1, _arg$2])); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $s = -1; return; + /* */ } return; } var $f = {$blk: trace, $c: true, $r, _arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, args, check, format, pos$1, x, $s};return $f; + }; + $ptrType(Checker).prototype.dump = function dump(format, args) { + var {_r$1, _r$2, args, check, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = sprintf(check.fset, $methodVal(check, "qualifier"), true, format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = fmt.Println(new sliceType$5([new $String(_r$1)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return; + /* */ } return; } var $f = {$blk: dump, $c: true, $r, _r$1, _r$2, args, check, format, $s};return $f; + }; + $ptrType(Checker).prototype.report = function report(errp) { + var {_r$1, _r$2, _r$3, check, e, err, errp, f, isInvalidErr, msg$1, pos$1, span, span$1, x, x$1, $s, $r, $c} = $restore(this, {errp}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + if (errp.empty()) { + $panic(new $String("empty error details")); + } + _r$1 = spanOf((x = errp.desc, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).posn); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + span = $clone(_r$1, posSpan); + _r$2 = errp.msg(check.fset, $methodVal(check, "qualifier")); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + e = new Error.ptr(check.fset, span.pos, _r$2, errp.soft, errp.code, span.start, span.end); + isInvalidErr = strings.Index(e.Msg, "invalid operand") > 0 || strings.Index(e.Msg, "invalid type") > 0; + if (!($interfaceIsEqual(check.firstErr, $ifaceNil)) && isInvalidErr) { + $s = -1; return; + } + e.Msg = stripAnnotations(e.Msg); + /* */ if (!($interfaceIsEqual(check.environment.errpos, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(check.environment.errpos, $ifaceNil))) { */ case 3: + _r$3 = spanOf(check.environment.errpos); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + span$1 = $clone(_r$3, posSpan); + e.Pos = span$1.pos; + e.go116start = span$1.start; + e.go116end = span$1.end; + /* } */ case 4: + err = $clone(e, Error); + if ($interfaceIsEqual(check.firstErr, $ifaceNil)) { + check.firstErr = new err.constructor.elem(err); + } + /* */ if (false) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (false) { */ case 6: + pos$1 = e.Pos; + msg$1 = e.Msg; + $r = check.trace(pos$1, "ERROR: %s", new sliceType$5([new $String(msg$1)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + f = check.conf.Error; + if (f === $throwNilPointerError) { + $panic((x$1 = new bailout.ptr(), new x$1.constructor.elem(x$1))); + } + $r = f(new err.constructor.elem(err)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: report, $c: true, $r, _r$1, _r$2, _r$3, check, e, err, errp, f, isInvalidErr, msg$1, pos$1, span, span$1, x, x$1, $s};return $f; + }; + newErrorf = function newErrorf$1(at$1, code, format, args) { + var args, at$1, code, format; + return new error_.ptr(new sliceType$31([$clone(new errorDesc.ptr(at$1, format, args), errorDesc)]), code, false); + }; + $ptrType(Checker).prototype.error = function error$1(at$1, code, msg$1) { + var {at$1, check, code, msg$1, $s, $r, $c} = $restore(this, {at$1, code, msg$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = check.report(newErrorf(at$1, code, msg$1, sliceType$5.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: error$1, $c: true, $r, at$1, check, code, msg$1, $s};return $f; + }; + $ptrType(Checker).prototype.errorf = function errorf$1(at$1, code, format, args) { + var {args, at$1, check, code, format, $s, $r, $c} = $restore(this, {at$1, code, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = check.report(newErrorf(at$1, code, format, args)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: errorf$1, $c: true, $r, args, at$1, check, code, format, $s};return $f; + }; + $ptrType(Checker).prototype.softErrorf = function softErrorf(at$1, code, format, args) { + var {args, at$1, check, code, err, format, $s, $r, $c} = $restore(this, {at$1, code, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + err = newErrorf(at$1, code, format, args); + err.soft = true; + $r = check.report(err); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: softErrorf, $c: true, $r, args, at$1, check, code, err, format, $s};return $f; + }; + $ptrType(Checker).prototype.versionErrorf = function versionErrorf(at$1, code, goVersion, format, args) { + var {_r$1, args, at$1, check, code, err, format, goVersion, msg$1, $s, $r, $c} = $restore(this, {at$1, code, goVersion, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.sprintf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + msg$1 = _r$1; + err = ptrType$104.nil; + if (false) { + err = newErrorf(at$1, code, "%s requires %s or later (-lang was set to %s; check go.mod)", new sliceType$5([new $String(msg$1), new $String(goVersion), new $String(check.conf.GoVersion)])); + } else { + err = newErrorf(at$1, code, "%s requires %s or later", new sliceType$5([new $String(msg$1), new $String(goVersion)])); + } + $r = check.report(err); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: versionErrorf, $c: true, $r, _r$1, args, at$1, check, code, err, format, goVersion, msg$1, $s};return $f; + }; + $ptrType(Checker).prototype.invalidAST = function invalidAST(at$1, format, args) { + var {args, at$1, check, format, $s, $r, $c} = $restore(this, {at$1, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = check.errorf(at$1, 0, "invalid AST: " + format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: invalidAST, $c: true, $r, args, at$1, check, format, $s};return $f; + }; + $ptrType(Checker).prototype.invalidArg = function invalidArg(at$1, code, format, args) { + var {args, at$1, check, code, format, $s, $r, $c} = $restore(this, {at$1, code, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = check.errorf(at$1, code, "invalid argument: " + format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: invalidArg, $c: true, $r, args, at$1, check, code, format, $s};return $f; + }; + $ptrType(Checker).prototype.invalidOp = function invalidOp(at$1, code, format, args) { + var {args, at$1, check, code, format, $s, $r, $c} = $restore(this, {at$1, code, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = check.errorf(at$1, code, "invalid operation: " + format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: invalidOp, $c: true, $r, args, at$1, check, code, format, $s};return $f; + }; + $ptrType(posSpan).prototype.Pos = function Pos$4() { + var e; + e = this; + return e.pos; + }; + posSpan.prototype.Pos = function(...$args) { return this.$val.Pos(...$args); }; + inNode = function inNode$1(node, pos$1) { + var {_r$1, _r$2, _tmp, _tmp$1, end, node, pos$1, start, $s, $r, $c} = $restore(this, {node, pos$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = node.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tmp = _r$1; + _r$2 = node.End(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tmp$1 = _r$2; + start = _tmp; + end = _tmp$1; + /* */ if (false) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (false) { */ case 3: + $r = assert(start <= pos$1 && pos$1 < end); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + $s = -1; return new posSpan.ptr(start, pos$1, end); + /* */ } return; } var $f = {$blk: inNode$1, $c: true, $r, _r$1, _r$2, _tmp, _tmp$1, end, node, pos$1, start, $s};return $f; + }; + atPos.prototype.Pos = function Pos$5() { + var s; + s = this.$val; + return ((s >> 0)); + }; + $ptrType(atPos).prototype.Pos = function(...$args) { return new atPos(this.$get()).Pos(...$args); }; + spanOf = function spanOf$1(at$1) { + var {$24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, at$1, pos$1, pos$2, pos$3, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {at$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = at$1; + /* */ if (_ref === $ifaceNil) { $s = 1; continue; } + /* */ if ($assertType(_ref, posSpan, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ast.Node, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$61, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_ref === $ifaceNil) { */ case 1: + x = _ref; + $panic(new $String("nil positioner")); + $s = 6; continue; + /* } else if ($assertType(_ref, posSpan, true)[1]) { */ case 2: + x$1 = $clone(_ref.$val, posSpan); + $s = -1; return x$1; + /* } else if ($assertType(_ref, ast.Node, true)[1]) { */ case 3: + x$2 = _ref; + _r$1 = x$2.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos$1 = _r$1; + _r$2 = x$2.End(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = new posSpan.ptr(pos$1, pos$1, _r$2); + $s = 9; case 9: return $24r; + /* } else if ($assertType(_ref, ptrType$61, true)[1]) { */ case 4: + x$3 = _ref.$val; + /* */ if (!($interfaceIsEqual(x$3.expr, $ifaceNil))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!($interfaceIsEqual(x$3.expr, $ifaceNil))) { */ case 10: + _r$3 = x$3.Pos(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + pos$2 = _r$3; + _r$4 = x$3.expr.End(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$1 = new posSpan.ptr(pos$2, pos$2, _r$4); + $s = 14; case 14: return $24r$1; + /* } */ case 11: + $s = -1; return new posSpan.ptr(0, 0, 0); + /* } else { */ case 5: + x$4 = _ref; + _r$5 = at$1.Pos(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + pos$3 = _r$5; + $s = -1; return new posSpan.ptr(pos$3, pos$3, pos$3); + /* } */ case 6: + $s = -1; return new posSpan.ptr(0, 0, 0); + /* */ } return; } var $f = {$blk: spanOf$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, at$1, pos$1, pos$2, pos$3, x, x$1, x$2, x$3, x$4, $s};return $f; + }; + stripAnnotations = function stripAnnotations$1(s) { + var _i, _ref, _rune, b, r, s; + b = new strings.Builder.ptr(ptrType$91.nil, sliceType$14.nil); + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + r = _rune[0]; + if (r < 8320 || 8330 <= r) { + b.WriteRune(r); + } + _i += _rune[1]; + } + if (b.Len() < s.length) { + return b.String(); + } + return s; + }; + $ptrType(Checker).prototype.reportAltDecl = function reportAltDecl(obj) { + var {_arg, _arg$1, _r$1, _r$2, check, obj, pos$1, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = obj.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos$1 = _r$1; + /* */ if (new token.Pos(pos$1).IsValid()) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (new token.Pos(pos$1).IsValid()) { */ case 2: + _arg = obj; + _r$2 = obj.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$2); + $r = check.errorf(_arg, 10, "\tother declaration of %s", new sliceType$5([_arg$1])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: reportAltDecl, $c: true, $r, _arg, _arg$1, _r$1, _r$2, check, obj, pos$1, $s};return $f; + }; + $ptrType(Checker).prototype.declare = function declare(scope, id, obj, pos$1) { + var {_arg, _arg$1, _r$1, _r$2, _r$3, alt, check, id, obj, pos$1, scope, $s, $r, $c} = $restore(this, {scope, id, obj, pos$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!(_r$1 === "_")) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(_r$1 === "_")) { */ case 1: + _r$2 = scope.Insert(obj); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + alt = _r$2; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 5: + _arg = obj; + _r$3 = obj.Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$3); + $r = check.errorf(_arg, 10, "%s redeclared in this block", new sliceType$5([_arg$1])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.reportAltDecl(alt); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 6: + $r = obj.setScopePos(pos$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + /* */ if (!(id === ptrType$30.nil)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!(id === ptrType$30.nil)) { */ case 11: + $r = check.recordDef(id, obj); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + $s = -1; return; + /* */ } return; } var $f = {$blk: declare, $c: true, $r, _arg, _arg$1, _r$1, _r$2, _r$3, alt, check, id, obj, pos$1, scope, $s};return $f; + }; + pathString = function pathString$1(path) { + var {_i, _r$1, _ref, i, p, path, s, $s, $r, $c} = $restore(this, {path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = ""; + _ref = path; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + s = s + ("->"); + } + _r$1 = p.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + s = s + (_r$1); + _i++; + $s = 1; continue; + case 2: + $s = -1; return s; + /* */ } return; } var $f = {$blk: pathString$1, $c: true, $r, _i, _r$1, _ref, i, p, path, s, $s};return $f; + }; + $ptrType(Checker).prototype.objDecl = function objDecl(obj, def$2) { + var {_1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _v, _v$1, check, d, def$2, obj, obj$1, obj$10, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, $s, $deferred, $r, $c} = $restore(this, {obj, def$2}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + obj = [obj]; + check[0] = this; + if (!(false)) { _v = false; $s = 3; continue s; } + _r$1 = obj[0].Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = $interfaceIsEqual(_r$1, $ifaceNil); case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + /* */ if (check[0].indent === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (check[0].indent === 0) { */ case 5: + _r$2 = fmt.Println(sliceType$5.nil); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 6: + _r$3 = obj[0].Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg = _r$3; + _arg$1 = obj[0]; + _r$4 = obj[0].color(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$2 = new color(_r$4); + _r$5 = pathString(check[0].objPath); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$3 = new $String(_r$5); + $r = check[0].trace(_arg, "-- checking %s (%s, objPath = %s)", new sliceType$5([_arg$1, _arg$2, _arg$3])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(check, obj) { return function Checker·objDecl·func1() { + var {_arg$4, _arg$5, _arg$6, _r$6, _r$7, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + _r$6 = obj[0].Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$4 = _r$6; + _arg$5 = obj[0]; + _r$7 = obj[0].color(); /* */ $s = 2; case 2: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$6 = new color(_r$7); + $r = check[0].trace(_arg$4, "=> %s (%s)", new sliceType$5([_arg$5, _arg$6])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·objDecl·func1, $c: true, $r, _arg$4, _arg$5, _arg$6, _r$6, _r$7, $s};return $f; + }; })(check, obj), []]); + /* } */ case 2: + _r$6 = obj[0].color(); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + if (!(_r$6 === 0)) { _v$1 = false; $s = 14; continue s; } + _r$7 = obj[0].Type(); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$1 = !($interfaceIsEqual(_r$7, $ifaceNil)); case 14: + /* */ if (_v$1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_v$1) { */ case 12: + $r = obj[0].setColor(1); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 18; case 18: return; + /* } */ case 13: + _r$8 = obj[0].color(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _1 = _r$8; + /* */ if (_1 === (0)) { $s = 21; continue; } + /* */ if (_1 === (1)) { $s = 22; continue; } + /* */ if (_1 === (2)) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (_1 === (0)) { */ case 21: + _r$9 = obj[0].Type(); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $r = assert($interfaceIsEqual(_r$9, $ifaceNil)); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = obj[0].setColor(2 + ((check[0].push(obj[0]) >>> 0)) >>> 0); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([(function(check, obj) { return function Checker·objDecl·func2() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = check[0].pop().setColor(1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·objDecl·func2, $c: true, $r, $s};return $f; + }; })(check, obj), []]); + $s = 25; continue; + /* } else if (_1 === (1)) { */ case 22: + _r$10 = obj[0].Type(); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(_r$10, $ifaceNil))); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 31; case 31: return; + /* } else if (_1 === (2)) { */ case 23: + _ref = obj[0]; + /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 33; continue; } + /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 34; continue; } + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if ($assertType(_ref, ptrType$32, true)[1]) { */ case 32: + obj$1 = _ref.$val; + _r$11 = check[0].validCycle(obj$1); /* */ $s = 40; case 40: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (!_r$11 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!_r$11 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { */ case 38: + obj$1.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 39: + $s = 37; continue; + /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 33: + obj$2 = _ref.$val; + _r$12 = check[0].validCycle(obj$2); /* */ $s = 43; case 43: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* */ if (!_r$12 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (!_r$12 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { */ case 41: + obj$2.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 42: + $s = 37; continue; + /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 34: + obj$3 = _ref.$val; + _r$13 = check[0].validCycle(obj$3); /* */ $s = 46; case 46: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + /* */ if (!_r$13) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!_r$13) { */ case 44: + obj$3.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 45: + $s = 37; continue; + /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 35: + obj$4 = _ref.$val; + _r$14 = check[0].validCycle(obj$4); /* */ $s = 49; case 49: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + /* */ if (!_r$14) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (!_r$14) { */ case 47: + /* } */ case 48: + $s = 37; continue; + /* } else { */ case 36: + obj$5 = _ref; + unreachable(); + /* } */ case 37: + _r$15 = obj[0].Type(); /* */ $s = 50; case 50: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(_r$15, $ifaceNil))); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 52; case 52: return; + /* } else { */ case 24: + _ref$1 = obj[0]; + /* */ if ($assertType(_ref$1, ptrType$32, true)[1]) { $s = 53; continue; } + /* */ if ($assertType(_ref$1, ptrType$16, true)[1]) { $s = 54; continue; } + /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 55; continue; } + /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if ($assertType(_ref$1, ptrType$32, true)[1]) { */ case 53: + obj$1 = _ref$1.$val; + _r$16 = check[0].validCycle(obj$1); /* */ $s = 61; case 61: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + /* */ if (!_r$16 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (!_r$16 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { */ case 59: + obj$1.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 60: + $s = 58; continue; + /* } else if ($assertType(_ref$1, ptrType$16, true)[1]) { */ case 54: + obj$2 = _ref$1.$val; + _r$17 = check[0].validCycle(obj$2); /* */ $s = 64; case 64: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + /* */ if (!_r$17 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { $s = 62; continue; } + /* */ $s = 63; continue; + /* if (!_r$17 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { */ case 62: + obj$2.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 63: + $s = 58; continue; + /* } else if ($assertType(_ref$1, ptrType$17, true)[1]) { */ case 55: + obj$3 = _ref$1.$val; + _r$18 = check[0].validCycle(obj$3); /* */ $s = 67; case 67: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + /* */ if (!_r$18) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!_r$18) { */ case 65: + obj$3.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 66: + $s = 58; continue; + /* } else if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 56: + obj$4 = _ref$1.$val; + _r$19 = check[0].validCycle(obj$4); /* */ $s = 70; case 70: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + /* */ if (!_r$19) { $s = 68; continue; } + /* */ $s = 69; continue; + /* if (!_r$19) { */ case 68: + /* } */ case 69: + $s = 58; continue; + /* } else { */ case 57: + obj$5 = _ref$1; + unreachable(); + /* } */ case 58: + _r$20 = obj[0].Type(); /* */ $s = 71; case 71: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(_r$20, $ifaceNil))); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 73; case 73: return; + /* } */ case 25: + case 19: + d = (_entry = $mapIndex(check[0].objMap,Object.keyFor(obj[0])), _entry !== undefined ? _entry.v : ptrType$57.nil); + /* */ if (d === ptrType$57.nil) { $s = 74; continue; } + /* */ $s = 75; continue; + /* if (d === ptrType$57.nil) { */ case 74: + _r$21 = obj[0].Pos(); /* */ $s = 76; case 76: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _arg$4 = new token.Pos(_r$21); + _arg$5 = obj[0]; + $r = check[0].dump("%v: %s should have been declared", new sliceType$5([_arg$4, _arg$5])); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + unreachable(); + /* } */ case 75: + $deferred.push([(function(check, obj) { return function Checker·objDecl·func3(env) { + var env; + environment.copy(check[0].environment, env); + }; })(check, obj), [$clone(check[0].environment, environment)]]); + environment.copy(check[0].environment, new environment.ptr(ptrType$57.nil, d.file, 0, $ifaceNil, $ifaceNil, false, ptrType$27.nil, false, false, false)); + _ref$2 = obj[0]; + /* */ if ($assertType(_ref$2, ptrType$32, true)[1]) { $s = 78; continue; } + /* */ if ($assertType(_ref$2, ptrType$16, true)[1]) { $s = 79; continue; } + /* */ if ($assertType(_ref$2, ptrType$17, true)[1]) { $s = 80; continue; } + /* */ if ($assertType(_ref$2, ptrType$2, true)[1]) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if ($assertType(_ref$2, ptrType$32, true)[1]) { */ case 78: + obj$6 = _ref$2.$val; + check[0].environment.decl = d; + $r = check[0].constDecl(obj$6, d.vtyp, d.init, d.inherited); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 83; continue; + /* } else if ($assertType(_ref$2, ptrType$16, true)[1]) { */ case 79: + obj$7 = _ref$2.$val; + check[0].environment.decl = d; + $r = check[0].varDecl(obj$7, d.lhs, d.vtyp, d.init); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 83; continue; + /* } else if ($assertType(_ref$2, ptrType$17, true)[1]) { */ case 80: + obj$8 = _ref$2.$val; + $r = check[0].typeDecl(obj$8, d.tdecl, def$2); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].collectMethods(obj$8); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 83; continue; + /* } else if ($assertType(_ref$2, ptrType$2, true)[1]) { */ case 81: + obj$9 = _ref$2.$val; + $r = check[0].funcDecl(obj$9, d); /* */ $s = 88; case 88: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 83; continue; + /* } else { */ case 82: + obj$10 = _ref$2; + unreachable(); + /* } */ case 83: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: objDecl, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _v, _v$1, check, d, def$2, obj, obj$1, obj$10, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.validCycle = function validCycle(obj) { + var {$24r, $24r$1, $24r$2, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _i, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _v, alias, check, cycle, d, inObjMap, info, isPkgObj, ndef, nval, obj, obj$1, obj$2, obj$3, obj$4, obj$5, start, tparCycle, valid, $s, $deferred, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + obj = [obj]; + valid = [valid]; + valid[0] = false; + check[0] = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + info = (_entry = $mapIndex(check[0].objMap,Object.keyFor(obj[0])), _entry !== undefined ? _entry.v : ptrType$57.nil); + inObjMap = !(info === ptrType$57.nil) && (info.fdecl === ptrType$86.nil || info.fdecl.Recv === ptrType$49.nil); + _r$1 = obj[0].Parent(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + isPkgObj = _r$1 === check[0].pkg.scope; + /* */ if (!(isPkgObj === inObjMap)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(isPkgObj === inObjMap)) { */ case 4: + _r$2 = obj[0].Pos(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new token.Pos(_r$2); + _arg$1 = obj[0]; + _arg$2 = new $Bool(isPkgObj); + _arg$3 = new $Bool(inObjMap); + $r = check[0].dump("%v: inconsistent object map for %s (isPkgObj = %v, inObjMap = %v)", new sliceType$5([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + unreachable(); + /* } */ case 5: + /* } */ case 2: + _r$3 = obj[0].color(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = assert(_r$3 >= 2); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = obj[0].color(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + start = _r$4 - 2 >>> 0; + cycle = $subslice(check[0].objPath, start); + tparCycle = false; + nval = 0; + ndef = 0; + _ref = cycle; + _i = 0; + /* while (true) { */ case 11: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 12; continue; } + obj$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = obj$1; + /* */ if ($assertType(_ref$1, ptrType$32, true)[1] || $assertType(_ref$1, ptrType$16, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ($assertType(_ref$1, ptrType$32, true)[1] || $assertType(_ref$1, ptrType$16, true)[1]) { */ case 13: + obj$2 = _ref$1; + nval = nval + (1) >> 0; + $s = 17; continue; + /* } else if ($assertType(_ref$1, ptrType$17, true)[1]) { */ case 14: + obj$3 = _ref$1.$val; + if (!(check[0].environment.inTParamList)) { _v = false; $s = 20; continue s; } + _r$5 = isGeneric(obj$3.object.typ); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v = _r$5; case 20: + /* */ if (_v) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_v) { */ case 18: + tparCycle = true; + /* break loop; */ $s = 12; continue s; + /* } */ case 19: + alias = false; + d = (_entry$1 = $mapIndex(check[0].objMap,Object.keyFor(obj$3)), _entry$1 !== undefined ? _entry$1.v : ptrType$57.nil); + if (!(d === ptrType$57.nil)) { + alias = new token.Pos(d.tdecl.Assign).IsValid(); + } else { + alias = obj$3.IsAlias(); + } + if (!alias) { + ndef = ndef + (1) >> 0; + } + $s = 17; continue; + /* } else if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 15: + obj$4 = _ref$1.$val; + $s = 17; continue; + /* } else { */ case 16: + obj$5 = _ref$1; + unreachable(); + /* } */ case 17: + _i++; + $s = 11; continue; + case 12: + /* */ if (false) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (false) { */ case 22: + _r$6 = obj[0].Pos(); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$4 = _r$6; + _r$7 = pathString(cycle); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$5 = new $String(_r$7); + _r$8 = obj[0].Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg$6 = new $String(_r$8); + _arg$7 = new $Int(cycle.$length); + $r = check[0].trace(_arg$4, "## cycle detected: objPath = %s->%s (len = %d)", new sliceType$5([_arg$5, _arg$6, _arg$7])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (tparCycle) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (tparCycle) { */ case 28: + _r$9 = obj[0].Pos(); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $r = check[0].trace(_r$9, "## cycle contains: generic type in a type parameter list", sliceType$5.nil); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 30; continue; + /* } else { */ case 29: + _r$10 = obj[0].Pos(); /* */ $s = 33; case 33: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $r = check[0].trace(_r$10, "## cycle contains: %d values, %d type definitions", new sliceType$5([new $Int(nval), new $Int(ndef)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 30: + $deferred.push([(function(check, obj, valid) { return function Checker·validCycle·func1() { + var {_r$11, _r$12, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (valid[0]) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (valid[0]) { */ case 1: + _r$11 = obj[0].Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $r = check[0].trace(_r$11, "=> cycle is valid", sliceType$5.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 3; continue; + /* } else { */ case 2: + _r$12 = obj[0].Pos(); /* */ $s = 6; case 6: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $r = check[0].trace(_r$12, "=> error: cycle is invalid", sliceType$5.nil); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·validCycle·func1, $c: true, $r, _r$11, _r$12, $s};return $f; + }; })(check, obj, valid), []]); + /* } */ case 23: + /* */ if (!tparCycle) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (!tparCycle) { */ case 35: + /* */ if (nval === cycle.$length) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (nval === cycle.$length) { */ case 37: + valid[0] = true; + $24r = valid[0]; + $s = 39; case 39: return $24r; + /* } */ case 38: + /* */ if ((nval === 0) && ndef > 0) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if ((nval === 0) && ndef > 0) { */ case 40: + valid[0] = true; + $24r$1 = valid[0]; + $s = 42; case 42: return $24r$1; + /* } */ case 41: + /* } */ case 36: + $r = check[0].cycleError(cycle); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + valid[0] = false; + $24r$2 = valid[0]; + $s = 44; case 44: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return valid[0]; } if($curGoroutine.asleep) { var $f = {$blk: validCycle, $c: true, $r, $24r, $24r$1, $24r$2, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _i, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _v, alias, check, cycle, d, inObjMap, info, isPkgObj, ndef, nval, obj, obj$1, obj$2, obj$3, obj$4, obj$5, start, tparCycle, valid, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.cycleError = function cycleError(cycle) { + var {_i, _r$1, _r$2, _r$3, _ref, _tuple, check, cycle, i, name, obj, objName, tname, $s, $r, $c} = $restore(this, {cycle}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = [check]; + check[0] = this; + name = (function(check) { return function Checker·cycleError·func1(obj) { + var {_arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, buf, obj, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + _arg = buf[0]; + _r$1 = obj.Pkg(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + _arg$2 = $methodVal(check[0], "qualifier"); + $r = writePackage(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = buf[0].WriteString(_r$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: Checker·cycleError·func1, $c: true, $r, _arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, buf, obj, $s};return $f; + }; })(check); + _r$1 = firstInSrc(cycle); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + i = _r$1; + obj = ((i < 0 || i >= cycle.$length) ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + i]); + _r$2 = name(obj); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + objName = _r$2; + _tuple = $assertType(obj, ptrType$17, true); + tname = _tuple[0]; + if (!(tname === ptrType$17.nil) && tname.IsAlias()) { + check[0].validAlias(tname, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); + } + /* */ if (!(tname === ptrType$17.nil) && false) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(tname === ptrType$17.nil) && false) { */ case 3: + $r = check[0].errorf(obj, 11, "invalid recursive type %s", new sliceType$5([new $String(objName)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + $r = check[0].errorf(obj, 11, "illegal cycle in declaration of %s", new sliceType$5([new $String(objName)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + _ref = cycle; + _i = 0; + /* while (true) { */ case 8: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; } + $r = check[0].errorf(obj, 11, "\t%s refers to", new sliceType$5([new $String(objName)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + if (i >= cycle.$length) { + i = 0; + } + obj = ((i < 0 || i >= cycle.$length) ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + i]); + _r$3 = name(obj); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + objName = _r$3; + _i++; + $s = 8; continue; + case 9: + $r = check[0].errorf(obj, 11, "\t%s", new sliceType$5([new $String(objName)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: cycleError, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, _tuple, check, cycle, i, name, obj, objName, tname, $s};return $f; + }; + firstInSrc = function firstInSrc$1(path) { + var {_i, _r$1, _r$2, _r$3, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, fst, i, path, pos$1, t, $s, $r, $c} = $restore(this, {path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tmp = 0; + _r$1 = (0 >= path.$length ? ($throwRuntimeError("index out of range"), undefined) : path.$array[path.$offset + 0]).Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tmp$1 = _r$1; + fst = _tmp; + pos$1 = _tmp$1; + _ref = $subslice(path, 1); + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$2 = t.Pos(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2 < pos$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$2 < pos$1) { */ case 4: + _tmp$2 = i + 1 >> 0; + _r$3 = t.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tmp$3 = _r$3; + fst = _tmp$2; + pos$1 = _tmp$3; + /* } */ case 5: + _i++; + $s = 2; continue; + case 3: + $s = -1; return fst; + /* */ } return; } var $f = {$blk: firstInSrc$1, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, fst, i, path, pos$1, t, $s};return $f; + }; + $ptrType(importDecl).prototype.node = function node() { + var d; + d = this; + return d.spec; + }; + importDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; + $ptrType(constDecl).prototype.node = function node$1() { + var d; + d = this; + return d.spec; + }; + constDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; + $ptrType(varDecl).prototype.node = function node$2() { + var d; + d = this; + return d.spec; + }; + varDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; + $ptrType(typeDecl).prototype.node = function node$3() { + var d; + d = this; + return d.spec; + }; + typeDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; + $ptrType(funcDecl).prototype.node = function node$4() { + var d; + d = this; + return d.decl; + }; + funcDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; + $ptrType(Checker).prototype.walkDecls = function walkDecls(decls, f) { + var {_i, _ref, check, d, decls, f, $s, $r, $c} = $restore(this, {decls, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _ref = decls; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = check.walkDecl(d, f); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkDecls, $c: true, $r, _i, _ref, check, d, decls, f, $s};return $f; + }; + $ptrType(Checker).prototype.walkDecl = function walkDecl(d, f) { + var {_1, _i, _ref, _ref$1, _ref$2, check, d, d$1, d$2, d$3, d$4, f, inherited, iota, last, s, s$1, s$2, s$3, s$4, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {d, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _ref = d; + /* */ if ($assertType(_ref, ptrType$105, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$93, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$86, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, ptrType$105, true)[1]) { */ case 1: + d$1 = _ref.$val; + $s = 5; continue; + /* } else if ($assertType(_ref, ptrType$93, true)[1]) { */ case 2: + d$2 = _ref.$val; + last = ptrType$87.nil; + _ref$1 = d$2.Specs; + _i = 0; + /* while (true) { */ case 6: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 7; continue; } + iota = _i; + s = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _ref$2 = s; + /* */ if ($assertType(_ref$2, ptrType$106, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref$2, ptrType$87, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref$2, ptrType$89, true)[1]) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ($assertType(_ref$2, ptrType$106, true)[1]) { */ case 8: + s$1 = _ref$2.$val; + $r = f((x = new importDecl.ptr(s$1), new x.constructor.elem(x))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 12; continue; + /* } else if ($assertType(_ref$2, ptrType$87, true)[1]) { */ case 9: + s$2 = _ref$2.$val; + _1 = d$2.Tok; + /* */ if (_1 === (64)) { $s = 15; continue; } + /* */ if (_1 === (85)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_1 === (64)) { */ case 15: + inherited = true; + if (!($interfaceIsEqual(s$2.Type, $ifaceNil)) || s$2.Values.$length > 0) { + last = s$2; + inherited = false; + } else if (last === ptrType$87.nil) { + last = new ast.ValueSpec.ptr(ptrType$107.nil, sliceType$22.nil, $ifaceNil, sliceType$11.nil, ptrType$107.nil); + inherited = false; + } + $r = check.arityMatch(s$2, last); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = f((x$1 = new constDecl.ptr(s$2, iota, last.Type, last.Values, inherited), new x$1.constructor.elem(x$1))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 18; continue; + /* } else if (_1 === (85)) { */ case 16: + $r = check.arityMatch(s$2, ptrType$87.nil); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = f((x$2 = new varDecl.ptr(s$2), new x$2.constructor.elem(x$2))); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 18; continue; + /* } else { */ case 17: + $r = check.invalidAST(s$2, "invalid token %s", new sliceType$5([new token.Token(d$2.Tok)])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + case 14: + $s = 12; continue; + /* } else if ($assertType(_ref$2, ptrType$89, true)[1]) { */ case 10: + s$3 = _ref$2.$val; + $r = f((x$3 = new typeDecl.ptr(s$3), new x$3.constructor.elem(x$3))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 12; continue; + /* } else { */ case 11: + s$4 = _ref$2; + $r = check.invalidAST(s$4, "unknown ast.Spec node %T", new sliceType$5([s$4])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + _i++; + $s = 6; continue; + case 7: + $s = 5; continue; + /* } else if ($assertType(_ref, ptrType$86, true)[1]) { */ case 3: + d$3 = _ref.$val; + $r = f((x$4 = new funcDecl.ptr(d$3), new x$4.constructor.elem(x$4))); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + d$4 = _ref; + $r = check.invalidAST(d$4, "unknown ast.Decl node %T", new sliceType$5([d$4])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkDecl, $c: true, $r, _1, _i, _ref, _ref$1, _ref$2, check, d, d$1, d$2, d$3, d$4, f, inherited, iota, last, s, s$1, s$2, s$3, s$4, x, x$1, x$2, x$3, x$4, $s};return $f; + }; + $ptrType(Checker).prototype.constDecl = function constDecl$1(obj, typ$4, init$7, inherited) { + var {_r$1, _r$2, _r$3, check, inherited, init$7, obj, t, typ$4, x, $s, $deferred, $r, $c} = $restore(this, {obj, typ$4, init$7, inherited}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + x = [x]; + check[0] = this; + $r = assert($interfaceIsEqual(obj.object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([(function(check, x) { return function Checker·constDecl·func1(iota, errpos) { + var errpos, iota; + check[0].environment.iota = iota; + check[0].environment.errpos = errpos; + }; })(check, x), [check[0].environment.iota, check[0].environment.errpos]]); + check[0].environment.iota = obj.val; + check[0].environment.errpos = $ifaceNil; + obj.val = constant.MakeUnknown(); + /* */ if (!($interfaceIsEqual(typ$4, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(typ$4, $ifaceNil))) { */ case 2: + _r$1 = check[0].typ(typ$4); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + t = _r$1; + _r$2 = isConstType(t); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!_r$2) { */ case 5: + _r$3 = under(t); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(_r$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(_r$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 8: + $r = check[0].errorf(typ$4, 15, "invalid constant type %s", new sliceType$5([t])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + obj.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + $s = -1; return; + /* } */ case 6: + obj.object.typ = t; + /* } */ case 3: + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + /* */ if (!($interfaceIsEqual(init$7, $ifaceNil))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!($interfaceIsEqual(init$7, $ifaceNil))) { */ case 12: + if (inherited) { + check[0].environment.errpos = new atPos(((obj.object.pos >> 0))); + } + $r = check[0].expr(x[0], init$7); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + $r = check[0].initConst(obj, x[0]); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: constDecl$1, $c: true, $r, _r$1, _r$2, _r$3, check, inherited, init$7, obj, t, typ$4, x, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.varDecl = function varDecl$1(obj, lhs, typ$4, init$7) { + var {_i, _i$1, _r$1, _r$2, _ref, _ref$1, check, found, init$7, lhs, lhs$1, lhs$2, obj, typ$4, x, $s, $r, $c} = $restore(this, {obj, lhs, typ$4, init$7}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = [x]; + check = this; + $r = assert($interfaceIsEqual(obj.object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(typ$4, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(typ$4, $ifaceNil))) { */ case 2: + _r$1 = check.varType(typ$4); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + obj.object.typ = _r$1; + /* } */ case 3: + if ($interfaceIsEqual(init$7, $ifaceNil)) { + if ($interfaceIsEqual(typ$4, $ifaceNil)) { + obj.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + $s = -1; return; + } + /* */ if (lhs === sliceType$10.nil || (lhs.$length === 1)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (lhs === sliceType$10.nil || (lhs.$length === 1)) { */ case 5: + $r = assert(lhs === sliceType$10.nil || (0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]) === obj); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr(x[0], init$7); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = check.initVar(obj, x[0], "variable declaration"); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return; + /* } */ case 6: + if (false) { + found = false; + _ref = lhs; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + lhs$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (obj === lhs$1) { + found = true; + break; + } + _i++; + } + if (!found) { + $panic(new $String("inconsistent lhs")); + } + } + if (!($interfaceIsEqual(typ$4, $ifaceNil))) { + _ref$1 = lhs; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + lhs$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + lhs$2.object.typ = obj.object.typ; + _i$1++; + } + } + $r = check.initVars(lhs, new sliceType$11([init$7]), $ifaceNil); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: varDecl$1, $c: true, $r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, check, found, init$7, lhs, lhs$1, lhs$2, obj, typ$4, x, $s};return $f; + }; + $ptrType(Checker).prototype.isImportedConstraint = function isImportedConstraint(typ$4) { + var {$24r, _r$1, _r$2, _tuple, _tuple$1, _v, check, named, typ$4, u, $s, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _tuple = $assertType(typ$4, ptrType$9, true); + named = _tuple[0]; + if (named === ptrType$9.nil || named.obj.object.pkg === check.pkg || named.obj.object.pkg === ptrType$1.nil) { + $s = -1; return false; + } + _r$1 = named.under(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$1, ptrType$13, true); + u = _tuple$1[0]; + if (!(!(u === ptrType$13.nil))) { _v = false; $s = 2; continue s; } + _r$2 = u.IsMethodSet(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = !_r$2; case 2: + $24r = _v; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: isImportedConstraint, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, _v, check, named, typ$4, u, $s};return $f; + }; + $ptrType(Checker).prototype.typeDecl = function typeDecl$1(obj, tdecl, def$2) { + var {_r$1, _r$2, alias, check, def$2, named, obj, rhs, tdecl, $s, $deferred, $r, $c} = $restore(this, {obj, tdecl, def$2}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + obj = [obj]; + rhs = [rhs]; + tdecl = [tdecl]; + check[0] = this; + $r = assert($interfaceIsEqual(obj[0].object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + rhs[0] = $ifaceNil; + check[0].later((function(check, obj, rhs, tdecl) { return function Checker·typeDecl·func1() { + var {_r$1, _tuple, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(obj[0].object.typ, ptrType$9, true); + t = _tuple[0]; + /* */ if (!(t === ptrType$9.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(t === ptrType$9.nil)) { */ case 1: + $r = check[0].validType(t); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _r$1 = check[0].isImportedConstraint(rhs[0]); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1 && !check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1 && !check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 4: + $r = check[0].errorf(tdecl[0].Type, 135, "using type constraint %s requires go1.18 or later", new sliceType$5([rhs[0]])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·typeDecl·func1, $c: true, $r, _r$1, _tuple, t, $s};return $f; + }; })(check, obj, rhs, tdecl)).describef(obj[0], "validType(%s)", new sliceType$5([new $String(obj[0].object.Name())])); + alias = new token.Pos(tdecl[0].Assign).IsValid(); + /* */ if (alias && !((tdecl[0].TypeParams.NumFields() === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (alias && !((tdecl[0].TypeParams.NumFields() === 0))) { */ case 2: + $r = check[0].error(new atPos(((tdecl[0].Assign >> 0))), 131, "generic type cannot be alias"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + alias = false; + /* } */ case 3: + /* */ if (alias) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (alias) { */ case 5: + /* */ if (!check[0].allowVersion(check[0].pkg, 1, 9)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!check[0].allowVersion(check[0].pkg, 1, 9)) { */ case 7: + $r = check[0].errorf(new atPos(((tdecl[0].Assign >> 0))), 131, "type aliases requires go1.9 or later", sliceType$5.nil); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + check[0].brokenAlias(obj[0]); + _r$1 = check[0].typ(tdecl[0].Type); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + rhs[0] = _r$1; + check[0].validAlias(obj[0], rhs[0]); + $s = -1; return; + /* } */ case 6: + named = check[0].newNamed(obj[0], $ifaceNil, sliceType.nil); + def$2.setUnderlying(named); + /* */ if (!(tdecl[0].TypeParams === ptrType$49.nil)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!(tdecl[0].TypeParams === ptrType$49.nil)) { */ case 11: + $r = check[0].openScope(tdecl[0], "type parameters"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + $r = check[0].collectTypeParams((named.$ptr_tparams || (named.$ptr_tparams = new ptrType$83(function() { return this.$target.tparams; }, function($v) { this.$target.tparams = $v; }, named))), tdecl[0].TypeParams); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + _r$2 = check[0].definedType(tdecl[0].Type, named); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + rhs[0] = _r$2; + $r = assert(!($interfaceIsEqual(rhs[0], $ifaceNil))); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + named.fromRHS = rhs[0]; + if ($interfaceIsEqual(named.underlying, $ifaceNil)) { + named.underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + /* */ if (isTypeParam(rhs[0])) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (isTypeParam(rhs[0])) { */ case 17: + $r = check[0].error(tdecl[0].Type, 144, "cannot use a type parameter as RHS in type declaration"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + named.underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 18: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typeDecl$1, $c: true, $r, _r$1, _r$2, alias, check, def$2, named, obj, rhs, tdecl, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.collectTypeParams = function collectTypeParams(dst, list$2) { + var {_i, _i$1, _i$2, _r$1, _r$2, _ref, _ref$1, _ref$2, bound, check, dst, f, f$1, i, index$2, list$2, tparams, x, $s, $deferred, $r, $c} = $restore(this, {dst, list$2}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + check[0] = this; + tparams = sliceType$9.nil; + _ref = list$2.List; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = check[0].declareTypeParams(tparams, f.Names); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + tparams = _r$1; + _i++; + $s = 1; continue; + case 2: + dst.$set(bindTParams(tparams)); + $r = assert(!check[0].environment.inTParamList); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].environment.inTParamList = true; + $deferred.push([(function(check) { return function Checker·collectTypeParams·func1() { + check[0].environment.inTParamList = false; + }; })(check), []]); + index$2 = 0; + _ref$1 = list$2.List; + _i$1 = 0; + /* while (true) { */ case 5: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } + f$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + bound = $ifaceNil; + /* */ if (!($interfaceIsEqual(f$1.Type, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(f$1.Type, $ifaceNil))) { */ case 7: + _r$2 = check[0].bound(f$1.Type); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + bound = _r$2; + /* */ if (isTypeParam(bound)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (isTypeParam(bound)) { */ case 11: + $r = check[0].error(f$1.Type, 144, "cannot use a type parameter as constraint"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + bound = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 12: + $s = 9; continue; + /* } else { */ case 8: + bound = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 9: + _ref$2 = f$1.Names; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i = _i$2; + (x = index$2 + i >> 0, ((x < 0 || x >= tparams.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams.$array[tparams.$offset + x])).bound = bound; + _i$2++; + } + index$2 = index$2 + (f$1.Names.$length) >> 0; + _i$1++; + $s = 5; continue; + case 6: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: collectTypeParams, $c: true, $r, _i, _i$1, _i$2, _r$1, _r$2, _ref, _ref$1, _ref$2, bound, check, dst, f, f$1, i, index$2, list$2, tparams, x, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.bound = function bound(x) { + var {$24r, _r$1, _r$2, _ref, _tuple, check, op$1, op$2, t, t$1, wrap, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + wrap = false; + _ref = x; + if ($assertType(_ref, ptrType$20, true)[1]) { + op$1 = _ref.$val; + wrap = op$1.Op === 88; + } else if ($assertType(_ref, ptrType$21, true)[1]) { + op$2 = _ref.$val; + wrap = op$2.Op === 18; + } + /* */ if (wrap) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (wrap) { */ case 1: + x = new ast.InterfaceType.ptr(0, new ast.FieldList.ptr(0, new sliceType$32([new ast.Field.ptr(ptrType$107.nil, sliceType$22.nil, x, ptrType$56.nil, ptrType$107.nil)]), 0), false); + _r$1 = check.typ(x); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + t = _r$1; + _tuple = $assertType(t, ptrType$13, true); + t$1 = _tuple[0]; + if (!(t$1 === ptrType$13.nil)) { + t$1.implicit = true; + } + $s = -1; return t; + /* } */ case 2: + _r$2 = check.typ(x); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: bound, $c: true, $r, $24r, _r$1, _r$2, _ref, _tuple, check, op$1, op$2, t, t$1, wrap, x, $s};return $f; + }; + $ptrType(Checker).prototype.declareTypeParams = function declareTypeParams(tparams, names) { + var {_i, _r$1, _ref, check, name, names, tname, tpar, tparams, $s, $r, $c} = $restore(this, {tparams, names}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _ref = names; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + name = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + tname = NewTypeName(name.Pos(), check.pkg, name.Name, $ifaceNil); + _r$1 = check.newTypeParam(tname, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + tpar = _r$1; + $r = check.declare(check.environment.scope, name, tname, check.environment.scope.pos); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tparams = $append(tparams, tpar); + _i++; + $s = 1; continue; + case 2: + /* */ if (false && names.$length > 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (false && names.$length > 0) { */ case 5: + $r = check.trace((0 >= names.$length ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + 0]).Pos(), "type params = %v", new sliceType$5([$subslice(tparams, (tparams.$length - names.$length >> 0))])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return tparams; + /* */ } return; } var $f = {$blk: declareTypeParams, $c: true, $r, _i, _r$1, _ref, check, name, names, tname, tpar, tparams, $s};return $f; + }; + $ptrType(Checker).prototype.collectMethods = function collectMethods(obj) { + var {_entry, _entry$1, _i, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, alt, base, check, i, m, m$1, methods, mset, mset$24ptr, obj, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + base = [base]; + check = [check]; + check[0] = this; + methods = (_entry = $mapIndex(check[0].methods,ptrType$17.keyFor(obj)), _entry !== undefined ? _entry.v : sliceType.nil); + if (methods === sliceType.nil) { + $s = -1; return; + } + $mapDelete(check[0].methods, ptrType$17.keyFor(obj)); + $r = assert(!new token.Pos((_entry$1 = $mapIndex(check[0].objMap,Object.keyFor(obj)), _entry$1 !== undefined ? _entry$1.v : ptrType$57.nil).tdecl.Assign).IsValid()); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + mset = false; + _tuple = $assertType(obj.object.typ, ptrType$9, true); + base[0] = _tuple[0]; + /* */ if (!(base[0] === ptrType$9.nil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(base[0] === ptrType$9.nil)) { */ case 2: + $r = assert(base[0].TypeArgs().Len() === 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].later((function(base, check) { return function Checker·collectMethods·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = check[0].checkFieldUniqueness(base[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·collectMethods·func1, $c: true, $r, $s};return $f; + }; })(base, check)).describef(obj, "verifying field uniqueness for %v", new sliceType$5([base[0]])); + i = 0; + /* while (true) { */ case 5: + _r$1 = base[0].NumMethods(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* if (!(i < _r$1)) { break; } */ if(!(i < _r$1)) { $s = 6; continue; } + _r$2 = base[0].Method(i); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + m = _r$2; + $r = assert(!(m.object.name === "_")); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = (mset$24ptr || (mset$24ptr = new ptrType$53(function() { return mset; }, function($v) { mset = $v; }))).insert(m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = assert($interfaceIsEqual(_r$3, $ifaceNil)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + $s = 5; continue; + case 6: + /* } */ case 3: + _ref = methods; + _i = 0; + /* while (true) { */ case 12: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 13; continue; } + m$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = assert(!(m$1.object.name === "_")); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = (mset$24ptr || (mset$24ptr = new ptrType$53(function() { return mset; }, function($v) { mset = $v; }))).insert(m$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + alt = _r$4; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 16: + $r = check[0].errorf(m$1, 34, "method %s already declared for %s", new sliceType$5([new $String(m$1.object.name), obj])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].reportAltDecl(alt); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 12; continue; + /* } */ case 17: + /* */ if (!(base[0] === ptrType$9.nil)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!(base[0] === ptrType$9.nil)) { */ case 20: + $r = base[0].AddMethod(m$1); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 21: + _i++; + $s = 12; continue; + case 13: + $s = -1; return; + /* */ } return; } var $f = {$blk: collectMethods, $c: true, $r, _entry, _entry$1, _i, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, alt, base, check, i, m, m$1, methods, mset, mset$24ptr, obj, $s};return $f; + }; + $ptrType(Checker).prototype.checkFieldUniqueness = function checkFieldUniqueness(base) { + var {_i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, alt, base, check, fld, i, m, mset, mset$24ptr, t, $s, $r, $c} = $restore(this, {base}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = base.under(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$11, true); + t = _tuple[0]; + /* */ if (!(t === ptrType$11.nil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(t === ptrType$11.nil)) { */ case 2: + mset = false; + i = 0; + /* while (true) { */ case 4: + _r$2 = base.NumMethods(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* if (!(i < _r$2)) { break; } */ if(!(i < _r$2)) { $s = 5; continue; } + _r$3 = base.Method(i); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + m = _r$3; + $r = assert(!(m.object.name === "_")); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = (mset$24ptr || (mset$24ptr = new ptrType$53(function() { return mset; }, function($v) { mset = $v; }))).insert(m); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = assert($interfaceIsEqual(_r$4, $ifaceNil)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + $s = 4; continue; + case 5: + _ref = t.fields; + _i = 0; + /* while (true) { */ case 11: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 12; continue; } + fld = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (!(fld.object.name === "_")) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!(fld.object.name === "_")) { */ case 13: + _r$5 = (mset$24ptr || (mset$24ptr = new ptrType$53(function() { return mset; }, function($v) { mset = $v; }))).insert(fld); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + alt = _r$5; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 16: + $unused($assertType(alt, ptrType$2)); + $r = check.errorf(alt, 33, "field and method with the same name %s", new sliceType$5([new $String(fld.object.name)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.reportAltDecl(fld); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + /* } */ case 14: + _i++; + $s = 11; continue; + case 12: + /* } */ case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: checkFieldUniqueness, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, alt, base, check, fld, i, m, mset, mset$24ptr, t, $s};return $f; + }; + $ptrType(Checker).prototype.funcDecl = function funcDecl$1(obj, decl$1) { + var {check, decl$1, fdecl, obj, saved, sig, $s, $r, $c} = $restore(this, {obj, decl$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = [check]; + decl$1 = [decl$1]; + fdecl = [fdecl]; + obj = [obj]; + sig = [sig]; + check[0] = this; + $r = assert($interfaceIsEqual(obj[0].object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert($interfaceIsEqual(check[0].environment.iota, $ifaceNil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + sig[0] = new Signature.ptr(ptrType$48.nil, ptrType$48.nil, ptrType.nil, ptrType$16.nil, ptrType$15.nil, ptrType$15.nil, false); + obj[0].object.typ = sig[0]; + saved = obj[0].object.color_; + obj[0].object.color_ = 1; + fdecl[0] = decl$1[0].fdecl; + $r = check[0].funcType(sig[0], fdecl[0].Recv, fdecl[0].Type); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj[0].object.color_ = saved; + /* */ if (fdecl[0].Type.TypeParams.NumFields() > 0 && fdecl[0].Body === ptrType$73.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (fdecl[0].Type.TypeParams.NumFields() > 0 && fdecl[0].Body === ptrType$73.nil) { */ case 4: + $r = check[0].softErrorf(fdecl[0].Name, 131, "parameterized function is missing function body", sliceType$5.nil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + if (!check[0].conf.IgnoreFuncBodies && !(fdecl[0].Body === ptrType$73.nil)) { + check[0].later((function(check, decl$1, fdecl, obj, sig) { return function Checker·funcDecl·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = check[0].funcBody(decl$1[0], obj[0].object.name, sig[0], fdecl[0].Body, $ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·funcDecl·func1, $c: true, $r, $s};return $f; + }; })(check, decl$1, fdecl, obj, sig)).describef(obj[0], "func %s", new sliceType$5([new $String(obj[0].object.name)])); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: funcDecl$1, $c: true, $r, check, decl$1, fdecl, obj, saved, sig, $s};return $f; + }; + $ptrType(Checker).prototype.declStmt = function declStmt(d) { + var {check, d, pkg, $s, $r, $c} = $restore(this, {d}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = [check]; + pkg = [pkg]; + check[0] = this; + pkg[0] = check[0].pkg; + $r = check[0].walkDecl(d, (function(check, pkg) { return function Checker·declStmt·func1(d$1) { + var {_1, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, d$1, d$2, d$3, d$4, d$5, i, i$1, i$2, i$3, i$4, init$7, init$8, lhs, lhs$1, lhs0, name, name$1, name$2, name$3, obj, obj$1, obj$2, obj$3, scopePos$2, scopePos$3, scopePos$4, top, top$1, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {d$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = d$1; + /* */ if ($assertType(_ref, constDecl, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, varDecl, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, typeDecl, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, constDecl, true)[1]) { */ case 1: + d$2 = $clone(_ref.$val, constDecl); + top = check[0].delayed.$length; + lhs = $makeSlice(sliceType$33, d$2.spec.Names.$length); + _ref$1 = d$2.spec.Names; + _i = 0; + /* while (true) { */ case 6: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 7; continue; } + i = _i; + name = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + obj = NewConst(name.Pos(), pkg[0], name.Name, $ifaceNil, constant.MakeInt64((new $Int64(0, d$2.iota)))); + ((i < 0 || i >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i] = obj); + init$7 = $ifaceNil; + if (i < d$2.init.$length) { + init$7 = (x = d$2.init, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + } + $r = check[0].constDecl(obj, d$2.typ, init$7, d$2.inherited); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 6; continue; + case 7: + $r = check[0].processDelayed(top); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = d$2.spec.End(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + scopePos$2 = _r$1; + _ref$2 = d$2.spec.Names; + _i$1 = 0; + /* while (true) { */ case 11: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 12; continue; } + i$1 = _i$1; + name$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + $r = check[0].declare(check[0].environment.scope, name$1, ((i$1 < 0 || i$1 >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i$1]), scopePos$2); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 11; continue; + case 12: + $s = 5; continue; + /* } else if ($assertType(_ref, varDecl, true)[1]) { */ case 2: + d$3 = $clone(_ref.$val, varDecl); + top$1 = check[0].delayed.$length; + lhs0 = $makeSlice(sliceType$10, d$3.spec.Names.$length); + _ref$3 = d$3.spec.Names; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$3.$length)) { break; } + i$2 = _i$2; + name$2 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + ((i$2 < 0 || i$2 >= lhs0.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs0.$array[lhs0.$offset + i$2] = NewVar(name$2.Pos(), pkg[0], name$2.Name, $ifaceNil)); + _i$2++; + } + _ref$4 = lhs0; + _i$3 = 0; + /* while (true) { */ case 14: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 15; continue; } + i$3 = _i$3; + obj$1 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + lhs$1 = sliceType$10.nil; + init$8 = $ifaceNil; + _1 = d$3.spec.Values.$length; + if (_1 === (d$3.spec.Names.$length)) { + init$8 = (x$1 = d$3.spec.Values, ((i$3 < 0 || i$3 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$3])); + } else if (_1 === (1)) { + lhs$1 = lhs0; + init$8 = (x$2 = d$3.spec.Values, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); + } else if (i$3 < d$3.spec.Values.$length) { + init$8 = (x$3 = d$3.spec.Values, ((i$3 < 0 || i$3 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$3])); + } + $r = check[0].varDecl(obj$1, lhs$1, d$3.spec.Type, init$8); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (d$3.spec.Values.$length === 1) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (d$3.spec.Values.$length === 1) { */ case 17: + /* */ if (false) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (false) { */ case 19: + _ref$5 = lhs0; + _i$4 = 0; + /* while (true) { */ case 21: + /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 22; continue; } + obj$2 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); + $r = assert(!($interfaceIsEqual(obj$2.object.typ, $ifaceNil))); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$4++; + $s = 21; continue; + case 22: + /* } */ case 20: + /* break; */ $s = 15; continue; + /* } */ case 18: + _i$3++; + $s = 14; continue; + case 15: + $r = check[0].processDelayed(top$1); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = d$3.spec.End(); /* */ $s = 25; case 25: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + scopePos$3 = _r$2; + _ref$6 = d$3.spec.Names; + _i$5 = 0; + /* while (true) { */ case 26: + /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 27; continue; } + i$4 = _i$5; + name$3 = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); + $r = check[0].declare(check[0].environment.scope, name$3, ((i$4 < 0 || i$4 >= lhs0.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs0.$array[lhs0.$offset + i$4]), scopePos$3); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$5++; + $s = 26; continue; + case 27: + $s = 5; continue; + /* } else if ($assertType(_ref, typeDecl, true)[1]) { */ case 3: + d$4 = $clone(_ref.$val, typeDecl); + obj$3 = NewTypeName(d$4.spec.Name.Pos(), pkg[0], d$4.spec.Name.Name, $ifaceNil); + scopePos$4 = d$4.spec.Name.Pos(); + $r = check[0].declare(check[0].environment.scope, d$4.spec.Name, obj$3, scopePos$4); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = obj$3.object.setColor(2 + ((check[0].push(obj$3) >>> 0)) >>> 0); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].typeDecl(obj$3, d$4.spec, ptrType$9.nil); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].pop().setColor(1); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + d$5 = _ref; + _r$3 = d$5.node(); /* */ $s = 33; case 33: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg = _r$3; + _r$4 = d$5.node(); /* */ $s = 34; case 34: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$1 = _r$4; + $r = check[0].invalidAST(_arg, "unknown ast.Decl node %T", new sliceType$5([_arg$1])); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·declStmt·func1, $c: true, $r, _1, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, d$1, d$2, d$3, d$4, d$5, i, i$1, i$2, i$3, i$4, init$7, init$8, lhs, lhs$1, lhs0, name, name$1, name$2, name$3, obj, obj$1, obj$2, obj$3, scopePos$2, scopePos$3, scopePos$4, top, top$1, x, x$1, x$2, x$3, $s};return $f; + }; })(check, pkg)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: declStmt, $c: true, $r, check, d, pkg, $s};return $f; + }; + $ptrType(Checker).prototype.conversion = function conversion(x, T) { + var {T, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, _v$2, _v$3, _v$4, cause, check, constArg, constConvertibleTo, err, final$1, ok, x, $s, $r, $c} = $restore(this, {x, T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + T = [T]; + cause = [cause]; + check = [check]; + constConvertibleTo = [constConvertibleTo]; + x = [x]; + check[0] = this; + constArg = x[0].mode === 4; + constConvertibleTo[0] = (function(T, cause, check, constConvertibleTo, x) { return function Checker·conversion·func1(T$1, val) { + var {T$1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _v, codepoint, i, ok, t, val, $s, $r, $c} = $restore(this, {T$1, val}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = under(T$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$4, true); + t = _tuple[0]; + /* */ if (t === ptrType$4.nil) { $s = 3; continue; } + _r$2 = representableConst(x[0].val, check[0], t, val); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 4; continue; } + _r$3 = isInteger(x[0].typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + if (!(_r$3)) { _v = false; $s = 8; continue s; } + _r$4 = isString(t); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = _r$4; case 8: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (t === ptrType$4.nil) { */ case 3: + $s = 6; continue; + /* } else if (_r$2) { */ case 4: + $s = -1; return true; + /* } else if (_v) { */ case 5: + codepoint = 65533; + _r$5 = constant.Uint64Val(x[0].val); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = _r$5; + i = _tuple$1[0]; + ok = _tuple$1[1]; + if (ok && (i.$high < 0 || (i.$high === 0 && i.$low <= 1114111))) { + codepoint = ((i.$low >> 0)); + } + if (!(val === ptrType$50.nil)) { + val.$set(constant.MakeString(($encodeRune(codepoint)))); + } + $s = -1; return true; + /* } */ case 6: + case 1: + $s = -1; return false; + /* */ } return; } var $f = {$blk: Checker·conversion·func1, $c: true, $r, T$1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _v, codepoint, i, ok, t, val, $s};return $f; + }; })(T, cause, check, constConvertibleTo, x); + ok = false; + cause[0] = ""; + if (!(constArg)) { _v = false; $s = 6; continue s; } + _r$1 = isConstType(T[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 6: + /* */ if (_v) { $s = 2; continue; } + /* */ if (constArg && isTypeParam(T[0])) { $s = 3; continue; } + _r$2 = x[0].convertibleTo(check[0], T[0], (cause.$ptr || (cause.$ptr = new ptrType$34(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 2: + _r$3 = constConvertibleTo[0](T[0], (x[0].$ptr_val || (x[0].$ptr_val = new ptrType$50(function() { return this.$target.val; }, function($v) { this.$target.val = $v; }, x[0])))); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ok = _r$3; + $s = 5; continue; + /* } else if (constArg && isTypeParam(T[0])) { */ case 3: + _r$4 = $assertType(T[0], ptrType$14).underIs((function(T, cause, check, constConvertibleTo, x) { return function Checker·conversion·func2(u) { + var {_r$4, _r$5, _r$6, _r$7, _r$8, _v$1, u, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if ($interfaceIsEqual(u, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(u, $ifaceNil)) { */ case 1: + _r$4 = check[0].sprintf("%s does not contain specific types", new sliceType$5([T[0]])); /* */ $s = 3; case 3: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + cause[0] = _r$4; + $s = -1; return false; + /* } */ case 2: + _r$5 = isString(x[0].typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + if (!(_r$5)) { _v$1 = false; $s = 6; continue s; } + _r$6 = isBytesOrRunes(u); /* */ $s = 8; case 8: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$1 = _r$6; case 6: + /* */ if (_v$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v$1) { */ case 4: + $s = -1; return true; + /* } */ case 5: + _r$7 = constConvertibleTo[0](u, ptrType$50.nil); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (!_r$7) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!_r$7) { */ case 9: + _r$8 = check[0].sprintf("cannot convert %s to %s (in %s)", new sliceType$5([x[0], u, T[0]])); /* */ $s = 12; case 12: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + cause[0] = _r$8; + $s = -1; return false; + /* } */ case 10: + $s = -1; return true; + /* */ } return; } var $f = {$blk: Checker·conversion·func2, $c: true, $r, _r$4, _r$5, _r$6, _r$7, _r$8, _v$1, u, $s};return $f; + }; })(T, cause, check, constConvertibleTo, x)); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + ok = _r$4; + x[0].mode = 7; + $s = 5; continue; + /* } else if (_r$2) { */ case 4: + ok = true; + x[0].mode = 7; + /* } */ case 5: + case 1: + /* */ if (!ok) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!ok) { */ case 11: + /* */ if (false) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (false) { */ case 13: + /* */ if (!(cause[0] === "")) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!(cause[0] === "")) { */ case 16: + err = newErrorf(x[0], 96, "cannot convert %s to type %s:", new sliceType$5([x[0], T[0]])); + err.errorf(0, cause[0], sliceType$5.nil); + $r = check[0].report(err); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 18; continue; + /* } else { */ case 17: + $r = check[0].errorf(x[0], 96, "cannot convert %s to type %s", new sliceType$5([x[0], T[0]])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + $s = 15; continue; + /* } else { */ case 14: + /* */ if (!(cause[0] === "")) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!(cause[0] === "")) { */ case 21: + $r = check[0].errorf(x[0], 96, "cannot convert %s to %s (%s)", new sliceType$5([x[0], T[0], new $String(cause[0])])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 23; continue; + /* } else { */ case 22: + $r = check[0].errorf(x[0], 96, "cannot convert %s to %s", new sliceType$5([x[0], T[0]])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + /* } */ case 15: + x[0].mode = 0; + $s = -1; return; + /* } */ case 12: + /* */ if (isUntyped(x[0].typ)) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (isUntyped(x[0].typ)) { */ case 26: + final$1 = T[0]; + _r$5 = isNonTypeParamInterface(T[0]); /* */ $s = 32; case 32: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + if (_r$5) { _v$1 = true; $s = 31; continue s; } + if (!(constArg)) { _v$2 = false; $s = 33; continue s; } + _r$6 = isConstType(T[0]); /* */ $s = 34; case 34: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$2 = !_r$6; case 33: + _v$1 = _v$2; case 31: + /* */ if (_v$1 || x[0].isNil()) { $s = 28; continue; } + if (!(x[0].mode === 4)) { _v$4 = false; $s = 36; continue s; } + _r$7 = isInteger(x[0].typ); /* */ $s = 37; case 37: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$4 = _r$7; case 36: + if (!(_v$4)) { _v$3 = false; $s = 35; continue s; } + _r$8 = allString(T[0]); /* */ $s = 38; case 38: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _v$3 = _r$8; case 35: + /* */ if (_v$3) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (_v$1 || x[0].isNil()) { */ case 28: + final$1 = Default(x[0].typ); + $s = 30; continue; + /* } else if (_v$3) { */ case 29: + final$1 = x[0].typ; + /* } */ case 30: + $r = check[0].updateExprType(x[0].expr, final$1, true); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + x[0].typ = T[0]; + $s = -1; return; + /* */ } return; } var $f = {$blk: conversion, $c: true, $r, T, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, _v$2, _v$3, _v$4, cause, check, constArg, constConvertibleTo, err, final$1, ok, x, $s};return $f; + }; + $ptrType(operand).prototype.convertibleTo = function convertibleTo(check, T, cause) { + var {$24r, $24r$1, $24r$2, T, T$1, Tp, Tu, V, V$1, Vp, Vu, _arg, _arg$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, a, cause, check, errorf$2, ok, ok$1, ok$2, p, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {check, T, cause}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + T = [T]; + Tp = [Tp]; + Vp = [Vp]; + cause = [cause]; + check = [check]; + errorf$2 = [errorf$2]; + x = [x]; + x$1 = [x$1]; + x$2 = [x$2]; + x$2[0] = this; + _r$1 = x$2[0].assignableTo(check[0], T[0], cause[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + ok = _tuple[0]; + if (ok) { + $s = -1; return true; + } + V = x$2[0].typ; + _r$2 = under(V); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + Vu = _r$2; + _r$3 = under(T[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + Tu = _r$3; + _tuple$1 = $assertType(V, ptrType$14, true); + Vp[0] = _tuple$1[0]; + _tuple$2 = $assertType(T[0], ptrType$14, true); + Tp[0] = _tuple$2[0]; + _r$4 = IdenticalIgnoreTags(Vu, Tu); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4 && Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$4 && Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { */ case 4: + $s = -1; return true; + /* } */ case 5: + _tuple$3 = $assertType(V, ptrType$26, true); + V$1 = _tuple$3[0]; + ok$1 = _tuple$3[1]; + /* */ if (ok$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (ok$1) { */ case 7: + _tuple$4 = $assertType(T[0], ptrType$26, true); + T$1 = _tuple$4[0]; + ok$2 = _tuple$4[1]; + /* */ if (ok$2) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (ok$2) { */ case 9: + _r$5 = under(V$1.base); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg = _r$5; + _r$6 = under(T$1.base); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$1 = _r$6; + _r$7 = IdenticalIgnoreTags(_arg, _arg$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7 && !isTypeParam(V$1.base) && !isTypeParam(T$1.base)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_r$7 && !isTypeParam(V$1.base) && !isTypeParam(T$1.base)) { */ case 11: + $s = -1; return true; + /* } */ case 12: + /* } */ case 10: + /* } */ case 8: + _r$8 = isIntegerOrFloat(Vu); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + if (!(_r$8)) { _v = false; $s = 18; continue s; } + _r$9 = isIntegerOrFloat(Tu); /* */ $s = 20; case 20: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _v = _r$9; case 18: + /* */ if (_v) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_v) { */ case 16: + $s = -1; return true; + /* } */ case 17: + _r$10 = isComplex(Vu); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + if (!(_r$10)) { _v$1 = false; $s = 23; continue s; } + _r$11 = isComplex(Tu); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _v$1 = _r$11; case 23: + /* */ if (_v$1) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_v$1) { */ case 21: + $s = -1; return true; + /* } */ case 22: + _r$12 = isInteger(Vu); /* */ $s = 30; case 30: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + if (_r$12) { _v$3 = true; $s = 29; continue s; } + _r$13 = isBytesOrRunes(Vu); /* */ $s = 31; case 31: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _v$3 = _r$13; case 29: + if (!(_v$3)) { _v$2 = false; $s = 28; continue s; } + _r$14 = isString(Tu); /* */ $s = 32; case 32: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _v$2 = _r$14; case 28: + /* */ if (_v$2) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (_v$2) { */ case 26: + $s = -1; return true; + /* } */ case 27: + _r$15 = isString(Vu); /* */ $s = 36; case 36: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + if (!(_r$15)) { _v$4 = false; $s = 35; continue s; } + _r$16 = isBytesOrRunes(Tu); /* */ $s = 37; case 37: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _v$4 = _r$16; case 35: + /* */ if (_v$4) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (_v$4) { */ case 33: + $s = -1; return true; + /* } */ case 34: + _r$17 = isPointer(Vu); /* */ $s = 42; case 42: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + if (_r$17) { _v$6 = true; $s = 41; continue s; } + _r$18 = isUintptr(Vu); /* */ $s = 43; case 43: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _v$6 = _r$18; case 41: + if (!(_v$6)) { _v$5 = false; $s = 40; continue s; } + _r$19 = isUnsafePointer(Tu); /* */ $s = 44; case 44: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _v$5 = _r$19; case 40: + /* */ if (_v$5) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (_v$5) { */ case 38: + $s = -1; return true; + /* } */ case 39: + _r$20 = isUnsafePointer(Vu); /* */ $s = 48; case 48: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + if (!(_r$20)) { _v$7 = false; $s = 47; continue s; } + _r$21 = isPointer(Tu); /* */ $s = 50; case 50: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + if (_r$21) { _v$8 = true; $s = 49; continue s; } + _r$22 = isUintptr(Tu); /* */ $s = 51; case 51: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _v$8 = _r$22; case 49: + _v$7 = _v$8; case 47: + /* */ if (_v$7) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (_v$7) { */ case 45: + $s = -1; return true; + /* } */ case 46: + _tuple$5 = $assertType(Vu, ptrType$25, true); + s = _tuple$5[0]; + /* */ if (!(s === ptrType$25.nil)) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (!(s === ptrType$25.nil)) { */ case 52: + _tuple$6 = $assertType(Tu, ptrType$26, true); + p = _tuple$6[0]; + /* */ if (!(p === ptrType$26.nil)) { $s = 54; continue; } + /* */ $s = 55; continue; + /* if (!(p === ptrType$26.nil)) { */ case 54: + _r$23 = under(p.Elem()); /* */ $s = 56; case 56: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _tuple$7 = $assertType(_r$23, ptrType$10, true); + a = _tuple$7[0]; + /* */ if (!(a === ptrType$10.nil)) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (!(a === ptrType$10.nil)) { */ case 57: + _r$24 = Identical(s.Elem(), a.Elem()); /* */ $s = 61; case 61: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (_r$24) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (_r$24) { */ case 59: + if (check[0] === ptrType$6.nil || check[0].allowVersion(check[0].pkg, 1, 17)) { + $s = -1; return true; + } + if (!(cause[0] === ptrType$34.nil)) { + cause[0].$set("conversion of slices to array pointers requires go1.17 or later"); + } + /* } */ case 60: + /* } */ case 58: + /* } */ case 55: + /* } */ case 53: + if (Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { + $s = -1; return false; + } + errorf$2[0] = (function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func1(format, args) { + var {_r$25, args, format, msg$1, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (!(check[0] === ptrType$6.nil) && !(cause[0] === ptrType$34.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(check[0] === ptrType$6.nil) && !(cause[0] === ptrType$34.nil)) { */ case 1: + _r$25 = check[0].sprintf(format, args); /* */ $s = 3; case 3: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + msg$1 = _r$25; + if (!(cause[0].$get() === "")) { + msg$1 = msg$1 + ("\n\t" + cause[0].$get()); + } + cause[0].$set(msg$1); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: operand·convertibleTo·func1, $c: true, $r, _r$25, args, format, msg$1, $s};return $f; + }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2); + /* */ if (!(Vp[0] === ptrType$14.nil) && !(Tp[0] === ptrType$14.nil)) { $s = 63; continue; } + /* */ if (!(Vp[0] === ptrType$14.nil)) { $s = 64; continue; } + /* */ if (!(Tp[0] === ptrType$14.nil)) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!(Vp[0] === ptrType$14.nil) && !(Tp[0] === ptrType$14.nil)) { */ case 63: + x[0] = $clone(x$2[0], operand); + _r$25 = Vp[0].is((function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func2(V$2) { + var {$24r, V$2, _r$25, $s, $r, $c} = $restore(this, {V$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + V$2 = [V$2]; + if (V$2[0] === ptrType$5.nil) { + $s = -1; return false; + } + x[0].typ = V$2[0].typ; + _r$25 = Tp[0].is((function(T, Tp, V$2, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func2·func1(T$2) { + var {T$2, _r$25, $s, $r, $c} = $restore(this, {T$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (T$2 === ptrType$5.nil) { + $s = -1; return false; + } + _r$25 = x[0].convertibleTo(check[0], T$2.typ, cause[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + /* */ if (!_r$25) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$25) { */ case 1: + $r = errorf$2[0]("cannot convert %s (in %s) to %s (in %s)", new sliceType$5([V$2[0].typ, Vp[0], T$2.typ, Tp[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + $s = -1; return true; + /* */ } return; } var $f = {$blk: operand·convertibleTo·func2·func1, $c: true, $r, T$2, _r$25, $s};return $f; + }; })(T, Tp, V$2, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 1; case 1: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: operand·convertibleTo·func2, $c: true, $r, $24r, V$2, _r$25, $s};return $f; + }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 67; case 67: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 68; case 68: return $24r; + /* } else if (!(Vp[0] === ptrType$14.nil)) { */ case 64: + x$1[0] = $clone(x$2[0], operand); + _r$26 = Vp[0].is((function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func3(V$2) { + var {V$2, _r$26, $s, $r, $c} = $restore(this, {V$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (V$2 === ptrType$5.nil) { + $s = -1; return false; + } + x$1[0].typ = V$2.typ; + _r$26 = x$1[0].convertibleTo(check[0], T[0], cause[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + /* */ if (!_r$26) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$26) { */ case 1: + $r = errorf$2[0]("cannot convert %s (in %s) to %s", new sliceType$5([V$2.typ, Vp[0], T[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + $s = -1; return true; + /* */ } return; } var $f = {$blk: operand·convertibleTo·func3, $c: true, $r, V$2, _r$26, $s};return $f; + }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 69; case 69: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + $24r$1 = _r$26; + $s = 70; case 70: return $24r$1; + /* } else if (!(Tp[0] === ptrType$14.nil)) { */ case 65: + _r$27 = Tp[0].is((function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func4(T$2) { + var {T$2, _r$27, $s, $r, $c} = $restore(this, {T$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (T$2 === ptrType$5.nil) { + $s = -1; return false; + } + _r$27 = x$2[0].convertibleTo(check[0], T$2.typ, cause[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + /* */ if (!_r$27) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$27) { */ case 1: + $r = errorf$2[0]("cannot convert %s to %s (in %s)", new sliceType$5([x$2[0].typ, T$2.typ, Tp[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + $s = -1; return true; + /* */ } return; } var $f = {$blk: operand·convertibleTo·func4, $c: true, $r, T$2, _r$27, $s};return $f; + }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 71; case 71: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + $24r$2 = _r$27; + $s = 72; case 72: return $24r$2; + /* } */ case 66: + case 62: + $s = -1; return false; + /* */ } return; } var $f = {$blk: convertibleTo, $c: true, $r, $24r, $24r$1, $24r$2, T, T$1, Tp, Tu, V, V$1, Vp, Vu, _arg, _arg$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, a, cause, check, errorf$2, ok, ok$1, ok$2, p, s, x, x$1, x$2, $s};return $f; + }; + isUintptr = function isUintptr$1(typ$4) { + var {_r$1, _tuple, t, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$4, true); + t = _tuple[0]; + $s = -1; return !(t === ptrType$4.nil) && (t.kind === 12); + /* */ } return; } var $f = {$blk: isUintptr$1, $c: true, $r, _r$1, _tuple, t, typ$4, $s};return $f; + }; + isUnsafePointer = function isUnsafePointer$1(typ$4) { + var {_r$1, _tuple, t, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$4, true); + t = _tuple[0]; + $s = -1; return !(t === ptrType$4.nil) && (t.kind === 18); + /* */ } return; } var $f = {$blk: isUnsafePointer$1, $c: true, $r, _r$1, _tuple, t, typ$4, $s};return $f; + }; + isPointer = function isPointer$1(typ$4) { + var {_r$1, _tuple, ok, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$26, true); + ok = _tuple[1]; + $s = -1; return ok; + /* */ } return; } var $f = {$blk: isPointer$1, $c: true, $r, _r$1, _tuple, ok, typ$4, $s};return $f; + }; + isBytesOrRunes = function isBytesOrRunes$1(typ$4) { + var {_r$1, _r$2, _tuple, _tuple$1, s, t, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$25, true); + s = _tuple[0]; + /* */ if (!(s === ptrType$25.nil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(s === ptrType$25.nil)) { */ case 2: + _r$2 = under(s.elem); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$2, ptrType$4, true); + t = _tuple$1[0]; + $s = -1; return !(t === ptrType$4.nil) && ((t.kind === 8) || (t.kind === 5)); + /* } */ case 3: + $s = -1; return false; + /* */ } return; } var $f = {$blk: isBytesOrRunes$1, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, s, t, typ$4, $s};return $f; + }; + NewContext = function NewContext$1() { + return new Context.ptr(new sync.Mutex.ptr(0, 0), new $global.Map(), 0, new $global.Map()); + }; + $pkg.NewContext = NewContext; + $ptrType(Context).prototype.instanceHash = function instanceHash(orig, targs) { + var {_r$1, _r$2, _r$3, buf, ctxt, h, orig, targs, $s, $r, $c} = $restore(this, {orig, targs}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + ctxt = this; + $r = assert(!(ctxt === ptrType$51.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(orig, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + _r$1 = newTypeHasher(buf[0], ctxt); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + h = _r$1; + _r$2 = ctxt.getID(orig); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = strconv.Itoa(_r$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = h.string(_r$3); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = h.typ(orig); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (targs.$length > 0) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (targs.$length > 0) { */ case 8: + $r = h.typeList(targs); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + $s = -1; return strings.Replace(buf[0].String(), " ", "#", -1); + /* */ } return; } var $f = {$blk: instanceHash, $c: true, $r, _r$1, _r$2, _r$3, buf, ctxt, h, orig, targs, $s};return $f; + }; + $ptrType(Context).prototype.lookup = function lookup$2(h, orig, targs) { + var {$24r, $24r$1, _entry, _i, _r$1, _r$2, _ref, ctxt, e, h, orig, targs, $s, $deferred, $r, $c} = $restore(this, {h, orig, targs}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + ctxt = this; + $r = ctxt.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(ctxt.mu, "Unlock"), []]); + _ref = (_entry = $mapIndex(ctxt.typeMap,$String.keyFor(h)), _entry !== undefined ? _entry.v : sliceType$34.nil); + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), ctxtEntry); + _r$1 = identicalInstance(orig, targs, e.orig, e.targs); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + $24r = e.instance; + $s = 7; case 7: return $24r; + /* } */ case 5: + /* */ if (false) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (false) { */ case 8: + _r$2 = fmt.Sprintf("non-identical instances: (orig: %s, targs: %v) and %s", new sliceType$5([orig, targs, e.instance])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $panic(new $String(_r$2)); + /* } */ case 9: + _i++; + $s = 2; continue; + case 3: + $24r$1 = $ifaceNil; + $s = 11; case 11: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: lookup$2, $c: true, $r, $24r, $24r$1, _entry, _i, _r$1, _r$2, _ref, ctxt, e, h, orig, targs, $s, $deferred};return $f; } } + }; + $ptrType(Context).prototype.update = function update(h, orig, targs, inst) { + var {$24r, $24r$1, _entry, _entry$1, _i, _key, _r$1, _r$2, _ref, _v, ctxt, e, h, inst, orig, targs, $s, $deferred, $r, $c} = $restore(this, {h, orig, targs, inst}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + ctxt = this; + $r = assert(!($interfaceIsEqual(inst, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ctxt.mu.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(ctxt.mu, "Unlock"), []]); + _ref = (_entry = $mapIndex(ctxt.typeMap,$String.keyFor(h)), _entry !== undefined ? _entry.v : sliceType$34.nil); + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), ctxtEntry); + if ($interfaceIsEqual(inst, $ifaceNil)) { _v = true; $s = 7; continue s; } + _r$1 = Identical(inst, e.instance); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 7: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_v) { */ case 5: + $24r = e.instance; + $s = 9; case 9: return $24r; + /* } */ case 6: + /* */ if (false) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (false) { */ case 10: + _r$2 = fmt.Sprintf("%s and %s are not identical", new sliceType$5([inst, e.instance])); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $panic(new $String(_r$2)); + /* } */ case 11: + _i++; + $s = 3; continue; + case 4: + _key = h; (ctxt.typeMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: $append((_entry$1 = $mapIndex(ctxt.typeMap,$String.keyFor(h)), _entry$1 !== undefined ? _entry$1.v : sliceType$34.nil), new ctxtEntry.ptr(orig, targs, inst)) }); + $24r$1 = inst; + $s = 13; case 13: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: update, $c: true, $r, $24r, $24r$1, _entry, _entry$1, _i, _key, _r$1, _r$2, _ref, _v, ctxt, e, h, inst, orig, targs, $s, $deferred};return $f; } } + }; + $ptrType(Context).prototype.getID = function getID(t) { + var {$24r, _entry, _key, _tuple, ctxt, id, ok, t, $s, $deferred, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + ctxt = this; + $r = ctxt.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(ctxt.mu, "Unlock"), []]); + _tuple = (_entry = $mapIndex(ctxt.originIDs,Type.keyFor(t)), _entry !== undefined ? [_entry.v, true] : [0, false]); + id = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + id = ctxt.nextID; + _key = t; (ctxt.originIDs || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: id }); + ctxt.nextID = ctxt.nextID + (1) >> 0; + } + $24r = id; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: getID, $c: true, $r, $24r, _entry, _key, _tuple, ctxt, id, ok, t, $s, $deferred};return $f; } } + }; + $ptrType(environment).prototype.lookup = function lookup$3(name) { + var {_r$1, _tuple, env, name, obj, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + env = this; + _r$1 = env.scope.LookupParent(name, env.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + obj = _tuple[1]; + $s = -1; return obj; + /* */ } return; } var $f = {$blk: lookup$3, $c: true, $r, _r$1, _tuple, env, name, obj, $s};return $f; + }; + $ptrType(action).prototype.describef = function describef(pos$1, format, args) { + var a, args, format, pos$1; + a = this; + if (false) { + a.desc = new actionDesc.ptr(pos$1, format, args); + } + }; + $ptrType(Checker).prototype.addDeclDep = function addDeclDep(to) { + var _entry, _tuple, check, found, from, to; + check = this; + from = check.environment.decl; + if (from === ptrType$57.nil) { + return; + } + _tuple = (_entry = $mapIndex(check.objMap,Object.keyFor(to)), _entry !== undefined ? [_entry.v, true] : [ptrType$57.nil, false]); + found = _tuple[1]; + if (!found) { + return; + } + from.addDep(to); + }; + $ptrType(Checker).prototype.brokenAlias = function brokenAlias(alias) { + var _key, alias, check; + check = this; + if (check.brokenAliases === false) { + check.brokenAliases = new $global.Map(); + } + _key = alias; (check.brokenAliases || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key), { k: _key, v: true }); + alias.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + }; + $ptrType(Checker).prototype.validAlias = function validAlias(alias, typ$4) { + var alias, check, typ$4; + check = this; + $mapDelete(check.brokenAliases, ptrType$17.keyFor(alias)); + alias.object.typ = typ$4; + }; + $ptrType(Checker).prototype.isBrokenAlias = function isBrokenAlias(alias) { + var _entry, alias, check; + check = this; + return $interfaceIsEqual(alias.object.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) && (_entry = $mapIndex(check.brokenAliases,ptrType$17.keyFor(alias)), _entry !== undefined ? _entry.v : false); + }; + $ptrType(Checker).prototype.rememberUntyped = function rememberUntyped(e, lhs, mode, typ$4, val) { + var _key, check, e, lhs, m, mode, typ$4, val; + check = this; + m = check.untyped; + if (m === false) { + m = new $global.Map(); + check.untyped = m; + } + _key = e; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(new exprInfo.ptr(lhs, mode, typ$4, val), exprInfo) }); + }; + $ptrType(Checker).prototype.later = function later(f) { + var check, f, i, x; + check = this; + i = check.delayed.$length; + check.delayed = $append(check.delayed, new action.ptr(f, ptrType$109.nil)); + return (x = check.delayed, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(Checker).prototype.push = function push(obj) { + var check, obj; + check = this; + check.objPath = $append(check.objPath, obj); + return check.objPath.$length - 1 >> 0; + }; + $ptrType(Checker).prototype.pop = function pop() { + var check, i, obj, x, x$1; + check = this; + i = check.objPath.$length - 1 >> 0; + obj = (x = check.objPath, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + (x$1 = check.objPath, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i] = $ifaceNil)); + check.objPath = $subslice(check.objPath, 0, i); + return obj; + }; + $ptrType(Checker).prototype.needsCleanup = function needsCleanup(c) { + var c, check; + check = this; + check.cleaners = $append(check.cleaners, c); + }; + NewChecker = function NewChecker$1(conf, fset, pkg, info) { + var {_r$1, _r$2, _tuple, conf, err, fset, info, pkg, version$1, $s, $r, $c} = $restore(this, {conf, fset, pkg, info}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (conf === ptrType$101.nil) { + conf = new Config.ptr(ptrType$51.nil, "", false, false, false, $throwNilPointerError, $ifaceNil, $ifaceNil, false); + } + if (info === ptrType$110.nil) { + info = new Info.ptr(false, false, false, false, false, false, false, sliceType$30.nil); + } + _r$1 = parseGoVersion(conf.GoVersion); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + version$1 = $clone(_tuple[0], version); + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$2 = fmt.Sprintf("invalid Go version %q (%v)", new sliceType$5([new $String(conf.GoVersion), err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $panic(new $String(_r$2)); + /* } */ case 3: + $s = -1; return new Checker.ptr(conf, conf.Context, fset, pkg, info, $clone(version$1, version), new $Uint64(0, 0), new $global.Map(), new $global.Map(), new instanceLookup.ptr(false), false, false, sliceType$35.nil, sliceType$36.nil, false, false, false, false, new monoGraph.ptr(sliceType$37.nil, sliceType$38.nil, false, false), $ifaceNil, false, false, sliceType$39.nil, sliceType$8.nil, sliceType$40.nil, new environment.ptr(ptrType$57.nil, ptrType.nil, 0, $ifaceNil, $ifaceNil, false, ptrType$27.nil, false, false, false), 0); + /* */ } return; } var $f = {$blk: NewChecker$1, $c: true, $r, _r$1, _r$2, _tuple, conf, err, fset, info, pkg, version$1, $s};return $f; + }; + $pkg.NewChecker = NewChecker; + $ptrType(Checker).prototype.initFiles = function initFiles(files) { + var {_1, _i, _ref, check, file, files, name, pkg, $s, $r, $c} = $restore(this, {files}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + check.files = sliceType$35.nil; + check.imports = sliceType$36.nil; + check.dotImportMap = false; + check.firstErr = $ifaceNil; + check.methods = false; + check.untyped = false; + check.delayed = sliceType$39.nil; + check.objPath = sliceType$8.nil; + check.cleaners = sliceType$40.nil; + pkg = check.pkg; + _ref = files; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + file = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + name = file.Name.Name; + _1 = pkg.name; + /* */ if (_1 === ("")) { $s = 4; continue; } + /* */ if (_1 === (name)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === ("")) { */ case 4: + /* */ if (!(name === "_")) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!(name === "_")) { */ case 8: + pkg.name = name; + $s = 10; continue; + /* } else { */ case 9: + $r = check.errorf(file.Name, 2, "invalid package name _", sliceType$5.nil); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + check.files = $append(check.files, file); + $s = 7; continue; + /* } else if (_1 === (name)) { */ case 5: + check.files = $append(check.files, file); + $s = 7; continue; + /* } else { */ case 6: + $r = check.errorf(new atPos(((file.Package >> 0))), 3, "package %s; expected %s", new sliceType$5([new $String(name), new $String(pkg.name)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + case 3: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: initFiles, $c: true, $r, _1, _i, _ref, check, file, files, name, pkg, $s};return $f; + }; + $ptrType(Checker).prototype.handleBailout = function handleBailout(err) { + var _ref, check, err, p, p$1; + check = this; + _ref = $recover(); + if (_ref === $ifaceNil || $assertType(_ref, bailout, true)[1]) { + p = _ref; + err.$set(check.firstErr); + } else { + p$1 = _ref; + $panic(p$1); + } + }; + $ptrType(Checker).prototype.Files = function Files(files) { + var {$24r, _r$1, check, files, $s, $r, $c} = $restore(this, {files}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.checkFiles(files); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Files, $c: true, $r, $24r, _r$1, check, files, $s};return $f; + }; + $ptrType(Checker).prototype.checkFiles = function checkFiles(files) { + var {check, err, files, print, $s, $deferred, $r, $c} = $restore(this, {files}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + err = [err]; + err[0] = $ifaceNil; + check = this; + if (check.conf.FakeImportC && check.conf.go115UsesCgo) { + err[0] = errBadCgo; + $s = -1; return err[0]; + } + $deferred.push([$methodVal(check, "handleBailout"), [(err.$ptr || (err.$ptr = new ptrType$103(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err)))]]); + print = (function(err) { return function Checker·checkFiles·func1(msg$1) { + var {_r$1, _r$2, msg$1, $s, $r, $c} = $restore(this, {msg$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + _r$1 = fmt.Println(sliceType$5.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = fmt.Println(new sliceType$5([new $String(msg$1)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·checkFiles·func1, $c: true, $r, _r$1, _r$2, msg$1, $s};return $f; + }; })(err); + $r = print("== initFiles =="); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.initFiles(files); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = print("== collectObjects =="); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.collectObjects(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = print("== packageObjects =="); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.packageObjects(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = print("== processDelayed =="); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.processDelayed(0); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = print("== cleanup =="); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.cleanup(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = print("== initOrder =="); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.initOrder(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!check.conf.DisableUnusedImportCheck) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!check.conf.DisableUnusedImportCheck) { */ case 13: + $r = print("== unusedImports =="); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.unusedImports(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + $r = print("== recordUntyped =="); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.recordUntyped(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(check.firstErr, $ifaceNil)) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if ($interfaceIsEqual(check.firstErr, $ifaceNil)) { */ case 19: + $r = check.monomorph(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + check.pkg.complete = true; + check.imports = sliceType$36.nil; + check.dotImportMap = false; + check.pkgPathMap = false; + check.seenPkgMap = false; + check.recvTParamMap = false; + check.brokenAliases = false; + check.unionTypeSets = false; + check.ctxt = ptrType$51.nil; + $s = -1; return err[0]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: checkFiles, $c: true, $r, check, err, files, print, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.processDelayed = function processDelayed(top) { + var {_r$1, _r$2, a, check, i, top, x, $s, $r, $c} = $restore(this, {top}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + i = top; + /* while (true) { */ case 1: + /* if (!(i < check.delayed.$length)) { break; } */ if(!(i < check.delayed.$length)) { $s = 2; continue; } + a = (x = check.delayed, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + /* */ if (false) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (false) { */ case 3: + /* */ if (!(a.desc === ptrType$109.nil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(a.desc === ptrType$109.nil)) { */ case 5: + _r$1 = a.desc.pos.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = check.trace(_r$1, "-- " + a.desc.format, a.desc.args); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + $r = check.trace(0, "-- delayed %p", new sliceType$5([new funcType$1(a.f)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + /* } */ case 4: + $r = a.f(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (false) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (false) { */ case 12: + _r$2 = fmt.Println(sliceType$5.nil); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 13: + i = i + (1) >> 0; + $s = 1; continue; + case 2: + $r = assert(top <= check.delayed.$length); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check.delayed = $subslice(check.delayed, 0, top); + $s = -1; return; + /* */ } return; } var $f = {$blk: processDelayed, $c: true, $r, _r$1, _r$2, a, check, i, top, x, $s};return $f; + }; + $ptrType(Checker).prototype.cleanup = function cleanup$3() { + var {check, i, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < check.cleaners.$length)) { break; } */ if(!(i < check.cleaners.$length)) { $s = 2; continue; } + $r = (x = check.cleaners, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).cleanup(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + $s = 1; continue; + case 2: + check.cleaners = sliceType$40.nil; + $s = -1; return; + /* */ } return; } var $f = {$blk: cleanup$3, $c: true, $r, check, i, x, $s};return $f; + }; + $ptrType(Checker).prototype.record = function record(x) { + var {_1, check, typ$4, val, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + typ$4 = $ifaceNil; + val = $ifaceNil; + _1 = x.mode; + if (_1 === (0)) { + typ$4 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } else if (_1 === (1)) { + typ$4 = (ptrType$15.nil); + } else if (_1 === (4)) { + typ$4 = x.typ; + val = x.val; + } else { + typ$4 = x.typ; + } + $r = assert(!($interfaceIsEqual(x.expr, $ifaceNil)) && !($interfaceIsEqual(typ$4, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (isUntyped(typ$4)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (isUntyped(typ$4)) { */ case 2: + check.rememberUntyped(x.expr, false, x.mode, $assertType(typ$4, ptrType$4), val); + $s = 4; continue; + /* } else { */ case 3: + $r = check.recordTypeAndValue(x.expr, x.mode, typ$4, val); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + $s = -1; return; + /* */ } return; } var $f = {$blk: record, $c: true, $r, _1, check, typ$4, val, x, $s};return $f; + }; + $ptrType(Checker).prototype.recordUntyped = function recordUntyped() { + var {_arg, _arg$1, _arg$2, _entry, _i, _key, _keys, _r$1, _ref, _size, check, info, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + if (true && check.Info.Types === false) { + $s = -1; return; + } + _ref = check.untyped; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + /* while (true) { */ case 1: + /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 2; continue; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + /* continue; */ $s = 1; continue; + } + x = _entry.k; + info = $clone(_entry.v, exprInfo); + /* */ if (false && isTyped(info.typ)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (false && isTyped(info.typ)) { */ case 3: + _r$1 = x.Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = new token.Pos(_r$1); + _arg$1 = x; + _arg$2 = info.typ; + $r = check.dump("%v: %s (type %s) is typed", new sliceType$5([_arg, _arg$1, _arg$2])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + unreachable(); + /* } */ case 4: + $r = check.recordTypeAndValue(x, info.mode, info.typ, info.val); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: recordUntyped, $c: true, $r, _arg, _arg$1, _arg$2, _entry, _i, _key, _keys, _r$1, _ref, _size, check, info, x, $s};return $f; + }; + $ptrType(Checker).prototype.recordTypeAndValue = function recordTypeAndValue(x, mode, typ$4, val) { + var {_key, _r$1, _v, check, m, mode, typ$4, val, x, $s, $r, $c} = $restore(this, {x, mode, typ$4, val}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!($interfaceIsEqual(x, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(typ$4, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (mode === 0) { + $s = -1; return; + } + /* */ if (mode === 4) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (mode === 4) { */ case 3: + $r = assert(!($interfaceIsEqual(val, $ifaceNil))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($interfaceIsEqual(typ$4, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { _v = true; $s = 6; continue s; } + _r$1 = allBasic(typ$4, 59); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 6: + $r = assert(_v); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + m = check.Info.Types; + if (!(m === false)) { + _key = x; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(new TypeAndValue.ptr(mode, typ$4, val), TypeAndValue) }); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: recordTypeAndValue, $c: true, $r, _key, _r$1, _v, check, m, mode, typ$4, val, x, $s};return $f; + }; + $ptrType(Checker).prototype.recordBuiltinType = function recordBuiltinType(f, sig) { + var {_ref, check, f, p, p$1, p$2, sig, $s, $r, $c} = $restore(this, {f, sig}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + /* while (true) { */ case 1: + $r = check.recordTypeAndValue(f, 2, sig, $ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = f; + if ($assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$36, true)[1]) { + p = _ref; + $s = -1; return; + } else if ($assertType(_ref, ptrType$39, true)[1]) { + p$1 = _ref.$val; + f = p$1.X; + } else { + p$2 = _ref; + unreachable(); + } + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: recordBuiltinType, $c: true, $r, _ref, check, f, p, p$1, p$2, sig, $s};return $f; + }; + $ptrType(Checker).prototype.recordCommaOkTypes = function recordCommaOkTypes(x, a) { + var {_entry, _key, _r$1, _r$2, _tuple, _v, a, check, m, p, pos$1, tv, x, $s, $r, $c} = $restore(this, {x, a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!($interfaceIsEqual(x, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($interfaceIsEqual(a[0], $ifaceNil) || $interfaceIsEqual(a[1], $ifaceNil)) { + $s = -1; return; + } + if (!(isTyped(a[0]) && isTyped(a[1]))) { _v = false; $s = 2; continue s; } + _r$1 = isBoolean(a[1]); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 || $interfaceIsEqual(a[1], universeError); case 2: + $r = assert(_v); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Types; + /* */ if (!(m === false)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(m === false)) { */ case 5: + /* while (true) { */ case 7: + tv = $clone((_entry = $mapIndex(m,ast.Expr.keyFor(x)), _entry !== undefined ? _entry.v : new TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)), TypeAndValue); + $r = assert(!($interfaceIsEqual(tv.Type, $ifaceNil))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = x.Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + pos$1 = _r$2; + tv.Type = NewTuple(new sliceType$10([NewVar(pos$1, check.pkg, "", a[0]), NewVar(pos$1, check.pkg, "", a[1])])); + _key = x; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(tv, TypeAndValue) }); + _tuple = $assertType(x, ptrType$39, true); + p = _tuple[0]; + if (p === ptrType$39.nil) { + /* break; */ $s = 8; continue; + } + x = p.X; + $s = 7; continue; + case 8: + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: recordCommaOkTypes, $c: true, $r, _entry, _key, _r$1, _r$2, _tuple, _v, a, check, m, p, pos$1, tv, x, $s};return $f; + }; + $ptrType(Checker).prototype.recordInstance = function recordInstance$1(expr$1, targs, typ$4) { + var {_key, check, expr$1, ident$1, m, targs, typ$4, $s, $r, $c} = $restore(this, {expr$1, targs, typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + ident$1 = instantiatedIdent(expr$1); + $r = assert(!(ident$1 === ptrType$30.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(typ$4, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Instances; + if (!(m === false)) { + _key = ident$1; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$30.keyFor(_key), { k: _key, v: $clone(new Instance.ptr(newTypeList(targs), typ$4), Instance) }); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: recordInstance$1, $c: true, $r, _key, check, expr$1, ident$1, m, targs, typ$4, $s};return $f; + }; + instantiatedIdent = function instantiatedIdent$1(expr$1) { + var _ref, _ref$1, e, e$1, e$2, expr$1, selOrIdent, x, x$1; + selOrIdent = $ifaceNil; + _ref = expr$1; + if ($assertType(_ref, ptrType$37, true)[1]) { + e = _ref.$val; + selOrIdent = e.X; + } else if ($assertType(_ref, ptrType$38, true)[1]) { + e$1 = _ref.$val; + selOrIdent = e$1.X; + } else if ($assertType(_ref, ptrType$36, true)[1] || $assertType(_ref, ptrType$30, true)[1]) { + e$2 = _ref; + selOrIdent = e$2; + } + _ref$1 = selOrIdent; + if ($assertType(_ref$1, ptrType$30, true)[1]) { + x = _ref$1.$val; + return x; + } else if ($assertType(_ref$1, ptrType$36, true)[1]) { + x$1 = _ref$1.$val; + return x$1.Sel; + } + $panic(new $String("instantiated ident not found")); + }; + $ptrType(Checker).prototype.recordDef = function recordDef(id, obj) { + var {_key, check, id, m, obj, $s, $r, $c} = $restore(this, {id, obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!(id === ptrType$30.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Defs; + if (!(m === false)) { + _key = id; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$30.keyFor(_key), { k: _key, v: obj }); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: recordDef, $c: true, $r, _key, check, id, m, obj, $s};return $f; + }; + $ptrType(Checker).prototype.recordUse = function recordUse(id, obj) { + var {_key, check, id, m, obj, $s, $r, $c} = $restore(this, {id, obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!(id === ptrType$30.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(obj, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Uses; + if (!(m === false)) { + _key = id; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$30.keyFor(_key), { k: _key, v: obj }); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: recordUse, $c: true, $r, _key, check, id, m, obj, $s};return $f; + }; + $ptrType(Checker).prototype.recordImplicit = function recordImplicit(node$5, obj) { + var {_key, check, m, node$5, obj, $s, $r, $c} = $restore(this, {node$5, obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!($interfaceIsEqual(node$5, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(obj, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Implicits; + if (!(m === false)) { + _key = node$5; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key), { k: _key, v: obj }); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: recordImplicit, $c: true, $r, _key, check, m, node$5, obj, $s};return $f; + }; + $ptrType(Checker).prototype.recordSelection = function recordSelection(x, kind, recv, obj, index$2, indirect) { + var {_key, check, index$2, indirect, kind, m, obj, recv, x, $s, $r, $c} = $restore(this, {x, kind, recv, obj, index$2, indirect}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!($interfaceIsEqual(obj, $ifaceNil)) && ($interfaceIsEqual(recv, $ifaceNil) || index$2.$length > 0)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.recordUse(x.Sel, obj); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Selections; + if (!(m === false)) { + _key = x; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$36.keyFor(_key), { k: _key, v: new Selection.ptr(kind, recv, obj, index$2, indirect) }); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: recordSelection, $c: true, $r, _key, check, index$2, indirect, kind, m, obj, recv, x, $s};return $f; + }; + $ptrType(Checker).prototype.recordScope = function recordScope(node$5, scope) { + var {_key, check, m, node$5, scope, $s, $r, $c} = $restore(this, {node$5, scope}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!($interfaceIsEqual(node$5, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(!(scope === ptrType.nil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Scopes; + if (!(m === false)) { + _key = node$5; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key), { k: _key, v: scope }); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: recordScope, $c: true, $r, _key, check, m, node$5, scope, $s};return $f; + }; + $ptrType(Chan).prototype.Dir = function Dir() { + var c; + c = this; + return c.dir; + }; + $ptrType(Chan).prototype.Elem = function Elem$3() { + var c; + c = this; + return c.elem; + }; + $ptrType(Chan).prototype.Underlying = function Underlying$10() { + var t; + t = this; + return t; + }; + $ptrType(Chan).prototype.String = function String$32() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$32, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + $ptrType(Checker).prototype.funcInst = function funcInst(x, ix) { + var {_r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, check, got, ix, res, sig, targs, want, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {x, ix}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + /* */ if (!check.allowVersion(check.pkg, 1, 18)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!check.allowVersion(check.pkg, 1, 18)) { */ case 1: + _r$1 = inNode(ix.Orig, ix.IndexListExpr.Lbrack); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = check.softErrorf((x$1 = _r$1, new x$1.constructor.elem(x$1)), 135, "function instantiation requires go1.18 or later", sliceType$5.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _r$2 = check.typeList(ix.IndexListExpr.Indices); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + targs = _r$2; + if (targs === sliceType$3.nil) { + x.mode = 0; + x.expr = ix.Orig; + $s = -1; return; + } + $r = assert(targs.$length === ix.IndexListExpr.Indices.$length); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + sig = $assertType(x.typ, ptrType$27); + _tmp = targs.$length; + _tmp$1 = sig.TypeParams().Len(); + got = _tmp; + want = _tmp$1; + /* */ if (got > want) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (got > want) { */ case 7: + $r = check.errorf((x$2 = ix.IndexListExpr.Indices, x$3 = got - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), 137, "got %d type arguments but want %d", new sliceType$5([new $Int(got), new $Int(want)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + x.expr = ix.Orig; + $s = -1; return; + /* } */ case 8: + /* */ if (got < want) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (got < want) { */ case 10: + _r$3 = check.infer(ix.Orig, sig.TypeParams().list(), targs, ptrType$15.nil, sliceType$29.nil); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + targs = _r$3; + if (targs === sliceType$3.nil) { + x.mode = 0; + x.expr = ix.Orig; + $s = -1; return; + } + got = targs.$length; + /* } */ case 11: + $r = assert(got === want); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = x.Pos(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = check.instantiateSignature(_r$4, sig, targs, ix.IndexListExpr.Indices); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + res = _r$5; + $r = assert(res.TypeParams().Len() === 0); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.recordInstance(ix.Orig, targs, res); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.typ = res; + x.mode = 7; + x.expr = ix.Orig; + $s = -1; return; + /* */ } return; } var $f = {$blk: funcInst, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, check, got, ix, res, sig, targs, want, x, x$1, x$2, x$3, $s};return $f; + }; + $ptrType(Checker).prototype.instantiateSignature = function instantiateSignature(pos$1, typ$4, targs, xlist) { + var {$24r, _r$1, check, inst, pos$1, res, targs, typ$4, xlist, $s, $deferred, $r, $c} = $restore(this, {pos$1, typ$4, targs, xlist}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + pos$1 = [pos$1]; + res = [res]; + targs = [targs]; + typ$4 = [typ$4]; + xlist = [xlist]; + res[0] = ptrType$27.nil; + check[0] = this; + $r = assert(!(check[0] === ptrType$6.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(targs[0].$length === typ$4[0].TypeParams().Len()); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (false) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (false) { */ case 3: + $r = check[0].trace(pos$1[0], "-- instantiating signature %s with %s", new sliceType$5([typ$4[0], targs[0]])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(check, pos$1, res, targs, typ$4, xlist) { return function Checker·instantiateSignature·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + $r = check[0].trace(pos$1[0], "=> %s (under = %s)", new sliceType$5([res[0], res[0].Underlying()])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·instantiateSignature·func1, $c: true, $r, $s};return $f; + }; })(check, pos$1, res, targs, typ$4, xlist), []]); + /* } */ case 4: + _r$1 = check[0].instance(pos$1[0], typ$4[0], targs[0], ptrType$9.nil, check[0].context()); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + inst = $assertType(_r$1, ptrType$27); + $r = assert(xlist[0].$length <= targs[0].$length); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].later((function(check, pos$1, res, targs, typ$4, xlist) { return function Checker·instantiateSignature·func2() { + var {_r$2, _r$3, _tuple, err, i, pos$2, tparams, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + tparams = typ$4[0].TypeParams().list(); + _r$2 = check[0].verify(pos$1[0], tparams, targs[0], check[0].context()); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + i = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + pos$2 = pos$1[0]; + /* */ if (i < xlist[0].$length) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (i < xlist[0].$length) { */ case 5: + _r$3 = ((i < 0 || i >= xlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist[0].$array[xlist[0].$offset + i]).Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + pos$2 = _r$3; + /* } */ case 6: + $r = check[0].softErrorf(new atPos(((pos$2 >> 0))), 139, "%s", new sliceType$5([err])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 4; continue; + /* } else { */ case 3: + $r = check[0].mono.recordInstance(check[0].pkg, pos$1[0], tparams, targs[0], xlist[0]); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·instantiateSignature·func2, $c: true, $r, _r$2, _r$3, _tuple, err, i, pos$2, tparams, $s};return $f; + }; })(check, pos$1, res, targs, typ$4, xlist)).describef(new atPos(((pos$1[0] >> 0))), "verify instantiation", sliceType$5.nil); + res[0] = inst; + $24r = res[0]; + $s = 8; case 8: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: instantiateSignature, $c: true, $r, $24r, _r$1, check, inst, pos$1, res, targs, typ$4, xlist, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.callExpr = function callExpr(x, call) { + var {T, _1, _2, _3, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _v, args, call, cgocall, check, got, id, isGeneric$2, ix, n, sig, t, targs, want, x, x$1, x$2, x$3, x$4, x$5, x$6, xlist, $s, $r, $c} = $restore(this, {x, call}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + ix = typeparams.UnpackIndexExpr(call.Fun); + /* */ if (!(ix === ptrType$112.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(ix === ptrType$112.nil)) { */ case 1: + _r$1 = check.indexExpr(x, ix); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + $r = assert(x.mode === 7); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else { */ case 5: + ix = ptrType$112.nil; + /* } */ case 6: + x.expr = call.Fun; + $r = check.record(x); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 3; continue; + /* } else { */ case 2: + $r = check.exprOrType(x, call.Fun, true); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + _1 = x.mode; + /* */ if (_1 === (0)) { $s = 12; continue; } + /* */ if (_1 === (3)) { $s = 13; continue; } + /* */ if (_1 === (2)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_1 === (0)) { */ case 12: + $r = check.use(call.Args); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.expr = call; + $s = -1; return 2; + /* } else if (_1 === (3)) { */ case 13: + $r = check.nonGeneric(x); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return 0; + } + T = x.typ; + x.mode = 0; + n = call.Args.$length; + _2 = n; + /* */ if (_2 === (0)) { $s = 19; continue; } + /* */ if (_2 === (1)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_2 === (0)) { */ case 19: + _r$2 = inNode(call, call.Rparen); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = check.errorf((x$1 = _r$2, new x$1.constructor.elem(x$1)), 126, "missing argument in conversion to %s", new sliceType$5([T])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if (_2 === (1)) { */ case 20: + $r = check.expr(x, (x$2 = call.Args, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((x.mode === 0))) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!((x.mode === 0))) { */ case 26: + /* */ if (new token.Pos(call.Ellipsis).IsValid()) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (new token.Pos(call.Ellipsis).IsValid()) { */ case 28: + $r = check.errorf((x$3 = call.Args, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), 77, "invalid use of ... in conversion to %s", new sliceType$5([T])); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 18; continue; + /* } */ case 29: + _r$3 = under(T); /* */ $s = 31; case 31: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = $assertType(_r$3, ptrType$13, true); + t = _tuple[0]; + /* */ if (!(t === ptrType$13.nil) && !isTypeParam(T)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (!(t === ptrType$13.nil) && !isTypeParam(T)) { */ case 32: + _r$4 = t.IsMethodSet(); /* */ $s = 36; case 36: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!_r$4) { */ case 34: + $r = check.errorf(call, 142, "cannot use interface %s in conversion (contains specific type constraints or is comparable)", new sliceType$5([T])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 18; continue; + /* } */ case 35: + /* } */ case 33: + $r = check.conversion(x, T); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + $s = 22; continue; + /* } else { */ case 21: + $r = check.use(call.Args); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.errorf((x$4 = call.Args, x$5 = n - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])), 126, "too many arguments in conversion to %s", new sliceType$5([T])); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 22: + case 18: + x.expr = call; + $s = -1; return 0; + /* } else if (_1 === (2)) { */ case 14: + id = x.id; + _r$5 = check.builtin(x, call, id); /* */ $s = 43; case 43: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (!_r$5) { */ case 41: + x.mode = 0; + /* } */ case 42: + x.expr = call; + if (!((x.mode === 0)) && !((x.mode === 4))) { + check.environment.hasCallOrRecv = true; + } + $s = -1; return ((id < 0 || id >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id]).kind; + /* } */ case 15: + case 11: + cgocall = x.mode === 10; + _r$6 = coreType(x.typ); /* */ $s = 44; case 44: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$6, ptrType$27, true); + sig = _tuple$1[0]; + /* */ if (sig === ptrType$27.nil) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (sig === ptrType$27.nil) { */ case 45: + $r = check.invalidOp(x, 127, "cannot call non-function %s", new sliceType$5([x])); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + x.expr = call; + $s = -1; return 2; + /* } */ case 46: + xlist = sliceType$11.nil; + targs = sliceType$3.nil; + /* */ if (!(ix === ptrType$112.nil)) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (!(ix === ptrType$112.nil)) { */ case 48: + xlist = ix.IndexListExpr.Indices; + _r$7 = check.typeList(xlist); /* */ $s = 50; case 50: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + targs = _r$7; + /* */ if (targs === sliceType$3.nil) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (targs === sliceType$3.nil) { */ case 51: + $r = check.use(call.Args); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + x.expr = call; + $s = -1; return 2; + /* } */ case 52: + $r = assert(targs.$length === xlist.$length); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp = targs.$length; + _tmp$1 = sig.TypeParams().Len(); + got = _tmp; + want = _tmp$1; + /* */ if (got > want) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if (got > want) { */ case 55: + $r = check.errorf(((want < 0 || want >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + want]), 137, "got %d type arguments but want %d", new sliceType$5([new $Int(got), new $Int(want)])); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.use(call.Args); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + x.expr = call; + $s = -1; return 2; + /* } */ case 56: + /* } */ case 49: + _r$8 = check.exprList(call.Args, false); /* */ $s = 59; case 59: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$2 = _r$8; + args = _tuple$2[0]; + isGeneric$2 = sig.TypeParams().Len() > 0; + _r$9 = check.arguments$(call, sig, targs, args, xlist); /* */ $s = 60; case 60: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + sig = _r$9; + /* */ if (isGeneric$2 && (sig.TypeParams().Len() === 0)) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (isGeneric$2 && (sig.TypeParams().Len() === 0)) { */ case 61: + $r = check.recordTypeAndValue(call.Fun, 7, sig, $ifaceNil); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 62: + _3 = sig.results.Len(); + if (_3 === (0)) { + x.mode = 1; + } else if (_3 === (1)) { + if (cgocall) { + x.mode = 9; + } else { + x.mode = 7; + } + x.typ = (x$6 = sig.results.vars, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])).object.typ; + } else { + x.mode = 7; + x.typ = sig.results; + } + x.expr = call; + check.environment.hasCallOrRecv = true; + if (!((x.mode === 7) && sig.TypeParams().Len() > 0)) { _v = false; $s = 66; continue s; } + _r$10 = isParameterized(sig.TypeParams().list(), x.typ); /* */ $s = 67; case 67: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v = _r$10; case 66: + /* */ if (_v) { $s = 64; continue; } + /* */ $s = 65; continue; + /* if (_v) { */ case 64: + x.mode = 0; + /* } */ case 65: + $s = -1; return 2; + /* */ } return; } var $f = {$blk: callExpr, $c: true, $r, T, _1, _2, _3, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _v, args, call, cgocall, check, got, id, isGeneric$2, ix, n, sig, t, targs, want, x, x$1, x$2, x$3, x$4, x$5, x$6, xlist, $s};return $f; + }; + $ptrType(Checker).prototype.exprList = function exprList(elist, allowCommaOk) { + var {_1, _i, _i$1, _ref, _ref$1, _tuple, allowCommaOk, check, commaOk, e, e$1, elist, i, i$1, ok, t, v, x, x$1, x2, xlist, $s, $r, $c} = $restore(this, {elist, allowCommaOk}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = [x]; + xlist = sliceType$29.nil; + commaOk = false; + check = this; + _1 = elist.$length; + /* */ if (_1 === (0)) { $s = 2; continue; } + /* */ if (_1 === (1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_1 === (0)) { */ case 2: + $s = 5; continue; + /* } else if (_1 === (1)) { */ case 3: + e = (0 >= elist.$length ? ($throwRuntimeError("index out of range"), undefined) : elist.$array[elist.$offset + 0]); + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.multiExpr(x[0], e); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple = $assertType(x[0].typ, ptrType$15, true); + t = _tuple[0]; + ok = _tuple[1]; + if (ok && !((x[0].mode === 0))) { + xlist = $makeSlice(sliceType$29, t.Len()); + _ref = t.vars; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + i] = new operand.ptr(7, e, v.object.typ, $ifaceNil, 0)); + _i++; + } + /* break; */ $s = 1; continue; + } + xlist = new sliceType$29([x[0]]); + if (allowCommaOk && ((x[0].mode === 6) || (x[0].mode === 8) || (x[0].mode === 9))) { + x2 = new operand.ptr(7, e, (19 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 19]), $ifaceNil, 0); + if (x[0].mode === 9) { + x2.typ = universeError; + } + xlist = $append(xlist, x2); + commaOk = true; + } + $s = 5; continue; + /* } else { */ case 4: + xlist = $makeSlice(sliceType$29, elist.$length); + _ref$1 = elist; + _i$1 = 0; + /* while (true) { */ case 7: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } + x$1 = [x$1]; + i$1 = _i$1; + e$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr(x$1[0], e$1); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ((i$1 < 0 || i$1 >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + i$1] = x$1[0]); + _i$1++; + $s = 7; continue; + case 8: + /* } */ case 5: + case 1: + $s = -1; return [xlist, commaOk]; + /* */ } return; } var $f = {$blk: exprList, $c: true, $r, _1, _i, _i$1, _ref, _ref$1, _tuple, allowCommaOk, check, commaOk, e, e$1, elist, i, i$1, ok, t, v, x, x$1, x2, xlist, $s};return $f; + }; + $ptrType(Checker).prototype.arguments$ = function arguments$1(call, sig, targs, args, xlist) { + var {_1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _i, _i$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, a, a$1, adjusted, args, at$1, call, check, context$1, ddd, err, i, ix, last, nargs, npars, params, qualifier$1, rsig, sig, sigParams, targs, targs$1, typ$4, vars, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, xlist, $s, $r, $c} = $restore(this, {call, sig, targs, args, xlist}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rsig = ptrType$27.nil; + check = this; + rsig = sig; + _ref = args; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + a = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _1 = a.mode; + /* */ if (_1 === (3)) { $s = 4; continue; } + /* */ if (_1 === (0)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (3)) { */ case 4: + $r = check.errorf(a, 0, "%s used as value", new sliceType$5([a])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return rsig; + /* } else if (_1 === (0)) { */ case 5: + $s = -1; return rsig; + /* } */ case 6: + case 3: + _i++; + $s = 1; continue; + case 2: + nargs = args.$length; + npars = sig.params.Len(); + ddd = new token.Pos(call.Ellipsis).IsValid(); + sigParams = sig.params; + adjusted = false; + /* */ if (sig.variadic) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (sig.variadic) { */ case 8: + /* */ if (ddd) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (ddd) { */ case 11: + /* */ if ((call.Args.$length === 1) && nargs > 1) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ((call.Args.$length === 1) && nargs > 1) { */ case 14: + _r$1 = inNode(call, call.Ellipsis); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = check.errorf((x = _r$1, new x.constructor.elem(x)), 81, "cannot use ... with %d-valued %s", new sliceType$5([new $Int(nargs), (x$1 = call.Args, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return rsig; + /* } */ case 15: + $s = 13; continue; + /* } else { */ case 12: + if (nargs >= (npars - 1 >> 0)) { + vars = $makeSlice(sliceType$10, (npars - 1 >> 0)); + $copySlice(vars, sig.params.vars); + last = (x$2 = sig.params.vars, x$3 = npars - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + typ$4 = $assertType(last.object.typ, ptrType$25).elem; + while (true) { + if (!(vars.$length < nargs)) { break; } + vars = $append(vars, NewParam(last.object.pos, last.object.pkg, last.object.name, typ$4)); + } + sigParams = NewTuple(vars); + adjusted = true; + npars = nargs; + } else { + npars = npars - (1) >> 0; + } + /* } */ case 13: + $s = 10; continue; + /* } else { */ case 9: + /* */ if (ddd) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (ddd) { */ case 18: + _r$2 = inNode(call, call.Ellipsis); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = check.errorf((x$4 = _r$2, new x$4.constructor.elem(x$4)), 78, "cannot use ... in call to non-variadic %s", new sliceType$5([call.Fun])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return rsig; + /* } */ case 19: + /* } */ case 10: + /* */ if (!((nargs === npars))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!((nargs === npars))) { */ case 22: + at$1 = call; + qualifier$1 = "not enough"; + if (nargs > npars) { + at$1 = ((npars < 0 || npars >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + npars]).expr; + qualifier$1 = "too many"; + } else { + at$1 = new atPos(((call.Rparen >> 0))); + } + params = sliceType$10.nil; + if (!(sig.params === ptrType$15.nil)) { + params = sig.params.vars; + } + err = newErrorf(at$1, 126, "%s arguments in call to %s", new sliceType$5([new $String(qualifier$1), call.Fun])); + _r$3 = check.typesSummary(operandTypes(args), false); /* */ $s = 24; case 24: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg = new $String(_r$3); + $r = err.errorf(0, "have %s", new sliceType$5([_arg])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = check.typesSummary(varTypes(params), sig.variadic); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$4); + $r = err.errorf(0, "want %s", new sliceType$5([_arg$1])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.report(err); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return rsig; + /* } */ case 23: + /* */ if (sig.TypeParams().Len() > 0) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (sig.TypeParams().Len() > 0) { */ case 29: + /* */ if (!check.allowVersion(check.pkg, 1, 18)) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!check.allowVersion(check.pkg, 1, 18)) { */ case 31: + _ref$1 = call.Fun; + /* */ if ($assertType(_ref$1, ptrType$37, true)[1] || $assertType(_ref$1, ptrType$38, true)[1]) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if ($assertType(_ref$1, ptrType$37, true)[1] || $assertType(_ref$1, ptrType$38, true)[1]) { */ case 33: + ix = typeparams.UnpackIndexExpr(call.Fun); + _r$5 = inNode(call.Fun, ix.IndexListExpr.Lbrack); /* */ $s = 36; case 36: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = check.softErrorf((x$5 = _r$5, new x$5.constructor.elem(x$5)), 135, "function instantiation requires go1.18 or later", sliceType$5.nil); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else { */ case 34: + _r$6 = inNode(call, call.Lparen); /* */ $s = 38; case 38: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $r = check.softErrorf((x$6 = _r$6, new x$6.constructor.elem(x$6)), 135, "implicit function instantiation requires go1.18 or later", sliceType$5.nil); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 35: + /* } */ case 32: + _r$7 = check.infer(call, sig.TypeParams().list(), targs, sigParams, args); /* */ $s = 40; case 40: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + targs$1 = _r$7; + if (targs$1 === sliceType$3.nil) { + $s = -1; return rsig; + } + _r$8 = call.Pos(); /* */ $s = 41; case 41: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = check.instantiateSignature(_r$8, sig, targs$1, xlist); /* */ $s = 42; case 42: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + rsig = _r$9; + $r = assert(rsig.TypeParams().Len() === 0); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.recordInstance(call.Fun, targs$1, rsig); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (adjusted) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (adjusted) { */ case 45: + _r$10 = call.Pos(); /* */ $s = 48; case 48: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _arg$2 = _r$10; + _arg$3 = sigParams; + _r$11 = makeSubstMap(sig.TypeParams().list(), targs$1); /* */ $s = 49; case 49: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _arg$4 = _r$11; + _arg$5 = ptrType$9.nil; + _arg$6 = check.context(); + _r$12 = check.subst(_arg$2, _arg$3, _arg$4, _arg$5, _arg$6); /* */ $s = 50; case 50: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + sigParams = $assertType(_r$12, ptrType$15); + $s = 47; continue; + /* } else { */ case 46: + sigParams = rsig.params; + /* } */ case 47: + /* } */ case 30: + /* */ if (args.$length > 0) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (args.$length > 0) { */ case 51: + _r$13 = check.sprintf("argument to %s", new sliceType$5([call.Fun])); /* */ $s = 53; case 53: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + context$1 = _r$13; + _ref$2 = args; + _i$1 = 0; + /* while (true) { */ case 54: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 55; continue; } + i = _i$1; + a$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + $r = check.assignment(a$1, (x$7 = sigParams.vars, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i])).object.typ, context$1); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 54; continue; + case 55: + /* } */ case 52: + $s = -1; return rsig; + /* */ } return; } var $f = {$blk: arguments$1, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _i, _i$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, a, a$1, adjusted, args, at$1, call, check, context$1, ddd, err, i, ix, last, nargs, npars, params, qualifier$1, rsig, sig, sigParams, targs, targs$1, typ$4, vars, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, xlist, $s};return $f; + }; + $ptrType(Checker).prototype.selector = function selector(x, e, def$2) { + var {_1, _arg, _arg$1, _arg$2, _arg$3, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, changeCase, check, def$2, disabled, e, exp, exp$1, exp$2, exp$3, exp$4, exp$5, exp$6, funcMode, ident$1, index$2, indirect, m, m$1, m$2, mset, name, obj, obj$1, obj$2, obj$3, obj$4, ok, ok$1, params, pkg, pname, prefix, r, sel, sig, sig$1, typ$4, why, x, x$1, $s, $r, $c} = $restore(this, {x, e, def$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + sig = [sig]; + check = this; + obj = $ifaceNil; + index$2 = sliceType$13.nil; + indirect = false; + sel = e.Sel.Name; + _tuple = $assertType(e.X, ptrType$30, true); + ident$1 = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + _r$1 = check.environment.lookup(ident$1.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + obj$1 = _r$1; + _tuple$1 = $assertType(obj$1, ptrType$31, true); + pname = _tuple$1[0]; + /* */ if (!(pname === ptrType$31.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(pname === ptrType$31.nil)) { */ case 4: + $r = assert(pname.object.pkg === check.pkg); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.recordUse(ident$1, pname); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pname.used = true; + pkg = pname.imported; + exp = $ifaceNil; + funcMode = 7; + /* */ if (pkg.cgo) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (pkg.cgo) { */ case 8: + if (sel === "malloc") { + sel = "_CMalloc"; + } else { + funcMode = 10; + } + _ref = cgoPrefixes; + _i = 0; + /* while (true) { */ case 11: + /* if (!(_i < 8)) { break; } */ if(!(_i < 8)) { $s = 12; continue; } + prefix = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); + _r$2 = check.environment.scope.LookupParent(prefix + sel, check.environment.pos); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + exp = _tuple$2[1]; + if (!($interfaceIsEqual(exp, $ifaceNil))) { + /* break; */ $s = 12; continue; + } + _i++; + $s = 11; continue; + case 12: + /* */ if ($interfaceIsEqual(exp, $ifaceNil)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ($interfaceIsEqual(exp, $ifaceNil)) { */ case 14: + $r = check.errorf(e.Sel, 73, "%s not declared by package C", new sliceType$5([new $String(sel)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 15: + $r = check.objDecl(exp, ptrType$9.nil); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 10; continue; + /* } else { */ case 9: + _r$3 = pkg.scope.Lookup(sel); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + exp = _r$3; + /* */ if ($interfaceIsEqual(exp, $ifaceNil)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ($interfaceIsEqual(exp, $ifaceNil)) { */ case 20: + /* */ if (!pkg.fake) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!pkg.fake) { */ case 22: + $r = check.errorf(e.Sel, 73, "%s not declared by package %s", new sliceType$5([new $String(sel), new $String(pkg.name)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + /* goto Error */ $s = 17; continue; + /* } */ case 21: + _r$4 = exp.Exported(); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!_r$4) { */ case 25: + $r = check.errorf(e.Sel, 74, "%s not exported by package %s", new sliceType$5([new $String(sel), new $String(pkg.name)])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 26: + /* } */ case 10: + $r = check.recordUse(e.Sel, exp); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$1 = exp; + /* */ if ($assertType(_ref$1, ptrType$32, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref$1, ptrType$16, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 33; continue; } + /* */ if ($assertType(_ref$1, ptrType$18, true)[1]) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if ($assertType(_ref$1, ptrType$32, true)[1]) { */ case 30: + exp$1 = _ref$1.$val; + $r = assert(!($interfaceIsEqual(exp$1.Val(), $ifaceNil))); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 4; + x.typ = exp$1.object.typ; + x.val = exp$1.val; + $s = 36; continue; + /* } else if ($assertType(_ref$1, ptrType$17, true)[1]) { */ case 31: + exp$2 = _ref$1.$val; + x.mode = 3; + x.typ = exp$2.object.typ; + $s = 36; continue; + /* } else if ($assertType(_ref$1, ptrType$16, true)[1]) { */ case 32: + exp$3 = _ref$1.$val; + x.mode = 5; + x.typ = exp$3.object.typ; + if (pkg.cgo && strings.HasPrefix(exp$3.object.name, "_Cvar_")) { + x.typ = $assertType(x.typ, ptrType$26).base; + } + $s = 36; continue; + /* } else if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 33: + exp$4 = _ref$1.$val; + x.mode = funcMode; + x.typ = exp$4.object.typ; + if (pkg.cgo && strings.HasPrefix(exp$4.object.name, "_Cmacro_")) { + x.mode = 7; + x.typ = (x$1 = $assertType(x.typ, ptrType$27).results.vars, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).object.typ; + } + $s = 36; continue; + /* } else if ($assertType(_ref$1, ptrType$18, true)[1]) { */ case 34: + exp$5 = _ref$1.$val; + x.mode = 2; + x.typ = exp$5.object.typ; + x.id = exp$5.id; + $s = 36; continue; + /* } else { */ case 35: + exp$6 = _ref$1; + $r = check.dump("%v: unexpected object %v", new sliceType$5([new token.Pos(e.Sel.Pos()), exp$6])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + unreachable(); + /* } */ case 36: + x.expr = e; + $s = -1; return; + /* } */ case 5: + /* } */ case 2: + $r = check.exprOrType(x, e.X, false); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = x.mode; + /* */ if (_1 === (3)) { $s = 41; continue; } + /* */ if (_1 === (2)) { $s = 42; continue; } + /* */ if (_1 === (0)) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (_1 === (3)) { */ case 41: + /* */ if (!(def$2 === ptrType$9.nil) && $interfaceIsEqual(x.typ, def$2)) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (!(def$2 === ptrType$9.nil) && $interfaceIsEqual(x.typ, def$2)) { */ case 45: + $r = check.cycleError(new sliceType$8([def$2.obj])); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 46: + $s = 44; continue; + /* } else if (_1 === (2)) { */ case 42: + $r = check.errorf(e.Sel, 82, "cannot select on %s", new sliceType$5([x])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + $s = 44; continue; + /* } else if (_1 === (0)) { */ case 43: + /* goto Error */ $s = 17; continue; + /* } */ case 44: + case 40: + _r$5 = LookupFieldOrMethod(x.typ, x.mode === 5, check.pkg, sel); /* */ $s = 49; case 49: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$3 = _r$5; + obj = _tuple$3[0]; + index$2 = _tuple$3[1]; + indirect = _tuple$3[2]; + /* */ if ($interfaceIsEqual(obj, $ifaceNil)) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if ($interfaceIsEqual(obj, $ifaceNil)) { */ case 50: + _r$6 = under(x.typ); /* */ $s = 54; case 54: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(_r$6, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if ($interfaceIsEqual(_r$6, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 52: + /* goto Error */ $s = 17; continue; + /* } */ case 53: + /* */ if (!(index$2 === sliceType$13.nil)) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if (!(index$2 === sliceType$13.nil)) { */ case 55: + $r = check.errorf(e.Sel, 72, "ambiguous selector %s.%s", new sliceType$5([x.expr, new $String(sel)])); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 56: + /* */ if (indirect) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (indirect) { */ case 58: + $r = check.errorf(e.Sel, 125, "cannot call pointer method %s on %s", new sliceType$5([new $String(sel), x.typ])); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 59: + why = ""; + _r$7 = isInterfacePtr(x.typ); /* */ $s = 64; case 64: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (_r$7) { */ case 61: + _r$8 = check.interfacePtrError(x.typ); /* */ $s = 65; case 65: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + why = _r$8; + $s = 63; continue; + /* } else { */ case 62: + _r$9 = check.sprintf("type %s has no field or method %s", new sliceType$5([x.typ, new $String(sel)])); /* */ $s = 66; case 66: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + why = _r$9; + /* */ if (sel.length > 0) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (sel.length > 0) { */ case 67: + changeCase = ""; + r = ((sel.charCodeAt(0) >> 0)); + if (unicode.IsUpper(r)) { + changeCase = ($encodeRune(unicode.ToLower(r))) + $substring(sel, 1); + } else { + changeCase = ($encodeRune(unicode.ToUpper(r))) + $substring(sel, 1); + } + _r$10 = LookupFieldOrMethod(x.typ, x.mode === 5, check.pkg, changeCase); /* */ $s = 69; case 69: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$4 = _r$10; + obj = _tuple$4[0]; + if (!($interfaceIsEqual(obj, $ifaceNil))) { + why = why + (", but does have " + changeCase); + } + /* } */ case 68: + /* } */ case 63: + $r = check.errorf(e.Sel, 76, "%s.%s undefined (%s)", new sliceType$5([x.expr, new $String(sel), new $String(why)])); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 51: + _tuple$5 = $assertType(obj, ptrType$2, true); + m = _tuple$5[0]; + /* */ if (!(m === ptrType$2.nil)) { $s = 71; continue; } + /* */ $s = 72; continue; + /* if (!(m === ptrType$2.nil)) { */ case 71: + $r = check.objDecl(m, ptrType$9.nil); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 72: + /* */ if (x.mode === 3) { $s = 74; continue; } + /* */ $s = 75; continue; + /* if (x.mode === 3) { */ case 74: + _tuple$6 = $assertType(obj, ptrType$2, true); + m$1 = _tuple$6[0]; + /* */ if (m$1 === ptrType$2.nil) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (m$1 === ptrType$2.nil) { */ case 77: + $r = check.errorf(e.Sel, 76, "%s.%s undefined (type %s has no method %s)", new sliceType$5([x.expr, new $String(sel), x.typ, new $String(sel)])); /* */ $s = 79; case 79: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 78: + $r = check.recordSelection(e, 2, x.typ, m$1, index$2, indirect); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + sig$1 = $assertType(m$1.object.typ, ptrType$27); + /* */ if (sig$1.recv === ptrType$16.nil) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if (sig$1.recv === ptrType$16.nil) { */ case 81: + $r = check.error(e, 11, "illegal cycle in method declaration"); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 82: + params = sliceType$10.nil; + if (!(sig$1.params === ptrType$15.nil)) { + params = sig$1.params.vars; + } + name = ""; + if (params.$length > 0 && !((0 >= params.$length ? ($throwRuntimeError("index out of range"), undefined) : params.$array[params.$offset + 0]).object.name === "")) { + name = sig$1.recv.object.name; + if (name === "") { + name = "_"; + } + } + params = $appendSlice(new sliceType$10([NewVar(sig$1.recv.object.pos, sig$1.recv.object.pkg, name, x.typ)]), params); + x.mode = 7; + x.typ = new Signature.ptr(ptrType$48.nil, sig$1.tparams, ptrType.nil, ptrType$16.nil, NewTuple(params), sig$1.results, sig$1.variadic); + check.addDeclDep(m$1); + $s = 76; continue; + /* } else { */ case 75: + _ref$2 = obj; + /* */ if ($assertType(_ref$2, ptrType$16, true)[1]) { $s = 84; continue; } + /* */ if ($assertType(_ref$2, ptrType$2, true)[1]) { $s = 85; continue; } + /* */ $s = 86; continue; + /* if ($assertType(_ref$2, ptrType$16, true)[1]) { */ case 84: + obj$2 = _ref$2.$val; + $r = check.recordSelection(e, 0, x.typ, obj$2, index$2, indirect); /* */ $s = 88; case 88: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ((x.mode === 5) || indirect) { + x.mode = 5; + } else { + x.mode = 7; + } + x.typ = obj$2.object.typ; + $s = 87; continue; + /* } else if ($assertType(_ref$2, ptrType$2, true)[1]) { */ case 85: + obj$3 = _ref$2.$val; + $r = check.recordSelection(e, 1, x.typ, obj$3, index$2, indirect); /* */ $s = 89; case 89: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + disabled = true; + /* */ if (!disabled && false) { $s = 90; continue; } + /* */ $s = 91; continue; + /* if (!disabled && false) { */ case 90: + typ$4 = x.typ; + /* */ if (x.mode === 5) { $s = 92; continue; } + /* */ $s = 93; continue; + /* if (x.mode === 5) { */ case 92: + _tuple$7 = $assertType(typ$4, ptrType$26, true); + ok$1 = _tuple$7[1]; + if (!(!ok$1)) { _v = false; $s = 96; continue s; } + _r$11 = IsInterface(typ$4); /* */ $s = 97; case 97: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _v = !_r$11; case 96: + /* */ if (_v) { $s = 94; continue; } + /* */ $s = 95; continue; + /* if (_v) { */ case 94: + typ$4 = new Pointer.ptr(typ$4); + /* } */ case 95: + /* } */ case 93: + _r$12 = NewMethodSet(typ$4); /* */ $s = 98; case 98: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + mset = _r$12; + _r$13 = mset.Lookup(check.pkg, sel); /* */ $s = 99; case 99: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + m$2 = _r$13; + /* */ if (m$2 === ptrType$3.nil || !($interfaceIsEqual(m$2.obj, obj$3))) { $s = 100; continue; } + /* */ $s = 101; continue; + /* if (m$2 === ptrType$3.nil || !($interfaceIsEqual(m$2.obj, obj$3))) { */ case 100: + _r$14 = e.Pos(); /* */ $s = 102; case 102: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _arg = new token.Pos(_r$14); + _arg$1 = typ$4; + _arg$2 = new $String(obj$3.object.name); + _arg$3 = m$2; + $r = check.dump("%v: (%s).%v -> %s", new sliceType$5([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.dump("%s\n", new sliceType$5([mset])); /* */ $s = 104; case 104: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $panic(new $String("method sets and lookup don't agree")); + /* } */ case 101: + /* } */ case 91: + x.mode = 7; + sig[0] = $clone($assertType(obj$3.object.typ, ptrType$27), Signature); + sig[0].recv = ptrType$16.nil; + x.typ = sig[0]; + check.addDeclDep(obj$3); + $s = 87; continue; + /* } else { */ case 86: + obj$4 = _ref$2; + unreachable(); + /* } */ case 87: + /* } */ case 76: + x.expr = e; + $s = -1; return; + /* Error: */ case 17: + x.mode = 0; + x.expr = e; + $s = -1; return; + /* */ } return; } var $f = {$blk: selector, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, changeCase, check, def$2, disabled, e, exp, exp$1, exp$2, exp$3, exp$4, exp$5, exp$6, funcMode, ident$1, index$2, indirect, m, m$1, m$2, mset, name, obj, obj$1, obj$2, obj$3, obj$4, ok, ok$1, params, pkg, pname, prefix, r, sel, sig, sig$1, typ$4, why, x, x$1, $s};return $f; + }; + $ptrType(Checker).prototype.use = function use(arg) { + var {_i, _r$1, _ref, arg, check, e, x, $s, $r, $c} = $restore(this, {arg}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = [x]; + check = this; + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + _ref = arg; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 3: + _r$1 = check.rawExpr(x[0], e, $ifaceNil, false); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: use, $c: true, $r, _i, _r$1, _ref, arg, check, e, x, $s};return $f; + }; + $ptrType(Checker).prototype.useLHS = function useLHS(arg) { + var {_i, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, arg, check, e, ident$1, obj, v, v_used, w, x, $s, $r, $c} = $restore(this, {arg}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = [x]; + check = this; + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + _ref = arg; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + v = ptrType$16.nil; + v_used = false; + _tuple = $assertType(unparen(e), ptrType$30, true); + ident$1 = _tuple[0]; + /* */ if (!(ident$1 === ptrType$30.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(ident$1 === ptrType$30.nil)) { */ case 3: + if (ident$1.Name === "_") { + _i++; + /* continue; */ $s = 1; continue; + } + _r$1 = check.environment.scope.LookupParent(ident$1.Name, 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + obj = _tuple$1[1]; + if (!($interfaceIsEqual(obj, $ifaceNil))) { + _tuple$2 = $assertType(obj, ptrType$16, true); + w = _tuple$2[0]; + if (!(w === ptrType$16.nil) && w.object.pkg === check.pkg) { + v = w; + v_used = v.used; + } + } + /* } */ case 4: + _r$2 = check.rawExpr(x[0], e, $ifaceNil, false); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + if (!(v === ptrType$16.nil)) { + v.used = v_used; + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: useLHS, $c: true, $r, _i, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, arg, check, e, ident$1, obj, v, v_used, w, x, $s};return $f; + }; + $ptrType(Checker).prototype.builtin = function builtin(x, call, id) { + var {S, T, T$1, T$2, _, _1, _2, _3, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _i$2, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _v, _v$1, _v$2, _v$3, alist, arg, arg$1, arg$2, arg0, arg0$1, base, bin, call, cause, check, code, code$1, d, dst, f, f$1, i, i$1, i$2, id, index$2, indirect, key, map_, min, mode, mode$1, msg$1, nargs, obj, ok, p, params, resTyp, resTyp$1, s, sel, selx, sig, sig$1, size, sizes, src, src0, t, t$1, t$2, t$3, t$4, t$5, t$6, toFloat, typ$4, typ$5, types$1, u, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x1, xlist, xlist$1, y, y$1, y$2, y$3, $s, $deferred, $r, $c} = $restore(this, {x, call, id}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + id = [id]; + key = [key]; + t = [t]; + x = [x]; + xlist = [xlist]; + y = [y]; + y$1 = [y$1]; + y$2 = [y$2]; + y$3 = [y$3]; + _ = false; + check[0] = this; + bin = $clone(((id[0] < 0 || id[0] >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id[0]]), structType$1); + /* */ if (new token.Pos(call.Ellipsis).IsValid() && !((id[0] === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (new token.Pos(call.Ellipsis).IsValid() && !((id[0] === 0))) { */ case 1: + $r = check[0].invalidOp(new atPos(((call.Ellipsis >> 0))), 81, "invalid use of ... with built-in %s", new sliceType$5([new $String(bin.name)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].use(call.Args); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 2: + /* */ if ((id[0] === 7) || (id[0] === 1)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((id[0] === 7) || (id[0] === 1)) { */ case 5: + $deferred.push([(function(check, id, key, t, x, xlist, y, y$1, y$2, y$3) { return function Checker·builtin·func1(b) { + var b; + check[0].environment.hasCallOrRecv = b; + }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3), [check[0].environment.hasCallOrRecv]]); + check[0].environment.hasCallOrRecv = false; + /* } */ case 6: + arg = $throwNilPointerError; + nargs = call.Args.$length; + _1 = id[0]; + /* */ if ((_1 === (8)) || (_1 === (9)) || (_1 === (17)) || (_1 === (21))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((_1 === (8)) || (_1 === (9)) || (_1 === (17)) || (_1 === (21))) { */ case 8: + $s = 10; continue; + /* } else { */ case 9: + _r$1 = check[0].exprList(call.Args, false); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + xlist[0] = _tuple[0]; + arg = (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3) { return function Checker·builtin·func2(x$1, i) { + var i, x$1; + operand.copy(x$1, ((i < 0 || i >= xlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist[0].$array[xlist[0].$offset + i])); + }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3); + nargs = xlist[0].$length; + /* */ if (nargs > 0) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (nargs > 0) { */ case 12: + $r = arg(x[0], 0); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + /* } */ case 13: + /* } */ case 10: + case 7: + msg$1 = ""; + if (nargs < bin.nargs) { + msg$1 = "not enough"; + } else if (!bin.variadic && nargs > bin.nargs) { + msg$1 = "too many"; + } + /* */ if (!(msg$1 === "")) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!(msg$1 === "")) { */ case 15: + _r$2 = inNode(call, call.Rparen); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = check[0].invalidOp((x$1 = _r$2, new x$1.constructor.elem(x$1)), 126, "%s arguments for %s (expected %d, found %d)", new sliceType$5([new $String(msg$1), call, new $Int(bin.nargs), new $Int(nargs)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 16: + _2 = id[0]; + /* */ if (_2 === (0)) { $s = 20; continue; } + /* */ if ((_2 === (1)) || (_2 === (7))) { $s = 21; continue; } + /* */ if (_2 === (2)) { $s = 22; continue; } + /* */ if (_2 === (3)) { $s = 23; continue; } + /* */ if (_2 === (4)) { $s = 24; continue; } + /* */ if (_2 === (5)) { $s = 25; continue; } + /* */ if ((_2 === (6)) || (_2 === (13))) { $s = 26; continue; } + /* */ if (_2 === (8)) { $s = 27; continue; } + /* */ if (_2 === (9)) { $s = 28; continue; } + /* */ if (_2 === (10)) { $s = 29; continue; } + /* */ if ((_2 === (11)) || (_2 === (12))) { $s = 30; continue; } + /* */ if (_2 === (14)) { $s = 31; continue; } + /* */ if (_2 === (15)) { $s = 32; continue; } + /* */ if (_2 === (16)) { $s = 33; continue; } + /* */ if (_2 === (17)) { $s = 34; continue; } + /* */ if (_2 === (18)) { $s = 35; continue; } + /* */ if (_2 === (19)) { $s = 36; continue; } + /* */ if (_2 === (20)) { $s = 37; continue; } + /* */ if (_2 === (21)) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (_2 === (0)) { */ case 20: + S = x[0].typ; + T = $ifaceNil; + _r$3 = coreType(S); /* */ $s = 41; case 41: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$3, ptrType$25, true); + s = _tuple$1[0]; + /* */ if (!(s === ptrType$25.nil)) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (!(s === ptrType$25.nil)) { */ case 42: + T = s.elem; + $s = 44; continue; + /* } else { */ case 43: + cause = ""; + /* */ if (x[0].isNil()) { $s = 46; continue; } + /* */ if (isTypeParam(S)) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (x[0].isNil()) { */ case 46: + cause = "have untyped nil"; + $s = 49; continue; + /* } else if (isTypeParam(S)) { */ case 47: + _r$4 = coreType(S); /* */ $s = 50; case 50: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + u = _r$4; + /* */ if (!($interfaceIsEqual(u, $ifaceNil))) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (!($interfaceIsEqual(u, $ifaceNil))) { */ case 51: + _r$5 = check[0].sprintf("%s has core type %s", new sliceType$5([x[0], u])); /* */ $s = 54; case 54: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + cause = _r$5; + $s = 53; continue; + /* } else { */ case 52: + _r$6 = check[0].sprintf("%s has no core type", new sliceType$5([x[0]])); /* */ $s = 55; case 55: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + cause = _r$6; + /* } */ case 53: + $s = 49; continue; + /* } else { */ case 48: + _r$7 = check[0].sprintf("have %s", new sliceType$5([x[0]])); /* */ $s = 56; case 56: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + cause = _r$7; + /* } */ case 49: + case 45: + $r = check[0].errorf(x[0], 83, "first argument to append must be a slice; %s", new sliceType$5([new $String(cause)])); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 44: + alist = new sliceType$41([$clone(x[0], operand)]); + /* */ if ((nargs === 2) && new token.Pos(call.Ellipsis).IsValid()) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if ((nargs === 2) && new token.Pos(call.Ellipsis).IsValid()) { */ case 58: + _r$8 = x[0].assignableTo(check[0], NewSlice(universeByte), ptrType$34.nil); /* */ $s = 60; case 60: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$2 = _r$8; + ok = _tuple$2[0]; + /* */ if (ok) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (ok) { */ case 61: + $r = arg(x[0], 1); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + _r$9 = coreString(x[0].typ); /* */ $s = 64; case 64: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + t$1 = _r$9; + if (!(!($interfaceIsEqual(t$1, $ifaceNil)))) { _v = false; $s = 67; continue s; } + _r$10 = isString(t$1); /* */ $s = 68; case 68: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v = _r$10; case 67: + /* */ if (_v) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (_v) { */ case 65: + /* */ if (!(check[0].Info.Types === false)) { $s = 69; continue; } + /* */ $s = 70; continue; + /* if (!(check[0].Info.Types === false)) { */ case 69: + _r$11 = makeSig(S, new sliceType$3([S, x[0].typ])); /* */ $s = 71; case 71: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + sig = _r$11; + sig.variadic = true; + $r = check[0].recordBuiltinType(call.Fun, sig); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 70: + x[0].mode = 7; + x[0].typ = S; + /* break; */ $s = 19; continue; + /* } */ case 66: + alist = $append(alist, x[0]); + /* } */ case 62: + /* } */ case 59: + _r$12 = makeSig(S, new sliceType$3([S, NewSlice(T)])); /* */ $s = 73; case 73: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + sig$1 = _r$12; + sig$1.variadic = true; + xlist$1 = sliceType$29.nil; + _ref = alist; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + xlist$1 = $append(xlist$1, ((i < 0 || i >= alist.$length) ? ($throwRuntimeError("index out of range"), undefined) : alist.$array[alist.$offset + i])); + _i++; + } + i$1 = alist.$length; + /* while (true) { */ case 74: + /* if (!(i$1 < nargs)) { break; } */ if(!(i$1 < nargs)) { $s = 75; continue; } + x$2 = [x$2]; + x$2[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = arg(x$2[0], i$1); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + xlist$1 = $append(xlist$1, x$2[0]); + i$1 = i$1 + (1) >> 0; + $s = 74; continue; + case 75: + _r$13 = check[0].arguments$(call, sig$1, sliceType$3.nil, xlist$1, sliceType$11.nil); /* */ $s = 77; case 77: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13; + x[0].mode = 7; + x[0].typ = S; + /* */ if (!(check[0].Info.Types === false)) { $s = 78; continue; } + /* */ $s = 79; continue; + /* if (!(check[0].Info.Types === false)) { */ case 78: + $r = check[0].recordBuiltinType(call.Fun, sig$1); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 79: + $s = 40; continue; + /* } else if ((_2 === (1)) || (_2 === (7))) { */ case 21: + mode = 0; + val = $ifaceNil; + _r$14 = under(x[0].typ); /* */ $s = 81; case 81: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$15 = arrayPtrDeref(_r$14); /* */ $s = 82; case 82: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _ref$1 = _r$15; + /* */ if ($assertType(_ref$1, ptrType$4, true)[1]) { $s = 83; continue; } + /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 84; continue; } + /* */ if ($assertType(_ref$1, ptrType$25, true)[1] || $assertType(_ref$1, ptrType$29, true)[1]) { $s = 85; continue; } + /* */ if ($assertType(_ref$1, ptrType$28, true)[1]) { $s = 86; continue; } + /* */ if ($assertType(_ref$1, ptrType$13, true)[1]) { $s = 87; continue; } + /* */ $s = 88; continue; + /* switch (0) { default: if ($assertType(_ref$1, ptrType$4, true)[1]) { */ case 83: + t$2 = _ref$1.$val; + _r$16 = isString(t$2); /* */ $s = 91; case 91: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + /* */ if (_r$16 && (id[0] === 7)) { $s = 89; continue; } + /* */ $s = 90; continue; + /* if (_r$16 && (id[0] === 7)) { */ case 89: + /* */ if (x[0].mode === 4) { $s = 92; continue; } + /* */ $s = 93; continue; + /* if (x[0].mode === 4) { */ case 92: + mode = 4; + _r$17 = constant.StringVal(x[0].val); /* */ $s = 95; case 95: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$18 = constant.MakeInt64((new $Int64(0, _r$17.length))); /* */ $s = 96; case 96: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + val = _r$18; + $s = 94; continue; + /* } else { */ case 93: + mode = 7; + /* } */ case 94: + /* } */ case 90: + $s = 88; continue; + /* } else if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 84: + t$3 = _ref$1.$val; + mode = 7; + if (!check[0].environment.hasCallOrRecv) { + mode = 4; + if ((x$3 = t$3.len, (x$3.$high > 0 || (x$3.$high === 0 && x$3.$low >= 0)))) { + val = constant.MakeInt64(t$3.len); + } else { + val = constant.MakeUnknown(); + } + } + $s = 88; continue; + /* } else if ($assertType(_ref$1, ptrType$25, true)[1] || $assertType(_ref$1, ptrType$29, true)[1]) { */ case 85: + t$4 = _ref$1; + mode = 7; + $s = 88; continue; + /* } else if ($assertType(_ref$1, ptrType$28, true)[1]) { */ case 86: + t$5 = _ref$1.$val; + if (id[0] === 7) { + mode = 7; + } + $s = 88; continue; + /* } else if ($assertType(_ref$1, ptrType$13, true)[1]) { */ case 87: + t$6 = _ref$1.$val; + if (!isTypeParam(x[0].typ)) { + /* break; */ $s = 88; continue; + } + _r$19 = t$6.typeSet(); /* */ $s = 99; case 99: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _r$20 = _r$19.underIs((function(check, id, key, t, x, xlist, y, y$1, y$2, y$3) { return function Checker·builtin·func3(t$7) { + var {_r$20, _r$21, _ref$2, t$10, t$7, t$8, t$9, $s, $r, $c} = $restore(this, {t$7}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$20 = arrayPtrDeref(t$7); /* */ $s = 1; case 1: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _ref$2 = _r$20; + /* */ if ($assertType(_ref$2, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref$2, ptrType$10, true)[1] || $assertType(_ref$2, ptrType$25, true)[1] || $assertType(_ref$2, ptrType$29, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$2, ptrType$28, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref$2, ptrType$4, true)[1]) { */ case 2: + t$8 = _ref$2.$val; + _r$21 = isString(t$8); /* */ $s = 8; case 8: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + /* */ if (_r$21 && (id[0] === 7)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r$21 && (id[0] === 7)) { */ case 6: + $s = -1; return true; + /* } */ case 7: + $s = 5; continue; + /* } else if ($assertType(_ref$2, ptrType$10, true)[1] || $assertType(_ref$2, ptrType$25, true)[1] || $assertType(_ref$2, ptrType$29, true)[1]) { */ case 3: + t$9 = _ref$2; + $s = -1; return true; + /* } else if ($assertType(_ref$2, ptrType$28, true)[1]) { */ case 4: + t$10 = _ref$2.$val; + if (id[0] === 7) { + $s = -1; return true; + } + /* } */ case 5: + $s = -1; return false; + /* */ } return; } var $f = {$blk: Checker·builtin·func3, $c: true, $r, _r$20, _r$21, _ref$2, t$10, t$7, t$8, t$9, $s};return $f; + }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3)); /* */ $s = 100; case 100: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + /* */ if (_r$20) { $s = 97; continue; } + /* */ $s = 98; continue; + /* if (_r$20) { */ case 97: + mode = 7; + /* } */ case 98: + /* } } */ case 88: + if (!(mode === 0)) { _v$1 = false; $s = 103; continue s; } + _r$21 = under(x[0].typ); /* */ $s = 104; case 104: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _v$1 = !($interfaceIsEqual(_r$21, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))); case 103: + /* */ if (_v$1) { $s = 101; continue; } + /* */ $s = 102; continue; + /* if (_v$1) { */ case 101: + code = 84; + if (id[0] === 7) { + code = 90; + } + $r = check[0].invalidArg(x[0], code, "%s for %s", new sliceType$5([x[0], new $String(bin.name)])); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 102: + /* */ if (!(check[0].Info.Types === false) && !((mode === 4))) { $s = 106; continue; } + /* */ $s = 107; continue; + /* if (!(check[0].Info.Types === false) && !((mode === 4))) { */ case 106: + _arg = call.Fun; + _r$22 = makeSig((2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), new sliceType$3([x[0].typ])); /* */ $s = 108; case 108: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _arg$1 = _r$22; + $r = check[0].recordBuiltinType(_arg, _arg$1); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 107: + x[0].mode = mode; + x[0].typ = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); + x[0].val = val; + $s = 40; continue; + /* } else if (_2 === (2)) { */ case 22: + _r$23 = underIs(x[0].typ, (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3) { return function Checker·builtin·func4(u$1) { + var {_tuple$3, u$1, uch, $s, $r, $c} = $restore(this, {u$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple$3 = $assertType(u$1, ptrType$29, true); + uch = _tuple$3[0]; + /* */ if (uch === ptrType$29.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (uch === ptrType$29.nil) { */ case 1: + $r = check[0].invalidOp(x[0], 85, "cannot close non-channel %s", new sliceType$5([x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + /* */ if (uch.dir === 2) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (uch.dir === 2) { */ case 4: + $r = check[0].invalidOp(x[0], 85, "cannot close receive-only channel %s", new sliceType$5([x[0]])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 5: + $s = -1; return true; + /* */ } return; } var $f = {$blk: Checker·builtin·func4, $c: true, $r, _tuple$3, u$1, uch, $s};return $f; + }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3)); /* */ $s = 112; case 112: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + /* */ if (!_r$23) { $s = 110; continue; } + /* */ $s = 111; continue; + /* if (!_r$23) { */ case 110: + $s = -1; return _; + /* } */ case 111: + x[0].mode = 1; + /* */ if (!(check[0].Info.Types === false)) { $s = 113; continue; } + /* */ $s = 114; continue; + /* if (!(check[0].Info.Types === false)) { */ case 113: + _arg$2 = call.Fun; + _r$24 = makeSig($ifaceNil, new sliceType$3([x[0].typ])); /* */ $s = 115; case 115: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$3 = _r$24; + $r = check[0].recordBuiltinType(_arg$2, _arg$3); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 114: + $s = 40; continue; + /* } else if (_2 === (3)) { */ case 23: + y[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = arg(y[0], 1); /* */ $s = 117; case 117: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (y[0].mode === 0) { + $s = -1; return _; + } + d = 0; + if (isUntyped(x[0].typ)) { + d = d | (1); + } + if (isUntyped(y[0].typ)) { + d = d | (2); + } + _3 = d; + /* */ if (_3 === (0)) { $s = 119; continue; } + /* */ if (_3 === (1)) { $s = 120; continue; } + /* */ if (_3 === (2)) { $s = 121; continue; } + /* */ if (_3 === (3)) { $s = 122; continue; } + /* */ $s = 123; continue; + /* if (_3 === (0)) { */ case 119: + $s = 123; continue; + /* } else if (_3 === (1)) { */ case 120: + $r = check[0].convertUntyped(x[0], y[0].typ); /* */ $s = 124; case 124: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 123; continue; + /* } else if (_3 === (2)) { */ case 121: + $r = check[0].convertUntyped(y[0], x[0].typ); /* */ $s = 125; case 125: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 123; continue; + /* } else if (_3 === (3)) { */ case 122: + /* */ if ((x[0].mode === 4) && (y[0].mode === 4)) { $s = 126; continue; } + /* */ $s = 127; continue; + /* if ((x[0].mode === 4) && (y[0].mode === 4)) { */ case 126: + toFloat = (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3) { return function Checker·builtin·func5(x$4) { + var {_r$25, _r$26, _r$27, _v$2, x$4, $s, $r, $c} = $restore(this, {x$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$25 = isNumeric(x$4.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + if (!(_r$25)) { _v$2 = false; $s = 3; continue s; } + _r$26 = constant.Imag(x$4.val); /* */ $s = 5; case 5: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$27 = constant.Sign(_r$26); /* */ $s = 6; case 6: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _v$2 = _r$27 === 0; case 3: + /* */ if (_v$2) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v$2) { */ case 1: + x$4.typ = (22 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 22]); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·builtin·func5, $c: true, $r, _r$25, _r$26, _r$27, _v$2, x$4, $s};return $f; + }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3); + $r = toFloat(x[0]); /* */ $s = 129; case 129: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = toFloat(y[0]); /* */ $s = 130; case 130: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 128; continue; + /* } else { */ case 127: + $r = check[0].convertUntyped(x[0], (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14])); /* */ $s = 131; case 131: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].convertUntyped(y[0], (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14])); /* */ $s = 132; case 132: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 128: + /* } */ case 123: + case 118: + if ((x[0].mode === 0) || (y[0].mode === 0)) { + $s = -1; return _; + } + _r$25 = Identical(x[0].typ, y[0].typ); /* */ $s = 135; case 135: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + /* */ if (!_r$25) { $s = 133; continue; } + /* */ $s = 134; continue; + /* if (!_r$25) { */ case 133: + $r = check[0].invalidArg(x[0], 87, "mismatched types %s and %s", new sliceType$5([x[0].typ, y[0].typ])); /* */ $s = 136; case 136: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 134: + f = (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3) { return function Checker·builtin·func6(typ$4) { + var {_4, _r$26, _tuple$3, t$7, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(!isTypeParam(typ$4)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$26 = under(typ$4); /* */ $s = 2; case 2: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _tuple$3 = $assertType(_r$26, ptrType$4, true); + t$7 = _tuple$3[0]; + if (!(t$7 === ptrType$4.nil)) { + _4 = t$7.kind; + if (_4 === (13)) { + $s = -1; return (15 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 15]); + } else if (_4 === (14)) { + $s = -1; return (16 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 16]); + } else if (_4 === (22)) { + $s = -1; return (23 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 23]); + } + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Checker·builtin·func6, $c: true, $r, _4, _r$26, _tuple$3, t$7, typ$4, $s};return $f; + }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3); + _r$26 = check[0].applyTypeFunc(f, x[0], id[0]); /* */ $s = 137; case 137: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + resTyp = _r$26; + /* */ if ($interfaceIsEqual(resTyp, $ifaceNil)) { $s = 138; continue; } + /* */ $s = 139; continue; + /* if ($interfaceIsEqual(resTyp, $ifaceNil)) { */ case 138: + $r = check[0].invalidArg(x[0], 87, "arguments have type %s, expected floating-point", new sliceType$5([x[0].typ])); /* */ $s = 140; case 140: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 139: + /* */ if ((x[0].mode === 4) && (y[0].mode === 4)) { $s = 141; continue; } + /* */ $s = 142; continue; + /* if ((x[0].mode === 4) && (y[0].mode === 4)) { */ case 141: + _r$27 = constant.ToFloat(x[0].val); /* */ $s = 144; case 144: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _arg$4 = _r$27; + _r$28 = constant.ToFloat(y[0].val); /* */ $s = 145; case 145: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$29 = constant.MakeImag(_r$28); /* */ $s = 146; case 146: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _arg$5 = _r$29; + _r$30 = constant.BinaryOp(_arg$4, 12, _arg$5); /* */ $s = 147; case 147: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + x[0].val = _r$30; + $s = 143; continue; + /* } else { */ case 142: + x[0].mode = 7; + /* } */ case 143: + /* */ if (!(check[0].Info.Types === false) && !((x[0].mode === 4))) { $s = 148; continue; } + /* */ $s = 149; continue; + /* if (!(check[0].Info.Types === false) && !((x[0].mode === 4))) { */ case 148: + _arg$6 = call.Fun; + _r$31 = makeSig(resTyp, new sliceType$3([x[0].typ, x[0].typ])); /* */ $s = 150; case 150: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _arg$7 = _r$31; + $r = check[0].recordBuiltinType(_arg$6, _arg$7); /* */ $s = 151; case 151: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 149: + x[0].typ = resTyp; + $s = 40; continue; + /* } else if (_2 === (4)) { */ case 24: + _r$32 = coreType(x[0].typ); /* */ $s = 152; case 152: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _tuple$3 = $assertType(_r$32, ptrType$25, true); + dst = _tuple$3[0]; + y$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = arg(y$1[0], 1); /* */ $s = 153; case 153: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (y$1[0].mode === 0) { + $s = -1; return _; + } + _r$33 = coreString(y$1[0].typ); /* */ $s = 154; case 154: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + src0 = _r$33; + if (!(!($interfaceIsEqual(src0, $ifaceNil)))) { _v$2 = false; $s = 157; continue s; } + _r$34 = isString(src0); /* */ $s = 158; case 158: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + _v$2 = _r$34; case 157: + /* */ if (_v$2) { $s = 155; continue; } + /* */ $s = 156; continue; + /* if (_v$2) { */ case 155: + src0 = NewSlice(universeByte); + /* } */ case 156: + _tuple$4 = $assertType(src0, ptrType$25, true); + src = _tuple$4[0]; + /* */ if (dst === ptrType$25.nil || src === ptrType$25.nil) { $s = 159; continue; } + /* */ $s = 160; continue; + /* if (dst === ptrType$25.nil || src === ptrType$25.nil) { */ case 159: + $r = check[0].invalidArg(x[0], 86, "copy expects slice arguments; found %s and %s", new sliceType$5([x[0], y$1[0]])); /* */ $s = 161; case 161: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 160: + _r$35 = Identical(dst.elem, src.elem); /* */ $s = 164; case 164: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + /* */ if (!_r$35) { $s = 162; continue; } + /* */ $s = 163; continue; + /* if (!_r$35) { */ case 162: + $r = check[0].errorf(x[0], 86, "arguments to copy %s and %s have different element types %s and %s", new sliceType$5([x[0], y$1[0], dst.elem, src.elem])); /* */ $s = 165; case 165: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 163: + /* */ if (!(check[0].Info.Types === false)) { $s = 166; continue; } + /* */ $s = 167; continue; + /* if (!(check[0].Info.Types === false)) { */ case 166: + _arg$8 = call.Fun; + _r$36 = makeSig((2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), new sliceType$3([x[0].typ, y$1[0].typ])); /* */ $s = 168; case 168: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + _arg$9 = _r$36; + $r = check[0].recordBuiltinType(_arg$8, _arg$9); /* */ $s = 169; case 169: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 167: + x[0].mode = 7; + x[0].typ = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); + $s = 40; continue; + /* } else if (_2 === (5)) { */ case 25: + map_ = x[0].typ; + key[0] = $ifaceNil; + _r$37 = underIs(map_, (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3) { return function Checker·builtin·func7(u$1) { + var {_r$37, _tuple$5, _v$3, map_$1, u$1, $s, $r, $c} = $restore(this, {u$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple$5 = $assertType(u$1, ptrType$28, true); + map_$1 = _tuple$5[0]; + /* */ if (map_$1 === ptrType$28.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (map_$1 === ptrType$28.nil) { */ case 1: + $r = check[0].invalidArg(x[0], 88, "%s is not a map", new sliceType$5([x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + if (!(!($interfaceIsEqual(key[0], $ifaceNil)))) { _v$3 = false; $s = 6; continue s; } + _r$37 = Identical(map_$1.key, key[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + _v$3 = !_r$37; case 6: + /* */ if (_v$3) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v$3) { */ case 4: + $r = check[0].invalidArg(x[0], 88, "maps of %s must have identical key types", new sliceType$5([x[0]])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 5: + key[0] = map_$1.key; + $s = -1; return true; + /* */ } return; } var $f = {$blk: Checker·builtin·func7, $c: true, $r, _r$37, _tuple$5, _v$3, map_$1, u$1, $s};return $f; + }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3)); /* */ $s = 172; case 172: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + /* */ if (!_r$37) { $s = 170; continue; } + /* */ $s = 171; continue; + /* if (!_r$37) { */ case 170: + $s = -1; return _; + /* } */ case 171: + $r = arg(x[0], 1); /* */ $s = 173; case 173: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + $r = check[0].assignment(x[0], key[0], "argument to delete"); /* */ $s = 174; case 174: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + x[0].mode = 1; + /* */ if (!(check[0].Info.Types === false)) { $s = 175; continue; } + /* */ $s = 176; continue; + /* if (!(check[0].Info.Types === false)) { */ case 175: + _arg$10 = call.Fun; + _r$38 = makeSig($ifaceNil, new sliceType$3([map_, key[0]])); /* */ $s = 177; case 177: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + _arg$11 = _r$38; + $r = check[0].recordBuiltinType(_arg$10, _arg$11); /* */ $s = 178; case 178: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 176: + $s = 40; continue; + /* } else if ((_2 === (6)) || (_2 === (13))) { */ case 26: + /* */ if (isUntyped(x[0].typ)) { $s = 179; continue; } + /* */ $s = 180; continue; + /* if (isUntyped(x[0].typ)) { */ case 179: + /* */ if (x[0].mode === 4) { $s = 181; continue; } + /* */ $s = 182; continue; + /* if (x[0].mode === 4) { */ case 181: + _r$39 = isNumeric(x[0].typ); /* */ $s = 186; case 186: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + /* */ if (_r$39) { $s = 184; continue; } + /* */ $s = 185; continue; + /* if (_r$39) { */ case 184: + x[0].typ = (23 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 23]); + /* } */ case 185: + $s = 183; continue; + /* } else { */ case 182: + $r = check[0].convertUntyped(x[0], (16 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 16])); /* */ $s = 187; case 187: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + /* } */ case 183: + /* } */ case 180: + f$1 = (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3) { return function Checker·builtin·func8(typ$4) { + var {_5, _r$40, _tuple$5, t$7, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(!isTypeParam(typ$4)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$40 = under(typ$4); /* */ $s = 2; case 2: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + _tuple$5 = $assertType(_r$40, ptrType$4, true); + t$7 = _tuple$5[0]; + if (!(t$7 === ptrType$4.nil)) { + _5 = t$7.kind; + if (_5 === (15)) { + $s = -1; return (13 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 13]); + } else if (_5 === (16)) { + $s = -1; return (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14]); + } else if (_5 === (23)) { + $s = -1; return (22 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 22]); + } + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Checker·builtin·func8, $c: true, $r, _5, _r$40, _tuple$5, t$7, typ$4, $s};return $f; + }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3); + _r$40 = check[0].applyTypeFunc(f$1, x[0], id[0]); /* */ $s = 188; case 188: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + resTyp$1 = _r$40; + /* */ if ($interfaceIsEqual(resTyp$1, $ifaceNil)) { $s = 189; continue; } + /* */ $s = 190; continue; + /* if ($interfaceIsEqual(resTyp$1, $ifaceNil)) { */ case 189: + code$1 = 89; + if (id[0] === 13) { + code$1 = 93; + } + $r = check[0].invalidArg(x[0], code$1, "argument has type %s, expected complex type", new sliceType$5([x[0].typ])); /* */ $s = 191; case 191: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 190: + /* */ if (x[0].mode === 4) { $s = 192; continue; } + /* */ $s = 193; continue; + /* if (x[0].mode === 4) { */ case 192: + /* */ if (id[0] === 13) { $s = 195; continue; } + /* */ $s = 196; continue; + /* if (id[0] === 13) { */ case 195: + _r$41 = constant.Real(x[0].val); /* */ $s = 198; case 198: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + x[0].val = _r$41; + $s = 197; continue; + /* } else { */ case 196: + _r$42 = constant.Imag(x[0].val); /* */ $s = 199; case 199: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } + x[0].val = _r$42; + /* } */ case 197: + $s = 194; continue; + /* } else { */ case 193: + x[0].mode = 7; + /* } */ case 194: + /* */ if (!(check[0].Info.Types === false) && !((x[0].mode === 4))) { $s = 200; continue; } + /* */ $s = 201; continue; + /* if (!(check[0].Info.Types === false) && !((x[0].mode === 4))) { */ case 200: + _arg$12 = call.Fun; + _r$43 = makeSig(resTyp$1, new sliceType$3([x[0].typ])); /* */ $s = 202; case 202: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + _arg$13 = _r$43; + $r = check[0].recordBuiltinType(_arg$12, _arg$13); /* */ $s = 203; case 203: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 201: + x[0].typ = resTyp$1; + $s = 40; continue; + /* } else if (_2 === (8)) { */ case 27: + arg0 = (x$4 = call.Args, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])); + _r$44 = check[0].varType(arg0); /* */ $s = 204; case 204: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } + T$1 = _r$44; + if ($interfaceIsEqual(T$1, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return _; + } + min = 0; + _r$45 = coreType(T$1); /* */ $s = 205; case 205: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } + _ref$2 = _r$45; + /* */ if ($assertType(_ref$2, ptrType$25, true)[1]) { $s = 206; continue; } + /* */ if ($assertType(_ref$2, ptrType$28, true)[1] || $assertType(_ref$2, ptrType$29, true)[1]) { $s = 207; continue; } + /* */ if (_ref$2 === $ifaceNil) { $s = 208; continue; } + /* */ $s = 209; continue; + /* if ($assertType(_ref$2, ptrType$25, true)[1]) { */ case 206: + min = 2; + $s = 210; continue; + /* } else if ($assertType(_ref$2, ptrType$28, true)[1] || $assertType(_ref$2, ptrType$29, true)[1]) { */ case 207: + min = 1; + $s = 210; continue; + /* } else if (_ref$2 === $ifaceNil) { */ case 208: + $r = check[0].errorf(arg0, 92, "cannot make %s: no core type", new sliceType$5([arg0])); /* */ $s = 211; case 211: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } else { */ case 209: + $r = check[0].invalidArg(arg0, 92, "cannot make %s; type must be slice, map, or channel", new sliceType$5([arg0])); /* */ $s = 212; case 212: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 210: + /* */ if (nargs < min || (min + 1 >> 0) < nargs) { $s = 213; continue; } + /* */ $s = 214; continue; + /* if (nargs < min || (min + 1 >> 0) < nargs) { */ case 213: + $r = check[0].invalidOp(call, 126, "%v expects %d or %d arguments; found %d", new sliceType$5([call, new $Int(min), new $Int((min + 1 >> 0)), new $Int(nargs)])); /* */ $s = 215; case 215: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 214: + types$1 = new sliceType$3([T$1]); + sizes = sliceType$19.nil; + _ref$3 = $subslice(call.Args, 1); + _i$1 = 0; + /* while (true) { */ case 216: + /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 217; continue; } + arg$1 = ((_i$1 < 0 || _i$1 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$1]); + _r$46 = check[0].index(arg$1, new $Int64(-1, 4294967295)); /* */ $s = 218; case 218: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } + _tuple$5 = _r$46; + typ$4 = _tuple$5[0]; + size = _tuple$5[1]; + types$1 = $append(types$1, typ$4); + if ((size.$high > 0 || (size.$high === 0 && size.$low >= 0))) { + sizes = $append(sizes, size); + } + _i$1++; + $s = 216; continue; + case 217: + /* */ if ((sizes.$length === 2) && (x$5 = (0 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 0]), x$6 = (1 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 1]), (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) { $s = 219; continue; } + /* */ $s = 220; continue; + /* if ((sizes.$length === 2) && (x$5 = (0 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 0]), x$6 = (1 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 1]), (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) { */ case 219: + $r = check[0].invalidArg((x$7 = call.Args, (1 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 1])), 91, "length and capacity swapped", sliceType$5.nil); /* */ $s = 221; case 221: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 220: + x[0].mode = 7; + x[0].typ = T$1; + /* */ if (!(check[0].Info.Types === false)) { $s = 222; continue; } + /* */ $s = 223; continue; + /* if (!(check[0].Info.Types === false)) { */ case 222: + _arg$14 = call.Fun; + _r$47 = makeSig(x[0].typ, types$1); /* */ $s = 224; case 224: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } + _arg$15 = _r$47; + $r = check[0].recordBuiltinType(_arg$14, _arg$15); /* */ $s = 225; case 225: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 223: + $s = 40; continue; + /* } else if (_2 === (9)) { */ case 28: + _r$48 = check[0].varType((x$8 = call.Args, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0]))); /* */ $s = 226; case 226: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } + T$2 = _r$48; + if ($interfaceIsEqual(T$2, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return _; + } + x[0].mode = 7; + x[0].typ = new Pointer.ptr(T$2); + /* */ if (!(check[0].Info.Types === false)) { $s = 227; continue; } + /* */ $s = 228; continue; + /* if (!(check[0].Info.Types === false)) { */ case 227: + _arg$16 = call.Fun; + _r$49 = makeSig(x[0].typ, new sliceType$3([T$2])); /* */ $s = 229; case 229: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } + _arg$17 = _r$49; + $r = check[0].recordBuiltinType(_arg$16, _arg$17); /* */ $s = 230; case 230: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 228: + $s = 40; continue; + /* } else if (_2 === (10)) { */ case 29: + if (!(check[0].environment.sig === ptrType$27.nil) && check[0].environment.sig.results.Len() > 0) { + p = check[0].environment.isPanic; + if (p === false) { + p = new $global.Map(); + check[0].environment.isPanic = p; + } + _key = call; (p || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$85.keyFor(_key), { k: _key, v: true }); + } + $r = check[0].assignment(x[0], emptyInterface, "argument to panic"); /* */ $s = 231; case 231: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + x[0].mode = 1; + /* */ if (!(check[0].Info.Types === false)) { $s = 232; continue; } + /* */ $s = 233; continue; + /* if (!(check[0].Info.Types === false)) { */ case 232: + _arg$18 = call.Fun; + _r$50 = makeSig($ifaceNil, new sliceType$3([emptyInterface])); /* */ $s = 234; case 234: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } + _arg$19 = _r$50; + $r = check[0].recordBuiltinType(_arg$18, _arg$19); /* */ $s = 235; case 235: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 233: + $s = 40; continue; + /* } else if ((_2 === (11)) || (_2 === (12))) { */ case 30: + params = sliceType$3.nil; + /* */ if (nargs > 0) { $s = 236; continue; } + /* */ $s = 237; continue; + /* if (nargs > 0) { */ case 236: + params = $makeSlice(sliceType$3, nargs); + i$2 = 0; + /* while (true) { */ case 238: + /* if (!(i$2 < nargs)) { break; } */ if(!(i$2 < nargs)) { $s = 239; continue; } + /* */ if (i$2 > 0) { $s = 240; continue; } + /* */ $s = 241; continue; + /* if (i$2 > 0) { */ case 240: + $r = arg(x[0], i$2); /* */ $s = 242; case 242: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 241: + $r = check[0].assignment(x[0], $ifaceNil, "argument to " + ((id[0] < 0 || id[0] >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id[0]]).name); /* */ $s = 243; case 243: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + ((i$2 < 0 || i$2 >= params.$length) ? ($throwRuntimeError("index out of range"), undefined) : params.$array[params.$offset + i$2] = x[0].typ); + i$2 = i$2 + (1) >> 0; + $s = 238; continue; + case 239: + /* } */ case 237: + x[0].mode = 1; + /* */ if (!(check[0].Info.Types === false)) { $s = 244; continue; } + /* */ $s = 245; continue; + /* if (!(check[0].Info.Types === false)) { */ case 244: + _arg$20 = call.Fun; + _r$51 = makeSig($ifaceNil, params); /* */ $s = 246; case 246: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } + _arg$21 = _r$51; + $r = check[0].recordBuiltinType(_arg$20, _arg$21); /* */ $s = 247; case 247: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 245: + $s = 40; continue; + /* } else if (_2 === (14)) { */ case 31: + x[0].mode = 7; + x[0].typ = emptyInterface; + /* */ if (!(check[0].Info.Types === false)) { $s = 248; continue; } + /* */ $s = 249; continue; + /* if (!(check[0].Info.Types === false)) { */ case 248: + _arg$22 = call.Fun; + _r$52 = makeSig(x[0].typ, sliceType$3.nil); /* */ $s = 250; case 250: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } + _arg$23 = _r$52; + $r = check[0].recordBuiltinType(_arg$22, _arg$23); /* */ $s = 251; case 251: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 249: + $s = 40; continue; + /* } else if (_2 === (15)) { */ case 32: + /* */ if (!check[0].allowVersion(check[0].pkg, 1, 17)) { $s = 252; continue; } + /* */ $s = 253; continue; + /* if (!check[0].allowVersion(check[0].pkg, 1, 17)) { */ case 252: + $r = check[0].errorf(call.Fun, 133, "unsafe.Add requires go1.17 or later", sliceType$5.nil); /* */ $s = 254; case 254: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 253: + $r = check[0].assignment(x[0], (18 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 18]), "argument to unsafe.Add"); /* */ $s = 255; case 255: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + y$2[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = arg(y$2[0], 1); /* */ $s = 256; case 256: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$53 = check[0].isValidIndex(y$2[0], 133, "length", true); /* */ $s = 259; case 259: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } + /* */ if (!_r$53) { $s = 257; continue; } + /* */ $s = 258; continue; + /* if (!_r$53) { */ case 257: + $s = -1; return _; + /* } */ case 258: + x[0].mode = 7; + x[0].typ = (18 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 18]); + /* */ if (!(check[0].Info.Types === false)) { $s = 260; continue; } + /* */ $s = 261; continue; + /* if (!(check[0].Info.Types === false)) { */ case 260: + _arg$24 = call.Fun; + _r$54 = makeSig(x[0].typ, new sliceType$3([x[0].typ, y$2[0].typ])); /* */ $s = 262; case 262: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } + _arg$25 = _r$54; + $r = check[0].recordBuiltinType(_arg$24, _arg$25); /* */ $s = 263; case 263: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 261: + $s = 40; continue; + /* } else if (_2 === (16)) { */ case 33: + $r = check[0].assignment(x[0], $ifaceNil, "argument to unsafe.Alignof"); /* */ $s = 264; case 264: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + _r$55 = hasVarSize(x[0].typ, false); /* */ $s = 268; case 268: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } + /* */ if (_r$55) { $s = 265; continue; } + /* */ $s = 266; continue; + /* if (_r$55) { */ case 265: + x[0].mode = 7; + /* */ if (!(check[0].Info.Types === false)) { $s = 269; continue; } + /* */ $s = 270; continue; + /* if (!(check[0].Info.Types === false)) { */ case 269: + _arg$26 = call.Fun; + _r$56 = makeSig((12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]), new sliceType$3([x[0].typ])); /* */ $s = 271; case 271: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } + _arg$27 = _r$56; + $r = check[0].recordBuiltinType(_arg$26, _arg$27); /* */ $s = 272; case 272: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 270: + $s = 267; continue; + /* } else { */ case 266: + x[0].mode = 4; + _r$57 = check[0].conf.alignof(x[0].typ); /* */ $s = 273; case 273: if($c) { $c = false; _r$57 = _r$57.$blk(); } if (_r$57 && _r$57.$blk !== undefined) { break s; } + _r$58 = constant.MakeInt64(_r$57); /* */ $s = 274; case 274: if($c) { $c = false; _r$58 = _r$58.$blk(); } if (_r$58 && _r$58.$blk !== undefined) { break s; } + x[0].val = _r$58; + /* } */ case 267: + x[0].typ = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); + $s = 40; continue; + /* } else if (_2 === (17)) { */ case 34: + arg0$1 = (x$9 = call.Args, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])); + _tuple$6 = $assertType(unparen(arg0$1), ptrType$36, true); + selx = _tuple$6[0]; + /* */ if (selx === ptrType$36.nil) { $s = 275; continue; } + /* */ $s = 276; continue; + /* if (selx === ptrType$36.nil) { */ case 275: + $r = check[0].invalidArg(arg0$1, 98, "%s is not a selector expression", new sliceType$5([arg0$1])); /* */ $s = 277; case 277: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].use(new sliceType$11([arg0$1])); /* */ $s = 278; case 278: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 276: + $r = check[0].expr(x[0], selx.X); /* */ $s = 279; case 279: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + _r$59 = derefStructPtr(x[0].typ); /* */ $s = 280; case 280: if($c) { $c = false; _r$59 = _r$59.$blk(); } if (_r$59 && _r$59.$blk !== undefined) { break s; } + base = _r$59; + sel = selx.Sel.Name; + _r$60 = LookupFieldOrMethod(base, false, check[0].pkg, sel); /* */ $s = 281; case 281: if($c) { $c = false; _r$60 = _r$60.$blk(); } if (_r$60 && _r$60.$blk !== undefined) { break s; } + _tuple$7 = _r$60; + obj = _tuple$7[0]; + index$2 = _tuple$7[1]; + indirect = _tuple$7[2]; + _ref$4 = obj; + /* */ if (_ref$4 === $ifaceNil) { $s = 282; continue; } + /* */ if ($assertType(_ref$4, ptrType$2, true)[1]) { $s = 283; continue; } + /* */ $s = 284; continue; + /* if (_ref$4 === $ifaceNil) { */ case 282: + $r = check[0].invalidArg(x[0], 76, "%s has no single field %s", new sliceType$5([base, new $String(sel)])); /* */ $s = 285; case 285: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } else if ($assertType(_ref$4, ptrType$2, true)[1]) { */ case 283: + $r = check[0].invalidArg(arg0$1, 99, "%s is a method value", new sliceType$5([arg0$1])); /* */ $s = 286; case 286: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 284: + /* */ if (indirect) { $s = 287; continue; } + /* */ $s = 288; continue; + /* if (indirect) { */ case 287: + $r = check[0].invalidArg(x[0], 99, "field %s is embedded via a pointer in %s", new sliceType$5([new $String(sel), base])); /* */ $s = 289; case 289: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 288: + $r = check[0].recordSelection(selx, 0, base, obj, index$2, false); /* */ $s = 290; case 290: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + mode$1 = 7; + if ((x[0].mode === 5) || indirect) { + mode$1 = 5; + } + _r$61 = obj.Type(); /* */ $s = 291; case 291: if($c) { $c = false; _r$61 = _r$61.$blk(); } if (_r$61 && _r$61.$blk !== undefined) { break s; } + $r = check[0].record(new operand.ptr(mode$1, selx, _r$61, $ifaceNil, 0)); /* */ $s = 292; case 292: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$62 = hasVarSize(base, false); /* */ $s = 296; case 296: if($c) { $c = false; _r$62 = _r$62.$blk(); } if (_r$62 && _r$62.$blk !== undefined) { break s; } + /* */ if (_r$62) { $s = 293; continue; } + /* */ $s = 294; continue; + /* if (_r$62) { */ case 293: + x[0].mode = 7; + /* */ if (!(check[0].Info.Types === false)) { $s = 297; continue; } + /* */ $s = 298; continue; + /* if (!(check[0].Info.Types === false)) { */ case 297: + _arg$28 = call.Fun; + _arg$29 = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); + _r$63 = obj.Type(); /* */ $s = 299; case 299: if($c) { $c = false; _r$63 = _r$63.$blk(); } if (_r$63 && _r$63.$blk !== undefined) { break s; } + _arg$30 = _r$63; + _r$64 = makeSig(_arg$29, new sliceType$3([_arg$30])); /* */ $s = 300; case 300: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } + _arg$31 = _r$64; + $r = check[0].recordBuiltinType(_arg$28, _arg$31); /* */ $s = 301; case 301: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 298: + $s = 295; continue; + /* } else { */ case 294: + x[0].mode = 4; + _r$65 = check[0].conf.offsetof(base, index$2); /* */ $s = 302; case 302: if($c) { $c = false; _r$65 = _r$65.$blk(); } if (_r$65 && _r$65.$blk !== undefined) { break s; } + _r$66 = constant.MakeInt64(_r$65); /* */ $s = 303; case 303: if($c) { $c = false; _r$66 = _r$66.$blk(); } if (_r$66 && _r$66.$blk !== undefined) { break s; } + x[0].val = _r$66; + /* } */ case 295: + x[0].typ = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); + $s = 40; continue; + /* } else if (_2 === (18)) { */ case 35: + $r = check[0].assignment(x[0], $ifaceNil, "argument to unsafe.Sizeof"); /* */ $s = 304; case 304: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + _r$67 = hasVarSize(x[0].typ, false); /* */ $s = 308; case 308: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } + /* */ if (_r$67) { $s = 305; continue; } + /* */ $s = 306; continue; + /* if (_r$67) { */ case 305: + x[0].mode = 7; + /* */ if (!(check[0].Info.Types === false)) { $s = 309; continue; } + /* */ $s = 310; continue; + /* if (!(check[0].Info.Types === false)) { */ case 309: + _arg$32 = call.Fun; + _r$68 = makeSig((12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]), new sliceType$3([x[0].typ])); /* */ $s = 311; case 311: if($c) { $c = false; _r$68 = _r$68.$blk(); } if (_r$68 && _r$68.$blk !== undefined) { break s; } + _arg$33 = _r$68; + $r = check[0].recordBuiltinType(_arg$32, _arg$33); /* */ $s = 312; case 312: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 310: + $s = 307; continue; + /* } else { */ case 306: + x[0].mode = 4; + _r$69 = check[0].conf.sizeof(x[0].typ); /* */ $s = 313; case 313: if($c) { $c = false; _r$69 = _r$69.$blk(); } if (_r$69 && _r$69.$blk !== undefined) { break s; } + _r$70 = constant.MakeInt64(_r$69); /* */ $s = 314; case 314: if($c) { $c = false; _r$70 = _r$70.$blk(); } if (_r$70 && _r$70.$blk !== undefined) { break s; } + x[0].val = _r$70; + /* } */ case 307: + x[0].typ = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); + $s = 40; continue; + /* } else if (_2 === (19)) { */ case 36: + /* */ if (!check[0].allowVersion(check[0].pkg, 1, 17)) { $s = 315; continue; } + /* */ $s = 316; continue; + /* if (!check[0].allowVersion(check[0].pkg, 1, 17)) { */ case 315: + $r = check[0].errorf(call.Fun, 134, "unsafe.Slice requires go1.17 or later", sliceType$5.nil); /* */ $s = 317; case 317: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 316: + _r$71 = under(x[0].typ); /* */ $s = 318; case 318: if($c) { $c = false; _r$71 = _r$71.$blk(); } if (_r$71 && _r$71.$blk !== undefined) { break s; } + _tuple$8 = $assertType(_r$71, ptrType$26, true); + typ$5 = _tuple$8[0]; + /* */ if (typ$5 === ptrType$26.nil) { $s = 319; continue; } + /* */ $s = 320; continue; + /* if (typ$5 === ptrType$26.nil) { */ case 319: + $r = check[0].invalidArg(x[0], 134, "%s is not a pointer", new sliceType$5([x[0]])); /* */ $s = 321; case 321: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 320: + y$3[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = arg(y$3[0], 1); /* */ $s = 322; case 322: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$72 = check[0].isValidIndex(y$3[0], 134, "length", false); /* */ $s = 325; case 325: if($c) { $c = false; _r$72 = _r$72.$blk(); } if (_r$72 && _r$72.$blk !== undefined) { break s; } + /* */ if (!_r$72) { $s = 323; continue; } + /* */ $s = 324; continue; + /* if (!_r$72) { */ case 323: + $s = -1; return _; + /* } */ case 324: + x[0].mode = 7; + x[0].typ = NewSlice(typ$5.base); + /* */ if (!(check[0].Info.Types === false)) { $s = 326; continue; } + /* */ $s = 327; continue; + /* if (!(check[0].Info.Types === false)) { */ case 326: + _arg$34 = call.Fun; + _r$73 = makeSig(x[0].typ, new sliceType$3([typ$5, y$3[0].typ])); /* */ $s = 328; case 328: if($c) { $c = false; _r$73 = _r$73.$blk(); } if (_r$73 && _r$73.$blk !== undefined) { break s; } + _arg$35 = _r$73; + $r = check[0].recordBuiltinType(_arg$34, _arg$35); /* */ $s = 329; case 329: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 327: + $s = 40; continue; + /* } else if (_2 === (20)) { */ case 37: + if (!((x[0].mode === 4))) { _v$3 = true; $s = 332; continue s; } + _r$74 = isBoolean(x[0].typ); /* */ $s = 333; case 333: if($c) { $c = false; _r$74 = _r$74.$blk(); } if (_r$74 && _r$74.$blk !== undefined) { break s; } + _v$3 = !_r$74; case 332: + /* */ if (_v$3) { $s = 330; continue; } + /* */ $s = 331; continue; + /* if (_v$3) { */ case 330: + $r = check[0].invalidArg(x[0], 1, "%s is not a boolean constant", new sliceType$5([x[0]])); /* */ $s = 334; case 334: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 331: + _r$75 = x[0].val.Kind(); /* */ $s = 337; case 337: if($c) { $c = false; _r$75 = _r$75.$blk(); } if (_r$75 && _r$75.$blk !== undefined) { break s; } + /* */ if (!((_r$75 === 1))) { $s = 335; continue; } + /* */ $s = 336; continue; + /* if (!((_r$75 === 1))) { */ case 335: + $r = check[0].errorf(x[0], 1, "internal error: value of %s should be a boolean constant", new sliceType$5([x[0]])); /* */ $s = 338; case 338: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 336: + _r$76 = constant.BoolVal(x[0].val); /* */ $s = 341; case 341: if($c) { $c = false; _r$76 = _r$76.$blk(); } if (_r$76 && _r$76.$blk !== undefined) { break s; } + /* */ if (!_r$76) { $s = 339; continue; } + /* */ $s = 340; continue; + /* if (!_r$76) { */ case 339: + $r = check[0].errorf(call, 1, "%v failed", new sliceType$5([call])); /* */ $s = 342; case 342: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 340: + $s = 40; continue; + /* } else if (_2 === (21)) { */ case 38: + /* */ if (nargs === 0) { $s = 343; continue; } + /* */ $s = 344; continue; + /* if (nargs === 0) { */ case 343: + _r$77 = call.Pos(); /* */ $s = 345; case 345: if($c) { $c = false; _r$77 = _r$77.$blk(); } if (_r$77 && _r$77.$blk !== undefined) { break s; } + _arg$36 = new token.Pos(_r$77); + $r = check[0].dump("%v: trace() without arguments", new sliceType$5([_arg$36])); /* */ $s = 346; case 346: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x[0].mode = 1; + /* break; */ $s = 19; continue; + /* } */ case 344: + t[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + x1 = x[0]; + _ref$5 = call.Args; + _i$2 = 0; + /* while (true) { */ case 347: + /* if (!(_i$2 < _ref$5.$length)) { break; } */ if(!(_i$2 < _ref$5.$length)) { $s = 348; continue; } + arg$2 = ((_i$2 < 0 || _i$2 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$2]); + _r$78 = check[0].rawExpr(x1, arg$2, $ifaceNil, false); /* */ $s = 349; case 349: if($c) { $c = false; _r$78 = _r$78.$blk(); } if (_r$78 && _r$78.$blk !== undefined) { break s; } + _r$78; + _r$79 = x1.Pos(); /* */ $s = 350; case 350: if($c) { $c = false; _r$79 = _r$79.$blk(); } if (_r$79 && _r$79.$blk !== undefined) { break s; } + _arg$37 = new token.Pos(_r$79); + _arg$38 = x1; + $r = check[0].dump("%v: %s", new sliceType$5([_arg$37, _arg$38])); /* */ $s = 351; case 351: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x1 = t[0]; + _i$2++; + $s = 347; continue; + case 348: + $s = 40; continue; + /* } else { */ case 39: + unreachable(); + /* } */ case 40: + case 19: + _ = true; + $s = -1; return _; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return _; } if($curGoroutine.asleep) { var $f = {$blk: builtin, $c: true, $r, S, T, T$1, T$2, _, _1, _2, _3, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _i$2, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _v, _v$1, _v$2, _v$3, alist, arg, arg$1, arg$2, arg0, arg0$1, base, bin, call, cause, check, code, code$1, d, dst, f, f$1, i, i$1, i$2, id, index$2, indirect, key, map_, min, mode, mode$1, msg$1, nargs, obj, ok, p, params, resTyp, resTyp$1, s, sel, selx, sig, sig$1, size, sizes, src, src0, t, t$1, t$2, t$3, t$4, t$5, t$6, toFloat, typ$4, typ$5, types$1, u, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x1, xlist, xlist$1, y, y$1, y$2, y$3, $s, $deferred};return $f; } } + }; + hasVarSize = function hasVarSize$1(t, seen) { + var {$24r, _entry, _i, _key, _r$1, _r$2, _r$3, _ref, _ref$1, _tuple, _tuple$1, f, named, ok, seen, t, u, u$1, u$2, u$3, v, varSized, $s, $deferred, $r, $c} = $restore(this, {t, seen}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + named = [named]; + seen = [seen]; + varSized = [varSized]; + varSized[0] = false; + _tuple = $assertType(t, ptrType$9, true); + named[0] = _tuple[0]; + /* */ if (!(named[0] === ptrType$9.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(named[0] === ptrType$9.nil)) { */ case 1: + _tuple$1 = (_entry = $mapIndex(seen[0],ptrType$9.keyFor(named[0])), _entry !== undefined ? [_entry.v, true] : [false, false]); + v = _tuple$1[0]; + ok = _tuple$1[1]; + if (ok) { + varSized[0] = v; + $s = -1; return varSized[0]; + } + if (seen[0] === false) { + seen[0] = new $global.Map(); + } + _key = named[0]; (seen[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$9.keyFor(_key), { k: _key, v: true }); + $deferred.push([(function(named, seen, varSized) { return function hasVarSize·func1() { + var _key$1; + _key$1 = named[0]; (seen[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$9.keyFor(_key$1), { k: _key$1, v: varSized[0] }); + }; })(named, seen, varSized), []]); + /* } */ case 2: + _r$1 = under(t); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 4: + u = _ref.$val; + _r$2 = hasVarSize(u.elem, seen[0]); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + varSized[0] = _r$2; + $24r = varSized[0]; + $s = 10; case 10: return $24r; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 5: + u$1 = _ref.$val; + _ref$1 = u$1.fields; + _i = 0; + /* while (true) { */ case 11: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 12; continue; } + f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$3 = hasVarSize(f.object.typ, seen[0]); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$3) { */ case 13: + varSized[0] = true; + $s = -1; return varSized[0]; + /* } */ case 14: + _i++; + $s = 11; continue; + case 12: + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 6: + u$2 = _ref.$val; + varSized[0] = isTypeParam(t); + $s = -1; return varSized[0]; + /* } else if ($assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { */ case 7: + u$3 = _ref; + unreachable(); + /* } */ case 8: + varSized[0] = false; + $s = -1; return varSized[0]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return varSized[0]; } if($curGoroutine.asleep) { var $f = {$blk: hasVarSize$1, $c: true, $r, $24r, _entry, _i, _key, _r$1, _r$2, _r$3, _ref, _ref$1, _tuple, _tuple$1, f, named, ok, seen, t, u, u$1, u$2, u$3, v, varSized, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.applyTypeFunc = function applyTypeFunc(f, x, id) { + var {$24r, _1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _tuple, check, code, f, id, ptyp, terms, tp, tpar, x, $s, $r, $c} = $restore(this, {f, x, id}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = [f]; + terms = [terms]; + check = this; + _tuple = $assertType(x.typ, ptrType$14, true); + tp = _tuple[0]; + /* */ if (!(tp === ptrType$14.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(tp === ptrType$14.nil)) { */ case 1: + terms[0] = sliceType$12.nil; + _r$1 = tp.is((function(f, terms) { return function Checker·applyTypeFunc·func1(t) { + var {_r$1, r, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (t === ptrType$5.nil) { + $s = -1; return false; + } + _r$1 = f[0](t.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + r = _r$1; + if (!($interfaceIsEqual(r, $ifaceNil))) { + terms[0] = $append(terms[0], NewTerm(t.tilde, r)); + $s = -1; return true; + } + $s = -1; return false; + /* */ } return; } var $f = {$blk: Checker·applyTypeFunc·func1, $c: true, $r, _r$1, r, t, $s};return $f; + }; })(f, terms)); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r$1) { */ case 3: + $s = -1; return $ifaceNil; + /* } */ case 4: + code = 0; + _1 = id; + if (_1 === (13)) { + code = 93; + } else if (_1 === (6)) { + code = 89; + } else if (_1 === (3)) { + code = 87; + } else { + unreachable(); + } + $r = check.softErrorf(x, code, "%s not supported as argument to %s for go1.18 (see issue #50937)", new sliceType$5([x, new $String(((id < 0 || id >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id]).name)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tpar = NewTypeName(0, check.pkg, tp.obj.object.name, $ifaceNil); + _arg = tpar; + _r$2 = NewInterfaceType(sliceType.nil, new sliceType$3([NewUnion(terms[0])])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + _r$3 = check.newTypeParam(_arg, _arg$1); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ptyp = _r$3; + ptyp.index = tp.index; + $s = -1; return ptyp; + /* } */ case 2: + _r$4 = f[0](x.typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 10; case 10: return $24r; + /* */ } return; } var $f = {$blk: applyTypeFunc, $c: true, $r, $24r, _1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _tuple, check, code, f, id, ptyp, terms, tp, tpar, x, $s};return $f; + }; + makeSig = function makeSig$1(res, args) { + var {_i, _ref, args, i, list$2, param, params, res, result, $s, $r, $c} = $restore(this, {res, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + list$2 = $makeSlice(sliceType$10, args.$length); + _ref = args; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + param = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i] = NewVar(0, ptrType$1.nil, "", Default(param))); + _i++; + } + params = NewTuple(list$2); + result = ptrType$15.nil; + /* */ if (!($interfaceIsEqual(res, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(res, $ifaceNil))) { */ case 1: + $r = assert(!isUntyped(res)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + result = NewTuple(new sliceType$10([NewVar(0, ptrType$1.nil, "", res)])); + /* } */ case 2: + $s = -1; return new Signature.ptr(ptrType$48.nil, ptrType$48.nil, ptrType.nil, ptrType$16.nil, params, result, false); + /* */ } return; } var $f = {$blk: makeSig$1, $c: true, $r, _i, _ref, args, i, list$2, param, params, res, result, $s};return $f; + }; + arrayPtrDeref = function arrayPtrDeref$1(typ$4) { + var {_r$1, _tuple, _tuple$1, a, ok, p, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(typ$4, ptrType$26, true); + p = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + _r$1 = under(p.base); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$1, ptrType$10, true); + a = _tuple$1[0]; + if (!(a === ptrType$10.nil)) { + $s = -1; return a; + } + /* } */ case 2: + $s = -1; return typ$4; + /* */ } return; } var $f = {$blk: arrayPtrDeref$1, $c: true, $r, _r$1, _tuple, _tuple$1, a, ok, p, typ$4, $s};return $f; + }; + unparen = function unparen$1(e) { + var _tuple, e, ok, p; + while (true) { + _tuple = $assertType(e, ptrType$39, true); + p = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + return e; + } + e = p.X; + } + }; + $ptrType(Basic).prototype.Kind = function Kind$1() { + var b; + b = this; + return b.kind; + }; + $ptrType(Basic).prototype.Info = function Info$1() { + var b; + b = this; + return b.info; + }; + $ptrType(Basic).prototype.Name = function Name$3() { + var b; + b = this; + return b.name; + }; + $ptrType(Basic).prototype.Underlying = function Underlying$11() { + var t; + t = this; + return t; + }; + $ptrType(Basic).prototype.String = function String$33() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$33, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + $ptrType(Checker).prototype.assignment = function assignment(x, T, context$1) { + var {T, _1, _2, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _v, check, code, code$1, context$1, msg$1, newType, ok, reason, sig, target, val, x, $s, $r, $c} = $restore(this, {x, T, context$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + reason = [reason]; + check = this; + $r = check.singleValue(x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = x.mode; + /* */ if (_1 === (0)) { $s = 3; continue; } + /* */ if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (0)) { */ case 3: + $s = -1; return; + /* } else if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { */ case 4: + $s = 6; continue; + /* } else { */ case 5: + $r = check.errorf(x, 0, "cannot assign %s to %s in %s", new sliceType$5([x, T, new $String(context$1)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 6: + case 2: + /* */ if (isUntyped(x.typ)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (isUntyped(x.typ)) { */ case 8: + target = T; + if ($interfaceIsEqual(T, $ifaceNil)) { _v = true; $s = 12; continue s; } + _r$1 = isNonTypeParamInterface(T); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 12: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + /* */ if ($interfaceIsEqual(T, $ifaceNil) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ($interfaceIsEqual(T, $ifaceNil) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { */ case 14: + $r = check.errorf(x, 16, "use of untyped nil in %s", new sliceType$5([new $String(context$1)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 15: + target = Default(x.typ); + /* } */ case 11: + _r$2 = check.implicitTypeAndValue(x, target); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + newType = _tuple[0]; + val = _tuple[1]; + code = _tuple[2]; + /* */ if (!((code === 0))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!((code === 0))) { */ case 18: + _r$3 = check.sprintf("cannot use %s as %s value in %s", new sliceType$5([x, target, new $String(context$1)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + msg$1 = _r$3; + _2 = code; + if (_2 === (43)) { + msg$1 = msg$1 + (" (truncated)"); + } else if (_2 === (44)) { + msg$1 = msg$1 + (" (overflows)"); + } else { + code = 23; + } + $r = check.error(x, code, msg$1); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 19: + if (!($interfaceIsEqual(val, $ifaceNil))) { + x.val = val; + check.updateExprVal(x.expr, val); + } + /* */ if (!($interfaceIsEqual(newType, x.typ))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!($interfaceIsEqual(newType, x.typ))) { */ case 22: + x.typ = newType; + $r = check.updateExprType(x.expr, newType, false); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + /* } */ case 9: + _r$4 = under(x.typ); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$4, ptrType$27, true); + sig = _tuple$1[0]; + /* */ if (!(sig === ptrType$27.nil) && sig.TypeParams().Len() > 0) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!(sig === ptrType$27.nil) && sig.TypeParams().Len() > 0) { */ case 26: + $r = check.errorf(x, 137, "cannot use generic function %s without instantiation in %s", new sliceType$5([x, new $String(context$1)])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + if ($interfaceIsEqual(T, $ifaceNil)) { + $s = -1; return; + } + reason[0] = ""; + _r$5 = x.assignableTo(check, T, (reason.$ptr || (reason.$ptr = new ptrType$34(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, reason)))); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + ok = _tuple$2[0]; + code$1 = _tuple$2[1]; + /* */ if (!ok) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (!ok) { */ case 30: + /* */ if (false) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (false) { */ case 32: + /* */ if (!(reason[0] === "")) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (!(reason[0] === "")) { */ case 35: + $r = check.errorf(x, code$1, "cannot use %s as type %s in %s:\n\t%s", new sliceType$5([x, T, new $String(context$1), new $String(reason[0])])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 37; continue; + /* } else { */ case 36: + $r = check.errorf(x, code$1, "cannot use %s as type %s in %s", new sliceType$5([x, T, new $String(context$1)])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 37: + $s = 34; continue; + /* } else { */ case 33: + /* */ if (!(reason[0] === "")) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (!(reason[0] === "")) { */ case 40: + $r = check.errorf(x, code$1, "cannot use %s as %s value in %s: %s", new sliceType$5([x, T, new $String(context$1), new $String(reason[0])])); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 42; continue; + /* } else { */ case 41: + $r = check.errorf(x, code$1, "cannot use %s as %s value in %s", new sliceType$5([x, T, new $String(context$1)])); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 42: + /* } */ case 34: + x.mode = 0; + /* } */ case 31: + $s = -1; return; + /* */ } return; } var $f = {$blk: assignment, $c: true, $r, T, _1, _2, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _v, check, code, code$1, context$1, msg$1, newType, ok, reason, sig, target, val, x, $s};return $f; + }; + $ptrType(Checker).prototype.initConst = function initConst(lhs, x) { + var {_r$1, check, lhs, x, $s, $r, $c} = $restore(this, {lhs, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(lhs.object.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { + lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + $s = -1; return; + } + /* */ if (!((x.mode === 4))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((x.mode === 4))) { */ case 1: + $r = check.errorf(x, 13, "%s is not constant", new sliceType$5([x])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { + lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + $s = -1; return; + /* } */ case 2: + _r$1 = isConstType(x.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = assert(_r$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { + lhs.object.typ = x.typ; + } + $r = check.assignment(x, lhs.object.typ, "constant declaration"); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return; + } + lhs.val = x.val; + $s = -1; return; + /* */ } return; } var $f = {$blk: initConst, $c: true, $r, _r$1, check, lhs, x, $s};return $f; + }; + $ptrType(Checker).prototype.initVar = function initVar(lhs, x, context$1) { + var {check, context$1, lhs, typ$4, x, $s, $r, $c} = $restore(this, {lhs, x, context$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(lhs.object.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { + lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + $s = -1; return $ifaceNil; + } + /* */ if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { */ case 1: + typ$4 = x.typ; + /* */ if (isUntyped(typ$4)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (isUntyped(typ$4)) { */ case 3: + /* */ if ($interfaceIsEqual(typ$4, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($interfaceIsEqual(typ$4, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { */ case 5: + $r = check.errorf(x, 16, "use of untyped nil in %s", new sliceType$5([new $String(context$1)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + $s = -1; return $ifaceNil; + /* } */ case 6: + typ$4 = Default(typ$4); + /* } */ case 4: + lhs.object.typ = typ$4; + /* } */ case 2: + $r = check.assignment(x, lhs.object.typ, context$1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return $ifaceNil; + } + $s = -1; return x.typ; + /* */ } return; } var $f = {$blk: initVar, $c: true, $r, check, context$1, lhs, typ$4, x, $s};return $f; + }; + $ptrType(Checker).prototype.assignVar = function assignVar(lhs, x) { + var {_1, _arg, _arg$1, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, check, ident$1, lhs, obj, ok, op$1, sel, v, v_used, w, x, z, $s, $r, $c} = $restore(this, {lhs, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + op$1 = [op$1]; + z = [z]; + check = this; + /* */ if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 1: + $r = check.useLHS(new sliceType$11([lhs])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } */ case 2: + _tuple = $assertType(unparen(lhs), ptrType$30, true); + ident$1 = _tuple[0]; + /* */ if (!(ident$1 === ptrType$30.nil) && ident$1.Name === "_") { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(ident$1 === ptrType$30.nil) && ident$1.Name === "_") { */ case 4: + $r = check.recordDef(ident$1, $ifaceNil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.assignment(x, $ifaceNil, "assignment to _ identifier"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return $ifaceNil; + } + $s = -1; return x.typ; + /* } */ case 5: + v = ptrType$16.nil; + v_used = false; + /* */ if (!(ident$1 === ptrType$30.nil)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!(ident$1 === ptrType$30.nil)) { */ case 8: + _r$1 = check.environment.lookup(ident$1.Name); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + obj = _r$1; + if (!($interfaceIsEqual(obj, $ifaceNil))) { + _tuple$1 = $assertType(obj, ptrType$16, true); + w = _tuple$1[0]; + if (!(w === ptrType$16.nil) && w.object.pkg === check.pkg) { + v = w; + v_used = v.used; + } + } + /* } */ case 9: + z[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr(z[0], lhs); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(v === ptrType$16.nil)) { + v.used = v_used; + } + if ((z[0].mode === 0) || $interfaceIsEqual(z[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return $ifaceNil; + } + _1 = z[0].mode; + /* */ if (_1 === (0)) { $s = 13; continue; } + /* */ if ((_1 === (5)) || (_1 === (6))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_1 === (0)) { */ case 13: + $s = -1; return $ifaceNil; + /* } else if ((_1 === (5)) || (_1 === (6))) { */ case 14: + $s = 16; continue; + /* } else { */ case 15: + _tuple$2 = $assertType(z[0].expr, ptrType$36, true); + sel = _tuple$2[0]; + ok = _tuple$2[1]; + /* */ if (ok) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (ok) { */ case 17: + op$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr(op$1[0], sel.X); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (op$1[0].mode === 6) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (op$1[0].mode === 6) { */ case 20: + _arg = z[0]; + _r$2 = ExprString(z[0].expr); /* */ $s = 22; case 22: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$2); + $r = check.errorf(_arg, 24, "cannot assign to struct field %s in map", new sliceType$5([_arg$1])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } */ case 21: + /* } */ case 18: + $r = check.errorf(z[0], 18, "cannot assign to %s", new sliceType$5([z[0]])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } */ case 16: + case 12: + $r = check.assignment(x, z[0].typ, "assignment"); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return $ifaceNil; + } + $s = -1; return x.typ; + /* */ } return; } var $f = {$blk: assignVar, $c: true, $r, _1, _arg, _arg$1, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, check, ident$1, lhs, obj, ok, op$1, sel, v, v_used, w, x, z, $s};return $f; + }; + operandTypes = function operandTypes$1(list$2) { + var _i, _ref, list$2, res, x; + res = sliceType$3.nil; + _ref = list$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + res = $append(res, x.typ); + _i++; + } + res = res; + return res; + }; + varTypes = function varTypes$1(list$2) { + var _i, _ref, list$2, res, x; + res = sliceType$3.nil; + _ref = list$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + res = $append(res, x.object.typ); + _i++; + } + res = res; + return res; + }; + $ptrType(Checker).prototype.typesSummary = function typesSummary(list$2, variadic) { + var {_i, _r$1, _r$2, _r$3, _ref, check, i, list$2, res, s, t, variadic, $s, $r, $c} = $restore(this, {list$2, variadic}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + res = sliceType$6.nil; + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + s = ""; + /* */ if ($interfaceIsEqual(t, $ifaceNil)) { $s = 4; continue; } + /* */ if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 5; continue; } + /* */ if (isUntyped(t)) { $s = 6; continue; } + /* */ if (variadic && (i === (list$2.$length - 1 >> 0))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($interfaceIsEqual(t, $ifaceNil)) { */ case 4: + s = ""; + $s = 8; continue; + /* } else if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 5: + s = ""; + $s = 8; continue; + /* } else if (isUntyped(t)) { */ case 6: + _r$1 = isNumeric(t); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$1) { */ case 9: + s = "number"; + $s = 11; continue; + /* } else { */ case 10: + s = strings.Replace($assertType(t, ptrType$4).name, "untyped ", "", -1); + /* } */ case 11: + $s = 8; continue; + /* } else if (variadic && (i === (list$2.$length - 1 >> 0))) { */ case 7: + _r$2 = check.sprintf("...%s", new sliceType$5([$assertType(t, ptrType$25).elem])); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + s = _r$2; + /* } */ case 8: + case 3: + /* */ if (s === "") { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (s === "") { */ case 14: + _r$3 = check.sprintf("%s", new sliceType$5([t])); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + s = _r$3; + /* } */ case 15: + res = $append(res, s); + _i++; + $s = 1; continue; + case 2: + $s = -1; return "(" + strings.Join(res, ", ") + ")"; + /* */ } return; } var $f = {$blk: typesSummary, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, check, i, list$2, res, s, t, variadic, $s};return $f; + }; + measure = function measure$1(x, unit) { + var {$24r, _r$1, unit, x, $s, $r, $c} = $restore(this, {x, unit}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!((x === 1))) { + unit = unit + ("s"); + } + _r$1 = fmt.Sprintf("%d %s", new sliceType$5([new $Int(x), new $String(unit)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: measure$1, $c: true, $r, $24r, _r$1, unit, x, $s};return $f; + }; + $ptrType(Checker).prototype.assignError = function assignError(rhs, nvars, nvals) { + var {_r$1, _r$2, _tuple, call, check, nvals, nvars, rhs, rhs0, vals, vars, $s, $r, $c} = $restore(this, {rhs, nvars, nvals}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = measure(nvars, "variable"); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + vars = _r$1; + _r$2 = measure(nvals, "value"); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + vals = _r$2; + rhs0 = (0 >= rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + 0]); + /* */ if (rhs.$length === 1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (rhs.$length === 1) { */ case 3: + _tuple = $assertType(unparen(rhs0), ptrType$85, true); + call = _tuple[0]; + /* */ if (!(call === ptrType$85.nil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(call === ptrType$85.nil)) { */ case 5: + $r = check.errorf(rhs0, 17, "assignment mismatch: %s but %s returns %s", new sliceType$5([new $String(vars), call.Fun, new $String(vals)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 6: + /* } */ case 4: + $r = check.errorf(rhs0, 17, "assignment mismatch: %s but %s", new sliceType$5([new $String(vars), new $String(vals)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: assignError, $c: true, $r, _r$1, _r$2, _tuple, call, check, nvals, nvars, rhs, rhs0, vals, vars, $s};return $f; + }; + $ptrType(Checker).prototype.initVars = function initVars(lhs, origRHS, returnStmt) { + var {_arg, _arg$1, _i, _i$1, _i$2, _i$3, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, a, at$1, check, commaOk, context$1, err, i, i$1, lhs, lhs$1, obj, origRHS, qualifier$1, returnStmt, rhs, x, x$1, x$2, $s, $r, $c} = $restore(this, {lhs, origRHS, returnStmt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.exprList(origRHS, (lhs.$length === 2) && $interfaceIsEqual(returnStmt, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + rhs = _tuple[0]; + commaOk = _tuple[1]; + /* */ if (!((lhs.$length === rhs.$length))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((lhs.$length === rhs.$length))) { */ case 2: + _ref = lhs; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + obj = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + obj.used = true; + if ($interfaceIsEqual(obj.object.typ, $ifaceNil)) { + obj.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + _i++; + } + _ref$1 = rhs; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + x = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (x.mode === 0) { + $s = -1; return; + } + _i$1++; + } + /* */ if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { */ case 4: + at$1 = returnStmt; + qualifier$1 = "not enough"; + if (rhs.$length > lhs.$length) { + at$1 = (x$1 = lhs.$length, ((x$1 < 0 || x$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + x$1])).expr; + qualifier$1 = "too many"; + } else if (rhs.$length > 0) { + at$1 = (x$2 = rhs.$length - 1 >> 0, ((x$2 < 0 || x$2 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + x$2])).expr; + } + err = newErrorf(at$1, 103, "%s return values", new sliceType$5([new $String(qualifier$1)])); + _r$2 = check.typesSummary(operandTypes(rhs), false); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $String(_r$2); + $r = err.errorf(0, "have %s", new sliceType$5([_arg])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = check.typesSummary(varTypes(lhs), false); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$3); + $r = err.errorf(0, "want %s", new sliceType$5([_arg$1])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.report(err); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 5: + /* */ if (false) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (false) { */ case 11: + $r = check.assignError(origRHS, lhs.$length, rhs.$length); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else { */ case 12: + $r = check.errorf((0 >= rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + 0]), 17, "cannot initialize %d variables with %d values", new sliceType$5([new $Int(lhs.$length), new $Int(rhs.$length)])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + $s = -1; return; + /* } */ case 3: + context$1 = "assignment"; + if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { + context$1 = "return statement"; + } + /* */ if (commaOk) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (commaOk) { */ case 16: + a = arrayType$2.zero(); + _ref$2 = a; + _i$2 = 0; + /* while (true) { */ case 18: + /* if (!(_i$2 < 2)) { break; } */ if(!(_i$2 < 2)) { $s = 19; continue; } + i = _i$2; + _r$4 = check.initVar(((i < 0 || i >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i]), ((i < 0 || i >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + i]), context$1); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = _r$4); + _i$2++; + $s = 18; continue; + case 19: + $r = check.recordCommaOkTypes((0 >= origRHS.$length ? ($throwRuntimeError("index out of range"), undefined) : origRHS.$array[origRHS.$offset + 0]), $clone(a, arrayType$2)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 17: + _ref$3 = lhs; + _i$3 = 0; + /* while (true) { */ case 22: + /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 23; continue; } + i$1 = _i$3; + lhs$1 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + _r$5 = check.initVar(lhs$1, ((i$1 < 0 || i$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + i$1]), context$1); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + _i$3++; + $s = 22; continue; + case 23: + $s = -1; return; + /* */ } return; } var $f = {$blk: initVars, $c: true, $r, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, a, at$1, check, commaOk, context$1, err, i, i$1, lhs, lhs$1, obj, origRHS, qualifier$1, returnStmt, rhs, x, x$1, x$2, $s};return $f; + }; + $ptrType(Checker).prototype.assignVars = function assignVars(lhs, origRHS) { + var {_i, _i$1, _i$2, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _tuple, a, check, commaOk, i, i$1, lhs, lhs$1, origRHS, rhs, x, $s, $r, $c} = $restore(this, {lhs, origRHS}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r$1 = check.exprList(origRHS, lhs.$length === 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + rhs = _tuple[0]; + commaOk = _tuple[1]; + /* */ if (!((lhs.$length === rhs.$length))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((lhs.$length === rhs.$length))) { */ case 2: + $r = check.useLHS(lhs); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = rhs; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (x.mode === 0) { + $s = -1; return; + } + _i++; + } + /* */ if (false) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (false) { */ case 5: + $r = check.assignError(origRHS, lhs.$length, rhs.$length); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + $r = check.errorf((0 >= rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + 0]), 17, "cannot assign %d values to %d variables", new sliceType$5([new $Int(rhs.$length), new $Int(lhs.$length)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + $s = -1; return; + /* } */ case 3: + /* */ if (commaOk) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (commaOk) { */ case 10: + a = arrayType$2.zero(); + _ref$1 = a; + _i$1 = 0; + /* while (true) { */ case 12: + /* if (!(_i$1 < 2)) { break; } */ if(!(_i$1 < 2)) { $s = 13; continue; } + i = _i$1; + _r$2 = check.assignVar(((i < 0 || i >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i]), ((i < 0 || i >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + i])); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = _r$2); + _i$1++; + $s = 12; continue; + case 13: + $r = check.recordCommaOkTypes((0 >= origRHS.$length ? ($throwRuntimeError("index out of range"), undefined) : origRHS.$array[origRHS.$offset + 0]), $clone(a, arrayType$2)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 11: + _ref$2 = lhs; + _i$2 = 0; + /* while (true) { */ case 16: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 17; continue; } + i$1 = _i$2; + lhs$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + _r$3 = check.assignVar(lhs$1, ((i$1 < 0 || i$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + i$1])); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _i$2++; + $s = 16; continue; + case 17: + $s = -1; return; + /* */ } return; } var $f = {$blk: assignVars, $c: true, $r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _tuple, a, check, commaOk, i, i$1, lhs, lhs$1, origRHS, rhs, x, $s};return $f; + }; + $ptrType(Checker).prototype.shortVarDecl = function shortVarDecl(pos$1, lhs, rhs) { + var {_entry, _i, _i$1, _i$2, _key, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _tuple, _tuple$1, alt, check, hasErr, i, i$1, ident$1, lhs, lhs$1, lhsVars, name, newVars, obj, obj$1, obj$2, obj$3, pos$1, rhs, scope, scopePos$2, seen, top, x, x$1, $s, $r, $c} = $restore(this, {pos$1, lhs, rhs}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + top = check.delayed.$length; + scope = check.environment.scope; + seen = (x = lhs.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + lhsVars = $makeSlice(sliceType$10, lhs.$length); + newVars = $makeSlice(sliceType$10, 0, lhs.$length); + hasErr = false; + _ref = lhs; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + lhs$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple = $assertType(lhs$1, ptrType$30, true); + ident$1 = _tuple[0]; + /* */ if (ident$1 === ptrType$30.nil) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ident$1 === ptrType$30.nil) { */ case 3: + $r = check.useLHS(new sliceType$11([lhs$1])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.errorf(lhs$1, 131, "non-name %s on left side of :=", new sliceType$5([lhs$1])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + hasErr = true; + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 4: + name = ident$1.Name; + /* */ if (!(name === "_")) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(name === "_")) { */ case 7: + /* */ if ((_entry = $mapIndex(seen,$String.keyFor(name)), _entry !== undefined ? _entry.v : false)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((_entry = $mapIndex(seen,$String.keyFor(name)), _entry !== undefined ? _entry.v : false)) { */ case 9: + $r = check.errorf(lhs$1, 132, "%s repeated on left side of :=", new sliceType$5([lhs$1])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + hasErr = true; + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 10: + _key = name; (seen || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); + /* } */ case 8: + _r$1 = scope.Lookup(name); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + alt = _r$1; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 13: + $r = check.recordUse(ident$1, alt); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple$1 = $assertType(alt, ptrType$16, true); + obj = _tuple$1[0]; + /* */ if (!(obj === ptrType$16.nil)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!(obj === ptrType$16.nil)) { */ case 16: + ((i < 0 || i >= lhsVars.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhsVars.$array[lhsVars.$offset + i] = obj); + $s = 18; continue; + /* } else { */ case 17: + $r = check.errorf(lhs$1, 18, "cannot assign to %s", new sliceType$5([lhs$1])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + hasErr = true; + /* } */ case 18: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 14: + obj$1 = NewVar(ident$1.Pos(), check.pkg, name, $ifaceNil); + ((i < 0 || i >= lhsVars.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhsVars.$array[lhsVars.$offset + i] = obj$1); + if (!(name === "_")) { + newVars = $append(newVars, obj$1); + } + $r = check.recordDef(ident$1, obj$1); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + _ref$1 = lhsVars; + _i$1 = 0; + /* while (true) { */ case 21: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 22; continue; } + i$1 = _i$1; + obj$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + /* */ if (obj$2 === ptrType$16.nil) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (obj$2 === ptrType$16.nil) { */ case 23: + _r$2 = ((i$1 < 0 || i$1 >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i$1]).Pos(); /* */ $s = 25; case 25: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = NewVar(_r$2, check.pkg, "_", $ifaceNil); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ((i$1 < 0 || i$1 >= lhsVars.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhsVars.$array[lhsVars.$offset + i$1] = _r$3); + /* } */ case 24: + _i$1++; + $s = 21; continue; + case 22: + $r = check.initVars(lhsVars, rhs, $ifaceNil); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.processDelayed(top); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((newVars.$length === 0) && !hasErr) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if ((newVars.$length === 0) && !hasErr) { */ case 29: + $r = check.softErrorf(pos$1, 19, "no new variables on left side of :=", sliceType$5.nil); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 30: + _r$4 = (x$1 = rhs.$length - 1 >> 0, ((x$1 < 0 || x$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + x$1])).End(); /* */ $s = 32; case 32: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + scopePos$2 = _r$4; + _ref$2 = newVars; + _i$2 = 0; + /* while (true) { */ case 33: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 34; continue; } + obj$3 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + $r = check.declare(scope, ptrType$30.nil, obj$3, scopePos$2); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 33; continue; + case 34: + $s = -1; return; + /* */ } return; } var $f = {$blk: shortVarDecl, $c: true, $r, _entry, _i, _i$1, _i$2, _key, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _tuple, _tuple$1, alt, check, hasErr, i, i$1, ident$1, lhs, lhs$1, lhsVars, name, newVars, obj, obj$1, obj$2, obj$3, pos$1, rhs, scope, scopePos$2, seen, top, x, x$1, $s};return $f; + }; + $ptrType(Array).prototype.Len = function Len$9() { + var a; + a = this; + return a.len; + }; + $ptrType(Array).prototype.Elem = function Elem$4() { + var a; + a = this; + return a.elem; + }; + $ptrType(Array).prototype.Underlying = function Underlying$12() { + var t; + t = this; + return t; + }; + $ptrType(Array).prototype.String = function String$34() { + var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$34, $c: true, $r, $24r, _r$1, t, $s};return $f; + }; + $ptrType(Error).prototype.Error = function Error$1() { + var {$24r, _arg, _arg$1, _r$1, _r$2, err, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + err = this; + _r$1 = err.Fset.Position(err.Pos); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = (x = _r$1, new x.constructor.elem(x)); + _arg$1 = new $String(err.Msg); + _r$2 = fmt.Sprintf("%s: %s", new sliceType$5([_arg, _arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Error$1, $c: true, $r, $24r, _arg, _arg$1, _r$1, _r$2, err, x, $s};return $f; + }; + Error.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; + $ptrType(Info).prototype.TypeOf = function TypeOf(e) { + var {$24r, _entry, _r$1, _tuple, _tuple$1, e, id, info, obj, ok, t, $s, $r, $c} = $restore(this, {e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + info = this; + _tuple = (_entry = $mapIndex(info.Types,ast.Expr.keyFor(e)), _entry !== undefined ? [_entry.v, true] : [new TypeAndValue.ptr(0, $ifaceNil, $ifaceNil), false]); + t = $clone(_tuple[0], TypeAndValue); + ok = _tuple[1]; + if (ok) { + $s = -1; return t.Type; + } + _tuple$1 = $assertType(e, ptrType$30, true); + id = _tuple$1[0]; + /* */ if (!(id === ptrType$30.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(id === ptrType$30.nil)) { */ case 1: + obj = info.ObjectOf(id); + /* */ if (!($interfaceIsEqual(obj, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(obj, $ifaceNil))) { */ case 3: + _r$1 = obj.Type(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 6; case 6: return $24r; + /* } */ case 4: + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: TypeOf, $c: true, $r, $24r, _entry, _r$1, _tuple, _tuple$1, e, id, info, obj, ok, t, $s};return $f; + }; + $ptrType(Info).prototype.ObjectOf = function ObjectOf(id) { + var _entry, _entry$1, id, info, obj; + info = this; + obj = (_entry = $mapIndex(info.Defs,ptrType$30.keyFor(id)), _entry !== undefined ? _entry.v : $ifaceNil); + if (!($interfaceIsEqual(obj, $ifaceNil))) { + return obj; + } + return (_entry$1 = $mapIndex(info.Uses,ptrType$30.keyFor(id)), _entry$1 !== undefined ? _entry$1.v : $ifaceNil); + }; + $ptrType(TypeAndValue).prototype.IsVoid = function IsVoid() { + var tv; + tv = this; + return tv.mode === 1; + }; + TypeAndValue.prototype.IsVoid = function(...$args) { return this.$val.IsVoid(...$args); }; + $ptrType(TypeAndValue).prototype.IsType = function IsType() { + var tv; + tv = this; + return tv.mode === 3; + }; + TypeAndValue.prototype.IsType = function(...$args) { return this.$val.IsType(...$args); }; + $ptrType(TypeAndValue).prototype.IsBuiltin = function IsBuiltin() { + var tv; + tv = this; + return tv.mode === 2; + }; + TypeAndValue.prototype.IsBuiltin = function(...$args) { return this.$val.IsBuiltin(...$args); }; + $ptrType(TypeAndValue).prototype.IsValue = function IsValue() { + var _1, tv; + tv = this; + _1 = tv.mode; + if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { + return true; + } + return false; + }; + TypeAndValue.prototype.IsValue = function(...$args) { return this.$val.IsValue(...$args); }; + $ptrType(TypeAndValue).prototype.IsNil = function IsNil() { + var tv; + tv = this; + return (tv.mode === 7) && $interfaceIsEqual(tv.Type, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25])); + }; + TypeAndValue.prototype.IsNil = function(...$args) { return this.$val.IsNil(...$args); }; + $ptrType(TypeAndValue).prototype.Addressable = function Addressable() { + var tv; + tv = this; + return tv.mode === 5; + }; + TypeAndValue.prototype.Addressable = function(...$args) { return this.$val.Addressable(...$args); }; + $ptrType(TypeAndValue).prototype.Assignable = function Assignable() { + var tv; + tv = this; + return (tv.mode === 5) || (tv.mode === 6); + }; + TypeAndValue.prototype.Assignable = function(...$args) { return this.$val.Assignable(...$args); }; + $ptrType(TypeAndValue).prototype.HasOk = function HasOk() { + var tv; + tv = this; + return (tv.mode === 8) || (tv.mode === 6); + }; + TypeAndValue.prototype.HasOk = function(...$args) { return this.$val.HasOk(...$args); }; + $ptrType(Initializer).prototype.String = function String$35() { + var {_i, _ref, buf, i, init$7, lhs, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + init$7 = this; + buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); + _ref = init$7.Lhs; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + lhs = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf[0].WriteString(", "); + } + buf[0].WriteString(lhs.object.Name()); + _i++; + } + buf[0].WriteString(" = "); + $r = WriteExpr(buf[0], init$7.Rhs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: String$35, $c: true, $r, _i, _ref, buf, i, init$7, lhs, $s};return $f; + }; + $ptrType(Config).prototype.Check = function Check(path, fset, files, info) { + var {$24r, _r$1, _r$2, _r$3, conf, files, fset, info, path, pkg, $s, $r, $c} = $restore(this, {path, fset, files, info}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + conf = this; + _r$1 = NewPackage(path, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pkg = _r$1; + _r$2 = NewChecker(conf, fset, pkg, info); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Files(files); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = [pkg, _r$3]; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: Check, $c: true, $r, $24r, _r$1, _r$2, _r$3, conf, files, fset, info, path, pkg, $s};return $f; + }; + Identical = function Identical$1(x, y) { + var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = identical(x, y, true, ptrType$23.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Identical$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; + }; + $pkg.Identical = Identical; + IdenticalIgnoreTags = function IdenticalIgnoreTags$1(x, y) { + var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = identical(x, y, false, ptrType$23.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: IdenticalIgnoreTags$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; + }; + $pkg.IdenticalIgnoreTags = IdenticalIgnoreTags; + ptrType$12.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Term", name: "Term", pkg: "", typ: $funcType([$Int], [ptrType$19], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$19.methods = [{prop: "Tilde", name: "Tilde", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$22.methods = [{prop: "unify", name: "unify", pkg: "go/types", typ: $funcType([Type, Type], [$Bool], false)}, {prop: "tracef", name: "tracef", pkg: "go/types", typ: $funcType([$String, sliceType$5], [], true)}, {prop: "join", name: "join", pkg: "go/types", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "nifyEq", name: "nifyEq", pkg: "go/types", typ: $funcType([Type, Type, ptrType$23], [$Bool], false)}, {prop: "nify", name: "nify", pkg: "go/types", typ: $funcType([Type, Type, ptrType$23], [$Bool], false)}]; + ptrType$113.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "init", name: "init", pkg: "go/types", typ: $funcType([sliceType$9], [], false)}, {prop: "index", name: "index", pkg: "go/types", typ: $funcType([Type], [$Int], false)}, {prop: "setIndex", name: "setIndex", pkg: "go/types", typ: $funcType([$Int, $Int], [], false)}, {prop: "at", name: "at", pkg: "go/types", typ: $funcType([$Int], [Type], false)}, {prop: "set", name: "set", pkg: "go/types", typ: $funcType([$Int, Type], [], false)}, {prop: "unknowns", name: "unknowns", pkg: "go/types", typ: $funcType([], [$Int], false)}, {prop: "types", name: "types", pkg: "go/types", typ: $funcType([], [sliceType$3, $Int], false)}]; + ptrType$5.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "equal", name: "equal", pkg: "go/types", typ: $funcType([ptrType$5], [$Bool], false)}, {prop: "union", name: "union", pkg: "go/types", typ: $funcType([ptrType$5], [ptrType$5, ptrType$5], false)}, {prop: "intersect", name: "intersect", pkg: "go/types", typ: $funcType([ptrType$5], [ptrType$5], false)}, {prop: "includes", name: "includes", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "go/types", typ: $funcType([ptrType$5], [$Bool], false)}, {prop: "disjoint", name: "disjoint", pkg: "go/types", typ: $funcType([ptrType$5], [$Bool], false)}]; + ptrType$115.methods = [{prop: "byte$", name: "byte", pkg: "go/types", typ: $funcType([$Uint8], [], false)}, {prop: "string", name: "string", pkg: "go/types", typ: $funcType([$String], [], false)}, {prop: "error", name: "error", pkg: "go/types", typ: $funcType([$String], [], false)}, {prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "typeSet", name: "typeSet", pkg: "go/types", typ: $funcType([ptrType$8], [], false)}, {prop: "typeList", name: "typeList", pkg: "go/types", typ: $funcType([sliceType$3], [], false)}, {prop: "tParamList", name: "tParamList", pkg: "go/types", typ: $funcType([sliceType$9], [], false)}, {prop: "typeName", name: "typeName", pkg: "go/types", typ: $funcType([ptrType$17], [], false)}, {prop: "tuple", name: "tuple", pkg: "go/types", typ: $funcType([ptrType$15, $Bool], [], false)}, {prop: "signature", name: "signature", pkg: "go/types", typ: $funcType([ptrType$27], [], false)}]; + ptrType$8.methods = [{prop: "IsEmpty", name: "IsEmpty", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsAll", name: "IsAll", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsMethodSet", name: "IsMethodSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsComparable", name: "IsComparable", pkg: "", typ: $funcType([mapType], [$Bool], false)}, {prop: "NumMethods", name: "NumMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "LookupMethod", name: "LookupMethod", pkg: "", typ: $funcType([ptrType$1, $String, $Bool], [$Int, ptrType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "hasTerms", name: "hasTerms", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "go/types", typ: $funcType([ptrType$8], [$Bool], false)}, {prop: "is", name: "is", pkg: "go/types", typ: $funcType([funcType$2], [$Bool], false)}, {prop: "underIs", name: "underIs", pkg: "go/types", typ: $funcType([funcType$3], [$Bool], false)}]; + byUniqueMethodName.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType$14.methods = [{prop: "Index", name: "Index", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Obj", name: "Obj", pkg: "", typ: $funcType([], [ptrType$17], false)}, {prop: "Constraint", name: "Constraint", pkg: "", typ: $funcType([], [Type], false)}, {prop: "SetConstraint", name: "SetConstraint", pkg: "", typ: $funcType([Type], [], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "iface", name: "iface", pkg: "go/types", typ: $funcType([], [ptrType$13], false)}, {prop: "is", name: "is", pkg: "go/types", typ: $funcType([funcType$2], [$Bool], false)}, {prop: "underIs", name: "underIs", pkg: "go/types", typ: $funcType([funcType$3], [$Bool], false)}]; + ptrType$48.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [ptrType$14], false)}, {prop: "list", name: "list", pkg: "go/types", typ: $funcType([], [sliceType$9], false)}]; + ptrType$55.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "list", name: "list", pkg: "go/types", typ: $funcType([], [sliceType$3], false)}]; + ptrType$15.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [ptrType$16], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + termlist.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isEmpty", name: "isEmpty", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "isAll", name: "isAll", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "norm", name: "norm", pkg: "go/types", typ: $funcType([], [termlist], false)}, {prop: "union", name: "union", pkg: "go/types", typ: $funcType([termlist], [termlist], false)}, {prop: "intersect", name: "intersect", pkg: "go/types", typ: $funcType([termlist], [termlist], false)}, {prop: "equal", name: "equal", pkg: "go/types", typ: $funcType([termlist], [$Bool], false)}, {prop: "includes", name: "includes", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "supersetOf", name: "supersetOf", pkg: "go/types", typ: $funcType([ptrType$5], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "go/types", typ: $funcType([termlist], [$Bool], false)}]; + substMap.methods = [{prop: "empty", name: "empty", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([ptrType$14], [Type], false)}]; + ptrType$116.methods = [{prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([Type], [Type], false)}, {prop: "typOrNil", name: "typOrNil", pkg: "go/types", typ: $funcType([Type], [Type], false)}, {prop: "var_", name: "var_", pkg: "go/types", typ: $funcType([ptrType$16], [ptrType$16], false)}, {prop: "tuple", name: "tuple", pkg: "go/types", typ: $funcType([ptrType$15], [ptrType$15], false)}, {prop: "varList", name: "varList", pkg: "go/types", typ: $funcType([sliceType$10], [sliceType$10, $Bool], false)}, {prop: "func_", name: "func_", pkg: "go/types", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "funcList", name: "funcList", pkg: "go/types", typ: $funcType([sliceType], [sliceType, $Bool], false)}, {prop: "typeList", name: "typeList", pkg: "go/types", typ: $funcType([sliceType$3], [sliceType$3, $Bool], false)}, {prop: "termlist", name: "termlist", pkg: "go/types", typ: $funcType([sliceType$12], [sliceType$12, $Bool], false)}]; + ptrType$11.methods = [{prop: "NumFields", name: "NumFields", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [ptrType$16], false)}, {prop: "Tag", name: "Tag", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "markComplete", name: "markComplete", pkg: "go/types", typ: $funcType([], [], false)}]; + ptrType$25.methods = [{prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$82.methods = [{prop: "Alignof", name: "Alignof", pkg: "", typ: $funcType([Type], [$Int64], false)}, {prop: "Offsetsof", name: "Offsetsof", pkg: "", typ: $funcType([sliceType$10], [sliceType$19], false)}, {prop: "Sizeof", name: "Sizeof", pkg: "", typ: $funcType([Type], [$Int64], false)}]; + ptrType$27.methods = [{prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [ptrType$16], false)}, {prop: "TypeParams", name: "TypeParams", pkg: "", typ: $funcType([], [ptrType$48], false)}, {prop: "RecvTypeParams", name: "RecvTypeParams", pkg: "", typ: $funcType([], [ptrType$48], false)}, {prop: "Params", name: "Params", pkg: "", typ: $funcType([], [ptrType$15], false)}, {prop: "Results", name: "Results", pkg: "", typ: $funcType([], [ptrType$15], false)}, {prop: "Variadic", name: "Variadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$3.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [SelectionKind], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Obj", name: "Obj", pkg: "", typ: $funcType([], [Object], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([], [sliceType$13], false)}, {prop: "Indirect", name: "Indirect", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType.methods = [{prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Names", name: "Names", pkg: "", typ: $funcType([], [sliceType$6], false)}, {prop: "NumChildren", name: "NumChildren", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Child", name: "Child", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [Object], false)}, {prop: "LookupParent", name: "LookupParent", pkg: "", typ: $funcType([$String, token.Pos], [ptrType, Object], false)}, {prop: "Insert", name: "Insert", pkg: "", typ: $funcType([Object], [Object], false)}, {prop: "_InsertLazy", name: "_InsertLazy", pkg: "go/types", typ: $funcType([$String, funcType$4], [$Bool], false)}, {prop: "insert", name: "insert", pkg: "go/types", typ: $funcType([$String, Object], [], false)}, {prop: "squash", name: "squash", pkg: "go/types", typ: $funcType([funcType$5], [], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Contains", name: "Contains", pkg: "", typ: $funcType([token.Pos], [$Bool], false)}, {prop: "Innermost", name: "Innermost", pkg: "", typ: $funcType([token.Pos], [ptrType], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer, $Int, $Bool], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$84.methods = [{prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}]; + ptrType$57.methods = [{prop: "hasInitializer", name: "hasInitializer", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "addDep", name: "addDep", pkg: "go/types", typ: $funcType([Object], [], false)}]; + inSourceOrder.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType$23.methods = [{prop: "identical", name: "identical", pkg: "go/types", typ: $funcType([ptrType$23], [$Bool], false)}]; + ptrType$26.methods = [{prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "Path", name: "Path", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "SetName", name: "SetName", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Scope", name: "Scope", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Complete", name: "Complete", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "MarkComplete", name: "MarkComplete", pkg: "", typ: $funcType([], [], false)}, {prop: "Imports", name: "Imports", pkg: "", typ: $funcType([], [sliceType$24], false)}, {prop: "SetImports", name: "SetImports", pkg: "", typ: $funcType([sliceType$24], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$61.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "setConst", name: "setConst", pkg: "go/types", typ: $funcType([token.Token, $String], [], false)}, {prop: "isNil", name: "isNil", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "assignableTo", name: "assignableTo", pkg: "go/types", typ: $funcType([ptrType$6, Type, ptrType$34], [$Bool, errorCode], false)}, {prop: "convertibleTo", name: "convertibleTo", pkg: "go/types", typ: $funcType([ptrType$6, Type, ptrType$34], [$Bool], false)}]; + ptrType$53.methods = [{prop: "insert", name: "insert", pkg: "go/types", typ: $funcType([Object], [Object], false)}]; + ptrType$117.methods = [{prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}]; + color.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$31.methods = [{prop: "Imported", name: "Imported", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$32.methods = [{prop: "Val", name: "Val", pkg: "", typ: $funcType([], [constant.Value], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$17.methods = [{prop: "IsAlias", name: "IsAlias", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$16.methods = [{prop: "Anonymous", name: "Anonymous", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Embedded", name: "Embedded", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsField", name: "IsField", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Origin", name: "Origin", pkg: "", typ: $funcType([], [ptrType$16], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "FullName", name: "FullName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Scope", name: "Scope", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Origin", name: "Origin", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "hasPtrRecv", name: "hasPtrRecv", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$90.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$18.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$33.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$9.methods = [{prop: "resolve", name: "resolve", pkg: "go/types", typ: $funcType([], [ptrType$9], false)}, {prop: "state", name: "state", pkg: "go/types", typ: $funcType([], [namedState], false)}, {prop: "setState", name: "setState", pkg: "go/types", typ: $funcType([namedState], [], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "Obj", name: "Obj", pkg: "", typ: $funcType([], [ptrType$17], false)}, {prop: "Origin", name: "Origin", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "TypeParams", name: "TypeParams", pkg: "", typ: $funcType([], [ptrType$48], false)}, {prop: "SetTypeParams", name: "SetTypeParams", pkg: "", typ: $funcType([sliceType$9], [], false)}, {prop: "TypeArgs", name: "TypeArgs", pkg: "", typ: $funcType([], [ptrType$55], false)}, {prop: "NumMethods", name: "NumMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "expandMethod", name: "expandMethod", pkg: "go/types", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "SetUnderlying", name: "SetUnderlying", pkg: "", typ: $funcType([Type], [], false)}, {prop: "AddMethod", name: "AddMethod", pkg: "", typ: $funcType([ptrType$2], [], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "under", name: "under", pkg: "go/types", typ: $funcType([], [Type], false)}, {prop: "setUnderlying", name: "setUnderlying", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "lookupMethod", name: "lookupMethod", pkg: "go/types", typ: $funcType([ptrType$1, $String, $Bool], [$Int, ptrType$2], false)}, {prop: "expandUnderlying", name: "expandUnderlying", pkg: "go/types", typ: $funcType([], [Type], false)}]; + ptrType$118.methods = [{prop: "recordCanon", name: "recordCanon", pkg: "go/types", typ: $funcType([ptrType$14, ptrType$14], [], false)}, {prop: "recordInstance", name: "recordInstance", pkg: "go/types", typ: $funcType([ptrType$1, token.Pos, sliceType$9, sliceType$3, sliceType$11], [], false)}, {prop: "assign", name: "assign", pkg: "go/types", typ: $funcType([ptrType$1, token.Pos, ptrType$14, Type], [], false)}, {prop: "localNamedVertex", name: "localNamedVertex", pkg: "go/types", typ: $funcType([ptrType$1, ptrType$9], [$Int], false)}, {prop: "typeParamVertex", name: "typeParamVertex", pkg: "go/types", typ: $funcType([ptrType$14], [$Int], false)}, {prop: "addEdge", name: "addEdge", pkg: "go/types", typ: $funcType([$Int, $Int, $Int, token.Pos, Type], [], false)}]; + ptrType$119.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [ptrType$3], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([ptrType$1, $String], [ptrType$3], false)}]; + methodSet.methods = [{prop: "add", name: "add", pkg: "go/types", typ: $funcType([sliceType, sliceType$13, $Bool, $Bool], [methodSet], false)}, {prop: "addOne", name: "addOne", pkg: "go/types", typ: $funcType([ptrType$2, sliceType$13, $Bool, $Bool], [methodSet], false)}]; + ptrType$28.methods = [{prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$120.methods = [{prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([ptrType$9], [ptrType$9], false)}, {prop: "add", name: "add", pkg: "go/types", typ: $funcType([ptrType$9], [], false)}]; + ptrType$92.methods = [{prop: "insert", name: "insert", pkg: "go/types", typ: $funcType([ptrType$64], [], false)}, {prop: "gotoTarget", name: "gotoTarget", pkg: "go/types", typ: $funcType([$String], [ptrType$64], false)}, {prop: "enclosingTarget", name: "enclosingTarget", pkg: "go/types", typ: $funcType([$String], [ptrType$64], false)}]; + ptrType$13.methods = [{prop: "typeSet", name: "typeSet", pkg: "go/types", typ: $funcType([], [ptrType$8], false)}, {prop: "MarkImplicit", name: "MarkImplicit", pkg: "", typ: $funcType([], [], false)}, {prop: "NumExplicitMethods", name: "NumExplicitMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ExplicitMethod", name: "ExplicitMethod", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "NumEmbeddeds", name: "NumEmbeddeds", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Embedded", name: "Embedded", pkg: "", typ: $funcType([$Int], [ptrType$9], false)}, {prop: "EmbeddedType", name: "EmbeddedType", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "NumMethods", name: "NumMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "Empty", name: "Empty", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsComparable", name: "IsComparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsMethodSet", name: "IsMethodSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsImplicit", name: "IsImplicit", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Complete", name: "Complete", pkg: "", typ: $funcType([], [ptrType$13], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}]; + ptrType$95.methods = [{prop: "cost", name: "cost", pkg: "go/types", typ: $funcType([], [$Int], false)}]; + ptrType$96.methods = [{prop: "add", name: "add", pkg: "go/types", typ: $funcType([ptrType$95], [], false)}]; + nodeQueue.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; + ptrType$94.methods = [{prop: "Push", name: "Push", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Pop", name: "Pop", pkg: "", typ: $funcType([], [$emptyInterface], false)}]; + ptrType$121.methods = [{prop: "isParameterized", name: "isParameterized", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "isParameterizedTypeList", name: "isParameterizedTypeList", pkg: "go/types", typ: $funcType([sliceType$3], [$Bool], false)}]; + ptrType$122.methods = [{prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "varList", name: "varList", pkg: "go/types", typ: $funcType([sliceType$10], [], false)}]; + ptrType$104.methods = [{prop: "empty", name: "empty", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "pos", name: "pos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "msg", name: "msg", pkg: "go/types", typ: $funcType([ptrType$24, Qualifier], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "errorf", name: "errorf", pkg: "go/types", typ: $funcType([token.Pos, $String, sliceType$5], [], true)}]; + posSpan.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]; + atPos.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]; + importDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; + constDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; + varDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; + typeDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; + funcDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; + ptrType$51.methods = [{prop: "instanceHash", name: "instanceHash", pkg: "go/types", typ: $funcType([Type, sliceType$3], [$String], false)}, {prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([$String, Type, sliceType$3], [Type], false)}, {prop: "update", name: "update", pkg: "go/types", typ: $funcType([$String, Type, sliceType$3, Type], [Type], false)}, {prop: "getID", name: "getID", pkg: "go/types", typ: $funcType([Type], [$Int], false)}]; + ptrType$123.methods = [{prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([$String], [Object], false)}]; + ptrType$124.methods = [{prop: "describef", name: "describef", pkg: "go/types", typ: $funcType([positioner, $String, sliceType$5], [], true)}]; + ptrType$6.methods = [{prop: "langCompat", name: "langCompat", pkg: "go/types", typ: $funcType([ptrType$56], [], false)}, {prop: "allowVersion", name: "allowVersion", pkg: "go/types", typ: $funcType([ptrType$1, $Int, $Int], [$Bool], false)}, {prop: "validType", name: "validType", pkg: "go/types", typ: $funcType([ptrType$9], [], false)}, {prop: "validType0", name: "validType0", pkg: "go/types", typ: $funcType([Type, sliceType$7, sliceType$7], [$Bool], false)}, {prop: "ident", name: "ident", pkg: "go/types", typ: $funcType([ptrType$61, ptrType$30, ptrType$9, $Bool], [], false)}, {prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([ast.Expr], [Type], false)}, {prop: "varType", name: "varType", pkg: "go/types", typ: $funcType([ast.Expr], [Type], false)}, {prop: "validVarType", name: "validVarType", pkg: "go/types", typ: $funcType([ast.Expr, Type], [], false)}, {prop: "definedType", name: "definedType", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$9], [Type], false)}, {prop: "genericType", name: "genericType", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$34], [Type], false)}, {prop: "typInternal", name: "typInternal", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$9], [Type], false)}, {prop: "instantiatedType", name: "instantiatedType", pkg: "go/types", typ: $funcType([ptrType$112, ptrType$9], [Type], false)}, {prop: "arrayLength", name: "arrayLength", pkg: "go/types", typ: $funcType([ast.Expr], [$Int64], false)}, {prop: "typeList", name: "typeList", pkg: "go/types", typ: $funcType([sliceType$11], [sliceType$3], false)}, {prop: "newTypeParam", name: "newTypeParam", pkg: "go/types", typ: $funcType([ptrType$17, Type], [ptrType$14], false)}, {prop: "subst", name: "subst", pkg: "go/types", typ: $funcType([token.Pos, Type, substMap, ptrType$9, ptrType$51], [Type], false)}, {prop: "structType", name: "structType", pkg: "go/types", typ: $funcType([ptrType$11, ptrType$42], [], false)}, {prop: "declareInSet", name: "declareInSet", pkg: "go/types", typ: $funcType([ptrType$53, token.Pos, Object], [$Bool], false)}, {prop: "tag", name: "tag", pkg: "go/types", typ: $funcType([ptrType$56], [$String], false)}, {prop: "funcBody", name: "funcBody", pkg: "go/types", typ: $funcType([ptrType$57, $String, ptrType$27, ptrType$73, constant.Value], [], false)}, {prop: "usage", name: "usage", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "simpleStmt", name: "simpleStmt", pkg: "go/types", typ: $funcType([ast.Stmt], [], false)}, {prop: "stmtList", name: "stmtList", pkg: "go/types", typ: $funcType([stmtContext, sliceType$17], [], false)}, {prop: "multipleDefaults", name: "multipleDefaults", pkg: "go/types", typ: $funcType([sliceType$17], [], false)}, {prop: "openScope", name: "openScope", pkg: "go/types", typ: $funcType([ast.Node, $String], [], false)}, {prop: "closeScope", name: "closeScope", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "suspendedCall", name: "suspendedCall", pkg: "go/types", typ: $funcType([$String, ptrType$85], [], false)}, {prop: "caseValues", name: "caseValues", pkg: "go/types", typ: $funcType([ptrType$61, sliceType$11, valueMap], [], false)}, {prop: "isNil", name: "isNil", pkg: "go/types", typ: $funcType([ast.Expr], [$Bool], false)}, {prop: "caseTypes", name: "caseTypes", pkg: "go/types", typ: $funcType([ptrType$61, sliceType$11, mapType$10], [Type], false)}, {prop: "stmt", name: "stmt", pkg: "go/types", typ: $funcType([stmtContext, ast.Stmt], [], false)}, {prop: "funcType", name: "funcType", pkg: "go/types", typ: $funcType([ptrType$27, ptrType$49, ptrType$44], [], false)}, {prop: "collectParams", name: "collectParams", pkg: "go/types", typ: $funcType([ptrType, ptrType$49, $Bool], [sliceType$10, $Bool], false)}, {prop: "isTerminating", name: "isTerminating", pkg: "go/types", typ: $funcType([ast.Stmt, $String], [$Bool], false)}, {prop: "isTerminatingList", name: "isTerminatingList", pkg: "go/types", typ: $funcType([sliceType$17, $String], [$Bool], false)}, {prop: "isTerminatingSwitch", name: "isTerminatingSwitch", pkg: "go/types", typ: $funcType([ptrType$73, $String], [$Bool], false)}, {prop: "arityMatch", name: "arityMatch", pkg: "go/types", typ: $funcType([ptrType$87, ptrType$87], [], false)}, {prop: "declarePkgObj", name: "declarePkgObj", pkg: "go/types", typ: $funcType([ptrType$30, Object, ptrType$57], [], false)}, {prop: "filename", name: "filename", pkg: "go/types", typ: $funcType([$Int], [$String], false)}, {prop: "importPackage", name: "importPackage", pkg: "go/types", typ: $funcType([positioner, $String, $String], [ptrType$1], false)}, {prop: "collectObjects", name: "collectObjects", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "unpackRecv", name: "unpackRecv", pkg: "go/types", typ: $funcType([ast.Expr, $Bool], [$Bool, ptrType$30, sliceType$22], false)}, {prop: "resolveBaseTypeName", name: "resolveBaseTypeName", pkg: "go/types", typ: $funcType([$Bool, ptrType$30], [$Bool, ptrType$17], false)}, {prop: "packageObjects", name: "packageObjects", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "unusedImports", name: "unusedImports", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "errorUnusedPkg", name: "errorUnusedPkg", pkg: "go/types", typ: $funcType([ptrType$31], [], false)}, {prop: "newNamed", name: "newNamed", pkg: "go/types", typ: $funcType([ptrType$17, Type, sliceType], [ptrType$9], false)}, {prop: "newNamedInstance", name: "newNamedInstance", pkg: "go/types", typ: $funcType([token.Pos, ptrType$9, sliceType$3, ptrType$9], [ptrType$9], false)}, {prop: "context", name: "context", pkg: "go/types", typ: $funcType([], [ptrType$51], false)}, {prop: "monomorph", name: "monomorph", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "reportInstanceLoop", name: "reportInstanceLoop", pkg: "go/types", typ: $funcType([$Int], [], false)}, {prop: "missingMethod", name: "missingMethod", pkg: "go/types", typ: $funcType([Type, ptrType$13, $Bool], [ptrType$2, ptrType$2], false)}, {prop: "missingMethodReason", name: "missingMethodReason", pkg: "go/types", typ: $funcType([Type, Type, ptrType$2, ptrType$2], [$String], false)}, {prop: "interfacePtrError", name: "interfacePtrError", pkg: "go/types", typ: $funcType([Type], [$String], false)}, {prop: "funcString", name: "funcString", pkg: "go/types", typ: $funcType([ptrType$2], [$String], false)}, {prop: "assertableTo", name: "assertableTo", pkg: "go/types", typ: $funcType([ptrType$13, Type], [ptrType$2, ptrType$2], false)}, {prop: "newAssertableTo", name: "newAssertableTo", pkg: "go/types", typ: $funcType([ptrType$13, Type], [$error], false)}, {prop: "labels", name: "labels", pkg: "go/types", typ: $funcType([ptrType$73], [], false)}, {prop: "blockBranches", name: "blockBranches", pkg: "go/types", typ: $funcType([ptrType, ptrType$92, ptrType$64, sliceType$17], [sliceType$26], false)}, {prop: "newInterface", name: "newInterface", pkg: "go/types", typ: $funcType([], [ptrType$13], false)}, {prop: "interfaceType", name: "interfaceType", pkg: "go/types", typ: $funcType([ptrType$13, ptrType$45, ptrType$9], [], false)}, {prop: "instance", name: "instance", pkg: "go/types", typ: $funcType([token.Pos, Type, sliceType$3, ptrType$9, ptrType$51], [Type], false)}, {prop: "validateTArgLen", name: "validateTArgLen", pkg: "go/types", typ: $funcType([token.Pos, $Int, $Int], [$Bool], false)}, {prop: "verify", name: "verify", pkg: "go/types", typ: $funcType([token.Pos, sliceType$9, sliceType$3, ptrType$51], [$Int, $error], false)}, {prop: "implements$", name: "implements", pkg: "go/types", typ: $funcType([Type, Type], [$error], false)}, {prop: "initOrder", name: "initOrder", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "reportCycle", name: "reportCycle", pkg: "go/types", typ: $funcType([sliceType$8], [], false)}, {prop: "infer", name: "infer", pkg: "go/types", typ: $funcType([positioner, sliceType$9, sliceType$3, ptrType$15, sliceType$29], [sliceType$3], false)}, {prop: "inferB", name: "inferB", pkg: "go/types", typ: $funcType([positioner, sliceType$9, sliceType$3], [sliceType$3, $Int], false)}, {prop: "indexExpr", name: "indexExpr", pkg: "go/types", typ: $funcType([ptrType$61, ptrType$112], [$Bool], false)}, {prop: "sliceExpr", name: "sliceExpr", pkg: "go/types", typ: $funcType([ptrType$61, ptrType$100], [], false)}, {prop: "singleIndex", name: "singleIndex", pkg: "go/types", typ: $funcType([ptrType$112], [ast.Expr], false)}, {prop: "index", name: "index", pkg: "go/types", typ: $funcType([ast.Expr, $Int64], [Type, $Int64], false)}, {prop: "isValidIndex", name: "isValidIndex", pkg: "go/types", typ: $funcType([ptrType$61, errorCode, $String, $Bool], [$Bool], false)}, {prop: "indexedElts", name: "indexedElts", pkg: "go/types", typ: $funcType([sliceType$11, Type, $Int64], [$Int64], false)}, {prop: "op", name: "op", pkg: "go/types", typ: $funcType([opPredicates, ptrType$61, token.Token], [$Bool], false)}, {prop: "overflow", name: "overflow", pkg: "go/types", typ: $funcType([ptrType$61, token.Pos], [], false)}, {prop: "unary", name: "unary", pkg: "go/types", typ: $funcType([ptrType$61, ptrType$20], [], false)}, {prop: "representable", name: "representable", pkg: "go/types", typ: $funcType([ptrType$61, ptrType$4], [], false)}, {prop: "representation", name: "representation", pkg: "go/types", typ: $funcType([ptrType$61, ptrType$4], [constant.Value, errorCode], false)}, {prop: "invalidConversion", name: "invalidConversion", pkg: "go/types", typ: $funcType([errorCode, ptrType$61, Type], [], false)}, {prop: "updateExprType", name: "updateExprType", pkg: "go/types", typ: $funcType([ast.Expr, Type, $Bool], [], false)}, {prop: "updateExprType0", name: "updateExprType0", pkg: "go/types", typ: $funcType([ast.Expr, ast.Expr, Type, $Bool], [], false)}, {prop: "updateExprVal", name: "updateExprVal", pkg: "go/types", typ: $funcType([ast.Expr, constant.Value], [], false)}, {prop: "convertUntyped", name: "convertUntyped", pkg: "go/types", typ: $funcType([ptrType$61, Type], [], false)}, {prop: "implicitTypeAndValue", name: "implicitTypeAndValue", pkg: "go/types", typ: $funcType([ptrType$61, Type], [Type, constant.Value, errorCode], false)}, {prop: "comparison", name: "comparison", pkg: "go/types", typ: $funcType([ptrType$61, ptrType$61, token.Token, $Bool], [], false)}, {prop: "incomparableCause", name: "incomparableCause", pkg: "go/types", typ: $funcType([Type], [$String], false)}, {prop: "kindString", name: "kindString", pkg: "go/types", typ: $funcType([Type], [$String], false)}, {prop: "shift", name: "shift", pkg: "go/types", typ: $funcType([ptrType$61, ptrType$61, ast.Expr, token.Token], [], false)}, {prop: "binary", name: "binary", pkg: "go/types", typ: $funcType([ptrType$61, ast.Expr, ast.Expr, ast.Expr, token.Token, token.Pos], [], false)}, {prop: "rawExpr", name: "rawExpr", pkg: "go/types", typ: $funcType([ptrType$61, ast.Expr, Type, $Bool], [exprKind], false)}, {prop: "nonGeneric", name: "nonGeneric", pkg: "go/types", typ: $funcType([ptrType$61], [], false)}, {prop: "exprInternal", name: "exprInternal", pkg: "go/types", typ: $funcType([ptrType$61, ast.Expr, Type], [exprKind], false)}, {prop: "typeAssertion", name: "typeAssertion", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$61, Type, $Bool], [], false)}, {prop: "expr", name: "expr", pkg: "go/types", typ: $funcType([ptrType$61, ast.Expr], [], false)}, {prop: "multiExpr", name: "multiExpr", pkg: "go/types", typ: $funcType([ptrType$61, ast.Expr], [], false)}, {prop: "exprWithHint", name: "exprWithHint", pkg: "go/types", typ: $funcType([ptrType$61, ast.Expr, Type], [], false)}, {prop: "exprOrType", name: "exprOrType", pkg: "go/types", typ: $funcType([ptrType$61, ast.Expr, $Bool], [], false)}, {prop: "exclude", name: "exclude", pkg: "go/types", typ: $funcType([ptrType$61, $Uint], [], false)}, {prop: "singleValue", name: "singleValue", pkg: "go/types", typ: $funcType([ptrType$61], [], false)}, {prop: "qualifier", name: "qualifier", pkg: "go/types", typ: $funcType([ptrType$1], [$String], false)}, {prop: "markImports", name: "markImports", pkg: "go/types", typ: $funcType([ptrType$1], [], false)}, {prop: "sprintf", name: "sprintf", pkg: "go/types", typ: $funcType([$String, sliceType$5], [$String], true)}, {prop: "trace", name: "trace", pkg: "go/types", typ: $funcType([token.Pos, $String, sliceType$5], [], true)}, {prop: "dump", name: "dump", pkg: "go/types", typ: $funcType([$String, sliceType$5], [], true)}, {prop: "report", name: "report", pkg: "go/types", typ: $funcType([ptrType$104], [], false)}, {prop: "error", name: "error", pkg: "go/types", typ: $funcType([positioner, errorCode, $String], [], false)}, {prop: "errorf", name: "errorf", pkg: "go/types", typ: $funcType([positioner, errorCode, $String, sliceType$5], [], true)}, {prop: "softErrorf", name: "softErrorf", pkg: "go/types", typ: $funcType([positioner, errorCode, $String, sliceType$5], [], true)}, {prop: "versionErrorf", name: "versionErrorf", pkg: "go/types", typ: $funcType([positioner, errorCode, $String, $String, sliceType$5], [], true)}, {prop: "invalidAST", name: "invalidAST", pkg: "go/types", typ: $funcType([positioner, $String, sliceType$5], [], true)}, {prop: "invalidArg", name: "invalidArg", pkg: "go/types", typ: $funcType([positioner, errorCode, $String, sliceType$5], [], true)}, {prop: "invalidOp", name: "invalidOp", pkg: "go/types", typ: $funcType([positioner, errorCode, $String, sliceType$5], [], true)}, {prop: "reportAltDecl", name: "reportAltDecl", pkg: "go/types", typ: $funcType([Object], [], false)}, {prop: "declare", name: "declare", pkg: "go/types", typ: $funcType([ptrType, ptrType$30, Object, token.Pos], [], false)}, {prop: "objDecl", name: "objDecl", pkg: "go/types", typ: $funcType([Object, ptrType$9], [], false)}, {prop: "validCycle", name: "validCycle", pkg: "go/types", typ: $funcType([Object], [$Bool], false)}, {prop: "cycleError", name: "cycleError", pkg: "go/types", typ: $funcType([sliceType$8], [], false)}, {prop: "walkDecls", name: "walkDecls", pkg: "go/types", typ: $funcType([sliceType$42, funcType$7], [], false)}, {prop: "walkDecl", name: "walkDecl", pkg: "go/types", typ: $funcType([ast.Decl, funcType$7], [], false)}, {prop: "constDecl", name: "constDecl", pkg: "go/types", typ: $funcType([ptrType$32, ast.Expr, ast.Expr, $Bool], [], false)}, {prop: "varDecl", name: "varDecl", pkg: "go/types", typ: $funcType([ptrType$16, sliceType$10, ast.Expr, ast.Expr], [], false)}, {prop: "isImportedConstraint", name: "isImportedConstraint", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "typeDecl", name: "typeDecl", pkg: "go/types", typ: $funcType([ptrType$17, ptrType$89, ptrType$9], [], false)}, {prop: "collectTypeParams", name: "collectTypeParams", pkg: "go/types", typ: $funcType([ptrType$83, ptrType$49], [], false)}, {prop: "bound", name: "bound", pkg: "go/types", typ: $funcType([ast.Expr], [Type], false)}, {prop: "declareTypeParams", name: "declareTypeParams", pkg: "go/types", typ: $funcType([sliceType$9, sliceType$22], [sliceType$9], false)}, {prop: "collectMethods", name: "collectMethods", pkg: "go/types", typ: $funcType([ptrType$17], [], false)}, {prop: "checkFieldUniqueness", name: "checkFieldUniqueness", pkg: "go/types", typ: $funcType([ptrType$9], [], false)}, {prop: "funcDecl", name: "funcDecl", pkg: "go/types", typ: $funcType([ptrType$2, ptrType$57], [], false)}, {prop: "declStmt", name: "declStmt", pkg: "go/types", typ: $funcType([ast.Decl], [], false)}, {prop: "conversion", name: "conversion", pkg: "go/types", typ: $funcType([ptrType$61, Type], [], false)}, {prop: "addDeclDep", name: "addDeclDep", pkg: "go/types", typ: $funcType([Object], [], false)}, {prop: "brokenAlias", name: "brokenAlias", pkg: "go/types", typ: $funcType([ptrType$17], [], false)}, {prop: "validAlias", name: "validAlias", pkg: "go/types", typ: $funcType([ptrType$17, Type], [], false)}, {prop: "isBrokenAlias", name: "isBrokenAlias", pkg: "go/types", typ: $funcType([ptrType$17], [$Bool], false)}, {prop: "rememberUntyped", name: "rememberUntyped", pkg: "go/types", typ: $funcType([ast.Expr, $Bool, operandMode, ptrType$4, constant.Value], [], false)}, {prop: "later", name: "later", pkg: "go/types", typ: $funcType([funcType$1], [ptrType$124], false)}, {prop: "push", name: "push", pkg: "go/types", typ: $funcType([Object], [$Int], false)}, {prop: "pop", name: "pop", pkg: "go/types", typ: $funcType([], [Object], false)}, {prop: "needsCleanup", name: "needsCleanup", pkg: "go/types", typ: $funcType([cleaner], [], false)}, {prop: "initFiles", name: "initFiles", pkg: "go/types", typ: $funcType([sliceType$35], [], false)}, {prop: "handleBailout", name: "handleBailout", pkg: "go/types", typ: $funcType([ptrType$103], [], false)}, {prop: "Files", name: "Files", pkg: "", typ: $funcType([sliceType$35], [$error], false)}, {prop: "checkFiles", name: "checkFiles", pkg: "go/types", typ: $funcType([sliceType$35], [$error], false)}, {prop: "processDelayed", name: "processDelayed", pkg: "go/types", typ: $funcType([$Int], [], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "record", name: "record", pkg: "go/types", typ: $funcType([ptrType$61], [], false)}, {prop: "recordUntyped", name: "recordUntyped", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "recordTypeAndValue", name: "recordTypeAndValue", pkg: "go/types", typ: $funcType([ast.Expr, operandMode, Type, constant.Value], [], false)}, {prop: "recordBuiltinType", name: "recordBuiltinType", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$27], [], false)}, {prop: "recordCommaOkTypes", name: "recordCommaOkTypes", pkg: "go/types", typ: $funcType([ast.Expr, arrayType$2], [], false)}, {prop: "recordInstance", name: "recordInstance", pkg: "go/types", typ: $funcType([ast.Expr, sliceType$3, Type], [], false)}, {prop: "recordDef", name: "recordDef", pkg: "go/types", typ: $funcType([ptrType$30, Object], [], false)}, {prop: "recordUse", name: "recordUse", pkg: "go/types", typ: $funcType([ptrType$30, Object], [], false)}, {prop: "recordImplicit", name: "recordImplicit", pkg: "go/types", typ: $funcType([ast.Node, Object], [], false)}, {prop: "recordSelection", name: "recordSelection", pkg: "go/types", typ: $funcType([ptrType$36, SelectionKind, Type, Object, sliceType$13, $Bool], [], false)}, {prop: "recordScope", name: "recordScope", pkg: "go/types", typ: $funcType([ast.Node, ptrType], [], false)}, {prop: "funcInst", name: "funcInst", pkg: "go/types", typ: $funcType([ptrType$61, ptrType$112], [], false)}, {prop: "instantiateSignature", name: "instantiateSignature", pkg: "go/types", typ: $funcType([token.Pos, ptrType$27, sliceType$3, sliceType$11], [ptrType$27], false)}, {prop: "callExpr", name: "callExpr", pkg: "go/types", typ: $funcType([ptrType$61, ptrType$85], [exprKind], false)}, {prop: "exprList", name: "exprList", pkg: "go/types", typ: $funcType([sliceType$11, $Bool], [sliceType$29, $Bool], false)}, {prop: "arguments$", name: "arguments", pkg: "go/types", typ: $funcType([ptrType$85, ptrType$27, sliceType$3, sliceType$29, sliceType$11], [ptrType$27], false)}, {prop: "selector", name: "selector", pkg: "go/types", typ: $funcType([ptrType$61, ptrType$36, ptrType$9], [], false)}, {prop: "use", name: "use", pkg: "go/types", typ: $funcType([sliceType$11], [], true)}, {prop: "useLHS", name: "useLHS", pkg: "go/types", typ: $funcType([sliceType$11], [], true)}, {prop: "builtin", name: "builtin", pkg: "go/types", typ: $funcType([ptrType$61, ptrType$85, builtinId], [$Bool], false)}, {prop: "applyTypeFunc", name: "applyTypeFunc", pkg: "go/types", typ: $funcType([funcType$8, ptrType$61, builtinId], [Type], false)}, {prop: "assignment", name: "assignment", pkg: "go/types", typ: $funcType([ptrType$61, Type, $String], [], false)}, {prop: "initConst", name: "initConst", pkg: "go/types", typ: $funcType([ptrType$32, ptrType$61], [], false)}, {prop: "initVar", name: "initVar", pkg: "go/types", typ: $funcType([ptrType$16, ptrType$61, $String], [Type], false)}, {prop: "assignVar", name: "assignVar", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$61], [Type], false)}, {prop: "typesSummary", name: "typesSummary", pkg: "go/types", typ: $funcType([sliceType$3, $Bool], [$String], false)}, {prop: "assignError", name: "assignError", pkg: "go/types", typ: $funcType([sliceType$11, $Int, $Int], [], false)}, {prop: "initVars", name: "initVars", pkg: "go/types", typ: $funcType([sliceType$10, sliceType$11, ast.Stmt], [], false)}, {prop: "assignVars", name: "assignVars", pkg: "go/types", typ: $funcType([sliceType$11, sliceType$11], [], false)}, {prop: "shortVarDecl", name: "shortVarDecl", pkg: "go/types", typ: $funcType([positioner, sliceType$11, sliceType$11], [], false)}]; + ptrType$29.methods = [{prop: "Dir", name: "Dir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [BasicKind], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [BasicInfo], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$10.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + Error.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$101.methods = [{prop: "alignof", name: "alignof", pkg: "go/types", typ: $funcType([Type], [$Int64], false)}, {prop: "offsetsof", name: "offsetsof", pkg: "go/types", typ: $funcType([ptrType$11], [sliceType$19], false)}, {prop: "offsetof", name: "offsetof", pkg: "go/types", typ: $funcType([Type, sliceType$13], [$Int64], false)}, {prop: "sizeof", name: "sizeof", pkg: "go/types", typ: $funcType([Type], [$Int64], false)}, {prop: "Check", name: "Check", pkg: "", typ: $funcType([$String, ptrType$24, sliceType$35, ptrType$110], [ptrType$1, $error], false)}]; + ptrType$110.methods = [{prop: "TypeOf", name: "TypeOf", pkg: "", typ: $funcType([ast.Expr], [Type], false)}, {prop: "ObjectOf", name: "ObjectOf", pkg: "", typ: $funcType([ptrType$30], [Object], false)}]; + TypeAndValue.methods = [{prop: "IsVoid", name: "IsVoid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsType", name: "IsType", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsBuiltin", name: "IsBuiltin", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsValue", name: "IsValue", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Addressable", name: "Addressable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Assignable", name: "Assignable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "HasOk", name: "HasOk", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$102.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + version.init("go/types", [{prop: "major", name: "major", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "minor", name: "minor", embedded: false, exported: false, typ: $Int, tag: ""}]); + Union.init("go/types", [{prop: "terms", name: "terms", embedded: false, exported: false, typ: sliceType$12, tag: ""}]); + Term.init("go/types", [{prop: "tilde", name: "tilde", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); + unifier.init("go/types", [{prop: "exact", name: "exact", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "x", name: "x", embedded: false, exported: false, typ: tparamsList, tag: ""}, {prop: "y", name: "y", embedded: false, exported: false, typ: tparamsList, tag: ""}, {prop: "types", name: "types", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "depth", name: "depth", embedded: false, exported: false, typ: $Int, tag: ""}]); + tparamsList.init("go/types", [{prop: "unifier", name: "unifier", embedded: false, exported: false, typ: ptrType$22, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$9, tag: ""}, {prop: "indices", name: "indices", embedded: false, exported: false, typ: sliceType$13, tag: ""}]); + term.init("go/types", [{prop: "tilde", name: "tilde", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); + Qualifier.init([ptrType$1], [$String], false); + typeWriter.init("go/types", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType$114, tag: ""}, {prop: "seen", name: "seen", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "qf", name: "qf", embedded: false, exported: false, typ: Qualifier, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$51, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: ptrType$48, tag: ""}, {prop: "debug", name: "debug", embedded: false, exported: false, typ: $Bool, tag: ""}]); + _TypeSet.init("go/types", [{prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "terms", name: "terms", embedded: false, exported: false, typ: termlist, tag: ""}, {prop: "comparable", name: "comparable", embedded: false, exported: false, typ: $Bool, tag: ""}]); + byUniqueMethodName.init(ptrType$2); + TypeParam.init("go/types", [{prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$17, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bound", name: "bound", embedded: false, exported: false, typ: Type, tag: ""}]); + TypeParamList.init("go/types", [{prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$9, tag: ""}]); + TypeList.init("go/types", [{prop: "types", name: "types", embedded: false, exported: false, typ: sliceType$3, tag: ""}]); + Type.init([{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}]); + Tuple.init("go/types", [{prop: "vars", name: "vars", embedded: false, exported: false, typ: sliceType$10, tag: ""}]); + termlist.init(ptrType$5); + substMap.init(ptrType$14, Type); + subster.init("go/types", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "smap", name: "smap", embedded: false, exported: false, typ: substMap, tag: ""}, {prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "expanding", name: "expanding", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$51, tag: ""}]); + Struct.init("go/types", [{prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "tags", name: "tags", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + valueMap.init($emptyInterface, sliceType$18); + valueType.init("go/types", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); + Slice.init("go/types", [{prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); + Sizes.init([{prop: "Alignof", name: "Alignof", pkg: "", typ: $funcType([Type], [$Int64], false)}, {prop: "Offsetsof", name: "Offsetsof", pkg: "", typ: $funcType([sliceType$10], [sliceType$19], false)}, {prop: "Sizeof", name: "Sizeof", pkg: "", typ: $funcType([Type], [$Int64], false)}]); + StdSizes.init("", [{prop: "WordSize", name: "WordSize", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "MaxAlign", name: "MaxAlign", embedded: false, exported: true, typ: $Int64, tag: ""}]); + Signature.init("go/types", [{prop: "rparams", name: "rparams", embedded: false, exported: false, typ: ptrType$48, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: ptrType$48, tag: ""}, {prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "recv", name: "recv", embedded: false, exported: false, typ: ptrType$16, tag: ""}, {prop: "params", name: "params", embedded: false, exported: false, typ: ptrType$15, tag: ""}, {prop: "results", name: "results", embedded: false, exported: false, typ: ptrType$15, tag: ""}, {prop: "variadic", name: "variadic", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Selection.init("go/types", [{prop: "kind", name: "kind", embedded: false, exported: false, typ: SelectionKind, tag: ""}, {prop: "recv", name: "recv", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: Object, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$13, tag: ""}, {prop: "indirect", name: "indirect", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Scope.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "children", name: "children", embedded: false, exported: false, typ: sliceType$20, tag: ""}, {prop: "number", name: "number", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "elems", name: "elems", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "comment", name: "comment", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "isFunc", name: "isFunc", embedded: false, exported: false, typ: $Bool, tag: ""}]); + lazyObject.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "resolve", name: "resolve", embedded: false, exported: false, typ: funcType$4, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: Object, tag: ""}, {prop: "once", name: "once", embedded: false, exported: false, typ: sync.Once, tag: ""}]); + declInfo.init("go/types", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "lhs", name: "lhs", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "vtyp", name: "vtyp", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "init", name: "init", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "inherited", name: "inherited", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tdecl", name: "tdecl", embedded: false, exported: false, typ: ptrType$89, tag: ""}, {prop: "fdecl", name: "fdecl", embedded: false, exported: false, typ: ptrType$86, tag: ""}, {prop: "deps", name: "deps", embedded: false, exported: false, typ: mapType$2, tag: ""}]); + inSourceOrder.init(Object); + ifacePair.init("go/types", [{prop: "x", name: "x", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "y", name: "y", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "prev", name: "prev", embedded: false, exported: false, typ: ptrType$23, tag: ""}]); + Pointer.init("go/types", [{prop: "base", name: "base", embedded: false, exported: false, typ: Type, tag: ""}]); + Package.init("go/types", [{prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "complete", name: "complete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$24, tag: ""}, {prop: "fake", name: "fake", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "cgo", name: "cgo", embedded: false, exported: false, typ: $Bool, tag: ""}]); + operand.init("go/types", [{prop: "mode", name: "mode", embedded: false, exported: false, typ: operandMode, tag: ""}, {prop: "expr", name: "expr", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: builtinId, tag: ""}]); + objset.init($String, Object); + Object.init([{prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}]); + object.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "pkg", name: "pkg", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "order_", name: "order_", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "color_", name: "color_", embedded: false, exported: false, typ: color, tag: ""}, {prop: "scopePos_", name: "scopePos_", embedded: false, exported: false, typ: token.Pos, tag: ""}]); + PkgName.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "imported", name: "imported", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "used", name: "used", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Const.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}]); + TypeName.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}]); + Var.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "embedded", name: "embedded", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isField", name: "isField", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "used", name: "used", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "origin", name: "origin", embedded: false, exported: false, typ: ptrType$16, tag: ""}]); + Func.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "hasPtrRecv_", name: "hasPtrRecv_", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "origin", name: "origin", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + Label.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "used", name: "used", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Builtin.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: builtinId, tag: ""}]); + Nil.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}]); + Named.init("go/types", [{prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$17, tag: ""}, {prop: "fromRHS", name: "fromRHS", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "inst", name: "inst", embedded: false, exported: false, typ: ptrType$52, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "state_", name: "state_", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "underlying", name: "underlying", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: ptrType$48, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "loader", name: "loader", embedded: false, exported: false, typ: funcType$6, tag: ""}]); + instance.init("go/types", [{prop: "orig", name: "orig", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "targs", name: "targs", embedded: false, exported: false, typ: ptrType$55, tag: ""}, {prop: "expandedMethods", name: "expandedMethods", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$51, tag: ""}]); + monoGraph.init("go/types", [{prop: "vertices", name: "vertices", embedded: false, exported: false, typ: sliceType$37, tag: ""}, {prop: "edges", name: "edges", embedded: false, exported: false, typ: sliceType$38, tag: ""}, {prop: "canon", name: "canon", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "nameIdx", name: "nameIdx", embedded: false, exported: false, typ: mapType$4, tag: ""}]); + monoVertex.init("go/types", [{prop: "weight", name: "weight", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pre", name: "pre", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$17, tag: ""}]); + monoEdge.init("go/types", [{prop: "dst", name: "dst", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "src", name: "src", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "weight", name: "weight", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); + MethodSet.init("go/types", [{prop: "list", name: "list", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); + methodSet.init($String, ptrType$3); + Map.init("go/types", [{prop: "key", name: "key", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); + embeddedType.init("go/types", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$13, tag: ""}, {prop: "indirect", name: "indirect", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "multiples", name: "multiples", embedded: false, exported: false, typ: $Bool, tag: ""}]); + instanceLookup.init("go/types", [{prop: "m", name: "m", embedded: false, exported: false, typ: mapType$5, tag: ""}]); + block.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType$92, tag: ""}, {prop: "lstmt", name: "lstmt", embedded: false, exported: false, typ: ptrType$64, tag: ""}, {prop: "labels", name: "labels", embedded: false, exported: false, typ: mapType$6, tag: ""}]); + Interface.init("go/types", [{prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "embeddeds", name: "embeddeds", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "embedPos", name: "embedPos", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "implicit", name: "implicit", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "complete", name: "complete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tset", name: "tset", embedded: false, exported: false, typ: ptrType$8, tag: ""}]); + dependency.init([{prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}]); + graphNode.init("go/types", [{prop: "obj", name: "obj", embedded: false, exported: false, typ: dependency, tag: ""}, {prop: "pred", name: "pred", embedded: false, exported: false, typ: nodeSet, tag: ""}, {prop: "succ", name: "succ", embedded: false, exported: false, typ: nodeSet, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ndeps", name: "ndeps", embedded: false, exported: false, typ: $Int, tag: ""}]); + nodeSet.init(ptrType$95, $Bool); + nodeQueue.init(ptrType$95); + tpWalker.init("go/types", [{prop: "seen", name: "seen", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$9, tag: ""}]); + cycleFinder.init("go/types", [{prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$9, tag: ""}, {prop: "types", name: "types", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "seen", name: "seen", embedded: false, exported: false, typ: mapType, tag: ""}]); + opPredicates.init(token.Token, funcType$3); + error_.init("go/types", [{prop: "desc", name: "desc", embedded: false, exported: false, typ: sliceType$31, tag: ""}, {prop: "code", name: "code", embedded: false, exported: false, typ: errorCode, tag: ""}, {prop: "soft", name: "soft", embedded: false, exported: false, typ: $Bool, tag: ""}]); + errorDesc.init("go/types", [{prop: "posn", name: "posn", embedded: false, exported: false, typ: positioner, tag: ""}, {prop: "format", name: "format", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "args", name: "args", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); + positioner.init([{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]); + posSpan.init("go/types", [{prop: "start", name: "start", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: token.Pos, tag: ""}]); + decl.init([{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]); + importDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$106, tag: ""}]); + constDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$87, tag: ""}, {prop: "iota", name: "iota", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "init", name: "init", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "inherited", name: "inherited", embedded: false, exported: false, typ: $Bool, tag: ""}]); + varDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$87, tag: ""}]); + typeDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$89, tag: ""}]); + funcDecl.init("go/types", [{prop: "decl", name: "decl", embedded: false, exported: false, typ: ptrType$86, tag: ""}]); + Context.init("go/types", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "typeMap", name: "typeMap", embedded: false, exported: false, typ: mapType$7, tag: ""}, {prop: "nextID", name: "nextID", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "originIDs", name: "originIDs", embedded: false, exported: false, typ: mapType$8, tag: ""}]); + ctxtEntry.init("go/types", [{prop: "orig", name: "orig", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "targs", name: "targs", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "instance", name: "instance", embedded: false, exported: false, typ: Type, tag: ""}]); + exprInfo.init("go/types", [{prop: "isLhs", name: "isLhs", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: operandMode, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}]); + environment.init("go/types", [{prop: "decl", name: "decl", embedded: false, exported: false, typ: ptrType$57, tag: ""}, {prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "iota", name: "iota", embedded: false, exported: false, typ: constant.Value, tag: ""}, {prop: "errpos", name: "errpos", embedded: false, exported: false, typ: positioner, tag: ""}, {prop: "inTParamList", name: "inTParamList", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sig", name: "sig", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "isPanic", name: "isPanic", embedded: false, exported: false, typ: mapType$9, tag: ""}, {prop: "hasLabel", name: "hasLabel", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "hasCallOrRecv", name: "hasCallOrRecv", embedded: false, exported: false, typ: $Bool, tag: ""}]); + importKey.init("go/types", [{prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $String, tag: ""}]); + dotImportKey.init("go/types", [{prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}]); + action.init("go/types", [{prop: "f", name: "f", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "desc", name: "desc", embedded: false, exported: false, typ: ptrType$109, tag: ""}]); + actionDesc.init("go/types", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: positioner, tag: ""}, {prop: "format", name: "format", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "args", name: "args", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); + Checker.init("go/types", [{prop: "conf", name: "conf", embedded: false, exported: false, typ: ptrType$101, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$51, tag: ""}, {prop: "fset", name: "fset", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "pkg", name: "pkg", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "Info", name: "Info", embedded: true, exported: true, typ: ptrType$110, tag: ""}, {prop: "version", name: "version", embedded: false, exported: false, typ: version, tag: ""}, {prop: "nextID", name: "nextID", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "objMap", name: "objMap", embedded: false, exported: false, typ: mapType$11, tag: ""}, {prop: "impMap", name: "impMap", embedded: false, exported: false, typ: mapType$12, tag: ""}, {prop: "valids", name: "valids", embedded: false, exported: false, typ: instanceLookup, tag: ""}, {prop: "pkgPathMap", name: "pkgPathMap", embedded: false, exported: false, typ: mapType$14, tag: ""}, {prop: "seenPkgMap", name: "seenPkgMap", embedded: false, exported: false, typ: mapType$15, tag: ""}, {prop: "files", name: "files", embedded: false, exported: false, typ: sliceType$35, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$36, tag: ""}, {prop: "dotImportMap", name: "dotImportMap", embedded: false, exported: false, typ: mapType$16, tag: ""}, {prop: "recvTParamMap", name: "recvTParamMap", embedded: false, exported: false, typ: mapType$17, tag: ""}, {prop: "brokenAliases", name: "brokenAliases", embedded: false, exported: false, typ: mapType$18, tag: ""}, {prop: "unionTypeSets", name: "unionTypeSets", embedded: false, exported: false, typ: mapType$19, tag: ""}, {prop: "mono", name: "mono", embedded: false, exported: false, typ: monoGraph, tag: ""}, {prop: "firstErr", name: "firstErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: mapType$20, tag: ""}, {prop: "untyped", name: "untyped", embedded: false, exported: false, typ: mapType$21, tag: ""}, {prop: "delayed", name: "delayed", embedded: false, exported: false, typ: sliceType$39, tag: ""}, {prop: "objPath", name: "objPath", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "cleaners", name: "cleaners", embedded: false, exported: false, typ: sliceType$40, tag: ""}, {prop: "environment", name: "environment", embedded: true, exported: false, typ: environment, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}]); + cleaner.init([{prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}]); + bailout.init("", []); + Chan.init("go/types", [{prop: "dir", name: "dir", embedded: false, exported: false, typ: ChanDir, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); + Basic.init("go/types", [{prop: "kind", name: "kind", embedded: false, exported: false, typ: BasicKind, tag: ""}, {prop: "info", name: "info", embedded: false, exported: false, typ: BasicInfo, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}]); + Array.init("go/types", [{prop: "len", name: "len", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); + Error.init("go/types", [{prop: "Fset", name: "Fset", embedded: false, exported: true, typ: ptrType$24, tag: ""}, {prop: "Pos", name: "Pos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Msg", name: "Msg", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Soft", name: "Soft", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "go116code", name: "go116code", embedded: false, exported: false, typ: errorCode, tag: ""}, {prop: "go116start", name: "go116start", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "go116end", name: "go116end", embedded: false, exported: false, typ: token.Pos, tag: ""}]); + Importer.init([{prop: "Import", name: "Import", pkg: "", typ: $funcType([$String], [ptrType$1, $error], false)}]); + ImporterFrom.init([{prop: "Import", name: "Import", pkg: "", typ: $funcType([$String], [ptrType$1, $error], false)}, {prop: "ImportFrom", name: "ImportFrom", pkg: "", typ: $funcType([$String, $String, ImportMode], [ptrType$1, $error], false)}]); + Config.init("go/types", [{prop: "Context", name: "Context", embedded: false, exported: true, typ: ptrType$51, tag: ""}, {prop: "GoVersion", name: "GoVersion", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "IgnoreFuncBodies", name: "IgnoreFuncBodies", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "FakeImportC", name: "FakeImportC", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "go115UsesCgo", name: "go115UsesCgo", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "Error", name: "Error", embedded: false, exported: true, typ: funcType$9, tag: ""}, {prop: "Importer", name: "Importer", embedded: false, exported: true, typ: Importer, tag: ""}, {prop: "Sizes", name: "Sizes", embedded: false, exported: true, typ: Sizes, tag: ""}, {prop: "DisableUnusedImportCheck", name: "DisableUnusedImportCheck", embedded: false, exported: true, typ: $Bool, tag: ""}]); + Info.init("", [{prop: "Types", name: "Types", embedded: false, exported: true, typ: mapType$22, tag: ""}, {prop: "Instances", name: "Instances", embedded: false, exported: true, typ: mapType$23, tag: ""}, {prop: "Defs", name: "Defs", embedded: false, exported: true, typ: mapType$24, tag: ""}, {prop: "Uses", name: "Uses", embedded: false, exported: true, typ: mapType$24, tag: ""}, {prop: "Implicits", name: "Implicits", embedded: false, exported: true, typ: mapType$25, tag: ""}, {prop: "Selections", name: "Selections", embedded: false, exported: true, typ: mapType$26, tag: ""}, {prop: "Scopes", name: "Scopes", embedded: false, exported: true, typ: mapType$27, tag: ""}, {prop: "InitOrder", name: "InitOrder", embedded: false, exported: true, typ: sliceType$30, tag: ""}]); + TypeAndValue.init("go/types", [{prop: "mode", name: "mode", embedded: false, exported: false, typ: operandMode, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: constant.Value, tag: ""}]); + Instance.init("", [{prop: "TypeArgs", name: "TypeArgs", embedded: false, exported: true, typ: ptrType$55, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}]); + Initializer.init("", [{prop: "Lhs", name: "Lhs", embedded: false, exported: true, typ: sliceType$10, tag: ""}, {prop: "Rhs", name: "Rhs", embedded: false, exported: true, typ: ast.Expr, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = heap.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = constant.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typeparams.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = parser.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = regexp.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.Universe = ptrType.nil; + $pkg.Unsafe = ptrType$1.nil; + universeIota = $ifaceNil; + universeByte = $ifaceNil; + universeRune = $ifaceNil; + universeAny = $ifaceNil; + universeError = $ifaceNil; + universeComparable = $ifaceNil; + invalidTypeSet = new _TypeSet.ptr(sliceType.nil, termlist.nil, false); + lastID = 0; + emptyMethodSet = new MethodSet.ptr(sliceType$1.nil); + unaryOpPredicates = false; + binaryOpPredicates = false; + _r = regexp.MustCompile("^go([1-9][0-9]*)\\.(0|[1-9][0-9]*)$"); /* */ $s = 21; case 21: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + goVersionRx = _r; + $pkg.Typ = new sliceType$2([new Basic.ptr(0, 0, "invalid type"), new Basic.ptr(1, 1, "bool"), new Basic.ptr(2, 2, "int"), new Basic.ptr(3, 2, "int8"), new Basic.ptr(4, 2, "int16"), new Basic.ptr(5, 2, "int32"), new Basic.ptr(6, 2, "int64"), new Basic.ptr(7, 6, "uint"), new Basic.ptr(8, 6, "uint8"), new Basic.ptr(9, 6, "uint16"), new Basic.ptr(10, 6, "uint32"), new Basic.ptr(11, 6, "uint64"), new Basic.ptr(12, 6, "uintptr"), new Basic.ptr(13, 8, "float32"), new Basic.ptr(14, 8, "float64"), new Basic.ptr(15, 16, "complex64"), new Basic.ptr(16, 16, "complex128"), new Basic.ptr(17, 32, "string"), new Basic.ptr(18, 0, "Pointer"), new Basic.ptr(19, 65, "untyped bool"), new Basic.ptr(20, 66, "untyped int"), new Basic.ptr(21, 66, "untyped rune"), new Basic.ptr(22, 72, "untyped float"), new Basic.ptr(23, 80, "untyped complex"), new Basic.ptr(24, 96, "untyped string"), new Basic.ptr(25, 64, "untyped nil")]); + aliases = $toNativeArray($kindPtr, [new Basic.ptr(8, 6, "byte"), new Basic.ptr(5, 2, "rune")]); + predeclaredConsts = $toNativeArray($kindStruct, [$clone(new structType.ptr("true", 19, constant.MakeBool(true)), structType), $clone(new structType.ptr("false", 19, constant.MakeBool(false)), structType), $clone(new structType.ptr("iota", 20, constant.MakeInt64(new $Int64(0, 0))), structType)]); + predeclaredFuncs = $toNativeArray($kindStruct, [$clone(new structType$1.ptr("append", 1, true, 1), structType$1), $clone(new structType$1.ptr("cap", 1, false, 1), structType$1), $clone(new structType$1.ptr("close", 1, false, 2), structType$1), $clone(new structType$1.ptr("complex", 2, false, 1), structType$1), $clone(new structType$1.ptr("copy", 2, false, 2), structType$1), $clone(new structType$1.ptr("delete", 2, false, 2), structType$1), $clone(new structType$1.ptr("imag", 1, false, 1), structType$1), $clone(new structType$1.ptr("len", 1, false, 1), structType$1), $clone(new structType$1.ptr("make", 1, true, 1), structType$1), $clone(new structType$1.ptr("new", 1, false, 1), structType$1), $clone(new structType$1.ptr("panic", 1, false, 2), structType$1), $clone(new structType$1.ptr("print", 0, true, 2), structType$1), $clone(new structType$1.ptr("println", 0, true, 2), structType$1), $clone(new structType$1.ptr("real", 1, false, 1), structType$1), $clone(new structType$1.ptr("recover", 0, false, 2), structType$1), $clone(new structType$1.ptr("Add", 2, false, 1), structType$1), $clone(new structType$1.ptr("Alignof", 1, false, 1), structType$1), $clone(new structType$1.ptr("Offsetof", 1, false, 1), structType$1), $clone(new structType$1.ptr("Sizeof", 1, false, 1), structType$1), $clone(new structType$1.ptr("Slice", 2, false, 1), structType$1), $clone(new structType$1.ptr("assert", 1, false, 2), structType$1), $clone(new structType$1.ptr("trace", 0, true, 2), structType$1)]); + allTermlist = new termlist([new term.ptr(false, $ifaceNil)]); + topTypeSet = new _TypeSet.ptr(sliceType.nil, allTermlist, false); + basicSizes = $toNativeArray($kindUint8, [0, 1, 0, 1, 2, 4, 8, 0, 1, 2, 4, 8, 0, 4, 8, 8, 16]); + gcArchSizes = $makeMap($String.keyFor, [{ k: "386", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "amd64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "amd64p32", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "arm", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "arm64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "loong64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "mipsle", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "mips64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ppc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ppc64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "riscv64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "s390x", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "sparc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "wasm", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }]); + operandModeString = $toNativeArray($kindString, ["invalid operand", "no value", "built-in", "type", "constant", "variable", "map index expression", "value", "comma, ok expression", "comma, error expression", "cgo function"]); + emptyInterface = new Interface.ptr(ptrType$6.nil, sliceType.nil, sliceType$3.nil, ptrType$7.nil, false, true, topTypeSet); + gccgoArchSizes = $makeMap($String.keyFor, [{ k: "386", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "alpha", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "amd64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "amd64p32", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "arm", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "armbe", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "arm64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "arm64be", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ia64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "loong64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "m68k", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 2)) }, { k: "mips", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "mipsle", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "mips64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips64p32", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "mips64p32le", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "nios2", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "ppc", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "ppc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ppc64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "riscv", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "riscv64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "s390", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "s390x", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "sh", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "shbe", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "sparc", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "sparc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "wasm", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }]); + stdSizes = SizesFor("gc", "amd64"); + op2str1 = $toNativeArray($kindString, ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "bitwise complement"]); + op2str2 = $toNativeArray($kindString, ["", "", "", "", "", "", "", "", "", "", "", "", "addition", "subtraction", "multiplication", "", "", "", "", "bitwise XOR", "shift"]); + errBadCgo = errors.New("cannot use FakeImportC and go115UsesCgo together"); + cgoPrefixes = $toNativeArray($kindString, ["_Ciconst_", "_Cfconst_", "_Csconst_", "_Ctype_", "_Cvar_", "_Cfpvar_fp_", "_Cfunc_", "_Cmacro_"]); + $r = init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + init$1(); + init$2(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/compiler/astutil"] = (function() { + var $pkg = {}, $init, fmt, ast, token, types, path, reflect, regexp, strconv, strings, directiveMatcher, _r; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + token = $packages["go/token"]; + types = $packages["go/types"]; + path = $packages["path"]; + reflect = $packages["reflect"]; + regexp = $packages["regexp"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = types.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = path.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = regexp.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = regexp.MustCompile("^\\/(?:\\/|\\*)gopherjs:([\\w-]+)"); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + directiveMatcher = _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/compiler/internal/symbol"] = (function() { + var $pkg = {}, $init, types, strings; + types = $packages["go/types"]; + strings = $packages["strings"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = types.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/tools/internal/typeparams"] = (function() { + var $pkg = {}, $init, bytes, errors, fmt, ast, token, types, os, strings, term, termlist, allTermlist; + bytes = $packages["bytes"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + token = $packages["go/token"]; + types = $packages["go/types"]; + os = $packages["os"]; + strings = $packages["strings"]; + term = $newType(0, $kindStruct, "typeparams.term", true, "golang.org/x/tools/internal/typeparams", false, function(tilde_, typ_) { + this.$val = this; + if (arguments.length === 0) { + this.tilde = false; + this.typ = $ifaceNil; + return; + } + this.tilde = tilde_; + this.typ = typ_; + }); + termlist = $newType(12, $kindSlice, "typeparams.termlist", true, "golang.org/x/tools/internal/typeparams", false, null); + $pkg.term = term; + $pkg.termlist = termlist; + $pkg.$finishSetup = function() { + $ptrType(term).prototype.String = function String() { + var {$24r, $24r$1, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (x === ptrType.nil) { $s = 2; continue; } + /* */ if ($interfaceIsEqual(x.typ, $ifaceNil)) { $s = 3; continue; } + /* */ if (x.tilde) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (x === ptrType.nil) { */ case 2: + $s = -1; return "\xE2\x88\x85"; + /* } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { */ case 3: + $s = -1; return "\xF0\x9D\x93\xA4"; + /* } else if (x.tilde) { */ case 4: + _r = x.typ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = "~" + _r; + $s = 8; case 8: return $24r; + /* } else { */ case 5: + _r$1 = x.typ.String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 10; case 10: return $24r$1; + /* } */ case 6: + case 1: + $s = -1; return ""; + /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, $24r$1, _r, _r$1, x, $s};return $f; + }; + termlist.prototype.String = function String$1() { + var {_i, _r, _r$1, _ref, buf, i, x, xl, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + if (xl.$length === 0) { + $s = -1; return "\xE2\x88\x85"; + } + buf = new bytes.Buffer.ptr(sliceType.nil, 0, 0); + _ref = xl; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf.WriteString(" | "); + } + _r = x.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = buf.WriteString(_r); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _i++; + $s = 1; continue; + case 2: + $s = -1; return buf.String(); + /* */ } return; } var $f = {$blk: String$1, $c: true, $r, _i, _r, _r$1, _ref, buf, i, x, xl, $s};return $f; + }; + $ptrType(termlist).prototype.String = function(...$args) { return this.$get().String(...$args); }; + ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "equal", name: "equal", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([ptrType], [$Bool], false)}, {prop: "union", name: "union", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([ptrType], [ptrType, ptrType], false)}, {prop: "intersect", name: "intersect", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([ptrType], [ptrType], false)}, {prop: "includes", name: "includes", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([types.Type], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([ptrType], [$Bool], false)}, {prop: "disjoint", name: "disjoint", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([ptrType], [$Bool], false)}]; + termlist.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isEmpty", name: "isEmpty", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([], [$Bool], false)}, {prop: "isAll", name: "isAll", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([], [$Bool], false)}, {prop: "norm", name: "norm", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([], [termlist], false)}, {prop: "union", name: "union", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([termlist], [termlist], false)}, {prop: "intersect", name: "intersect", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([termlist], [termlist], false)}, {prop: "equal", name: "equal", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([termlist], [$Bool], false)}, {prop: "includes", name: "includes", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([types.Type], [$Bool], false)}, {prop: "supersetOf", name: "supersetOf", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([ptrType], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([termlist], [$Bool], false)}]; + term.init("golang.org/x/tools/internal/typeparams", [{prop: "tilde", name: "tilde", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: types.Type, tag: ""}]); + termlist.init(ptrType); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = types.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + allTermlist = new termlist([new term.ptr(false, $ifaceNil)]); + $pkg.ErrEmptyTypeSet = errors.New("empty type set"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/tools/go/ast/astutil"] = (function() { + var $pkg = {}, $init, fmt, ast, token, typeparams, reflect, sort, strconv, strings, abort; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + token = $packages["go/token"]; + typeparams = $packages["golang.org/x/tools/internal/typeparams"]; + reflect = $packages["reflect"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typeparams.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + abort = $newDataPointer(0, ptrType); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/tools/go/types/typeutil"] = (function() { + var $pkg = {}, $init, bytes, fmt, ast, types, astutil, typeparams, reflect, sync; + bytes = $packages["bytes"]; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + types = $packages["go/types"]; + astutil = $packages["golang.org/x/tools/go/ast/astutil"]; + typeparams = $packages["golang.org/x/tools/internal/typeparams"]; + reflect = $packages["reflect"]; + sync = $packages["sync"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = types.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = astutil.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typeparams.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/compiler/typesutil"] = (function() { + var $pkg = {}, $init, fmt, types, typeutil, strings; + fmt = $packages["fmt"]; + types = $packages["go/types"]; + typeutil = $packages["golang.org/x/tools/go/types/typeutil"]; + strings = $packages["strings"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = types.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typeutil.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/internal/govendor/subst"] = (function() { + var $pkg = {}, $init, token, types, typeutil; + token = $packages["go/token"]; + types = $packages["go/types"]; + typeutil = $packages["golang.org/x/tools/go/types/typeutil"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = token.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = types.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typeutil.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/compiler/internal/typeparams"] = (function() { + var $pkg = {}, $init, fmt, symbol, typesutil, subst, ast, token, types, typeutil, sort, strings; + fmt = $packages["fmt"]; + symbol = $packages["github.com/gopherjs/gopherjs/compiler/internal/symbol"]; + typesutil = $packages["github.com/gopherjs/gopherjs/compiler/typesutil"]; + subst = $packages["github.com/gopherjs/gopherjs/internal/govendor/subst"]; + ast = $packages["go/ast"]; + token = $packages["go/token"]; + types = $packages["go/types"]; + typeutil = $packages["golang.org/x/tools/go/types/typeutil"]; + sort = $packages["sort"]; + strings = $packages["strings"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = symbol.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typesutil.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = subst.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = types.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typeutil.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/compiler/internal/analysis"] = (function() { + var $pkg = {}, $init, fmt, astutil, typeparams, typesutil, ast, constant, token, types, strings; + fmt = $packages["fmt"]; + astutil = $packages["github.com/gopherjs/gopherjs/compiler/astutil"]; + typeparams = $packages["github.com/gopherjs/gopherjs/compiler/internal/typeparams"]; + typesutil = $packages["github.com/gopherjs/gopherjs/compiler/typesutil"]; + ast = $packages["go/ast"]; + constant = $packages["go/constant"]; + token = $packages["go/token"]; + types = $packages["go/types"]; + strings = $packages["strings"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = astutil.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typeparams.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typesutil.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = constant.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = types.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/internal/errlist"] = (function() { + var $pkg = {}, $init, errors, fmt; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrTooManyErrors = errors.New("too many errors"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/compiler/linkname"] = (function() { + var $pkg = {}, $init, fmt, astutil, symbol, errlist, ast, token, strings; + fmt = $packages["fmt"]; + astutil = $packages["github.com/gopherjs/gopherjs/compiler/astutil"]; + symbol = $packages["github.com/gopherjs/gopherjs/compiler/internal/symbol"]; + errlist = $packages["github.com/gopherjs/gopherjs/internal/errlist"]; + ast = $packages["go/ast"]; + token = $packages["go/token"]; + strings = $packages["strings"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = astutil.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = symbol.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errlist.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/neelance/astrewrite"] = (function() { + var $pkg = {}, $init, fmt, ast, constant, token, types; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + constant = $packages["go/constant"]; + token = $packages["go/token"]; + types = $packages["go/types"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = constant.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = types.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/compiler/sources"] = (function() { + var $pkg = {}, $init, bytes, gob, errors, cache, incjs, analysis, typeparams, linkname, errlist, astrewrite, ast, token, types, sort, strings, sync, prepareGob; + bytes = $packages["bytes"]; + gob = $packages["encoding/gob"]; + errors = $packages["errors"]; + cache = $packages["github.com/gopherjs/gopherjs/build/cache"]; + incjs = $packages["github.com/gopherjs/gopherjs/compiler/incjs"]; + analysis = $packages["github.com/gopherjs/gopherjs/compiler/internal/analysis"]; + typeparams = $packages["github.com/gopherjs/gopherjs/compiler/internal/typeparams"]; + linkname = $packages["github.com/gopherjs/gopherjs/compiler/linkname"]; + errlist = $packages["github.com/gopherjs/gopherjs/internal/errlist"]; + astrewrite = $packages["github.com/neelance/astrewrite"]; + ast = $packages["go/ast"]; + token = $packages["go/token"]; + types = $packages["go/types"]; + sort = $packages["sort"]; + strings = $packages["strings"]; + sync = $packages["sync"]; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = cache.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = incjs.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = analysis.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typeparams.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = linkname.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errlist.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = astrewrite.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = types.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + prepareGob = (function func1() { + var once, registerTypes; + registerTypes = (function func1·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = gob.Register(new token.Pos(0)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.File.ptr(ptrType.nil, 0, ptrType$1.nil, sliceType.nil, ptrType$2.nil, sliceType$1.nil, sliceType$2.nil, sliceType$3.nil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.Comment.ptr(0, "")); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.CommentGroup.ptr(sliceType$4.nil)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.Field.ptr(ptrType.nil, sliceType$2.nil, $ifaceNil, ptrType$5.nil, ptrType.nil)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.FieldList.ptr(0, sliceType$5.nil, 0)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.BadExpr.ptr(0, 0)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.Ident.ptr(0, "", ptrType$7.nil)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.Ellipsis.ptr(0, $ifaceNil)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.BasicLit.ptr(0, 0, "")); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.FuncLit.ptr(ptrType$8.nil, ptrType$9.nil)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.CompositeLit.ptr($ifaceNil, 0, sliceType$6.nil, 0, false)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.ParenExpr.ptr(0, $ifaceNil, 0)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.SelectorExpr.ptr($ifaceNil, ptrType$1.nil)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.IndexExpr.ptr($ifaceNil, 0, $ifaceNil, 0)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.IndexListExpr.ptr($ifaceNil, 0, sliceType$6.nil, 0)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.SliceExpr.ptr($ifaceNil, 0, $ifaceNil, $ifaceNil, $ifaceNil, false, 0)); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.TypeAssertExpr.ptr($ifaceNil, 0, $ifaceNil, 0)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.CallExpr.ptr($ifaceNil, 0, sliceType$6.nil, 0, 0)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.StarExpr.ptr(0, $ifaceNil)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.UnaryExpr.ptr(0, 0, $ifaceNil)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.BinaryExpr.ptr($ifaceNil, 0, 0, $ifaceNil)); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.KeyValueExpr.ptr($ifaceNil, 0, $ifaceNil)); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.ArrayType.ptr(0, $ifaceNil, $ifaceNil)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.StructType.ptr(0, ptrType$10.nil, false)); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.FuncType.ptr(0, ptrType$10.nil, ptrType$10.nil, ptrType$10.nil)); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.InterfaceType.ptr(0, ptrType$10.nil, false)); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.MapType.ptr(0, $ifaceNil, $ifaceNil)); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.ChanType.ptr(0, 0, 0, $ifaceNil)); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.BadStmt.ptr(0, 0)); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.DeclStmt.ptr($ifaceNil)); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.EmptyStmt.ptr(0, false)); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.LabeledStmt.ptr(ptrType$1.nil, 0, $ifaceNil)); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.ExprStmt.ptr($ifaceNil)); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.SendStmt.ptr($ifaceNil, 0, $ifaceNil)); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.IncDecStmt.ptr($ifaceNil, 0, 0)); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.AssignStmt.ptr(sliceType$6.nil, 0, 0, sliceType$6.nil)); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.GoStmt.ptr(0, ptrType$11.nil)); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.DeferStmt.ptr(0, ptrType$11.nil)); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.ReturnStmt.ptr(0, sliceType$6.nil)); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.BranchStmt.ptr(0, 0, ptrType$1.nil)); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.BlockStmt.ptr(0, sliceType$7.nil, 0)); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.IfStmt.ptr(0, $ifaceNil, $ifaceNil, ptrType$9.nil, $ifaceNil)); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.CaseClause.ptr(0, sliceType$6.nil, 0, sliceType$7.nil)); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.SwitchStmt.ptr(0, $ifaceNil, $ifaceNil, ptrType$9.nil)); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.TypeSwitchStmt.ptr(0, $ifaceNil, $ifaceNil, ptrType$9.nil)); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.CommClause.ptr(0, $ifaceNil, 0, sliceType$7.nil)); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.SelectStmt.ptr(0, ptrType$9.nil)); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.ForStmt.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, ptrType$9.nil)); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.RangeStmt.ptr(0, $ifaceNil, $ifaceNil, 0, 0, $ifaceNil, ptrType$9.nil)); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.BadDecl.ptr(0, 0)); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.GenDecl.ptr(ptrType.nil, 0, 0, 0, sliceType$8.nil, 0)); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.FuncDecl.ptr(ptrType.nil, ptrType$10.nil, ptrType$1.nil, ptrType$8.nil, ptrType$9.nil)); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.ImportSpec.ptr(ptrType.nil, ptrType$1.nil, ptrType$5.nil, ptrType.nil, 0)); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.ValueSpec.ptr(ptrType.nil, sliceType$2.nil, $ifaceNil, sliceType$6.nil, ptrType.nil)); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = gob.Register(new ast.TypeSpec.ptr(ptrType.nil, ptrType$1.nil, ptrType$10.nil, 0, $ifaceNil, ptrType.nil)); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: func1·func1, $c: true, $r, $s};return $f; + }); + once = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); + return (function func1·func2() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = once.Do(registerTypes); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: func1·func2, $c: true, $r, $s};return $f; + }); + })(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs.github.io/playground/internal/common"] = (function() { + var $pkg = {}, $init, sources, SnippetStore; + sources = $packages["github.com/gopherjs/gopherjs/compiler/sources"]; + SnippetStore = $newType(8, $kindInterface, "common.SnippetStore", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/common", true, null); + $pkg.SnippetStore = SnippetStore; + $pkg.$finishSetup = function() { + SnippetStore.init([{prop: "Read", name: "Read", pkg: "", typ: $funcType([$String], [$String, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([$String], [$String, $error], false)}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = sources.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs.github.io/playground/internal/editor"] = (function() { + var $pkg = {}, $init, strings, time, unicode, CodeBoxWrapper, Selection, codeEditor, MeasureLineLength, LongestMeasuredLineLength, ProcessKeyDown, findMatchingOpeningBrace, inRange, adjustSel, write, findEndOfLineAfter, findStartOfLastLine, trimLeftSpace, isBlankLine; + strings = $packages["strings"]; + time = $packages["time"]; + unicode = $packages["unicode"]; + CodeBoxWrapper = $newType(8, $kindInterface, "editor.CodeBoxWrapper", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", true, null); + Selection = $newType(0, $kindStruct, "editor.Selection", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", true, function(Start_, End_) { + this.$val = this; + if (arguments.length === 0) { + this.Start = 0; + this.End = 0; + return; + } + this.Start = Start_; + this.End = End_; + }); + codeEditor = $newType(0, $kindStruct, "editor.codeEditor", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", false, function(CodeBoxWrapper_) { + this.$val = this; + if (arguments.length === 0) { + this.CodeBoxWrapper = $ifaceNil; + return; + } + this.CodeBoxWrapper = CodeBoxWrapper_; + }); + $pkg.CodeBoxWrapper = CodeBoxWrapper; + $pkg.Selection = Selection; + $pkg.codeEditor = codeEditor; + $pkg.$finishSetup = function() { + $ptrType(Selection).prototype.IsCaret = function IsCaret() { + var sel; + sel = this; + return sel.Start === sel.End; + }; + Selection.prototype.IsCaret = function(...$args) { return this.$val.IsCaret(...$args); }; + MeasureLineLength = function MeasureLineLength$1(line) { + var _r, i, length, line, tabAdjust; + length = line.length; + tabAdjust = 0; + i = 0; + while (true) { + if (!(i < length)) { break; } + if (line.charCodeAt(i) === 9) { + tabAdjust = tabAdjust + (((4 - (_r = ((i + tabAdjust >> 0)) % 4, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >> 0) - 1 >> 0)) >> 0; + } + i = i + (1) >> 0; + } + return length + tabAdjust >> 0; + }; + $pkg.MeasureLineLength = MeasureLineLength; + LongestMeasuredLineLength = function LongestMeasuredLineLength$1(code) { + var {code, index, longest, process, $s, $r, $c} = $restore(this, {code}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + longest = [longest]; + longest[0] = 0; + process = (function(longest) { return function LongestMeasuredLineLength·func1(line) { + var length, line; + if (($imul(line.length, 4)) > longest[0]) { + length = MeasureLineLength(line); + if (length > longest[0]) { + longest[0] = length; + } + } + }; })(longest); + /* while (true) { */ case 1: + index = strings.IndexByte(code, 10); + /* */ if (index < 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (index < 0) { */ case 3: + $r = process(code); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 2; continue; + /* } */ case 4: + $r = process($substring(code, 0, index)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + code = $substring(code, (index + 1 >> 0)); + $s = 1; continue; + case 2: + $s = -1; return longest[0]; + /* */ } return; } var $f = {$blk: LongestMeasuredLineLength$1, $c: true, $r, code, index, longest, process, $s};return $f; + }; + $pkg.LongestMeasuredLineLength = LongestMeasuredLineLength; + ProcessKeyDown = function ProcessKeyDown$1(wrapper, key, shift, ctrl) { + var {$24r, _r, ce, ctrl, key, shift, wrapper, $s, $r, $c} = $restore(this, {wrapper, key, shift, ctrl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = new codeEditor.ptr(wrapper); + _r = ce.handleKeyDown(key, shift, ctrl); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ProcessKeyDown$1, $c: true, $r, $24r, _r, ce, ctrl, key, shift, wrapper, $s};return $f; + }; + $pkg.ProcessKeyDown = ProcessKeyDown; + $ptrType(codeEditor).prototype.handleKeyDown = function handleKeyDown(key, shift, ctrl) { + var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, ce, ctrl, key, shift, $s, $r, $c} = $restore(this, {key, shift, ctrl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + _1 = key; + /* */ if (_1 === (" ")) { $s = 2; continue; } + /* */ if (_1 === ("Tab")) { $s = 3; continue; } + /* */ if (_1 === ("Enter")) { $s = 4; continue; } + /* */ if (_1 === ("s")) { $s = 5; continue; } + /* */ if (_1 === ("*")) { $s = 6; continue; } + /* */ if (_1 === ("/")) { $s = 7; continue; } + /* */ if (_1 === ("\"")) { $s = 8; continue; } + /* */ if (_1 === ("'")) { $s = 9; continue; } + /* */ if (_1 === ("`")) { $s = 10; continue; } + /* */ if (_1 === ("(")) { $s = 11; continue; } + /* */ if (_1 === ("{")) { $s = 12; continue; } + /* */ if (_1 === ("[")) { $s = 13; continue; } + /* */ if (_1 === ("Escape")) { $s = 14; continue; } + /* */ if (_1 === ("z")) { $s = 15; continue; } + /* */ if (_1 === ("y")) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_1 === (" ")) { */ case 2: + _r = ce.handleSpace(shift, ctrl); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 20; case 20: return $24r; + /* } else if (_1 === ("Tab")) { */ case 3: + _r$1 = ce.handleTab(shift, ctrl); /* */ $s = 21; case 21: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 22; case 22: return $24r$1; + /* } else if (_1 === ("Enter")) { */ case 4: + _r$2 = ce.handleNewline(shift, ctrl); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$2 = _r$2; + $s = 24; case 24: return $24r$2; + /* } else if (_1 === ("s")) { */ case 5: + _r$3 = ce.handleSave(shift, ctrl); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$3 = _r$3; + $s = 26; case 26: return $24r$3; + /* } else if (_1 === ("*")) { */ case 6: + _r$4 = ce.handleMultilineComment(shift, ctrl); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$4 = _r$4; + $s = 28; case 28: return $24r$4; + /* } else if (_1 === ("/")) { */ case 7: + _r$5 = ce.handleCommentToggle(shift, ctrl); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$5 = _r$5; + $s = 30; case 30: return $24r$5; + /* } else if (_1 === ("\"")) { */ case 8: + _r$6 = ce.insertPair(ctrl, "\"", "\""); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$6 = _r$6; + $s = 32; case 32: return $24r$6; + /* } else if (_1 === ("'")) { */ case 9: + _r$7 = ce.insertPair(ctrl, "'", "'"); /* */ $s = 33; case 33: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$7 = _r$7; + $s = 34; case 34: return $24r$7; + /* } else if (_1 === ("`")) { */ case 10: + _r$8 = ce.insertPair(ctrl, "`", "`"); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r$8 = _r$8; + $s = 36; case 36: return $24r$8; + /* } else if (_1 === ("(")) { */ case 11: + _r$9 = ce.insertPair(ctrl, "(", ")"); /* */ $s = 37; case 37: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $24r$9 = _r$9; + $s = 38; case 38: return $24r$9; + /* } else if (_1 === ("{")) { */ case 12: + _r$10 = ce.insertPair(ctrl, "{", "}"); /* */ $s = 39; case 39: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $24r$10 = _r$10; + $s = 40; case 40: return $24r$10; + /* } else if (_1 === ("[")) { */ case 13: + _r$11 = ce.insertPair(ctrl, "[", "]"); /* */ $s = 41; case 41: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $24r$11 = _r$11; + $s = 42; case 42: return $24r$11; + /* } else if (_1 === ("Escape")) { */ case 14: + _r$12 = ce.handleEscape(); /* */ $s = 43; case 43: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $24r$12 = _r$12; + $s = 44; case 44: return $24r$12; + /* } else if (_1 === ("z")) { */ case 15: + _r$13 = ce.handleUndo(shift, ctrl); /* */ $s = 45; case 45: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + $24r$13 = _r$13; + $s = 46; case 46: return $24r$13; + /* } else if (_1 === ("y")) { */ case 16: + _r$14 = ce.handleRedo(shift, ctrl); /* */ $s = 47; case 47: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $24r$14 = _r$14; + $s = 48; case 48: return $24r$14; + /* } else { */ case 17: + $s = -1; return false; + /* } */ case 18: + case 1: + $s = -1; return false; + /* */ } return; } var $f = {$blk: handleKeyDown, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, ce, ctrl, key, shift, $s};return $f; + }; + $ptrType(codeEditor).prototype.handleSpace = function handleSpace(shift, ctrl) { + var {_q, _r, _r$1, _r$2, c, caret, ce, code, ctrl, i, length, lineStart, newCode, newSel, sel, shift, spaces, tabs, $s, $r, $c} = $restore(this, {shift, ctrl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + if (ctrl || shift) { + $s = -1; return false; + } + _r = ce.CodeBoxWrapper.GetSelection(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + sel = $clone(_r, Selection); + if (!$clone(sel, Selection).IsCaret()) { + $s = -1; return false; + } + caret = sel.Start; + _r$1 = ce.CodeBoxWrapper.Code(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + code = _r$1; + if (!inRange(caret, 1, code.length)) { + $s = -1; return false; + } + i = caret - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + c = code.charCodeAt(i); + if (c === 10) { + break; + } + if (!((c === 32)) && !((c === 9))) { + $s = -1; return false; + } + i = i - (1) >> 0; + } + lineStart = i + 1 >> 0; + length = MeasureLineLength($substring(code, lineStart, caret)); + length = length + (1) >> 0; + tabs = (_q = length / 4, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + spaces = (_r$2 = length % 4, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")); + newCode = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); + newCode.Grow(((code.length + tabs >> 0) + spaces >> 0) - ((caret - lineStart >> 0)) >> 0); + write(newCode, $substring(code, 0, lineStart)); + write(newCode, strings.Repeat("\t", tabs)); + write(newCode, strings.Repeat(" ", spaces)); + write(newCode, $substring(code, caret)); + caret = (lineStart + tabs >> 0) + spaces >> 0; + newSel = new Selection.ptr(caret, caret); + $r = ce.CodeBoxWrapper.SetCode($clone(newSel, Selection), newCode.String()); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* */ } return; } var $f = {$blk: handleSpace, $c: true, $r, _q, _r, _r$1, _r$2, c, caret, ce, code, ctrl, i, length, lineStart, newCode, newSel, sel, shift, spaces, tabs, $s};return $f; + }; + $ptrType(codeEditor).prototype.handleTab = function handleTab(shift, ctrl) { + var {$24r, $24r$1, _r, _r$1, _r$2, ce, ctrl, sel, shift, $s, $r, $c} = $restore(this, {shift, ctrl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + if (ctrl) { + $s = -1; return false; + } + /* */ if (shift) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (shift) { */ case 1: + _r = ce.removeIndents(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = ce.CodeBoxWrapper.GetSelection(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + sel = $clone(_r$1, Selection); + /* */ if ($clone(sel, Selection).IsCaret()) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($clone(sel, Selection).IsCaret()) { */ case 6: + $r = ce.insertAtSelection("\t", "", false); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* } */ case 7: + _r$2 = ce.addIndents(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 10; case 10: return $24r$1; + /* */ } return; } var $f = {$blk: handleTab, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, ce, ctrl, sel, shift, $s};return $f; + }; + $ptrType(codeEditor).prototype.addIndents = function addIndents() { + var {_r, _r$1, _r$2, _r$3, _r$4, ce, code, lineSel, newCode, newSel, nonBlankLines, sel, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + newCode = [newCode]; + newSel = [newSel]; + nonBlankLines = [nonBlankLines]; + sel = [sel]; + ce = this; + _r = ce.getSelectedLines(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + lineSel = $clone(_r, Selection); + nonBlankLines[0] = 0; + _r$1 = ce.foreachLine($clone(lineSel, Selection), (function(newCode, newSel, nonBlankLines, sel) { return function codeEditor·addIndents·func1(line, param) { + var {_r$1, line, param, $s, $r, $c} = $restore(this, {line, param}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = isBlankLine(line); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$1) { */ case 1: + nonBlankLines[0] = nonBlankLines[0] + (1) >> 0; + /* } */ case 2: + $s = -1; return true; + /* */ } return; } var $f = {$blk: codeEditor·addIndents·func1, $c: true, $r, _r$1, line, param, $s};return $f; + }; })(newCode, newSel, nonBlankLines, sel)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + if (nonBlankLines[0] === 0) { + $s = -1; return true; + } + _r$2 = ce.CodeBoxWrapper.Code(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + code = _r$2; + _r$3 = ce.CodeBoxWrapper.GetSelection(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + sel[0] = $clone(_r$3, Selection); + newSel[0] = $clone(sel[0], Selection); + newCode[0] = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); + newCode[0].Grow(code.length + nonBlankLines[0] >> 0); + write(newCode[0], $substring(code, 0, lineSel.Start)); + _r$4 = ce.foreachLine($clone(lineSel, Selection), (function(newCode, newSel, nonBlankLines, sel) { return function codeEditor·addIndents·func2(line, curLineSel) { + var {_r$4, curLineSel, line, $s, $r, $c} = $restore(this, {line, curLineSel}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$4 = isBlankLine(line); /* */ $s = 3; case 3: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$4) { */ case 1: + write(newCode[0], line); + $s = -1; return true; + /* } */ case 2: + adjustSel(newSel[0], $clone(sel[0], Selection), curLineSel.Start, 1); + write(newCode[0], "\t"); + write(newCode[0], line); + $s = -1; return true; + /* */ } return; } var $f = {$blk: codeEditor·addIndents·func2, $c: true, $r, _r$4, curLineSel, line, $s};return $f; + }; })(newCode, newSel, nonBlankLines, sel)); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + write(newCode[0], $substring(code, lineSel.End)); + $r = ce.CodeBoxWrapper.SetCode($clone(newSel[0], Selection), newCode[0].String()); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* */ } return; } var $f = {$blk: addIndents, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, ce, code, lineSel, newCode, newSel, nonBlankLines, sel, $s};return $f; + }; + $ptrType(codeEditor).prototype.removeIndents = function removeIndents() { + var {_r, _r$1, _r$2, _r$3, _r$4, ce, code, indentedLines, lineSel, newCode, newSel, sel, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + indentedLines = [indentedLines]; + newCode = [newCode]; + newSel = [newSel]; + sel = [sel]; + ce = this; + _r = ce.getSelectedLines(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + lineSel = $clone(_r, Selection); + indentedLines[0] = 0; + _r$1 = ce.foreachLine($clone(lineSel, Selection), (function(indentedLines, newCode, newSel, sel) { return function codeEditor·removeIndents·func1(line, param) { + var line, param; + if ((line.charCodeAt(0) === 9) || (line.charCodeAt(0) === 32)) { + indentedLines[0] = indentedLines[0] + (1) >> 0; + } + return true; + }; })(indentedLines, newCode, newSel, sel)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + if (indentedLines[0] === 0) { + $s = -1; return true; + } + _r$2 = ce.CodeBoxWrapper.Code(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + code = _r$2; + _r$3 = ce.CodeBoxWrapper.GetSelection(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + sel[0] = $clone(_r$3, Selection); + newSel[0] = $clone(sel[0], Selection); + newCode[0] = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); + newCode[0].Grow(code.length - indentedLines[0] >> 0); + write(newCode[0], $substring(code, 0, lineSel.Start)); + _r$4 = ce.foreachLine($clone(lineSel, Selection), (function(indentedLines, newCode, newSel, sel) { return function codeEditor·removeIndents·func2(line, curLineSel) { + var curLineSel, i, line, removeChars; + removeChars = 0; + i = 0; + while (true) { + if (!(i < line.length)) { break; } + if (line.charCodeAt(i) === 9) { + removeChars = removeChars + (1) >> 0; + break; + } else if (line.charCodeAt(i) === 32) { + removeChars = removeChars + (1) >> 0; + if (removeChars >= 4) { + break; + } + } else { + break; + } + i = i + (1) >> 0; + } + if (removeChars === 0) { + write(newCode[0], line); + return true; + } + adjustSel(newSel[0], $clone(sel[0], Selection), curLineSel.Start + removeChars >> 0, -removeChars); + write(newCode[0], $substring(line, removeChars)); + return true; + }; })(indentedLines, newCode, newSel, sel)); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + write(newCode[0], $substring(code, lineSel.End)); + $r = ce.CodeBoxWrapper.SetCode($clone(newSel[0], Selection), newCode[0].String()); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* */ } return; } var $f = {$blk: removeIndents, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, ce, code, indentedLines, lineSel, newCode, newSel, sel, $s};return $f; + }; + $ptrType(codeEditor).prototype.handleMultilineComment = function handleMultilineComment(shift, ctrl) { + var {_r, _r$1, caret, ce, code, ctrl, sel, shift, $s, $r, $c} = $restore(this, {shift, ctrl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + if (!shift || ctrl) { + $s = -1; return false; + } + _r = ce.CodeBoxWrapper.Code(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + code = _r; + _r$1 = ce.CodeBoxWrapper.GetSelection(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + sel = $clone(_r$1, Selection); + if (!$clone(sel, Selection).IsCaret()) { + $s = -1; return false; + } + caret = sel.Start; + if (caret <= 0 || !((code.charCodeAt((caret - 1 >> 0)) === 47))) { + $s = -1; return false; + } + $r = ce.insertAtSelection("*", "*/", false); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* */ } return; } var $f = {$blk: handleMultilineComment, $c: true, $r, _r, _r$1, caret, ce, code, ctrl, sel, shift, $s};return $f; + }; + $ptrType(codeEditor).prototype.handleNewline = function handleNewline(shift, ctrl) { + var {_1, _2, _r, _r$1, _r$2, _r$3, after, before, ce, code, ctrl, opening, sel, shift, $s, $r, $c} = $restore(this, {shift, ctrl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + if (shift || ctrl) { + $s = -1; return false; + } + _r = ce.CodeBoxWrapper.Code(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + code = _r; + _r$1 = ce.CodeBoxWrapper.GetSelection(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + sel = $clone(_r$1, Selection); + _r$2 = ce.indentAt(sel.Start); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + before = "\n" + _r$2; + after = ""; + if (inRange(sel.Start, 1, code.length)) { + _1 = code.charCodeAt((sel.Start - 1 >> 0)); + if ((_1 === (123)) || (_1 === (40)) || (_1 === (91))) { + before = before + ("\t"); + } + } + /* */ if (inRange(sel.End, 0, code.length - 1 >> 0)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (inRange(sel.End, 0, code.length - 1 >> 0)) { */ case 4: + _2 = code.charCodeAt(sel.End); + /* */ if ((_2 === (125)) || (_2 === (41)) || (_2 === (93))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((_2 === (125)) || (_2 === (41)) || (_2 === (93))) { */ case 7: + opening = findMatchingOpeningBrace(code, sel.End); + /* */ if (opening >= 0) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (opening >= 0) { */ case 9: + _r$3 = ce.indentAt(opening); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + after = "\n" + _r$3; + /* } */ case 10: + /* } */ case 8: + case 6: + /* } */ case 5: + $r = ce.insertAtSelection(before, after, false); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* */ } return; } var $f = {$blk: handleNewline, $c: true, $r, _1, _2, _r, _r$1, _r$2, _r$3, after, before, ce, code, ctrl, opening, sel, shift, $s};return $f; + }; + $ptrType(codeEditor).prototype.handleSave = function handleSave(shift, ctrl) { + var {ce, ctrl, shift, $s, $r, $c} = $restore(this, {shift, ctrl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + if (!ctrl || shift) { + $s = -1; return false; + } + $r = ce.CodeBoxWrapper.EmitEvent("save"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* */ } return; } var $f = {$blk: handleSave, $c: true, $r, ce, ctrl, shift, $s};return $f; + }; + $ptrType(codeEditor).prototype.handleEscape = function handleEscape() { + var {ce, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + $r = ce.CodeBoxWrapper.EmitEvent("escape"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* */ } return; } var $f = {$blk: handleEscape, $c: true, $r, ce, $s};return $f; + }; + $ptrType(codeEditor).prototype.handleUndo = function handleUndo(shift, ctrl) { + var {ce, ctrl, shift, $s, $r, $c} = $restore(this, {shift, ctrl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + if (!ctrl) { + $s = -1; return false; + } + /* */ if (shift) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (shift) { */ case 1: + $r = ce.CodeBoxWrapper.EmitEvent("redo"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* } */ case 2: + $r = ce.CodeBoxWrapper.EmitEvent("undo"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* */ } return; } var $f = {$blk: handleUndo, $c: true, $r, ce, ctrl, shift, $s};return $f; + }; + $ptrType(codeEditor).prototype.handleRedo = function handleRedo(shift, ctrl) { + var {ce, ctrl, shift, $s, $r, $c} = $restore(this, {shift, ctrl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + if (!ctrl || shift) { + $s = -1; return false; + } + $r = ce.CodeBoxWrapper.EmitEvent("redo"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* */ } return; } var $f = {$blk: handleRedo, $c: true, $r, ce, ctrl, shift, $s};return $f; + }; + $ptrType(codeEditor).prototype.handleCommentToggle = function handleCommentToggle(shift, ctrl) { + var {_r, _r$1, ce, containsOnlyBlankLines, containsUncommentedLine, ctrl, lineSel, shift, $s, $r, $c} = $restore(this, {shift, ctrl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + containsOnlyBlankLines = [containsOnlyBlankLines]; + containsUncommentedLine = [containsUncommentedLine]; + ce = this; + if (!ctrl || shift) { + $s = -1; return false; + } + _r = ce.getSelectedLines(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + lineSel = $clone(_r, Selection); + containsOnlyBlankLines[0] = true; + containsUncommentedLine[0] = false; + _r$1 = ce.foreachLine($clone(lineSel, Selection), (function(containsOnlyBlankLines, containsUncommentedLine) { return function codeEditor·handleCommentToggle·func1(line, param) { + var {_r$1, line, param, trimmed, $s, $r, $c} = $restore(this, {line, param}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = trimLeftSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + trimmed = _r$1; + if (!(trimmed === "")) { + containsOnlyBlankLines[0] = false; + if (!strings.HasPrefix(trimmed, "// ")) { + containsUncommentedLine[0] = true; + $s = -1; return false; + } + } + $s = -1; return true; + /* */ } return; } var $f = {$blk: codeEditor·handleCommentToggle·func1, $c: true, $r, _r$1, line, param, trimmed, $s};return $f; + }; })(containsOnlyBlankLines, containsUncommentedLine)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + if (containsOnlyBlankLines[0]) { + $s = -1; return true; + } + /* */ if (containsUncommentedLine[0]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (containsUncommentedLine[0]) { */ case 3: + $r = ce.addCommenting($clone(lineSel, Selection)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* } */ case 4: + $r = ce.removeCommenting($clone(lineSel, Selection)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* */ } return; } var $f = {$blk: handleCommentToggle, $c: true, $r, _r, _r$1, ce, containsOnlyBlankLines, containsUncommentedLine, ctrl, lineSel, shift, $s};return $f; + }; + $ptrType(codeEditor).prototype.addCommenting = function addCommenting(lineSel) { + var {_r, _r$1, _r$2, _r$3, ce, code, leastIndent, lineSel, newCode, newSel, nonBlankLines, sel, $s, $r, $c} = $restore(this, {lineSel}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + leastIndent = [leastIndent]; + newCode = [newCode]; + newSel = [newSel]; + nonBlankLines = [nonBlankLines]; + sel = [sel]; + ce = this; + leastIndent[0] = -1; + nonBlankLines[0] = 0; + _r = ce.foreachLine($clone(lineSel, Selection), (function(leastIndent, newCode, newSel, nonBlankLines, sel) { return function codeEditor·addCommenting·func1(line, param) { + var {_r, indent, line, param, trimmed, $s, $r, $c} = $restore(this, {line, param}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = trimLeftSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + trimmed = _r; + if (!(trimmed === "")) { + indent = line.length - trimmed.length >> 0; + if (leastIndent[0] < 0 || indent < leastIndent[0]) { + leastIndent[0] = indent; + } + nonBlankLines[0] = nonBlankLines[0] + (1) >> 0; + } + $s = -1; return true; + /* */ } return; } var $f = {$blk: codeEditor·addCommenting·func1, $c: true, $r, _r, indent, line, param, trimmed, $s};return $f; + }; })(leastIndent, newCode, newSel, nonBlankLines, sel)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + if (nonBlankLines[0] === 0) { + $s = -1; return; + } + _r$1 = ce.CodeBoxWrapper.Code(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + code = _r$1; + _r$2 = ce.CodeBoxWrapper.GetSelection(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + sel[0] = $clone(_r$2, Selection); + newSel[0] = $clone(sel[0], Selection); + newCode[0] = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); + newCode[0].Grow(code.length + ($imul(nonBlankLines[0], 3)) >> 0); + write(newCode[0], $substring(code, 0, lineSel.Start)); + _r$3 = ce.foreachLine($clone(lineSel, Selection), (function(leastIndent, newCode, newSel, nonBlankLines, sel) { return function codeEditor·addCommenting·func2(line, curLineSel) { + var {_r$3, curLineSel, line, $s, $r, $c} = $restore(this, {line, curLineSel}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = isBlankLine(line); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$3) { */ case 1: + write(newCode[0], line); + $s = -1; return true; + /* } */ case 2: + adjustSel(newSel[0], $clone(sel[0], Selection), curLineSel.Start + leastIndent[0] >> 0, 3); + write(newCode[0], $substring(line, 0, leastIndent[0])); + write(newCode[0], "// "); + write(newCode[0], $substring(line, leastIndent[0])); + $s = -1; return true; + /* */ } return; } var $f = {$blk: codeEditor·addCommenting·func2, $c: true, $r, _r$3, curLineSel, line, $s};return $f; + }; })(leastIndent, newCode, newSel, nonBlankLines, sel)); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + write(newCode[0], $substring(code, lineSel.End)); + $r = ce.CodeBoxWrapper.SetCode($clone(newSel[0], Selection), newCode[0].String()); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: addCommenting, $c: true, $r, _r, _r$1, _r$2, _r$3, ce, code, leastIndent, lineSel, newCode, newSel, nonBlankLines, sel, $s};return $f; + }; + $ptrType(codeEditor).prototype.removeCommenting = function removeCommenting(lineSel) { + var {_r, _r$1, _r$2, ce, code, lineSel, newCode, newSel, sel, $s, $r, $c} = $restore(this, {lineSel}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + newCode = [newCode]; + newSel = [newSel]; + sel = [sel]; + ce = this; + _r = ce.CodeBoxWrapper.Code(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + code = _r; + _r$1 = ce.CodeBoxWrapper.GetSelection(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + sel[0] = $clone(_r$1, Selection); + newSel[0] = $clone(sel[0], Selection); + newCode[0] = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); + newCode[0].Grow(code.length); + write(newCode[0], $substring(code, 0, lineSel.Start)); + _r$2 = ce.foreachLine($clone(lineSel, Selection), (function(newCode, newSel, sel) { return function codeEditor·removeCommenting·func1(line, curLineSel) { + var {_r$2, curLineSel, index, line, trimmed, $s, $r, $c} = $restore(this, {line, curLineSel}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$2 = trimLeftSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + trimmed = _r$2; + if (!(trimmed === "")) { + index = strings.Index(line, "// "); + if (index >= 0) { + write(newCode[0], $substring(line, 0, index)); + write(newCode[0], $substring(line, (index + 3 >> 0))); + adjustSel(newSel[0], $clone(sel[0], Selection), curLineSel.Start + index >> 0, -3); + $s = -1; return true; + } + } + write(newCode[0], line); + $s = -1; return true; + /* */ } return; } var $f = {$blk: codeEditor·removeCommenting·func1, $c: true, $r, _r$2, curLineSel, index, line, trimmed, $s};return $f; + }; })(newCode, newSel, sel)); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + write(newCode[0], $substring(code, lineSel.End)); + $r = ce.CodeBoxWrapper.SetCode($clone(newSel[0], Selection), newCode[0].String()); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: removeCommenting, $c: true, $r, _r, _r$1, _r$2, ce, code, lineSel, newCode, newSel, sel, $s};return $f; + }; + $ptrType(codeEditor).prototype.getSelectedLines = function getSelectedLines() { + var {_r, _r$1, ce, code, codeLen, lineSel, sel, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + _r = ce.CodeBoxWrapper.Code(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + code = _r; + codeLen = code.length; + _r$1 = ce.CodeBoxWrapper.GetSelection(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + sel = $clone(_r$1, Selection); + lineSel = new Selection.ptr(0, codeLen); + if (inRange(sel.Start, 0, codeLen)) { + lineSel.Start = findStartOfLastLine($substring(code, 0, sel.Start)); + } + if (inRange(sel.End, 0, codeLen)) { + lineSel.End = findEndOfLineAfter(sel.End, code); + } + $s = -1; return lineSel; + /* */ } return; } var $f = {$blk: getSelectedLines, $c: true, $r, _r, _r$1, ce, code, codeLen, lineSel, sel, $s};return $f; + }; + $ptrType(codeEditor).prototype.foreachLine = function foreachLine(sel, yield$1) { + var {_r, _r$1, ce, code, i, line, lineEnd, sel, yield$1, $s, $r, $c} = $restore(this, {sel, yield$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + _r = ce.CodeBoxWrapper.Code(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + code = _r; + i = sel.Start; + /* while (true) { */ case 2: + /* if (!(i < sel.End)) { break; } */ if(!(i < sel.End)) { $s = 3; continue; } + lineEnd = findEndOfLineAfter(i, $substring(code, 0, sel.End)); + line = $substring(code, i, lineEnd); + _r$1 = yield$1(line, $clone(new Selection.ptr(i, lineEnd), Selection)); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!_r$1) { */ case 4: + $s = -1; return false; + /* } */ case 5: + i = lineEnd; + $s = 2; continue; + case 3: + $s = -1; return true; + /* */ } return; } var $f = {$blk: foreachLine, $c: true, $r, _r, _r$1, ce, code, i, line, lineEnd, sel, yield$1, $s};return $f; + }; + $ptrType(codeEditor).prototype.insertPair = function insertPair(ctrl, before, after) { + var {after, before, ce, ctrl, $s, $r, $c} = $restore(this, {ctrl, before, after}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + if (ctrl) { + $s = -1; return false; + } + $r = ce.insertAtSelection(before, after, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* */ } return; } var $f = {$blk: insertPair, $c: true, $r, after, before, ce, ctrl, $s};return $f; + }; + $ptrType(codeEditor).prototype.insertAtSelection = function insertAtSelection(before, after, keepSelection) { + var {_r, _r$1, after, afterLen, before, beforeLen, ce, code, keepSelection, newCode, newSel, sel, selected, selectionLen, $s, $r, $c} = $restore(this, {before, after, keepSelection}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + _r = ce.CodeBoxWrapper.Code(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + code = _r; + _r$1 = ce.CodeBoxWrapper.GetSelection(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + sel = $clone(_r$1, Selection); + newSel = new Selection.ptr(sel.Start, sel.Start); + beforeLen = before.length; + afterLen = after.length; + selectionLen = 0; + if (keepSelection) { + selectionLen = sel.End - sel.Start >> 0; + } + newCode = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); + newCode.Grow(((code.length + beforeLen >> 0) + afterLen >> 0) + selectionLen >> 0); + if (sel.Start > 0) { + write(newCode, $substring(code, 0, sel.Start)); + } + if (beforeLen > 0) { + write(newCode, before); + newSel.Start = newSel.Start + (beforeLen) >> 0; + newSel.End = newSel.End + (beforeLen) >> 0; + } + if (selectionLen > 0) { + selected = $substring(code, sel.Start, sel.End); + write(newCode, selected); + newSel.End = newSel.End + (selectionLen) >> 0; + } + if (afterLen > 0) { + write(newCode, after); + } + if (sel.End < code.length) { + write(newCode, $substring(code, sel.End)); + } + $r = ce.CodeBoxWrapper.SetCode($clone(newSel, Selection), newCode.String()); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: insertAtSelection, $c: true, $r, _r, _r$1, after, afterLen, before, beforeLen, ce, code, keepSelection, newCode, newSel, sel, selected, selectionLen, $s};return $f; + }; + $ptrType(codeEditor).prototype.indentAt = function indentAt(start) { + var {_r, c, ce, code, i, par, start, $s, $r, $c} = $restore(this, {start}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ce = this; + _r = ce.CodeBoxWrapper.Code(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + code = _r; + if (!inRange(start, 1, code.length)) { + $s = -1; return ""; + } + par = findStartOfLastLine($substring(code, 0, start)); + i = par; + while (true) { + if (!(i < start)) { break; } + c = code.charCodeAt(i); + if (!((c === 32)) && !((c === 9))) { + break; + } + i = i + (1) >> 0; + } + $s = -1; return $substring(code, par, i); + /* */ } return; } var $f = {$blk: indentAt, $c: true, $r, _r, c, ce, code, i, par, start, $s};return $f; + }; + findMatchingOpeningBrace = function findMatchingOpeningBrace$1(code, caret) { + var _1, _entry, _entry$1, _tuple, c, caret, code, i, ok, openingBrace, pairs, stack, top; + if (caret <= 0 || caret > code.length) { + return -1; + } + pairs = $makeMap($Uint8.keyFor, [{ k: 125, v: 123 }, { k: 41, v: 40 }, { k: 93, v: 91 }]); + _tuple = (_entry = $mapIndex(pairs,$Uint8.keyFor(code.charCodeAt(caret))), _entry !== undefined ? [_entry.v, true] : [0, false]); + openingBrace = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + return -1; + } + stack = new sliceType$1([openingBrace]); + i = caret - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + c = code.charCodeAt(i); + _1 = c; + if ((_1 === (125)) || (_1 === (41)) || (_1 === (93))) { + stack = $append(stack, (_entry$1 = $mapIndex(pairs,$Uint8.keyFor(c)), _entry$1 !== undefined ? _entry$1.v : 0)); + } else if ((_1 === (123)) || (_1 === (40)) || (_1 === (91))) { + top = stack.$length - 1 >> 0; + if (((top < 0 || top >= stack.$length) ? ($throwRuntimeError("index out of range"), undefined) : stack.$array[stack.$offset + top]) === c) { + stack = $subslice(stack, 0, top); + } else { + return -1; + } + } + if (stack.$length === 0) { + return i; + } + i = i - (1) >> 0; + } + return -1; + }; + inRange = function inRange$1(value, start, end) { + var end, start, value; + return value >= start && value <= end; + }; + adjustSel = function adjustSel$1(newSel, curSel, limit, adjustment) { + var adjustment, curSel, limit, newSel; + if (curSel.Start > limit) { + newSel.Start = newSel.Start + (adjustment) >> 0; + } + if (curSel.End > limit) { + newSel.End = newSel.End + (adjustment) >> 0; + } + }; + write = function write$1(sb, s) { + var _tuple, s, sb; + _tuple = sb.WriteString(s); + }; + findEndOfLineAfter = function findEndOfLineAfter$1(start, code) { + var code, index, start; + index = strings.IndexByte($substring(code, start), 10); + if (index < 0) { + return code.length; + } + return (index + start >> 0) + 1 >> 0; + }; + findStartOfLastLine = function findStartOfLastLine$1(code) { + var code, index; + index = strings.LastIndexByte(code, 10); + if (index < 0) { + return 0; + } + return index + 1 >> 0; + }; + trimLeftSpace = function trimLeftSpace$1(s) { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = strings.TrimLeftFunc(s, unicode.IsSpace); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: trimLeftSpace$1, $c: true, $r, $24r, _r, s, $s};return $f; + }; + isBlankLine = function isBlankLine$1(s) { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = trimLeftSpace(s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r === ""; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isBlankLine$1, $c: true, $r, $24r, _r, s, $s};return $f; + }; + Selection.methods = [{prop: "IsCaret", name: "IsCaret", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$4.methods = [{prop: "handleKeyDown", name: "handleKeyDown", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([$String, $Bool, $Bool], [$Bool], false)}, {prop: "handleSpace", name: "handleSpace", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([$Bool, $Bool], [$Bool], false)}, {prop: "handleTab", name: "handleTab", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([$Bool, $Bool], [$Bool], false)}, {prop: "addIndents", name: "addIndents", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([], [$Bool], false)}, {prop: "removeIndents", name: "removeIndents", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([], [$Bool], false)}, {prop: "handleMultilineComment", name: "handleMultilineComment", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([$Bool, $Bool], [$Bool], false)}, {prop: "handleNewline", name: "handleNewline", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([$Bool, $Bool], [$Bool], false)}, {prop: "handleSave", name: "handleSave", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([$Bool, $Bool], [$Bool], false)}, {prop: "handleEscape", name: "handleEscape", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([], [$Bool], false)}, {prop: "handleUndo", name: "handleUndo", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([$Bool, $Bool], [$Bool], false)}, {prop: "handleRedo", name: "handleRedo", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([$Bool, $Bool], [$Bool], false)}, {prop: "handleCommentToggle", name: "handleCommentToggle", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([$Bool, $Bool], [$Bool], false)}, {prop: "addCommenting", name: "addCommenting", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([Selection], [], false)}, {prop: "removeCommenting", name: "removeCommenting", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([Selection], [], false)}, {prop: "getSelectedLines", name: "getSelectedLines", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([], [Selection], false)}, {prop: "foreachLine", name: "foreachLine", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([Selection, funcType$1], [$Bool], false)}, {prop: "insertPair", name: "insertPair", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([$Bool, $String, $String], [$Bool], false)}, {prop: "insertAtSelection", name: "insertAtSelection", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([$String, $String, $Bool], [], false)}, {prop: "indentAt", name: "indentAt", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/editor", typ: $funcType([$Int], [$String], false)}]; + CodeBoxWrapper.init([{prop: "Code", name: "Code", pkg: "", typ: $funcType([], [$String], false)}, {prop: "EmitEvent", name: "EmitEvent", pkg: "", typ: $funcType([$String], [], false)}, {prop: "GetSelection", name: "GetSelection", pkg: "", typ: $funcType([], [Selection], false)}, {prop: "SetCode", name: "SetCode", pkg: "", typ: $funcType([Selection, $String], [], false)}]); + Selection.init("", [{prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "End", name: "End", embedded: false, exported: true, typ: $Int, tag: ""}]); + codeEditor.init("", [{prop: "CodeBoxWrapper", name: "CodeBoxWrapper", embedded: true, exported: true, typ: CodeBoxWrapper, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = strings.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["embed"] = (function() { + var $pkg = {}, $init, errors, io, fs, time, FS, file, openFile, openDir, dotFile, buildFS, split, trimSlash, sortSearch; + errors = $packages["errors"]; + io = $packages["io"]; + fs = $packages["io/fs"]; + time = $packages["time"]; + FS = $newType(0, $kindStruct, "embed.FS", true, "embed", true, function(files_) { + this.$val = this; + if (arguments.length === 0) { + this.files = ptrType.nil; + return; + } + this.files = files_; + }); + file = $newType(0, $kindStruct, "embed.file", true, "embed", false, function(name_, data_, hash_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.data = ""; + this.hash = arrayType.zero(); + return; + } + this.name = name_; + this.data = data_; + this.hash = hash_; + }); + openFile = $newType(0, $kindStruct, "embed.openFile", true, "embed", false, function(f_, offset_) { + this.$val = this; + if (arguments.length === 0) { + this.f = ptrType$1.nil; + this.offset = new $Int64(0, 0); + return; + } + this.f = f_; + this.offset = offset_; + }); + openDir = $newType(0, $kindStruct, "embed.openDir", true, "embed", false, function(f_, files_, offset_) { + this.$val = this; + if (arguments.length === 0) { + this.f = ptrType$1.nil; + this.files = sliceType.nil; + this.offset = 0; + return; + } + this.f = f_; + this.files = files_; + this.offset = offset_; + }); + $pkg.FS = FS; + $pkg.file = file; + $pkg.openFile = openFile; + $pkg.openDir = openDir; + $pkg.$finishSetup = function() { + buildFS = function buildFS$1(list) { + var f, files, files$24ptr, i, list, n; + f = new FS.ptr(ptrType.nil); + n = list.$length; + files = $makeSlice(sliceType, n); + i = 0; + while (true) { + if (!(i < n)) { break; } + ((i < 0 || i >= files.$length) ? ($throwRuntimeError("index out of range"), undefined) : files.$array[files.$offset + i]).name = ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i]).name; + ((i < 0 || i >= files.$length) ? ($throwRuntimeError("index out of range"), undefined) : files.$array[files.$offset + i]).data = ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i]).data; + arrayType.copy(((i < 0 || i >= files.$length) ? ($throwRuntimeError("index out of range"), undefined) : files.$array[files.$offset + i]).hash, ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i]).hash); + i = i + (1) >> 0; + } + f.files = (files$24ptr || (files$24ptr = new ptrType(function() { return files; }, function($v) { files = $v; }))); + return f; + }; + split = function split$1(name) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, dir, elem, i, isDir, name; + dir = ""; + elem = ""; + isDir = false; + if (name.charCodeAt((name.length - 1 >> 0)) === 47) { + isDir = true; + name = $substring(name, 0, (name.length - 1 >> 0)); + } + i = name.length - 1 >> 0; + while (true) { + if (!(i >= 0 && !((name.charCodeAt(i) === 47)))) { break; } + i = i - (1) >> 0; + } + if (i < 0) { + _tmp = "."; + _tmp$1 = name; + _tmp$2 = isDir; + dir = _tmp; + elem = _tmp$1; + isDir = _tmp$2; + return [dir, elem, isDir]; + } + _tmp$3 = $substring(name, 0, i); + _tmp$4 = $substring(name, (i + 1 >> 0)); + _tmp$5 = isDir; + dir = _tmp$3; + elem = _tmp$4; + isDir = _tmp$5; + return [dir, elem, isDir]; + }; + trimSlash = function trimSlash$1(name) { + var name; + if (name.length > 0 && (name.charCodeAt((name.length - 1 >> 0)) === 47)) { + return $substring(name, 0, (name.length - 1 >> 0)); + } + return name; + }; + $ptrType(file).prototype.Name = function Name() { + var _tuple, elem, f; + f = this; + _tuple = split(f.name); + elem = _tuple[1]; + return elem; + }; + $ptrType(file).prototype.Size = function Size() { + var f; + f = this; + return (new $Int64(0, f.data.length)); + }; + $ptrType(file).prototype.ModTime = function ModTime() { + var f; + f = this; + return new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$3.nil); + }; + $ptrType(file).prototype.IsDir = function IsDir() { + var _tuple, f, isDir; + f = this; + _tuple = split(f.name); + isDir = _tuple[2]; + return isDir; + }; + $ptrType(file).prototype.Sys = function Sys() { + var f; + f = this; + return $ifaceNil; + }; + $ptrType(file).prototype.Type = function Type() { + var f; + f = this; + return new fs.FileMode(f.Mode()).Type(); + }; + $ptrType(file).prototype.Info = function Info() { + var f; + f = this; + return [f, $ifaceNil]; + }; + $ptrType(file).prototype.Mode = function Mode() { + var f; + f = this; + if (f.IsDir()) { + return 2147484013; + } + return 292; + }; + $ptrType(FS).prototype.lookup = function lookup(name) { + var {_r, _tuple, dir, elem, f, files, i, name, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + dir = [dir]; + elem = [elem]; + files = [files]; + f = this; + if (!fs.ValidPath(name)) { + $s = -1; return ptrType$1.nil; + } + if (name === ".") { + $s = -1; return dotFile; + } + if (f.files === ptrType.nil) { + $s = -1; return ptrType$1.nil; + } + _tuple = split(name); + dir[0] = _tuple[0]; + elem[0] = _tuple[1]; + files[0] = f.files.$get(); + _r = sortSearch(files[0].$length, (function(dir, elem, files) { return function FS·lookup·func1(i) { + var _tuple$1, i, idir, ielem; + _tuple$1 = split(((i < 0 || i >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : files[0].$array[files[0].$offset + i]).name); + idir = _tuple$1[0]; + ielem = _tuple$1[1]; + return idir > dir[0] || idir === dir[0] && ielem >= elem[0]; + }; })(dir, elem, files)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + if (i < files[0].$length && trimSlash(((i < 0 || i >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : files[0].$array[files[0].$offset + i]).name) === name) { + $s = -1; return ((i < 0 || i >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : files[0].$array[files[0].$offset + i]); + } + $s = -1; return ptrType$1.nil; + /* */ } return; } var $f = {$blk: lookup, $c: true, $r, _r, _tuple, dir, elem, f, files, i, name, $s};return $f; + }; + FS.prototype.lookup = function(...$args) { return this.$val.lookup(...$args); }; + $ptrType(FS).prototype.readDir = function readDir(dir) { + var {_r, _r$1, dir, f, files, i, j, $s, $r, $c} = $restore(this, {dir}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + dir = [dir]; + files = [files]; + f = this; + if (f.files === ptrType.nil) { + $s = -1; return sliceType.nil; + } + files[0] = f.files.$get(); + _r = sortSearch(files[0].$length, (function(dir, files) { return function FS·readDir·func1(i) { + var _tuple, i, idir; + _tuple = split(((i < 0 || i >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : files[0].$array[files[0].$offset + i]).name); + idir = _tuple[0]; + return idir >= dir[0]; + }; })(dir, files)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + _r$1 = sortSearch(files[0].$length, (function(dir, files) { return function FS·readDir·func2(j) { + var _tuple, j, jdir; + _tuple = split(((j < 0 || j >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : files[0].$array[files[0].$offset + j]).name); + jdir = _tuple[0]; + return jdir > dir[0]; + }; })(dir, files)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + j = _r$1; + $s = -1; return $subslice(files[0], i, j); + /* */ } return; } var $f = {$blk: readDir, $c: true, $r, _r, _r$1, dir, f, files, i, j, $s};return $f; + }; + FS.prototype.readDir = function(...$args) { return this.$val.readDir(...$args); }; + $ptrType(FS).prototype.Open = function Open(name) { + var {$24r, _r, _r$1, f, file$1, name, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + _r = $clone(f, FS).lookup(name); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + file$1 = _r; + if (file$1 === ptrType$1.nil) { + $s = -1; return [$ifaceNil, new fs.PathError.ptr("open", name, fs.ErrNotExist)]; + } + /* */ if (file$1.IsDir()) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (file$1.IsDir()) { */ case 2: + _r$1 = $clone(f, FS).readDir(name); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = [new openDir.ptr(file$1, _r$1, 0), $ifaceNil]; + $s = 5; case 5: return $24r; + /* } */ case 3: + $s = -1; return [new openFile.ptr(file$1, new $Int64(0, 0)), $ifaceNil]; + /* */ } return; } var $f = {$blk: Open, $c: true, $r, $24r, _r, _r$1, f, file$1, name, $s};return $f; + }; + FS.prototype.Open = function(...$args) { return this.$val.Open(...$args); }; + $ptrType(FS).prototype.ReadDir = function ReadDir(name) { + var {_i, _r, _ref, _tuple, _tuple$1, dir, err, f, file$1, i, list, name, ok, x$2, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + _r = $clone(f, FS).Open(name); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + file$1 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType$1.nil, err]; + } + _tuple$1 = $assertType(file$1, ptrType$4, true); + dir = _tuple$1[0]; + ok = _tuple$1[1]; + if (!ok) { + $s = -1; return [sliceType$1.nil, new fs.PathError.ptr("read", name, errors.New("not a directory"))]; + } + list = $makeSlice(sliceType$1, dir.files.$length); + _ref = list; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = (x$2 = dir.files, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i]))); + _i++; + } + $s = -1; return [list, $ifaceNil]; + /* */ } return; } var $f = {$blk: ReadDir, $c: true, $r, _i, _r, _ref, _tuple, _tuple$1, dir, err, f, file$1, i, list, name, ok, x$2, $s};return $f; + }; + FS.prototype.ReadDir = function(...$args) { return this.$val.ReadDir(...$args); }; + $ptrType(FS).prototype.ReadFile = function ReadFile(name) { + var {_r, _tuple, _tuple$1, err, f, file$1, name, ofile, ok, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + _r = $clone(f, FS).Open(name); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + file$1 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType$2.nil, err]; + } + _tuple$1 = $assertType(file$1, ptrType$2, true); + ofile = _tuple$1[0]; + ok = _tuple$1[1]; + if (!ok) { + $s = -1; return [sliceType$2.nil, new fs.PathError.ptr("read", name, errors.New("is a directory"))]; + } + $s = -1; return [(new sliceType$2($stringToBytes(ofile.f.data))), $ifaceNil]; + /* */ } return; } var $f = {$blk: ReadFile, $c: true, $r, _r, _tuple, _tuple$1, err, f, file$1, name, ofile, ok, $s};return $f; + }; + FS.prototype.ReadFile = function(...$args) { return this.$val.ReadFile(...$args); }; + $ptrType(openFile).prototype.Close = function Close() { + var f; + f = this; + return $ifaceNil; + }; + $ptrType(openFile).prototype.Stat = function Stat() { + var f; + f = this; + return [f.f, $ifaceNil]; + }; + $ptrType(openFile).prototype.Read = function Read(b) { + var b, f, n, x$2, x$3, x$4, x$5, x$6; + f = this; + if ((x$2 = f.offset, x$3 = (new $Int64(0, f.f.data.length)), (x$2.$high > x$3.$high || (x$2.$high === x$3.$high && x$2.$low >= x$3.$low)))) { + return [0, io.EOF]; + } + if ((x$4 = f.offset, (x$4.$high < 0 || (x$4.$high === 0 && x$4.$low < 0)))) { + return [0, new fs.PathError.ptr("read", f.f.name, fs.ErrInvalid)]; + } + n = $copyString(b, $substring(f.f.data, $flatten64(f.offset))); + f.offset = (x$5 = f.offset, x$6 = (new $Int64(0, n)), new $Int64(x$5.$high + x$6.$high, x$5.$low + x$6.$low)); + return [n, $ifaceNil]; + }; + $ptrType(openFile).prototype.Seek = function Seek(offset, whence) { + var _1, f, offset, whence, x$2, x$3, x$4; + f = this; + _1 = whence; + if (_1 === (0)) { + } else if (_1 === (1)) { + offset = (x$2 = f.offset, new $Int64(offset.$high + x$2.$high, offset.$low + x$2.$low)); + } else if (_1 === (2)) { + offset = (x$3 = (new $Int64(0, f.f.data.length)), new $Int64(offset.$high + x$3.$high, offset.$low + x$3.$low)); + } + if ((offset.$high < 0 || (offset.$high === 0 && offset.$low < 0)) || (x$4 = (new $Int64(0, f.f.data.length)), (offset.$high > x$4.$high || (offset.$high === x$4.$high && offset.$low > x$4.$low)))) { + return [new $Int64(0, 0), new fs.PathError.ptr("seek", f.f.name, fs.ErrInvalid)]; + } + f.offset = offset; + return [offset, $ifaceNil]; + }; + $ptrType(openDir).prototype.Close = function Close$1() { + var d; + d = this; + return $ifaceNil; + }; + $ptrType(openDir).prototype.Stat = function Stat$1() { + var d; + d = this; + return [d.f, $ifaceNil]; + }; + $ptrType(openDir).prototype.Read = function Read$1(param) { + var d, param; + d = this; + return [0, new fs.PathError.ptr("read", d.f.name, errors.New("is a directory"))]; + }; + $ptrType(openDir).prototype.ReadDir = function ReadDir$1(count) { + var _i, _ref, count, d, i, list, n, x$2, x$3; + d = this; + n = d.files.$length - d.offset >> 0; + if (n === 0) { + if (count <= 0) { + return [sliceType$1.nil, $ifaceNil]; + } + return [sliceType$1.nil, io.EOF]; + } + if (count > 0 && n > count) { + n = count; + } + list = $makeSlice(sliceType$1, n); + _ref = list; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = (x$2 = d.files, x$3 = d.offset + i >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))); + _i++; + } + d.offset = d.offset + (n) >> 0; + return [list, $ifaceNil]; + }; + sortSearch = function sortSearch$1(n, f) { + var {_r, _tmp, _tmp$1, f, h, i, j, n, $s, $r, $c} = $restore(this, {n, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tmp = 0; + _tmp$1 = n; + i = _tmp; + j = _tmp$1; + /* while (true) { */ case 1: + /* if (!(i < j)) { break; } */ if(!(i < j)) { $s = 2; continue; } + h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + _r = f(h); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + i = h + 1 >> 0; + $s = 5; continue; + /* } else { */ case 4: + j = h; + /* } */ case 5: + $s = 1; continue; + case 2: + $s = -1; return i; + /* */ } return; } var $f = {$blk: sortSearch$1, $c: true, $r, _r, _tmp, _tmp$1, f, h, i, j, n, $s};return $f; + }; + FS.methods = [{prop: "lookup", name: "lookup", pkg: "embed", typ: $funcType([$String], [ptrType$1], false)}, {prop: "readDir", name: "readDir", pkg: "embed", typ: $funcType([$String], [sliceType], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([$String], [fs.File, $error], false)}, {prop: "ReadDir", name: "ReadDir", pkg: "", typ: $funcType([$String], [sliceType$1, $error], false)}, {prop: "ReadFile", name: "ReadFile", pkg: "", typ: $funcType([$String], [sliceType$2, $error], false)}]; + ptrType$1.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [fs.FileMode], false)}]; + ptrType$2.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}]; + ptrType$4.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadDir", name: "ReadDir", pkg: "", typ: $funcType([$Int], [sliceType$1, $error], false)}]; + FS.init("embed", [{prop: "files", name: "files", embedded: false, exported: false, typ: ptrType, tag: ""}]); + file.init("embed", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "data", name: "data", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: arrayType, tag: ""}]); + openFile.init("embed", [{prop: "f", name: "f", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int64, tag: ""}]); + openDir.init("embed", [{prop: "f", name: "f", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "files", name: "files", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}]); + $linknames["embed.buildFS"] = buildFS; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + dotFile = new file.ptr("./", "", arrayType.zero()); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["honnef.co/go/js/util"] = (function() { + var $pkg = {}, $init, js, EventTarget; + js = $packages["github.com/gopherjs/gopherjs/js"]; + EventTarget = $newType(0, $kindStruct, "util.EventTarget", true, "honnef.co/go/js/util", true, function(Object_) { + this.$val = this; + if (arguments.length === 0) { + this.Object = null; + return; + } + this.Object = Object_; + }); + $pkg.EventTarget = EventTarget; + $pkg.$finishSetup = function() { + $ptrType(EventTarget).prototype.AddEventListener = function AddEventListener(typ, useCapture, listener) { + var listener, t, typ, useCapture; + t = this; + t.Object.addEventListener($externalize(typ, $String), $externalize(listener, funcType), $externalize(useCapture, $Bool)); + }; + EventTarget.prototype.AddEventListener = function(...$args) { return this.$val.AddEventListener(...$args); }; + $ptrType(EventTarget).prototype.RemoveEventListener = function RemoveEventListener(typ, useCapture, listener) { + var listener, t, typ, useCapture; + t = this; + t.Object.removeEventListener($externalize(typ, $String), $externalize(listener, funcType), $externalize(useCapture, $Bool)); + }; + EventTarget.prototype.RemoveEventListener = function(...$args) { return this.$val.RemoveEventListener(...$args); }; + EventTarget.methods = [{prop: "AddEventListener", name: "AddEventListener", pkg: "", typ: $funcType([$String, $Bool, funcType], [], false)}, {prop: "RemoveEventListener", name: "RemoveEventListener", pkg: "", typ: $funcType([$String, $Bool, funcType], [], false)}]; + EventTarget.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["honnef.co/go/js/xhr"] = (function() { + var $pkg = {}, $init, errors, js, util, Request, Upload, NewRequest; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + util = $packages["honnef.co/go/js/util"]; + Request = $newType(0, $kindStruct, "xhr.Request", true, "honnef.co/go/js/xhr", true, function(Object_, EventTarget_, ReadyState_, Response_, ResponseText_, ResponseType_, ResponseXML_, Status_, StatusText_, Timeout_, WithCredentials_, ch_) { + this.$val = this; + if (arguments.length === 0) { + this.Object = null; + this.EventTarget = new util.EventTarget.ptr(null); + this.ReadyState = 0; + this.Response = null; + this.ResponseText = ""; + this.ResponseType = ""; + this.ResponseXML = null; + this.Status = 0; + this.StatusText = ""; + this.Timeout = 0; + this.WithCredentials = false; + this.ch = $chanNil; + return; + } + this.Object = Object_; + this.EventTarget = EventTarget_; + this.ReadyState = ReadyState_; + this.Response = Response_; + this.ResponseText = ResponseText_; + this.ResponseType = ResponseType_; + this.ResponseXML = ResponseXML_; + this.Status = Status_; + this.StatusText = StatusText_; + this.Timeout = Timeout_; + this.WithCredentials = WithCredentials_; + this.ch = ch_; + }); + Upload = $newType(0, $kindStruct, "xhr.Upload", true, "honnef.co/go/js/xhr", true, function(Object_, EventTarget_) { + this.$val = this; + if (arguments.length === 0) { + this.Object = null; + this.EventTarget = new util.EventTarget.ptr(null); + return; + } + this.Object = Object_; + this.EventTarget = EventTarget_; + }); + $pkg.Request = Request; + $pkg.Upload = Upload; + $pkg.$finishSetup = function() { + $ptrType(Request).prototype.Upload = function Upload$1() { + var o, r; + r = this; + o = r.Object.upload; + return new Upload.ptr(o, $clone(new util.EventTarget.ptr(o), util.EventTarget)); + }; + NewRequest = function NewRequest$1(method, url) { + var method, o, r, url; + o = new ($global.XMLHttpRequest)(); + r = new Request.ptr(o, $clone(new util.EventTarget.ptr(o), util.EventTarget), 0, null, "", "", null, 0, "", 0, false, $chanNil); + r.Object.open($externalize(method, $String), $externalize(url, $String), $externalize(true, $Bool)); + return r; + }; + $pkg.NewRequest = NewRequest; + $ptrType(Request).prototype.ResponseHeaders = function ResponseHeaders() { + var r; + r = this; + return $internalize(r.Object.getAllResponseHeaders(), $String); + }; + $ptrType(Request).prototype.ResponseHeader = function ResponseHeader(name) { + var name, r, value; + r = this; + value = r.Object.getResponseHeader($externalize(name, $String)); + if (value === null) { + return ""; + } + return $internalize(value, $String); + }; + $ptrType(Request).prototype.Abort = function Abort() { + var _selection, r; + r = this; + if (r.ch === $chanNil) { + return; + } + r.Object.abort(); + _selection = $select([[r.ch, $pkg.ErrAborted], []]); + if (_selection[0] === 0) { + } else if (_selection[0] === 1) { + } + }; + $ptrType(Request).prototype.OverrideMimeType = function OverrideMimeType(mimetype) { + var mimetype, r; + r = this; + r.Object.overrideMimeType($externalize(mimetype, $String)); + }; + $ptrType(Request).prototype.Send = function Send$1(data) { + var {_r, data, r, val, $s, $r, $c} = $restore(this, {data}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = [r]; + r[0] = this; + if (!(r[0].ch === $chanNil)) { + $panic(new $String("must not use a Request for multiple requests")); + } + r[0].ch = new $Chan($error, 1); + $clone(r[0].EventTarget, util.EventTarget).AddEventListener("load", false, (function(r) { return function Request·Send·func1(param) { + var param; + $go((function(r) { return function Request·Send·func1·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = $send(r[0].ch, $ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Request·Send·func1·func1, $c: true, $r, $s};return $f; + }; })(r), []); + }; })(r)); + $clone(r[0].EventTarget, util.EventTarget).AddEventListener("error", false, (function(r) { return function Request·Send·func2(o) { + var o; + $go((function(r) { return function Request·Send·func2·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = $send(r[0].ch, $pkg.ErrFailure); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Request·Send·func2·func1, $c: true, $r, $s};return $f; + }; })(r), []); + }; })(r)); + $clone(r[0].EventTarget, util.EventTarget).AddEventListener("timeout", false, (function(r) { return function Request·Send·func3(param) { + var param; + $go((function(r) { return function Request·Send·func3·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = $send(r[0].ch, $pkg.ErrTimeout); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Request·Send·func3·func1, $c: true, $r, $s};return $f; + }; })(r), []); + }; })(r)); + r[0].Object.send($externalize(data, $emptyInterface)); + _r = $recv(r[0].ch); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + val = _r[0]; + $s = -1; return val; + /* */ } return; } var $f = {$blk: Send$1, $c: true, $r, _r, data, r, val, $s};return $f; + }; + $ptrType(Request).prototype.SetRequestHeader = function SetRequestHeader(header, value) { + var header, r, value; + r = this; + r.Object.setRequestHeader($externalize(header, $String), $externalize(value, $String)); + }; + ptrType$1.methods = [{prop: "Upload", name: "Upload", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "ResponseHeaders", name: "ResponseHeaders", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ResponseHeader", name: "ResponseHeader", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Abort", name: "Abort", pkg: "", typ: $funcType([], [], false)}, {prop: "OverrideMimeType", name: "OverrideMimeType", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "SetRequestHeader", name: "SetRequestHeader", pkg: "", typ: $funcType([$String, $String], [], false)}]; + Request.init("honnef.co/go/js/xhr", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "EventTarget", name: "EventTarget", embedded: true, exported: true, typ: util.EventTarget, tag: ""}, {prop: "ReadyState", name: "ReadyState", embedded: false, exported: true, typ: $Int, tag: "js:\"readyState\""}, {prop: "Response", name: "Response", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"response\""}, {prop: "ResponseText", name: "ResponseText", embedded: false, exported: true, typ: $String, tag: "js:\"responseText\""}, {prop: "ResponseType", name: "ResponseType", embedded: false, exported: true, typ: $String, tag: "js:\"responseType\""}, {prop: "ResponseXML", name: "ResponseXML", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"responseXML\""}, {prop: "Status", name: "Status", embedded: false, exported: true, typ: $Int, tag: "js:\"status\""}, {prop: "StatusText", name: "StatusText", embedded: false, exported: true, typ: $String, tag: "js:\"statusText\""}, {prop: "Timeout", name: "Timeout", embedded: false, exported: true, typ: $Int, tag: "js:\"timeout\""}, {prop: "WithCredentials", name: "WithCredentials", embedded: false, exported: true, typ: $Bool, tag: "js:\"withCredentials\""}, {prop: "ch", name: "ch", embedded: false, exported: false, typ: chanType, tag: ""}]); + Upload.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "EventTarget", name: "EventTarget", embedded: true, exported: true, typ: util.EventTarget, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = util.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrAborted = errors.New("request aborted"); + $pkg.ErrTimeout = errors.New("request timed out"); + $pkg.ErrFailure = errors.New("send failed"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs.github.io/playground/internal/snippets"] = (function() { + var $pkg = {}, $init, embed, fmt, common, js, xhr, strings, storeImp, predefined, NewStore; + embed = $packages["embed"]; + fmt = $packages["fmt"]; + common = $packages["github.com/gopherjs/gopherjs.github.io/playground/internal/common"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + xhr = $packages["honnef.co/go/js/xhr"]; + strings = $packages["strings"]; + storeImp = $newType(0, $kindStruct, "snippets.storeImp", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/snippets", false, function() { this.$val = this; }); + $pkg.storeImp = storeImp; + $pkg.$finishSetup = function() { + NewStore = function NewStore$1() { + var x; + return (x = new storeImp.ptr(), new x.constructor.elem(x)); + }; + $pkg.NewStore = NewStore; + $ptrType(storeImp).prototype.Read = function Read(hash) { + var {$24r, _entry, _r, _tuple, hash, ok, predef, s, $s, $r, $c} = $restore(this, {hash}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (strings.HasPrefix(hash, "#/")) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (strings.HasPrefix(hash, "#/")) { */ case 1: + _r = $clone(s, storeImp).fetchStoredCode($substring(hash, 2)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + if (strings.HasPrefix(hash, "#")) { + _tuple = (_entry = $mapIndex(predefined,$String.keyFor($substring(hash, 1))), _entry !== undefined ? [_entry.v, true] : ["", false]); + predef = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return [predef, $ifaceNil]; + } + } + $s = -1; return [$pkg.DefaultCode, $ifaceNil]; + /* */ } return; } var $f = {$blk: Read, $c: true, $r, $24r, _entry, _r, _tuple, hash, ok, predef, s, $s};return $f; + }; + storeImp.prototype.Read = function(...$args) { return this.$val.Read(...$args); }; + $ptrType(storeImp).prototype.fetchStoredCode = function fetchStoredCode(id) { + var {$24r, _r, _r$1, data, err, id, req, s, $s, $r, $c} = $restore(this, {id}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + req = xhr.NewRequest("GET", "https://snippets.gopherjs.org/p/" + id); + req.Object.responseType = $externalize("arraybuffer", $String); + _r = req.Send($ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + /* */ if (!($interfaceIsEqual(err, $ifaceNil)) || !((($parseInt(req.Object.status) >> 0) === 200))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil)) || !((($parseInt(req.Object.status) >> 0) === 200))) { */ case 2: + _r$1 = fmt.Errorf("failed to load snippet %q: [%d]%w", new sliceType([new $String(id), new $Int(($parseInt(req.Object.status) >> 0)), err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = [$pkg.DefaultCode, _r$1]; + $s = 5; case 5: return $24r; + /* } */ case 3: + data = $assertType($internalize(new ($global.Uint8Array)(req.Object.response), $emptyInterface), sliceType$1); + $s = -1; return [($bytesToString(data)), $ifaceNil]; + /* */ } return; } var $f = {$blk: fetchStoredCode, $c: true, $r, $24r, _r, _r$1, data, err, id, req, s, $s};return $f; + }; + storeImp.prototype.fetchStoredCode = function(...$args) { return this.$val.fetchStoredCode(...$args); }; + $ptrType(storeImp).prototype.Write = function Write(code) { + var {$24r, _r, _r$1, code, err, id, req, s, $s, $r, $c} = $restore(this, {code}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + req = xhr.NewRequest("POST", "https://snippets.gopherjs.org/share"); + req.Object.responseType = $externalize("arraybuffer", $String); + _r = req.Send((new sliceType$1($stringToBytes(code)))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + /* */ if (!($interfaceIsEqual(err, $ifaceNil)) || !((($parseInt(req.Object.status) >> 0) === 200))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil)) || !((($parseInt(req.Object.status) >> 0) === 200))) { */ case 2: + _r$1 = fmt.Errorf("failed to share snippet: [%d]%w", new sliceType([new $Int(($parseInt(req.Object.status) >> 0)), err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = ["", _r$1]; + $s = 5; case 5: return $24r; + /* } */ case 3: + id = $assertType($internalize(new ($global.Uint8Array)(req.Object.response), $emptyInterface), sliceType$1); + $s = -1; return ["#/" + ($bytesToString(id)), $ifaceNil]; + /* */ } return; } var $f = {$blk: Write, $c: true, $r, $24r, _r, _r$1, code, err, id, req, s, $s};return $f; + }; + storeImp.prototype.Write = function(...$args) { return this.$val.Write(...$args); }; + storeImp.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([$String], [$String, $error], false)}, {prop: "fetchStoredCode", name: "fetchStoredCode", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/snippets", typ: $funcType([$String], [$String, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([$String], [$String, $error], false)}]; + storeImp.init("", []); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = embed.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = common.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = xhr.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.DefaultCode = "// You can edit this code!\n// Click here and start typing.\npackage main\n\nimport (\n\t\"fmt\"\n\t\"syscall/js\"\n)\n\nfunc main() {\n\tfmt.Println(\"Hello, playground\")\n\tjs.Global().Call(\"alert\", \"Hello, JavaScript\")\n\tprintln(\"Hello, JS console\")\n}\n"; + predefined = $makeMap($String.keyFor, [{ k: "Hello", v: $pkg.DefaultCode }]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs.github.io/playground/internal/react"] = (function() { + var $pkg = {}, $init, errors, fmt, common, editor, snippets, js, scanner, strconv, strings, playgroundAssistant, outputImpl, codeBoxAssistant, Node, Root, Element, Props, Ref, Func, ToggleBox, toggleBoxComponent, ShareUrlControl, shareUrlComponent, Playground, getPrefersLightTheme, setDataTheme, getLocation, Output, OutputBox, outputBoxComponent, hasNonErrors, outputLine, outputLineComponent, CodeBox, codeBoxComponent, getLineNumbers, reactDom, react, CreateRoot, As = [], AsFunc, AsSetter, CreateElement, StrictMode, Fragment, Div, Pre, TextArea, Span, Button, UseState = [], UseRef, UseEffect, UseMemo = [], BannerTitle, bannerTitleComponent; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + common = $packages["github.com/gopherjs/gopherjs.github.io/playground/internal/common"]; + editor = $packages["github.com/gopherjs/gopherjs.github.io/playground/internal/editor"]; + snippets = $packages["github.com/gopherjs/gopherjs.github.io/playground/internal/snippets"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + scanner = $packages["go/scanner"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + playgroundAssistant = $newType(0, $kindStruct, "react.playgroundAssistant", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/react", false, function(snippetStore_, code_, setCode_, setShareUrl_, setOutput_, fmtImports_) { + this.$val = this; + if (arguments.length === 0) { + this.snippetStore = $ifaceNil; + this.code = ""; + this.setCode = $throwNilPointerError; + this.setShareUrl = $throwNilPointerError; + this.setOutput = $throwNilPointerError; + this.fmtImports = false; + return; + } + this.snippetStore = snippetStore_; + this.code = code_; + this.setCode = setCode_; + this.setShareUrl = setShareUrl_; + this.setOutput = setOutput_; + this.fmtImports = fmtImports_; + }); + outputImpl = $newType(0, $kindStruct, "react.outputImpl", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/react", false, function(setOutput_) { + this.$val = this; + if (arguments.length === 0) { + this.setOutput = $throwNilPointerError; + return; + } + this.setOutput = setOutput_; + }); + codeBoxAssistant = $newType(0, $kindStruct, "react.codeBoxAssistant", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/react", false, function(curCode_, setCode_, onSave_, onEscape_, textAreaRef_, lineNumsRef_) { + this.$val = this; + if (arguments.length === 0) { + this.curCode = ""; + this.setCode = $throwNilPointerError; + this.onSave = $throwNilPointerError; + this.onEscape = $throwNilPointerError; + this.textAreaRef = ptrType$3.nil; + this.lineNumsRef = ptrType$3.nil; + return; + } + this.curCode = curCode_; + this.setCode = setCode_; + this.onSave = onSave_; + this.onEscape = onEscape_; + this.textAreaRef = textAreaRef_; + this.lineNumsRef = lineNumsRef_; + }); + Node = $newType(8, $kindInterface, "react.Node", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/react", true, null); + Root = $newType(0, $kindStruct, "react.Root", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/react", true, function(Object_) { + this.$val = this; + if (arguments.length === 0) { + this.Object = null; + return; + } + this.Object = Object_; + }); + Element = $newType(0, $kindStruct, "react.Element", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/react", true, function(Object_) { + this.$val = this; + if (arguments.length === 0) { + this.Object = null; + return; + } + this.Object = Object_; + }); + Props = $newType(4, $kindMap, "react.Props", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/react", true, null); + Ref = $newType(0, $kindStruct, "react.Ref", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/react", true, function(holder_) { + this.$val = this; + if (arguments.length === 0) { + this.holder = null; + return; + } + this.holder = holder_; + }); + Func = $newType(4, $kindFunc, "react.Func", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/react", true, null); + $pkg.playgroundAssistant = playgroundAssistant; + $pkg.outputImpl = outputImpl; + $pkg.codeBoxAssistant = codeBoxAssistant; + $pkg.Node = Node; + $pkg.Root = Root; + $pkg.Element = Element; + $pkg.Props = Props; + $pkg.Ref = Ref; + $pkg.Func = Func; + $pkg.$finishSetup = function() { + ToggleBox = function ToggleBox$1(id, title, label, checked, setChecked) { + var checked, id, label, setChecked, title; + return CreateElement(new funcType(toggleBoxComponent), new Props($makeMap($String.keyFor, [{ k: "id", v: new $String(id) }, { k: "title", v: new $String(title) }, { k: "label", v: new $String(label) }, { k: "checked", v: new $Bool(checked) }, { k: "setChecked", v: new funcType$1(setChecked) }])), sliceType.nil); + }; + $pkg.ToggleBox = ToggleBox; + toggleBoxComponent = function toggleBoxComponent$1(props) { + var checked, id, label, onChange, props, setChecked, title; + id = As[0 /* string */](props, "id"); + title = As[0 /* string */](props, "title"); + label = As[0 /* string */](props, "label"); + checked = As[1 /* bool */](props, "checked"); + setChecked = AsSetter(props, "setChecked"); + onChange = (function toggleBoxComponent·func1(e) { + var {e, $s, $r, $c} = $restore(this, {e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = setChecked(new $Bool(!!(e.target.checked))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: toggleBoxComponent·func1, $c: true, $r, e, $s};return $f; + }); + return Div($makeMap($String.keyFor, [{ k: "id", v: new $String(id) }, { k: "className", v: new $String("toggle-box-wrapper") }, { k: "title", v: new $String(title) }]), new sliceType([CreateElement(new $String("input"), new Props($makeMap($String.keyFor, [{ k: "id", v: new $String(id + "-checkbox") }, { k: "className", v: new $String("toggle-box-checkbox") }, { k: "type", v: new $String("checkbox") }, { k: "checked", v: new $Bool(checked) }, { k: "onChange", v: new funcType$2(onChange) }])), sliceType.nil), CreateElement(new $String("label"), new Props($makeMap($String.keyFor, [{ k: "id", v: new $String(id + "-toggle") }, { k: "className", v: new $String("toggle-box-toggle") }, { k: "htmlFor", v: new $String(id + "-checkbox") }])), sliceType.nil), new $String(label)])); + }; + ShareUrlControl = function ShareUrlControl$1(shareUrl, onShare) { + var onShare, shareUrl; + return CreateElement(new funcType(shareUrlComponent), new Props($makeMap($String.keyFor, [{ k: "shareUrl", v: new $String(shareUrl) }, { k: "onShare", v: new funcType$3(onShare) }])), sliceType.nil); + }; + $pkg.ShareUrlControl = ShareUrlControl; + shareUrlComponent = function shareUrlComponent$1(props) { + var className, onShare, onShareClick, onShareUrlFocus, props, shareUrl, shareUrlRef; + shareUrl = As[0 /* string */](props, "shareUrl"); + onShare = AsFunc(props, "onShare"); + shareUrlRef = UseRef(); + UseEffect((function shareUrlComponent·func1() { + if (shareUrl.length > 0) { + shareUrlRef.Call("focus", sliceType$1.nil); + } + }), new sliceType$1([new $String(shareUrl), shareUrlRef])); + onShareUrlFocus = (function shareUrlComponent·func2(e) { + var e; + e.target.select(); + }); + onShareClick = (function shareUrlComponent·func3() { + var {_r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = onShare(sliceType$1.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* */ } return; } var $f = {$blk: shareUrlComponent·func3, $c: true, $r, _r, $s};return $f; + }); + className = "share-url-hidden"; + if (shareUrl.length > 0) { + className = "share-url-show"; + } + return Fragment(new sliceType([Button("share-button", "Share", false, onShareClick), CreateElement(new $String("input"), new Props($makeMap($String.keyFor, [{ k: "id", v: new $String("share-url") }, { k: "type", v: new $String("text") }, { k: "className", v: new $String(className) }, { k: "ref", v: shareUrlRef }, { k: "value", v: new $String(shareUrl) }, { k: "readOnly", v: new $Bool(true) }, { k: "onFocus", v: new funcType$2(onShareUrlFocus) }])), sliceType.nil)])); + }; + Playground = function Playground$1() { + var preferslightTheme, snippetsStore, version; + version = "vx.x.x"; + preferslightTheme = getPrefersLightTheme(); + snippetsStore = snippets.NewStore(); + return CreateElement(new funcType$4((function Playground·func1() { + var _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, code, fmtImports, lightTheme, output, pa, setCode, setFmtImports, setLightTheme, setOutput, setShareUrl, shareUrl; + _tuple = UseState[2 /* string */](""); + code = _tuple[0]; + setCode = _tuple[1]; + _tuple$1 = UseState[2 /* string */](""); + shareUrl = _tuple$1[0]; + setShareUrl = _tuple$1[1]; + _tuple$2 = UseState[3 /* []any */](new sliceType$1([])); + output = _tuple$2[0]; + setOutput = _tuple$2[1]; + _tuple$3 = UseState[4 /* bool */](true); + fmtImports = _tuple$3[0]; + setFmtImports = _tuple$3[1]; + _tuple$4 = UseState[4 /* bool */](preferslightTheme); + lightTheme = _tuple$4[0]; + setLightTheme = _tuple$4[1]; + pa = new playgroundAssistant.ptr(snippetsStore, code, setCode, setShareUrl, setOutput, fmtImports); + UseEffect((function Playground·func1·func1() { + setDataTheme(lightTheme); + }), new sliceType$1([new $Bool(lightTheme)])); + UseEffect((function Playground·func1·func2() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = setShareUrl(new $String("")); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + getLocation().hash = $externalize("", $String); + $s = -1; return; + /* */ } return; } var $f = {$blk: Playground·func1·func2, $c: true, $r, $s};return $f; + }), new sliceType$1([new $String(code)])); + UseEffect($methodVal(pa, "initCode"), new sliceType$1([])); + return Fragment(new sliceType([Div($makeMap($String.keyFor, [{ k: "id", v: new $String("banner") }]), new sliceType([BannerTitle(version), Span($makeMap($String.keyFor, [{ k: "id", v: new $String("controls") }]), new sliceType([Button("run-button", "Run", false, $methodVal(pa, "onRunClick")), Button("format-button", "Format", false, $methodVal(pa, "onFormatClick")), ToggleBox("format-imports", "Rewrite imports on Format", "Imports", fmtImports, setFmtImports), ShareUrlControl(shareUrl, $methodVal(pa, "onShareClick")), ToggleBox("color-theme", "Change color-theme", "", lightTheme, setLightTheme)]))])), Div($makeMap($String.keyFor, [{ k: "id", v: new $String("code-output-box") }]), new sliceType([Div($makeMap($String.keyFor, [{ k: "id", v: new $String("code-box-container") }]), new sliceType([CodeBox(code, setCode, $methodVal(pa, "onSaveKeyPress"), $methodVal(pa, "onEscapeCode"))])), OutputBox(output)]))])); + })), $ifaceNil, sliceType.nil); + }; + $pkg.Playground = Playground; + getPrefersLightTheme = function getPrefersLightTheme$1() { + return !!($global.window.matchMedia($externalize("(prefers-color-scheme: light)", $String)).matches); + }; + setDataTheme = function setDataTheme$1(lightTheme) { + var lightTheme, theme; + theme = "dark"; + if (lightTheme) { + theme = "light"; + } + $global.document.documentElement.setAttribute($externalize("data-theme", $String), $externalize(theme, $String)); + }; + getLocation = function getLocation$1() { + return $global.window.top.location; + }; + $ptrType(playgroundAssistant).prototype.initCode = function initCode() { + var {_r, _tuple, code, err, hash, o, pa, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pa = this; + hash = $internalize(getLocation().hash, $String); + _r = pa.snippetStore.Read(hash); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + code = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + o = Output(pa.setOutput); + $r = o.Clear(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = o.AddError(err); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $r = pa.setCode(new $String(code)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: initCode, $c: true, $r, _r, _tuple, code, err, hash, o, pa, $s};return $f; + }; + $ptrType(playgroundAssistant).prototype.onSaveKeyPress = function onSaveKeyPress() { + var pa; + pa = this; + console.log("Save key pressed"); + }; + $ptrType(playgroundAssistant).prototype.onEscapeCode = function onEscapeCode() { + var pa; + pa = this; + console.log("Escape code pressed"); + }; + $ptrType(playgroundAssistant).prototype.onRunClick = function onRunClick() { + var pa; + pa = this; + console.log("Run clicked"); + }; + $ptrType(playgroundAssistant).prototype.onFormatClick = function onFormatClick() { + var pa; + pa = this; + console.log("Format clicked", pa.fmtImports); + }; + $ptrType(playgroundAssistant).prototype.onShareClick = function onShareClick() { + var pa; + pa = this; + console.log("Share URL Clicked"); + }; + Output = function Output$1(setOutput) { + var setOutput; + return new outputImpl.ptr(setOutput); + }; + $pkg.Output = Output; + $ptrType(outputImpl).prototype.Clear = function Clear() { + var {o, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + o = this; + $r = o.setOutput(new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Clear, $c: true, $r, o, $s};return $f; + }; + $ptrType(outputImpl).prototype.AddError = function AddError(err) { + var {err, o, $s, $r, $c} = $restore(this, {err}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + err = [err]; + o = this; + $r = o.setOutput(new funcType$5((function(err) { return function outputImpl·AddError·func1(items) { + var {$24r, _i, _r, _r$1, _ref, _tuple, entry, items, list, ok, $s, $r, $c} = $restore(this, {items}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(err[0], scanner.ErrorList, true); + list = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + _ref = list; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + entry = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = $clone(entry, scanner.Error).Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + items = $append(items, new mapType($makeMap($String.keyFor, [{ k: "type", v: new $String("err") }, { k: "context", v: new $String(_r) }]))); + _i++; + $s = 3; continue; + case 4: + $s = -1; return items; + /* } */ case 2: + _r$1 = err[0].Error(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = $append(items, new mapType($makeMap($String.keyFor, [{ k: "type", v: new $String("err") }, { k: "context", v: new $String(_r$1) }]))); + $s = 7; case 7: return $24r; + /* */ } return; } var $f = {$blk: outputImpl·AddError·func1, $c: true, $r, $24r, _i, _r, _r$1, _ref, _tuple, entry, items, list, ok, $s};return $f; + }; })(err))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: AddError, $c: true, $r, err, o, $s};return $f; + }; + $ptrType(outputImpl).prototype.AddOutput = function AddOutput(out) { + var {o, out, $s, $r, $c} = $restore(this, {out}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = [out]; + o = this; + $r = o.setOutput(new funcType$5((function(out) { return function outputImpl·AddOutput·func1(items) { + var _entry, _entry$1, _key, items, lastItem, maxItem; + maxItem = items.$length - 1 >> 0; + if (maxItem >= 0) { + lastItem = $assertType(((maxItem < 0 || maxItem >= items.$length) ? ($throwRuntimeError("index out of range"), undefined) : items.$array[items.$offset + maxItem]), mapType); + if ($interfaceIsEqual((_entry = $mapIndex(lastItem,$String.keyFor("type")), _entry !== undefined ? _entry.v : $ifaceNil), new $String("text"))) { + _key = "context"; (lastItem || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: new $String($assertType((_entry$1 = $mapIndex(lastItem,$String.keyFor("context")), _entry$1 !== undefined ? _entry$1.v : $ifaceNil), $String) + out[0]) }); + return items; + } + } + return $append(items, new mapType($makeMap($String.keyFor, [{ k: "type", v: new $String("text") }, { k: "context", v: new $String(out[0]) }]))); + }; })(out))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: AddOutput, $c: true, $r, o, out, $s};return $f; + }; + OutputBox = function OutputBox$1(output) { + var output; + return CreateElement(new funcType(outputBoxComponent), new Props($makeMap($String.keyFor, [{ k: "output", v: output }])), sliceType.nil); + }; + $pkg.OutputBox = OutputBox; + outputBoxComponent = function outputBoxComponent$1(props) { + var _entry, _entry$1, _i, _ref, children, i, item, itemMap, output, outputBoxRef, props; + output = As[5 /* []any */](props, "output"); + outputBoxRef = UseRef(); + UseEffect((function outputBoxComponent·func1() { + var outputBox, scrollTop; + outputBox = outputBoxRef.Current(); + scrollTop = 0; + if (hasNonErrors(output)) { + scrollTop = $parseInt(outputBox.scrollHeight) >> 0; + } + outputBox.scrollTop = scrollTop; + }), new sliceType$1([output])); + children = $makeSlice(sliceType, 0, output.$length); + _ref = output; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + item = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + itemMap = $assertType(item, mapType); + children = $append(children, outputLine(i, $interfaceIsEqual((_entry = $mapIndex(itemMap,$String.keyFor("type")), _entry !== undefined ? _entry.v : $ifaceNil), new $String("err")), $assertType((_entry$1 = $mapIndex(itemMap,$String.keyFor("context")), _entry$1 !== undefined ? _entry$1.v : $ifaceNil), $String))); + _i++; + } + return Div($makeMap($String.keyFor, [{ k: "id", v: new $String("output-box") }, { k: "ref", v: outputBoxRef }]), children); + }; + hasNonErrors = function hasNonErrors$1(output) { + var _entry, _i, _ref, item, output; + _ref = output; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + item = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!($interfaceIsEqual((_entry = $mapIndex($assertType(item, mapType),$String.keyFor("type")), _entry !== undefined ? _entry.v : $ifaceNil), new $String("err")))) { + return true; + } + _i++; + } + return false; + }; + outputLine = function outputLine$1(index, isError, content) { + var content, index, isError; + return CreateElement(new funcType(outputLineComponent), new Props($makeMap($String.keyFor, [{ k: "index", v: new $Int(index) }, { k: "isError", v: new $Bool(isError) }, { k: "content", v: new $String(content) }])), sliceType.nil); + }; + outputLineComponent = function outputLineComponent$1(props) { + var {_r, classType, content, id, index, isError, props, $s, $r, $c} = $restore(this, {props}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + index = ((As[6 /* float64 */](props, "index") >> 0)); + isError = As[1 /* bool */](props, "isError"); + content = As[0 /* string */](props, "content"); + classType = "output-text"; + if (isError) { + classType = "output-err"; + } + _r = fmt.Sprintf("output-item-%d", new sliceType$1([new $Int(index)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + id = _r; + $s = -1; return Pre($makeMap($String.keyFor, [{ k: "className", v: new $String(classType) }, { k: "id", v: new $String(id) }]), new sliceType([new $String(content)])); + /* */ } return; } var $f = {$blk: outputLineComponent$1, $c: true, $r, _r, classType, content, id, index, isError, props, $s};return $f; + }; + CodeBox = function CodeBox$1(code, setCode, onSave, onEscape) { + var code, onEscape, onSave, setCode; + return CreateElement(new funcType(codeBoxComponent), new Props($makeMap($String.keyFor, [{ k: "curCode", v: new $String(code) }, { k: "setCode", v: new funcType$1(setCode) }, { k: "onSave", v: new funcType$3(onSave) }, { k: "onEscape", v: new funcType$3(onEscape) }])), sliceType.nil); + }; + $pkg.CodeBox = CodeBox; + codeBoxComponent = function codeBoxComponent$1(props) { + var cba, lineCount, lineNumbers, props; + cba = new codeBoxAssistant.ptr(As[0 /* string */](props, "curCode"), AsSetter(props, "setCode"), AsFunc(props, "onSave"), AsFunc(props, "onEscape"), UseRef(), UseRef()); + UseEffect((function codeBoxComponent·func1() { + cba.textAreaRef.Call("focus", sliceType$1.nil); + cba.textAreaRef.Set("selectionStart", new $Int(0)); + cba.textAreaRef.Set("selectionEnd", new $Int(0)); + }), new sliceType$1([])); + lineCount = strings.Count(cba.curCode, "\n") + 1 >> 0; + lineNumbers = UseMemo[7 /* string */]((function codeBoxComponent·func2() { + return getLineNumbers(lineCount); + }), new sliceType$1([new $Int(lineCount)])); + return Div($makeMap($String.keyFor, [{ k: "id", v: new $String("code-box") }]), new sliceType([TextArea($makeMap($String.keyFor, [{ k: "id", v: new $String("line-nums") }, { k: "ref", v: cba.lineNumsRef }, { k: "value", v: new $String(lineNumbers) }, { k: "readOnly", v: new $Bool(true) }, { k: "disable", v: new $String("true") }]), sliceType.nil), TextArea($makeMap($String.keyFor, [{ k: "id", v: new $String("code") }, { k: "ref", v: cba.textAreaRef }, { k: "value", v: new $String(cba.curCode) }, { k: "onInput", v: new funcType$2($methodVal(cba, "onInput")) }, { k: "onKeyDown", v: new funcType$2($methodVal(cba, "onKeyDown")) }, { k: "onScroll", v: new funcType$2($methodVal(cba, "onScroll")) }, { k: "autoFocus", v: new $Bool(true) }, { k: "autoCorrect", v: new $String("off") }, { k: "autoComplete", v: new $String("off") }, { k: "autoCapitalize", v: new $String("off") }, { k: "spellCheck", v: new $Bool(false) }]), sliceType.nil)])); + }; + $ptrType(codeBoxAssistant).prototype.Code = function Code() { + var cba; + cba = this; + return cba.curCode; + }; + $ptrType(codeBoxAssistant).prototype.EmitEvent = function EmitEvent(event) { + var {_1, _r, _r$1, cba, event, $s, $r, $c} = $restore(this, {event}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + cba = this; + _1 = event; + /* */ if (_1 === ("save")) { $s = 2; continue; } + /* */ if (_1 === ("escape")) { $s = 3; continue; } + /* */ if (_1 === ("undo") || _1 === ("redo")) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === ("save")) { */ case 2: + _r = cba.onSave(sliceType$1.nil); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = 6; continue; + /* } else if (_1 === ("escape")) { */ case 3: + _r$1 = cba.onEscape(sliceType$1.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = 6; continue; + /* } else if (_1 === ("undo") || _1 === ("redo")) { */ case 4: + console.log("Not implemented yet: Undo/Redo requested from CodeBox:", event); + $s = 6; continue; + /* } else { */ case 5: + console.log("Unknown event was requested to be emitted from CodeBox:", event); + /* } */ case 6: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: EmitEvent, $c: true, $r, _1, _r, _r$1, cba, event, $s};return $f; + }; + $ptrType(codeBoxAssistant).prototype.onInput = function onInput(e) { + var {cba, e, $s, $r, $c} = $restore(this, {e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + cba = this; + $r = cba.setCode(new $String($internalize(e.target.value, $String))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: onInput, $c: true, $r, cba, e, $s};return $f; + }; + $ptrType(codeBoxAssistant).prototype.onKeyDown = function onKeyDown(e) { + var {_r, cba, ctrl, e, key, shift, $s, $r, $c} = $restore(this, {e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + cba = this; + key = $internalize(e.key, $String); + shift = !!(e.shiftKey); + ctrl = !!(e.metaKey) || !!(e.ctrlKey); + _r = editor.ProcessKeyDown(cba, key, shift, ctrl); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + e.preventDefault(); + e.stopPropagation(); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: onKeyDown, $c: true, $r, _r, cba, ctrl, e, key, shift, $s};return $f; + }; + $ptrType(codeBoxAssistant).prototype.onScroll = function onScroll(e) { + var cba, e, scrollTop; + cba = this; + scrollTop = $parseInt(e.target.scrollTop) >> 0; + cba.lineNumsRef.Set("scrollTop", new $Int(scrollTop)); + }; + $ptrType(codeBoxAssistant).prototype.GetSelection = function GetSelection() { + var cba, end, start; + cba = this; + start = $parseInt(cba.textAreaRef.Get("selectionStart")) >> 0; + end = $parseInt(cba.textAreaRef.Get("selectionEnd")) >> 0; + if (start > end) { + return new editor.Selection.ptr(end, start); + } + return new editor.Selection.ptr(start, end); + }; + $ptrType(codeBoxAssistant).prototype.SetCode = function SetCode(sel, code) { + var {_tmp, _tmp$1, cba, code, oldEnd, oldStart, sel, $s, $r, $c} = $restore(this, {sel, code}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + cba = this; + $r = cba.setCode(new $String(code)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + cba.textAreaRef.Set("value", new $String(code)); + oldStart = $parseInt(cba.textAreaRef.Get("selectionStart")) >> 0; + oldEnd = $parseInt(cba.textAreaRef.Get("selectionEnd")) >> 0; + if (oldStart > oldEnd) { + _tmp = sel.End; + _tmp$1 = sel.Start; + sel.Start = _tmp; + sel.End = _tmp$1; + } + cba.textAreaRef.Set("selectionStart", new $Int(sel.Start)); + cba.textAreaRef.Set("selectionEnd", new $Int(sel.End)); + cba.verticallyAutoScroll(sel.End, code); + $r = cba.horizontallyAutoScroll(sel.End, code); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: SetCode, $c: true, $r, _tmp, _tmp$1, cba, code, oldEnd, oldStart, sel, $s};return $f; + }; + $ptrType(codeBoxAssistant).prototype.verticallyAutoScroll = function verticallyAutoScroll(caret, code) { + var caret, cba, code, curLine, curTop, lineCount, scrollTop, totalHeight, visibleHeight; + cba = this; + totalHeight = $parseInt(cba.textAreaRef.Get("scrollHeight")) >> 0; + visibleHeight = $parseInt(cba.textAreaRef.Get("clientHeight")) >> 0; + if (totalHeight <= visibleHeight) { + return; + } + lineCount = strings.Count(code, "\n") + 1 >> 0; + curLine = strings.Count($substring(code, 0, caret), "\n") + 1 >> 0; + scrollTop = (((curLine) * (totalHeight) / (lineCount) >> 0)); + curTop = $parseInt(cba.textAreaRef.Get("scrollTop")) >> 0; + if (scrollTop < curTop) { + cba.textAreaRef.Set("scrollTop", new $Int(scrollTop)); + } else { + scrollTop = scrollTop - (visibleHeight) >> 0; + if (scrollTop > curTop) { + cba.textAreaRef.Set("scrollTop", new $Int(scrollTop)); + } + } + }; + $ptrType(codeBoxAssistant).prototype.horizontallyAutoScroll = function horizontallyAutoScroll(caret, code) { + var {_r, caret, cba, code, curLeft, curLine, longestLine, par, scrollLeft, totalWidth, visibleWidth, $s, $r, $c} = $restore(this, {caret, code}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + cba = this; + totalWidth = $parseInt(cba.textAreaRef.Get("scrollWidth")) >> 0; + visibleWidth = $parseInt(cba.textAreaRef.Get("clientWidth")) >> 0; + if (totalWidth <= visibleWidth) { + $s = -1; return; + } + _r = editor.LongestMeasuredLineLength(code); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + longestLine = _r; + par = strings.LastIndexByte($substring(code, 0, caret), 10) + 1 >> 0; + curLine = editor.MeasureLineLength($substring(code, par, caret)); + scrollLeft = (((curLine) * (totalWidth) / (longestLine) >> 0)); + curLeft = $parseInt(cba.textAreaRef.Get("scrollLeft")) >> 0; + if (scrollLeft < curLeft) { + cba.textAreaRef.Set("scrollLeft", new $Int(scrollLeft)); + } else { + scrollLeft = scrollLeft - (visibleWidth) >> 0; + if (scrollLeft > curLeft) { + cba.textAreaRef.Set("scrollLeft", new $Int(scrollLeft)); + } + } + $s = -1; return; + /* */ } return; } var $f = {$blk: horizontallyAutoScroll, $c: true, $r, _r, caret, cba, code, curLeft, curLine, longestLine, par, scrollLeft, totalWidth, visibleWidth, $s};return $f; + }; + getLineNumbers = function getLineNumbers$1(lineCount) { + var i, lineCount, lines; + lines = $makeSlice(sliceType$2, lineCount); + i = 0; + while (true) { + if (!(i < lineCount)) { break; } + ((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i] = strconv.Itoa(i + 1 >> 0)); + i = i + (1) >> 0; + } + return strings.Join(lines, "\n"); + }; + reactDom = function reactDom$1() { + if ($pkg.ReactDOMClient === null) { + $pkg.ReactDOMClient = $global.ReactDOMClient; + } + if ($pkg.ReactDOMClient === null) { + $panic($pkg.ErrReactDOMClientNotLoaded); + } + return $pkg.ReactDOMClient; + }; + react = function react$1() { + if ($pkg.React === null) { + $pkg.React = $global.React; + } + if ($pkg.React === null) { + $panic($pkg.ErrReactNotLoaded); + } + return $pkg.React; + }; + CreateRoot = function CreateRoot$1(id) { + var id, rootElem; + rootElem = $global.document.getElementById($externalize(id, $String)); + return new Root.ptr(reactDom().createRoot(rootElem)); + }; + $pkg.CreateRoot = CreateRoot; + $ptrType(Root).prototype.Render = function Render(n) { + var n, r; + r = this; + r.Object.render($externalize(n, Node)); + }; + Props.prototype.Affirm = function Affirm() { + var p; + p = this.$val; + if (p === false) { + return $makeMap($String.keyFor, []); + } + return p; + }; + $ptrType(Props).prototype.Affirm = function(...$args) { return new Props(this.$get()).Affirm(...$args); }; + As[0 /* string */] = function As$1(props, name) { + var _entry, _tuple, name, ok, prop, props; + _tuple = (_entry = $mapIndex(props,$String.keyFor(name)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); + prop = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return $assertType(prop, $String); + } + $panic($pkg.ErrUndefinedPropKey); + }; + As[1 /* bool */] = function As$2(props, name) { + var _entry, _tuple, name, ok, prop, props; + _tuple = (_entry = $mapIndex(props,$String.keyFor(name)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); + prop = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return $assertType(prop, $Bool); + } + $panic($pkg.ErrUndefinedPropKey); + }; + As[5 /* []any */] = function As$3(props, name) { + var _entry, _tuple, name, ok, prop, props; + _tuple = (_entry = $mapIndex(props,$String.keyFor(name)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); + prop = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return $assertType(prop, sliceType$1); + } + $panic($pkg.ErrUndefinedPropKey); + }; + As[6 /* float64 */] = function As$4(props, name) { + var _entry, _tuple, name, ok, prop, props; + _tuple = (_entry = $mapIndex(props,$String.keyFor(name)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); + prop = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return $assertType(prop, $Float64); + } + $panic($pkg.ErrUndefinedPropKey); + }; + AsFunc = function AsFunc$1(props, name) { + var _entry, _tuple, name, ok, prop, props; + _tuple = (_entry = $mapIndex(props,$String.keyFor(name)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); + prop = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return ($assertType(prop, funcType$6)); + } + $panic($pkg.ErrUndefinedPropKey); + }; + $pkg.AsFunc = AsFunc; + AsSetter = function AsSetter$1(props, name) { + var fn, name, props; + fn = AsFunc(props, name); + return (function AsSetter·func1(v) { + var {_r, v, $s, $r, $c} = $restore(this, {v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fn(new sliceType$1([v])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* */ } return; } var $f = {$blk: AsSetter·func1, $c: true, $r, _r, v, $s};return $f; + }); + }; + $pkg.AsSetter = AsSetter; + CreateElement = function CreateElement$1(typ, props, children) { + var _i, _ref, args, c, children, obj, props, typ; + args = new sliceType$1([typ, props]); + _ref = children; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + args = $append(args, c); + _i++; + } + return new Element.ptr((obj = react(), obj.createElement.apply(obj, $externalize(args, sliceType$1)))); + }; + $pkg.CreateElement = CreateElement; + StrictMode = function StrictMode$1(children) { + var children; + return CreateElement(new $jsObjectPtr(react().StrictMode), $ifaceNil, children); + }; + $pkg.StrictMode = StrictMode; + Fragment = function Fragment$1(children) { + var children; + return CreateElement(new $jsObjectPtr(react().Fragment), $ifaceNil, children); + }; + $pkg.Fragment = Fragment; + Div = function Div$1(props, children) { + var children, props; + return CreateElement(new $String("div"), new Props(props), children); + }; + $pkg.Div = Div; + Pre = function Pre$1(props, children) { + var children, props; + return CreateElement(new $String("pre"), new Props(props), children); + }; + $pkg.Pre = Pre; + TextArea = function TextArea$1(props, children) { + var children, props; + return CreateElement(new $String("textarea"), new Props(props), children); + }; + $pkg.TextArea = TextArea; + Span = function Span$1(props, children) { + var children, props; + return CreateElement(new $String("span"), new Props(props), children); + }; + $pkg.Span = Span; + Button = function Button$1(id, value, props, onClick) { + var _key, _key$1, _key$2, _key$3, id, onClick, props, value; + props = new Props(props).Affirm(); + _key = "id"; (props || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: new $String(id) }); + _key$1 = "value"; (props || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: new $String(value) }); + _key$2 = "type"; (props || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: new $String("button") }); + _key$3 = "onClick"; (props || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$3), { k: _key$3, v: new funcType$3(onClick) }); + return CreateElement(new $String("input"), new Props(props), sliceType.nil); + }; + $pkg.Button = Button; + UseState[2 /* string */] = function UseState$1(initial) { + var current, initial, r, setFn, setter; + r = react().useState($externalize(initial, $String)); + current = $assertType($internalize(r[0], $emptyInterface), $String); + setFn = r[1]; + setter = (function UseState·func1(v) { + var v; + setFn($externalize(v, $emptyInterface)); + }); + return [current, setter]; + }; + UseState[3 /* []any */] = function UseState$2(initial) { + var current, initial, r, setFn, setter; + r = react().useState($externalize(initial, sliceType$1)); + current = $assertType($internalize(r[0], $emptyInterface), sliceType$1); + setFn = r[1]; + setter = (function UseState·func1$1(v) { + var v; + setFn($externalize(v, $emptyInterface)); + }); + return [current, setter]; + }; + UseState[4 /* bool */] = function UseState$3(initial) { + var current, initial, r, setFn, setter; + r = react().useState($externalize(initial, $Bool)); + current = $assertType($internalize(r[0], $emptyInterface), $Bool); + setFn = r[1]; + setter = (function UseState·func1$2(v) { + var v; + setFn($externalize(v, $emptyInterface)); + }); + return [current, setter]; + }; + UseRef = function UseRef$1() { + return new Ref.ptr(react().useRef(null)); + }; + $pkg.UseRef = UseRef; + $ptrType(Ref).prototype.Current = function Current() { + var r; + r = this; + if (!(r === ptrType$3.nil) && !(r.holder === null)) { + return r.holder.current; + } + $panic($pkg.ErrRefNotInitialized); + }; + $ptrType(Ref).prototype.Get = function Get(key) { + var key, r; + r = this; + return r.Current()[$externalize(key, $String)]; + }; + $ptrType(Ref).prototype.Set = function Set(key, value) { + var key, r, value; + r = this; + r.Current()[$externalize(key, $String)] = $externalize(value, $emptyInterface); + }; + $ptrType(Ref).prototype.Call = function Call(name, args) { + var args, name, obj, r; + r = this; + (obj = r.Current(), obj[$externalize(name, $String)].apply(obj, $externalize(args, sliceType$1))); + }; + UseEffect = function UseEffect$1(effect, deps) { + var deps, effect; + react().useEffect($externalize(effect, funcType$3), $externalize(deps, sliceType$1)); + }; + $pkg.UseEffect = UseEffect; + UseMemo[7 /* string */] = function UseMemo$1(compute, deps) { + var compute, deps, r; + r = react().useMemo($externalize(compute, funcType$8), $externalize(deps, sliceType$1)); + return $assertType($internalize(r, $emptyInterface), $String); + }; + BannerTitle = function BannerTitle$1(version) { + var version; + return CreateElement(new funcType(bannerTitleComponent), new Props($makeMap($String.keyFor, [{ k: "version", v: new $String(version) }])), sliceType.nil); + }; + $pkg.BannerTitle = BannerTitle; + bannerTitleComponent = function bannerTitleComponent$1(props) { + var props, version; + version = As[0 /* string */](props, "version"); + return Span($makeMap($String.keyFor, [{ k: "id", v: new $String("banner-title") }]), new sliceType([new $String("playground "), Span($makeMap($String.keyFor, [{ k: "id", v: new $String("banner-title-sub") }]), new sliceType([new $String("GopherJS ")])), Span($makeMap($String.keyFor, [{ k: "id", v: new $String("banner-title-version") }]), new sliceType([new $String("(" + version + ")")]))])); + }; + $pkg.As = As; + $pkg.UseState = UseState; + $pkg.UseMemo = UseMemo; + ptrType$4.methods = [{prop: "initCode", name: "initCode", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/react", typ: $funcType([], [], false)}, {prop: "onSaveKeyPress", name: "onSaveKeyPress", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/react", typ: $funcType([], [], false)}, {prop: "onEscapeCode", name: "onEscapeCode", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/react", typ: $funcType([], [], false)}, {prop: "onRunClick", name: "onRunClick", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/react", typ: $funcType([], [], false)}, {prop: "onFormatClick", name: "onFormatClick", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/react", typ: $funcType([], [], false)}, {prop: "onShareClick", name: "onShareClick", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/react", typ: $funcType([], [], false)}]; + ptrType$5.methods = [{prop: "Clear", name: "Clear", pkg: "", typ: $funcType([], [], false)}, {prop: "AddError", name: "AddError", pkg: "", typ: $funcType([$error], [], false)}, {prop: "AddOutput", name: "AddOutput", pkg: "", typ: $funcType([$String], [], false)}]; + ptrType.methods = [{prop: "Code", name: "Code", pkg: "", typ: $funcType([], [$String], false)}, {prop: "EmitEvent", name: "EmitEvent", pkg: "", typ: $funcType([$String], [], false)}, {prop: "onInput", name: "onInput", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/react", typ: $funcType([ptrType$2], [], false)}, {prop: "onKeyDown", name: "onKeyDown", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/react", typ: $funcType([ptrType$2], [], false)}, {prop: "onScroll", name: "onScroll", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/react", typ: $funcType([ptrType$2], [], false)}, {prop: "GetSelection", name: "GetSelection", pkg: "", typ: $funcType([], [editor.Selection], false)}, {prop: "SetCode", name: "SetCode", pkg: "", typ: $funcType([editor.Selection, $String], [], false)}, {prop: "verticallyAutoScroll", name: "verticallyAutoScroll", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/react", typ: $funcType([$Int, $String], [], false)}, {prop: "horizontallyAutoScroll", name: "horizontallyAutoScroll", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/react", typ: $funcType([$Int, $String], [], false)}]; + ptrType$6.methods = [{prop: "Render", name: "Render", pkg: "", typ: $funcType([Node], [], false)}]; + Props.methods = [{prop: "Affirm", name: "Affirm", pkg: "", typ: $funcType([], [Props], false)}]; + ptrType$3.methods = [{prop: "Current", name: "Current", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType$2], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}]; + playgroundAssistant.init("github.com/gopherjs/gopherjs.github.io/playground/internal/react", [{prop: "snippetStore", name: "snippetStore", embedded: false, exported: false, typ: common.SnippetStore, tag: ""}, {prop: "code", name: "code", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "setCode", name: "setCode", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "setShareUrl", name: "setShareUrl", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "setOutput", name: "setOutput", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "fmtImports", name: "fmtImports", embedded: false, exported: false, typ: $Bool, tag: ""}]); + outputImpl.init("github.com/gopherjs/gopherjs.github.io/playground/internal/react", [{prop: "setOutput", name: "setOutput", embedded: false, exported: false, typ: funcType$1, tag: ""}]); + codeBoxAssistant.init("github.com/gopherjs/gopherjs.github.io/playground/internal/react", [{prop: "curCode", name: "curCode", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "setCode", name: "setCode", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "onSave", name: "onSave", embedded: false, exported: false, typ: Func, tag: ""}, {prop: "onEscape", name: "onEscape", embedded: false, exported: false, typ: Func, tag: ""}, {prop: "textAreaRef", name: "textAreaRef", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "lineNumsRef", name: "lineNumsRef", embedded: false, exported: false, typ: ptrType$3, tag: ""}]); + Node.init([]); + Root.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}]); + Element.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}]); + Props.init($String, $emptyInterface); + Ref.init("github.com/gopherjs/gopherjs.github.io/playground/internal/react", [{prop: "holder", name: "holder", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + Func.init([sliceType$1], [ptrType$2], true); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = common.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = editor.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = snippets.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = scanner.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ReactDOMClient = null; + $pkg.React = null; + $pkg.ErrReactDOMClientNotLoaded = errors.New("react: ReactDOMClient is not loaded"); + $pkg.ErrReactNotLoaded = errors.New("react: React is not loaded"); + $pkg.ErrUndefinedPropKey = errors.New("react: undefined prop key"); + $pkg.ErrRefNotInitialized = errors.New("react: Ref not initialized"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["main"] = (function() { + var $pkg = {}, $init, react, js, sliceType, ptrType, funcType, main; + react = $packages["github.com/gopherjs/gopherjs.github.io/playground/internal/react"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + $pkg.$finishSetup = function() { + sliceType = $sliceType(react.Node); + ptrType = $ptrType(js.Object); + funcType = $funcType([ptrType, ptrType], [], false); + main = function main$1() { + $global.RunPlayground = $externalize((function main·func1(r, rdc) { + var r, rdc, root; + react.React = r; + react.ReactDOMClient = rdc; + root = react.CreateRoot("playground"); + root.Render(react.StrictMode(new sliceType([react.Playground()]))); + }), funcType); + }; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = react.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($pkg === $mainPkg) { + main(); + $mainFinished = true; + } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$callForAllPackages("$finishSetup"); $synthesizeMethods(); -$initAllLinknames(); -var $mainPkg = $packages["github.com/gopherjs/gopherjs.github.io/playground"]; +$callForAllPackages("$initLinknames"); +var $mainPkg = $packages["main"]; $packages["runtime"].$init(); $go($mainPkg.$init, []); $flushConsole();